update 2025-07-20 07:40:23
This commit is contained in:
parent
6264cddee0
commit
258009e9c7
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-openclash
|
||||
PKG_VERSION:=0.46.133
|
||||
PKG_VERSION:=0.46.137
|
||||
PKG_MAINTAINER:=vernesong <https://github.com/vernesong/OpenClash>
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
||||
|
@ -3159,16 +3159,16 @@ function action_oc_action()
|
||||
if action == "start" then
|
||||
uci:set("openclash", "config", "enable", "1")
|
||||
uci:commit("openclash")
|
||||
luci.sys.call("/etc/init.d/openclash start >/dev/null 2>&1 &")
|
||||
luci.sys.call("/etc/init.d/openclash start >/dev/null 2>&1")
|
||||
elseif action == "stop" then
|
||||
uci:set("openclash", "config", "enable", "0")
|
||||
uci:commit("openclash")
|
||||
luci.sys.call("ps | grep openclash | grep -v grep | awk '{print $1}' | xargs -r kill -9 >/dev/null 2>&1")
|
||||
luci.sys.call("/etc/init.d/openclash stop >/dev/null 2>&1 &")
|
||||
luci.sys.call("/etc/init.d/openclash stop >/dev/null 2>&1")
|
||||
elseif action == "restart" then
|
||||
uci:set("openclash", "config", "enable", "1")
|
||||
uci:commit("openclash")
|
||||
luci.sys.call("/etc/init.d/openclash restart >/dev/null 2>&1 &")
|
||||
luci.sys.call("/etc/init.d/openclash restart >/dev/null 2>&1")
|
||||
else
|
||||
luci.http.status(400, "Invalid action parameter")
|
||||
return
|
||||
|
@ -3417,94 +3417,70 @@
|
||||
|
||||
updateUIState: function(setting, value) {
|
||||
setTimeout(() => {
|
||||
function setCheckedAndDisabled(elements, checkedIndex) {
|
||||
for (let i = 0; i < elements.length; i++) {
|
||||
elements[i].checked = (i === checkedIndex);
|
||||
elements[i].disabled = true;
|
||||
}
|
||||
}
|
||||
switch(setting) {
|
||||
case 'meta_sniffer':
|
||||
var metaSnifferOn = document.getElementById('meta_sniffer_on');
|
||||
var metaSnifferOff = document.getElementById('meta_sniffer_off');
|
||||
if (metaSnifferOn && metaSnifferOff) {
|
||||
metaSnifferOn.checked = value === '1';
|
||||
metaSnifferOff.checked = value !== '1';
|
||||
|
||||
setCheckedAndDisabled([metaSnifferOn, metaSnifferOff], value === '1' ? 0 : 1);
|
||||
var changeEvent = new Event('change', { bubbles: true });
|
||||
if (value === '1') {
|
||||
metaSnifferOn.dispatchEvent(changeEvent);
|
||||
} else {
|
||||
metaSnifferOff.dispatchEvent(changeEvent);
|
||||
}
|
||||
(value === '1' ? metaSnifferOn : metaSnifferOff).dispatchEvent(changeEvent);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'respect_rules':
|
||||
var respectRulesOn = document.getElementById('respect_rules_on');
|
||||
var respectRulesOff = document.getElementById('respect_rules_off');
|
||||
if (respectRulesOn && respectRulesOff) {
|
||||
respectRulesOn.checked = value === '1';
|
||||
respectRulesOff.checked = value !== '1';
|
||||
|
||||
setCheckedAndDisabled([respectRulesOn, respectRulesOff], value === '1' ? 0 : 1);
|
||||
var changeEvent = new Event('change', { bubbles: true });
|
||||
if (value === '1') {
|
||||
respectRulesOn.dispatchEvent(changeEvent);
|
||||
} else {
|
||||
respectRulesOff.dispatchEvent(changeEvent);
|
||||
}
|
||||
(value === '1' ? respectRulesOn : respectRulesOff).dispatchEvent(changeEvent);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'oversea':
|
||||
var oversea0 = document.getElementById('oc_setting_oversea_0');
|
||||
var oversea1 = document.getElementById('oc_setting_oversea_1');
|
||||
var oversea2 = document.getElementById('oc_setting_oversea_2');
|
||||
if (oversea0 && oversea1 && oversea2) {
|
||||
oversea0.checked = value === '0';
|
||||
oversea1.checked = value === '1';
|
||||
oversea2.checked = value === '2';
|
||||
|
||||
setCheckedAndDisabled([oversea0, oversea1, oversea2], value === '0' ? 0 : (value === '1' ? 1 : 2));
|
||||
var changeEvent = new Event('change', { bubbles: true });
|
||||
var selectedElement = value === '0' ? oversea0 : (value === '1' ? oversea1 : oversea2);
|
||||
if (selectedElement) {
|
||||
selectedElement.dispatchEvent(changeEvent);
|
||||
}
|
||||
[oversea0, oversea1, oversea2][value === '0' ? 0 : (value === '1' ? 1 : 2)].dispatchEvent(changeEvent);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'stream_unlock':
|
||||
var streamUnlockOn = document.getElementById('stream_unlock_on');
|
||||
var streamUnlockOff = document.getElementById('stream_unlock_off');
|
||||
if (streamUnlockOn && streamUnlockOff) {
|
||||
streamUnlockOn.checked = value === '1';
|
||||
streamUnlockOff.checked = value !== '1';
|
||||
|
||||
setCheckedAndDisabled([streamUnlockOn, streamUnlockOff], value === '1' ? 0 : 1);
|
||||
var changeEvent = new Event('change', { bubbles: true });
|
||||
if (value === '1') {
|
||||
streamUnlockOn.dispatchEvent(changeEvent);
|
||||
} else {
|
||||
streamUnlockOff.dispatchEvent(changeEvent);
|
||||
}
|
||||
(value === '1' ? streamUnlockOn : streamUnlockOff).dispatchEvent(changeEvent);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'rule_mode':
|
||||
var radioElements = document.getElementsByName("radios");
|
||||
if (radioElements && radioElements.length > 0) {
|
||||
for (var i = 0; i < radioElements.length; i++) {
|
||||
var isChecked = radioElements[i].value === value;
|
||||
radioElements[i].checked = isChecked;
|
||||
|
||||
if (isChecked) {
|
||||
radioElements[i].checked = radioElements[i].value === value;
|
||||
radioElements[i].disabled = true;
|
||||
if (radioElements[i].checked) {
|
||||
var changeEvent = new Event('change', { bubbles: true });
|
||||
radioElements[i].dispatchEvent(changeEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'run_mode':
|
||||
var radioRuElements = document.getElementsByName("radios-ru");
|
||||
if (radioRuElements && radioRuElements.length > 0) {
|
||||
for (var i = 0; i < radioRuElements.length; i++) {
|
||||
var isChecked = radioRuElements[i].value === value;
|
||||
radioRuElements[i].checked = isChecked;
|
||||
if (isChecked) {
|
||||
radioRuElements[i].checked = radioRuElements[i].value === value;
|
||||
radioRuElements[i].disabled = true;
|
||||
if (radioRuElements[i].checked) {
|
||||
var changeEvent = new Event('change', { bubbles: true });
|
||||
radioRuElements[i].dispatchEvent(changeEvent);
|
||||
}
|
||||
@ -3526,17 +3502,17 @@
|
||||
|
||||
try {
|
||||
this.updateUIState(setting, value);
|
||||
} catch (e) {
|
||||
}
|
||||
} catch (e) {}
|
||||
|
||||
let pollName;
|
||||
if (setting === 'rule_mode') {
|
||||
this.pausePoll('rule_mode', 5000);
|
||||
clearTimeout(s);
|
||||
pollName = 'rule_mode';
|
||||
} else if (setting === 'run_mode') {
|
||||
this.pausePoll('run_mode', 5000);
|
||||
pollName = 'run_mode';
|
||||
} else {
|
||||
this.pausePoll('oc_settings', 5000);
|
||||
pollName = 'oc_settings';
|
||||
}
|
||||
this.pausedPolls.add(pollName);
|
||||
|
||||
var params = Object.assign({}, additionalParams || {});
|
||||
if (setting !== 'rule_mode' && setting !== 'run_mode') {
|
||||
@ -3554,17 +3530,55 @@
|
||||
setTimeout(function() {
|
||||
self.pendingOperations.delete(operationKey);
|
||||
|
||||
if (!x || x.status !== 200) {
|
||||
self.revertUIState(setting);
|
||||
alert(self.getErrorMessage(setting));
|
||||
switch(setting) {
|
||||
case 'meta_sniffer':
|
||||
var metaSnifferOn = document.getElementById('meta_sniffer_on');
|
||||
var metaSnifferOff = document.getElementById('meta_sniffer_off');
|
||||
if (metaSnifferOn) metaSnifferOn.disabled = false;
|
||||
if (metaSnifferOff) metaSnifferOff.disabled = false;
|
||||
break;
|
||||
case 'respect_rules':
|
||||
var respectRulesOn = document.getElementById('respect_rules_on');
|
||||
var respectRulesOff = document.getElementById('respect_rules_off');
|
||||
if (respectRulesOn) respectRulesOn.disabled = false;
|
||||
if (respectRulesOff) respectRulesOff.disabled = false;
|
||||
break;
|
||||
case 'oversea':
|
||||
var oversea0 = document.getElementById('oc_setting_oversea_0');
|
||||
var oversea1 = document.getElementById('oc_setting_oversea_1');
|
||||
var oversea2 = document.getElementById('oc_setting_oversea_2');
|
||||
if (oversea0) oversea0.disabled = false;
|
||||
if (oversea1) oversea1.disabled = false;
|
||||
if (oversea2) oversea2.disabled = false;
|
||||
break;
|
||||
case 'stream_unlock':
|
||||
var streamUnlockOn = document.getElementById('stream_unlock_on');
|
||||
var streamUnlockOff = document.getElementById('stream_unlock_off');
|
||||
if (streamUnlockOn) streamUnlockOn.disabled = false;
|
||||
if (streamUnlockOff) streamUnlockOff.disabled = false;
|
||||
break;
|
||||
case 'rule_mode':
|
||||
var radioElements = document.getElementsByName("radios");
|
||||
if (radioElements && radioElements.length > 0) {
|
||||
for (var i = 0; i < radioElements.length; i++) {
|
||||
radioElements[i].disabled = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'run_mode':
|
||||
var radioRuElements = document.getElementsByName("radios-ru");
|
||||
if (radioRuElements && radioRuElements.length > 0) {
|
||||
for (var i = 0; i < radioRuElements.length; i++) {
|
||||
radioRuElements[i].disabled = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (setting === 'rule_mode' && !self.isPollPaused('rule_mode')) {
|
||||
get_rule_mode();
|
||||
} else if (setting === 'run_mode' && !self.isPollPaused('run_mode')) {
|
||||
get_run_mode();
|
||||
} else if (setting !== 'rule_mode' && setting !== 'run_mode' && !self.isPollPaused('oc_settings')) {
|
||||
get_oc_settings();
|
||||
self.pausedPolls.delete(pollName);
|
||||
|
||||
if (!x || x.status !== 200) {
|
||||
alert(self.getErrorMessage(setting));
|
||||
}
|
||||
}, 1500);
|
||||
});
|
||||
@ -3572,16 +3586,6 @@
|
||||
return false;
|
||||
},
|
||||
|
||||
revertUIState: function(setting) {
|
||||
if (setting === 'rule_mode') {
|
||||
get_rule_mode();
|
||||
} else if (setting === 'run_mode') {
|
||||
get_run_mode();
|
||||
} else {
|
||||
get_oc_settings();
|
||||
}
|
||||
},
|
||||
|
||||
getErrorMessage: function(setting) {
|
||||
var messages = {
|
||||
'meta_sniffer': '<%:Sniffer setting failed%>',
|
||||
@ -3599,6 +3603,26 @@
|
||||
var s, gr;
|
||||
var pluginToggleUserAction = false;
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
DarkModeDetector.init();
|
||||
|
||||
setTimeout(function() {
|
||||
ConfigFileManager.init();
|
||||
}, 200);
|
||||
|
||||
setTimeout(function() {
|
||||
SubscriptionManager.init();
|
||||
}, 200);
|
||||
|
||||
setTimeout(function() {
|
||||
check_core();
|
||||
}, 800);
|
||||
|
||||
setTimeout(function() {
|
||||
loadAnnouncement();
|
||||
}, 2000);
|
||||
});
|
||||
|
||||
XHR.poll(3, '<%=luci.dispatcher.build_url("admin", "services", "openclash", "status")%>', null, function(x, status) {
|
||||
if (x && x.status == 200) {
|
||||
var updates = [];
|
||||
@ -3613,6 +3637,8 @@
|
||||
}
|
||||
|
||||
get_run_mode();
|
||||
get_rule_mode();
|
||||
get_oc_settings();
|
||||
|
||||
var webContent = status.clash ? '<input type="button" class="dashboard-btn" value="<%:Yacd%>" onclick="return ycad_dashboard(this)"/>' : '<input type="button" class="dashboard-btn" value="<%:Yacd%>" onclick="event.preventDefault(); event.stopPropagation(); return false;"/>';
|
||||
updates.push({element: DOMCache.web, content: webContent});
|
||||
@ -3641,8 +3667,6 @@
|
||||
|
||||
StateManager.batchUpdateDOM(updates);
|
||||
|
||||
get_oc_settings();
|
||||
|
||||
StateManager.current_status = status;
|
||||
|
||||
if (status.daip) {
|
||||
@ -3716,28 +3740,6 @@
|
||||
clashversion_check();
|
||||
});
|
||||
|
||||
get_rule_mode();
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
DarkModeDetector.init();
|
||||
|
||||
setTimeout(function() {
|
||||
ConfigFileManager.init();
|
||||
}, 200);
|
||||
|
||||
setTimeout(function() {
|
||||
SubscriptionManager.init();
|
||||
}, 600);
|
||||
|
||||
setTimeout(function() {
|
||||
check_core();
|
||||
}, 800);
|
||||
|
||||
setTimeout(function() {
|
||||
loadAnnouncement();
|
||||
}, 2000);
|
||||
});
|
||||
|
||||
window.addEventListener('beforeunload', function() {
|
||||
WSManager.closeAll();
|
||||
SystemStatusManager.stop();
|
||||
@ -4009,7 +4011,6 @@
|
||||
|
||||
function get_rule_mode() {
|
||||
if (SettingsManager.isPollPaused('rule_mode')) {
|
||||
s = setTimeout("get_rule_mode()", 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -4043,7 +4044,6 @@
|
||||
}
|
||||
}
|
||||
}, true);
|
||||
s = setTimeout("get_rule_mode()", 5000);
|
||||
}
|
||||
|
||||
function switch_rule_mode(value) {
|
||||
@ -4084,6 +4084,7 @@
|
||||
}
|
||||
|
||||
function switch_run_mode(value) {
|
||||
LogManager.startLogDisplay('<%:Saving...%>');
|
||||
return SettingsManager.switchSetting(
|
||||
'run_mode',
|
||||
value,
|
||||
@ -4366,6 +4367,11 @@
|
||||
}
|
||||
|
||||
DOMCache.core_version_text.textContent = coreVersionText;
|
||||
if (DOMCache.core_version_text.scrollWidth > DOMCache.core_version_text.clientWidth) {
|
||||
DOMCache.core_version_text.title = coreVersionText;
|
||||
} else {
|
||||
DOMCache.core_version_text.title = '';
|
||||
}
|
||||
DOMCache.core_version_display.style.display = 'flex';
|
||||
|
||||
var existingDot = DOMCache.core_version_display.querySelector('.update-dot');
|
||||
@ -4398,6 +4404,11 @@
|
||||
}
|
||||
|
||||
DOMCache.plugin_version_text.textContent = pluginVersionText;
|
||||
if (DOMCache.plugin_version_text.scrollWidth > DOMCache.plugin_version_text.clientWidth) {
|
||||
DOMCache.plugin_version_text.title = pluginVersionText;
|
||||
} else {
|
||||
DOMCache.plugin_version_text.title = '';
|
||||
}
|
||||
DOMCache.plugin_version_display.style.display = 'flex';
|
||||
|
||||
var existingDot = DOMCache.plugin_version_display.querySelector('.update-dot');
|
||||
@ -4717,7 +4728,7 @@
|
||||
|
||||
if (DOMCache.clash && StateManager.current_status) {
|
||||
DOMCache.clash.innerHTML = isRunning ?
|
||||
'<b style=color:var(--success-color)>' + (StateManager.current_status.core_type || 'OpenClash') +' <%:Running%></b>' :
|
||||
'<b style=color:var(--success-color)>' + (StateManager.current_status.core_type || 'OpenClash') +' <%:Running%></b>' :
|
||||
'<b style=color:var(--error-color)><%:Not Running%></b>';
|
||||
}
|
||||
|
||||
|
@ -2100,6 +2100,9 @@ msgstr "第六步:删除 OpenClash 残留文件..."
|
||||
msgid "OpenClash Already Stop!"
|
||||
msgstr "OpenClash 关闭成功!"
|
||||
|
||||
msgid "Skip Reload OpenClash Firewall Rules Until 5 Minutes Later..."
|
||||
msgstr "5 分钟内重置已超过 3 次,跳过本次 OpenClash 防火墙规则重置..."
|
||||
|
||||
msgid "Reload OpenClash Firewall Rules..."
|
||||
msgstr "重置 OpenClash 防火墙规则..."
|
||||
|
||||
|
@ -3130,16 +3130,28 @@ start_watchdog()
|
||||
reload_service()
|
||||
{
|
||||
enable=$(uci -q get openclash.config.enable)
|
||||
MAX_RELOAD=10
|
||||
if pidof clash >/dev/null && [ "$enable" == "1" ] && [ "$1" == "firewall" ]; then
|
||||
LAST_RELOAD_TIME=$(grep "Reload OpenClash Firewall Rules..." "$LOG_FILE" | tail -n 1 | awk '{print $1" "$2}')
|
||||
if [ -n "$LAST_RELOAD_TIME" ]; then
|
||||
LAST_RELOAD_TS=$(date -d "$LAST_RELOAD_TIME" +%s 2>/dev/null)
|
||||
NOW_TS=$(date +%s)
|
||||
if [ -n "$LAST_RELOAD_TS" ] && [ $((NOW_TS - LAST_RELOAD_TS)) -lt 300 ]; then
|
||||
LAST_LINE=$(grep "Reload OpenClash Firewall Rules...$" "$LOG_FILE" | tail -n 1)
|
||||
LAST_TIME=$(echo "$LAST_LINE" | awk '{print $1" "$2}')
|
||||
LAST_TS=$(date -d "$LAST_TIME" +%s 2>/dev/null)
|
||||
CUR_RELOAD_NUM=$(echo "$LAST_LINE" | grep -oE '【[0-9]+/' | grep -oE '[0-9]+')
|
||||
if [ -n "$LAST_TS" ] && [ $((NOW_TS - LAST_TS)) -gt 300 ]; then
|
||||
CUR_RELOAD_NUM=0
|
||||
fi
|
||||
[ -z "$CUR_RELOAD_NUM" ] && CUR_RELOAD_NUM=0
|
||||
CUR_RELOAD_NUM=$((CUR_RELOAD_NUM+1))
|
||||
[ "$CUR_RELOAD_NUM" -gt "$MAX_RELOAD" ] && CUR_RELOAD_NUM=$MAX_RELOAD
|
||||
RELOAD_COUNT=$(grep "Reload OpenClash Firewall Rules...$" "$LOG_FILE" | awk '{print $1" "$2}' | while read t; do
|
||||
TS=$(date -d "$t" +%s 2>/dev/null)
|
||||
[ -n "$TS" ] && [ $((NOW_TS - TS)) -le 300 ] && echo 1
|
||||
done | wc -l)
|
||||
if [ "$RELOAD_COUNT" -ge "$MAX_RELOAD" ]; then
|
||||
LOG_OUT "【${CUR_RELOAD_NUM}/$MAX_RELOAD】Skip Reload OpenClash Firewall Rules Until 5 Minutes Later..."
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
LOG_OUT "Reload OpenClash Firewall Rules..."
|
||||
LOG_OUT "【${CUR_RELOAD_NUM}/$MAX_RELOAD】Reload OpenClash Firewall Rules..."
|
||||
revert_firewall
|
||||
do_run_mode
|
||||
get_config
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 254 KiB After Width: | Height: | Size: 254 KiB |
File diff suppressed because one or more lines are too long
@ -692,6 +692,7 @@
|
||||
2402:1600::/32
|
||||
2402:16e0::/32
|
||||
2402:1740::/32
|
||||
2402:18a0::/32
|
||||
2402:19c0::/32
|
||||
2402:1f80::/32
|
||||
2402:2000::/32
|
||||
@ -1573,7 +1574,6 @@
|
||||
2405:ed40::/32
|
||||
2405:ef40::/30
|
||||
2405:f340::/32
|
||||
2405:f3c0::/32
|
||||
2405:f580::/32
|
||||
2405:f6c0::/32
|
||||
2405:f940::/32
|
||||
|
@ -6345,6 +6345,7 @@
|
||||
165.101.122.0/23
|
||||
165.101.144.0/23
|
||||
165.101.170.0/23
|
||||
165.101.208.0/23
|
||||
166.111.0.0/16
|
||||
167.139.0.0/16
|
||||
167.189.0.0/16
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{d as t,bx as r}from"./index-BfxF6Zjo.js";const o=({children:e})=>t(r,{get children(){return[e," - MetaCubeXD"]}});export{o as D};
|
||||
import{f as t,bA as r}from"./index-CtVw7BLk.js";const o=({children:e})=>t(r,{get children(){return[e," - MetaCubeXD"]}});export{o as D};
|
@ -1,5 +1,5 @@
|
||||
import{N as o}from"./index-BfxF6Zjo.js";/**
|
||||
* @license @tabler/icons-solidjs v3.31.0 - MIT
|
||||
import{P as o}from"./index-CtVw7BLk.js";/**
|
||||
* @license @tabler/icons-solidjs v3.34.0 - MIT
|
||||
*
|
||||
* This source code is licensed under the MIT license.
|
||||
* See the LICENSE file in the root directory of this source tree.
|
@ -0,0 +1 @@
|
||||
import{u as O,f as e,t as u,i as t,ad as I,ae as q,F as x,af as B,ag as H,ah as c,ai as X,aj as Z,h as C,ak as V,al as J,am as K,an as Q,T as U,b as Y,A as ee,C as z,ao as te,V as re,_ as F,G as ae,B as j,a2 as le,a0 as G,a3 as se,$ as A,a9 as ne,ab as ie,q as oe}from"./index-CtVw7BLk.js";import{c as ce,I as de,a as ge,f as P,b as ue,d as he,g as ve,i as me,j as pe,r as fe}from"./index-CPvx_C2g.js";import{D as be}from"./DocumentTitle-D9yyEXNP.js";var _e=u('<div class="flex flex-col gap-4"><div><select class=select></select></div><div><select class=select></select></div><div><select class=select>'),M=u("<option>");const $e=b=>{const[i]=O();return e(U,{ref:s=>b.ref?.(s),get icon(){return e(Q,{size:24})},get title(){return i("logsSettings")},get children(){var s=_e(),h=s.firstChild,o=h.firstChild,_=h.nextSibling,m=_.firstChild,y=_.nextSibling,p=y.firstChild;return t(h,e(I,{withDivider:!0,get children(){return i("tableSize")}}),o),o.addEventListener("change",r=>q(r.target.value)),t(o,e(x,{get each(){return Object.values(B)},children:r=>(()=>{var l=M();return l.value=r,t(l,()=>i(r)),l})()})),t(_,e(I,{withDivider:!0,get children(){return i("logLevel")}}),m),m.addEventListener("change",r=>H(r.target.value)),t(m,e(x,{get each(){return[c.Info,c.Error,c.Warning,c.Debug,c.Silent]},children:r=>(()=>{var l=M();return l.value=r,t(l,()=>i(r)),l})()})),t(y,e(I,{withDivider:!0,get children(){return i("logMaxRows")}}),p),p.addEventListener("change",r=>X(parseInt(r.target.value))),t(p,e(x,{each:Z,children:r=>(()=>{var l=M();return l.value=r,t(l,r),l})()})),C(()=>o.value=V()),C(()=>m.value=J()),C(()=>p.value=K()),s}})};var Se=u("<span>"),xe=u('<div class="flex h-full flex-col gap-2"><div class="join w-full"><input type=search class="input input-sm join-item flex-1 flex-shrink-0 input-primary"></div><div class="overflow-x-auto rounded-md bg-base-300 whitespace-nowrap"><table><thead class="sticky top-0 z-10"></thead><tbody>'),Ce=u("<tr>"),ye=u('<th class=bg-base-200><div class="flex items-center"><div>'),we=u('<tr class="hover:!bg-primary hover:text-primary-content">'),Le=u("<td class=py-2>");const N=(b,i,s,h)=>{const o=fe(b.getValue(i),s);return h({itemRank:o}),o.passed},ke=()=>{const b=Y();if(!ee())return b("/setup",{replace:!0}),null;let i;const[s]=O(),[h,o]=z(""),{logs:_,paused:m,setPaused:y}=te(),[p,r]=re(z([]),{name:"logsTableSorting",storage:localStorage}),l=[{header:s("sequence"),accessorFn:n=>n.seq},{header:s("type"),accessorFn:n=>n.type,cell:({row:n})=>{const f=n.original.type;let d="";switch(f){case c.Error:d="text-error";break;case c.Warning:d="text-warning";break;case c.Info:d="text-info";break;case c.Debug:d="text-success";break}return(()=>{var $=Se();return F($,d),t($,()=>`[${n.original.type}]`),$})()}},{header:s("payload"),accessorFn:n=>n.payload}],k=ce({filterFns:{fuzzy:N},state:{get globalFilter(){return h()},get sorting(){return p()}},get data(){return _()},sortDescFirst:!0,columns:l,onGlobalFilterChange:o,onSortingChange:r,globalFilterFn:N,getFilteredRowModel:pe(),getSortedRowModel:me(),getCoreRowModel:ve()});return[e(be,{get children(){return s("logs")}}),(()=>{var n=xe(),f=n.firstChild,d=f.firstChild,$=f.nextSibling,R=$.firstChild,D=R.firstChild,W=D.nextSibling;return d.$$input=a=>o(a.target.value),t(f,e(j,{class:"join-item btn-sm btn-primary",onClick:()=>y(a=>!a),get icon(){return ae(()=>!!m())()?e(de,{}):e(ge,{})}}),null),t(f,e(j,{class:"join-item btn-sm btn-primary",onClick:()=>i?.showModal(),get icon(){return e(le,{})}}),null),t(D,e(G,{get each(){return k.getHeaderGroups()},children:a=>{const v=a();return(()=>{var g=Ce();return t(g,e(G,{get each(){return v.headers},children:w=>{const S=w();return(()=>{var E=ye(),T=E.firstChild,L=T.firstChild;return se(L,"click",S.column.getToggleSortingHandler(),!0),t(L,()=>P(S.column.columnDef.header,S.getContext())),t(T,()=>({asc:e(he,{}),desc:e(ue,{})})[S.column.getIsSorted()]??null,null),C(()=>F(L,A(S.column.getCanSort()&&"cursor-pointer select-none","flex-1"))),E})()}})),g})()}})),t(W,e(x,{get each(){return k.getRowModel().rows},children:a=>(()=>{var v=we();return t(v,e(x,{get each(){return a.getVisibleCells()},children:g=>(()=>{var w=Le();return t(w,()=>P(g.column.columnDef.cell,g.getContext())),w})()})),v})()})),t(n,e($e,{ref:a=>i=a}),null),C(a=>{var v=s("search"),g=A(ne(V()),"table relative rounded-none");return v!==a.e&&ie(d,"placeholder",a.e=v),g!==a.t&&F(R,a.t=g),a},{e:void 0,t:void 0}),n})()]};oe(["input","click"]);export{ke as default};
|
@ -1 +0,0 @@
|
||||
import{u as O,d as e,t as h,i as t,ab as I,ac as V,F as x,ad as q,ae as H,af as d,ag as Z,ah as Q,g as C,ai as W,aj as X,ak as Y,al as J,Q as K,b as U,y as ee,A as z,am as te,T as re,Y as F,E as ae,B as j,a0 as le,_ as A,a1 as se,Z as G,a7 as ne,a9 as ie,n as oe}from"./index-BfxF6Zjo.js";import{c as ce,I as de,a as ge,f as P,b as ue,d as he,g as ve,i as me,j as fe,r as be}from"./index-CXfh_Ffl.js";import{D as pe}from"./DocumentTitle-qgMGpI7d.js";var _e=h('<div class="flex flex-col gap-4"><div><select class=select></select></div><div><select class=select></select></div><div><select class=select>'),k=h("<option>");const $e=v=>{const[l]=O();return e(K,{ref:n=>{var o;return(o=v.ref)==null?void 0:o.call(v,n)},get icon(){return e(J,{size:24})},get title(){return l("logsSettings")},get children(){var n=_e(),o=n.firstChild,c=o.firstChild,_=o.nextSibling,f=_.firstChild,y=_.nextSibling,b=y.firstChild;return t(o,e(I,{withDivider:!0,get children(){return l("tableSize")}}),c),c.addEventListener("change",r=>V(r.target.value)),t(c,e(x,{get each(){return Object.values(q)},children:r=>(()=>{var s=k();return s.value=r,t(s,()=>l(r)),s})()})),t(_,e(I,{withDivider:!0,get children(){return l("logLevel")}}),f),f.addEventListener("change",r=>H(r.target.value)),t(f,e(x,{get each(){return[d.Info,d.Error,d.Warning,d.Debug,d.Silent]},children:r=>(()=>{var s=k();return s.value=r,t(s,()=>l(r)),s})()})),t(y,e(I,{withDivider:!0,get children(){return l("logMaxRows")}}),b),b.addEventListener("change",r=>Z(parseInt(r.target.value))),t(b,e(x,{each:Q,children:r=>(()=>{var s=k();return s.value=r,t(s,r),s})()})),C(()=>c.value=W()),C(()=>f.value=X()),C(()=>b.value=Y()),n}})};var Se=h("<span>"),xe=h('<div class="flex h-full flex-col gap-2"><div class="join w-full"><input type=search class="input input-sm join-item flex-1 flex-shrink-0 input-primary"></div><div class="overflow-x-auto rounded-md bg-base-300 whitespace-nowrap"><table><thead class="sticky top-0 z-10"></thead><tbody>'),Ce=h("<tr>"),ye=h('<th class=bg-base-200><div class="flex items-center"><div>'),we=h('<tr class="hover:!bg-primary hover:text-primary-content">'),Le=h("<td class=py-2>");const N=(v,l,n,o)=>{const c=be(v.getValue(l),n);return o({itemRank:c}),c.passed},Me=()=>{const v=U();if(!ee())return v("/setup",{replace:!0}),null;let l;const[n]=O(),[o,c]=z(""),{logs:_,paused:f,setPaused:y}=te(),[b,r]=re(z([]),{name:"logsTableSorting",storage:localStorage}),s=[{header:n("sequence"),accessorFn:i=>i.seq},{header:n("type"),accessorFn:i=>i.type,cell:({row:i})=>{const p=i.original.type;let g="";switch(p){case d.Error:g="text-error";break;case d.Warning:g="text-warning";break;case d.Info:g="text-info";break;case d.Debug:g="text-success";break}return(()=>{var $=Se();return F($,g),t($,()=>`[${i.original.type}]`),$})()}},{header:n("payload"),accessorFn:i=>i.payload}],M=ce({filterFns:{fuzzy:N},state:{get globalFilter(){return o()},get sorting(){return b()}},get data(){return _()},sortDescFirst:!0,columns:s,onGlobalFilterChange:c,onSortingChange:r,globalFilterFn:N,getFilteredRowModel:fe(),getSortedRowModel:me(),getCoreRowModel:ve()});return[e(pe,{get children(){return n("logs")}}),(()=>{var i=xe(),p=i.firstChild,g=p.firstChild,$=p.nextSibling,E=$.firstChild,R=E.firstChild,B=R.nextSibling;return g.$$input=a=>c(a.target.value),t(p,e(j,{class:"join-item btn-sm btn-primary",onClick:()=>y(a=>!a),get icon(){return ae(()=>!!f())()?e(de,{}):e(ge,{})}}),null),t(p,e(j,{class:"join-item btn-sm btn-primary",onClick:()=>l==null?void 0:l.showModal(),get icon(){return e(le,{})}}),null),t(R,e(A,{get each(){return M.getHeaderGroups()},children:a=>{const m=a();return(()=>{var u=Ce();return t(u,e(A,{get each(){return m.headers},children:w=>{const S=w();return(()=>{var D=ye(),T=D.firstChild,L=T.firstChild;return se(L,"click",S.column.getToggleSortingHandler(),!0),t(L,()=>P(S.column.columnDef.header,S.getContext())),t(T,()=>({asc:e(he,{}),desc:e(ue,{})})[S.column.getIsSorted()]??null,null),C(()=>F(L,G(S.column.getCanSort()&&"cursor-pointer select-none","flex-1"))),D})()}})),u})()}})),t(B,e(x,{get each(){return M.getRowModel().rows},children:a=>(()=>{var m=we();return t(m,e(x,{get each(){return a.getVisibleCells()},children:u=>(()=>{var w=Le();return t(w,()=>P(u.column.columnDef.cell,u.getContext())),w})()})),m})()})),t(i,e($e,{ref:a=>l=a}),null),C(a=>{var m=n("search"),u=G(ne(W()),"table relative rounded-none");return m!==a.e&&ie(g,"placeholder",a.e=m),u!==a.t&&F(E,a.t=u),a},{e:void 0,t:void 0}),i})()]};oe(["input","click"]);export{Me as default};
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
import{u as B,a as T,b as q,c as z,v as H,z as b,o as M,e as h,d,t as v,f as N,i as o,g as X,S as G,B as U,I as J,F as K,h as E,s as y,j as O,k as Q,l as W,m as C,n as Y}from"./index-BfxF6Zjo.js";import{D as Z}from"./DocumentTitle-qgMGpI7d.js";const l=[];for(let t=0;t<256;++t)l.push((t+256).toString(16).slice(1));function tt(t,n=0){return(l[t[n+0]]+l[t[n+1]]+l[t[n+2]]+l[t[n+3]]+"-"+l[t[n+4]]+l[t[n+5]]+"-"+l[t[n+6]]+l[t[n+7]]+"-"+l[t[n+8]]+l[t[n+9]]+"-"+l[t[n+10]]+l[t[n+11]]+l[t[n+12]]+l[t[n+13]]+l[t[n+14]]+l[t[n+15]]).toLowerCase()}let $;const et=new Uint8Array(16);function nt(){if(!$){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");$=crypto.getRandomValues.bind(crypto)}return $(et)}const st=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),R={randomUUID:st};function lt(t,n,x){var m;if(R.randomUUID&&!t)return R.randomUUID();t=t||{};const i=t.random??((m=t.rng)==null?void 0:m.call(t))??nt();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=i[6]&15|64,i[8]=i[8]&63|128,tt(i)}var rt=v("<option>"),it=v('<div class="mx-auto flex max-w-screen-sm flex-col items-center gap-4 py-10"><form class=contents><div class="flex w-full flex-col gap-4"><fieldset class=fieldset><label class=label for=url><span></span></label><input id=url name=url type=url class="input w-full"placeholder=http(s)://{hostname}:{port} list=defaultEndpoints><datalist id=defaultEndpoints><option value=http://127.0.0.1:9090></option></datalist></fieldset><fieldset class=fieldset><label class=label for=secret><span></span></label><input id=secret name=secret type=password class="input w-full"placeholder=secret></fieldset></div></form><div class="grid w-full grid-cols-2 gap-4">'),at=v('<div class="badge flex w-full cursor-pointer items-center justify-between gap-4 py-4 badge-info"><span class=truncate>');const ot=b.object({url:b.string().min(1),secret:b.string()}),ut=()=>{const[t]=B(),n=T(),x=q(),i=s=>{C(s),x("/overview",{replace:!0})},m=async s=>{const e=h().find(r=>r.id===s);e&&await E(e.url,e.secret)&&i(s)},f=async({url:s,secret:e})=>{const r=O(s);if(!await E(r,e))return;const a=lt(),c=h().slice(),u=c.find(w=>w.url===r);if(!u){y([{id:a,url:r,secret:e},...c]),i(a);return}u.secret=e,u.id=a,y(c),i(a)},I=s=>{const{message:e}=s;Q.error(e)},{form:_}=z({extend:H({schema:ot}),onSubmit:f,onError:I}),L=s=>{W()===s&&C(""),y(h().filter(e=>e.id!==s))};return M(async()=>{var r,a;const s=n.search||window.location.search||((a=(r=n.hash.match(/\?.*$/))==null?void 0:r[0])==null?void 0:a.replace("?",""));if(!s)return;const e=new URLSearchParams(s);e.has("hostname")?await f({url:`${e.get("http")?"http:":e.get("https")?"https:":window.location.protocol}//${e.get("hostname")}${e.get("port")?`:${e.get("port")}`:""}`,secret:e.get("secret")??""}):h().length===0&&await f({url:"http://127.0.0.1:9090",secret:""})}),[d(Z,{get children(){return t("setup")}}),(()=>{var s=it(),e=s.firstChild,r=e.firstChild,a=r.firstChild,c=a.firstChild,u=c.firstChild,w=c.nextSibling,S=w.nextSibling;S.firstChild;var D=a.nextSibling,k=D.firstChild,j=k.firstChild,V=e.nextSibling;return N(_,e,()=>_),o(u,()=>t("endpointURL")),o(S,d(G,{get when(){return window.location.origin!=="http://127.0.0.1:9090"},get children(){var p=rt();return X(()=>p.value=window.location.origin),p}}),null),o(j,()=>t("secret")),o(r,d(U,{type:"submit",class:"uppercase btn-primary",get children(){return t("add")}}),null),o(V,d(K,{get each(){return h()},children:({id:p,url:F})=>(()=>{var g=at(),P=g.firstChild;return g.$$click=()=>m(p),o(P,F),o(g,d(U,{class:"btn-circle text-white btn-ghost btn-xs",onClick:A=>{A.stopPropagation(),L(p)},get children(){return d(J,{})}}),null),g})()})),s})()]};Y(["click"]);export{ut as default};
|
@ -0,0 +1 @@
|
||||
import{u as A,a as B,b as T,c as H,v as M,o as N,d as X,e as h,f as d,t as y,g as z,i as o,h as G,S as J,B as _,I as K,F as O,j as S,s as w,k as Q,l as W,m as Y,n as U,p as E,q as Z}from"./index-CtVw7BLk.js";import{D as tt}from"./DocumentTitle-D9yyEXNP.js";const l=[];for(let t=0;t<256;++t)l.push((t+256).toString(16).slice(1));function et(t,n=0){return(l[t[n+0]]+l[t[n+1]]+l[t[n+2]]+l[t[n+3]]+"-"+l[t[n+4]]+l[t[n+5]]+"-"+l[t[n+6]]+l[t[n+7]]+"-"+l[t[n+8]]+l[t[n+9]]+"-"+l[t[n+10]]+l[t[n+11]]+l[t[n+12]]+l[t[n+13]]+l[t[n+14]]+l[t[n+15]]).toLowerCase()}let b;const nt=new Uint8Array(16);function st(){if(!b){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");b=crypto.getRandomValues.bind(crypto)}return b(nt)}const lt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),C={randomUUID:lt};function it(t,n,$){if(C.randomUUID&&!t)return C.randomUUID();t=t||{};const i=t.random??t.rng?.()??st();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=i[6]&15|64,i[8]=i[8]&63|128,et(i)}var rt=y("<option>"),at=y('<div class="mx-auto flex max-w-screen-sm flex-col items-center gap-4 py-10"><form class=contents><div class="flex w-full flex-col gap-4"><fieldset class=fieldset><label class=label for=url><span></span></label><input id=url name=url type=url class="input w-full"placeholder=http(s)://{hostname}:{port} list=defaultEndpoints><datalist id=defaultEndpoints><option value=http://127.0.0.1:9090></option></datalist></fieldset><fieldset class=fieldset><label class=label for=secret><span></span></label><input id=secret name=secret type=password class="input w-full"placeholder=secret></fieldset></div></form><div class="grid w-full grid-cols-2 gap-4">'),ot=y('<div class="badge flex w-full cursor-pointer items-center justify-between gap-4 py-4 badge-info"><span class=truncate>');const ct=N({url:E().min(1),secret:E()}),pt=()=>{const[t]=A(),n=B(),$=T(),i=s=>{U(s),$("/overview",{replace:!0})},R=async s=>{const e=h().find(r=>r.id===s);e&&await S(e.url,e.secret)&&i(s)},g=async({url:s,secret:e})=>{const r=Q(s);if(!await S(r,e))return;const a=it(),c=h().slice(),u=c.find(f=>f.url===r);if(!u){w([{id:a,url:r,secret:e},...c]),i(a);return}u.secret=e,u.id=a,w(c),i(a)},I=s=>{const{message:e}=s;W.error(e)},{form:v}=H({extend:M({schema:ct}),onSubmit:g,onError:I}),L=s=>{Y()===s&&U(""),w(h().filter(e=>e.id!==s))};return X(async()=>{const s=n.search||window.location.search||n.hash.match(/\?.*$/)?.[0]?.replace("?","");if(!s)return;const e=new URLSearchParams(s);e.has("hostname")?await g({url:`${e.get("http")?"http:":e.get("https")?"https:":window.location.protocol}//${e.get("hostname")}${e.get("port")?`:${e.get("port")}`:""}`,secret:e.get("secret")??""}):h().length===0&&await g({url:"http://127.0.0.1:9090",secret:""})}),[d(tt,{get children(){return t("setup")}}),(()=>{var s=at(),e=s.firstChild,r=e.firstChild,a=r.firstChild,c=a.firstChild,u=c.firstChild,f=c.nextSibling,x=f.nextSibling;x.firstChild;var D=a.nextSibling,k=D.firstChild,j=k.firstChild,V=e.nextSibling;return z(v,e,()=>v),o(u,()=>t("endpointURL")),o(x,d(J,{get when(){return window.location.origin!=="http://127.0.0.1:9090"},get children(){var p=rt();return G(()=>p.value=window.location.origin),p}}),null),o(j,()=>t("secret")),o(r,d(_,{type:"submit",class:"uppercase btn-primary",get children(){return t("add")}}),null),o(V,d(O,{get each(){return h()},children:({id:p,url:F})=>(()=>{var m=ot(),P=m.firstChild;return m.$$click=()=>R(p),o(P,F),o(m,d(_,{class:"btn-circle text-white btn-ghost btn-xs",onClick:q=>{q.stopPropagation(),L(p)},get children(){return d(K,{})}}),null),m})()})),s})()]};Z(["click"]);export{pt as default};
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
import{Y as a,b6 as m}from"./index-CtVw7BLk.js";const s=o=>a(o).locale(m()).fromNow();export{s as f};
|
@ -1 +0,0 @@
|
||||
import{W as a,b4 as m}from"./index-BfxF6Zjo.js";const s=o=>a(o).locale(m()).fromNow();export{s as f};
|
@ -9,8 +9,8 @@
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
|
||||
<link rel="apple-touch-icon" href="./pwa-192x192.png" />
|
||||
<script type="module" crossorigin src="./assets/index-BfxF6Zjo.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="./assets/index-Bg_1VLqf.css">
|
||||
<script type="module" crossorigin src="./assets/index-CtVw7BLk.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="./assets/index-CjeEzpw1.css">
|
||||
<link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="./registerSW.js"></script></head>
|
||||
|
||||
<body>
|
||||
|
@ -1 +1 @@
|
||||
if(!self.define){let s,e={};const i=(i,n)=>(i=new URL(i+".js",n).href,e[i]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()})).then((()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s})));self.define=(n,r)=>{const l=s||("document"in self?document.currentScript.src:"")||location.href;if(e[l])return;let o={};const t=s=>i(s,l),u={module:{uri:l},exports:o,require:t};e[l]=Promise.all(n.map((s=>u[s]||t(s)))).then((s=>(r(...s),o)))}}define(["./workbox-3e8df8c8"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/Config-B1EwbU18.js",revision:null},{url:"assets/Connections-WHEuHC_k.js",revision:null},{url:"assets/DocumentTitle-qgMGpI7d.js",revision:null},{url:"assets/IconReload-bqqdFQ5q.js",revision:null},{url:"assets/index-BfxF6Zjo.js",revision:null},{url:"assets/index-Bg_1VLqf.css",revision:null},{url:"assets/index-CXfh_Ffl.js",revision:null},{url:"assets/Logs-DmnD-Vbh.js",revision:null},{url:"assets/Overview-BigJMrEz.js",revision:null},{url:"assets/Proxies-DCaTGxZZ.js",revision:null},{url:"assets/Rules-T7FAMMsr.js",revision:null},{url:"assets/Setup-2nY6XKtT.js",revision:null},{url:"assets/time-M8P-MK1v.js",revision:null},{url:"index.html",revision:"761f846e47c016c7f82446639da40073"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"favicon.svg",revision:"f5b3372f312fbbe60a6ed8c03741ff80"},{url:"pwa-192x192.png",revision:"c45f48fc59b5bf47e6cbf1626aff51fc"},{url:"pwa-512x512.png",revision:"a311504ae6a46bd29b5678a410aaafc6"},{url:"manifest.webmanifest",revision:"9367f610ffbd3bb959a69b706013d50e"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));
|
||||
if(!self.define){let s,e={};const i=(i,n)=>(i=new URL(i+".js",n).href,e[i]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()}).then(()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s}));self.define=(n,r)=>{const l=s||("document"in self?document.currentScript.src:"")||location.href;if(e[l])return;let o={};const t=s=>i(s,l),u={module:{uri:l},exports:o,require:t};e[l]=Promise.all(n.map(s=>u[s]||t(s))).then(s=>(r(...s),o))}}define(["./workbox-3e8df8c8"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/Config-CJArtZu5.js",revision:null},{url:"assets/Connections-DrdK5iM_.js",revision:null},{url:"assets/DocumentTitle-D9yyEXNP.js",revision:null},{url:"assets/IconReload-CmNrVSiK.js",revision:null},{url:"assets/index-CjeEzpw1.css",revision:null},{url:"assets/index-CPvx_C2g.js",revision:null},{url:"assets/index-CtVw7BLk.js",revision:null},{url:"assets/Logs-6_hZxZi4.js",revision:null},{url:"assets/Overview-fNiy7dgO.js",revision:null},{url:"assets/Proxies-BlH7z6vo.js",revision:null},{url:"assets/Rules-CBJhwbc_.js",revision:null},{url:"assets/Setup-DO3zhXim.js",revision:null},{url:"assets/time-CVcUxeVU.js",revision:null},{url:"index.html",revision:"8827d25be7daaa9cfcce4e86573c3f84"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"favicon.svg",revision:"f5b3372f312fbbe60a6ed8c03741ff80"},{url:"pwa-192x192.png",revision:"c45f48fc59b5bf47e6cbf1626aff51fc"},{url:"pwa-512x512.png",revision:"a311504ae6a46bd29b5678a410aaafc6"},{url:"manifest.webmanifest",revision:"9367f610ffbd3bb959a69b706013d50e"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))});
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -30,8 +30,8 @@
|
||||
name="theme-color"
|
||||
content="#FFFFFF"
|
||||
/>
|
||||
<script type="module" crossorigin src="./assets/index-CcoMfRe9.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="./assets/index-CJPpe52U.css">
|
||||
<script type="module" crossorigin src="./assets/index-DviCQKoc.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="./assets/index-8jbeqkyz.css">
|
||||
<link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="./registerSW.js"></script></head>
|
||||
<body class="overflow-hidden">
|
||||
<div id="app"></div>
|
||||
|
@ -1 +1 @@
|
||||
if(!self.define){let e,i={};const s=(s,n)=>(s=new URL(s+".js",n).href,i[s]||new Promise((i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()})).then((()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(n,r)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(i[c])return;let f={};const o=e=>s(e,c),t={module:{uri:c},exports:f,require:o};i[c]=Promise.all(n.map((e=>t[e]||o(e)))).then((e=>(r(...e),f)))}}define(["./workbox-3e8df8c8"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"assets/index-CcoMfRe9.js",revision:null},{url:"assets/index-CJPpe52U.css",revision:null},{url:"index.html",revision:"b56eb65c8b1d4bf0b1cb3798c99073c9"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"favicon.svg",revision:"7f1c4521acc10694fefef8f72dd2ea5f"},{url:"pwa-192x192.png",revision:"021df52501f4357c03eebd808f40dc6a"},{url:"pwa-512x512.png",revision:"d2f759aaabcb2c44ff52b27fde3de6e0"},{url:"pwa-maskable-192x192.png",revision:"7cd11dc5f0490b349d23eef5591d10e5"},{url:"pwa-maskable-512x512.png",revision:"8c97dc367a85a5a1eba523b24f79d03b"},{url:"manifest.webmanifest",revision:"6437e90df75a01bce95a7c03b16fc311"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));
|
||||
if(!self.define){let e,i={};const s=(s,n)=>(s=new URL(s+".js",n).href,i[s]||new Promise((i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()})).then((()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(n,r)=>{const f=e||("document"in self?document.currentScript.src:"")||location.href;if(i[f])return;let c={};const o=e=>s(e,f),t={module:{uri:f},exports:c,require:o};i[f]=Promise.all(n.map((e=>t[e]||o(e)))).then((e=>(r(...e),c)))}}define(["./workbox-3e8df8c8"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"assets/index-8jbeqkyz.css",revision:null},{url:"assets/index-DviCQKoc.js",revision:null},{url:"index.html",revision:"bff44c08ebed5536171e561fc1e38aae"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"favicon.svg",revision:"7f1c4521acc10694fefef8f72dd2ea5f"},{url:"pwa-192x192.png",revision:"021df52501f4357c03eebd808f40dc6a"},{url:"pwa-512x512.png",revision:"d2f759aaabcb2c44ff52b27fde3de6e0"},{url:"pwa-maskable-192x192.png",revision:"7cd11dc5f0490b349d23eef5591d10e5"},{url:"pwa-maskable-512x512.png",revision:"8c97dc367a85a5a1eba523b24f79d03b"},{url:"manifest.webmanifest",revision:"6437e90df75a01bce95a7c03b16fc311"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));
|
||||
|
@ -42,3 +42,241 @@ dl.google.com
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
||||
# Synology ddns
|
||||
account.synology.com
|
||||
checkip.dyndns.org
|
||||
checkip.synology.com
|
||||
checkipv6.dyndns.org
|
||||
checkipv6.synology.com
|
||||
checkport.synology.com
|
||||
ddns.synology.com
|
||||
|
||||
# google
|
||||
dl.google.com
|
||||
|
||||
# github proxy
|
||||
gh-proxy.com
|
||||
gitmirror.com
|
||||
ghfast.top
|
||||
|
Loading…
x
Reference in New Issue
Block a user