@morndream/mihomo-tui 0.5.0-rc.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 +93 -0
- package/LICENSE +21 -0
- package/README.md +462 -0
- package/bin/mihomo-tui +34 -0
- package/dist/App.js +161 -0
- package/dist/App.js.map +1 -0
- package/dist/api/client.js +239 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/status.js +43 -0
- package/dist/api/status.js.map +1 -0
- package/dist/api/stream.js +139 -0
- package/dist/api/stream.js.map +1 -0
- package/dist/api/types.js +6 -0
- package/dist/api/types.js.map +1 -0
- package/dist/cli.js +221 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/conn.js +122 -0
- package/dist/commands/conn.js.map +1 -0
- package/dist/commands/logs.js +99 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/output.js +177 -0
- package/dist/commands/output.js.map +1 -0
- package/dist/commands/provider.js +140 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/proxy.js +161 -0
- package/dist/commands/proxy.js.map +1 -0
- package/dist/commands/proxyEnv.js +193 -0
- package/dist/commands/proxyEnv.js.map +1 -0
- package/dist/commands/rules.js +87 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/status.js +75 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/components/ConfirmDialog.js +31 -0
- package/dist/components/ConfirmDialog.js.map +1 -0
- package/dist/components/DelayBadge.js +27 -0
- package/dist/components/DelayBadge.js.map +1 -0
- package/dist/components/InputDialog.js +325 -0
- package/dist/components/InputDialog.js.map +1 -0
- package/dist/components/ListDialog.js +86 -0
- package/dist/components/ListDialog.js.map +1 -0
- package/dist/components/ProgressDialog.js +34 -0
- package/dist/components/ProgressDialog.js.map +1 -0
- package/dist/components/ScrollList.js +26 -0
- package/dist/components/ScrollList.js.map +1 -0
- package/dist/components/StatusBar.js +58 -0
- package/dist/components/StatusBar.js.map +1 -0
- package/dist/components/TextEditor.js +112 -0
- package/dist/components/TextEditor.js.map +1 -0
- package/dist/components/textEditorModel.js +154 -0
- package/dist/components/textEditorModel.js.map +1 -0
- package/dist/config/manager.js +296 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/preserveGroups.js +9 -0
- package/dist/config/preserveGroups.js.map +1 -0
- package/dist/config/ruleDocument.js +88 -0
- package/dist/config/ruleDocument.js.map +1 -0
- package/dist/config/ruleService.js +256 -0
- package/dist/config/ruleService.js.map +1 -0
- package/dist/config/ruleValidation.js +98 -0
- package/dist/config/ruleValidation.js.map +1 -0
- package/dist/config/service.js +63 -0
- package/dist/config/service.js.map +1 -0
- package/dist/config/settingsService.js +162 -0
- package/dist/config/settingsService.js.map +1 -0
- package/dist/config/skeleton.js +324 -0
- package/dist/config/skeleton.js.map +1 -0
- package/dist/config/subscriptionService.js +284 -0
- package/dist/config/subscriptionService.js.map +1 -0
- package/dist/config/subscriptions.js +200 -0
- package/dist/config/subscriptions.js.map +1 -0
- package/dist/config/types.js +5 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config.js +101 -0
- package/dist/config.js.map +1 -0
- package/dist/hooks/useProviders.js +138 -0
- package/dist/hooks/useProviders.js.map +1 -0
- package/dist/hooks/useProxies.js +298 -0
- package/dist/hooks/useProxies.js.map +1 -0
- package/dist/hooks/useStream.js +127 -0
- package/dist/hooks/useStream.js.map +1 -0
- package/dist/kernel/installer.js +317 -0
- package/dist/kernel/installer.js.map +1 -0
- package/dist/kernel/releases.js +111 -0
- package/dist/kernel/releases.js.map +1 -0
- package/dist/kernel/sources.js +98 -0
- package/dist/kernel/sources.js.map +1 -0
- package/dist/rules/editor.js +181 -0
- package/dist/rules/editor.js.map +1 -0
- package/dist/rules/matcher.js +83 -0
- package/dist/rules/matcher.js.map +1 -0
- package/dist/rules/model.js +25 -0
- package/dist/rules/model.js.map +1 -0
- package/dist/rules/runtime.js +46 -0
- package/dist/rules/runtime.js.map +1 -0
- package/dist/rules/types.js +10 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/ui/FooterLine.js +62 -0
- package/dist/ui/FooterLine.js.map +1 -0
- package/dist/ui/Panel.js +47 -0
- package/dist/ui/Panel.js.map +1 -0
- package/dist/ui/RowIndicator.js +25 -0
- package/dist/ui/RowIndicator.js.map +1 -0
- package/dist/ui/SectionHeader.js +14 -0
- package/dist/ui/SectionHeader.js.map +1 -0
- package/dist/ui/StatusDot.js +15 -0
- package/dist/ui/StatusDot.js.map +1 -0
- package/dist/ui/TopBar.js +81 -0
- package/dist/ui/TopBar.js.map +1 -0
- package/dist/ui/exitGuard.js +20 -0
- package/dist/ui/exitGuard.js.map +1 -0
- package/dist/ui/keyCapture.js +28 -0
- package/dist/ui/keyCapture.js.map +1 -0
- package/dist/ui/layout.js +32 -0
- package/dist/ui/layout.js.map +1 -0
- package/dist/ui/rowIndicator.js +42 -0
- package/dist/ui/rowIndicator.js.map +1 -0
- package/dist/ui/tableHeader.js +33 -0
- package/dist/ui/tableHeader.js.map +1 -0
- package/dist/ui/theme.js +47 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/ui/tone.js +131 -0
- package/dist/ui/tone.js.map +1 -0
- package/dist/version.js +27 -0
- package/dist/version.js.map +1 -0
- package/dist/views/Conns.js +107 -0
- package/dist/views/Conns.js.map +1 -0
- package/dist/views/Logs.js +89 -0
- package/dist/views/Logs.js.map +1 -0
- package/dist/views/Providers.js +392 -0
- package/dist/views/Providers.js.map +1 -0
- package/dist/views/Proxies.js +233 -0
- package/dist/views/Proxies.js.map +1 -0
- package/dist/views/RuleEditor.js +356 -0
- package/dist/views/RuleEditor.js.map +1 -0
- package/dist/views/Rules.js +286 -0
- package/dist/views/Rules.js.map +1 -0
- package/dist/views/Settings.js +734 -0
- package/dist/views/Settings.js.map +1 -0
- package/dist/views/groupDisplay.js +53 -0
- package/dist/views/groupDisplay.js.map +1 -0
- package/dist/views/subscriptionFields.js +59 -0
- package/dist/views/subscriptionFields.js.map +1 -0
- package/dist/views/yamlFile.js +32 -0
- package/dist/views/yamlFile.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuleEditor.js","sourceRoot":"","sources":["../../src/views/RuleEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/** 规则页:API 数据、保守本地测试与可回读确认的运行时禁用。 */
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { Box, Text, useInput } from 'ink';
|
|
5
|
+
import { MihomoClient } from '../api/client.js';
|
|
6
|
+
import { ScrollList } from '../components/ScrollList.js';
|
|
7
|
+
import { InputDialog } from '../components/InputDialog.js';
|
|
8
|
+
import { FooterLine } from '../ui/FooterLine.js';
|
|
9
|
+
import { Panel, TOP_PREFIX, panelTopParts } from '../ui/Panel.js';
|
|
10
|
+
import { colors, styles } from '../ui/theme.js';
|
|
11
|
+
import { useKeyCapture } from '../ui/keyCapture.js';
|
|
12
|
+
import { truncateDisplay, formatRelativeTime } from '../commands/output.js';
|
|
13
|
+
import { buildRulesTestResult, normalizeTarget } from '../rules/matcher.js';
|
|
14
|
+
import { buildRuleRows, isSelectableRow, ruleTypes } from '../rules/model.js';
|
|
15
|
+
import { normalizeRuleType } from '../rules/types.js';
|
|
16
|
+
import { canDisableRule, isUnsupportedApi, ruleSequence, toggleRule } from '../rules/runtime.js';
|
|
17
|
+
import { RuleEditor } from './RuleEditor.js';
|
|
18
|
+
const messageOf = (err) => err instanceof Error ? err.message : String(err);
|
|
19
|
+
export function RulesView({ config, height, width, active, onMessage, client }) {
|
|
20
|
+
const api = useMemo(() => client ?? new MihomoClient(config), [client, config]);
|
|
21
|
+
const [rules, setRules] = useState([]);
|
|
22
|
+
const [providers, setProviders] = useState([]);
|
|
23
|
+
const [ruleError, setRuleError] = useState('');
|
|
24
|
+
const [providerError, setProviderError] = useState('');
|
|
25
|
+
const [rulesLoading, setRulesLoading] = useState(true);
|
|
26
|
+
const [providersLoading, setProvidersLoading] = useState(true);
|
|
27
|
+
const [typeFilter, setTypeFilter] = useState('');
|
|
28
|
+
const [keyword, setKeyword] = useState('');
|
|
29
|
+
const [index, setIndex] = useState(0);
|
|
30
|
+
const [dialog, setDialog] = useState('none');
|
|
31
|
+
const [result, setResult] = useState();
|
|
32
|
+
const [notice, setNotice] = useState('');
|
|
33
|
+
const [busy, setBusy] = useState(false);
|
|
34
|
+
const [unsupported, setUnsupported] = useState(false);
|
|
35
|
+
const [marks, setMarks] = useState(new Set());
|
|
36
|
+
const sequence = useRef('');
|
|
37
|
+
const request = useRef(0);
|
|
38
|
+
const operation = useRef(false);
|
|
39
|
+
const mounted = useRef(false);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
mounted.current = true;
|
|
42
|
+
return () => { mounted.current = false; request.current++; };
|
|
43
|
+
}, []);
|
|
44
|
+
const acceptRules = useCallback((next) => {
|
|
45
|
+
const signature = ruleSequence(next);
|
|
46
|
+
if (sequence.current !== signature)
|
|
47
|
+
setMarks(new Set());
|
|
48
|
+
sequence.current = signature;
|
|
49
|
+
setRules(next);
|
|
50
|
+
setResult(undefined);
|
|
51
|
+
}, []);
|
|
52
|
+
const reload = useCallback(() => {
|
|
53
|
+
if (operation.current)
|
|
54
|
+
return;
|
|
55
|
+
const id = ++request.current;
|
|
56
|
+
setRulesLoading(true);
|
|
57
|
+
setProvidersLoading(true);
|
|
58
|
+
void api.rules().then((next) => {
|
|
59
|
+
if (!mounted.current || id !== request.current)
|
|
60
|
+
return;
|
|
61
|
+
acceptRules(next);
|
|
62
|
+
setRuleError('');
|
|
63
|
+
}).catch((err) => {
|
|
64
|
+
if (!mounted.current || id !== request.current)
|
|
65
|
+
return;
|
|
66
|
+
acceptRules([]);
|
|
67
|
+
setRuleError(isUnsupportedApi(err) ? '内核不支持规则接口' : '规则加载失败:' + messageOf(err));
|
|
68
|
+
}).finally(() => {
|
|
69
|
+
if (mounted.current && id === request.current)
|
|
70
|
+
setRulesLoading(false);
|
|
71
|
+
});
|
|
72
|
+
void api.ruleProviders().then((next) => {
|
|
73
|
+
if (!mounted.current || id !== request.current)
|
|
74
|
+
return;
|
|
75
|
+
setProviders(Object.values(next));
|
|
76
|
+
setProviderError('');
|
|
77
|
+
}).catch((err) => {
|
|
78
|
+
if (!mounted.current || id !== request.current)
|
|
79
|
+
return;
|
|
80
|
+
setProviders([]);
|
|
81
|
+
setProviderError(isUnsupportedApi(err) ? '内核不支持规则集接口' : '规则集加载失败:' + messageOf(err));
|
|
82
|
+
}).finally(() => {
|
|
83
|
+
if (mounted.current && id === request.current)
|
|
84
|
+
setProvidersLoading(false);
|
|
85
|
+
});
|
|
86
|
+
}, [api, acceptRules]);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
if (active)
|
|
89
|
+
reload();
|
|
90
|
+
}, [active, reload]);
|
|
91
|
+
// 忙碌期间同样捕获:否则 ESC 会越过本页直达全局退出确认,随后 Enter 直接退掉 TUI
|
|
92
|
+
// (对齐订阅页「忙碌不弹退出」语义:更新/禁用进行中按键一律吞掉)
|
|
93
|
+
useKeyCapture(active && (dialog === 'detail' || busy));
|
|
94
|
+
const rows = useMemo(() => buildRuleRows(rules, providers, { type: typeFilter, keyword }), [rules, providers, typeFilter, keyword]);
|
|
95
|
+
const selectable = rows.flatMap((row, position) => isSelectableRow(row) ? [position] : []);
|
|
96
|
+
const safeIndex = Math.max(0, Math.min(index, selectable.length - 1));
|
|
97
|
+
const currentRow = rows[selectable[safeIndex] ?? -1];
|
|
98
|
+
const markOnly = currentRow?.kind === 'rule' && (unsupported || !canDisableRule(currentRow.rule));
|
|
99
|
+
useEffect(() => { setIndex((value) => Math.max(0, Math.min(value, selectable.length - 1))); }, [selectable.length]);
|
|
100
|
+
const announce = (text) => { setNotice(text); onMessage(text); };
|
|
101
|
+
const runTest = (target) => {
|
|
102
|
+
const next = buildRulesTestResult(rules, target);
|
|
103
|
+
setResult(next);
|
|
104
|
+
setDialog('none');
|
|
105
|
+
setNotice('');
|
|
106
|
+
if (next.index !== null) {
|
|
107
|
+
setTypeFilter('');
|
|
108
|
+
setKeyword('');
|
|
109
|
+
setIndex(next.index - 1);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
const updateProvider = async () => {
|
|
113
|
+
if (operation.current || providersLoading || currentRow?.kind !== 'provider')
|
|
114
|
+
return;
|
|
115
|
+
operation.current = true;
|
|
116
|
+
setBusy(true);
|
|
117
|
+
const name = currentRow.provider.name;
|
|
118
|
+
announce('正在更新规则集 ' + name);
|
|
119
|
+
try {
|
|
120
|
+
await api.updateRuleProvider(name);
|
|
121
|
+
if (mounted.current)
|
|
122
|
+
announce('已更新规则集 ' + name);
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
if (mounted.current)
|
|
126
|
+
announce('更新失败:' + messageOf(err));
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
operation.current = false;
|
|
130
|
+
if (mounted.current) {
|
|
131
|
+
setBusy(false);
|
|
132
|
+
reload();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const disableRule = async () => {
|
|
137
|
+
if (operation.current || rulesLoading || ruleError || currentRow?.kind !== 'rule')
|
|
138
|
+
return;
|
|
139
|
+
if (markOnly) {
|
|
140
|
+
announce('内核不支持此规则的禁用;可按 m 本地标记(不影响分流)');
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
operation.current = true;
|
|
144
|
+
setBusy(true);
|
|
145
|
+
try {
|
|
146
|
+
const changed = await toggleRule(api, rules, currentRow.index - 1);
|
|
147
|
+
if (!mounted.current)
|
|
148
|
+
return;
|
|
149
|
+
acceptRules(changed.rules);
|
|
150
|
+
if (changed.status === 'unsupported') {
|
|
151
|
+
setUnsupported(true);
|
|
152
|
+
announce('内核不支持禁用;可按 m 本地标记(不影响分流)');
|
|
153
|
+
}
|
|
154
|
+
else if (changed.status === 'stale') {
|
|
155
|
+
announce('规则列表或状态已变化,已刷新,请重新选择后重试');
|
|
156
|
+
}
|
|
157
|
+
else if (changed.status === 'unconfirmed') {
|
|
158
|
+
announce('结果未确认,请刷新检查;未自动重试' + (changed.detail ? ':' + changed.detail : ''));
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
announce('已确认规则' + (changed.rules[currentRow.index - 1]?.extra?.disabled ? '临时禁用' : '启用') + ';重载或重启后可能恢复');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
if (mounted.current)
|
|
166
|
+
announce('规则操作失败:' + messageOf(err));
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
operation.current = false;
|
|
170
|
+
if (mounted.current)
|
|
171
|
+
setBusy(false);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
useInput((input, key) => {
|
|
175
|
+
if (dialog === 'detail') {
|
|
176
|
+
if (key.escape || key.return)
|
|
177
|
+
setDialog('none');
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (dialog !== 'none' || operation.current)
|
|
181
|
+
return;
|
|
182
|
+
if (key.upArrow || input === 'k')
|
|
183
|
+
setIndex(Math.max(0, safeIndex - 1));
|
|
184
|
+
else if (key.downArrow || input === 'j')
|
|
185
|
+
setIndex(Math.min(Math.max(0, selectable.length - 1), safeIndex + 1));
|
|
186
|
+
else if (input === 'l') {
|
|
187
|
+
const types = ruleTypes(rules);
|
|
188
|
+
setTypeFilter(types[types.indexOf(typeFilter) + 1] ?? '');
|
|
189
|
+
setIndex(0);
|
|
190
|
+
}
|
|
191
|
+
else if (input === '/')
|
|
192
|
+
setDialog('filter');
|
|
193
|
+
else if (input === 'e') {
|
|
194
|
+
request.current++;
|
|
195
|
+
setDialog('editor');
|
|
196
|
+
}
|
|
197
|
+
else if (key.return && currentRow)
|
|
198
|
+
setDialog('detail');
|
|
199
|
+
else if (input === 't') {
|
|
200
|
+
if (rulesLoading || ruleError)
|
|
201
|
+
announce('规则尚未就绪,请先刷新');
|
|
202
|
+
else
|
|
203
|
+
setDialog('test');
|
|
204
|
+
}
|
|
205
|
+
else if (input === 'u')
|
|
206
|
+
void updateProvider();
|
|
207
|
+
else if (input === 'd')
|
|
208
|
+
void disableRule();
|
|
209
|
+
else if (input === 'm' && markOnly && currentRow?.kind === 'rule') {
|
|
210
|
+
setMarks((before) => {
|
|
211
|
+
const next = new Set(before);
|
|
212
|
+
if (next.has(currentRow.index))
|
|
213
|
+
next.delete(currentRow.index);
|
|
214
|
+
else
|
|
215
|
+
next.add(currentRow.index);
|
|
216
|
+
return next;
|
|
217
|
+
});
|
|
218
|
+
announce('仅本地标记,不影响内核分流或规则测试');
|
|
219
|
+
}
|
|
220
|
+
else if (input === 'r')
|
|
221
|
+
reload();
|
|
222
|
+
}, { isActive: active });
|
|
223
|
+
const hints = [
|
|
224
|
+
{ key: '↑↓', label: '移动' }, { key: 'l', label: '切类型' }, { key: '/', label: '过滤' },
|
|
225
|
+
{ key: 'Enter', label: '详情' }, { key: 't', label: '测试' }, { key: 'u', label: '更新规则集' },
|
|
226
|
+
{ key: 'e', label: '编辑配置' },
|
|
227
|
+
{ key: markOnly ? 'm' : 'd', label: markOnly ? '本地标记' : '禁用/启用' }, { key: 'r', label: '刷新' },
|
|
228
|
+
];
|
|
229
|
+
const columns = Math.max(1, width - 6);
|
|
230
|
+
const clip = (value) => truncateDisplay(value, columns);
|
|
231
|
+
const renderRow = (row, selected) => {
|
|
232
|
+
if (row.kind === 'header')
|
|
233
|
+
return _jsx(Text, { color: colors.muted, children: clip('─ ' + row.label) });
|
|
234
|
+
const cursor = selected ? '▌ ' : ' ';
|
|
235
|
+
if (row.kind === 'provider')
|
|
236
|
+
return _jsx(Text, { children: clip(cursor + row.provider.name + ' ' + row.provider.vehicleType +
|
|
237
|
+
' ' + (row.provider.ruleCount ?? '---') + ' 条 ' + formatRelativeTime(row.provider.updatedAt)) });
|
|
238
|
+
const state = row.rule.extra?.disabled ? ' [已禁用]' : '';
|
|
239
|
+
const marked = marks.has(row.index) ? ' [标记]' : '';
|
|
240
|
+
const highlight = result?.index === row.index ? (result.outcome === 'hit' ? colors.success : colors.warning) : undefined;
|
|
241
|
+
return _jsx(Text, { color: highlight, children: clip(cursor + '#' + row.index + state + marked + ' ' +
|
|
242
|
+
normalizeRuleType(row.rule.type) + ' ' + (row.rule.payload || '—') + ' → ' + row.rule.proxy) });
|
|
243
|
+
};
|
|
244
|
+
const summary = result?.outcome === 'hit'
|
|
245
|
+
? result.target + ' 本地命中 #' + result.index + ' → 目标 ' + result.rule?.proxy + '(非最终节点)'
|
|
246
|
+
: result?.outcome === 'unsupported'
|
|
247
|
+
? '需内核判定,未确定出口:#' + result.index + ' ' + result.rule?.type + ' · ' + result.target
|
|
248
|
+
: result ? result.target + ' 未命中任何规则' : '';
|
|
249
|
+
const statusLines = [ruleError, providerError, notice, summary].filter(Boolean).length;
|
|
250
|
+
const loading = rulesLoading || providersLoading;
|
|
251
|
+
// 标题、底框、筛选栏、页脚各占一行;仅在列表溢出时给滚动计数留一行。
|
|
252
|
+
const listSpace = Math.max(1, height - 4 - statusLines - Number(loading) - Number(busy));
|
|
253
|
+
const listHeight = Math.max(1, listSpace - Number(rows.length > listSpace));
|
|
254
|
+
const detailWidth = Math.min(width, 64);
|
|
255
|
+
const detailTop = panelTopParts(currentRow?.kind === 'provider' ? '规则集详情' : '规则详情', detailWidth);
|
|
256
|
+
return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [dialog === 'editor' ? _jsx(RuleEditor, { config: config, width: width, height: height, onClose: () => { setDialog('none'); reload(); }, onSaved: (saved) => {
|
|
257
|
+
setMarks(new Set());
|
|
258
|
+
setResult(undefined);
|
|
259
|
+
setIndex(0);
|
|
260
|
+
setKeyword('');
|
|
261
|
+
setTypeFilter('');
|
|
262
|
+
setUnsupported(false);
|
|
263
|
+
if (saved.rules)
|
|
264
|
+
acceptRules(saved.rules);
|
|
265
|
+
announce(saved.message);
|
|
266
|
+
} }) : dialog === 'filter' || dialog === 'test' ? (_jsx(InputDialog, { title: dialog === 'filter' ? '按关键字过滤' : '规则测试(保守本地匹配)', width: width, fields: dialog === 'filter'
|
|
267
|
+
? [{ label: '关键字(留空清除)', key: 'keyword', value: keyword }]
|
|
268
|
+
: [{ label: '域名或 IP', key: 'target', required: true, validate: (value) => {
|
|
269
|
+
try {
|
|
270
|
+
normalizeTarget(value);
|
|
271
|
+
return undefined;
|
|
272
|
+
}
|
|
273
|
+
catch (err) {
|
|
274
|
+
return messageOf(err);
|
|
275
|
+
}
|
|
276
|
+
} }], onSubmit: (values) => {
|
|
277
|
+
if (dialog === 'filter') {
|
|
278
|
+
setKeyword(values['keyword'] ?? '');
|
|
279
|
+
setIndex(0);
|
|
280
|
+
setDialog('none');
|
|
281
|
+
}
|
|
282
|
+
else
|
|
283
|
+
runTest(values['target'] ?? '');
|
|
284
|
+
}, onCancel: () => setDialog('none') })) : dialog === 'detail' && currentRow ? (_jsx(Box, { flexDirection: "column", flexGrow: 1, justifyContent: "center", alignItems: "center", children: _jsxs(Box, { flexDirection: "column", width: detailWidth, children: [_jsxs(Text, { children: [_jsx(Text, { color: colors.accent, children: TOP_PREFIX }), _jsx(Text, { ...styles.panelTitle, children: detailTop.title }), _jsx(Text, { color: colors.accent, children: detailTop.tail })] }), _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderTop: false, borderColor: colors.accent, paddingX: 1, children: [currentRow.kind === 'rule' ? _jsxs(_Fragment, { children: [_jsx(Text, { children: '#' + currentRow.index + ' ' + normalizeRuleType(currentRow.rule.type) }), _jsx(Text, { wrap: "wrap", children: '内容:' + (currentRow.rule.payload || '—') }), _jsx(Text, { wrap: "wrap", children: '目标:' + currentRow.rule.proxy }), _jsx(Text, { children: '状态:' + (currentRow.rule.extra?.disabled === undefined ? '内核未提供' : currentRow.rule.extra.disabled ? '临时禁用' : '启用') }), normalizeRuleType(currentRow.rule.type) === 'RULE-SET' && _jsx(Text, { wrap: "wrap", children: '来源规则集:' + currentRow.rule.payload })] }) : currentRow.kind === 'provider' ? _jsxs(_Fragment, { children: [_jsx(Text, { wrap: "wrap", children: '规则集:' + currentRow.provider.name }), _jsx(Text, { children: '类型:' + currentRow.provider.vehicleType + ' / ' + (currentRow.provider.behavior ?? '未知') }), _jsx(Text, { children: '条数:' + (currentRow.provider.ruleCount ?? '未知') }), _jsx(Text, { wrap: "wrap", children: '更新:' + (currentRow.provider.updatedAt ?? '未知') })] }) : null, _jsx(Box, { marginTop: 1, children: _jsx(FooterLine, { hints: [{ key: 'Enter', label: '返回' }, { key: 'ESC', label: '返回' }], width: Math.max(1, detailWidth - 4) }) })] })] }) })) : (_jsx(Box, { flexDirection: "row", flexGrow: 1, children: _jsxs(Panel, { title: '规则 · ' + rules.length + ' 规则集 · ' + providers.length, width: width, fillHeight: true, children: [_jsx(Text, { dimColor: true, children: clip('类型 ' + (typeFilter || '全部') + (keyword ? ' · ' + keyword : '')) }), loading && _jsx(Text, { dimColor: true, children: "\u52A0\u8F7D\u4E2D ..." }), busy && _jsx(Text, { color: colors.info, children: "\u64CD\u4F5C\u4E2D ..." }), ruleError && _jsx(Text, { color: colors.danger, children: clip(ruleError) }), providerError && _jsx(Text, { color: colors.danger, children: clip(providerError) }), notice && _jsx(Text, { color: colors.warning, children: clip(notice) }), summary && _jsx(Text, { color: result?.outcome === 'hit' ? colors.success : colors.warning, children: clip(summary) }), _jsx(ScrollList, { items: rows, selected: selectable[safeIndex] ?? 0, height: listHeight, emptyText: loading ? '等待规则与规则集' : '当前没有匹配的规则或规则集', renderItem: (row, position) => renderRow(row, position === selectable[safeIndex]) })] }) })), dialog === 'none' && _jsx(Box, { paddingLeft: 1, children: _jsx(FooterLine, { hints: hints, width: width - 2 }) })] }));
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=Rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Rules.js","sourceRoot":"","sources":["../../src/views/Rules.tsx"],"names":[],"mappings":"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"}
|