git: 65434f71218e - main - games/anki: Update to 26.09

From: Kai Knoblich <kai_at_FreeBSD.org>
Date: Mon, 14 Sep 2026 17:45:37 UTC
The branch main has been updated by kai:

URL: https://cgit.FreeBSD.org/ports/commit/?id=65434f71218e5a8114ea642231acaeb609ced7bd

commit 65434f71218e5a8114ea642231acaeb609ced7bd
Author:     Kai Knoblich <kai@FreeBSD.org>
AuthorDate: 2026-09-14 17:41:16 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2026-09-14 17:42:43 +0000

    games/anki: Update to 26.09
    
    * Migrate to Yarn v4 to be in sync with upstream.  To ensure that the
      preinstalled Yarn v4 is actually used, a few minor workarounds and a
      new variable PREINSTALLED_YARN are required.
    
      The latter is necessary because, with Yarn v2 and newer, environment
      variables prefixed with YARN_ can no longer be used.
    
    * Sort pkg-plist while I'm here.
    
    Changelog:
    
    https://github.com/ankitects/anki/releases/tag/26.09
    
    MFH:            2026Q3
    Security:       ce54d883-b060-11f1-b187-901b0edee044
---
 games/anki/Makefile                                |    17 +-
 games/anki/Makefile.crates                         |    35 +-
 games/anki/distinfo                                |    90 +-
 games/anki/files/packagejsons/package.json         |    36 +-
 games/anki/files/packagejsons/yarn.lock            | 13653 ++++++++++++-------
 .../anki/files/patch-build_ninja__gen_src_node.rs  |    27 +
 games/anki/files/patch-build_runner_src_build.rs   |    10 +-
 games/anki/files/patch-build_runner_src_yarn.rs    |    14 +
 games/anki/files/patch-qt_pyproject.toml           |    12 +-
 games/anki/pkg-plist                               |    18 +-
 10 files changed, 8772 insertions(+), 5140 deletions(-)

diff --git a/games/anki/Makefile b/games/anki/Makefile
index 13a1b394d626..9e54bf760df2 100644
--- a/games/anki/Makefile
+++ b/games/anki/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	anki
-DISTVERSION=	26.08.1
-PORTREVISION=	2
+DISTVERSION=	26.09
 # Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes
 CATEGORIES=	games education python
 
@@ -40,13 +39,13 @@ RUN_DEPENDS=	lame:audio/lame \
 		${PYTHON_PKGNAMEPREFIX}waitress>=2.0.0:www/py-waitress@${PY_FLAVOR}
 
 # USES=ssl is required for the compilation of the Rust code
-USES=		cargo desktop-file-utils ninja nodejs:build npm:yarn1,build pyqt:6 \
+USES=		cargo desktop-file-utils ninja nodejs:build npm:yarn4 pyqt:6 \
 	        python shebangfix ssl
 USE_GITHUB=	yes
 GH_ACCOUNT=	ankitects
 # Translation files
-GH_TUPLE=	ankitects:anki-core-i18n:63e6bbb:ftlrslib \
-		ankitects:anki-desktop-ftl:e3200e9:ftlextra
+GH_TUPLE=	ankitects:anki-core-i18n:6fddf1a:ftlrslib \
+		ankitects:anki-desktop-ftl:3303657:ftlextra
 
 USE_PYQT=	pyqt6 sip:build webengine
 
@@ -63,13 +62,12 @@ CARGO_TARGET_DIR=	${WRKSRC}/out/rust
 MAKE_ENV+=	NODE_BINARY=${LOCALBASE}/bin/node \
 		NODE_OPTIONS=--max-old-space-size=1024 \
 		OFFLINE_BUILD=1 \
+		PREINSTALLED_YARN=1 \
 		PROTOC_BINARY=${LOCALBASE}/bin/protoc \
 		PYTHON_BINARY=${PYTHON_CMD} \
 		UV_BINARY=${LOCALBASE}/bin/uv \
 		UV_NO_BUILD_ISOLATION=1 \
 		UV_OFFLINE=1 \
-		YARN_BINARY=${LOCALBASE}/bin/yarn \
-		YARN_CACHE_FOLDER=${_MY_YARNCACHE} \
 		out=${WRKSRC}/out
 # If RELEASE is unset the "runner" build system omits the
 # "--release" flag for cargo(1).
@@ -90,7 +88,7 @@ MPV_RUN_DEPENDS=	mpv:multimedia/mpv
 # Should contain the most recent commit that reflects ${DISTVERSION} and must
 # be exactly 8 digits otherwise the check for newer versions won't work as
 # expected.
-_MY_BUILDHASH=	39e4b0b4
+_MY_BUILDHASH=	e62e7739
 # Remove ${CARGO_BUILD_TARGET} from ${CARGO_ENV} to avoid problems with
 # hardcoded paths as the "runner" build system expects its components
 # in ${WRKSRC}/out/rust/debug
@@ -112,8 +110,9 @@ post-patch:
 
 pre-configure:
 	# Create paths for the Python pseudo venv and link some binaries to it.
-	${MKDIR} ${WRKSRC}/out/pyenv/bin
+	${MKDIR} ${WRKSRC}/out/pyenv/bin ${WRKSRC}/out/extracted/node/bin
 	${LN} -s ${PYTHON_CMD} ${WRKSRC}/out/pyenv/bin/python
+	${LN} -s ${WRKDIR}/.bin/yarn ${WRKSRC}/out/extracted/node/bin/yarn
 	# Also move NodeJS modules to the pseudo venv to save some build time
 	${MV} -i ${WRKSRC}/node_modules ${WRKSRC}/out/node_modules
 
diff --git a/games/anki/Makefile.crates b/games/anki/Makefile.crates
index c04be1d8d87f..3f6b16cfdd4d 100644
--- a/games/anki/Makefile.crates
+++ b/games/anki/Makefile.crates
@@ -27,7 +27,6 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		axum-extra-0.10.1 \
 		axum-macros-0.5.0 \
 		backtrace-0.3.75 \
