aboutsummaryrefslogtreecommitdiff
path: root/textproc
diff options
context:
space:
mode:
Diffstat (limited to 'textproc')
-rw-r--r--textproc/Makefile4
-rw-r--r--textproc/R-cran-downlit/Makefile8
-rw-r--r--textproc/R-cran-downlit/distinfo6
-rw-r--r--textproc/R-cran-downlit/files/patch-tests_testthat_test-link.R10
-rw-r--r--textproc/adoc-mode.el/Makefile2
-rw-r--r--textproc/feluda/Makefile4
-rw-r--r--textproc/feluda/Makefile.crates102
-rw-r--r--textproc/feluda/distinfo212
-rw-r--r--textproc/feluda/files/patch-Cargo.toml10
-rw-r--r--textproc/ibus-typing-booster/Makefile2
-rw-r--r--textproc/ibus-typing-booster/distinfo6
-rw-r--r--textproc/ibus-typing-booster/pkg-plist5
-rw-r--r--textproc/jing/Makefile2
-rw-r--r--textproc/minify/Makefile2
-rw-r--r--textproc/minify/distinfo10
-rw-r--r--textproc/moar/Makefile23
-rw-r--r--textproc/moar/distinfo5
-rw-r--r--textproc/moar/pkg-descr3
-rw-r--r--textproc/moor/Makefile2
-rw-r--r--textproc/moor/distinfo10
-rw-r--r--textproc/py-furo/Makefile2
-rw-r--r--textproc/py-furo/distinfo10
-rw-r--r--textproc/py-markdown/Makefile2
-rw-r--r--textproc/py-markdown/distinfo6
-rw-r--r--textproc/py-markdown/files/patch-pyproject.toml8
-rw-r--r--textproc/py-mkdocs-material/Makefile22
-rw-r--r--textproc/py-mkdocs-material/distinfo6
-rw-r--r--textproc/py-packageurl-python/Makefile2
-rw-r--r--textproc/py-packageurl-python/distinfo6
-rw-r--r--textproc/py-parsimonious/Makefile6
-rw-r--r--textproc/py-parsimonious/distinfo6
-rw-r--r--textproc/py-pymdown-extensions/Makefile2
-rw-r--r--textproc/py-pymdown-extensions/distinfo6
-rw-r--r--textproc/py-python-bidi/Makefile23
-rw-r--r--textproc/py-python-bidi/Makefile.crates23
-rw-r--r--textproc/py-python-bidi/distinfo52
-rw-r--r--textproc/py-python-bidi/pkg-descr8
-rw-r--r--textproc/py-sphinxcontrib-spelling/Makefile7
-rw-r--r--textproc/py-sphinxcontrib-spelling/distinfo6
-rw-r--r--textproc/py-textual/Makefile2
-rw-r--r--textproc/py-textual/distinfo6
-rw-r--r--textproc/py-tinycss2/Makefile2
-rw-r--r--textproc/py-tinycss2/distinfo6
-rw-r--r--textproc/py-zensical/Makefile31
-rw-r--r--textproc/py-zensical/Makefile.crates175
-rw-r--r--textproc/py-zensical/distinfo353
-rw-r--r--textproc/py-zensical/files/patch-pyproject.toml15
-rw-r--r--textproc/py-zensical/pkg-descr4
-rw-r--r--textproc/rubygem-actiontext81/Makefile2
-rw-r--r--textproc/rubygem-actiontext81/distinfo6
-rw-r--r--textproc/rubygem-asciidoctor-pdf/Makefile2
-rw-r--r--textproc/rubygem-asciidoctor-pdf/distinfo6
-rw-r--r--textproc/rubygem-cucumber-gherkin/Makefile4
-rw-r--r--textproc/rubygem-cucumber-gherkin/distinfo6
-rw-r--r--textproc/rubygem-cucumber-html-formatter/Makefile4
-rw-r--r--textproc/rubygem-cucumber-html-formatter/distinfo6
-rw-r--r--textproc/rubygem-elasticsearch-api8/Makefile2
-rw-r--r--textproc/rubygem-elasticsearch-api8/distinfo6
-rw-r--r--textproc/rubygem-elasticsearch8/Makefile2
-rw-r--r--textproc/rubygem-elasticsearch8/distinfo6
-rw-r--r--textproc/rubygem-google-cloud-translate/Makefile2
-rw-r--r--textproc/rubygem-google-cloud-translate/distinfo6
-rw-r--r--textproc/rubygem-liquid/Makefile2
-rw-r--r--textproc/rubygem-liquid/distinfo6
-rw-r--r--textproc/rubygem-terminal-table/Makefile5
-rw-r--r--textproc/rubygem-terminal-table/distinfo6
-rw-r--r--textproc/rubygem-terminal-table3/Makefile24
-rw-r--r--textproc/rubygem-terminal-table3/distinfo3
-rw-r--r--textproc/rubygem-terminal-table3/pkg-descr8
-rw-r--r--textproc/trang/Makefile2
-rw-r--r--textproc/typos/Makefile32
-rw-r--r--textproc/typos/Makefile.crates204
-rw-r--r--textproc/typos/distinfo411
-rw-r--r--textproc/typos/pkg-descr3
-rw-r--r--textproc/typos/pkg-plist6
-rw-r--r--textproc/xan/Makefile2
-rw-r--r--textproc/xan/Makefile.crates2
-rw-r--r--textproc/xan/distinfo10
-rw-r--r--textproc/yaml-mode.el/Makefile2
-rw-r--r--textproc/yaml.el/Makefile2
80 files changed, 1673 insertions, 342 deletions
diff --git a/textproc/Makefile b/textproc/Makefile
index f42e84207f5b..4a03f0327408 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -493,7 +493,6 @@
SUBDIR += ml-aspell
SUBDIR += ml1
SUBDIR += mn-aspell
- SUBDIR += moar
SUBDIR += modlogan
SUBDIR += moor
SUBDIR += mp_doccer
@@ -1750,6 +1749,7 @@
SUBDIR += py-xmlschema
SUBDIR += py-yapf
SUBDIR += py-youseedee
+ SUBDIR += py-zensical
SUBDIR += py-zope.i18nmessageid
SUBDIR += py-zpt
SUBDIR += qprint
@@ -2018,6 +2018,7 @@
SUBDIR += rubygem-syntax
SUBDIR += rubygem-termcolor
SUBDIR += rubygem-terminal-table
+ SUBDIR += rubygem-terminal-table3
SUBDIR += rubygem-terser
SUBDIR += rubygem-text
SUBDIR += rubygem-tidy_ffi
@@ -2151,6 +2152,7 @@
SUBDIR += txt2html
SUBDIR += txt2man
SUBDIR += txt2tags
+ SUBDIR += typos
SUBDIR += typst
SUBDIR += uchardet
SUBDIR += ucto
diff --git a/textproc/R-cran-downlit/Makefile b/textproc/R-cran-downlit/Makefile
index eada95198c9e..395860f0d306 100644
--- a/textproc/R-cran-downlit/Makefile
+++ b/textproc/R-cran-downlit/Makefile
@@ -1,16 +1,16 @@
PORTNAME= downlit
-DISTVERSION= 0.4.4
+DISTVERSION= 0.4.5
CATEGORIES= textproc
DISTNAME= ${PORTNAME}_${PORTVERSION}
MAINTAINER= uzsolt@FreeBSD.org
COMMENT= Syntax Highlighting and Automatic Linking
-WWW= https://cran.r-project.org/web/packages/downlit/
+WWW= https://cran.r-project.org/package=downlit
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-CRAN_DEPENDS= R-cran-brio>0:devel/R-cran-brio \
+RUN_DEPENDS= R-cran-brio>0:devel/R-cran-brio \
R-cran-desc>0:devel/R-cran-desc \
R-cran-digest>0:security/R-cran-digest \
R-cran-evaluate>0:devel/R-cran-evaluate \
@@ -20,8 +20,6 @@ CRAN_DEPENDS= R-cran-brio>0:devel/R-cran-brio \
R-cran-vctrs>0:devel/R-cran-vctrs \
R-cran-withr>0:devel/R-cran-withr \
R-cran-yaml>0:textproc/R-cran-yaml
-BUILD_DEPENDS= ${CRAN_DEPENDS}
-RUN_DEPENDS= ${CRAN_DEPENDS}
TEST_DEPENDS= R-cran-covr>0:devel/R-cran-covr \
R-cran-htmltools>0:textproc/R-cran-htmltools \
R-cran-jsonlite>0:converters/R-cran-jsonlite \
diff --git a/textproc/R-cran-downlit/distinfo b/textproc/R-cran-downlit/distinfo
index 2c9361bcc3cf..9fa63e4d146e 100644
--- a/textproc/R-cran-downlit/distinfo
+++ b/textproc/R-cran-downlit/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1723491653
-SHA256 (downlit_0.4.4.tar.gz) = 55c377dcee4adc48c1060e14079f3d1832453d066a2cf070530caa210c48f828
-SIZE (downlit_0.4.4.tar.gz) = 37162
+TIMESTAMP = 1764266575
+SHA256 (downlit_0.4.5.tar.gz) = b696ce388a804738b44eb1ceb0e3f0531b309ea91408f40a0cb43c63541b658b
+SIZE (downlit_0.4.5.tar.gz) = 37263
diff --git a/textproc/R-cran-downlit/files/patch-tests_testthat_test-link.R b/textproc/R-cran-downlit/files/patch-tests_testthat_test-link.R
index d76be78b37e7..1470cd5f796f 100644
--- a/textproc/R-cran-downlit/files/patch-tests_testthat_test-link.R
+++ b/textproc/R-cran-downlit/files/patch-tests_testthat_test-link.R
@@ -1,9 +1,9 @@
---- tests/testthat/test-link.R.orig 2024-08-13 05:33:03 UTC
+--- tests/testthat/test-link.R.orig 2025-11-28 09:31:09 UTC
+++ tests/testthat/test-link.R
-@@ -217,10 +217,6 @@ test_that("looks in attached packages", {
- href_expr_(vignette("sha1")),
- "https://cran.rstudio.com/web/packages/digest/vignettes/sha1.html"
- )
+@@ -247,10 +247,6 @@ test_that("looks in attached packages", {
+ # href_expr_(vignette("sha1")),
+ # "https://cran.rstudio.com/web/packages/digest/vignettes/sha1.html"
+ # )
- expect_equal(
- href_expr_(vignette("moveline")),
- "https://cran.rstudio.com/web/packages/grid/vignettes/moveline.pdf"
diff --git a/textproc/adoc-mode.el/Makefile b/textproc/adoc-mode.el/Makefile
index 28f9141e6d16..4c1bce3243d2 100644
--- a/textproc/adoc-mode.el/Makefile
+++ b/textproc/adoc-mode.el/Makefile
@@ -5,7 +5,7 @@ PORTREVISION= 7
CATEGORIES= textproc elisp
PKGNAMESUFFIX= ${EMACS_PKGNAMESUFFIX}
-MAINTAINER= yasu@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Major-mode for editing AsciiDoc files in Emacs
WWW= https://github.com/bbatsov/adoc-mode
diff --git a/textproc/feluda/Makefile b/textproc/feluda/Makefile
index 8236b5aa9ab8..a737f3992f63 100644
--- a/textproc/feluda/Makefile
+++ b/textproc/feluda/Makefile
@@ -1,7 +1,6 @@
PORTNAME= feluda
DISTVERSIONPREFIX= v
-DISTVERSION= 1.10.1 # Cargo.lock patched: `make patch cargo-crates`
-PORTREVISION= 1
+DISTVERSION= 1.10.3 # Cargo.lock patched: `make patch cargo-crates`
CATEGORIES= textproc
MAINTAINER= nxjoseph@protonmail.com
@@ -13,6 +12,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libgit2.so:devel/libgit2 \
libssh2.so:security/libssh2
+RUN_DEPENDS= noto-emoji>0:x11-fonts/noto-emoji
USES= cargo localbase ssl
USE_GITHUB= yes
diff --git a/textproc/feluda/Makefile.crates b/textproc/feluda/Makefile.crates
index 8b30633a58d7..254129f38dbc 100644
--- a/textproc/feluda/Makefile.crates
+++ b/textproc/feluda/Makefile.crates
@@ -1,8 +1,7 @@
-CARGO_CRATES= addr2line-0.24.2 \
+CARGO_CRATES= addr2line-0.25.1 \
adler2-2.0.1 \
aho-corasick-1.1.3 \
allocator-api2-0.2.21 \
- android-tzdata-0.1.1 \
android_system_properties-0.1.5 \
anstream-0.6.19 \
anstyle-1.0.11 \
@@ -12,7 +11,7 @@ CARGO_CRATES= addr2line-0.24.2 \
atomic-0.6.1 \
atomic-waker-1.1.2 \
autocfg-1.5.0 \
- backtrace-0.3.75 \
+ backtrace-0.3.76 \
base64-0.22.1 \
bitflags-2.9.1 \
bstr-1.12.0 \
@@ -21,18 +20,17 @@ CARGO_CRATES= addr2line-0.24.2 \
byteorder-1.5.0 \
bytes-1.10.1 \
camino-1.1.10 \
- cargo-platform-0.2.0 \
- cargo-util-schemas-0.2.0 \
- cargo_metadata-0.20.0 \
+ cargo-platform-0.3.1 \
+ cargo_metadata-0.23.0 \
cassowary-0.3.0 \
castaway-0.2.4 \
cc-1.2.30 \
cfg-if-1.0.1 \
cfg_aliases-0.2.1 \
- chrono-0.4.41 \
- clap-4.5.41 \
- clap_builder-4.5.41 \
- clap_derive-4.5.41 \
+ chrono-0.4.42 \
+ clap-4.5.51 \
+ clap_builder-4.5.51 \
+ clap_derive-4.5.49 \
clap_lex-0.7.5 \
color-eyre-0.6.5 \
color-spantrace-0.3.0 \
@@ -45,12 +43,13 @@ CARGO_CRATES= addr2line-0.24.2 \
crossbeam-utils-0.8.21 \
crossterm-0.28.1 \
crossterm_winapi-0.9.1 \
- cssparser-0.34.0 \
+ cssparser-0.35.0 \
cssparser-macros-0.6.1 \
darling-0.20.11 \
darling_core-0.20.11 \
darling_macro-0.20.11 \
- derive_more-0.99.20 \
+ derive_more-2.0.1 \
+ derive_more-impl-2.0.1 \
dirs-6.0.0 \
dirs-sys-0.5.0 \
displaydoc-0.2.5 \
@@ -60,7 +59,6 @@ CARGO_CRATES= addr2line-0.24.2 \
ego-tree-0.10.0 \
either-1.15.0 \
equivalent-1.0.2 \
- erased-serde-0.4.6 \
errno-0.3.13 \
eyre-0.6.12 \
fastrand-2.3.0 \
@@ -80,14 +78,15 @@ CARGO_CRATES= addr2line-0.24.2 \
getopts-0.2.23 \
getrandom-0.2.16 \
getrandom-0.3.3 \
- gimli-0.31.1 \
+ gimli-0.32.3 \
git2-0.20.2 \
- globset-0.4.16 \
+ globset-0.4.18 \
h2-0.4.11 \
hashbrown-0.15.4 \
+ hashbrown-0.16.0 \
heck-0.4.1 \
heck-0.5.0 \
- html5ever-0.29.1 \
+ html5ever-0.35.0 \
http-1.3.1 \
http-body-1.0.1 \
http-body-util-0.1.3 \
@@ -107,13 +106,12 @@ CARGO_CRATES= addr2line-0.24.2 \
ident_case-1.0.1 \
idna-1.0.3 \
idna_adapter-1.2.1 \
- ignore-0.4.23 \
+ ignore-0.4.25 \
indenter-0.3.3 \
- indexmap-2.10.0 \
+ indexmap-2.12.0 \
indoc-2.0.6 \
inlinable_string-0.1.15 \
instability-0.3.9 \
- io-uring-0.7.9 \
ipnet-2.11.0 \
iri-string-0.7.8 \
is_terminal_polyfill-1.70.1 \
@@ -122,7 +120,7 @@ CARGO_CRATES= addr2line-0.24.2 \
jobserver-0.1.33 \
js-sys-0.3.77 \
lazy_static-1.5.0 \
- libc-0.2.174 \
+ libc-0.2.177 \
libgit2-sys-0.18.2+1.9.1 \
libredox-0.1.6 \
libssh2-sys-0.3.1 \
@@ -136,8 +134,8 @@ CARGO_CRATES= addr2line-0.24.2 \
lru-slab-0.1.2 \
mac-0.1.1 \
maplit-1.0.2 \
- markup5ever-0.14.1 \
- match_token-0.1.0 \
+ markup5ever-0.35.0 \
+ match_token-0.35.0 \
matchers-0.2.0 \
memchr-2.7.5 \
miniz_oxide-0.8.9 \
@@ -147,14 +145,13 @@ CARGO_CRATES= addr2line-0.24.2 \
new_debug_unreachable-1.0.6 \
nu-ansi-term-0.50.1 \
num-traits-0.2.19 \
- object-0.36.7 \
+ object-0.37.3 \
once_cell-1.21.3 \
once_cell_polyfill-1.70.1 \
openssl-probe-0.1.6 \
openssl-sys-0.9.109 \
option-ext-0.2.0 \
- ordered-float-2.10.1 \
- owo-colors-4.2.2 \
+ owo-colors-4.2.3 \
parking_lot-0.12.4 \
parking_lot_core-0.9.11 \
paste-1.0.15 \
@@ -162,10 +159,14 @@ CARGO_CRATES= addr2line-0.24.2 \
pear_codegen-0.2.9 \
percent-encoding-2.3.1 \
phf-0.11.3 \
+ phf-0.13.1 \
phf_codegen-0.11.3 \
+ phf_codegen-0.13.1 \
phf_generator-0.11.3 \
+ phf_generator-0.13.1 \
phf_macros-0.11.3 \
phf_shared-0.11.3 \
+ phf_shared-0.13.1 \
pin-project-lite-0.2.16 \
pin-utils-0.1.0 \
pkg-config-0.3.32 \
@@ -188,14 +189,14 @@ CARGO_CRATES= addr2line-0.24.2 \
rand_core-0.6.4 \
rand_core-0.9.3 \
ratatui-0.29.0 \
- rayon-1.10.0 \
- rayon-core-1.12.1 \
+ rayon-1.11.0 \
+ rayon-core-1.13.0 \
redox_syscall-0.5.15 \
redox_users-0.5.0 \
- regex-1.11.1 \
- regex-automata-0.4.9 \
+ regex-1.12.2 \
+ regex-automata-0.4.13 \
regex-syntax-0.8.5 \
- reqwest-0.12.22 \
+ reqwest-0.12.24 \
ring-0.17.14 \
rustc-demangle-0.1.25 \
rustc-hash-2.1.1 \
@@ -208,15 +209,15 @@ CARGO_CRATES= addr2line-0.24.2 \
ryu-1.0.20 \
same-file-1.0.6 \
scopeguard-1.2.0 \
- scraper-0.23.1 \
- selectors-0.26.0 \
+ scraper-0.24.0 \
+ selectors-0.31.0 \
semver-1.0.26 \
- serde-1.0.219 \
- serde-untagged-0.1.7 \
- serde-value-0.7.0 \
- serde_derive-1.0.219 \
- serde_json-1.0.141 \
+ serde-1.0.228 \
+ serde_core-1.0.228 \
+ serde_derive-1.0.228 \
+ serde_json-1.0.145 \
serde_spanned-0.6.9 \
+ serde_spanned-1.0.3 \
serde_urlencoded-0.7.1 \
serde_yaml-0.9.34+deprecated \
servo_arc-0.4.1 \
@@ -233,8 +234,8 @@ CARGO_CRATES= addr2line-0.24.2 \
spinners-4.1.1 \
stable_deref_trait-1.2.0 \
static_assertions-1.1.0 \
- string_cache-0.8.9 \
- string_cache_codegen-0.5.4 \
+ string_cache-0.9.0 \
+ string_cache_codegen-0.6.1 \
strsim-0.11.1 \
strum-0.24.1 \
strum-0.26.3 \
@@ -246,25 +247,27 @@ CARGO_CRATES= addr2line-0.24.2 \
sync_wrapper-1.0.2 \
synstructure-0.13.2 \
temp-env-0.3.6 \
- tempfile-3.20.0 \
+ tempfile-3.23.0 \
tendril-0.4.3 \
termtree-0.5.1 \
- thiserror-1.0.69 \
- thiserror-2.0.12 \
- thiserror-impl-1.0.69 \
- thiserror-impl-2.0.12 \
+ thiserror-2.0.17 \
+ thiserror-impl-2.0.17 \
thread_local-1.1.9 \
tinystr-0.8.1 \
tinyvec-1.9.0 \
tinyvec_macros-0.1.1 \
- tokio-1.47.1 \
- tokio-macros-2.5.0 \
+ tokio-1.48.0 \
+ tokio-macros-2.6.0 \
tokio-rustls-0.26.2 \
tokio-util-0.7.15 \
toml-0.8.23 \
+ toml-0.9.8 \
toml_datetime-0.6.11 \
+ toml_datetime-0.7.3 \
toml_edit-0.22.27 \
+ toml_parser-1.0.4 \
toml_write-0.1.2 \
+ toml_writer-1.0.4 \
tower-0.5.2 \
tower-http-0.6.6 \
tower-layer-0.3.3 \
@@ -276,14 +279,12 @@ CARGO_CRATES= addr2line-0.24.2 \
tracing-log-0.2.0 \
tracing-subscriber-0.3.20 \
try-lock-0.2.5 \
- typeid-1.0.3 \
uncased-0.9.10 \
unicode-ident-1.0.18 \
unicode-segmentation-1.12.0 \
unicode-truncate-1.1.0 \
unicode-width-0.1.14 \
unicode-width-0.2.0 \
- unicode-xid-0.2.6 \
unsafe-libyaml-0.2.11 \
untrusted-0.9.0 \
url-2.5.4 \
@@ -306,6 +307,7 @@ CARGO_CRATES= addr2line-0.24.2 \
wasm-bindgen-shared-0.2.100 \
web-sys-0.3.77 \
web-time-1.1.0 \
+ web_atoms-0.1.4 \
webpki-roots-1.0.2 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
@@ -315,11 +317,13 @@ CARGO_CRATES= addr2line-0.24.2 \
windows-implement-0.60.0 \
windows-interface-0.59.1 \
windows-link-0.1.3 \
+ windows-link-0.2.1 \
windows-result-0.3.4 \
windows-strings-0.4.2 \
windows-sys-0.52.0 \
windows-sys-0.59.0 \
windows-sys-0.60.2 \
+ windows-sys-0.61.2 \
windows-targets-0.52.6 \
windows-targets-0.53.2 \
windows_aarch64_gnullvm-0.52.6 \
@@ -338,7 +342,7 @@ CARGO_CRATES= addr2line-0.24.2 \
windows_x86_64_gnullvm-0.53.0 \
windows_x86_64_msvc-0.52.6 \
windows_x86_64_msvc-0.53.0 \
- winnow-0.7.12 \
+ winnow-0.7.13 \
wit-bindgen-rt-0.39.0 \
writeable-0.6.1 \
yansi-1.0.1 \
diff --git a/textproc/feluda/distinfo b/textproc/feluda/distinfo
index 5279bcaa2780..791e6a0cc2da 100644
--- a/textproc/feluda/distinfo
+++ b/textproc/feluda/distinfo
@@ -1,14 +1,12 @@
-TIMESTAMP = 1759824011
-SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
-SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
+TIMESTAMP = 1764084673
+SHA256 (rust/crates/addr2line-0.25.1.crate) = 1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b
+SIZE (rust/crates/addr2line-0.25.1.crate) = 43134
SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
SIZE (rust/crates/adler2-2.0.1.crate) = 13366
SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
SHA256 (rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923
SIZE (rust/crates/allocator-api2-0.2.21.crate) = 63622
-SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
-SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
SHA256 (rust/crates/anstream-0.6.19.crate) = 301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933
@@ -27,8 +25,8 @@ SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d
SIZE (rust/crates/atomic-waker-1.1.2.crate) = 12422
SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
-SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002
-SIZE (rust/crates/backtrace-0.3.75.crate) = 92665
+SHA256 (rust/crates/backtrace-0.3.76.crate) = bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6
+SIZE (rust/crates/backtrace-0.3.76.crate) = 89458
SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
SIZE (rust/crates/base64-0.22.1.crate) = 81597
SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967
@@ -45,12 +43,10 @@ SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b1
SIZE (rust/crates/bytes-1.10.1.crate) = 76779
SHA256 (rust/crates/camino-1.1.10.crate) = 0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab
SIZE (rust/crates/camino-1.1.10.crate) = 42306
-SHA256 (rust/crates/cargo-platform-0.2.0.crate) = 84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4
-SIZE (rust/crates/cargo-platform-0.2.0.crate) = 13373
-SHA256 (rust/crates/cargo-util-schemas-0.2.0.crate) = e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca
-SIZE (rust/crates/cargo-util-schemas-0.2.0.crate) = 23612
-SHA256 (rust/crates/cargo_metadata-0.20.0.crate) = 4f7835cfc6135093070e95eb2b53e5d9b5c403dc3a6be6040ee026270aa82502
-SIZE (rust/crates/cargo_metadata-0.20.0.crate) = 32312
+SHA256 (rust/crates/cargo-platform-0.3.1.crate) = 122ec45a44b270afd1402f351b782c676b173e3c3fb28d86ff7ebfb4d86a4ee4
+SIZE (rust/crates/cargo-platform-0.3.1.crate) = 13321
+SHA256 (rust/crates/cargo_metadata-0.23.0.crate) = 981a6f317983eec002839b90fae7411a85621410ae591a9cab2ecf5cb5744873
+SIZE (rust/crates/cargo_metadata-0.23.0.crate) = 30522
SHA256 (rust/crates/cassowary-0.3.0.crate) = df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53
SIZE (rust/crates/cassowary-0.3.0.crate) = 22876
SHA256 (rust/crates/castaway-0.2.4.crate) = dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a
@@ -61,14 +57,14 @@ SHA256 (rust/crates/cfg-if-1.0.1.crate) = 9555578bc9e57714c812a1f84e4fc5b4d21fcb
SIZE (rust/crates/cfg-if-1.0.1.crate) = 8683
SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724
SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355
-SHA256 (rust/crates/chrono-0.4.41.crate) = c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d
-SIZE (rust/crates/chrono-0.4.41.crate) = 234621
-SHA256 (rust/crates/clap-4.5.41.crate) = be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9
-SIZE (rust/crates/clap-4.5.41.crate) = 58298
-SHA256 (rust/crates/clap_builder-4.5.41.crate) = 707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d
-SIZE (rust/crates/clap_builder-4.5.41.crate) = 169633
-SHA256 (rust/crates/clap_derive-4.5.41.crate) = ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491
-SIZE (rust/crates/clap_derive-4.5.41.crate) = 33493
+SHA256 (rust/crates/chrono-0.4.42.crate) = 145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2
+SIZE (rust/crates/chrono-0.4.42.crate) = 238174
+SHA256 (rust/crates/clap-4.5.51.crate) = 4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5
+SIZE (rust/crates/clap-4.5.51.crate) = 62030
+SHA256 (rust/crates/clap_builder-4.5.51.crate) = 75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a
+SIZE (rust/crates/clap_builder-4.5.51.crate) = 171077
+SHA256 (rust/crates/clap_derive-4.5.49.crate) = 2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671
+SIZE (rust/crates/clap_derive-4.5.49.crate) = 33559
SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675
SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469
SHA256 (rust/crates/color-eyre-0.6.5.crate) = e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d
@@ -93,8 +89,8 @@ SHA256 (rust/crates/crossterm-0.28.1.crate) = 829d955a0bb380ef178a640b91779e3987
SIZE (rust/crates/crossterm-0.28.1.crate) = 132275
SHA256 (rust/crates/crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b
SIZE (rust/crates/crossterm_winapi-0.9.1.crate) = 16027
-SHA256 (rust/crates/cssparser-0.34.0.crate) = b7c66d1cd8ed61bf80b38432613a7a2f09401ab8d0501110655f8b341484a3e3
-SIZE (rust/crates/cssparser-0.34.0.crate) = 53857
+SHA256 (rust/crates/cssparser-0.35.0.crate) = 4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa
+SIZE (rust/crates/cssparser-0.35.0.crate) = 54145
SHA256 (rust/crates/cssparser-macros-0.6.1.crate) = 13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331
SIZE (rust/crates/cssparser-macros-0.6.1.crate) = 7914
SHA256 (rust/crates/darling-0.20.11.crate) = fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee
@@ -103,8 +99,10 @@ SHA256 (rust/crates/darling_core-0.20.11.crate) = 0d00b9596d185e565c2207a0b01f8b
SIZE (rust/crates/darling_core-0.20.11.crate) = 68006
SHA256 (rust/crates/darling_macro-0.20.11.crate) = fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead
SIZE (rust/crates/darling_macro-0.20.11.crate) = 2532
-SHA256 (rust/crates/derive_more-0.99.20.crate) = 6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f
-SIZE (rust/crates/derive_more-0.99.20.crate) = 55041
+SHA256 (rust/crates/derive_more-2.0.1.crate) = 093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678
+SIZE (rust/crates/derive_more-2.0.1.crate) = 70127
+SHA256 (rust/crates/derive_more-impl-2.0.1.crate) = bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3
+SIZE (rust/crates/derive_more-impl-2.0.1.crate) = 78233
SHA256 (rust/crates/dirs-6.0.0.crate) = c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e
SIZE (rust/crates/dirs-6.0.0.crate) = 14190
SHA256 (rust/crates/dirs-sys-0.5.0.crate) = e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab
@@ -123,8 +121,6 @@ SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e
SIZE (rust/crates/either-1.15.0.crate) = 20114
SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
-SHA256 (rust/crates/erased-serde-0.4.6.crate) = e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7
-SIZE (rust/crates/erased-serde-0.4.6.crate) = 28352
SHA256 (rust/crates/errno-0.3.13.crate) = 778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad
SIZE (rust/crates/errno-0.3.13.crate) = 12449
SHA256 (rust/crates/eyre-0.6.12.crate) = 7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec
@@ -163,22 +159,24 @@ SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433
SIZE (rust/crates/getrandom-0.2.16.crate) = 40163
SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4
SIZE (rust/crates/getrandom-0.3.3.crate) = 49493
-SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
-SIZE (rust/crates/gimli-0.31.1.crate) = 279515
+SHA256 (rust/crates/gimli-0.32.3.crate) = e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7
+SIZE (rust/crates/gimli-0.32.3.crate) = 289789
SHA256 (rust/crates/git2-0.20.2.crate) = 2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110
SIZE (rust/crates/git2-0.20.2.crate) = 223479
-SHA256 (rust/crates/globset-0.4.16.crate) = 54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5
-SIZE (rust/crates/globset-0.4.16.crate) = 26533
+SHA256 (rust/crates/globset-0.4.18.crate) = 52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3
+SIZE (rust/crates/globset-0.4.18.crate) = 28970
SHA256 (rust/crates/h2-0.4.11.crate) = 17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785
SIZE (rust/crates/h2-0.4.11.crate) = 175810
SHA256 (rust/crates/hashbrown-0.15.4.crate) = 5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5
SIZE (rust/crates/hashbrown-0.15.4.crate) = 140447
+SHA256 (rust/crates/hashbrown-0.16.0.crate) = 5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d
+SIZE (rust/crates/hashbrown-0.16.0.crate) = 141708
SHA256 (rust/crates/heck-0.4.1.crate) = 95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8
SIZE (rust/crates/heck-0.4.1.crate) = 11567
SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
SIZE (rust/crates/heck-0.5.0.crate) = 11517
-SHA256 (rust/crates/html5ever-0.29.1.crate) = 3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c
-SIZE (rust/crates/html5ever-0.29.1.crate) = 72424
+SHA256 (rust/crates/html5ever-0.35.0.crate) = 55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4
+SIZE (rust/crates/html5ever-0.35.0.crate) = 76142
SHA256 (rust/crates/http-1.3.1.crate) = f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565
SIZE (rust/crates/http-1.3.1.crate) = 106063
SHA256 (rust/crates/http-body-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184
@@ -217,20 +215,18 @@ SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f
SIZE (rust/crates/idna-1.0.3.crate) = 142515
SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344
SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389
-SHA256 (rust/crates/ignore-0.4.23.crate) = 6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b
-SIZE (rust/crates/ignore-0.4.23.crate) = 55901
+SHA256 (rust/crates/ignore-0.4.25.crate) = d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a
+SIZE (rust/crates/ignore-0.4.25.crate) = 59154
SHA256 (rust/crates/indenter-0.3.3.crate) = ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683
SIZE (rust/crates/indenter-0.3.3.crate) = 6587
-SHA256 (rust/crates/indexmap-2.10.0.crate) = fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661
-SIZE (rust/crates/indexmap-2.10.0.crate) = 95836
+SHA256 (rust/crates/indexmap-2.12.0.crate) = 6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f
+SIZE (rust/crates/indexmap-2.12.0.crate) = 100446
SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd
SIZE (rust/crates/indoc-2.0.6.crate) = 17164
SHA256 (rust/crates/inlinable_string-0.1.15.crate) = c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb
SIZE (rust/crates/inlinable_string-0.1.15.crate) = 19290
SHA256 (rust/crates/instability-0.3.9.crate) = 435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a
SIZE (rust/crates/instability-0.3.9.crate) = 14451
-SHA256 (rust/crates/io-uring-0.7.9.crate) = d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4
-SIZE (rust/crates/io-uring-0.7.9.crate) = 99792
SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130
SIZE (rust/crates/ipnet-2.11.0.crate) = 29718
SHA256 (rust/crates/iri-string-0.7.8.crate) = dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2
@@ -247,8 +243,8 @@ SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec9374296
SIZE (rust/crates/js-sys-0.3.77.crate) = 55538
SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
-SHA256 (rust/crates/libc-0.2.174.crate) = 1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776
-SIZE (rust/crates/libc-0.2.174.crate) = 779933
+SHA256 (rust/crates/libc-0.2.177.crate) = 2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976
+SIZE (rust/crates/libc-0.2.177.crate) = 792045
SHA256 (rust/crates/libgit2-sys-0.18.2+1.9.1.crate) = 1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222
SIZE (rust/crates/libgit2-sys-0.18.2+1.9.1.crate) = 1856057
SHA256 (rust/crates/libredox-0.1.6.crate) = 4488594b9328dee448adb906d8b126d9b7deb7cf5c22161ee591610bb1be83c0
@@ -275,10 +271,10 @@ SHA256 (rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fc
SIZE (rust/crates/mac-0.1.1.crate) = 4838
SHA256 (rust/crates/maplit-1.0.2.crate) = 3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d
SIZE (rust/crates/maplit-1.0.2.crate) = 8871
-SHA256 (rust/crates/markup5ever-0.14.1.crate) = c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18
-SIZE (rust/crates/markup5ever-0.14.1.crate) = 38103
-SHA256 (rust/crates/match_token-0.1.0.crate) = 88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b
-SIZE (rust/crates/match_token-0.1.0.crate) = 4903
+SHA256 (rust/crates/markup5ever-0.35.0.crate) = 311fe69c934650f8f19652b3946075f0fc41ad8757dbb68f1ca14e7900ecc1c3
+SIZE (rust/crates/markup5ever-0.35.0.crate) = 15883
+SHA256 (rust/crates/match_token-0.35.0.crate) = ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf
+SIZE (rust/crates/match_token-0.35.0.crate) = 4570
SHA256 (rust/crates/matchers-0.2.0.crate) = d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9
SIZE (rust/crates/matchers-0.2.0.crate) = 7075
SHA256 (rust/crates/memchr-2.7.5.crate) = 32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0
@@ -297,24 +293,20 @@ SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094
SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536
SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
-SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87
-SIZE (rust/crates/object-0.36.7.crate) = 329938
+SHA256 (rust/crates/object-0.37.3.crate) = ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe
+SIZE (rust/crates/object-0.37.3.crate) = 344032
SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad
SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510
SHA256 (rust/crates/openssl-probe-0.1.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e
SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128
-SHA256 (rust/crates/openssl-src-300.5.2+3.5.2.crate) = d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4
-SIZE (rust/crates/openssl-src-300.5.2+3.5.2.crate) = 10557986
SHA256 (rust/crates/openssl-sys-0.9.109.crate) = 90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571
SIZE (rust/crates/openssl-sys-0.9.109.crate) = 78247
SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d
SIZE (rust/crates/option-ext-0.2.0.crate) = 7345
-SHA256 (rust/crates/ordered-float-2.10.1.crate) = 68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c
-SIZE (rust/crates/ordered-float-2.10.1.crate) = 16029
-SHA256 (rust/crates/owo-colors-4.2.2.crate) = 48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e
-SIZE (rust/crates/owo-colors-4.2.2.crate) = 38070
+SHA256 (rust/crates/owo-colors-4.2.3.crate) = 9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52
+SIZE (rust/crates/owo-colors-4.2.3.crate) = 38315
SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13
SIZE (rust/crates/parking_lot-0.12.4.crate) = 46779
SHA256 (rust/crates/parking_lot_core-0.9.11.crate) = bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5
@@ -329,14 +321,22 @@ SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e
SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235
SHA256 (rust/crates/phf-0.11.3.crate) = 1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078
SIZE (rust/crates/phf-0.11.3.crate) = 23231
+SHA256 (rust/crates/phf-0.13.1.crate) = c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf
+SIZE (rust/crates/phf-0.13.1.crate) = 24786
SHA256 (rust/crates/phf_codegen-0.11.3.crate) = aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a
SIZE (rust/crates/phf_codegen-0.11.3.crate) = 13741
+SHA256 (rust/crates/phf_codegen-0.13.1.crate) = 49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1
+SIZE (rust/crates/phf_codegen-0.13.1.crate) = 14774
SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d
SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431
+SHA256 (rust/crates/phf_generator-0.13.1.crate) = 135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737
+SIZE (rust/crates/phf_generator-0.13.1.crate) = 15952
SHA256 (rust/crates/phf_macros-0.11.3.crate) = f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216
SIZE (rust/crates/phf_macros-0.11.3.crate) = 18436
SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5
SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199
+SHA256 (rust/crates/phf_shared-0.13.1.crate) = e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266
+SIZE (rust/crates/phf_shared-0.13.1.crate) = 16141
SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b
SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504
SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
@@ -381,22 +381,22 @@ SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b66
SIZE (rust/crates/rand_core-0.9.3.crate) = 24543
SHA256 (rust/crates/ratatui-0.29.0.crate) = eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b
SIZE (rust/crates/ratatui-0.29.0.crate) = 543514
-SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa
-SIZE (rust/crates/rayon-1.10.0.crate) = 180155
-SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2
-SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701
+SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f
+SIZE (rust/crates/rayon-1.11.0.crate) = 182470
+SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91
+SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151
SHA256 (rust/crates/redox_syscall-0.5.15.crate) = 7e8af0dde094006011e6a740d4879319439489813bd0bcdc7d821beaeeff48ec
SIZE (rust/crates/redox_syscall-0.5.15.crate) = 29646
SHA256 (rust/crates/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b
SIZE (rust/crates/redox_users-0.5.0.crate) = 15586
-SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
-SIZE (rust/crates/regex-1.11.1.crate) = 254170
-SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
-SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
+SHA256 (rust/crates/regex-1.12.2.crate) = 843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4
+SIZE (rust/crates/regex-1.12.2.crate) = 163843
+SHA256 (rust/crates/regex-automata-0.4.13.crate) = 5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c
+SIZE (rust/crates/regex-automata-0.4.13.crate) = 625250
SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
-SHA256 (rust/crates/reqwest-0.12.22.crate) = cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531
-SIZE (rust/crates/reqwest-0.12.22.crate) = 200283
+SHA256 (rust/crates/reqwest-0.12.24.crate) = 9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f
+SIZE (rust/crates/reqwest-0.12.24.crate) = 159974
SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7
SIZE (rust/crates/ring-0.17.14.crate) = 1502610
SHA256 (rust/crates/rustc-demangle-0.1.25.crate) = 989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f
@@ -421,24 +421,24 @@ SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
-SHA256 (rust/crates/scraper-0.23.1.crate) = 527e65d9d888567588db4c12da1087598d0f6f8b346cc2c5abc91f05fc2dffe2
-SIZE (rust/crates/scraper-0.23.1.crate) = 24157
-SHA256 (rust/crates/selectors-0.26.0.crate) = fd568a4c9bb598e291a08244a5c1f5a8a6650bee243b5b0f8dbb3d9cc1d87fe8
-SIZE (rust/crates/selectors-0.26.0.crate) = 64329
+SHA256 (rust/crates/scraper-0.24.0.crate) = e5f3a24d916e78954af99281a455168d4a9515d65eca99a18da1b813689c4ad9
+SIZE (rust/crates/scraper-0.24.0.crate) = 24103
+SHA256 (rust/crates/selectors-0.31.0.crate) = 5685b6ae43bfcf7d2e7dfcfb5d8e8f61b46442c902531e41a32a9a8bf0ee0fb6
+SIZE (rust/crates/selectors-0.31.0.crate) = 65453
SHA256 (rust/crates/semver-1.0.26.crate) = 56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0
SIZE (rust/crates/semver-1.0.26.crate) = 31303
-SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6
-SIZE (rust/crates/serde-1.0.219.crate) = 78983
-SHA256 (rust/crates/serde-untagged-0.1.7.crate) = 299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e
-SIZE (rust/crates/serde-untagged-0.1.7.crate) = 17371
-SHA256 (rust/crates/serde-value-0.7.0.crate) = f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c
-SIZE (rust/crates/serde-value-0.7.0.crate) = 10249
-SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00
-SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798
-SHA256 (rust/crates/serde_json-1.0.141.crate) = 30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3
-SIZE (rust/crates/serde_json-1.0.141.crate) = 155322
+SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e
+SIZE (rust/crates/serde-1.0.228.crate) = 83652
+SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad
+SIZE (rust/crates/serde_core-1.0.228.crate) = 63111
+SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79
+SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605
+SHA256 (rust/crates/serde_json-1.0.145.crate) = 402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c
+SIZE (rust/crates/serde_json-1.0.145.crate) = 155748
SHA256 (rust/crates/serde_spanned-0.6.9.crate) = bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3
SIZE (rust/crates/serde_spanned-0.6.9.crate) = 10210
+SHA256 (rust/crates/serde_spanned-1.0.3.crate) = e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392
+SIZE (rust/crates/serde_spanned-1.0.3.crate) = 11011
SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd
SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822
SHA256 (rust/crates/serde_yaml-0.9.34+deprecated.crate) = 6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47
@@ -471,10 +471,10 @@ SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8
SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054
SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
-SHA256 (rust/crates/string_cache-0.8.9.crate) = bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f
-SIZE (rust/crates/string_cache-0.8.9.crate) = 17408
-SHA256 (rust/crates/string_cache_codegen-0.5.4.crate) = c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0
-SIZE (rust/crates/string_cache_codegen-0.5.4.crate) = 9406
+SHA256 (rust/crates/string_cache-0.9.0.crate) = a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901
+SIZE (rust/crates/string_cache-0.9.0.crate) = 17402
+SHA256 (rust/crates/string_cache_codegen-0.6.1.crate) = 585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69
+SIZE (rust/crates/string_cache_codegen-0.6.1.crate) = 8968
SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
SIZE (rust/crates/strsim-0.11.1.crate) = 14266
SHA256 (rust/crates/strum-0.24.1.crate) = 063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f
@@ -497,20 +497,16 @@ SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5
SIZE (rust/crates/synstructure-0.13.2.crate) = 18950
SHA256 (rust/crates/temp-env-0.3.6.crate) = 96374855068f47402c3121c6eed88d29cb1de8f3ab27090e273e420bdabcf050
SIZE (rust/crates/temp-env-0.3.6.crate) = 10746
-SHA256 (rust/crates/tempfile-3.20.0.crate) = e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1
-SIZE (rust/crates/tempfile-3.20.0.crate) = 42306
+SHA256 (rust/crates/tempfile-3.23.0.crate) = 2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16
+SIZE (rust/crates/tempfile-3.23.0.crate) = 43063
SHA256 (rust/crates/tendril-0.4.3.crate) = d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0
SIZE (rust/crates/tendril-0.4.3.crate) = 37210
SHA256 (rust/crates/termtree-0.5.1.crate) = 8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683
SIZE (rust/crates/termtree-0.5.1.crate) = 8498
-SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
-SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
-SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708
-SIZE (rust/crates/thiserror-2.0.12.crate) = 28693
-SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
-SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
-SHA256 (rust/crates/thiserror-impl-2.0.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d
-SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141
+SHA256 (rust/crates/thiserror-2.0.17.crate) = f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8
+SIZE (rust/crates/thiserror-2.0.17.crate) = 28857
+SHA256 (rust/crates/thiserror-impl-2.0.17.crate) = 3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913
+SIZE (rust/crates/thiserror-impl-2.0.17.crate) = 21344
SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b
@@ -519,22 +515,30 @@ SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7
SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137
SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
-SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038
-SIZE (rust/crates/tokio-1.47.1.crate) = 829790
-SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8
-SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617
+SHA256 (rust/crates/tokio-1.48.0.crate) = ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408
+SIZE (rust/crates/tokio-1.48.0.crate) = 843434
+SHA256 (rust/crates/tokio-macros-2.6.0.crate) = af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5
+SIZE (rust/crates/tokio-macros-2.6.0.crate) = 16505
SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b
SIZE (rust/crates/tokio-rustls-0.26.2.crate) = 31655
SHA256 (rust/crates/tokio-util-0.7.15.crate) = 66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df
SIZE (rust/crates/tokio-util-0.7.15.crate) = 124255
SHA256 (rust/crates/toml-0.8.23.crate) = dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362
SIZE (rust/crates/toml-0.8.23.crate) = 36050
+SHA256 (rust/crates/toml-0.9.8.crate) = f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8
+SIZE (rust/crates/toml-0.9.8.crate) = 56104
SHA256 (rust/crates/toml_datetime-0.6.11.crate) = 22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c
SIZE (rust/crates/toml_datetime-0.6.11.crate) = 16125
+SHA256 (rust/crates/toml_datetime-0.7.3.crate) = f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533
+SIZE (rust/crates/toml_datetime-0.7.3.crate) = 17827
SHA256 (rust/crates/toml_edit-0.22.27.crate) = 41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a
SIZE (rust/crates/toml_edit-0.22.27.crate) = 78602
+SHA256 (rust/crates/toml_parser-1.0.4.crate) = c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e
+SIZE (rust/crates/toml_parser-1.0.4.crate) = 34978
SHA256 (rust/crates/toml_write-0.1.2.crate) = 5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801
SIZE (rust/crates/toml_write-0.1.2.crate) = 15660
+SHA256 (rust/crates/toml_writer-1.0.4.crate) = df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2
+SIZE (rust/crates/toml_writer-1.0.4.crate) = 17146
SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9
SIZE (rust/crates/tower-0.5.2.crate) = 109417
SHA256 (rust/crates/tower-http-0.6.6.crate) = adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2
@@ -557,8 +561,6 @@ SHA256 (rust/crates/tracing-subscriber-0.3.20.crate) = 2054a14f5307d601f88daf055
SIZE (rust/crates/tracing-subscriber-0.3.20.crate) = 212274
SHA256 (rust/crates/try-lock-0.2.5.crate) = e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b
SIZE (rust/crates/try-lock-0.2.5.crate) = 4314
-SHA256 (rust/crates/typeid-1.0.3.crate) = bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c
-SIZE (rust/crates/typeid-1.0.3.crate) = 9006
SHA256 (rust/crates/uncased-0.9.10.crate) = e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697
SIZE (rust/crates/uncased-0.9.10.crate) = 10872
SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512
@@ -571,8 +573,6 @@ SHA256 (rust/crates/unicode-width-0.1.14.crate) = 7dd6e30e90baa6f72411720665d41d
SIZE (rust/crates/unicode-width-0.1.14.crate) = 271615
SHA256 (rust/crates/unicode-width-0.2.0.crate) = 1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd
SIZE (rust/crates/unicode-width-0.2.0.crate) = 271509
-SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853
-SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744
SHA256 (rust/crates/unsafe-libyaml-0.2.11.crate) = 673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861
SIZE (rust/crates/unsafe-libyaml-0.2.11.crate) = 62101
SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1
@@ -617,6 +617,8 @@ SHA256 (rust/crates/web-sys-0.3.77.crate) = 33b6dd2ef9186f1f2072e409e99cd22a9753
SIZE (rust/crates/web-sys-0.3.77.crate) = 638246
SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb
SIZE (rust/crates/web-time-1.1.0.crate) = 18026
+SHA256 (rust/crates/web_atoms-0.1.4.crate) = 44b72896d90cfd22c495d0ee4960d3dd20ca64180895cb92cd5342ff7482a579
+SIZE (rust/crates/web_atoms-0.1.4.crate) = 27295
SHA256 (rust/crates/webpki-roots-1.0.2.crate) = 7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2
SIZE (rust/crates/webpki-roots-1.0.2.crate) = 255109
SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
@@ -635,6 +637,8 @@ SHA256 (rust/crates/windows-interface-0.59.1.crate) = bd9211b69f8dcdfa817bfd14bf
SIZE (rust/crates/windows-interface-0.59.1.crate) = 11735
SHA256 (rust/crates/windows-link-0.1.3.crate) = 5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a
SIZE (rust/crates/windows-link-0.1.3.crate) = 6154
+SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
+SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
SHA256 (rust/crates/windows-result-0.3.4.crate) = 56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6
SIZE (rust/crates/windows-result-0.3.4.crate) = 13418
SHA256 (rust/crates/windows-strings-0.4.2.crate) = 56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57
@@ -645,6 +649,8 @@ SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b3
SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb
SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479
+SHA256 (rust/crates/windows-sys-0.61.2.crate) = ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc
+SIZE (rust/crates/windows-sys-0.61.2.crate) = 2517186
SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
SHA256 (rust/crates/windows-targets-0.53.2.crate) = c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef
@@ -681,8 +687,8 @@ SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270
SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486
SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400
-SHA256 (rust/crates/winnow-0.7.12.crate) = f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95
-SIZE (rust/crates/winnow-0.7.12.crate) = 174403
+SHA256 (rust/crates/winnow-0.7.13.crate) = 21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf
+SIZE (rust/crates/winnow-0.7.13.crate) = 174454
SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1
SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241
SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb
@@ -709,5 +715,5 @@ SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5f
SIZE (rust/crates/zerovec-0.11.2.crate) = 124500
SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f
SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294
-SHA256 (anistark-feluda-v1.10.1_GH0.tar.gz) = 12f704030d3fa1480bb02430188e1a0df484333d3889fad79bd23659f86f7b94
-SIZE (anistark-feluda-v1.10.1_GH0.tar.gz) = 135815
+SHA256 (anistark-feluda-v1.10.3_GH0.tar.gz) = c78b3511e09ea3681eeaac5bf84a128dfcea594d0af4d4b2ea8cbd6ae3ece74c
+SIZE (anistark-feluda-v1.10.3_GH0.tar.gz) = 183871
diff --git a/textproc/feluda/files/patch-Cargo.toml b/textproc/feluda/files/patch-Cargo.toml
index e6f53de53c38..f1819042125e 100644
--- a/textproc/feluda/files/patch-Cargo.toml
+++ b/textproc/feluda/files/patch-Cargo.toml
@@ -1,11 +1,11 @@
---- Cargo.toml.orig 2025-09-25 11:12:13 UTC
+--- Cargo.toml.orig 2025-11-25 15:29:10 UTC
+++ Cargo.toml
-@@ -45,7 +45,7 @@ chrono = { version = "0.4", features = ["serde"] }
+@@ -45,7 +45,7 @@ chrono = { version = "0.4.42", features = ["serde"] }
tracing = { version = "0.1.40", features = ["attributes"] }
tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }
- chrono = { version = "0.4", features = ["serde"] }
+ chrono = { version = "0.4.42", features = ["serde"] }
-git2 = { version = "0.20.2", features = ["vendored-libgit2", "vendored-openssl"] }
+git2 = { version = "0.20.2", features = ["vendored-libgit2"] }
- tempfile = "3.20.0"
+ tempfile = "3.23.0"
dirs = "6.0.0"
-
+ semver = "1.0.23"
diff --git a/textproc/ibus-typing-booster/Makefile b/textproc/ibus-typing-booster/Makefile
index c5af2068c61d..49b8220c3499 100644
--- a/textproc/ibus-typing-booster/Makefile
+++ b/textproc/ibus-typing-booster/Makefile
@@ -1,5 +1,5 @@
PORTNAME= ibus-typing-booster
-PORTVERSION= 2.28.2
+PORTVERSION= 2.28.6
CATEGORIES= textproc
MAINTAINER= thierry@FreeBSD.org
diff --git a/textproc/ibus-typing-booster/distinfo b/textproc/ibus-typing-booster/distinfo
index 20b95ff84384..0f30114fe2b7 100644
--- a/textproc/ibus-typing-booster/distinfo
+++ b/textproc/ibus-typing-booster/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1762274626
-SHA256 (mike-fabian-ibus-typing-booster-2.28.2_GH0.tar.gz) = 4cee931654c6425aef74a63d4a06133820478c4053a67f799b6ca879f561f745
-SIZE (mike-fabian-ibus-typing-booster-2.28.2_GH0.tar.gz) = 14381631
+TIMESTAMP = 1764176138
+SHA256 (mike-fabian-ibus-typing-booster-2.28.6_GH0.tar.gz) = 831df7454c10d98d84555a5e5b2bcf9b6332454c9f9d18717c7782640bc463ae
+SIZE (mike-fabian-ibus-typing-booster-2.28.6_GH0.tar.gz) = 14406000
diff --git a/textproc/ibus-typing-booster/pkg-plist b/textproc/ibus-typing-booster/pkg-plist
index b2792e1f041b..5bbf0615b95a 100644
--- a/textproc/ibus-typing-booster/pkg-plist
+++ b/textproc/ibus-typing-booster/pkg-plist
@@ -394,7 +394,6 @@ share/applications/ibus-setup-typing-booster.desktop
%%DATADIR%%/engine/__pycache__/tabsqlitedb%%PYTHON_TAG%%.pyc
%%DATADIR%%/engine/__pycache__/tabstatistics%%PYTHON_TAG%%.opt-1.pyc
%%DATADIR%%/engine/__pycache__/tabstatistics%%PYTHON_TAG%%.pyc
-%%DATADIR%%/engine/ollama_pull.py
%%DATADIR%%/engine/emoji_picker.py
%%DATADIR%%/engine/factory.py
%%DATADIR%%/engine/get_clipboard_gtk4.py
@@ -410,9 +409,12 @@ share/applications/ibus-setup-typing-booster.desktop
%%DATADIR%%/engine/itb_version.py
%%DATADIR%%/engine/m17n_translit.py
%%DATADIR%%/engine/main.py
+%%DATADIR%%/engine/ollama_pull.py
%%DATADIR%%/engine/tabsqlitedb.py
%%DATADIR%%/engine/tabstatistics.py
%%DATADIR%%/icons/ibus-typing-booster.svg
+%%DATADIR%%/setup/__pycache__/dictionary_download%%PYTHON_TAG%%.opt-1.pyc
+%%DATADIR%%/setup/__pycache__/dictionary_download%%PYTHON_TAG%%.pyc
%%DATADIR%%/setup/__pycache__/i18n%%PYTHON_TAG%%.opt-1.pyc
%%DATADIR%%/setup/__pycache__/i18n%%PYTHON_TAG%%.pyc
%%DATADIR%%/setup/__pycache__/itb_version%%PYTHON_TAG%%.opt-1.pyc
@@ -423,6 +425,7 @@ share/applications/ibus-setup-typing-booster.desktop
%%DATADIR%%/setup/__pycache__/pkginstall%%PYTHON_TAG%%.pyc
%%DATADIR%%/setup/__pycache__/test_input_purpose%%PYTHON_TAG%%.opt-1.pyc
%%DATADIR%%/setup/__pycache__/test_input_purpose%%PYTHON_TAG%%.pyc
+%%DATADIR%%/setup/dictionary_download.py
%%DATADIR%%/setup/i18n.py
%%DATADIR%%/setup/itb_version.py
%%DATADIR%%/setup/main.py
diff --git a/textproc/jing/Makefile b/textproc/jing/Makefile
index b70e446dd5b9..45b8f75f89af 100644
--- a/textproc/jing/Makefile
+++ b/textproc/jing/Makefile
@@ -3,7 +3,7 @@ PORTVERSION= 20241231
CATEGORIES= textproc java
MASTER_SITES= https://github.com/relaxng/jing-trang/releases/download/V${PORTVERSION}/
-MAINTAINER= yasu@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= RELAX NG validator in Java
WWW= http://www.thaiopensource.com/relaxng/jing.html
diff --git a/textproc/minify/Makefile b/textproc/minify/Makefile
index b88bf866feaa..0b807d1f25f4 100644
--- a/textproc/minify/Makefile
+++ b/textproc/minify/Makefile
@@ -1,5 +1,5 @@
PORTNAME= minify
-PORTVERSION= 2.24.6
+PORTVERSION= 2.24.7
DISTVERSIONPREFIX= v
CATEGORIES= textproc www
diff --git a/textproc/minify/distinfo b/textproc/minify/distinfo
index e9a6415f7da3..3ef42e109f08 100644
--- a/textproc/minify/distinfo
+++ b/textproc/minify/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1762586730
-SHA256 (go/textproc_minify/minify-v2.24.6/v2.24.6.mod) = 0e39e1ce59a68b6f4065d864dfe932775c54d71be2da5d496d82ffca40e8df0a
-SIZE (go/textproc_minify/minify-v2.24.6/v2.24.6.mod) = 465
-SHA256 (go/textproc_minify/minify-v2.24.6/v2.24.6.zip) = 0312dfb072d9487fc5fc5e5f55cd8f760175af42688d5ff36010322d663c779a
-SIZE (go/textproc_minify/minify-v2.24.6/v2.24.6.zip) = 7869783
+TIMESTAMP = 1763853198
+SHA256 (go/textproc_minify/minify-v2.24.7/v2.24.7.mod) = 0e39e1ce59a68b6f4065d864dfe932775c54d71be2da5d496d82ffca40e8df0a
+SIZE (go/textproc_minify/minify-v2.24.7/v2.24.7.mod) = 465
+SHA256 (go/textproc_minify/minify-v2.24.7/v2.24.7.zip) = 2f6202e61806e7c95140ac35e4682ab2ac6a79c4fe55d4ee5ba708ac7ec5b0e3
+SIZE (go/textproc_minify/minify-v2.24.7/v2.24.7.zip) = 7870077
diff --git a/textproc/moar/Makefile b/textproc/moar/Makefile
deleted file mode 100644
index 3d2b10ab689c..000000000000
--- a/textproc/moar/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-PORTNAME= moar
-DISTVERSIONPREFIX= v
-DISTVERSION= 1.31.3
-PORTREVISION= 1
-CATEGORIES= textproc
-
-MAINTAINER= yuri@FreeBSD.org
-COMMENT= Pager designed to just do the right thing without any configuration
-WWW= https://github.com/walles/moar
-
-LICENSE= BSD2CLAUSE
-LICENSE_FILE= ${WRKSRC}/LICENSE
-
-DEPRECATED= Upstream renamed to moor, use textproc/moor instead.
-EXPIRATION_DATE= 2025-11-30
-
-USES= go:1.20,modules
-
-GO_MODULE= github.com/walles/moar
-
-PLIST_FILES= bin/${PORTNAME}
-
-.include <bsd.port.mk>
diff --git a/textproc/moar/distinfo b/textproc/moar/distinfo
deleted file mode 100644
index a59dae689021..000000000000
--- a/textproc/moar/distinfo
+++ /dev/null
@@ -1,5 +0,0 @@
-TIMESTAMP = 1740128685
-SHA256 (go/textproc_moar/moar-v1.31.3/v1.31.3.mod) = 46d8c4603eba4d080499882a8ba488a9e63ae7d1aa73a136a2bd5d9269d7601d
-SIZE (go/textproc_moar/moar-v1.31.3/v1.31.3.mod) = 559
-SHA256 (go/textproc_moar/moar-v1.31.3/v1.31.3.zip) = 553a0c44a175d4cf8e7e235882696625d4b12206141098eccf914084d448f3bd
-SIZE (go/textproc_moar/moar-v1.31.3/v1.31.3.zip) = 2940445
diff --git a/textproc/moar/pkg-descr b/textproc/moar/pkg-descr
deleted file mode 100644
index 0be4ffb2d9ea..000000000000
--- a/textproc/moar/pkg-descr
+++ /dev/null
@@ -1,3 +0,0 @@
-Moar is a pager. It reads and displays UTF-8 encoded text from files or
-pipelines.
-moar is designed to just do the right thing without any configuration.
diff --git a/textproc/moor/Makefile b/textproc/moor/Makefile
index f736586d6f3c..dbae88ee894b 100644
--- a/textproc/moor/Makefile
+++ b/textproc/moor/Makefile
@@ -1,6 +1,6 @@
PORTNAME= moor
DISTVERSIONPREFIX= v
-DISTVERSION= 2.9.1
+DISTVERSION= 2.9.3
CATEGORIES= textproc
MAINTAINER= nxjoseph@protonmail.com
diff --git a/textproc/moor/distinfo b/textproc/moor/distinfo
index da8de25e30ec..af5326a6315e 100644
--- a/textproc/moor/distinfo
+++ b/textproc/moor/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1763231811
-SHA256 (go/textproc_moor/moor-v2.9.1/v2.9.1.mod) = 717203e78c0cec84940aaf4ae2764f45e8f5d326aceb748d54d8bcfb5007f3f8
-SIZE (go/textproc_moor/moor-v2.9.1/v2.9.1.mod) = 561
-SHA256 (go/textproc_moor/moor-v2.9.1/v2.9.1.zip) = f76ca66c11a9e1ef939c6848a5b9c9d2e65e787d0dac859b725ebf718c3b8fe5
-SIZE (go/textproc_moor/moor-v2.9.1/v2.9.1.zip) = 3133857
+TIMESTAMP = 1764531310
+SHA256 (go/textproc_moor/moor-v2.9.3/v2.9.3.mod) = 97e387499046a2307b180e8166c89c8db7c6f44402dcb2b58256edc52a9eefff
+SIZE (go/textproc_moor/moor-v2.9.3/v2.9.3.mod) = 596
+SHA256 (go/textproc_moor/moor-v2.9.3/v2.9.3.zip) = bbc991c14122b6a1b8ea379947bc46898fd91891ef73b8e76d5aefd5a21dfc56
+SIZE (go/textproc_moor/moor-v2.9.3/v2.9.3.zip) = 3138623
diff --git a/textproc/py-furo/Makefile b/textproc/py-furo/Makefile
index d2a548aac864..14d6f7b01c56 100644
--- a/textproc/py-furo/Makefile
+++ b/textproc/py-furo/Makefile
@@ -1,5 +1,5 @@
PORTNAME= furo
-PORTVERSION= 2025.7.19
+PORTVERSION= 2025.9.25
CATEGORIES= textproc python
MASTER_SITES= PYPI \
LOCAL/sunpoet:static
diff --git a/textproc/py-furo/distinfo b/textproc/py-furo/distinfo
index cc6ba35d6392..0159b8294a1e 100644
--- a/textproc/py-furo/distinfo
+++ b/textproc/py-furo/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1753265794
-SHA256 (furo-2025.7.19.tar.gz) = 4164b2cafcf4023a59bb3c594e935e2516f6b9d35e9a5ea83d8f6b43808fe91f
-SIZE (furo-2025.7.19.tar.gz) = 1662054
-SHA256 (furo-2025.7.19-static.tar.gz) = 04b4a6c9c9425ec3aeacd4fd46866f9d91f55a9698095d20163ca80b8c239720
-SIZE (furo-2025.7.19-static.tar.gz) = 183808
+TIMESTAMP = 1763853444
+SHA256 (furo-2025.9.25.tar.gz) = 3eac05582768fdbbc2bdfa1cdbcdd5d33cfc8b4bd2051729ff4e026a1d7e0a98
+SIZE (furo-2025.9.25.tar.gz) = 1662007
+SHA256 (furo-2025.9.25-static.tar.gz) = 0f3225f88c1f00e661aa49bab506c08b9c5202b6e664d850c6cf71f3b8cfa136
+SIZE (furo-2025.9.25-static.tar.gz) = 182784
diff --git a/textproc/py-markdown/Makefile b/textproc/py-markdown/Makefile
index be9af84a823a..d969fea2d73b 100644
--- a/textproc/py-markdown/Makefile
+++ b/textproc/py-markdown/Makefile
@@ -1,5 +1,5 @@
PORTNAME= markdown
-PORTVERSION= 3.9
+PORTVERSION= 3.10
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/textproc/py-markdown/distinfo b/textproc/py-markdown/distinfo
index fcc4898185ab..6fdea9c182ae 100644
--- a/textproc/py-markdown/distinfo
+++ b/textproc/py-markdown/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1757436551
-SHA256 (markdown-3.9.tar.gz) = d2900fe1782bd33bdbbd56859defef70c2e78fc46668f8eb9df3128138f2cb6a
-SIZE (markdown-3.9.tar.gz) = 364585
+TIMESTAMP = 1763853446
+SHA256 (markdown-3.10.tar.gz) = 37062d4f2aa4b2b6b32aefb80faa300f82cc790cb949a35b8caede34f2b68c0e
+SIZE (markdown-3.10.tar.gz) = 364931
diff --git a/textproc/py-markdown/files/patch-pyproject.toml b/textproc/py-markdown/files/patch-pyproject.toml
index 1d0287e8bad0..8cdcf1c9916c 100644
--- a/textproc/py-markdown/files/patch-pyproject.toml
+++ b/textproc/py-markdown/files/patch-pyproject.toml
@@ -1,4 +1,4 @@
---- pyproject.toml.orig 2025-04-09 17:16:35 UTC
+--- pyproject.toml.orig 2025-11-03 19:50:58 UTC
+++ pyproject.toml
@@ -1,10 +1,10 @@
[build-system]
@@ -20,6 +20,6 @@
-license = "BSD-3-Clause"
-license-files = ["LICENSE.md"]
+license = {file = 'LICENSE.md'}
- requires-python = '>=3.9'
- dependencies = [
- "importlib-metadata>=4.4;python_version<'3.10'"
+ requires-python = '>=3.10'
+ keywords = ['markdown', 'markdown-parser', 'python-markdown', 'markdown-to-html']
+ classifiers = [
diff --git a/textproc/py-mkdocs-material/Makefile b/textproc/py-mkdocs-material/Makefile
index 3b1f8db22aae..0a08a6d22de6 100644
--- a/textproc/py-mkdocs-material/Makefile
+++ b/textproc/py-mkdocs-material/Makefile
@@ -1,5 +1,5 @@
PORTNAME= mkdocs-material
-DISTVERSION= 9.6.23
+DISTVERSION= 9.7.0
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -16,17 +16,17 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR
${PYTHON_PKGNAMEPREFIX}hatch-requirements-txt>0:devel/py-hatch-requirements-txt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}hatch-nodejs-version>=0.3.0:devel/py-hatch-nodejs-version@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}trove-classifiers>=2023.10.18:devel/py-trove-classifiers@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=2.10<3:devel/py-babel@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=2.10:devel/py-babel@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}backrefs>=5.7:textproc/py-backrefs@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}colorama>=0.4<1:devel/py-colorama@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1<4:devel/py-Jinja2@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}markdown>=3.2<4:textproc/py-markdown@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}mkdocs>=1.6<2:textproc/py-mkdocs@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}mkdocs-material-extensions>=1.3<2:textproc/py-mkdocs-material-extensions@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}paginate>=0.5<1:textproc/py-paginate@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pygments>=2.16<3:textproc/py-pygments@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pymdown-extensions>=10.2<11:textproc/py-pymdown-extensions@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}requests>=2.26<3:www/py-requests@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}colorama>=0.4:devel/py-colorama@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1:devel/py-Jinja2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}markdown>=3.2:textproc/py-markdown@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mkdocs>=1.6:textproc/py-mkdocs@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mkdocs-material-extensions>=1.3:textproc/py-mkdocs-material-extensions@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}paginate>=0.5:textproc/py-paginate@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pygments>=2.16:textproc/py-pygments@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pymdown-extensions>=10.2:textproc/py-pymdown-extensions@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>=2.26:www/py-requests@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist pep517
diff --git a/textproc/py-mkdocs-material/distinfo b/textproc/py-mkdocs-material/distinfo
index 2bbd24408481..4b64bc4c40f4 100644
--- a/textproc/py-mkdocs-material/distinfo
+++ b/textproc/py-mkdocs-material/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1762158490
-SHA256 (mkdocs_material-9.6.23.tar.gz) = 62ebc9cdbe90e1ae4f4e9b16a6aa5c69b93474c7b9e79ebc0b11b87f9f055e00
-SIZE (mkdocs_material-9.6.23.tar.gz) = 4048130
+TIMESTAMP = 1763823933
+SHA256 (mkdocs_material-9.7.0.tar.gz) = 602b359844e906ee402b7ed9640340cf8a474420d02d8891451733b6b02314ec
+SIZE (mkdocs_material-9.7.0.tar.gz) = 4094546
diff --git a/textproc/py-packageurl-python/Makefile b/textproc/py-packageurl-python/Makefile
index c79d561ab2f0..02493c5fb4db 100644
--- a/textproc/py-packageurl-python/Makefile
+++ b/textproc/py-packageurl-python/Makefile
@@ -1,5 +1,5 @@
PORTNAME= packageurl-python
-DISTVERSION= 0.17.5
+DISTVERSION= 0.17.6
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/textproc/py-packageurl-python/distinfo b/textproc/py-packageurl-python/distinfo
index 55bf060049a8..aea0c0ffea7b 100644
--- a/textproc/py-packageurl-python/distinfo
+++ b/textproc/py-packageurl-python/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1755338837
-SHA256 (packageurl_python-0.17.5.tar.gz) = a7be3f3ba70d705f738ace9bf6124f31920245a49fa69d4b416da7037dd2de61
-SIZE (packageurl_python-0.17.5.tar.gz) = 43832
+TIMESTAMP = 1764342966
+SHA256 (packageurl_python-0.17.6.tar.gz) = 1252ce3a102372ca6f86eb968e16f9014c4ba511c5c37d95a7f023e2ca6e5c25
+SIZE (packageurl_python-0.17.6.tar.gz) = 50618
diff --git a/textproc/py-parsimonious/Makefile b/textproc/py-parsimonious/Makefile
index 553a9af7dccd..dad1f4fd5a6b 100644
--- a/textproc/py-parsimonious/Makefile
+++ b/textproc/py-parsimonious/Makefile
@@ -1,6 +1,5 @@
PORTNAME= parsimonious
-PORTVERSION= 0.10.0
-PORTREVISION= 1
+PORTVERSION= 0.11.0
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +11,8 @@ WWW= https://github.com/erikrose/parsimonious
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=61.2.0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=3.4.3:devel/py-setuptools-scm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}regex>=2022.3.15:textproc/py-regex@${PY_FLAVOR}
diff --git a/textproc/py-parsimonious/distinfo b/textproc/py-parsimonious/distinfo
index fb013c32cd01..7a3f47b7bb33 100644
--- a/textproc/py-parsimonious/distinfo
+++ b/textproc/py-parsimonious/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1664767994
-SHA256 (parsimonious-0.10.0.tar.gz) = 8281600da180ec8ae35427a4ab4f7b82bfec1e3d1e52f80cb60ea82b9512501c
-SIZE (parsimonious-0.10.0.tar.gz) = 52172
+TIMESTAMP = 1763853448
+SHA256 (parsimonious-0.11.0.tar.gz) = e080377d98957beec053580d38ae54fcdf7c470fb78670ba4bf8b5f9d5cad2a9
+SIZE (parsimonious-0.11.0.tar.gz) = 54238
diff --git a/textproc/py-pymdown-extensions/Makefile b/textproc/py-pymdown-extensions/Makefile
index 930fb4a13984..ced7358dfda6 100644
--- a/textproc/py-pymdown-extensions/Makefile
+++ b/textproc/py-pymdown-extensions/Makefile
@@ -1,5 +1,5 @@
PORTNAME= pymdown-extensions
-DISTVERSION= 10.17.1
+DISTVERSION= 10.17.2
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/textproc/py-pymdown-extensions/distinfo b/textproc/py-pymdown-extensions/distinfo
index 1598cb98c2e7..51fe2f12d443 100644
--- a/textproc/py-pymdown-extensions/distinfo
+++ b/textproc/py-pymdown-extensions/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1763823429
-SHA256 (pymdown_extensions-10.17.1.tar.gz) = 60d05fe55e7fb5a1e4740fc575facad20dc6ee3a748e8d3d36ba44142e75ce03
-SIZE (pymdown_extensions-10.17.1.tar.gz) = 845207
+TIMESTAMP = 1764342874
+SHA256 (pymdown_extensions-10.17.2.tar.gz) = 26bb3d7688e651606260c90fb46409fbda70bf9fdc3623c7868643a1aeee4713
+SIZE (pymdown_extensions-10.17.2.tar.gz) = 847344
diff --git a/textproc/py-python-bidi/Makefile b/textproc/py-python-bidi/Makefile
index 00c4b55bd0e3..95b0d4e3c068 100644
--- a/textproc/py-python-bidi/Makefile
+++ b/textproc/py-python-bidi/Makefile
@@ -1,21 +1,30 @@
PORTNAME= python-bidi
-DISTVERSION= 0.4.2
-PORTREVISION= 1
+DISTVERSION= 0.6.7
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${PORTVERSION}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= yuri@FreeBSD.org
-COMMENT= Pure python implementation of the BiDi layout algorithm
+COMMENT= Python Bidi layout wrapping the Rust crate unicode-bidi
WWW= https://github.com/MeirKriheli/python-bidi
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1:devel/py-maturin@${PY_FLAVOR}
-USES= python
-USE_PYTHON= distutils autoplist concurrent
-NO_ARCH= yes
+USES= cargo python
+USE_PYTHON= pep517 autoplist concurrent pytest
+
+CARGO_BUILD= no
+CARGO_INSTALL= no
+CARGO_TEST= no
+CARGO_TEST_ARGS= --no-default-features
+
+MAKE_ENV= ${CARGO_ENV}
+TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+#TEST_WRKSRC= ${WRKSRC}/tests
.include <bsd.port.mk>
diff --git a/textproc/py-python-bidi/Makefile.crates b/textproc/py-python-bidi/Makefile.crates
new file mode 100644
index 000000000000..390ad9c5192e
--- /dev/null
+++ b/textproc/py-python-bidi/Makefile.crates
@@ -0,0 +1,23 @@
+CARGO_CRATES= autocfg-1.3.0 \
+ cc-1.2.39 \
+ find-msvc-tools-0.1.2 \
+ heck-0.5.0 \
+ indoc-2.0.5 \
+ libc-0.2.155 \
+ memoffset-0.9.1 \
+ once_cell-1.21.3 \
+ portable-atomic-1.6.0 \
+ proc-macro2-1.0.86 \
+ pyo3-0.27.1 \
+ pyo3-build-config-0.27.1 \
+ pyo3-ffi-0.27.1 \
+ pyo3-macros-0.27.1 \
+ pyo3-macros-backend-0.27.1 \
+ python3-dll-a-0.2.14 \
+ quote-1.0.36 \
+ shlex-1.3.0 \
+ syn-2.0.70 \
+ target-lexicon-0.13.3 \
+ unicode-bidi-0.3.18 \
+ unicode-ident-1.0.12 \
+ unindent-0.2.3
diff --git a/textproc/py-python-bidi/distinfo b/textproc/py-python-bidi/distinfo
index 6b5c7821292c..daf0afa7bf14 100644
--- a/textproc/py-python-bidi/distinfo
+++ b/textproc/py-python-bidi/distinfo
@@ -1,3 +1,49 @@
-TIMESTAMP = 1562453118
-SHA256 (python-bidi-0.4.2.tar.gz) = 5347f71e82b3e9976dc657f09ded2bfe39ba8d6777ca81a5b2c56c30121c496e
-SIZE (python-bidi-0.4.2.tar.gz) = 40373
+TIMESTAMP = 1764445486
+SHA256 (python_bidi-0.6.7.tar.gz) = c10065081c0e137975de5d9ba2ff2306286dbf5e0c586d4d5aec87c856239b41
+SIZE (python_bidi-0.6.7.tar.gz) = 45503
+SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0
+SIZE (rust/crates/autocfg-1.3.0.crate) = 16524
+SHA256 (rust/crates/cc-1.2.39.crate) = e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f
+SIZE (rust/crates/cc-1.2.39.crate) = 90774
+SHA256 (rust/crates/find-msvc-tools-0.1.2.crate) = 1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959
+SIZE (rust/crates/find-msvc-tools-0.1.2.crate) = 30461
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/indoc-2.0.5.crate) = b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5
+SIZE (rust/crates/indoc-2.0.5.crate) = 14396
+SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c
+SIZE (rust/crates/libc-0.2.155.crate) = 743539
+SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
+SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/portable-atomic-1.6.0.crate) = 7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0
+SIZE (rust/crates/portable-atomic-1.6.0.crate) = 140689
+SHA256 (rust/crates/proc-macro2-1.0.86.crate) = 5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77
+SIZE (rust/crates/proc-macro2-1.0.86.crate) = 48958
+SHA256 (rust/crates/pyo3-0.27.1.crate) = 37a6df7eab65fc7bee654a421404947e10a0f7085b6951bf2ea395f4659fb0cf
+SIZE (rust/crates/pyo3-0.27.1.crate) = 1172212
+SHA256 (rust/crates/pyo3-build-config-0.27.1.crate) = f77d387774f6f6eec64a004eac0ed525aab7fa1966d94b42f743797b3e395afb
+SIZE (rust/crates/pyo3-build-config-0.27.1.crate) = 35565
+SHA256 (rust/crates/pyo3-ffi-0.27.1.crate) = 2dd13844a4242793e02df3e2ec093f540d948299a6a77ea9ce7afd8623f542be
+SIZE (rust/crates/pyo3-ffi-0.27.1.crate) = 78517
+SHA256 (rust/crates/pyo3-macros-0.27.1.crate) = eaf8f9f1108270b90d3676b8679586385430e5c0bb78bb5f043f95499c821a71
+SIZE (rust/crates/pyo3-macros-0.27.1.crate) = 8918
+SHA256 (rust/crates/pyo3-macros-backend-0.27.1.crate) = 70a3b2274450ba5288bc9b8c1b69ff569d1d61189d4bff38f8d22e03d17f932b
+SIZE (rust/crates/pyo3-macros-backend-0.27.1.crate) = 82521
+SHA256 (rust/crates/python3-dll-a-0.2.14.crate) = d381ef313ae70b4da5f95f8a4de773c6aa5cd28f73adec4b4a31df70b66780d8
+SIZE (rust/crates/python3-dll-a-0.2.14.crate) = 103489
+SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
+SIZE (rust/crates/quote-1.0.36.crate) = 28507
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/syn-2.0.70.crate) = 2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16
+SIZE (rust/crates/syn-2.0.70.crate) = 266388
+SHA256 (rust/crates/target-lexicon-0.13.3.crate) = df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c
+SIZE (rust/crates/target-lexicon-0.13.3.crate) = 28498
+SHA256 (rust/crates/unicode-bidi-0.3.18.crate) = 5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5
+SIZE (rust/crates/unicode-bidi-0.3.18.crate) = 58300
+SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
+SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
+SHA256 (rust/crates/unindent-0.2.3.crate) = c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce
+SIZE (rust/crates/unindent-0.2.3.crate) = 7306
diff --git a/textproc/py-python-bidi/pkg-descr b/textproc/py-python-bidi/pkg-descr
index 9c49a1712032..693e7390a3de 100644
--- a/textproc/py-python-bidi/pkg-descr
+++ b/textproc/py-python-bidi/pkg-descr
@@ -1,2 +1,6 @@
-Bi-directional (BiDi) layout implementation in pure python.
-It contains library and command line utility pybidi.
+The python-bidi library provides bi-directional (BiDi) layout algorithms
+for Python. It offers a wrapper for the unicode-bidi Rust crate.
+
+This library is used to correctly display text that mixes left-to-right
+and right-to-left scripts. It also includes a command-line utility called
+`pybidi` for running the display algorithm.
diff --git a/textproc/py-sphinxcontrib-spelling/Makefile b/textproc/py-sphinxcontrib-spelling/Makefile
index 945fea5d9098..4ecdb37bf9b6 100644
--- a/textproc/py-sphinxcontrib-spelling/Makefile
+++ b/textproc/py-sphinxcontrib-spelling/Makefile
@@ -1,5 +1,5 @@
PORTNAME= sphinxcontrib-spelling
-DISTVERSION= 8.0.1
+DISTVERSION= 8.0.2
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,9 +12,8 @@ WWW= https://github.com/sphinx-contrib/spelling
LICENSE= BSD2CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PY_SETUPTOOLS} \
- ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatch-vcs>=0:devel/py-hatch-vcs@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}enchant>0:textproc/py-enchant@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sphinx>=0:textproc/py-sphinx@${PY_FLAVOR}
diff --git a/textproc/py-sphinxcontrib-spelling/distinfo b/textproc/py-sphinxcontrib-spelling/distinfo
index fd1faee33927..05d86e498886 100644
--- a/textproc/py-sphinxcontrib-spelling/distinfo
+++ b/textproc/py-sphinxcontrib-spelling/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1734633907
-SHA256 (sphinxcontrib_spelling-8.0.1.tar.gz) = f0447b6413c78b613b916c7891e36be85a105d1919c99784c53dfea2d8f8040f
-SIZE (sphinxcontrib_spelling-8.0.1.tar.gz) = 36005
+TIMESTAMP = 1764452729
+SHA256 (sphinxcontrib_spelling-8.0.2.tar.gz) = afbc7b8e93721ab88f12bdd39d848b92017b3763b9ed6226b4b0e54b06664fea
+SIZE (sphinxcontrib_spelling-8.0.2.tar.gz) = 30955
diff --git a/textproc/py-textual/Makefile b/textproc/py-textual/Makefile
index ea321025d3ed..5d8f79c875b4 100644
--- a/textproc/py-textual/Makefile
+++ b/textproc/py-textual/Makefile
@@ -1,5 +1,5 @@
PORTNAME= textual
-PORTVERSION= 6.5.0
+PORTVERSION= 6.6.0
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/textproc/py-textual/distinfo b/textproc/py-textual/distinfo
index 7bc19b73f63c..d57b32d81df9 100644
--- a/textproc/py-textual/distinfo
+++ b/textproc/py-textual/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1762586890
-SHA256 (textual-6.5.0.tar.gz) = e5f152cdd47db48a635d23b839721bae4d0e8b6d855e3fede7285218289294e3
-SIZE (textual-6.5.0.tar.gz) = 1574116
+TIMESTAMP = 1763853450
+SHA256 (textual-6.6.0.tar.gz) = 53345166d6b0f9fd028ed0217d73b8f47c3a26679a18ba3b67616dcacb470eec
+SIZE (textual-6.6.0.tar.gz) = 1579327
diff --git a/textproc/py-tinycss2/Makefile b/textproc/py-tinycss2/Makefile
index 4b6ca5c68562..5a0ae6a25b05 100644
--- a/textproc/py-tinycss2/Makefile
+++ b/textproc/py-tinycss2/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tinycss2
-PORTVERSION= 1.4.0
+PORTVERSION= 1.5.0
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/textproc/py-tinycss2/distinfo b/textproc/py-tinycss2/distinfo
index 81bfa535d761..65970000d4fd 100644
--- a/textproc/py-tinycss2/distinfo
+++ b/textproc/py-tinycss2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1729994352
-SHA256 (tinycss2-1.4.0.tar.gz) = 10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7
-SIZE (tinycss2-1.4.0.tar.gz) = 87085
+TIMESTAMP = 1763853452
+SHA256 (tinycss2-1.5.0.tar.gz) = 6a7be7a654f38a2a55b61d2d97b1f65a7eb40d1cb4057ac37145f675f16efdf9
+SIZE (tinycss2-1.5.0.tar.gz) = 35197
diff --git a/textproc/py-zensical/Makefile b/textproc/py-zensical/Makefile
new file mode 100644
index 000000000000..923538e12018
--- /dev/null
+++ b/textproc/py-zensical/Makefile
@@ -0,0 +1,31 @@
+PORTNAME= zensical
+DISTVERSION= 0.0.10
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+# Workaround to use both the PyPI tarball and the cargo crates.
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= kai@FreeBSD.org
+COMMENT= Modern static site generator
+WWW= https://zensical.org
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1.8<2.0:devel/py-maturin@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}click>=8.1.7:devel/py-click@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}deepmerge>=1.1.1:devel/py-deepmerge@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}markdown>=3.7:textproc/py-markdown@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pygments>=2.16:textproc/py-pygments@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pymdown-extensions>=10.15:textproc/py-pymdown-extensions@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0.2:devel/py-pyyaml@${PY_FLAVOR} \
+ ${PY_TOMLI}
+
+USES= cargo python
+USE_PYTHON= autoplist concurrent pep517
+
+CARGO_BUILD= no
+CARGO_INSTALL= no
+
+.include <bsd.port.mk>
diff --git a/textproc/py-zensical/Makefile.crates b/textproc/py-zensical/Makefile.crates
new file mode 100644
index 000000000000..c79c46d7a2cc
--- /dev/null
+++ b/textproc/py-zensical/Makefile.crates
@@ -0,0 +1,175 @@
+CARGO_CRATES= ahash-0.8.12 \
+ aho-corasick-1.1.3 \
+ autocfg-1.5.0 \
+ base64-0.22.1 \
+ bitflags-1.3.2 \
+ bitflags-2.10.0 \
+ borrow-or-share-0.2.3 \
+ bstr-1.12.0 \
+ bumpalo-3.19.0 \
+ bytes-1.10.1 \
+ cesu8-1.1.0 \
+ cfg-if-1.0.4 \
+ combine-4.6.7 \
+ core-foundation-0.10.1 \
+ core-foundation-sys-0.8.7 \
+ crossbeam-0.8.4 \
+ crossbeam-channel-0.5.15 \
+ crossbeam-deque-0.8.6 \
+ crossbeam-epoch-0.9.18 \
+ crossbeam-queue-0.3.12 \
+ crossbeam-utils-0.8.21 \
+ displaydoc-0.2.5 \
+ file-id-0.2.3 \
+ fluent-uri-0.3.2 \
+ form_urlencoded-1.2.2 \
+ fsevent-sys-4.1.0 \
+ getrandom-0.3.4 \
+ globset-0.4.18 \
+ heck-0.5.0 \
+ httparse-1.10.1 \
+ httpdate-1.0.3 \
+ icu_collections-2.1.1 \
+ icu_locale_core-2.1.1 \
+ icu_normalizer-2.1.1 \
+ icu_normalizer_data-2.1.1 \
+ icu_properties-2.1.1 \
+ icu_properties_data-2.1.1 \
+ icu_provider-2.1.1 \
+ idna-1.1.0 \
+ idna_adapter-1.2.1 \
+ indoc-2.0.7 \
+ inotify-0.11.0 \
+ inotify-sys-0.1.5 \
+ itoa-1.0.15 \
+ jni-0.21.1 \
+ jni-sys-0.3.0 \
+ js-sys-0.3.82 \
+ kqueue-1.1.1 \
+ kqueue-sys-1.0.4 \
+ lazy_static-1.5.0 \
+ libc-0.2.177 \
+ litemap-0.8.1 \
+ log-0.4.27 \
+ matchit-0.9.0 \
+ memchr-2.7.4 \
+ memo-map-0.3.3 \
+ memoffset-0.9.1 \
+ minijinja-2.12.0 \
+ minijinja-contrib-2.12.0 \
+ mio-1.1.0 \
+ ndk-context-0.1.1 \
+ notify-8.2.0 \
+ notify-types-2.0.0 \
+ nu-ansi-term-0.50.3 \
+ objc2-0.6.3 \
+ objc2-encode-4.1.0 \
+ objc2-foundation-0.3.2 \
+ once_cell-1.21.3 \
+ percent-encoding-2.3.2 \
+ pin-project-lite-0.2.16 \
+ portable-atomic-1.11.1 \
+ potential_utf-0.1.4 \
+ ppv-lite86-0.2.21 \
+ proc-macro2-1.0.95 \
+ pyo3-0.27.1 \
+ pyo3-build-config-0.27.1 \
+ pyo3-ffi-0.27.1 \
+ pyo3-macros-0.27.1 \
+ pyo3-macros-backend-0.27.1 \
+ quote-1.0.40 \
+ r-efi-5.3.0 \
+ rand-0.9.2 \
+ rand_chacha-0.9.0 \
+ rand_core-0.9.3 \
+ ref-cast-1.0.25 \
+ ref-cast-impl-1.0.25 \
+ regex-automata-0.4.9 \
+ regex-syntax-0.8.5 \
+ rustversion-1.0.22 \
+ ryu-1.0.20 \
+ same-file-1.0.6 \
+ self_cell-1.2.1 \
+ serde-1.0.228 \
+ serde_core-1.0.228 \
+ serde_derive-1.0.228 \
+ serde_json-1.0.145 \
+ sha1_smol-1.0.1 \
+ sharded-slab-0.1.7 \
+ slab-0.4.11 \
+ smallvec-1.15.1 \
+ stable_deref_trait-1.2.1 \
+ syn-2.0.101 \
+ synstructure-0.13.2 \
+ target-lexicon-0.13.3 \
+ thiserror-1.0.69 \
+ thiserror-2.0.17 \
+ thiserror-impl-1.0.69 \
+ thiserror-impl-2.0.17 \
+ thread_local-1.1.9 \
+ tinystr-0.8.2 \
+ tracing-0.1.41 \
+ tracing-attributes-0.1.30 \
+ tracing-chrome-0.7.2 \
+ tracing-core-0.1.34 \
+ tracing-log-0.2.0 \
+ tracing-subscriber-0.3.20 \
+ tungstenite-0.28.0 \
+ unicode-ident-1.0.18 \
+ unindent-0.2.4 \
+ url-2.5.7 \
+ utf-8-0.7.6 \
+ utf8_iter-1.0.4 \
+ valuable-0.1.1 \
+ version_check-0.9.5 \
+ walkdir-2.5.0 \
+ wasi-0.11.1+wasi-snapshot-preview1 \
+ wasip2-1.0.1+wasi-0.2.4 \
+ wasm-bindgen-0.2.105 \
+ wasm-bindgen-macro-0.2.105 \
+ wasm-bindgen-macro-support-0.2.105 \
+ wasm-bindgen-shared-0.2.105 \
+ web-sys-0.3.82 \
+ webbrowser-1.0.6 \
+ winapi-util-0.1.11 \
+ windows-link-0.2.1 \
+ windows-sys-0.45.0 \
+ windows-sys-0.60.2 \
+ windows-sys-0.61.2 \
+ windows-targets-0.42.2 \
+ windows-targets-0.53.5 \
+ windows_aarch64_gnullvm-0.42.2 \
+ windows_aarch64_gnullvm-0.53.1 \
+ windows_aarch64_msvc-0.42.2 \
+ windows_aarch64_msvc-0.53.1 \
+ windows_i686_gnu-0.42.2 \
+ windows_i686_gnu-0.53.1 \
+ windows_i686_gnullvm-0.53.1 \
+ windows_i686_msvc-0.42.2 \
+ windows_i686_msvc-0.53.1 \
+ windows_x86_64_gnu-0.42.2 \
+ windows_x86_64_gnu-0.53.1 \
+ windows_x86_64_gnullvm-0.42.2 \
+ windows_x86_64_gnullvm-0.53.1 \
+ windows_x86_64_msvc-0.42.2 \
+ windows_x86_64_msvc-0.53.1 \
+ wit-bindgen-0.46.0 \
+ writeable-0.6.2 \
+ yoke-0.8.1 \
+ yoke-derive-0.8.1 \
+ zerocopy-0.8.27 \
+ zerocopy-derive-0.8.27 \
+ zerofrom-0.1.6 \
+ zerofrom-derive-0.1.6 \
+ zerotrie-0.2.3 \
+ zerovec-0.11.5 \
+ zerovec-derive-0.11.2 \
+ zrx-0.0.3 \
+ zrx-diagnostic-0.0.1 \
+ zrx-executor-0.0.1 \
+ zrx-graph-0.0.1 \
+ zrx-id-0.0.3 \
+ zrx-path-0.0.1 \
+ zrx-scheduler-0.0.1 \
+ zrx-store-0.0.1 \
+ zrx-stream-0.0.1
diff --git a/textproc/py-zensical/distinfo b/textproc/py-zensical/distinfo
new file mode 100644
index 000000000000..8ed04ee240ef
--- /dev/null
+++ b/textproc/py-zensical/distinfo
@@ -0,0 +1,353 @@
+TIMESTAMP = 1764161305
+SHA256 (zensical-0.0.10.tar.gz) = 9a9b60a3757fb0f4cf2ec33844bf29141f02223e99440698cfb6911bb1f49956
+SIZE (zensical-0.0.10.tar.gz) = 3805670
+SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
+SIZE (rust/crates/ahash-0.8.12.crate) = 43413
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
+SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
+SIZE (rust/crates/base64-0.22.1.crate) = 81597
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bitflags-2.10.0.crate) = 812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3
+SIZE (rust/crates/bitflags-2.10.0.crate) = 48427
+SHA256 (rust/crates/borrow-or-share-0.2.3.crate) = 8fa326467c5d528c03e479661320269e7716d6b7d5d49bafd30890ce0c725696
+SIZE (rust/crates/borrow-or-share-0.2.3.crate) = 5162
+SHA256 (rust/crates/bstr-1.12.0.crate) = 234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4
+SIZE (rust/crates/bstr-1.12.0.crate) = 351557
+SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43
+SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414
+SHA256 (rust/crates/bytes-1.10.1.crate) = d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a
+SIZE (rust/crates/bytes-1.10.1.crate) = 76779
+SHA256 (rust/crates/cesu8-1.1.0.crate) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c
+SIZE (rust/crates/cesu8-1.1.0.crate) = 10555
+SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801
+SIZE (rust/crates/cfg-if-1.0.4.crate) = 9360
+SHA256 (rust/crates/combine-4.6.7.crate) = ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd
+SIZE (rust/crates/combine-4.6.7.crate) = 134808
+SHA256 (rust/crates/core-foundation-0.10.1.crate) = b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6
+SIZE (rust/crates/core-foundation-0.10.1.crate) = 28886
+SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
+SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
+SHA256 (rust/crates/crossbeam-0.8.4.crate) = 1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8
+SIZE (rust/crates/crossbeam-0.8.4.crate) = 10500
+SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2
+SIZE (rust/crates/crossbeam-channel-0.5.15.crate) = 92716
+SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
+SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471
+SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
+SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
+SHA256 (rust/crates/crossbeam-queue-0.3.12.crate) = 0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115
+SIZE (rust/crates/crossbeam-queue-0.3.12.crate) = 16270
+SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
+SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
+SHA256 (rust/crates/displaydoc-0.2.5.crate) = 97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0
+SIZE (rust/crates/displaydoc-0.2.5.crate) = 24219
+SHA256 (rust/crates/file-id-0.2.3.crate) = e1fc6a637b6dc58414714eddd9170ff187ecb0933d4c7024d1abbd23a3cc26e9
+SIZE (rust/crates/file-id-0.2.3.crate) = 10148
+SHA256 (rust/crates/fluent-uri-0.3.2.crate) = 1918b65d96df47d3591bed19c5cca17e3fa5d0707318e4b5ef2eae01764df7e5
+SIZE (rust/crates/fluent-uri-0.3.2.crate) = 43604
+SHA256 (rust/crates/form_urlencoded-1.2.2.crate) = cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf
+SIZE (rust/crates/form_urlencoded-1.2.2.crate) = 9347
+SHA256 (rust/crates/fsevent-sys-4.1.0.crate) = 76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2
+SIZE (rust/crates/fsevent-sys-4.1.0.crate) = 4620
+SHA256 (rust/crates/getrandom-0.3.4.crate) = 899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd
+SIZE (rust/crates/getrandom-0.3.4.crate) = 50932
+SHA256 (rust/crates/globset-0.4.18.crate) = 52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3
+SIZE (rust/crates/globset-0.4.18.crate) = 28970
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/httparse-1.10.1.crate) = 6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87
+SIZE (rust/crates/httparse-1.10.1.crate) = 45190
+SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9
+SIZE (rust/crates/httpdate-1.0.3.crate) = 10639
+SHA256 (rust/crates/icu_collections-2.1.1.crate) = 4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43
+SIZE (rust/crates/icu_collections-2.1.1.crate) = 87233
+SHA256 (rust/crates/icu_locale_core-2.1.1.crate) = edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6
+SIZE (rust/crates/icu_locale_core-2.1.1.crate) = 70876
+SHA256 (rust/crates/icu_normalizer-2.1.1.crate) = 5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599
+SIZE (rust/crates/icu_normalizer-2.1.1.crate) = 67132
+SHA256 (rust/crates/icu_normalizer_data-2.1.1.crate) = 7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a
+SIZE (rust/crates/icu_normalizer_data-2.1.1.crate) = 68649
+SHA256 (rust/crates/icu_properties-2.1.1.crate) = e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99
+SIZE (rust/crates/icu_properties-2.1.1.crate) = 59036
+SHA256 (rust/crates/icu_properties_data-2.1.1.crate) = 02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899
+SIZE (rust/crates/icu_properties_data-2.1.1.crate) = 162431
+SHA256 (rust/crates/icu_provider-2.1.1.crate) = 85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614
+SIZE (rust/crates/icu_provider-2.1.1.crate) = 50907
+SHA256 (rust/crates/idna-1.1.0.crate) = 3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de
+SIZE (rust/crates/idna-1.1.0.crate) = 148747
+SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344
+SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389
+SHA256 (rust/crates/indoc-2.0.7.crate) = 79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706
+SIZE (rust/crates/indoc-2.0.7.crate) = 17184
+SHA256 (rust/crates/inotify-0.11.0.crate) = f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3
+SIZE (rust/crates/inotify-0.11.0.crate) = 26241
+SHA256 (rust/crates/inotify-sys-0.1.5.crate) = e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb
+SIZE (rust/crates/inotify-sys-0.1.5.crate) = 6965
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/jni-0.21.1.crate) = 1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97
+SIZE (rust/crates/jni-0.21.1.crate) = 105028
+SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130
+SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232
+SHA256 (rust/crates/js-sys-0.3.82.crate) = b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65
+SIZE (rust/crates/js-sys-0.3.82.crate) = 56436
+SHA256 (rust/crates/kqueue-1.1.1.crate) = eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a
+SIZE (rust/crates/kqueue-1.1.1.crate) = 21504
+SHA256 (rust/crates/kqueue-sys-1.0.4.crate) = ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b
+SIZE (rust/crates/kqueue-sys-1.0.4.crate) = 7160
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/libc-0.2.177.crate) = 2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976
+SIZE (rust/crates/libc-0.2.177.crate) = 792045
+SHA256 (rust/crates/litemap-0.8.1.crate) = 6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77
+SIZE (rust/crates/litemap-0.8.1.crate) = 34172
+SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94
+SIZE (rust/crates/log-0.4.27.crate) = 48120
+SHA256 (rust/crates/matchit-0.9.0.crate) = 9ea5f97102eb9e54ab99fb70bb175589073f554bdadfb74d9bd656482ea73e2a
+SIZE (rust/crates/matchit-0.9.0.crate) = 43831
+SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
+SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/memo-map-0.3.3.crate) = 38d1115007560874e373613744c6fba374c17688327a71c1476d1a5954cc857b
+SIZE (rust/crates/memo-map-0.3.3.crate) = 10003
+SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
+SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
+SHA256 (rust/crates/minijinja-2.12.0.crate) = a9f264d75233323f4b7d2f03aefe8a990690cdebfbfe26ea86bcbaec5e9ac990
+SIZE (rust/crates/minijinja-2.12.0.crate) = 171024
+SHA256 (rust/crates/minijinja-contrib-2.12.0.crate) = 182ba1438db4679ddfa03792c183bdc2b9ce26b58e7d41a749e59b06497cf136
+SIZE (rust/crates/minijinja-contrib-2.12.0.crate) = 43688
+SHA256 (rust/crates/mio-1.1.0.crate) = 69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873
+SIZE (rust/crates/mio-1.1.0.crate) = 105232
+SHA256 (rust/crates/ndk-context-0.1.1.crate) = 27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b
+SIZE (rust/crates/ndk-context-0.1.1.crate) = 2205
+SHA256 (rust/crates/notify-8.2.0.crate) = 4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3
+SIZE (rust/crates/notify-8.2.0.crate) = 39067
+SHA256 (rust/crates/notify-types-2.0.0.crate) = 5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d
+SIZE (rust/crates/notify-types-2.0.0.crate) = 14495
+SHA256 (rust/crates/nu-ansi-term-0.50.3.crate) = 7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5
+SIZE (rust/crates/nu-ansi-term-0.50.3.crate) = 29597
+SHA256 (rust/crates/objc2-0.6.3.crate) = b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05
+SIZE (rust/crates/objc2-0.6.3.crate) = 272490
+SHA256 (rust/crates/objc2-encode-4.1.0.crate) = ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33
+SIZE (rust/crates/objc2-encode-4.1.0.crate) = 21004
+SHA256 (rust/crates/objc2-foundation-0.3.2.crate) = e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272
+SIZE (rust/crates/objc2-foundation-0.3.2.crate) = 345384
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/percent-encoding-2.3.2.crate) = 9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220
+SIZE (rust/crates/percent-encoding-2.3.2.crate) = 11583
+SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b
+SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504
+SHA256 (rust/crates/portable-atomic-1.11.1.crate) = f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483
+SIZE (rust/crates/portable-atomic-1.11.1.crate) = 185506
+SHA256 (rust/crates/potential_utf-0.1.4.crate) = b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77
+SIZE (rust/crates/potential_utf-0.1.4.crate) = 9514
+SHA256 (rust/crates/ppv-lite86-0.2.21.crate) = 85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9
+SIZE (rust/crates/ppv-lite86-0.2.21.crate) = 22522
+SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778
+SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820
+SHA256 (rust/crates/pyo3-0.27.1.crate) = 37a6df7eab65fc7bee654a421404947e10a0f7085b6951bf2ea395f4659fb0cf
+SIZE (rust/crates/pyo3-0.27.1.crate) = 1172212
+SHA256 (rust/crates/pyo3-build-config-0.27.1.crate) = f77d387774f6f6eec64a004eac0ed525aab7fa1966d94b42f743797b3e395afb
+SIZE (rust/crates/pyo3-build-config-0.27.1.crate) = 35565
+SHA256 (rust/crates/pyo3-ffi-0.27.1.crate) = 2dd13844a4242793e02df3e2ec093f540d948299a6a77ea9ce7afd8623f542be
+SIZE (rust/crates/pyo3-ffi-0.27.1.crate) = 78517
+SHA256 (rust/crates/pyo3-macros-0.27.1.crate) = eaf8f9f1108270b90d3676b8679586385430e5c0bb78bb5f043f95499c821a71
+SIZE (rust/crates/pyo3-macros-0.27.1.crate) = 8918
+SHA256 (rust/crates/pyo3-macros-backend-0.27.1.crate) = 70a3b2274450ba5288bc9b8c1b69ff569d1d61189d4bff38f8d22e03d17f932b
+SIZE (rust/crates/pyo3-macros-backend-0.27.1.crate) = 82521
+SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
+SIZE (rust/crates/quote-1.0.40.crate) = 31063
+SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f
+SIZE (rust/crates/r-efi-5.3.0.crate) = 64532
+SHA256 (rust/crates/rand-0.9.2.crate) = 6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1
+SIZE (rust/crates/rand-0.9.2.crate) = 99930
+SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb
+SIZE (rust/crates/rand_chacha-0.9.0.crate) = 18258
+SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38
+SIZE (rust/crates/rand_core-0.9.3.crate) = 24543
+SHA256 (rust/crates/ref-cast-1.0.25.crate) = f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d
+SIZE (rust/crates/ref-cast-1.0.25.crate) = 15192
+SHA256 (rust/crates/ref-cast-impl-1.0.25.crate) = b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da
+SIZE (rust/crates/ref-cast-impl-1.0.25.crate) = 10167
+SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
+SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
+SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
+SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/rustversion-1.0.22.crate) = b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d
+SIZE (rust/crates/rustversion-1.0.22.crate) = 21096
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/self_cell-1.2.1.crate) = 16c2f82143577edb4921b71ede051dac62ca3c16084e918bf7b40c96ae10eb33
+SIZE (rust/crates/self_cell-1.2.1.crate) = 13542
+SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e
+SIZE (rust/crates/serde-1.0.228.crate) = 83652
+SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad
+SIZE (rust/crates/serde_core-1.0.228.crate) = 63111
+SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79
+SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605
+SHA256 (rust/crates/serde_json-1.0.145.crate) = 402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c
+SIZE (rust/crates/serde_json-1.0.145.crate) = 155748
+SHA256 (rust/crates/sha1_smol-1.0.1.crate) = bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d
+SIZE (rust/crates/sha1_smol-1.0.1.crate) = 9809
+SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6
+SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227
+SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589
+SIZE (rust/crates/slab-0.4.11.crate) = 18549
+SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
+SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
+SHA256 (rust/crates/stable_deref_trait-1.2.1.crate) = 6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596
+SIZE (rust/crates/stable_deref_trait-1.2.1.crate) = 8186
+SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf
+SIZE (rust/crates/syn-2.0.101.crate) = 299250
+SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2
+SIZE (rust/crates/synstructure-0.13.2.crate) = 18950
+SHA256 (rust/crates/target-lexicon-0.13.3.crate) = df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c
+SIZE (rust/crates/target-lexicon-0.13.3.crate) = 28498
+SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
+SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
+SHA256 (rust/crates/thiserror-2.0.17.crate) = f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8
+SIZE (rust/crates/thiserror-2.0.17.crate) = 28857
+SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
+SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
+SHA256 (rust/crates/thiserror-impl-2.0.17.crate) = 3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913
+SIZE (rust/crates/thiserror-impl-2.0.17.crate) = 21344
+SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
+SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
+SHA256 (rust/crates/tinystr-0.8.2.crate) = 42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869
+SIZE (rust/crates/tinystr-0.8.2.crate) = 23942
+SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0
+SIZE (rust/crates/tracing-0.1.41.crate) = 82448
+SHA256 (rust/crates/tracing-attributes-0.1.30.crate) = 81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903
+SIZE (rust/crates/tracing-attributes-0.1.30.crate) = 39142
+SHA256 (rust/crates/tracing-chrome-0.7.2.crate) = bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724
+SIZE (rust/crates/tracing-chrome-0.7.2.crate) = 14030
+SHA256 (rust/crates/tracing-core-0.1.34.crate) = b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678
+SIZE (rust/crates/tracing-core-0.1.34.crate) = 63760
+SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3
+SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561
+SHA256 (rust/crates/tracing-subscriber-0.3.20.crate) = 2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5
+SIZE (rust/crates/tracing-subscriber-0.3.20.crate) = 212274
+SHA256 (rust/crates/tungstenite-0.28.0.crate) = 8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442
+SIZE (rust/crates/tungstenite-0.28.0.crate) = 67629
+SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512
+SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743
+SHA256 (rust/crates/unindent-0.2.4.crate) = 7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3
+SIZE (rust/crates/unindent-0.2.4.crate) = 7422
+SHA256 (rust/crates/url-2.5.7.crate) = 08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b
+SIZE (rust/crates/url-2.5.7.crate) = 87907
+SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9
+SIZE (rust/crates/utf-8-0.7.6.crate) = 10422
+SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be
+SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437
+SHA256 (rust/crates/valuable-0.1.1.crate) = ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65
+SIZE (rust/crates/valuable-0.1.1.crate) = 28679
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
+SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
+SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b
+SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477
+SHA256 (rust/crates/wasip2-1.0.1+wasi-0.2.4.crate) = 0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7
+SIZE (rust/crates/wasip2-1.0.1+wasi-0.2.4.crate) = 132087
+SHA256 (rust/crates/wasm-bindgen-0.2.105.crate) = da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60
+SIZE (rust/crates/wasm-bindgen-0.2.105.crate) = 48215
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.105.crate) = 04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2
+SIZE (rust/crates/wasm-bindgen-macro-0.2.105.crate) = 9264
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.105.crate) = 420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.105.crate) = 49633
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.105.crate) = 76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76
+SIZE (rust/crates/wasm-bindgen-shared-0.2.105.crate) = 9269
+SHA256 (rust/crates/web-sys-0.3.82.crate) = 3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1
+SIZE (rust/crates/web-sys-0.3.82.crate) = 644272
+SHA256 (rust/crates/webbrowser-1.0.6.crate) = 00f1243ef785213e3a32fa0396093424a3a6ea566f9948497e5a2309261a4c97
+SIZE (rust/crates/webbrowser-1.0.6.crate) = 57471
+SHA256 (rust/crates/winapi-util-0.1.11.crate) = c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22
+SIZE (rust/crates/winapi-util-0.1.11.crate) = 13368
+SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
+SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
+SHA256 (rust/crates/windows-sys-0.45.0.crate) = 75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0
+SIZE (rust/crates/windows-sys-0.45.0.crate) = 2568659
+SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb
+SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479
+SHA256 (rust/crates/windows-sys-0.61.2.crate) = ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc
+SIZE (rust/crates/windows-sys-0.61.2.crate) = 2517186
+SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071
+SIZE (rust/crates/windows-targets-0.42.2.crate) = 5492
+SHA256 (rust/crates/windows-targets-0.53.5.crate) = 4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3
+SIZE (rust/crates/windows-targets-0.53.5.crate) = 7126
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8
+SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.1.crate) = a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53
+SIZE (rust/crates/windows_aarch64_gnullvm-0.53.1.crate) = 787748
+SHA256 (rust/crates/windows_aarch64_msvc-0.42.2.crate) = e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43
+SIZE (rust/crates/windows_aarch64_msvc-0.42.2.crate) = 666981
+SHA256 (rust/crates/windows_aarch64_msvc-0.53.1.crate) = b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006
+SIZE (rust/crates/windows_aarch64_msvc-0.53.1.crate) = 838009
+SHA256 (rust/crates/windows_i686_gnu-0.42.2.crate) = c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f
+SIZE (rust/crates/windows_i686_gnu-0.42.2.crate) = 736236
+SHA256 (rust/crates/windows_i686_gnu-0.53.1.crate) = 960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3
+SIZE (rust/crates/windows_i686_gnu-0.53.1.crate) = 939775
+SHA256 (rust/crates/windows_i686_gnullvm-0.53.1.crate) = fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c
+SIZE (rust/crates/windows_i686_gnullvm-0.53.1.crate) = 857396
+SHA256 (rust/crates/windows_i686_msvc-0.42.2.crate) = 44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060
+SIZE (rust/crates/windows_i686_msvc-0.42.2.crate) = 724951
+SHA256 (rust/crates/windows_i686_msvc-0.53.1.crate) = 1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2
+SIZE (rust/crates/windows_i686_msvc-0.53.1.crate) = 907688
+SHA256 (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36
+SIZE (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 699373
+SHA256 (rust/crates/windows_x86_64_gnu-0.53.1.crate) = 9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499
+SIZE (rust/crates/windows_x86_64_gnu-0.53.1.crate) = 903712
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3
+SIZE (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 364068
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.1.crate) = 0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1
+SIZE (rust/crates/windows_x86_64_gnullvm-0.53.1.crate) = 787739
+SHA256 (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0
+SIZE (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 666936
+SHA256 (rust/crates/windows_x86_64_msvc-0.53.1.crate) = d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650
+SIZE (rust/crates/windows_x86_64_msvc-0.53.1.crate) = 837950
+SHA256 (rust/crates/wit-bindgen-0.46.0.crate) = f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59
+SIZE (rust/crates/wit-bindgen-0.46.0.crate) = 60508
+SHA256 (rust/crates/writeable-0.6.2.crate) = 9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9
+SIZE (rust/crates/writeable-0.6.2.crate) = 25181
+SHA256 (rust/crates/yoke-0.8.1.crate) = 72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954
+SIZE (rust/crates/yoke-0.8.1.crate) = 32016
+SHA256 (rust/crates/yoke-derive-0.8.1.crate) = b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d
+SIZE (rust/crates/yoke-derive-0.8.1.crate) = 7593
+SHA256 (rust/crates/zerocopy-0.8.27.crate) = 0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c
+SIZE (rust/crates/zerocopy-0.8.27.crate) = 252663
+SHA256 (rust/crates/zerocopy-derive-0.8.27.crate) = 88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831
+SIZE (rust/crates/zerocopy-derive-0.8.27.crate) = 89827
+SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5
+SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669
+SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502
+SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305
+SHA256 (rust/crates/zerotrie-0.2.3.crate) = 2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851
+SIZE (rust/crates/zerotrie-0.2.3.crate) = 69547
+SHA256 (rust/crates/zerovec-0.11.5.crate) = 6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002
+SIZE (rust/crates/zerovec-0.11.5.crate) = 119620
+SHA256 (rust/crates/zerovec-derive-0.11.2.crate) = eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3
+SIZE (rust/crates/zerovec-derive-0.11.2.crate) = 21421
+SHA256 (rust/crates/zrx-0.0.3.crate) = 0560eca9c0d0ebba809e4b3ea94465b685945103ea309cb4c33edbdbdae5a3de
+SIZE (rust/crates/zrx-0.0.3.crate) = 5414
+SHA256 (rust/crates/zrx-diagnostic-0.0.1.crate) = 1cf90c723631486819bb50d9871072595f4f17b2f6c596534d9cbcf4b6c2ae54
+SIZE (rust/crates/zrx-diagnostic-0.0.1.crate) = 9651
+SHA256 (rust/crates/zrx-executor-0.0.1.crate) = 4c0ace038e234e564aa9a352419b7eb8ea64996351affbfb8f2b1a593c3b24d4
+SIZE (rust/crates/zrx-executor-0.0.1.crate) = 15220
+SHA256 (rust/crates/zrx-graph-0.0.1.crate) = c8deb42a334884f7d30d4ceba77db865fe22ae0db9a2678e90d1449527c935ad
+SIZE (rust/crates/zrx-graph-0.0.1.crate) = 15784
+SHA256 (rust/crates/zrx-id-0.0.3.crate) = 53ca8d5b09df525295bcfc45a5fd35e16e9f47c16a07283a071d4518dc76befa
+SIZE (rust/crates/zrx-id-0.0.3.crate) = 18924
+SHA256 (rust/crates/zrx-path-0.0.1.crate) = d578267e852d4f325ce124ecbffe0530d9f9013d58a3cfacec75daf04ac40d0b
+SIZE (rust/crates/zrx-path-0.0.1.crate) = 4845
+SHA256 (rust/crates/zrx-scheduler-0.0.1.crate) = 977abb2e19cbe3768d29eb7613f2fec66592ae44ccb673585b72b8ad1f17dda1
+SIZE (rust/crates/zrx-scheduler-0.0.1.crate) = 41786
+SHA256 (rust/crates/zrx-store-0.0.1.crate) = bf66a14c3590ebf559c2beac93f28b2bf15192bd644a37e70b641d36cfec6e6d
+SIZE (rust/crates/zrx-store-0.0.1.crate) = 18060
+SHA256 (rust/crates/zrx-stream-0.0.1.crate) = c7c6087ba332dd45fc7a6f364e99f30d28405374ffabe7ac6787fc402ba86473
+SIZE (rust/crates/zrx-stream-0.0.1.crate) = 39261
diff --git a/textproc/py-zensical/files/patch-pyproject.toml b/textproc/py-zensical/files/patch-pyproject.toml
new file mode 100644
index 000000000000..989c7fdd794d
--- /dev/null
+++ b/textproc/py-zensical/files/patch-pyproject.toml
@@ -0,0 +1,15 @@
+Relax some version requirements.
+
+--- pyproject.toml.orig 2025-11-22 17:17:57 UTC
++++ pyproject.toml
+@@ -47,8 +47,8 @@ dependencies = [
+ ]
+ dynamic = ["version"]
+ dependencies = [
+- "click>=8.1.8",
+- "deepmerge>=2.0",
++ "click>=8.1.7",
++ "deepmerge>=1.1.1",
+ "markdown>=3.7",
+ "pygments>=2.16",
+ "pymdown-extensions>=10.15",
diff --git a/textproc/py-zensical/pkg-descr b/textproc/py-zensical/pkg-descr
new file mode 100644
index 000000000000..17542949af3d
--- /dev/null
+++ b/textproc/py-zensical/pkg-descr
@@ -0,0 +1,4 @@
+Zensical is a modern static site generator designed to simplify building and
+maintaining project documentation. It's built by the creators of Material for
+MkDocs and shares the same core design principles and philosophy - batteries
+included, easy to use, with powerful customization options.
diff --git a/textproc/rubygem-actiontext81/Makefile b/textproc/rubygem-actiontext81/Makefile
index bc8e8d058e55..3a7b010067ab 100644
--- a/textproc/rubygem-actiontext81/Makefile
+++ b/textproc/rubygem-actiontext81/Makefile
@@ -1,5 +1,5 @@
PORTNAME= actiontext
-PORTVERSION= 8.1.0
+PORTVERSION= 8.1.1
CATEGORIES= textproc rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 81
diff --git a/textproc/rubygem-actiontext81/distinfo b/textproc/rubygem-actiontext81/distinfo
index bddde7bf2bed..3f6aff6700fe 100644
--- a/textproc/rubygem-actiontext81/distinfo
+++ b/textproc/rubygem-actiontext81/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1762526264
-SHA256 (rubygem/actiontext-8.1.0.gem) = 64bc719fcbe5fecfa7c45cf289c0d87d41be924e98883433c2e6352d3a142277
-SIZE (rubygem/actiontext-8.1.0.gem) = 41984
+TIMESTAMP = 1763854452
+SHA256 (rubygem/actiontext-8.1.1.gem) = fd8d8da1e6bc0b04ff72fccfd127e78431238a99a82e736c7b52727c576a7640
+SIZE (rubygem/actiontext-8.1.1.gem) = 41984
diff --git a/textproc/rubygem-asciidoctor-pdf/Makefile b/textproc/rubygem-asciidoctor-pdf/Makefile
index cb201f9f5a40..8c70d84ae5f3 100644
--- a/textproc/rubygem-asciidoctor-pdf/Makefile
+++ b/textproc/rubygem-asciidoctor-pdf/Makefile
@@ -1,5 +1,5 @@
PORTNAME= asciidoctor-pdf
-PORTVERSION= 2.3.23
+PORTVERSION= 2.3.24
CATEGORIES= textproc rubygems
MASTER_SITES= RG
diff --git a/textproc/rubygem-asciidoctor-pdf/distinfo b/textproc/rubygem-asciidoctor-pdf/distinfo
index 2b3d12a8f808..2c669b61a847 100644
--- a/textproc/rubygem-asciidoctor-pdf/distinfo
+++ b/textproc/rubygem-asciidoctor-pdf/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1762587474
-SHA256 (rubygem/asciidoctor-pdf-2.3.23.gem) = 100f33099410111dfb17eeffdd8eec956be5a84eecf4562b114cd332807251c8
-SIZE (rubygem/asciidoctor-pdf-2.3.23.gem) = 2278400
+TIMESTAMP = 1763854414
+SHA256 (rubygem/asciidoctor-pdf-2.3.24.gem) = 3076e55132d43b21de93cd7c8149a8c1b2e4afc07e79855fb6b795a0ef20b051
+SIZE (rubygem/asciidoctor-pdf-2.3.24.gem) = 2278912
diff --git a/textproc/rubygem-cucumber-gherkin/Makefile b/textproc/rubygem-cucumber-gherkin/Makefile
index e2512170ab26..f5b6227e22f8 100644
--- a/textproc/rubygem-cucumber-gherkin/Makefile
+++ b/textproc/rubygem-cucumber-gherkin/Makefile
@@ -1,5 +1,5 @@
PORTNAME= cucumber-gherkin
-PORTVERSION= 36.0.0
+PORTVERSION= 37.0.0
CATEGORIES= textproc rubygems
MASTER_SITES= RG
@@ -10,7 +10,7 @@ WWW= https://github.com/cucumber/gherkin
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= rubygem-cucumber-messages29>=25<30:devel/rubygem-cucumber-messages29
+RUN_DEPENDS= rubygem-cucumber-messages>=31<32:devel/rubygem-cucumber-messages
USES= gem
diff --git a/textproc/rubygem-cucumber-gherkin/distinfo b/textproc/rubygem-cucumber-gherkin/distinfo
index 695144fc8361..3214996db75d 100644
--- a/textproc/rubygem-cucumber-gherkin/distinfo
+++ b/textproc/rubygem-cucumber-gherkin/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774923
-SHA256 (rubygem/cucumber-gherkin-36.0.0.gem) = e39579c5ea112ed77edb0ebf1bc191da45561f71b7c82c7448344902a760a37b
-SIZE (rubygem/cucumber-gherkin-36.0.0.gem) = 32256
+TIMESTAMP = 1763854418
+SHA256 (rubygem/cucumber-gherkin-37.0.0.gem) = 079de99ad5307cb30550c7ac9cb151dcf6990eed57b46629ef8a4b75d8b76a97
+SIZE (rubygem/cucumber-gherkin-37.0.0.gem) = 32256
diff --git a/textproc/rubygem-cucumber-html-formatter/Makefile b/textproc/rubygem-cucumber-html-formatter/Makefile
index 109ad270a094..5698493a1f34 100644
--- a/textproc/rubygem-cucumber-html-formatter/Makefile
+++ b/textproc/rubygem-cucumber-html-formatter/Makefile
@@ -1,5 +1,5 @@
PORTNAME= cucumber-html-formatter
-PORTVERSION= 22.0.0
+PORTVERSION= 22.1.0
CATEGORIES= textproc rubygems
MASTER_SITES= RG
@@ -9,7 +9,7 @@ WWW= https://github.com/cucumber/html-formatter
LICENSE= MIT
-RUN_DEPENDS= rubygem-cucumber-messages>=19<31:devel/rubygem-cucumber-messages
+RUN_DEPENDS= rubygem-cucumber-messages30>=19<31:devel/rubygem-cucumber-messages30
USES= gem
diff --git a/textproc/rubygem-cucumber-html-formatter/distinfo b/textproc/rubygem-cucumber-html-formatter/distinfo
index f5fff1da5053..4a25692316c3 100644
--- a/textproc/rubygem-cucumber-html-formatter/distinfo
+++ b/textproc/rubygem-cucumber-html-formatter/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759774925
-SHA256 (rubygem/cucumber-html-formatter-22.0.0.gem) = dddba302aeb0401d424a7f5f9895898d909adbb7edf69a6c2d1164e59b269d6c
-SIZE (rubygem/cucumber-html-formatter-22.0.0.gem) = 284160
+TIMESTAMP = 1763854416
+SHA256 (rubygem/cucumber-html-formatter-22.1.0.gem) = 95db49ff5c6b6d1f4353a71687cef5e001b0a28428c75acf8b9c11862a542726
+SIZE (rubygem/cucumber-html-formatter-22.1.0.gem) = 284672
diff --git a/textproc/rubygem-elasticsearch-api8/Makefile b/textproc/rubygem-elasticsearch-api8/Makefile
index 1f2b0d667c69..a3e0fd316882 100644
--- a/textproc/rubygem-elasticsearch-api8/Makefile
+++ b/textproc/rubygem-elasticsearch-api8/Makefile
@@ -1,5 +1,5 @@
PORTNAME= elasticsearch-api
-PORTVERSION= 8.19.1
+PORTVERSION= 8.19.2
CATEGORIES= textproc rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 8
diff --git a/textproc/rubygem-elasticsearch-api8/distinfo b/textproc/rubygem-elasticsearch-api8/distinfo
index 268bf3889597..b76a011f1d47 100644
--- a/textproc/rubygem-elasticsearch-api8/distinfo
+++ b/textproc/rubygem-elasticsearch-api8/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1757121878
-SHA256 (rubygem/elasticsearch-api-8.19.1.gem) = 13253f983c11281ee5616ed71e70f1c2981e7a15eb99a92d718075fd3fa471db
-SIZE (rubygem/elasticsearch-api-8.19.1.gem) = 214016
+TIMESTAMP = 1763854420
+SHA256 (rubygem/elasticsearch-api-8.19.2.gem) = d1940f0117dfa61b3f8b4a88bd7f01ad0e63c9438941819e310e1f31f67f0190
+SIZE (rubygem/elasticsearch-api-8.19.2.gem) = 210432
diff --git a/textproc/rubygem-elasticsearch8/Makefile b/textproc/rubygem-elasticsearch8/Makefile
index a64310333ae1..14ca79162b67 100644
--- a/textproc/rubygem-elasticsearch8/Makefile
+++ b/textproc/rubygem-elasticsearch8/Makefile
@@ -1,5 +1,5 @@
PORTNAME= elasticsearch
-PORTVERSION= 8.19.1
+PORTVERSION= 8.19.2
CATEGORIES= textproc rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= 8
diff --git a/textproc/rubygem-elasticsearch8/distinfo b/textproc/rubygem-elasticsearch8/distinfo
index 2dad08e14718..2137701e0852 100644
--- a/textproc/rubygem-elasticsearch8/distinfo
+++ b/textproc/rubygem-elasticsearch8/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1757121880
-SHA256 (rubygem/elasticsearch-8.19.1.gem) = a0869c1427ef077032d456dcb2fdd527a2270d95898b6a9b342ab627657770ae
-SIZE (rubygem/elasticsearch-8.19.1.gem) = 25088
+TIMESTAMP = 1763854422
+SHA256 (rubygem/elasticsearch-8.19.2.gem) = 30f0134aa4b35d3ed03bd8d51b4508a5c23b951bd2de4bb5b485654cb4953784
+SIZE (rubygem/elasticsearch-8.19.2.gem) = 25088
diff --git a/textproc/rubygem-google-cloud-translate/Makefile b/textproc/rubygem-google-cloud-translate/Makefile
index 333ab6ca4440..06eb22e3d0f2 100644
--- a/textproc/rubygem-google-cloud-translate/Makefile
+++ b/textproc/rubygem-google-cloud-translate/Makefile
@@ -1,5 +1,5 @@
PORTNAME= google-cloud-translate
-PORTVERSION= 3.7.3
+PORTVERSION= 3.7.4
CATEGORIES= textproc rubygems
MASTER_SITES= RG
diff --git a/textproc/rubygem-google-cloud-translate/distinfo b/textproc/rubygem-google-cloud-translate/distinfo
index acc77a17c851..e613750813d5 100644
--- a/textproc/rubygem-google-cloud-translate/distinfo
+++ b/textproc/rubygem-google-cloud-translate/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759324338
-SHA256 (rubygem/google-cloud-translate-3.7.3.gem) = c54abd2496c5d2adf355cb6e761c63cb449b9f052782acbbf4b3c79e77374c1b
-SIZE (rubygem/google-cloud-translate-3.7.3.gem) = 18432
+TIMESTAMP = 1763854424
+SHA256 (rubygem/google-cloud-translate-3.7.4.gem) = db7caf9ad35c5a93d2a913e95fcc66eb40848877de782a126e8e85b1eab05274
+SIZE (rubygem/google-cloud-translate-3.7.4.gem) = 18432
diff --git a/textproc/rubygem-liquid/Makefile b/textproc/rubygem-liquid/Makefile
index 84dbaa0ebabb..4ec6257bc75e 100644
--- a/textproc/rubygem-liquid/Makefile
+++ b/textproc/rubygem-liquid/Makefile
@@ -1,5 +1,5 @@
PORTNAME= liquid
-PORTVERSION= 5.10.0
+PORTVERSION= 5.11.0
CATEGORIES= textproc rubygems
MASTER_SITES= RG
diff --git a/textproc/rubygem-liquid/distinfo b/textproc/rubygem-liquid/distinfo
index 8a6962ec48e7..8bf72d3b0baa 100644
--- a/textproc/rubygem-liquid/distinfo
+++ b/textproc/rubygem-liquid/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1762587482
-SHA256 (rubygem/liquid-5.10.0.gem) = 0d719186676d8be9d15d2bea7fd76388faf24a2aa7ad803c3de161322f74adc6
-SIZE (rubygem/liquid-5.10.0.gem) = 60928
+TIMESTAMP = 1763854426
+SHA256 (rubygem/liquid-5.11.0.gem) = c338b641f9ee9e03e1377a13d880a0c636fadd944fae0c8a4af9bf4349264800
+SIZE (rubygem/liquid-5.11.0.gem) = 60416
diff --git a/textproc/rubygem-terminal-table/Makefile b/textproc/rubygem-terminal-table/Makefile
index 0aa4bf984799..ffd1007d9b85 100644
--- a/textproc/rubygem-terminal-table/Makefile
+++ b/textproc/rubygem-terminal-table/Makefile
@@ -1,6 +1,5 @@
PORTNAME= terminal-table
-PORTVERSION= 3.0.2
-PORTREVISION= 1
+PORTVERSION= 4.0.0
CATEGORIES= textproc rubygems
MASTER_SITES= RG
@@ -11,7 +10,7 @@ WWW= https://github.com/tj/terminal-table
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-RUN_DEPENDS= rubygem-unicode-display_width2>=1.1.1<3:devel/rubygem-unicode-display_width2
+RUN_DEPENDS= rubygem-unicode-display_width>=1.1.1<4:devel/rubygem-unicode-display_width
USES= gem shebangfix
diff --git a/textproc/rubygem-terminal-table/distinfo b/textproc/rubygem-terminal-table/distinfo
index bc3f265aade9..53cf24cf076e 100644
--- a/textproc/rubygem-terminal-table/distinfo
+++ b/textproc/rubygem-terminal-table/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1632227626
-SHA256 (rubygem/terminal-table-3.0.2.gem) = f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91
-SIZE (rubygem/terminal-table-3.0.2.gem) = 22016
+TIMESTAMP = 1763854428
+SHA256 (rubygem/terminal-table-4.0.0.gem) = f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2
+SIZE (rubygem/terminal-table-4.0.0.gem) = 22528
diff --git a/textproc/rubygem-terminal-table3/Makefile b/textproc/rubygem-terminal-table3/Makefile
new file mode 100644
index 000000000000..b1fddbb19569
--- /dev/null
+++ b/textproc/rubygem-terminal-table3/Makefile
@@ -0,0 +1,24 @@
+PORTNAME= terminal-table
+PORTVERSION= 3.0.2
+CATEGORIES= textproc rubygems
+MASTER_SITES= RG
+PKGNAMESUFFIX= 3
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Simple, feature rich ASCII table generation library
+WWW= https://github.com/tj/terminal-table
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+RUN_DEPENDS= rubygem-unicode-display_width2>=1.1.1<3:devel/rubygem-unicode-display_width2
+
+USES= gem shebangfix
+
+NO_ARCH= yes
+
+PORTSCOUT= limit:^3\.
+
+SHEBANG_FILES= examples/examples_unicode.rb
+
+.include <bsd.port.mk>
diff --git a/textproc/rubygem-terminal-table3/distinfo b/textproc/rubygem-terminal-table3/distinfo
new file mode 100644
index 000000000000..bc3f265aade9
--- /dev/null
+++ b/textproc/rubygem-terminal-table3/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1632227626
+SHA256 (rubygem/terminal-table-3.0.2.gem) = f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91
+SIZE (rubygem/terminal-table-3.0.2.gem) = 22016
diff --git a/textproc/rubygem-terminal-table3/pkg-descr b/textproc/rubygem-terminal-table3/pkg-descr
new file mode 100644
index 000000000000..756fcd3b38a2
--- /dev/null
+++ b/textproc/rubygem-terminal-table3/pkg-descr
@@ -0,0 +1,8 @@
+Terminal Table is a fast and simple, yet feature rich ASCII table generator
+written in Ruby.
+
+Features:
+- Optional headings
+- Alignment of columns, headings, or cells
+- Supports column span
+- Easy modification of table strings (+, -, |)
diff --git a/textproc/trang/Makefile b/textproc/trang/Makefile
index ab03c7fa7f59..fea301c1db7c 100644
--- a/textproc/trang/Makefile
+++ b/textproc/trang/Makefile
@@ -3,7 +3,7 @@ PORTVERSION= 20241231
CATEGORIES= textproc java
MASTER_SITES= https://github.com/relaxng/jing-trang/releases/download/V${PORTVERSION}/
-MAINTAINER= yasu@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Multi-format schema converter based on RELAX NG
WWW= http://www.thaiopensource.com/relaxng/trang.html
diff --git a/textproc/typos/Makefile b/textproc/typos/Makefile
new file mode 100644
index 000000000000..04dd170866d4
--- /dev/null
+++ b/textproc/typos/Makefile
@@ -0,0 +1,32 @@
+PORTNAME= typos
+PORTVERSION= 1.39.2
+DISTVERSIONPREFIX= v
+CATEGORIES= textproc
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Source code spell checker
+WWW= https://github.com/crate-ci/typos
+
+LICENSE= APACHE20 MIT
+LICENSE_COMB= dual
+LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-APACHE
+LICENSE_FILE_MIT= ${WRKSRC}/LICENSE-MIT
+
+USES= cargo
+
+CARGO_INSTALL_PATH= crates/typos-cli
+
+USE_GITHUB= yes
+GH_ACCOUNT= crate-ci
+
+OPTIONS_DEFINE= DOCS
+OPTIONS_SUB= yes
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/typos
+
+post-install-DOCS-on:
+ ${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/docs/*.md ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/textproc/typos/Makefile.crates b/textproc/typos/Makefile.crates
new file mode 100644
index 000000000000..e292ea51cf68
--- /dev/null
+++ b/textproc/typos/Makefile.crates
@@ -0,0 +1,204 @@
+CARGO_CRATES= Inflector-0.11.4 \
+ addr2line-0.24.2 \
+ adler2-2.0.1 \
+ ahash-0.8.12 \
+ aho-corasick-1.1.4 \
+ annotate-snippets-0.12.8 \
+ anstream-0.6.21 \
+ anstyle-1.0.13 \
+ anstyle-parse-0.2.7 \
+ anstyle-query-1.1.4 \
+ anstyle-wincon-3.0.10 \
+ anyhow-1.0.100 \
+ assert_fs-1.1.3 \
+ automod-1.0.15 \
+ backtrace-0.3.74 \
+ base64-0.22.1 \
+ bitflags-2.9.4 \
+ bstr-1.12.1 \
+ cfg-if-1.0.3 \
+ clap-4.5.51 \
+ clap-cargo-0.18.3 \
+ clap-verbosity-flag-3.0.4 \
+ clap_builder-4.5.51 \
+ clap_derive-4.5.49 \
+ clap_lex-0.7.5 \
+ codegenrs-3.0.2 \
+ colorchoice-1.0.4 \
+ colorchoice-clap-1.0.7 \
+ condtype-1.3.0 \
+ content_inspector-0.2.4 \
+ crossbeam-deque-0.8.6 \
+ crossbeam-epoch-0.9.18 \
+ crossbeam-utils-0.8.21 \
+ csv-1.4.0 \
+ csv-core-0.1.12 \
+ darling-0.20.11 \
+ darling_core-0.20.11 \
+ darling_macro-0.20.11 \
+ deranged-0.4.0 \
+ derive_more-2.0.1 \
+ derive_more-impl-2.0.1 \
+ derive_setters-0.1.8 \
+ difference-2.0.0 \
+ difflib-0.4.0 \
+ divan-0.1.21 \
+ divan-macros-0.1.21 \
+ doc-comment-0.3.3 \
+ dunce-1.0.5 \
+ dyn-clone-1.0.20 \
+ edit-distance-2.2.2 \
+ either-1.15.0 \
+ encoding_rs-0.8.35 \
+ enumflags2-0.7.12 \
+ enumflags2_derive-0.7.12 \
+ env_filter-0.1.3 \
+ env_logger-0.11.8 \
+ equivalent-1.0.2 \
+ errno-0.3.14 \
+ fastrand-2.3.0 \
+ filetime-0.2.26 \
+ fnv-1.0.7 \
+ getrandom-0.3.3 \
+ gimli-0.31.1 \
+ glob-0.3.3 \
+ globset-0.4.18 \
+ globwalk-0.9.1 \
+ hashbrown-0.16.0 \
+ heck-0.5.0 \
+ human-panic-2.0.4 \
+ humantime-2.3.0 \
+ humantime-serde-1.1.1 \
+ ident_case-1.0.1 \
+ ignore-0.4.25 \
+ indexmap-2.12.0 \
+ is_terminal_polyfill-1.70.1 \
+ itertools-0.14.0 \
+ itoa-1.0.15 \
+ kstring-2.0.2 \
+ lazy_static-1.5.0 \
+ libc-0.2.176 \
+ libredox-0.1.10 \
+ linux-raw-sys-0.11.0 \
+ log-0.4.28 \
+ maplit-1.0.2 \
+ memchr-2.7.6 \
+ miniz_oxide-0.8.9 \
+ normalize-line-endings-0.3.0 \
+ num-conv-0.1.0 \
+ object-0.36.7 \
+ once_cell-1.21.3 \
+ once_cell_polyfill-1.70.1 \
+ os_info-3.12.0 \
+ os_pipe-1.2.2 \
+ phf-0.13.1 \
+ phf_codegen-0.13.1 \
+ phf_generator-0.13.1 \
+ phf_macros-0.13.1 \
+ phf_shared-0.13.1 \
+ plist-1.7.4 \
+ powerfmt-0.2.0 \
+ predicates-3.1.3 \
+ predicates-core-1.0.9 \
+ predicates-tree-1.0.12 \
+ prettyplease-0.2.37 \
+ proc-exit-2.0.2 \
+ proc-macro2-1.0.101 \
+ quick-xml-0.38.3 \
+ quote-1.0.41 \
+ r-efi-5.3.0 \
+ rayon-1.11.0 \
+ rayon-core-1.13.0 \
+ redox_syscall-0.5.17 \
+ ref-cast-1.0.25 \
+ ref-cast-impl-1.0.25 \
+ regex-1.12.2 \
+ regex-automata-0.4.13 \
+ regex-lite-0.1.7 \
+ regex-syntax-0.8.6 \
+ rustc-demangle-0.1.26 \
+ rustix-1.1.2 \
+ ryu-1.0.20 \
+ same-file-1.0.6 \
+ schemafy_core-0.6.0 \
+ schemafy_lib-0.6.0 \
+ schemars-1.0.5 \
+ schemars_derive-1.0.5 \
+ semver-1.0.27 \
+ serde-1.0.228 \
+ serde-sarif-0.8.0 \
+ serde_core-1.0.228 \
+ serde_derive-1.0.228 \
+ serde_derive_internals-0.29.1 \
+ serde_json-1.0.145 \
+ serde_regex-1.1.0 \
+ serde_spanned-1.0.3 \
+ shlex-1.3.0 \
+ simdutf8-0.1.5 \
+ similar-2.7.0 \
+ siphasher-1.0.1 \
+ snapbox-0.6.23 \
+ snapbox-macros-0.4.0 \
+ static_assertions-1.1.0 \
+ strsim-0.11.1 \
+ strum-0.27.2 \
+ strum_macros-0.27.2 \
+ supports-unicode-3.0.0 \
+ syn-1.0.109 \
+ syn-2.0.106 \
+ tempfile-3.23.0 \
+ terminal_size-0.4.3 \
+ termtree-0.5.1 \
+ thiserror-2.0.17 \
+ thiserror-impl-2.0.17 \
+ thread_local-1.1.9 \
+ time-0.3.41 \
+ time-core-0.1.4 \
+ time-macros-0.2.22 \
+ toml-0.9.8 \
+ toml_datetime-0.7.3 \
+ toml_edit-0.23.6 \
+ toml_parser-1.0.4 \
+ toml_writer-1.0.4 \
+ trycmd-0.15.10 \
+ typed-arena-2.0.2 \
+ typed-builder-0.21.2 \
+ typed-builder-macro-0.21.2 \
+ unicase-2.8.1 \
+ unicode-ident-1.0.19 \
+ unicode-width-0.2.2 \
+ unicode-xid-0.2.6 \
+ uriparse-0.6.4 \
+ utf8parse-0.2.2 \
+ uuid-1.18.1 \
+ version_check-0.9.5 \
+ wait-timeout-0.2.1 \
+ walkdir-2.5.0 \
+ wasi-0.14.4+wasi-0.2.4 \
+ winapi-util-0.1.11 \
+ windows-link-0.2.0 \
+ windows-sys-0.52.0 \
+ windows-sys-0.59.0 \
+ windows-sys-0.60.2 \
+ windows-targets-0.52.6 \
+ windows-targets-0.53.4 \
+ windows_aarch64_gnullvm-0.52.6 \
+ windows_aarch64_gnullvm-0.53.0 \
+ windows_aarch64_msvc-0.52.6 \
+ windows_aarch64_msvc-0.53.0 \
+ windows_i686_gnu-0.52.6 \
+ windows_i686_gnu-0.53.0 \
+ windows_i686_gnullvm-0.52.6 \
+ windows_i686_gnullvm-0.53.0 \
+ windows_i686_msvc-0.52.6 \
+ windows_i686_msvc-0.53.0 \
+ windows_x86_64_gnu-0.52.6 \
+ windows_x86_64_gnu-0.53.0 \
+ windows_x86_64_gnullvm-0.52.6 \
+ windows_x86_64_gnullvm-0.53.0 \
+ windows_x86_64_msvc-0.52.6 \
+ windows_x86_64_msvc-0.53.0 \
+ winnow-0.7.13 \
+ wit-bindgen-0.45.1 \
+ zerocopy-0.8.27 \
+ zerocopy-derive-0.8.27
diff --git a/textproc/typos/distinfo b/textproc/typos/distinfo
new file mode 100644
index 000000000000..cf7f35402ea7
--- /dev/null
+++ b/textproc/typos/distinfo
@@ -0,0 +1,411 @@
+TIMESTAMP = 1763853130
+SHA256 (rust/crates/Inflector-0.11.4.crate) = fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3
+SIZE (rust/crates/Inflector-0.11.4.crate) = 17438
+SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
+SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
+SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (rust/crates/adler2-2.0.1.crate) = 13366
+SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
+SIZE (rust/crates/ahash-0.8.12.crate) = 43413
+SHA256 (rust/crates/aho-corasick-1.1.4.crate) = ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301
+SIZE (rust/crates/aho-corasick-1.1.4.crate) = 184015
+SHA256 (rust/crates/annotate-snippets-0.12.8.crate) = 025c7edcdffa4ccc5c0905f472a0ae3759378cfbef88ef518a3575e19ae3aebd
+SIZE (rust/crates/annotate-snippets-0.12.8.crate) = 56707
+SHA256 (rust/crates/anstream-0.6.21.crate) = 43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a
+SIZE (rust/crates/anstream-0.6.21.crate) = 29516
+SHA256 (rust/crates/anstyle-1.0.13.crate) = 5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78
+SIZE (rust/crates/anstyle-1.0.13.crate) = 17651
+SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2
+SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707
+SHA256 (rust/crates/anstyle-query-1.1.4.crate) = 9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2
+SIZE (rust/crates/anstyle-query-1.1.4.crate) = 10192
+SHA256 (rust/crates/anstyle-wincon-3.0.10.crate) = 3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a
+SIZE (rust/crates/anstyle-wincon-3.0.10.crate) = 12558
+SHA256 (rust/crates/anyhow-1.0.100.crate) = a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61
+SIZE (rust/crates/anyhow-1.0.100.crate) = 54059
+SHA256 (rust/crates/assert_fs-1.1.3.crate) = a652f6cb1f516886fcfee5e7a5c078b9ade62cfcb889524efe5a64d682dd27a9
+SIZE (rust/crates/assert_fs-1.1.3.crate) = 20176
+SHA256 (rust/crates/automod-1.0.15.crate) = ebb4bd301db2e2ca1f5be131c24eb8ebf2d9559bc3744419e93baf8ddea7e670
+SIZE (rust/crates/automod-1.0.15.crate) = 9129
+SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a
+SIZE (rust/crates/backtrace-0.3.74.crate) = 88516
+SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
+SIZE (rust/crates/base64-0.22.1.crate) = 81597
+SHA256 (rust/crates/bitflags-2.9.4.crate) = 2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394
+SIZE (rust/crates/bitflags-2.9.4.crate) = 47950
+SHA256 (rust/crates/bstr-1.12.1.crate) = 63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab
+SIZE (rust/crates/bstr-1.12.1.crate) = 354916
+SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9
+SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719
+SHA256 (rust/crates/clap-4.5.51.crate) = 4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5
+SIZE (rust/crates/clap-4.5.51.crate) = 62030
+SHA256 (rust/crates/clap-cargo-0.18.3.crate) = 936551935c8258754bb8216aec040957d261f977303754b9bf1a213518388006
+SIZE (rust/crates/clap-cargo-0.18.3.crate) = 14597
+SHA256 (rust/crates/clap-verbosity-flag-3.0.4.crate) = 9d92b1fab272fe943881b77cc6e920d6543e5b1bfadbd5ed81c7c5a755742394
+SIZE (rust/crates/clap-verbosity-flag-3.0.4.crate) = 16952
+SHA256 (rust/crates/clap_builder-4.5.51.crate) = 75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a
+SIZE (rust/crates/clap_builder-4.5.51.crate) = 171077
+SHA256 (rust/crates/clap_derive-4.5.49.crate) = 2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671
+SIZE (rust/crates/clap_derive-4.5.49.crate) = 33559
+SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675
+SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469
+SHA256 (rust/crates/codegenrs-3.0.2.crate) = 11a564a9c6e001f881ff5074dc1fb10aae609c82c92b7ddb47e40987be820771
+SIZE (rust/crates/codegenrs-3.0.2.crate) = 8676
+SHA256 (rust/crates/colorchoice-1.0.4.crate) = b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75
+SIZE (rust/crates/colorchoice-1.0.4.crate) = 8196
+SHA256 (rust/crates/colorchoice-clap-1.0.7.crate) = 0ff31f4fe290e780fe3bbec6b2eb9dbfdccd1630e79a104c221d99243de81493
+SIZE (rust/crates/colorchoice-clap-1.0.7.crate) = 10638
+SHA256 (rust/crates/condtype-1.3.0.crate) = baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af
+SIZE (rust/crates/condtype-1.3.0.crate) = 12634
+SHA256 (rust/crates/content_inspector-0.2.4.crate) = b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38
+SIZE (rust/crates/content_inspector-0.2.4.crate) = 11386
+SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
+SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471
+SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
+SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
+SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
+SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
+SHA256 (rust/crates/csv-1.4.0.crate) = 52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938
+SIZE (rust/crates/csv-1.4.0.crate) = 888642
+SHA256 (rust/crates/csv-core-0.1.12.crate) = 7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d
+SIZE (rust/crates/csv-core-0.1.12.crate) = 26298
+SHA256 (rust/crates/darling-0.20.11.crate) = fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee
+SIZE (rust/crates/darling-0.20.11.crate) = 37614
+SHA256 (rust/crates/darling_core-0.20.11.crate) = 0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e
+SIZE (rust/crates/darling_core-0.20.11.crate) = 68006
+SHA256 (rust/crates/darling_macro-0.20.11.crate) = fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead
+SIZE (rust/crates/darling_macro-0.20.11.crate) = 2532
+SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e
+SIZE (rust/crates/deranged-0.4.0.crate) = 23235
+SHA256 (rust/crates/derive_more-2.0.1.crate) = 093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678
+SIZE (rust/crates/derive_more-2.0.1.crate) = 70127
+SHA256 (rust/crates/derive_more-impl-2.0.1.crate) = bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3
+SIZE (rust/crates/derive_more-impl-2.0.1.crate) = 78233
+SHA256 (rust/crates/derive_setters-0.1.8.crate) = ae5c625eda104c228c06ecaf988d1c60e542176bd7a490e60eeda3493244c0c9
+SIZE (rust/crates/derive_setters-0.1.8.crate) = 11918
+SHA256 (rust/crates/difference-2.0.0.crate) = 524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198
+SIZE (rust/crates/difference-2.0.0.crate) = 147616
+SHA256 (rust/crates/difflib-0.4.0.crate) = 6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8
+SIZE (rust/crates/difflib-0.4.0.crate) = 7638
+SHA256 (rust/crates/divan-0.1.21.crate) = a405457ec78b8fe08b0e32b4a3570ab5dff6dd16eb9e76a5ee0a9d9cbd898933
+SIZE (rust/crates/divan-0.1.21.crate) = 97542
+SHA256 (rust/crates/divan-macros-0.1.21.crate) = 9556bc800956545d6420a640173e5ba7dfa82f38d3ea5a167eb555bc69ac3323
+SIZE (rust/crates/divan-macros-0.1.21.crate) = 15766
+SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10
+SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123
+SHA256 (rust/crates/dunce-1.0.5.crate) = 92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813
+SIZE (rust/crates/dunce-1.0.5.crate) = 8244
+SHA256 (rust/crates/dyn-clone-1.0.20.crate) = d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555
+SIZE (rust/crates/dyn-clone-1.0.20.crate) = 13134
+SHA256 (rust/crates/edit-distance-2.2.2.crate) = 324d428080b707bac399325341bd61af5ded1b30f33b7c949792ca464733c2d5
+SIZE (rust/crates/edit-distance-2.2.2.crate) = 9002
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/encoding_rs-0.8.35.crate) = 75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3
+SIZE (rust/crates/encoding_rs-0.8.35.crate) = 1381050
+SHA256 (rust/crates/enumflags2-0.7.12.crate) = 1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef
+SIZE (rust/crates/enumflags2-0.7.12.crate) = 17544
+SHA256 (rust/crates/enumflags2_derive-0.7.12.crate) = 67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827
+SIZE (rust/crates/enumflags2_derive-0.7.12.crate) = 8573
+SHA256 (rust/crates/env_filter-0.1.3.crate) = 186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0
+SIZE (rust/crates/env_filter-0.1.3.crate) = 15191
+SHA256 (rust/crates/env_logger-0.11.8.crate) = 13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f
+SIZE (rust/crates/env_logger-0.11.8.crate) = 32538
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb
+SIZE (rust/crates/errno-0.3.14.crate) = 12002
+SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
+SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
+SHA256 (rust/crates/filetime-0.2.26.crate) = bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed
+SIZE (rust/crates/filetime-0.2.26.crate) = 17273
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4
+SIZE (rust/crates/getrandom-0.3.3.crate) = 49493
+SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
+SIZE (rust/crates/gimli-0.31.1.crate) = 279515
+SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280
+SIZE (rust/crates/glob-0.3.3.crate) = 22861
+SHA256 (rust/crates/globset-0.4.18.crate) = 52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3
+SIZE (rust/crates/globset-0.4.18.crate) = 28970
+SHA256 (rust/crates/globwalk-0.9.1.crate) = 0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757
+SIZE (rust/crates/globwalk-0.9.1.crate) = 12572
+SHA256 (rust/crates/hashbrown-0.16.0.crate) = 5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d
+SIZE (rust/crates/hashbrown-0.16.0.crate) = 141708
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/human-panic-2.0.4.crate) = 9a8a07a0957cd4a3cad4a1e4ca7cd5ea07fcacef6ebe2e5d0c7935bfc95120d8
+SIZE (rust/crates/human-panic-2.0.4.crate) = 15912
+SHA256 (rust/crates/humantime-2.3.0.crate) = 135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424
+SIZE (rust/crates/humantime-2.3.0.crate) = 23242
+SHA256 (rust/crates/humantime-serde-1.1.1.crate) = 57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c
+SIZE (rust/crates/humantime-serde-1.1.1.crate) = 7886
+SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39
+SIZE (rust/crates/ident_case-1.0.1.crate) = 3492
+SHA256 (rust/crates/ignore-0.4.25.crate) = d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a
+SIZE (rust/crates/ignore-0.4.25.crate) = 59154
+SHA256 (rust/crates/indexmap-2.12.0.crate) = 6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f
+SIZE (rust/crates/indexmap-2.12.0.crate) = 100446
+SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
+SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
+SHA256 (rust/crates/itertools-0.14.0.crate) = 2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285
+SIZE (rust/crates/itertools-0.14.0.crate) = 152715
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/kstring-2.0.2.crate) = 558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1
+SIZE (rust/crates/kstring-2.0.2.crate) = 23044
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/libc-0.2.176.crate) = 58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174
+SIZE (rust/crates/libc-0.2.176.crate) = 790040
+SHA256 (rust/crates/libredox-0.1.10.crate) = 416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb
+SIZE (rust/crates/libredox-0.1.10.crate) = 7332
+SHA256 (rust/crates/linux-raw-sys-0.11.0.crate) = df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039
+SIZE (rust/crates/linux-raw-sys-0.11.0.crate) = 2659624
+SHA256 (rust/crates/log-0.4.28.crate) = 34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432
+SIZE (rust/crates/log-0.4.28.crate) = 51131
+SHA256 (rust/crates/maplit-1.0.2.crate) = 3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d
+SIZE (rust/crates/maplit-1.0.2.crate) = 8871
+SHA256 (rust/crates/memchr-2.7.6.crate) = f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273
+SIZE (rust/crates/memchr-2.7.6.crate) = 97616
+SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316
+SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132
+SHA256 (rust/crates/normalize-line-endings-0.3.0.crate) = 61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be
+SIZE (rust/crates/normalize-line-endings-0.3.0.crate) = 5737
+SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
+SIZE (rust/crates/num-conv-0.1.0.crate) = 7444
+SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87
+SIZE (rust/crates/object-0.36.7.crate) = 329938
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad
+SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510
+SHA256 (rust/crates/os_info-3.12.0.crate) = d0e1ac5fde8d43c34139135df8ea9ee9465394b2d8d20f032d38998f64afffc3
+SIZE (rust/crates/os_info-3.12.0.crate) = 24642
+SHA256 (rust/crates/os_pipe-1.2.2.crate) = db335f4760b14ead6290116f2427bf33a14d4f0617d49f78a246de10c1831224
+SIZE (rust/crates/os_pipe-1.2.2.crate) = 10810
+SHA256 (rust/crates/phf-0.13.1.crate) = c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf
+SIZE (rust/crates/phf-0.13.1.crate) = 24786
+SHA256 (rust/crates/phf_codegen-0.13.1.crate) = 49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1
+SIZE (rust/crates/phf_codegen-0.13.1.crate) = 14774
+SHA256 (rust/crates/phf_generator-0.13.1.crate) = 135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737
+SIZE (rust/crates/phf_generator-0.13.1.crate) = 15952
+SHA256 (rust/crates/phf_macros-0.13.1.crate) = 812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef
+SIZE (rust/crates/phf_macros-0.13.1.crate) = 21732
+SHA256 (rust/crates/phf_shared-0.13.1.crate) = e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266
+SIZE (rust/crates/phf_shared-0.13.1.crate) = 16141
+SHA256 (rust/crates/plist-1.7.4.crate) = 3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1
+SIZE (rust/crates/plist-1.7.4.crate) = 103748
+SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
+SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
+SHA256 (rust/crates/predicates-3.1.3.crate) = a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573
+SIZE (rust/crates/predicates-3.1.3.crate) = 24063
+SHA256 (rust/crates/predicates-core-1.0.9.crate) = 727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa
+SIZE (rust/crates/predicates-core-1.0.9.crate) = 8618
+SHA256 (rust/crates/predicates-tree-1.0.12.crate) = 72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c
+SIZE (rust/crates/predicates-tree-1.0.12.crate) = 8392
+SHA256 (rust/crates/prettyplease-0.2.37.crate) = 479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b
+SIZE (rust/crates/prettyplease-0.2.37.crate) = 72033
+SHA256 (rust/crates/proc-exit-2.0.2.crate) = 77a5390699eb9ac50677729fda96fb8339d4629f257cc6cfa6eaa673730f8f63
+SIZE (rust/crates/proc-exit-2.0.2.crate) = 12898
+SHA256 (rust/crates/proc-macro2-1.0.101.crate) = 89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de
+SIZE (rust/crates/proc-macro2-1.0.101.crate) = 53886
+SHA256 (rust/crates/quick-xml-0.38.3.crate) = 42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89
+SIZE (rust/crates/quick-xml-0.38.3.crate) = 204498
+SHA256 (rust/crates/quote-1.0.41.crate) = ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1
+SIZE (rust/crates/quote-1.0.41.crate) = 31408
+SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f
+SIZE (rust/crates/r-efi-5.3.0.crate) = 64532
+SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f
+SIZE (rust/crates/rayon-1.11.0.crate) = 182470
+SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91
+SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151
+SHA256 (rust/crates/redox_syscall-0.5.17.crate) = 5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77
+SIZE (rust/crates/redox_syscall-0.5.17.crate) = 30002
+SHA256 (rust/crates/ref-cast-1.0.25.crate) = f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d
+SIZE (rust/crates/ref-cast-1.0.25.crate) = 15192
+SHA256 (rust/crates/ref-cast-impl-1.0.25.crate) = b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da
+SIZE (rust/crates/ref-cast-impl-1.0.25.crate) = 10167
+SHA256 (rust/crates/regex-1.12.2.crate) = 843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4
+SIZE (rust/crates/regex-1.12.2.crate) = 163843
+SHA256 (rust/crates/regex-automata-0.4.13.crate) = 5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c
+SIZE (rust/crates/regex-automata-0.4.13.crate) = 625250
+SHA256 (rust/crates/regex-lite-0.1.7.crate) = 943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30
+SIZE (rust/crates/regex-lite-0.1.7.crate) = 96903
+SHA256 (rust/crates/regex-syntax-0.8.6.crate) = caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001
+SIZE (rust/crates/regex-syntax-0.8.6.crate) = 358808
+SHA256 (rust/crates/rustc-demangle-0.1.26.crate) = 56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace
+SIZE (rust/crates/rustc-demangle-0.1.26.crate) = 30340
+SHA256 (rust/crates/rustix-1.1.2.crate) = cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e
+SIZE (rust/crates/rustix-1.1.2.crate) = 422717
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/schemafy_core-0.6.0.crate) = 2bec29dddcfe60f92f3c0d422707b8b56473983ef0481df8d5236ed3ab8fdf24
+SIZE (rust/crates/schemafy_core-0.6.0.crate) = 1878
+SHA256 (rust/crates/schemafy_lib-0.6.0.crate) = af3d87f1df246a9b7e2bfd1f4ee5f88e48b11ef9cfc62e63f0dead255b1a6f5f
+SIZE (rust/crates/schemafy_lib-0.6.0.crate) = 10431
+SHA256 (rust/crates/schemars-1.0.5.crate) = 1317c3bf3e7df961da95b0a56a172a02abead31276215a0497241a7624b487ce
+SIZE (rust/crates/schemars-1.0.5.crate) = 88673
+SHA256 (rust/crates/schemars_derive-1.0.5.crate) = 5f760a6150d45dd66ec044983c124595ae76912e77ed0b44124cb3e415cce5d9
+SIZE (rust/crates/schemars_derive-1.0.5.crate) = 31160
+SHA256 (rust/crates/semver-1.0.27.crate) = d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2
+SIZE (rust/crates/semver-1.0.27.crate) = 30081
+SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e
+SIZE (rust/crates/serde-1.0.228.crate) = 83652
+SHA256 (rust/crates/serde-sarif-0.8.0.crate) = a053c46f18a8043570d4e32fefc4c6377f82bf29ec310a33e93f273048e3b0be
+SIZE (rust/crates/serde-sarif-0.8.0.crate) = 32527
+SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad
+SIZE (rust/crates/serde_core-1.0.228.crate) = 63111
+SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79
+SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605
+SHA256 (rust/crates/serde_derive_internals-0.29.1.crate) = 18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711
+SIZE (rust/crates/serde_derive_internals-0.29.1.crate) = 26189
+SHA256 (rust/crates/serde_json-1.0.145.crate) = 402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c
+SIZE (rust/crates/serde_json-1.0.145.crate) = 155748
+SHA256 (rust/crates/serde_regex-1.1.0.crate) = a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf
+SIZE (rust/crates/serde_regex-1.1.0.crate) = 9710
+SHA256 (rust/crates/serde_spanned-1.0.3.crate) = e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392
+SIZE (rust/crates/serde_spanned-1.0.3.crate) = 11011
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/simdutf8-0.1.5.crate) = e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e
+SIZE (rust/crates/simdutf8-0.1.5.crate) = 28488
+SHA256 (rust/crates/similar-2.7.0.crate) = bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa
+SIZE (rust/crates/similar-2.7.0.crate) = 53928
+SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
+SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
+SHA256 (rust/crates/snapbox-0.6.23.crate) = 96fa1ce81be900d083b30ec2d481e6658c2acfaa2cfc7be45ccc2cc1b820edb3
+SIZE (rust/crates/snapbox-0.6.23.crate) = 56996
+SHA256 (rust/crates/snapbox-macros-0.4.0.crate) = 3b750c344002d7cc69afb9da00ebd9b5c0f8ac2eb7d115d9d45d5b5f47718d74
+SIZE (rust/crates/snapbox-macros-0.4.0.crate) = 9305
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/strum-0.27.2.crate) = af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf
+SIZE (rust/crates/strum-0.27.2.crate) = 8489
+SHA256 (rust/crates/strum_macros-0.27.2.crate) = 7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7
+SIZE (rust/crates/strum_macros-0.27.2.crate) = 30522
+SHA256 (rust/crates/supports-unicode-3.0.0.crate) = b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2
+SIZE (rust/crates/supports-unicode-3.0.0.crate) = 7825
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.106.crate) = ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6
+SIZE (rust/crates/syn-2.0.106.crate) = 301514
+SHA256 (rust/crates/tempfile-3.23.0.crate) = 2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16
+SIZE (rust/crates/tempfile-3.23.0.crate) = 43063
+SHA256 (rust/crates/terminal_size-0.4.3.crate) = 60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0
+SIZE (rust/crates/terminal_size-0.4.3.crate) = 10686
+SHA256 (rust/crates/termtree-0.5.1.crate) = 8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683
+SIZE (rust/crates/termtree-0.5.1.crate) = 8498
+SHA256 (rust/crates/thiserror-2.0.17.crate) = f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8
+SIZE (rust/crates/thiserror-2.0.17.crate) = 28857
+SHA256 (rust/crates/thiserror-impl-2.0.17.crate) = 3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913
+SIZE (rust/crates/thiserror-impl-2.0.17.crate) = 21344
+SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185
+SIZE (rust/crates/thread_local-1.1.9.crate) = 19315
+SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40
+SIZE (rust/crates/time-0.3.41.crate) = 138369
+SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c
+SIZE (rust/crates/time-core-0.1.4.crate) = 8422
+SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49
+SIZE (rust/crates/time-macros-0.2.22.crate) = 24604
+SHA256 (rust/crates/toml-0.9.8.crate) = f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8
+SIZE (rust/crates/toml-0.9.8.crate) = 56104
+SHA256 (rust/crates/toml_datetime-0.7.3.crate) = f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533
+SIZE (rust/crates/toml_datetime-0.7.3.crate) = 17827
+SHA256 (rust/crates/toml_edit-0.23.6.crate) = f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b
+SIZE (rust/crates/toml_edit-0.23.6.crate) = 65753
+SHA256 (rust/crates/toml_parser-1.0.4.crate) = c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e
+SIZE (rust/crates/toml_parser-1.0.4.crate) = 34978
+SHA256 (rust/crates/toml_writer-1.0.4.crate) = df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2
+SIZE (rust/crates/toml_writer-1.0.4.crate) = 17146
+SHA256 (rust/crates/trycmd-0.15.10.crate) = 659488a954e37cc663704c169f829952c49b315e2fe5fd375508baffa698f106
+SIZE (rust/crates/trycmd-0.15.10.crate) = 34065
+SHA256 (rust/crates/typed-arena-2.0.2.crate) = 6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a
+SIZE (rust/crates/typed-arena-2.0.2.crate) = 11848
+SHA256 (rust/crates/typed-builder-0.21.2.crate) = fef81aec2ca29576f9f6ae8755108640d0a86dd3161b2e8bca6cfa554e98f77d
+SIZE (rust/crates/typed-builder-0.21.2.crate) = 22561
+SHA256 (rust/crates/typed-builder-macro-0.21.2.crate) = 1ecb9ecf7799210407c14a8cfdfe0173365780968dc57973ed082211958e0b18
+SIZE (rust/crates/typed-builder-macro-0.21.2.crate) = 21717
+SHA256 (rust/crates/unicase-2.8.1.crate) = 75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539
+SIZE (rust/crates/unicase-2.8.1.crate) = 24088
+SHA256 (rust/crates/unicode-ident-1.0.19.crate) = f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d
+SIZE (rust/crates/unicode-ident-1.0.19.crate) = 47480
+SHA256 (rust/crates/unicode-width-0.2.2.crate) = b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254
+SIZE (rust/crates/unicode-width-0.2.2.crate) = 282768
+SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853
+SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744
+SHA256 (rust/crates/uriparse-0.6.4.crate) = 0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff
+SIZE (rust/crates/uriparse-0.6.4.crate) = 56145
+SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
+SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
+SHA256 (rust/crates/uuid-1.18.1.crate) = 2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2
+SIZE (rust/crates/uuid-1.18.1.crate) = 60468
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/wait-timeout-0.2.1.crate) = 09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11
+SIZE (rust/crates/wait-timeout-0.2.1.crate) = 11435
+SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
+SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
+SHA256 (rust/crates/wasi-0.14.4+wasi-0.2.4.crate) = 88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a
+SIZE (rust/crates/wasi-0.14.4+wasi-0.2.4.crate) = 145408
+SHA256 (rust/crates/winapi-util-0.1.11.crate) = c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22
+SIZE (rust/crates/winapi-util-0.1.11.crate) = 13368
+SHA256 (rust/crates/windows-link-0.2.0.crate) = 45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65
+SIZE (rust/crates/windows-link-0.2.0.crate) = 6170
+SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
+SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb
+SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows-targets-0.53.4.crate) = 2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b
+SIZE (rust/crates/windows-targets-0.53.4.crate) = 7161
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764
+SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c
+SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3
+SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11
+SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d
+SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba
+SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57
+SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486
+SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400
+SHA256 (rust/crates/winnow-0.7.13.crate) = 21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf
+SIZE (rust/crates/winnow-0.7.13.crate) = 174454
+SHA256 (rust/crates/wit-bindgen-0.45.1.crate) = 5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36
+SIZE (rust/crates/wit-bindgen-0.45.1.crate) = 60395
+SHA256 (rust/crates/zerocopy-0.8.27.crate) = 0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c
+SIZE (rust/crates/zerocopy-0.8.27.crate) = 252663
+SHA256 (rust/crates/zerocopy-derive-0.8.27.crate) = 88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831
+SIZE (rust/crates/zerocopy-derive-0.8.27.crate) = 89827
+SHA256 (crate-ci-typos-v1.39.2_GH0.tar.gz) = 2ac7b75fb8cd5091dfb3c07997a8f7d9abdc918260d0e2378cefdad7cf059923
+SIZE (crate-ci-typos-v1.39.2_GH0.tar.gz) = 4476660
diff --git a/textproc/typos/pkg-descr b/textproc/typos/pkg-descr
new file mode 100644
index 000000000000..b5b0bc5a2c27
--- /dev/null
+++ b/textproc/typos/pkg-descr
@@ -0,0 +1,3 @@
+typos finds and corrects spelling mistakes among source code:
+- Fast enough to run on monorepos
+- Low false positives so you can run on PRs
diff --git a/textproc/typos/pkg-plist b/textproc/typos/pkg-plist
new file mode 100644
index 000000000000..9f79d3f7ab0c
--- /dev/null
+++ b/textproc/typos/pkg-plist
@@ -0,0 +1,6 @@
+bin/typos
+%%PORTDOCS%%%%DOCSDIR%%/comparison.md
+%%PORTDOCS%%%%DOCSDIR%%/design.md
+%%PORTDOCS%%%%DOCSDIR%%/github-action.md
+%%PORTDOCS%%%%DOCSDIR%%/pre-commit.md
+%%PORTDOCS%%%%DOCSDIR%%/reference.md
diff --git a/textproc/xan/Makefile b/textproc/xan/Makefile
index 648ca87ab2f9..079f5b51ba70 100644
--- a/textproc/xan/Makefile
+++ b/textproc/xan/Makefile
@@ -1,5 +1,5 @@
PORTNAME= xan
-DISTVERSION= 0.54.0
+DISTVERSION= 0.54.1
CATEGORIES= textproc
MAINTAINER= tagattie@FreeBSD.org
diff --git a/textproc/xan/Makefile.crates b/textproc/xan/Makefile.crates
index fbe4912065c7..cd7bef50d31f 100644
--- a/textproc/xan/Makefile.crates
+++ b/textproc/xan/Makefile.crates
@@ -229,7 +229,7 @@ CARGO_CRATES= adler2-2.0.1 \
sha2-0.10.9 \
shlex-1.3.0 \
simd-adler32-0.3.7 \
- simd-csv-0.9.0 \
+ simd-csv-0.10.2 \
simd-json-0.14.3 \
simdutf8-0.1.5 \
siphasher-1.0.1 \
diff --git a/textproc/xan/distinfo b/textproc/xan/distinfo
index b5147fa422cb..4e1600c1a8bf 100644
--- a/textproc/xan/distinfo
+++ b/textproc/xan/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1763531690
+TIMESTAMP = 1764337998
SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
SIZE (rust/crates/adler2-2.0.1.crate) = 13366
SHA256 (rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
@@ -461,8 +461,8 @@ SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce35
SIZE (rust/crates/shlex-1.3.0.crate) = 18713
SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086
-SHA256 (rust/crates/simd-csv-0.9.0.crate) = 68d453a9cbd8d5f3a6fc36ae07e7a976717438f03a0bf8b790804a15ac873fb0
-SIZE (rust/crates/simd-csv-0.9.0.crate) = 40919
+SHA256 (rust/crates/simd-csv-0.10.2.crate) = 4e9f5d41d9a89d9ae7cb41f2e6451db84352fbd9101882355bf86c76cb5a4d1f
+SIZE (rust/crates/simd-csv-0.10.2.crate) = 44067
SHA256 (rust/crates/simd-json-0.14.3.crate) = aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40
SIZE (rust/crates/simd-json-0.14.3.crate) = 169109
SHA256 (rust/crates/simdutf8-0.1.5.crate) = e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e
@@ -669,5 +669,5 @@ SHA256 (rust/crates/zstd-safe-7.2.4.crate) = 8f49c4d5f0abb602a93fb8736af2a4f4dd9
SIZE (rust/crates/zstd-safe-7.2.4.crate) = 29350
SHA256 (rust/crates/zstd-sys-2.0.16+zstd.1.5.7.crate) = 91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748
SIZE (rust/crates/zstd-sys-2.0.16+zstd.1.5.7.crate) = 775620
-SHA256 (medialab-xan-0.54.0_GH0.tar.gz) = 15b024631f72f789bfe22694a8a1a09a6411a6ce31bac0fc35f2e4db0d4d6362
-SIZE (medialab-xan-0.54.0_GH0.tar.gz) = 5933819
+SHA256 (medialab-xan-0.54.1_GH0.tar.gz) = e5fa8eef2d2eb016b1c1d39a0eb2c4ac7d451cd9f4172ade99e1eb2d52ebd381
+SIZE (medialab-xan-0.54.1_GH0.tar.gz) = 5933938
diff --git a/textproc/yaml-mode.el/Makefile b/textproc/yaml-mode.el/Makefile
index 3870face18c6..f4a0439f9e10 100644
--- a/textproc/yaml-mode.el/Makefile
+++ b/textproc/yaml-mode.el/Makefile
@@ -4,7 +4,7 @@ PORTREVISION= 6
CATEGORIES= textproc elisp
PKGNAMESUFFIX= ${EMACS_PKGNAMESUFFIX}
-MAINTAINER= yasu@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Simple major mode to edit YAML file for Emacsen
WWW= https://github.com/yoshiki/yaml-mode
diff --git a/textproc/yaml.el/Makefile b/textproc/yaml.el/Makefile
index fd3928ff3724..245ef1a2a53b 100644
--- a/textproc/yaml.el/Makefile
+++ b/textproc/yaml.el/Makefile
@@ -4,7 +4,7 @@ DISTVERSION= 1.2.1
CATEGORIES= textproc elisp
PKGNAMESUFFIX= ${EMACS_PKGNAMESUFFIX}
-MAINTAINER= yasu@FreeBSD.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= YAML parser in Elisp
WWW= https://github.com/zkry/yaml.el