@pyrokine/mcp-chrome 1.0.0 → 1.1.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 (103) hide show
  1. package/README.md +176 -86
  2. package/dist/cdp/client.d.ts +10 -0
  3. package/dist/cdp/client.d.ts.map +1 -1
  4. package/dist/cdp/client.js +48 -18
  5. package/dist/cdp/client.js.map +1 -1
  6. package/dist/cdp/launcher.d.ts.map +1 -1
  7. package/dist/cdp/launcher.js +14 -4
  8. package/dist/cdp/launcher.js.map +1 -1
  9. package/dist/core/auto-wait.d.ts +7 -0
  10. package/dist/core/auto-wait.d.ts.map +1 -1
  11. package/dist/core/auto-wait.js +14 -4
  12. package/dist/core/auto-wait.js.map +1 -1
  13. package/dist/core/errors.d.ts +1 -0
  14. package/dist/core/errors.d.ts.map +1 -1
  15. package/dist/core/errors.js +32 -7
  16. package/dist/core/errors.js.map +1 -1
  17. package/dist/core/index.d.ts +1 -0
  18. package/dist/core/index.d.ts.map +1 -1
  19. package/dist/core/index.js +1 -0
  20. package/dist/core/index.js.map +1 -1
  21. package/dist/core/locator.d.ts +12 -0
  22. package/dist/core/locator.d.ts.map +1 -1
  23. package/dist/core/locator.js +73 -10
  24. package/dist/core/locator.js.map +1 -1
  25. package/dist/core/session.d.ts +66 -10
  26. package/dist/core/session.d.ts.map +1 -1
  27. package/dist/core/session.js +261 -60
  28. package/dist/core/session.js.map +1 -1
  29. package/dist/core/types.d.ts +11 -0
  30. package/dist/core/types.d.ts.map +1 -1
  31. package/dist/core/types.js +5 -2
  32. package/dist/core/types.js.map +1 -1
  33. package/dist/core/unified-session.d.ts +431 -0
  34. package/dist/core/unified-session.d.ts.map +1 -0
  35. package/dist/core/unified-session.js +1010 -0
  36. package/dist/core/unified-session.js.map +1 -0
  37. package/dist/extension/bridge.d.ts +222 -0
  38. package/dist/extension/bridge.d.ts.map +1 -0
  39. package/dist/extension/bridge.js +421 -0
  40. package/dist/extension/bridge.js.map +1 -0
  41. package/dist/extension/http-server.d.ts +58 -0
  42. package/dist/extension/http-server.d.ts.map +1 -0
  43. package/dist/extension/http-server.js +313 -0
  44. package/dist/extension/http-server.js.map +1 -0
  45. package/dist/extension/index.d.ts +7 -0
  46. package/dist/extension/index.d.ts.map +1 -0
  47. package/dist/extension/index.js +6 -0
  48. package/dist/extension/index.js.map +1 -0
  49. package/dist/extension/native-host-installer.d.ts +21 -0
  50. package/dist/extension/native-host-installer.d.ts.map +1 -0
  51. package/dist/extension/native-host-installer.js +147 -0
  52. package/dist/extension/native-host-installer.js.map +1 -0
  53. package/dist/extension/socket-server.d.ts +32 -0
  54. package/dist/extension/socket-server.d.ts.map +1 -0
  55. package/dist/extension/socket-server.js +177 -0
  56. package/dist/extension/socket-server.js.map +1 -0
  57. package/dist/extension/ws-server.d.ts +40 -0
  58. package/dist/extension/ws-server.d.ts.map +1 -0
  59. package/dist/extension/ws-server.js +246 -0
  60. package/dist/extension/ws-server.js.map +1 -0
  61. package/dist/index.js +6 -4
  62. package/dist/index.js.map +1 -1
  63. package/dist/native-host/index.js +280 -0
  64. package/dist/native-host/mcp-chrome-host +2 -0
  65. package/dist/tools/browse.d.ts +4 -0
  66. package/dist/tools/browse.d.ts.map +1 -1
  67. package/dist/tools/browse.js +137 -25
  68. package/dist/tools/browse.js.map +1 -1
  69. package/dist/tools/cookies.d.ts +33 -25
  70. package/dist/tools/cookies.d.ts.map +1 -1
  71. package/dist/tools/cookies.js +124 -38
  72. package/dist/tools/cookies.js.map +1 -1
  73. package/dist/tools/evaluate.d.ts +15 -0
  74. package/dist/tools/evaluate.d.ts.map +1 -1
  75. package/dist/tools/evaluate.js +87 -23
  76. package/dist/tools/evaluate.js.map +1 -1
  77. package/dist/tools/extract.d.ts +28 -2
  78. package/dist/tools/extract.d.ts.map +1 -1
  79. package/dist/tools/extract.js +319 -198
  80. package/dist/tools/extract.js.map +1 -1
  81. package/dist/tools/input.d.ts +30 -0
  82. package/dist/tools/input.d.ts.map +1 -1
  83. package/dist/tools/input.js +167 -19
  84. package/dist/tools/input.js.map +1 -1
  85. package/dist/tools/logs.d.ts +4 -0
  86. package/dist/tools/logs.d.ts.map +1 -1
  87. package/dist/tools/logs.js +102 -68
  88. package/dist/tools/logs.js.map +1 -1
  89. package/dist/tools/manage.d.ts +16 -0
  90. package/dist/tools/manage.d.ts.map +1 -1
  91. package/dist/tools/manage.js +215 -10
  92. package/dist/tools/manage.js.map +1 -1
  93. package/dist/tools/schema.d.ts +86 -13
  94. package/dist/tools/schema.d.ts.map +1 -1
  95. package/dist/tools/schema.js +240 -1
  96. package/dist/tools/schema.js.map +1 -1
  97. package/dist/tools/wait.d.ts +30 -0
  98. package/dist/tools/wait.d.ts.map +1 -1
  99. package/dist/tools/wait.js +329 -115
  100. package/dist/tools/wait.js.map +1 -1
  101. package/package.json +4 -5
  102. package/scripts/start-chrome-headless.sh +0 -37
  103. package/scripts/start-chrome.sh +0 -41
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  English | [中文](README_zh.md)
4
4
 