-		base64-0.21.7 \
 		base64-0.22.1 \
 		base64ct-1.8.0 \
 		bitflags-1.3.2 \
@@ -127,7 +126,7 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		foreign-types-shared-0.1.1 \
 		form_urlencoded-1.2.2 \
 		fsevent-sys-4.1.0 \
-		fsrs-6.6.1 \
+		fsrs-6.6.2 \
 		futf-0.1.5 \
 		futures-0.3.31 \
 		futures-channel-0.3.31 \
@@ -145,8 +144,7 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		getrandom-0.4.2 \
 		gimli-0.31.1 \
 		globset-0.4.16 \
-		h2-0.3.27 \
-		h2-0.4.12 \
+		h2-0.4.17 \
 		half-2.6.0 \
 		handlebars-6.3.2 \
 		hashbrown-0.15.5 \
@@ -160,19 +158,15 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		html5ever-0.26.0 \
 		html5ever-0.39.0 \
 		htmlescape-0.3.1 \
-		http-0.2.12 \
 		http-1.3.1 \
-		http-body-0.4.6 \
 		http-body-1.0.1 \
 		http-body-util-0.1.3 \
 		http-range-header-0.4.2 \
 		httparse-1.10.1 \
 		httpdate-1.0.3 \
 		hybrid-array-0.4.11 \
-		hyper-0.14.32 \
 		hyper-1.7.0 \
 		hyper-rustls-0.27.7 \
-		hyper-tls-0.5.0 \
 		hyper-tls-0.6.0 \
 		hyper-util-0.1.16 \
 		iana-time-zone-0.1.63 \
@@ -203,6 +197,7 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		itertools-0.10.5 \
 		itertools-0.13.0 \
 		itertools-0.14.0 \
+		itertools-0.15.0 \
 		itoa-1.0.15 \
 		jiff-0.2.15 \
 		jiff-static-0.2.15 \
@@ -330,7 +325,7 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		pyo3-macros-0.29.0 \
 		pyo3-macros-backend-0.29.0 \
 		quinn-0.11.9 \
-		quinn-proto-0.11.14 \
+		quinn-proto-0.11.16 \
 		quinn-udp-0.5.14 \
 		quote-1.0.40 \
 		r-efi-5.3.0 \
@@ -343,6 +338,7 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		rand_core-0.6.4 \
 		rand_core-0.9.3 \
 		rand_core-0.10.1 \
+		rand_pcg-0.10.2 \
 		rawpointer-0.2.1 \
 		rayon-1.12.0 \
 		rayon-core-1.13.0 \
@@ -351,7 +347,6 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		regex-1.11.2 \
 		regex-automata-0.4.10 \
 		regex-syntax-0.8.6 \
-		reqwest-0.11.27 \
 		reqwest-0.12.23 \
 		ring-0.17.14 \
 		rusqlite-0.36.0 \
@@ -361,7 +356,6 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		rustix-1.0.8 \
 		rustls-0.23.31 \
 		rustls-native-certs-0.8.1 \
-		rustls-pemfile-1.0.4 \
 		rustls-pemfile-2.2.0 \
 		rustls-pki-types-1.12.0 \
 		rustls-webpki-0.103.13 \
@@ -403,7 +397,6 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		snafu-derive-0.8.8 \
 		snafu-derive-0.9.1 \
 		snowflake-1.3.0 \
-		socket2-0.5.10 \
 		socket2-0.6.0 \
 		spin-0.9.9 \
 		stable_deref_trait-1.2.0 \
@@ -419,11 +412,10 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		subtle-2.6.1 \
 		syn-1.0.109 \
 		syn-2.0.106 \
-		sync_wrapper-0.1.2 \
 		sync_wrapper-1.0.2 \
 		synstructure-0.13.2 \
-		system-configuration-0.5.1 \
-		system-configuration-sys-0.5.0 \
+		system-configuration-0.6.1 \
+		system-configuration-sys-0.6.0 \
 		tar-0.4.46 \
 		target-lexicon-0.13.5 \
 		tempfile-3.21.0 \
@@ -529,41 +521,32 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		windows-interface-0.59.1 \
 		windows-link-0.1.3 \
 		windows-numerics-0.2.0 \
+		windows-registry-0.5.3 \
 		windows-result-0.3.4 \
 		windows-strings-0.4.2 \
-		windows-sys-0.48.0 \
 		windows-sys-0.52.0 \
 		windows-sys-0.59.0 \
 		windows-sys-0.60.2 \
-		windows-targets-0.48.5 \
 		windows-targets-0.52.6 \
 		windows-targets-0.53.3 \
 		windows-threading-0.1.0 \
-		windows_aarch64_gnullvm-0.48.5 \
 		windows_aarch64_gnullvm-0.52.6 \
 		windows_aarch64_gnullvm-0.53.0 \
-		windows_aarch64_msvc-0.48.5 \
 		windows_aarch64_msvc-0.52.6 \
 		windows_aarch64_msvc-0.53.0 \
-		windows_i686_gnu-0.48.5 \
 		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.48.5 \
 		windows_i686_msvc-0.52.6 \
 		windows_i686_msvc-0.53.0 \
-		windows_x86_64_gnu-0.48.5 \
 		windows_x86_64_gnu-0.52.6 \
 		windows_x86_64_gnu-0.53.0 \
-		windows_x86_64_gnullvm-0.48.5 \
 		windows_x86_64_gnullvm-0.52.6 \
 		windows_x86_64_gnullvm-0.53.0 \
-		windows_x86_64_msvc-0.48.5 \
 		windows_x86_64_msvc-0.52.6 \
 		windows_x86_64_msvc-0.53.0 \
 		winnow-0.7.13 \
