@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 @@
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/tools/extract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 工具模块导出
3
+ */
4
+ export { browseToolDefinition, handleBrowse } from './browse.js';
5
+ export { inputToolDefinition, handleInput } from './input.js';
6
+ export { extractToolDefinition, handleExtract } from './extract.js';
7
+ export { waitToolDefinition, handleWait } from './wait.js';
8
+ export { cookiesToolDefinition, handleCookies } from './cookies.js';
9
+ export { logsToolDefinition, handleLogs } from './logs.js';
10
+ export { evaluateToolDefinition, handleEvaluate } from './evaluate.js';
11
+ export { manageToolDefinition, handleManage } from './manage.js';
12
+ export { targetJsonSchema, targetZodSchema } from './schema.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,oBAAoB,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAC,mBAAmB,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAC,qBAAqB,EAAE,aAAa,EAAC,MAAM,cAAc,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,WAAW,CAAA;AACxD,OAAO,EAAC,qBAAqB,EAAE,aAAa,EAAC,MAAM,cAAc,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,WAAW,CAAA;AACxD,OAAO,EAAC,sBAAsB,EAAE,cAAc,EAAC,MAAM,eAAe,CAAA;AACpE,OAAO,EAAC,oBAAoB,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,aAAa,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 工具模块导出
3
+ */
4
+ export { browseToolDefinition, handleBrowse } from './browse.js';
5
+ export { inputToolDefinition, handleInput } from './input.js';
6
+ export { extractToolDefinition, handleExtract } from './extract.js';
7
+ export { waitToolDefinition, handleWait } from './wait.js';
8
+ export { cookiesToolDefinition, handleCookies } from './cookies.js';
9
+ export { logsToolDefinition, handleLogs } from './logs.js';
10
+ export { evaluateToolDefinition, handleEvaluate } from './evaluate.js';
11
+ export { manageToolDefinition, handleManage } from './manage.js';
12
+ export { targetJsonSchema, targetZodSchema } from './schema.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,oBAAoB,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAC,mBAAmB,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAC,qBAAqB,EAAE,aAAa,EAAC,MAAM,cAAc,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,WAAW,CAAA;AACxD,OAAO,EAAC,qBAAqB,EAAE,aAAa,EAAC,MAAM,cAAc,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,WAAW,CAAA;AACxD,OAAO,EAAC,sBAAsB,EAAE,cAAc,EAAC,MAAM,eAAe,CAAA;AACpE,OAAO,EAAC,oBAAoB,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,aAAa,CAAA"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * input 工具
3
+ *
4
+ * 键鼠输入:键盘、鼠标及任意组合(事件序列)
5
+ *
6
+ * 设计原则:
7
+ * - 事件序列模型:所有键鼠操作本质是事件序列
8
+ * - 支持任意组合:Ctrl+Alt+A+左键+右键+拖拽
9
+ * - humanize 可选:行为模拟是可选功能
10
+ */
11
+ /**
12
+ * input 工具定义
13
+ */
14
+ export declare const inputToolDefinition: {
15
+ name: string;
16
+ description: string;
17
+ inputSchema: {
18
+ type: "object";
19
+ properties: {
20
+ events: {
21
+ type: string;
22
+ description: string;
23
+ items: {
24
+ type: string;
25
+ properties: {
26
+ type: {
27
+ type: string;
28
+ enum: string[];
29
+ description: string;
30
+ };
31
+ key: {
32
+ type: string;
33
+ description: string;
34
+ };
35
+ button: {
36
+ type: string;
37
+ enum: string[];
38
+ description: string;
39
+ };
40
+ target: {
41
+ description: string;
42
+ oneOf: readonly [{
43
+ readonly type: "object";
44
+ readonly title: "可访问性树定位";
45
+ readonly description: "通过 ARIA role 和 name 定位元素";
46
+ readonly properties: {
47
+ readonly role: {
48
+ readonly type: "string";
49
+ readonly description: "ARIA role(如 button、link、textbox)";
50
+ };
51
+ readonly name: {
52
+ readonly type: "string";
53
+ readonly description: "可访问名称(可选)";
54
+ };
55
+ };
56
+ readonly required: readonly ["role"];
57
+ readonly additionalProperties: false;
58
+ }, {
59
+ readonly type: "object";
60
+ readonly title: "文本内容定位";
61
+ readonly description: "通过元素文本内容定位";
62
+ readonly properties: {
63
+ readonly text: {
64
+ readonly type: "string";
65
+ readonly description: "文本内容";
66
+ };
67
+ readonly exact: {
68
+ readonly type: "boolean";
69
+ readonly description: "是否精确匹配(默认 false)";
70
+ };
71
+ };
72
+ readonly required: readonly ["text"];
73
+ readonly additionalProperties: false;
74
+ }, {
75
+ readonly type: "object";
76
+ readonly title: "Label 定位";
77
+ readonly description: "通过表单 label 文本定位关联的输入元素";
78
+ readonly properties: {
79
+ readonly label: {
80
+ readonly type: "string";
81
+ readonly description: "label 文本";
82
+ };
83
+ readonly exact: {
84
+ readonly type: "boolean";
85
+ readonly description: "是否精确匹配(默认 false)";
86
+ };
87
+ };
88
+ readonly required: readonly ["label"];
89
+ readonly additionalProperties: false;
90
+ }, {
91
+ readonly type: "object";
92
+ readonly title: "Placeholder 定位";
93
+ readonly description: "通过输入框的 placeholder 属性定位";
94
+ readonly properties: {
95
+ readonly placeholder: {
96
+ readonly type: "string";
97
+ readonly description: "placeholder 文本";
98
+ };
99
+ readonly exact: {
100
+ readonly type: "boolean";
101
+ readonly description: "是否精确匹配(默认 false)";
102
+ };
103
+ };
104
+ readonly required: readonly ["placeholder"];
105
+ readonly additionalProperties: false;
106
+ }, {
107
+ readonly type: "object";
108
+ readonly title: "Title 属性定位";
109
+ readonly description: "通过元素的 title 属性定位";
110
+ readonly properties: {
111
+ readonly title: {
112
+ readonly type: "string";
113
+ readonly description: "title 属性值";
114
+ };
115
+ readonly exact: {
116
+ readonly type: "boolean";
117
+ readonly description: "是否精确匹配(默认 false)";
118
+ };
119
+ };
120
+ readonly required: readonly ["title"];
121
+ readonly additionalProperties: false;
122
+ }, {
123
+ readonly type: "object";
124
+ readonly title: "Alt 属性定位";
125
+ readonly description: "通过图片的 alt 属性定位";
126
+ readonly properties: {
127
+ readonly alt: {
128
+ readonly type: "string";
129
+ readonly description: "alt 属性值";
130
+ };
131
+ readonly exact: {
132
+ readonly type: "boolean";
133
+ readonly description: "是否精确匹配(默认 false)";
134
+ };
135
+ };
136
+ readonly required: readonly ["alt"];
137
+ readonly additionalProperties: false;
138
+ }, {
139
+ readonly type: "object";
140
+ readonly title: "TestId 定位";
141
+ readonly description: "通过 data-testid 属性定位";
142
+ readonly properties: {
143
+ readonly testId: {
144
+ readonly type: "string";
145
+ readonly description: "data-testid 值";
146
+ };
147
+ };
148
+ readonly required: readonly ["testId"];
149
+ readonly additionalProperties: false;
150
+ }, {
151
+ readonly type: "object";
152
+ readonly title: "CSS 选择器定位";
153
+ readonly description: "通过 CSS 选择器定位";
154
+ readonly properties: {
155
+ readonly css: {
156
+ readonly type: "string";
157
+ readonly description: "CSS 选择器";
158
+ };
159
+ };
160
+ readonly required: readonly ["css"];
161
+ readonly additionalProperties: false;
162
+ }, {
163
+ readonly type: "object";
164
+ readonly title: "XPath 定位";
165
+ readonly description: "通过 XPath 表达式定位";
166
+ readonly properties: {
167
+ readonly xpath: {
168
+ readonly type: "string";
169
+ readonly description: "XPath 表达式";
170
+ };
171
+ };
172
+ readonly required: readonly ["xpath"];
173
+ readonly additionalProperties: false;
174
+ }, {
175
+ readonly type: "object";
176
+ readonly title: "坐标定位";
177
+ readonly description: "通过页面坐标定位";
178
+ readonly properties: {
179
+ readonly x: {
180
+ readonly type: "number";
181
+ readonly description: "X 坐标(像素)";
182
+ };
183
+ readonly y: {
184
+ readonly type: "number";
185
+ readonly description: "Y 坐标(像素)";
186
+ };
187
+ };
188
+ readonly required: readonly ["x", "y"];
189
+ readonly additionalProperties: false;
190
+ }];
191
+ };
192
+ steps: {
193
+ type: string;
194
+ description: string;
195
+ };
196
+ deltaX: {
197
+ type: string;
198
+ description: string;
199
+ };
200
+ deltaY: {
201
+ type: string;
202
+ description: string;
203
+ };
204
+ text: {
205
+ type: string;
206
+ description: string;
207
+ };
208
+ delay: {
209
+ type: string;
210
+ description: string;
211
+ };
212
+ ms: {
213
+ type: string;
214
+ description: string;
215
+ };
216
+ };
217
+ };
218
+ };
219
+ humanize: {
220
+ type: string;
221
+ description: string;
222
+ };
223
+ timeout: {
224
+ type: string;
225
+ description: string;
226
+ };
227
+ };
228
+ required: string[];
229
+ };
230
+ };
231
+ /**
232
+ * input 工具处理器
233
+ */
234
+ export declare function handleInput(params: unknown): Promise<{
235
+ content: Array<{
236
+ type: 'text';
237
+ text: string;
238
+ }>;
239
+ isError?: boolean;
240
+ }>;
241
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgF/B,CAAA;AAyCD;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IACxD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,CAyBD"}
@@ -0,0 +1,325 @@
1
+ /**
2
+ * input 工具
3
+ *
4
+ * 键鼠输入:键盘、鼠标及任意组合(事件序列)
5
+ *
6
+ * 设计原则:
7
+ * - 事件序列模型:所有键鼠操作本质是事件序列
8
+ * - 支持任意组合:Ctrl+Alt+A+左键+右键+拖拽
9
+ * - humanize 可选:行为模拟是可选功能
10
+ */
11
+ import { z } from 'zod';
12
+ import { generateBezierPath, getMouseMoveDelay, getTypingDelay, randomDelay } from '../anti-detection/index.js';
13
+ import { formatErrorResponse, getSession } from '../core/index.js';
14
+ import { targetJsonSchema, targetZodSchema } from './schema.js';
15
+ /**
16
+ * input 工具定义
17
+ */
18
+ export const inputToolDefinition = {
19
+ name: 'input',
20
+ description: '键鼠输入:键盘、鼠标及任意组合',
21
+ inputSchema: {
22
+ type: 'object',
23
+ properties: {
24
+ events: {
25
+ type: 'array',
26
+ description: '事件序列',
27
+ items: {
28
+ type: 'object',
29
+ properties: {
30
+ type: {
31
+ type: 'string',
32
+ enum: [
33
+ 'keydown',
34
+ 'keyup',
35
+ 'mousedown',
36
+ 'mouseup',
37
+ 'mousemove',
38
+ 'wheel',
39
+ 'touchstart',
40
+ 'touchmove',
41
+ 'touchend',
42
+ 'type',
43
+ 'wait',
44
+ ],
45
+ description: '事件类型',
46
+ },
47
+ key: {
48
+ type: 'string',
49
+ description: '按键(keydown/keyup)',
50
+ },
51
+ button: {
52
+ type: 'string',
53
+ enum: ['left', 'middle', 'right', 'back', 'forward'],
54
+ description: '鼠标按钮',
55
+ },
56
+ target: {
57
+ ...targetJsonSchema,
58
+ description: '目标元素(mousemove/touchstart/touchmove 必填;mousedown/wheel/type 可选,用于先定位再操作)',
59
+ },
60
+ steps: {
61
+ type: 'number',
62
+ description: '移动步数(mousemove/touchmove)',
63
+ },
64
+ deltaX: {
65
+ type: 'number',
66
+ description: '水平滚动量',
67
+ },
68
+ deltaY: {
69
+ type: 'number',
70
+ description: '垂直滚动量',
71
+ },
72
+ text: {
73
+ type: 'string',
74
+ description: '输入文本',
75
+ },
76
+ delay: {
77
+ type: 'number',
78
+ description: '按键间隔毫秒',
79
+ },
80
+ ms: {
81
+ type: 'number',
82
+ description: '等待毫秒',
83
+ },
84
+ },
85
+ },
86
+ },
87
+ humanize: {
88
+ type: 'boolean',
89
+ description: '启用人类行为模拟(贝塞尔曲线移动、随机延迟)',
90
+ },
91
+ timeout: {
92
+ type: 'number',
93
+ description: '超时毫秒',
94
+ },
95
+ },
96
+ required: ['events'],
97
+ },
98
+ };
99
+ /**
100
+ * InputEvent schema
101
+ */
102
+ const inputEventSchema = z.object({
103
+ type: z.enum([
104
+ 'keydown',
105
+ 'keyup',
106
+ 'mousedown',
107
+ 'mouseup',
108
+ 'mousemove',
109
+ 'wheel',
110
+ 'touchstart',
111
+ 'touchmove',
112
+ 'touchend',
113
+ 'type',
114
+ 'wait',
115
+ ]),
116
+ key: z.string().optional(),
117
+ button: z.enum(['left', 'middle', 'right', 'back', 'forward']).optional(),
118
+ target: targetZodSchema.optional(),
119
+ steps: z.number().optional(),
120
+ deltaX: z.number().optional(),
121
+ deltaY: z.number().optional(),
122
+ text: z.string().optional(),
123
+ delay: z.number().optional(),
124
+ ms: z.number().optional(),
125
+ });
126
+ /**
127
+ * input 参数 schema
128
+ */
129
+ const inputSchema = z.object({
130
+ events: z.array(inputEventSchema),
131
+ humanize: z.boolean().optional(),
132
+ timeout: z.number().optional(),
133
+ });
134
+ /**
135
+ * input 工具处理器
136
+ */
137
+ export async function handleInput(params) {
138
+ try {
139
+ const args = inputSchema.parse(params);
140
+ const session = getSession();
141
+ const humanize = args.humanize ?? false;
142
+ // 执行事件序列
143
+ for (const event of args.events) {
144
+ await executeEvent(session, event, humanize, args.timeout);
145
+ }
146
+ return {
147
+ content: [
148
+ {
149
+ type: 'text',
150
+ text: JSON.stringify({
151
+ success: true,
152
+ eventsExecuted: args.events.length,
153
+ }),
154
+ },
155
+ ],
156
+ };
157
+ }
158
+ catch (error) {
159
+ return formatErrorResponse(error);
160
+ }
161
+ }
162
+ /**
163
+ * 执行单个事件
164
+ */
165
+ async function executeEvent(session, event, humanize, timeout) {
166
+ switch (event.type) {
167
+ case 'keydown': {
168
+ if (!event.key) {
169
+ throw new Error('keydown 事件需要 key 参数');
170
+ }
171
+ await session.keyDown(event.key);
172
+ break;
173
+ }
174
+ case 'keyup': {
175
+ if (!event.key) {
176
+ throw new Error('keyup 事件需要 key 参数');
177
+ }
178
+ await session.keyUp(event.key);
179
+ break;
180
+ }
181
+ case 'mousedown': {
182
+ // 如果有 target,先移动到目标位置
183
+ if (event.target) {
184
+ await moveToTarget(session, event.target, humanize, timeout);
185
+ }
186
+ await session.mouseDown(event.button ?? 'left');
187
+ break;
188
+ }
189
+ case 'mouseup': {
190
+ await session.mouseUp(event.button ?? 'left');
191
+ break;
192
+ }
193
+ case 'mousemove': {
194
+ if (!event.target) {
195
+ throw new Error('mousemove 事件需要 target 参数');
196
+ }
197
+ await moveToTarget(session, event.target, humanize, timeout, event.steps);
198
+ break;
199
+ }
200
+ case 'wheel': {
201
+ // 如果有 target,先移动到目标位置
202
+ if (event.target) {
203
+ await moveToTarget(session, event.target, humanize, timeout);
204
+ }
205
+ await session.mouseWheel(event.deltaX ?? 0, event.deltaY ?? 0);
206
+ break;
207
+ }
208
+ case 'touchstart': {
209
+ if (!event.target) {
210
+ throw new Error('touchstart 事件需要 target 参数');
211
+ }
212
+ const point = await getTargetPoint(session, event.target, timeout);
213
+ await session.touchStart(point.x, point.y);
214
+ break;
215
+ }
216
+ case 'touchmove': {
217
+ if (!event.target) {
218
+ throw new Error('touchmove 事件需要 target 参数');
219
+ }
220
+ const point = await getTargetPoint(session, event.target, timeout);
221
+ if (humanize && event.steps && event.steps > 1) {
222
+ // 人类化触屏移动
223
+ const current = session.getBehaviorSimulator().getCurrentPosition();
224
+ const path = generateBezierPath(current, point, event.steps);
225
+ for (const p of path) {
226
+ await session.touchMove(p.x, p.y);
227
+ await randomDelay(5, 15);
228
+ }
229
+ }
230
+ else {
231
+ await session.touchMove(point.x, point.y);
232
+ }
233
+ break;
234
+ }
235
+ case 'touchend': {
236
+ await session.touchEnd();
237
+ break;
238
+ }
239
+ case 'type': {
240
+ if (!event.text) {
241
+ throw new Error('type 事件需要 text 参数');
242
+ }
243
+ // 如果有 target,先点击目标(聚焦),使用 input 等待类型
244
+ if (event.target) {
245
+ await moveToTarget(session, event.target, humanize, timeout, undefined, 'input');
246
+ await session.mouseDown('left');
247
+ await session.mouseUp('left');
248
+ }
249
+ const delay = event.delay ?? 0;
250
+ if (humanize) {
251
+ // 人类化打字
252
+ for (const char of event.text) {
253
+ await session.type(char);
254
+ await randomDelay(getTypingDelay(delay), getTypingDelay(delay) * 1.5);
255
+ }
256
+ }
257
+ else {
258
+ await session.type(event.text, delay);
259
+ }
260
+ break;
261
+ }
262
+ case 'wait': {
263
+ if (!event.ms) {
264
+ throw new Error('wait 事件需要 ms 参数');
265
+ }
266
+ await new Promise((resolve) => setTimeout(resolve, event.ms));
267
+ break;
268
+ }
269
+ default:
270
+ throw new Error(`未知事件类型: ${event.type}`);
271
+ }
272
+ }
273
+ /**
274
+ * 移动到目标位置
275
+ */
276
+ async function moveToTarget(session, target, humanize, timeout, steps, waitType = 'click') {
277
+ const point = await getTargetPoint(session, target, timeout, waitType);
278
+ const simulator = session.getBehaviorSimulator();
279
+ if (humanize) {
280
+ // 人类化鼠标移动(贝塞尔曲线)
281
+ const path = generateBezierPath(simulator.getCurrentPosition(), point, steps);
282
+ for (const p of path) {
283
+ await session.mouseMove(p.x, p.y);
284
+ await randomDelay(getMouseMoveDelay(), getMouseMoveDelay() * 2);
285
+ }
286
+ }
287
+ else if (steps && steps > 1) {
288
+ // 直线移动,分步
289
+ const current = simulator.getCurrentPosition();
290
+ for (let i = 1; i <= steps; i++) {
291
+ const t = i / steps;
292
+ const x = current.x + (point.x - current.x) * t;
293
+ const y = current.y + (point.y - current.y) * t;
294
+ await session.mouseMove(x, y);
295
+ }
296
+ }
297
+ else {
298
+ // 直接移动
299
+ await session.mouseMove(point.x, point.y);
300
+ }
301
+ }
302
+ /**
303
+ * 获取目标点坐标(带自动等待)
304
+ */
305
+ async function getTargetPoint(session, target, timeout, waitType = 'click') {
306
+ // 如果是坐标,直接返回
307
+ if ('x' in target && 'y' in target) {
308
+ return { x: target.x, y: target.y };
309
+ }
310
+ // 使用 Locator 定位元素
311
+ const locator = session.createLocator(target, { timeout });
312
+ const nodeId = await locator.find();
313
+ // 根据操作类型执行自动等待
314
+ if (waitType !== 'none') {
315
+ const autoWait = session.createAutoWait({ timeout });
316
+ if (waitType === 'click') {
317
+ await autoWait.waitForClickable(nodeId);
318
+ }
319
+ else if (waitType === 'input') {
320
+ await autoWait.waitForInputReady(nodeId);
321
+ }
322
+ }
323
+ return locator.getClickablePoint();
324
+ }
325
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"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"}