5
- Chrome browser automation MCP Server using Chrome DevTools Protocol (CDP).
5
+ Chrome browser automation MCP Server with dual-mode architecture: **Extension mode** (recommended) controls your existing browser, **CDP mode** (fallback) launches a dedicated instance.
6
6
 
7
7
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
8
8
  [![Node](https://img.shields.io/badge/node-%3E%3D18-green.svg)](https://nodejs.org/)
@@ -10,12 +10,17 @@ Chrome browser automation MCP Server using Chrome DevTools Protocol (CDP).
10
10
 
11
11
  ## Features
12
12
 
13
- - **Native CDP**: Direct Chrome DevTools Protocol communication, no Puppeteer/Playwright dependency
14
- - **8 Unified Tools**: Reduced from 30+ granular tools to 8 action-based tools
15
- - **Semantic Targeting**: 10 ways to locate elements (role, text, label, css, xpath, coordinates, etc.)
16
- - **Auto-Wait**: Built-in clickability and input-ready detection
17
- - **Structured Errors**: Every error includes code, message, suggestion, and context
13
+ - **Dual Mode**: Extension mode shares your login sessions; CDP mode for headless/isolated scenarios
14
+ - **8 Unified Tools**: Action-based design covering browse, input, extract, wait, evaluate, manage, cookies, logs
15
+ - **Multi-Tab Parallel**: `tabId` parameter enables operations on any tab without switching focus
16
+ - **iframe Penetration**: `frame` parameter targets elements inside iframes (CSS selector or index, Extension mode)
17
+ - **Semantic Targeting**: 11 ways to locate elements (role, text, label, css, css+text combo, xpath, coordinates, etc.)
18
+ - **Auto-Wait**: Built-in clickability and input-ready detection with deadline-based timeout budget
19
+ - **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
+ - **Multi-Server**: Extension auto-discovers and connects to multiple MCP Server instances simultaneously
18
22
  - **Anti-Detection**: Optional fingerprint masking and behavior simulation
23
+ - **Structured Errors**: Every error includes code, message, suggestion, and context
19
24
 
20
25
  ## Compatible Clients
21
26
 
@@ -29,6 +34,12 @@ Chrome browser automation MCP Server using Chrome DevTools Protocol (CDP).
29
34
 
30
35
  ## Installation
31
36
 
37
+ ```bash
38
+ npm install -g @pyrokine/mcp-chrome
39
+ ```
40
+
41
+ Or from source:
42
+
32
43
  ```bash
33
44
  git clone https://github.com/Pyrokine/claude-mcp-tools.git
34
45
  cd claude-mcp-tools/mcp-chrome
@@ -38,30 +49,26 @@ npm run build
38
49
 
39
50
  ## Quick Start
40
51
 
41
- ### 1. Start Chrome with Remote Debugging
42
-
43
- ```bash
44
- # With UI
45
- ./scripts/start-chrome.sh
52
+ ### Mode 1: Extension Mode (Recommended)
46
53
 
47
- # Headless mode
48
- ./scripts/start-chrome-headless.sh
54
+ Extension mode controls your existing Chrome — shares login sessions, cookies, and browsing context.
49
55
 
50
- # Or manually:
51
- google-chrome --remote-debugging-port=9222
52
- ```
56
+ **Step 1: Install Chrome Extension**
53
57
 
54
- ### 2. Configure MCP Client
58
+ 1. Open `chrome://extensions/` in Chrome
59
+ 2. Enable "Developer mode" (top-right toggle)
60
+ 3. Click "Load unpacked" → select `mcp-chrome/extension/dist/` directory
61
+ 4. The MCP Chrome icon appears in the toolbar
55
62
 
56
- #### Claude Code
63
+ **Step 2: Configure MCP Client**
57
64
 
58
65
  ```bash
66
+ # Claude Code
59
67
  claude mcp add chrome -- node /path/to/mcp-chrome/dist/index.js
60
68
  ```
61
69
 
62
- #### Claude Desktop / Other Clients
63
-
64
70
  ```json
71
+ // Claude Desktop / Other Clients
65
72
  {
66
73
  "mcpServers": {
67
74
  "chrome": {
@@ -72,29 +79,49 @@ claude mcp add chrome -- node /path/to/mcp-chrome/dist/index.js
72
79
  }
73
80
  ```
74
81
 
82
+ **Step 3: Connect**
83
+
84
+ The Extension auto-connects to the MCP Server via HTTP/WebSocket (port 19222-19299). Click the toolbar icon to verify connection status.
85
+
86
+ ```
87
+ browse(action="list") // List all tabs
88
+ browse(action="open", url="https://example.com")
89
+ extract(type="screenshot")
90
+ ```
91
+
92
+ ### Mode 2: CDP Mode (Fallback)
93
+
94
+ CDP mode launches or connects to a dedicated Chrome instance. Used when the Extension is not installed, or for headless/isolated scenarios.
95
+
96
+ ```bash
97
+ # Start Chrome with remote debugging
98
+ google-chrome --remote-debugging-port=9222
99
+ ```
100
+
101
+ ```
102
+ browse(action="connect", port=9222)
103
+ browse(action="open", url="https://example.com")
104
+ ```
105
+
106
+ > When the Extension is connected, all tools use Extension mode automatically. CDP mode activates only when the Extension is unavailable.
107
+
75
108
  ## Available Tools (8 Tools)
76
109
 
77
110
  ### browse - Browser Management & Navigation
78
111
 
79
- | Action | Description |
80
- |-----------|--------------------------------------------------------------|
81
- | `launch` | Launch new Chrome instance |
82
- | `connect` | Connect to running Chrome (requires --remote-debugging-port) |
83
- | `list` | List all available pages/targets |
84
- | `attach` | Attach to a specific page |
85
- | `open` | Navigate to URL |
86
- | `back` | Go back in history |
87
- | `forward` | Go forward in history |
88
- | `refresh` | Reload page |
89
- | `close` | Close browser |
90
-
91
- **Anti-detection modes** (for `launch`/`connect`):
92
-
93
- | Mode | Description |
94
- |--------------|-----------------------------------------------------------------------|
95
- | `off` | Disabled - pure mode for testing/CI |
96
- | `safe` | Minimal changes (default) - removes webdriver flag, cleans CDP traces |
97
- | `aggressive` | Full masking - plugins, WebGL, languages (may have side effects) |
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).
98
125
 
99
126
  ### input - Keyboard & Mouse Input
100
127
 
@@ -110,6 +137,8 @@ Event sequence model supporting arbitrary combinations:
110
137
  | `type` | Type text |
111
138
  | `wait` | Pause between events |
112
139
 
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.
141
+
113
142
  ### extract - Content Extraction
114
143
 
115
144
  | Type | Description |
@@ -120,6 +149,8 @@ Event sequence model supporting arbitrary combinations:
120
149
  | `screenshot` | Take screenshot |
121
150
  | `state` | Get page state (URL, title, interactive elements) |
122
151
 
152
+ Parameters: `output` saves result to file. `tabId` targets a specific tab. `frame` targets an iframe. Both Extension mode only.
153
+
123
154
  ### wait - Wait for Conditions
124
155
 
125
156
  | For | Description |
@@ -129,16 +160,37 @@ Event sequence model supporting arbitrary combinations:
129
160
  | `time` | Fixed delay |
130
161
  | `idle` | Wait for network idle |
131
162
 
163
+ Parameters: `tabId` targets a specific tab. `frame` targets an iframe. Both Extension mode only.
164
+
165
+ ### evaluate - JavaScript Execution
166
+
167
+ Execute JavaScript in page context.
168
+
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) |
178
+
179
+ Results >100KB are auto-saved to `/tmp/` with a structured hint returned.
180
+
132
181
  ### manage - Page & Environment Management
