@jonathanleelx/meddle 0.5.0-beta.10 → 0.5.0-beta.12

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 (32) hide show
  1. package/CONFIG_STRUCTURE.md +8 -2
  2. package/README.md +2 -0
  3. package/bin/commands/update.js +4 -0
  4. package/bin/lib/file-access.js +27 -1
  5. package/bin/lib/update-check.js +67 -6
  6. package/dist/server/rule-files.d.ts +9 -0
  7. package/dist/server/rule-files.d.ts.map +1 -1
  8. package/dist/server/rule-files.js +188 -30
  9. package/dist/server/rule-files.js.map +1 -1
  10. package/package.json +1 -1
  11. package/web/dist/assets/{checkbox-C5E3KITf.js → checkbox-DqcyLjRe.js} +1 -1
  12. package/web/dist/assets/{code-fixer-Bbz_Rlzx.js → code-fixer-BXKaY7F8.js} +1 -1
  13. package/web/dist/assets/{detail-panel-SO3wZGmE.js → detail-panel-ixNPR0m-.js} +1 -1
  14. package/web/dist/assets/{global-panel-shell-czRfHl6X.js → global-panel-shell-QniQvRWl.js} +1 -1
  15. package/web/dist/assets/{health-panel-B1nzvjHe.js → health-panel--A3H1fpl.js} +1 -1
  16. package/web/dist/assets/{index-ChDOPlV_.js → index-CHl5ibmb.js} +2 -2
  17. package/web/dist/assets/{mobile-proxy-panel-By90SSuO.js → mobile-proxy-panel-D2ZdvKNl.js} +1 -1
  18. package/web/dist/assets/{mock-config-8d2upIWY.js → mock-config-W0ZFx5dQ.js} +1 -1
  19. package/web/dist/assets/{mock-editor-panel-BzWl9IR3.js → mock-editor-panel-CWVTWR-o.js} +1 -1
  20. package/web/dist/assets/{monaco-editor-BQUxbjIX.js → monaco-editor-Dk9Ev4mh.js} +1 -1
  21. package/web/dist/assets/{plugin-code-editor-B38R8_va.js → plugin-code-editor-DtmbZCNZ.js} +1 -1
  22. package/web/dist/assets/{plugin-config-BLTqZSgU.js → plugin-config-cTSgUsva.js} +1 -1
  23. package/web/dist/assets/{plugin-generator-E5zcpf48.js → plugin-generator-0ZQhqtnh.js} +1 -1
  24. package/web/dist/assets/{plugin-test-dialog-BnYV2F3L.js → plugin-test-dialog-CprJ-Byc.js} +1 -1
  25. package/web/dist/assets/{route-preview-F0FExfHC.js → route-preview-DyZbaemw.js} +1 -1
  26. package/web/dist/assets/{rule-ai-assistant-panel-D98DyECu.js → rule-ai-assistant-panel-Bl-yK0cP.js} +1 -1
  27. package/web/dist/assets/rule-config-B_vHYXwb.js +15 -0
  28. package/web/dist/assets/{rule-overview-panel-8RHOtrPS.js → rule-overview-panel-KEpeAiaG.js} +1 -1
  29. package/web/dist/assets/{select-BavfGQkS.js → select-Cjn7kqsh.js} +1 -1
  30. package/web/dist/assets/{settings-panel-BquHT2tt.js → settings-panel-CorzmHS5.js} +1 -1
  31. package/web/dist/index.html +1 -1
  32. package/web/dist/assets/rule-config-CKzf2Bdl.js +0 -15
@@ -173,6 +173,11 @@ https://localhost:13001/micro/app?a=1
173
173
  "默认规则",
174
174
  "beta-rules"
175
175
  ],
176
+ "ruleFileOrder": [
177
+ "默认规则",
178
+ "beta-rules",
179
+ "disabled-rules"
180
+ ],
176
181
  "mocksFilePath": "",
177
182
  "pluginMode": "off",
