mirror of
https://github.com/bolucat/Archive.git
synced 2026-04-22 16:07:49 +08:00
Update On Tue Oct 29 19:36:56 CET 2024
This commit is contained in:
@@ -808,3 +808,4 @@ Update On Fri Oct 25 20:37:13 CEST 2024
|
||||
Update On Sat Oct 26 20:32:41 CEST 2024
|
||||
Update On Sun Oct 27 19:33:38 CET 2024
|
||||
Update On Mon Oct 28 19:35:15 CET 2024
|
||||
Update On Tue Oct 29 19:36:45 CET 2024
|
||||
|
||||
Generated
+8
-8
@@ -4728,7 +4728,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"windows-targets 0.52.6",
|
||||
"windows-targets 0.48.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -7071,9 +7071,9 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832"
|
||||
|
||||
[[package]]
|
||||
name = "reqwest"
|
||||
version = "0.12.8"
|
||||
version = "0.12.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b"
|
||||
checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f"
|
||||
dependencies = [
|
||||
"base64 0.22.1",
|
||||
"bytes",
|
||||
@@ -7545,9 +7545,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.213"
|
||||
version = "1.0.214"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1"
|
||||
checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
@@ -7575,9 +7575,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.213"
|
||||
version = "1.0.214"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5"
|
||||
checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -10445,7 +10445,7 @@ version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
||||
dependencies = [
|
||||
"windows-sys 0.59.0",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"@mui/material": "6.1.5",
|
||||
"@nyanpasu/interface": "workspace:^",
|
||||
"@nyanpasu/ui": "workspace:^",
|
||||
"@tanstack/router-zod-adapter": "1.77.5",
|
||||
"@tanstack/router-zod-adapter": "1.77.6",
|
||||
"@tauri-apps/api": "2.0.3",
|
||||
"@types/json-schema": "7.0.15",
|
||||
"ahooks": "3.8.1",
|
||||
@@ -54,8 +54,8 @@
|
||||
"@emotion/react": "11.13.3",
|
||||
"@iconify/json": "2.2.265",
|
||||
"@monaco-editor/react": "4.6.0",
|
||||
"@tanstack/react-router": "1.77.5",
|
||||
"@tanstack/router-devtools": "1.77.5",
|
||||
"@tanstack/react-router": "1.77.6",
|
||||
"@tanstack/router-devtools": "1.77.6",
|
||||
"@tanstack/router-plugin": "1.76.4",
|
||||
"@tauri-apps/plugin-clipboard-manager": "2.0.0",
|
||||
"@tauri-apps/plugin-dialog": "2.0.1",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"mihomo_alpha": "alpha-3e966e8",
|
||||
"clash_rs": "v0.7.0",
|
||||
"clash_premium": "2023-09-05-gdcc8d87",
|
||||
"clash_rs_alpha": "0.7.0-alpha+sha.23895a8"
|
||||
"clash_rs_alpha": "0.7.0-alpha+sha.98d183b"
|
||||
},
|
||||
"arch_template": {
|
||||
"mihomo": {
|
||||
@@ -69,5 +69,5 @@
|
||||
"linux-armv7hf": "clash-armv7-unknown-linux-gnueabihf"
|
||||
}
|
||||
},
|
||||
"updated_at": "2024-10-27T22:20:35.981Z"
|
||||
"updated_at": "2024-10-28T22:20:42.142Z"
|
||||
}
|
||||
|
||||
@@ -63,9 +63,9 @@
|
||||
"@tauri-apps/cli": "2.0.4",
|
||||
"@types/fs-extra": "11.0.4",
|
||||
"@types/lodash-es": "4.17.12",
|
||||
"@types/node": "22.8.1",
|
||||
"@typescript-eslint/eslint-plugin": "8.11.0",
|
||||
"@typescript-eslint/parser": "8.11.0",
|
||||
"@types/node": "22.8.2",
|
||||
"@typescript-eslint/eslint-plugin": "8.12.1",
|
||||
"@typescript-eslint/parser": "8.12.1",
|
||||
"autoprefixer": "10.4.20",
|
||||
"conventional-changelog-conventionalcommits": "8.0.0",
|
||||
"cross-env": "7.0.3",
|
||||
@@ -82,7 +82,7 @@
|
||||
"eslint-plugin-react": "7.37.2",
|
||||
"eslint-plugin-react-compiler": "0.0.0-experimental-fa06e2c-20241016",
|
||||
"eslint-plugin-react-hooks": "4.6.2",
|
||||
"knip": "5.34.1",
|
||||
"knip": "5.34.2",
|
||||
"lint-staged": "15.2.10",
|
||||
"npm-run-all2": "7.0.1",
|
||||
"postcss": "8.4.47",
|
||||
|
||||
Generated
+150
-157
@@ -22,7 +22,7 @@ importers:
|
||||
devDependencies:
|
||||
'@commitlint/cli':
|
||||
specifier: 19.5.0
|
||||
version: 19.5.0(@types/node@22.8.1)(typescript@5.6.3)
|
||||
version: 19.5.0(@types/node@22.8.2)(typescript@5.6.3)
|
||||
'@commitlint/config-conventional':
|
||||
specifier: 19.5.0
|
||||
version: 19.5.0
|
||||
@@ -39,14 +39,14 @@ importers:
|
||||
specifier: 4.17.12
|
||||
version: 4.17.12
|
||||
'@types/node':
|
||||
specifier: 22.8.1
|
||||
version: 22.8.1
|
||||
specifier: 22.8.2
|
||||
version: 22.8.2
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: 8.11.0
|
||||
version: 8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)
|
||||
specifier: 8.12.1
|
||||
version: 8.12.1(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: 8.11.0
|
||||
version: 8.11.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
specifier: 8.12.1
|
||||
version: 8.12.1(eslint@8.57.1)(typescript@5.6.3)
|
||||
autoprefixer:
|
||||
specifier: 10.4.20
|
||||
version: 10.4.20(postcss@8.4.47)
|
||||
@@ -67,16 +67,16 @@ importers:
|
||||
version: 9.1.0(eslint@8.57.1)
|
||||
eslint-config-standard:
|
||||
specifier: 17.1.0
|
||||
version: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-n@17.11.1(eslint@8.57.1))(eslint-plugin-promise@7.1.0(eslint@8.57.1))(eslint@8.57.1)
|
||||
version: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-n@17.11.1(eslint@8.57.1))(eslint-plugin-promise@7.1.0(eslint@8.57.1))(eslint@8.57.1)
|
||||
eslint-import-resolver-alias:
|
||||
specifier: 1.1.2
|
||||
version: 1.1.2(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))
|
||||
version: 1.1.2(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))
|
||||
eslint-plugin-html:
|
||||
specifier: 8.1.2
|
||||
version: 8.1.2
|
||||
eslint-plugin-import:
|
||||
specifier: 2.31.0
|
||||
version: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)
|
||||
version: 2.31.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)
|
||||
eslint-plugin-n:
|
||||
specifier: 17.11.1
|
||||
version: 17.11.1(eslint@8.57.1)
|
||||
@@ -96,8 +96,8 @@ importers:
|
||||
specifier: 4.6.2
|
||||
version: 4.6.2(eslint@8.57.1)
|
||||
knip:
|
||||
specifier: 5.34.1
|
||||
version: 5.34.1(@types/node@22.8.1)(typescript@5.6.3)
|
||||
specifier: 5.34.2
|
||||
version: 5.34.2(@types/node@22.8.2)(typescript@5.6.3)
|
||||
lint-staged:
|
||||
specifier: 15.2.10
|
||||
version: 15.2.10
|
||||
@@ -217,8 +217,8 @@ importers:
|
||||
specifier: workspace:^
|
||||
version: link:../ui
|
||||
'@tanstack/router-zod-adapter':
|
||||
specifier: 1.77.5
|
||||
version: 1.77.5(@tanstack/react-router@1.77.5(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028))(zod@3.23.8)
|
||||
specifier: 1.77.6
|
||||
version: 1.77.6(@tanstack/react-router@1.77.6(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028))(zod@3.23.8)
|
||||
'@tauri-apps/api':
|
||||
specifier: 2.0.3
|
||||
version: 2.0.3
|
||||
@@ -311,14 +311,14 @@ importers:
|
||||
specifier: 4.6.0
|
||||
version: 4.6.0(monaco-editor@0.52.0)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
'@tanstack/react-router':
|
||||
specifier: 1.77.5
|
||||
version: 1.77.5(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
specifier: 1.77.6
|
||||
version: 1.77.6(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
'@tanstack/router-devtools':
|
||||
specifier: 1.77.5
|
||||
version: 1.77.5(@tanstack/react-router@1.77.5(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028))(csstype@3.1.3)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
specifier: 1.77.6
|
||||
version: 1.77.6(@tanstack/react-router@1.77.6(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028))(csstype@3.1.3)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
'@tanstack/router-plugin':
|
||||
specifier: 1.76.4
|
||||
version: 1.76.4(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))(webpack-sources@3.2.3)
|
||||
version: 1.76.4(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))(webpack-sources@3.2.3)
|
||||
'@tauri-apps/plugin-clipboard-manager':
|
||||
specifier: 2.0.0
|
||||
version: 2.0.0
|
||||
@@ -354,10 +354,10 @@ importers:
|
||||
version: 13.12.2
|
||||
'@vitejs/plugin-react':
|
||||
specifier: 4.3.3
|
||||
version: 4.3.3(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
version: 4.3.3(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
'@vitejs/plugin-react-swc':
|
||||
specifier: 3.7.1
|
||||
version: 3.7.1(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
version: 3.7.1(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
change-case:
|
||||
specifier: 5.4.4
|
||||
version: 5.4.4
|
||||
@@ -396,16 +396,16 @@ importers:
|
||||
version: 13.12.0
|
||||
vite:
|
||||
specifier: 5.4.10
|
||||
version: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
version: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite-plugin-sass-dts:
|
||||
specifier: 1.3.29
|
||||
version: 1.3.29(postcss@8.4.47)(prettier@3.3.3)(sass-embedded@1.78.0)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
version: 1.3.29(postcss@8.4.47)(prettier@3.3.3)(sass-embedded@1.78.0)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
vite-plugin-svgr:
|
||||
specifier: 4.2.0
|
||||
version: 4.2.0(rollup@4.21.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
version: 4.2.0(rollup@4.21.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
vite-tsconfig-paths:
|
||||
specifier: 5.0.1
|
||||
version: 5.0.1(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
version: 5.0.1(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
zod:
|
||||
specifier: 3.23.8
|
||||
version: 3.23.8
|
||||
@@ -441,7 +441,7 @@ importers:
|
||||
version: types-react@19.0.0-rc.1
|
||||
'@vitejs/plugin-react':
|
||||
specifier: 4.3.3
|
||||
version: 4.3.3(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
version: 4.3.3(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
ahooks:
|
||||
specifier: 3.8.1
|
||||
version: 3.8.1(react@19.0.0-rc-02c0e824-20241028)
|
||||
@@ -468,10 +468,10 @@ importers:
|
||||
version: 17.5.1(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
vite:
|
||||
specifier: 5.4.10
|
||||
version: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
version: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite-tsconfig-paths:
|
||||
specifier: 5.0.1
|
||||
version: 5.0.1(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
version: 5.0.1(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
devDependencies:
|
||||
'@emotion/react':
|
||||
specifier: 11.13.3
|
||||
@@ -496,7 +496,7 @@ importers:
|
||||
version: 5.1.0(typescript@5.6.3)
|
||||
vite-plugin-dts:
|
||||
specifier: 4.3.0
|
||||
version: 4.3.0(@types/node@22.8.1)(rollup@4.21.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
version: 4.3.0(@types/node@22.8.2)(rollup@4.21.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))
|
||||
|
||||
scripts:
|
||||
dependencies:
|
||||
@@ -520,8 +520,8 @@ importers:
|
||||
specifier: 13.6.1
|
||||
version: 13.6.1
|
||||
'@types/adm-zip':
|
||||
specifier: 0.5.5
|
||||
version: 0.5.5
|
||||
specifier: 0.5.6
|
||||
version: 0.5.6
|
||||
adm-zip:
|
||||
specifier: 0.5.16
|
||||
version: 0.5.16
|
||||
@@ -2303,8 +2303,8 @@ packages:
|
||||
resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
'@tanstack/react-router@1.77.5':
|
||||
resolution: {integrity: sha512-+WApHGq9AFshfiVpZmMgWYrO0IphtmN2JxEy5bkQ9IjI/JTS6F6QDiz8rZf37dx491D13aQeiRUGM345y6gDZQ==}
|
||||
'@tanstack/react-router@1.77.6':
|
||||
resolution: {integrity: sha512-0YLpnSjoLdR2qrPAU3C2TkSN7lWIODjXKbod97wPL4gKm5ubBzRtF7K4CCUAT3a+vqIWmSuCYaFWqMlDs4HNnA==}
|
||||
engines: {node: '>=12'}
|
||||
peerDependencies:
|
||||
'@tanstack/router-generator': 1.74.2
|
||||
@@ -2333,11 +2333,11 @@ packages:
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
|
||||
'@tanstack/router-devtools@1.77.5':
|
||||
resolution: {integrity: sha512-qzT8tfH42YR2vdVPYjdg2eJMQ5n9H5+yEnqthLNJz1gvm6KhG1t3sV8t7ibiWIVllKpq83Skun6xoLw8SrvnAw==}
|
||||
'@tanstack/router-devtools@1.77.6':
|
||||
resolution: {integrity: sha512-2u+3+jQPo4WR/dqwTdvP7+UW8ptYTWflaWBLrd1Q1CoXfQz6SF3weiNELLROh63iUxoo0jnQ3aCAlKjHzs6Y9Q==}
|
||||
engines: {node: '>=12'}
|
||||
peerDependencies:
|
||||
'@tanstack/react-router': ^1.77.5
|
||||
'@tanstack/react-router': ^1.77.6
|
||||
react: '>=18'
|
||||
react-dom: '>=18'
|
||||
|
||||
@@ -2360,8 +2360,8 @@ packages:
|
||||
webpack:
|
||||
optional: true
|
||||
|
||||
'@tanstack/router-zod-adapter@1.77.5':
|
||||
resolution: {integrity: sha512-qRDJRzpjjYcSfAx9W3R9C663ZHOWgj3vyKuUv4k92Y8TKP3c9Zh6WzpPWs2wy1RzgxbP68tlWMKLuKlXWK/4aw==}
|
||||
'@tanstack/router-zod-adapter@1.77.6':
|
||||
resolution: {integrity: sha512-HbI/WUIN+zCKfIMgP7fk0tQZrFp0c7yAgPPtf8gMjnvvX+VEkS9uY+SFVOELeqxYrC5I3rkJ0UkxncIY4NAz2Q==}
|
||||
engines: {node: '>=12'}
|
||||
peerDependencies:
|
||||
'@tanstack/react-router': '>=1.43.2'
|
||||
@@ -2488,8 +2488,8 @@ packages:
|
||||
'@vue/compiler-sfc':
|
||||
optional: true
|
||||
|
||||
'@types/adm-zip@0.5.5':
|
||||
resolution: {integrity: sha512-YCGstVMjc4LTY5uK9/obvxBya93axZOVOyf2GSUulADzmLhYE45u2nAssCs/fWBs1Ifq5Vat75JTPwd5XZoPJw==}
|
||||
'@types/adm-zip@0.5.6':
|
||||
resolution: {integrity: sha512-lRlcSLg5Yoo7C2H2AUiAoYlvifWoCx/se7iUNiCBTfEVVYFVn+Tr9ZGed4K73tYgLe9O4PjdJvbxlkdAOx/qiw==}
|
||||
|
||||
'@types/argparse@1.0.38':
|
||||
resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==}
|
||||
@@ -2665,11 +2665,8 @@ packages:
|
||||
'@types/node@16.18.108':
|
||||
resolution: {integrity: sha512-fj42LD82fSv6yN9C6Q4dzS+hujHj+pTv0IpRR3kI20fnYeS0ytBpjFO9OjmDowSPPt4lNKN46JLaKbCyP+BW2A==}
|
||||
|
||||
'@types/node@22.5.0':
|
||||
resolution: {integrity: sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==}
|
||||
|
||||
'@types/node@22.8.1':
|
||||
resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==}
|
||||
'@types/node@22.8.2':
|
||||
resolution: {integrity: sha512-NzaRNFV+FZkvK/KLCsNdTvID0SThyrs5SHB6tsD/lajr22FGC73N2QeDPM2wHtVde8mgcXuSsHQkH5cX1pbPLw==}
|
||||
|
||||
'@types/parse-json@4.0.2':
|
||||
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
|
||||
@@ -2704,8 +2701,8 @@ packages:
|
||||
'@types/yauzl@2.10.3':
|
||||
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.11.0':
|
||||
resolution: {integrity: sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==}
|
||||
'@typescript-eslint/eslint-plugin@8.12.1':
|
||||
resolution: {integrity: sha512-gNg/inLRcPoBsKKIe4Vv38SVSOhk4BKWNO0T56sVff33gRqtTpOsrhHtiOKD1lmIOmCtZMPaW2x/h2FlM+sCEg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
|
||||
@@ -2715,8 +2712,8 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/parser@8.11.0':
|
||||
resolution: {integrity: sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==}
|
||||
'@typescript-eslint/parser@8.12.1':
|
||||
resolution: {integrity: sha512-I/I9Bg7qFa8rOgBnUUHIWTgzbB5wVkSLX+04xGUzTcJUtdq/I2uHWR9mbW6qUYJG/UmkuDcTax5JHvoEWOAHOQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
@@ -2725,12 +2722,12 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/scope-manager@8.11.0':
|
||||
resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==}
|
||||
'@typescript-eslint/scope-manager@8.12.1':
|
||||
resolution: {integrity: sha512-bma6sD1iViTt+y9MAwDlBdPTMCqoH/BNdcQk4rKhIZWv3eM0xHmzeSrPJA663PAqFqfpOmtdugycpr0E1mZDVA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/type-utils@8.11.0':
|
||||
resolution: {integrity: sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==}
|
||||
'@typescript-eslint/type-utils@8.12.1':
|
||||
resolution: {integrity: sha512-zJzrvbDVjIzVKV2TGHcjembEhws8RWXJhmqfO9hS2gRXBN0gDwGhRPEdJ6AZglzfJ+YA1q09EWpSLSXjBJpIMQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
@@ -2738,12 +2735,12 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/types@8.11.0':
|
||||
resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==}
|
||||
'@typescript-eslint/types@8.12.1':
|
||||
resolution: {integrity: sha512-anMS4es5lxBe4UVcDXOkcDb3csnm5BvaNIbOFfvy/pJEohorsggdVB8MFbl5EZiEuBnZZ0ei1z7W5b6FdFiV1Q==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.11.0':
|
||||
resolution: {integrity: sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==}
|
||||
'@typescript-eslint/typescript-estree@8.12.1':
|
||||
resolution: {integrity: sha512-k/o9khHOckPeDXilFTIPsP9iAYhhdMh3OsOL3i2072PNpFqhqzRHx472/0DeC8H/WZee3bZG0z2ddGRSPgeOKw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
@@ -2751,14 +2748,14 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/utils@8.11.0':
|
||||
resolution: {integrity: sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==}
|
||||
'@typescript-eslint/utils@8.12.1':
|
||||
resolution: {integrity: sha512-sDv9yFHrhKe1WN8EYuzfhKCh/sFRupe9P+m/lZ5YgVvPoCUGHNN50IO4llSu7JAbftUM/QcCh+GeCortXPrBYQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.11.0':
|
||||
resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==}
|
||||
'@typescript-eslint/visitor-keys@8.12.1':
|
||||
resolution: {integrity: sha512-2RwdwnNGuOQKdGjuhujQHUqBZhEuodg2sLVPvOfWktvA9sOXOVqARjOyHSyhN2LiJGKxV6c8oOcmOtRcAnEeFw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@ungap/structured-clone@1.2.0':
|
||||
@@ -4877,8 +4874,8 @@ packages:
|
||||
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
knip@5.34.1:
|
||||
resolution: {integrity: sha512-MwQjEWBxsi7MnTL3JpLJwYRhqD1262Fv+TylMYDyZRAVJMmEs4y0qie5zv8VjU5DBSGoEs35Ssu7I/2klNOQgw==}
|
||||
knip@5.34.2:
|
||||
resolution: {integrity: sha512-quSohta9fKJUWTXIqHenA4NYW24rmoP3g/Naw5Lq/Xb/LjAQYSUK4aIyU1wizDLC4EnMicGA5g/H33vJ3ovz5Q==}
|
||||
engines: {node: '>=18.6.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -7676,11 +7673,11 @@ snapshots:
|
||||
|
||||
'@bufbuild/protobuf@1.10.0': {}
|
||||
|
||||
'@commitlint/cli@19.5.0(@types/node@22.8.1)(typescript@5.6.3)':
|
||||
'@commitlint/cli@19.5.0(@types/node@22.8.2)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@commitlint/format': 19.5.0
|
||||
'@commitlint/lint': 19.5.0
|
||||
'@commitlint/load': 19.5.0(@types/node@22.8.1)(typescript@5.6.3)
|
||||
'@commitlint/load': 19.5.0(@types/node@22.8.2)(typescript@5.6.3)
|
||||
'@commitlint/read': 19.5.0
|
||||
'@commitlint/types': 19.5.0
|
||||
tinyexec: 0.3.0
|
||||
@@ -7727,7 +7724,7 @@ snapshots:
|
||||
'@commitlint/rules': 19.5.0
|
||||
'@commitlint/types': 19.5.0
|
||||
|
||||
'@commitlint/load@19.5.0(@types/node@22.8.1)(typescript@5.6.3)':
|
||||
'@commitlint/load@19.5.0(@types/node@22.8.2)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@commitlint/config-validator': 19.5.0
|
||||
'@commitlint/execute-rule': 19.5.0
|
||||
@@ -7735,7 +7732,7 @@ snapshots:
|
||||
'@commitlint/types': 19.5.0
|
||||
chalk: 5.3.0
|
||||
cosmiconfig: 9.0.0(typescript@5.6.3)
|
||||
cosmiconfig-typescript-loader: 5.0.0(@types/node@22.8.1)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3)
|
||||
cosmiconfig-typescript-loader: 5.0.0(@types/node@22.8.2)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3)
|
||||
lodash.isplainobject: 4.0.6
|
||||
lodash.merge: 4.6.2
|
||||
lodash.uniq: 4.5.0
|
||||
@@ -8210,23 +8207,23 @@ snapshots:
|
||||
|
||||
'@material/material-color-utilities@0.3.0': {}
|
||||
|
||||
'@microsoft/api-extractor-model@7.29.8(@types/node@22.8.1)':
|
||||
'@microsoft/api-extractor-model@7.29.8(@types/node@22.8.2)':
|
||||
dependencies:
|
||||
'@microsoft/tsdoc': 0.15.0
|
||||
'@microsoft/tsdoc-config': 0.17.0
|
||||
'@rushstack/node-core-library': 5.9.0(@types/node@22.8.1)
|
||||
'@rushstack/node-core-library': 5.9.0(@types/node@22.8.2)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
|
||||
'@microsoft/api-extractor@7.47.11(@types/node@22.8.1)':
|
||||
'@microsoft/api-extractor@7.47.11(@types/node@22.8.2)':
|
||||
dependencies:
|
||||
'@microsoft/api-extractor-model': 7.29.8(@types/node@22.8.1)
|
||||
'@microsoft/api-extractor-model': 7.29.8(@types/node@22.8.2)
|
||||
'@microsoft/tsdoc': 0.15.0
|
||||
'@microsoft/tsdoc-config': 0.17.0
|
||||
'@rushstack/node-core-library': 5.9.0(@types/node@22.8.1)
|
||||
'@rushstack/node-core-library': 5.9.0(@types/node@22.8.2)
|
||||
'@rushstack/rig-package': 0.5.3
|
||||
'@rushstack/terminal': 0.14.2(@types/node@22.8.1)
|
||||
'@rushstack/ts-command-line': 4.23.0(@types/node@22.8.1)
|
||||
'@rushstack/terminal': 0.14.2(@types/node@22.8.2)
|
||||
'@rushstack/ts-command-line': 4.23.0(@types/node@22.8.2)
|
||||
lodash: 4.17.21
|
||||
minimatch: 3.0.8
|
||||
resolve: 1.22.8
|
||||
@@ -8860,7 +8857,7 @@ snapshots:
|
||||
|
||||
'@rtsao/scc@1.1.0': {}
|
||||
|
||||
'@rushstack/node-core-library@5.9.0(@types/node@22.8.1)':
|
||||
'@rushstack/node-core-library@5.9.0(@types/node@22.8.2)':
|
||||
dependencies:
|
||||
ajv: 8.13.0
|
||||
ajv-draft-04: 1.0.0(ajv@8.13.0)
|
||||
@@ -8871,23 +8868,23 @@ snapshots:
|
||||
resolve: 1.22.8
|
||||
semver: 7.5.4
|
||||
optionalDependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
|
||||
'@rushstack/rig-package@0.5.3':
|
||||
dependencies:
|
||||
resolve: 1.22.8
|
||||
strip-json-comments: 3.1.1
|
||||
|
||||
'@rushstack/terminal@0.14.2(@types/node@22.8.1)':
|
||||
'@rushstack/terminal@0.14.2(@types/node@22.8.2)':
|
||||
dependencies:
|
||||
'@rushstack/node-core-library': 5.9.0(@types/node@22.8.1)
|
||||
'@rushstack/node-core-library': 5.9.0(@types/node@22.8.2)
|
||||
supports-color: 8.1.1
|
||||
optionalDependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
|
||||
'@rushstack/ts-command-line@4.23.0(@types/node@22.8.1)':
|
||||
'@rushstack/ts-command-line@4.23.0(@types/node@22.8.2)':
|
||||
dependencies:
|
||||
'@rushstack/terminal': 0.14.2(@types/node@22.8.1)
|
||||
'@rushstack/terminal': 0.14.2(@types/node@22.8.2)
|
||||
'@types/argparse': 1.0.38
|
||||
argparse: 1.0.10
|
||||
string-argv: 0.3.2
|
||||
@@ -9061,7 +9058,7 @@ snapshots:
|
||||
dependencies:
|
||||
remove-accents: 0.5.0
|
||||
|
||||
'@tanstack/react-router@1.77.5(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)':
|
||||
'@tanstack/react-router@1.77.6(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)':
|
||||
dependencies:
|
||||
'@tanstack/history': 1.61.1
|
||||
'@tanstack/react-store': 0.5.6(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
@@ -9091,9 +9088,9 @@ snapshots:
|
||||
react: 19.0.0-rc-02c0e824-20241028
|
||||
react-dom: 19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028)
|
||||
|
||||
'@tanstack/router-devtools@1.77.5(@tanstack/react-router@1.77.5(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028))(csstype@3.1.3)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)':
|
||||
'@tanstack/router-devtools@1.77.6(@tanstack/react-router@1.77.6(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028))(csstype@3.1.3)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)':
|
||||
dependencies:
|
||||
'@tanstack/react-router': 1.77.5(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
'@tanstack/react-router': 1.77.6(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
clsx: 2.1.1
|
||||
goober: 2.1.16(csstype@3.1.3)
|
||||
react: 19.0.0-rc-02c0e824-20241028
|
||||
@@ -9108,7 +9105,7 @@ snapshots:
|
||||
tsx: 4.19.2
|
||||
zod: 3.23.8
|
||||
|
||||
'@tanstack/router-plugin@1.76.4(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))(webpack-sources@3.2.3)':
|
||||
'@tanstack/router-plugin@1.76.4(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))(webpack-sources@3.2.3)':
|
||||
dependencies:
|
||||
'@babel/core': 7.25.8
|
||||
'@babel/generator': 7.25.7
|
||||
@@ -9129,14 +9126,14 @@ snapshots:
|
||||
unplugin: 1.14.1(webpack-sources@3.2.3)
|
||||
zod: 3.23.8
|
||||
optionalDependencies:
|
||||
vite: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- webpack-sources
|
||||
|
||||
'@tanstack/router-zod-adapter@1.77.5(@tanstack/react-router@1.77.5(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028))(zod@3.23.8)':
|
||||
'@tanstack/router-zod-adapter@1.77.6(@tanstack/react-router@1.77.6(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028))(zod@3.23.8)':
|
||||
dependencies:
|
||||
'@tanstack/react-router': 1.77.5(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
'@tanstack/react-router': 1.77.6(@tanstack/router-generator@1.74.2)(react-dom@19.0.0-rc-02c0e824-20241028(react@19.0.0-rc-02c0e824-20241028))(react@19.0.0-rc-02c0e824-20241028)
|
||||
zod: 3.23.8
|
||||
|
||||
'@tanstack/store@0.5.5': {}
|
||||
@@ -9243,9 +9240,9 @@ snapshots:
|
||||
- supports-color
|
||||
optional: true
|
||||
|
||||
'@types/adm-zip@0.5.5':
|
||||
'@types/adm-zip@0.5.6':
|
||||
dependencies:
|
||||
'@types/node': 22.5.0
|
||||
'@types/node': 22.8.2
|
||||
|
||||
'@types/argparse@1.0.38': {}
|
||||
|
||||
@@ -9276,12 +9273,12 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/http-cache-semantics': 4.0.4
|
||||
'@types/keyv': 3.1.4
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
'@types/responselike': 1.0.3
|
||||
|
||||
'@types/conventional-commits-parser@5.0.0':
|
||||
dependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
|
||||
'@types/d3-array@3.2.1': {}
|
||||
|
||||
@@ -9417,7 +9414,7 @@ snapshots:
|
||||
'@types/fs-extra@11.0.4':
|
||||
dependencies:
|
||||
'@types/jsonfile': 6.1.4
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
|
||||
'@types/geojson@7946.0.14': {}
|
||||
|
||||
@@ -9435,11 +9432,11 @@ snapshots:
|
||||
|
||||
'@types/jsonfile@6.1.4':
|
||||
dependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
|
||||
'@types/keyv@3.1.4':
|
||||
dependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
|
||||
'@types/lodash-es@4.17.12':
|
||||
dependencies:
|
||||
@@ -9455,11 +9452,7 @@ snapshots:
|
||||
|
||||
'@types/node@16.18.108': {}
|
||||
|
||||
'@types/node@22.5.0':
|
||||
dependencies:
|
||||
undici-types: 6.19.8
|
||||
|
||||
'@types/node@22.8.1':
|
||||
'@types/node@22.8.2':
|
||||
dependencies:
|
||||
undici-types: 6.19.8
|
||||
|
||||
@@ -9481,7 +9474,7 @@ snapshots:
|
||||
|
||||
'@types/responselike@1.0.3':
|
||||
dependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
|
||||
'@types/retry@0.12.2': {}
|
||||
|
||||
@@ -9493,17 +9486,17 @@ snapshots:
|
||||
|
||||
'@types/yauzl@2.10.3':
|
||||
dependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)':
|
||||
'@typescript-eslint/eslint-plugin@8.12.1(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.11.0
|
||||
'@typescript-eslint/parser': 8.11.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/scope-manager': 8.11.0
|
||||
'@typescript-eslint/type-utils': 8.11.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.11.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 8.11.0
|
||||
'@typescript-eslint/parser': 8.12.1(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/scope-manager': 8.12.1
|
||||
'@typescript-eslint/type-utils': 8.12.1(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.12.1(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 8.12.1
|
||||
eslint: 8.57.1
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.2
|
||||
@@ -9514,12 +9507,12 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||
'@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.11.0
|
||||
'@typescript-eslint/types': 8.11.0
|
||||
'@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 8.11.0
|
||||
'@typescript-eslint/scope-manager': 8.12.1
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 8.12.1
|
||||
debug: 4.3.7
|
||||
eslint: 8.57.1
|
||||
optionalDependencies:
|
||||
@@ -9527,15 +9520,15 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/scope-manager@8.11.0':
|
||||
'@typescript-eslint/scope-manager@8.12.1':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.11.0
|
||||
'@typescript-eslint/visitor-keys': 8.11.0
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/visitor-keys': 8.12.1
|
||||
|
||||
'@typescript-eslint/type-utils@8.11.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||
'@typescript-eslint/type-utils@8.12.1(eslint@8.57.1)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.11.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.12.1(eslint@8.57.1)(typescript@5.6.3)
|
||||
debug: 4.3.7
|
||||
ts-api-utils: 1.3.0(typescript@5.6.3)
|
||||
optionalDependencies:
|
||||
@@ -9544,12 +9537,12 @@ snapshots:
|
||||
- eslint
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@8.11.0': {}
|
||||
'@typescript-eslint/types@8.12.1': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.11.0(typescript@5.6.3)':
|
||||
'@typescript-eslint/typescript-estree@8.12.1(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.11.0
|
||||
'@typescript-eslint/visitor-keys': 8.11.0
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/visitor-keys': 8.12.1
|
||||
debug: 4.3.7
|
||||
fast-glob: 3.3.2
|
||||
is-glob: 4.0.3
|
||||
@@ -9561,39 +9554,39 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.11.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||
'@typescript-eslint/utils@8.12.1(eslint@8.57.1)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
|
||||
'@typescript-eslint/scope-manager': 8.11.0
|
||||
'@typescript-eslint/types': 8.11.0
|
||||
'@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3)
|
||||
'@typescript-eslint/scope-manager': 8.12.1
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
|
||||
eslint: 8.57.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.11.0':
|
||||
'@typescript-eslint/visitor-keys@8.12.1':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.11.0
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@ungap/structured-clone@1.2.0': {}
|
||||
|
||||
'@vitejs/plugin-react-swc@3.7.1(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))':
|
||||
'@vitejs/plugin-react-swc@3.7.1(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))':
|
||||
dependencies:
|
||||
'@swc/core': 1.7.26
|
||||
vite: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
transitivePeerDependencies:
|
||||
- '@swc/helpers'
|
||||
|
||||
'@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))':
|
||||
'@vitejs/plugin-react@4.3.3(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0))':
|
||||
dependencies:
|
||||
'@babel/core': 7.25.8
|
||||
'@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.8)
|
||||
'@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.8)
|
||||
'@types/babel__core': 7.20.5
|
||||
react-refresh: 0.14.2
|
||||
vite: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -10186,9 +10179,9 @@ snapshots:
|
||||
dependencies:
|
||||
toggle-selection: 1.0.6
|
||||
|
||||
cosmiconfig-typescript-loader@5.0.0(@types/node@22.8.1)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3):
|
||||
cosmiconfig-typescript-loader@5.0.0(@types/node@22.8.2)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3):
|
||||
dependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
cosmiconfig: 9.0.0(typescript@5.6.3)
|
||||
jiti: 1.21.6
|
||||
typescript: 5.6.3
|
||||
@@ -10847,16 +10840,16 @@ snapshots:
|
||||
dependencies:
|
||||
eslint: 8.57.1
|
||||
|
||||
eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-n@17.11.1(eslint@8.57.1))(eslint-plugin-promise@7.1.0(eslint@8.57.1))(eslint@8.57.1):
|
||||
eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-n@17.11.1(eslint@8.57.1))(eslint-plugin-promise@7.1.0(eslint@8.57.1))(eslint@8.57.1):
|
||||
dependencies:
|
||||
eslint: 8.57.1
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)
|
||||
eslint-plugin-n: 17.11.1(eslint@8.57.1)
|
||||
eslint-plugin-promise: 7.1.0(eslint@8.57.1)
|
||||
|
||||
eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)):
|
||||
eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)):
|
||||
dependencies:
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)
|
||||
|
||||
eslint-import-resolver-node@0.3.9:
|
||||
dependencies:
|
||||
@@ -10866,11 +10859,11 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1):
|
||||
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.11.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/parser': 8.12.1(eslint@8.57.1)(typescript@5.6.3)
|
||||
eslint: 8.57.1
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
transitivePeerDependencies:
|
||||
@@ -10887,7 +10880,7 @@ snapshots:
|
||||
dependencies:
|
||||
htmlparser2: 9.1.0
|
||||
|
||||
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1):
|
||||
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1):
|
||||
dependencies:
|
||||
'@rtsao/scc': 1.1.0
|
||||
array-includes: 3.1.8
|
||||
@@ -10898,7 +10891,7 @@ snapshots:
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.57.1
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.11.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1)
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.1(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1)
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.15.1
|
||||
is-glob: 4.0.3
|
||||
@@ -10910,7 +10903,7 @@ snapshots:
|
||||
string.prototype.trimend: 1.0.8
|
||||
tsconfig-paths: 3.15.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.11.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/parser': 8.12.1(eslint@8.57.1)(typescript@5.6.3)
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
@@ -11910,11 +11903,11 @@ snapshots:
|
||||
|
||||
kind-of@6.0.3: {}
|
||||
|
||||
knip@5.34.1(@types/node@22.8.1)(typescript@5.6.3):
|
||||
knip@5.34.2(@types/node@22.8.2)(typescript@5.6.3):
|
||||
dependencies:
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
'@snyk/github-codeowners': 1.1.0
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
easy-table: 1.2.0
|
||||
enhanced-resolve: 5.17.1
|
||||
fast-glob: 3.3.2
|
||||
@@ -14293,9 +14286,9 @@ snapshots:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
vite-plugin-dts@4.3.0(@types/node@22.8.1)(rollup@4.21.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)):
|
||||
vite-plugin-dts@4.3.0(@types/node@22.8.2)(rollup@4.21.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)):
|
||||
dependencies:
|
||||
'@microsoft/api-extractor': 7.47.11(@types/node@22.8.1)
|
||||
'@microsoft/api-extractor': 7.47.11(@types/node@22.8.2)
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.21.0)
|
||||
'@volar/typescript': 2.4.5
|
||||
'@vue/language-core': 2.1.6(typescript@5.6.3)
|
||||
@@ -14306,49 +14299,49 @@ snapshots:
|
||||
magic-string: 0.30.11
|
||||
typescript: 5.6.3
|
||||
optionalDependencies:
|
||||
vite: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
vite-plugin-sass-dts@1.3.29(postcss@8.4.47)(prettier@3.3.3)(sass-embedded@1.78.0)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)):
|
||||
vite-plugin-sass-dts@1.3.29(postcss@8.4.47)(prettier@3.3.3)(sass-embedded@1.78.0)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)):
|
||||
dependencies:
|
||||
postcss: 8.4.47
|
||||
postcss-js: 4.0.1(postcss@8.4.47)
|
||||
prettier: 3.3.3
|
||||
sass-embedded: 1.78.0
|
||||
vite: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
|
||||
vite-plugin-svgr@4.2.0(rollup@4.21.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)):
|
||||
vite-plugin-svgr@4.2.0(rollup@4.21.0)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)):
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.21.0)
|
||||
'@svgr/core': 8.1.0(typescript@5.6.3)
|
||||
'@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3))
|
||||
vite: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite-tsconfig-paths@5.0.1(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)):
|
||||
vite-tsconfig-paths@5.0.1(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)):
|
||||
dependencies:
|
||||
debug: 4.3.7
|
||||
globrex: 0.1.2
|
||||
tsconfck: 3.0.3(typescript@5.6.3)
|
||||
optionalDependencies:
|
||||
vite: 5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
vite: 5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite@5.4.10(@types/node@22.8.1)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0):
|
||||
vite@5.4.10(@types/node@22.8.2)(less@4.2.0)(sass-embedded@1.78.0)(sass@1.80.4)(stylus@0.62.0):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.47
|
||||
rollup: 4.21.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.8.1
|
||||
'@types/node': 22.8.2
|
||||
fsevents: 2.3.3
|
||||
less: 4.2.0
|
||||
sass: 1.80.4
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@octokit/types": "13.6.1",
|
||||
"@types/adm-zip": "0.5.5",
|
||||
"@types/adm-zip": "0.5.6",
|
||||
"adm-zip": "0.5.16",
|
||||
"colorize-template": "1.0.0",
|
||||
"consola": "3.2.3",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { ReactNode } from "react";
|
||||
import { Typography } from "@mui/material";
|
||||
import { BaseErrorBoundary } from "./base-error-boundary";
|
||||
import { useCustomTheme } from "@/components/layout/use-custom-theme";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
|
||||
interface Props {
|
||||
title?: React.ReactNode; // the page title
|
||||
@@ -13,7 +13,7 @@ interface Props {
|
||||
|
||||
export const BasePage: React.FC<Props> = (props) => {
|
||||
const { title, header, contentStyle, full, children } = props;
|
||||
const { theme } = useCustomTheme();
|
||||
const theme = useTheme();
|
||||
|
||||
const isDark = theme.palette.mode === "dark";
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import { getCurrentWebviewWindow } from "@tauri-apps/api/webviewWindow";
|
||||
import { useSetThemeMode, useThemeMode } from "@/services/states";
|
||||
import { defaultTheme, defaultDarkTheme } from "@/pages/_theme";
|
||||
import { useVerge } from "@/hooks/use-verge";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
const appWindow = getCurrentWebviewWindow();
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,7 +11,6 @@ export const useLogData = () => {
|
||||
const { clashInfo } = useClashInfo();
|
||||
|
||||
const [enableLog] = useEnableLog();
|
||||
!enableLog || !clashInfo;
|
||||
|
||||
return useSWRSubscription<ILogItem[], any, "getClashLog" | null>(
|
||||
enableLog && clashInfo ? "getClashLog" : null,
|
||||
|
||||
@@ -15,11 +15,11 @@ import {
|
||||
ConnectionDetailRef,
|
||||
} from "@/components/connection/connection-detail";
|
||||
import parseTraffic from "@/utils/parse-traffic";
|
||||
import { useCustomTheme } from "@/components/layout/use-custom-theme";
|
||||
import { BaseSearchBox } from "@/components/base/base-search-box";
|
||||
import { BaseStyledSelect } from "@/components/base/base-styled-select";
|
||||
import useSWRSubscription from "swr/subscription";
|
||||
import { createSockette } from "@/utils/websocket";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
|
||||
const initConn: IConnections = {
|
||||
uploadTotal: 0,
|
||||
@@ -32,7 +32,8 @@ type OrderFunc = (list: IConnectionsItem[]) => IConnectionsItem[];
|
||||
const ConnectionsPage = () => {
|
||||
const { t } = useTranslation();
|
||||
const { clashInfo } = useClashInfo();
|
||||
const { theme } = useCustomTheme();
|
||||
|
||||
const theme = useTheme();
|
||||
const isDark = theme.palette.mode === "dark";
|
||||
const [match, setMatch] = useState(() => (_: string) => true);
|
||||
const [curOrderOpt, setOrderOpt] = useState("Default");
|
||||
|
||||
@@ -10,7 +10,7 @@ import { useLogData } from "@/hooks/use-log-data";
|
||||
import { useEnableLog } from "@/services/states";
|
||||
import { BaseEmpty, BasePage } from "@/components/base";
|
||||
import LogItem from "@/components/log/log-item";
|
||||
import { useCustomTheme } from "@/components/layout/use-custom-theme";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import { BaseSearchBox } from "@/components/base/base-search-box";
|
||||
import { BaseStyledSelect } from "@/components/base/base-styled-select";
|
||||
import { mutate } from "swr";
|
||||
@@ -19,7 +19,7 @@ const LogPage = () => {
|
||||
const { t } = useTranslation();
|
||||
const { data: logData = [] } = useLogData();
|
||||
const [enableLog, setEnableLog] = useEnableLog();
|
||||
const { theme } = useCustomTheme();
|
||||
const theme = useTheme();
|
||||
const isDark = theme.palette.mode === "dark";
|
||||
const [logState, setLogState] = useState("all");
|
||||
const [match, setMatch] = useState(() => (_: string) => true);
|
||||
@@ -52,15 +52,19 @@ const LogPage = () => {
|
||||
)}
|
||||
</IconButton>
|
||||
|
||||
<Button
|
||||
size="small"
|
||||
variant="contained"
|
||||
// useSWRSubscription adds a prefix "$sub$" to the cache key
|
||||
// https://github.com/vercel/swr/blob/1585a3e37d90ad0df8097b099db38f1afb43c95d/src/subscription/index.ts#L37
|
||||
onClick={() => mutate("$sub$getClashLog", [])}
|
||||
>
|
||||
{t("Clear")}
|
||||
</Button>
|
||||
{enableLog === true && (
|
||||
<Button
|
||||
size="small"
|
||||
variant="contained"
|
||||
// useSWRSubscription adds a prefix "$sub$" to the cache key
|
||||
// https://github.com/vercel/swr/blob/1585a3e37d90ad0df8097b099db38f1afb43c95d/src/subscription/index.ts#L37
|
||||
onClick={() => {
|
||||
mutate("$sub$getClashLog", []);
|
||||
}}
|
||||
>
|
||||
{t("Clear")}
|
||||
</Button>
|
||||
)}
|
||||
</Box>
|
||||
}
|
||||
>
|
||||
@@ -94,7 +98,7 @@ const LogPage = () => {
|
||||
bgcolor: isDark ? "#282a36" : "#ffffff",
|
||||
}}
|
||||
>
|
||||
{filterLogs.length > 0 ? (
|
||||
{filterLogs.length > 0 && enableLog === true ? (
|
||||
<Virtuoso
|
||||
initialTopMostItemIndex={999}
|
||||
data={filterLogs}
|
||||
|
||||
@@ -7,13 +7,13 @@ import { getRules } from "@/services/api";
|
||||
import { BaseEmpty, BasePage } from "@/components/base";
|
||||
import RuleItem from "@/components/rule/rule-item";
|
||||
import { ProviderButton } from "@/components/rule/provider-button";
|
||||
import { useCustomTheme } from "@/components/layout/use-custom-theme";
|
||||
import { BaseSearchBox } from "@/components/base/base-search-box";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
|
||||
const RulesPage = () => {
|
||||
const { t } = useTranslation();
|
||||
const { data = [] } = useSWR("getRules", getRules);
|
||||
const { theme } = useCustomTheme();
|
||||
const theme = useTheme();
|
||||
const isDark = theme.palette.mode === "dark";
|
||||
const [match, setMatch] = useState(() => (_: string) => true);
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ const [ThemeModeProvider, useThemeMode, useSetThemeMode] = createContextState<
|
||||
"light" | "dark"
|
||||
>("light");
|
||||
|
||||
export const useEnableLog = () => useLocalStorage("enable-log", true);
|
||||
export const useEnableLog = () => useLocalStorage("enable-log", false);
|
||||
|
||||
interface IConnectionSetting {
|
||||
layout: "table" | "list";
|
||||
|
||||
@@ -575,7 +575,8 @@ $(eval $(call KernelPackage,drm-sched))
|
||||
define KernelPackage/drm-nouveau
|
||||
SUBMENU:=$(VIDEO_MENU)
|
||||
TITLE:=nouveau DRM support
|
||||
DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-drm-kms-helper +(LINUX_6_1||LINUX_6_6):kmod-acpi-video
|
||||
DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +(LINUX_6_1||LINUX_6_6):kmod-drm-display-helper +(LINUX_6_1||LINUX_6_6):kmod-drm-exec +kmod-drm-kms-helper \
|
||||
+(LINUX_6_1||LINUX_6_6):kmod-drm-sched +(LINUX_6_1||LINUX_6_6):kmod-acpi-video
|
||||
KCONFIG:=CONFIG_DRM_NOUVEAU \
|
||||
NOUVEAU_DEBUG=5 \
|
||||
NOUVEAU_DEBUG_DEFAULT=3 \
|
||||
|
||||
@@ -39,8 +39,9 @@ define Package/ddns-scripts_aliyun/preinst
|
||||
endef
|
||||
|
||||
define Package/ddns-scripts_aliyun/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/update_aliyun_com.sh $(1)/usr/lib/ddns
|
||||
$(INSTALL_DIR) $(1)/usr/lib/ddns $(1)/usr/share/ddns/default
|
||||
$(INSTALL_BIN) $(CURDIR)/update_aliyun_com.sh $(1)/usr/lib/ddns
|
||||
$(INSTALL_DATA) $(CURDIR)/aliyun.com.json $(1)/usr/share/ddns/default
|
||||
endef
|
||||
|
||||
define Package/ddns-scripts_aliyun/postinst
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "aliyun.com",
|
||||
"ipv4": {
|
||||
"url": "update_aliyun_com.sh"
|
||||
},
|
||||
"ipv6": {
|
||||
"url": "update_aliyun_com.sh"
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,6 @@ define Build/Configure
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(CP) ./*.sh $(PKG_BUILD_DIR)
|
||||
endef
|
||||
|
||||
define Package/ddns-scripts_dnspod/preinst
|
||||
@@ -39,8 +38,9 @@ define Package/ddns-scripts_dnspod/preinst
|
||||
endef
|
||||
|
||||
define Package/ddns-scripts_dnspod/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/*.sh $(1)/usr/lib/ddns
|
||||
$(INSTALL_DIR) $(1)/usr/lib/ddns $(1)/usr/share/ddns/default
|
||||
$(INSTALL_BIN) $(CURDIR)/*.sh $(1)/usr/lib/ddns
|
||||
$(INSTALL_DATA) $(CURDIR)/*.json $(1)/usr/share/ddns/default
|
||||
endef
|
||||
|
||||
define Package/ddns-scripts_dnspod/postinst
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "dnspod.com",
|
||||
"ipv4": {
|
||||
"url": "update_dnspod_cn.sh"
|
||||
},
|
||||
"ipv6": {
|
||||
"url": "update_dnspod_cn.sh"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "dnspod.com",
|
||||
"ipv4": {
|
||||
"url": "update_dnspod_com.sh"
|
||||
},
|
||||
"ipv6": {
|
||||
"url": "update_dnspod_com.sh"
|
||||
}
|
||||
}
|
||||
@@ -21,8 +21,6 @@ PKG_BUILD_PARALLEL:=1
|
||||
PKG_ASLR_PIE_REGULAR:=1
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
CONFIG_PACKAGE_kmod-ath9k \
|
||||
CONFIG_PACKAGE_kmod-cfg80211 \
|
||||
CONFIG_PACKAGE_hostapd \
|
||||
CONFIG_PACKAGE_hostapd-basic \
|
||||
CONFIG_PACKAGE_hostapd-mini \
|
||||
@@ -82,9 +80,10 @@ ifneq ($(CONFIG_DRIVER_11AX_SUPPORT),)
|
||||
HOSTAPD_IEEE80211AX:=y
|
||||
endif
|
||||
|
||||
CORE_DEPENDS = +ucode +libubus +libucode +ucode-mod-fs +ucode-mod-nl80211 +ucode-mod-rtnl +ucode-mod-ubus +ucode-mod-uloop +libblobmsg-json
|
||||
|
||||
DRIVER_MAKEOPTS= \
|
||||
CONFIG_ACS=$(CONFIG_PACKAGE_kmod-cfg80211) \
|
||||
CONFIG_DRIVER_NL80211=$(CONFIG_PACKAGE_kmod-cfg80211) \
|
||||
CONFIG_ACS=y CONFIG_DRIVER_NL80211=y \
|
||||
CONFIG_IEEE80211AC=$(HOSTAPD_IEEE80211AC) \
|
||||
CONFIG_IEEE80211AX=$(HOSTAPD_IEEE80211AX) \
|
||||
CONFIG_DRIVER_WEXT=$(CONFIG_DRIVER_WEXT_SUPPORT) \
|
||||
@@ -141,7 +140,7 @@ ifneq ($(LOCAL_TYPE),hostapd)
|
||||
endif
|
||||
endif
|
||||
|
||||
DRV_DEPENDS:=+PACKAGE_kmod-cfg80211:libnl-tiny +kmod-cfg80211
|
||||
DRV_DEPENDS:=+libnl-tiny
|
||||
|
||||
|
||||
define Package/hostapd/Default
|
||||
@@ -150,7 +149,7 @@ define Package/hostapd/Default
|
||||
SUBMENU:=WirelessAPD
|
||||
TITLE:=IEEE 802.1x Authenticator
|
||||
URL:=http://hostap.epitest.fi/
|
||||
DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus
|
||||
DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS)
|
||||
EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE))
|
||||
USERID:=network=101:network=101
|
||||
PROVIDES:=hostapd
|
||||
@@ -255,7 +254,7 @@ define Package/wpad/Default
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=WirelessAPD
|
||||
TITLE:=IEEE 802.1x Auth/Supplicant
|
||||
DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus
|
||||
DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS)
|
||||
EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE))
|
||||
USERID:=network=101:network=101
|
||||
URL:=http://hostap.epitest.fi/
|
||||
@@ -358,7 +357,7 @@ endef
|
||||
|
||||
define Package/wpad-mesh
|
||||
$(call Package/wpad/Default,$(1))
|
||||
DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN)
|
||||
DEPENDS+=@(!TARGET_uml||BROKEN)
|
||||
PROVIDES+=wpa-supplicant-mesh wpad-mesh
|
||||
endef
|
||||
|
||||
@@ -400,7 +399,7 @@ define Package/wpa-supplicant/Default
|
||||
SUBMENU:=WirelessAPD
|
||||
TITLE:=WPA Supplicant
|
||||
URL:=http://hostap.epitest.fi/wpa_supplicant/
|
||||
DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus
|
||||
DEPENDS:=$(DRV_DEPENDS) +hostapd-common $(CORE_DEPENDS)
|
||||
EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE))
|
||||
USERID:=network=101:network=101
|
||||
PROVIDES:=wpa-supplicant
|
||||
@@ -442,13 +441,12 @@ endef
|
||||
define Package/wpa-supplicant-p2p
|
||||
$(call Package/wpa-supplicant/Default,$(1))
|
||||
TITLE+= (Wi-Fi P2P support)
|
||||
DEPENDS+=@PACKAGE_kmod-cfg80211
|
||||
VARIANT:=supplicant-p2p-internal
|
||||
endef
|
||||
|
||||
define Package/wpa-supplicant-mesh/Default
|
||||
$(call Package/wpa-supplicant/Default,$(1))
|
||||
DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN)
|
||||
DEPENDS+=@(!TARGET_uml||BROKEN)
|
||||
PROVIDES+=wpa-supplicant-mesh
|
||||
endef
|
||||
|
||||
@@ -589,9 +587,7 @@ TARGET_CPPFLAGS := \
|
||||
|
||||
TARGET_LDFLAGS += -lubox -lubus
|
||||
|
||||
ifdef CONFIG_PACKAGE_kmod-cfg80211
|
||||
TARGET_LDFLAGS += -lm -lnl-tiny
|
||||
endif
|
||||
TARGET_LDFLAGS += -lubox -lubus -lblobmsg_json -lucode -lm -lnl-tiny
|
||||
|
||||
ifdef CONFIG_WPA_ENABLE_WEP
|
||||
DRIVER_MAKEOPTS += CONFIG_WEP=y
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall
|
||||
PKG_VERSION:=4.78-3
|
||||
PKG_VERSION:=4.78-4
|
||||
PKG_RELEASE:=
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
||||
@@ -981,10 +981,10 @@ run_redir() {
|
||||
|
||||
case "$(config_t_get global direct_dns_mode "auto")" in
|
||||
udp)
|
||||
_args="${_args} direct_dns_udp_server=$(config_t_get global direct_dns_udp 223.5.5.5 | sed 's/:/#/g')
|
||||
_args="${_args} direct_dns_udp_server=$(config_t_get global direct_dns_udp 223.5.5.5 | sed 's/:/#/g')"
|
||||
;;
|
||||
tcp)
|
||||
_args="${_args} direct_dns_tcp_server=$(config_t_get global direct_dns_tcp 223.5.5.5 | sed 's/:/#/g')
|
||||
_args="${_args} direct_dns_tcp_server=$(config_t_get global direct_dns_tcp 223.5.5.5 | sed 's/:/#/g')"
|
||||
;;
|
||||
dot)
|
||||
local tmp_dot_dns=$(config_t_get global direct_dns_dot "tls://dot.pub@1.12.12.12")
|
||||
|
||||
Generated
+8
-8
@@ -2758,9 +2758,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
||||
|
||||
[[package]]
|
||||
name = "reqwest"
|
||||
version = "0.12.8"
|
||||
version = "0.12.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b"
|
||||
checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f"
|
||||
dependencies = [
|
||||
"base64 0.22.1",
|
||||
"bytes",
|
||||
@@ -3122,9 +3122,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.213"
|
||||
version = "1.0.214"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1"
|
||||
checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
@@ -3150,9 +3150,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.213"
|
||||
version = "1.0.214"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5"
|
||||
checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -3921,9 +3921,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
||||
|
||||
[[package]]
|
||||
name = "tun2"
|
||||
version = "3.1.8"
|
||||
version = "4.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "294ac0e21fef392b8952f1dd538bc5752fd7c2ebfde1c204b0dd09aaa5489cd0"
|
||||
checksum = "21afe73d3d42581a7400fbf5aec057a646ffe3f8bb5ae3f61d88c7e7f4ac77be"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"cfg-if",
|
||||
|
||||
@@ -186,7 +186,7 @@ flate2 = { version = "1.0", optional = true }
|
||||
brotli = { version = "7.0", optional = true }
|
||||
zstd = { version = "0.13", optional = true }
|
||||
|
||||
tun2 = { version = "3.1", optional = true, default-features = false, features = [
|
||||
tun2 = { version = "4.0", optional = true, default-features = false, features = [
|
||||
"async",
|
||||
] }
|
||||
etherparse = { version = "0.16", optional = true }
|
||||
|
||||
@@ -24,6 +24,8 @@ jobs:
|
||||
- name: Build
|
||||
run: |
|
||||
brew install automake
|
||||
brew install autoconf
|
||||
brew install libtool
|
||||
make VERSION="${GITHUB_SHA::7}" debug
|
||||
make debug-dmg
|
||||
shasum -a 256 build/Debug/ShadowsocksX-NG.dmg > build/Debug/ShadowsocksX-NG.dmg.checksum
|
||||
|
||||
@@ -21,6 +21,8 @@ jobs:
|
||||
- name: Build
|
||||
run: |
|
||||
brew install automake
|
||||
brew install autoconf
|
||||
brew install libtool
|
||||
make VERSION="${GITHUB_REF_NAME}" release
|
||||
make release-dmg
|
||||
shasum -a 256 build/Release/ShadowsocksX-NG.dmg > build/Release/ShadowsocksX-NG.dmg.checksum
|
||||
|
||||
@@ -627,42 +627,43 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
|
||||
}
|
||||
|
||||
func handleFoundSSURL(_ note: Notification) {
|
||||
let sendNotify = {
|
||||
(title: String, subtitle: String, infoText: String) in
|
||||
|
||||
let sendNotify = { (title: String, subtitle: String, infoText: String) in
|
||||
let userNote = NSUserNotification()
|
||||
userNote.title = title
|
||||
userNote.subtitle = subtitle
|
||||
userNote.informativeText = infoText
|
||||
userNote.soundName = NSUserNotificationDefaultSoundName
|
||||
|
||||
NSUserNotificationCenter.default
|
||||
.deliver(userNote);
|
||||
NSUserNotificationCenter.default.deliver(userNote)
|
||||
}
|
||||
|
||||
if let userInfo = (note as NSNotification).userInfo {
|
||||
let urls: [URL] = userInfo["urls"] as! [URL]
|
||||
// 检查错误
|
||||
if let error = userInfo["error"] as? String {
|
||||
sendNotify("Scan Failed", "", error.localized)
|
||||
return
|
||||
}
|
||||
|
||||
let mgr = ServerProfileManager.instance
|
||||
let addCount = mgr.addServerProfileByURL(urls: urls)
|
||||
// 使用新的通知信息
|
||||
let title = (userInfo["title"] as? String) ?? ""
|
||||
let subtitle = (userInfo["subtitle"] as? String) ?? ""
|
||||
let body = (userInfo["body"] as? String) ?? ""
|
||||
|
||||
let urls: [URL] = userInfo["urls"] as! [URL]
|
||||
let addCount = ServerProfileManager.instance.addServerProfileByURL(urls: urls)
|
||||
|
||||
if addCount > 0 {
|
||||
var subtitle: String = ""
|
||||
if userInfo["source"] as! String == "qrcode" {
|
||||
subtitle = "By scan QR Code".localized
|
||||
} else if userInfo["source"] as! String == "url" {
|
||||
subtitle = "By handle SS URL".localized
|
||||
} else if userInfo["source"] as! String == "pasteboard" {
|
||||
subtitle = "By import from pasteboard".localized
|
||||
}
|
||||
|
||||
sendNotify("Add \(addCount) Shadowsocks Server Profile".localized, subtitle, "")
|
||||
sendNotify(
|
||||
title.localized,
|
||||
subtitle.localized,
|
||||
"Successfully added \(addCount) server configuration(s)".localized
|
||||
)
|
||||
} else {
|
||||
if userInfo["source"] as! String == "qrcode" {
|
||||
sendNotify("", "", "Not found valid QRCode of shadowsocks profile".localized)
|
||||
} else if userInfo["source"] as! String == "url" {
|
||||
sendNotify("", "", "Not found valid URL of shadowsocks profile".localized)
|
||||
}
|
||||
sendNotify(
|
||||
title.localized,
|
||||
subtitle.localized,
|
||||
body.localized
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>SWBApplication</string>
|
||||
<key>NSScreenCaptureUsageDescription</key>
|
||||
<string>ShadowsocksX-NG needs Screen Recording permission to scan QR codes on your screen</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -10,71 +10,153 @@
|
||||
#import <CoreImage/CoreImage.h>
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
void ScanQRCodeOnScreen(void) {
|
||||
void ScanQRCodeOnScreen(void) {
|
||||
/* check system version and permission status */
|
||||
if (@available(macOS 10.12, *)) {
|
||||
BOOL hasPermission = CGPreflightScreenCaptureAccess();
|
||||
NSLog(@"Screen Recording Permission Status: %@", hasPermission ? @"Granted" : @"Not Granted");
|
||||
|
||||
if (!hasPermission) {
|
||||
NSLog(@"Requesting Screen Recording Permission...");
|
||||
CGRequestScreenCaptureAccess();
|
||||
|
||||
/* check permission status after request */
|
||||
hasPermission = CGPreflightScreenCaptureAccess();
|
||||
NSLog(@"Screen Recording Permission Status After Request: %@", hasPermission ? @"Granted" : @"Not Granted");
|
||||
|
||||
if (!hasPermission) {
|
||||
NSLog(@"Screen Recording Permission Denied");
|
||||
|
||||
/* send notification about permission missing */
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
postNotificationName:@"NOTIFY_FOUND_SS_URL"
|
||||
object:nil
|
||||
userInfo:@{
|
||||
@"urls": @[],
|
||||
@"source": @"qrcode",
|
||||
@"error": @"Screen Recording permission required. Please grant permission in System Preferences and restart ShadowsocksX-NG"
|
||||
}];
|
||||
|
||||
/* open system privacy settings */
|
||||
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"]];
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
NSLog(@"Proceeding with screen capture...");
|
||||
}
|
||||
|
||||
/* displays[] Quartz display ID's */
|
||||
CGDirectDisplayID *displays = nil;
|
||||
|
||||
CGError err = CGDisplayNoErr;
|
||||
CGDisplayCount dspCount = 0;
|
||||
|
||||
/* How many active displays do we have? */
|
||||
err = CGGetActiveDisplayList(0, NULL, &dspCount);
|
||||
/* variables for collecting scan information */
|
||||
NSMutableDictionary *scanInfo = [NSMutableDictionary dictionary];
|
||||
NSMutableArray *foundSSUrls = [NSMutableArray array];
|
||||
NSMutableArray *foundQRCodes = [NSMutableArray array];
|
||||
|
||||
/* If we are getting an error here then their won't be much to display. */
|
||||
if(err != CGDisplayNoErr)
|
||||
{
|
||||
NSLog(@"Could not get active display count (%d)\n", err);
|
||||
/* How many active displays do we have? */
|
||||
CGError err = CGGetActiveDisplayList(0, NULL, &dspCount);
|
||||
|
||||
if(err != CGDisplayNoErr) {
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
postNotificationName:@"NOTIFY_FOUND_SS_URL"
|
||||
object:nil
|
||||
userInfo:@{
|
||||
@"urls": @[],
|
||||
@"source": @"qrcode",
|
||||
@"error": @"Failed to get display list"
|
||||
}];
|
||||
return;
|
||||
}
|
||||
|
||||
scanInfo[@"displayCount"] = @(dspCount);
|
||||
NSLog(@"Found %d displays", dspCount);
|
||||
|
||||
/* Allocate enough memory to hold all the display IDs we have. */
|
||||
displays = calloc((size_t)dspCount, sizeof(CGDirectDisplayID));
|
||||
|
||||
// Get the list of active displays
|
||||
err = CGGetActiveDisplayList(dspCount,
|
||||
displays,
|
||||
&dspCount);
|
||||
err = CGGetActiveDisplayList(dspCount, displays, &dspCount);
|
||||
|
||||
/* More error-checking here. */
|
||||
if(err != CGDisplayNoErr)
|
||||
{
|
||||
NSLog(@"Could not get active display list (%d)\n", err);
|
||||
if(err != CGDisplayNoErr) {
|
||||
free(displays);
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
postNotificationName:@"NOTIFY_FOUND_SS_URL"
|
||||
object:nil
|
||||
userInfo:@{
|
||||
@"urls": @[],
|
||||
@"source": @"qrcode",
|
||||
@"error": @"Failed to get display information"
|
||||
}];
|
||||
return;
|
||||
}
|
||||
|
||||
NSMutableArray* foundSSUrls = [NSMutableArray array];
|
||||
|
||||
CIDetector *detector = [CIDetector detectorOfType:@"CIDetectorTypeQRCode"
|
||||
context:nil
|
||||
options:@{ CIDetectorAccuracy:CIDetectorAccuracyHigh }];
|
||||
context:nil
|
||||
options:@{ CIDetectorAccuracy:CIDetectorAccuracyHigh }];
|
||||
|
||||
for (unsigned int displaysIndex = 0; displaysIndex < dspCount; displaysIndex++)
|
||||
{
|
||||
/* Make a snapshot image of the current display. */
|
||||
int totalQRCodesFound = 0;
|
||||
int validSSUrlsFound = 0;
|
||||
|
||||
for (unsigned int displaysIndex = 0; displaysIndex < dspCount; displaysIndex++) {
|
||||
CGImageRef image = CGDisplayCreateImage(displays[displaysIndex]);
|
||||
NSArray *features = [detector featuresInImage:[CIImage imageWithCGImage:image]];
|
||||
|
||||
/* count total QR codes found */
|
||||
totalQRCodesFound += (int)features.count;
|
||||
|
||||
for (CIQRCodeFeature *feature in features) {
|
||||
NSLog(@"%@", feature.messageString);
|
||||
if ( [feature.messageString hasPrefix:@"ss://"] )
|
||||
{
|
||||
NSLog(@"Found QR Code: %@", feature.messageString);
|
||||
[foundQRCodes addObject:feature.messageString];
|
||||
|
||||
if ([feature.messageString hasPrefix:@"ss://"]) {
|
||||
NSURL *url = [NSURL URLWithString:feature.messageString];
|
||||
if (url) {
|
||||
[foundSSUrls addObject:url];
|
||||
validSSUrlsFound++;
|
||||
}
|
||||
}
|
||||
}
|
||||
CGImageRelease(image);
|
||||
CGImageRelease(image);
|
||||
}
|
||||
|
||||
free(displays);
|
||||
|
||||
/* prepare notification information */
|
||||
NSString *notificationTitle;
|
||||
NSString *notificationSubtitle;
|
||||
NSString *notificationBody;
|
||||
|
||||
if (totalQRCodesFound == 0) {
|
||||
notificationTitle = [NSString stringWithFormat:@"Scanned %d displays", dspCount];
|
||||
notificationSubtitle = @"No QR codes found";
|
||||
notificationBody = @"Try adjusting the QR code position on your screen";
|
||||
} else if (validSSUrlsFound == 0) {
|
||||
notificationTitle = [NSString stringWithFormat:@"Found %d QR code(s)", totalQRCodesFound];
|
||||
notificationSubtitle = @"No valid Shadowsocks URLs";
|
||||
notificationBody = @"QR codes found are not Shadowsocks configuration";
|
||||
} else {
|
||||
notificationTitle = [NSString stringWithFormat:@"Found %d Shadowsocks URL(s)", validSSUrlsFound];
|
||||
notificationSubtitle = [NSString stringWithFormat:@"Scanned %d displays, found %d QR codes", dspCount, totalQRCodesFound];
|
||||
notificationBody = @"Processing Shadowsocks configuration...";
|
||||
}
|
||||
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
postNotificationName:@"NOTIFY_FOUND_SS_URL"
|
||||
object:nil
|
||||
userInfo: @{ @"urls": foundSSUrls,
|
||||
@"source": @"qrcode"
|
||||
}
|
||||
];
|
||||
userInfo:@{
|
||||
@"urls": foundSSUrls,
|
||||
@"source": @"qrcode",
|
||||
@"title": notificationTitle,
|
||||
@"subtitle": notificationSubtitle,
|
||||
@"body": notificationBody,
|
||||
@"scanInfo": @{
|
||||
@"displayCount": @(dspCount),
|
||||
@"totalQRCodes": @(totalQRCodesFound),
|
||||
@"validURLs": @(validSSUrlsFound)
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
NSImage* createQRImage(NSString *string, NSSize size) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_VERSION:=1.9.1
|
||||
PKG_VERSION:=1.9.2
|
||||
|
||||
LUCI_TITLE:=LuCI Support for mihomo
|
||||
LUCI_DEPENDS:=+luci-base +mihomo
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall
|
||||
PKG_VERSION:=4.78-3
|
||||
PKG_VERSION:=4.78-4
|
||||
PKG_RELEASE:=
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
||||
@@ -981,10 +981,10 @@ run_redir() {
|
||||
|
||||
case "$(config_t_get global direct_dns_mode "auto")" in
|
||||
udp)
|
||||
_args="${_args} direct_dns_udp_server=$(config_t_get global direct_dns_udp 223.5.5.5 | sed 's/:/#/g')
|
||||
_args="${_args} direct_dns_udp_server=$(config_t_get global direct_dns_udp 223.5.5.5 | sed 's/:/#/g')"
|
||||
;;
|
||||
tcp)
|
||||
_args="${_args} direct_dns_tcp_server=$(config_t_get global direct_dns_tcp 223.5.5.5 | sed 's/:/#/g')
|
||||
_args="${_args} direct_dns_tcp_server=$(config_t_get global direct_dns_tcp 223.5.5.5 | sed 's/:/#/g')"
|
||||
;;
|
||||
dot)
|
||||
local tmp_dot_dns=$(config_t_get global direct_dns_dot "tls://dot.pub@1.12.12.12")
|
||||
|
||||
@@ -103,7 +103,6 @@ ipset_r() {
|
||||
$IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j RETURN
|
||||
$IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW
|
||||
$IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -m set ! --match-set china dst -j SS_SPEC_WAN_FW
|
||||
$IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW
|
||||
;;
|
||||
oversea)
|
||||
ipset -N oversea hash:net 2>/dev/null
|
||||
|
||||
@@ -9,7 +9,7 @@ require "luci.model.uci"
|
||||
local icount = 0
|
||||
local args = arg[1]
|
||||
local uci = luci.model.uci.cursor()
|
||||
local TMP_DNSMASQ_PATH = "/tmp/dnsmasq.d/dnsmasq-ssrplus.d"
|
||||
local TMP_DNSMASQ_PATH = "${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d"
|
||||
local TMP_PATH = "/var/etc/ssrplus"
|
||||
-- match comments/title/whitelist/ip address/excluded_domain
|
||||
local comment_pattern = "^[!\\[@]+"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mihomo
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
|
||||
|
||||
@@ -264,10 +264,10 @@ start_service() {
|
||||
ip tuntap add dev "$TUN_DEVICE" mode tun vnet_hdr
|
||||
ip link set "$TUN_DEVICE" up
|
||||
if [ "$ipv4_proxy" == 1 ]; then
|
||||
ip route add unicast default dev $TUN_DEVICE table "$TUN_ROUTE_TABLE"
|
||||
ip route add unicast default dev "$TUN_DEVICE" table "$TUN_ROUTE_TABLE"
|
||||
fi
|
||||
if [ "$ipv6_proxy" == 1 ]; then
|
||||
ip -6 route add unicast default dev $TUN_DEVICE table "$TUN_ROUTE_TABLE"
|
||||
ip -6 route add unicast default dev "$TUN_DEVICE" table "$TUN_ROUTE_TABLE"
|
||||
fi
|
||||
$TUN_SH
|
||||
fi
|
||||
@@ -379,6 +379,23 @@ start_service() {
|
||||
fi
|
||||
nft add rule inet "$FW_TABLE" mangle_prerouting meta l4proto udp jump "${access_control_mode}_${udp_transparent_proxy_mode}"
|
||||
fi
|
||||
# fix compatible between tproxy and dockerd (kmod-br-netfilter)
|
||||
if [ "$tproxy_enable" == 1 ] && (lsmod | grep -q br_netfilter); then
|
||||
if [ "$ipv4_proxy" == 1 ]; then
|
||||
local bridge_nf_call_iptables; bridge_nf_call_iptables=$(sysctl -e -n net.bridge.bridge-nf-call-iptables)
|
||||
if [ "$bridge_nf_call_iptables" == 1 ]; then
|
||||
touch /tmp/bridge_nf_call_iptables.flag
|
||||
sysctl -q -w net.bridge.bridge-nf-call-iptables=0
|
||||
fi
|
||||
fi
|
||||
if [ "$ipv6_proxy" == 1 ]; then
|
||||
local bridge_nf_call_ip6tables; bridge_nf_call_ip6tables=$(sysctl -e -n net.bridge.bridge-nf-call-ip6tables)
|
||||
if [ "$bridge_nf_call_ip6tables" == 1 ]; then
|
||||
touch /tmp/bridge_nf_call_ip6tables.flag
|
||||
sysctl -q -w net.bridge.bridge-nf-call-ip6tables=0
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# cron
|
||||
if [[ "$scheduled_restart" == 1 && -n "$cron_expression" ]]; then
|
||||
@@ -431,6 +448,15 @@ cleanup() {
|
||||
for handle in $handles; do
|
||||
nft delete rule inet fw4 forward handle "$handle"
|
||||
done
|
||||
# revert fix compatible between tproxy and dockerd (kmod-br-netfilter)
|
||||
if [ -f "/tmp/bridge_nf_call_iptables.flag" ]; then
|
||||
rm -f /tmp/bridge_nf_call_iptables.flag
|
||||
sysctl -q -w net.bridge.bridge-nf-call-iptables=1
|
||||
fi
|
||||
if [ -f "/tmp/bridge_nf_call_ip6tables.flag" ]; then
|
||||
rm -f /tmp/bridge_nf_call_ip6tables.flag
|
||||
sysctl -q -w net.bridge.bridge-nf-call-ip6tables=1
|
||||
fi
|
||||
# delete cron
|
||||
sed -i '/#mihomo/d' "/etc/crontabs/root" > /dev/null 2>&1
|
||||
/etc/init.d/cron restart
|
||||
|
||||
Vendored
+9
-8
@@ -15,18 +15,19 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v4.2.2
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
uses: actions/setup-java@v4.5.0
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
java-version: '21'
|
||||
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.22.4'
|
||||
cache: false
|
||||
|
||||
- name: Install gomobile
|
||||
run: |
|
||||
@@ -34,7 +35,7 @@ jobs:
|
||||
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Setup Android environment
|
||||
uses: android-actions/setup-android@v3
|
||||
uses: android-actions/setup-android@v3.2.1
|
||||
|
||||
- name: Build dependencies
|
||||
run: |
|
||||
@@ -55,28 +56,28 @@ jobs:
|
||||
./gradlew assembleDebug
|
||||
|
||||
- name: Upload arm64-v8a APK
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
if: ${{ success() }}
|
||||
with:
|
||||
name: arm64-v8a
|
||||
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/debug/*arm64-v8a*.apk
|
||||
|
||||
- name: Upload armeabi-v7a APK
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
if: ${{ success() }}
|
||||
with:
|
||||
name: armeabi-v7a
|
||||
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/debug/*armeabi-v7a*.apk
|
||||
|
||||
- name: Upload x86 APK
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
if: ${{ success() }}
|
||||
with:
|
||||
name: x86-apk
|
||||
path: ${{ github.workspace }}/V2rayNG/app/build/outputs/apk/debug/*x86*.apk
|
||||
|
||||
- name: Upload Other APKs
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
with:
|
||||
name: others-apk
|
||||
path: |
|
||||
|
||||
@@ -10,7 +10,7 @@ android {
|
||||
defaultConfig {
|
||||
applicationId = "com.v2ray.ang"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
targetSdk = 35
|
||||
versionCode = 603
|
||||
versionName = "1.9.9"
|
||||
multiDexEnabled = true
|
||||
|
||||
@@ -224,8 +224,7 @@
|
||||
<activity
|
||||
android:name=".ui.TaskerActivity"
|
||||
android:exported="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name">
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<intent-filter>
|
||||
<action android:name="com.twofortyfouram.locale.intent.action.EDIT_SETTING" />
|
||||
</intent-filter>
|
||||
@@ -234,7 +233,8 @@
|
||||
<receiver
|
||||
android:name=".receiver.TaskerReceiver"
|
||||
android:exported="true"
|
||||
android:process=":RunSoLibV2RayDaemon">
|
||||
android:process=":RunSoLibV2RayDaemon"
|
||||
tools:ignore="ExportedReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="com.twofortyfouram.locale.intent.action.FIRE_SETTING" />
|
||||
</intent-filter>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
package com.v2ray.ang.dto
|
||||
|
||||
data class ProfileItem(
|
||||
data class ProfileLiteItem(
|
||||
val configType: EConfigType,
|
||||
var subscriptionId: String = "",
|
||||
var remarks: String = "",
|
||||
@@ -2,5 +2,5 @@ package com.v2ray.ang.dto
|
||||
|
||||
data class ServersCache(
|
||||
val guid: String,
|
||||
val profile: ProfileItem
|
||||
val profile: ProfileLiteItem
|
||||
)
|
||||
@@ -365,7 +365,8 @@ object AngConfigManager {
|
||||
val httpPort = SettingsManager.getHttpPort()
|
||||
Utils.getUrlContentWithCustomUserAgent(url, 30000, httpPort)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
Log.e(AppConfig.ANG_PACKAGE, "Update subscription: proxy not ready or other error, try……")
|
||||
//e.printStackTrace()
|
||||
""
|
||||
}
|
||||
if (configText.isEmpty()) {
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.tencent.mmkv.MMKV
|
||||
import com.v2ray.ang.AppConfig.PREF_IS_BOOTED
|
||||
import com.v2ray.ang.AppConfig.PREF_ROUTING_RULESET
|
||||
import com.v2ray.ang.dto.AssetUrlItem
|
||||
import com.v2ray.ang.dto.ProfileItem
|
||||
import com.v2ray.ang.dto.ProfileLiteItem
|
||||
import com.v2ray.ang.dto.RulesetItem
|
||||
import com.v2ray.ang.dto.ServerAffiliationInfo
|
||||
import com.v2ray.ang.dto.ServerConfig
|
||||
@@ -72,7 +72,7 @@ object MmkvManager {
|
||||
return JsonUtil.fromJson(json, ServerConfig::class.java)
|
||||
}
|
||||
|
||||
fun decodeProfileConfig(guid: String): ProfileItem? {
|
||||
fun decodeProfileConfig(guid: String): ProfileLiteItem? {
|
||||
if (guid.isBlank()) {
|
||||
return null
|
||||
}
|
||||
@@ -80,7 +80,7 @@ object MmkvManager {
|
||||
if (json.isNullOrBlank()) {
|
||||
return null
|
||||
}
|
||||
return JsonUtil.fromJson(json, ProfileItem::class.java)
|
||||
return JsonUtil.fromJson(json, ProfileLiteItem::class.java)
|
||||
}
|
||||
|
||||
fun encodeServerConfig(guid: String, config: ServerConfig): String {
|
||||
@@ -94,7 +94,7 @@ object MmkvManager {
|
||||
mainStorage.encode(KEY_SELECTED_SERVER, key)
|
||||
}
|
||||
}
|
||||
val profile = ProfileItem(
|
||||
val profile = ProfileLiteItem(
|
||||
configType = config.configType,
|
||||
subscriptionId = config.subscriptionId,
|
||||
remarks = config.remarks,
|
||||
|
||||
@@ -16,7 +16,7 @@ import com.v2ray.ang.AppConfig
|
||||
import com.v2ray.ang.AppConfig.ANG_PACKAGE
|
||||
import com.v2ray.ang.R
|
||||
import com.v2ray.ang.dto.EConfigType
|
||||
import com.v2ray.ang.dto.ProfileItem
|
||||
import com.v2ray.ang.dto.ProfileLiteItem
|
||||
import com.v2ray.ang.dto.ServerConfig
|
||||
import com.v2ray.ang.dto.ServersCache
|
||||
import com.v2ray.ang.dto.V2rayConfig
|
||||
@@ -102,7 +102,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
|
||||
val key = MmkvManager.encodeServerConfig("", config)
|
||||
MmkvManager.encodeServerRaw(key, server)
|
||||
serverList.add(0, key)
|
||||
val profile = ProfileItem(
|
||||
val profile = ProfileLiteItem(
|
||||
configType = config.configType,
|
||||
subscriptionId = config.subscriptionId,
|
||||
remarks = config.remarks,
|
||||
@@ -131,7 +131,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
|
||||
var profile = MmkvManager.decodeProfileConfig(guid)
|
||||
if (profile == null) {
|
||||
val config = MmkvManager.decodeServerConfig(guid) ?: continue
|
||||
profile = ProfileItem(
|
||||
profile = ProfileLiteItem(
|
||||
configType = config.configType,
|
||||
subscriptionId = config.subscriptionId,
|
||||
remarks = config.remarks,
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
<string name="server_lab_content">Данные</string>
|
||||
<string name="toast_none_data_clipboard">В буфере обмена нет данных</string>
|
||||
<string name="toast_invalid_url">Неправильный URL</string>
|
||||
<string name="toast_insecure_url_protocol">Please do not use the insecure HTTP protocol subscription address</string>
|
||||
<string name="toast_insecure_url_protocol">Не используйте небезопасный HTTP-протокол в адресе подписки</string>
|
||||
<string name="server_lab_need_inbound">Убедитесь, что входящий порт соответствует настройкам</string>
|
||||
<string name="toast_malformed_josn">Профиль повреждён</string>
|
||||
<string name="server_lab_request_host6">Узел (SNI) (необязательно)</string>
|
||||
@@ -316,6 +316,7 @@
|
||||
<item>Белый список Китая</item>
|
||||
<item>Чёрный список Китая</item>
|
||||
<item>Общие</item>
|
||||
<item>Белый список Ирана</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -248,16 +248,14 @@ bool CliConnection::OnEndHeadersForStream(http2::adapter::Http2StreamId stream_i
|
||||
}
|
||||
LOG(INFO) << "Connection (client) " << connection_id() << " for " << remote_domain() << " Padding support "
|
||||
<< (padding_support_ ? "enabled" : "disabled") << " Backed by " << server_field << ".";
|
||||
|
||||
// we're done
|
||||
request_map_.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CliConnection::OnEndStream(StreamId stream_id) {
|
||||
if (stream_id == stream_id_) {
|
||||
data_frame_ = nullptr;
|
||||
stream_id_ = 0;
|
||||
adapter_->SubmitGoAway(0, http2::adapter::Http2ErrorCode::HTTP2_NO_ERROR, ""sv);
|
||||
DCHECK(adapter_->want_write());
|
||||
}
|
||||
http2_stream_recv_eof_ = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -282,13 +280,15 @@ void CliConnection::OnConnectionError(ConnectionError error) {
|
||||
}
|
||||
|
||||
bool CliConnection::OnFrameHeader(StreamId stream_id, size_t /*length*/, uint8_t /*type*/, uint8_t /*flags*/) {
|
||||
if (stream_id && stream_id != stream_id_) {
|
||||
LOG(WARNING) << "Connection (client) " << connection_id() << " refused unexpected HTTP/2 Push";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CliConnection::OnBeginHeadersForStream(StreamId stream_id) {
|
||||
if (stream_id) {
|
||||
DCHECK_EQ(stream_id, stream_id_) << "Client only support one stream";
|
||||
}
|
||||
DCHECK_EQ(stream_id, stream_id_) << "Unexpected http2 request stream: " << stream_id << " expected: " << stream_id_;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1109,6 +1109,12 @@ out:
|
||||
SendIfNotProcessing();
|
||||
WriteUpstreamInPipe();
|
||||
}
|
||||
if (http2_stream_recv_eof_ && downstream_.empty() && !shutdown_) {
|
||||
VLOG(2) << "Connection (client) " << connection_id() << " last data sent: shutting down";
|
||||
shutdown_ = true;
|
||||
asio::error_code ec;
|
||||
downlink_->shutdown(ec);
|
||||
}
|
||||
#endif
|
||||
if (downstream_.empty()) {
|
||||
if (!ec) {
|
||||
@@ -2088,8 +2094,12 @@ void CliConnection::OnStreamRead(std::shared_ptr<IOBuf> buf) {
|
||||
void CliConnection::OnStreamWrite() {
|
||||
OnDownstreamWriteFlush();
|
||||
|
||||
/* shutdown the socket if upstream is eof and all remaining data sent */
|
||||
/* shutdown the socket if upstream/http2 stream is eof and all remaining data sent */
|
||||
#ifdef HAVE_QUICHE
|
||||
if (channel_ && (channel_->eof() || http2_stream_recv_eof_) && downstream_.empty() && !shutdown_) {
|
||||
#else
|
||||
if (channel_ && channel_->eof() && downstream_.empty() && !shutdown_) {
|
||||
#endif
|
||||
VLOG(2) << "Connection (client) " << connection_id() << " last data sent: shutting down";
|
||||
shutdown_ = true;
|
||||
asio::error_code ec;
|
||||
|
||||
@@ -179,6 +179,9 @@ class CliConnection : public gurl_base::RefCountedThreadSafe<CliConnection>,
|
||||
StreamId stream_id_ = 0;
|
||||
DataFrameSource* data_frame_ = nullptr;
|
||||
|
||||
/// flag to mark stream is eof (recv side)
|
||||
bool http2_stream_recv_eof_ = false;
|
||||
|
||||
public:
|
||||
StreamId blocked_stream_ = 0;
|
||||
#endif // HAVE_QUICHE
|
||||
|
||||
@@ -353,18 +353,15 @@ bool ServerConnection::OnEndHeadersForStream(http2::adapter::Http2StreamId strea
|
||||
padding_support_ = false;
|
||||
}
|
||||
|
||||
// we're done
|
||||
request_map_.clear();
|
||||
|
||||
SetState(state_stream);
|
||||
OnConnect();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ServerConnection::OnEndStream(StreamId stream_id) {
|
||||
if (stream_id == stream_id_) {
|
||||
data_frame_ = nullptr;
|
||||
stream_id_ = 0;
|
||||
adapter_->SubmitGoAway(0, http2::adapter::Http2ErrorCode::HTTP2_NO_ERROR, ""sv);
|
||||
DCHECK(adapter_->want_write());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -389,16 +386,19 @@ void ServerConnection::OnConnectionError(ConnectionError error) {
|
||||
}
|
||||
|
||||
bool ServerConnection::OnFrameHeader(StreamId stream_id, size_t /*length*/, uint8_t /*type*/, uint8_t /*flags*/) {
|
||||
// we begin with new stream
|
||||
if (!stream_id_) {
|
||||
stream_id_ = stream_id;
|
||||
}
|
||||
if (stream_id && stream_id != stream_id_) {
|
||||
LOG(INFO) << "Connection (server) " << connection_id() << " refused new stream: " << stream_id;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ServerConnection::OnBeginHeadersForStream(StreamId stream_id) {
|
||||
if (!stream_id_) {
|
||||
stream_id_ = stream_id;
|
||||
}
|
||||
if (stream_id) {
|
||||
DCHECK_EQ(stream_id, stream_id_) << "Server only support one stream";
|
||||
}
|
||||
DCHECK_EQ(stream_id, stream_id_) << "Unexpected http2 request stream: " << stream_id << " expected: " << stream_id_;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user