133
182
 
134
- | Action | Description |
135
- |--------------|---------------------------------------|
136
- | `newPage` | Create new page/tab |
137
- | `closePage` | Close page |
138
- | `clearCache` | Clear cache/cookies/storage |
139
- | `viewport` | Set viewport size |
140
- | `userAgent` | Set User-Agent |
141
- | `emulate` | Device emulation (iPhone, iPad, etc.) |
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`) |
142
194
 
143
195
  ### logs - Browser Logs
144
196
 
@@ -147,6 +199,8 @@ Event sequence model supporting arbitrary combinations:
147
199
  | `console` | Console logs (with level filter) |
148
200
  | `network` | Network request logs (with URL filter) |
149
201
 
202
+ Parameters: `output` saves result to file. `tabId` targets a specific tab (Extension mode). `frame` is not applicable for logs.
203
+
150
204
  ### cookies - Cookie Management
151
205
 
152
206
  | Action | Description |
@@ -156,10 +210,6 @@ Event sequence model supporting arbitrary combinations:
156
210
  | `delete` | Delete cookie |
157
211
  | `clear` | Clear all cookies |
158
212
 
159
- ### evaluate - JavaScript Execution
160
-
161
- Execute arbitrary JavaScript in page context.
162
-
163
213
  ## Target: Unified Element Locator
164
214
 
165
215
  All tools use a unified `Target` type for element location:
@@ -189,6 +239,9 @@ All tools use a unified `Target` type for element location:
189
239
  // By CSS selector
190
240
  { css: "#login-form .submit-btn" }
191
241
 
242
+ // By CSS + text (filter by text content)
243
+ { css: "button", text: "Submit", exact: true }
244
+
192
245
  // By XPath
193
246
  { xpath: "//button[@type='submit']" }
194
247
 
@@ -198,10 +251,10 @@ All tools use a unified `Target` type for element location:
198
251
 
199
252
  ## Usage Examples
200
253
 
201
- ### Basic: Connect and Navigate
254
+ ### Basic: List Tabs and Navigate
202
255
 
203
256
  ```
