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
  # YOLO 目标检测模块 (YOLO)
2
2
 
3
+ 模块表是内置全局 `yolo`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  YOLO 模块基于 YOLOV8/YOLO11/YOLO26 算法和 NCNN 框架,提供高性能的实时目标检测功能,支持多种输入源和自定义模型,可用于物体识别、位置定位等应用场景。
4
6
 
5
7
  ## 数据标注
@@ -8,7 +10,7 @@ YOLO 模块基于 YOLOV8/YOLO11/YOLO26 算法和 NCNN 框架,提供高性能
8
10
 
9
11
  ## 功能概览
10
12
 
11
- - **模型管理**: YOLO 模型加载和资源管理
13
+ - **模型管理**: YOLOV8/YOLOV11/YOLOV26 模型加载和资源管理
12
14
  - **目标检测**: 实时物体检测和位置识别
13
15
  - **多源输入**: 支持屏幕截图、图片文件、URL 等多种输入源
14
16
  - **结果处理**: 完整的检测结果信息和坐标数据
@@ -79,7 +81,7 @@ function load(paramPath, binPath, nc, version, useGpu) end
79
81
  | `paramPath` | string | 是 | | NCNN 模型的 param 文件绝对路径 |
80
82
  | `binPath` | string | 是 | | NCNN 模型的 bin 文件绝对路径 |
81
83
  | `nc` | number | 否 | 0 | 模型的标签数量;传 `0` 或省略时根据模型输出自动推断,显式传入但不匹配时检测返回空数组 |
