From 288a1810886bf69fc9528fb932b43ae3c468fadc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 12:19:08 +0000 Subject: [PATCH 1/2] Bump the dependencies group with 6 updates Bumps the dependencies group with 6 updates: | Package | From | To | | --- | --- | --- | | [clap](https://github.com/clap-rs/clap) | `4.5.13` | `4.5.15` | | [serde](https://github.com/serde-rs/serde) | `1.0.204` | `1.0.206` | | [serde_json](https://github.com/serde-rs/json) | `1.0.122` | `1.0.124` | | [assert_cmd](https://github.com/assert-rs/assert_cmd) | `2.0.15` | `2.0.16` | | [tempfile](https://github.com/Stebalien/tempfile) | `3.11.0` | `3.12.0` | | [html5ever](https://github.com/servo/html5ever) | `0.27.0` | `0.28.0` | Updates `clap` from 4.5.13 to 4.5.15 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.13...v4.5.15) Updates `serde` from 1.0.204 to 1.0.206 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.204...v1.0.206) Updates `serde_json` from 1.0.122 to 1.0.124 - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.122...v1.0.124) Updates `assert_cmd` from 2.0.15 to 2.0.16 - [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md) - [Commits](https://github.com/assert-rs/assert_cmd/compare/v2.0.15...v2.0.16) Updates `tempfile` from 3.11.0 to 3.12.0 - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/commits) Updates `html5ever` from 0.27.0 to 0.28.0 - [Commits](https://github.com/servo/html5ever/commits) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: assert_cmd dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: html5ever dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies ... Signed-off-by: dependabot[bot] --- Cargo.lock | 108 +++++++++++++++++++++++------------------- lychee-bin/Cargo.toml | 10 ++-- lychee-lib/Cargo.toml | 8 ++-- 3 files changed, 68 insertions(+), 58 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1ea32fb16a..edd95fed20 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -81,9 +81,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" @@ -143,13 +143,14 @@ dependencies = [ [[package]] name = "assert_cmd" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc65048dd435533bb1baf2ed9956b9a278fbfdcf90301b39ee117f06c0199d37" +checksum = "dc1835b7f27878de8525dc71410b5a31cdcc5f230aed5ba5df968e09c201b23d" dependencies = [ "anstyle", "bstr", "doc-comment", + "libc", "predicates", "predicates-core", "predicates-tree", @@ -734,7 +735,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -766,9 +767,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.13" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" dependencies = [ "clap_builder", "clap_derive", @@ -776,9 +777,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -1909,9 +1910,9 @@ dependencies = [ [[package]] name = "html5ever" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" +checksum = "0ff6858c1f7e2a470c5403091866fa95b36fe0dbac5d771f932c15e5ff1ee501" dependencies = [ "log", "mac", @@ -2582,9 +2583,9 @@ dependencies = [ [[package]] name = "markup5ever" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" +checksum = "d581ff8be69d08a2efa23a959d81aa22b739073f749f067348bd4f4ba4b69195" dependencies = [ "log", "phf", @@ -3874,18 +3875,18 @@ checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.206" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.206" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97" dependencies = [ "proc-macro2", "quote", @@ -3894,9 +3895,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" dependencies = [ "itoa", "memchr", @@ -4270,15 +4271,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.11.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand 2.0.2", "once_cell", "rustix 0.38.34", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5008,7 +5009,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -5026,7 +5027,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -5046,18 +5056,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -5068,9 +5078,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -5080,9 +5090,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -5092,15 +5102,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -5110,9 +5120,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -5122,9 +5132,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -5134,9 +5144,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -5146,9 +5156,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" diff --git a/lychee-bin/Cargo.toml b/lychee-bin/Cargo.toml index a21c7a4bcf..6aabd4504b 100644 --- a/lychee-bin/Cargo.toml +++ b/lychee-bin/Cargo.toml @@ -18,7 +18,7 @@ lychee-lib = { path = "../lychee-lib", version = "0.15.1", default-features = fa anyhow = "1.0.86" assert-json-diff = "2.0.2" -clap = { version = "4.5.13", features = ["env", "derive"] } +clap = { version = "4.5.15", features = ["env", "derive"] } console = "0.15.8" const_format = "0.2.32" csv = "1.3.0" @@ -46,8 +46,8 @@ reqwest_cookie_store = "0.8.0" # https://github.com/Homebrew/homebrew-core/pull/70216 ring = "0.17.8" secrecy = { version = "0.8.0", features = ["serde"] } -serde = { version = "1.0.204", features = ["derive"] } -serde_json = "1.0.122" +serde = { version = "1.0.206", features = ["derive"] } +serde_json = "1.0.124" strum = { version = "0.26.3", features = ["derive"] } supports-color = "3.0.0" tabled = "0.16.0" @@ -56,10 +56,10 @@ tokio-stream = "0.1.15" toml = "0.8.19" [dev-dependencies] -assert_cmd = "2.0.15" +assert_cmd = "2.0.16" predicates = "3.1.2" pretty_assertions = "1.4.0" -tempfile = "3.11.0" +tempfile = "3.12.0" tracing-subscriber = { version = "0.3.18", default-features = false, features = [ "fmt", "registry", diff --git a/lychee-lib/Cargo.toml b/lychee-lib/Cargo.toml index 13886e29de..53c53e8eb2 100644 --- a/lychee-lib/Cargo.toml +++ b/lychee-lib/Cargo.toml @@ -20,7 +20,7 @@ email_address = "0.2.9" futures = "0.3.30" glob = "0.3.1" headers = "0.4.0" -html5ever = "0.27.0" +html5ever = "0.28.0" html5gum = "0.5.7" http = "1.0.0" hyper = "1.3.1" @@ -49,7 +49,7 @@ reqwest_cookie_store = "0.8.0" # https://github.com/Homebrew/homebrew-core/pull/70216 ring = "0.17.8" secrecy = "0.8.0" -serde = { version = "1.0.204", features = ["derive"] } +serde = { version = "1.0.206", features = ["derive"] } serde_with = "3.8.1" shellexpand = "3.1.0" thiserror = "1.0.63" @@ -64,9 +64,9 @@ features = ["runtime-tokio"] [dev-dependencies] doc-comment = "0.3.3" -tempfile = "3.11.0" +tempfile = "3.12.0" wiremock = "0.6.1" -serde_json = "1.0.122" +serde_json = "1.0.124" rstest = "0.22.0" toml = "0.8.19" From deb8228050ae6883a49d73fee780f5d34df9d9f5 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 16 Aug 2024 16:45:13 +0200 Subject: [PATCH 2/2] Fix compile error --- lychee-lib/src/extract/html/html5ever.rs | 39 +++++++++++++----------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/lychee-lib/src/extract/html/html5ever.rs b/lychee-lib/src/extract/html/html5ever.rs index 1ee03b836f..d84adb3c3f 100644 --- a/lychee-lib/src/extract/html/html5ever.rs +++ b/lychee-lib/src/extract/html/html5ever.rs @@ -1,3 +1,5 @@ +use std::cell::RefCell; + use html5ever::{ buffer_queue::BufferQueue, tendril::StrTendril, @@ -9,22 +11,22 @@ use crate::types::uri::raw::RawUri; #[derive(Clone, Default)] struct LinkExtractor { - links: Vec, + links: RefCell>, include_verbatim: bool, - current_verbatim_element_name: Option, + current_verbatim_element_name: RefCell>, } impl TokenSink for LinkExtractor { type Handle = (); #[allow(clippy::match_same_arms)] - fn process_token(&mut self, token: Token, _line_number: u64) -> TokenSinkResult<()> { + fn process_token(&self, token: Token, _line_number: u64) -> TokenSinkResult<()> { match token { Token::CharacterTokens(raw) => { - if self.current_verbatim_element_name.is_some() { + if self.current_verbatim_element_name.borrow().is_some() { return TokenSinkResult::Continue; } - self.links.extend(extract_plaintext(&raw)); + self.links.borrow_mut().extend(extract_plaintext(&raw)); } Token::TagToken(tag) => { let Tag { @@ -36,25 +38,26 @@ impl TokenSink for LinkExtractor { // Check if this is a verbatim element, which we want to skip. if !self.include_verbatim && is_verbatim_elem(&name) { // Check if we're currently inside a verbatim block - if let Some(current_verbatim_element_name) = &self.current_verbatim_element_name - { + let mut curr_verbatim_elem = self.current_verbatim_element_name.borrow_mut(); + + if curr_verbatim_elem.is_some() { // Inside a verbatim block. Check if the verbatim // element name matches with the current element name. - if current_verbatim_element_name == name.as_ref() { + if curr_verbatim_elem.as_ref() == Some(&name.to_string()) { // If so, we're done with the verbatim block, // -- but only if this is an end tag. if matches!(kind, TagKind::EndTag) { - self.current_verbatim_element_name = None; + *curr_verbatim_elem = None; } } } else if matches!(kind, TagKind::StartTag) { // We're not inside a verbatim block, but we just // encountered a verbatim element. Remember the name // of the element. - self.current_verbatim_element_name = Some(name.to_string()); + *curr_verbatim_elem = Some(name.to_string()); } } - if self.current_verbatim_element_name.is_some() { + if self.current_verbatim_element_name.borrow().is_some() { // We want to skip the content of this element // as we're inside a verbatim block. return TokenSinkResult::Continue; @@ -101,7 +104,7 @@ impl TokenSink for LinkExtractor { }) .collect::>(), }; - self.links.extend(new_urls); + self.links.borrow_mut().extend(new_urls); } } Token::ParseError(_err) => { @@ -119,9 +122,9 @@ impl TokenSink for LinkExtractor { impl LinkExtractor { pub(crate) const fn new(include_verbatim: bool) -> Self { Self { - links: vec![], + links: RefCell::new(Vec::new()), include_verbatim, - current_verbatim_element_name: None, + current_verbatim_element_name: RefCell::new(None), } } @@ -167,17 +170,17 @@ impl LinkExtractor { /// Extract unparsed URL strings from an HTML string. pub(crate) fn extract_html(buf: &str, include_verbatim: bool) -> Vec { - let mut input = BufferQueue::default(); + let input = BufferQueue::default(); input.push_back(StrTendril::from(buf)); - let mut tokenizer = Tokenizer::new( + let tokenizer = Tokenizer::new( LinkExtractor::new(include_verbatim), TokenizerOpts::default(), ); - let _handle = tokenizer.feed(&mut input); + let _handle = tokenizer.feed(&input); tokenizer.end(); - tokenizer.sink.links + tokenizer.sink.links.into_inner() } #[cfg(test)]