ms-vite-plugin 1.4.58 → 1.4.60

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 (83) hide show
  1. package/dist/luaBundle.js +1 -1
  2. package/dist/luaObfuscator/addVararg.d.ts +2 -0
  3. package/dist/luaObfuscator/addVararg.js +1 -0
  4. package/dist/luaObfuscator/antiTamper.d.ts +2 -0
  5. package/dist/luaObfuscator/antiTamper.js +26 -0
  6. package/dist/luaObfuscator/ast.d.ts +191 -0
  7. package/dist/luaObfuscator/ast.js +1 -0
  8. package/dist/luaObfuscator/cipher.d.ts +10 -0
  9. package/dist/luaObfuscator/cipher.js +28 -0
  10. package/dist/luaObfuscator/compiler.d.ts +31 -0
  11. package/dist/luaObfuscator/compiler.js +1 -0
  12. package/dist/luaObfuscator/constantArray.d.ts +5 -0
  13. package/dist/luaObfuscator/constantArray.js +1 -0
  14. package/dist/luaObfuscator/flatten.d.ts +2 -0
  15. package/dist/luaObfuscator/flatten.js +1 -0
  16. package/dist/luaObfuscator/index.d.ts +6 -0
  17. package/dist/luaObfuscator/index.js +1 -0
  18. package/dist/luaObfuscator/lexer.d.ts +14 -0
  19. package/dist/luaObfuscator/lexer.js +10 -0
  20. package/dist/luaObfuscator/minify.d.ts +3 -0
  21. package/dist/luaObfuscator/minify.js +1 -0
  22. package/dist/luaObfuscator/numbers.d.ts +2 -0
  23. package/dist/luaObfuscator/numbers.js +1 -0
  24. package/dist/luaObfuscator/opcodes.d.ts +3 -0
  25. package/dist/luaObfuscator/opcodes.js +1 -0
  26. package/dist/luaObfuscator/parser.d.ts +8 -0
  27. package/dist/luaObfuscator/parser.js +1 -0
  28. package/dist/luaObfuscator/rename.d.ts +3 -0
  29. package/dist/luaObfuscator/rename.js +1 -0
  30. package/dist/luaObfuscator/reserved.d.ts +5 -0
  31. package/dist/luaObfuscator/reserved.js +1 -0
  32. package/dist/luaObfuscator/scope.d.ts +11 -0
  33. package/dist/luaObfuscator/scope.js +1 -0
  34. package/dist/luaObfuscator/selftest.d.ts +1 -0
  35. package/dist/luaObfuscator/selftest.js +39 -0
  36. package/dist/luaObfuscator/splitStrings.d.ts +2 -0
  37. package/dist/luaObfuscator/splitStrings.js +1 -0
  38. package/dist/luaObfuscator/strings.d.ts +4 -0
  39. package/dist/luaObfuscator/strings.js +1 -0
  40. package/dist/luaObfuscator/visit.d.ts +5 -0
  41. package/dist/luaObfuscator/visit.js +1 -0
  42. package/dist/luaObfuscator/vmEmit.d.ts +2 -0
  43. package/dist/luaObfuscator/vmEmit.js +281 -0
  44. package/dist/luaObfuscator/wrapInFunction.d.ts +2 -0
  45. package/dist/luaObfuscator/wrapInFunction.js +1 -0
  46. package/docs/AGENTS.md +1 -1
  47. package/docs/SKILL.md +1 -1
  48. package/docs/api/media.md +22 -0
  49. package/docs/apicn/media.md +22 -0
  50. package/docs/apilua/action.md +2 -27
  51. package/docs/apilua/appleocr.md +41 -126
  52. package/docs/apilua/cloud.md +2 -6
  53. package/docs/apilua/config.md +2 -6
  54. package/docs/apilua/cryptoUtils.md +2 -7
  55. package/docs/apilua/device.md +2 -19
  56. package/docs/apilua/dotocr.md +2 -5
  57. package/docs/apilua/file.md +2 -17
  58. package/docs/apilua/global.md +1 -1
  59. package/docs/apilua/hid.md +2 -44
  60. package/docs/apilua/hotUpdate.md +2 -3
  61. package/docs/apilua/http.md +2 -7
  62. package/docs/apilua/image.md +16 -107
  63. package/docs/apilua/ime.md +2 -10
  64. package/docs/apilua/logger.md +3 -9
  65. package/docs/apilua/media.md +2 -9
  66. package/docs/apilua/mysql.md +2 -10
  67. package/docs/apilua/netCard.md +2 -6
  68. package/docs/apilua/node.md +2 -3
  69. package/docs/apilua/opencv.md +4 -30
  70. package/docs/apilua/paddleocr.md +20 -126
  71. package/docs/apilua/pip.md +2 -12
  72. package/docs/apilua/system.md +2 -40
  73. package/docs/apilua/tomatoocr.md +2 -16
  74. package/docs/apilua/tts.md +2 -9
  75. package/docs/apilua/ui.md +3 -22
  76. package/docs/apilua/utils.md +2 -9
  77. package/docs/apilua/yolo.md +25 -119
  78. package/docs/apilua/yolocls.md +2 -5
  79. package/docs/apipython/media.md +20 -0
  80. package/docs/mcp-agent-description.md +1 -1
  81. package/docs/quick/vscode/createProject.md +1 -1
  82. package/docs/quick/vscode/packProject.md +1 -1
  83. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  # 图片模块 (Image)
