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