@jonathanleelx/meddle 0.5.0-beta.23 → 0.5.0-beta.24
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/CONFIG_STRUCTURE.md +1 -0
- package/README.md +16 -0
- package/bin/commands/route/active.js +14 -1
- package/bin/commands/route/add.js +27 -30
- package/bin/commands/route/delete.js +31 -30
- package/bin/commands/route/index.js +4 -0
- package/bin/commands/route/list.js +2 -2
- package/bin/commands/route/show.js +10 -1
- package/bin/commands/route/update.js +32 -30
- package/bin/lib/api-client.js +14 -2
- package/bin/lib/file-access.js +39 -1
- package/bin/lib/rule-file-edit.js +263 -0
- package/bin/lib/ruleset-readonly.js +61 -0
- package/dist/core/mock-handler.d.ts.map +1 -1
- package/dist/core/mock-handler.js +34 -5
- package/dist/core/mock-handler.js.map +1 -1
- package/dist/core/rule-file-edit.d.ts +81 -0
- package/dist/core/rule-file-edit.d.ts.map +1 -0
- package/dist/core/rule-file-edit.js +243 -0
- package/dist/core/rule-file-edit.js.map +1 -0
- package/dist/core/static-server.d.ts.map +1 -1
- package/dist/core/static-server.js +15 -13
- package/dist/core/static-server.js.map +1 -1
- package/dist/server/agent/tools.d.ts.map +1 -1
- package/dist/server/agent/tools.js +18 -17
- package/dist/server/agent/tools.js.map +1 -1
- package/dist/server/app-info.d.ts +14 -0
- package/dist/server/app-info.d.ts.map +1 -1
- package/dist/server/app-info.js +33 -1
- package/dist/server/app-info.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +51 -9
- package/dist/server/config.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/rule-files.d.ts +23 -0
- package/dist/server/rule-files.d.ts.map +1 -1
- package/dist/server/rule-files.js +169 -81
- package/dist/server/rule-files.js.map +1 -1
- package/dist/server/ruleset-lock.d.ts +62 -0
- package/dist/server/ruleset-lock.d.ts.map +1 -0
- package/dist/server/ruleset-lock.js +234 -0
- package/dist/server/ruleset-lock.js.map +1 -0
- package/mcp-server.js +87 -88
- package/package.json +1 -1
- package/web/dist/assets/{detail-panel-D4JSaFH3.js → detail-panel-D56nCma2.js} +3 -3
- package/web/dist/assets/dist-BQN0rzUS.js +1 -0
- package/web/dist/assets/{global-panel-shell-DXvcxmbd.js → global-panel-shell-SKPshqTf.js} +3 -3
- package/web/dist/assets/{health-panel-Bo0eD8_R.js → health-panel-CvI-VsvG.js} +1 -1
- package/web/dist/assets/index-C6dPxxT3.css +2 -0
- package/web/dist/assets/index-Dcm171u1.js +21 -0
- package/web/dist/assets/{mobile-proxy-panel-FQwFQFmS.js → mobile-proxy-panel-cpkvsdBT.js} +2 -2
- package/web/dist/assets/mock-config-CtZ866iI.js +1 -0
- package/web/dist/assets/{mock-editor-panel-kx0bzGv4.js → mock-editor-panel-CweYBdeM.js} +3 -3
- package/web/dist/assets/{mocks-file-missing-note-BvL7-uzS.js → mocks-file-missing-note-C-QJ8Bpm.js} +1 -1
- package/web/dist/assets/{monaco-editor-BLHN8gCU.js → monaco-editor-Cge8h-Ca.js} +2 -2
- package/web/dist/assets/pane-bar-Dvi-MHuB.js +1 -0
- package/web/dist/assets/{pane-split-DfQcgd1v.js → pane-split-ChCHxR7K.js} +1 -1
- package/web/dist/assets/panel-heading-Crmy9fo0.js +1 -0
- package/web/dist/assets/plugin-code-editor-VaL2lVyD.js +2 -0
- package/web/dist/assets/plugin-config-DSiOk77l.js +2 -0
- package/web/dist/assets/{plugin-generator-B5FRaaKc.js → plugin-generator-iAksMY2Q.js} +2 -2
- package/web/dist/assets/plugin-test-dialog-Cx6ifDnm.js +7 -0
- package/web/dist/assets/route-preview-T0s6si4V.js +1 -0
- package/web/dist/assets/{rule-ai-assistant-panel-BEmXPzli.js → rule-ai-assistant-panel-DzfobTWM.js} +2 -2
- package/web/dist/assets/rule-config-ESpfkJg6.js +15 -0
- package/web/dist/assets/{rule-overview-panel-DsNEU8L1.js → rule-overview-panel-BswSByar.js} +1 -1
- package/web/dist/assets/settings-panel-Cj-1Z8Ow.js +1 -0
- package/web/dist/assets/toast-9yeTf7d9.js +1 -0
- package/web/dist/assets/use-mocks-file-status-BUIUJ4oQ.js +1 -0
- package/web/dist/index.html +11 -9
- package/web/dist/assets/index-Cbis1y9h.js +0 -18
- package/web/dist/assets/index-dKaIrLee.css +0 -2
- package/web/dist/assets/mock-config-CL9nXIkx.js +0 -1
- package/web/dist/assets/pane-bar-BSzN6D93.js +0 -1
- package/web/dist/assets/panel-heading-Dev_soZA.js +0 -1
- package/web/dist/assets/plugin-code-editor-uI_-iAXY.js +0 -2
- package/web/dist/assets/plugin-config-BpfIX4Uk.js +0 -2
- package/web/dist/assets/plugin-test-dialog-Cptd2bs0.js +0 -7
- package/web/dist/assets/route-preview-DEc50Y_R.js +0 -1
- package/web/dist/assets/rule-config-DQkdF3tr.js +0 -15
- package/web/dist/assets/select-CFTzQ8Uy.js +0 -1
- package/web/dist/assets/settings-panel-C1v0UmZQ.js +0 -1
- /package/web/dist/assets/{alert-DFypnYT1.js → alert-B514Frte.js} +0 -0
- /package/web/dist/assets/{babel-DCr4VA1c.js → babel-bwZm0qi3.js} +0 -0
- /package/web/dist/assets/{body-diff-view-CCwbvDYx.js → body-diff-view-SfLCLzs9.js} +0 -0
- /package/web/dist/assets/{clipboard-VhPXNN5m.js → clipboard-Bt1qY01V.js} +0 -0
- /package/web/dist/assets/{dist-Dk9a2sJl.js → dist-DLQKRjuW.js} +0 -0
- /package/web/dist/assets/{editor-pane-actions-BGttNlkS.js → editor-pane-actions-_ckwcCII.js} +0 -0
- /package/web/dist/assets/{estree-qO_m2Qaw.js → estree-MatbZDwq.js} +0 -0
- /package/web/dist/assets/{html-VDGahtyk.js → html-CCrsbFYX.js} +0 -0
- /package/web/dist/assets/{postcss-BUm8EKMw.js → postcss-BxN7Gr8n.js} +0 -0
- /package/web/dist/assets/{standalone-Bj8SSd8Q.js → standalone-DsnFnsqM.js} +0 -0
- /package/web/dist/assets/{syntax-highlight-Dg_CTbXd.js → syntax-highlight-BFgN_C0Y.js} +0 -0
- /package/web/dist/assets/{table-B10JkPhg.js → table-DaXD6jJv.js} +0 -0
- /package/web/dist/assets/{textarea-BjWF0pk4.js → textarea-9wB8Hsz-.js} +0 -0
- /package/web/dist/assets/{wand-sparkles-DDGjzjnX.js → wand-sparkles-Bmt4dDOf.js} +0 -0
- /package/web/dist/assets/{wifi-QkTcTrED.js → wifi-Cjj_Br1u.js} +0 -0
- /package/web/dist/assets/{zap-CEVoVkAg.js → zap-BuOtogAv.js} +0 -0
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getRulesDir = getRulesDir;
|
|
36
37
|
exports.resolveRuleFileOrder = resolveRuleFileOrder;
|
|
37
38
|
exports.syncActiveRuleFilesToOrder = syncActiveRuleFilesToOrder;
|
|
38
39
|
exports.setRuleFileOrder = setRuleFileOrder;
|
|
@@ -42,14 +43,20 @@ exports.writeRuleFileContent = writeRuleFileContent;
|
|
|
42
43
|
exports.createRuleFile = createRuleFile;
|
|
43
44
|
exports.setActiveRuleFileNames = setActiveRuleFileNames;
|
|
44
45
|
exports.listRuleFiles = listRuleFiles;
|
|
46
|
+
exports.getRuleFileDetail = getRuleFileDetail;
|
|
47
|
+
exports.updateRuleFile = updateRuleFile;
|
|
48
|
+
exports.deleteRuleFile = deleteRuleFile;
|
|
45
49
|
exports.mergeActiveRules = mergeActiveRules;
|
|
46
50
|
exports.buildRuleOverview = buildRuleOverview;
|
|
47
51
|
exports.ensureRouteRules = ensureRouteRules;
|
|
48
52
|
exports.registerRuleFilesRoutes = registerRuleFilesRoutes;
|
|
53
|
+
exports.registerUiTokenRoute = registerUiTokenRoute;
|
|
49
54
|
const fs = __importStar(require("fs"));
|
|
50
55
|
const path = __importStar(require("path"));
|
|
51
56
|
const helpers_1 = require("../helpers");
|
|
57
|
+
const ruleset_lock_1 = require("./ruleset-lock");
|
|
52
58
|
const DEFAULT_RULE_NAME = '默认规则';
|
|
59
|
+
/** Directory the server reads/writes route-rule files from (<MEDDLE_HOME>/route-rules). */
|
|
53
60
|
function getRulesDir(ctx) {
|
|
54
61
|
return path.join(ctx.meddleDir, 'route-rules');
|
|
55
62
|
}
|
|
@@ -212,8 +219,9 @@ function writeRuleFileContent(ctx, name, content) {
|
|
|
212
219
|
const safeName = normalizeRuleFileName(name);
|
|
213
220
|
const filePath = ruleFilePath(ctx, safeName);
|
|
214
221
|
if (!fs.existsSync(filePath)) {
|
|
215
|
-
throw
|
|
222
|
+
throw ruleFileNotFound(safeName);
|
|
216
223
|
}
|
|
224
|
+
(0, ruleset_lock_1.assertRuleFileWritable)(ctx, safeName);
|
|
217
225
|
fs.writeFileSync(filePath, content, 'utf8');
|
|
218
226
|
ctx.reloadAllRuleFiles();
|
|
219
227
|
}
|
|
@@ -224,6 +232,8 @@ function createRuleFile(ctx, name, content = '', enabled = true) {
|
|
|
224
232
|
if (fs.existsSync(filePath)) {
|
|
225
233
|
throw new Error(`规则文件 "${safeName}" 已存在`);
|
|
226
234
|
}
|
|
235
|
+
// Drop stale lock entries first so a new file never inherits an old lock.
|
|
236
|
+
(0, ruleset_lock_1.getReadonlyRuleFileNames)(ctx);
|
|
227
237
|
fs.writeFileSync(filePath, content, 'utf8');
|
|
228
238
|
ensureRuleFileInOrder(ctx, safeName);
|
|
229
239
|
if (enabled) {
|
|
@@ -238,6 +248,7 @@ function createRuleFile(ctx, name, content = '', enabled = true) {
|
|
|
238
248
|
return {
|
|
239
249
|
name: safeName,
|
|
240
250
|
enabled,
|
|
251
|
+
readonly: false,
|
|
241
252
|
ruleCount: Object.keys(ruleMap).length,
|
|
242
253
|
excludeCount: Object.values(excludeMap).reduce((total, exclusions) => total + exclusions.length, 0),
|
|
243
254
|
};
|
|
@@ -249,6 +260,11 @@ function setActiveRuleFileNames(ctx, names) {
|
|
|
249
260
|
if (missingNames.length > 0) {
|
|
250
261
|
throw new Error(`规则文件不存在: ${missingNames.join(', ')}`);
|
|
251
262
|
}
|
|
263
|
+
// A locked ruleset may not be switched on or off.
|
|
264
|
+
const previous = new Set(getActiveFileNames(ctx));
|
|
265
|
+
const next = new Set(safeNames);
|
|
266
|
+
const changed = [...previous].filter((name) => !next.has(name)).concat(safeNames.filter((name) => !previous.has(name)));
|
|
267
|
+
(0, ruleset_lock_1.assertRuleFilesWritable)(ctx, changed);
|
|
252
268
|
setActiveFileNames(ctx, safeNames);
|
|
253
269
|
// Keep tab order's enabled-file relative positions aligned with activeRuleFiles
|
|
254
270
|
const diskNames = readDiskRuleFileNames(ctx);
|
|
@@ -293,6 +309,7 @@ function listRuleFiles(ctx) {
|
|
|
293
309
|
const activeNames = getActiveFileNames(ctx);
|
|
294
310
|
const files = readDiskRuleFileNames(ctx);
|
|
295
311
|
const orderedNames = resolveRuleFileOrder(files, getStoredRuleFileOrder(ctx), activeNames);
|
|
312
|
+
const readonlyNames = new Set((0, ruleset_lock_1.getReadonlyRuleFileNames)(ctx));
|
|
296
313
|
// Persist seeded order and newly discovered / deleted names so tabs stay stable
|
|
297
314
|
const stored = getStoredRuleFileOrder(ctx);
|
|
298
315
|
const needsPersist = stored.length === 0
|
|
@@ -318,11 +335,83 @@ function listRuleFiles(ctx) {
|
|
|
318
335
|
return {
|
|
319
336
|
name,
|
|
320
337
|
enabled: activeNames.includes(name),
|
|
338
|
+
readonly: readonlyNames.has(name),
|
|
321
339
|
ruleCount,
|
|
322
340
|
excludeCount,
|
|
323
341
|
};
|
|
324
342
|
});
|
|
325
343
|
}
|
|
344
|
+
/** Detail of one ruleset (info + raw content). Read-only operation. */
|
|
345
|
+
function getRuleFileDetail(ctx, name) {
|
|
346
|
+
const content = readRuleFileContent(ctx, name);
|
|
347
|
+
const safeName = normalizeRuleFileName(name);
|
|
348
|
+
const info = listRuleFiles(ctx).find((file) => file.name === safeName);
|
|
349
|
+
if (!info)
|
|
350
|
+
throw new Error(`规则文件 "${safeName}" 不存在`);
|
|
351
|
+
return { ...info, content };
|
|
352
|
+
}
|
|
353
|
+
function ruleFileNotFound(name) {
|
|
354
|
+
return Object.assign(new Error(`规则文件 "${name}" 不存在`), { status: 404 });
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Enable / disable and / or rename a ruleset. A locked ruleset is rejected
|
|
358
|
+
* before anything changes (the web UI must unlock it first).
|
|
359
|
+
*/
|
|
360
|
+
function updateRuleFile(ctx, rawName, changes) {
|
|
361
|
+
const name = normalizeRuleFileName(rawName);
|
|
362
|
+
const filePath = ruleFilePath(ctx, name);
|
|
363
|
+
if (!fs.existsSync(filePath))
|
|
364
|
+
throw ruleFileNotFound(name);
|
|
365
|
+
(0, ruleset_lock_1.assertRuleFileWritable)(ctx, name);
|
|
366
|
+
const { enabled, newName } = changes;
|
|
367
|
+
let currentName = name;
|
|
368
|
+
const activeNames = getActiveFileNames(ctx);
|
|
369
|
+
if (newName && newName.trim() && newName.trim() !== name) {
|
|
370
|
+
const safeName = normalizeRuleFileName(newName);
|
|
371
|
+
const newPath = ruleFilePath(ctx, safeName);
|
|
372
|
+
if (fs.existsSync(newPath)) {
|
|
373
|
+
throw Object.assign(new Error(`规则文件 "${safeName}" 已存在`), { status: 409 });
|
|
374
|
+
}
|
|
375
|
+
// Drop stale lock entries so the new name does not inherit an old lock.
|
|
376
|
+
(0, ruleset_lock_1.getReadonlyRuleFileNames)(ctx);
|
|
377
|
+
fs.renameSync(filePath, newPath);
|
|
378
|
+
const idx = activeNames.indexOf(name);
|
|
379
|
+
if (idx !== -1)
|
|
380
|
+
activeNames[idx] = safeName;
|
|
381
|
+
currentName = safeName;
|
|
382
|
+
renameRuleFileInOrder(ctx, name, safeName);
|
|
383
|
+
}
|
|
384
|
+
if (enabled !== undefined) {
|
|
385
|
+
const idx = activeNames.indexOf(currentName);
|
|
386
|
+
if (enabled && idx === -1) {
|
|
387
|
+
activeNames.push(currentName);
|
|
388
|
+
}
|
|
389
|
+
else if (!enabled && idx !== -1) {
|
|
390
|
+
activeNames.splice(idx, 1);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
const fileOrder = resolveRuleFileOrder(readDiskRuleFileNames(ctx), getStoredRuleFileOrder(ctx), activeNames);
|
|
394
|
+
setActiveFileNames(ctx, syncActiveRuleFilesToOrder(activeNames, fileOrder));
|
|
395
|
+
ctx.reloadAllRuleFiles();
|
|
396
|
+
return { name: currentName };
|
|
397
|
+
}
|
|
398
|
+
/** Delete a ruleset. A locked ruleset is rejected and stays on disk. */
|
|
399
|
+
function deleteRuleFile(ctx, rawName) {
|
|
400
|
+
const name = normalizeRuleFileName(rawName);
|
|
401
|
+
const filePath = ruleFilePath(ctx, name);
|
|
402
|
+
if (!fs.existsSync(filePath))
|
|
403
|
+
throw ruleFileNotFound(name);
|
|
404
|
+
(0, ruleset_lock_1.assertRuleFileWritable)(ctx, name);
|
|
405
|
+
fs.unlinkSync(filePath);
|
|
406
|
+
const activeNames = getActiveFileNames(ctx);
|
|
407
|
+
const idx = activeNames.indexOf(name);
|
|
408
|
+
if (idx !== -1) {
|
|
409
|
+
activeNames.splice(idx, 1);
|
|
410
|
+
setActiveFileNames(ctx, activeNames);
|
|
411
|
+
}
|
|
412
|
+
removeRuleFileFromOrder(ctx, name);
|
|
413
|
+
ctx.reloadAllRuleFiles();
|
|
414
|
+
}
|
|
326
415
|
/**
|
|
327
416
|
* 按启用文件顺序合并路由规则;匹配时按 rules 数组顺序逐条验证。
|
|
328
417
|
*/
|
|
@@ -530,111 +619,110 @@ function registerRuleFilesRoutes(app, ctx) {
|
|
|
530
619
|
return;
|
|
531
620
|
}
|
|
532
621
|
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
|
|
622
|
+
res.setHeader('X-Meddle-Ruleset-Readonly', (0, ruleset_lock_1.isRuleFileReadonly)(ctx, name) ? 'true' : 'false');
|
|
533
623
|
res.write(fs.readFileSync(filePath, 'utf8'));
|
|
534
624
|
res.end();
|
|
535
625
|
});
|
|
536
|
-
//
|
|
537
|
-
app.
|
|
538
|
-
res.setHeader('Content-Type', 'application/json');
|
|
626
|
+
// GET /api/rule-files/:name - 规则集详情(含 readonly 与内容)
|
|
627
|
+
app.get('/api/rule-files/:name', (req, res) => {
|
|
539
628
|
const name = decodeURIComponent(req.params.name);
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
res.statusCode = 404;
|
|
543
|
-
res.write(JSON.stringify({ error: '规则文件不存在' }));
|
|
544
|
-
res.end();
|
|
629
|
+
if (!fs.existsSync(ruleFilePath(ctx, name))) {
|
|
630
|
+
sendJson(res, 404, { error: '规则文件不存在' });
|
|
545
631
|
return;
|
|
546
632
|
}
|
|
547
633
|
try {
|
|
548
|
-
|
|
549
|
-
fs.writeFileSync(filePath, text, 'utf8');
|
|
550
|
-
ctx.reloadAllRuleFiles();
|
|
551
|
-
res.write(JSON.stringify({ status: 'success' }));
|
|
634
|
+
sendJson(res, 200, getRuleFileDetail(ctx, name));
|
|
552
635
|
}
|
|
553
636
|
catch (err) {
|
|
554
|
-
res
|
|
555
|
-
res.write(JSON.stringify({ error: err.message }));
|
|
637
|
+
sendError(res, err);
|
|
556
638
|
}
|
|
557
|
-
res.end();
|
|
558
639
|
});
|
|
559
|
-
// PUT /api/rule-files/:name -
|
|
560
|
-
app.put('/api/rule-files/:name', (req, res) => {
|
|
561
|
-
res.setHeader('Content-Type', 'application/json');
|
|
640
|
+
// PUT /api/rule-files/:name/content - 保存规则文件内容(锁住时拒绝)
|
|
641
|
+
app.put('/api/rule-files/:name/content', (req, res) => {
|
|
562
642
|
const name = decodeURIComponent(req.params.name);
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
res
|
|
567
|
-
|
|
643
|
+
try {
|
|
644
|
+
const text = typeof req.body === 'string' ? req.body : (req.body?.content ?? '');
|
|
645
|
+
writeRuleFileContent(ctx, name, text);
|
|
646
|
+
sendJson(res, 200, { status: 'success' });
|
|
647
|
+
}
|
|
648
|
+
catch (err) {
|
|
649
|
+
sendError(res, err);
|
|
650
|
+
}
|
|
651
|
+
});
|
|
652
|
+
// PUT /api/rule-files/:name/readonly - 加锁 / 解锁(仅 Web 界面:页面令牌 + 同源)
|
|
653
|
+
app.put('/api/rule-files/:name/readonly', (req, res) => {
|
|
654
|
+
const rawName = decodeURIComponent(req.params.name);
|
|
655
|
+
if (!(0, ruleset_lock_1.isSameOriginRequest)(req)) {
|
|
656
|
+
sendJson(res, 403, { error: '只能在 Meddle 界面中加锁或解锁', code: 'UI_ORIGIN_REQUIRED' });
|
|
657
|
+
return;
|
|
658
|
+
}
|
|
659
|
+
if (!(0, ruleset_lock_1.hasValidUiToken)(req, ctx)) {
|
|
660
|
+
sendJson(res, 403, { error: '界面令牌无效,请刷新 Meddle 页面后重试', code: 'UI_TOKEN_INVALID' });
|
|
661
|
+
return;
|
|
662
|
+
}
|
|
663
|
+
const readonly = req.body?.readonly;
|
|
664
|
+
if (typeof readonly !== 'boolean') {
|
|
665
|
+
sendJson(res, 400, { error: '缺少 readonly 布尔值' });
|
|
568
666
|
return;
|
|
569
667
|
}
|
|
570
668
|
try {
|
|
571
|
-
const
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
const newPath = ruleFilePath(ctx, safeName);
|
|
577
|
-
if (fs.existsSync(newPath)) {
|
|
578
|
-
res.statusCode = 409;
|
|
579
|
-
res.write(JSON.stringify({ error: `规则文件 "${safeName}" 已存在` }));
|
|
580
|
-
res.end();
|
|
581
|
-
return;
|
|
582
|
-
}
|
|
583
|
-
fs.renameSync(filePath, newPath);
|
|
584
|
-
const idx = activeNames.indexOf(name);
|
|
585
|
-
if (idx !== -1)
|
|
586
|
-
activeNames[idx] = safeName;
|
|
587
|
-
currentName = safeName;
|
|
588
|
-
renameRuleFileInOrder(ctx, name, safeName);
|
|
589
|
-
}
|
|
590
|
-
if (enabled !== undefined) {
|
|
591
|
-
const idx = activeNames.indexOf(currentName);
|
|
592
|
-
if (enabled && idx === -1) {
|
|
593
|
-
activeNames.push(currentName);
|
|
594
|
-
}
|
|
595
|
-
else if (!enabled && idx !== -1) {
|
|
596
|
-
activeNames.splice(idx, 1);
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
const fileOrder = resolveRuleFileOrder(readDiskRuleFileNames(ctx), getStoredRuleFileOrder(ctx), activeNames);
|
|
600
|
-
setActiveFileNames(ctx, syncActiveRuleFilesToOrder(activeNames, fileOrder));
|
|
601
|
-
ctx.reloadAllRuleFiles();
|
|
602
|
-
res.write(JSON.stringify({ status: 'success', name: currentName }));
|
|
669
|
+
const name = normalizeRuleFileName(rawName);
|
|
670
|
+
if (!fs.existsSync(ruleFilePath(ctx, name)))
|
|
671
|
+
throw ruleFileNotFound(name);
|
|
672
|
+
(0, ruleset_lock_1.setRuleFileReadonly)(ctx, name, readonly);
|
|
673
|
+
sendJson(res, 200, { status: 'success', name, readonly });
|
|
603
674
|
}
|
|
604
675
|
catch (err) {
|
|
605
|
-
res
|
|
606
|
-
res.write(JSON.stringify({ error: err.message }));
|
|
676
|
+
sendError(res, err);
|
|
607
677
|
}
|
|
608
|
-
res.end();
|
|
609
678
|
});
|
|
610
|
-
//
|
|
611
|
-
app.
|
|
612
|
-
res.setHeader('Content-Type', 'application/json');
|
|
679
|
+
// PUT /api/rule-files/:name - 更新规则文件属性(启用/禁用、重命名;锁住时拒绝)
|
|
680
|
+
app.put('/api/rule-files/:name', (req, res) => {
|
|
613
681
|
const name = decodeURIComponent(req.params.name);
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
res
|
|
618
|
-
|
|
619
|
-
|
|
682
|
+
try {
|
|
683
|
+
const { enabled, newName } = req.body || {};
|
|
684
|
+
const result = updateRuleFile(ctx, name, { enabled, newName });
|
|
685
|
+
sendJson(res, 200, { status: 'success', name: result.name });
|
|
686
|
+
}
|
|
687
|
+
catch (err) {
|
|
688
|
+
sendError(res, err);
|
|
620
689
|
}
|
|
690
|
+
});
|
|
691
|
+
// DELETE /api/rule-files/:name - 删除规则文件(锁住时拒绝)
|
|
692
|
+
app.delete('/api/rule-files/:name', (req, res) => {
|
|
693
|
+
const name = decodeURIComponent(req.params.name);
|
|
621
694
|
try {
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
const idx = activeNames.indexOf(name);
|
|
625
|
-
if (idx !== -1) {
|
|
626
|
-
activeNames.splice(idx, 1);
|
|
627
|
-
setActiveFileNames(ctx, activeNames);
|
|
628
|
-
}
|
|
629
|
-
removeRuleFileFromOrder(ctx, name);
|
|
630
|
-
ctx.reloadAllRuleFiles();
|
|
631
|
-
res.write(JSON.stringify({ status: 'success' }));
|
|
695
|
+
deleteRuleFile(ctx, name);
|
|
696
|
+
sendJson(res, 200, { status: 'success' });
|
|
632
697
|
}
|
|
633
698
|
catch (err) {
|
|
634
|
-
res
|
|
635
|
-
res.write(JSON.stringify({ error: err.message }));
|
|
699
|
+
sendError(res, err);
|
|
636
700
|
}
|
|
637
|
-
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
function sendJson(res, status, body) {
|
|
704
|
+
res.statusCode = status;
|
|
705
|
+
res.setHeader('Content-Type', 'application/json');
|
|
706
|
+
res.write(JSON.stringify(body));
|
|
707
|
+
res.end();
|
|
708
|
+
}
|
|
709
|
+
function sendError(res, err) {
|
|
710
|
+
if ((0, ruleset_lock_1.isRulesetReadonlyError)(err)) {
|
|
711
|
+
sendJson(res, ruleset_lock_1.RULESET_READONLY_STATUS, (0, ruleset_lock_1.rulesetReadonlyBody)(err));
|
|
712
|
+
return;
|
|
713
|
+
}
|
|
714
|
+
const status = typeof err?.status === 'number' ? err.status : 500;
|
|
715
|
+
sendJson(res, status, { error: err.message });
|
|
716
|
+
}
|
|
717
|
+
/** Page bootstrap for the UI token (fallback when index.html was not served by Meddle, e.g. Vite dev). */
|
|
718
|
+
function registerUiTokenRoute(app, ctx) {
|
|
719
|
+
app.get('/api/ui-token', (req, res) => {
|
|
720
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
721
|
+
if (!(0, ruleset_lock_1.isSameOriginRequest)(req)) {
|
|
722
|
+
sendJson(res, 403, { error: '只能在 Meddle 界面中获取', code: 'UI_ORIGIN_REQUIRED' });
|
|
723
|
+
return;
|
|
724
|
+
}
|
|
725
|
+
sendJson(res, 200, { token: (0, ruleset_lock_1.getUiToken)(ctx) });
|
|
638
726
|
});
|
|
639
727
|
}
|
|
640
728
|
//# sourceMappingURL=rule-files.js.map
|
|
@@ -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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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { Request } from 'express';
|
|
2
|
+
import type { ServerContext } from './index';
|
|
3
|
+
/**
|
|
4
|
+
* Issue #137: per-ruleset (rule file) read-only lock.
|
|
5
|
+
*
|
|
6
|
+
* - Stored in settings.json under `readonlyRuleFiles` (file names without
|
|
7
|
+
* `.txt`), never inside the rule file. A missing field means every ruleset
|
|
8
|
+
* is read-write, so old settings need no migration.
|
|
9
|
+
* - Keyed by file name. A rename done outside Meddle makes a new, read-write
|
|
10
|
+
* ruleset; lock entries whose file no longer exists are dropped silently.
|
|
11
|
+
* - Every ruleset write goes through `assertRuleFilesWritable`, which throws
|
|
12
|
+
* `RulesetReadonlyError` (code `RULESET_READONLY`).
|
|
13
|
+
* - Only the web UI can lock / unlock: the request must carry the token the
|
|
14
|
+
* server put into the page (index.html meta / same-origin bootstrap) and pass
|
|
15
|
+
* a same-origin check. This guards against accidents, not against an attacker:
|
|
16
|
+
* anyone with a shell can GET the page, read the token, forge `Origin`, or
|
|
17
|
+
* simply edit the files on disk.
|
|
18
|
+
*/
|
|
19
|
+
export declare const RULESET_READONLY = "RULESET_READONLY";
|
|
20
|
+
export declare const RULESET_READONLY_MESSAGE = "\u8BE5\u89C4\u5219\u96C6\u5DF2\u8BBE\u4E3A\u53EA\u8BFB\uFF0C\u53EA\u80FD\u5728 Meddle \u754C\u9762\u4E2D\u89E3\u9501";
|
|
21
|
+
/** HTTP status for a write against a locked ruleset (423 Locked). */
|
|
22
|
+
export declare const RULESET_READONLY_STATUS = 423;
|
|
23
|
+
export declare const READONLY_SETTINGS_KEY = "readonlyRuleFiles";
|
|
24
|
+
export declare const UI_TOKEN_HEADER = "x-meddle-ui-token";
|
|
25
|
+
export declare const UI_TOKEN_META_NAME = "meddle-ui-token";
|
|
26
|
+
export declare class RulesetReadonlyError extends Error {
|
|
27
|
+
readonly ruleFile: string;
|
|
28
|
+
readonly code = "RULESET_READONLY";
|
|
29
|
+
readonly status = 423;
|
|
30
|
+
constructor(ruleFile: string);
|
|
31
|
+
}
|
|
32
|
+
export declare function isRulesetReadonlyError(err: unknown): err is RulesetReadonlyError;
|
|
33
|
+
export declare function rulesetReadonlyBody(err: RulesetReadonlyError): {
|
|
34
|
+
error: string;
|
|
35
|
+
code: string;
|
|
36
|
+
ruleFile: string;
|
|
37
|
+
};
|
|
38
|
+
/** Normalize the raw settings value; anything that is not a string array counts as empty. */
|
|
39
|
+
export declare function normalizeReadonlyNames(value: unknown): string[];
|
|
40
|
+
/**
|
|
41
|
+
* Locked rule file names. Entries whose file is gone (deleted or renamed
|
|
42
|
+
* outside Meddle) are removed from settings.json here, silently.
|
|
43
|
+
*/
|
|
44
|
+
export declare function getReadonlyRuleFileNames(ctx: ServerContext): string[];
|
|
45
|
+
export declare function isRuleFileReadonly(ctx: ServerContext, name: string): boolean;
|
|
46
|
+
/** The common write gate: throws RulesetReadonlyError for the first locked name. */
|
|
47
|
+
export declare function assertRuleFilesWritable(ctx: ServerContext, names: Iterable<string>): void;
|
|
48
|
+
export declare function assertRuleFileWritable(ctx: ServerContext, name: string): void;
|
|
49
|
+
/** Lock / unlock. Only the token-protected UI route calls this. */
|
|
50
|
+
export declare function setRuleFileReadonly(ctx: ServerContext, name: string, readonly: boolean): string[];
|
|
51
|
+
/** One random token per server instance; handed to the page, never to CLI/MCP. */
|
|
52
|
+
export declare function getUiToken(ctx: ServerContext): string;
|
|
53
|
+
/** Put the token into index.html as `<meta name="meddle-ui-token">`. */
|
|
54
|
+
export declare function injectUiToken(html: string, token: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Same-origin check. Browsers send `Sec-Fetch-Site`; when present it must be
|
|
57
|
+
* `same-origin`. When `Origin` is present its host must equal `Host`. A request
|
|
58
|
+
* with neither header (plain curl / CLI / MCP fetch) is rejected.
|
|
59
|
+
*/
|
|
60
|
+
export declare function isSameOriginRequest(req: Request): boolean;
|
|
61
|
+
export declare function hasValidUiToken(req: Request, ctx: ServerContext): boolean;
|
|
62
|
+
//# sourceMappingURL=ruleset-lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruleset-lock.d.ts","sourceRoot":"","sources":["../../server/ruleset-lock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,wBAAwB,yHAA+B,CAAA;AACpE,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAC1C,eAAO,MAAM,qBAAqB,sBAAsB,CAAA;AAExD,eAAO,MAAM,eAAe,sBAAsB,CAAA;AAClD,eAAO,MAAM,kBAAkB,oBAAoB,CAAA;AAEnD,qBAAa,oBAAqB,SAAQ,KAAK;IAG/B,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAFrC,QAAQ,CAAC,IAAI,sBAAmB;IAChC,QAAQ,CAAC,MAAM,OAA0B;gBACpB,QAAQ,EAAE,MAAM;CAIxC;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,oBAAoB,CAEhF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAEhH;AAiBD,6FAA6F;AAC7F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAU/D;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,EAAE,CAYrE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5E;AASD,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAQzF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAYjG;AAMD,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAOrD;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjE;AAQD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAczD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAKzE"}
|