2
2
 
3
+ 模块表是内置全局 `image`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  图片模块提供了强大的图像处理功能,包括截图、图像识别、模板匹配、颜色查找、图像变换等。
4
6
 
5
7
  注意所有的 `imageId` 都需要在使用后释放,否则会导致内存泄漏。
@@ -18,8 +20,6 @@
18
20
 
19
21
  ### captureScreen - 截取屏幕。
20
22
 
21
- 坐标缺省 `0` 表示全屏。四个坐标都传 `0` 时与 `captureFullScreen` 相同。
22
-
23
23
  ```lua
24
24
  ---@param x number?
25
25
  ---@param y number?
@@ -47,8 +47,6 @@ function captureScreen(x, y, ex, ey) end
47
47
  **示例:**
48
48
 
49
49
  ```lua
50
- local image = require("image")
51
- local file = require("file")
52
50
  local dir = file.getInternalDir("documents")
53
51
 
54
52
  -- 全屏截图
@@ -66,77 +64,6 @@ if rectId then
66
64
  end
67
65
  ```
68
66
 
69
- ### captureFullScreen - 截取全屏。
70
-
71
- ```lua
72
- ---@return string|nil
73
- function captureFullScreen() end
74
- ```
75
-
76
- **返回值:**
77
-
78
- | 类型 | 描述 |
79
- | --------------- | -------------------------------- |
80
- | `string \| nil` | 截图的图片 ID,失败时返回 `nil` |
81
-
82
- **示例:**
83
-
84
- ```lua
85
- local image = require("image")
86
- local file = require("file")
87
- local imageId = image.captureFullScreen()
88
- local dir = file.getInternalDir("documents")
89
- if imageId then
90
- print("截图成功")
91
- image.saveTo(imageId, dir .. "/screenshot.jpg")
92
- image.release(imageId)
93
- else
94
- print("截图失败")
95
- end
96
- ```
97
-
98
- ### captureRect - 截取指定区域。
99
-
100
- ```lua
101
- ---@param x number?
102
- ---@param y number?
103
- ---@param ex number?
104
- ---@param ey number?
105
- ---@return string|nil
106
- function captureRect(x, y, ex, ey) end
107
- ```
108
-
109
- **参数:**
110
-
111
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
112
- | ------ | ------ | -------- | ------ | ----------------- |
113
- | `x` | number | 否 | 0 | 区域左上角 X 坐标 |
114
- | `y` | number | 否 | 0 | 区域左上角 Y 坐标 |
115
- | `ex` | number | 否 | 0 | 区域右下角 X 坐标 |
116
- | `ey` | number | 否 | 0 | 区域右下角 Y 坐标 |
117
-
118
- **返回值:**
119
-
120
- | 类型 | 描述 |
121
- | --------------- | -------------------------------- |
122
- | `string \| nil` | 截图的图片 ID,失败时返回 `nil` |
123
-
124
- **示例:**
125
-
126
- ```lua
127
- local image = require("image")
128
- local file = require("file")
129
- local imageId = image.captureRect(100, 100, 200, 200)
130
- local dir = file.getInternalDir("documents")
131
- if imageId then
132
- print("截图成功")
133
- image.saveTo(imageId, dir .. "/screenshot.jpg")
134
- image.release(imageId)
135
- else
136
- print("截图失败")
137
- end
138
- ```
139
-
140
67
  ### readImage - 从文件路径或imageId读取图片。
141
68
 
142
69
  ```lua
