ms-vite-plugin 1.4.37 → 1.4.39
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.
- package/bin/mac/kuaijs-forward-service +0 -0
- package/bin/mac/ms-bundle-enc +0 -0
- package/dist/build.js +16 -14
- package/dist/cli.js +2 -2
- package/dist/mcp/runtime-tools.js +2 -2
- package/dist/project.d.ts +1 -1
- package/dist/project.js +2 -2
- package/docs/api/file.md +48 -44
- package/docs/api/node.md +2 -2
- package/docs/api/pip.md +4 -4
- package/docs/apicn/file.md +48 -44
- package/docs/apicn/node.md +2 -2
- package/docs/apicn/pip.md +4 -4
- package/docs/apipython/file.md +50 -47
- package/docs/apipython/node.md +2 -2
- package/docs/apipython/pip.md +4 -4
- package/docs/httpapi/api.md +44 -1
- package/package.json +2 -2
|
Binary file
|
package/bin/mac/ms-bundle-enc
CHANGED
|
Binary file
|
package/dist/build.js
CHANGED
|
@@ -210,20 +210,22 @@ const buildAll = async (isDev = true, workspacePath) => {
|
|
|
210
210
|
...(isDev
|
|
211
211
|
? []
|
|
212
212
|
: [
|
|
213
|
-
(
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
213
|
+
(obfuscatorConfig.enabled ?? true)
|
|
214
|
+
? (0, vite_plugin_bundle_obfuscator_1.default)({
|
|
215
|
+
autoExcludeNodeModules: true,
|
|
216
|
+
threadPool: true,
|
|
217
|
+
options: {
|
|
218
|
+
...obfuscatorConfig,
|
|
219
|
+
target: "browser",
|
|
220
|
+
debugProtection: false,
|
|
221
|
+
disableConsoleOutput: false,
|
|
222
|
+
domainLock: [],
|
|
223
|
+
selfDefending: false,
|
|
224
|
+
renameGlobals: false,
|
|
225
|
+
renameProperties: false,
|
|
226
|
+
},
|
|
227
|
+
})
|
|
228
|
+
: [],
|
|
227
229
|
]),
|
|
228
230
|
],
|
|
229
231
|
});
|
package/dist/cli.js
CHANGED
|
@@ -536,7 +536,7 @@ async function sourceCommand(options) {
|
|
|
536
536
|
if (!Number.isInteger(timeout) || timeout < 1) {
|
|
537
537
|
throw new Error(`无效 timeout: ${timeoutText}`);
|
|
538
538
|
}
|
|
539
|
-
if (!Number.isInteger(mode) || (mode !== 1 && mode !== 2)) {
|
|
539
|
+
if (!Number.isInteger(mode) || (mode !== 1 && mode !== 2 && mode !== 3)) {
|
|
540
540
|
throw new Error(`无效 mode: ${modeText}`);
|
|
541
541
|
}
|
|
542
542
|
const source = await (0, project_1.getSourceOnDevice)(options, maxDepth, timeout, mode);
|
|
@@ -1102,7 +1102,7 @@ commander_1.program
|
|
|
1102
1102
|
.option("--ws-wait-ms <wsWaitMs>", "WS 等待设备连接时间(毫秒)", "30000")
|
|
1103
1103
|
.option("--max-depth <maxDepth>", "节点最大深度", "50")
|
|
1104
1104
|
.option("--timeout <timeout>", "节点抓取超时秒数", "120")
|
|
1105
|
-
.option("--mode <mode>", "节点抓取模式: 1=模式1, 2=模式2", "1")
|
|
1105
|
+
.option("--mode <mode>", "节点抓取模式: 1=模式1, 2=模式2, 3=模式3", "1")
|
|
1106
1106
|
.option("--output <output>", "节点 XML 输出文件路径(可选)")
|
|
1107
1107
|
.action(sourceCommand);
|
|
1108
1108
|
// 日志命令
|
|
@@ -207,10 +207,10 @@ function registerRuntimeTools(server) {
|
|
|
207
207
|
.number()
|
|
208
208
|
.int()
|
|
209
209
|
.min(1)
|
|
210
|
-
.max(
|
|
210
|
+
.max(3)
|
|
211
211
|
.optional()
|
|
212
212
|
.default(1)
|
|
213
|
-
.describe("节点抓取模式:1
|
|
213
|
+
.describe("节点抓取模式:1、2、3,默认 1"),
|
|
214
214
|
outputPath: z
|
|
215
215
|
.string()
|
|
216
216
|
.min(1)
|
package/dist/project.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export declare function getScreenshotBase64OnDevice(options: DeviceCliOptions):
|
|
|
39
39
|
* @param options 命令选项(transport 仅支持 http)
|
|
40
40
|
* @param maxDepth 节点最大深度,默认 50
|
|
41
41
|
* @param timeout 获取节点超时秒数,默认 120
|
|
42
|
-
* @param mode
|
|
42
|
+
* @param mode 节点抓取模式,支持 1、2、3,默认 1
|
|
43
43
|
* @returns 返回 XML 字符串
|
|
44
44
|
* @example
|
|
45
45
|
* const xml = await getSourceOnDevice({ ip: "192.168.1.10", port: "9800" }, 50, 120, 1)
|
package/dist/project.js
CHANGED
|
@@ -428,7 +428,7 @@ async function getScreenshotBase64OnDevice(options) {
|
|
|
428
428
|
* @param options 命令选项(transport 仅支持 http)
|
|
429
429
|
* @param maxDepth 节点最大深度,默认 50
|
|
430
430
|
* @param timeout 获取节点超时秒数,默认 120
|
|
431
|
-
* @param mode
|
|
431
|
+
* @param mode 节点抓取模式,支持 1、2、3,默认 1
|
|
432
432
|
* @returns 返回 XML 字符串
|
|
433
433
|
* @example
|
|
434
434
|
* const xml = await getSourceOnDevice({ ip: "192.168.1.10", port: "9800" }, 50, 120, 1)
|
|
@@ -441,7 +441,7 @@ async function getSourceOnDevice(options, maxDepth = 50, timeout = 120, mode = 1
|
|
|
441
441
|
if (!Number.isInteger(timeout) || timeout < 1) {
|
|
442
442
|
throw new Error(`无效 timeout: ${timeout}`);
|
|
443
443
|
}
|
|
444
|
-
if (!Number.isInteger(mode) || (mode !== 1 && mode !== 2)) {
|
|
444
|
+
if (!Number.isInteger(mode) || (mode !== 1 && mode !== 2 && mode !== 3)) {
|
|
445
445
|
throw new Error(`无效 mode: ${mode}`);
|
|
446
446
|
}
|
|
447
447
|
if (transport === "ws") {
|
package/docs/api/file.md
CHANGED
|
@@ -47,50 +47,6 @@ logi(`文档目录: ${documentsDir}`);
|
|
|
47
47
|
logi(`临时目录: ${tempDir}`);
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
#### getDataDir - 获取应用数据目录路径。
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
function getDataDir(): string;
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**返回值:**
|
|
57
|
-
|
|
58
|
-
| 类型 | 描述 |
|
|
59
|
-
| -------- | ---------------- |
|
|
60
|
-
| `string` | 应用数据目录路径 |
|
|
61
|
-
|
|
62
|
-
**示例:**
|
|
63
|
-
|
|
64
|
-
```javascript
|
|
65
|
-
const dataDir = file.getDataDir();
|
|
66
|
-
logi(`数据目录: ${dataDir}`);
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
#### getDataFile - 获取应用数据文件的完整路径。
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
function getDataFile(file: string): string;
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**参数:**
|
|
76
|
-
|
|
77
|
-
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
78
|
-
| ------ | ------ | -------- | ------ | ------------ |
|
|
79
|
-
| `file` | string | 是 | - | 文件名或路径 |
|
|
80
|
-
|
|
81
|
-
**返回值:**
|
|
82
|
-
|
|
83
|
-
| 类型 | 描述 |
|
|
84
|
-
| -------- | ------------ |
|
|
85
|
-
| `string` | 文件完整路径 |
|
|
86
|
-
|
|
87
|
-
**示例:**
|
|
88
|
-
|
|
89
|
-
```javascript
|
|
90
|
-
const configPath = file.getDataFile("config.json");
|
|
91
|
-
logi(`配置文件路径: ${configPath}`);
|
|
92
|
-
```
|
|
93
|
-
|
|
94
50
|
#### mkdirs - 创建目录(支持递归创建)。
|
|
95
51
|
|
|
96
52
|
```typescript
|
|
@@ -328,6 +284,54 @@ if (config) {
|
|
|
328
284
|
}
|
|
329
285
|
```
|
|
330
286
|
|
|
287
|
+
#### getResFile - 获取 `res` 资源的本地文件路径。
|
|
288
|
+
|
|
289
|
+
适用于需要真实文件路径的场景(如模型文件、音视频)。用完后应调用 `cleanupResFile`。
|
|
290
|
+
|
|
291
|
+
```typescript
|
|
292
|
+
function getResFile(fileName: string): string | null;
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**参数:**
|
|
296
|
+
|
|
297
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
298
|
+
| ---------- | ------ | -------- | ------ | --------------------- |
|
|
299
|
+
| `fileName` | string | 是 | - | 相对 `res` 目录的路径 |
|
|
300
|
+
|
|
301
|
+
**返回值:**
|
|
302
|
+
|
|
303
|
+
| 类型 | 描述 |
|
|
304
|
+
| -------------- | ----------------------------------------- |
|
|
305
|
+
| `string\|null` | 本地文件绝对路径;失败或不存在时返回 null |
|
|
306
|
+
|
|
307
|
+
**示例:**
|
|
308
|
+
|
|
309
|
+
```javascript
|
|
310
|
+
const path = file.getResFile("model.bin");
|
|
311
|
+
if (path) {
|
|
312
|
+
// 使用 path ...
|
|
313
|
+
file.cleanupResFile(path);
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
#### cleanupResFile - 清理由 `getResFile` 得到的本地文件。
|
|
318
|
+
|
|
319
|
+
```typescript
|
|
320
|
+
function cleanupResFile(path: string): void;
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**参数:**
|
|
324
|
+
|
|
325
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
326
|
+
| ------ | ------ | -------- | ------ | ------------------------- |
|
|
327
|
+
| `path` | string | 是 | - | `getResFile` 返回的文件路径 |
|
|
328
|
+
|
|
329
|
+
**示例:**
|
|
330
|
+
|
|
331
|
+
```javascript
|
|
332
|
+
file.cleanupResFile(path);
|
|
333
|
+
```
|
|
334
|
+
|
|
331
335
|
#### writeFile - 写入文件内容(覆盖原有内容)。
|
|
332
336
|
|
|
333
337
|
```typescript
|
package/docs/api/node.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
```typescript
|
|
21
21
|
function createNodeSelector(params?: {
|
|
22
22
|
maxDepth?: number; // 最大层级深度,默认 50
|
|
23
|
-
mode?: number; // 抓取模式:模式 1、模式 2,默认模式 1
|
|
23
|
+
mode?: number; // 抓取模式:模式 1、模式 2、模式 3,默认模式 1
|
|
24
24
|
}): NodeSelector;
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -29,7 +29,7 @@ function createNodeSelector(params?: {
|
|
|
29
29
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
30
30
|
| ---------- | ------ | -------- | ------ | --------------------------- |
|
|
31
31
|
| `maxDepth` | number | 否 | 50 | 遍历的最大层级深度,默认 50 |
|
|
32
|
-
| `mode` | number | 否 | 1 |
|
|
32
|
+
| `mode` | number | 否 | 1 | 抓取模式。支持模式 1、模式 2、模式 3,默认模式 1 |
|
|
33
33
|
|
|
34
34
|
**返回值:**
|
|
35
35
|
|
package/docs/api/pip.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- **显示模式**:支持日志、保活和自定义三种显示模式;首次安装默认保活
|
|
8
8
|
- **关闭控制**:支持主动关闭悬浮窗
|
|
9
9
|
- **状态查询**:判断悬浮窗是否正在显示
|
|
10
|
-
-
|
|
10
|
+
- **尺寸设置**:日志模式和自定义模式支持设置内容宽高比(实际显示尺寸由系统决定),并按模式分别持久化
|
|
11
11
|
- **日志显示**:日志模式支持设置日志文字大小
|
|
12
12
|
- **自定义文本**:自定义模式支持文本、换行、文字颜色、背景色和文字大小
|
|
13
13
|
|
|
@@ -129,14 +129,14 @@ const success = pip.closeWindow();
|
|
|
129
129
|
function setContentSize(width: number, height: number): boolean;
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
设置日志模式或自定义模式的悬浮窗内容尺寸。传入的宽高表示宽高比,不是最终像素尺寸;悬浮窗实际显示的宽高由系统决定。宽度和高度都必须传入有效数字。日志模式和自定义模式会分别保存尺寸;悬浮窗关闭状态和保活模式不会生效。
|
|
133
133
|
|
|
134
134
|
**参数:**
|
|
135
135
|
|
|
136
136
|
| 参数 | 类型 | 必填 | 描述 |
|
|
137
137
|
| -------- | ---------------- | ---- | ---------------------------------------------- |
|
|
138
|
-
| `width` | `number` | 是 |
|
|
139
|
-
| `height` | `number` | 是 |
|
|
138
|
+
| `width` | `number` | 是 | 宽度方向比例值(与 `height` 共同决定宽高比,不是像素) |
|
|
139
|
+
| `height` | `number` | 是 | 高度方向比例值(与 `width` 共同决定宽高比,不是像素) |
|
|
140
140
|
|
|
141
141
|
**返回值:**
|
|
142
142
|
|
package/docs/apicn/file.md
CHANGED
|
@@ -47,50 +47,6 @@ $打印信息日志(`文档目录: ${文档目录}`);
|
|
|
47
47
|
$打印信息日志(`临时目录: ${临时目录}`);
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
#### 获取数据目录
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
function 获取数据目录(): 字符串;
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**返回值:**
|
|
57
|
-
|
|
58
|
-
| 类型 | 描述 |
|
|
59
|
-
| -------- | ---------------- |
|
|
60
|
-
| `字符串` | 应用数据目录路径 |
|
|
61
|
-
|
|
62
|
-
**示例:**
|
|
63
|
-
|
|
64
|
-
```javascript
|
|
65
|
-
const 数据目录 = $文件.获取数据目录();
|
|
66
|
-
$打印信息日志(`数据目录: ${数据目录}`);
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
#### 获取数据文件路径
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
function 获取数据文件路径(文件名称: 字符串): 字符串;
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**参数:**
|
|
76
|
-
|
|
77
|
-
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
78
|
-
| ---------- | ------ | -------- | ------ | ------------ |
|
|
79
|
-
| `文件名称` | 字符串 | 是 | - | 文件名或路径 |
|
|
80
|
-
|
|
81
|
-
**返回值:**
|
|
82
|
-
|
|
83
|
-
| 类型 | 描述 |
|
|
84
|
-
| -------- | ------------ |
|
|
85
|
-
| `字符串` | 文件完整路径 |
|
|
86
|
-
|
|
87
|
-
**示例:**
|
|
88
|
-
|
|
89
|
-
```javascript
|
|
90
|
-
const 配置文件路径 = $文件.获取数据文件路径("config.json");
|
|
91
|
-
$打印信息日志(`配置文件路径: ${配置文件路径}`);
|
|
92
|
-
```
|
|
93
|
-
|
|
94
50
|
#### 创建目录 - 创建目录(支持递归创建)。
|
|
95
51
|
|
|
96
52
|
```typescript
|
|
@@ -331,6 +287,54 @@ if (配置文件内容) {
|
|
|
331
287
|
}
|
|
332
288
|
```
|
|
333
289
|
|
|
290
|
+
#### 获取资源文件 - 获取 `res` 资源的本地文件路径。
|
|
291
|
+
|
|
292
|
+
适用于需要真实文件路径的场景(如模型文件、音视频)。用完后应调用 `清理资源文件`。
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
function 获取资源文件(文件名: 字符串): 字符串 | null;
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**参数:**
|
|
299
|
+
|
|
300
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
301
|
+
| -------- | ------ | -------- | ------ | --------------------- |
|
|
302
|
+
| `文件名` | 字符串 | 是 | - | 相对 `res` 目录的路径 |
|
|
303
|
+
|
|
304
|
+
**返回值:**
|
|
305
|
+
|
|
306
|
+
| 类型 | 描述 |
|
|
307
|
+
| -------------- | ------------------------------------------ |
|
|
308
|
+
| `字符串\|null` | 本地文件绝对路径;失败或不存在时返回 null |
|
|
309
|
+
|
|
310
|
+
**示例:**
|
|
311
|
+
|
|
312
|
+
```javascript
|
|
313
|
+
const 路径 = $文件.获取资源文件("model.bin");
|
|
314
|
+
if (路径) {
|
|
315
|
+
// 使用 路径 ...
|
|
316
|
+
$文件.清理资源文件(路径);
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
#### 清理资源文件 - 清理由 `获取资源文件` 得到的本地文件。
|
|
321
|
+
|
|
322
|
+
```typescript
|
|
323
|
+
function 清理资源文件(文件路径: 字符串): void;
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
**参数:**
|
|
327
|
+
|
|
328
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
329
|
+
| ---------- | ------ | -------- | ------ | ---------------------------- |
|
|
330
|
+
| `文件路径` | 字符串 | 是 | - | `获取资源文件` 返回的文件路径 |
|
|
331
|
+
|
|
332
|
+
**示例:**
|
|
333
|
+
|
|
334
|
+
```javascript
|
|
335
|
+
$文件.清理资源文件(路径);
|
|
336
|
+
```
|
|
337
|
+
|
|
334
338
|
#### 写入文件 - 写入文件内容(覆盖原有内容)。
|
|
335
339
|
|
|
336
340
|
```typescript
|
package/docs/apicn/node.md
CHANGED
|
@@ -24,7 +24,7 @@ function $创建节点选择器(params?: {
|
|
|
24
24
|
*/
|
|
25
25
|
maxDepth?: 数字;
|
|
26
26
|
/**
|
|
27
|
-
* 抓取模式:模式 1、模式 2,默认模式 1
|
|
27
|
+
* 抓取模式:模式 1、模式 2、模式 3,默认模式 1
|
|
28
28
|
*/
|
|
29
29
|
mode?: 数字;
|
|
30
30
|
}): $节点选择器;
|
|
@@ -35,7 +35,7 @@ function $创建节点选择器(params?: {
|
|
|
35
35
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
36
36
|
| ---------- | ---- | -------- | ------ | --------------------------- |
|
|
37
37
|
| `maxDepth` | 数字 | 否 | 50 | 遍历的最大层级深度,默认 50 |
|
|
38
|
-
| `mode` | 数字 | 否 | 1 |
|
|
38
|
+
| `mode` | 数字 | 否 | 1 | 抓取模式。支持模式 1、模式 2、模式 3,默认模式 1 |
|
|
39
39
|
|
|
40
40
|
**返回值:**
|
|
41
41
|
|
package/docs/apicn/pip.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- **显示模式**:支持日志、保活和自定义三种显示模式;首次安装默认保活
|
|
8
8
|
- **关闭控制**:支持主动关闭悬浮窗
|
|
9
9
|
- **状态查询**:判断悬浮窗是否正在显示
|
|
10
|
-
-
|
|
10
|
+
- **尺寸设置**:日志模式和自定义模式支持设置内容宽高比(实际显示尺寸由系统决定),并按模式分别持久化
|
|
11
11
|
- **日志显示**:日志模式支持设置日志文字大小
|
|
12
12
|
- **自定义文本**:自定义模式支持文本、换行、文字颜色、背景色和文字大小
|
|
13
13
|
|
|
@@ -129,14 +129,14 @@ const 是否成功 = $悬浮窗.关闭悬浮窗();
|
|
|
129
129
|
function 设置内容尺寸(宽度: 数字, 高度: 数字): 布尔值;
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
设置日志模式或自定义模式的悬浮窗内容尺寸。传入的宽高表示宽高比,不是最终像素尺寸;悬浮窗实际显示的宽高由系统决定。宽度和高度都必须传入有效数字。日志模式和自定义模式会分别保存尺寸;悬浮窗关闭状态和保活模式不会生效。
|
|
133
133
|
|
|
134
134
|
**参数:**
|
|
135
135
|
|
|
136
136
|
| 参数 | 类型 | 必填 | 描述 |
|
|
137
137
|
| ------ | ------------- | ---- | ---------------------------------------------- |
|
|
138
|
-
| `宽度` | `数字` | 是 |
|
|
139
|
-
| `高度` | `数字` | 是 |
|
|
138
|
+
| `宽度` | `数字` | 是 | 宽度方向比例值(与高度共同决定宽高比,不是像素) |
|
|
139
|
+
| `高度` | `数字` | 是 | 高度方向比例值(与宽度共同决定宽高比,不是像素) |
|
|
140
140
|
|
|
141
141
|
**返回值:**
|
|
142
142
|
|
package/docs/apipython/file.md
CHANGED
|
@@ -48,52 +48,6 @@ print(documents_dir)
|
|
|
48
48
|
print(temp_dir)
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
#### getDataDir - 获取应用数据目录路径
|
|
52
|
-
|
|
53
|
-
```python
|
|
54
|
-
def getDataDir() -> str
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**返回值:**
|
|
58
|
-
|
|
59
|
-
| 类型 | 描述 |
|
|
60
|
-
| ----- | ---------------- |
|
|
61
|
-
| `str` | 应用数据目录路径 |
|
|
62
|
-
|
|
63
|
-
**示例:**
|
|
64
|
-
|
|
65
|
-
```python
|
|
66
|
-
from kuaijs import file
|
|
67
|
-
data_dir = file.getDataDir()
|
|
68
|
-
print(data_dir)
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
#### getDataFile - 获取应用数据文件的完整路径
|
|
72
|
-
|
|
73
|
-
```python
|
|
74
|
-
def getDataFile(file: str) -> str
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**参数:**
|
|
78
|
-
|
|
79
|
-
| 参数名 | 类型 | 是否必填 | 描述 |
|
|
80
|
-
| ------ | ---- | -------- | ------------ |
|
|
81
|
-
| `file` | str | 是 | 文件名或路径 |
|
|
82
|
-
|
|
83
|
-
**返回值:**
|
|
84
|
-
|
|
85
|
-
| 类型 | 描述 |
|
|
86
|
-
| ----- | ------------ |
|
|
87
|
-
| `str` | 文件完整路径 |
|
|
88
|
-
|
|
89
|
-
**示例:**
|
|
90
|
-
|
|
91
|
-
```python
|
|
92
|
-
from kuaijs import file
|
|
93
|
-
config_path = file.getDataFile("config.json")
|
|
94
|
-
print(config_path)
|
|
95
|
-
```
|
|
96
|
-
|
|
97
51
|
#### mkdirs - 创建目录(支持递归创建)
|
|
98
52
|
|
|
99
53
|
```python
|
|
@@ -281,7 +235,7 @@ def readFile(path: str) -> Optional[str]
|
|
|
281
235
|
|
|
282
236
|
```python
|
|
283
237
|
from kuaijs import file
|
|
284
|
-
p = file.
|
|
238
|
+
p = file.getInternalDir("documents") + "/read.txt"
|
|
285
239
|
file.writeFile(p, "line1\nline2")
|
|
286
240
|
print(file.readFile(p))
|
|
287
241
|
```
|
|
@@ -315,6 +269,55 @@ if config:
|
|
|
315
269
|
print(config)
|
|
316
270
|
```
|
|
317
271
|
|
|
272
|
+
#### getResFile - 获取 res 资源的本地文件路径
|
|
273
|
+
|
|
274
|
+
适用于需要真实文件路径的场景(如模型文件、音视频)。用完后应调用 `cleanupResFile`。
|
|
275
|
+
|
|
276
|
+
```python
|
|
277
|
+
def getResFile(fileName: str) -> Optional[str]
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**参数:**
|
|
281
|
+
|
|
282
|
+
| 参数名 | 类型 | 是否必填 | 描述 |
|
|
283
|
+
| ---------- | ---- | -------- | --------------------- |
|
|
284
|
+
| `fileName` | str | 是 | 相对 `res` 目录的路径 |
|
|
285
|
+
|
|
286
|
+
**返回值:**
|
|
287
|
+
|
|
288
|
+
| 类型 | 描述 |
|
|
289
|
+
| ------------- | ---------------------------------------- |
|
|
290
|
+
| `str \| None` | 本地文件绝对路径;失败或不存在时返回 None |
|
|
291
|
+
|
|
292
|
+
**示例:**
|
|
293
|
+
|
|
294
|
+
```python
|
|
295
|
+
from kuaijs import file
|
|
296
|
+
path = file.getResFile("model.bin")
|
|
297
|
+
if path:
|
|
298
|
+
# 使用 path ...
|
|
299
|
+
file.cleanupResFile(path)
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
#### cleanupResFile - 清理由 getResFile 得到的本地文件
|
|
303
|
+
|
|
304
|
+
```python
|
|
305
|
+
def cleanupResFile(path: str) -> None
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**参数:**
|
|
309
|
+
|
|
310
|
+
| 参数名 | 类型 | 是否必填 | 描述 |
|
|
311
|
+
| ------ | ---- | -------- | -------------------------- |
|
|
312
|
+
| `path` | str | 是 | `getResFile` 返回的文件路径 |
|
|
313
|
+
|
|
314
|
+
**示例:**
|
|
315
|
+
|
|
316
|
+
```python
|
|
317
|
+
from kuaijs import file
|
|
318
|
+
file.cleanupResFile(path)
|
|
319
|
+
```
|
|
320
|
+
|
|
318
321
|
#### writeFile - 写入文件内容(覆盖)
|
|
319
322
|
|
|
320
323
|
```python
|
package/docs/apipython/node.md
CHANGED
|
@@ -46,7 +46,7 @@ class NodeInfo:
|
|
|
46
46
|
|
|
47
47
|
class NodeSelectorOptions(TypedDict, total=False):
|
|
48
48
|
maxDepth: int # 最大层级深度,默认 50
|
|
49
|
-
mode: int # 抓取模式:模式 1、模式 2,默认模式 1
|
|
49
|
+
mode: int # 抓取模式:模式 1、模式 2、模式 3,默认模式 1
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
## 节点选择器 (NodeSelector)
|
|
@@ -68,7 +68,7 @@ def createNodeSelector(params: Optional[NodeSelectorOptions] = None) -> NodeSele
|
|
|
68
68
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
69
69
|
| ---------- | ---- | -------- | ------ | --------------------- |
|
|
70
70
|
| `maxDepth` | int | 否 | 50 | 最大层级深度,默认 50 |
|
|
71
|
-
| `mode` | int | 否 | 1 |
|
|
71
|
+
| `mode` | int | 否 | 1 | 抓取模式。支持模式 1、模式 2、模式 3,默认模式 1 |
|
|
72
72
|
|
|
73
73
|
**返回值:** `NodeSelector`
|
|
74
74
|
|
package/docs/apipython/pip.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- **显示模式**:支持日志、保活和自定义三种显示模式;首次安装默认保活
|
|
8
8
|
- **关闭控制**:支持主动关闭悬浮窗
|
|
9
9
|
- **状态查询**:判断悬浮窗是否正在显示
|
|
10
|
-
-
|
|
10
|
+
- **尺寸设置**:日志模式和自定义模式支持设置内容宽高比(实际显示尺寸由系统决定),并按模式分别持久化
|
|
11
11
|
- **日志显示**:日志模式支持设置日志文字大小
|
|
12
12
|
- **自定义文本**:自定义模式支持文本、换行、文字颜色、背景色和文字大小
|
|
13
13
|
|
|
@@ -133,7 +133,7 @@ success = pip.closeWindow()
|
|
|
133
133
|
|
|
134
134
|
### setContentSize - 设置内容尺寸
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
设置日志模式或自定义模式的悬浮窗内容尺寸。传入的宽高表示宽高比,不是最终像素尺寸;悬浮窗实际显示的宽高由系统决定。宽度和高度都必须传入有效数字。日志模式和自定义模式会分别保存尺寸;悬浮窗关闭状态和保活模式不会生效。
|
|
137
137
|
|
|
138
138
|
```python
|
|
139
139
|
def setContentSize(width: float, height: float) -> bool
|
|
@@ -143,8 +143,8 @@ def setContentSize(width: float, height: float) -> bool
|
|
|
143
143
|
|
|
144
144
|
| 参数 | 类型 | 必填 | 描述 |
|
|
145
145
|
| -------- | ---------------- | ---- | ----------------------------- |
|
|
146
|
-
| `width` | `float` | 是 |
|
|
147
|
-
| `height` | `float` | 是 |
|
|
146
|
+
| `width` | `float` | 是 | 宽度方向比例值(与 `height` 共同决定宽高比,不是像素) |
|
|
147
|
+
| `height` | `float` | 是 | 高度方向比例值(与 `width` 共同决定宽高比,不是像素) |
|
|
148
148
|
|
|
149
149
|
**返回值:**
|
|
150
150
|
|
package/docs/httpapi/api.md
CHANGED
|
@@ -159,7 +159,7 @@ GET /api/source
|
|
|
159
159
|
| --------- | ----- | ------- | ---- | ------------------ |
|
|
160
160
|
| max_depth | query | integer | 是 | 页面深度,值越小快照成本越低 |
|
|
161
161
|
| timeout | query | integer | 是 | 超时时间(单位秒) |
|
|
162
|
-
| mode | query | integer | 否 |
|
|
162
|
+
| mode | query | integer | 否 | 抓取模式。支持模式 1、模式 2、模式 3,默认模式 1 |
|
|
163
163
|
|
|
164
164
|
> 返回示例
|
|
165
165
|
|
|
@@ -2819,6 +2819,49 @@ GET /api/hid/mouseUp
|
|
|
2819
2819
|
| --------- | ------- | ---- | ---- | -------- | ---- |
|
|
2820
2820
|
| » success | boolean | true | none | 是否成功 | none |
|
|
2821
2821
|
|
|
2822
|
+
## GET 获取 HID 设备信息
|
|
2823
|
+
|
|
2824
|
+
GET /api/hid/deviceInfo
|
|
2825
|
+
|
|
2826
|
+
返回当前 HID 设备连接状态与基础信息。未连接时 `connected` 为 `false`,其余字符串字段为空。`name` 在纯 USB 链路下通常为空;BLE 为外设蓝牙名。
|
|
2827
|
+
|
|
2828
|
+
> 返回示例
|
|
2829
|
+
|
|
2830
|
+
> 200 Response
|
|
2831
|
+
|
|
2832
|
+
```json
|
|
2833
|
+
{
|
|
2834
|
+
"success": true,
|
|
2835
|
+
"data": {
|
|
2836
|
+
"connected": true,
|
|
2837
|
+
"name": "KUAIJS_BLE_HID",
|
|
2838
|
+
"mac": "AA:BB:CC:DD:EE:FF",
|
|
2839
|
+
"model": "esp32s3",
|
|
2840
|
+
"version": "3.0.9"
|
|
2841
|
+
}
|
|
2842
|
+
}
|
|
2843
|
+
```
|
|
2844
|
+
|
|
2845
|
+
### 返回结果
|
|
2846
|
+
|
|
2847
|
+
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|
|
2848
|
+
| ------ | ------------------------------------------------------- | ---- | -------- |
|
|
2849
|
+
| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | none | Inline |
|
|
2850
|
+
|
|
2851
|
+
### 返回数据结构
|
|
2852
|
+
|
|
2853
|
+
状态码 **200**
|
|
2854
|
+
|
|
2855
|
+
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|
|
2856
|
+
| ------------ | ------- | ---- | ---- | -------- | ---- |
|
|
2857
|
+
| » success | boolean | true | none | 是否成功 | none |
|
|
2858
|
+
| » data | object | true | none | 设备信息 | none |
|
|
2859
|
+
| »» connected | boolean | true | none | 连接状态 | USB 或 BLE 任一就绪为 `true` |
|
|
2860
|
+
| »» name | string | true | none | 设备名称 | BLE 外设名;USB 通常为 `""` |
|
|
2861
|
+
| »» mac | string | true | none | 设备 MAC | 未连接或查询失败为 `""` |
|
|
2862
|
+
| »» model | string | true | none | 设备型号 | 如 `esp32s3`;失败为 `""` |
|
|
2863
|
+
| »» version | string | true | none | 设备版本 | 固件版本;失败为 `""` |
|
|
2864
|
+
|
|
2822
2865
|
## POST 保存图像到相册
|
|
2823
2866
|
|
|
2824
2867
|
POST /api/media/saveImageToAlbum
|