mihomo-cli 1.2.2 → 1.2.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,46 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.2.4] - 2026-04-07
4
+
5
+ ### 修复
6
+
7
+ - **路径安全**:`getLogPathByName()` 增加 `isPathUnderDir()` 校验,防止潜在的路径遍历风险
8
+ - **错误提示**:覆写配置文件解析失败时显示警告日志,不再静默忽略
9
+
10
+ ### 重构
11
+
12
+ - **代码结构**:工具函数(`sleepSync`、`formatBytes`、`isProcessRunning` 等)提取到 `utils.js` 模块,简化各模块依赖
13
+ - **命名规范**:统一函数命名为全称单数
14
+ - `autoUpdateStaleSubscriptions` → `autoUpdateStaleSubscription`
15
+ - `applyOverwrites` → `applyOverwrite`
16
+ - `loadOverwriteFiles` → `loadOverwriteFile`
17
+ - `listOverwriteFiles` → `listOverwriteFile`
18
+
19
+ ---
20
+
21
+ ## [1.2.3] - 2026-04-07
22
+
23
+ ### 优化
24
+
25
+ - **简短帮助**:大幅精简,只列出最常用命令,增加 `mihomo help` 提示
26
+ - **性能**:
27
+ - settings 读取增加内存缓存,减少重复 JSON 解析
28
+ - 内核版本增加缓存,避免重复执行 `mihomo -v`
29
+ - `sleepSync()` 改用 `Atomics.wait` 而非 `execSync('sleep')`,减少子进程开销
30
+
31
+ ### 重构
32
+
33
+ - 精简模块导出接口,移除不必要的内部函数导出
34
+ - 新增 `formatProxySummary()` 复用函数(消除 3 处重复代码)
35
+ - `pickSingleSubscription()` 移除多余参数
36
+ - 统一代码风格:数组/条件表达式换行风格、`cmdUi` → `cmdUI` 命名一致性
37
+
38
+ ### 文档
39
+
40
+ - README 修复:GitHub 链接、重复段落、`profile-update-interval` 格式
41
+
42
+ ---
43
+
3
44
  ## [1.2.2] - 2026-04-05
4
45
 
5
46
  ### 优化
package/README.md CHANGED
@@ -28,7 +28,7 @@ npm install -g mihomo-cli
28
28
  ### 方式二:源码安装
29
29
 