82
- | `version` | number | 否 | 0 | 模型版本;传 `0` 或省略时按 v11 处理,显式传入支持 8/11/26 |
84
+ | `version` | number | 否 | 11 | YOLO 模型版本号(仅支持 8/11/26|
83
85
  | `useGpu` | boolean | 否 | false | 是否启用 GPU 加速 |
84
86
 
85
87
  **返回值:**
@@ -91,7 +93,6 @@ function load(paramPath, binPath, nc, version, useGpu) end
91
93
  **示例:**
92
94
 
93
95
  ```lua
94
- local yolo = require("yolo")
95
96
  local modelId = yolo.load(
96
97
  "yolov8n_ncnn_model/model.ncnn.param",
97
98
  "yolov8n_ncnn_model/model.ncnn.bin",
@@ -101,90 +102,56 @@ local modelId = yolo.load(
101
102
  )
102
103
  ```
103
104
 
104
- #### loadV11 - 加载 YOLO 模型。
105
-
106
- 加载模型是使用目标检测功能的前提。兼容 YOLOV8 / YOLO11 的 NCNN 模型。
107
-
108
- ```lua
109
- ---@param paramPath string
110
- ---@param binPath string
111
- ---@param nc number?
112
- ---@param useGpu boolean?
113
- ---@return string|nil
114
- function loadV11(paramPath, binPath, nc, useGpu) end
115
- ```
116
-
117
- **参数:**
118
-
119
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
120
- | ----------- | ------- | -------- | ------ | --------------------------------------------------------------------------- |
121
- | `paramPath` | string | 是 | | NCNN 模型的 param 文件绝对路径 |
122
- | `binPath` | string | 是 | | NCNN 模型的 bin 文件绝对路径 |
123
- | `nc` | number | 否 | 0 | 模型的标签数量;传 `0` 或省略时根据模型输出自动推断,显式传入但不匹配时检测返回空数组 |
124
- | `useGpu` | boolean | 否 | false | 是否启用 GPU 加速 |
125
-
126
- **返回值:**
127
-
128
- | 类型 | 描述 |
129
- | --------------- | ----------------------------------------- |
130
- | `string \| nil` | 加载成功返回模型 ID 字符串,失败返回 nil |
131
-
132
- **示例:**
133
-
134
- ```lua
135
- local yolo = require("yolo")
136
-
137
- -- 加载 YOLO 模型
138
- local modelId = yolo.loadV11(
139
- "yolo11n_ncnn_model/model.ncnn.param",
140
- "yolo11n_ncnn_model/model.ncnn.bin",
141
- 0,
142
- false
143
- )
144
- ```
145
-
146
105
  ### 目标检测
147
106
 
148
- #### detect - 对输入图像执行目标检测。
107
+ #### detectAbs - 对指定区域执行目标检测,并将结果坐标映射为原图/全屏绝对坐标。
149
108
 
150
- 执行目标检测,识别图像中的物体并返回检测结果。
109
+ 执行目标检测,识别图像中的物体并返回检测结果。传入裁剪区域时,结果坐标会映射回原图或全屏坐标,可直接用于点击;全屏检测时 `x/y/ex/ey` 传 `0`。
151
110
 
152
111
  ```lua
153
112
  ---@param modelId string
154
113
  ---@param img string
114
+ ---@param x number?
115
+ ---@param y number?
116
+ ---@param ex number?
117
+ ---@param ey number?
155
118
  ---@param targetSize number?
156
119
  ---@param threshold number?
157
120
  ---@param nmsThreshold number?
158
121
  ---@return YoloResult[]
159
- function detect(modelId, img, targetSize, threshold, nmsThreshold) end
122
+ function detectAbs(modelId, img, x, y, ex, ey, targetSize, threshold, nmsThreshold) end
160
123
  ```
161
124
 
162
125
  **参数:**
163
126
 
164
127
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
165
128
  | -------------- | ------ | -------- | ------ | ------------------------------------------------------------------ |
166
- | `modelId` | string | 是 | | 模型 ID,通过 `loadV11` 获取 |
129
+ | `modelId` | string | 是 | | 模型 ID,通过 `load` 获取 |
167
130
  | `img` | string | 是 | | 图像输入源,支持 `"screen"`、图片文件路径、HTTP 图片地址或 imageId |
131
+ | `x` | number | 否 | 0 | 裁剪区域左上角 x 坐标;全屏检测传 0 |
132
+ | `y` | number | 否 | 0 | 裁剪区域左上角 y 坐标;全屏检测传 0 |
133
+ | `ex` | number | 否 | 0 | 裁剪区域右下角 x 坐标;全屏检测传 0 |
134
+ | `ey` | number | 否 | 0 | 裁剪区域右下角 y 坐标;全屏检测传 0 |
168
135
  | `targetSize` | number | 否 | 640 | 模型推理输入边长,通常为 640(与模型训练时一致) |
169
136
  | `threshold` | number | 否 | 0.4 | 置信度阈值,低于此值的检测结果会被过滤 |
170
137
  | `nmsThreshold` | number | 否 | 0.5 | 非极大值抑制阈值,用于去除重叠检测框 |
171
138
 
172
139
  **返回值:**
173
140
 
174
- | 类型 | 描述 |
175
- | -------------- | -------------- |
176
- | `YoloResult[]` | 检测结果数组 |
141
+ | 类型 | 描述 |
142
+ | -------------- | -------------------------------------- |
143
+ | `YoloResult[]` | 检测结果数组,坐标为原图或全屏绝对坐标 |
177
144
 
178
145
  **示例:**
179
146
 
180
147
  ```lua
181
- local yolo = require("yolo")
182
148
 
183
149
  -- 首先加载模型
184
- local modelId = yolo.loadV11(
150
+ local modelId = yolo.load(
185
151
  "/yolo11n_ncnn_model/model.ncnn.param",
186
152
  "/yolo11n_ncnn_model/model.ncnn.bin",
187
153
  0,
154
+ 11,
188
155
  false
189
156
  )
190
157
 
@@ -194,7 +161,7 @@ if not modelId then
194
161
  end
195
162
 
196
163
  -- 检测当前屏幕
197
- local screenResults = yolo.detect(modelId, "screen", 640, 0.4, 0.5)
164
+ local screenResults = yolo.detectAbs(modelId, "screen", 0, 0, 0, 0, 640, 0.4, 0.5)
198
165
  print("屏幕检测到 " .. tostring(#screenResults) .. " 个物体")
199
166
 
200
167
  for index, result in ipairs(screenResults) do
@@ -206,80 +173,21 @@ for index, result in ipairs(screenResults) do
206
173
  print(" 尺寸: " .. tostring(result.width) .. " x " .. tostring(result.height))
207
174
  end
208
175
 
209
- -- 检测图片文件
210
- local imageResults = yolo.detect(modelId, "/path/to/test_image.jpg", 640, 0.3, 0.5)
176
+ -- 检测图片文件的指定区域
177
+ local imageResults = yolo.detectAbs(modelId, "/path/to/test_image.jpg", 100, 100, 500, 400, 640, 0.3, 0.5)
211
178
  if #imageResults > 0 then
212
179
  print("图片中检测到 " .. tostring(#imageResults) .. " 个物体")
213
- for _, result in ipairs(imageResults) do
214
- print("检测到类别 " .. tostring(result.classId) .. ",置信度: " .. tostring(result.confidence))
215
- end
216
180
  else
217
181
  print("图片中未检测到任何物体")
218
182
  end
219
183
 
220
184
  -- 检测网络图片
221
- local urlResults = yolo.detect(modelId, "https://example.com/test_image.jpg", 640, 0.5, 0.4)
185
+ local urlResults = yolo.detectAbs(modelId, "https://example.com/test_image.jpg", 0, 0, 0, 0, 640, 0.5, 0.4)
222
186
  print("网络图片检测结果: " .. tostring(#urlResults) .. " 个物体")
223
187
 
224
188
  yolo.free(modelId)
225
189
  ```
226
190
 
227
- #### detectAbs - 对指定区域执行目标检测,并将结果坐标映射为原图/全屏绝对坐标。
228
-
229
- 传入裁剪区域时,结果坐标会映射回原图或全屏坐标,可直接用于点击;全屏检测时 `x/y/ex/ey` 传 `0`。
230
-
231
- ```lua
232
- ---@param modelId string
233
- ---@param img string
234
- ---@param x number
235
- ---@param y number
236
- ---@param ex number
237
- ---@param ey number
238
- ---@param targetSize number?
239
- ---@param threshold number?
240
- ---@param nmsThreshold number?
241
- ---@return YoloResult[]
242
- function detectAbs(modelId, img, x, y, ex, ey, targetSize, threshold, nmsThreshold) end
243
- ```
244
-
245
- **参数:**
246
-
247
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
248
- | -------------- | ------ | -------- | ------ | ------------------------------------------------------------------ |
249
- | `modelId` | string | 是 | | 模型 ID,通过 `load` 或 `loadV11` 获取 |
250
- | `img` | string | 是 | | 图像输入源,支持 `"screen"`、图片文件路径、HTTP 图片地址或 imageId |
251
- | `x` | number | 是 | | 裁剪区域左上角 x 坐标;全屏检测传 0 |
252
- | `y` | number | 是 | | 裁剪区域左上角 y 坐标;全屏检测传 0 |
253
- | `ex` | number | 是 | | 裁剪区域右下角 x 坐标;全屏检测传 0 |
254
- | `ey` | number | 是 | | 裁剪区域右下角 y 坐标;全屏检测传 0 |
255
- | `targetSize` | number | 否 | 640 | 模型推理输入边长,通常为 640(与模型训练时一致) |
256
- | `threshold` | number | 否 | 0.4 | 置信度阈值,低于此值的检测结果会被过滤 |
257
- | `nmsThreshold` | number | 否 | 0.5 | 非极大值抑制阈值,用于去除重叠检测框 |
258
-
259
- **返回值:**
260
-
261
- | 类型 | 描述 |
262
- | -------------- | -------------------------------------- |
263
- | `YoloResult[]` | 检测结果数组,坐标为原图或全屏绝对坐标 |
264
-
265
- **示例:**
266
-
267
- ```lua
268
- local yolo = require("yolo")
269
- local modelId = yolo.load(
270
- "/yolo11n_ncnn_model/model.ncnn.param",
271
- "/yolo11n_ncnn_model/model.ncnn.bin",
272
- 0,
273
- 11,
274
- false
275
- )
276
- local results = yolo.detectAbs(modelId, "screen", 0, 0, 0, 0, 640, 0.4, 0.5)
277
- if #results > 0 then
278
- print(results[1].classId, results[1].centerX, results[1].centerY)
279
- end
280
- yolo.free(modelId)
281
- ```
282
-
283
191
  ### 资源管理
284
192
 
285
193
  #### free - 释放指定模型的资源。
@@ -298,7 +206,6 @@ function free(modelId) end
298
206
  **示例:**
299
207
 
300
208
  ```lua
301
- local yolo = require("yolo")
302
209
 
303
210
  -- 释放特定模型
304
211
  if modelId then
@@ -316,7 +223,6 @@ function freeAll() end
316
223
  **示例:**
317
224
 
318
225
  ```lua
319
- local yolo = require("yolo")
320
226
 
321
227
  -- 释放所有模型资源
322
228
  yolo.freeAll()
@@ -1,5 +1,7 @@
1
1
  # YOLO 图像分类模块 (YoloCls)
2
2
 
3
+ 模块表是内置全局 `yolocls`,直接调用即可。不要 `require` 宿主模块。
4
+
3
5
  YOLO 图像分类模块基于 YOLOv8-cls / YOLO11-cls / YOLO26-cls 分类模型和 NCNN 框架,提供整图分类、区域分类和模型资源管理能力。
4
6
 
5
7
  ## 功能概览
@@ -82,7 +84,6 @@ function load(paramPath, binPath, nc, useGpu) end
82
84
  **示例:**
83
85
 
84
86
  ```lua
85
- local yolocls = require("yolocls")
86
87
  -- 模型文件通常放在 res 目录
87
88
  local modelId = yolocls.load(
88
89
  "yolo11n_cls_ncnn_model/model.ncnn.param",
@@ -129,7 +130,6 @@ function classify(modelId, img, targetSize) end
129
130
  **示例:**
130
131
 
131
132
  ```lua
132
- local yolocls = require("yolocls")
133
133
  local modelId = yolocls.load(
134
134
  "yolo11n_cls_ncnn_model/model.ncnn.param",
135
135
  "yolo11n_cls_ncnn_model/model.ncnn.bin",
@@ -206,7 +206,6 @@ function classifyRegion(modelId, img, x, y, ex, ey, targetSize) end
206
206
  **示例:**
207
207
 
208
208
  ```lua
209
- local yolocls = require("yolocls")
210
209
  local regionProbs = yolocls.classifyRegion(
211
210
  modelId,
212
211
  "screen",
@@ -244,7 +243,6 @@ function free(modelId) end
244
243
  **示例:**
245
244
 
246
245
  ```lua
247
- local yolocls = require("yolocls")
248
246
  if modelId then
249
247
  yolocls.free(modelId)
250
248
  print("YOLO 分类模型 " .. tostring(modelId) .. " 资源已释放")
@@ -262,7 +260,6 @@ function freeAll() end
262
260
  **示例:**
263
261
 
264
262
  ```lua
265
- local yolocls = require("yolocls")
266
263
  yolocls.freeAll()
267
264
  print("所有 YOLO 分类模型资源已释放")
268
265
  ```
@@ -218,3 +218,23 @@ print("开始播放音频...")
218
218
  played = media.playMp3WaitEnd("/var/mobile/Media/notification.mp3")
219
219
  print("音频播放完成" if played else "播放失败或被系统音频中断")
220
220
  ```
221
+
222
+ #### isMp3Playing - 当前是否正在播放 MP3。
223
+
224
+ ```python
225
+ def isMp3Playing() -> bool
226
+ ```
227
+
228
+ **返回值:**
229
+
230
+ | 类型 | 描述 |
231
+ | ------ | -------------------------------- |
232
+ | `bool` | 正在播放返回 `True`,否则 `False` |
233
+
234
+ **示例:**
235
+
236
+ ```python
237
+ from kuaijs import media
238
+
239
+ print("正在播放" if media.isMp3Playing() else "未播放")
240
+ ```
@@ -15,7 +15,7 @@
15
15
  - 不要把快点JS Python 脚本当成普通 CPython 脚本。
16
16
  - 不要对快点JS Python 脚本运行 `python -m py_compile`、`py_compile` 或类似 CPython 编译校验。
17
17
  - 不要创建、保留或同步 `__pycache__`、`.pyc` 作为项目改动。
18
- - Lua 用户模块请用 `require("foo")` / `require("lib.bar")`。Release 打包默认会把 `scripts` 下除 `main.lua` 外的用户 `.lua` 合并进单个 `main.lua`;不要用 `dofile` / `loadfile` 按路径加载这些文件。
18
+ - Lua 宿主模块是内置全局表(如 `device`),不要 `require`。用户模块请用 `require("foo")` / `require("lib.bar")`。Release 打包默认会把 `scripts` 下除 `main.lua` 外的用户 `.lua` 合并进单个 `main.lua`;不要用 `dofile` / `loadfile` 按路径加载这些文件。
19
19
  - 文档未确认的能力必须明确说明无法确认,不要凭经验补全。
20
20
 
21
21
  ## 允许的执行方式
@@ -17,7 +17,7 @@
17
17
  - 选择一个文件目录,输入项目名称,回车创建项目
18
18
  - 快点 JS-JS 引擎使用 `ES6` 语法,支持 import 别的 js 文件
19
19
  - 快点 JS-Python 引擎使用 `Python3.14`, 打包需要安装 `Python3.14`
20
- - 快点 JS-Lua 引擎入口为 `scripts/main.lua`,模块通过 `require("device")` 加载,全局函数如 `Sleep` 可直接调用
20
+ - 快点 JS-Lua 引擎入口为 `scripts/main.lua`,宿主模块是内置全局表(如 `device`),不要 `require`;全局函数如 `Sleep` 可直接调用
21
21
  - 项目创建完成后,会自动打开项目,项目结构如下:
22
22
 
23
23
  ### 项目结构
@@ -11,7 +11,7 @@
11
11
  - 输入在开发者后台->网络验证管理->软件列表 中获取的 `AppId` 字段
12
12
  - JS / Lua 项目可编辑根目录 `obfuscator.json` 决定打包行为;Python 打包编译为 `.pyc`,没有该配置
13
13
  - JS:Vite 把入口打成单文件后再按 `enabled` 混淆
14
- - Lua:Release 默认把 `scripts` 下用户模块合并为单个 `scripts/main.lua`(`bundle`,缺省 `true`),再按 `enabled` / `preset` 用 Prometheus 混淆该文件。`enabled: false` 时仍可合并。宿主 `require("device")` 等不受影响。不要用 `dofile` / `loadfile` 去读会被删掉的其它 `.lua`
14
+ - Lua:Release 默认把 `scripts` 下用户模块合并为单个 `scripts/main.lua`(`bundle`,缺省 `true`),再按 `enabled` / `preset` 用 Prometheus 混淆该文件。`enabled: false` 时仍可合并。宿主全局模块(如 `device`)不受影响。不要用 `dofile` / `loadfile` 去读会被删掉的其它 `.lua`
15
15
  - 注意:上传到快点JS热更新服务后,可通过开发者后台->网络验证管理->软件列表的软件编号进行分发
16
16
  - 注意:快点JS上可通过软件面板,输入软件编号进行搜索加载应用
17
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ms-vite-plugin",
3
- "version": "1.4.58",
3
+ "version": "1.4.60",
4
4
  "type": "commonjs",
5
5
  "license": "MIT",
6
6
  "publishConfig": {