@@ -160,7 +87,6 @@ function readImage(path) end
160
87
  **示例:**
161
88
 
162
89
  ```lua
163
- local image = require("image")
164
90
  local imageId = image.readImage("template.jpg")
165
91
  if imageId then
166
92
  print("图片读取成功")
@@ -196,8 +122,7 @@ function saveTo(imageId, filePath) end
196
122
  **示例:**
197
123
 
198
124
  ```lua
199
- local image = require("image")
200
- local imageId = image.captureFullScreen()
125
+ local imageId = image.captureScreen()
201
126
  -- 获取手机文档目录
202
127
  local dir = file.getInternalDir("documents")
203
128
  if imageId then
@@ -250,8 +175,7 @@ function isRelease(imageId) end
250
175
  **示例:**
251
176
 
252
177
  ```lua
253
- local image = require("image")
254
- local imageId = image.captureFullScreen()
178
+ local imageId = image.captureScreen()
255
179
  if imageId then
256
180
  print("释放前: " .. tostring(image.isRelease(imageId))); -- false
257
181
  image.release(imageId)
@@ -284,8 +208,7 @@ function getSize(imageId) end
284
208
  **示例:**
285
209
 
286
210
  ```lua
287
- local image = require("image")
288
- local imageId = image.captureFullScreen()
211
+ local imageId = image.captureScreen()
289
212
  if imageId then
290
213
  local size = image.getSize(imageId)
291
214
  if size then
@@ -322,8 +245,7 @@ function pixel(imageId, x, y) end
322
245
  **示例:**
323
246
 
324
247
  ```lua
325
- local image = require("image")
326
- local imageId = image.captureFullScreen()
248
+ local imageId = image.captureScreen()
327
249
  if imageId then
328
250
  local color = image.pixel(imageId, 100, 100)
329
251
  local colorHex = image.argb(color)
@@ -391,8 +313,7 @@ function findColor(imageId, color, threshold, x, y, ex, ey, limit, orz) end
391
313
  **示例:**
392
314
 
393
315
  ```lua
394
- local image = require("image")
395
- local imageId = image.captureFullScreen()
316
+ local imageId = image.captureScreen()
396
317
  if imageId then
397
318
  -- 查找蓝色按钮
