From e6043b77cf1bd13e76d55f2c84b26d32684b1f4a Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Thu, 5 Jun 2025 23:09:48 +0100 Subject: [PATCH 01/10] docs: fixed spelling mistake in I-D --- schemas/draft-hopkins-evp-spec.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/schemas/draft-hopkins-evp-spec.md b/schemas/draft-hopkins-evp-spec.md index 3a4581e..a15a23a 100644 --- a/schemas/draft-hopkins-evp-spec.md +++ b/schemas/draft-hopkins-evp-spec.md @@ -9,11 +9,11 @@ submissionType = "independent" [seriesInfo] name = "Internet-Draft" -value = "draft-hopkins-evp-spec-01" +value = "draft-hopkins-evp-spec-02" stream = "independent" status = "informational" -date = 2025-05-05T00:00:00Z +date = 2025-06-05T00:00:00Z [[author]] initials="L." @@ -65,7 +65,7 @@ The format does not attempt to: This specification is intended for those who might wish to write their own implementation of the evidence package format. -## Changes from Previous Verisons +## Changes from Previous Versions This document forms the original specification. From 9830d8ca93c5e6982b39472c988c588262335f49 Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Thu, 5 Jun 2025 23:10:08 +0100 Subject: [PATCH 02/10] chore: bumped version --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8e0584..7837818 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -807,7 +807,7 @@ dependencies = [ [[package]] name = "evidenceangel" -version = "1.5.0-rc.8" +version = "1.5.0-alpha.1" dependencies = [ "angelmark", "base64", diff --git a/Cargo.toml b/Cargo.toml index 9f6511e..a5a09de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "evidenceangel" description = "Library and executables to work with EvidenceAngel evidence packages (*.evp)." -version = "1.5.0-rc.8" +version = "1.5.0-alpha.1" edition = "2024" license = "GPL-3.0-or-later" authors = [ From b7c80291bbcab7be345f5377ef2445e45345dffa Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Sun, 27 Jul 2025 18:34:38 +0100 Subject: [PATCH 03/10] docs: updated spec I-D --- schemas/draft-hopkins-evp-spec.md | 40 ++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/schemas/draft-hopkins-evp-spec.md b/schemas/draft-hopkins-evp-spec.md index a15a23a..a3c1f0b 100644 --- a/schemas/draft-hopkins-evp-spec.md +++ b/schemas/draft-hopkins-evp-spec.md @@ -9,11 +9,11 @@ submissionType = "independent" [seriesInfo] name = "Internet-Draft" -value = "draft-hopkins-evp-spec-02" +value = "draft-hopkins-evp-spec-04" stream = "independent" status = "informational" -date = 2025-06-05T00:00:00Z +date = 2025-07-27T00:00:00Z [[author]] initials="L." @@ -63,7 +63,21 @@ The format does not attempt to: ## Intended Audience This specification is intended for those who might wish to write their -own implementation of the evidence package format. +own implementation of the evidence package format. There are a number of +situations where writing an implementation may be desirable: + +* in an automation tool that runs a number of operations to + automatically test something, to produce an evidence package + containing the results of the automated testing; +* in a manual evidence collection tool, where a user might want to + collect evidence in a single, easy to manage place for later + processing or sharing; +* in an analysis tool, to view, annotate, share and understand the + evidence from previous testing; +* in a viewer, to view evidence that has been shared, for example from a + testing team to a customer, or; +* any other situation where it may be desirable to collect test evidence + and bundle it together for later. ## Changes from Previous Versions @@ -79,8 +93,22 @@ when, and only when, they appear in all capitals, as shown here. # Specification -An evidence package is a structured ZIP archive. It **MUST** contain the -file "manifest.json", and the directories "media" and "testcases". +An evidence package is a structured ZIP archive [@!zip]. It **MUST** +contain the file "manifest.json", and the directories "media" and +"testcases" internally within the ZIP archive. This structure does not +need to be represented outside of the ZIP archive and as such the +internal structure does not need to be understood by an end-user of any +tool that works with evidence packages. + + + + .ZIP File Format Specification + + PKWARE, Inc. + + + + See (#example-archive) for an example of the file's internal structure. @@ -306,7 +334,7 @@ When an implementor loads a file with fields it cannot understand, it # IANA Considerations -This document acts as the specification for the requested media type +This document acts as the specification for the media type application/vnd.angel.evidence-package. # Security Considerations From dd7aa3328fd0249bb8bc371489bff9f8779bd1ff Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Sun, 27 Jul 2025 18:36:21 +0100 Subject: [PATCH 04/10] fix: adjusted success and fail translations resolves #210 --- src/evidenceangel-ui/locales/en/main.ftl | 4 ++-- src/evidenceangel-ui/locales/sv/main.ftl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/evidenceangel-ui/locales/en/main.ftl b/src/evidenceangel-ui/locales/en/main.ftl index 795f119..93fc76e 100644 --- a/src/evidenceangel-ui/locales/en/main.ftl +++ b/src/evidenceangel-ui/locales/en/main.ftl @@ -82,10 +82,10 @@ test-title = Title test-execution = Execution Time test-status = Status test-status-unset = Unset -test-status-pass = Pass +test-status-pass = Success test-status-fail = Fail test-status-unset-display = Unset -test-status-pass-display = ✅ Pass +test-status-pass-display = ✅ Success test-status-fail-display = ❌ Fail test-evidence-caption = Caption test-evidence-file-unnamed = Unnamed file diff --git a/src/evidenceangel-ui/locales/sv/main.ftl b/src/evidenceangel-ui/locales/sv/main.ftl index e08dd8b..610ad0d 100644 --- a/src/evidenceangel-ui/locales/sv/main.ftl +++ b/src/evidenceangel-ui/locales/sv/main.ftl @@ -82,10 +82,10 @@ test-title = Titel test-execution = Tidpunkt test-status = Status test-status-unset = Odefinerad -test-status-pass = Passar +test-status-pass = Framgång test-status-fail = Misslyckar test-status-unset-display = Odefinerad -test-status-pass-display = ✅ Passar +test-status-pass-display = ✅ Framgång test-status-fail-display = ❌ Misslyckar test-evidence-caption = Rubrik test-evidence-file-unnamed = Namnlös fil From 6a2cfc4045a24f5f91888f2e77bbf65b98fb80cd Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Sun, 27 Jul 2025 19:03:28 +0100 Subject: [PATCH 05/10] chore: updated dependencies --- Cargo.lock | 1100 +++++++++++++++++----------------- Cargo.toml | 12 +- src/evidenceangel-ui/lang.rs | 3 +- 3 files changed, 563 insertions(+), 552 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7837818..0453e42 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aes" @@ -30,16 +30,16 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.16", + "getrandom 0.3.3", "once_cell", "serde", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -53,9 +53,9 @@ dependencies = [ [[package]] name = "ammonia" -version = "4.1.0" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ada2ee439075a3e70b6992fce18ac4e407cd05aea9ca3f75d2c0b0c20bbb364" +checksum = "d6b346764dd0814805de8abf899fe03065bcee69bb1a4771c785817e39f3978f" dependencies = [ "cssparser", "html5ever", @@ -93,9 +93,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -108,36 +108,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] @@ -169,15 +169,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", @@ -217,9 +217,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "block-buffer" @@ -255,21 +255,21 @@ checksum = "01b01f54cbdd56298a506b086691594ded3b68dcbc9437adc87c616a35e7fc89" [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytecount" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.23.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" +checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" [[package]] name = "byteorder" @@ -291,51 +291,41 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bzip2" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" +checksum = "bea8dcd42434048e4f7a304411d9273a411f647446c1234a65ce0554923f4cff" dependencies = [ - "bzip2-sys", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.13+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" -dependencies = [ - "cc", - "pkg-config", + "libbz2-rs-sys", ] [[package]] name = "cairo-rs" -version = "0.20.7" +version = "0.20.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae50b5510d86cf96ac2370e66d8dc960882f3df179d6a5a1e52bd94a1416c0f7" +checksum = "91e3bd0f4e25afa9cabc157908d14eeef9067d6448c49414d17b3fb55f0eadd0" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cairo-sys-rs", - "glib", + "glib 0.20.12", "libc", ] [[package]] name = "cairo-sys-rs" -version = "0.20.7" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f18b6bb8e43c7eb0f2aac7976afe0c61b6f5fc2ab7bc4c139537ea56c92290df" +checksum = "059cc746549898cbfd9a47754288e5a958756650ef4652bbb6c5f71a6bda4f8b" dependencies = [ - "glib-sys", + "glib-sys 0.20.10", "libc", "system-deps", ] [[package]] name = "cc" -version = "1.2.21" +version = "1.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0" +checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" dependencies = [ "jobserver", "libc", @@ -355,9 +345,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.17.2" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d4ba6e40bd1184518716a6e1a781bf9160e286d219ccdb8ab2612e74cfe4789" +checksum = "0d0390889d58f934f01cd49736275b4c2da15bcfc328c78ff2349907e6cabf22" dependencies = [ "smallvec", "target-lexicon", @@ -365,9 +355,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "chrono" @@ -396,9 +386,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.37" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" dependencies = [ "clap_builder", "clap_derive", @@ -406,9 +396,9 @@ dependencies = [ [[package]] name = "clap-verbosity-flag" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2678fade3b77aa3a8ff3aae87e9c008d3fb00473a41c71fbf74e91c8c7b37e84" +checksum = "eeab6a5cdfc795a05538422012f20a5496f050223c91be4e5420bfd13c641fb1" dependencies = [ "clap", "tracing-core", @@ -416,9 +406,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.37" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" dependencies = [ "anstream", "anstyle", @@ -429,18 +419,18 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.48" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8c97f3a6f02b9e24cadc12aaba75201d18754b53ea0a9d99642f806ccdb4c9" +checksum = "a5abde44486daf70c5be8b8f8f1b66c49f86236edf6fa2abadb4d961c4c6229a" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.32" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" dependencies = [ "heck", "proc-macro2", @@ -450,15 +440,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "colored" @@ -490,26 +480,11 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -607,17 +582,6 @@ dependencies = [ "syn", ] -[[package]] -name = "dbus" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] - [[package]] name = "deflate64" version = "0.1.9" @@ -704,7 +668,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -797,12 +761,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -818,7 +782,6 @@ dependencies = [ "clap_complete", "colored", "directories", - "fluent", "fluent-templates", "getset", "glib-build-tools", @@ -899,24 +862,15 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", + "libz-rs-sys", "miniz_oxide", ] -[[package]] -name = "fluent" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb74634707bebd0ce645a981148e8fb8c7bccd4c33c652aeffd28bf2f96d555a" -dependencies = [ - "fluent-bundle", - "unic-langid", -] - [[package]] name = "fluent-bundle" version = "0.15.3" @@ -927,7 +881,7 @@ dependencies = [ "fluent-syntax", "intl-memoizer", "intl_pluralrules", - "rustc-hash", + "rustc-hash 1.1.0", "self_cell 0.10.3", "smallvec", "unic-langid", @@ -1138,25 +1092,25 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7563afd6ff0a221edfbb70a78add5075b8d9cb48e637a40a24c3ece3fea414d0" +checksum = "2fd242894c084f4beed508a56952750bce3e96e85eb68fdc153637daa163e10c" dependencies = [ "gdk-pixbuf-sys", - "gio", - "glib", + "gio 0.20.12", + "glib 0.20.12", "libc", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.20.7" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67f2587c9202bf997476bbba6aaed4f78a11538a2567df002a5f57f5331d0b5c" +checksum = "5b34f3b580c988bd217e9543a2de59823fafae369d1a055555e5f95a8b130b96" dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "system-deps", ] @@ -1170,8 +1124,8 @@ dependencies = [ "cairo-rs", "gdk-pixbuf", "gdk4-sys", - "gio", - "glib", + "gio 0.20.12", + "glib 0.20.12", "libc", "pango", ] @@ -1184,9 +1138,9 @@ checksum = "6f6eb95798e2b46f279cf59005daf297d5b69555428f185650d71974a910473a" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "pango-sys", "pkg-config", @@ -1212,29 +1166,27 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", - "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", - "wasm-bindgen", ] [[package]] name = "getset" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3586f256131df87204eb733da72e3d3eb4f343c639f4b7be279ac7c48baeafe" +checksum = "9cf0fc11e47561d47397154977bc219f4cf809b2974facc3ccb3b89e2436f912" dependencies = [ "proc-macro-error2", "proc-macro2", @@ -1250,16 +1202,33 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "gio" -version = "0.20.9" +version = "0.20.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f00c70f8029d84ea7572dd0e1aaa79e5329667b4c17f329d79ffb1e6277487" +checksum = "8e27e276e7b6b8d50f6376ee7769a71133e80d093bdc363bd0af71664228b831" dependencies = [ "futures-channel", "futures-core", "futures-io", "futures-util", - "gio-sys", - "glib", + "gio-sys 0.20.10", + "glib 0.20.12", + "libc", + "pin-project-lite", + "smallvec", +] + +[[package]] +name = "gio" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "273d64c833fbbf7cd86c4cdced893c5d3f2f5d6aeb30fd0c30d172456ce8be2e" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys 0.21.0", + "glib 0.21.0", "libc", "pin-project-lite", "smallvec", @@ -1267,33 +1236,67 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "160eb5250a26998c3e1b54e6a3d4ea15c6c7762a6062a19a7b63eff6e2b33f9e" +checksum = "521e93a7e56fc89e84aea9a52cfc9436816a4b363b030260b699950ff1336c83" dependencies = [ - "glib-sys", - "gobject-sys", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "system-deps", "windows-sys 0.59.0", ] +[[package]] +name = "gio-sys" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8130f5810a839d74afc3a929c34a700bf194972bb034f2ecfe639682dd13cc" +dependencies = [ + "glib-sys 0.21.0", + "gobject-sys 0.21.0", + "libc", + "system-deps", + "windows-sys 0.60.2", +] + +[[package]] +name = "glib" +version = "0.20.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc4b6e352d4716d84d7dde562dd9aee2a7d48beb872dd9ece7f2d1515b2d683" +dependencies = [ + "bitflags 2.9.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys 0.20.10", + "glib-macros 0.20.12", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", + "libc", + "memchr", + "smallvec", +] + [[package]] name = "glib" -version = "0.20.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707b819af8059ee5395a2de9f2317d87a53dbad8846a2f089f0bb44703f37686" +checksum = "690e8bcf8a819b5911d6ae79879226191d01253a4f602748072603defd5b9553" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "futures-channel", "futures-core", "futures-executor", "futures-task", "futures-util", - "gio-sys", - "glib-macros", - "glib-sys", - "gobject-sys", + "gio-sys 0.21.0", + "glib-macros 0.21.0", + "glib-sys 0.21.0", + "gobject-sys 0.21.0", "libc", "memchr", "smallvec", @@ -1301,18 +1304,31 @@ dependencies = [ [[package]] name = "glib-build-tools" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7029c2651d9b5d5a3eea93ec8a1995665c6d3a69ce9bf6042ad9064d134736d8" +checksum = "86aebe63bb050d4918cb1d629880cb35fcba7ccda6f6fc0ec1beffdaa1b9d5c3" dependencies = [ - "gio", + "gio 0.21.0", ] [[package]] name = "glib-macros" -version = "0.20.7" +version = "0.20.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715601f8f02e71baef9c1f94a657a9a77c192aea6097cf9ae7e5e177cd8cde68" +checksum = "e8084af62f09475a3f529b1629c10c429d7600ee1398ae12dd3bf175d74e7145" +dependencies = [ + "heck", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-macros" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e772291ebea14c28eb11bb75741f62f4a4894f25e60ce80100797b6b010ef0f9" dependencies = [ "heck", "proc-macro-crate", @@ -1323,9 +1339,19 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8928869a44cfdd1fccb17d6746e4ff82c8f82e41ce705aa026a52ca8dc3aefb" +checksum = "8ab79e1ed126803a8fb827e3de0e2ff95191912b8db65cee467edb56fc4cc215" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glib-sys" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2be4c74454fb4a6bd3328320737d0fa3d6939e2d570f5d846da00cb222f6a0" dependencies = [ "libc", "system-deps", @@ -1346,33 +1372,44 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c773a3cb38a419ad9c26c81d177d96b4b08980e8bdbbf32dace883e96e96e7e3" +checksum = "ec9aca94bb73989e3cfdbf8f2e0f1f6da04db4d291c431f444838925c4c63eda" dependencies = [ - "glib-sys", + "glib-sys 0.20.10", + "libc", + "system-deps", +] + +[[package]] +name = "gobject-sys" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab318a786f9abd49d388013b9161fa0ef8218ea6118ee7111c95e62186f7d31f" +dependencies = [ + "glib-sys 0.21.0", "libc", "system-deps", ] [[package]] name = "graphene-rs" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cbc5911bfb32d68dcfa92c9510c462696c2f715548fcd7f3f1be424c739de19" +checksum = "6b86dfad7d14251c9acaf1de63bc8754b7e3b4e5b16777b6f5a748208fe9519b" dependencies = [ - "glib", + "glib 0.20.12", "graphene-sys", "libc", ] [[package]] name = "graphene-sys" -version = "0.20.7" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a68d39515bf340e879b72cecd4a25c1332557757ada6e8aba8654b4b81d23a" +checksum = "df583a85ba2d5e15e1797e40d666057b28bc2f60a67c9c24145e6db2cc3861ea" dependencies = [ - "glib-sys", + "glib-sys 0.20.10", "libc", "pkg-config", "system-deps", @@ -1386,7 +1423,7 @@ checksum = "61f5e72f931c8c9f65fbfc89fe0ddc7746f147f822f127a53a9854666ac1f855" dependencies = [ "cairo-rs", "gdk4", - "glib", + "glib 0.20.12", "graphene-rs", "gsk4-sys", "libc", @@ -1401,8 +1438,8 @@ checksum = "755059de55fa6f85a46bde8caf03e2184c96bfda1f6206163c72fb0ea12436dc" dependencies = [ "cairo-sys-rs", "gdk4-sys", - "glib-sys", - "gobject-sys", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "graphene-sys", "libc", "pango-sys", @@ -1411,17 +1448,17 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1c491051f030994fd0cde6f3c44f3f5640210308cff1298c7673c47408091d" +checksum = "f274dd0102c21c47bbfa8ebcb92d0464fab794a22fad6c3f3d5f165139a326d6" dependencies = [ "cairo-rs", "field-offset", "futures-channel", "gdk-pixbuf", "gdk4", - "gio", - "glib", + "gio 0.20.12", + "glib 0.20.12", "graphene-rs", "gsk4", "gtk4-macros", @@ -1451,9 +1488,9 @@ dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk4-sys", - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "graphene-sys", "gsk4-sys", "libc", @@ -1495,9 +1532,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" [[package]] name = "heck" @@ -1531,12 +1568,11 @@ dependencies = [ [[package]] name = "html5ever" -version = "0.31.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953cbbe631aae7fc0a112702ad5d3aaf09da38beaf45ea84610d6e1c358f569c" +checksum = "55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4" dependencies = [ "log", - "mac", "markup5ever", "match_token", ] @@ -1602,17 +1638,21 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ + "base64", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", + "ipnet", "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -1655,21 +1695,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -1678,31 +1719,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -1710,67 +1731,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -1790,9 +1798,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -1828,9 +1836,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown", @@ -1856,9 +1864,9 @@ dependencies = [ [[package]] name = "intl-memoizer" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe22e020fce238ae18a6d5d8c502ee76a52a6e880d99477657e6acc30ec57bda" +checksum = "310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f" dependencies = [ "type-map", "unic-langid", @@ -1873,12 +1881,33 @@ dependencies = [ "unic-langid", ] +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is-docker" version = "0.2.0" @@ -1912,9 +1941,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07d8d955d798e7a4d6f9c58cd1f1916e790b42b092758a9ef6e16fef9f1b3fd" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" dependencies = [ "jiff-static", "log", @@ -1925,9 +1954,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f244cfe006d98d26f859c7abd1318d85327e1882dc9cef80f62daeeb0adcf300" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" dependencies = [ "proc-macro2", "quote", @@ -1940,7 +1969,7 @@ version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "libc", ] @@ -1994,8 +2023,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "500135d29c16aabf67baafd3e7741d48e8b8978ca98bac39e589165c8dc78191" dependencies = [ "gdk4", - "gio", - "glib", + "gio 0.20.12", + "glib 0.20.12", "gtk4", "libadwaita-sys", "libc", @@ -2009,41 +2038,66 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6680988058c2558baf3f548a370e4e78da3bf7f08469daa822ac414842c912db" dependencies = [ "gdk4-sys", - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "gtk4-sys", "libc", "pango-sys", "system-deps", ] +[[package]] +name = "libbz2-rs-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775bf80d5878ab7c2b1080b5351a48b2f737d9f6f8b383574eebcc22be0dfccb" + [[package]] name = "libc" -version = "0.2.172" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] -name = "libdbus-sys" -version = "0.2.5" +name = "liblzma" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0791ab7e08ccc8e0ce893f6906eb2703ed8739d8e89b57c0714e71bad09024c8" +dependencies = [ + "liblzma-sys", +] + +[[package]] +name = "liblzma-sys" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" +checksum = "01b9596486f6d60c3bbe644c0e1be1aa6ccc472ad630fe8927b456973d7cb736" dependencies = [ "cc", + "libc", "pkg-config", ] [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "4488594b9328dee448adb906d8b126d9b7deb7cf5c22161ee591610bb1be83c0" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", ] +[[package]] +name = "libz-rs-sys" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221" +dependencies = [ + "zlib-rs", +] + [[package]] name = "linux-raw-sys" version = "0.9.4" @@ -2052,15 +2106,15 @@ checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -2072,27 +2126,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "lzma-rs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e" -dependencies = [ - "byteorder", - "crc", -] - -[[package]] -name = "lzma-sys" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "mac" version = "0.1.1" @@ -2107,9 +2140,9 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "markup5ever" -version = "0.16.1" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a8096766c229e8c88a3900c9b44b7e06aa7f7343cc229158c3e58ef8f9973a" +checksum = "311fe69c934650f8f19652b3946075f0fc41ad8757dbb68f1ca14e7900ecc1c3" dependencies = [ "log", "tendril", @@ -2118,9 +2151,9 @@ dependencies = [ [[package]] name = "match_token" -version = "0.1.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +checksum = "ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf" dependencies = [ "proc-macro2", "quote", @@ -2129,9 +2162,9 @@ dependencies = [ [[package]] name = "mdbook" -version = "0.4.48" +version = "0.4.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6fbb4ac2d9fd7aa987c3510309ea3c80004a968d063c42f0d34fea070817c1" +checksum = "93c284d2855916af7c5919cf9ad897cfc77d3c2db6f55429c7cfb769182030ec" dependencies = [ "ammonia", "anyhow", @@ -2144,7 +2177,6 @@ dependencies = [ "hex", "log", "memchr", - "once_cell", "opener", "pulldown-cmark", "regex", @@ -2159,9 +2191,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memoffset" @@ -2172,17 +2204,11 @@ dependencies = [ "autocfg", ] -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", "simd-adler32", @@ -2190,13 +2216,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] @@ -2214,15 +2240,6 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" -[[package]] -name = "nom" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" -dependencies = [ - "memchr", -] - [[package]] name = "normpath" version = "1.3.0" @@ -2357,6 +2374,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "open" version = "5.3.2" @@ -2370,12 +2393,11 @@ dependencies = [ [[package]] name = "opener" -version = "0.7.2" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0812e5e4df08da354c851a3376fead46db31c2214f849d3de356d774d057681" +checksum = "771b9704f8cd8b424ec747a320b30b47517a6966ba2c7da90047c16f4a962223" dependencies = [ "bstr", - "dbus", "normpath", "windows-sys 0.59.0", ] @@ -2400,33 +2422,33 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pango" -version = "0.20.9" +version = "0.20.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1f5dc1b8cf9bc08bfc0843a04ee0fa2e78f1e1fa4b126844a383af4f25f0ec" +checksum = "6576b311f6df659397043a5fa8a021da8f72e34af180b44f7d57348de691ab5c" dependencies = [ - "gio", - "glib", + "gio 0.20.12", + "glib 0.20.12", "libc", "pango-sys", ] [[package]] name = "pango-sys" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dbb9b751673bd8fe49eb78620547973a1e719ed431372122b20abd12445bab5" +checksum = "186909673fc09be354555c302c0b3dcf753cd9fa08dcb8077fa663c80fb243fa" dependencies = [ - "glib-sys", - "gobject-sys", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "system-deps", ] [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -2434,9 +2456,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -2447,13 +2469,14 @@ dependencies = [ [[package]] name = "parse_datetime" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd3830b49ee3a0dcc8fdfadc68c6354c97d00101ac1cac5b2eee25d35c42066" +checksum = "c7fd5a149584170040e54b129821667f86f3cd2b16d8c275e8b39a6c9474efd3" dependencies = [ "chrono", - "nom", + "num-traits", "regex", + "winnow", ] [[package]] @@ -2480,9 +2503,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" +checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", "thiserror 2.0.12", @@ -2491,9 +2514,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" +checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" dependencies = [ "pest", "pest_generator", @@ -2501,9 +2524,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" +checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" dependencies = [ "pest", "pest_meta", @@ -2514,11 +2537,10 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" +checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" dependencies = [ - "once_cell", "pest", "sha2", ] @@ -2608,9 +2630,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portable-atomic-util" @@ -2621,19 +2643,34 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +[[package]] +name = "ppmd-rust" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c834641d8ad1b348c9ee86dec3b9840d805acd5f24daa5f90c788951a52ff59b" + [[package]] name = "ppv-lite86" version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -2694,7 +2731,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76979bea66e7875e7509c4ec5300112b316af87fa7a252ca91c448b32dfe3993" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "memchr", "pulldown-cmark-escape", "unicase", @@ -2727,9 +2764,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -2742,9 +2779,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha", "rand_core 0.9.3", @@ -2772,16 +2809,16 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", ] [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "7251471db004e509f4e75a62cca9435365b5ec7bcdff530d612ac7c87c44a792" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -2891,7 +2928,7 @@ dependencies = [ "gtk4", "gvdb", "serde", - "toml 0.8.22", + "toml 0.8.23", ] [[package]] @@ -2907,9 +2944,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64", "bytes", @@ -2921,11 +2958,8 @@ dependencies = [ "http-body-util", "hyper", "hyper-util", - "ipnet", "js-sys", "log", - "mime", - "once_cell", "percent-encoding", "pin-project-lite", "serde", @@ -2934,19 +2968,19 @@ dependencies = [ "sync_wrapper", "tokio", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-registry", ] [[package]] name = "rust_xlsxwriter" -version = "0.86.1" +version = "0.89.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ab327483e6b6fc521b7e303691c14bf3624a68e0cb4c2b9f9c5d692e07f637" +checksum = "2a34eb37ee39e82b74f8a56cf0fe425586cee6e721839f14469d2648352651db" dependencies = [ "chrono", "zip", @@ -2954,9 +2988,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -2964,6 +2998,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustc_version" version = "0.4.1" @@ -2975,22 +3015,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -3015,12 +3055,13 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.22" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" dependencies = [ "chrono", "dyn-clone", + "ref-cast", "schemars_derive", "serde", "serde_json", @@ -3028,9 +3069,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.22" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" dependencies = [ "proc-macro2", "quote", @@ -3098,9 +3139,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" dependencies = [ "itoa", "memchr", @@ -3110,9 +3151,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -3193,27 +3234,24 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.9" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3276,9 +3314,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.101" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -3316,22 +3354,22 @@ dependencies = [ [[package]] name = "system-deps" -version = "7.0.3" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005" +checksum = "e4be53aa0cba896d2dc615bd42bbc130acdcffa239e0a2d965ea5b3b2a86ffdb" dependencies = [ "cfg-expr", "heck", "pkg-config", - "toml 0.8.22", + "toml 0.8.23", "version-compare", ] [[package]] name = "target-lexicon" -version = "0.12.16" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" +checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" [[package]] name = "tempfile" @@ -3340,7 +3378,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", "rustix", "windows-sys 0.59.0", @@ -3409,12 +3447,11 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -3438,9 +3475,9 @@ checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -3448,17 +3485,19 @@ dependencies = [ [[package]] name = "tokio" -version = "1.44.2" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "pin-project-lite", + "slab", "socket2", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3472,9 +3511,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", @@ -3484,18 +3523,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.9" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", @@ -3507,9 +3546,9 @@ dependencies = [ [[package]] name = "toml_write" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "topological-sort" @@ -3532,6 +3571,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -3557,9 +3614,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", @@ -3568,9 +3625,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -3630,11 +3687,11 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "type-map" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f" +checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" dependencies = [ - "rustc-hash", + "rustc-hash 2.1.1", ] [[package]] @@ -3651,9 +3708,9 @@ checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unic-langid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dd9d1e72a73b25e07123a80776aae3e7b0ec461ef94f9151eed6ec88005a44" +checksum = "a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05" dependencies = [ "unic-langid-impl", "unic-langid-macros", @@ -3661,18 +3718,18 @@ dependencies = [ [[package]] name = "unic-langid-impl" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5422c1f65949306c99240b81de9f3f15929f5a8bfe05bb44b034cc8bf593e5" +checksum = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658" dependencies = [ "tinystr", ] [[package]] name = "unic-langid-macros" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da1cd2c042d3c7569a1008806b02039e7a4a2bdf8f8e96bd3c792434a0e275e" +checksum = "d5957eb82e346d7add14182a3315a7e298f04e1ba4baac36f7f0dbfedba5fc25" dependencies = [ "proc-macro-hack", "tinystr", @@ -3682,9 +3739,9 @@ dependencies = [ [[package]] name = "unic-langid-macros-impl" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ed7f4237ba393424195053097c1516bd4590dc82b84f2f97c5c69e12704555b" +checksum = "a1249a628de3ad34b821ecb1001355bca3940bcb2f88558f1a8bd82e977f75b5" dependencies = [ "proc-macro-hack", "quote", @@ -3721,12 +3778,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8-width" version = "0.1.7" @@ -3747,13 +3798,15 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" dependencies = [ - "getrandom 0.3.2", - "rand 0.9.1", + "getrandom 0.3.3", + "js-sys", + "rand 0.9.2", "serde", + "wasm-bindgen", ] [[package]] @@ -3812,9 +3865,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -3908,9 +3961,9 @@ dependencies = [ [[package]] name = "web_atoms" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bcbdcad8fb2e316072ba6bbe09419afdb550285668ac2534f4230a6f2da0ee" +checksum = "57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414" dependencies = [ "phf", "phf_codegen", @@ -3951,15 +4004,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", "windows-link", "windows-result", - "windows-strings 0.4.0", + "windows-strings", ] [[package]] @@ -3986,64 +4039,44 @@ dependencies = [ [[package]] name = "windows-link" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-registry" -version = "0.4.0" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] [[package]] name = "windows-sys" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets 0.52.6", ] [[package]] name = "windows-sys" -version = "0.59.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.52.6", + "windows-targets 0.53.2", ] [[package]] @@ -4064,9 +4097,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.0" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", @@ -4176,20 +4209,20 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.9" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] [[package]] name = "winresource" -version = "0.1.20" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4a67c78ee5782c0c1cb41bebc7e12c6e79644daa1650ebbc1de5d5b08593f7" +checksum = "edcacf11b6f48dd21b9ba002f991bdd5de29b2da8cc2800412f4b80f677e4957" dependencies = [ - "toml 0.8.22", + "toml 0.8.23", "version_check", ] @@ -4199,35 +4232,20 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "xz2" -version = "0.1.7" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" -dependencies = [ - "lzma-sys", -] +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -4237,9 +4255,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", @@ -4249,38 +4267,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" -dependencies = [ - "zerocopy-derive 0.8.25", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ - "proc-macro2", - "quote", - "syn", + "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", @@ -4328,11 +4326,22 @@ dependencies = [ "syn", ] +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -4341,9 +4350,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", @@ -4352,32 +4361,37 @@ dependencies = [ [[package]] name = "zip" -version = "2.6.1" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dcb24d0152526ae49b9b96c1dcf71850ca1e0b882e4e28ed898a93c41334744" +checksum = "9aed4ac33e8eb078c89e6cbb1d5c4c7703ec6d299fc3e7c3695af8f8b423468b" dependencies = [ "aes", "arbitrary", "bzip2", "constant_time_eq", "crc32fast", - "crossbeam-utils", "deflate64", "flate2", - "getrandom 0.3.2", + "getrandom 0.3.3", "hmac", "indexmap", - "lzma-rs", + "liblzma", "memchr", "pbkdf2", + "ppmd-rust", "sha1", "time", - "xz2", "zeroize", "zopfli", "zstd", ] +[[package]] +name = "zlib-rs" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a" + [[package]] name = "zopfli" version = "0.8.2" diff --git a/Cargo.toml b/Cargo.toml index a5a09de..25521bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,6 @@ exporter-zip-of-files = [] ui = [ "dep:clap", "dep:directories", - "dep:fluent", "dep:fluent-templates", "dep:glib-build-tools", "dep:once_cell", @@ -69,7 +68,6 @@ clap-verbosity-flag = { version = "3.0.2", default-features = false, features = clap_complete = { version = "4.5.2", optional = true } colored = { version = "3.0.0", optional = true } directories = { version = "6.0.0", optional = true } -fluent = { version = "0.16.1", optional = true } fluent-templates = { version = "0.13.0", optional = true } getset = "0.1.2" html-escape = { version = "0.2.13", optional = true } @@ -78,14 +76,14 @@ jsonschema = "0.30.0" once_cell = { version = "1.19.0", optional = true } open = { version = "5.3.0", optional = true } parking_lot = { version = "0.12.3", optional = true } -parse_datetime = { version = "0.9.0", optional = true } +parse_datetime = { version = "0.10.0", optional = true } relm4 = { version = "0.9.0", features = [ "libadwaita", "gnome_46", ], optional = true } relm4-icons = { version = "0.9.0", optional = true } -rust_xlsxwriter = { version = "0.86.1", features = ["chrono"], optional = true } -schemars = { version = "0.8.21", features = ["chrono"], optional = true } +rust_xlsxwriter = { version = "0.89.1", features = ["chrono"], optional = true } +schemars = { version = "1.0.4", features = ["chrono04"], optional = true } serde = { version = "1.0.200", features = ["derive"] } serde_json = "1.0.116" sha256 = "1.5.0" @@ -97,7 +95,7 @@ tracing-panic = { version = "0.1.2", optional = true } tracing-subscriber = { version = "0.3.19", optional = true } tracing-subscriber-multi = { version = "0.1.0", optional = true } uuid = { version = "1.8.0", features = ["v4", "fast-rng", "serde"] } -zip = "2.4.1" +zip = "4.3.0" [target.'cfg(windows)'.dependencies] winapi = "0.3.9" @@ -107,5 +105,5 @@ winresource = "0.1" ico-builder = "0.1" [build-dependencies] -glib-build-tools = { version = "0.20.0", optional = true } +glib-build-tools = { version = "0.21.0", optional = true } mdbook = { version = "0.4.48", default-features = false, features = ["search"] } diff --git a/src/evidenceangel-ui/lang.rs b/src/evidenceangel-ui/lang.rs index 6bd00bf..d0cb76e 100644 --- a/src/evidenceangel-ui/lang.rs +++ b/src/evidenceangel-ui/lang.rs @@ -1,7 +1,6 @@ use std::{borrow::Cow, collections::HashMap, fmt::Display}; -use fluent::FluentValue; -use fluent_templates::{LanguageIdentifier, Loader}; +use fluent_templates::{fluent_bundle::types::FluentValue, LanguageIdentifier, Loader}; use once_cell::sync::Lazy; use parking_lot::Mutex; From 0f01d71aa2949eaae56768095e6e8d6f77c20506 Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Sun, 27 Jul 2025 19:10:20 +0100 Subject: [PATCH 06/10] fix: improve ordering of custom metadata resolves #206 --- src/evidenceangel-cli/package.rs | 22 ++++++++++++++++++++-- src/evidenceangel-ui/app.rs | 4 ++-- src/exporters/excel.rs | 2 +- src/package/manifest.rs | 18 ++++++++++++++++++ 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/evidenceangel-cli/package.rs b/src/evidenceangel-cli/package.rs index 8d7f35f..29e0091 100644 --- a/src/evidenceangel-cli/package.rs +++ b/src/evidenceangel-cli/package.rs @@ -144,7 +144,7 @@ impl fmt::Display for CliPackage { .custom_test_case_metadata_fields .iter() .collect::>(); - sorted_custom_fields.sort_by(|(a, _), (b, _)| a.cmp(b)); + sorted_custom_fields.sort_by(|(_, a), (_, b)| a.cmp(b)); for (idx, (key, field)) in sorted_custom_fields.iter().enumerate() { let ch = if idx == sorted_custom_fields.len() - 1 { "╰" @@ -176,7 +176,7 @@ impl fmt::Display for CliPackage { } /// A custom metadata field within a package -#[derive(Serialize, JsonSchema)] +#[derive(Serialize, JsonSchema, PartialEq, Eq)] struct CliCustomMetadataField { /// The field's ID key: String, @@ -205,6 +205,24 @@ impl fmt::Display for CliCustomMetadataField { } } +impl PartialOrd for CliCustomMetadataField { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +impl Ord for CliCustomMetadataField { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + if self.primary && !other.primary { + return std::cmp::Ordering::Less; + } + if !self.primary && other.primary { + return std::cmp::Ordering::Greater; + } + self.name.cmp(&other.name) + } +} + /// A test case within a package #[derive(Serialize, JsonSchema)] struct PackageTestCase { diff --git a/src/evidenceangel-ui/app.rs b/src/evidenceangel-ui/app.rs index 9338d00..c702c1b 100644 --- a/src/evidenceangel-ui/app.rs +++ b/src/evidenceangel-ui/app.rs @@ -1229,7 +1229,7 @@ impl Component for AppModel { .expect("Cannot navigate to metadata when no package is open"); if let Some(fields) = &pkg_fields { let mut fields: Vec<_> = fields.iter().collect(); - fields.sort_by(|(a, _), (b, _)| a.cmp(b)); + fields.sort_by(|(_, a), (_, b)| a.cmp(b)); for (key, field) in fields { custom_fields.push_back(CustomMetadataEditorFactoryInit { root: root.clone(), @@ -1306,7 +1306,7 @@ impl Component for AppModel { pkg.read().metadata().custom_test_case_metadata() { let mut fields: Vec<_> = fields.iter().collect(); - fields.sort_by(|(a, _), (b, _)| a.cmp(b)); + fields.sort_by(|(_, a), (_, b)| a.cmp(b)); for (key, field) in fields { custom_metadata.push_back(CustomMetadataFactoryInit { key: key.clone(), diff --git a/src/exporters/excel.rs b/src/exporters/excel.rs index a4a29f0..581d44b 100644 --- a/src/exporters/excel.rs +++ b/src/exporters/excel.rs @@ -131,7 +131,7 @@ fn create_summary_sheet( let mut custom_keys = vec![]; if let Some(fields) = package.metadata().custom_test_case_metadata() { let mut fields = fields.iter().collect::>(); - fields.sort_by(|(a, _), (b, _)| a.cmp(b)); + fields.sort_by(|(_, a), (_, b)| a.cmp(b)); for (idx, (key, field)) in fields.iter().enumerate() { let col = u16::try_from(4 + idx)?; custom_keys.push((*key).clone()); diff --git a/src/package/manifest.rs b/src/package/manifest.rs index 5f2f673..dabf90a 100644 --- a/src/package/manifest.rs +++ b/src/package/manifest.rs @@ -132,6 +132,24 @@ pub struct CustomMetadataField { extra_fields: HashMap, } +impl PartialOrd for CustomMetadataField { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +impl Ord for CustomMetadataField { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + if self.primary && !other.primary { + return std::cmp::Ordering::Less; + } + if !self.primary && other.primary { + return std::cmp::Ordering::Greater; + } + self.name.cmp(&other.name) + } +} + /// The manifest entry for a media file present in the package. #[derive(Clone, Debug, Getters, Serialize, Deserialize)] #[getset(get = "pub")] From 32d39138041d8f79f1d5c7e4060e0ed6b83ee739 Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Sun, 27 Jul 2025 19:20:48 +0100 Subject: [PATCH 07/10] fix: improved scrolling behaviour resolves #155 --- src/evidenceangel-ui/evidence_factory/http.rs | 4 ++ src/evidenceangel-ui/evidence_factory/mod.rs | 1 + .../evidence_factory/rich_text.rs | 60 +++++++++---------- src/evidenceangel-ui/evidence_factory/text.rs | 26 ++++---- 4 files changed, 44 insertions(+), 47 deletions(-) diff --git a/src/evidenceangel-ui/evidence_factory/http.rs b/src/evidenceangel-ui/evidence_factory/http.rs index 585f39c..95fd4ad 100644 --- a/src/evidenceangel-ui/evidence_factory/http.rs +++ b/src/evidenceangel-ui/evidence_factory/http.rs @@ -55,6 +55,7 @@ impl Component for ComponentModel { gtk::ScrolledWindow { set_hexpand: true, + set_vscrollbar_policy: gtk::PolicyType::Never, gtk::TextView { add_css_class: "monospace", @@ -62,6 +63,7 @@ impl Component for ComponentModel { set_right_margin: 8, set_top_margin: 8, set_bottom_margin: 8, + set_height_request: super::EVIDENCE_INNER_HEIGHT_REQUEST, set_halign: gtk::Align::Fill, set_valign: gtk::Align::Fill, @@ -80,6 +82,7 @@ impl Component for ComponentModel { gtk::ScrolledWindow { set_hexpand: true, + set_vscrollbar_policy: gtk::PolicyType::Never, gtk::TextView { add_css_class: "monospace", @@ -87,6 +90,7 @@ impl Component for ComponentModel { set_right_margin: 8, set_top_margin: 8, set_bottom_margin: 8, + set_height_request: super::EVIDENCE_INNER_HEIGHT_REQUEST, set_halign: gtk::Align::Fill, set_valign: gtk::Align::Fill, diff --git a/src/evidenceangel-ui/evidence_factory/mod.rs b/src/evidenceangel-ui/evidence_factory/mod.rs index 8529fae..853943f 100644 --- a/src/evidenceangel-ui/evidence_factory/mod.rs +++ b/src/evidenceangel-ui/evidence_factory/mod.rs @@ -22,6 +22,7 @@ mod rich_text; mod text; const EVIDENCE_HEIGHT_REQUEST: i32 = 300; +const EVIDENCE_INNER_HEIGHT_REQUEST: i32 = 100; const HTTP_SEPARATOR: char = '\x1e'; pub struct EvidenceFactoryModel { diff --git a/src/evidenceangel-ui/evidence_factory/rich_text.rs b/src/evidenceangel-ui/evidence_factory/rich_text.rs index 2dbc1cc..21a6e78 100644 --- a/src/evidenceangel-ui/evidence_factory/rich_text.rs +++ b/src/evidenceangel-ui/evidence_factory/rich_text.rs @@ -117,40 +117,36 @@ impl Component for ComponentModel { // Text #[name = "frame"] gtk::Frame { - gtk::ScrolledWindow { - set_height_request: 200, - set_hexpand: true, - - #[name = "text_view"] - gtk::TextView { - set_left_margin: 8, - set_right_margin: 8, - set_top_margin: 8, - set_bottom_margin: 8, - set_wrap_mode: gtk::WrapMode::Word, - - #[name = "text_buffer"] - #[wrap(Some)] - set_buffer = >k::TextBuffer { - set_text: &init.text, - connect_changed => ComponentInput::Internal(ComponentInputInternal::TextChanged) @signal_text_changed, - }, + #[name = "text_view"] + gtk::TextView { + set_left_margin: 8, + set_right_margin: 8, + set_top_margin: 8, + set_bottom_margin: 8, + set_height_request: super::EVIDENCE_INNER_HEIGHT_REQUEST, + set_wrap_mode: gtk::WrapMode::Word, + + #[name = "text_buffer"] + #[wrap(Some)] + set_buffer = >k::TextBuffer { + set_text: &init.text, + connect_changed => ComponentInput::Internal(ComponentInputInternal::TextChanged) @signal_text_changed, + }, - add_controller = gtk::ShortcutController { - add_shortcut = gtk::Shortcut { - #[wrap(Some)] - set_trigger = gtk::ShortcutTrigger::parse_string("B").unwrap(), - #[wrap(Some)] - set_action = gtk::ShortcutAction::parse_string("action(rich-text-editor.bold)").unwrap(), - }, - add_shortcut = gtk::Shortcut { - #[wrap(Some)] - set_trigger = gtk::ShortcutTrigger::parse_string("I").unwrap(), - #[wrap(Some)] - set_action = gtk::ShortcutAction::parse_string("action(rich-text-editor.italic)").unwrap(), - }, + add_controller = gtk::ShortcutController { + add_shortcut = gtk::Shortcut { + #[wrap(Some)] + set_trigger = gtk::ShortcutTrigger::parse_string("B").unwrap(), + #[wrap(Some)] + set_action = gtk::ShortcutAction::parse_string("action(rich-text-editor.bold)").unwrap(), }, - } + add_shortcut = gtk::Shortcut { + #[wrap(Some)] + set_trigger = gtk::ShortcutTrigger::parse_string("I").unwrap(), + #[wrap(Some)] + set_action = gtk::ShortcutAction::parse_string("action(rich-text-editor.italic)").unwrap(), + }, + }, } }, } diff --git a/src/evidenceangel-ui/evidence_factory/text.rs b/src/evidenceangel-ui/evidence_factory/text.rs index 47f07b4..fe39824 100644 --- a/src/evidenceangel-ui/evidence_factory/text.rs +++ b/src/evidenceangel-ui/evidence_factory/text.rs @@ -38,22 +38,18 @@ impl Component for ComponentModel { view! { #[root] gtk::Frame { - gtk::ScrolledWindow { - set_height_request: 100, - set_hexpand: true, + gtk::TextView { + set_left_margin: 8, + set_right_margin: 8, + set_top_margin: 8, + set_bottom_margin: 8, + set_height_request: super::EVIDENCE_INNER_HEIGHT_REQUEST, - gtk::TextView { - set_left_margin: 8, - set_right_margin: 8, - set_top_margin: 8, - set_bottom_margin: 8, - - #[name = "text_buffer"] - #[wrap(Some)] - set_buffer = >k::TextBuffer { - set_text: &init.text, - connect_changed => ComponentInput::Internal(ComponentInputInternal::TextChanged), - } + #[name = "text_buffer"] + #[wrap(Some)] + set_buffer = >k::TextBuffer { + set_text: &init.text, + connect_changed => ComponentInput::Internal(ComponentInputInternal::TextChanged), } } } From 59989f6237dacc255bc5920b56fbef956dd12aca Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Sun, 27 Jul 2025 19:23:36 +0100 Subject: [PATCH 08/10] style: reformatted --- src/evidenceangel-ui/lang.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/evidenceangel-ui/lang.rs b/src/evidenceangel-ui/lang.rs index d0cb76e..e19b109 100644 --- a/src/evidenceangel-ui/lang.rs +++ b/src/evidenceangel-ui/lang.rs @@ -1,6 +1,6 @@ use std::{borrow::Cow, collections::HashMap, fmt::Display}; -use fluent_templates::{fluent_bundle::types::FluentValue, LanguageIdentifier, Loader}; +use fluent_templates::{LanguageIdentifier, Loader, fluent_bundle::types::FluentValue}; use once_cell::sync::Lazy; use parking_lot::Mutex; From 83e4bb397b4c5d1219eb09b4765fe859df6a58dc Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Sun, 27 Jul 2025 19:24:11 +0100 Subject: [PATCH 09/10] chore: corrected incorrect version in cargo.toml --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0453e42..ba353ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -771,7 +771,7 @@ dependencies = [ [[package]] name = "evidenceangel" -version = "1.5.0-alpha.1" +version = "1.6.0-alpha.1" dependencies = [ "angelmark", "base64", diff --git a/Cargo.toml b/Cargo.toml index 25521bf..0a5dbc8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "evidenceangel" description = "Library and executables to work with EvidenceAngel evidence packages (*.evp)." -version = "1.5.0-alpha.1" +version = "1.6.0-alpha.1" edition = "2024" license = "GPL-3.0-or-later" authors = [ From a1547062e9c85e1f14f6adfab0f65dc9e4bad4eb Mon Sep 17 00:00:00 2001 From: Lily Hopkins Date: Sun, 27 Jul 2025 19:28:26 +0100 Subject: [PATCH 10/10] refactor: applied clippy suggestions --- Cargo.lock | 1 - Cargo.toml | 2 -- src/evidenceangel-cli/test_cases.rs | 9 ++++++--- src/evidenceangel-ui/evidence_factory/mod.rs | 2 +- src/evidenceangel-ui/lang.rs | 5 ++--- src/exporters/excel.rs | 2 +- src/exporters/html.rs | 9 ++++++--- src/package/manifest.rs | 4 ++++ 8 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ba353ba..ae99f02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -790,7 +790,6 @@ dependencies = [ "infer", "jsonschema", "mdbook", - "once_cell", "open", "parking_lot", "parse_datetime", diff --git a/Cargo.toml b/Cargo.toml index 0a5dbc8..11fb106 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,6 @@ ui = [ "dep:directories", "dep:fluent-templates", "dep:glib-build-tools", - "dep:once_cell", "dep:open", "dep:parse_datetime", "dep:parking_lot", @@ -73,7 +72,6 @@ getset = "0.1.2" html-escape = { version = "0.2.13", optional = true } infer = "0.19.0" jsonschema = "0.30.0" -once_cell = { version = "1.19.0", optional = true } open = { version = "5.3.0", optional = true } parking_lot = { version = "0.12.3", optional = true } parse_datetime = { version = "0.10.0", optional = true } diff --git a/src/evidenceangel-cli/test_cases.rs b/src/evidenceangel-cli/test_cases.rs index 711293e..1537460 100644 --- a/src/evidenceangel-cli/test_cases.rs +++ b/src/evidenceangel-cli/test_cases.rs @@ -269,9 +269,12 @@ impl fmt::Display for CliTestCase { } }; - rich_text.push_str(&format!( + // SAFETY: This won't fail as there is no I/O + write!( + rich_text, "{padding_left}{formatted}{padding_right} | " - )); + ) + .unwrap(); } rich_text.push('\n'); } @@ -882,7 +885,7 @@ pub fn process(path: PathBuf, command: &TestCasesSubcommand) -> CliData { new_order.insert(new_pos, case_id); } Err(e) => return CliError::FailedToReadPackage(Rc::new(e)).into(), - }; + } // Update order if let Err(e) = package.set_test_case_order(new_order) { diff --git a/src/evidenceangel-ui/evidence_factory/mod.rs b/src/evidenceangel-ui/evidence_factory/mod.rs index 853943f..202f95a 100644 --- a/src/evidenceangel-ui/evidence_factory/mod.rs +++ b/src/evidenceangel-ui/evidence_factory/mod.rs @@ -272,7 +272,7 @@ impl FactoryComponent for EvidenceFactoryModel { widgets.evidence_child.set_child(Some(component.widget())); self.sub_component = Box::new(component); } - }; + } widgets } diff --git a/src/evidenceangel-ui/lang.rs b/src/evidenceangel-ui/lang.rs index e19b109..bd949ee 100644 --- a/src/evidenceangel-ui/lang.rs +++ b/src/evidenceangel-ui/lang.rs @@ -1,7 +1,6 @@ -use std::{borrow::Cow, collections::HashMap, fmt::Display}; +use std::{borrow::Cow, collections::HashMap, fmt::Display, sync::LazyLock}; use fluent_templates::{LanguageIdentifier, Loader, fluent_bundle::types::FluentValue}; -use once_cell::sync::Lazy; use parking_lot::Mutex; fluent_templates::static_loader! { @@ -10,7 +9,7 @@ fluent_templates::static_loader! { fallback_language: "en", }; } -static USE_LOCALE: Lazy>> = Lazy::new(|| Mutex::new(None)); +static USE_LOCALE: LazyLock>> = LazyLock::new(|| Mutex::new(None)); /// Initialises i18n and returned the locale identifier pub fn initialise_i18n() -> LanguageIdentifier { diff --git a/src/exporters/excel.rs b/src/exporters/excel.rs index 581d44b..f3d3ec8 100644 --- a/src/exporters/excel.rs +++ b/src/exporters/excel.rs @@ -221,7 +221,7 @@ fn create_test_case_sheet( worksheet.write(row, 1, s)?; row += 1; } - }; + } if let Some(fields) = test_case.metadata().custom() { for (key, value) in fields { let field = package diff --git a/src/exporters/html.rs b/src/exporters/html.rs index 386c00f..e6dbb57 100644 --- a/src/exporters/html.rs +++ b/src/exporters/html.rs @@ -1,3 +1,4 @@ +use std::fmt::Write; use std::fs; use angelmark::{AngelmarkLine, AngelmarkTableAlignment, AngelmarkText, parse_angelmark}; @@ -39,9 +40,11 @@ impl Exporter for HtmlExporter { let mut authors = String::new(); for author in package.metadata().authors() { if let Some(email) = author.email() { - authors.push_str(&format!("{} <{}>, ", author.name(), email)); + // SAFETY: This won't fail as there's no I/O + write!(authors, "{} <{}>, ", author.name(), email).unwrap(); } else { - authors.push_str(&format!("{}, ", author.name())); + // SAFETY: This won't fail as there's no I/O + write!(authors, "{}, ", author.name()).unwrap(); } } authors.pop(); @@ -170,7 +173,7 @@ fn create_test_case_div( .with_raw(s), ); } - }; + } if let Some(fields) = test_case.metadata().custom() { let mut dl = HtmlElement::new(HtmlTag::DescriptionList) .with_attribute("class", "custom-metadata-fields"); diff --git a/src/package/manifest.rs b/src/package/manifest.rs index dabf90a..d722e01 100644 --- a/src/package/manifest.rs +++ b/src/package/manifest.rs @@ -21,6 +21,10 @@ pub struct Metadata { /// Custom metadata fields for test cases #[serde(skip_serializing_if = "Option::is_none")] + #[allow( + clippy::struct_field_names, + reason = "This field refers to the name of it's subtype" + )] pub(super) custom_test_case_metadata: Option>, /// Extra fields that this implementation doesn't understand.