-		winreg-0.50.0 \
 		winreg-0.55.0 \
 		winsafe-0.0.19 \
 		wiremock-0.6.5 \
@@ -596,4 +579,4 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		zstd-safe-7.2.4 \
 		zstd-sys-2.0.15+zstd.1.5.7 \
 		percent-encoding-iri@git+https://github.com/ankitects/rust-url.git?rev=bb930b8d089f4d30d7d19c12e54e66191de47b88\#bb930b8d089f4d30d7d19c12e54e66191de47b88 \
-		linkcheck@git+https://github.com/ankitects/linkcheck.git?rev=184b2ca50ed39ca43da13f0b830a463861adb9ca\#184b2ca50ed39ca43da13f0b830a463861adb9ca
+		linkcheck@git+https://github.com/ankitects/linkcheck.git?rev=2c7c081b148f8c1053df33768bc99f05311cb9a0\#2c7c081b148f8c1053df33768bc99f05311cb9a0
diff --git a/games/anki/distinfo b/games/anki/distinfo
index 31426d3d3234..b490a37d4440 100644
--- a/games/anki/distinfo
+++ b/games/anki/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1785951939
+TIMESTAMP = 1789386293
 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
@@ -57,8 +57,6 @@ SHA256 (rust/crates/axum-macros-0.5.0.crate) = 604fde5e028fea851ce1d8570bbdc034b
 SIZE (rust/crates/axum-macros-0.5.0.crate) = 43571
 SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002
 SIZE (rust/crates/backtrace-0.3.75.crate) = 92665
-SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567
-SIZE (rust/crates/base64-0.21.7.crate) = 82576
 SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
 SIZE (rust/crates/base64-0.22.1.crate) = 81597
 SHA256 (rust/crates/base64ct-1.8.0.crate) = 55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba
@@ -257,8 +255,8 @@ SHA256 (rust/crates/form_urlencoded-1.2.2.crate) = cb4cb245038516f5f85277875cdaa
 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/fsrs-6.6.1.crate) = b8a99ea3dec9af37c9ed3835463ff6820a578a0026a8e370b4c1c0db48dfab3f
-SIZE (rust/crates/fsrs-6.6.1.crate) = 126197
+SHA256 (rust/crates/fsrs-6.6.2.crate) = 89836c0a26b347b585b23824034600b69bfc7f0b0112d0cd656791799eb3a717
+SIZE (rust/crates/fsrs-6.6.2.crate) = 133402
 SHA256 (rust/crates/futf-0.1.5.crate) = df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843
 SIZE (rust/crates/futf-0.1.5.crate) = 11344
 SHA256 (rust/crates/futures-0.3.31.crate) = 65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876
@@ -293,10 +291,8 @@ SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b
 SIZE (rust/crates/gimli-0.31.1.crate) = 279515
 SHA256 (rust/crates/globset-0.4.16.crate) = 54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5
 SIZE (rust/crates/globset-0.4.16.crate) = 26533
-SHA256 (rust/crates/h2-0.3.27.crate) = 0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d
-SIZE (rust/crates/h2-0.3.27.crate) = 169180
-SHA256 (rust/crates/h2-0.4.12.crate) = f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386
-SIZE (rust/crates/h2-0.4.12.crate) = 176264
+SHA256 (rust/crates/h2-0.4.17.crate) = 9f877e75f39e9827ec50a572dd592684ac28c029578726c85f1b2aa6ab807449
+SIZE (rust/crates/h2-0.4.17.crate) = 173830
 SHA256 (rust/crates/half-2.6.0.crate) = 459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9
 SIZE (rust/crates/half-2.6.0.crate) = 59507
 SHA256 (rust/crates/handlebars-6.3.2.crate) = 759e2d5aea3287cb1190c8ec394f42866cb5bf74fcbf213f354e3c856ea26098
@@ -323,12 +319,8 @@ SHA256 (rust/crates/html5ever-0.39.0.crate) = 46a1761807faccc9a19e86944bbf406100
 SIZE (rust/crates/html5ever-0.39.0.crate) = 81764
 SHA256 (rust/crates/htmlescape-0.3.1.crate) = e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163
 SIZE (rust/crates/htmlescape-0.3.1.crate) = 53226
-SHA256 (rust/crates/http-0.2.12.crate) = 601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1
-SIZE (rust/crates/http-0.2.12.crate) = 101964
 SHA256 (rust/crates/http-1.3.1.crate) = f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565
 SIZE (rust/crates/http-1.3.1.crate) = 106063
-SHA256 (rust/crates/http-body-0.4.6.crate) = 7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2
-SIZE (rust/crates/http-body-0.4.6.crate) = 10773
 SHA256 (rust/crates/http-body-1.0.1.crate) = 1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184
 SIZE (rust/crates/http-body-1.0.1.crate) = 6125
 SHA256 (rust/crates/http-body-util-0.1.3.crate) = b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a
@@ -341,14 +333,10 @@ SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994
 SIZE (rust/crates/httpdate-1.0.3.crate) = 10639
 SHA256 (rust/crates/hybrid-array-0.4.11.crate) = 08d46837a0ed51fe95bd3b05de33cd64a1ee88fc797477ca48446872504507c5
 SIZE (rust/crates/hybrid-array-0.4.11.crate) = 36102
-SHA256 (rust/crates/hyper-0.14.32.crate) = 41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7
-SIZE (rust/crates/hyper-0.14.32.crate) = 199622
 SHA256 (rust/crates/hyper-1.7.0.crate) = eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e
 SIZE (rust/crates/hyper-1.7.0.crate) = 157006
 SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58
 SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435