204
- browse(action="connect", port=9222)
257
+ browse(action="list")
205
258
  browse(action="open", url="https://example.com")
206
259
  extract(type="state")
207
260
  ```
@@ -225,15 +278,12 @@ input(events=[
225
278
  ])
226
279
  ```
227
280
 
228
- ### Complex: Ctrl+Click with Human-like Movement
281
+ ### Multi-Tab Operation (Extension Mode)
229
282
 
230
283
  ```
231
- input(events=[
232
- { type: "keydown", key: "Control" },
233
- { type: "mousedown", target: { css: ".item" }, button: "left" },
234
- { type: "mouseup" },
235
- { type: "keyup", key: "Control" }
236
- ], humanize=true)
284
+ // Operate on a specific tab without switching focus
285
+ extract(type="screenshot", tabId="12345")
286
+ evaluate(script="document.title", tabId="12345")
237
287
  ```
238
288
 
239
289
  ### Screenshot
@@ -242,8 +292,25 @@ input(events=[
242
292
  // Full page
243
293
  extract(type="screenshot", fullPage=true)
244
294
 
245
- // Specific element
246
- extract(type="screenshot", target={ css: "#chart" })
295
+ // Save to file
296
+ extract(type="screenshot", output="/tmp/screenshot.png")
297
+ ```
298
+
299
+ ### iframe Operations (Extension Mode)
300
+
301
+ ```
302
+ // Target iframe by CSS selector
303
+ evaluate(script="document.title", frame="iframe#main")
304
+
305
+ // Target iframe by index
306
+ extract(type="text", frame=0)
307
+
308
+ // Input inside iframe
309
+ input(events=[
310
+ { type: "mousedown", target: { label: "Username" } },
311
+ { type: "mouseup" },
312
+ { type: "type", text: "admin" }
313
+ ], frame="iframe.login-frame")
247
314
  ```
248
315
 
249
316
  ### Wait for Element
@@ -255,25 +322,32 @@ wait(for="element", target={ text: "Loading complete" }, state="visible")
255
322
  ## Architecture
256
323
 
257
324
  ```
258
- ┌─────────────────┐
259
- MCP Client
260
- (Claude, etc.)
261
- └────────┬────────┘
262
- │ stdio (JSON-RPC)
263
-
264
- ┌─────────────────┐
265
- MCP-Chrome
266
- (8 tools)
267
- │ ├─ core/ Session, Locator, AutoWait
268
- │ ├─ cdp/ │ Native CDP client
269
- └─ tools/ Tool implementations
270
- └────────┬────────┘
271
- │ WebSocket (CDP)
272
-
273
- ┌─────────────────┐
274
- Chrome Browser
275
- │ (port 9222) │
276
- └─────────────────┘
325
+ ┌───────────────────┐
326
+ MCP Client
327
+ (Claude, etc.)
328
+ └─────────┬─────────┘
329
+ │ stdio (JSON-RPC)
330
+
331
+ ┌───────────────────┐
332
+ MCP-Chrome
333
+ (8 tools)
334
+ │ ├─ core/ UnifiedSession, Locator, AutoWait
335
+ │ ├─ cdp/ │ Native CDP client
336
+ ├─ extension/ Extension bridge (HTTP + WebSocket)
337
+ │ └─ tools/ │ Tool implementations
338
+ └────┬─────────┬────┘
339
+
340
+ │ HTTP/WS │ WebSocket (CDP)
341
+
342
+ ▼ ▼
343
+ ┌──────────┐ ┌──────────────────┐
344
+ │ Extension│ │ Chrome (CDP) │
345
+ │ (19222+) │ │ (port 9222) │
346
+ │ │ │ Dedicated browser│
347
+ │ Controls │ └──────────────────┘
348
+ │ user's │
349
+ │ browser │
350
+ └──────────┘
277
351
  ```
278
352
 
279
353
  ## Project Structure
@@ -293,18 +367,29 @@ mcp-chrome/
293
367
  │ │ ├── evaluate.ts
294
368
  │ │ └── schema.ts # Shared JSON Schema (Target oneOf)
295
369
  │ ├── core/ # Core abstractions
296
- │ │ ├── session.ts # Session management
297
- │ │ ├── locator.ts # Element locator
370
+ │ │ ├── unified-session.ts # Dual-mode session (Extension + CDP)
371
+ │ │ ├── session.ts # CDP session management
372
+ │ │ ├── locator.ts # Element locator (deadline-based timeout)
298
373
  │ │ ├── auto-wait.ts # Auto-wait mechanism
299
374
  │ │ ├── retry.ts # Retry logic
300
375
  │ │ ├── types.ts # Type definitions
301
376
  │ │ └── errors.ts # Error types
377
+ │ ├── extension/ # Extension bridge
378
+ │ │ ├── bridge.ts # High-level Extension API
379
+ │ │ └── http-server.ts # HTTP + WebSocket server
302
380
  │ ├── cdp/ # CDP layer
303
381
  │ │ ├── client.ts # WebSocket CDP client
304
382
  │ │ └── launcher.ts # Chrome launcher
305
383
  │ └── anti-detection/ # Anti-detection (optional)
306
384
  │ ├── injection.ts
307
385
  │ └── behavior.ts
386
+ ├── extension/ # Chrome Extension (Manifest V3)
387
+ │ ├── manifest.json
388
+ │ ├── src/
389
+ │ │ ├── background/ # Service Worker
390
+ │ │ ├── content/ # Content scripts
391
+ │ │ └── popup/ # Popup UI
392
+ │ └── dist/ # Built extension (load this in Chrome)
308
393
  ├── scripts/
309
394
  │ ├── start-chrome.sh
310
395
  │ └── start-chrome-headless.sh
@@ -313,15 +398,19 @@ mcp-chrome/
313
398
 
314
399
  ## Security Notes
315
400
 
316
- - CDP provides full browser control - use only on trusted machines
317
- - Default debugging port binds to 127.0.0.1 only
401
+ - Extension mode: shares your browser sessions only use on trusted machines
402
+ - CDP mode: provides full browser control via DevTools Protocol
403
+ - Default ports bind to 127.0.0.1 only (localhost)
318
404
  - The `evaluate` tool can execute arbitrary JavaScript
405
+ - The `manage cdp` action can send arbitrary CDP commands
319
406
  - Network logs may contain sensitive information
320
407
 
321
408
  ## Known Limitations
322
409
 
323
- - **Single session**: Currently supports one browser session at a time
324
410
  - **Chrome only**: Only supports Chrome/Chromium browsers (no Firefox/Safari)
411
+ - **Single CDP session**: CDP mode supports one browser session at a time
412
+ - **Extension mode requires Chrome**: Extension is Manifest V3, Chrome-specific
413
+ - **iframe**: Only single-level iframe targeting (no nested `>>` syntax); Extension mode only
325
414
 
326
415
  ## License
327
416
 
@@ -331,3 +420,4 @@ MIT License - see [LICENSE](LICENSE) for details.
331
420
 
332
421
  - [Model Context Protocol](https://modelcontextprotocol.io/) - MCP specification
333
422
  - [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) - CDP documentation
423
+
@@ -19,6 +19,7 @@ export declare class CDPClient extends EventEmitter {
19
19
  private callbacks;
20
20
  private nextId;
21
21
  private eventListeners;
22
+ private activeEventWaiters;
22
23
  private _endpoint;
23
24
  get endpoint(): string;
24
25
  get isConnected(): boolean;
@@ -40,16 +41,25 @@ export declare class CDPClient extends EventEmitter {
40
41
  offEvent(event: string, listener: CDPEventListener): void;
41
42
  /**
42
43
  * 等待特定事件
44
+ *
45
+ * close()/handleClose() 会立即 reject 所有活跃的等待者,不必等 timer 超时。
43
46
  */
44
47
  waitForEvent<T = unknown>(event: string, predicate?: (params: T) => boolean, timeout?: number): Promise<T>;
45
48
  /**
46
49
  * 关闭连接
50
+ *
51
+ * 立即 reject 所有 pending callbacks 和 waitForEvent,
52
+ * 然后发出 'disconnected' 信号供外部等待者(如 waitForAnyEvent)清理。
47
53
  */
48
54
  close(): void;
49
55
  /**
50
56
  * 处理收到的消息
51
57
  */
52
58
  private handleMessage;
59
+ /**
60
+ * 立即 reject 所有 pending callbacks 和 waitForEvent 等待者
61
+ */
62
+ private rejectAllPending;
53
63
  /**
54
64
  * 处理连接关闭
55
65
  */
@@ -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;AAanC;;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;IAEvE,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;IAoCb;;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;;OAEG;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;IAmBb;;OAEG;IACH,KAAK,IAAI,IAAI;IAeb;;OAEG;IACH,OAAO,CAAC,aAAa;IAiDrB;;OAEG;IACH,OAAO,CAAC,WAAW;CAQtB;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;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"}
@@ -17,6 +17,7 @@ export class CDPClient extends EventEmitter {
17
17
  callbacks = new Map();
18
18
  nextId = 1;
19
19
  eventListeners = new Map();
20
+ activeEventWaiters = new Set();
20
21
  _endpoint = '';
21
22
  get endpoint() {
22
23
  return this._endpoint;
@@ -102,7 +103,14 @@ export class CDPClient extends EventEmitter {
102
103
  },
103
104
  method,
104
105
  });
105
- this.ws.send(JSON.stringify(message));
106
+ try {
107
+ this.ws.send(JSON.stringify(message));
108
+ }
109
+ catch (err) {
110
+ clearTimeout(timeoutId);
111
+ this.callbacks.delete(id);
112
+ reject(new CDPError(`Failed to send CDP command ${method}: ${err instanceof Error ? err.message : 'Unknown error'}`));
113
+ }
106
114
  });
107
115
  }
108
116
  /**
@@ -125,38 +133,49 @@ export class CDPClient extends EventEmitter {
125
133
  }
126
134
  /**
127
135
  * 等待特定事件
136
+ *
137
+ * close()/handleClose() 会立即 reject 所有活跃的等待者,不必等 timer 超时。
128
138
  */
129
139
  waitForEvent(event, predicate, timeout = 30000) {
130
140
  return new Promise((resolve, reject) => {
131
- const timer = setTimeout(() => {
132
- this.offEvent(event, listener);
133
- reject(new TimeoutError(`等待事件超时: ${event} (${timeout}ms)`));
134
- }, timeout);
135
141
  const listener = (params) => {
136
142
  if (!predicate || predicate(params)) {
137
- clearTimeout(timer);
138
- this.offEvent(event, listener);
143
+ cleanup();
139
144
  resolve(params);
140
145
  }
141
146
  };
147
+ const waiter = {
148
+ event,
149
+ listener,
150
+ timer: setTimeout(() => {
151
+ cleanup();
152
+ reject(new TimeoutError(`等待事件超时: ${event} (${timeout}ms)`));
153
+ }, timeout),
154
+ reject,
155
+ };
156
+ const cleanup = () => {
157
+ clearTimeout(waiter.timer);
158
+ this.offEvent(event, listener);
159
+ this.activeEventWaiters.delete(waiter);
160
+ };
161
+ this.activeEventWaiters.add(waiter);
142
162
  this.onEvent(event, listener);
143
163
  });
144
164
  }
145
165
  /**
146
166
  * 关闭连接
167
+ *
168
+ * 立即 reject 所有 pending callbacks 和 waitForEvent,
169
+ * 然后发出 'disconnected' 信号供外部等待者(如 waitForAnyEvent)清理。
147
170
  */
148
171
  close() {
149
- // 先拒绝所有等待中的回调
150
- for (const [id, callback] of this.callbacks) {
151
- callback.reject(new CDPError('连接主动关闭'));
152
- }
153
- this.callbacks.clear();
172
+ this.rejectAllPending('连接主动关闭');
154
173
  this.eventListeners.clear();
155
- // 关闭 WebSocket
156
174
  if (this.ws) {
157
175
  this.ws.close();
158
176
  this.ws = null;
159
177
  }
178
+ this.emit('disconnected');
160
179
  }
161
180
  /**
162
181
  * 处理收到的消息
@@ -201,15 +220,26 @@ export class CDPClient extends EventEmitter {
201
220
  this.emit(message.method, message.params);
202
221
  }
203
222
  }
223
+ /**
224
+ * 立即 reject 所有 pending callbacks 和 waitForEvent 等待者
225
+ */
226
+ rejectAllPending(reason) {
227
+ for (const [, callback] of this.callbacks) {
228
+ callback.reject(new CDPError(reason));
229
+ }
230
+ this.callbacks.clear();
231
+ for (const waiter of this.activeEventWaiters) {
232
+ clearTimeout(waiter.timer);
233
+ this.offEvent(waiter.event, waiter.listener);
234
+ waiter.reject(new CDPError(reason));
235
+ }
236
+ this.activeEventWaiters.clear();
237
+ }
204
238
  /**
205
239
  * 处理连接关闭
206
240
  */
207
241
  handleClose() {
208
- // 拒绝所有等待中的回调
209
- for (const [id, callback] of this.callbacks) {
210
- callback.reject(new CDPError('连接已关闭'));
211
- this.callbacks.delete(id);
212
- }
242
+ this.rejectAllPending('连接已关闭');
213
243
  this.emit('disconnected');
214
244
  }
215
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AACnC,OAAO,SAAS,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAC,QAAQ,EAAE,sBAAsB,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAA;AAgBhF;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,YAAY;IACvC,aAAa;IACL,MAAM,CAAU,uBAAuB,GAAG,KAAK,CAAA;IAC/C,EAAE,GAAqB,IAAI,CAAA;IAC3B,SAAS,GAAc,IAAI,GAAG,EAA2B,CAAA;IACzD,MAAM,GAAiB,CAAC,CAAA;IACxB,cAAc,GAAS,IAAI,GAAG,EAAiC,CAAA;IAE/D,SAAS,GAAc,EAAE,CAAA;IAEjC,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAA;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAO,GAAG,KAAK;QAC3C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,QAAQ,KAAK,OAAO,KAAK,CAAC,CAAC,CAAA;YAChE,CAAC,EAAE,OAAO,CAAC,CAAA;YAEX,IAAI,CAAC;gBACD,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAA;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,iBAAiB;gBACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;gBACpD,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;gBACxE,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAA;gBAC7C,CAAC;gBACD,OAAM;YACV,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACpB,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,OAAO,EAAE,CAAA;YACb,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBACjC,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,iBAAiB;gBACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;gBACpD,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClD,MAAM,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;gBACxE,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;gBACvC,CAAC;YACL,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAoB,EAAE,EAAE;gBAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,WAAW,EAAE,CAAA;YACtB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACN,MAAc,EACd,MAAe,EACf,SAAkB,EAClB,UAAkB,SAAS,CAAC,uBAAuB;QAEnD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,EAAE,GAAiC,IAAI,CAAC,MAAM,EAAE,CAAA;QACtD,MAAM,OAAO,GAA4B,EAAC,EAAE,EAAE,MAAM,EAAC,CAAA;QAErD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;QACjC,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACzB,MAAM,CAAC,IAAI,QAAQ,CAAC,aAAa,MAAM,KAAK,OAAO,KAAK,CAAC,CAAC,CAAA;YAC9D,CAAC,EAAE,OAAO,CAAC,CAAA;YAEX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE;gBACnB,OAAO,EAAE,CAAC,MAAe,EAAE,EAAE;oBACzB,YAAY,CAAC,SAAS,CAAC,CAAA;oBACvB,OAAO,CAAC,MAAW,CAAC,CAAA;gBACxB,CAAC;gBACD,MAAM,EAAE,CAAC,KAAY,EAAE,EAAE;oBACrB,YAAY,CAAC,SAAS,CAAC,CAAA;oBACvB,MAAM,CAAC,KAAK,CAAC,CAAA;gBACjB,CAAC;gBACD,MAAM;aACT,CAAC,CAAA;YACF,IAAI,CAAC,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAa,EAAE,QAA0B;QAC7C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QAC7C,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa,EAAE,QAA0B;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,SAAS,EAAE,CAAC;YACZ,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9B,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CACR,KAAa,EACb,SAAkC,EAClC,OAAO,GAAG,KAAK;QAEf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;gBAC9B,MAAM,CAAC,IAAI,YAAY,CAAC,WAAW,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,CAAA;YAC/D,CAAC,EAAE,OAAO,CAAC,CAAA;YAEX,MAAM,QAAQ,GAAqB,CAAC,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAW,CAAC,EAAE,CAAC;oBACvC,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;oBAC9B,OAAO,CAAC,MAAW,CAAC,CAAA;gBACxB,CAAC;YACL,CAAC,CAAA;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK;QACD,cAAc;QACd,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1C,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAE3B,eAAe;QACf,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;YACf,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;QAClB,CAAC;IACL,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAoB;QACtC,IAAI,OAMH,CAAA;QAED,IAAI,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC7C,OAAM;QACV,CAAC;QAED,OAAO;QACP,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBACjC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,QAAQ,CAAC,MAAM,CACX,IAAI,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAC/D,CAAA;gBACL,CAAC;qBAAM,CAAC;oBACJ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACpC,CAAC;YACL,CAAC;YACD,OAAM;QACV,CAAC;QAED,OAAO;QACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACzD,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACD,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBAC5B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,CAAA;oBAC3D,CAAC;gBACL,CAAC;YACL,CAAC;YACD,UAAU;YACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAC7C,CAAC;IACL,CAAC;IAED;;OAEG;IACK,WAAW;QACf,aAAa;QACb,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1C,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC7B,CAAC;;AAGL,mBAAmB;AACnB,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAElC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,IAAY,EACZ,IAAY,EACZ,UAAkB,oBAAoB;IAEtC,MAAM,GAAG,GAAU,UAAU,IAAI,IAAI,IAAI,eAAe,CAAA;IACxD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,SAAS,GAAI,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAA;IAEhE,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAC,CAAC,CAAA;QAE9D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqC,CAAA;QACxE,OAAO,IAAI,CAAC,oBAAoB,CAAA;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;YAC1C,MAAM,KAAK,CAAA;QACf,CAAC;QACD,kBAAkB;QAClB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACxD,MAAM,IAAI,YAAY,CAAC,SAAS,IAAI,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,CAAA;QAClE,CAAC;QACD,MAAM,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,IAAY,EACZ,IAAY,EACZ,UAAkB,oBAAoB;IAUtC,MAAM,GAAG,GAAU,UAAU,IAAI,IAAI,IAAI,YAAY,CAAA;IACrD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,SAAS,GAAI,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAA;IAEhE,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAC,CAAC,CAAA;QAE9D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAM3B,CAAA;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;YAC1C,MAAM,KAAK,CAAA;QACf,CAAC;QACD,kBAAkB;QAClB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACxD,MAAM,IAAI,YAAY,CAAC,SAAS,IAAI,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,CAAA;QAClE,CAAC;QACD,MAAM,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAChD,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/cdp/launcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAA;AAwBnD;;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;IAmDjB;;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,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"}