178
183
  "clientAliases": {
@@ -198,6 +203,7 @@ https://localhost:13001/micro/app?a=1
198
203
  | `fontSize` | 界面缩放百分比字符串,例如 `100` |
199
204
  | `detailBodySizeKB` | 日志详情保存的请求/响应体截断阈值(KB),默认 `256`;调大可保留更大 body 便于排查,但会增加内存占用(最多 `MAX_DETAIL_SIZE=200` 条同时驻留)。作用范围为单个 session,解析顺序:当前 session 的 `settings.json` → 默认 session(`~/.meddle/settings.json`,仅非默认 session 继承)→ 环境变量 `MEDDLE_MAX_DETAIL_BODY_KB` → 默认 `256`。修改后下次请求即生效(基于 mtime 缓存检测) |
200
205
  | `activeRuleFiles` | 当前启用的路由规则文件名称,顺序即合并顺序 |
206
+ | `ruleFileOrder` | Web 规则文件 Tab 的完整显示顺序(含禁用文件);启用文件的合并顺序与其在该数组中的相对顺序一致 |
201
207
  | `mocksFilePath` | 自定义 Mock JSON 路径;空值使用默认位置 |
202
208
  | `pluginMode` | 插件 Pipeline 模式:`off`、`shadow` 或 `on` |
203
209
  | `clientAliases` | 客户端 IP 到设备名称的映射 |
@@ -223,8 +229,8 @@ https://localhost:13001/micro/app?a=1
223
229
 
224
230
  ### 路由规则
225
231
 
226
- 1. 读取 `~/.meddle/settings.json` 中的 `activeRuleFiles`。
227
- 2. 按数组顺序读取 `~/.meddle/route-rules/<名称>.txt`。
232
+ 1. 读取 `~/.meddle/settings.json` 中的 `activeRuleFiles`(及可选的 `ruleFileOrder`)。
233
+ 2. 按 `activeRuleFiles` 数组顺序读取 `~/.meddle/route-rules/<名称>.txt`。启用文件的相对顺序与 Tab 栏(`ruleFileOrder`)中启用文件的相对顺序保持一致。
228
234
  3. 合并规则并按顺序匹配。
229
235
  4. 如果目录为空,首次启动会创建一个默认规则文件并将其设为启用状态。
230
236
  5. 规则文件修改后会自动重新加载。
package/README.md CHANGED
@@ -36,6 +36,8 @@ irm https://raw.githubusercontent.com/JonathanLee-LX/meddle/main/scripts/install
36
36
 
37
37
  二进制产物随 [GitHub Release](https://github.com/JonathanLee-LX/meddle/releases) 发布,也可手动下载。安装目录默认 `~/.local/bin`(已有 `~/.meddle/bin` 旧安装时原地升级),可通过 `MEDDLE_BIN_DIR` 环境变量自定义。`meddle update` 始终更新到当前运行二进制所在目录。
38
38
 
39
+ **私有仓库:** `meddle update`(含 `meddle update --beta`)/ 安装脚本下载 Release 资产时会读取 `GH_TOKEN`(优先)或 `GITHUB_TOKEN`(`repo` 或 fine-grained `contents:read`)。私有仓安装后升级也需要设置 token;未设置时会表现为 404(checksum sidecar missing)。也可手动:`gh release download -R JonathanLee-LX/meddle -p 'meddle-*'`。
40
+
39
41
  ### 命令
40
42
 
41
43
  ```bash
@@ -77,6 +77,10 @@ meddle update - 检查并升级 meddle
77
77
  meddle update --auto on|off 启用/禁用自动更新 (默认关闭)
78
78
  meddle update status 查看安装方式、当前版本和自动更新开关
79
79
  meddle update --help, -h 显示帮助
80
+
81
+ 私有仓库二进制更新需要设置 GH_TOKEN 或 GITHUB_TOKEN(优先 GH_TOKEN;
82
+ 权限:repo,或 fine-grained contents:read)。也可:
83
+ gh release download -R JonathanLee-LX/meddle -p 'meddle-*'
80
84
  `)
81
85
  }
82
86
 
