mihomo-cli 1.2.5 → 1.3.1
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 +55 -0
- package/README.md +1 -1
- package/index.js +236 -303
- package/package.json +18 -11
- package/src/config.js +59 -40
- package/src/kernel.js +23 -11
- package/src/overwrite.js +7 -1
- package/src/process.js +87 -24
- package/src/subscription.js +72 -15
- package/src/utils.js +99 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.1] - 2026-04-07
|
|
4
|
+
|
|
5
|
+
### 优化
|
|
6
|
+
|
|
7
|
+
- **短帮助命令顺序**:调整常用命令展示顺序,`ui` 放最后,`ow` 提前到第三位
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## [1.3.0] - 2026-04-07
|
|
12
|
+
|
|
13
|
+
### 架构重构
|
|
14
|
+
|
|
15
|
+
- **代码组织优化**:将 `index.js` 中的业务函数迁移到对应模块,职责更清晰
|
|
16
|
+
- `getActiveSubscription`, `findSubscriptionFuzzy`, `pickSingleSubscription` → `subscription.js`
|
|
17
|
+
- `parseMirrorArg`, `normalizeMirrorUrl` → `utils.js`
|
|
18
|
+
- `openLogFile`, `viewLogWithTail` → `process.js`
|
|
19
|
+
- `DIRECTORY_TARGETS` → `config.js`
|
|
20
|
+
|
|
21
|
+
### 代码质量
|
|
22
|
+
|
|
23
|
+
- **统一 HTTP 客户端**:在 `utils.js` 中添加 `createHttpClient()` 函数,统一 `User-Agent` 为 `mihomo-cli/${VERSION}`
|
|
24
|
+
- **常量提取**:将硬编码的超时、等待时间等提取为命名常量
|
|
25
|
+
- `PROCESS_WAIT_ATTEMPTS`, `PROCESS_WAIT_INTERVAL`
|
|
26
|
+
- `STARTUP_WAIT_MS`, `SUDO_TIMEOUT_MS`, `TUN_MODE_POST_WAIT_MS`
|
|
27
|
+
- `DEFAULT_LOG_RETENTION_DAYS`
|
|
28
|
+
- `KERNEL_HTTP_TIMEOUT`, `KERNEL_MAX_CONTENT_LENGTH`, `KERNEL_DOWNLOAD_TIMEOUT`
|
|
29
|
+
|
|
30
|
+
### 开发工具链
|
|
31
|
+
|
|
32
|
+
- **ESLint**:配置 ESLint v10 + `@eslint/js` + `globals`,自动检测未使用变量/导入
|
|
33
|
+
- **Husky**:配置 Git hooks
|
|
34
|
+
- **lint-staged**:提交前自动运行 `eslint --fix` + `prettier --write`
|
|
35
|
+
- **Import 风格统一**:所有文件统一使用「内置模块 → 第三方模块 → 本地模块」的分组顺序和空行
|
|
36
|
+
|
|
37
|
+
### 清理
|
|
38
|
+
|
|
39
|
+
- 移除未使用的变量导入
|
|
40
|
+
- 未使用的 catch 错误变量统一使用 `_e` 前缀
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
3
44
|
## [1.2.5] - 2026-04-07
|
|
4
45
|
|
|
5
46
|
### 新增功能
|
|
@@ -82,6 +123,7 @@
|
|
|
82
123
|
### 新增功能
|
|
83
124
|
|
|
84
125
|
#### 配置变更自动重启
|
|
126
|
+
|
|
85
127
|
- **sub use 自动重启**:切换默认订阅后,如果 mihomo 正在运行则自动重启
|
|
86
128
|
- **ow on/off 自动重启**:启用/禁用覆写配置后,如果 mihomo 正在运行则自动重启
|
|
87
129
|
- **状态检查**:操作前检查是否已是目标状态,避免重复操作
|
|
@@ -89,6 +131,7 @@
|
|
|
89
131
|
### 重构
|
|
90
132
|
|
|
91
133
|
#### 命名规范统一
|
|
134
|
+
|
|
92
135
|
- **函数重命名**:统一使用全称单数
|
|
93
136
|
- `findSubsFuzzy` → `findSubscriptionFuzzy`
|
|
94
137
|
- `pickSingleSub` → `pickSingleSubscription`
|
|
@@ -111,6 +154,7 @@
|
|
|
111
154
|
### 新增功能
|
|
112
155
|
|
|
113
156
|
#### 覆写配置
|
|
157
|
+
|
|
114
158
|
- **覆写配置功能**:支持在订阅配置基础上进行自定义覆写
|
|
115
159
|
- `ow` / `overwrite` 命令:
|
|
116
160
|
- `ow` / `ow list`:查看覆写配置状态和文件列表
|
|
@@ -126,17 +170,20 @@
|
|
|
126
170
|
### 优化
|
|
127
171
|
|
|
128
172
|
#### 输出格式
|
|
173
|
+
|
|
129
174
|
- 统一输出格式,移除操作提示开头的 2 空格缩进
|
|
130
175
|
- 操作结果和列表之间自动添加空行分隔
|
|
131
176
|
- `start` 命令启动后自动显示完整状态信息
|
|
132
177
|
- `sub` / `ow` 操作后自动刷新列表显示
|
|
133
178
|
|
|
134
179
|
#### 文案统一
|
|
180
|
+
|
|
135
181
|
- 节点显示统一为「组在前,节点在后」的格式:`16 组, 89 节点`
|
|
136
182
|
- 统一「部分进程未终止」文案
|
|
137
183
|
- 优化状态显示对齐(`PID` 单独多 1 空格对齐)
|
|
138
184
|
|
|
139
185
|
#### 命令改进
|
|
186
|
+
|
|
140
187
|
- `ow` 无参数时等同于 `ow list`
|
|
141
188
|
- `sub` 无参数时等同于 `sub list`
|
|
142
189
|
- 帮助文档中移除 `list` 子命令展示(无参即 list)
|
|
@@ -164,6 +211,7 @@
|
|
|
164
211
|
### 新增功能
|
|
165
212
|
|
|
166
213
|
#### 订阅管理增强
|
|
214
|
+
|
|
167
215
|
- **订阅信息解析**:自动解析 `subscription-userinfo` 响应头
|
|
168
216
|
- 显示已用流量 / 总流量 / 到期时间
|
|
169
217
|
- 从 `content-disposition` 提取用户名
|
|
@@ -185,6 +233,7 @@
|
|
|
185
233
|
- **模糊匹配**:精确匹配 → 前缀匹配 → 包含匹配,多匹配时提示
|
|
186
234
|
|
|
187
235
|
#### 日志管理
|
|
236
|
+
|
|
188
237
|
- **日志轮转**:每次启动前自动归档当前日志
|
|
189
238
|
- 命名格式:`mihomo.YYYY-MM-DD_HH-MM-SS.log`
|
|
190
239
|
- **自动清理**:默认保留 7 天日志
|
|
@@ -196,6 +245,7 @@
|
|
|
196
245
|
- `log -o`:用系统编辑器打开当前日志
|
|
197
246
|
|
|
198
247
|
#### 内核更新增强
|
|
248
|
+
|
|
199
249
|
- **镜像参数支持**:
|
|
200
250
|
- `kernel hk.gh-proxy.org`:使用指定镜像
|
|
201
251
|
- `kernel --mirror <url>`:显式指定镜像
|
|
@@ -207,12 +257,15 @@
|
|
|
207
257
|
- 空字符串 `""` 或 `false` 表示禁用镜像
|
|
208
258
|
|
|
209
259
|
#### 命令别名
|
|
260
|
+
|
|
210
261
|
新增以下命令别名,任意一个均可调用:
|
|
262
|
+
|
|
211
263
|
- `mihomo`
|
|
212
264
|
- `mmc`
|
|
213
265
|
- `mh`
|
|
214
266
|
|
|
215
267
|
#### 启动流程改进
|
|
268
|
+
|
|
216
269
|
- `start` 命令现在包含完整的重启/切换逻辑:
|
|
217
270
|
- 先检查并自动更新过期订阅
|
|
218
271
|
- 再完全停止现有进程(即使没进程也清理运行时文件)
|
|
@@ -221,6 +274,7 @@
|
|
|
221
274
|
- **移除** `clean` 命令(`stop` 已包含清理)
|
|
222
275
|
|
|
223
276
|
### 改进
|
|
277
|
+
|
|
224
278
|
- 配置模块 `parseYamlOrJson()`:统一的 YAML/JSON 解析
|
|
225
279
|
- 订阅列表 `sub list` 显示:
|
|
226
280
|
- 默认订阅标记 `[默认]`
|
|
@@ -233,6 +287,7 @@
|
|
|
233
287
|
- 启动脚本日志改为追加模式 (`>>`) 而非覆盖
|
|
234
288
|
|
|
235
289
|
### 移除
|
|
290
|
+
|
|
236
291
|
- 移除 `geodata` 相关功能:
|
|
237
292
|
- `GEODATA_REPO`、`GEODATA_FILES` 常量
|
|
238
293
|
- `downloadGeodata()` 函数
|
package/README.md
CHANGED
|
@@ -112,7 +112,7 @@ mihomo ui yacd # YACD
|
|
|
112
112
|
| 命令 | 说明 |
|
|
113
113
|
| ----------------------------------- | ------------------------------------------------------- |
|
|
114
114
|
| `mihomo kernel [镜像\|--no-mirror]` | 更新内核 |
|
|
115
|
-
| `mihomo update`
|
|
115
|
+
| `mihomo update` | 更新 mihomo-cli (npm install -g) |
|
|
116
116
|
| `mihomo ui [zash\|dash\|yacd]` | 打开 Web UI |
|
|
117
117
|
| `mihomo dir` | 显示数据目录位置 |
|
|
118
118
|
| `mihomo dir open [target]` | 打开指定目录(`root`, `subs`, `logs`, `overwrites` 等) |
|