-SHA256 (rust/crates/hyper-tls-0.5.0.crate) = d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905
-SIZE (rust/crates/hyper-tls-0.5.0.crate) = 13257
 SHA256 (rust/crates/hyper-tls-0.6.0.crate) = 70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0
 SIZE (rust/crates/hyper-tls-0.6.0.crate) = 15052
 SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e
@@ -409,6 +397,8 @@ SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d
 SIZE (rust/crates/itertools-0.13.0.crate) = 146261
 SHA256 (rust/crates/itertools-0.14.0.crate) = 2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285
 SIZE (rust/crates/itertools-0.14.0.crate) = 152715
+SHA256 (rust/crates/itertools-0.15.0.crate) = 8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc
+SIZE (rust/crates/itertools-0.15.0.crate) = 164131
 SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
 SIZE (rust/crates/itoa-1.0.15.crate) = 11231
 SHA256 (rust/crates/jiff-0.2.15.crate) = be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49
@@ -663,8 +653,8 @@ SHA256 (rust/crates/pyo3-macros-backend-0.29.0.crate) = 4ca3a1557399783172dc5bf3
 SIZE (rust/crates/pyo3-macros-backend-0.29.0.crate) = 91943
 SHA256 (rust/crates/quinn-0.11.9.crate) = b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20
 SIZE (rust/crates/quinn-0.11.9.crate) = 83606
-SHA256 (rust/crates/quinn-proto-0.11.14.crate) = 434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098
-SIZE (rust/crates/quinn-proto-0.11.14.crate) = 244123
+SHA256 (rust/crates/quinn-proto-0.11.16.crate) = 2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560
+SIZE (rust/crates/quinn-proto-0.11.16.crate) = 244786
 SHA256 (rust/crates/quinn-udp-0.5.14.crate) = addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd
 SIZE (rust/crates/quinn-udp-0.5.14.crate) = 33436
 SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d
@@ -689,6 +679,8 @@ SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b66
 SIZE (rust/crates/rand_core-0.9.3.crate) = 24543
 SHA256 (rust/crates/rand_core-0.10.1.crate) = 63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69
 SIZE (rust/crates/rand_core-0.10.1.crate) = 22833
+SHA256 (rust/crates/rand_pcg-0.10.2.crate) = caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a
+SIZE (rust/crates/rand_pcg-0.10.2.crate) = 15439
 SHA256 (rust/crates/rawpointer-0.2.1.crate) = 60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3
 SIZE (rust/crates/rawpointer-0.2.1.crate) = 7490
 SHA256 (rust/crates/rayon-1.12.0.crate) = fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d
@@ -705,8 +697,6 @@ SHA256 (rust/crates/regex-automata-0.4.10.crate) = 6b9458fa0bfeeac22b5ca447c63aa
 SIZE (rust/crates/regex-automata-0.4.10.crate) = 622754
 SHA256 (rust/crates/regex-syntax-0.8.6.crate) = caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001
 SIZE (rust/crates/regex-syntax-0.8.6.crate) = 358808
-SHA256 (rust/crates/reqwest-0.11.27.crate) = dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62
-SIZE (rust/crates/reqwest-0.11.27.crate) = 163155
 SHA256 (rust/crates/reqwest-0.12.23.crate) = d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb
 SIZE (rust/crates/reqwest-0.12.23.crate) = 161307
 SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7
@@ -725,8 +715,6 @@ SHA256 (rust/crates/rustls-0.23.31.crate) = c0ebcbd2f03de0fc1122ad9bb24b127a5a6c
 SIZE (rust/crates/rustls-0.23.31.crate) = 371259
 SHA256 (rust/crates/rustls-native-certs-0.8.1.crate) = 7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3
 SIZE (rust/crates/rustls-native-certs-0.8.1.crate) = 31129
-SHA256 (rust/crates/rustls-pemfile-1.0.4.crate) = 1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c
-SIZE (rust/crates/rustls-pemfile-1.0.4.crate) = 22092
 SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50
 SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849
 SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79
@@ -809,8 +797,6 @@ SHA256 (rust/crates/snafu-derive-0.9.1.crate) = 5f103c50866b8743da9429b8a581d81a
 SIZE (rust/crates/snafu-derive-0.9.1.crate) = 31882
 SHA256 (rust/crates/snowflake-1.3.0.crate) = 27207bb65232eda1f588cf46db2fee75c0808d557f6b3cf19a75f5d6d7c94df1
 SIZE (rust/crates/snowflake-1.3.0.crate) = 8073
-SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678
-SIZE (rust/crates/socket2-0.5.10.crate) = 58169
 SHA256 (rust/crates/socket2-0.6.0.crate) = 233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807
 SIZE (rust/crates/socket2-0.6.0.crate) = 57974
 SHA256 (rust/crates/spin-0.9.9.crate) = 3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e
@@ -841,16 +827,14 @@ SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67
 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/sync_wrapper-0.1.2.crate) = 2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160
-SIZE (rust/crates/sync_wrapper-0.1.2.crate) = 6933
 SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263
 SIZE (rust/crates/sync_wrapper-1.0.2.crate) = 6958
 SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2
 SIZE (rust/crates/synstructure-0.13.2.crate) = 18950
-SHA256 (rust/crates/system-configuration-0.5.1.crate) = ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7
-SIZE (rust/crates/system-configuration-0.5.1.crate) = 12618
-SHA256 (rust/crates/system-configuration-sys-0.5.0.crate) = a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9
-SIZE (rust/crates/system-configuration-sys-0.5.0.crate) = 6730
+SHA256 (rust/crates/system-configuration-0.6.1.crate) = 3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b
+SIZE (rust/crates/system-configuration-0.6.1.crate) = 17935
+SHA256 (rust/crates/system-configuration-sys-0.6.0.crate) = 8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4
+SIZE (rust/crates/system-configuration-sys-0.6.0.crate) = 11090
 SHA256 (rust/crates/tar-0.4.46.crate) = 3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840
 SIZE (rust/crates/tar-0.4.46.crate) = 70809
 SHA256 (rust/crates/target-lexicon-0.13.5.crate) = adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca
