@pyrokine/mcp-chrome 1.0.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 (100) hide show
  1. package/README.md +333 -0
  2. package/dist/anti-detection/behavior.d.ts +58 -0
  3. package/dist/anti-detection/behavior.d.ts.map +1 -0
  4. package/dist/anti-detection/behavior.js +113 -0
  5. package/dist/anti-detection/behavior.js.map +1 -0
  6. package/dist/anti-detection/index.d.ts +6 -0
  7. package/dist/anti-detection/index.d.ts.map +1 -0
  8. package/dist/anti-detection/index.js +6 -0
  9. package/dist/anti-detection/index.js.map +1 -0
  10. package/dist/anti-detection/injection.d.ts +19 -0
  11. package/dist/anti-detection/injection.d.ts.map +1 -0
  12. package/dist/anti-detection/injection.js +270 -0
  13. package/dist/anti-detection/injection.js.map +1 -0
  14. package/dist/cdp/client.d.ts +73 -0
  15. package/dist/cdp/client.d.ts.map +1 -0
  16. package/dist/cdp/client.js +275 -0
  17. package/dist/cdp/client.js.map +1 -0
  18. package/dist/cdp/index.d.ts +6 -0
  19. package/dist/cdp/index.d.ts.map +1 -0
  20. package/dist/cdp/index.js +6 -0
  21. package/dist/cdp/index.js.map +1 -0
  22. package/dist/cdp/launcher.d.ts +42 -0
  23. package/dist/cdp/launcher.d.ts.map +1 -0
  24. package/dist/cdp/launcher.js +181 -0
  25. package/dist/cdp/launcher.js.map +1 -0
  26. package/dist/core/auto-wait.d.ts +71 -0
  27. package/dist/core/auto-wait.d.ts.map +1 -0
  28. package/dist/core/auto-wait.js +165 -0
  29. package/dist/core/auto-wait.js.map +1 -0
  30. package/dist/core/errors.d.ts +123 -0
  31. package/dist/core/errors.d.ts.map +1 -0
  32. package/dist/core/errors.js +226 -0
  33. package/dist/core/errors.js.map +1 -0
  34. package/dist/core/index.d.ts +10 -0
  35. package/dist/core/index.d.ts.map +1 -0
  36. package/dist/core/index.js +10 -0
  37. package/dist/core/index.js.map +1 -0
  38. package/dist/core/locator.d.ts +130 -0
  39. package/dist/core/locator.d.ts.map +1 -0
  40. package/dist/core/locator.js +402 -0
  41. package/dist/core/locator.js.map +1 -0
  42. package/dist/core/retry.d.ts +27 -0
  43. package/dist/core/retry.d.ts.map +1 -0
  44. package/dist/core/retry.js +51 -0
  45. package/dist/core/retry.js.map +1 -0
  46. package/dist/core/session.d.ts +254 -0
  47. package/dist/core/session.d.ts.map +1 -0
  48. package/dist/core/session.js +893 -0
  49. package/dist/core/session.js.map +1 -0
  50. package/dist/core/types.d.ts +263 -0
  51. package/dist/core/types.d.ts.map +1 -0
  52. package/dist/core/types.js +90 -0
  53. package/dist/core/types.js.map +1 -0
  54. package/dist/index.d.ts +14 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +121 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/tools/browse.d.ts +92 -0
  59. package/dist/tools/browse.d.ts.map +1 -0
  60. package/dist/tools/browse.js +368 -0
  61. package/dist/tools/browse.js.map +1 -0
  62. package/dist/tools/cookies.d.ts +75 -0
  63. package/dist/tools/cookies.d.ts.map +1 -0
  64. package/dist/tools/cookies.js +230 -0
  65. package/dist/tools/cookies.js.map +1 -0
  66. package/dist/tools/evaluate.d.ts +45 -0
  67. package/dist/tools/evaluate.d.ts.map +1 -0
  68. package/dist/tools/evaluate.js +85 -0
  69. package/dist/tools/evaluate.js.map +1 -0
  70. package/dist/tools/extract.d.ts +213 -0
  71. package/dist/tools/extract.d.ts.map +1 -0
  72. package/dist/tools/extract.js +304 -0
  73. package/dist/tools/extract.js.map +1 -0
  74. package/dist/tools/index.d.ts +13 -0
  75. package/dist/tools/index.d.ts.map +1 -0
  76. package/dist/tools/index.js +13 -0
  77. package/dist/tools/index.js.map +1 -0
  78. package/dist/tools/input.d.ts +241 -0
  79. package/dist/tools/input.d.ts.map +1 -0
  80. package/dist/tools/input.js +325 -0
  81. package/dist/tools/input.js.map +1 -0
  82. package/dist/tools/logs.d.ts +57 -0
  83. package/dist/tools/logs.d.ts.map +1 -0
  84. package/dist/tools/logs.js +165 -0
  85. package/dist/tools/logs.js.map +1 -0
  86. package/dist/tools/manage.d.ts +65 -0
  87. package/dist/tools/manage.d.ts.map +1 -0
  88. package/dist/tools/manage.js +270 -0
  89. package/dist/tools/manage.js.map +1 -0
  90. package/dist/tools/schema.d.ts +261 -0
  91. package/dist/tools/schema.d.ts.map +1 -0
  92. package/dist/tools/schema.js +151 -0
  93. package/dist/tools/schema.js.map +1 -0
  94. package/dist/tools/wait.d.ts +203 -0
  95. package/dist/tools/wait.d.ts.map +1 -0
  96. package/dist/tools/wait.js +254 -0
  97. package/dist/tools/wait.js.map +1 -0
  98. package/package.json +43 -0
  99. package/scripts/start-chrome-headless.sh +37 -0
  100. package/scripts/start-chrome.sh +41 -0