@@ -167,6 +167,30 @@ function getRuleFilePath(name) {
167
167
  /**
168
168
  * List all rule files
169
169
  */
170
+ function getRuleFileOrderNames() {
171
+ const settings = loadSettings()
172
+ const arr = settings.ruleFileOrder
173
+ return Array.isArray(arr) ? arr.filter((name) => typeof name === 'string') : []
174
+ }
175
+
176
+ function resolveRuleFileOrder(diskNames, storedOrder, activeNames) {
177
+ const diskSet = new Set(diskNames)
178
+ const ordered = []
179
+ const seen = new Set()
180
+ const pushUnique = (name) => {
181
+ if (!diskSet.has(name) || seen.has(name)) return
182
+ ordered.push(name)
183
+ seen.add(name)
184
+ }
185
+ if (storedOrder.length > 0) {
186
+ for (const name of storedOrder) pushUnique(name)
187
+ } else {
188
+ for (const name of activeNames) pushUnique(name)
189
+ }
190
+ for (const name of diskNames) pushUnique(name)
191
+ return ordered
192
+ }
193
+
170
194
  function listRuleFiles() {
171
195
  ensureRouteRulesDir()
172
196
  const activeNames = getActiveRuleFileNames()
@@ -175,7 +199,9 @@ function listRuleFiles() {
175
199
  .filter(f => f.endsWith('.txt'))
176
200
  .map(f => f.replace(/\.txt$/, ''))
177
201
 
178
- return files.map(name => {
202
+ const ordered = resolveRuleFileOrder(files, getRuleFileOrderNames(), activeNames)
203
+
204
+ return ordered.map(name => {
179
205
  const filePath = getRuleFilePath(name)
180
206
  let ruleCount = 0
181
207
  let excludeCount = 0
@@ -27,6 +27,58 @@ const DEFAULT_CACHE_TTL_MS = 24 * 60 * 60 * 1000
27
27
  const DEFAULT_TIMEOUT_MS = 5000
28
28
  const DEFAULT_DOWNLOAD_TIMEOUT_MS = 120 * 1000
29
29
 
30
+ /**
31
+ * Resolve a GitHub token for private release downloads / latest redirects.
32
+ * Precedence: explicit argument → GH_TOKEN → GITHUB_TOKEN.
33
+ * @param {string} [explicit]
34
+ * @returns {string}
35
+ */
36
+ function resolveGithubToken(explicit) {
37
+ if (typeof explicit === 'string' && explicit.trim()) return explicit.trim()
38
+ const gh = process.env.GH_TOKEN
39
+ if (typeof gh === 'string' && gh.trim()) return gh.trim()
40
+ const github = process.env.GITHUB_TOKEN
41
+ if (typeof github === 'string' && github.trim()) return github.trim()
42
+ return ''
43
+ }
44
+
45
+ /**
46
+ * @param {string} token
47
+ * @returns {Record<string, string>}
48
+ */
49
+ function githubAuthHeaders(token) {
50
+ if (!token) return {}
51
+ // GitHub accepts Bearer for PATs / fine-grained tokens on release asset URLs.
52
+ return { Authorization: `Bearer ${token}` }
53
+ }
54
+
55
+ function privateReleaseAuthHint() {
56
+ return (
57
+ 'Private GitHub releases require GH_TOKEN or GITHUB_TOKEN '
58
+ + '(scope: repo, or fine-grained contents:read). '
59
+ + `Or: gh release download -R ${REPO} -p 'meddle-*'`
60
+ )
61
+ }
62
+
63
+ /**
64
+ * @param {'checksum' | 'download'} kind
65
+ * @param {number} status
66
+ * @param {boolean} hadToken
67
+ * @returns {string}
68
+ */
69
+ function formatDownloadStatusError(kind, status, hadToken) {
70
+ const base = kind === 'checksum'
71
+ ? `checksum sidecar missing (${status})`
72
+ : `download failed (${status})`
73
+ if ((status === 404 || status === 401 || status === 403) && !hadToken) {
74
+ return `${base}. ${privateReleaseAuthHint()}`
75
+ }
76
+ if ((status === 401 || status === 403) && hadToken) {
77
+ return `${base}. Token may lack repo/contents:read access to ${REPO}`
78
+ }
79
+ return base
80
+ }
81
+
30
82
  const VERSION_RE = /^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/
31
83
 
32
84
  /**
@@ -120,12 +172,14 @@ async function getLatestVersionNpm({ fetchImpl, registryUrl, timeoutMs, distTag
120
172
  * @param {{ fetchImpl?: Function, latestUrl?: string, timeoutMs?: number }} opts
121
173
  * @returns {Promise<string>}
122
174
  */
123
- async function getLatestVersionGithub({ fetchImpl, latestUrl, timeoutMs } = {}) {
175
+ async function getLatestVersionGithub({ fetchImpl, latestUrl, timeoutMs, githubToken } = {}) {
124
176
  const doFetch = fetchImpl || fetch
125
177
  const url = latestUrl || process.env.MEDDLE_GITHUB_LATEST_URL || DEFAULT_GITHUB_LATEST_URL
178
+ const token = resolveGithubToken(githubToken)
126
179
  const response = await doFetch(url, {
127
180
  redirect: 'manual',
128
181
  signal: AbortSignal.timeout(timeoutMs || DEFAULT_TIMEOUT_MS),
182
+ headers: githubAuthHeaders(token),
129
183
  })
130
184
  if (response.status < 300 || response.status >= 400) {
131
185
  throw new Error(`GitHub latest release did not redirect (${response.status})`)
@@ -287,7 +341,7 @@ function sha256Hex(buffer) {
287
341
  * baseUrl?: string, fetchImpl?: Function, timeoutMs?: number,
288
342
  * retries?: number, retryDelayMs?: number,
289
343
  * onProgress?: Function, onAttempt?: Function,
290
- * fsImpl?: object }} opts
344
+ * githubToken?: string, fsImpl?: object }} opts
291
345
  * @returns {Promise<{ installed: string, backup: string, version: string }>}
292
346
  */
293
347
  async function downloadBinaryAsset(opts) {
@@ -300,6 +354,8 @@ async function downloadBinaryAsset(opts) {
300
354
  const retryDelayMs = opts.retryDelayMs === undefined ? 1000 : opts.retryDelayMs
301
355
  const onProgress = typeof opts.onProgress === 'function' ? opts.onProgress : () => {}
302
356
  const onAttempt = typeof opts.onAttempt === 'function' ? opts.onAttempt : () => {}
357
+ const token = resolveGithubToken(opts.githubToken)
358
+ const authHeaders = githubAuthHeaders(token)
303
359
 
304
360
  const asset = getAssetName({ platform, arch })
305
361
  const assetUrl = `${baseUrl}/v${version}/${asset}`
@@ -327,8 +383,8 @@ async function downloadBinaryAsset(opts) {
327
383
  }
328
384
  resetIdle()
329
385
  try {
330
- const response = await doFetch(assetUrl, { signal: controller.signal })
331
- if (!response.ok) throw new Error(`download failed (${response.status})`)
386
+ const response = await doFetch(assetUrl, { signal: controller.signal, headers: authHeaders })
387
+ if (!response.ok) throw new Error(formatDownloadStatusError('download', response.status, Boolean(token)))
332
388
  const total = Number(response.headers.get('content-length')) || 0
333
389
  const chunks = []
334
390
  let received = 0
@@ -365,8 +421,11 @@ async function downloadBinaryAsset(opts) {
365
421
  // download — otherwise the sidecar body stream aborts before it is read
366
422
  // and the whole install fails with "operation aborted" right after the
367
423
  // payload reached 100%.
368
- const shaResponse = await doFetch(shaUrl, { signal: AbortSignal.timeout(DEFAULT_TIMEOUT_MS) })
369
- if (!shaResponse.ok) throw new Error(`checksum sidecar missing (${shaResponse.status})`)
424
+ const shaResponse = await doFetch(shaUrl, {
425
+ signal: AbortSignal.timeout(DEFAULT_TIMEOUT_MS),
426
+ headers: authHeaders,
427
+ })
428
+ if (!shaResponse.ok) throw new Error(formatDownloadStatusError('checksum', shaResponse.status, Boolean(token)))
370
429
  const shaText = await shaResponse.text()
371
430
 
372
431
  const payload = await fetchPayload()
@@ -559,5 +618,7 @@ module.exports = {
559
618
  setAutoUpdate,
560
619
  resolveUpdateBinDir,
561
620
  runAsyncUpdateCheck,
621
+ resolveGithubToken,
622
+ githubAuthHeaders,
562
623
  DEFAULT_DOWNLOAD_TIMEOUT_MS,
563
624
  }
@@ -1,6 +1,15 @@
1
1
  import { Application } from 'express';
2
2
  import { ServerContext, RuleMap } from './index';
3
3
  import { type ExcludeMap, type RouteRuleEntry } from '../helpers';
4
+ /**
5
+ * Resolve display/tab order for rule files.
6
+ * Prefer persisted ruleFileOrder; when empty, seed as activeRuleFiles then remaining disk names
7
+ * so existing merge order is preserved for enabled files.
8
+ */
9
+ export declare function resolveRuleFileOrder(diskNames: string[], storedOrder: string[], activeNames: string[]): string[];
10
+ /** Keep activeRuleFiles relative order aligned with tab/file order. */
11
+ export declare function syncActiveRuleFilesToOrder(activeNames: string[], fileOrder: string[]): string[];
12
+ export declare function setRuleFileOrder(ctx: ServerContext, names: string[]): string[];
4
13
  export interface RuleFileInfo {
5
14
  name: string;
6
15
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"rule-files.d.ts","sourceRoot":"","sources":["../../server/rule-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-files.d.ts","sourceRoot":"","sources":["../../server/rule-files.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.resolveRuleFileOrder = resolveRuleFileOrder;
37
+ exports.syncActiveRuleFilesToOrder = syncActiveRuleFilesToOrder;
38
+ exports.setRuleFileOrder = setRuleFileOrder;
36
39
  exports.getActiveRuleFileNames = getActiveRuleFileNames;
37
40
  exports.readRuleFileContent = readRuleFileContent;
38
41
  exports.writeRuleFileContent = writeRuleFileContent;
@@ -91,6 +94,107 @@ function setActiveFileNames(ctx, names) {
91
94
  settings.activeRuleFiles = names;
92
95
  saveSettings(ctx, settings);
93
96
  }
97
+ function getStoredRuleFileOrder(ctx) {
98
+ const settings = loadSettings(ctx);
99
+ const arr = settings.ruleFileOrder;
100
+ return Array.isArray(arr) ? arr.filter((name) => typeof name === 'string') : [];
101
+ }
102
+ function setStoredRuleFileOrder(ctx, names) {
103
+ const settings = loadSettings(ctx);
104
+ settings.ruleFileOrder = names;
105
+ saveSettings(ctx, settings);
106
+ }
107
+ /**
108
+ * Resolve display/tab order for rule files.
109
+ * Prefer persisted ruleFileOrder; when empty, seed as activeRuleFiles then remaining disk names
110
+ * so existing merge order is preserved for enabled files.
111
+ */
112
+ function resolveRuleFileOrder(diskNames, storedOrder, activeNames) {
113
+ const diskSet = new Set(diskNames);
114
+ const ordered = [];
115
+ const seen = new Set();
116
+ const pushUnique = (name) => {
117
+ if (!diskSet.has(name) || seen.has(name))
118
+ return;
119
+ ordered.push(name);
120
+ seen.add(name);
121
+ };
122
+ if (storedOrder.length > 0) {
123
+ for (const name of storedOrder)
124
+ pushUnique(name);
125
+ }
126
+ else {
127
+ for (const name of activeNames)
128
+ pushUnique(name);
129
+ }
130
+ for (const name of diskNames)
131
+ pushUnique(name);
132
+ return ordered;
133
+ }
134
+ /** Keep activeRuleFiles relative order aligned with tab/file order. */
135
+ function syncActiveRuleFilesToOrder(activeNames, fileOrder) {
136
+ const activeSet = new Set(activeNames);
137
+ const synced = fileOrder.filter((name) => activeSet.has(name));
138
+ for (const name of activeNames) {
139
+ if (!synced.includes(name))
140
+ synced.push(name);
141
+ }
142
+ return synced;
143
+ }
144
+ function readDiskRuleFileNames(ctx) {
145
+ const dir = getRulesDir(ctx);
146
+ ensureRulesDir(ctx);
147
+ return fs.readdirSync(dir)
148
+ .filter((f) => f.endsWith('.txt'))
149
+ .map((f) => f.replace(/\.txt$/, ''));
150
+ }
151
+ function ensureRuleFileInOrder(ctx, name) {
152
+ const diskNames = readDiskRuleFileNames(ctx);
153
+ const ordered = resolveRuleFileOrder(diskNames, getStoredRuleFileOrder(ctx), getActiveFileNames(ctx));
154
+ if (!ordered.includes(name))
155
+ ordered.push(name);
156
+ setStoredRuleFileOrder(ctx, ordered);
157
+ return ordered;
158
+ }
159
+ function renameRuleFileInOrder(ctx, oldName, newName) {
160
+ const diskNames = readDiskRuleFileNames(ctx);
161
+ const ordered = resolveRuleFileOrder(diskNames, getStoredRuleFileOrder(ctx), getActiveFileNames(ctx));
162
+ const next = [];
163
+ const seen = new Set();
164
+ for (const name of ordered) {
165
+ const resolved = name === oldName ? newName : name;
166
+ if (seen.has(resolved))
167
+ continue;
168
+ next.push(resolved);
169
+ seen.add(resolved);
170
+ }
171
+ if (!seen.has(newName))
172
+ next.push(newName);
173
+ setStoredRuleFileOrder(ctx, next);
174
+ }
175
+ function removeRuleFileFromOrder(ctx, name) {
176
+ const ordered = getStoredRuleFileOrder(ctx).filter((item) => item !== name);
177
+ setStoredRuleFileOrder(ctx, ordered);
178
+ }
179
+ function setRuleFileOrder(ctx, names) {
180
+ ensureRulesDir(ctx);
181
+ const diskNames = readDiskRuleFileNames(ctx);
182
+ const diskSet = new Set(diskNames);
183
+ const safeNames = names.map((name) => normalizeRuleFileName(name));
184
+ if (safeNames.length !== diskNames.length
185
+ || new Set(safeNames).size !== safeNames.length
186
+ || safeNames.some((name) => !diskSet.has(name))) {
187
+ throw new Error('规则文件顺序必须包含全部现有文件且无重复');
188
+ }
189
+ const activeNames = getActiveFileNames(ctx);
190
+ const syncedActive = syncActiveRuleFilesToOrder(activeNames, safeNames);
191
+ const settings = loadSettings(ctx);
192
+ settings.ruleFileOrder = safeNames;
193
+ settings.activeRuleFiles = syncedActive;
194
+ saveSettings(ctx, settings);
195
+ ctx.reloadAllRuleFiles();
196
+ return safeNames;
197
+ }
94
198
  function getActiveRuleFileNames(ctx) {
95
199
  return getActiveFileNames(ctx);
96
200
  }
@@ -121,11 +225,12 @@ function createRuleFile(ctx, name, content = '', enabled = true) {
121
225
  throw new Error(`规则文件 "${safeName}" 已存在`);
122
226
  }
123
227
  fs.writeFileSync(filePath, content, 'utf8');
228
+ ensureRuleFileInOrder(ctx, safeName);
124
229
  if (enabled) {
125
230
  const activeNames = getActiveFileNames(ctx);
126
231
  if (!activeNames.includes(safeName)) {
127
- activeNames.push(safeName);
128
- setActiveFileNames(ctx, activeNames);
232
+ const fileOrder = resolveRuleFileOrder(readDiskRuleFileNames(ctx), getStoredRuleFileOrder(ctx), activeNames);
233
+ setActiveFileNames(ctx, syncActiveRuleFilesToOrder([...activeNames, safeName], fileOrder));
129
234
  }
130
235
  }
131
236
  ctx.reloadAllRuleFiles();
@@ -145,6 +250,38 @@ function setActiveRuleFileNames(ctx, names) {
145
250
  throw new Error(`规则文件不存在: ${missingNames.join(', ')}`);
146
251
  }
147
252
  setActiveFileNames(ctx, safeNames);
253
+ // Keep tab order's enabled-file relative positions aligned with activeRuleFiles
254
+ const diskNames = readDiskRuleFileNames(ctx);
255
+ const currentOrder = resolveRuleFileOrder(diskNames, getStoredRuleFileOrder(ctx), safeNames);
256
+ const activeSet = new Set(safeNames);
257
+ let activeIndex = 0;
258
+ const nextOrder = currentOrder.map((name) => {
259
+ if (!activeSet.has(name))
260
+ return name;
261
+ const replacement = safeNames[activeIndex];
262
+ activeIndex += 1;
263
+ return replacement;
264
+ });
265
+ while (activeIndex < safeNames.length) {
266
+ nextOrder.push(safeNames[activeIndex]);
267
+ activeIndex += 1;
268
+ }
269
+ // Deduplicate while preserving first occurrence
270
+ const deduped = [];
271
+ const seen = new Set();
272
+ for (const name of nextOrder) {
273
+ if (seen.has(name))
274
+ continue;
275
+ deduped.push(name);
276
+ seen.add(name);
277
+ }
278
+ for (const name of diskNames) {
279
+ if (!seen.has(name)) {
280
+ deduped.push(name);
281
+ seen.add(name);
282
+ }
283
+ }
284
+ setStoredRuleFileOrder(ctx, deduped);
148
285
  ctx.reloadAllRuleFiles();
149
286
  return safeNames;
150
287
  }
@@ -152,13 +289,19 @@ function setActiveRuleFileNames(ctx, names) {
152
289
  * Scan the route-rules directory and return file info list.
153
290
  */
154
291
  function listRuleFiles(ctx) {
155
- const dir = getRulesDir(ctx);
156
292
  ensureRulesDir(ctx);
157
293
  const activeNames = getActiveFileNames(ctx);
158
- const files = fs.readdirSync(dir)
159
- .filter(f => f.endsWith('.txt'))
160
- .map(f => f.replace(/\.txt$/, ''));
161
- return files.map(name => {
294
+ const files = readDiskRuleFileNames(ctx);
295
+ const orderedNames = resolveRuleFileOrder(files, getStoredRuleFileOrder(ctx), activeNames);
296
+ // Persist seeded order and newly discovered / deleted names so tabs stay stable
297
+ const stored = getStoredRuleFileOrder(ctx);
298
+ const needsPersist = stored.length === 0
299
+ || orderedNames.some((name) => !stored.includes(name))
300
+ || stored.some((name) => !orderedNames.includes(name));
301
+ if (needsPersist) {
302
+ setStoredRuleFileOrder(ctx, orderedNames);
303
+ }
304
+ return orderedNames.map(name => {
162
305
  const filePath = ruleFilePath(ctx, name);
163
306
  let ruleCount = 0;
164
307
  let excludeCount = 0;
@@ -303,13 +446,17 @@ function ensureRouteRules(ctx) {
303
446
  fs.writeFileSync(defaultPath, '', 'utf8');
304
447
  }
305
448
  let activeNames = getActiveFileNames(ctx);
449
+ const allFiles = readDiskRuleFileNames(ctx);
306
450
  if (activeNames.length === 0) {
307
- const allFiles = fs.readdirSync(dir).filter(f => f.endsWith('.txt')).map(f => f.replace(/\.txt$/, ''));
308
451
  if (allFiles.length > 0) {
309
452
  activeNames = [allFiles[0]];
310
453
  setActiveFileNames(ctx, activeNames);
311
454
  }
312
455
  }
456
+ const ordered = resolveRuleFileOrder(allFiles, getStoredRuleFileOrder(ctx), activeNames);
457
+ if (getStoredRuleFileOrder(ctx).length === 0 && ordered.length > 0) {
458
+ setStoredRuleFileOrder(ctx, ordered);
459
+ }
313
460
  return activeNames;
314
461
  }
315
462
  function registerRuleFilesRoutes(app, ctx) {
@@ -325,6 +472,26 @@ function registerRuleFilesRoutes(app, ctx) {
325
472
  res.write(JSON.stringify(buildRuleOverview(ctx)));
326
473
  res.end();
327
474
  });
475
+ // PUT /api/rule-files/order - 持久化 Tab / 文件顺序,并同步启用文件合并顺序
476
+ app.put('/api/rule-files/order', (req, res) => {
477
+ res.setHeader('Content-Type', 'application/json');
478
+ try {
479
+ const order = req.body?.order;
480
+ if (!Array.isArray(order) || order.some((name) => typeof name !== 'string')) {
481
+ res.statusCode = 400;
482
+ res.write(JSON.stringify({ error: '缺少有效的 order 数组' }));
483
+ res.end();
484
+ return;
485
+ }
486
+ const nextOrder = setRuleFileOrder(ctx, order);
487
+ res.write(JSON.stringify({ status: 'success', order: nextOrder }));
488
+ }
489
+ catch (err) {
490
+ res.statusCode = 400;
491
+ res.write(JSON.stringify({ error: err.message }));
492
+ }
493
+ res.end();
494
+ });
328
495
  // POST /api/rule-files - 创建新规则文件
329
496
  app.post('/api/rule-files', (req, res) => {
330
497
  res.setHeader('Content-Type', 'application/json');
@@ -336,30 +503,18 @@ function registerRuleFilesRoutes(app, ctx) {
336
503
  res.end();
337
504
  return;
338
505
  }
339
- const safeName = name.trim().replace(/[/\\:*?"<>|]/g, '_');
340
- const filePath = ruleFilePath(ctx, safeName);
341
- if (fs.existsSync(filePath)) {
506
+ const ruleFile = createRuleFile(ctx, name, content, enabled !== false);
507
+ res.write(JSON.stringify({ status: 'success', ruleFile: { name: ruleFile.name, enabled: ruleFile.enabled, ruleCount: ruleFile.ruleCount } }));
508
+ }
509
+ catch (err) {
510
+ const message = err.message;
511
+ if (message.includes('已存在')) {
342
512
  res.statusCode = 409;
343
- res.write(JSON.stringify({ error: `规则文件 "${safeName}" 已存在` }));
344
- res.end();
345
- return;
346
513
  }
347
- ensureRulesDir(ctx);
348
- fs.writeFileSync(filePath, content, 'utf8');
349
- if (enabled) {
350
- const activeNames = getActiveFileNames(ctx);
351
- if (!activeNames.includes(safeName)) {
352
- activeNames.push(safeName);
353
- setActiveFileNames(ctx, activeNames);
354
- }
514
+ else {
515
+ res.statusCode = 500;
355
516
  }
356
- ctx.reloadAllRuleFiles();
357
- const ruleCount = Object.keys((0, helpers_1.parseEprcWithExclusions)(content).ruleMap).length;
358
- res.write(JSON.stringify({ status: 'success', ruleFile: { name: safeName, enabled, ruleCount } }));
359
- }
360
- catch (err) {
361
- res.statusCode = 500;
362
- res.write(JSON.stringify({ error: err.message }));
517
+ res.write(JSON.stringify({ error: message }));
363
518
  }
364
519
  res.end();
365
520
  });
@@ -430,6 +585,7 @@ function registerRuleFilesRoutes(app, ctx) {
430
585
  if (idx !== -1)
431
586
  activeNames[idx] = safeName;
432
587
  currentName = safeName;
588
+ renameRuleFileInOrder(ctx, name, safeName);
433
589
  }
434
590
  if (enabled !== undefined) {
435
591
  const idx = activeNames.indexOf(currentName);
@@ -440,7 +596,8 @@ function registerRuleFilesRoutes(app, ctx) {
440
596
  activeNames.splice(idx, 1);
441
597
  }
442
598
  }
443
- setActiveFileNames(ctx, activeNames);
599
+ const fileOrder = resolveRuleFileOrder(readDiskRuleFileNames(ctx), getStoredRuleFileOrder(ctx), activeNames);
600
+ setActiveFileNames(ctx, syncActiveRuleFilesToOrder(activeNames, fileOrder));
444
601
  ctx.reloadAllRuleFiles();
445
602
  res.write(JSON.stringify({ status: 'success', name: currentName }));
446
603
  }
@@ -469,6 +626,7 @@ function registerRuleFilesRoutes(app, ctx) {
469
626
  activeNames.splice(idx, 1);
470
627
  setActiveFileNames(ctx, activeNames);
471
628
  }
629
+ removeRuleFileFromOrder(ctx, name);
472
630
  ctx.reloadAllRuleFiles();
473
631
  res.write(JSON.stringify({ status: 'success' }));
474
632
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rule-files.js","sourceRoot":"","sources":["../../server/rule-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-files.js","sourceRoot":"","sources":["../../server/rule-files.ts"],"names":[],"mappings":"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"}