ms-vite-plugin 1.1.2 → 1.1.3

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 (94) hide show
  1. package/dist/build.js +6 -0
  2. package/dist/cli.js +91 -1
  3. package/dist/mcp/device-config.d.ts +55 -0
  4. package/dist/mcp/device-config.js +183 -0
  5. package/dist/mcp/docs-service.d.ts +65 -0
  6. package/dist/mcp/docs-service.js +168 -0
  7. package/dist/mcp/project.d.ts +16 -0
  8. package/dist/mcp/project.js +74 -0
  9. package/dist/mcp/tools.d.ts +18 -0
  10. package/dist/mcp/tools.js +825 -0
  11. package/dist/mcp/types.d.ts +32 -0
  12. package/dist/mcp/types.js +11 -0
  13. package/dist/mcp-server.d.ts +2 -0
  14. package/dist/mcp-server.js +86 -0
  15. package/dist/project.d.ts +89 -0
  16. package/dist/project.js +306 -0
  17. package/dist/version.d.ts +12 -0
  18. package/dist/version.js +63 -0
  19. package/docs/api/action.md +922 -0
  20. package/docs/api/appleocr.md +229 -0
  21. package/docs/api/config.md +122 -0
  22. package/docs/api/cryptoUtils.md +232 -0
  23. package/docs/api/device.md +374 -0
  24. package/docs/api/file.md +516 -0
  25. package/docs/api/global.md +617 -0
  26. package/docs/api/hid.md +1032 -0
  27. package/docs/api/hotUpdate.md +166 -0
  28. package/docs/api/http.md +548 -0
  29. package/docs/api/image.md +907 -0
  30. package/docs/api/ime.md +290 -0
  31. package/docs/api/logger.md +324 -0
  32. package/docs/api/media.md +248 -0
  33. package/docs/api/mysql.md +441 -0
  34. package/docs/api/netCard.md +200 -0
  35. package/docs/api/node.md +353 -0
  36. package/docs/api/paddleocr.md +246 -0
  37. package/docs/api/pip.md +242 -0
  38. package/docs/api/system.md +572 -0
  39. package/docs/api/thread.md +269 -0
  40. package/docs/api/tomatoocr.md +425 -0
  41. package/docs/api/tts.md +334 -0
  42. package/docs/api/ui.md +947 -0
  43. package/docs/api/utils.md +265 -0
  44. package/docs/api/yolo.md +310 -0
  45. package/docs/apicn/action.md +919 -0
  46. package/docs/apicn/appleocr.md +233 -0
  47. package/docs/apicn/config.md +120 -0
  48. package/docs/apicn/device.md +385 -0
  49. package/docs/apicn/file.md +511 -0
  50. package/docs/apicn/global.md +613 -0
  51. package/docs/apicn/hid.md +1033 -0
  52. package/docs/apicn/hotUpdate.md +170 -0
  53. package/docs/apicn/http.md +672 -0
  54. package/docs/apicn/image.md +924 -0
  55. package/docs/apicn/ime.md +290 -0
  56. package/docs/apicn/logger.md +332 -0
  57. package/docs/apicn/media.md +252 -0
  58. package/docs/apicn/mysql.md +445 -0
  59. package/docs/apicn/netCard.md +200 -0
  60. package/docs/apicn/node.md +362 -0
  61. package/docs/apicn/paddleocr.md +255 -0
  62. package/docs/apicn/pip.md +242 -0
  63. package/docs/apicn/system.md +575 -0
  64. package/docs/apicn/thread.md +269 -0
  65. package/docs/apicn/tts.md +338 -0
  66. package/docs/apicn/ui.md +933 -0
  67. package/docs/apicn/utils.md +265 -0
  68. package/docs/apicn/yolo.md +314 -0
  69. package/docs/apipython/action.md +901 -0
  70. package/docs/apipython/appleocr.md +226 -0
  71. package/docs/apipython/config.md +126 -0
  72. package/docs/apipython/cryptoUtils.md +246 -0
  73. package/docs/apipython/device.md +365 -0
  74. package/docs/apipython/file.md +476 -0
  75. package/docs/apipython/g.md +154 -0
  76. package/docs/apipython/hid.md +1059 -0
  77. package/docs/apipython/hotUpdate.md +154 -0
  78. package/docs/apipython/image.md +938 -0
  79. package/docs/apipython/ime.md +306 -0
  80. package/docs/apipython/logger.md +330 -0
  81. package/docs/apipython/media.md +221 -0
  82. package/docs/apipython/mysql.md +432 -0
  83. package/docs/apipython/netCard.md +219 -0
  84. package/docs/apipython/node.md +331 -0
  85. package/docs/apipython/overview.md +66 -0
  86. package/docs/apipython/paddleocr.md +211 -0
  87. package/docs/apipython/pip.md +231 -0
  88. package/docs/apipython/system.md +458 -0
  89. package/docs/apipython/tomatoocr.md +444 -0
  90. package/docs/apipython/tts.md +331 -0
  91. package/docs/apipython/ui.md +949 -0
  92. package/docs/apipython/utils.md +284 -0
  93. package/docs/apipython/yolo.md +281 -0
  94. package/package.json +8 -4
