From d82fbe9c5c7ea407dcd188d74cbdc3b61289b072 Mon Sep 17 00:00:00 2001 From: "github-action[bot]" Date: Tue, 29 Oct 2024 19:36:56 +0100 Subject: [PATCH] Update On Tue Oct 29 19:36:56 CET 2024 --- .github/update.log | 1 + clash-nyanpasu/backend/Cargo.lock | 16 +- clash-nyanpasu/frontend/nyanpasu/package.json | 6 +- clash-nyanpasu/manifest/version.json | 4 +- clash-nyanpasu/package.json | 8 +- clash-nyanpasu/pnpm-lock.yaml | 307 +++++++++--------- clash-nyanpasu/scripts/package.json | 2 +- .../src/components/base/base-page.tsx | 4 +- .../src/components/layout/use-custom-theme.ts | 1 + clash-verge-rev/src/hooks/use-log-data.ts | 1 - clash-verge-rev/src/pages/connections.tsx | 5 +- clash-verge-rev/src/pages/logs.tsx | 28 +- clash-verge-rev/src/pages/rules.tsx | 4 +- clash-verge-rev/src/services/states.ts | 2 +- lede/package/kernel/linux/modules/video.mk | 3 +- .../package/lean/ddns-scripts_aliyun/Makefile | 5 +- .../lean/ddns-scripts_aliyun/aliyun.com.json | 9 + .../package/lean/ddns-scripts_dnspod/Makefile | 6 +- .../lean/ddns-scripts_dnspod/dnspod.cn.json | 9 + .../lean/ddns-scripts_dnspod/dnspod.com.json | 9 + .../package/network/services/hostapd/Makefile | 24 +- openwrt-passwall/luci-app-passwall/Makefile | 2 +- .../root/usr/share/passwall/app.sh | 4 +- shadowsocks-rust/Cargo.lock | 16 +- .../crates/shadowsocks-service/Cargo.toml | 2 +- shadowsocksx-ng/.github/workflows/feature.yml | 2 + shadowsocksx-ng/.github/workflows/release.yml | 2 + .../ShadowsocksX-NG/AppDelegate.swift | 47 +-- shadowsocksx-ng/ShadowsocksX-NG/Info.plist | 2 + shadowsocksx-ng/ShadowsocksX-NG/Utils.m | 144 ++++++-- small/luci-app-mihomo/Makefile | 2 +- small/luci-app-passwall/Makefile | 2 +- .../root/usr/share/passwall/app.sh | 4 +- .../luci-app-ssr-plus/root/usr/bin/ssr-rules | 1 - .../root/usr/share/shadowsocksr/update.lua | 2 +- small/mihomo/Makefile | 2 +- small/mihomo/files/mihomo.init | 30 +- v2rayng/.github/workflows/build.yml | 17 +- v2rayng/V2rayNG/app/build.gradle.kts | 2 +- .../V2rayNG/app/src/main/AndroidManifest.xml | 6 +- .../{ProfileItem.kt => ProfileLiteItem.kt} | 2 +- .../kotlin/com/v2ray/ang/dto/ServersCache.kt | 2 +- .../com/v2ray/ang/util/AngConfigManager.kt | 3 +- .../kotlin/com/v2ray/ang/util/MmkvManager.kt | 8 +- .../com/v2ray/ang/viewmodel/MainViewModel.kt | 6 +- .../app/src/main/res/values-ru/strings.xml | 3 +- yass/src/cli/cli_connection.cpp | 30 +- yass/src/cli/cli_connection.hpp | 3 + yass/src/server/server_connection.cpp | 24 +- 49 files changed, 489 insertions(+), 335 deletions(-) create mode 100644 lede/package/lean/ddns-scripts_aliyun/aliyun.com.json create mode 100644 lede/package/lean/ddns-scripts_dnspod/dnspod.cn.json create mode 100644 lede/package/lean/ddns-scripts_dnspod/dnspod.com.json rename v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/{ProfileItem.kt => ProfileLiteItem.kt} (86%) diff --git a/.github/update.log b/.github/update.log index a8d13708b4..c89bcb6268 100644 --- a/.github/update.log +++ b/.github/update.log @@ -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 diff --git a/clash-nyanpasu/backend/Cargo.lock b/clash-nyanpasu/backend/Cargo.lock index 8be73f473b..e672b8e9b8 100644 --- a/clash-nyanpasu/backend/Cargo.lock +++ b/clash-nyanpasu/backend/Cargo.lock @@ -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]] diff --git a/clash-nyanpasu/frontend/nyanpasu/package.json b/clash-nyanpasu/frontend/nyanpasu/package.json index a04c01afc8..201425a826 100644 --- a/clash-nyanpasu/frontend/nyanpasu/package.json +++ b/clash-nyanpasu/frontend/nyanpasu/package.json @@ -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", diff --git a/clash-nyanpasu/manifest/version.json b/clash-nyanpasu/manifest/version.json index 19347c3a01..e7cf18a26d 100644 --- a/clash-nyanpasu/manifest/version.json +++ b/clash-nyanpasu/manifest/version.json @@ -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" } diff --git a/clash-nyanpasu/package.json b/clash-nyanpasu/package.json index 75c458453c..2bedfd9bb6 100644 --- a/clash-nyanpasu/package.json +++ b/clash-nyanpasu/package.json @@ -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", diff --git a/clash-nyanpasu/pnpm-lock.yaml b/clash-nyanpasu/pnpm-lock.yaml index cce518491e..8ad576a608 100644 --- a/clash-nyanpasu/pnpm-lock.yaml +++ b/clash-nyanpasu/pnpm-lock.yaml @@ -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 diff --git a/clash-nyanpasu/scripts/package.json b/clash-nyanpasu/scripts/package.json index 267c684acd..062dcbcfcc 100644 --- a/clash-nyanpasu/scripts/package.json +++ b/clash-nyanpasu/scripts/package.json @@ -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", diff --git a/clash-verge-rev/src/components/base/base-page.tsx b/clash-verge-rev/src/components/base/base-page.tsx index 6e99dec1ed..b1f92e2c6a 100644 --- a/clash-verge-rev/src/components/base/base-page.tsx +++ b/clash-verge-rev/src/components/base/base-page.tsx @@ -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) => { const { title, header, contentStyle, full, children } = props; - const { theme } = useCustomTheme(); + const theme = useTheme(); const isDark = theme.palette.mode === "dark"; diff --git a/clash-verge-rev/src/components/layout/use-custom-theme.ts b/clash-verge-rev/src/components/layout/use-custom-theme.ts index 4d2ca52b11..adb313a13f 100644 --- a/clash-verge-rev/src/components/layout/use-custom-theme.ts +++ b/clash-verge-rev/src/components/layout/use-custom-theme.ts @@ -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(); /** diff --git a/clash-verge-rev/src/hooks/use-log-data.ts b/clash-verge-rev/src/hooks/use-log-data.ts index 4debdcc0ed..98cfb5b635 100644 --- a/clash-verge-rev/src/hooks/use-log-data.ts +++ b/clash-verge-rev/src/hooks/use-log-data.ts @@ -11,7 +11,6 @@ export const useLogData = () => { const { clashInfo } = useClashInfo(); const [enableLog] = useEnableLog(); - !enableLog || !clashInfo; return useSWRSubscription( enableLog && clashInfo ? "getClashLog" : null, diff --git a/clash-verge-rev/src/pages/connections.tsx b/clash-verge-rev/src/pages/connections.tsx index 3f28a21613..474fee690f 100644 --- a/clash-verge-rev/src/pages/connections.tsx +++ b/clash-verge-rev/src/pages/connections.tsx @@ -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"); diff --git a/clash-verge-rev/src/pages/logs.tsx b/clash-verge-rev/src/pages/logs.tsx index 6fb6b9563a..71447cefd9 100644 --- a/clash-verge-rev/src/pages/logs.tsx +++ b/clash-verge-rev/src/pages/logs.tsx @@ -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 = () => { )} - + {enableLog === true && ( + + )} } > @@ -94,7 +98,7 @@ const LogPage = () => { bgcolor: isDark ? "#282a36" : "#ffffff", }} > - {filterLogs.length > 0 ? ( + {filterLogs.length > 0 && enableLog === true ? ( { 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); diff --git a/clash-verge-rev/src/services/states.ts b/clash-verge-rev/src/services/states.ts index 4ea46298a3..7f4c3ba0de 100644 --- a/clash-verge-rev/src/services/states.ts +++ b/clash-verge-rev/src/services/states.ts @@ -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"; diff --git a/lede/package/kernel/linux/modules/video.mk b/lede/package/kernel/linux/modules/video.mk index 2d45aa9ce9..a31f85b944 100644 --- a/lede/package/kernel/linux/modules/video.mk +++ b/lede/package/kernel/linux/modules/video.mk @@ -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 \ diff --git a/lede/package/lean/ddns-scripts_aliyun/Makefile b/lede/package/lean/ddns-scripts_aliyun/Makefile index 97e5880c07..eac91d740e 100644 --- a/lede/package/lean/ddns-scripts_aliyun/Makefile +++ b/lede/package/lean/ddns-scripts_aliyun/Makefile @@ -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 diff --git a/lede/package/lean/ddns-scripts_aliyun/aliyun.com.json b/lede/package/lean/ddns-scripts_aliyun/aliyun.com.json new file mode 100644 index 0000000000..c1ad8a5545 --- /dev/null +++ b/lede/package/lean/ddns-scripts_aliyun/aliyun.com.json @@ -0,0 +1,9 @@ +{ + "name": "aliyun.com", + "ipv4": { + "url": "update_aliyun_com.sh" + }, + "ipv6": { + "url": "update_aliyun_com.sh" + } +} diff --git a/lede/package/lean/ddns-scripts_dnspod/Makefile b/lede/package/lean/ddns-scripts_dnspod/Makefile index 61cca9109c..60a0c3bc73 100644 --- a/lede/package/lean/ddns-scripts_dnspod/Makefile +++ b/lede/package/lean/ddns-scripts_dnspod/Makefile @@ -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 diff --git a/lede/package/lean/ddns-scripts_dnspod/dnspod.cn.json b/lede/package/lean/ddns-scripts_dnspod/dnspod.cn.json new file mode 100644 index 0000000000..aabe281509 --- /dev/null +++ b/lede/package/lean/ddns-scripts_dnspod/dnspod.cn.json @@ -0,0 +1,9 @@ +{ + "name": "dnspod.com", + "ipv4": { + "url": "update_dnspod_cn.sh" + }, + "ipv6": { + "url": "update_dnspod_cn.sh" + } +} \ No newline at end of file diff --git a/lede/package/lean/ddns-scripts_dnspod/dnspod.com.json b/lede/package/lean/ddns-scripts_dnspod/dnspod.com.json new file mode 100644 index 0000000000..899c23a639 --- /dev/null +++ b/lede/package/lean/ddns-scripts_dnspod/dnspod.com.json @@ -0,0 +1,9 @@ +{ + "name": "dnspod.com", + "ipv4": { + "url": "update_dnspod_com.sh" + }, + "ipv6": { + "url": "update_dnspod_com.sh" + } +} diff --git a/lede/package/network/services/hostapd/Makefile b/lede/package/network/services/hostapd/Makefile index d91ba3dbef..582118c0f5 100644 --- a/lede/package/network/services/hostapd/Makefile +++ b/lede/package/network/services/hostapd/Makefile @@ -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 diff --git a/openwrt-passwall/luci-app-passwall/Makefile b/openwrt-passwall/luci-app-passwall/Makefile index e4be5ccb0d..3a668e2ffd 100644 --- a/openwrt-passwall/luci-app-passwall/Makefile +++ b/openwrt-passwall/luci-app-passwall/Makefile @@ -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:= \ diff --git a/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/app.sh b/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/app.sh index 34a4e10559..bc676729eb 100755 --- a/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/app.sh +++ b/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/app.sh @@ -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") diff --git a/shadowsocks-rust/Cargo.lock b/shadowsocks-rust/Cargo.lock index 0f135e8eca..d460bb1a2d 100644 --- a/shadowsocks-rust/Cargo.lock +++ b/shadowsocks-rust/Cargo.lock @@ -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", diff --git a/shadowsocks-rust/crates/shadowsocks-service/Cargo.toml b/shadowsocks-rust/crates/shadowsocks-service/Cargo.toml index 9b1771b3c2..4da71815af 100644 --- a/shadowsocks-rust/crates/shadowsocks-service/Cargo.toml +++ b/shadowsocks-rust/crates/shadowsocks-service/Cargo.toml @@ -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 } diff --git a/shadowsocksx-ng/.github/workflows/feature.yml b/shadowsocksx-ng/.github/workflows/feature.yml index 563b597e69..75c92f552c 100644 --- a/shadowsocksx-ng/.github/workflows/feature.yml +++ b/shadowsocksx-ng/.github/workflows/feature.yml @@ -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 diff --git a/shadowsocksx-ng/.github/workflows/release.yml b/shadowsocksx-ng/.github/workflows/release.yml index 282d72c81e..b1fb13e505 100644 --- a/shadowsocksx-ng/.github/workflows/release.yml +++ b/shadowsocksx-ng/.github/workflows/release.yml @@ -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 diff --git a/shadowsocksx-ng/ShadowsocksX-NG/AppDelegate.swift b/shadowsocksx-ng/ShadowsocksX-NG/AppDelegate.swift index 015db581d7..09d42bfbce 100755 --- a/shadowsocksx-ng/ShadowsocksX-NG/AppDelegate.swift +++ b/shadowsocksx-ng/ShadowsocksX-NG/AppDelegate.swift @@ -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 + ) } } } diff --git a/shadowsocksx-ng/ShadowsocksX-NG/Info.plist b/shadowsocksx-ng/ShadowsocksX-NG/Info.plist index 5fc2d77881..737a3a285d 100644 --- a/shadowsocksx-ng/ShadowsocksX-NG/Info.plist +++ b/shadowsocksx-ng/ShadowsocksX-NG/Info.plist @@ -49,5 +49,7 @@ MainMenu NSPrincipalClass SWBApplication + NSScreenCaptureUsageDescription + ShadowsocksX-NG needs Screen Recording permission to scan QR codes on your screen diff --git a/shadowsocksx-ng/ShadowsocksX-NG/Utils.m b/shadowsocksx-ng/ShadowsocksX-NG/Utils.m index 20f0fb7672..0cef8ffa00 100644 --- a/shadowsocksx-ng/ShadowsocksX-NG/Utils.m +++ b/shadowsocksx-ng/ShadowsocksX-NG/Utils.m @@ -10,71 +10,153 @@ #import #import -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) { diff --git a/small/luci-app-mihomo/Makefile b/small/luci-app-mihomo/Makefile index 20fd6c8899..8e91bda1c3 100644 --- a/small/luci-app-mihomo/Makefile +++ b/small/luci-app-mihomo/Makefile @@ -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 diff --git a/small/luci-app-passwall/Makefile b/small/luci-app-passwall/Makefile index e4be5ccb0d..3a668e2ffd 100644 --- a/small/luci-app-passwall/Makefile +++ b/small/luci-app-passwall/Makefile @@ -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:= \ diff --git a/small/luci-app-passwall/root/usr/share/passwall/app.sh b/small/luci-app-passwall/root/usr/share/passwall/app.sh index 34a4e10559..bc676729eb 100755 --- a/small/luci-app-passwall/root/usr/share/passwall/app.sh +++ b/small/luci-app-passwall/root/usr/share/passwall/app.sh @@ -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") diff --git a/small/luci-app-ssr-plus/root/usr/bin/ssr-rules b/small/luci-app-ssr-plus/root/usr/bin/ssr-rules index e0e0e8f5e0..547d910ae7 100755 --- a/small/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/small/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -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 diff --git a/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index e49825efa0..7a179b87a6 100755 --- a/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -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 = "^[!\\[@]+" diff --git a/small/mihomo/Makefile b/small/mihomo/Makefile index 30f7898995..a540896dcf 100644 --- a/small/mihomo/Makefile +++ b/small/mihomo/Makefile @@ -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 diff --git a/small/mihomo/files/mihomo.init b/small/mihomo/files/mihomo.init index 2a8e1913c8..e06f72e406 100644 --- a/small/mihomo/files/mihomo.init +++ b/small/mihomo/files/mihomo.init @@ -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 diff --git a/v2rayng/.github/workflows/build.yml b/v2rayng/.github/workflows/build.yml index 580ae95e24..777d9fad72 100644 --- a/v2rayng/.github/workflows/build.yml +++ b/v2rayng/.github/workflows/build.yml @@ -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: | diff --git a/v2rayng/V2rayNG/app/build.gradle.kts b/v2rayng/V2rayNG/app/build.gradle.kts index f01fd930e4..4c535f95bb 100644 --- a/v2rayng/V2rayNG/app/build.gradle.kts +++ b/v2rayng/V2rayNG/app/build.gradle.kts @@ -10,7 +10,7 @@ android { defaultConfig { applicationId = "com.v2ray.ang" minSdk = 21 - targetSdk = 34 + targetSdk = 35 versionCode = 603 versionName = "1.9.9" multiDexEnabled = true diff --git a/v2rayng/V2rayNG/app/src/main/AndroidManifest.xml b/v2rayng/V2rayNG/app/src/main/AndroidManifest.xml index af02d4b660..c2cde774c9 100644 --- a/v2rayng/V2rayNG/app/src/main/AndroidManifest.xml +++ b/v2rayng/V2rayNG/app/src/main/AndroidManifest.xml @@ -224,8 +224,7 @@ + android:icon="@mipmap/ic_launcher"> @@ -234,7 +233,8 @@ + android:process=":RunSoLibV2RayDaemon" + tools:ignore="ExportedReceiver"> diff --git a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ProfileItem.kt b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ProfileLiteItem.kt similarity index 86% rename from v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ProfileItem.kt rename to v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ProfileLiteItem.kt index a906289cdd..12995abd76 100644 --- a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ProfileItem.kt +++ b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ProfileLiteItem.kt @@ -1,6 +1,6 @@ package com.v2ray.ang.dto -data class ProfileItem( +data class ProfileLiteItem( val configType: EConfigType, var subscriptionId: String = "", var remarks: String = "", diff --git a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServersCache.kt b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServersCache.kt index 7ea3e6a300..13d4117f74 100644 --- a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServersCache.kt +++ b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServersCache.kt @@ -2,5 +2,5 @@ package com.v2ray.ang.dto data class ServersCache( val guid: String, - val profile: ProfileItem + val profile: ProfileLiteItem ) \ No newline at end of file diff --git a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt index ab4a4b9e00..5d26995456 100644 --- a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt +++ b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt @@ -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()) { diff --git a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt index 4787ffee35..6083520caf 100644 --- a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt +++ b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt @@ -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, diff --git a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt index 0fafde1c85..6d003f3c38 100644 --- a/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt +++ b/v2rayng/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt @@ -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, diff --git a/v2rayng/V2rayNG/app/src/main/res/values-ru/strings.xml b/v2rayng/V2rayNG/app/src/main/res/values-ru/strings.xml index 261926e698..27b6d991f2 100644 --- a/v2rayng/V2rayNG/app/src/main/res/values-ru/strings.xml +++ b/v2rayng/V2rayNG/app/src/main/res/values-ru/strings.xml @@ -97,7 +97,7 @@ Данные В буфере обмена нет данных Неправильный URL - Please do not use the insecure HTTP protocol subscription address + Не используйте небезопасный HTTP-протокол в адресе подписки Убедитесь, что входящий порт соответствует настройкам Профиль повреждён Узел (SNI) (необязательно) @@ -316,6 +316,7 @@ Белый список Китая Чёрный список Китая Общие + Белый список Ирана diff --git a/yass/src/cli/cli_connection.cpp b/yass/src/cli/cli_connection.cpp index 58192710a5..e3e1c2a0d2 100644 --- a/yass/src/cli/cli_connection.cpp +++ b/yass/src/cli/cli_connection.cpp @@ -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 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; diff --git a/yass/src/cli/cli_connection.hpp b/yass/src/cli/cli_connection.hpp index 3d326a6d0e..a747076b0a 100644 --- a/yass/src/cli/cli_connection.hpp +++ b/yass/src/cli/cli_connection.hpp @@ -179,6 +179,9 @@ class CliConnection : public gurl_base::RefCountedThreadSafe, 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 diff --git a/yass/src/server/server_connection.cpp b/yass/src/server/server_connection.cpp index e53c465c80..357317f030 100644 --- a/yass/src/server/server_connection.cpp +++ b/yass/src/server/server_connection.cpp @@ -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; }