diff --git a/Cargo.lock b/Cargo.lock index aac8eec..43eccb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,12 +117,6 @@ version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.11.1" @@ -202,9 +196,9 @@ dependencies = [ [[package]] name = "cssparser" -version = "0.34.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c66d1cd8ed61bf80b38432613a7a2f09401ab8d0501110655f8b341484a3e3" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" dependencies = [ "cssparser-macros", "dtoa-short", @@ -225,12 +219,22 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.20" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ "proc-macro2", "quote", + "rustc_version", "syn", ] @@ -313,6 +317,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -383,15 +393,6 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -705,14 +706,12 @@ dependencies = [ [[package]] name = "html5ever" -version = "0.29.1" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +checksum = "6452c4751a24e1b99c3260d505eaeee76a050573e61f30ac2c924ddc7236f01e" dependencies = [ "log", - "mac", "markup5ever", - "match_token", ] [[package]] @@ -1012,27 +1011,13 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" [[package]] name = "markup5ever" -version = "0.14.1" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" +checksum = "6c3294c4d74d0742910f8c7b466f44dda9eb2d5742c1e430138df290a1e8451c" dependencies = [ "log", - "phf", - "phf_codegen", - "string_cache", - "string_cache_codegen", "tendril", -] - -[[package]] -name = "match_token" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "web_atoms", ] [[package]] @@ -1077,7 +1062,7 @@ dependencies = [ "httparse", "memchr", "mime", - "spin", + "spin 0.9.8", "version_check", ] @@ -1119,8 +1104,15 @@ dependencies = [ [[package]] name = "paste" version = "1.0.15" +dependencies = [ + "pastey", +] + +[[package]] +name = "pastey" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" [[package]] name = "percent-encoding" @@ -1130,19 +1122,20 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "phf" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ "phf_macros", "phf_shared", + "serde", ] [[package]] name = "phf_codegen" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" dependencies = [ "phf_generator", "phf_shared", @@ -1150,19 +1143,19 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ + "fastrand", "phf_shared", - "rand 0.8.6", ] [[package]] name = "phf_macros" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ "phf_generator", "phf_shared", @@ -1173,9 +1166,9 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher", ] @@ -1253,14 +1246,14 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e" dependencies = [ "bytes", "getrandom 0.3.4", "lru-slab", - "rand 0.9.4", + "rand", "ring", "rustc-hash", "rustls", @@ -1301,15 +1294,6 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -[[package]] -name = "rand" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" -dependencies = [ - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.4" @@ -1317,7 +1301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha", - "rand_core 0.9.5", + "rand_core", ] [[package]] @@ -1327,15 +1311,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.5", + "rand_core", ] -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" - [[package]] name = "rand_core" version = "0.9.5" @@ -1441,6 +1419,15 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustls" version = "0.23.40" @@ -1496,9 +1483,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scraper" -version = "0.23.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e65d9d888567588db4c12da1087598d0f6f8b346cc2c5abc91f05fc2dffe2" +checksum = "93cecd86d6259499c844440546d02f55f3e17bd286e529e48d1f9f67e92315cb" dependencies = [ "cssparser", "ego-tree", @@ -1511,23 +1498,29 @@ dependencies = [ [[package]] name = "selectors" -version = "0.26.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd568a4c9bb598e291a08244a5c1f5a8a6650bee243b5b0f8dbb3d9cc1d87fe8" +checksum = "feef350c36147532e1b79ea5c1f3791373e61cbd9a6a2615413b3807bb164fb7" dependencies = [ "bitflags", "cssparser", "derive_more", - "fxhash", "log", "new_debug_unreachable", "phf", "phf_codegen", "precomputed-hash", + "rustc-hash", "servo_arc", "smallvec", ] +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + [[package]] name = "serde" version = "1.0.228" @@ -1673,8 +1666,15 @@ dependencies = [ [[package]] name = "spin" version = "0.9.8" +dependencies = [ + "spin 0.12.2", +] + +[[package]] +name = "spin" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "8abadc99fd9c7bbb7d0ca2b31d72a067d0c0dcd7aad25ab8cac71ba91417694b" [[package]] name = "stable_deref_trait" @@ -1690,22 +1690,21 @@ checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" [[package]] name = "string_cache" -version = "0.8.9" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" dependencies = [ "new_debug_unreachable", "parking_lot", "phf_shared", "precomputed-hash", - "serde", ] [[package]] name = "string_cache_codegen" -version = "0.5.4" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" dependencies = [ "phf_generator", "phf_shared", @@ -2210,6 +2209,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web_atoms" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" +dependencies = [ + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + [[package]] name = "webpki-roots" version = "1.0.7" diff --git a/Cargo.toml b/Cargo.toml index 7b11d30..910c796 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,3 +9,9 @@ edition = "2021" [profile.release] opt-level = "z" lto = true + +# Upstreams still request retired package identities. These tiny bridges re-export +# the maintained successors without introducing a second implementation. +[patch.crates-io] +paste = { path = "compat/paste" } +spin = { path = "compat/spin" } diff --git a/PLAN.md b/PLAN.md index 018c9e5..f3a113c 100644 --- a/PLAN.md +++ b/PLAN.md @@ -71,10 +71,10 @@ encryption, retention, backup, and deployment policy remain host concerns. ## Slice 7 — v1 compatibility and closure - [ ] **User value:** maintainers and adopters receive a reproducible, migration-aware v1 with no known material contradiction and no hidden publication side effect. -- **State:** Blocked only on externally unavailable audit tools — all reachable local release gates pass, but `cargo-audit` and `cargo-deny` are not installed and dependency installation is not authorized. +- **State:** In progress — audit tools are installed and the pinned dependency update removes the `fxhash`, `paste`, `spin`, and vulnerable `quinn-proto` findings without raising the Rust 1.80 baseline; no repository license policy exists yet for an approved license audit. - **Build:** freeze the supported Rust/browser/WASM/integration matrix; reconcile public/generated/Surface/symbol/wire/runtime/persisted-schema compatibility; add migration fixtures; make canonical examples compatibility tests; update the progressive tutorial path; run all local release gates and disposition every P0/P1, advisory, unsafe-code, license, performance, accessibility, and documentation finding. - **Refusals:** no publish, deploy, upload, store submission, speculative feature, or weakening a gate to make it pass. - **Requirements:** `v1_release/001-010`, `versioning/*`, `test/*`, `diag/*`, `performance/*`, `security/008`, and all requirements changed by the preceding slices. - **Proof:** clean-tree formatting, workspace tests, strict all-target Clippy, compile-fail, browser/WASM/offline/multiplayer scenarios, benchmark budgets, approved pinned lockfile audit, requirements proof audit, docs/examples checks, and independent contradiction review all pass with no unresolved P0/P1. -`cargo test -p hemx-core --test effect_batch compatibility_fixture_accepts_only_the_declared_v1_wire_version -- --exact`, `cargo test -p hemx-wasm --test browser flat_patch_persists_offline_then_uploads_with_same_operation_identity -- --exact`, and the four canonical example package tests prove compatibility. The release audit fixed genuine local failures: the app-facing durable-sync primitive accepts ordinary `IntoEffect`, the canonical example contract recognizes the isolated legacy fixture, the 413-requirement corpus is migrated losslessly to installed redgate format, and `html-examples-smoke` launches its child from the workspace rather than the caller directory. `cargo run -p hemx-xtask -- test`, `cargo run -p hemx-xtask -- bench`, `cargo run -p hemx-xtask -- html-examples-smoke`, strict all-target Clippy, warning-denied workspace docs, and workspace doctests pass. README/readiness contradiction review now matches the proven cursor. `cargo audit --version` and `cargo deny --version` both fail with Cargo `no such command`; dependency installation and the approved pinned dependency/license audit remain externally blocked. Execution cursor: obtain explicit installation authority or a supplied environment containing `cargo-audit` and `cargo-deny`, run the pinned lockfile audits, then close Slice 7 if clean. +`cargo test -p hemx-core --test effect_batch compatibility_fixture_accepts_only_the_declared_v1_wire_version -- --exact`, `cargo test -p hemx-wasm --test browser flat_patch_persists_offline_then_uploads_with_same_operation_identity -- --exact`, and the four canonical example package tests prove compatibility. The release audit fixed genuine local failures: the app-facing durable-sync primitive accepts ordinary `IntoEffect`, the canonical example contract recognizes the isolated legacy fixture, the 413-requirement corpus is migrated losslessly to installed redgate format, and `html-examples-smoke` launches its child from the workspace rather than the caller directory. `cargo run -p hemx-xtask -- test`, `cargo run -p hemx-xtask -- bench`, `cargo run -p hemx-xtask -- html-examples-smoke`, strict all-target Clippy, warning-denied workspace docs, and workspace doctests pass. README/readiness contradiction review matches the proven cursor. After installing `cargo-audit 0.22.1` and `cargo-deny 0.19.0`, upgrading `scraper` removes yanked `fxhash`, a tiny local package-identity bridge moves legacy `paste` consumers to maintained `pastey`, another moves Multer's `spin 0.9` requirement to maintained `spin 0.12`, and `quinn-proto 0.11.15` resolves its advisory. Both bridges only re-export the maintained crate, forbid unsafe code, and preserve the Rust 1.80 baseline. `cargo audit -D warnings --file Cargo.lock` and `cargo deny check advisories sources` pass. Execution cursor: decide and record the repository's license allowlist, run strict `cargo-deny` license checks, then close Slice 7 if clean. diff --git a/README.md b/README.md index 2911f5c..b30721d 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ handwritten UI JavaScript, selector targeting, or raw runtime primitives. req: p Status: the evidence-backed v1 behavior slices are implemented and browser-proven: server-first/page-enhanced behavior, client-local WASM, durable offline/sync, the multiplayer Kanban milestone, and the production reference. Local workspace, -browser, performance, documentation, and canonical-example gates pass; the -pinned dependency/license audits remain blocked because `cargo-audit` and -`cargo-deny` are not installed. See `docs/v1-product-evidence.md` for the product -boundary, `REQUIREMENTS.md` for authority, `PLAN.md` for execution state, and -`docs/v1-readiness.md` for evidence. No publishing is implied. +browser, performance, documentation, and canonical-example gates pass. The +warning-denied vulnerability and source audits are clean; strict license closure +awaits a repository license allowlist. See `docs/v1-product-evidence.md` for the +product boundary, `REQUIREMENTS.md` for authority, `PLAN.md` for execution state, +and `docs/v1-readiness.md` for evidence. No publishing is implied. Template authoring: `.heml` is HTML plus a small hemplate overlay for escaped text, trusted HTML, dynamic attributes, Rust-shaped control directives, generated diff --git a/compat/paste/Cargo.toml b/compat/paste/Cargo.toml new file mode 100644 index 0000000..01c994c --- /dev/null +++ b/compat/paste/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "paste" +version = "1.0.15" +edition = "2021" +rust-version = "1.56" +publish = false +license = "MIT OR Apache-2.0" +description = "Workspace compatibility alias from paste to its maintained successor pastey" + +[dependencies] +pastey = "=0.2.3" diff --git a/compat/paste/src/lib.rs b/compat/paste/src/lib.rs new file mode 100644 index 0000000..f720531 --- /dev/null +++ b/compat/paste/src/lib.rs @@ -0,0 +1,6 @@ +#![forbid(unsafe_code)] + +//! Compatibility export for dependencies that still name the unmaintained +//! `paste` crate. New code should depend on `pastey` directly. + +pub use pastey::paste; diff --git a/compat/spin/Cargo.toml b/compat/spin/Cargo.toml new file mode 100644 index 0000000..b02d083 --- /dev/null +++ b/compat/spin/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "spin" +version = "0.9.8" +edition = "2021" +rust-version = "1.71" +publish = false +license = "MIT" +description = "Workspace compatibility alias from yanked spin 0.9 to maintained spin 0.12" + +[features] +default = [] +spin_mutex = ["spin_next/spin_mutex"] + +[dependencies] +spin_next = { package = "spin", version = "=0.12.2", default-features = false } diff --git a/compat/spin/src/lib.rs b/compat/spin/src/lib.rs new file mode 100644 index 0000000..f9eded8 --- /dev/null +++ b/compat/spin/src/lib.rs @@ -0,0 +1,6 @@ +#![forbid(unsafe_code)] + +//! Compatibility export for dependencies that still require yanked `spin 0.9`. +//! New code should depend on the maintained `spin` release directly. + +pub use spin_next::*; diff --git a/docs/v1-readiness.md b/docs/v1-readiness.md index c426d63..29b7aa4 100644 --- a/docs/v1-readiness.md +++ b/docs/v1-readiness.md @@ -17,8 +17,8 @@ closure. Their implementation order lives in `PLAN.md`. req: examples/001 req: p rollback-safe persistence, restart recovery, health/readiness, diagnostics, metrics, CSP, and mixed-build fail-closed recovery proven. - V1 closure matrix: local workspace, browser, performance, docs, and example - gates pass; `cargo-audit` and `cargo-deny` remain unavailable and block the - approved pinned dependency/license audit. + gates pass. Warning-denied vulnerability and source audits are clean; strict + license closure awaits a repository license allowlist. - Publishing and deployment: explicitly unauthorized. ## Baseline evidence diff --git a/examples/html_examples/Cargo.toml b/examples/html_examples/Cargo.toml index c55f18f..b6c510c 100644 --- a/examples/html_examples/Cargo.toml +++ b/examples/html_examples/Cargo.toml @@ -15,7 +15,7 @@ hemx-axum = { path = "../../hemx-axum" } tokio = { version = "1", features = ["macros", "net", "rt-multi-thread"] } [dev-dependencies] -scraper = "0.23" +scraper = "0.25" hemx-test = { path = "../../hemx-test" } [build-dependencies] diff --git a/examples/kanban/Cargo.toml b/examples/kanban/Cargo.toml index 125c047..1815297 100644 --- a/examples/kanban/Cargo.toml +++ b/examples/kanban/Cargo.toml @@ -39,7 +39,7 @@ hemplate = { path = "../../../hemplate/hemplate" } [dev-dependencies] hemx-test = { path = "../../hemx-test" } -scraper = "0.23" +scraper = "0.25" thirtyfour = "0.35" tower = { version = "0.5", features = ["util"] } diff --git a/examples/saas/Cargo.toml b/examples/saas/Cargo.toml index 78e42d1..42714b2 100644 --- a/examples/saas/Cargo.toml +++ b/examples/saas/Cargo.toml @@ -20,7 +20,7 @@ hemx-axum = { path = "../../hemx-axum" } tokio = { version = "1", features = ["macros", "net", "rt-multi-thread", "time"] } [dev-dependencies] -scraper = "0.23" +scraper = "0.25" hemx-test = { path = "../../hemx-test" } [build-dependencies] diff --git a/examples/techdemo/Cargo.toml b/examples/techdemo/Cargo.toml index 7e6d4da..4ae1ef9 100644 --- a/examples/techdemo/Cargo.toml +++ b/examples/techdemo/Cargo.toml @@ -17,7 +17,7 @@ hemx-host = { path = "../../hemx-host" } tokio = { version = "1", features = ["macros", "net", "rt-multi-thread", "time"] } [dev-dependencies] -scraper = "0.23" +scraper = "0.25" hemx-test = { path = "../../hemx-test" } thirtyfour = "0.35" diff --git a/examples/v0/Cargo.toml b/examples/v0/Cargo.toml index 08ccb93..c78c9ba 100644 --- a/examples/v0/Cargo.toml +++ b/examples/v0/Cargo.toml @@ -16,7 +16,7 @@ hemx-axum = { path = "../../hemx-axum" } tokio = { version = "1", features = ["macros", "net", "rt-multi-thread", "time"] } [dev-dependencies] -scraper = "0.23" +scraper = "0.25" hemx-test = { path = "../../hemx-test" } [build-dependencies] diff --git a/hemx-axum/Cargo.toml b/hemx-axum/Cargo.toml index 4ef922a..b0ad237 100644 --- a/hemx-axum/Cargo.toml +++ b/hemx-axum/Cargo.toml @@ -13,6 +13,6 @@ hemx-core = { path = "../hemx-core" } hemx-js = { path = "../hemx-js" } [dev-dependencies] -scraper = "0.23" +scraper = "0.25" tokio = { version = "1", features = ["macros", "rt"] } tower = { version = "0.5", features = ["util"] }