@@ -1061,40 +1045,32 @@ SHA256 (rust/crates/windows-link-0.1.3.crate) = 5e6ad25900d524eaabdbbb96d20b4311
 SIZE (rust/crates/windows-link-0.1.3.crate) = 6154
 SHA256 (rust/crates/windows-numerics-0.2.0.crate) = 9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1
 SIZE (rust/crates/windows-numerics-0.2.0.crate) = 9686
+SHA256 (rust/crates/windows-registry-0.5.3.crate) = 5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e
+SIZE (rust/crates/windows-registry-0.5.3.crate) = 13386
 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
 SIZE (rust/crates/windows-strings-0.4.2.crate) = 13983
-SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9
-SIZE (rust/crates/windows-sys-0.48.0.crate) = 2628884
 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.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
-SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
 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.3.crate) = d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91
 SIZE (rust/crates/windows-targets-0.53.3.crate) = 7099
 SHA256 (rust/crates/windows-threading-0.1.0.crate) = b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6
 SIZE (rust/crates/windows-threading-0.1.0.crate) = 9085
-SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
-SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492
 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.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
-SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483
 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.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
-SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891
 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
@@ -1103,34 +1079,24 @@ SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c56
 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.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
-SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300
 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.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
-SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619
 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.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
-SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486
 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.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
-SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412
 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/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1
-SIZE (rust/crates/winreg-0.50.0.crate) = 29703
 SHA256 (rust/crates/winreg-0.55.0.crate) = cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97
 SIZE (rust/crates/winreg-0.55.0.crate) = 31048
 SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904