@@ -0,0 +1,200 @@
1
+ # 卡密模块 ($卡密)
2
+
3
+ 卡密模块提供了卡密验证、备注设置以及键值对存储功能,用于管理网络卡密相关的操作。
4
+
5
+ ## 功能概览
6
+
7
+ - **卡密验证**: 验证卡密的有效性
8
+ - **备注管理**: 设置和管理卡密备注信息
9
+ - **云变量存储**: 提供键值对形式的数据存储和读取功能
10
+
11
+ ## 注意事项
12
+
13
+ 1. **卡密安全**: 卡密信息应当妥善保管,避免在日志中明文输出
14
+ 2. **API 调用顺序**: 验证卡密后,其他 api 才能调用
15
+
16
+ ## API 参考
17
+
18
+ ### 卡密验证
19
+
20
+ #### 验证 - 验证卡密
21
+
22
+ ```typescript
23
+ function 验证(卡密: 字符串): 布尔值;
24
+ ```
25
+
26
+ **参数说明:**
27
+
28
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
29
+ | ------ | ------ | -------- | ------ | -------------------- |
30
+ | `卡密` | 字符串 | 是 | | 需要验证的卡密字符串 |
31
+
32
+ **返回值:**
33
+
34
+ | 类型 | 描述 |
35
+ | -------- | ----------------------------------------------- |
36
+ | `布尔值` | 验证结果,true 表示验证成功,false 表示验证失败 |
37
+
38
+ **示例 1:**
39
+
40
+ ```typescript
41
+ // 验证卡密
42
+ const 卡号 = "ABC123456789";
43
+ const 是否验证成功 = $卡密.验证(卡号);
44
+
45
+ if (是否验证成功) {
46
+ $打印信息日志("卡密验证成功");
47
+ } else {
48
+ $打印错误日志("卡密验证失败");
49
+ // 注意卡密验证失败退出程序
50
+ $退出脚本();
51
+ }
52
+ ```
53
+
54
+ **示例 2:**
55
+
56
+ ```typescript
57
+ // 验证卡密 从配置中获取卡密
58
+ const 卡号 = $配置.获取("cardNo");
59
+ const 是否验证成功 = $卡密.验证(卡号);
60
+
61
+ if (是否验证成功) {
62
+ $打印信息日志("卡密验证成功");
63
+ } else {
64
+ $打印错误日志("卡密验证失败");
65
+ // 注意卡密验证失败退出程序
66
+ $退出脚本();
67
+ }
68
+ ```
69
+
70
+ ### 获取卡密信息
71
+
72
+ #### 获取卡密信息
73
+
74
+ ```typescript
75
+ function 获取卡密信息(): 卡密信息 | null;
76
+ ```
77
+
78
+ **返回值:**
79
+
80
+ | 类型 | 描述 |
81
+ | ---------- | ------------------------------------ |
82
+ | `卡密信息` | 卡密信息对象,包含卡密及备注和时间等 |
83
+
84
+ `卡密信息` 字段:
85
+
86
+ - `cardNo`: 卡密号码
87
+ - `batchCard`: 批量码
88
+ - `remark`: 备注
89
+ - `activeTime`: 激活时间
90
+ - `expireTime`: 过期时间
91
+
92
+ **示例:**
93
+
94
+ ```typescript
95
+ // 获取卡密信息
96
+ const 卡密信息 = $卡密.获取卡密信息();
97
+ $打印信息日志(JSON.stringify(卡密信息));
98
+ ```
99
+
100
+ ### 备注管理
101
+
102
+ #### 设置卡密备注
103
+
104
+ ```typescript
105
+ function 设置卡密备注(备注: 字符串): 布尔值;
106
+ ```
107
+
108
+ **参数说明:**
109
+
110
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
111
+ | ------ | ------ | -------- | ------ | -------------- |
112
+ | `备注` | 字符串 | 是 | | 备注信息字符串 |
113
+
114
+ **返回值:**
115
+
116
+ | 类型 | 描述 |
117
+ | -------- | ----------------------------------------------- |
118
+ | `布尔值` | 设置结果,true 表示设置成功,false 表示设置失败 |
119
+
120
+ **示例:**
121
+
122
+ ```typescript
123
+ // 设置卡密备注
124
+ const remark = "测试用户卡密";
125
+ const success = $卡密.设置卡密备注(remark);
126
+
127
+ if (success) {
128
+ $打印信息日志("备注设置成功");
129
+ } else {
130
+ $打印错误日志("备注设置失败");
131
+ }
132
+ ```
133
+
134
+ ### 云变量
135
+
136
+ #### 设置值 - 设置键值对
137
+
138
+ ```typescript
139
+ function 设置值(键: 字符串, 值: 字符串): 字符串;
140
+ ```
141
+
142
+ **参数说明:**
143
+
144
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
145
+ | ------ | ------ | -------- | ------ | ---------- |
146
+ | `键` | 字符串 | 是 | | 存储的键名 |
147
+ | `值` | 字符串 | 是 | | 存储的值 |
148
+
149
+ **返回值:**
150
+
151
+ | 类型 | 描述 |
152
+ | -------- | --------------------------------------------- |
153
+ | `字符串` | 成功时返回设置的 value 值,失败时返回空字符串 |
154
+
155
+ **示例:**
156
+
157
+ ```typescript
158
+ // 设置键值对
159
+ const key = "userConfig";
160
+ const value = "enableNotification";
161
+ const result = $卡密.设置值(key, value);
162
+
163
+ if (result === value) {
164
+ $打印信息日志(`成功设置 ${key}: ${value}`);
165
+ } else {
166
+ $打印错误日志("设置失败");
167
+ }
168
+ ```
169
+
170
+ #### 获取值 - 获取键值对
171
+
172
+ ```typescript
173
+ function 获取值(键: 字符串): 字符串;
174
+ ```
175
+
176
+ **参数说明:**
177
+
178
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
179
+ | ------ | ------ | -------- | ------ | ------------ |
180
+ | `键` | 字符串 | 是 | | 要获取的键名 |
181
+
182
+ **返回值:**
183
+
184
+ | 类型 | 描述 |
185
+ | -------- | ------------------------------------------------ |
186
+ | `字符串` | 成功时返回对应的值,失败或键不存在时返回空字符串 |
187
+
188
+ **示例:**
189
+
190
+ ```typescript
191
+ // 获取键值对
192
+ const key = "userConfig";
193
+ const value = $卡密.获取值(key);
194
+
195
+ if (value) {
196
+ $打印信息日志(`获取到配置: ${key} = ${value}`);
197
+ } else {
198
+ $打印警告日志(`配置 ${key} 不存在或获取失败"`);
199
+ }
200
+ ```
@@ -0,0 +1,362 @@
1
+ # 节点模块
2
+
3
+ 节点模块提供了强大的 UI 元素访问和操作功能,可以通过各种条件选择和操作界面元素。
4
+
5
+ **注意事项**
6
+
7
+ - 此模块仅支持 快点 Agent 模式使用
8
+ - 节点用完需要调用 `释放内存` 方法释放内存,找完节点就能释放,不需要点击后释放
9
+
10
+ ## 节点选择器 ($节点选择器)
11
+
12
+ 节点选择器是访问 UI 元素的核心工具,提供了灵活的筛选和查找机制。
13
+
14
+ ### 创建节点选择器
15
+
16
+ #### $创建节点选择器
17
+
18
+ 创建一个新的节点选择器实例。
19
+
20
+ ```typescript
21
+ function $创建节点选择器(params?: {
22
+ /**
23
+ * 代表要获取节点的层级,越少速度越快,默认 50
24
+ */
25
+ maxDepth?: 数字;
26
+ }): $节点选择器;
27
+ ```
28
+
29
+ **参数说明:**
30
+
31
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
32
+ | ---------- | ---- | -------- | ------ | --------------------------- |
33
+ | `maxDepth` | 数字 | 否 | 50 | 遍历的最大层级深度,默认 50 |
34
+
35
+ **返回值:**
36
+
37
+ | 类型 | 描述 |
38
+ | ------------- | ---------------------- |
39
+ | `$节点选择器` | 新创建的节点选择器实例 |
40
+
41
+ **示例:**
42
+
43
+ ```typescript
44
+ // 创建选择器
45
+ const selector = $创建节点选择器({
46
+ maxDepth: 20, // 最大20层深度
47
+ });
48
+ ```
49
+
50
+ ### 节点信息接口
51
+
52
+ #### $节点位置信息
53
+
54
+ ```typescript
55
+ interface $节点位置信息 {
56
+ x: 数字; // x坐标
57
+ y: 数字; // y坐标
58
+ width: 数字; // 宽度
59
+ height: 数字; // 高度
60
+ centerX: 数字; // 中心点x坐标
61
+ centerY: 数字; // 中心点y坐标
62
+ }
63
+ ```
64
+
65
+ #### $节点信息
66
+
67
+ ```typescript
68
+ interface $节点信息 {
69
+ id: 字符串; // 节点ID
70
+ identifier: 字符串; // 节点标识符
71
+ label: 字符串; // 节点标签
72
+ type: 字符串; // 节点类型
73
+ value: 字符串; // 节点值
74
+ placeholderValue: 字符串; // 节点占位符值
75
+ title: 字符串; // 节点名称
76
+ visible: 布尔值; // 是否可见
77
+ enabled: 布尔值; // 是否启用
78
+ bounds: $节点位置信息; // 边界信息
79
+ depth: 数字; // 层级深度
80
+ index: 数字; // 索引
81
+ parentId: 字符串; // 父节点ID
82
+ childCount: 数字; // 子节点数量
83
+
84
+ // 操作方法
85
+ 点击中心(): 布尔值; // 点击中心
86
+ 点击随机范围(): 布尔值; // 随机点击
87
+ hittable(): 布尔值; // 节点是否可接收事件,用于判断节点是否在屏幕可见
88
+ parent(): $节点信息 | null; // 获取父节点
89
+ child(index: 数字): $节点信息 | null; // 获取子节点
90
+ allChildren(): $节点信息[]; // 获取所有子节点
91
+ siblings(): $节点信息[]; // 获取兄弟节点
92
+ previousSiblings(): $节点信息[]; // 获取前面的兄弟节点
93
+ nextSiblings(): $节点信息[]; // 获取后面的兄弟节点
94
+ }
95
+ ```
96
+
97
+ ### 选择器方法
98
+
99
+ #### 获取节点
100
+
101
+ ```typescript
102
+ // 释放节点选择器占用的内存
103
+ function 释放内存(): 无返回值;
104
+
105
+ // xml - 获取当前页面的 XML 字符串
106
+ function xml(超时时间?: 数字): 字符串 | null;
107
+
108
+ // 获取多个节点
109
+ function 获取所有节点(超时时间?: 数字): 数组<$节点信息>;
110
+
111
+ // 获取单个节点
112
+ function 获取一个节点(超时时间?: 数字): $节点信息 | null;
113
+
114
+ // 加载节点数据
115
+ function 加载节点数据(超时时间?: 数字): $节点选择器;
116
+
117
+ // 清除所有选择条件
118
+ function 清除所有选择条件(): $节点选择器;
119
+ ```
120
+
121
+ **示例:**
122
+
123
+ ```typescript
124
+ const 选择器 = $创建节点选择器();
125
+ // 获取所有匹配的节点
126
+ const allNodes = 选择器.获取所有节点(5000);
127
+ $打印信息日志(`找到 ${allNodes.length} 个节点`);
128
+
129
+ // 获取第一个匹配的节点
130
+ const 第一个节点 = 选择器.获取一个节点(3000);
131
+ if (第一个节点) {
132
+ $打印信息日志(`节点标签: ${第一个节点.label}`);
133
+ }
134
+
135
+ // 释放选择器内存
136
+ 选择器.释放内存();
137
+ ```
138
+
139
+ #### 条件筛选
140
+
141
+ ##### 文本相关
142
+
143
+ ```typescript
144
+ // 精确匹配标签
145
+ label(label: 字符串): $节点选择器
146
+
147
+ // 标签模糊匹配
148
+ labelMatch(match: 字符串): $节点选择器
149
+
150
+ // 精确匹配名称
151
+ title(title: 字符串): $节点选择器
152
+
153
+ // 名称模糊匹配
154
+ titleMatch(match: 字符串): $节点选择器
155
+
156
+ // 精确匹配标识符
157
+ identifier(identifier: 字符串): $节点选择器
158
+
159
+ // 标识符模糊匹配
160
+ identifierMatch(match: 字符串): $节点选择器
161
+
162
+ // 精确匹配值
163
+ value(value: 字符串): $节点选择器
164
+
165
+ // 值模糊匹配
166
+ valueMatch(match: 字符串): $节点选择器
167
+ ```
168
+
169
+ **示例:**
170
+
171
+ ```typescript
172
+ const 选择器 = $创建节点选择器();
173
+ // 查找标签为"确定"的按钮
174
+ const confirmButton = 选择器.label("确定").获取一个节点(3000);
175
+
176
+ // 查找包含"登录"的元素
177
+ const loginElements = 选择器.labelMatch(".*登录.*").获取所有节点(3000);
178
+
179
+ // 查找名称包含"button"的元素
180
+ const buttons = 选择器.titleMatch("button").获取所有节点(3000);
181
+
182
+ // 查找值为"submit"的元素
183
+ const submitElement = 选择器.value("submit").获取一个节点(2000);
184
+
185
+ // 通过标识符查找
186
+ const 通过标识符 = 选择器.identifier("login_btn").获取一个节点(2000);
187
+ const 标识符模糊 = 选择器.identifierMatch("^login_.*").获取所有节点(3000);
188
+ ```
189
+
190
+ // 释放选择器内存
191
+ 选择器.释放内存();
192
+
193
+ ##### 类型和属性
194
+
195
+ ```typescript
196
+ // 精确匹配类型
197
+ type(type: string): $节点选择器
198
+
199
+ // 类型模糊匹配
200
+ typeMatch(match: string): $节点选择器
201
+
202
+ // 启用状态
203
+ enabled(enabled: boolean): $节点选择器
204
+
205
+ // 可见性
206
+ visible(visible: boolean): $节点选择器
207
+ ```
208
+
209
+ **示例:**
210
+
211
+ ```typescript
212
+ const 选择器 = $创建节点选择器();
213
+ // 查找所有按钮
214
+ const allButtons = 选择器.type("XCUIElementTypeButton").获取所有节点(3000);
215
+
216
+ // 查找所有文本框
217
+ const textFields = 选择器
218
+ .typeMatch("XCUIElementTypeTextField")
219
+ .获取所有节点(3000);
220
+
221
+ // 查找启用的元素
222
+ const enabledElements = 选择器.enabled(true).获取所有节点(3000);
223
+
224
+ // 释放选择器内存
225
+ 选择器.释放内存();
226
+ ```
227
+
228
+ ##### 位置和结构
229
+
230
+ ```typescript
231
+ // 索引位置
232
+ index(index: number): $节点选择器
233
+
234
+ // 层级深度
235
+ depth(depth: number): $节点选择器
236
+
237
+ // 子节点数量
238
+ childCount(childCount: number | string): $节点选择器
239
+
240
+ // 边界范围
241
+ bounds(x: number, y: number, width: number, height: number): $节点选择器
242
+
243
+ // XPath 路径
244
+ xpath(path: string): $节点选择器
245
+ ```
246
+
247
+ **示例:**
248
+
249
+ ```typescript
250
+ const 选择器 = $创建节点选择器();
251
+ // 查找第一个元素
252
+ const firstElement = 选择器.index(0).获取一个节点(2000);
253
+
254
+ // 查找特定深度的元素
255
+ const level3Elements = 选择器.depth(3).获取所有节点(3000);
256
+
257
+ // 查找有子节点的元素
258
+ const parentElements = 选择器.childCount(">0").获取所有节点(3000);
259
+
260
+ // 查找特定区域的元素
261
+ const regionElements = 选择器.bounds(100, 100, 200, 50).获取所有节点(3000);
262
+
263
+ // 使用 XPath 查找
264
+ const xpathElements = 选择器.xpath("//*[@title='快点JS']").获取所有节点(3000);
265
+
266
+ // 释放选择器内存
267
+ 选择器.释放内存();
268
+ ```
269
+
270
+ ### 节点操作
271
+
272
+ #### 点击操作
273
+
274
+ ```typescript
275
+ // 点击节点中心
276
+ node.点击中心(): 布尔值;
277
+
278
+ // 随机点击节点区域
279
+ node.点击随机范围(): 布尔值;
280
+
281
+ // 节点是否可接收事件(用于判断是否显示在屏幕上)
282
+ node.hittable(): 布尔值;
283
+ ```
284
+
285
+ **示例:**
286
+
287
+ ```typescript
288
+ const 选择器 = $创建节点选择器();
289
+ // 查找并点击确定按钮
290
+ const confirmBtn = 选择器
291
+ .label("确定")
292
+ .type("XCUIElementTypeButton")
293
+ .获取一个节点(3000);
294
+
295
+ if (confirmBtn) {
296
+ const isHittable = confirmBtn.hittable();
297
+ $打印信息日志(`是否可接收事件: ${isHittable}`);
298
+
299
+ const clicked = confirmBtn.点击中心();
300
+ if (clicked) {
301
+ $打印信息日志("成功点击确定按钮");
302
+ }
303
+ }
304
+
305
+ // 随机点击避免检测
306
+ const randomClick = confirmBtn?.点击随机范围();
307
+ if (randomClick) {
308
+ $打印信息日志("成功随机点击确定按钮");
309
+ }
310
+
311
+ // 释放选择器内存
312
+ 选择器.释放内存();
313
+ ```
314
+
315
+ #### 节点导航
316
+
317
+ ```typescript
318
+ // 获取父节点
319
+ node.parent(): $节点信息 | null
320
+
321
+ // 获取指定索引的子节点
322
+ node.child(index: number): $节点信息 | null
323
+
324
+ // 获取所有子节点
325
+ node.allChildren(): $节点信息[]
326
+
327
+ // 获取兄弟节点
328
+ node.siblings(): $节点信息[]
329
+
330
+ // 获取前面的兄弟节点
331
+ node.previousSiblings(): $节点信息[]
332
+
333
+ // 获取后面的兄弟节点
334
+ node.nextSiblings(): $节点信息[]
335
+ ```
336
+
337
+ **示例:**
338
+
339
+ ```typescript
340
+ const 选择器 = $创建节点选择器();
341
+ // 查找输入框并获取其父容器
342
+ const textField = 选择器.type("XCUIElementTypeTextField").获取一个节点(3000);
343
+
344
+ if (textField) {
345
+ const container = textField.parent();
346
+ if (container) {
347
+ $打印信息日志(`容器类型: ${container.type}`);
348
+
349
+ // 获取容器的所有子元素
350
+ const siblings = container.allChildren();
351
+ $打印信息日志(`容器包含 ${siblings.length} 个子元素`);
352
+
353
+ // 查找同级的按钮
354
+ const siblingButtons = siblings.filter(
355
+ (node) => node.type === "XCUIElementTypeButton"
356
+ );
357
+ }
358
+ }
359
+
360
+ // 释放选择器内存
361
+ 选择器.释放内存();
362
+ ```