diff --git a/Cargo.lock b/Cargo.lock index 121fee5..cf0c979 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -131,7 +131,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -479,7 +479,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -669,7 +669,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -703,7 +703,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -714,7 +714,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -997,7 +997,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -1840,9 +1840,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.2" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486aed0026218e61b8a01d5fbd5a0a134649abb71a0e53b7bc088529dced86e" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "memoffset" @@ -2051,9 +2051,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -2097,7 +2097,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -2108,18 +2108,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "111.27.0+1.1.1v" +version = "300.1.3+3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e8f197c82d7511c5b014030c9b1efeda40d7d5f99d23b4ceed3524a5e63f02" +checksum = "cd2c101a165fff9935e34def4669595ab1c7847943c42be86e21503e482be107" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.92" +version = "0.9.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7e971c2c2bba161b2d2fdf37080177eff520b3bc044787c7f1f5f9e78d869b" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" dependencies = [ "cc", "libc", @@ -2310,7 +2310,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -2582,13 +2582,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.7", + "regex-automata 0.3.8", "regex-syntax 0.7.5", ] @@ -2603,9 +2603,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" dependencies = [ "aho-corasick", "memchr", @@ -2841,7 +2841,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -2928,7 +2928,7 @@ checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -2950,7 +2950,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -3000,7 +3000,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -3216,9 +3216,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.29" +version = "2.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398" dependencies = [ "proc-macro2", "quote", @@ -3560,22 +3560,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.47" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" +checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.47" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" +checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -3669,7 +3669,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -3779,7 +3779,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", ] [[package]] @@ -4048,7 +4048,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", "wasm-bindgen-shared", ] @@ -4082,7 +4082,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.31", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/crates/cli/CHANGELOG.md b/crates/cli/CHANGELOG.md index d9ce794..1f3c4bc 100644 --- a/crates/cli/CHANGELOG.md +++ b/crates/cli/CHANGELOG.md @@ -2,6 +2,12 @@ ## [0.1.35] +**请重新获取最新的抖音 cookie** + +### 修复 + +- 修复 douyin 直播源获取 + ### 更新 - douyu 支持 直播间封面, 主播名,主播头像获取 diff --git a/crates/core/src/live/douyin.rs b/crates/core/src/live/douyin.rs index 963793e..6377cf4 100644 --- a/crates/core/src/live/douyin.rs +++ b/crates/core/src/live/douyin.rs @@ -1,9 +1,8 @@ use std::collections::HashMap; use async_trait::async_trait; -use regex::Regex; +use reqwest::header::HeaderValue; use serde_json::Value; -use urlencoding::decode; use crate::{ common::CLIENT, @@ -14,6 +13,8 @@ use crate::{ use super::{Live, Node}; const URL: &str = "https://live.douyin.com/"; +const ENTER_URL: &str = + "https://live.douyin.com/webcast/room/web/enter/?aid=6383&live_id=1&device_platform=web&language=zh-CN&enter_from=web_live&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=94.0.4606.81&room_id_str=&enter_source=&web_rid="; /// 抖音直播 /// @@ -24,72 +25,66 @@ pub struct Client; impl Live for Client { /// `headers`: cookie 必须, 但不需要是登录状态 async fn get(&self, rid: &str, headers: Option>) -> Result { + let mut headers = hash2header(headers); + headers.append("referer", HeaderValue::from_static(URL)); // 通过网页内容获取直播地址 - let resp = CLIENT - .get(format!("{URL}{rid}")) - .headers(hash2header(headers)) + let json = CLIENT + .get(format!("{ENTER_URL}{rid}")) + .headers(headers) .send() + .await? + .json::() .await?; - let resp_text = resp.text().await?; - let re = - Regex::new(r#""#)?; - let json = decode( - re.captures(&resp_text) - .ok_or(SeamError::NeedFix("captures"))? - .get(1) - .ok_or(SeamError::NeedFix("json"))? - .as_str(), - )?; - let json = serde_json::from_str::(&json)?; + let data = &json["data"]["data"][0]; - let room_info = &json["app"]["initialState"]["roomStore"]["roomInfo"]; - match room_info["anchor"] { - // TODO 主播不存在 这种需要额外判断吗? - serde_json::Value::Null => Err(SeamError::None), - _ => match &room_info["room"]["stream_url"] { - // 未开播 - Value::Null => Err(SeamError::None), - stream_url => { - let title = room_info["room"]["title"] - .as_str() - .unwrap_or("douyin") - .to_string(); + let status = &data["status"]; - // 获取 json str - let json_str = stream_url["live_core_sdk_data"]["pull_data"]["stream_data"] - .as_str() - .ok_or(SeamError::NeedFix("stream_data"))?; - - let new_json = serde_json::from_str::(json_str)?; - // 返回最高清晰度的直播地址 flv 和 hls - let urls = vec![ - parse_url( - new_json["data"]["origin"]["main"]["flv"] - .as_str() - .ok_or(SeamError::NeedFix("flv_pull_url"))? - .to_owned(), - ), - parse_url( - new_json["data"]["origin"]["main"]["hls"] - .as_str() - .ok_or(SeamError::NeedFix("hls_pull_url_map"))? - .to_owned(), - ), - ]; - Ok(Node { - rid: rid.to_string(), - title, - cover: "".to_owned(), - anchor: "".to_owned(), - head: "".to_owned(), - urls, - }) - } - }, + if status.as_i64().unwrap_or(0) != 2 { + return Err(SeamError::None); } + + let title = data["title"].as_str().unwrap_or("获取失败").to_string(); + let cover = data["cover"]["url_list"][0] + .as_str() + .unwrap_or("") + .to_string(); + let anchor = data["owner"]["nickname"].as_str().unwrap_or("").to_string(); + let head = data["owner"]["avatar_thumb"]["url_list"][0] + .as_str() + .unwrap_or("") + .to_string(); + + let stream_data = data["stream_url"]["live_core_sdk_data"]["pull_data"]["stream_data"] + .as_str() + .ok_or(SeamError::NeedFix("stream_data"))?; + + let new_json = serde_json::from_str::(stream_data)?; + // 返回最高清晰度的直播地址 flv 和 hls + let urls = vec![ + parse_url( + new_json["data"]["origin"]["main"]["flv"] + .as_str() + .ok_or(SeamError::NeedFix("flv_pull_url"))? + .to_owned(), + ), + parse_url( + new_json["data"]["origin"]["main"]["hls"] + .as_str() + .ok_or(SeamError::NeedFix("hls_pull_url_map"))? + .to_owned(), + ), + ]; + Ok(Node { + rid: rid.to_string(), + title, + cover, + anchor, + head, + urls, + }) } } #[cfg(test)] -macros::gen_test!(5893162289); +macros::gen_test!(7274955926023686967); diff --git a/crates/gui/CHANGELOG.md b/crates/gui/CHANGELOG.md index 5fadd0e..09b7389 100644 --- a/crates/gui/CHANGELOG.md +++ b/crates/gui/CHANGELOG.md @@ -2,6 +2,12 @@ ## [0.1.8] +**请重新获取最新的抖音 cookie** + +### 修复 + +- 修复 douyin 直播源获取 + ### 更新 - douyu 支持 直播间封面, 主播名,主播头像获取 diff --git a/crates/gui/package.json b/crates/gui/package.json index a16cf0d..58d9bee 100644 --- a/crates/gui/package.json +++ b/crates/gui/package.json @@ -19,9 +19,9 @@ }, "devDependencies": { "@tauri-apps/cli": "^1.4.0", - "@types/node": "^20.5.8", - "@typescript-eslint/eslint-plugin": "^6.5.0", - "@typescript-eslint/parser": "^6.5.0", + "@types/node": "^20.5.9", + "@typescript-eslint/eslint-plugin": "^6.6.0", + "@typescript-eslint/parser": "^6.6.0", "eslint": "^8.48.0", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-solid": "^0.13.0", diff --git a/crates/gui/yarn.lock b/crates/gui/yarn.lock index 5f6cdf5..8160b1d 100644 --- a/crates/gui/yarn.lock +++ b/crates/gui/yarn.lock @@ -640,26 +640,26 @@ resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.12.tgz" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^20.5.8": - version "20.5.8" - resolved "https://registry.npmmirror.com/@types/node/-/node-20.5.8.tgz#fb171fd22d37ca6e2ea97fde88e6a13ee14bc327" - integrity sha512-eajsR9aeljqNhK028VG0Wuw+OaY5LLxYmxeoXynIoE6jannr9/Ucd1LL0hSSoafk5LTYG+FfqsyGt81Q6Zkybw== +"@types/node@^20.5.9": + version "20.5.9" + resolved "https://registry.npmmirror.com/@types/node/-/node-20.5.9.tgz#a70ec9d8fa0180a314c3ede0e20ea56ff71aed9a" + integrity sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ== "@types/semver@^7.5.0": version "7.5.0" resolved "https://registry.npmmirror.com/@types/semver/-/semver-7.5.0.tgz" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== -"@typescript-eslint/eslint-plugin@^6.5.0": - version "6.5.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.5.0.tgz#5cee33edf0d45d5ec773e3b3111206b098ac8599" - integrity sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw== +"@typescript-eslint/eslint-plugin@^6.6.0": + version "6.6.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.6.0.tgz#19ba09aa34fd504696445100262e5a9e1b1d7024" + integrity sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/type-utils" "6.5.0" - "@typescript-eslint/utils" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + "@typescript-eslint/scope-manager" "6.6.0" + "@typescript-eslint/type-utils" "6.6.0" + "@typescript-eslint/utils" "6.6.0" + "@typescript-eslint/visitor-keys" "6.6.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -667,15 +667,15 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.5.0": - version "6.5.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.5.0.tgz#3d6ed231c5e307c5f5f4a0d86893ec01e92b8c77" - integrity sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ== +"@typescript-eslint/parser@^6.6.0": + version "6.6.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.6.0.tgz#fe323a7b4eafb6d5ea82b96216561810394a739e" + integrity sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w== dependencies: - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/typescript-estree" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + "@typescript-eslint/scope-manager" "6.6.0" + "@typescript-eslint/types" "6.6.0" + "@typescript-eslint/typescript-estree" "6.6.0" + "@typescript-eslint/visitor-keys" "6.6.0" debug "^4.3.4" "@typescript-eslint/scope-manager@6.4.1": @@ -686,21 +686,21 @@ "@typescript-eslint/types" "6.4.1" "@typescript-eslint/visitor-keys" "6.4.1" -"@typescript-eslint/scope-manager@6.5.0": - version "6.5.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.5.0.tgz#f2cb20895aaad41b3ad27cc3a338ce8598f261c5" - integrity sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw== +"@typescript-eslint/scope-manager@6.6.0": + version "6.6.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz#57105d4419d6de971f7d2c30a2ff4ac40003f61a" + integrity sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw== dependencies: - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + "@typescript-eslint/types" "6.6.0" + "@typescript-eslint/visitor-keys" "6.6.0" -"@typescript-eslint/type-utils@6.5.0": - version "6.5.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.5.0.tgz#6d246c93739282bc0d2e623f28d0dec6cfcc38d7" - integrity sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A== +"@typescript-eslint/type-utils@6.6.0": + version "6.6.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz#14f651d13b884915c4fca0d27adeb652a4499e86" + integrity sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg== dependencies: - "@typescript-eslint/typescript-estree" "6.5.0" - "@typescript-eslint/utils" "6.5.0" + "@typescript-eslint/typescript-estree" "6.6.0" + "@typescript-eslint/utils" "6.6.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -709,10 +709,10 @@ resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.4.1.tgz#b2c61159f46dda210fed9f117f5d027f65bb5c3b" integrity sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg== -"@typescript-eslint/types@6.5.0": - version "6.5.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.5.0.tgz#f4e55cfd99ac5346ea772770bf212a3e689a8f04" - integrity sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w== +"@typescript-eslint/types@6.6.0": + version "6.6.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.6.0.tgz#95e7ea650a2b28bc5af5ea8907114a48f54618c2" + integrity sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg== "@typescript-eslint/typescript-estree@6.4.1": version "6.4.1" @@ -727,30 +727,30 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/typescript-estree@6.5.0": - version "6.5.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.5.0.tgz#1cef6bc822585e9ef89d88834bc902d911d747ed" - integrity sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ== +"@typescript-eslint/typescript-estree@6.6.0": + version "6.6.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz#373c420d2e12c28220f4a83352280a04823a91b7" + integrity sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA== dependencies: - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/visitor-keys" "6.5.0" + "@typescript-eslint/types" "6.6.0" + "@typescript-eslint/visitor-keys" "6.6.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.5.0": - version "6.5.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.5.0.tgz#6668bee4f7f24978b11df8a2ea42d56eebc4662c" - integrity sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ== +"@typescript-eslint/utils@6.6.0": + version "6.6.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.6.0.tgz#2d686c0f0786da6362d909e27a9de1c13ba2e7dc" + integrity sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.5.0" - "@typescript-eslint/types" "6.5.0" - "@typescript-eslint/typescript-estree" "6.5.0" + "@typescript-eslint/scope-manager" "6.6.0" + "@typescript-eslint/types" "6.6.0" + "@typescript-eslint/typescript-estree" "6.6.0" semver "^7.5.4" "@typescript-eslint/utils@^6.4.0": @@ -774,12 +774,12 @@ "@typescript-eslint/types" "6.4.1" eslint-visitor-keys "^3.4.1" -"@typescript-eslint/visitor-keys@6.5.0": - version "6.5.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.5.0.tgz#1a6f474a0170a447b76f0699ce6700110fd11436" - integrity sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA== +"@typescript-eslint/visitor-keys@6.6.0": + version "6.6.0" + resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz#1109088b4346c8b2446f3845db526374d9a3bafc" + integrity sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ== dependencies: - "@typescript-eslint/types" "6.5.0" + "@typescript-eslint/types" "6.6.0" eslint-visitor-keys "^3.4.1" acorn-jsx@^5.3.2: