diff --git a/.github/update.log b/.github/update.log index 6ed75aa4c3..23c5803a55 100644 --- a/.github/update.log +++ b/.github/update.log @@ -708,3 +708,4 @@ Update On Tue Jul 16 20:32:41 CEST 2024 Update On Wed Jul 17 20:32:28 CEST 2024 Update On Thu Jul 18 20:31:52 CEST 2024 Update On Fri Jul 19 20:31:21 CEST 2024 +Update On Sat Jul 20 20:32:08 CEST 2024 diff --git a/clash-nyanpasu/backend/Cargo.lock b/clash-nyanpasu/backend/Cargo.lock index ed8339865f..1975f8393d 100644 --- a/clash-nyanpasu/backend/Cargo.lock +++ b/clash-nyanpasu/backend/Cargo.lock @@ -1557,9 +1557,9 @@ dependencies = [ [[package]] name = "document-features" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" dependencies = [ "litrs", ] @@ -1779,9 +1779,9 @@ dependencies = [ [[package]] name = "fast_image_resize" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a06940fe3bab6e93dc275bb8a67cc833b70f4078124e7e7f7352f5c8470e63" +checksum = "81cd2f79218cdfe398519739df6872a6f5747ca08e1f4fd3179f4b053a0b05f9" dependencies = [ "cfg-if", "document-features", diff --git a/clash-nyanpasu/frontend/nyanpasu/package.json b/clash-nyanpasu/frontend/nyanpasu/package.json index 13ce4e8f1c..eeda7e5946 100644 --- a/clash-nyanpasu/frontend/nyanpasu/package.json +++ b/clash-nyanpasu/frontend/nyanpasu/package.json @@ -12,7 +12,7 @@ "@dnd-kit/core": "6.1.0", "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", - "@emotion/styled": "11.12.0", + "@emotion/styled": "11.13.0", "@generouted/react-router": "1.19.6", "@juggle/resize-observer": "3.4.0", "@material/material-color-utilities": "0.3.0", @@ -47,7 +47,7 @@ }, "devDependencies": { "@emotion/babel-plugin": "11.12.0", - "@emotion/react": "11.12.0", + "@emotion/react": "11.13.0", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@typescript-eslint/eslint-plugin": "7.16.0", diff --git a/clash-nyanpasu/manifest/version.json b/clash-nyanpasu/manifest/version.json index 269fcb10b9..01aa61c9f8 100644 --- a/clash-nyanpasu/manifest/version.json +++ b/clash-nyanpasu/manifest/version.json @@ -2,7 +2,7 @@ "manifest_version": 1, "latest": { "mihomo": "v1.18.6", - "mihomo_alpha": "alpha-9e3589d", + "mihomo_alpha": "alpha-28794c6", "clash_rs": "v0.1.20", "clash_premium": "2023-09-05-gdcc8d87" }, @@ -36,5 +36,5 @@ "darwin-x64": "clash-darwin-amd64-n{}.gz" } }, - "updated_at": "2024-07-15T22:20:13.743Z" + "updated_at": "2024-07-19T22:20:42.715Z" } diff --git a/clash-nyanpasu/package.json b/clash-nyanpasu/package.json index 6066a5d660..3d9e3290a2 100644 --- a/clash-nyanpasu/package.json +++ b/clash-nyanpasu/package.json @@ -111,7 +111,7 @@ }, "packageManager": "pnpm@9.5.0", "engines": { - "node": "22.5.0" + "node": "22.5.1" }, "pnpm": { "overrides": { diff --git a/clash-nyanpasu/pnpm-lock.yaml b/clash-nyanpasu/pnpm-lock.yaml index 4963e3ab1f..d5dace43d1 100644 --- a/clash-nyanpasu/pnpm-lock.yaml +++ b/clash-nyanpasu/pnpm-lock.yaml @@ -174,8 +174,8 @@ importers: specifier: 3.2.2 version: 3.2.2(react@19.0.0-rc-df783f9ea1-20240708) '@emotion/styled': - specifier: 11.12.0 - version: 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + specifier: 11.13.0 + version: 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@generouted/react-router': specifier: 1.19.6 version: 1.19.6(react-router-dom@6.25.1(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(vite@5.3.4(@types/node@20.14.11)(less@4.2.0)(sass@1.77.8)(stylus@0.62.0)) @@ -187,13 +187,13 @@ importers: version: 0.3.0 '@mui/icons-material': specifier: 5.16.4 - version: 5.16.4(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + version: 5.16.4(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@mui/lab': specifier: 5.0.0-alpha.172 - version: 5.0.0-alpha.172(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + version: 5.0.0-alpha.172(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@mui/material': specifier: 5.16.4 - version: 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + version: 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@nyanpasu/interface': specifier: workspace:^ version: link:../interface @@ -229,13 +229,13 @@ importers: version: 2.9.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) material-react-table: specifier: 2.13.0 - version: 2.13.0(qrdsvnr3766bncjiksu5aoozja) + version: 2.13.0(4ynhcepbjgqbvzf6cwzaqs6d4a) monaco-editor: specifier: 0.50.0 version: 0.50.0 mui-color-input: specifier: 3.0.0 - version: 3.0.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + version: 3.0.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) react: specifier: npm:react@rc version: 19.0.0-rc-df783f9ea1-20240708 @@ -250,7 +250,7 @@ importers: version: 1.6.5(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708) react-hook-form-mui: specifier: 7.0.1 - version: 7.0.1(uhe7acpi6azaskl56wvwokmuri) + version: 7.0.1(kat3osdwizfjcujladrzqoubpe) react-i18next: specifier: 15.0.0 version: 15.0.0(i18next@23.12.2)(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708) @@ -274,8 +274,8 @@ importers: specifier: 11.12.0 version: 11.12.0 '@emotion/react': - specifier: 11.12.0 - version: 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + specifier: 11.13.0 + version: 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@types/react': specifier: npm:types-react@rc version: types-react@19.0.0-rc.1 @@ -329,13 +329,13 @@ importers: version: 0.3.0 '@mui/icons-material': specifier: 5.16.4 - version: 5.16.4(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + version: 5.16.4(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@mui/lab': specifier: 5.0.0-alpha.172 - version: 5.0.0-alpha.172(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + version: 5.0.0-alpha.172(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@mui/material': specifier: 5.16.4 - version: 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + version: 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@radix-ui/react-dialog': specifier: 1.1.1 version: 1.1.1(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) @@ -695,26 +695,23 @@ packages: '@emotion/babel-plugin@11.12.0': resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} - '@emotion/cache@11.11.0': - resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} - '@emotion/cache@11.12.0': resolution: {integrity: sha512-VFo/F1PthkxHwWDCcXkidyXw70eAkdiNiCzthMI2rRQjFiTvmXt8UDlv/VE1DTsd4CIEY2wQf5AnL2QiPgphlw==} + '@emotion/cache@11.13.0': + resolution: {integrity: sha512-hPV345J/tH0Cwk2wnU/3PBzORQ9HeX+kQSbwI+jslzpRCHE6fSGTohswksA/Ensr8znPzwfzKZCmAM9Lmlhp7g==} + '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} '@emotion/is-prop-valid@1.3.0': resolution: {integrity: sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==} - '@emotion/memoize@0.8.1': - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - '@emotion/memoize@0.9.0': resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - '@emotion/react@11.12.0': - resolution: {integrity: sha512-kTktYMpG8mHjLi8u6XOTMfDmQvUve/un2ZVj4khcU2KTn17ElMV8BK6QFzT8V/v2QW8013rf07Yc0ayQL3tp3w==} + '@emotion/react@11.13.0': + resolution: {integrity: sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ==} peerDependencies: '@types/react': '*' react: npm:react@rc @@ -725,14 +722,17 @@ packages: '@emotion/serialize@1.2.0': resolution: {integrity: sha512-X5UWpZAhGGp5LOn7OAI9k9JjRtz7nSFhZypatADcuEd/0bECZ0DzVjPdL8hljTrAku8+TjFvWIYHMOCO/0v/Ng==} - '@emotion/sheet@1.2.2': - resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} + '@emotion/serialize@1.3.0': + resolution: {integrity: sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==} '@emotion/sheet@1.3.0': resolution: {integrity: sha512-vOPwbKw8fj/oSEa7CWqiKCvLZ1AeLIAApmboGP34xUyUjXalFyf+tMtgMDqP7VMevLPhUa+YWJS46cQUA+tr9A==} - '@emotion/styled@11.12.0': - resolution: {integrity: sha512-2l60kuKm8OKbyFYlVutpwFGoeIoftJAHX4udQwpaO4HNoGyvxFLXiEU56/UGCyrwxr76C93eOdVnGewZeC7AEw==} + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/styled@11.13.0': + resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 '@types/react': '*' @@ -744,19 +744,16 @@ packages: '@emotion/unitless@0.9.0': resolution: {integrity: sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1': - resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} peerDependencies: react: npm:react@rc - '@emotion/utils@1.2.1': - resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} - '@emotion/utils@1.3.0': resolution: {integrity: sha512-+M7u4EaX5t4bCunKTltAdGis3NFHQniikLVEQ+rPQccsX/xV4v5Etwg12paioZ9DsO+CTvimtmnjZbW85kbF8Q==} - '@emotion/weak-memoize@0.3.1': - resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} + '@emotion/utils@1.4.0': + resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==} '@emotion/weak-memoize@0.4.0': resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} @@ -6423,14 +6420,6 @@ snapshots: source-map: 0.5.7 stylis: 4.2.0 - '@emotion/cache@11.11.0': - dependencies: - '@emotion/memoize': 0.8.1 - '@emotion/sheet': 1.2.2 - '@emotion/utils': 1.2.1 - '@emotion/weak-memoize': 0.3.1 - stylis: 4.2.0 - '@emotion/cache@11.12.0': dependencies: '@emotion/memoize': 0.9.0 @@ -6439,24 +6428,30 @@ snapshots: '@emotion/weak-memoize': 0.4.0 stylis: 4.2.0 + '@emotion/cache@11.13.0': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.0 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + '@emotion/hash@0.9.2': {} '@emotion/is-prop-valid@1.3.0': dependencies: '@emotion/memoize': 0.9.0 - '@emotion/memoize@0.8.1': {} - '@emotion/memoize@0.9.0': {} - '@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': + '@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': dependencies: '@babel/runtime': 7.24.8 '@emotion/babel-plugin': 11.12.0 - '@emotion/cache': 11.12.0 - '@emotion/serialize': 1.2.0 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.0.0-rc-df783f9ea1-20240708) - '@emotion/utils': 1.3.0 + '@emotion/cache': 11.13.0 + '@emotion/serialize': 1.3.0 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@19.0.0-rc-df783f9ea1-20240708) + '@emotion/utils': 1.4.0 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 react: 19.0.0-rc-df783f9ea1-20240708 @@ -6471,34 +6466,40 @@ snapshots: '@emotion/utils': 1.3.0 csstype: 3.1.3 - '@emotion/sheet@1.2.2': {} + '@emotion/serialize@1.3.0': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.9.0 + '@emotion/utils': 1.4.0 + csstype: 3.1.3 '@emotion/sheet@1.3.0': {} - '@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': dependencies: '@babel/runtime': 7.24.8 '@emotion/babel-plugin': 11.12.0 '@emotion/is-prop-valid': 1.3.0 - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/serialize': 1.2.0 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.0.0-rc-df783f9ea1-20240708) - '@emotion/utils': 1.3.0 + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/serialize': 1.3.0 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@19.0.0-rc-df783f9ea1-20240708) + '@emotion/utils': 1.4.0 react: 19.0.0-rc-df783f9ea1-20240708 optionalDependencies: '@types/react': types-react@19.0.0-rc.1 '@emotion/unitless@0.9.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.0.0-rc-df783f9ea1-20240708)': + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@19.0.0-rc-df783f9ea1-20240708)': dependencies: react: 19.0.0-rc-df783f9ea1-20240708 - '@emotion/utils@1.2.1': {} - '@emotion/utils@1.3.0': {} - '@emotion/weak-memoize@0.3.1': {} + '@emotion/utils@1.4.0': {} '@emotion/weak-memoize@0.4.0': {} @@ -6753,20 +6754,20 @@ snapshots: '@mui/core-downloads-tracker@5.16.4': {} - '@mui/icons-material@5.16.4(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': + '@mui/icons-material@5.16.4(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': dependencies: '@babel/runtime': 7.24.7 - '@mui/material': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/material': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) react: 19.0.0-rc-df783f9ea1-20240708 optionalDependencies: '@types/react': types-react@19.0.0-rc.1 - '@mui/lab@5.0.0-alpha.172(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': + '@mui/lab@5.0.0-alpha.172(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': dependencies: '@babel/runtime': 7.24.7 '@mui/base': 5.0.0-beta.40(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/material': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/system': 5.16.1(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/material': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/system': 5.16.1(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@mui/types': 7.2.15(types-react@19.0.0-rc.1) '@mui/utils': 5.16.1(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) clsx: 2.1.1 @@ -6774,15 +6775,15 @@ snapshots: react: 19.0.0-rc-df783f9ea1-20240708 react-dom: 19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708) optionalDependencies: - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@types/react': types-react@19.0.0-rc.1 - '@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': + '@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': dependencies: '@babel/runtime': 7.24.7 '@mui/core-downloads-tracker': 5.16.4 - '@mui/system': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/system': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@mui/types': 7.2.15(types-react@19.0.0-rc.1) '@mui/utils': 5.16.4(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@popperjs/core': 2.11.8 @@ -6795,8 +6796,8 @@ snapshots: react-is: 18.3.1 react-transition-group: 4.4.5(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708) optionalDependencies: - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@types/react': types-react@19.0.0-rc.1 '@mui/private-theming@5.16.1(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': @@ -6817,33 +6818,33 @@ snapshots: optionalDependencies: '@types/react': types-react@19.0.0-rc.1 - '@mui/styled-engine@5.16.1(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)': + '@mui/styled-engine@5.16.1(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)': dependencies: '@babel/runtime': 7.24.8 - '@emotion/cache': 11.11.0 + '@emotion/cache': 11.12.0 csstype: 3.1.3 prop-types: 15.8.1 react: 19.0.0-rc-df783f9ea1-20240708 optionalDependencies: - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/styled-engine@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)': + '@mui/styled-engine@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)': dependencies: '@babel/runtime': 7.24.8 - '@emotion/cache': 11.11.0 + '@emotion/cache': 11.12.0 csstype: 3.1.3 prop-types: 15.8.1 react: 19.0.0-rc-df783f9ea1-20240708 optionalDependencies: - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/system@5.16.1(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': + '@mui/system@5.16.1(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': dependencies: '@babel/runtime': 7.24.8 '@mui/private-theming': 5.16.1(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/styled-engine': 5.16.1(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708) + '@mui/styled-engine': 5.16.1(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708) '@mui/types': 7.2.15(types-react@19.0.0-rc.1) '@mui/utils': 5.16.1(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) clsx: 2.1.1 @@ -6851,15 +6852,15 @@ snapshots: prop-types: 15.8.1 react: 19.0.0-rc-df783f9ea1-20240708 optionalDependencies: - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@types/react': types-react@19.0.0-rc.1 - '@mui/system@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': + '@mui/system@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': dependencies: '@babel/runtime': 7.24.8 '@mui/private-theming': 5.16.4(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/styled-engine': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708) + '@mui/styled-engine': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708) '@mui/types': 7.2.15(types-react@19.0.0-rc.1) '@mui/utils': 5.16.4(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) clsx: 2.1.1 @@ -6867,8 +6868,8 @@ snapshots: prop-types: 15.8.1 react: 19.0.0-rc-df783f9ea1-20240708 optionalDependencies: - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@types/react': types-react@19.0.0-rc.1 '@mui/types@7.2.15(types-react@19.0.0-rc.1)': @@ -6896,12 +6897,12 @@ snapshots: optionalDependencies: '@types/react': types-react@19.0.0-rc.1 - '@mui/x-date-pickers@7.9.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(dayjs@1.11.12)(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': + '@mui/x-date-pickers@7.9.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(dayjs@1.11.12)(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1)': dependencies: '@babel/runtime': 7.24.8 '@mui/base': 5.0.0-beta.40(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/material': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/system': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/material': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/system': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@mui/utils': 5.16.4(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@types/react-transition-group': 4.4.10 clsx: 2.1.1 @@ -6910,8 +6911,8 @@ snapshots: react-dom: 19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708) react-transition-group: 4.4.5(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708) optionalDependencies: - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) dayjs: 1.11.12 transitivePeerDependencies: - '@types/react' @@ -10090,13 +10091,13 @@ snapshots: escape-string-regexp: 4.0.0 optional: true - material-react-table@2.13.0(qrdsvnr3766bncjiksu5aoozja): + material-react-table@2.13.0(4ynhcepbjgqbvzf6cwzaqs6d4a): dependencies: - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/icons-material': 5.16.4(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/material': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/x-date-pickers': 7.9.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(dayjs@1.11.12)(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/icons-material': 5.16.4(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/material': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/x-date-pickers': 7.9.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(dayjs@1.11.12)(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) '@tanstack/match-sorter-utils': 8.15.1 '@tanstack/react-table': 8.16.0(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708) '@tanstack/react-virtual': 3.3.0(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708) @@ -10384,12 +10385,12 @@ snapshots: ms@2.1.3: {} - mui-color-input@3.0.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1): + mui-color-input@3.0.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1): dependencies: '@ctrl/tinycolor': 4.1.0 - '@emotion/react': 11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@emotion/styled': 11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/material': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/react': 11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/material': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) react: 19.0.0-rc-df783f9ea1-20240708 react-dom: 19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708) optionalDependencies: @@ -10907,14 +10908,14 @@ snapshots: react: 19.0.0-rc-df783f9ea1-20240708 react-dom: 19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708) - react-hook-form-mui@7.0.1(uhe7acpi6azaskl56wvwokmuri): + react-hook-form-mui@7.0.1(kat3osdwizfjcujladrzqoubpe): dependencies: - '@mui/material': 5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/material': 5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) react: 19.0.0-rc-df783f9ea1-20240708 react-hook-form: 7.52.1(react@19.0.0-rc-df783f9ea1-20240708) optionalDependencies: - '@mui/icons-material': 5.16.4(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) - '@mui/x-date-pickers': 7.9.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.12.0(@emotion/react@11.12.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(dayjs@1.11.12)(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/icons-material': 5.16.4(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) + '@mui/x-date-pickers': 7.9.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@mui/material@5.16.4(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1))(dayjs@1.11.12)(react-dom@19.0.0-rc-df783f9ea1-20240708(react@19.0.0-rc-df783f9ea1-20240708))(react@19.0.0-rc-df783f9ea1-20240708)(types-react@19.0.0-rc.1) react-hook-form@7.52.1(react@19.0.0-rc-df783f9ea1-20240708): dependencies: diff --git a/mieru/pkg/congestion/bbr_sender.go b/mieru/pkg/congestion/bbr_sender.go index 4ac2ad87ab..2268806d69 100644 --- a/mieru/pkg/congestion/bbr_sender.go +++ b/mieru/pkg/congestion/bbr_sender.go @@ -16,6 +16,7 @@ package congestion import ( + mrand "math/rand" "time" "github.com/enfein/mieru/pkg/mathext" @@ -57,7 +58,7 @@ const ( ) const ( - maxDatagramSize = 1280 + maxDatagramSize = 1500 // The minimum CWND to ensure delayed acks don't reduce bandwidth measurements. // Does not inflate the pacing rate. @@ -120,7 +121,8 @@ type LostPacketInfo struct { type BBRSender struct { rttStats *RTTStats - // unackedPackets *QuicUnackedPacketMap + // Replaces unacked_packets_->bytes_in_flight(). + bytesInFlight int64 // Current BBR running mode. mode bbrMode @@ -323,8 +325,10 @@ func (b *BBRSender) CanSend(bytesInFlight int64) bool { } func (b *BBRSender) PacingRate(bytesInFlight int64) int64 { - // Implementation here - return 0 + if b.pacingRate == 0 { + return int64(highGain * float64(bandwidthFromBytesAndTimeDelta(b.initialCongestionWindow, b.GetMinRTT()))) + } + return b.pacingRate } func (b *BBRSender) BandwidthEstimate() int64 { @@ -347,16 +351,6 @@ func (b *BBRSender) GetSlowStartThreshold() int64 { return 0 } -func (b *BBRSender) OnApplicationLimited(bytesInFlight int64) { - if bytesInFlight >= b.GetCongestionWindow() { - // Not application limited. - return - } - - b.appLimitedSinceLastProbeRTT = true - b.sampler.OnAppLimited() -} - func (b *BBRSender) NumStartupRTTs() int64 { return b.numStartupRTTs } @@ -391,6 +385,75 @@ func (b *BBRSender) ProbeRTTCongestionWindow() int64 { return b.minCongestionWindow } +func (b *BBRSender) EnterStartupMode() { + b.mode = modeStartUp + b.pacingGain = highGain + b.congestionWindowGain = highGain +} + +func (b *BBRSender) EnterProbeBandwidthMode(now time.Time) { + b.mode = modeProbeBW + b.congestionWindowGain = b.congestionWindowGainConstant + + // Pick a random offset for the gain cycle out of {0, 2..7} range. 1 is + // excluded because in that case increased gain and decreased gain would not + // follow each other. + cycleOffset := mrand.Intn(gainCycleLength - 1) + if cycleOffset >= 1 { + cycleOffset++ + } + b.lastCycleStart = now + b.pacingGain = pacingGainList[cycleOffset] +} + +func (b *BBRSender) DiscardLostPackets(lostPackets []LostPacketInfo) { + for _, lost := range lostPackets { + b.sampler.OnPacketLost(lost.packetNumber) + } +} + +func (b *BBRSender) UpdateRoundTripCounter(lastAckedPacket int64) bool { + if lastAckedPacket > b.currentRoundTripEnd { + b.roundTripCount++ + b.currentRoundTripEnd = lastAckedPacket + return true + } + return false +} + +func (b *BBRSender) UpdateBandwidthAndMinRTT(now time.Time, ackedPackets []AckedPacketInfo) bool { + sampleMinRTT := infDuration + for _, acked := range ackedPackets { + bandwidthSample := b.sampler.OnPacketAcknowledged(now, acked.packetNumber) + b.lastSampleIsAppLimited = bandwidthSample.isAppLimited + if bandwidthSample.rtt != 0 { + sampleMinRTT = mathext.Min(sampleMinRTT, bandwidthSample.rtt) + } + if !bandwidthSample.isAppLimited && bandwidthSample.bandwidth > b.BandwidthEstimate() { + b.maxBandwidth.Update(bandwidthSample.bandwidth, b.roundTripCount) + } + } + + // If none of the RTT samples are valid, return immediately. + if sampleMinRTT == infDuration { + return false + } + + b.minRTTSinceLastProbeRTT = mathext.Min(b.minRTTSinceLastProbeRTT, sampleMinRTT) + minRTTExpired := b.minRTT != 0 && now.After(b.minRTTTimestamp.Add(minRTTExpiry)) + if b.minRTT <= 0 || minRTTExpired || sampleMinRTT < b.minRTT { + if b.ShouldExtendMinRTTExpiry() { + minRTTExpired = false + } else { + b.minRTT = sampleMinRTT + } + b.minRTTTimestamp = now + b.minRTTSinceLastProbeRTT = infDuration + b.appLimitedSinceLastProbeRTT = false + } + return minRTTExpired +} + func (b *BBRSender) ShouldExtendMinRTTExpiry() bool { if b.probeRTTDisabledIfAppLimited && b.appLimitedSinceLastProbeRTT { // Extend the current min RTT if we've been app limited recently. @@ -406,52 +469,160 @@ func (b *BBRSender) ShouldExtendMinRTTExpiry() bool { return false } -func (b *BBRSender) EnterStartupMode() { - b.mode = modeStartUp - b.pacingGain = highGain - b.congestionWindowGain = highGain -} - -func (b *BBRSender) EnterProbeBandwidthMode(now time.Time) { - // Implementation here -} - -func (b *BBRSender) DiscardLostPackets(lostPackets []LostPacketInfo) { - // Implementation here -} - -func (b *BBRSender) UpdateRoundTripCounter(lastAckedPacket int64) bool { - // Implementation here - return false -} - -func (b *BBRSender) UpdateBandwidthAndMinRTT(now time.Time, ackedPackets []AckedPacketInfo) bool { - // Implementation here - return false -} - func (b *BBRSender) UpdateGainCyclePhase(now time.Time, priorInFlight int64, hasLosses bool) { - // Implementation here + // In most cases, the cycle is advanced after an RTT passes. + shouldAdvanceGainCycling := now.Sub(b.lastCycleStart) > b.GetMinRTT() + + // If the pacing gain is above 1.0, the connection is trying to probe the + // bandwidth by increasing the number of bytes in flight to at least + // pacing gain * BDP. Make sure that it actually reaches the target, as long + // as there are no losses suggesting that the buffers are not able to hold + // that much. + if b.pacingGain > 1.0 && (!hasLosses) && priorInFlight < b.GetTargetCongestionWindow(b.pacingGain) { + shouldAdvanceGainCycling = false + } + + // If pacing gain is below 1.0, the connection is trying to drain the extra + // queue which could have been incurred by probing prior to it. If the number + // of bytes in flight falls down to the estimated BDP value earlier, conclude + // that the queue has been successfully drained and exit this cycle early. + if b.pacingGain < 1.0 && priorInFlight <= b.GetTargetCongestionWindow(1.0) { + shouldAdvanceGainCycling = true + } + + if shouldAdvanceGainCycling { + b.cycleCurrentOffset = (b.cycleCurrentOffset + 1) % gainCycleLength + b.lastCycleStart = now + + // Stay in low gain mode until the target BDP is hit. + // Low gain mode will be exited immediately when the target BDP is achieved. + if b.pacingGain < 1.0 && pacingGainList[b.cycleCurrentOffset] == 1.0 && b.fullyDrainQueue && priorInFlight > b.GetTargetCongestionWindow(1.0) { + return + } + + b.pacingGain = pacingGainList[b.cycleCurrentOffset] + } } func (b *BBRSender) CheckIfFullBandwidthReached() { - // Implementation here + if b.lastSampleIsAppLimited { + return + } + + bandwidthTarget := int64(float64(b.bandwidthAtLastRound) * startUpGrowthTarget) + if b.BandwidthEstimate() > bandwidthTarget { + b.bandwidthAtLastRound = b.BandwidthEstimate() + b.roundsWithoutBandwidthGain = 0 + return + } + + b.roundsWithoutBandwidthGain++ + if b.roundsWithoutBandwidthGain >= b.numStartupRTTs || (b.exitStartupOnLoss && b.InRecovery()) { + b.isAtFullBandwidth = true + } } func (b *BBRSender) MaybeExitStartupOrDrain(now time.Time) { - // Implementation here + if b.mode == modeStartUp && b.isAtFullBandwidth { + b.mode = modeDrain + b.pacingGain = drainGain + b.congestionWindowGain = highGain + } + + if b.mode == modeDrain && b.bytesInFlight <= b.GetTargetCongestionWindow(1) { + b.EnterProbeBandwidthMode(now) + } } func (b *BBRSender) MaybeEnterOrExitProbeRTT(now time.Time, isRoundStart bool, minRTTExpired bool) { - // Implementation here + if minRTTExpired && !b.exitingQuiescence && b.mode != modeProbeRTT { + b.mode = modeProbeRTT + b.pacingGain = 1.0 + // Do not decide on the time to exit PROBE RTT until the bytesInFlight + // is at the target small value. + b.exitProbeRTTAt = time.Time{} + } + + if b.mode == modeProbeRTT { + b.sampler.OnAppLimited() + if b.exitProbeRTTAt.IsZero() { + // If the window has reached the appropriate size, schedule exiting + // PROBE RTT. + if b.bytesInFlight < b.ProbeRTTCongestionWindow()+maxDatagramSize { + b.exitProbeRTTAt = now.Add(probeRTTTime) + b.probeRTTRoundPassed = false + } + } else { + if isRoundStart { + b.probeRTTRoundPassed = true + } + if now.After(b.exitProbeRTTAt) && b.probeRTTRoundPassed { + b.minRTTTimestamp = now + } + if !b.isAtFullBandwidth { + b.EnterStartupMode() + } else { + b.EnterProbeBandwidthMode(now) + } + } + } + + b.exitingQuiescence = false } func (b *BBRSender) UpdateRecoveryState(lastAckedPacket int64, hasLosses bool, isRoundStart bool) { - // Implementation here + // Exit recovery when there are no losses for a round. + if hasLosses { + b.endRecoveryAt = b.lastSentPacket + } + + switch b.recoveryState { + case stateNotInRecovery: + // Enter conservation on the first loss. + if hasLosses { + b.recoveryState = stateConservation + if b.mode == modeStartUp { + b.recoveryState = b.initialConservationInStartup + } + // This will cause the recoveryWindow to be set to the correct + // value in CalculateRecoveryWindow(). + b.recoveryWindow = 0 + // Since the conservation phase is meant to be lasting for a whole + // round, extend the current round as if it were started right now. + b.currentRoundTripEnd = b.lastSentPacket + } + case stateConservation: + fallthrough + case stateMediumGrowth: + if isRoundStart { + b.recoveryState = stateGrowth + } + fallthrough + case stateGrowth: + // Exit recovery if appropriate. + if !hasLosses && lastAckedPacket > b.endRecoveryAt { + b.recoveryState = stateNotInRecovery + } + } } func (b *BBRSender) UpdateAckAggregationBytes(ackTime time.Time, newlyAckedBytes int64) { - // Implementation here + // Compute how many bytes are expected to be delivered, assuming max bandwidth + // is correct. + expectedBytesAcked := b.maxBandwidth.GetBest() * int64(ackTime.Sub(b.aggregationEpochStartTime)) / int64(time.Second) + + // Reset the current aggregation epoch as soon as the ack arrival rate is less + // than or equal to the max bandwidth. + if b.aggregationEpochBytes <= expectedBytesAcked { + b.aggregationEpochBytes = newlyAckedBytes + b.aggregationEpochStartTime = ackTime + return + } + + // Compute how many extra bytes were delivered vs max bandwidth. + // Include the bytes most recently acknowledged to account for stretch acks. + b.aggregationEpochBytes += newlyAckedBytes + b.maxAckHeight.Update(b.aggregationEpochBytes-expectedBytesAcked, b.roundTripCount) } func (b *BBRSender) CalculatePacingRate() { @@ -465,3 +636,13 @@ func (b *BBRSender) CalculateCongestionWindow(bytesAcked int64) { func (b *BBRSender) CalculateRecoveryWindow(bytesAcked int64, bytesLost int64) { // Implementation here } + +func (b *BBRSender) OnApplicationLimited(bytesInFlight int64) { + if bytesInFlight >= b.GetCongestionWindow() { + // Not application limited. + return + } + + b.appLimitedSinceLastProbeRTT = true + b.sampler.OnAppLimited() +} diff --git a/nekoray/main/NekoGui.cpp b/nekoray/main/NekoGui.cpp index 520275a900..2750b3a09f 100644 --- a/nekoray/main/NekoGui.cpp +++ b/nekoray/main/NekoGui.cpp @@ -419,6 +419,7 @@ namespace NekoGui { search << QApplication::applicationDirPath(); search << "/usr/share/sing-geoip"; search << "/usr/share/sing-geosite"; + search << "/usr/share/sing-box"; search << "/usr/lib/nekobox"; search << "/usr/share/nekobox"; for (const auto &dir: search) { diff --git a/openwrt-packages/homeproxy/root/etc/config/homeproxy b/openwrt-packages/homeproxy/root/etc/config/homeproxy index 97db63f87a..595df9500e 100644 --- a/openwrt-packages/homeproxy/root/etc/config/homeproxy +++ b/openwrt-packages/homeproxy/root/etc/config/homeproxy @@ -27,14 +27,20 @@ config homeproxy 'config' config homeproxy 'control' option lan_proxy_mode 'disabled' + list wan_proxy_ipv4_ips '91.105.192.0/23' list wan_proxy_ipv4_ips '91.108.4.0/22' list wan_proxy_ipv4_ips '91.108.8.0/22' + list wan_proxy_ipv4_ips '91.108.16.0/22' list wan_proxy_ipv4_ips '91.108.12.0/22' + list wan_proxy_ipv4_ips '91.108.20.0/22' list wan_proxy_ipv4_ips '91.108.56.0/22' - list wan_proxy_ipv4_ips '95.161.64.0/20' - list wan_proxy_ipv4_ips '149.154.160.0/22' - list wan_proxy_ipv4_ips '149.154.164.0/22' - list wan_proxy_ipv4_ips '149.154.172.0/22' + list wan_proxy_ipv4_ips '149.154.160.0/20' + list wan_proxy_ipv4_ips '185.76.151.0/24' + list wan_proxy_ipv6_ips '2001:67c:4e8::/48' + list wan_proxy_ipv6_ips '2001:b28:f23c::/48' + list wan_proxy_ipv6_ips '2001:b28:f23d::/48' + list wan_proxy_ipv6_ips '2001:b28:f23f::/48' + list wan_proxy_ipv6_ips '2a0a:f280::/32' config homeproxy 'routing' option sniff_override '1' diff --git a/openwrt-packages/luci-app-amlogic/Makefile b/openwrt-packages/luci-app-amlogic/Makefile index 656ddf07d4..2911eeaee6 100644 --- a/openwrt-packages/luci-app-amlogic/Makefile +++ b/openwrt-packages/luci-app-amlogic/Makefile @@ -16,7 +16,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-amlogic -PKG_VERSION:=3.1.243 +PKG_VERSION:=3.1.244 PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0 License diff --git a/openwrt-packages/luci-app-amlogic/luasrc/controller/amlogic.lua b/openwrt-packages/luci-app-amlogic/luasrc/controller/amlogic.lua index f83202495a..373082fb93 100644 --- a/openwrt-packages/luci-app-amlogic/luasrc/controller/amlogic.lua +++ b/openwrt-packages/luci-app-amlogic/luasrc/controller/amlogic.lua @@ -409,7 +409,7 @@ end --Return the current openwrt firmware version local function current_firmware_version() - return luci.sys.exec("ls /lib/modules/ 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}.[0-9]+'") or "Invalid value." + return luci.sys.exec("uname -r 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}.[0-9]+'") or "Invalid value." end --Return the current plugin version @@ -419,12 +419,12 @@ end --Return the current kernel version local function current_kernel_version() - return luci.sys.exec("ls /lib/modules/ 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}.[0-9]+'") or "Invalid value." + return luci.sys.exec("uname -r 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}.[0-9]+'") or "Invalid value." end --Return the current kernel branch local function current_kernel_branch() - local default_kernel_branch = luci.sys.exec("ls /lib/modules/ 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}'") + local default_kernel_branch = luci.sys.exec("uname -r 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}'") local amlogic_kernel_branch = luci.sys.exec("uci get amlogic.config.amlogic_kernel_branch 2>/dev/null | grep -oE '^[1-9].[0-9]{1,3}'") or "" if trim(amlogic_kernel_branch) == "" then return default_kernel_branch diff --git a/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua b/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua index 92a9178d1f..906c4ca8c9 100644 --- a/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua +++ b/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua @@ -38,9 +38,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local hosts= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(hosts, w) end) for index, host in ipairs(hosts) do - if host:find("#") and host:find("#") == 1 then + if host:sub(1, 1) == "#" then return value end if not datatypes.hostname(host) then @@ -66,9 +67,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not ( datatypes.ipmask4(ipmask) or datatypes.ipmask6(ipmask) ) then @@ -96,9 +98,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local hosts= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(hosts, w) end) for index, host in ipairs(hosts) do - if host:find("#") and host:find("#") == 1 then + if host:sub(1, 1) == "#" then return value end if not datatypes.hostname(host) then @@ -124,9 +127,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not ( datatypes.ipmask4(ipmask) or datatypes.ipmask6(ipmask) ) then @@ -152,9 +156,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local hosts= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(hosts, w) end) for index, host in ipairs(hosts) do - if host:find("#") and host:find("#") == 1 then + if host:sub(1, 1) == "#" then return value end if not datatypes.hostname(host) then @@ -180,9 +185,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not ( datatypes.ipmask4(ipmask) or datatypes.ipmask6(ipmask) ) then @@ -208,9 +214,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not datatypes.ipmask4(ipmask) then @@ -236,9 +243,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not datatypes.ipmask6(ipmask) then @@ -257,7 +265,7 @@ o.cfgvalue = function(self, section) return fs.readfile(hosts) or "" end o.write = function(self, section, value) - fs.writefile(hosts, value:gsub("\r\n", "\n")) + fs.writefile(hosts, value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n")) end o.remove = function(self, section, value) fs.writefile(hosts, "") diff --git a/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/nftables.sh b/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/nftables.sh index 5a64c1231f..9281f41168 100755 --- a/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/nftables.sh +++ b/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/nftables.sh @@ -878,7 +878,8 @@ add_firewall_rule() { [ "${USE_BLOCK_LIST}" = "1" ] && nft "add rule inet fw4 PSW_OUTPUT_MANGLE ip daddr @$NFTSET_BLOCKLIST counter drop" # jump chains - nft "add rule inet fw4 mangle_prerouting meta nfproto {ipv4} counter jump PSW_MANGLE" + nft "add rule inet fw4 mangle_prerouting ip protocol udp counter jump PSW_MANGLE" + [ -n "${is_tproxy}" ] && nft "add rule inet fw4 mangle_prerouting ip protocol tcp counter jump PSW_MANGLE" insert_rule_before "inet fw4" "mangle_prerouting" "PSW_MANGLE" "counter jump PSW_DIVERT" #ipv4 tcp redirect mode @@ -1284,13 +1285,15 @@ gen_include() { nft "add rule inet fw4 nat_output ip protocol tcp counter jump PSW_OUTPUT_NAT" } + PR_INDEX=\$(sh ${MY_PATH} RULE_LAST_INDEX "inet fw4" PSW_MANGLE WAN_IP_RETURN -1) + if [ \$PR_INDEX -ge 0 ]; then + WAN_IP=\$(sh ${MY_PATH} get_wan_ip) + [ ! -z "\${WAN_IP}" ] && nft "replace rule inet fw4 PSW_MANGLE handle \$PR_INDEX ip daddr "\${WAN_IP}" counter return comment \"WAN_IP_RETURN\"" + fi + nft "add rule inet fw4 mangle_prerouting ip protocol udp counter jump PSW_MANGLE" + [ -n "${is_tproxy}" ] && { - PR_INDEX=\$(sh ${MY_PATH} RULE_LAST_INDEX "inet fw4" PSW_MANGLE WAN_IP_RETURN -1) - if [ \$PR_INDEX -ge 0 ]; then - WAN_IP=\$(sh ${MY_PATH} get_wan_ip) - [ ! -z "\${WAN_IP}" ] && nft "replace rule inet fw4 PSW_MANGLE handle \$PR_INDEX ip daddr "\${WAN_IP}" counter return comment \"WAN_IP_RETURN\"" - fi - nft "add rule inet fw4 mangle_prerouting meta nfproto {ipv4} counter jump PSW_MANGLE" + nft "add rule inet fw4 mangle_prerouting ip protocol tcp counter jump PSW_MANGLE" nft "add rule inet fw4 mangle_output ip protocol tcp counter jump PSW_OUTPUT_MANGLE comment \"PSW_OUTPUT_MANGLE\"" } \$(sh ${MY_PATH} insert_rule_before "inet fw4" "mangle_prerouting" "PSW_MANGLE" "counter jump PSW_DIVERT") diff --git a/small/chinadns-ng/Makefile b/small/chinadns-ng/Makefile index f9cb13afee..c643fab561 100644 --- a/small/chinadns-ng/Makefile +++ b/small/chinadns-ng/Makefile @@ -3,38 +3,38 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2024.07.16 +PKG_VERSION:=2024.07.20 PKG_RELEASE:=1 ifeq ($(ARCH),aarch64) ifeq ($(BOARD),rockchip) PKG_ARCH:=chinadns-ng+wolfssl@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=f0c173d2241317004ac33cf116ff15f449a8dede67f7e38e6f21efa722d70219 + PKG_HASH:=605cdcf46b2b82a4c4989747e5e16b577a5b42574d0432d1ff0bc689daa62124 else PKG_ARCH:=chinadns-ng+wolfssl_noasm@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=a3706e49aa71c113710a4d28fca5f1201708feb82002c26a3c8bf6a333cbaea7 + PKG_HASH:=dfa60cf7cdac7bd4ccfc9d3ed4bc99e8a8ed4e8542e42dacfb2daa2ca9e0fc85 endif else ifeq ($(ARCH),arm) ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_ARCH:=chinadns-ng+wolfssl@arm-linux-musleabi@generic+v6+soft_float@fast+lto - PKG_HASH:=c5fe700241eeb4c4637369c761df7b255a4c171e89eda2ac4fb4f0fffe4b75df + PKG_HASH:=873bb30baf21372860652dbff40a08cfbf5b727e1150e63fd81fa0f262f6091a else PKG_ARCH:=chinadns-ng+wolfssl@arm-linux-musleabihf@generic+v7a@fast+lto - PKG_HASH:=ac4263c0b0231e3907141ac9440077a0f2c2db519d2307a875a5c6bf9107b338 + PKG_HASH:=228a4d46d5f16b6cf7d6bb3aa03838dfdee0ffd62ad6f23d22b2d0d0294f719c endif else ifeq ($(ARCH),mips) PKG_ARCH:=chinadns-ng+wolfssl@mips-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=f706b5f79f3467d9f7f224759f8d62033027ed20ce5b3ef4e8551a373bce153e + PKG_HASH:=35c70189394e55c1f71b1b35ac8bece1fa82d45c28dbd31fcda7cf47c676df8a else ifeq ($(ARCH),mipsel) PKG_ARCH:=chinadns-ng+wolfssl@mipsel-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=4eddf913452ac0862e258d619bb4f735333d2360ba8bd198489280673fe28846 + PKG_HASH:=bf399fd12935b5982d054ce531d3a70f19f1f2fbf26c4c5b8a934ce3538699d0 else ifeq ($(ARCH),i386) PKG_ARCH:=chinadns-ng+wolfssl@i386-linux-musl@i686@fast+lto - PKG_HASH:=a96ccab681f3987f45a7a509fde2b36f1aea35cd861376a4abd7bc6e5627d0cb + PKG_HASH:=c43cce76dd63f4dd1a938718dc3a7360b72814ec12893aa4af1a63ca2a6d46aa else ifeq ($(ARCH),x86_64) PKG_ARCH:=chinadns-ng+wolfssl@x86_64-linux-musl@x86_64@fast+lto - PKG_HASH:=00cb71adac9a8874a68802502ab004c837f6c47936de2d5f58aeb03152583b11 + PKG_HASH:=6c89e28872ddfa5fc134e6505795a3a84c7bc2efee078446159318832504402c else PKG_HASH:=dummy endif diff --git a/small/luci-app-mosdns/luasrc/model/cbi/mosdns/update.lua b/small/luci-app-mosdns/luasrc/model/cbi/mosdns/update.lua index 79ce65df7a..bcc14145b0 100644 --- a/small/luci-app-mosdns/luasrc/model/cbi/mosdns/update.lua +++ b/small/luci-app-mosdns/luasrc/model/cbi/mosdns/update.lua @@ -25,7 +25,7 @@ end default = 3 o = s:option(Value, "github_proxy", translate("GitHub Proxy"), translate("Update data files with GitHub Proxy, leave blank to disable proxy downloads.")) -o:value("https://gh-proxy.com", translate("https://gh-proxy.com")) +o:value("https://hub.gitmirror.com", translate("https://hub.gitmirror.com")) o:value("https://ghps.cc", translate("https://ghps.cc")) o.rmempty = true o.default = "" diff --git a/small/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua b/small/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua index 92a9178d1f..906c4ca8c9 100644 --- a/small/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua +++ b/small/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua @@ -38,9 +38,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local hosts= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(hosts, w) end) for index, host in ipairs(hosts) do - if host:find("#") and host:find("#") == 1 then + if host:sub(1, 1) == "#" then return value end if not datatypes.hostname(host) then @@ -66,9 +67,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not ( datatypes.ipmask4(ipmask) or datatypes.ipmask6(ipmask) ) then @@ -96,9 +98,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local hosts= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(hosts, w) end) for index, host in ipairs(hosts) do - if host:find("#") and host:find("#") == 1 then + if host:sub(1, 1) == "#" then return value end if not datatypes.hostname(host) then @@ -124,9 +127,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not ( datatypes.ipmask4(ipmask) or datatypes.ipmask6(ipmask) ) then @@ -152,9 +156,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local hosts= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(hosts, w) end) for index, host in ipairs(hosts) do - if host:find("#") and host:find("#") == 1 then + if host:sub(1, 1) == "#" then return value end if not datatypes.hostname(host) then @@ -180,9 +185,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not ( datatypes.ipmask4(ipmask) or datatypes.ipmask6(ipmask) ) then @@ -208,9 +214,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not datatypes.ipmask4(ipmask) then @@ -236,9 +243,10 @@ o.remove = function(self, section, value) end o.validate = function(self, value) local ipmasks= {} + value = value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n") string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end) for index, ipmask in ipairs(ipmasks) do - if ipmask:find("#") and ipmask:find("#") == 1 then + if ipmask:sub(1, 1) == "#" then return value end if not datatypes.ipmask6(ipmask) then @@ -257,7 +265,7 @@ o.cfgvalue = function(self, section) return fs.readfile(hosts) or "" end o.write = function(self, section, value) - fs.writefile(hosts, value:gsub("\r\n", "\n")) + fs.writefile(hosts, value:gsub("^%s+", ""):gsub("%s+$","\n"):gsub("\r\n","\n"):gsub("[ \t]*\n[ \t]*", "\n")) end o.remove = function(self, section, value) fs.writefile(hosts, "") diff --git a/small/luci-app-passwall/root/usr/share/passwall/nftables.sh b/small/luci-app-passwall/root/usr/share/passwall/nftables.sh index 5a64c1231f..9281f41168 100755 --- a/small/luci-app-passwall/root/usr/share/passwall/nftables.sh +++ b/small/luci-app-passwall/root/usr/share/passwall/nftables.sh @@ -878,7 +878,8 @@ add_firewall_rule() { [ "${USE_BLOCK_LIST}" = "1" ] && nft "add rule inet fw4 PSW_OUTPUT_MANGLE ip daddr @$NFTSET_BLOCKLIST counter drop" # jump chains - nft "add rule inet fw4 mangle_prerouting meta nfproto {ipv4} counter jump PSW_MANGLE" + nft "add rule inet fw4 mangle_prerouting ip protocol udp counter jump PSW_MANGLE" + [ -n "${is_tproxy}" ] && nft "add rule inet fw4 mangle_prerouting ip protocol tcp counter jump PSW_MANGLE" insert_rule_before "inet fw4" "mangle_prerouting" "PSW_MANGLE" "counter jump PSW_DIVERT" #ipv4 tcp redirect mode @@ -1284,13 +1285,15 @@ gen_include() { nft "add rule inet fw4 nat_output ip protocol tcp counter jump PSW_OUTPUT_NAT" } + PR_INDEX=\$(sh ${MY_PATH} RULE_LAST_INDEX "inet fw4" PSW_MANGLE WAN_IP_RETURN -1) + if [ \$PR_INDEX -ge 0 ]; then + WAN_IP=\$(sh ${MY_PATH} get_wan_ip) + [ ! -z "\${WAN_IP}" ] && nft "replace rule inet fw4 PSW_MANGLE handle \$PR_INDEX ip daddr "\${WAN_IP}" counter return comment \"WAN_IP_RETURN\"" + fi + nft "add rule inet fw4 mangle_prerouting ip protocol udp counter jump PSW_MANGLE" + [ -n "${is_tproxy}" ] && { - PR_INDEX=\$(sh ${MY_PATH} RULE_LAST_INDEX "inet fw4" PSW_MANGLE WAN_IP_RETURN -1) - if [ \$PR_INDEX -ge 0 ]; then - WAN_IP=\$(sh ${MY_PATH} get_wan_ip) - [ ! -z "\${WAN_IP}" ] && nft "replace rule inet fw4 PSW_MANGLE handle \$PR_INDEX ip daddr "\${WAN_IP}" counter return comment \"WAN_IP_RETURN\"" - fi - nft "add rule inet fw4 mangle_prerouting meta nfproto {ipv4} counter jump PSW_MANGLE" + nft "add rule inet fw4 mangle_prerouting ip protocol tcp counter jump PSW_MANGLE" nft "add rule inet fw4 mangle_output ip protocol tcp counter jump PSW_OUTPUT_MANGLE comment \"PSW_OUTPUT_MANGLE\"" } \$(sh ${MY_PATH} insert_rule_before "inet fw4" "mangle_prerouting" "PSW_MANGLE" "counter jump PSW_DIVERT") diff --git a/small/v2ray-geodata/Makefile b/small/v2ray-geodata/Makefile index c4c9147229..361097e1c5 100644 --- a/small/v2ray-geodata/Makefile +++ b/small/v2ray-geodata/Makefile @@ -12,13 +12,13 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202407180044 +GEOIP_VER:=202407192357 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=4c636e6a5b25d7de03c413c91f5195b06906d4726322feea027c774babf0bbe6 + HASH:=8128db0c1431f4c6854dfb7740b497ee0ac73f0f3a52a1e0040c508f7d79c0a4 endef GEOSITE_VER:=20240713050854 @@ -30,13 +30,13 @@ define Download/geosite HASH:=dbaba085b1de1b8b875f3db78fb367aef080f24993af01abe21f4d4ba99048be endef -GEOSITE_IRAN_VER:=202407150030 +GEOSITE_IRAN_VER:=202407201213 GEOSITE_IRAN_FILE:=iran.dat.$(GEOSITE_IRAN_VER) define Download/geosite-ir URL:=https://github.com/bootmortis/iran-hosted-domains/releases/download/$(GEOSITE_IRAN_VER)/ URL_FILE:=iran.dat FILE:=$(GEOSITE_IRAN_FILE) - HASH:=73f55b3bc7ae33c63a9eb5ae11be288d9500b89ffa824584a57eb89cbc84a8d6 + HASH:=2c466acbb0775577d5c77c757c968693abf90c03a27c757f1a36d3d77fe33009 endef define Package/v2ray-geodata/template diff --git a/small/xray-core/Makefile b/small/xray-core/Makefile index f94774ddff..9506b1da46 100644 --- a/small/xray-core/Makefile +++ b/small/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.19 +PKG_VERSION:=1.8.20 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e0a8032519b76c5d04d9f7ebbeefdbb81f30488f84d534a329b109ea2dd96709 +PKG_HASH:=602b04dc305086c3a1206395858e4eff6ccdffc799556521f1d830b3bc715fbc PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 diff --git a/v2rayn/v2rayN/v2rayN/Enums/EGirdOrientation.cs b/v2rayn/v2rayN/v2rayN/Enums/EGirdOrientation.cs new file mode 100644 index 0000000000..e7f9749f4a --- /dev/null +++ b/v2rayn/v2rayN/v2rayN/Enums/EGirdOrientation.cs @@ -0,0 +1,9 @@ +namespace v2rayN.Enums +{ + public enum EGirdOrientation + { + Horizontal, + Vertical, + Tab, + } +} \ No newline at end of file diff --git a/v2rayn/v2rayN/v2rayN/Global.cs b/v2rayn/v2rayN/v2rayN/Global.cs index 1bbd9fefd4..d39001e0d9 100644 --- a/v2rayn/v2rayN/v2rayN/Global.cs +++ b/v2rayn/v2rayN/v2rayN/Global.cs @@ -116,6 +116,7 @@ namespace v2rayN public static readonly List SpeedPingTestUrls = new() { @"https://www.google.com/generate_204", + @"https://www.gstatic.com/generate_204", @"https://www.apple.com/library/test/success.html", @"http://www.msftconnecttest.com/connecttest.txt", }; diff --git a/v2rayn/v2rayN/v2rayN/Models/ConfigItems.cs b/v2rayn/v2rayN/v2rayN/Models/ConfigItems.cs index 6bef1ce5d3..2ec36a45a2 100644 --- a/v2rayn/v2rayN/v2rayN/Models/ConfigItems.cs +++ b/v2rayn/v2rayN/v2rayN/Models/ConfigItems.cs @@ -119,6 +119,7 @@ namespace v2rayN.Models public double mainHeight { get; set; } public double mainGirdHeight1 { get; set; } public double mainGirdHeight2 { get; set; } + public EGirdOrientation mainGirdOrientation { get; set; } public bool colorModeDark { get; set; } public bool followSystemTheme { get; set; } public string? colorPrimaryName { get; set; } diff --git a/v2rayn/v2rayN/v2rayN/Resx/ResUI.Designer.cs b/v2rayn/v2rayN/v2rayN/Resx/ResUI.Designer.cs index 927edffc35..ee5ab7da41 100644 --- a/v2rayn/v2rayN/v2rayN/Resx/ResUI.Designer.cs +++ b/v2rayn/v2rayN/v2rayN/Resx/ResUI.Designer.cs @@ -2878,6 +2878,15 @@ namespace v2rayN.Resx { } } + /// + /// 查找类似 Main layout orientation(Require restart) 的本地化字符串。 + /// + public static string TbSettingsMainGirdOrientation { + get { + return ResourceManager.GetString("TbSettingsMainGirdOrientation", resourceCulture); + } + } + /// /// 查找类似 sing-box Mux Protocol 的本地化字符串。 /// diff --git a/v2rayn/v2rayN/v2rayN/Resx/ResUI.resx b/v2rayn/v2rayN/v2rayN/Resx/ResUI.resx index e96c109b1b..3808267ed7 100644 --- a/v2rayn/v2rayN/v2rayN/Resx/ResUI.resx +++ b/v2rayn/v2rayN/v2rayN/Resx/ResUI.resx @@ -1249,4 +1249,7 @@ Multi-server set to active + + Main layout orientation(Require restart) + \ No newline at end of file diff --git a/v2rayn/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx b/v2rayn/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx index 5cbc26c743..e0f6e20b97 100644 --- a/v2rayn/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx +++ b/v2rayn/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx @@ -1246,4 +1246,7 @@ 多服务器设为活动(多选) + + 主界面布局方向(需重启) + \ No newline at end of file diff --git a/v2rayn/v2rayN/v2rayN/ViewModels/OptionSettingViewModel.cs b/v2rayn/v2rayN/v2rayN/ViewModels/OptionSettingViewModel.cs index 77a4851d89..0b0321d8ff 100644 --- a/v2rayn/v2rayN/v2rayN/ViewModels/OptionSettingViewModel.cs +++ b/v2rayn/v2rayN/v2rayN/ViewModels/OptionSettingViewModel.cs @@ -74,6 +74,7 @@ namespace v2rayN.ViewModels [Reactive] public string SpeedPingTestUrl { get; set; } [Reactive] public bool EnableHWA { get; set; } [Reactive] public string SubConvertUrl { get; set; } + [Reactive] public int MainGirdOrientation { get; set; } #endregion UI @@ -171,6 +172,7 @@ namespace v2rayN.ViewModels SpeedPingTestUrl = _config.speedTestItem.speedPingTestUrl; EnableHWA = _config.guiItem.enableHWA; SubConvertUrl = _config.constItem.subConvertUrl; + MainGirdOrientation = (int)_config.uiItem.mainGirdOrientation; #endregion UI @@ -333,6 +335,7 @@ namespace v2rayN.ViewModels _config.speedTestItem.speedPingTestUrl = SpeedPingTestUrl; _config.guiItem.enableHWA = EnableHWA; _config.constItem.subConvertUrl = SubConvertUrl; + _config.uiItem.mainGirdOrientation = (EGirdOrientation)MainGirdOrientation; //systemProxy _config.systemProxyExceptions = systemProxyExceptions; diff --git a/v2rayn/v2rayN/v2rayN/Views/MainWindow.xaml b/v2rayn/v2rayN/v2rayN/Views/MainWindow.xaml index 76827bf139..abaee0ec37 100644 --- a/v2rayn/v2rayN/v2rayN/Views/MainWindow.xaml +++ b/v2rayn/v2rayN/v2rayN/Views/MainWindow.xaml @@ -466,28 +466,50 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vm.SelectedSwatch, v => v.cmbSwatches.SelectedItem).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.CurrentFontSize, v => v.cmbCurrentFontSize.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.CurrentLanguage, v => v.cmbCurrentLanguage.Text).DisposeWith(disposables); - this.OneWayBind(ViewModel, vm => vm.ShowClashUI, v => v.tabClashProxies.Visibility).DisposeWith(disposables); - this.OneWayBind(ViewModel, vm => vm.ShowClashUI, v => v.tabClashConnections.Visibility).DisposeWith(disposables); - this.Bind(ViewModel, vm => vm.TabMainSelectedIndex, v => v.tabMain.SelectedIndex).DisposeWith(disposables); + + if (_config.uiItem.mainGirdOrientation == EGirdOrientation.Horizontal) + { + gridMain.Visibility = Visibility.Visible; + this.OneWayBind(ViewModel, vm => vm.ShowClashUI, v => v.tabClashProxies.Visibility).DisposeWith(disposables); + this.OneWayBind(ViewModel, vm => vm.ShowClashUI, v => v.tabClashConnections.Visibility).DisposeWith(disposables); + this.Bind(ViewModel, vm => vm.TabMainSelectedIndex, v => v.tabMain.SelectedIndex).DisposeWith(disposables); + } + else if (_config.uiItem.mainGirdOrientation == EGirdOrientation.Vertical) + { + gridMain1.Visibility = Visibility.Visible; + this.OneWayBind(ViewModel, vm => vm.ShowClashUI, v => v.tabClashProxies1.Visibility).DisposeWith(disposables); + this.OneWayBind(ViewModel, vm => vm.ShowClashUI, v => v.tabClashConnections1.Visibility).DisposeWith(disposables); + this.Bind(ViewModel, vm => vm.TabMainSelectedIndex, v => v.tabMain1.SelectedIndex).DisposeWith(disposables); + } + else + { + gridMain2.Visibility = Visibility.Visible; + this.OneWayBind(ViewModel, vm => vm.ShowClashUI, v => v.tabClashProxies2.Visibility).DisposeWith(disposables); + this.OneWayBind(ViewModel, vm => vm.ShowClashUI, v => v.tabClashConnections2.Visibility).DisposeWith(disposables); + this.Bind(ViewModel, vm => vm.TabMainSelectedIndex, v => v.tabMain2.SelectedIndex).DisposeWith(disposables); + } }); var IsAdministrator = Utils.IsAdministrator(); @@ -152,10 +171,27 @@ namespace v2rayN.Views MainFormHandler.Instance.RegisterSystemColorSet(_config, this, (bool bl) => { ViewModel?.ModifyTheme(bl); }); - tabProfiles.Content ??= new ProfilesView(); - tabMsgView.Content ??= new MsgView(); - tabClashProxies.Content ??= new ClashProxiesView(); - tabClashConnections.Content ??= new ClashConnectionsView(); + if (_config.uiItem.mainGirdOrientation == EGirdOrientation.Horizontal) + { + tabProfiles.Content ??= new ProfilesView(); + tabMsgView.Content ??= new MsgView(); + tabClashProxies.Content ??= new ClashProxiesView(); + tabClashConnections.Content ??= new ClashConnectionsView(); + } + else if (_config.uiItem.mainGirdOrientation == EGirdOrientation.Vertical) + { + tabProfiles1.Content ??= new ProfilesView(); + tabMsgView1.Content ??= new MsgView(); + tabClashProxies1.Content ??= new ClashProxiesView(); + tabClashConnections1.Content ??= new ClashConnectionsView(); + } + else + { + tabProfiles2.Content ??= new ProfilesView(); + tabMsgView2.Content ??= new MsgView(); + tabClashProxies2.Content ??= new ClashProxiesView(); + tabClashConnections2.Content ??= new ClashConnectionsView(); + } RestoreUI(); AddHelpMenuItem(); @@ -248,8 +284,16 @@ namespace v2rayN.Views if (Height > maxHeight) Height = maxHeight; if (_config.uiItem.mainGirdHeight1 > 0 && _config.uiItem.mainGirdHeight2 > 0) { - gridMain.ColumnDefinitions[0].Width = new GridLength(_config.uiItem.mainGirdHeight1, GridUnitType.Star); - gridMain.ColumnDefinitions[2].Width = new GridLength(_config.uiItem.mainGirdHeight2, GridUnitType.Star); + if (_config.uiItem.mainGirdOrientation == EGirdOrientation.Horizontal) + { + gridMain.ColumnDefinitions[0].Width = new GridLength(_config.uiItem.mainGirdHeight1, GridUnitType.Star); + gridMain.ColumnDefinitions[2].Width = new GridLength(_config.uiItem.mainGirdHeight2, GridUnitType.Star); + } + else if (_config.uiItem.mainGirdOrientation == EGirdOrientation.Vertical) + { + gridMain1.RowDefinitions[0].Height = new GridLength(_config.uiItem.mainGirdHeight1, GridUnitType.Star); + gridMain1.RowDefinitions[2].Height = new GridLength(_config.uiItem.mainGirdHeight2, GridUnitType.Star); + } } } @@ -258,8 +302,16 @@ namespace v2rayN.Views _config.uiItem.mainWidth = Utils.ToInt(this.Width); _config.uiItem.mainHeight = Utils.ToInt(this.Height); - _config.uiItem.mainGirdHeight1 = Math.Ceiling(gridMain.ColumnDefinitions[0].ActualWidth + 0.1); - _config.uiItem.mainGirdHeight2 = Math.Ceiling(gridMain.ColumnDefinitions[2].ActualWidth + 0.1); + if (_config.uiItem.mainGirdOrientation == EGirdOrientation.Horizontal) + { + _config.uiItem.mainGirdHeight1 = Math.Ceiling(gridMain.ColumnDefinitions[0].ActualWidth + 0.1); + _config.uiItem.mainGirdHeight2 = Math.Ceiling(gridMain.ColumnDefinitions[2].ActualWidth + 0.1); + } + else if (_config.uiItem.mainGirdOrientation == EGirdOrientation.Vertical) + { + _config.uiItem.mainGirdHeight1 = Math.Ceiling(gridMain1.RowDefinitions[0].ActualHeight + 0.1); + _config.uiItem.mainGirdHeight2 = Math.Ceiling(gridMain1.RowDefinitions[2].ActualHeight + 0.1); + } } private void AddHelpMenuItem() diff --git a/v2rayn/v2rayN/v2rayN/Views/OptionSettingWindow.xaml b/v2rayn/v2rayN/v2rayN/Views/OptionSettingWindow.xaml index 1c10ca0d0b..05ab9cda19 100644 --- a/v2rayn/v2rayN/v2rayN/Views/OptionSettingWindow.xaml +++ b/v2rayn/v2rayN/v2rayN/Views/OptionSettingWindow.xaml @@ -528,6 +528,7 @@ + @@ -830,6 +831,21 @@ materialDesign:HintAssist.Hint="Convert Url" IsEditable="True" Style="{StaticResource DefComboBox}" /> + + + diff --git a/v2rayn/v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs b/v2rayn/v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs index 933c76cc55..3ad6f095bc 100644 --- a/v2rayn/v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs +++ b/v2rayn/v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs @@ -4,6 +4,7 @@ using System.IO; using System.Reactive.Disposables; using System.Windows; using System.Windows.Media; +using v2rayN.Enums; using v2rayN.Handler; using v2rayN.Models; using v2rayN.ViewModels; @@ -18,8 +19,6 @@ namespace v2rayN.Views { InitializeComponent(); - - this.Owner = Application.Current.MainWindow; _config = LazyConfig.Instance.GetConfig(); var lstFonts = GetFonts(Utils.GetFontsPath()); @@ -90,6 +89,10 @@ namespace v2rayN.Views { cmbSubConvertUrl.Items.Add(it); }); + foreach (EGirdOrientation it in Enum.GetValues(typeof(EGirdOrientation))) + { + cmbMainGirdOrientation.Items.Add(it.ToString()); + } lstFonts.ForEach(it => { cmbcurrentFontFamily.Items.Add(it); }); cmbcurrentFontFamily.Items.Add(string.Empty); @@ -145,6 +148,7 @@ namespace v2rayN.Views this.Bind(ViewModel, vm => vm.SpeedPingTestUrl, v => v.cmbSpeedPingTestUrl.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.EnableHWA, v => v.togEnableHWA.IsChecked).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SubConvertUrl, v => v.cmbSubConvertUrl.Text).DisposeWith(disposables); + this.Bind(ViewModel, vm => vm.MainGirdOrientation, v => v.cmbMainGirdOrientation.SelectedIndex).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.systemProxyAdvancedProtocol, v => v.cmbsystemProxyAdvancedProtocol.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.systemProxyExceptions, v => v.txtsystemProxyExceptions.Text).DisposeWith(disposables); diff --git a/v2rayng/V2rayNG/app/build.gradle.kts b/v2rayng/V2rayNG/app/build.gradle.kts index 16a5503f3e..7894058256 100644 --- a/v2rayng/V2rayNG/app/build.gradle.kts +++ b/v2rayng/V2rayNG/app/build.gradle.kts @@ -11,8 +11,8 @@ android { applicationId = "com.v2ray.ang" minSdk = 21 targetSdk = 34 - versionCode = 576 - versionName = "1.8.32" + versionCode = 577 + versionName = "1.8.33" multiDexEnabled = true splits.abi { reset() diff --git a/v2rayu/Podfile b/v2rayu/Podfile index f9bcb4d980..f1ef51ce52 100644 --- a/v2rayu/Podfile +++ b/v2rayu/Podfile @@ -8,8 +8,9 @@ target 'V2rayU' do use_frameworks! # Pods for V2rayU - pod 'FirebaseAnalytics', '~> 10.24.0' - pod 'FirebaseCrashlytics', '~> 10.24.0' + pod 'AppCenter' + pod 'FirebaseAnalytics' + pod 'FirebaseCrashlytics' pod 'SwiftyJSON' # master branch pod 'Preferences', :git => 'https://github.com/sindresorhus/Preferences.git' diff --git a/v2rayu/Podfile.lock b/v2rayu/Podfile.lock index 8c834a8676..974800cf67 100644 --- a/v2rayu/Podfile.lock +++ b/v2rayu/Podfile.lock @@ -1,6 +1,14 @@ PODS: - - FirebaseAnalytics (10.24.0): - - FirebaseAnalytics/AdIdSupport (= 10.24.0) + - AppCenter (5.0.5): + - AppCenter/Analytics (= 5.0.5) + - AppCenter/Crashes (= 5.0.5) + - AppCenter/Analytics (5.0.5): + - AppCenter/Core + - AppCenter/Core (5.0.5) + - AppCenter/Crashes (5.0.5): + - AppCenter/Core + - FirebaseAnalytics (10.29.0): + - FirebaseAnalytics/AdIdSupport (= 10.29.0) - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) @@ -8,24 +16,24 @@ PODS: - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - - FirebaseAnalytics/AdIdSupport (10.24.0): + - FirebaseAnalytics/AdIdSupport (10.29.0): - FirebaseCore (~> 10.0) - FirebaseInstallations (~> 10.0) - - GoogleAppMeasurement (= 10.24.0) + - GoogleAppMeasurement (= 10.29.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - - FirebaseCore (10.24.0): + - FirebaseCore (10.29.0): - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.12) - GoogleUtilities/Logger (~> 7.12) - - FirebaseCoreExtension (10.24.0): + - FirebaseCoreExtension (10.29.0): - FirebaseCore (~> 10.0) - - FirebaseCoreInternal (10.24.0): + - FirebaseCoreInternal (10.29.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseCrashlytics (10.24.0): + - FirebaseCrashlytics (10.29.0): - FirebaseCore (~> 10.5) - FirebaseInstallations (~> 10.0) - FirebaseRemoteConfigInterop (~> 10.23) @@ -34,35 +42,36 @@ PODS: - GoogleUtilities/Environment (~> 7.8) - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesObjC (~> 2.1) - - FirebaseInstallations (10.27.0): + - FirebaseInstallations (10.29.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - PromisesObjC (~> 2.1) - - FirebaseRemoteConfigInterop (10.24.0) - - FirebaseSessions (10.24.0): + - FirebaseRemoteConfigInterop (10.29.0) + - FirebaseSessions (10.29.0): - FirebaseCore (~> 10.5) - FirebaseCoreExtension (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleDataTransport (~> 9.2) - - GoogleUtilities/Environment (~> 7.10) + - GoogleUtilities/Environment (~> 7.13) + - GoogleUtilities/UserDefaults (~> 7.13) - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesSwift (~> 2.1) - - GoogleAppMeasurement (10.24.0): - - GoogleAppMeasurement/AdIdSupport (= 10.24.0) + - GoogleAppMeasurement (10.29.0): + - GoogleAppMeasurement/AdIdSupport (= 10.29.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - - GoogleAppMeasurement/AdIdSupport (10.24.0): - - GoogleAppMeasurement/WithoutAdIdSupport (= 10.24.0) + - GoogleAppMeasurement/AdIdSupport (10.29.0): + - GoogleAppMeasurement/WithoutAdIdSupport (= 10.29.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) - "GoogleUtilities/NSData+zlib (~> 7.11)" - nanopb (< 2.30911.0, >= 2.30908.0) - - GoogleAppMeasurement/WithoutAdIdSupport (10.24.0): + - GoogleAppMeasurement/WithoutAdIdSupport (10.29.0): - GoogleUtilities/AppDelegateSwizzler (~> 7.11) - GoogleUtilities/MethodSwizzler (~> 7.11) - GoogleUtilities/Network (~> 7.11) @@ -72,32 +81,32 @@ PODS: - GoogleUtilities/Environment (~> 7.7) - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/AppDelegateSwizzler (7.13.0): + - GoogleUtilities/AppDelegateSwizzler (7.13.3): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - GoogleUtilities/Privacy - - GoogleUtilities/Environment (7.13.0): + - GoogleUtilities/Environment (7.13.3): - GoogleUtilities/Privacy - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.13.0): + - GoogleUtilities/Logger (7.13.3): - GoogleUtilities/Environment - GoogleUtilities/Privacy - - GoogleUtilities/MethodSwizzler (7.13.0): + - GoogleUtilities/MethodSwizzler (7.13.3): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - GoogleUtilities/Network (7.13.0): + - GoogleUtilities/Network (7.13.3): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Privacy - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.13.0)": + - "GoogleUtilities/NSData+zlib (7.13.3)": - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (7.13.0) - - GoogleUtilities/Reachability (7.13.0): + - GoogleUtilities/Privacy (7.13.3) + - GoogleUtilities/Reachability (7.13.3): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - GoogleUtilities/UserDefaults (7.13.0): + - GoogleUtilities/UserDefaults (7.13.3): - GoogleUtilities/Logger - GoogleUtilities/Privacy - MASShortcut (2.3.6) @@ -116,8 +125,9 @@ PODS: - Yams (5.0.6) DEPENDENCIES: - - FirebaseAnalytics (~> 10.24.0) - - FirebaseCrashlytics (~> 10.24.0) + - AppCenter + - FirebaseAnalytics + - FirebaseCrashlytics - MASShortcut - Preferences (from `https://github.com/sindresorhus/Preferences.git`) - QRCoder @@ -127,6 +137,7 @@ DEPENDENCIES: SPEC REPOS: https://github.com/CocoaPods/Specs.git: + - AppCenter - FirebaseAnalytics - FirebaseCore - FirebaseCoreExtension @@ -157,17 +168,18 @@ CHECKOUT OPTIONS: :git: https://github.com/sindresorhus/Preferences.git SPEC CHECKSUMS: - FirebaseAnalytics: b5efc493eb0f40ec560b04a472e3e1a15d39ca13 - FirebaseCore: 11dc8a16dfb7c5e3c3f45ba0e191a33ac4f50894 - FirebaseCoreExtension: af5fd85e817ea9d19f9a2659a376cf9cf99f03c0 - FirebaseCoreInternal: bcb5acffd4ea05e12a783ecf835f2210ce3dc6af - FirebaseCrashlytics: af38ea4adfa606f6e63fcc22091b61e7938fcf66 - FirebaseInstallations: 766dabca09fd94aef922538aaf144cc4a6fb6869 - FirebaseRemoteConfigInterop: 6c349a466490aeace3ce9c091c86be1730711634 - FirebaseSessions: 2651b464e241c93fd44112f995d5ab663c970487 - GoogleAppMeasurement: f3abf08495ef2cba7829f15318c373b8d9226491 + AppCenter: 994875ea7941b9e168babb98299f900a94bcef13 + FirebaseAnalytics: 23717de130b779aa506e757edb9713d24b6ffeda + FirebaseCore: 30e9c1cbe3d38f5f5e75f48bfcea87d7c358ec16 + FirebaseCoreExtension: 705ca5b14bf71d2564a0ddc677df1fc86ffa600f + FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 + FirebaseCrashlytics: 34647b41e18de773717fdd348a22206f2f9bc774 + FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd + FirebaseRemoteConfigInterop: 6efda51fb5e2f15b16585197e26eaa09574e8a4d + FirebaseSessions: dbd14adac65ce996228652c1fc3a3f576bdf3ecc + GoogleAppMeasurement: f9de05ee17401e3355f68e8fc8b5064d429f5918 GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a - GoogleUtilities: d053d902a8edaa9904e1bd00c37535385b8ed152 + GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 MASShortcut: 9c215e8a8a78f3d01ce56da48e2730ab66b538fa nanopb: 438bc412db1928dac798aa6fd75726007be04262 Preferences: cfd4b0cbc5adfb5781b819ad3a000324d0fc9f48 @@ -178,6 +190,6 @@ SPEC CHECKSUMS: SwiftyJSON: 36413e04c44ee145039d332b4f4e2d3e8d6c4db7 Yams: e10dae147f517ed57ecae37c5e8681bdf8fcab65 -PODFILE CHECKSUM: 94ab23e73805bd5279654adc5ea4b4c31f94b8af +PODFILE CHECKSUM: 4f5cf0038c0de017d838b1fc684805af99a6abae COCOAPODS: 1.15.2 diff --git a/v2rayu/V2rayU.xcodeproj/project.pbxproj b/v2rayu/V2rayU.xcodeproj/project.pbxproj old mode 100755 new mode 100644 index c0a9bfcf96..d9d017d652 --- a/v2rayu/V2rayU.xcodeproj/project.pbxproj +++ b/v2rayu/V2rayU.xcodeproj/project.pbxproj @@ -138,6 +138,7 @@ 66943A2E2C494D7900F79A2A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = ""; }; 66943A302C494F4B00F79A2A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "../zh-Hans.lproj/PreferenceAdvance.strings"; sourceTree = ""; }; 66943A322C49509800F79A2A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "../zh-Hans.lproj/PreferenceGeneral.strings"; sourceTree = ""; }; + 66943A332C4BA08C00F79A2A /* V2rayU.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = V2rayU.entitlements; sourceTree = ""; }; 669468492C076C2800146109 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 66973EB621797719001FEA1E /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; }; 66A358672C39517F00914A25 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; @@ -244,6 +245,7 @@ 664EB373216C9A5E00B6AE0D /* V2rayU */ = { isa = PBXGroup; children = ( + 66943A332C4BA08C00F79A2A /* V2rayU.entitlements */, 669468492C076C2800146109 /* GoogleService-Info.plist */, 66F07CF8236D79540088A4AE /* Ping.swift */, 6608D9B82182BBAC00A0E0DD /* v2ray */, @@ -371,6 +373,7 @@ 83C3E4047C50A6CD7233F986 /* [CP] Embed Pods Frameworks */, 66F411B021CA49CF007AAC10 /* Copy Files */, 667ECE692A9A0044009B00EC /* CopyFiles */, + 0E6059541F680F77ED6A69B5 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -474,6 +477,23 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 0E6059541F680F77ED6A69B5 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-V2rayU/Pods-V2rayU-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-V2rayU/Pods-V2rayU-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-V2rayU/Pods-V2rayU-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; 83C3E4047C50A6CD7233F986 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -741,7 +761,7 @@ SKIP_INSTALL = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -799,7 +819,7 @@ SKIP_INSTALL = NO; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -810,6 +830,7 @@ ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CODE_SIGN_ENTITLEMENTS = V2rayU/V2rayU.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Manual; @@ -847,6 +868,7 @@ ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CODE_SIGN_ENTITLEMENTS = V2rayU/V2rayU.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Manual; diff --git a/v2rayu/V2rayU/AppDelegate.swift b/v2rayu/V2rayU/AppDelegate.swift index 4f5f5ca3bd..05b3ede5cb 100644 --- a/v2rayu/V2rayU/AppDelegate.swift +++ b/v2rayu/V2rayU/AppDelegate.swift @@ -11,6 +11,9 @@ import ServiceManagement import MASShortcut import Preferences import FirebaseCore +import AppCenter +import AppCenterAnalytics +import AppCenterCrashes let launcherAppIdentifier = "net.yanue.V2rayU.Launcher" let appVersion = getAppVersion() @@ -51,7 +54,10 @@ class AppDelegate: NSObject, NSApplicationDelegate { func applicationDidFinishLaunching(_ aNotification: Notification) { print("applicationDidFinishLaunching") FirebaseApp.configure() - + AppCenter.start(withAppSecret: "d52dd1a1-7a3a-4143-b159-a30434f87713", services:[ + Analytics.self, + Crashes.self + ]) // check installed V2rayLaunch.checkInstall() diff --git a/v2rayu/V2rayU/GoogleService-Info.plist b/v2rayu/V2rayU/GoogleService-Info.plist index 39b3c82f83..d8acd0d34b 100644 --- a/v2rayu/V2rayU/GoogleService-Info.plist +++ b/v2rayu/V2rayU/GoogleService-Info.plist @@ -15,16 +15,16 @@ STORAGE_BUCKET v2rayu-61f76.appspot.com IS_ADS_ENABLED - + IS_ANALYTICS_ENABLED - + IS_APPINVITE_ENABLED - + IS_GCM_ENABLED - + IS_SIGNIN_ENABLED - + GOOGLE_APP_ID 1:114354938670:ios:a2ee8062d103d95aad50bf - \ No newline at end of file + diff --git a/v2rayu/V2rayU/V2rayU.entitlements b/v2rayu/V2rayU/V2rayU.entitlements new file mode 100644 index 0000000000..0c67376eba --- /dev/null +++ b/v2rayu/V2rayU/V2rayU.entitlements @@ -0,0 +1,5 @@ + + + + + diff --git a/xray-core/core/core.go b/xray-core/core/core.go index 3b695a4751..262cf5f316 100644 --- a/xray-core/core/core.go +++ b/xray-core/core/core.go @@ -21,7 +21,7 @@ import ( var ( Version_x byte = 1 Version_y byte = 8 - Version_z byte = 19 + Version_z byte = 20 ) var ( diff --git a/xray-core/transport/internet/splithttp/dialer.go b/xray-core/transport/internet/splithttp/dialer.go index 5c22f84530..3df653818e 100644 --- a/xray-core/transport/internet/splithttp/dialer.go +++ b/xray-core/transport/internet/splithttp/dialer.go @@ -87,15 +87,8 @@ func getHTTPClient(ctx context.Context, dest net.Destination, streamSettings *in if isH3 { dest.Network = net.Network_UDP - quicConfig := &quic.Config{ - HandshakeIdleTimeout: 10 * time.Second, - MaxIdleTimeout: 90 * time.Second, - KeepAlivePeriod: 3 * time.Second, - Allow0RTT: true, - } roundTripper := &http3.RoundTripper{ TLSClientConfig: gotlsConfig, - QUICConfig: quicConfig, Dial: func(ctx context.Context, addr string, tlsCfg *gotls.Config, cfg *quic.Config) (quic.EarlyConnection, error) { conn, err := internet.DialSystem(ctx, dest, streamSettings.SocketSettings) if err != nil {