@@ -1195,13 +1161,15 @@ SHA256 (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = eb81183ddd97d0c74cedf1d5
 SIZE (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = 774847
 SHA256 (ankitects-rust-url-bb930b8d089f4d30d7d19c12e54e66191de47b88_GH0.tar.gz) = 023bfe9a593704e14a218ad86d90aa6f7e65b76b56c313ed684b8906e3e4e3c5
 SIZE (ankitects-rust-url-bb930b8d089f4d30d7d19c12e54e66191de47b88_GH0.tar.gz) = 394844
-SHA256 (ankitects-linkcheck-184b2ca50ed39ca43da13f0b830a463861adb9ca_GH0.tar.gz) = 58ac773ba2e7c76a9ec3f59ee9571576d76e74d58c4974a1d606d6976e1be70e
-SIZE (ankitects-linkcheck-184b2ca50ed39ca43da13f0b830a463861adb9ca_GH0.tar.gz) = 19408
-SHA256 (anki-26.08.1-node-modules.tar.gz) = cda9f42aebb7fbca18387e7f8bd8fa2f5d1eb4e8827b6dc01fd60664fd8bffb7
-SIZE (anki-26.08.1-node-modules.tar.gz) = 378836946
-SHA256 (ankitects-anki-26.08.1_GH0.tar.gz) = 28ef4b0d0addc9de43e2075ca020308e42e9676f0750dba6fa51946b1b274fef
-SIZE (ankitects-anki-26.08.1_GH0.tar.gz) = 5071329
-SHA256 (ankitects-anki-core-i18n-63e6bbb_GH0.tar.gz) = 0e2bee6641e6f99c4a9d8d665794cca08c8f154767610bbae09e0c5ea5701809
-SIZE (ankitects-anki-core-i18n-63e6bbb_GH0.tar.gz) = 1952307
-SHA256 (ankitects-anki-desktop-ftl-e3200e9_GH0.tar.gz) = 7e552b8b09bfc1a5aa1b39d8af1667fe23fa250b2756bc5d2ba5b92f95a05f11
-SIZE (ankitects-anki-desktop-ftl-e3200e9_GH0.tar.gz) = 272148
+SHA256 (ankitects-linkcheck-2c7c081b148f8c1053df33768bc99f05311cb9a0_GH0.tar.gz) = 630e1c5819edf8a86648c89612f9842bd4e1a09a3f19db30d4492efb2c4814f1
+SIZE (ankitects-linkcheck-2c7c081b148f8c1053df33768bc99f05311cb9a0_GH0.tar.gz) = 19405
+SHA256 (yarn-4.11.0.tgz) = b7ade59ec8008b325eb4bed4360659e33c97942ab292d139c495dd6bdc0ad28c
+SIZE (yarn-4.11.0.tgz) = 1056157
+SHA256 (anki-26.09-node-modules.tar.gz) = 10ce621303e5d264c8094be5adc9f7b89ed8d74fda6059b4ca66c1014b75b1d6
+SIZE (anki-26.09-node-modules.tar.gz) = 91030687
+SHA256 (ankitects-anki-26.09_GH0.tar.gz) = 93b420aa9d8658082d12399c774749267d67ae581880576063b248fb942a8efa
+SIZE (ankitects-anki-26.09_GH0.tar.gz) = 5283532
+SHA256 (ankitects-anki-core-i18n-6fddf1a_GH0.tar.gz) = 9bb5b21201b14bbbe30081a9326bc075105983e780d0261dd4805cb371711136
+SIZE (ankitects-anki-core-i18n-6fddf1a_GH0.tar.gz) = 1964965
+SHA256 (ankitects-anki-desktop-ftl-3303657_GH0.tar.gz) = ddb86db350add5ed5100e64644c169afbf153882141f7d55e25e8e3d1416ab03
+SIZE (ankitects-anki-desktop-ftl-3303657_GH0.tar.gz) = 271282
diff --git a/games/anki/files/packagejsons/package.json b/games/anki/files/packagejsons/package.json
index 42ba0ea6f94b..726fa78ebcf7 100644
--- a/games/anki/files/packagejsons/package.json
+++ b/games/anki/files/packagejsons/package.json
@@ -18,13 +18,13 @@
     },
     "devDependencies": {
         "@bufbuild/protoc-gen-es": "^1.8.0",
-        "@playwright/test": "^1.60.0",
+        "@playwright/test": "^1.62.1",
         "@poppanator/sveltekit-svg": "^5.0.0",
         "@sqltools/formatter": "^1.2.2",
         "@sveltejs/adapter-static": "^3.0.10",
-        "@sveltejs/kit": "^2.60.1",
+        "@sveltejs/kit": "^2.70.3",
         "@sveltejs/vite-plugin-svelte": "5.1",
-        "@types/bootstrap": "^5.0.12",
+        "@types/bootstrap": "^5.2.11",
         "@types/codemirror": "^5.60.0",
         "@types/d3": "^7.0.0",
         "@types/diff": "^5.0.0",
@@ -36,36 +36,36 @@
         "@types/node": "^22",
         "@typescript-eslint/eslint-plugin": "^5.60.1",
         "@typescript-eslint/parser": "^5.60.1",
-        "@vitest/coverage-v8": "3.2.4",
-        "caniuse-lite": "^1.0.30001792",
+        "@vitest/coverage-v8": "3.2.6",
+        "caniuse-lite": "^1.0.30001809",
         "cross-env": "^7.0.2",
         "diff": "^5.0.0",
-        "dprint": "^0.54.0",
-        "esbuild": "^0.28.0",
+        "dprint": "^0.56.0",
+        "esbuild": "^0.28.2",
         "esbuild-sass-plugin": "^3.7.0",
         "esbuild-svelte": "^0.9.5",
         "eslint": "^8.44.0",
-        "eslint-plugin-compat": "^4.1.4",
+        "eslint-plugin-compat": "^6.2.1",
         "eslint-plugin-import": "^2.32.0",
         "eslint-plugin-svelte": "^2",
         "license-checker-rseidelsohn": "=4.4.2",
-        "prettier": "^3.8.3",
+        "prettier": "^3.9.6",
         "prettier-plugin-svelte": "^3.5.2",
-        "sass": "<1.100",
-        "svelte": "^5.55.7",
-        "svelte-check": "^4.4.8",
-        "svelte-preprocess": "^6.0.3",
+        "sass": "<1.103",
+        "svelte": "^5.56.9",
+        "svelte-check": "^4.7.6",
+        "svelte-preprocess": "^6.0.5",
         "svelte-preprocess-esbuild": "^3.0.1",
-        "svgo": "^3.3.3",
+        "svgo": "^3.3.4",
         "tslib": "^2.8.1",
-        "tsx": "^4.22.0",
+        "tsx": "^4.23.12",
         "typescript": "^5.0.4",
         "vite": "6",
         "vitest": "^3"
     },
     "dependencies": {
         "@bufbuild/protobuf": "^1.2.1",
-        "@floating-ui/dom": "^1.7.6",
+        "@floating-ui/dom": "^1.8.0",
         "@fluent/bundle": "^0.19.1",
         "@mdi/svg": "^7.0.96",
         "@popperjs/core": "^2.11.8",
@@ -85,11 +85,9 @@
     },
     "resolutions": {
         "canvas": "npm:empty-npm-package@1.0.0",
-	"_remark": "FreeBSD - Use WASM build because FreeBSD x64 (arm64 probably too) is not yet supported by the native Rollup build.",
-	"rollup": "npm:@rollup/wasm-node",
         "cookie": "0.7.0",
         "devalue": "^5.8.0",
-        "tar": "^7.5.7",
+        "tar": "^7.5.21",
         "vite": "6",
         "js-yaml": "^4.1.1",
         "glob": "^10.5.0"
diff --git a/games/anki/files/packagejsons/yarn.lock b/games/anki/files/packagejsons/yarn.lock
index 2cb5f375c1fe..d079ac2173a6 100644
--- a/games/anki/files/packagejsons/yarn.lock
+++ b/games/anki/files/packagejsons/yarn.lock
@@ -1,5001 +1,8656 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@ampproject/remapping@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
-  integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
-  dependencies:
-    "@jridgewell/gen-mapping" "^0.3.5"
-    "@jridgewell/trace-mapping" "^0.3.24"
-
-"@babel/helper-string-parser@^7.29.7":
-  version "7.29.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f"
-  integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==
-
-"@babel/helper-validator-identifier@^7.29.7":
-  version "7.29.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2"
-  integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==
-
-"@babel/parser@^7.25.4":
-  version "7.29.7"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334"
-  integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==
-  dependencies:
-    "@babel/types" "^7.29.7"
-
-"@babel/types@^7.25.4", "@babel/types@^7.29.7":
-  version "7.29.7"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92"
-  integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==
-  dependencies:
-    "@babel/helper-string-parser" "^7.29.7"
-    "@babel/helper-validator-identifier" "^7.29.7"
-
-"@bcoe/v8-coverage@^1.0.2":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz#bbe12dca5b4ef983a0d0af4b07b9bc90ea0ababa"
-  integrity sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==
-
-"@bufbuild/protobuf@1.10.1", "@bufbuild/protobuf@^1.10.1", "@bufbuild/protobuf@^1.2.1":
-  version "1.10.1"
-  resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.10.1.tgz#1d76d15290c0212076c15ede94d15157ba0c6344"
-  integrity sha512-wJ8ReQbHxsAfXhrf9ixl0aYbZorRuOWpBNzm8pL8ftmSxQx/wnJD5Eg861NwJU/czy2VXFIebCeZnZrI9rktIQ==
-
-"@bufbuild/protoc-gen-es@^1.8.0":
-  version "1.10.1"
-  resolved "https://registry.yarnpkg.com/@bufbuild/protoc-gen-es/-/protoc-gen-es-1.10.1.tgz#f46f8bcb248c7b768a6ffbc0a8c56a23dfabc38d"
-  integrity sha512-YADugbvibIdZSb0NGf5OF87IyKTuMvMFZ7vMHgm6pL1SCfDwJ/ZRianTdrPG9hq/gOipK+NwHmXBViyS3J7nxA==
-  dependencies:
-    "@bufbuild/protobuf" "^1.10.1"
-    "@bufbuild/protoplugin" "1.10.1"
-
-"@bufbuild/protoplugin@1.10.1":
-  version "1.10.1"
-  resolved "https://registry.yarnpkg.com/@bufbuild/protoplugin/-/protoplugin-1.10.1.tgz#1d7fdf4aa7aa8a960f4a80e107bb9debb2c6c480"
-  integrity sha512-LaSbfwabAFIvbVnbn8jWwElRoffCIxhVraO8arliVwWupWezHLXgqPHEYLXZY/SsAR+/YsFBQJa8tAGtNPJyaQ==
-  dependencies:
-    "@bufbuild/protobuf" "1.10.1"
-    "@typescript/vfs" "^1.4.0"
-    typescript "4.5.2"
-
-"@dprint/darwin-arm64@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/darwin-arm64/-/darwin-arm64-0.54.0.tgz#9230db5eb0f79dca83e92e43dce86a623c9d7844"
-  integrity sha512-yqRI4enH+BDp+4+ZsPVdZM5h873JK1lN7li9l9A5u4C4cvh1oEsiBWAzEPccRkJ2ctF8LgaizBSxO38sqEVYbw==
-
-"@dprint/darwin-x64@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/darwin-x64/-/darwin-x64-0.54.0.tgz#f69a648119db311d60ba6dbaa1bdf187906ea8de"
-  integrity sha512-W9BARpgHypcQwatg5mnHaCpX6pLX5dBxxiv+tZKruhOmq8MKYOrAYDXlceMuHSowmWREfUF5yL4SRgXDGI6WQw==
-
-"@dprint/linux-arm64-glibc@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/linux-arm64-glibc/-/linux-arm64-glibc-0.54.0.tgz#2f87723e9fc878b1c8a05f294798f12692646a4f"
-  integrity sha512-VhM7p70VFuNqxZMdiv1e+nMboPj/hMFlTIBWrRaX7+6VThs9mJr9+94wrUeXgfnfsyaEKSbRFa/dru1PINoSNw==
-
-"@dprint/linux-arm64-musl@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/linux-arm64-musl/-/linux-arm64-musl-0.54.0.tgz#8d921aedeb25d60b68d601f7eedeb244b3719d59"
-  integrity sha512-QS1A74Lv60/L9oemHCzbHgOLbV2smSJG5IxS5fjf8ZWetyUt918WDzIHBilz/+uiB+OlW2UVTsm952UG0YOrLw==
-
-"@dprint/linux-loong64-glibc@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/linux-loong64-glibc/-/linux-loong64-glibc-0.54.0.tgz#caf1a1416eb48f4ead2e7505bf672307c19de7cc"
-  integrity sha512-8Myka2/0KbhuZnEKL6jagPXTgDKVpd/tfXDRa0oibUBgaqOSku6iRMzHGa/PhqHL+s14Gcp+/cIHz0zU3Tkgug==
-
-"@dprint/linux-loong64-musl@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/linux-loong64-musl/-/linux-loong64-musl-0.54.0.tgz#a790407dfa8a47a591304bc6b1144cf28341abbc"
-  integrity sha512-/AN3xCuMhC4PK7Pbj7/4zBuhFGr4m0OHV/5uGTfzpkKX/3+AXoyKl7PbT2VlNMGXAK0kuRThfjtx23gIwlWk7Q==
-
-"@dprint/linux-riscv64-glibc@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/linux-riscv64-glibc/-/linux-riscv64-glibc-0.54.0.tgz#6c77a8579d9cd3f6880645c27cd35fb7e0109594"
-  integrity sha512-Aw2vXzzwFDpPbXh6ajsSabVCkCc66C3hCyMKprR/IxYvFtjYX80nh1ox0c7iaw6c4HacHMRLGw7FUSXvomPaEQ==
-
-"@dprint/linux-x64-glibc@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/linux-x64-glibc/-/linux-x64-glibc-0.54.0.tgz#ce4dbcd25aea883ad3dd85e0cc7c44faa9f4be50"
-  integrity sha512-zZqj3wQELOX8n6QfT2uuWoMf64Wv0lMXNyam3btm+PKkg0P6a54TPL09Bs9XsViOdxgTcamsiQ7HlErt/LEjIA==
-
-"@dprint/linux-x64-musl@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/linux-x64-musl/-/linux-x64-musl-0.54.0.tgz#16a01f3c954bd6eb60305a59edaf8365bfb115fa"
-  integrity sha512-it6Qdt06dyW2adbAXpOCb7/KQLxlm4i1UphUAWqWsZk4t3EYetyAza9J0g3Vu9itIWSEIo9MnccgANckQJ6+qw==
-
-"@dprint/win32-arm64@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/win32-arm64/-/win32-arm64-0.54.0.tgz#0a737b41e7d243bda9e037b9637c34dd6a96a534"
-  integrity sha512-F5kjV/6I9YtNOTDWHUpTqM2HHHS510BPL7z4NJuU0nDnaVeks7GwNEltGr56CcsG8XQYhkiAsqZytPu6AhA2hQ==
-
-"@dprint/win32-x64@0.54.0":
-  version "0.54.0"
-  resolved "https://registry.yarnpkg.com/@dprint/win32-x64/-/win32-x64-0.54.0.tgz#b01c7508e416283428554b682cc3ac09a6fe93e5"
-  integrity sha512-AAr2ye/DtgYXDplRoPS+5U++x7T6W4a3I9FvTFWFxziFmUptvAg5G2c4FcXoAduSruhYZJvjDZrLseR2c3IwXg==
-
-"@esbuild/aix-ppc64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c"
-  integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==
-
-"@esbuild/aix-ppc64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz#7a01a8d2ec2fbb2dac78adad09b0fa781e4082be"
-  integrity sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==
-
-"@esbuild/android-arm64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752"
-  integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==
-
-"@esbuild/android-arm64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz#b540a27d14e4afd058496a4dbec4d3f414db110a"
-  integrity sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==
-
-"@esbuild/android-arm@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a"
-  integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==
-
-"@esbuild/android-arm@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.1.tgz#704bd297de6d762de54eabbeafbf55f6756abe2f"
-  integrity sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==
-
-"@esbuild/android-x64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16"
-  integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==
-
-"@esbuild/android-x64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.1.tgz#d1cb166d34b0fbf0fe8ab460a5594f24a378701e"
-  integrity sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==
-
-"@esbuild/darwin-arm64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd"
-  integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==
-
-"@esbuild/darwin-arm64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz#1034b26457fc886368fe61bbd09f653f6afa8e54"
-  integrity sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==
-
-"@esbuild/darwin-x64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e"
-  integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==
-
-"@esbuild/darwin-x64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz#65556a432a1e4d72032d8218c1932fcca1a49772"
-  integrity sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==
-
-"@esbuild/freebsd-arm64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe"
-  integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==
-
-"@esbuild/freebsd-arm64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz#2e61e0592f9030d7e3dae18ee25ebc535918aef6"
-  integrity sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==
-
-"@esbuild/freebsd-x64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3"
-  integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==
-
-"@esbuild/freebsd-x64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz#c95ec289959ef8079c4dca817a1e2c4be66b9bd3"
-  integrity sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==
-
-"@esbuild/linux-arm64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977"
-  integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==
-
-"@esbuild/linux-arm64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz#40b22175dda06182f3ee8141186c5ff304c4a717"
-  integrity sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==
-
-"@esbuild/linux-arm@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9"
-  integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==
-
-"@esbuild/linux-arm@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz#c09a0f67917592ac0de892a9be4d3814debd2a6c"
-  integrity sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==
-
-"@esbuild/linux-ia32@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0"
-  integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==
-
-"@esbuild/linux-ia32@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz#a580f9c676797833891e519fc7a1337c8afd8db3"
-  integrity sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==
-
-"@esbuild/linux-loong64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0"
-  integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==
-
-"@esbuild/linux-loong64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz#46452cf321dc7f9e91c2fa780a56bb56e79cd68b"
-  integrity sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==
-
-"@esbuild/linux-mips64el@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd"
-  integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==
-
-"@esbuild/linux-mips64el@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz#4211b3184dd6608f53dcb22e39f5d34ee08852c8"
-  integrity sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==
-
-"@esbuild/linux-ppc64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869"
-  integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==
-
-"@esbuild/linux-ppc64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz#697857c2a61cb9b0b6bb6652e40c1dc5e1ca8e5d"
-  integrity sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==
-
-"@esbuild/linux-riscv64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6"
-  integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==
-
-"@esbuild/linux-riscv64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz#d192943eb146a40ac4c6497d0cf7be35b986bf08"
-  integrity sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==
-
-"@esbuild/linux-s390x@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663"
-  integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==
-
-"@esbuild/linux-s390x@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz#acea0356da0e0ebc08f97cf7b9c2e401e1e648dc"
-  integrity sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==
-
-"@esbuild/linux-x64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306"
-  integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==
-
-"@esbuild/linux-x64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz#6f0c3ce0cb64c534b70c4c45ecb2c16d34e35dfd"
-  integrity sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==
-
-"@esbuild/netbsd-arm64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4"
-  integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==
-
-"@esbuild/netbsd-arm64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz#8bcd77077a0dce3378b574fedb26d2a253b73d36"
-  integrity sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==
-
-"@esbuild/netbsd-x64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076"
-  integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==
-
-"@esbuild/netbsd-x64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz#e7fb2a01e99c830c94e6623cd9fefb4c8fb58347"
-  integrity sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==
-
-"@esbuild/openbsd-arm64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd"
-  integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==
-
-"@esbuild/openbsd-arm64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz#c52909372db8b86e2c55e05a8940033b5660a3b2"
-  integrity sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==
-
-"@esbuild/openbsd-x64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679"
-  integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==
-
-"@esbuild/openbsd-x64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz#c427b9be5a64c262ff9a7eb70b5fbbaadf446c6c"
-  integrity sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==
-
-"@esbuild/openharmony-arm64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d"
-  integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==
-
-"@esbuild/openharmony-arm64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz#dc9b147baca2e6c4b3c85571741ef4860a489097"
-  integrity sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==
-
-"@esbuild/sunos-x64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6"
-  integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==
-
-"@esbuild/sunos-x64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz#ce866d12df13c15e4c99f073a3d466f6e0649b3a"
-  integrity sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==
-
-"@esbuild/win32-arm64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323"
-  integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==
-
-"@esbuild/win32-arm64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz#7468e3692d01d629d5941e5d83817bb80f9e39b4"
-  integrity sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==
-
-"@esbuild/win32-ia32@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267"
-  integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==
-
-"@esbuild/win32-ia32@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz#a5bc0063fb2bcab6d0ed63f2a1537958bc269ec6"
-  integrity sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==
-
-"@esbuild/win32-x64@0.25.12":
-  version "0.25.12"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5"
-  integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==
-
-"@esbuild/win32-x64@0.28.1":
-  version "0.28.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz#10064ee44f4347b90c9a02b446bbf80a91632b12"
-  integrity sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==
-
*** 13478 LINES SKIPPED ***