@@ -0,0 +1,254 @@
1
+ /**
2
+ * 会话管理
3
+ *
4
+ * 管理浏览器会话,包括:
5
+ * - CDP 客户端
6
+ * - 反检测注入
7
+ * - 页面状态
8
+ * - 日志收集
9
+ */
10
+ import { BehaviorSimulator } from '../anti-detection/index.js';
11
+ import { AutoWait } from './auto-wait.js';
12
+ import { Locator } from './locator.js';
13
+ import type { ConnectOptions, ConsoleLogEntry, Cookie, CookieOptions, LaunchOptions, NetworkRequestEntry, PageState, Target, TargetInfo, WaitUntil } from './types.js';
14
+ /**
15
+ * 会话状态
16
+ */
17
+ interface SessionState {
18
+ url: string;
19
+ title: string;
20
+ targetId: string;
21
+ }
22
+ /**
23
+ * 会话管理器(单例)
24
+ */
25
+ declare class SessionManager {
26
+ private static instance;
27
+ private static readonly MAX_LOG_ENTRIES;
28
+ private launcher;
29
+ private cdp;
30
+ private sessionId;
31
+ private currentTargetId;
32
+ private state;
33
+ private behaviorSimulator;
34
+ private stealthMode;
35
+ private operationLock;
36
+ private consoleLogs;
37
+ private networkRequests;
38
+ private requestMap;
39
+ private listenersInstalled;
40
+ private constructor();
41
+ static getInstance(): SessionManager;
42
+ /**
43
+ * 启动浏览器
44
+ */
45
+ launch(options?: LaunchOptions): Promise<TargetInfo>;
46
+ /**
47
+ * 连接到已运行的浏览器
48
+ */
49
+ connect(options: ConnectOptions): Promise<TargetInfo>;
50
+ /**
51
+ * 列出所有可用页面
52
+ */
53
+ listTargets(): Promise<TargetInfo[]>;
54
+ /**
55
+ * 附加到指定页面
56
+ */
57
+ attachToTarget(targetId: string): Promise<void>;
58
+ /**
59
+ * 导航到 URL
60
+ */
61
+ navigate(url: string, options?: {
62
+ wait?: WaitUntil;
63
+ timeout?: number;
64
+ }): Promise<void>;
65
+ /**
66
+ * 等待网络空闲(无进行中的请求且持续指定时间)
67
+ */
68
+ waitForNetworkIdle(timeout: number, idleTime?: number): Promise<void>;
69
+ /**
70
+ * 等待导航完成(Page.loadEventFired 事件)
71
+ */
72
+ waitForNavigation(timeout?: number): Promise<void>;
73
+ /**
74
+ * 后退
75
+ */
76
+ goBack(): Promise<void>;
77
+ /**
78
+ * 前进
79
+ */
80
+ goForward(): Promise<void>;
81
+ /**
82
+ * 刷新
83
+ */
84
+ reload(options?: {
85
+ ignoreCache?: boolean;
86
+ timeout?: number;
87
+ }): Promise<void>;
88
+ /**
89
+ * 创建定位器
90
+ */
91
+ createLocator(target: Target, options?: {
92
+ timeout?: number;
93
+ }): Locator;
94
+ /**
95
+ * 创建自动等待器
96
+ */
97
+ createAutoWait(options?: {
98
+ timeout?: number;
99
+ }): AutoWait;
100
+ /**
101
+ * 获取行为模拟器
102
+ */
103
+ getBehaviorSimulator(): BehaviorSimulator;
104
+ /**
105
+ * 鼠标移动
106
+ */
107
+ mouseMove(x: number, y: number): Promise<void>;
108
+ /**
109
+ * 鼠标按下
110
+ */
111
+ mouseDown(button?: 'left' | 'middle' | 'right' | 'back' | 'forward'): Promise<void>;
112
+ /**
113
+ * 鼠标释放
114
+ */
115
+ mouseUp(button?: 'left' | 'middle' | 'right' | 'back' | 'forward'): Promise<void>;
116
+ /**
117
+ * 滚轮
118
+ */
119
+ mouseWheel(deltaX: number, deltaY: number): Promise<void>;
120
+ /**
121
+ * 键盘按下
122
+ */
123
+ keyDown(key: string): Promise<void>;
124
+ /**
125
+ * 键盘释放
126
+ */
127
+ keyUp(key: string): Promise<void>;
128
+ /**
129
+ * 输入文本
130
+ */
131
+ type(text: string, delay?: number): Promise<void>;
132
+ /**
133
+ * 触屏开始
134
+ */
135
+ touchStart(x: number, y: number): Promise<void>;
136
+ /**
137
+ * 触屏移动
138
+ */
139
+ touchMove(x: number, y: number): Promise<void>;
140
+ /**
141
+ * 触屏结束
142
+ */
143
+ touchEnd(): Promise<void>;
144
+ /**
145
+ * 截图
146
+ */
147
+ screenshot(fullPage?: boolean): Promise<string>;
148
+ /**
149
+ * 获取页面状态
150
+ */
151
+ getPageState(): Promise<PageState>;
152
+ /**
153
+ * 获取 Cookies
154
+ */
155
+ getCookies(): Promise<Cookie[]>;
156
+ /**
157
+ * 设置 Cookie
158
+ */
159
+ setCookie(name: string, value: string, options?: CookieOptions): Promise<void>;
160
+ /**
161
+ * 删除 Cookie
162
+ */
163
+ deleteCookie(name: string): Promise<void>;
164
+ /**
165
+ * 清除所有 Cookies
166
+ */
167
+ clearCookies(): Promise<void>;
168
+ /**
169
+ * 获取控制台日志
170
+ */
171
+ getConsoleLogs(level?: string, limit?: number): ConsoleLogEntry[];
172
+ /**
173
+ * 获取网络请求日志
174
+ */
175
+ getNetworkRequests(urlPattern?: string, limit?: number): NetworkRequestEntry[];
176
+ /**
177
+ * 清除日志
178
+ */
179
+ clearLogs(): void;
180
+ /**
181
+ * 执行 JavaScript
182
+ */
183
+ evaluate<T>(script: string, args?: unknown[], timeout?: number): Promise<T>;
184
+ /**
185
+ * 设置视口
186
+ */
187
+ setViewport(width: number, height: number): Promise<void>;
188
+ /**
189
+ * 设置 User-Agent
190
+ */
191
+ setUserAgent(userAgent: string): Promise<void>;
192
+ /**
193
+ * 清除缓存
194
+ */
195
+ clearCache(type?: 'all' | 'cookies' | 'storage' | 'cache'): Promise<void>;
196
+ /**
197
+ * 新建页面
198
+ */
199
+ newPage(): Promise<TargetInfo>;
200
+ /**
201
+ * 关闭页面
202
+ */
203
+ closePage(targetId?: string): Promise<void>;
204
+ /**
205
+ * 关闭浏览器
206
+ */
207
+ close(): Promise<void>;
208
+ /**
209
+ * 获取当前状态
210
+ */
211
+ getState(): SessionState | null;
212
+ /**
213
+ * 是否已连接
214
+ */
215
+ isConnected(): boolean;
216
+ /**
217
+ * 是否有活跃会话
218
+ */
219
+ hasSession(): boolean;
220
+ /**
221
+ * 串行执行操作(防止并发竞态)
222
+ */
223
+ private withLock;
224
+ /**
225
+ * 初始化会话
226
+ */
227
+ private initSession;
228
+ /**
229
+ * 设置事件监听(幂等,只安装一次)
230
+ */
231
+ private setupEventListeners;
232
+ /**
233
+ * 更新页面状态
234
+ */
235
+ private updateState;
236
+ /**
237
+ * 发送 CDP 命令
238
+ */
239
+ private send;
240
+ /**
241
+ * 确保已连接
242
+ */
243
+ private ensureConnected;
244
+ /**
245
+ * 确保有活跃会话
246
+ */
247
+ private ensureSession;
248
+ }
249
+ /**
250
+ * 获取会话管理器实例
251
+ */
252
+ export declare function getSession(): SessionManager;
253
+ export {};
254
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}