398
319
  local points = image.findColor(
@@ -456,8 +377,7 @@ function findMultiColor(imageId, firstColor, threshold, points, x, y, ex, ey, li
456
377
  **示例:**
457
378
 
458
379
  ```lua
459
- local image = require("image")
460
- local imageId = image.captureFullScreen()
380
+ local imageId = image.captureScreen()
461
381
  if imageId then
462
382
  -- 查找特定的颜色组合(如按钮的特征颜色)
463
383
  local points = image.findMultiColor(
@@ -517,8 +437,7 @@ function countColor(imageId, colors, threshold, x, y, ex, ey) end
517
437
  **示例:**
518
438
 
519
439
  ```lua
520
- local image = require("image")
521
- local imageId = image.captureFullScreen()
440
+ local imageId = image.captureScreen()
522
441
  if imageId then
523
442
  local count = image.countColor(
524
443
  imageId,
@@ -562,8 +481,7 @@ function cmpColor(imageId, points, threshold) end
562
481
  **示例:**
563
482
 
564
483
  ```lua
565
- local image = require("image")
566
- local imageId = image.captureFullScreen()
484
+ local imageId = image.captureScreen()
567
485
  if imageId then
568
486
  -- 检查特定区域是否为预期颜色
569
487
  local isMatch = image.cmpColor(
@@ -805,7 +723,6 @@ local scaleFactors = buildScaleFactors(baseScale)
805
723
  **示例:**
806
724
 
807
725
  ```lua
808
- local image = require("image")
809
726
  -- 1) 同分辨率标准找图(最常用,模板就是本机截的)
810
727
  local matches = image.findImage(
811
728
  "screen",
@@ -918,8 +835,7 @@ function clip(imageId, x, y, ex, ey) end
918
835
  **示例:**
919
836
 
920
837
  ```lua
921
- local image = require("image")
922
- local imageId = image.captureFullScreen()
838
+ local imageId = image.captureScreen()
923
839
  -- 获取手机文档目录
924
840
  local dir = file.getInternalDir("documents")
925
841
  if imageId then
@@ -961,7 +877,6 @@ function rotateImage(imageId, degree) end
961
877
  **示例:**
962
878
 
963
879
  ```lua
964
- local image = require("image")
965
880
  local imageId = image.readImage("photo.jpg")
966
881
  -- 获取手机文档目录
967
882
  local dir = file.getInternalDir("documents")
@@ -998,8 +913,7 @@ function gray(imageId) end
998
913
  **示例:**
999
914
 
1000
915
  ```lua
1001
- local image = require("image")
1002
- local imageId = image.captureFullScreen()
916
+ local imageId = image.captureScreen()
1003
917
  -- 获取手机文档目录
1004
918
  local dir = file.getInternalDir("documents")
1005
919
  if imageId then
@@ -1035,8 +949,7 @@ function binaryzation(imageId, threshold) end
1035
949
  **示例:**
1036
950
 
1037
951
  ```lua
1038
- local image = require("image")
1039
- local imageId = image.captureFullScreen()
952
+ local imageId = image.captureScreen()
1040
953
  -- 获取手机文档目录
1041
954
  local dir = file.getInternalDir("documents")
1042
955
  if imageId then
@@ -1073,11 +986,10 @@ function drawRect(imageId, x, y, ex, ey, color, thickness) end
1073
986
  **示例:**
1074
987
 
1075
988
  ```lua
1076
- local image = require("image")
1077
989
  -- 获取手机文档目录
1078
990
  local dir = file.getInternalDir("documents")
1079
991
 
1080
- local imageId = image.captureFullScreen()
992
+ local imageId = image.captureScreen()
1081
993
  if imageId then
1082
994
  image.drawRect(imageId, 100, 100, 200, 100, "#FF0000", 2)
1083
995
  image.saveTo(imageId, tostring(dir) .. "/test.jpg")
@@ -1108,8 +1020,7 @@ function scanCode(imageId) end
1108
1020
  **示例:**
1109
1021
 
1110
1022
  ```lua
1111
- local image = require("image")
1112
- local imageId = image.captureFullScreen()
1023
+ local imageId = image.captureScreen()
1113
1024
  if imageId then
1114
1025
  local result = image.scanCode(imageId)
1115
1026
  if result then
@@ -1146,7 +1057,6 @@ function base64ToImage(base64) end
1146
1057
  **示例:**
1147
1058
 
1148
1059
  ```lua
1149
- local image = require("image")
1150
1060
  local base64Data =
1151
1061
  "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg=="
1152
1062
  local imageId = image.base64ToImage(base64Data)
@@ -1185,8 +1095,7 @@ function toBase64Format(imageId, format, q) end
1185
1095
  **示例:**
1186
1096
 
1187
1097
  ```lua
1188
- local image = require("image")
1189
- local imageId = image.captureFullScreen()
1098
+ local imageId = image.captureScreen()
1190
1099
  if imageId then
1191
1100
  local base64 = image.toBase64Format(imageId, "jpg", 90)
1192
1101
  print("Base64 数据: " .. tostring(base64.substring(0, 100)) .. "...")
@@ -1,5 +1,7 @@
1
1
  # 输入法模块 (IME)
2
2
 
3
+ 模块表是内置全局 `ime`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  输入法模块提供了文本输入、剪贴板操作、键盘控制等功能,支持模拟用户的文本输入行为。
4
6
 
5
7
  ## 前提条件
@@ -27,7 +29,6 @@ function isOk() end
27
29
  **示例:**
28
30
 
29
31
  ```lua
30
- local ime = require("ime")
31
32
  -- 检查输入法状态,只有键盘弹出后面的方法才能调用
32
33
  if ime.isOk() then
33
34
  print("输入法键盘已弹出")
@@ -55,7 +56,6 @@ function getText() end
55
56
  **示例:**
56
57
 
57
58
  ```lua
58
- local ime = require("ime")
59
59
  -- 获取当前输入框文本
60
60
  local currentText = ime.getText()
61
61
  print("当前文本: " .. tostring(currentText))
@@ -77,7 +77,6 @@ function clearText() end
77
77
  **示例:**
78
78
 
79
79
  ```lua
80
- local ime = require("ime")
81
80
  -- 清空输入框
82
81
  if ime.clearText() then
83
82
  print("文本清除成功")
@@ -111,7 +110,6 @@ function input(text) end
111
110
  **示例:**
112
111
 
113
112
  ```lua
114
- local ime = require("ime")
115
113
  -- 基础文本输入
116
114
  local textAfter = ime.input("Hello World")
117
115
  print("输入后文本: " .. tostring(textAfter))
@@ -143,7 +141,6 @@ function paste(content) end
143
141
  **示例:**
144
142
 
145
143
  ```lua
146
- local ime = require("ime")
147
144
  -- 基础粘贴操作(使用剪贴板内容)
148
145
  local pasted = ime.paste()
149
146
  print("粘贴后文本: " .. tostring(pasted))
@@ -170,7 +167,6 @@ function pressDel() end
170
167
  **示例:**
171
168
 
172
169
  ```lua
173
- local ime = require("ime")
174
170
  -- 删除一个字符
175
171
  local remaining = ime.pressDel()
176
172
  print("删除后剩余文本: " .. tostring(remaining))
@@ -192,7 +188,6 @@ function pressEnter() end
192
188
  **示例:**
193
189
 
194
190
  ```lua
195
- local ime = require("ime")
196
191
  -- 按下回车键
197
192
  if ime.pressEnter() then
198
193
  print("回车键按下成功")
@@ -217,7 +212,6 @@ function dismiss() end
217
212
  **示例:**
218
213
 
219
214
  ```lua
220
- local ime = require("ime")
221
215
  -- 隐藏键盘
222
216
  if ime.dismiss() then
223
217
  print("键盘隐藏成功")
@@ -244,7 +238,6 @@ function getClipboard() end
244
238
  **示例:**
245
239
 
246
240
  ```lua
247
- local ime = require("ime")
248
241
  -- 获取剪贴板内容
249
242
  local clipboardText = ime.getClipboard()
250
243
  print("剪贴板内容: " .. tostring(clipboardText))
@@ -273,7 +266,6 @@ function setClipboard(text) end
273
266
  **示例:**
274
267
 
275
268
  ```lua
276
- local ime = require("ime")
277
269
  -- 设置剪贴板内容
278
270
  if ime.setClipboard("要复制的文本") then
279
271
  print("剪贴板设置成功")
@@ -1,5 +1,7 @@
1
1
  # 日志模块 (Logger)
2
2
 
3
+ 模块表是内置全局 `logger`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  日志模块提供了完整的日志记录功能,支持不同的日志级别、文件输出、日志管理等。
4
6
 
5
7
  - **日志级别** 开发环境默认 `debug`,打包环境默认 `info`。如需自定义日志级别,可使用 `setLoggerLevel` 方法。
@@ -14,7 +16,7 @@
14
16
 
15
17
  - **关闭存储日志** 可使用 `setLogToFile(false)` 关闭将日志输出到文件的功能。
16
18
 
17
- - **全局别名** `logd` / `logi` / `logw` / `loge` 是裸全局,分别等同 `logger.debug` / `logger.info` / `logger.warn` / `logger.error`,无需 `require("logger")`。
19
+ - **全局别名** `logd` / `logi` / `logw` / `loge` 是裸全局,分别等同 `logger.debug` / `logger.info` / `logger.warn` / `logger.error`,无需再取模块表。
18
20
 
19
21
  ## 日志级别
20
22
 
@@ -49,7 +51,6 @@ function setLoggerLevel(level) end
49
51
  **示例:**
50
52
 
51
53
  ```lua
52
- local logger = require("logger")
53
54
  -- 设置为调试级别(输出所有日志)
54
55
  logger.setLoggerLevel("debug")
55
56
  -- 设置为信息级别(不输出调试日志)
@@ -79,7 +80,6 @@ function setLogToFile(enabled) end
79
80
  **示例:**
80
81
 
81
82
  ```lua
82
- local logger = require("logger")
83
83
  -- 启用文件日志(默认)
84
84
  logger.setLogToFile(true)
85
85
  -- 禁用文件日志(只在控制台输出)
@@ -110,7 +110,6 @@ function setMaxLogFileCount(count) end
110
110
  **示例:**
111
111
 
112
112
  ```lua
113
- local logger = require("logger")
114
113
  -- 设置最大日志文件数量为 5 个文件
115
114
  logger.setMaxLogFileCount(5)
116
115
  ```
@@ -136,7 +135,6 @@ function setMaxLogFileSize(size) end
136
135
  **示例:**
137
136
 
138
137
  ```lua
139
- local logger = require("logger")
140
138
  -- 设置最大日志文件大小为 5MB
141
139
  logger.setMaxLogFileSize(5)
142
140
  ```
@@ -156,7 +154,6 @@ function resetLogFile() end
156
154
  **示例:**
157
155
 
158
156
  ```lua
159
- local logger = require("logger")
160
157
  logger.resetLogFile()
161
158
  logger.info("日志文件已重置")
162
159
 
@@ -244,8 +241,6 @@ function warn(...args) end
244
241
  **示例:**
245
242
 
246
243
  ```lua
247
- local logger = require("logger")
248
- local device = require("device")
249
244
  logger.warn("电池电量低于 20%")
250
245
  logger.warn("网络连接不稳定")
251
246
  logger.warn("使用了已废弃的 API")
@@ -288,7 +283,6 @@ function error(...args) end
288
283
  **示例:**
289
284
 
290
285
  ```lua
291
- local logger = require("logger")
292
286
  logger.error("网络请求失败")
293
287
  logger.error("文件读取错误")
294
288
  logger.error("数据库连接失败")
@@ -1,5 +1,7 @@
1
1
  # 媒体模块 (Media)
2
2
 
3
+ 模块表是内置全局 `media`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  媒体模块提供了丰富的媒体操作功能,包括图片和视频的相册管理,以及音频播放控制等功能。
4
6
 
5
7
  ## 功能概览
@@ -35,7 +37,6 @@ function saveImageToAlbum(imageId) end
35
37
  **示例:**
36
38
 
37
39
  ```lua
38
- local media = require("media")
39
40
  -- 保存截图到相册
40
41
  media.saveImageToAlbum("screen")
41
42
 
@@ -75,7 +76,6 @@ function saveVideoToAlbumPath(path) end
75
76
  **示例:**
76
77
 
77
78
  ```lua
78
- local media = require("media")
79
79
  -- 保存视频到相册 (从 documents 目录读取)
80
80
  local documentsDir = file.getInternalDir("documents")
81
81
  local videoName = "video.mp4"
@@ -104,7 +104,6 @@ function deleteAllPhotos() end
104
104
  **示例:**
105
105
 
106
106
  ```lua
107
- local media = require("media")
108
107
  -- 清空相册图片
109
108
  local deleted = media.deleteAllPhotos()
110
109
  if deleted then
@@ -130,7 +129,6 @@ function deleteAllVideos() end
130
129
  **示例:**
131
130
 
132
131
  ```lua
133
- local media = require("media")
134
132
  -- 清空相册视频
135
133
  local deleted = media.deleteAllVideos()
136
134
  if deleted then
@@ -150,7 +148,6 @@ function deleteAllScreenshots() end
150
148
  **示例:**
151
149
 
152
150
  ```lua
153
- local media = require("media")
154
151
  local deleted = media.deleteAllScreenshots()
155
152
  if deleted then
156
153
  print("相册截图已清空")
@@ -184,7 +181,6 @@ function playMp3(path, loop) end
184
181
  **示例:**
185
182
 
186
183
  ```lua
187
- local media = require("media")
188
184
  -- 播放背景音乐(循环)
189
185
  local played = media.playMp3("/path/to/background.mp3", true)
190
186
  if played then
@@ -213,7 +209,6 @@ function stopMp3() end
213
209
  **示例:**
214
210
 
215
211
  ```lua
216
- local media = require("media")
217
212
  -- 停止音乐播放
218
213
  local stopped = media.stopMp3()
219
214
  if stopped then
@@ -246,7 +241,6 @@ function playMp3WaitEnd(path) end
246
241
  **示例:**
247
242
 
248
243
  ```lua
249
- local media = require("media")
250
244
  -- 同步播放音频,等待播放完成
251
245
  print("开始播放音频...")
252
246
  local played = media.playMp3WaitEnd("/path/to/notification.mp3")
@@ -274,7 +268,6 @@ function isMp3Playing() end
274
268
  **示例:**
275
269
 
276
270
  ```lua
277
- local media = require("media")
278
271
  if media.isMp3Playing() then
279
272
  print("正在播放")
280
273
  else
@@ -1,5 +1,7 @@
1
1
  # MySQL 数据库模块 (MySQL)
2
2
 
3
+ 模块表是内置全局 `mysql`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  MySQL 模块提供了完整的 MySQL 数据库连接和操作功能,支持连接管理、查询执行、事务处理等核心数据库操作。
4
6
 
5
7
  ## 功能概览
@@ -91,7 +93,6 @@ function connect(config) end
91
93
  **示例:**
92
94
 
93
95
  ```lua
94
- local mysql = require("mysql")
95
96
  local success = mysql.connect({
96
97
  host = "localhost",
97
98
  port = 3306,
@@ -119,7 +120,6 @@ function disconnect() end
119
120
  **示例:**
120
121
 
121
122
  ```lua
122
- local mysql = require("mysql")
123
123
  mysql.disconnect()
124
124
  print("数据库连接已断开")
125
125
  ```
@@ -140,7 +140,6 @@ function isConnected() end
140
140
  **示例:**
141
141
 
142
142
  ```lua
143
- local mysql = require("mysql")
144
143
  if mysql.isConnected() then
145
144
  print("数据库已连接")
146
145
  else
@@ -177,7 +176,6 @@ function query(sql, params) end
177
176
  **示例:**
178
177
 
179
178
  ```lua
180
- local mysql = require("mysql")
181
179
  -- 简单查询
182
180
  local result1 = mysql.query("SELECT * FROM users")
183
181
  if result1.success then
@@ -225,7 +223,6 @@ function execute(sql, params) end
225
223
  **示例:**
226
224
 
227
225
  ```lua
228
- local mysql = require("mysql")
229
226
  -- 创建表
230
227
  local createTableResult = mysql.execute("
231
228
  CREATE TABLE IF NOT EXISTS users (
@@ -284,7 +281,6 @@ function beginTransaction() end
284
281
  **示例:**
285
282
 
286
283
  ```lua
287
- local mysql = require("mysql")
288
284
  if mysql.beginTransaction() then
289
285
  print("事务开始")
290
286
  else
@@ -308,7 +304,6 @@ function commit() end
308
304
  **示例:**
309
305
 
310
306
  ```lua
311
- local mysql = require("mysql")
312
307
  if mysql.commit() then
313
308
  print("事务提交成功")
314
309
  else
@@ -332,7 +327,6 @@ function rollback() end
332
327
  **示例:**
333
328
 
334
329
  ```lua
335
- local mysql = require("mysql")
336
330
  if mysql.rollback() then
337
331
  print("事务回滚成功")
338
332
  else
@@ -345,7 +339,6 @@ end
345
339
  ### 基本数据库操作
346
340
 
347
341
  ```lua
348
- local mysql = require("mysql")
349
342
  -- 1. 创建连接配置
350
343
  local dbConfig = {
351
344
  host = "localhost",
@@ -381,7 +374,6 @@ end
381
374
  ### 事务处理示例
382
375
 
383
376
  ```lua
384
- local mysql = require("mysql")
385
377
  -- 转账操作示例
386
378
  local function transferMoney(fromUserId, toUserId, amount)
387
379
  if not mysql.beginTransaction() then
@@ -1,5 +1,7 @@
1
1
  # 卡密模块 (NetCard)
2
2
 
3
+ 模块表是内置全局 `netcard`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  卡密模块提供了卡密验证、备注设置以及键值对存储功能,用于管理网络卡密相关的操作。
4
6
 
5
7
  ## 功能概览
@@ -29,7 +31,6 @@ function isAuthCardMode() end
29
31
  **示例:**
30
32
 
31
33
  ```lua
32
- local netcard = require("netcard")
33
34
  if netcard.isAuthCardMode() then
34
35
  print("当前为授权卡密模式,不需要重复调用 verify")
35
36
  end
@@ -64,7 +65,6 @@ function verify(cardNo) end
64
65
  **示例 1:普通卡密模式**
65
66
 
66
67
  ```lua
67
- local netcard = require("netcard")
68
68
  -- 验证卡密
69
69
  local cardNo = "ABC123456789"
70
70
  local isValid = netcard.verify(cardNo)
@@ -105,7 +105,6 @@ function getCardInfo() end
105
105
  **示例:**
106
106
 
107
107
  ```lua
108
- local netcard = require("netcard")
109
108
  -- 获取卡密信息
110
109
  local cardInfo = netcard.getCardInfo()
111
110
  print(ToJsonString(cardInfo))
@@ -136,7 +135,6 @@ function setCardRemark(remark) end
136
135
  **示例:**
137
136
 
138
137
  ```lua
139
- local netcard = require("netcard")
140
138
  -- 设置卡密备注
141
139
  local remark = "测试用户卡密"
142
140
  local success = netcard.setCardRemark(remark)
@@ -175,7 +173,6 @@ function setValue(key, value) end
175
173
  **示例:**
176
174
 
177
175
  ```lua
178
- local netcard = require("netcard")
179
176
  -- 设置键值对
180
177
  local key = "userConfig"
181
178
  local value = "enableNotification"
@@ -211,7 +208,6 @@ function getValue(key) end
211
208
  **示例:**
212
209
 
213
210
  ```lua
214
- local netcard = require("netcard")
215
211
  -- 获取键值对
216
212
  local key = "userConfig"
217
213
  local value = netcard.getValue(key)
@@ -1,5 +1,7 @@
1
1
  # 节点模块 (Node)
2
2
 
3
+ 模块表是内置全局 `node`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  用于查找和操作当前界面上的控件节点。
4
6
 
5
7
  **注意**
@@ -203,7 +205,6 @@ btn:setValue("hello")
203
205
  | `clickRandom()` | 范围内随机点,不自动滚动 |
204
206
 
205
207
  ```lua
206
- local node = require("node")
207
208
  local selector <close> = node.createNodeSelector()
208
209
  local btn = selector:label("确定"):type("XCUIElementTypeButton"):getOneNodeInfo(3000)
209
210
 
@@ -267,7 +268,6 @@ end
267
268
  ### 登录
268
269
 
269
270
  ```lua
270
- local node = require("node")
271
271
  local selector <close> = node.createNodeSelector()
272
272
 
273
273
  local user = selector:type("XCUIElementTypeTextField"):getOneNodeInfo(5000)
@@ -298,7 +298,6 @@ end
298
298
  ### 列表里靠后的项
299
299
 
300
300
  ```lua
301
- local node = require("node")
302
301
  local selector <close> = node.createNodeSelector({ mode = 2 })
303
302
  local item = selector:label("第 30 项"):getOneNodeInfo(5000)
304
303
  if item then