diff --git a/.github/update.log b/.github/update.log index 43086f3292..6a5e0f01f9 100644 --- a/.github/update.log +++ b/.github/update.log @@ -1154,3 +1154,4 @@ Update On Tue Oct 14 20:41:12 CEST 2025 Update On Wed Oct 15 20:47:46 CEST 2025 Update On Thu Oct 16 20:51:10 CEST 2025 Update On Fri Oct 17 20:36:54 CEST 2025 +Update On Sat Oct 18 20:36:36 CEST 2025 diff --git a/clash-meta/go.mod b/clash-meta/go.mod index 957dfa7f70..7294a19738 100644 --- a/clash-meta/go.mod +++ b/clash-meta/go.mod @@ -38,7 +38,7 @@ require ( github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f github.com/metacubex/smux v0.0.0-20250922175018-15c9a6a78719 github.com/metacubex/tfo-go v0.0.0-20250921095601-b102db4216c0 - github.com/metacubex/utls v1.8.2 + github.com/metacubex/utls v1.8.3 github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f github.com/miekg/dns v1.1.63 // lastest version compatible with golang1.20 github.com/mroth/weightedrand/v2 v2.1.0 diff --git a/clash-meta/go.sum b/clash-meta/go.sum index e5ac16e39e..a7c1c57393 100644 --- a/clash-meta/go.sum +++ b/clash-meta/go.sum @@ -141,8 +141,8 @@ github.com/metacubex/smux v0.0.0-20250922175018-15c9a6a78719 h1:T6qCCfolRDAVJKea github.com/metacubex/smux v0.0.0-20250922175018-15c9a6a78719/go.mod h1:4bPD8HWx9jPJ9aE4uadgyN7D1/Wz3KmPy+vale8sKLE= github.com/metacubex/tfo-go v0.0.0-20250921095601-b102db4216c0 h1:Ui+/2s5Qz0lSnDUBmEL12M5Oi/PzvFxGTNohm8ZcsmE= github.com/metacubex/tfo-go v0.0.0-20250921095601-b102db4216c0/go.mod h1:l9oLnLoEXyGZ5RVLsh7QCC5XsouTUyKk4F2nLm2DHLw= -github.com/metacubex/utls v1.8.2 h1:d7KalMZ5hnOJ6lThMz8Ykd+5dvmXH3Eoeyfv2jUuG3w= -github.com/metacubex/utls v1.8.2/go.mod h1:kncGGVhFaoGn5M3pFe3SXhZCzsbCJayNOH4UEqTKTko= +github.com/metacubex/utls v1.8.3 h1:0m/yCxm3SK6kWve2lKiFb1pue1wHitJ8sQQD4Ikqde4= +github.com/metacubex/utls v1.8.3/go.mod h1:kncGGVhFaoGn5M3pFe3SXhZCzsbCJayNOH4UEqTKTko= github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f h1:FGBPRb1zUabhPhDrlKEjQ9lgIwQ6cHL4x8M9lrERhbk= github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f/go.mod h1:oPGcV994OGJedmmxrcK9+ni7jUEMGhR+uVQAdaduIP4= github.com/metacubex/yamux v0.0.0-20250918083631-dd5f17c0be49 h1:lhlqpYHopuTLx9xQt22kSA9HtnyTDmk5XjjQVCGHe2E= diff --git a/clash-nyanpasu/backend/Cargo.lock b/clash-nyanpasu/backend/Cargo.lock index 9e0bf6918a..98c66e6ea2 100644 --- a/clash-nyanpasu/backend/Cargo.lock +++ b/clash-nyanpasu/backend/Cargo.lock @@ -737,7 +737,7 @@ dependencies = [ "sha1", "sync_wrapper", "tokio", - "tokio-tungstenite 0.28.0", + "tokio-tungstenite", "tower", "tower-layer", "tower-service", @@ -1616,7 +1616,7 @@ dependencies = [ "time", "timeago", "tokio", - "tokio-tungstenite 0.27.0", + "tokio-tungstenite", "tokio-util", "tracing", "tracing-appender", @@ -1688,7 +1688,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -2294,7 +2294,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -4443,7 +4443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.15.5", "serde", "serde_core", ] @@ -6361,7 +6361,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.45.0", ] [[package]] @@ -7877,7 +7877,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -9546,7 +9546,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix 1.0.8", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -9869,18 +9869,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-tungstenite" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489a59b6730eda1b0171fcfda8b121f4bee2b35cba8645ca35c5f7ba3eb736c1" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite 0.27.0", -] - [[package]] name = "tokio-tungstenite" version = "0.28.0" @@ -9890,7 +9878,7 @@ dependencies = [ "futures-util", "log", "tokio", - "tungstenite 0.28.0", + "tungstenite", ] [[package]] @@ -10245,23 +10233,6 @@ dependencies = [ "core_maths", ] -[[package]] -name = "tungstenite" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" -dependencies = [ - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand 0.9.2", - "sha1", - "thiserror 2.0.17", - "utf-8", -] - [[package]] name = "tungstenite" version = "0.28.0" @@ -11274,7 +11245,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.48.0", ] [[package]] diff --git a/clash-nyanpasu/backend/tauri/Cargo.toml b/clash-nyanpasu/backend/tauri/Cargo.toml index 5ba540d893..94448a3384 100644 --- a/clash-nyanpasu/backend/tauri/Cargo.toml +++ b/clash-nyanpasu/backend/tauri/Cargo.toml @@ -89,7 +89,7 @@ axum = "0.8" url = "2" mime = "0.3" reqwest = { workspace = true } -tokio-tungstenite = "0.27" +tokio-tungstenite = "0.28" urlencoding = "2.1" port_scanner = "0.1.5" sysproxy = { git = "https://github.com/libnyanpasu/sysproxy-rs.git", version = "0.3" } diff --git a/clash-nyanpasu/frontend/interface/package.json b/clash-nyanpasu/frontend/interface/package.json index 16cdda84e1..66e319979c 100644 --- a/clash-nyanpasu/frontend/interface/package.json +++ b/clash-nyanpasu/frontend/interface/package.json @@ -17,7 +17,7 @@ "dayjs": "1.11.18", "lodash-es": "4.17.21", "ofetch": "1.4.1", - "react": "19.1.1", + "react": "19.2.0", "swr": "2.3.6" }, "devDependencies": { diff --git a/clash-nyanpasu/frontend/nyanpasu/package.json b/clash-nyanpasu/frontend/nyanpasu/package.json index fab85bdd4c..95ff8d0529 100644 --- a/clash-nyanpasu/frontend/nyanpasu/package.json +++ b/clash-nyanpasu/frontend/nyanpasu/package.json @@ -38,8 +38,8 @@ "material-react-table": "3.2.1", "monaco-editor": "0.54.0", "mui-color-input": "7.0.0", - "react": "19.1.1", - "react-dom": "19.1.1", + "react": "19.2.0", + "react-dom": "19.2.0", "react-error-boundary": "6.0.0", "react-fast-marquee": "1.6.5", "react-hook-form-mui": "8.0.0", @@ -56,12 +56,12 @@ "@csstools/normalize.css": "12.1.1", "@emotion/babel-plugin": "11.13.5", "@emotion/react": "11.14.0", - "@iconify/json": "2.2.396", + "@iconify/json": "2.2.397", "@monaco-editor/react": "4.7.0", "@tanstack/react-query": "5.90.5", - "@tanstack/react-router": "1.133.3", - "@tanstack/react-router-devtools": "1.133.3", - "@tanstack/router-plugin": "1.133.4", + "@tanstack/react-router": "1.133.13", + "@tanstack/react-router-devtools": "1.133.13", + "@tanstack/router-plugin": "1.133.13", "@tauri-apps/plugin-clipboard-manager": "2.3.0", "@tauri-apps/plugin-dialog": "2.4.0", "@tauri-apps/plugin-fs": "2.4.2", diff --git a/clash-nyanpasu/frontend/ui/package.json b/clash-nyanpasu/frontend/ui/package.json index 1ad6c3c80c..1ae48eef64 100644 --- a/clash-nyanpasu/frontend/ui/package.json +++ b/clash-nyanpasu/frontend/ui/package.json @@ -24,8 +24,8 @@ "ahooks": "3.9.5", "d3": "7.9.0", "framer-motion": "12.23.24", - "react": "19.1.1", - "react-dom": "19.1.1", + "react": "19.2.0", + "react-dom": "19.2.0", "react-error-boundary": "6.0.0", "react-i18next": "15.7.4", "react-use": "17.6.0", diff --git a/clash-nyanpasu/package.json b/clash-nyanpasu/package.json index 1d71af21a2..9de5c898db 100644 --- a/clash-nyanpasu/package.json +++ b/clash-nyanpasu/package.json @@ -73,7 +73,7 @@ "conventional-changelog-conventionalcommits": "9.1.0", "cross-env": "10.1.0", "dedent": "1.7.0", - "eslint": "9.37.0", + "eslint": "9.38.0", "eslint-config-prettier": "10.1.8", "eslint-import-resolver-alias": "1.1.2", "eslint-plugin-html": "8.1.3", @@ -95,7 +95,7 @@ "postcss-scss": "4.0.9", "prettier": "3.6.2", "prettier-plugin-ember-template-tag": "2.1.0", - "prettier-plugin-tailwindcss": "0.7.0", + "prettier-plugin-tailwindcss": "0.7.1", "prettier-plugin-toml": "2.0.6", "react-devtools": "6.1.5", "stylelint": "16.25.0", diff --git a/clash-nyanpasu/pnpm-lock.yaml b/clash-nyanpasu/pnpm-lock.yaml index 911e58216d..ba60ed9788 100644 --- a/clash-nyanpasu/pnpm-lock.yaml +++ b/clash-nyanpasu/pnpm-lock.yaml @@ -30,7 +30,7 @@ importers: version: 19.8.1 '@eslint/compat': specifier: 1.4.0 - version: 1.4.0(eslint@9.37.0(jiti@2.6.0)) + version: 1.4.0(eslint@9.38.0(jiti@2.6.0)) '@eslint/eslintrc': specifier: 3.3.1 version: 3.3.1 @@ -51,10 +51,10 @@ importers: version: 24.5.2 '@typescript-eslint/eslint-plugin': specifier: 8.46.1 - version: 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + version: 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) '@typescript-eslint/parser': specifier: 8.46.1 - version: 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + version: 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) autoprefixer: specifier: 10.4.21 version: 10.4.21(postcss@8.5.6) @@ -68,38 +68,38 @@ importers: specifier: 1.7.0 version: 1.7.0(babel-plugin-macros@3.1.0) eslint: - specifier: 9.37.0 - version: 9.37.0(jiti@2.6.0) + specifier: 9.38.0 + version: 9.38.0(jiti@2.6.0) eslint-config-prettier: specifier: 10.1.8 - version: 10.1.8(eslint@9.37.0(jiti@2.6.0)) + version: 10.1.8(eslint@9.38.0(jiti@2.6.0)) eslint-import-resolver-alias: specifier: 1.1.2 - version: 1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0))) + version: 1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0))) eslint-plugin-html: specifier: 8.1.3 version: 8.1.3 eslint-plugin-import: specifier: 2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0)) + version: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0)) eslint-plugin-n: specifier: 17.23.1 - version: 17.23.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + version: 17.23.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) eslint-plugin-prettier: specifier: 5.5.4 - version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0))(prettier@3.6.2) + version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.38.0(jiti@2.6.0)))(eslint@9.38.0(jiti@2.6.0))(prettier@3.6.2) eslint-plugin-promise: specifier: 7.2.1 - version: 7.2.1(eslint@9.37.0(jiti@2.6.0)) + version: 7.2.1(eslint@9.38.0(jiti@2.6.0)) eslint-plugin-react: specifier: 7.37.5 - version: 7.37.5(eslint@9.37.0(jiti@2.6.0)) + version: 7.37.5(eslint@9.38.0(jiti@2.6.0)) eslint-plugin-react-compiler: specifier: 19.1.0-rc.2 - version: 19.1.0-rc.2(eslint@9.37.0(jiti@2.6.0)) + version: 19.1.0-rc.2(eslint@9.38.0(jiti@2.6.0)) eslint-plugin-react-hooks: specifier: 5.2.0 - version: 5.2.0(eslint@9.37.0(jiti@2.6.0)) + version: 5.2.0(eslint@9.38.0(jiti@2.6.0)) globals: specifier: 16.4.0 version: 16.4.0 @@ -111,7 +111,7 @@ importers: version: 16.2.4 neostandard: specifier: 0.12.2 - version: 0.12.2(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + version: 0.12.2(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0)))(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) npm-run-all2: specifier: 8.0.4 version: 8.0.4 @@ -134,8 +134,8 @@ importers: specifier: 2.1.0 version: 2.1.0(prettier@3.6.2) prettier-plugin-tailwindcss: - specifier: 0.7.0 - version: 0.7.0(@ianvs/prettier-plugin-sort-imports@4.7.0(@prettier/plugin-oxc@0.0.4)(content-tag@4.0.0)(prettier-plugin-ember-template-tag@2.1.0(prettier@3.6.2))(prettier@3.6.2))(@prettier/plugin-oxc@0.0.4)(@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.6.2))(prettier@3.6.2) + specifier: 0.7.1 + version: 0.7.1(@ianvs/prettier-plugin-sort-imports@4.7.0(@prettier/plugin-oxc@0.0.4)(content-tag@4.0.0)(prettier-plugin-ember-template-tag@2.1.0(prettier@3.6.2))(prettier@3.6.2))(@prettier/plugin-oxc@0.0.4)(@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.6.2))(prettier@3.6.2) prettier-plugin-toml: specifier: 2.0.6 version: 2.0.6(prettier@3.6.2) @@ -174,19 +174,19 @@ importers: version: 5.9.2 typescript-eslint: specifier: 8.46.1 - version: 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + version: 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) frontend/interface: dependencies: '@tanstack/react-query': specifier: 5.90.5 - version: 5.90.5(react@19.1.1) + version: 5.90.5(react@19.2.0) '@tauri-apps/api': specifier: 2.8.0 version: 2.8.0 ahooks: specifier: 3.9.5 - version: 3.9.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 3.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) dayjs: specifier: 1.11.18 version: 1.11.18 @@ -197,11 +197,11 @@ importers: specifier: 1.4.1 version: 1.4.1 react: - specifier: 19.1.1 - version: 19.1.1 + specifier: 19.2.0 + version: 19.2.0 swr: specifier: 2.3.6 - version: 2.3.6(react@19.1.1) + version: 2.3.6(react@19.2.0) devDependencies: '@types/lodash-es': specifier: 4.17.12 @@ -214,16 +214,16 @@ importers: dependencies: '@dnd-kit/core': specifier: 6.3.1 - version: 6.3.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 6.3.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@dnd-kit/sortable': specifier: 10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0) '@dnd-kit/utilities': specifier: 3.2.2 - version: 3.2.2(react@19.1.1) + version: 3.2.2(react@19.2.0) '@emotion/styled': specifier: 11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + version: 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@juggle/resize-observer': specifier: 3.4.0 version: 3.4.0 @@ -232,16 +232,16 @@ importers: version: 0.3.0 '@mui/icons-material': specifier: 7.3.4 - version: 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + version: 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@mui/lab': specifier: 7.0.0-beta.17 - version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@mui/material': specifier: 7.3.4 - version: 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@mui/x-date-pickers': specifier: 8.14.1 - version: 8.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(dayjs@1.11.18)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 8.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(dayjs@1.11.18)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@nyanpasu/interface': specifier: workspace:^ version: link:../interface @@ -253,7 +253,7 @@ importers: version: 4.1.14 '@tanstack/router-zod-adapter': specifier: 1.81.5 - version: 1.81.5(@tanstack/react-router@1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(zod@4.1.12) + version: 1.81.5(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(zod@4.1.12) '@tauri-apps/api': specifier: 2.8.0 version: 2.8.0 @@ -262,10 +262,10 @@ importers: version: 7.0.15 ahooks: specifier: 3.9.5 - version: 3.9.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 3.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) allotment: specifier: 1.20.4 - version: 1.20.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.20.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) country-code-emoji: specifier: 2.3.0 version: 2.3.0 @@ -277,61 +277,61 @@ importers: version: 1.11.18 framer-motion: specifier: 12.23.24 - version: 12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) i18next: specifier: 25.6.0 version: 25.6.0(typescript@5.9.2) jotai: specifier: 2.15.0 - version: 2.15.0(@babel/core@7.28.4)(@babel/template@7.27.2)(@types/react@19.1.14)(react@19.1.1) + version: 2.15.0(@babel/core@7.28.4)(@babel/template@7.27.2)(@types/react@19.1.14)(react@19.2.0) json-schema: specifier: 0.4.0 version: 0.4.0 material-react-table: specifier: npm:@greenhat616/material-react-table@4.0.0 - version: '@greenhat616/material-react-table@4.0.0(639b3fafddff0f17c075a221e8500b4f)' + version: '@greenhat616/material-react-table@4.0.0(cf0080e1f91ffd25b6969a93f2859f47)' monaco-editor: specifier: 0.54.0 version: 0.54.0 mui-color-input: specifier: 7.0.0 - version: 7.0.0(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 7.0.0(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: - specifier: 19.1.1 - version: 19.1.1 + specifier: 19.2.0 + version: 19.2.0 react-dom: - specifier: 19.1.1 - version: 19.1.1(react@19.1.1) + specifier: 19.2.0 + version: 19.2.0(react@19.2.0) react-error-boundary: specifier: 6.0.0 - version: 6.0.0(react@19.1.1) + version: 6.0.0(react@19.2.0) react-fast-marquee: specifier: 1.6.5 - version: 1.6.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.6.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react-hook-form-mui: specifier: 8.0.0 - version: 8.0.0(727c690bca5ab202a045bc1a774a580a) + version: 8.0.0(37a6e4033f81f625d38c79bfcc2a64c4) react-i18next: specifier: 15.7.4 - version: 15.7.4(i18next@25.6.0(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2) + version: 15.7.4(i18next@25.6.0(typescript@5.9.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2) react-markdown: specifier: 10.1.0 - version: 10.1.0(@types/react@19.1.14)(react@19.1.1) + version: 10.1.0(@types/react@19.1.14)(react@19.2.0) react-split-grid: specifier: 1.0.4 - version: 1.0.4(react@19.1.1) + version: 1.0.4(react@19.2.0) react-use: specifier: 17.6.0 - version: 17.6.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 17.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) rxjs: specifier: 7.8.2 version: 7.8.2 swr: specifier: 2.3.6 - version: 2.3.6(react@19.1.1) + version: 2.3.6(react@19.2.0) virtua: specifier: 0.45.3 - version: 0.45.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(solid-js@1.9.5) + version: 0.45.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.5) vite-bundle-visualizer: specifier: 1.2.1 version: 1.2.1(rollup@4.46.2) @@ -344,25 +344,25 @@ importers: version: 11.13.5 '@emotion/react': specifier: 11.14.0 - version: 11.14.0(@types/react@19.1.14)(react@19.1.1) + version: 11.14.0(@types/react@19.1.14)(react@19.2.0) '@iconify/json': - specifier: 2.2.396 - version: 2.2.396 + specifier: 2.2.397 + version: 2.2.397 '@monaco-editor/react': specifier: 4.7.0 - version: 4.7.0(monaco-editor@0.54.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 4.7.0(monaco-editor@0.54.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-query': specifier: 5.90.5 - version: 5.90.5(react@19.1.1) + version: 5.90.5(react@19.2.0) '@tanstack/react-router': - specifier: 1.133.3 - version: 1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: 1.133.13 + version: 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/react-router-devtools': - specifier: 1.133.3 - version: 1.133.3(@tanstack/react-router@1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.133.3)(@types/node@24.5.2)(csstype@3.1.3)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass-embedded@1.93.2)(sass@1.93.2)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1) + specifier: 1.133.13 + version: 1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.13)(@types/node@24.5.2)(csstype@3.1.3)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass-embedded@1.93.2)(sass@1.93.2)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1) '@tanstack/router-plugin': - specifier: 1.133.4 - version: 1.133.4(@tanstack/react-router@1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.10(@types/node@24.5.2)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1)) + specifier: 1.133.13 + version: 1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.10(@types/node@24.5.2)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1)) '@tauri-apps/plugin-clipboard-manager': specifier: 2.3.0 version: 2.3.0 @@ -467,19 +467,19 @@ importers: version: 0.3.0 '@mui/icons-material': specifier: 7.3.4 - version: 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + version: 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@mui/lab': specifier: 7.0.0-beta.17 - version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@mui/material': specifier: 7.3.4 - version: 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@radix-ui/react-portal': specifier: 1.1.9 - version: 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@radix-ui/react-scroll-area': specifier: 1.2.10 - version: 1.2.10(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.10(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tauri-apps/api': specifier: 2.8.0 version: 2.8.0 @@ -494,28 +494,28 @@ importers: version: 5.0.4(vite@7.1.10(@types/node@24.5.2)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1)) ahooks: specifier: 3.9.5 - version: 3.9.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 3.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) d3: specifier: 7.9.0 version: 7.9.0 framer-motion: specifier: 12.23.24 - version: 12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: - specifier: 19.1.1 - version: 19.1.1 + specifier: 19.2.0 + version: 19.2.0 react-dom: - specifier: 19.1.1 - version: 19.1.1(react@19.1.1) + specifier: 19.2.0 + version: 19.2.0(react@19.2.0) react-error-boundary: specifier: 6.0.0 - version: 6.0.0(react@19.1.1) + version: 6.0.0(react@19.2.0) react-i18next: specifier: 15.7.4 - version: 15.7.4(i18next@25.6.0(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2) + version: 15.7.4(i18next@25.6.0(typescript@5.9.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2) react-use: specifier: 17.6.0 - version: 17.6.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 17.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) tailwindcss: specifier: 4.1.14 version: 4.1.14 @@ -528,7 +528,7 @@ importers: devDependencies: '@emotion/react': specifier: 11.14.0 - version: 11.14.0(@types/react@19.1.14)(react@19.1.1) + version: 11.14.0(@types/react@19.1.14)(react@19.2.0) '@types/d3-interpolate-path': specifier: 2.0.3 version: 2.0.3 @@ -600,8 +600,8 @@ importers: specifier: 11.3.2 version: 11.3.2 octokit: - specifier: 5.0.3 - version: 5.0.3 + specifier: 5.0.4 + version: 5.0.4 picocolors: specifier: 1.1.1 version: 1.1.1 @@ -1740,12 +1740,12 @@ packages: eslint: optional: true - '@eslint/config-array@0.21.0': - resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.4.0': - resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} + '@eslint/config-helpers@0.4.1': + resolution: {integrity: sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.16.0': @@ -1756,12 +1756,12 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.37.0': - resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} + '@eslint/js@9.38.0': + resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/plugin-kit@0.4.0': @@ -1825,8 +1825,8 @@ packages: prettier-plugin-ember-template-tag: optional: true - '@iconify/json@2.2.396': - resolution: {integrity: sha512-tijg77JFuYIt32S9N8p7La8C0zp9zKZsX6UP8ip5GVB1F6Mp3pZA5Vc5eAquTY50NoDJX58U6z4Qn3d6Wyossg==} + '@iconify/json@2.2.397': + resolution: {integrity: sha512-osoLxaGe85Vxec/fGOlx3NwKzdN3JWH8fNITn4o4P+i2UBYGMJTDGSjgl6CIM0OX50IAAFz5jYQebtxInsRnSQ==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -2126,24 +2126,24 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@octokit/app@16.0.1': - resolution: {integrity: sha512-kgTeTsWmpUX+s3Fs4EK4w1K+jWCDB6ClxLSWUWTyhlw7+L3jHtuXDR4QtABu2GsmCMdk67xRhruiXotS3ay3Yw==} + '@octokit/app@16.1.1': + resolution: {integrity: sha512-pcvKSN6Q6aT3gU5heoDFs3ywU5xejxeqs1rQpUwgN7CmBlxCSy9aCoqFuC6GpVv71O/Qq/VuYfCNzrOZp/9Ycw==} engines: {node: '>= 20'} - '@octokit/auth-app@8.0.1': - resolution: {integrity: sha512-P2J5pB3pjiGwtJX4WqJVYCtNkcZ+j5T2Wm14aJAEIC3WJOrv12jvBley3G1U/XI8q9o1A7QMG54LiFED2BiFlg==} + '@octokit/auth-app@8.1.1': + resolution: {integrity: sha512-yW9YUy1cuqWlz8u7908ed498wJFt42VYsYWjvepjojM4BdZSp4t+5JehFds7LfvYi550O/GaUI94rgbhswvxfA==} engines: {node: '>= 20'} - '@octokit/auth-oauth-app@9.0.1': - resolution: {integrity: sha512-TthWzYxuHKLAbmxdFZwFlmwVyvynpyPmjwc+2/cI3cvbT7mHtsAW9b1LvQaNnAuWL+pFnqtxdmrU8QpF633i1g==} + '@octokit/auth-oauth-app@9.0.2': + resolution: {integrity: sha512-vmjSHeuHuM+OxZLzOuoYkcY3OPZ8erJ5lfswdTmm+4XiAKB5PmCk70bA1is4uwSl/APhRVAv4KHsgevWfEKIPQ==} engines: {node: '>= 20'} - '@octokit/auth-oauth-device@8.0.1': - resolution: {integrity: sha512-TOqId/+am5yk9zor0RGibmlqn4V0h8vzjxlw/wYr3qzkQxl8aBPur384D1EyHtqvfz0syeXji4OUvKkHvxk/Gw==} + '@octokit/auth-oauth-device@8.0.2': + resolution: {integrity: sha512-KW7Ywrz7ei7JX+uClWD2DN1259fnkoKuVdhzfpQ3/GdETaCj4Tx0IjvuJrwhP/04OhcMu5yR6tjni0V6LBihdw==} engines: {node: '>= 20'} - '@octokit/auth-oauth-user@6.0.0': - resolution: {integrity: sha512-GV9IW134PHsLhtUad21WIeP9mlJ+QNpFd6V9vuPWmaiN25HEJeEQUcS4y5oRuqCm9iWDLtfIs+9K8uczBXKr6A==} + '@octokit/auth-oauth-user@6.0.1': + resolution: {integrity: sha512-vlKsL1KUUPvwXpv574zvmRd+/4JiDFXABIZNM39+S+5j2kODzGgjk7w5WtiQ1x24kRKNaE7v9DShNbw43UA3Hw==} engines: {node: '>= 20'} '@octokit/auth-token@4.0.0': @@ -2154,20 +2154,20 @@ packages: resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} - '@octokit/auth-unauthenticated@7.0.1': - resolution: {integrity: sha512-qVq1vdjLLZdE8kH2vDycNNjuJRCD1q2oet1nA/GXWaYlpDxlR7rdVhX/K/oszXslXiQIiqrQf+rdhDlA99JdTQ==} + '@octokit/auth-unauthenticated@7.0.2': + resolution: {integrity: sha512-vjcPRP1xsKWdYKiyKmHkLFCxeH4QvVTv05VJlZxwNToslBFcHRJlsWRaoI2+2JGCf9tIM99x8cN0b1rlAHJiQw==} engines: {node: '>= 20'} '@octokit/core@5.2.0': resolution: {integrity: sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==} engines: {node: '>= 18'} - '@octokit/core@7.0.2': - resolution: {integrity: sha512-ODsoD39Lq6vR6aBgvjTnA3nZGliknKboc9Gtxr7E4WDNqY24MxANKcuDQSF0jzapvGb3KWOEDrKfve4HoWGK+g==} + '@octokit/core@7.0.5': + resolution: {integrity: sha512-t54CUOsFMappY1Jbzb7fetWeO0n6K0k/4+/ZpkS+3Joz8I4VcvY9OiEBFRYISqaI2fq5sCiPtAjRDOzVYG8m+Q==} engines: {node: '>= 20'} - '@octokit/endpoint@11.0.0': - resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} + '@octokit/endpoint@11.0.1': + resolution: {integrity: sha512-7P1dRAZxuWAOPI7kXfio88trNi/MegQ0IJD3vfgC3b+LZo1Qe6gRJc2v0mz2USWWJOKrB2h5spXCzGbw+fAdqA==} engines: {node: '>= 20'} '@octokit/endpoint@9.0.6': @@ -2178,20 +2178,20 @@ packages: resolution: {integrity: sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==} engines: {node: '>= 18'} - '@octokit/graphql@9.0.1': - resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} + '@octokit/graphql@9.0.2': + resolution: {integrity: sha512-iz6KzZ7u95Fzy9Nt2L8cG88lGRMr/qy1Q36ih/XVzMIlPDMYwaNLE/ENhqmIzgPrlNWiYJkwmveEetvxAgFBJw==} engines: {node: '>= 20'} - '@octokit/oauth-app@8.0.1': - resolution: {integrity: sha512-QnhMYEQpnYbEPn9cae+wXL2LuPMFglmfeuDJXXsyxIXdoORwkLK8y0cHhd/5du9MbO/zdG/BXixzB7EEwU63eQ==} + '@octokit/oauth-app@8.0.3': + resolution: {integrity: sha512-jnAjvTsPepyUaMu9e69hYBuozEPgYqP4Z3UnpmvoIzHDpf8EXDGvTY1l1jK0RsZ194oRd+k6Hm13oRU8EoDFwg==} engines: {node: '>= 20'} '@octokit/oauth-authorization-url@8.0.0': resolution: {integrity: sha512-7QoLPRh/ssEA/HuHBHdVdSgF8xNLz/Bc5m9fZkArJE5bb6NmVkDm3anKxXPmN1zh6b5WKZPRr3697xKT/yM3qQ==} engines: {node: '>= 20'} - '@octokit/oauth-methods@6.0.0': - resolution: {integrity: sha512-Q8nFIagNLIZgM2odAraelMcDssapc+lF+y3OlcIPxyAU+knefO8KmozGqfnma1xegRDP4z5M73ABsamn72bOcA==} + '@octokit/oauth-methods@6.0.1': + resolution: {integrity: sha512-xi6Iut3izMCFzXBJtxxJehxJmAKjE8iwj6L5+raPRwlTNKAbOOBJX7/Z8AF5apD4aXvc2skwIdOnC+CQ4QuA8Q==} engines: {node: '>= 20'} '@octokit/openapi-types@20.0.0': @@ -2203,6 +2203,9 @@ packages: '@octokit/openapi-types@25.1.0': resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} + '@octokit/openapi-types@26.0.0': + resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} + '@octokit/openapi-webhooks-types@12.0.3': resolution: {integrity: sha512-90MF5LVHjBedwoHyJsgmaFhEN1uzXyBDRLEBe7jlTYx/fEhPAk3P3DAJsfZwC54m8hAIryosJOL+UuZHB3K3yA==} @@ -2212,8 +2215,8 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-paginate-rest@13.1.0': - resolution: {integrity: sha512-16iNOa4rTTjaWtfsPGJcYYL79FJakseX8TQFIPfVuSPC3s5nkS/DSNQPFPc5lJHgEDBWNMxSApHrEymNblhA9w==} + '@octokit/plugin-paginate-rest@13.2.0': + resolution: {integrity: sha512-YuAlyjR8o5QoRSOvMHxSJzPtogkNMgeMv2mpccrvdUGeC3MKyfi/hS+KiFwyH/iRKIKyx+eIMsDjbt3p9r2GYA==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -2230,20 +2233,20 @@ packages: peerDependencies: '@octokit/core': '5' - '@octokit/plugin-rest-endpoint-methods@16.0.0': - resolution: {integrity: sha512-kJVUQk6/dx/gRNLWUnAWKFs1kVPn5O5CYZyssyEoNYaFedqZxsfYs7DwI3d67hGz4qOwaJ1dpm07hOAD1BXx6g==} + '@octokit/plugin-rest-endpoint-methods@16.1.0': + resolution: {integrity: sha512-nCsyiKoGRnhH5LkH8hJEZb9swpqOcsW+VXv1QoyUNQXJeVODG4+xM6UICEqyqe9XFr6LkL8BIiFCPev8zMDXPw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-retry@8.0.1': - resolution: {integrity: sha512-KUoYR77BjF5O3zcwDQHRRZsUvJwepobeqiSSdCJ8lWt27FZExzb0GgVxrhhfuyF6z2B2zpO0hN5pteni1sqWiw==} + '@octokit/plugin-retry@8.0.2': + resolution: {integrity: sha512-mVPCe77iaD8g1lIX46n9bHPUirFLzc3BfIzsZOpB7bcQh1ecS63YsAgcsyMGqvGa2ARQWKEFTrhMJX2MLJVHVw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=7' - '@octokit/plugin-throttling@11.0.1': - resolution: {integrity: sha512-S+EVhy52D/272L7up58dr3FNSMXWuNZolkL4zMJBNIfIxyZuUcczsQAU4b5w6dewJXnKYVgSHSV5wxitMSW1kw==} + '@octokit/plugin-throttling@11.0.2': + resolution: {integrity: sha512-ntNIig4zZhQVOZF4fG9Wt8QCoz9ehb+xnlUwp74Ic2ANChCk8oKmRwV9zDDCtrvU1aERIOvtng8wsalEX7Jk5Q==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': ^7.0.0 @@ -2252,12 +2255,12 @@ packages: resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} engines: {node: '>= 18'} - '@octokit/request-error@7.0.0': - resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} + '@octokit/request-error@7.0.1': + resolution: {integrity: sha512-CZpFwV4+1uBrxu7Cw8E5NCXDWFNf18MSY23TdxCBgjw1tXXHvTrZVsXlW8hgFTOLw8RQR1BBrMvYRtuyaijHMA==} engines: {node: '>= 20'} - '@octokit/request@10.0.2': - resolution: {integrity: sha512-iYj4SJG/2bbhh+iIpFmG5u49DtJ4lipQ+aPakjL9OKpsGY93wM8w06gvFbEQxcMsZcCvk5th5KkIm2m8o14aWA==} + '@octokit/request@10.0.5': + resolution: {integrity: sha512-TXnouHIYLtgDhKo+N6mXATnDBkV05VwbR0TtMWpgTHIoQdRQfCSzmy/LGqR1AbRMbijq/EckC/E3/ZNcU92NaQ==} engines: {node: '>= 20'} '@octokit/request@8.4.1': @@ -2273,6 +2276,9 @@ packages: '@octokit/types@14.1.0': resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} + '@octokit/types@15.0.0': + resolution: {integrity: sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==} + '@octokit/webhooks-methods@6.0.0': resolution: {integrity: sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ==} engines: {node: '>= 20'} @@ -3102,16 +3108,16 @@ packages: peerDependencies: react: ^18 || ^19 - '@tanstack/react-router-devtools@1.133.3': - resolution: {integrity: sha512-lThQySAuTnCX+a3+nljVaIeeT9WHk+1o9YDGhxrOv03ENXWRSruSZ0r0fKquruag/WyTCUqjnYL0PH7uHJz62Q==} + '@tanstack/react-router-devtools@1.133.13': + resolution: {integrity: sha512-Bc7jap95WD32U0KSuPDZOehujwycNE8cUoroQ8/A2FIugTV6msxW7/fm1Dny7MzVv2lc8VgRIykFGt1vveZgVA==} engines: {node: '>=12'} peerDependencies: - '@tanstack/react-router': ^1.133.3 + '@tanstack/react-router': ^1.133.13 react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-router@1.133.3': - resolution: {integrity: sha512-m83U/KbCtcFhjeF0+TFt7L3h4aKoq9e4ikfGwEIoNZn3JyKv9LoUEz0ofXbIswCY034xpnMWW0WHqPvpodOPvQ==} + '@tanstack/react-router@1.133.13': + resolution: {integrity: sha512-mVAj70mPOH/a60Hjlha3gHEWLFuE4kHeKau/AL5Xp6e5GtNk1JTRwN4sJ9QlSyLcClOUUtGfED1FoLj0D2W0Eg==} engines: {node: '>=12'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -3136,15 +3142,15 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/router-core@1.133.3': - resolution: {integrity: sha512-S9vigHZ+eOz197cHd5tRNHk2OUieBJJB7TKFGHf8bWcAYEV5XU/dsC2CD9HbToLgjP9xWkh3ogAfvEW1rEA9hw==} + '@tanstack/router-core@1.133.13': + resolution: {integrity: sha512-zZptdlS/wSkqozb07Y3zX5gas2OapJdjEG6/Id0e/twNefVdR4EY2TK/mgvyhHtKIpCxIcnZz/3opypgeQi9bg==} engines: {node: '>=12'} - '@tanstack/router-devtools-core@1.133.3': - resolution: {integrity: sha512-QmUZu/Dof1ek1XIpZ1ryLljpP8Ox0NV7ctkwuJUxpfdn75v+y9SHXGXLwxkTB2l7chKKqskYVmVv7VZVXBzKTQ==} + '@tanstack/router-devtools-core@1.133.13': + resolution: {integrity: sha512-NyXZws0sVeB6+410fa2fopitFAbEqKMhGZw1ojI4bp3DyVwL6l9cnIRHw6qew3gRUVa3SBn00puJ++LfZSYc7w==} engines: {node: '>=12'} peerDependencies: - '@tanstack/router-core': ^1.133.3 + '@tanstack/router-core': ^1.133.13 csstype: ^3.0.10 solid-js: '>=1.9.5' tiny-invariant: ^1.3.3 @@ -3152,16 +3158,16 @@ packages: csstype: optional: true - '@tanstack/router-generator@1.133.4': - resolution: {integrity: sha512-OmafLkRMm21L/yZsx0FmRQeg0GZ1suQAW8/n0KvaJZcN8XP/WRfNtNkilDucWByWxAXC/Lxy8bKP2DW/omJuAw==} + '@tanstack/router-generator@1.133.13': + resolution: {integrity: sha512-W5locmcYSz0dY+KEOIFijUeOdQEzjCxY+uT9ExY/YeQcOBcBFIk9/UnBkE6wRLCPOBb1gfURjPNc9rI93HGrOA==} engines: {node: '>=12'} - '@tanstack/router-plugin@1.133.4': - resolution: {integrity: sha512-jyYIoHMIEWepYdH213s9+35V9aevO4Mp5BnHszbpL7pDQx17UDy+F7Eky/jzCCf+YiGo0NbWXRYVNBb8q4D7Hw==} + '@tanstack/router-plugin@1.133.13': + resolution: {integrity: sha512-R5cbCwdw5chQhgaVERE2JlPpGWcER4FuVkRGDbLaW/rpawIskJCjkAbhqyfgXPF8VsEUOs9+7FK6ocODnqM/qA==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' - '@tanstack/react-router': ^1.133.3 + '@tanstack/react-router': ^1.133.13 vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' vite-plugin-solid: ^2.11.8 webpack: '>=5.92.0' @@ -5139,8 +5145,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.37.0: - resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} + eslint@9.38.0: + resolution: {integrity: sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -6771,8 +6777,8 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - octokit@5.0.3: - resolution: {integrity: sha512-+bwYsAIRmYv30NTmBysPIlgH23ekVDriB07oRxlPIAH5PI0yTMSxg5i5Xy0OetcnZw+nk/caD4szD7a9YZ3QyQ==} + octokit@5.0.4: + resolution: {integrity: sha512-4n/mMoLQs2npBE+aTG5o4H+hZhFKu8aDqZFP/nmUNRUYrTpXpaqvX1ppK5eiCtQ+uP/8jI6vbdfCB2udlBgccA==} engines: {node: '>= 20'} ofetch@1.4.1: @@ -7077,8 +7083,8 @@ packages: peerDependencies: prettier: '>= 3.0.0' - prettier-plugin-tailwindcss@0.7.0: - resolution: {integrity: sha512-zpRZhkfwq1cNmbKhmKzXKuKFdkgXZXlf6p+KttD75v6pGz1FxmcKMc4RKdw97GYBKBbout4113HSLaBJAomFDw==} + prettier-plugin-tailwindcss@0.7.1: + resolution: {integrity: sha512-Bzv1LZcuiR1Sk02iJTS1QzlFNp/o5l2p3xkopwOrbPmtMeh3fK9rVW5M3neBQzHq+kGKj/4LGQMTNcTH4NGPtQ==} engines: {node: '>=20.19'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -7190,10 +7196,10 @@ packages: resolution: {integrity: sha512-yp7kADDET5neqMMBtwRIPqJ1tcVXWP88RsSCdOrwYsxGGL/pS5Za4jOCYekiZb0m7nzTbSH158ugGyNnBaDJvQ==} hasBin: true - react-dom@19.1.1: - resolution: {integrity: sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==} + react-dom@19.2.0: + resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==} peerDependencies: - react: ^19.1.1 + react: ^19.2.0 react-error-boundary@6.0.0: resolution: {integrity: sha512-gdlJjD7NWr0IfkPlaREN2d9uUZUlksrfOx7SX62VRerwXbMY6ftGCIZua1VG1aXFNOimhISsTq+Owp725b9SiA==} @@ -7285,8 +7291,8 @@ packages: react: '*' react-dom: '*' - react@19.1.1: - resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} + react@19.2.0: + resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -7617,8 +7623,8 @@ packages: sax@1.3.0: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - scheduler@0.26.0: - resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} screenfull@5.2.0: resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} @@ -8795,7 +8801,7 @@ snapshots: '@babel/traverse': 7.28.0 '@babel/types': 7.28.1 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -8835,7 +8841,7 @@ snapshots: '@babel/traverse': 7.28.3 '@babel/types': 7.28.2 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9937,29 +9943,29 @@ snapshots: '@ctrl/tinycolor@4.1.0': {} - '@dnd-kit/accessibility@3.1.1(react@19.1.1)': + '@dnd-kit/accessibility@3.1.1(react@19.2.0)': dependencies: - react: 19.1.1 + react: 19.2.0 tslib: 2.8.1 - '@dnd-kit/core@6.3.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@dnd-kit/core@6.3.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@dnd-kit/accessibility': 3.1.1(react@19.1.1) - '@dnd-kit/utilities': 3.2.2(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@dnd-kit/accessibility': 3.1.1(react@19.2.0) + '@dnd-kit/utilities': 3.2.2(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) tslib: 2.7.0 - '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)': + '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@dnd-kit/utilities': 3.2.2(react@19.1.1) - react: 19.1.1 + '@dnd-kit/core': 6.3.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@dnd-kit/utilities': 3.2.2(react@19.2.0) + react: 19.2.0 tslib: 2.7.0 - '@dnd-kit/utilities@3.2.2(react@19.1.1)': + '@dnd-kit/utilities@3.2.2(react@19.2.0)': dependencies: - react: 19.1.1 + react: 19.2.0 tslib: 2.7.0 '@dual-bundle/import-meta-resolve@4.2.1': {} @@ -10042,17 +10048,17 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1)': + '@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.0) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 transitivePeerDependencies: @@ -10068,16 +10074,16 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.27.6 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.3.0 - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.0) '@emotion/utils': 1.4.2 - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 transitivePeerDependencies: @@ -10085,9 +10091,9 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.1.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.0)': dependencies: - react: 19.1.1 + react: 19.2.0 '@emotion/utils@1.4.2': {} @@ -10170,33 +10176,33 @@ snapshots: '@esbuild/win32-x64@0.25.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.37.0(jiti@2.6.0))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.38.0(jiti@2.6.0))': dependencies: - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.8.0(eslint@9.37.0(jiti@2.6.0))': + '@eslint-community/eslint-utils@4.8.0(eslint@9.38.0(jiti@2.6.0))': dependencies: - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.4.0(eslint@9.37.0(jiti@2.6.0))': + '@eslint/compat@1.4.0(eslint@9.38.0(jiti@2.6.0))': dependencies: '@eslint/core': 0.16.0 optionalDependencies: - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) - '@eslint/config-array@0.21.0': + '@eslint/config-array@0.21.1': dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.4.0': + '@eslint/config-helpers@0.4.1': dependencies: '@eslint/core': 0.16.0 @@ -10218,9 +10224,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.37.0': {} + '@eslint/js@9.38.0': {} - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} '@eslint/plugin-kit@0.4.0': dependencies: @@ -10229,19 +10235,19 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@greenhat616/material-react-table@4.0.0(639b3fafddff0f17c075a221e8500b4f)': + '@greenhat616/material-react-table@4.0.0(cf0080e1f91ffd25b6969a93f2859f47)': dependencies: - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) - '@mui/icons-material': 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) - '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@mui/x-date-pickers': 8.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(dayjs@1.11.18)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) + '@mui/icons-material': 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) + '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@mui/x-date-pickers': 8.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(dayjs@1.11.18)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@tanstack/match-sorter-utils': 8.19.4 - '@tanstack/react-table': 8.21.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/react-virtual': 3.13.9(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/react-table': 8.21.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/react-virtual': 3.13.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) highlight-words: 2.0.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) '@humanfs/core@0.19.1': {} @@ -10273,7 +10279,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@iconify/json@2.2.396': + '@iconify/json@2.2.397': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -10368,79 +10374,79 @@ snapshots: dependencies: state-local: 1.0.7 - '@monaco-editor/react@4.7.0(monaco-editor@0.54.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@monaco-editor/react@4.7.0(monaco-editor@0.54.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@monaco-editor/loader': 1.5.0 monaco-editor: 0.54.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) '@mui/core-downloads-tracker@7.3.4': {} - '@mui/icons-material@7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react@19.1.1)': + '@mui/icons-material@7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - react: 19.1.1 + '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 - '@mui/lab@7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@mui/lab@7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@babel/runtime': 7.28.3 - '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@mui/system': 7.3.2(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@mui/system': 7.3.2(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@mui/types': 7.4.6(@types/react@19.1.14) - '@mui/utils': 7.3.2(@types/react@19.1.14)(react@19.1.1) + '@mui/utils': 7.3.2(@types/react@19.1.14)(react@19.2.0) clsx: 2.1.1 prop-types: 15.8.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@types/react': 19.1.14 - '@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@mui/core-downloads-tracker': 7.3.4 - '@mui/system': 7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@mui/system': 7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@mui/types': 7.4.7(@types/react@19.1.14) - '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.1.1) + '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.2.0) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.12(@types/react@19.1.14) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) react-is: 19.1.1 - react-transition-group: 4.4.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@types/react': 19.1.14 - '@mui/private-theming@7.3.2(@types/react@19.1.14)(react@19.1.1)': + '@mui/private-theming@7.3.2(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.1.1) + '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.2.0) prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 - '@mui/private-theming@7.3.3(@types/react@19.1.14)(react@19.1.1)': + '@mui/private-theming@7.3.3(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.1.1) + '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.2.0) prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 - '@mui/styled-engine@7.3.2(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(react@19.1.1)': + '@mui/styled-engine@7.3.2(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@emotion/cache': 11.14.0 @@ -10448,12 +10454,12 @@ snapshots: '@emotion/sheet': 1.4.0 csstype: 3.1.3 prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) - '@mui/styled-engine@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(react@19.1.1)': + '@mui/styled-engine@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@emotion/cache': 11.14.0 @@ -10461,41 +10467,41 @@ snapshots: '@emotion/sheet': 1.4.0 csstype: 3.1.3 prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) - '@mui/system@7.3.2(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1)': + '@mui/system@7.3.2(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/private-theming': 7.3.2(@types/react@19.1.14)(react@19.1.1) - '@mui/styled-engine': 7.3.2(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(react@19.1.1) + '@mui/private-theming': 7.3.2(@types/react@19.1.14)(react@19.2.0) + '@mui/styled-engine': 7.3.2(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(react@19.2.0) '@mui/types': 7.4.6(@types/react@19.1.14) - '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.1.1) + '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.2.0) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@types/react': 19.1.14 - '@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1)': + '@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/private-theming': 7.3.3(@types/react@19.1.14)(react@19.1.1) - '@mui/styled-engine': 7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(react@19.1.1) + '@mui/private-theming': 7.3.3(@types/react@19.1.14)(react@19.2.0) + '@mui/styled-engine': 7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(react@19.2.0) '@mui/types': 7.4.7(@types/react@19.1.14) - '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.1.1) + '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.2.0) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) '@types/react': 19.1.14 '@mui/types@7.4.6(@types/react@19.1.14)': @@ -10510,57 +10516,57 @@ snapshots: optionalDependencies: '@types/react': 19.1.14 - '@mui/utils@7.3.2(@types/react@19.1.14)(react@19.1.1)': + '@mui/utils@7.3.2(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@mui/types': 7.4.6(@types/react@19.1.14) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 react-is: 19.1.1 optionalDependencies: '@types/react': 19.1.14 - '@mui/utils@7.3.3(@types/react@19.1.14)(react@19.1.1)': + '@mui/utils@7.3.3(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@mui/types': 7.4.7(@types/react@19.1.14) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 react-is: 19.1.1 optionalDependencies: '@types/react': 19.1.14 - '@mui/x-date-pickers@8.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(dayjs@1.11.18)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@mui/x-date-pickers@8.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(dayjs@1.11.18)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@mui/system': 7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) - '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.1.1) - '@mui/x-internals': 8.14.0(@types/react@19.1.14)(react@19.1.1) + '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@mui/system': 7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) + '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.2.0) + '@mui/x-internals': 8.14.0(@types/react@19.1.14)(react@19.2.0) '@types/react-transition-group': 4.4.12(@types/react@19.1.14) clsx: 2.1.1 prop-types: 15.8.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-transition-group: 4.4.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) dayjs: 1.11.18 transitivePeerDependencies: - '@types/react' - '@mui/x-internals@8.14.0(@types/react@19.1.14)(react@19.1.1)': + '@mui/x-internals@8.14.0(@types/react@19.1.14)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.1.1) - react: 19.1.1 + '@mui/utils': 7.3.3(@types/react@19.1.14)(react@19.2.0) + react: 19.2.0 reselect: 5.1.1 - use-sync-external-store: 1.6.0(react@19.1.1) + use-sync-external-store: 1.6.0(react@19.2.0) transitivePeerDependencies: - '@types/react' @@ -10592,58 +10598,58 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} - '@octokit/app@16.0.1': + '@octokit/app@16.1.1': dependencies: - '@octokit/auth-app': 8.0.1 - '@octokit/auth-unauthenticated': 7.0.1 - '@octokit/core': 7.0.2 - '@octokit/oauth-app': 8.0.1 - '@octokit/plugin-paginate-rest': 13.1.0(@octokit/core@7.0.2) - '@octokit/types': 14.1.0 + '@octokit/auth-app': 8.1.1 + '@octokit/auth-unauthenticated': 7.0.2 + '@octokit/core': 7.0.5 + '@octokit/oauth-app': 8.0.3 + '@octokit/plugin-paginate-rest': 13.2.0(@octokit/core@7.0.5) + '@octokit/types': 15.0.0 '@octokit/webhooks': 14.0.2 - '@octokit/auth-app@8.0.1': + '@octokit/auth-app@8.1.1': dependencies: - '@octokit/auth-oauth-app': 9.0.1 - '@octokit/auth-oauth-user': 6.0.0 - '@octokit/request': 10.0.2 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/auth-oauth-app': 9.0.2 + '@octokit/auth-oauth-user': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 toad-cache: 3.7.0 universal-github-app-jwt: 2.2.0 universal-user-agent: 7.0.2 - '@octokit/auth-oauth-app@9.0.1': + '@octokit/auth-oauth-app@9.0.2': dependencies: - '@octokit/auth-oauth-device': 8.0.1 - '@octokit/auth-oauth-user': 6.0.0 - '@octokit/request': 10.0.2 - '@octokit/types': 14.1.0 + '@octokit/auth-oauth-device': 8.0.2 + '@octokit/auth-oauth-user': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.2 - '@octokit/auth-oauth-device@8.0.1': + '@octokit/auth-oauth-device@8.0.2': dependencies: - '@octokit/oauth-methods': 6.0.0 - '@octokit/request': 10.0.2 - '@octokit/types': 14.1.0 + '@octokit/oauth-methods': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.2 - '@octokit/auth-oauth-user@6.0.0': + '@octokit/auth-oauth-user@6.0.1': dependencies: - '@octokit/auth-oauth-device': 8.0.1 - '@octokit/oauth-methods': 6.0.0 - '@octokit/request': 10.0.2 - '@octokit/types': 14.1.0 + '@octokit/auth-oauth-device': 8.0.2 + '@octokit/oauth-methods': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.2 '@octokit/auth-token@4.0.0': {} '@octokit/auth-token@6.0.0': {} - '@octokit/auth-unauthenticated@7.0.1': + '@octokit/auth-unauthenticated@7.0.2': dependencies: - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 '@octokit/core@5.2.0': dependencies: @@ -10655,19 +10661,19 @@ snapshots: before-after-hook: 2.2.3 universal-user-agent: 6.0.1 - '@octokit/core@7.0.2': + '@octokit/core@7.0.5': dependencies: '@octokit/auth-token': 6.0.0 - '@octokit/graphql': 9.0.1 - '@octokit/request': 10.0.2 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/graphql': 9.0.2 + '@octokit/request': 10.0.5 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 before-after-hook: 4.0.0 universal-user-agent: 7.0.2 - '@octokit/endpoint@11.0.0': + '@octokit/endpoint@11.0.1': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.2 '@octokit/endpoint@9.0.6': @@ -10681,31 +10687,31 @@ snapshots: '@octokit/types': 13.10.0 universal-user-agent: 6.0.1 - '@octokit/graphql@9.0.1': + '@octokit/graphql@9.0.2': dependencies: - '@octokit/request': 10.0.2 - '@octokit/types': 14.1.0 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.2 - '@octokit/oauth-app@8.0.1': + '@octokit/oauth-app@8.0.3': dependencies: - '@octokit/auth-oauth-app': 9.0.1 - '@octokit/auth-oauth-user': 6.0.0 - '@octokit/auth-unauthenticated': 7.0.1 - '@octokit/core': 7.0.2 + '@octokit/auth-oauth-app': 9.0.2 + '@octokit/auth-oauth-user': 6.0.1 + '@octokit/auth-unauthenticated': 7.0.2 + '@octokit/core': 7.0.5 '@octokit/oauth-authorization-url': 8.0.0 - '@octokit/oauth-methods': 6.0.0 + '@octokit/oauth-methods': 6.0.1 '@types/aws-lambda': 8.10.138 universal-user-agent: 7.0.2 '@octokit/oauth-authorization-url@8.0.0': {} - '@octokit/oauth-methods@6.0.0': + '@octokit/oauth-methods@6.0.1': dependencies: '@octokit/oauth-authorization-url': 8.0.0 - '@octokit/request': 10.0.2 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/request': 10.0.5 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 '@octokit/openapi-types@20.0.0': {} @@ -10713,16 +10719,18 @@ snapshots: '@octokit/openapi-types@25.1.0': {} + '@octokit/openapi-types@26.0.0': {} + '@octokit/openapi-webhooks-types@12.0.3': {} - '@octokit/plugin-paginate-graphql@6.0.0(@octokit/core@7.0.2)': + '@octokit/plugin-paginate-graphql@6.0.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.2 + '@octokit/core': 7.0.5 - '@octokit/plugin-paginate-rest@13.1.0(@octokit/core@7.0.2)': + '@octokit/plugin-paginate-rest@13.2.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.2 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.5 + '@octokit/types': 15.0.0 '@octokit/plugin-paginate-rest@9.2.2(@octokit/core@5.2.0)': dependencies: @@ -10734,22 +10742,22 @@ snapshots: '@octokit/core': 5.2.0 '@octokit/types': 12.6.0 - '@octokit/plugin-rest-endpoint-methods@16.0.0(@octokit/core@7.0.2)': + '@octokit/plugin-rest-endpoint-methods@16.1.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.2 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.5 + '@octokit/types': 15.0.0 - '@octokit/plugin-retry@8.0.1(@octokit/core@7.0.2)': + '@octokit/plugin-retry@8.0.2(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.2 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.5 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 bottleneck: 2.19.5 - '@octokit/plugin-throttling@11.0.1(@octokit/core@7.0.2)': + '@octokit/plugin-throttling@11.0.2(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.2 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.5 + '@octokit/types': 15.0.0 bottleneck: 2.19.5 '@octokit/request-error@5.1.1': @@ -10758,15 +10766,15 @@ snapshots: deprecation: 2.3.1 once: 1.4.0 - '@octokit/request-error@7.0.0': + '@octokit/request-error@7.0.1': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 - '@octokit/request@10.0.2': + '@octokit/request@10.0.5': dependencies: - '@octokit/endpoint': 11.0.0 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/endpoint': 11.0.1 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.2 @@ -10789,12 +10797,16 @@ snapshots: dependencies: '@octokit/openapi-types': 25.1.0 + '@octokit/types@15.0.0': + dependencies: + '@octokit/openapi-types': 26.0.0 + '@octokit/webhooks-methods@6.0.0': {} '@octokit/webhooks@14.0.2': dependencies: '@octokit/openapi-webhooks-types': 12.0.3 - '@octokit/request-error': 7.0.0 + '@octokit/request-error': 7.0.1 '@octokit/webhooks-methods': 6.0.0 '@oxc-parser/binding-android-arm64@0.74.0': @@ -10974,86 +10986,86 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.14)(react@19.1.1)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.14)(react@19.2.0)': dependencies: - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 - '@radix-ui/react-context@1.1.2(@types/react@19.1.14)(react@19.1.1)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.14)(react@19.2.0)': dependencies: - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 - '@radix-ui/react-direction@1.1.1(@types/react@19.1.14)(react@19.1.1)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.14)(react@19.2.0)': dependencies: - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.14)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.14)(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) optionalDependencies: '@types/react': 19.1.14 '@types/react-dom': 19.1.9(@types/react@19.1.14) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.14)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.14)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.14)(react@19.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.14)(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) optionalDependencies: '@types/react': 19.1.14 '@types/react-dom': 19.1.9(@types/react@19.1.14) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.14)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.14)(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) optionalDependencies: '@types/react': 19.1.14 '@types/react-dom': 19.1.9(@types/react@19.1.14) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.14)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.14)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.14)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.14)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.14)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.14)(react@19.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.14)(react@19.2.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.14)(react@19.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.14))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.14)(react@19.2.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.14)(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) optionalDependencies: '@types/react': 19.1.14 '@types/react-dom': 19.1.9(@types/react@19.1.14) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.14)(react@19.1.1)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.14)(react@19.2.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.14)(react@19.1.1) - react: 19.1.1 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.14)(react@19.2.0) + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.14)(react@19.1.1)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.14)(react@19.2.0)': dependencies: - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.14)(react@19.1.1)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.14)(react@19.2.0)': dependencies: - react: 19.1.1 + react: 19.2.0 optionalDependencies: '@types/react': 19.1.14 @@ -11215,10 +11227,10 @@ snapshots: '@sindresorhus/is@4.6.0': {} - '@stylistic/eslint-plugin@2.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2)': + '@stylistic/eslint-plugin@2.11.0(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: - '@typescript-eslint/utils': 8.44.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) - eslint: 9.37.0(jiti@2.6.0) + '@typescript-eslint/utils': 8.44.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.38.0(jiti@2.6.0) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -11433,17 +11445,17 @@ snapshots: '@tanstack/query-core@5.90.5': {} - '@tanstack/react-query@5.90.5(react@19.1.1)': + '@tanstack/react-query@5.90.5(react@19.2.0)': dependencies: '@tanstack/query-core': 5.90.5 - react: 19.1.1 + react: 19.2.0 - '@tanstack/react-router-devtools@1.133.3(@tanstack/react-router@1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.133.3)(@types/node@24.5.2)(csstype@3.1.3)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass-embedded@1.93.2)(sass@1.93.2)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)': + '@tanstack/react-router-devtools@1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.133.13)(@types/node@24.5.2)(csstype@3.1.3)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass-embedded@1.93.2)(sass@1.93.2)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)': dependencies: - '@tanstack/react-router': 1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-devtools-core': 1.133.3(@tanstack/router-core@1.133.3)(@types/node@24.5.2)(csstype@3.1.3)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/router-devtools-core': 1.133.13(@tanstack/router-core@1.133.13)(@types/node@24.5.2)(csstype@3.1.3)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) vite: 7.1.10(@types/node@24.5.2)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@tanstack/router-core' @@ -11462,37 +11474,37 @@ snapshots: - tsx - yaml - '@tanstack/react-router@1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@tanstack/history': 1.133.3 - '@tanstack/react-store': 0.7.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-core': 1.133.3 + '@tanstack/react-store': 0.7.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@tanstack/router-core': 1.133.13 isbot: 5.1.28 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-store@0.7.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-store@0.7.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@tanstack/store': 0.7.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - use-sync-external-store: 1.6.0(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + use-sync-external-store: 1.6.0(react@19.2.0) - '@tanstack/react-table@8.21.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-table@8.21.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@tanstack/table-core': 8.21.3 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@tanstack/react-virtual@3.13.9(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-virtual@3.13.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@tanstack/virtual-core': 3.13.9 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - '@tanstack/router-core@1.133.3': + '@tanstack/router-core@1.133.13': dependencies: '@tanstack/history': 1.133.3 '@tanstack/store': 0.7.0 @@ -11502,9 +11514,9 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/router-devtools-core@1.133.3(@tanstack/router-core@1.133.3)(@types/node@24.5.2)(csstype@3.1.3)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)': + '@tanstack/router-devtools-core@1.133.13(@tanstack/router-core@1.133.13)(@types/node@24.5.2)(csstype@3.1.3)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)': dependencies: - '@tanstack/router-core': 1.133.3 + '@tanstack/router-core': 1.133.13 clsx: 2.1.1 goober: 2.1.16(csstype@3.1.3) solid-js: 1.9.5 @@ -11525,9 +11537,9 @@ snapshots: - tsx - yaml - '@tanstack/router-generator@1.133.4': + '@tanstack/router-generator@1.133.13': dependencies: - '@tanstack/router-core': 1.133.3 + '@tanstack/router-core': 1.133.13 '@tanstack/router-utils': 1.133.3 '@tanstack/virtual-file-routes': 1.133.3 prettier: 3.6.2 @@ -11538,7 +11550,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.133.4(@tanstack/react-router@1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.10(@types/node@24.5.2)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1))': + '@tanstack/router-plugin@1.133.13(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.10(@types/node@24.5.2)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) @@ -11546,8 +11558,8 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/router-core': 1.133.3 - '@tanstack/router-generator': 1.133.4 + '@tanstack/router-core': 1.133.13 + '@tanstack/router-generator': 1.133.13 '@tanstack/router-utils': 1.133.3 '@tanstack/virtual-file-routes': 1.133.3 babel-dead-code-elimination: 1.0.10 @@ -11555,7 +11567,7 @@ snapshots: unplugin: 2.3.10 zod: 3.25.76 optionalDependencies: - '@tanstack/react-router': 1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) vite: 7.1.10(@types/node@24.5.2)(jiti@2.6.0)(less@4.2.0)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -11573,9 +11585,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-zod-adapter@1.81.5(@tanstack/react-router@1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(zod@4.1.12)': + '@tanstack/router-zod-adapter@1.81.5(@tanstack/react-router@1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(zod@4.1.12)': dependencies: - '@tanstack/react-router': 1.133.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/react-router': 1.133.13(react-dom@19.2.0(react@19.2.0))(react@19.2.0) zod: 4.1.12 '@tanstack/store@0.7.0': {} @@ -11961,15 +11973,15 @@ snapshots: '@types/node': 24.5.2 optional: true - '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/parser': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/type-utils': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.46.1 - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -11978,14 +11990,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: '@typescript-eslint/scope-manager': 8.46.1 '@typescript-eslint/types': 8.46.1 '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.46.1 debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -12030,13 +12042,13 @@ snapshots: dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 8.46.1 '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.2) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 transitivePeerDependencies: @@ -12082,24 +12094,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.44.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/utils@8.44.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.37.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.8.0(eslint@9.38.0(jiti@2.6.0)) '@typescript-eslint/scope-manager': 8.44.1 '@typescript-eslint/types': 8.44.1 '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2) - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2)': + '@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.37.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.8.0(eslint@9.38.0(jiti@2.6.0)) '@typescript-eslint/scope-manager': 8.46.1 '@typescript-eslint/types': 8.46.1 '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.2) - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -12280,7 +12292,7 @@ snapshots: adm-zip@0.5.16: {} - ahooks@3.9.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + ahooks@3.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@babel/runtime': 7.28.2 '@types/js-cookie': 3.0.6 @@ -12288,8 +12300,8 @@ snapshots: intersection-observer: 0.12.2 js-cookie: 3.0.5 lodash: 4.17.21 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) react-fast-compare: 3.2.2 resize-observer-polyfill: 1.5.1 screenfull: 5.2.0 @@ -12333,16 +12345,16 @@ snapshots: alien-signals@0.4.14: {} - allotment@1.20.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + allotment@1.20.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: classnames: 2.5.1 eventemitter3: 5.0.1 lodash.clamp: 4.0.3 lodash.debounce: 4.0.8 lodash.isequal: 4.5.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - use-resize-observer: 9.1.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + use-resize-observer: 9.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) ansi-align@2.0.0: dependencies: @@ -13677,14 +13689,14 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.37.0(jiti@2.6.0)): + eslint-compat-utils@0.5.1(eslint@9.38.0(jiti@2.6.0)): dependencies: - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) semver: 7.7.3 - eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.0)): + eslint-config-prettier@10.1.8(eslint@9.38.0(jiti@2.6.0)): dependencies: - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) eslint-import-context@0.1.9(unrs-resolver@1.10.1): dependencies: @@ -13693,9 +13705,9 @@ snapshots: optionalDependencies: unrs-resolver: 1.10.1 - eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0))): + eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0))): dependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0)) eslint-import-resolver-node@0.3.9: dependencies: @@ -13705,49 +13717,49 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0)))(eslint@9.38.0(jiti@2.6.0)): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.1 - eslint: 9.37.0(jiti@2.6.0) + debug: 4.4.3 + eslint: 9.38.0(jiti@2.6.0) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.14 unrs-resolver: 1.10.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0)) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0)) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.6.0)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.0)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.6.0)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) - eslint: 9.37.0(jiti@2.6.0) + '@typescript-eslint/parser': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.38.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.37.0(jiti@2.6.0)): + eslint-plugin-es-x@7.8.0(eslint@9.38.0(jiti@2.6.0)): dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.37.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.8.0(eslint@9.38.0(jiti@2.6.0)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.37.0(jiti@2.6.0) - eslint-compat-utils: 0.5.1(eslint@9.37.0(jiti@2.6.0)) + eslint: 9.38.0(jiti@2.6.0) + eslint-compat-utils: 0.5.1(eslint@9.38.0(jiti@2.6.0)) eslint-plugin-html@8.1.3: dependencies: htmlparser2: 10.0.0 - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.0)): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.6.0)): dependencies: '@typescript-eslint/types': 8.41.0 comment-parser: 1.4.1 - debug: 4.4.1 - eslint: 9.37.0(jiti@2.6.0) + debug: 4.4.3 + eslint: 9.38.0(jiti@2.6.0) eslint-import-context: 0.1.9(unrs-resolver@1.10.1) is-glob: 4.0.3 minimatch: 9.0.5 @@ -13755,12 +13767,12 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.10.1 optionalDependencies: - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -13769,9 +13781,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.0)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.6.0)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13783,18 +13795,18 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/parser': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-n@17.23.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2): + eslint-plugin-n@17.23.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2): dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.37.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.8.0(eslint@9.38.0(jiti@2.6.0)) enhanced-resolve: 5.18.3 - eslint: 9.37.0(jiti@2.6.0) - eslint-plugin-es-x: 7.8.0(eslint@9.37.0(jiti@2.6.0)) + eslint: 9.38.0(jiti@2.6.0) + eslint-plugin-es-x: 7.8.0(eslint@9.38.0(jiti@2.6.0)) get-tsconfig: 4.10.1 globals: 15.15.0 globrex: 0.1.2 @@ -13804,37 +13816,37 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0))(prettier@3.6.2): + eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.38.0(jiti@2.6.0)))(eslint@9.38.0(jiti@2.6.0))(prettier@3.6.2): dependencies: - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.8 optionalDependencies: - eslint-config-prettier: 10.1.8(eslint@9.37.0(jiti@2.6.0)) + eslint-config-prettier: 10.1.8(eslint@9.38.0(jiti@2.6.0)) - eslint-plugin-promise@7.2.1(eslint@9.37.0(jiti@2.6.0)): + eslint-plugin-promise@7.2.1(eslint@9.38.0(jiti@2.6.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.37.0(jiti@2.6.0)) - eslint: 9.37.0(jiti@2.6.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.38.0(jiti@2.6.0)) + eslint: 9.38.0(jiti@2.6.0) - eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.37.0(jiti@2.6.0)): + eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.38.0(jiti@2.6.0)): dependencies: '@babel/core': 7.26.10 '@babel/parser': 7.27.0 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.10) - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) hermes-parser: 0.25.1 zod: 3.24.4 zod-validation-error: 3.3.1(zod@3.24.4) transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@5.2.0(eslint@9.37.0(jiti@2.6.0)): + eslint-plugin-react-hooks@5.2.0(eslint@9.38.0(jiti@2.6.0)): dependencies: - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) - eslint-plugin-react@7.37.5(eslint@9.37.0(jiti@2.6.0)): + eslint-plugin-react@7.37.5(eslint@9.38.0(jiti@2.6.0)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -13842,7 +13854,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.37.0(jiti@2.6.0) + eslint: 9.38.0(jiti@2.6.0) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -13867,25 +13879,24 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.37.0(jiti@2.6.0): + eslint@9.38.0(jiti@2.6.0): dependencies: - '@eslint-community/eslint-utils': 4.8.0(eslint@9.37.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.8.0(eslint@9.38.0(jiti@2.6.0)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.4.0 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.1 '@eslint/core': 0.16.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.37.0 + '@eslint/js': 9.38.0 '@eslint/plugin-kit': 0.4.0 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -14111,15 +14122,15 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + framer-motion@12.23.24(@emotion/is-prop-valid@1.3.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: motion-dom: 12.23.23 motion-utils: 12.23.6 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.3.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) fs-extra@10.1.0: dependencies: @@ -14861,12 +14872,12 @@ snapshots: jju@1.4.0: {} - jotai@2.15.0(@babel/core@7.28.4)(@babel/template@7.27.2)(@types/react@19.1.14)(react@19.1.1): + jotai@2.15.0(@babel/core@7.28.4)(@babel/template@7.27.2)(@types/react@19.1.14)(react@19.2.0): optionalDependencies: '@babel/core': 7.28.4 '@babel/template': 7.27.2 '@types/react': 19.1.14 - react: 19.1.1 + react: 19.2.0 js-cookie@2.2.1: {} @@ -15515,26 +15526,26 @@ snapshots: muggle-string@0.4.1: {} - mui-color-input@7.0.0(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + mui-color-input@7.0.0(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@ctrl/tinycolor': 4.1.0 - '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) - '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + '@emotion/react': 11.14.0(@types/react@19.1.14)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) + '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) optionalDependencies: '@types/react': 19.1.14 - nano-css@5.6.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + nano-css@5.6.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.0 css-tree: 1.1.3 csstype: 3.1.3 fastest-stable-stringify: 2.0.2 inline-style-prefixer: 7.0.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 stylis: 4.3.2 @@ -15555,20 +15566,20 @@ snapshots: sax: 1.3.0 optional: true - neostandard@0.12.2(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2): + neostandard@0.12.2(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0)))(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2): dependencies: '@humanwhocodes/gitignore-to-minimatch': 1.0.2 - '@stylistic/eslint-plugin': 2.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) - eslint: 9.37.0(jiti@2.6.0) - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.37.0(jiti@2.6.0)) - eslint-plugin-n: 17.23.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) - eslint-plugin-promise: 7.2.1(eslint@9.37.0(jiti@2.6.0)) - eslint-plugin-react: 7.37.5(eslint@9.37.0(jiti@2.6.0)) + '@stylistic/eslint-plugin': 2.11.0(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.38.0(jiti@2.6.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.6.0)))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0)))(eslint@9.38.0(jiti@2.6.0)) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.38.0(jiti@2.6.0)) + eslint-plugin-n: 17.23.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) + eslint-plugin-promise: 7.2.1(eslint@9.38.0(jiti@2.6.0)) + eslint-plugin-react: 7.37.5(eslint@9.38.0(jiti@2.6.0)) find-up: 5.0.0 globals: 15.15.0 peowly: 1.3.2 - typescript-eslint: 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + typescript-eslint: 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint-import-resolver-node @@ -15685,18 +15696,18 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - octokit@5.0.3: + octokit@5.0.4: dependencies: - '@octokit/app': 16.0.1 - '@octokit/core': 7.0.2 - '@octokit/oauth-app': 8.0.1 - '@octokit/plugin-paginate-graphql': 6.0.0(@octokit/core@7.0.2) - '@octokit/plugin-paginate-rest': 13.1.0(@octokit/core@7.0.2) - '@octokit/plugin-rest-endpoint-methods': 16.0.0(@octokit/core@7.0.2) - '@octokit/plugin-retry': 8.0.1(@octokit/core@7.0.2) - '@octokit/plugin-throttling': 11.0.1(@octokit/core@7.0.2) - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/app': 16.1.1 + '@octokit/core': 7.0.5 + '@octokit/oauth-app': 8.0.3 + '@octokit/plugin-paginate-graphql': 6.0.0(@octokit/core@7.0.5) + '@octokit/plugin-paginate-rest': 13.2.0(@octokit/core@7.0.5) + '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.5) + '@octokit/plugin-retry': 8.0.2(@octokit/core@7.0.5) + '@octokit/plugin-throttling': 11.0.2(@octokit/core@7.0.5) + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 '@octokit/webhooks': 14.0.2 ofetch@1.4.1: @@ -16025,7 +16036,7 @@ snapshots: transitivePeerDependencies: - supports-color - prettier-plugin-tailwindcss@0.7.0(@ianvs/prettier-plugin-sort-imports@4.7.0(@prettier/plugin-oxc@0.0.4)(content-tag@4.0.0)(prettier-plugin-ember-template-tag@2.1.0(prettier@3.6.2))(prettier@3.6.2))(@prettier/plugin-oxc@0.0.4)(@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.6.2))(prettier@3.6.2): + prettier-plugin-tailwindcss@0.7.1(@ianvs/prettier-plugin-sort-imports@4.7.0(@prettier/plugin-oxc@0.0.4)(content-tag@4.0.0)(prettier-plugin-ember-template-tag@2.1.0(prettier@3.6.2))(prettier@3.6.2))(@prettier/plugin-oxc@0.0.4)(@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.6.2))(prettier@3.6.2): dependencies: prettier: 3.6.2 optionalDependencies: @@ -16098,51 +16109,51 @@ snapshots: - supports-color - utf-8-validate - react-dom@19.1.1(react@19.1.1): + react-dom@19.2.0(react@19.2.0): dependencies: - react: 19.1.1 - scheduler: 0.26.0 + react: 19.2.0 + scheduler: 0.27.0 - react-error-boundary@6.0.0(react@19.1.1): + react-error-boundary@6.0.0(react@19.2.0): dependencies: '@babel/runtime': 7.27.1 - react: 19.1.1 + react: 19.2.0 react-fast-compare@3.2.2: {} - react-fast-marquee@1.6.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-fast-marquee@1.6.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - react-hook-form-mui@8.0.0(727c690bca5ab202a045bc1a774a580a): + react-hook-form-mui@8.0.0(37a6e4033f81f625d38c79bfcc2a64c4): dependencies: - '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - react: 19.1.1 - react-hook-form: 7.52.1(react@19.1.1) + '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-hook-form: 7.52.1(react@19.2.0) optionalDependencies: - '@mui/icons-material': 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.14)(react@19.1.1) - '@mui/x-date-pickers': 8.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(react@19.1.1))(@types/react@19.1.14)(dayjs@1.11.18)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@mui/icons-material': 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.1.14)(react@19.2.0) + '@mui/x-date-pickers': 8.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(react@19.2.0))(@types/react@19.1.14)(dayjs@1.11.18)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react-hook-form@7.52.1(react@19.1.1): + react-hook-form@7.52.1(react@19.2.0): dependencies: - react: 19.1.1 + react: 19.2.0 - react-i18next@15.7.4(i18next@25.6.0(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2): + react-i18next@15.7.4(i18next@25.6.0(typescript@5.9.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2): dependencies: '@babel/runtime': 7.28.3 html-parse-stringify: 3.0.1 i18next: 25.6.0(typescript@5.9.2) - react: 19.1.1 + react: 19.2.0 optionalDependencies: - react-dom: 19.1.1(react@19.1.1) + react-dom: 19.2.0(react@19.2.0) typescript: 5.9.2 react-is@16.13.1: {} react-is@19.1.1: {} - react-markdown@10.1.0(@types/react@19.1.14)(react@19.1.1): + react-markdown@10.1.0(@types/react@19.1.14)(react@19.2.0): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.3 @@ -16151,7 +16162,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.0 html-url-attributes: 3.0.0 mdast-util-to-hast: 13.1.0 - react: 19.1.1 + react: 19.2.0 remark-parse: 11.0.0 remark-rehype: 11.1.0 unified: 11.0.4 @@ -16162,27 +16173,27 @@ snapshots: react-refresh@0.17.0: {} - react-split-grid@1.0.4(react@19.1.1): + react-split-grid@1.0.4(react@19.2.0): dependencies: prop-types: 15.8.1 - react: 19.1.1 + react: 19.2.0 split-grid: 1.0.11 - react-transition-group@4.4.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-transition-group@4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@babel/runtime': 7.28.4 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - react-universal-interface@0.6.2(react@19.1.1)(tslib@2.7.0): + react-universal-interface@0.6.2(react@19.2.0)(tslib@2.7.0): dependencies: - react: 19.1.1 + react: 19.2.0 tslib: 2.7.0 - react-use@17.6.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-use@17.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -16190,10 +16201,10 @@ snapshots: fast-deep-equal: 3.1.3 fast-shallow-equal: 1.0.0 js-cookie: 2.2.1 - nano-css: 5.6.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-universal-interface: 0.6.2(react@19.1.1)(tslib@2.7.0) + nano-css: 5.6.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + react-universal-interface: 0.6.2(react@19.2.0)(tslib@2.7.0) resize-observer-polyfill: 1.5.1 screenfull: 5.2.0 set-harmonic-interval: 1.0.1 @@ -16201,7 +16212,7 @@ snapshots: ts-easing: 0.2.0 tslib: 2.7.0 - react@19.1.1: {} + react@19.2.0: {} read-cache@1.0.0: dependencies: @@ -16579,7 +16590,7 @@ snapshots: sax@1.3.0: optional: true - scheduler@0.26.0: {} + scheduler@0.27.0: {} screenfull@5.2.0: {} @@ -17027,11 +17038,11 @@ snapshots: svg-tags@1.0.0: {} - swr@2.3.6(react@19.1.1): + swr@2.3.6(react@19.2.0): dependencies: dequal: 2.0.3 - react: 19.1.1 - use-sync-external-store: 1.5.0(react@19.1.1) + react: 19.2.0 + use-sync-external-store: 1.5.0(react@19.2.0) sync-child-process@1.0.2: dependencies: @@ -17262,13 +17273,13 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript-eslint@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2): + typescript-eslint@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) - '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2))(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) + '@typescript-eslint/parser': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.2) - '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.0))(typescript@5.9.2) - eslint: 9.37.0(jiti@2.6.0) + '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.0))(typescript@5.9.2) + eslint: 9.38.0(jiti@2.6.0) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -17501,19 +17512,19 @@ snapshots: dependencies: prepend-http: 1.0.4 - use-resize-observer@9.1.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + use-resize-observer@9.1.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@juggle/resize-observer': 3.4.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) - use-sync-external-store@1.5.0(react@19.1.1): + use-sync-external-store@1.5.0(react@19.2.0): dependencies: - react: 19.1.1 + react: 19.2.0 - use-sync-external-store@1.6.0(react@19.1.1): + use-sync-external-store@1.6.0(react@19.2.0): dependencies: - react: 19.1.1 + react: 19.2.0 utf-8-validate@5.0.10: dependencies: @@ -17536,10 +17547,10 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - virtua@0.45.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(solid-js@1.9.5): + virtua@0.45.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.5): optionalDependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) solid-js: 1.9.5 vite-bundle-visualizer@1.2.1(rollup@4.46.2): diff --git a/clash-nyanpasu/scripts/package.json b/clash-nyanpasu/scripts/package.json index b7f18a295a..767cb0d940 100644 --- a/clash-nyanpasu/scripts/package.json +++ b/clash-nyanpasu/scripts/package.json @@ -20,7 +20,7 @@ "colorize-template": "1.0.0", "consola": "3.4.2", "fs-extra": "11.3.2", - "octokit": "5.0.3", + "octokit": "5.0.4", "picocolors": "1.1.1", "tar": "7.5.1", "telegram": "2.26.22", diff --git a/lede/package/boot/uboot-rockchip/patches/120-fix-binman-migrate-from.patch b/lede/package/boot/uboot-rockchip/patches/120-fix-binman-migrate-from.patch new file mode 100644 index 0000000000..93da82f85a --- /dev/null +++ b/lede/package/boot/uboot-rockchip/patches/120-fix-binman-migrate-from.patch @@ -0,0 +1,14 @@ +--- a/tools/binman/control.py ++++ b/tools/binman/control.py +@@ -9,8 +9,9 @@ from collections import OrderedDict + import glob + try: + import importlib.resources as importlib_resources +-except ImportError: # pragma: no cover +- # for Python 3.6 ++ # for Python 3.6, 3.7 and 3.8 ++ importlib_resources.files ++except (ImportError, AttributeError): + import importlib_resources + import os + import re diff --git a/mieru/apis/client/client.go b/mieru/apis/client/client.go index 1338161e3f..a4246ca0fd 100644 --- a/mieru/apis/client/client.go +++ b/mieru/apis/client/client.go @@ -22,6 +22,7 @@ import ( "strings" "sync" + "github.com/enfein/mieru/v3/apis/constant" "github.com/enfein/mieru/v3/apis/internal" "github.com/enfein/mieru/v3/apis/model" "github.com/enfein/mieru/v3/pkg/appctl/appctlcommon" @@ -135,7 +136,16 @@ func (mc *mieruClient) DialContext(ctx context.Context, addr net.Addr) (net.Conn return nil, err } if mc.config.Profile.GetHandshakeMode() == appctlpb.HandshakeMode_HANDSHAKE_NO_WAIT { - return internal.NewEarlyConn(conn, netAddrSpec), nil + req := &model.Request{} + if strings.HasPrefix(netAddrSpec.Network(), "tcp") { + req.Command = constant.Socks5ConnectCmd + } else if strings.HasPrefix(netAddrSpec.Network(), "udp") { + req.Command = constant.Socks5UDPAssociateCmd + } else { + return nil, fmt.Errorf("unsupported network type %s", netAddrSpec.Network()) + } + req.DstAddr = netAddrSpec.AddrSpec + return internal.NewEarlyConn(conn, req), nil } _, err = internal.PostDialHandshake(conn, netAddrSpec) return conn, err diff --git a/mieru/apis/internal/early_conn.go b/mieru/apis/internal/early_conn.go index 9e18fc83f8..068031353f 100644 --- a/mieru/apis/internal/early_conn.go +++ b/mieru/apis/internal/early_conn.go @@ -20,7 +20,6 @@ import ( "fmt" "io" "net" - "strings" "sync" "time" @@ -28,23 +27,31 @@ import ( "github.com/enfein/mieru/v3/apis/model" ) +// Socks5Writer is an interface for socks5 objects that can be written to a writer. +type Socks5Writer interface { + WriteToSocks5(writer io.Writer) error +} + +var _ Socks5Writer = (*model.Request)(nil) +var _ Socks5Writer = (*model.Response)(nil) + // EarlyConn implements net.Conn interface. // When the Write() method on the net.Conn is called for the first time, // it performs the initial handshake and writes the request to the server. type EarlyConn struct { net.Conn + object Socks5Writer handshakeOnce sync.Once handshakeErr error handshaked chan struct{} - netAddrSpec model.NetAddrSpec } // NewEarlyConn creates a new EarlyConn. -func NewEarlyConn(conn net.Conn, netAddrSpec model.NetAddrSpec) *EarlyConn { +func NewEarlyConn(conn net.Conn, object Socks5Writer) *EarlyConn { return &EarlyConn{ - Conn: conn, - handshaked: make(chan struct{}), - netAddrSpec: netAddrSpec, + Conn: conn, + object: object, + handshaked: make(chan struct{}), } } @@ -97,44 +104,34 @@ func (c *EarlyConn) NeedHandshake() bool { } func (c *EarlyConn) doHandshakeAndWrite(b []byte) error { - var req bytes.Buffer - isTCP := strings.HasPrefix(c.netAddrSpec.Network(), "tcp") - isUDP := strings.HasPrefix(c.netAddrSpec.Network(), "udp") - - if isTCP { - req.Write([]byte{constant.Socks5Version, constant.Socks5ConnectCmd, 0}) - } else if isUDP { - req.Write([]byte{constant.Socks5Version, constant.Socks5UDPAssociateCmd, 0}) - } else { - return fmt.Errorf("unsupported network type %s", c.netAddrSpec.Network()) - } - - if err := c.netAddrSpec.WriteToSocks5(&req); err != nil { + var buf bytes.Buffer + if err := c.object.WriteToSocks5(&buf); err != nil { return err } if len(b) > 0 { - req.Write(b) + buf.Write(b) + } + if _, err := c.Conn.Write(buf.Bytes()); err != nil { + return fmt.Errorf("failed to write socks5 object to the connection: %w", err) } - if _, err := c.Conn.Write(req.Bytes()); err != nil { - return fmt.Errorf("failed to write socks5 connection request to the server: %w", err) - } + // If this is a request, read the response. + switch c.object.(type) { + case *model.Request: + c.Conn.SetReadDeadline(time.Now().Add(10 * time.Second)) + defer c.Conn.SetReadDeadline(time.Time{}) - c.Conn.SetReadDeadline(time.Now().Add(10 * time.Second)) - defer func() { - c.Conn.SetReadDeadline(time.Time{}) - }() - - resp := make([]byte, 3) - if _, err := io.ReadFull(c.Conn, resp); err != nil { - return fmt.Errorf("failed to read socks5 connection response from the server: %w", err) - } - var respAddr model.NetAddrSpec - if err := respAddr.ReadFromSocks5(c.Conn); err != nil { - return fmt.Errorf("failed to read socks5 connection address response from the server: %w", err) - } - if resp[1] != 0 { - return fmt.Errorf("server returned socks5 error code %d", resp[1]) + var resp model.Response + if err := resp.ReadFromSocks5(c.Conn); err != nil { + return fmt.Errorf("failed to read socks5 response from the server: %w", err) + } + if resp.Reply != constant.Socks5ReplySuccess { + return fmt.Errorf("server returned socks5 error code %d", resp.Reply) + } + case *model.Response: + // No need to read anything. + default: + return fmt.Errorf("unsupported object type for EarlyConn: %T", c.object) } return nil diff --git a/mieru/apis/internal/early_conn_test.go b/mieru/apis/internal/early_conn_test.go index 6a18d979bf..b8b76a3777 100644 --- a/mieru/apis/internal/early_conn_test.go +++ b/mieru/apis/internal/early_conn_test.go @@ -17,6 +17,7 @@ package internal_test import ( "io" + "net" "sync" "testing" @@ -26,7 +27,7 @@ import ( "github.com/enfein/mieru/v3/pkg/testtool" ) -func TestEarlyConn(t *testing.T) { +func TestEarlyConn_Request(t *testing.T) { clientConn, serverConn := testtool.BufPipe() var wg sync.WaitGroup @@ -37,17 +38,10 @@ func TestEarlyConn(t *testing.T) { defer wg.Done() defer serverConn.Close() - // Read and discard socks5 request header. - reqHeader := make([]byte, 3) - if _, err := io.ReadFull(serverConn, reqHeader); err != nil { - t.Errorf("server: failed to read request header: %v", err) - return - } - - // Read destination address. - var addr model.NetAddrSpec - if err := addr.ReadFromSocks5(serverConn); err != nil { - t.Errorf("server: failed to read destination address: %v", err) + // Read socks5 request. + var req model.Request + if err := req.ReadFromSocks5(serverConn); err != nil { + t.Errorf("server: failed to read request: %v", err) return } @@ -77,14 +71,14 @@ func TestEarlyConn(t *testing.T) { }() // Create client early connection. - target := model.NetAddrSpec{ - AddrSpec: model.AddrSpec{ + req := &model.Request{ + Command: constant.Socks5ConnectCmd, + DstAddr: model.AddrSpec{ FQDN: "example.com", Port: 80, }, - Net: "tcp", } - conn := internal.NewEarlyConn(clientConn, target) + conn := internal.NewEarlyConn(clientConn, req) defer conn.Close() // The first write triggers the handshake. @@ -104,3 +98,68 @@ func TestEarlyConn(t *testing.T) { wg.Wait() } + +func TestEarlyConn_Response(t *testing.T) { + clientConn, serverConn := testtool.BufPipe() + + var wg sync.WaitGroup + wg.Add(1) + + // Run a fake server that just receives data. + go func() { + defer wg.Done() + defer serverConn.Close() + + // Read socks5 response. + var resp model.Response + if err := resp.ReadFromSocks5(serverConn); err != nil { + t.Errorf("server: failed to read response: %v", err) + return + } + + // Read client data ("ping"). + ping := make([]byte, 4) + if _, err := io.ReadFull(serverConn, ping); err != nil { + t.Errorf("server: failed to read data: %v", err) + return + } + if string(ping) != "ping" { + t.Errorf("server: expected client to send 'ping', got '%s'", string(ping)) + return + } + + // Send server data ("pong"). + if _, err := serverConn.Write([]byte("pong")); err != nil { + t.Errorf("server: failed to write data: %v", err) + return + } + }() + + // Create client early connection with a response object. + resp := &model.Response{ + Reply: constant.Socks5ReplySuccess, + BindAddr: model.AddrSpec{ + IP: net.IPv4(127, 0, 0, 1), + Port: 1080, + }, + } + conn := internal.NewEarlyConn(clientConn, resp) + defer conn.Close() + + // The first write triggers sending the response. + if _, err := conn.Write([]byte("ping")); err != nil { + t.Fatalf("client: failed to write data: %v", err) + } + + // The server should respond with "pong". + pong := make([]byte, 4) + if _, err := io.ReadFull(conn, pong); err != nil { + t.Fatalf("client: failed to read data: %v", err) + } + + if string(pong) != "pong" { + t.Fatalf("client: expected server to send 'pong', got '%s'", string(pong)) + } + + wg.Wait() +} diff --git a/mieru/pkg/congestion/bbr_sender_test.go b/mieru/pkg/congestion/bbr_sender_test.go index 1b665fd645..ca761299b0 100644 --- a/mieru/pkg/congestion/bbr_sender_test.go +++ b/mieru/pkg/congestion/bbr_sender_test.go @@ -34,12 +34,32 @@ type sender struct { nextSend int64 nextAck int64 bbr *congestion.BBRSender + mu sync.Mutex +} + +func (s *sender) NextSend() int64 { + s.mu.Lock() + defer s.mu.Unlock() + return s.nextSend +} + +func (s *sender) NextAck() int64 { + s.mu.Lock() + defer s.mu.Unlock() + return s.nextAck } type receiver struct { ctx context.Context rwc io.ReadWriteCloser ackSend uint64 + mu sync.Mutex +} + +func (r *receiver) AckSend() uint64 { + r.mu.Lock() + defer r.mu.Unlock() + return r.ackSend } func (s *sender) Run(t *testing.T) { @@ -55,16 +75,28 @@ func (s *sender) Run(t *testing.T) { wg.Done() break loop default: - b := make([]byte, 8) + s.mu.Lock() inFlight := (s.nextSend - s.nextAck) * 8 - if s.bbr.CanSend(inFlight, 8) { - binary.BigEndian.PutUint64(b, uint64(s.nextSend)) - s.rwc.Write(b) - s.bbr.OnPacketSent(time.Now(), inFlight, s.nextSend, 8, true) - s.nextSend++ - } else { + if !s.bbr.CanSend(inFlight, 8) { + s.mu.Unlock() time.Sleep(time.Millisecond) + continue } + packetToSend := s.nextSend + s.nextSend++ + s.mu.Unlock() + + b := make([]byte, 8) + binary.BigEndian.PutUint64(b, uint64(packetToSend)) + if _, err := s.rwc.Write(b); err != nil { + t.Logf("error write data: %v", err) + time.Sleep(time.Millisecond) + continue + } + + s.mu.Lock() + s.bbr.OnPacketSent(time.Now(), inFlight, packetToSend, 8, true) + s.mu.Unlock() } } }() @@ -78,19 +110,21 @@ func (s *sender) Run(t *testing.T) { break loop default: b := make([]byte, 8) - inFlight := (s.nextSend - s.nextAck) * 8 if _, err := io.ReadFull(s.rwc, b); err != nil { t.Logf("error read ack: %v", err) time.Sleep(time.Millisecond) continue } now := time.Now() + s.mu.Lock() s.nextAck = int64(binary.BigEndian.Uint64(b)) + inFlight := (s.nextSend - s.nextAck) * 8 s.bbr.OnCongestionEvent(inFlight, now, []congestion.AckedPacketInfo{{ PacketNumber: s.nextAck - 1, BytesAcked: 8, ReceiveTimestamp: now, }}, nil) + s.mu.Unlock() } } }() @@ -112,8 +146,10 @@ func (r *receiver) Start(t *testing.T) { time.Sleep(time.Millisecond) continue } + r.mu.Lock() r.ackSend = binary.BigEndian.Uint64(b) binary.BigEndian.PutUint64(b, r.ackSend+1) + r.mu.Unlock() if _, err := r.rwc.Write(b); err != nil { t.Logf("error write ack: %v", err) return @@ -141,8 +177,8 @@ func TestBBRSender(t *testing.T) { } r.Start(t) s.Run(t) - t.Logf("nextSend: %v", s.nextSend) - t.Logf("nextAck: %v", s.nextAck) - t.Logf("ackSend: %v", r.ackSend) + t.Logf("nextSend: %v", s.NextSend()) + t.Logf("nextAck: %v", s.NextAck()) + t.Logf("ackSend: %v", r.AckSend()) t.Logf("Estimated bandwidth: %d B/s", s.bbr.BandwidthEstimate()) } diff --git a/mieru/pkg/metrics/counter.go b/mieru/pkg/metrics/counter.go index 65e6eca20b..71b3f8a309 100644 --- a/mieru/pkg/metrics/counter.go +++ b/mieru/pkg/metrics/counter.go @@ -51,11 +51,15 @@ type Counter struct { var _ Metric = &Counter{} func (c *Counter) Name() string { + c.mu.Lock() + defer c.mu.Unlock() c.op++ return c.name } func (c *Counter) Type() MetricType { + c.mu.Lock() + defer c.mu.Unlock() c.op++ if c.timeSeries { return COUNTER_TIME_SERIES diff --git a/mihomo/go.mod b/mihomo/go.mod index 957dfa7f70..7294a19738 100644 --- a/mihomo/go.mod +++ b/mihomo/go.mod @@ -38,7 +38,7 @@ require ( github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f github.com/metacubex/smux v0.0.0-20250922175018-15c9a6a78719 github.com/metacubex/tfo-go v0.0.0-20250921095601-b102db4216c0 - github.com/metacubex/utls v1.8.2 + github.com/metacubex/utls v1.8.3 github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f github.com/miekg/dns v1.1.63 // lastest version compatible with golang1.20 github.com/mroth/weightedrand/v2 v2.1.0 diff --git a/mihomo/go.sum b/mihomo/go.sum index e5ac16e39e..a7c1c57393 100644 --- a/mihomo/go.sum +++ b/mihomo/go.sum @@ -141,8 +141,8 @@ github.com/metacubex/smux v0.0.0-20250922175018-15c9a6a78719 h1:T6qCCfolRDAVJKea github.com/metacubex/smux v0.0.0-20250922175018-15c9a6a78719/go.mod h1:4bPD8HWx9jPJ9aE4uadgyN7D1/Wz3KmPy+vale8sKLE= github.com/metacubex/tfo-go v0.0.0-20250921095601-b102db4216c0 h1:Ui+/2s5Qz0lSnDUBmEL12M5Oi/PzvFxGTNohm8ZcsmE= github.com/metacubex/tfo-go v0.0.0-20250921095601-b102db4216c0/go.mod h1:l9oLnLoEXyGZ5RVLsh7QCC5XsouTUyKk4F2nLm2DHLw= -github.com/metacubex/utls v1.8.2 h1:d7KalMZ5hnOJ6lThMz8Ykd+5dvmXH3Eoeyfv2jUuG3w= -github.com/metacubex/utls v1.8.2/go.mod h1:kncGGVhFaoGn5M3pFe3SXhZCzsbCJayNOH4UEqTKTko= +github.com/metacubex/utls v1.8.3 h1:0m/yCxm3SK6kWve2lKiFb1pue1wHitJ8sQQD4Ikqde4= +github.com/metacubex/utls v1.8.3/go.mod h1:kncGGVhFaoGn5M3pFe3SXhZCzsbCJayNOH4UEqTKTko= github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f h1:FGBPRb1zUabhPhDrlKEjQ9lgIwQ6cHL4x8M9lrERhbk= github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f/go.mod h1:oPGcV994OGJedmmxrcK9+ni7jUEMGhR+uVQAdaduIP4= github.com/metacubex/yamux v0.0.0-20250918083631-dd5f17c0be49 h1:lhlqpYHopuTLx9xQt22kSA9HtnyTDmk5XjjQVCGHe2E= diff --git a/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua b/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua index f25b2c0a5e..7b0231afda 100644 --- a/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua +++ b/openwrt-passwall/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua @@ -315,6 +315,10 @@ o = s:option(Value, _n("encryption"), translate("Encrypt Method") .. " (encrypti o.default = "none" o.placeholder = "none" o:depends({ [_n("protocol")] = "vless" }) +o.validate = function(self, value) + value = api.trim(value) + return (value == "" and "none" or value) +end o = s:option(ListValue, _n("ss_method"), translate("Encrypt Method")) o.rewrite_option = "method" @@ -339,8 +343,8 @@ o = s:option(ListValue, _n("flow"), translate("flow")) o.default = "" o:value("", translate("Disable")) o:value("xtls-rprx-vision") -o:depends({ [_n("protocol")] = "vless", [_n("tls")] = true, [_n("transport")] = "raw" }) -o:depends({ [_n("protocol")] = "vless", [_n("tls")] = true, [_n("transport")] = "xhttp" }) +o:depends({ [_n("protocol")] = "vless", [_n("transport")] = "raw" }) +o:depends({ [_n("protocol")] = "vless", [_n("transport")] = "xhttp" }) o = s:option(Flag, _n("tls"), translate("TLS")) o.default = 0 diff --git a/openwrt-passwall/luci-app-passwall/luasrc/passwall/util_xray.lua b/openwrt-passwall/luci-app-passwall/luasrc/passwall/util_xray.lua index 57dcc63abb..d044229dc6 100644 --- a/openwrt-passwall/luci-app-passwall/luasrc/passwall/util_xray.lua +++ b/openwrt-passwall/luci-app-passwall/luasrc/passwall/util_xray.lua @@ -241,9 +241,12 @@ function gen_outbound(flag, node, tag, proxy_table) id = node.uuid, level = 0, security = (node.protocol == "vmess") and node.security or nil, - encryption = node.encryption or "none", - flow = (node.protocol == "vless" and node.tls == "1" and (node.transport == "raw" or node.transport == "tcp" or node.transport == "xhttp") and node.flow and node.flow ~= "") and node.flow or nil - + encryption = (node.encryption and node.encryption ~= "") and node.encryption or "none", + flow = (node.protocol == "vless" + and (node.tls == "1" or (node.encryption and node.encryption ~= "" and node.encryption ~= "none")) + and (node.transport == "raw" or node.transport == "tcp" or node.transport == "xhttp") + and node.flow and node.flow ~= "" + ) and node.flow or nil } } } diff --git a/openwrt-passwall/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm b/openwrt-passwall/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm index de2c945c3d..9a25a3ee24 100644 --- a/openwrt-passwall/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm +++ b/openwrt-passwall/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm @@ -1367,11 +1367,11 @@ local hysteria2_type = get_core("hysteria2_type", {{has_hysteria2,"hysteria2"},{ opt.set(dom_prefix + 'port', m.port || "443"); opt.set(dom_prefix + 'encryption', queryParam.encryption || "none"); + opt.set(dom_prefix + 'flow', (queryParam.flow || '').replace('-udp443', '')); if (queryParam.security) { if (queryParam.security == "tls") { opt.set(dom_prefix + 'tls', true); opt.set(dom_prefix + 'reality', false); - opt.set(dom_prefix + 'flow', (queryParam.flow || '').replace('-udp443', '')); opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); opt.set(dom_prefix + 'tls_allowInsecure', true); @@ -1389,7 +1389,6 @@ local hysteria2_type = get_core("hysteria2_type", {{has_hysteria2,"hysteria2"},{ if (queryParam.security == "reality") { opt.set(dom_prefix + 'tls', true); opt.set(dom_prefix + 'reality', true); - opt.set(dom_prefix + 'flow', (queryParam.flow || '').replace('-udp443', '')); opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); if (queryParam.fp && queryParam.fp.trim() != "") { diff --git a/sing-box/common/tls/acme.go b/sing-box/common/tls/acme.go index 9068cd2d95..4a79c56c29 100644 --- a/sing-box/common/tls/acme.go +++ b/sing-box/common/tls/acme.go @@ -7,15 +7,13 @@ import ( "crypto/tls" "strings" - "github.com/sagernet/certmagic" "github.com/sagernet/sing-box/adapter" C "github.com/sagernet/sing-box/constant" "github.com/sagernet/sing-box/option" - "github.com/sagernet/sing/common" E "github.com/sagernet/sing/common/exceptions" - "github.com/sagernet/sing/common/json/badoption" "github.com/sagernet/sing/common/logger" + "github.com/caddyserver/certmagic" "github.com/libdns/alidns" "github.com/libdns/cloudflare" "github.com/mholt/acmez/v3/acme" @@ -24,14 +22,14 @@ import ( ) type acmeWrapper struct { - ctx context.Context - cfg *certmagic.Config - cache *certmagic.Cache - domains [][]string + ctx context.Context + cfg *certmagic.Config + cache *certmagic.Cache + domain []string } func (w *acmeWrapper) Start() error { - return w.cfg.ManageSyncGrouped(w.ctx, w.domains) + return w.cfg.ManageSync(w.ctx, w.domain) } func (w *acmeWrapper) Close() error { @@ -151,7 +149,5 @@ func startACME(ctx context.Context, logger logger.Logger, options option.Inbound NextProtos: []string{ACMETLS1Protocol}, } } - return tlsConfig, &acmeWrapper{ctx: ctx, cfg: config, cache: cache, domains: common.Map(options.Domain, func(it badoption.Listable[string]) []string { - return it - })}, nil + return tlsConfig, &acmeWrapper{ctx: ctx, cfg: config, cache: cache, domain: options.Domain}, nil } diff --git a/sing-box/docs/changelog.md b/sing-box/docs/changelog.md index 0466210174..cfc831b0a0 100644 --- a/sing-box/docs/changelog.md +++ b/sing-box/docs/changelog.md @@ -2,6 +2,18 @@ icon: material/alert-decagram --- +#### 1.13.0-alpha.23 + +* Fix compatibility with MPTCP **1** +* Fixes and improvements + +**1**: + +`auto_redirect` now rejects MPTCP connections by default to fix compatibility issues, +but you can change it to bypass the sing-box via the new `exclude_mptcp` option. + +See [TUN](/configuration/inbound/tun/#exclude_mptcp). + #### 1.13.0-alpha.22 * Update uTLS to v1.8.1 **1** diff --git a/sing-box/go.mod b/sing-box/go.mod index 760bebabca..c287cf6657 100644 --- a/sing-box/go.mod +++ b/sing-box/go.mod @@ -4,6 +4,7 @@ go 1.24.7 require ( github.com/anytls/sing-anytls v0.0.11 + github.com/caddyserver/certmagic v0.23.0 github.com/coder/websocket v1.8.13 github.com/cretz/bine v0.2.0 github.com/database64128/tfo-go/v2 v2.2.2 @@ -16,12 +17,11 @@ require ( github.com/libdns/cloudflare v0.2.2-0.20250708034226-c574dccb31a6 github.com/logrusorgru/aurora v2.0.3+incompatible github.com/metacubex/utls v1.8.2 - github.com/mholt/acmez/v3 v3.1.3 - github.com/miekg/dns v1.1.68 + github.com/mholt/acmez/v3 v3.1.2 + github.com/miekg/dns v1.1.67 github.com/oschwald/maxminddb-golang v1.13.1 github.com/sagernet/asc-go v0.0.0-20241217030726-d563060fe4e1 github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a - github.com/sagernet/certmagic v0.0.0-20251017075722-da6823086e3c github.com/sagernet/cors v1.2.1 github.com/sagernet/fswatch v0.1.1 github.com/sagernet/gomobile v0.1.8 @@ -90,8 +90,8 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jsimonetti/rtnetlink v1.4.0 // indirect github.com/klauspost/compress v1.17.11 // indirect - github.com/klauspost/cpuid/v2 v2.3.0 // indirect - github.com/libdns/libdns v1.1.1 // indirect + github.com/klauspost/cpuid/v2 v2.2.10 // indirect + github.com/libdns/libdns v1.1.0 // indirect github.com/mdlayher/genetlink v1.3.2 // indirect github.com/mdlayher/netlink v1.7.3-0.20250113171957-fbb4dce95f42 // indirect github.com/mdlayher/sdnotify v1.0.0 // indirect diff --git a/sing-box/go.sum b/sing-box/go.sum index 1c02e65742..5b765d72b0 100644 --- a/sing-box/go.sum +++ b/sing-box/go.sum @@ -10,6 +10,8 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/anytls/sing-anytls v0.0.11 h1:w8e9Uj1oP3m4zxkyZDewPk0EcQbvVxb7Nn+rapEx4fc= github.com/anytls/sing-anytls v0.0.11/go.mod h1:7rjN6IukwysmdusYsrV51Fgu1uW6vsrdd6ctjnEAln8= +github.com/caddyserver/certmagic v0.23.0 h1:CfpZ/50jMfG4+1J/u2LV6piJq4HOfO6ppOnOf7DkFEU= +github.com/caddyserver/certmagic v0.23.0/go.mod h1:9mEZIWqqWoI+Gf+4Trh04MOVPD0tGSxtqsxg87hAIH4= github.com/caddyserver/zerossl v0.1.3 h1:onS+pxp3M8HnHpN5MMbOMyNjmTheJyWRaZYwn+YTAyA= github.com/caddyserver/zerossl v0.1.3/go.mod h1:CxA0acn7oEGO6//4rtrRjYgEoa4MFw/XofZnrYwGqG4= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -95,15 +97,15 @@ github.com/jsimonetti/rtnetlink v1.4.0 h1:Z1BF0fRgcETPEa0Kt0MRk3yV5+kF1FWTni6KUF github.com/jsimonetti/rtnetlink v1.4.0/go.mod h1:5W1jDvWdnthFJ7fxYX1GMK07BUpI4oskfOqvPteYS6E= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= -github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= -github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= +github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= +github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/libdns/alidns v1.0.5-libdns.v1.beta1 h1:txHK7UxDed3WFBDjrTZPuMn8X+WmhjBTTAMW5xdy5pQ= github.com/libdns/alidns v1.0.5-libdns.v1.beta1/go.mod h1:ystHmPwcGoWjPrGpensQSMY9VoCx4cpR2hXNlwk9H/g= github.com/libdns/cloudflare v0.2.2-0.20250708034226-c574dccb31a6 h1:3MGrVWs2COjMkQR17oUw1zMIPbm2YAzxDC3oGVZvQs8= github.com/libdns/cloudflare v0.2.2-0.20250708034226-c574dccb31a6/go.mod h1:w9uTmRCDlAoafAsTPnn2nJ0XHK/eaUMh86DUk8BWi60= github.com/libdns/libdns v1.0.0-beta.1/go.mod h1:4Bj9+5CQiNMVGf87wjX4CY3HQJypUHRuLvlsfsZqLWQ= -github.com/libdns/libdns v1.1.1 h1:wPrHrXILoSHKWJKGd0EiAVmiJbFShguILTg9leS/P/U= -github.com/libdns/libdns v1.1.1/go.mod h1:4Bj9+5CQiNMVGf87wjX4CY3HQJypUHRuLvlsfsZqLWQ= +github.com/libdns/libdns v1.1.0 h1:9ze/tWvt7Df6sbhOJRB8jT33GHEHpEQXdtkE3hPthbU= +github.com/libdns/libdns v1.1.0/go.mod h1:4Bj9+5CQiNMVGf87wjX4CY3HQJypUHRuLvlsfsZqLWQ= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/mdlayher/genetlink v1.3.2 h1:KdrNKe+CTu+IbZnm/GVUMXSqBBLqcGpRDa0xkQy56gw= @@ -116,10 +118,10 @@ github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= github.com/metacubex/utls v1.8.2 h1:d7KalMZ5hnOJ6lThMz8Ykd+5dvmXH3Eoeyfv2jUuG3w= github.com/metacubex/utls v1.8.2/go.mod h1:kncGGVhFaoGn5M3pFe3SXhZCzsbCJayNOH4UEqTKTko= -github.com/mholt/acmez/v3 v3.1.3 h1:gUl789rjbJSuM5hYzOFnNaGgWPV1xVfnOs59o0dZEcc= -github.com/mholt/acmez/v3 v3.1.3/go.mod h1:L1wOU06KKvq7tswuMDwKdcHeKpFFgkppZy/y0DFxagQ= -github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA= -github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= +github.com/mholt/acmez/v3 v3.1.2 h1:auob8J/0FhmdClQicvJvuDavgd5ezwLBfKuYmynhYzc= +github.com/mholt/acmez/v3 v3.1.2/go.mod h1:L1wOU06KKvq7tswuMDwKdcHeKpFFgkppZy/y0DFxagQ= +github.com/miekg/dns v1.1.67 h1:kg0EHj0G4bfT5/oOys6HhZw4vmMlnoZ+gDu8tJ/AlI0= +github.com/miekg/dns v1.1.67/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= @@ -142,8 +144,6 @@ github.com/sagernet/asc-go v0.0.0-20241217030726-d563060fe4e1 h1:qi+ijeREa0yfAaO github.com/sagernet/asc-go v0.0.0-20241217030726-d563060fe4e1/go.mod h1:JULDuzTMn2gyZFcjpTVZP4/UuwAdbHJ0bum2RdjXojU= github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a h1:+NkI2670SQpQWvkkD2QgdTuzQG263YZ+2emfpeyGqW0= github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a/go.mod h1:63s7jpZqcDAIpj8oI/1v4Izok+npJOHACFCU6+huCkM= -github.com/sagernet/certmagic v0.0.0-20251017075722-da6823086e3c h1:VUJZVuhuIo4ZtVqQwgnR0dx/lHF6lE0n+NCfrpxQI8k= -github.com/sagernet/certmagic v0.0.0-20251017075722-da6823086e3c/go.mod h1:Zmcg4PwzxtZsgtGx9p2xdZIFtlewNV1OnMTa2Df982Y= github.com/sagernet/cors v1.2.1 h1:Cv5Z8y9YSD6Gm+qSpNrL3LO4lD3eQVvbFYJSG7JCMHQ= github.com/sagernet/cors v1.2.1/go.mod h1:O64VyOjjhrkLmQIjF4KGRrJO/5dVXFdpEmCW/eISRAI= github.com/sagernet/fswatch v0.1.1 h1:YqID+93B7VRfqIH3PArW/XpJv5H4OLEVWDfProGoRQs= diff --git a/sing-box/option/tls_acme.go b/sing-box/option/tls_acme.go index 81ccf7a5a0..502706073d 100644 --- a/sing-box/option/tls_acme.go +++ b/sing-box/option/tls_acme.go @@ -9,17 +9,17 @@ import ( ) type InboundACMEOptions struct { - Domain badoption.Listable[badoption.Listable[string]] `json:"domain,omitempty"` - DataDirectory string `json:"data_directory,omitempty"` - DefaultServerName string `json:"default_server_name,omitempty"` - Email string `json:"email,omitempty"` - Provider string `json:"provider,omitempty"` - DisableHTTPChallenge bool `json:"disable_http_challenge,omitempty"` - DisableTLSALPNChallenge bool `json:"disable_tls_alpn_challenge,omitempty"` - AlternativeHTTPPort uint16 `json:"alternative_http_port,omitempty"` - AlternativeTLSPort uint16 `json:"alternative_tls_port,omitempty"` - ExternalAccount *ACMEExternalAccountOptions `json:"external_account,omitempty"` - DNS01Challenge *ACMEDNS01ChallengeOptions `json:"dns01_challenge,omitempty"` + Domain badoption.Listable[string] `json:"domain,omitempty"` + DataDirectory string `json:"data_directory,omitempty"` + DefaultServerName string `json:"default_server_name,omitempty"` + Email string `json:"email,omitempty"` + Provider string `json:"provider,omitempty"` + DisableHTTPChallenge bool `json:"disable_http_challenge,omitempty"` + DisableTLSALPNChallenge bool `json:"disable_tls_alpn_challenge,omitempty"` + AlternativeHTTPPort uint16 `json:"alternative_http_port,omitempty"` + AlternativeTLSPort uint16 `json:"alternative_tls_port,omitempty"` + ExternalAccount *ACMEExternalAccountOptions `json:"external_account,omitempty"` + DNS01Challenge *ACMEDNS01ChallengeOptions `json:"dns01_challenge,omitempty"` } type ACMEExternalAccountOptions struct { diff --git a/small/luci-app-fchomo/docs/example/bypasscn.config b/small/luci-app-fchomo/docs/example/bypasscn.config index 5be6150366..e3cc10a5e7 100644 --- a/small/luci-app-fchomo/docs/example/bypasscn.config +++ b/small/luci-app-fchomo/docs/example/bypasscn.config @@ -3,6 +3,7 @@ config fchomo 'config' option __warning 'ACCESS CONTROL FIELDS' option common_tcpport '20-21,22,53,80,110,143,443,465,853,873,993,995,5222,8080,8443,9418' option common_udpport '20-21,22,53,80,110,143,443,853,993,995,8080,8443,9418' + option smtp_tcpport '465,587' option stun_port '3478,19302' option turn_port '5349' option google_fcm_port '443,5228-5230' diff --git a/small/luci-app-fchomo/docs/example/gfwlist.config b/small/luci-app-fchomo/docs/example/gfwlist.config index c529f72053..5221958a97 100644 --- a/small/luci-app-fchomo/docs/example/gfwlist.config +++ b/small/luci-app-fchomo/docs/example/gfwlist.config @@ -3,6 +3,7 @@ config fchomo 'config' option __warning 'ACCESS CONTROL FIELDS' option common_tcpport '20-21,22,53,80,110,143,443,465,853,873,993,995,5222,8080,8443,9418' option common_udpport '20-21,22,53,80,110,143,443,853,993,995,8080,8443,9418' + option smtp_tcpport '465,587' option stun_port '3478,19302' option turn_port '5349' option google_fcm_port '443,5228-5230' diff --git a/small/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js b/small/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js index f774432e56..b2e1d89a0c 100644 --- a/small/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js +++ b/small/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js @@ -203,6 +203,7 @@ const routing_port_type = [ ['all', _('All ports')], ['common_tcpport', _('Common ports (bypass P2P traffic)'), uci.get('fchomo', 'config', 'common_tcpport') || '20-21,22,53,80,110,143,443,465,853,873,993,995,5222,8080,8443,9418'], ['common_udpport', _('Common ports (bypass P2P traffic)'), uci.get('fchomo', 'config', 'common_udpport') || '20-21,22,53,80,110,143,443,853,993,995,8080,8443,9418'], + ['smtp_tcpport', _('SMTP ports'), uci.get('fchomo', 'config', 'smtp_tcpport') || '465,587'], ['stun_port', _('STUN ports'), uci.get('fchomo', 'config', 'stun_port') || '3478,19302'], ['turn_port', _('TURN ports'), uci.get('fchomo', 'config', 'turn_port') || '5349'], ['google_fcm_port', _('Google FCM ports'), uci.get('fchomo', 'config', 'google_fcm_port') || '443,5228-5230'], diff --git a/small/luci-app-fchomo/po/templates/fchomo.pot b/small/luci-app-fchomo/po/templates/fchomo.pot index 35e9d45c53..b4298fe4d7 100644 --- a/small/luci-app-fchomo/po/templates/fchomo.pot +++ b/small/luci-app-fchomo/po/templates/fchomo.pot @@ -1852,6 +1852,10 @@ msgstr "" msgid "Port %s alrealy exists!" msgstr "" +#: htdocs/luci-static/resources/view/fchomo/node.js:342 +msgid "Port range" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/global.js:696 msgid "Ports" msgstr "" @@ -2230,7 +2234,11 @@ msgstr "" msgid "Running" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:125 +#: htdocs/luci-static/resources/fchomo.js:206 +msgid "SMTP ports" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:127 msgid "SOCKS" msgstr "" diff --git a/small/luci-app-fchomo/po/zh_Hans/fchomo.po b/small/luci-app-fchomo/po/zh_Hans/fchomo.po index ba3d0fd063..69aa7e0fe4 100644 --- a/small/luci-app-fchomo/po/zh_Hans/fchomo.po +++ b/small/luci-app-fchomo/po/zh_Hans/fchomo.po @@ -1884,6 +1884,10 @@ msgstr "端口" msgid "Port %s alrealy exists!" msgstr "端口 %s 已存在!" +#: htdocs/luci-static/resources/view/fchomo/node.js:342 +msgid "Port range" +msgstr "端口范围" + #: htdocs/luci-static/resources/view/fchomo/global.js:696 msgid "Ports" msgstr "端口" @@ -2262,7 +2266,11 @@ msgstr "" msgid "Running" msgstr "正在运行" -#: htdocs/luci-static/resources/fchomo.js:125 +#: htdocs/luci-static/resources/fchomo.js:206 +msgid "SMTP ports" +msgstr "SMTP 端口" + +#: htdocs/luci-static/resources/fchomo.js:127 msgid "SOCKS" msgstr "" @@ -3237,9 +3245,6 @@ msgstr "" msgid "🡇" msgstr "" -#~ msgid "Port range" -#~ msgstr "端口范围" - #~ msgid "Default" #~ msgstr "默认" diff --git a/small/luci-app-fchomo/po/zh_Hant/fchomo.po b/small/luci-app-fchomo/po/zh_Hant/fchomo.po index e660196161..97b1f83b94 100644 --- a/small/luci-app-fchomo/po/zh_Hant/fchomo.po +++ b/small/luci-app-fchomo/po/zh_Hant/fchomo.po @@ -1884,6 +1884,10 @@ msgstr "連接埠" msgid "Port %s alrealy exists!" msgstr "連接埠 %s 已存在!" +#: htdocs/luci-static/resources/view/fchomo/node.js:342 +msgid "Port range" +msgstr "連接埠範圍" + #: htdocs/luci-static/resources/view/fchomo/global.js:696 msgid "Ports" msgstr "連接埠" @@ -2262,7 +2266,11 @@ msgstr "" msgid "Running" msgstr "正在運作" -#: htdocs/luci-static/resources/fchomo.js:125 +#: htdocs/luci-static/resources/fchomo.js:206 +msgid "SMTP ports" +msgstr "SMTP 連接埠" + +#: htdocs/luci-static/resources/fchomo.js:127 msgid "SOCKS" msgstr "" @@ -3237,9 +3245,6 @@ msgstr "" msgid "🡇" msgstr "" -#~ msgid "Port range" -#~ msgstr "連接埠範圍" - #~ msgid "Default" #~ msgstr "預設" diff --git a/small/luci-app-fchomo/root/etc/config/fchomo b/small/luci-app-fchomo/root/etc/config/fchomo index 5744206e29..157e661658 100644 --- a/small/luci-app-fchomo/root/etc/config/fchomo +++ b/small/luci-app-fchomo/root/etc/config/fchomo @@ -3,6 +3,7 @@ config fchomo 'config' option __warning 'ACCESS CONTROL FIELDS' option common_tcpport '20-21,22,53,80,110,143,443,465,853,873,993,995,5222,8080,8443,9418' option common_udpport '20-21,22,53,80,110,143,443,853,993,995,8080,8443,9418' + option smtp_tcpport '465,587' option stun_port '3478,19302' option turn_port '5349' option google_fcm_port '443,5228-5230' diff --git a/small/luci-app-fchomo/root/usr/libexec/fchomo/update_resources.sh b/small/luci-app-fchomo/root/usr/libexec/fchomo/update_resources.sh index aff1ce8fbe..68f83aef94 100755 --- a/small/luci-app-fchomo/root/usr/libexec/fchomo/update_resources.sh +++ b/small/luci-app-fchomo/root/usr/libexec/fchomo/update_resources.sh @@ -16,23 +16,6 @@ log() { echo -e "$(date "+%F %T") $*" >> "$LOG_PATH" } -set_lock() { - local act="$1" - local type="$2" - - local lock="$RUN_DIR/update_resources-$type.lock" - if [ "$act" = "set" ]; then - if [ -e "$lock" ]; then - log "[$(to_upper "$type")] A task is already running." - exit 2 - else - touch "$lock" - fi - elif [ "$act" = "remove" ]; then - rm -f "$lock" - fi -} - to_upper() { echo -e "$1" | tr "[a-z]" "[A-Z]" } @@ -55,9 +38,14 @@ check_dashboard_update() { local dashtype="$1" local dashrepo="$2" local dashrepoid="$(echo -n "$dashrepo" | sed 's|\W|_|g' | tr 'A-Z' 'a-z')" + local lock="$RUN_DIR/update_resources-$dashtype.lock" local wget="wget --tries=1 --timeout=10 -q" - set_lock "set" "$dashtype" + exec 200>"$lock" + if ! flock -n 200 &> "/dev/null"; then + log "[$(to_upper "$dashtype")] A task is already running." + return 2 + fi local dash_ver="$($wget -O- "https://api.github.com/repos/$dashrepo/releases/latest" | jsonfilter -e "@.tag_name" 2>/dev/null)" [ -n "$dash_ver" ] || { @@ -65,8 +53,6 @@ check_dashboard_update() { } if [ -z "$dash_ver" ]; then log "[$(to_upper "$dashtype")] [$dashrepo] Failed to get the latest version, please retry later." - - set_lock "remove" "$dashtype" return 1 fi @@ -74,8 +60,6 @@ check_dashboard_update() { if [ "$local_dash_ver" = "$dash_ver" ]; then log "[$(to_upper "$dashtype")] [$dashrepo] Current version: $dash_ver." log "[$(to_upper "$dashtype")] [$dashrepo] You're already at the latest version." - - set_lock "remove" "$dashtype" return 3 else log "[$(to_upper "$dashtype")] [$dashrepo] Local version: $local_dash_ver, latest version: $dash_ver." @@ -84,8 +68,6 @@ check_dashboard_update() { if ! $wget "https://codeload.github.com/$dashrepo/tar.gz/refs/heads/gh-pages" -O "$RUN_DIR/$dashtype.tgz" || ! tar -tzf "$RUN_DIR/$dashtype.tgz" >/dev/null; then rm -f "$RUN_DIR/$dashtype.tgz" log "[$(to_upper "$dashtype")] [$dashrepo] Update failed." - - set_lock "remove" "$dashtype" return 1 fi @@ -99,8 +81,6 @@ check_dashboard_update() { json_add_string version "$dash_ver" json_dump > "$VER_PATH" log "[$(to_upper "$dashtype")] [$dashrepo] Successfully updated." - - set_lock "remove" "$dashtype" return 0 } @@ -108,15 +88,18 @@ check_dashboard_update() { check_geodata_update() { local geotype="$1" local georepo="$2" + local lock="$RUN_DIR/update_resources-$geotype.lock" local wget="wget --tries=1 --timeout=10 -q" - set_lock "set" "$geotype" + exec 200>"$lock" + if ! flock -n 200 &> "/dev/null"; then + log "[$(to_upper "$geotype")] A task is already running." + return 2 + fi local geodata_ver="$($wget -O- "https://api.github.com/repos/$georepo/releases/latest" | jsonfilter -e "@.tag_name")" if [ -z "$geodata_ver" ]; then log "[$(to_upper "$geotype")] Failed to get the latest version, please retry later." - - set_lock "remove" "$geotype" return 1 fi @@ -124,8 +107,6 @@ check_geodata_update() { if [ "$local_geodata_ver" = "$geodata_ver" ]; then log "[$(to_upper "$geotype")] Current version: $geodata_ver." log "[$(to_upper "$geotype")] You're already at the latest version." - - set_lock "remove" "$geotype" return 3 else log "[$(to_upper "$geotype")] Local version: $local_geodata_ver, latest version: $geodata_ver." @@ -137,8 +118,6 @@ check_geodata_update() { if ! echo -e "$geodata_hash $RUN_DIR/$geotype.dat" | sha256sum -s -c -; then rm -f "$RUN_DIR/$geotype.dat" log "[$(to_upper "$geotype")] Update failed." - - set_lock "remove" "$geotype" return 1 fi @@ -149,8 +128,6 @@ check_geodata_update() { json_add_string "$geotype" "$geodata_ver" json_dump > "$VER_PATH" log "[$(to_upper "$geotype")] Successfully updated." - - set_lock "remove" "$geotype" return 0 } @@ -160,17 +137,20 @@ check_list_update() { local listrepo="$2" local listref="$3" local listname="$4" + local lock="$RUN_DIR/update_resources-$listtype.lock" local wget="wget --tries=1 --timeout=10 -q" - set_lock "set" "$listtype" + exec 200>"$lock" + if ! flock -n 200 &> "/dev/null"; then + log "[$(to_upper "$listtype")] A task is already running." + return 2 + fi local list_info="$($wget -O- "https://api.github.com/repos/$listrepo/commits?sha=$listref&path=$listname")" local list_sha="$(echo -e "$list_info" | jsonfilter -e "@[0].sha")" local list_ver="$(echo -e "$list_info" | jsonfilter -e "@[0].commit.message" | grep -Eo "[0-9-]+" | tr -d '-')" if [ -z "$list_sha" ] || [ -z "$list_ver" ]; then log "[$(to_upper "$listtype")] Failed to get the latest version, please retry later." - - set_lock "remove" "$listtype" return 1 fi @@ -178,8 +158,6 @@ check_list_update() { if [ "$local_list_ver" = "$list_ver" ]; then log "[$(to_upper "$listtype")] Current version: $list_ver." log "[$(to_upper "$listtype")] You're already at the latest version." - - set_lock "remove" "$listtype" return 3 else log "[$(to_upper "$listtype")] Local version: $local_list_ver, latest version: $list_ver." @@ -188,8 +166,6 @@ check_list_update() { if ! $wget "https://fastly.jsdelivr.net/gh/$listrepo@$list_sha/$listname" -O "$RUN_DIR/$listname" || [ ! -s "$RUN_DIR/$listname" ]; then rm -f "$RUN_DIR/$listname" log "[$(to_upper "$listtype")] Update failed." - - set_lock "remove" "$listtype" return 1 fi @@ -200,8 +176,6 @@ check_list_update() { json_add_string "$listtype" "$list_ver" json_dump > "$VER_PATH" log "[$(to_upper "$listtype")] Successfully updated." - - set_lock "remove" "$listtype" return 0 } diff --git a/small/luci-app-fchomo/root/usr/share/fchomo/firewall_post.ut b/small/luci-app-fchomo/root/usr/share/fchomo/firewall_post.ut index 80ddf84e01..f604911f32 100644 --- a/small/luci-app-fchomo/root/usr/share/fchomo/firewall_post.ut +++ b/small/luci-app-fchomo/root/usr/share/fchomo/firewall_post.ut @@ -60,6 +60,7 @@ const port_presets = { common_tcpport: uci.get(cfgname, 'config', 'common_tcpport') || '20-21,22,53,80,110,143,443,465,853,873,993,995,5222,8080,8443,9418', common_udpport: uci.get(cfgname, 'config', 'common_udpport') || '20-21,22,53,80,110,143,443,853,993,995,8080,8443,9418', + smtp_tcpport: uci.get(cfgname, 'config', 'smtp_tcpport') || '465,587', stun_port: uci.get(cfgname, 'config', 'stun_port') || '3478,19302', turn_port: uci.get(cfgname, 'config', 'turn_port') || '5349', google_fcm_port: uci.get(cfgname, 'config', 'google_fcm_port') || '443,5228-5230', diff --git a/small/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc b/small/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc index 5c59be209f..b9e1d7c18d 100644 --- a/small/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc +++ b/small/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc @@ -49,6 +49,7 @@ const ucisniff = 'sniff', const port_presets = { common_tcpport: uci.get(uciconf, ucifchm, 'common_tcpport') || '20-21,22,53,80,110,143,443,465,853,873,993,995,5222,8080,8443,9418', common_udpport: uci.get(uciconf, ucifchm, 'common_udpport') || '20-21,22,53,80,110,143,443,853,993,995,8080,8443,9418', + smtp_tcpport: uci.get(uciconf, ucifchm, 'smtp_tcpport') || '465,587', stun_port: uci.get(uciconf, ucifchm, 'stun_port') || '3478,19302', turn_port: uci.get(uciconf, ucifchm, 'turn_port') || '5349', google_fcm_port: uci.get(uciconf, ucifchm, 'google_fcm_port') || '443,5228-5230', diff --git a/small/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua b/small/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua index f25b2c0a5e..7b0231afda 100644 --- a/small/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua +++ b/small/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua @@ -315,6 +315,10 @@ o = s:option(Value, _n("encryption"), translate("Encrypt Method") .. " (encrypti o.default = "none" o.placeholder = "none" o:depends({ [_n("protocol")] = "vless" }) +o.validate = function(self, value) + value = api.trim(value) + return (value == "" and "none" or value) +end o = s:option(ListValue, _n("ss_method"), translate("Encrypt Method")) o.rewrite_option = "method" @@ -339,8 +343,8 @@ o = s:option(ListValue, _n("flow"), translate("flow")) o.default = "" o:value("", translate("Disable")) o:value("xtls-rprx-vision") -o:depends({ [_n("protocol")] = "vless", [_n("tls")] = true, [_n("transport")] = "raw" }) -o:depends({ [_n("protocol")] = "vless", [_n("tls")] = true, [_n("transport")] = "xhttp" }) +o:depends({ [_n("protocol")] = "vless", [_n("transport")] = "raw" }) +o:depends({ [_n("protocol")] = "vless", [_n("transport")] = "xhttp" }) o = s:option(Flag, _n("tls"), translate("TLS")) o.default = 0 diff --git a/small/luci-app-passwall/luasrc/passwall/util_xray.lua b/small/luci-app-passwall/luasrc/passwall/util_xray.lua index 57dcc63abb..d044229dc6 100644 --- a/small/luci-app-passwall/luasrc/passwall/util_xray.lua +++ b/small/luci-app-passwall/luasrc/passwall/util_xray.lua @@ -241,9 +241,12 @@ function gen_outbound(flag, node, tag, proxy_table) id = node.uuid, level = 0, security = (node.protocol == "vmess") and node.security or nil, - encryption = node.encryption or "none", - flow = (node.protocol == "vless" and node.tls == "1" and (node.transport == "raw" or node.transport == "tcp" or node.transport == "xhttp") and node.flow and node.flow ~= "") and node.flow or nil - + encryption = (node.encryption and node.encryption ~= "") and node.encryption or "none", + flow = (node.protocol == "vless" + and (node.tls == "1" or (node.encryption and node.encryption ~= "" and node.encryption ~= "none")) + and (node.transport == "raw" or node.transport == "tcp" or node.transport == "xhttp") + and node.flow and node.flow ~= "" + ) and node.flow or nil } } } diff --git a/small/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm b/small/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm index de2c945c3d..9a25a3ee24 100644 --- a/small/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm +++ b/small/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm @@ -1367,11 +1367,11 @@ local hysteria2_type = get_core("hysteria2_type", {{has_hysteria2,"hysteria2"},{ opt.set(dom_prefix + 'port', m.port || "443"); opt.set(dom_prefix + 'encryption', queryParam.encryption || "none"); + opt.set(dom_prefix + 'flow', (queryParam.flow || '').replace('-udp443', '')); if (queryParam.security) { if (queryParam.security == "tls") { opt.set(dom_prefix + 'tls', true); opt.set(dom_prefix + 'reality', false); - opt.set(dom_prefix + 'flow', (queryParam.flow || '').replace('-udp443', '')); opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); opt.set(dom_prefix + 'tls_allowInsecure', true); @@ -1389,7 +1389,6 @@ local hysteria2_type = get_core("hysteria2_type", {{has_hysteria2,"hysteria2"},{ if (queryParam.security == "reality") { opt.set(dom_prefix + 'tls', true); opt.set(dom_prefix + 'reality', true); - opt.set(dom_prefix + 'flow', (queryParam.flow || '').replace('-udp443', '')); opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); if (queryParam.fp && queryParam.fp.trim() != "") { diff --git a/small/v2ray-geodata/Makefile b/small/v2ray-geodata/Makefile index 2156c60dda..c6de07d820 100644 --- a/small/v2ray-geodata/Makefile +++ b/small/v2ray-geodata/Makefile @@ -21,13 +21,13 @@ define Download/geoip HASH:=c23ac8343e9796f8cc8b670c3aeb6df6d03d4e8914437a409961477f6b226098 endef -GEOSITE_VER:=20251017071833 +GEOSITE_VER:=20251018085207 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=bee87b211ab46b5af427f5e9ae2ad91661dea072c4591b58da16319609854282 + HASH:=c43dd5592ee78ff9bb843b75710f00ba059e84d56e1e9caace30015b8b5c9c1d endef GEOSITE_IRAN_VER:=202510130040 diff --git a/youtube-dl/.github/workflows/ci.yml b/youtube-dl/.github/workflows/ci.yml index c7a8fff844..073c4458c1 100644 --- a/youtube-dl/.github/workflows/ci.yml +++ b/youtube-dl/.github/workflows/ci.yml @@ -365,7 +365,7 @@ jobs: python -m ensurepip || python -m pip --version || { \ get_pip="${{ contains(needs.select.outputs.own-pip-versions, matrix.python-version) && format('{0}/', matrix.python-version) || '' }}"; \ curl -L -O "https://bootstrap.pypa.io/pip/${get_pip}get-pip.py"; \ - python get-pip.py; } + python get-pip.py --no-setuptools --no-wheel; } - name: Set up Python 2.6 pip if: ${{ matrix.python-version == '2.6' }} shell: bash diff --git a/youtube-dl/youtube_dl/extractor/youtube.py b/youtube-dl/youtube_dl/extractor/youtube.py index 0b802351d2..c045bc8bc2 100644 --- a/youtube-dl/youtube_dl/extractor/youtube.py +++ b/youtube-dl/youtube_dl/extractor/youtube.py @@ -100,8 +100,8 @@ class YoutubeBaseInfoExtractor(InfoExtractor): }, }, 'INNERTUBE_CONTEXT_CLIENT_NAME': 5, + 'REQUIRE_PO_TOKEN': False, 'REQUIRE_JS_PLAYER': False, - 'REQUIRE_PO_TOKEN': True, }, # mweb has 'ultralow' formats # See: https://github.com/yt-dlp/yt-dlp/pull/557 @@ -478,6 +478,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor): def _extract_thumbnails(data, *path_list, **kw_final_key): """ Extract thumbnails from thumbnails dict + @param path_list: path list to level that contains 'thumbnails' key """ final_key = kw_final_key.get('final_key', 'thumbnails') @@ -520,34 +521,26 @@ class YoutubeBaseInfoExtractor(InfoExtractor): headers={'content-type': 'application/json'}) if not search: break - slr_contents = try_get( + slr_contents = traverse_obj( search, - (lambda x: x['contents']['twoColumnSearchResultsRenderer']['primaryContents']['sectionListRenderer']['contents'], - lambda x: x['onResponseReceivedCommands'][0]['appendContinuationItemsAction']['continuationItems']), - list) + ('contents', 'twoColumnSearchResultsRenderer', 'primaryContents', + 'sectionListRenderer', 'contents'), + ('onResponseReceivedCommands', 0, 'appendContinuationItemsAction', + 'continuationItems'), + expected_type=list) if not slr_contents: break - for slr_content in slr_contents: - isr_contents = try_get( - slr_content, - lambda x: x['itemSectionRenderer']['contents'], - list) - if not isr_contents: - continue - for content in isr_contents: - if not isinstance(content, dict): - continue - video = content.get('videoRenderer') - if not isinstance(video, dict): - continue - video_id = video.get('videoId') - if not video_id: - continue - yield self._extract_video(video) - token = try_get( + for video in traverse_obj( + slr_contents, + (Ellipsis, 'itemSectionRenderer', 'contents', + Ellipsis, 'videoRenderer', + T(lambda v: v if v.get('videoId') else None))): + yield self._extract_video(video) + + token = traverse_obj( slr_contents, - lambda x: x[-1]['continuationItemRenderer']['continuationEndpoint']['continuationCommand']['token'], - compat_str) + (-1, 'continuationItemRenderer', 'continuationEndpoint', + 'continuationCommand', 'token', T(compat_str))) if not token: break data['continuation'] = token @@ -2176,7 +2169,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor): raise ExtractorError('Invalid URL: %s' % url) return mobj.group(2) - def _extract_chapters_from_json(self, data, video_id, duration): + @staticmethod + def _extract_chapters_from_json(data, video_id, duration): chapters_list = try_get( data, lambda x: x['playerOverlays'] @@ -2472,7 +2466,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): return LazyList({ 'url': update_url_query(f['url'], { 'range': '{0}-{1}'.format(range_start, min(range_start + CHUNK_SIZE - 1, f['filesize'])), - }) + }), } for range_start in range(0, f['filesize'], CHUNK_SIZE)) lower = lambda s: s.lower() @@ -2778,7 +2772,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'fmt': fmt, # xosf=1 causes undesirable text position data for vtt, json3 & srv* subtitles # See: https://github.com/yt-dlp/yt-dlp/issues/13654 - 'xosf': [] + 'xosf': [], }) lang_subs.append({ 'ext': fmt, @@ -3426,13 +3420,9 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): @staticmethod def _extract_grid_item_renderer(item): - assert isinstance(item, dict) - for key, renderer in item.items(): - if not key.startswith('grid') or not key.endswith('Renderer'): - continue - if not isinstance(renderer, dict): - continue - return renderer + return traverse_obj(item, ( + T(dict.items), lambda _, k_v: k_v[0].startswith('grid') and k_v[0].endswith('Renderer'), + 1, T(dict)), get_all=False) @staticmethod def _get_text(r, k): @@ -3515,8 +3505,8 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): shelf_renderer, lambda x: x['title']['runs'][0]['text'], compat_str) yield self.url_result(shelf_url, video_title=title) # Shelf may not contain shelf URL, fallback to extraction from content - for entry in self._shelf_entries_from_content(shelf_renderer): - yield entry + for from_ in self._shelf_entries_from_content(shelf_renderer): + yield from_ def _playlist_entries(self, video_list_renderer): for content in video_list_renderer['contents']: @@ -3538,12 +3528,12 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): if content_type == 'LOCKUP_CONTENT_TYPE_VIDEO': ie = YoutubeIE url = update_url_query( - 'https://www.youtube.com/watch', {'v': content_id}), + 'https://www.youtube.com/watch', {'v': content_id}) thumb_keys = (None,) elif content_type in ('LOCKUP_CONTENT_TYPE_PLAYLIST', 'LOCKUP_CONTENT_TYPE_PODCAST'): ie = YoutubeTabIE url = update_url_query( - 'https://www.youtube.com/playlist', {'list': content_id}), + 'https://www.youtube.com/playlist', {'list': content_id}) thumb_keys = ('collectionThumbnailViewModel', 'primaryThumbnail') else: self.report_warning( @@ -3606,15 +3596,10 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): yield self.url_result(ep_url, ie=YoutubeIE.ie_key(), video_id=video_id) def _post_thread_continuation_entries(self, post_thread_continuation): - contents = post_thread_continuation.get('contents') - if not isinstance(contents, list): - return - for content in contents: - renderer = content.get('backstagePostThreadRenderer') - if not isinstance(renderer, dict): - continue - for entry in self._post_thread_entries(renderer): - yield entry + for renderer in traverse_obj(post_thread_continuation, ( + 'contents', Ellipsis, 'backstagePostThreadRenderer', T(dict))): + for from_ in self._post_thread_entries(renderer): + yield from_ def _rich_grid_entries(self, contents): for content in traverse_obj( @@ -3689,17 +3674,10 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): if slr_renderer: is_channels_tab = tab.get('title') == 'Channels' continuation = None - slr_contents = try_get(slr_renderer, lambda x: x['contents'], list) or [] - for slr_content in slr_contents: - if not isinstance(slr_content, dict): - continue - is_renderer = try_get(slr_content, lambda x: x['itemSectionRenderer'], dict) - if not is_renderer: - continue - isr_contents = try_get(is_renderer, lambda x: x['contents'], list) or [] - for isr_content in isr_contents: - if not isinstance(isr_content, dict): - continue + for is_renderer in traverse_obj(slr_renderer, ( + 'contents', Ellipsis, 'itemSectionRenderer', T(dict))): + for isr_content in traverse_obj(slr_renderer, ( + 'contents', Ellipsis, T(dict))): renderer = isr_content.get('playlistVideoListRenderer') if renderer: for entry in self._playlist_entries(renderer): @@ -3894,18 +3872,34 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): uploader['channel'] = uploader['uploader'] return uploader - @classmethod - def _extract_alert(cls, data): - alerts = [] - for alert in traverse_obj(data, ('alerts', Ellipsis), expected_type=dict): - alert_text = traverse_obj( - alert, (None, lambda x: x['alertRenderer']['text']), get_all=False) - if not alert_text: - continue - text = cls._get_text(alert_text, 'text') - if text: - alerts.append(text) - return '\n'.join(alerts) + def _extract_and_report_alerts(self, data, expected=True, fatal=True, only_once=False): + + def alerts(): + for alert in traverse_obj(data, ('alerts', Ellipsis), expected_type=dict): + alert_dict = traverse_obj( + alert, 'alertRenderer', None, expected_type=dict, get_all=False) + alert_type = traverse_obj(alert_dict, 'type') + if not alert_type: + continue + message = self._get_text(alert_dict, 'text') + if message: + yield alert_type, message + + errors, warnings = [], [] + _IGNORED_WARNINGS = T('Unavailable videos will be hidden during playback') + for alert_type, alert_message in alerts(): + if alert_type.lower() == 'error' and fatal: + errors.append([alert_type, alert_message]) + elif alert_message not in _IGNORED_WARNINGS: + warnings.append([alert_type, alert_message]) + + for alert_type, alert_message in itertools.chain(warnings, errors[:-1]): + self.report_warning( + 'YouTube said: %s - %s' % (alert_type, alert_message), + only_once=only_once) + if errors: + raise ExtractorError( + 'YouTube said: %s' % (errors[-1][1],), expected=expected) def _extract_from_tabs(self, item_id, webpage, data, tabs): selected_tab = self._extract_selected_tab(tabs) @@ -4005,10 +3999,10 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): compat_str) or video_id if video_id: return self.url_result(video_id, ie=YoutubeIE.ie_key(), video_id=video_id) + # Capture and output alerts - alert = self._extract_alert(data) - if alert: - raise ExtractorError(alert, expected=True) + self._extract_and_report_alerts(data) + # Failed to recognize raise ExtractorError('Unable to recognize tab page') @@ -4162,7 +4156,7 @@ class YoutubeFavouritesIE(YoutubeBaseInfoExtractor): 'only_matching': True, }] - def _real_extract(self, url): + def _real_extract(self, _): return self.url_result( 'https://www.youtube.com/playlist?list=LL', ie=YoutubeTabIE.ie_key()) @@ -4244,7 +4238,7 @@ class YoutubeFeedsInfoExtractor(YoutubeTabIE): def _real_initialize(self): self._login() - def _real_extract(self, url): + def _real_extract(self, _): return self.url_result( 'https://www.youtube.com/feed/%s' % self._FEED_NAME, ie=YoutubeTabIE.ie_key()) @@ -4259,7 +4253,7 @@ class YoutubeWatchLaterIE(InfoExtractor): 'only_matching': True, }] - def _real_extract(self, url): + def _real_extract(self, _): return self.url_result( 'https://www.youtube.com/playlist?list=WL', ie=YoutubeTabIE.ie_key()) @@ -4339,7 +4333,7 @@ class YoutubeTruncatedURLIE(InfoExtractor): 'only_matching': True, }] - def _real_extract(self, url): + def _real_extract(self, _): raise ExtractorError( 'Did you forget to quote the URL? Remember that & is a meta ' 'character in most shells, so you want to put the URL in quotes, '