30
30
  ```bash
31
- git clone https://github.com/yourname/mihomo-cli.git
31
+ git clone https://github.com/adaex/mihomo-cli.git
32
32
  cd mihomo-cli
33
33
  npm install
34
34
  npm link
@@ -79,49 +79,50 @@ mihomo ui yacd # YACD
79
79
 
80
80
  ### 核心命令
81
81
 
82
- | 命令 | 说明 |
83
- |------|------|
84
- | `mihomo start [tun\|mixed]` | 启动/重启/切换代理模式 |
85
- | `mihomo stop` | 停止代理 |
86
- | `mihomo status` | 查看运行状态 |
87
- | `mihomo log` | 实时查看日志 (`-o` 用系统编辑器打开) |
88
- | `mihomo logs` | 列出所有日志(当前 + 历史归档) |
89
- | `mihomo logs <编号>` | 查看指定日志(`0`=当前日志,`1+`=归档日志,支持 `-n N` 指定行数、`-o` 打开) |
82
+ | 命令 | 说明 |
83
+ | --------------------------- | ---------------------------------------------------------------------------- |
84
+ | `mihomo start [tun\|mixed]` | 启动/重启/切换代理模式 |
85
+ | `mihomo stop` | 停止代理 |
86
+ | `mihomo status` | 查看运行状态 |
87
+ | `mihomo log` | 实时查看日志 (`-o` 用系统编辑器打开) |
88
+ | `mihomo logs` | 列出所有日志(当前 + 历史归档) |
89
+ | `mihomo logs <编号>` | 查看指定日志(`0`=当前日志,`1+`=归档日志,支持 `-n N` 指定行数、`-o` 打开) |
90
90
 
91
91
  ### 订阅管理
92
92
 
93
- | 命令 | 说明 |
94
- |------|------|
95
- | `mihomo sub list` | 列出所有订阅(含流量、到期时间) |
96
- | `mihomo sub add <url> [name]` | 添加订阅 |
97
- | `mihomo sub update` | 更新所有订阅 |
98
- | `mihomo sub update <name>` | 更新指定订阅(支持模糊匹配) |
99
- | `mihomo sub use <name>` | 设置默认订阅(支持模糊匹配,自动重启) |
100
- | `mihomo sub web [name]` | 打开订阅页面(无参打开默认) |
93
+ | 命令 | 说明 |
94
+ | ----------------------------- | -------------------------------------- |
95
+ | `mihomo sub` | 列出所有订阅(含流量、到期时间) |
96
+ | `mihomo sub add <url> [name]` | 添加订阅 |
97
+ | `mihomo sub update` | 更新所有订阅 |
98
+ | `mihomo sub update <name>` | 更新指定订阅(支持模糊匹配) |
99
+ | `mihomo sub use <name>` | 设置默认订阅(支持模糊匹配,自动重启) |
100
+ | `mihomo sub web [name]` | 打开订阅页面(无参打开默认) |
101
101
 
102
102
  ### 覆写配置
103
103
 
104
- | 命令 | 说明 |
105
- |------|------|
104
+ | 命令 | 说明 |
105
+ | ------------------------------ | -------------------------- |
106
106
  | `mihomo ow` / `mihomo ow list` | 查看覆写配置状态和文件列表 |
107
- | `mihomo ow on` | 启用覆写配置(自动重启) |
108
- | `mihomo ow off` | 禁用覆写配置(自动重启) |
107
+ | `mihomo ow on` | 启用覆写配置(自动重启) |
108
+ | `mihomo ow off` | 禁用覆写配置(自动重启) |
109
109
 
110
110
  ### 其他命令
111
111
 
112
- | 命令 | 说明 |
113
- |------|------|
114
- | `mihomo kernel [镜像\|--no-mirror]` | 更新内核 |
115
- | `mihomo ui [zash\|dash\|yacd]` | 打开 Web UI |
116
- | `mihomo dir` | 显示数据目录位置 |
117
- | `mihomo dir open [target]` | 打开指定目录(`root`, `subs`, `logs`, `overwrites` 等) |
118
- | `mihomo reset [--full]` | 重置用户数据 (--full 同时删除内核) |
119
- | `mihomo version` | 显示版本信息 |
120
- | `mihomo help` | 显示帮助信息 |
112
+ | 命令 | 说明 |
113
+ | ----------------------------------- | ------------------------------------------------------- |
114
+ | `mihomo kernel [镜像\|--no-mirror]` | 更新内核 |
115
+ | `mihomo ui [zash\|dash\|yacd]` | 打开 Web UI |
116
+ | `mihomo dir` | 显示数据目录位置 |
117
+ | `mihomo dir open [target]` | 打开指定目录(`root`, `subs`, `logs`, `overwrites` 等) |
118
+ | `mihomo reset [--full]` | 重置用户数据 (--full 同时删除内核) |
119
+ | `mihomo version` | 显示版本信息 |
120
+ | `mihomo help` | 显示帮助信息 |
121
121
 
122
122
  ### 命令别名
123
123
 
124
124
  以下任意命令等效:
125
+
125
126
  - `mihomo-cli` (原名)
126
127
  - `mihomo`
127
128
  - `mmc`
@@ -204,12 +205,12 @@ mihomo kernel --no-mirror
204
205
 
205
206
  覆写配置支持以下特殊操作符:
206
207
 
207
- | 语法 | 作用 | 示例 |
208
- |------|------|------|
209
- | `key!` | 强制覆盖整个对象(不深度合并) | `dns!`: { ... } |
210
- | `+key` | 数组前置插入 | `+proxies`: [...] |
211
- | `key+` | 数组追加 | `rules+`: [...] |
212
- | `<+key>` | 键名以 `+` 开头时转义 | `<+.google.cn>`: ... |
208
+ | 语法 | 作用 | 示例 |
209
+ | -------- | ------------------------------ | -------------------- |
210
+ | `key!` | 强制覆盖整个对象(不深度合并) | `dns!`: { ... } |
211
+ | `+key` | 数组前置插入 | `+proxies`: [...] |
212
+ | `key+` | 数组追加 | `rules+`: [...] |
213
+ | `<+key>` | 键名以 `+` 开头时转义 | `<+.google.cn>`: ... |
213
214
 
214
215
  ### 示例
215
216
 
@@ -225,18 +226,18 @@ dns!:
225
226
 
226
227
  # 追加规则
227
228
  rules+:
228
- - "DOMAIN-SUFFIX,example.com,DIRECT"
229
+ - 'DOMAIN-SUFFIX,example.com,DIRECT'
229
230
  ```
230
231
 
231
232
  ## Web UI
232
233
 
233
234
  内置三个常用 Web UI:
234
235
 
235
- | 名称 | 地址 | 说明 |
236
- |------|------|------|
237
- | zash | https://board.zash.run.place | 现代简洁界面(默认) |
238
- | dash | https://metacubex.github.io/metacubexd | MetaCubeX 官方 UI |
239
- | yacd | https://yacd.metacubex.one | 经典 YACD 界面 |
236
+ | 名称 | 地址 | 说明 |
237
+ | ---- | ---------------------------------------- | -------------------- |
238
+ | zash | <https://board.zash.run.place> | 现代简洁界面(默认) |
239
+ | dash | <https://metacubex.github.io/metacubexd> | MetaCubeX 官方 UI |
240
+ | yacd | <https://yacd.metacubex.one> | 经典 YACD 界面 |
240
241
 
241
242
  ## 故障排除
242
243
 
@@ -261,6 +262,7 @@ sudo pkill -9 mihomo
261
262
  ### 端口被占用
262
263
 
263
264
  默认端口(取决于订阅配置):
265
+
264
266
  - Mixed 端口: `7890`
265
267
  - 外部控制器: `127.0.0.1:9090`
266
268