anki: 25.02.5 -> 25.07.5 (#425219)

This commit is contained in:
Gaétan Lepage
2025-08-27 16:29:25 +02:00
committed by GitHub
7 changed files with 3134 additions and 182 deletions
+96 -82
View File
@@ -3,9 +3,9 @@
stdenv,
writableTmpDirAsHomeHook,
buildEnv,
cargo,
fetchFromGitHub,
fetchurl,
installShellFiles,
lame,
mpv-unwrapped,
@@ -16,9 +16,11 @@
jq,
protobuf,
python3,
python3Packages,
qt6,
rsync,
rustPlatform,
uv,
writeShellScriptBin,
yarn,
yarn-berry_4,
@@ -32,12 +34,16 @@ let
yarn-berry = yarn-berry_4;
pname = "anki";
version = "25.02.5";
rev = "29192d156ae60d6ce35e80ccf815a8331c9db724";
version = "25.07.5";
rev = "7172b2d26684c7ef9d10e249bd43dc5bf73ae00c";
srcHash = "sha256-lx3tK57gcQpwmiqUzO6iU7sE31LPFp6s80prYaB2jHE=";
cargoHash = "sha256-BPCfeUiZ23FdZaF+zDUrRZchauNZWQ3gSO+Uo9WRPes=";
yarnHash = "sha256-3G+9N3xOzog3XDCKDQJCY/6CB3i6oXixRgxEyv7OG3U=";
srcHash = "sha256-nWxRr55Hm40V3Ijw+WetBKNoreLpcvRscgbOZa0REcY=";
cargoHash = "sha256-H/xwPPL6VupSZGLPEThhoeMcg12FvAX3fmNM6zYfqRQ=";
yarnHash = "sha256-adHnV345oDm20R8zGdEiEW+8/mTQAz4oxraybRfmwew=";
pythonDeps = map (meta: {
url = meta.url;
path = toString (fetchurl meta);
}) (lib.importJSON ./uv-deps.json);
src = fetchFromGitHub {
owner = "ankitects";
@@ -66,19 +72,39 @@ let
exec ${yarn}/bin/yarn "$@"
'';
anki-build-python = python3.withPackages (ps: with ps; [ mypy-protobuf ]);
uvWheels = stdenv.mkDerivation {
name = "uv-wheels";
phases = [ "installPhase" ];
pyEnv = buildEnv {
name = "anki-pyenv-${version}";
paths = with python3.pkgs; [
pip
anki-build-python
];
pathsToLink = [ "/bin" ];
# otherwise, it's too long of a string
passAsFile = [ "installCommand" ];
installCommand = ''
#!${stdenv.shell}
mkdir -p $out
# note: uv.lock doesn't contain build deps?? https://github.com/astral-sh/uv/issues/5190
# link them in manually
ln -vsf ${python3Packages.setuptools.dist}/*.whl $out
ln -vsf ${python3Packages.editables.dist}/*.whl $out
# we also force nixpkgs pyqt6 stuff because that needs to match the
# nixpkgs qt6 version, otherwise we get linker errors
ln -vsf ${python3Packages.pyqt6.dist}/*.whl $out
ln -vsf ${python3Packages.pyqt6-webengine.dist}/*.whl $out
ln -vsf ${python3Packages.pyqt6-sip.dist}/*.whl $out
''
+ (lib.strings.concatStringsSep "\n" (
map (dep: ''
if ! [[ "${builtins.baseNameOf dep.url}" =~ (PyQt|pyqt) ]]; then
ln -vsf ${dep.path} "$out/${builtins.baseNameOf dep.url}"
fi
'') pythonDeps
));
installPhase = ''bash $installCommandPath'';
};
in
python3.pkgs.buildPythonApplication rec {
format = "setuptools";
python3Packages.buildPythonApplication rec {
format = "other";
inherit pname version;
outputs = [
@@ -93,6 +119,7 @@ python3.pkgs.buildPythonApplication rec {
./patches/disable-auto-update.patch
./patches/remove-the-gl-library-workaround.patch
./patches/skip-formatting-python-code.patch
./patches/fix-compilation-under-rust-1.89.patch
# Used in with-addons.nix
./patches/allow-setting-addons-folder.patch
];
@@ -107,6 +134,7 @@ python3.pkgs.buildPythonApplication rec {
};
nativeBuildInputs = [
uv
cargo
installShellFiles
jq
@@ -126,60 +154,7 @@ python3.pkgs.buildPythonApplication rec {
]
++ lib.optional stdenv.hostPlatform.isLinux qt6.qtwayland;
propagatedBuildInputs = with python3.pkgs; [
# This rather long list came from running:
# grep --no-filename -oE "^[^ =]*" python/{requirements.base.txt,requirements.bundle.txt,requirements.qt6_lin.txt} | \
# sort | uniq | grep -v "^#$"
# in their repo at the git tag for this version
# There's probably a more elegant way, but the above extracted all the
# names, without version numbers, of their python dependencies. The hope is
# that nixpkgs versions are "close enough"
# I then removed the ones the check phase failed on (pythonCatchConflictsPhase)
attrs
beautifulsoup4
blinker
build
certifi
charset-normalizer
click
colorama
decorator
flask
flask-cors
google-api-python-client
idna
importlib-metadata
itsdangerous
jinja2
jsonschema
markdown
markupsafe
orjson
packaging
pip
pip-system-certs
pip-tools
protobuf
pyproject-hooks
pyqt6
pyqt6-sip
pyqt6-webengine
pyrsistent
pysocks
requests
send2trash
setuptools
soupsieve
tomli
urllib3
waitress
werkzeug
wheel
wrapt
zipp
];
nativeCheckInputs = with python3.pkgs; [
nativeCheckInputs = with python3Packages; [
pytest
mock
astroid
@@ -207,6 +182,12 @@ python3.pkgs.buildPythonApplication rec {
NODE_BINARY = lib.getExe nodejs;
PROTOC_BINARY = lib.getExe protobuf;
PYTHON_BINARY = lib.getExe python3;
UV_BINARY = lib.getExe uv;
UV_NO_MANAGED_PYTHON = "1";
UV_SYSTEM_PYTHON = true;
UV_PYTHON_DOWNLOADS = "never";
UV_OFFLINE = "1";
UV_FIND_LINKS = "${uvWheels}";
};
buildPhase = ''
@@ -216,17 +197,40 @@ python3.pkgs.buildPythonApplication rec {
mkdir -p out/pylib/anki .git
echo ${builtins.substring 0 8 rev} > out/buildhash
echo ${python3.version} > .python-version
ln -vsf ${pyEnv} ./out/pyenv
# Setup the python environment.
# We have 'UV_FIND_LINKS' set, so packages generally should just get picked
# up, so install everything anki wants.
# Note, for pyqt stuff, our versions may not match (see the comment above
# uvWheels), so we don't install those.
mkdir -p ./out/pyenv
uv export > requirements.txt
uv pip install --prefix ./out/pyenv -r requirements.txt
uv export --project qt --extra qt --extra audio \
--no-emit-package "pyqt6" \
--no-emit-package "pyqt6-qt6" \
--no-emit-package "pyqt6-webengine" \
--no-emit-package "pyqt6-webengine-qt6" \
--no-emit-package "pyqt6-sip" \
> requirements.txt
uv pip install --prefix ./out/pyenv -r requirements.txt
uv export --project pylib > requirements.txt
uv pip install --prefix ./out/pyenv -r requirements.txt
# anki's build tooling expects python in there too
ln -sf $PYTHON_BINARY ./out/pyenv/bin/python
mv node_modules out
# Run everything else
# And finally build
patchShebangs ./ninja
export PYTHONPATH=$PYTHONPATH:$PWD/out/pyenv/lib/python${python3.pythonVersion}/site-packages
# Necessary for yarn to not complain about 'corepack'
jq 'del(.packageManager)' package.json > package.json.tmp && mv package.json.tmp package.json
YARN_BINARY="${lib.getExe noInstallYarn}" PIP_USER=1 ./ninja build wheels
YARN_BINARY="${lib.getExe noInstallYarn}" PIP_USER=1 \
./ninja build wheels
'';
# mimic https://github.com/ankitects/anki/blob/76d8807315fcc2675e7fa44d9ddf3d4608efc487/build/ninja_gen/src/python.rs#L232-L250
@@ -247,6 +251,7 @@ python3.pkgs.buildPythonApplication rec {
in
''
runHook preCheck
export PYTHONPATH=$PYTHONPATH:$PWD/out/pyenv/lib/python${python3.pythonVersion}/site-packages
HOME=$TMP ANKI_TEST_MODE=1 PYTHONPATH=$PYTHONPATH:$PWD/out/pylib \
pytest -p no:cacheprovider pylib/tests -k ${disabledTestsString}
HOME=$TMP ANKI_TEST_MODE=1 PYTHONPATH=$PYTHONPATH:$PWD/out/pylib:$PWD/pylib:$PWD/out/qt \
@@ -254,17 +259,21 @@ python3.pkgs.buildPythonApplication rec {
runHook postCheck
'';
preInstall = ''
mkdir dist
mv out/wheels/* dist
'';
installPhase = ''
runHook preInstall
postInstall = ''
install -D -t $out/share/applications qt/bundle/lin/anki.desktop
mkdir -p $out
uv pip install out/wheels/*.whl --prefix $out
# remove non-anki bins from dependencies
find $out/bin -type f ! -name "anki*" -delete
install -D -t $out/share/applications qt/launcher/lin/anki.desktop
install -D -t $doc/share/doc/anki README* LICENSE*
install -D -t $out/share/mime/packages qt/bundle/lin/anki.xml
install -D -t $out/share/pixmaps qt/bundle/lin/anki.{png,xpm}
installManPage qt/bundle/lin/anki.1
install -D -t $out/share/mime/packages qt/launcher/lin/anki.xml
install -D -t $out/share/pixmaps qt/launcher/lin/anki.{png,xpm}
installManPage qt/launcher/lin/anki.1
runHook postInstall
'';
preFixup = ''
@@ -304,5 +313,10 @@ python3.pkgs.buildPythonApplication rec {
];
# Reported to crash at launch on darwin (as of 2.1.65)
broken = stdenv.hostPlatform.isDarwin;
badPlatforms = [
# pyqt6-webengine is broken on darwin
# https://github.com/NixOS/nixpkgs/issues/375059
lib.systems.inspect.patterns.isDarwin
];
};
}
+70 -87
View File
@@ -7,74 +7,56 @@
"@dprint/linux-x64-musl@npm:0.47.4": "c8b4c979a92fe897220877b40d59aa6e899ca2a39ce5368ba181ef3c3a376a119f4608b2a5e5271d1d811e055882cad86b890abd91970a32fb32ecfb5bbebdd7",
"@dprint/win32-arm64@npm:0.47.4": "5278a87a006758a9fe2b870a571895a6b19afb938cff35a180f192413ddfb8a4b612fcd1817c92e03dc0b587ed0c8ff750213c59d60ef3f0d02a4e2a4c938c5a",
"@dprint/win32-x64@npm:0.47.4": "5c5737f28ca10e51f3a548ad0160868a0b643f56a32eae5c8c151944ff47cb79aa109630c1ecf458233c2a3b521d5d284d3a25b60bbcd38885e7908f0db25d16",
"@esbuild/aix-ppc64@npm:0.19.12": "0740fd9160dffa94e55cd58d2f9faf4624a2be68d2696376d5c60cfced508809275eac76315796a1aef8daf3b0975b0df0f2d94de10c14c3f40087b7c6eeb047",
"@esbuild/aix-ppc64@npm:0.21.5": "1f48fea96ab4fbc2921756361bc8a0c4d0690f14dc2298a357aa3d436bcd1cd646d490e5d71c4e0fb46b9e04401bc93153d6886456dd0665b6758be643c95a16",
"@esbuild/android-arm64@npm:0.18.20": "8c1aa2455aab70b61c19e5d818ce418090a6a300619df48000a10ba0caf4649b388d4d039771a5b012621246dcb5ff9bd6b86c98ad74b62caa0e26e821870456",
"@esbuild/android-arm64@npm:0.19.12": "29d94e32a47af3ae1cc7c0364b00b3145db0b16539bd8d30356bb3a8769499867a7a3f1bc070f10a63cdb33c29752a43f3e4d4594a316e7d179e82bf12edf47c",
"@esbuild/android-arm64@npm:0.21.5": "7a4831b0886c165ed671f0094dcd491235fe503364a261379c84e2225a3c3230a06bce1d3a02316fa8a040b0ffede56c617746dc3b5550549ae3fb07095bb20d",
"@esbuild/android-arm@npm:0.18.20": "c38427fdc325049c8d73237693c637f829de68293d853c41e9ac1ef70773fc6099ab6008194216f89e1f22855fdf7e6ef8f01ee46353fcbc3bea387ab592cfe0",
"@esbuild/android-arm@npm:0.19.12": "f6784506ff94332d1332536cfcabe54dacb6ddc0ce285cdc3d00bb30a71c5dc57b81e3552354c59fe992d6dbc0f66eb8040d18cba76d44ee9cd7b7ed2a3feece",
"@esbuild/android-arm@npm:0.21.5": "9fa871018a9f2198f40fde2c672fcb1b9d3ab5ee602644ea4cf68c548ee2c0b6c60ad851ce85219f84886fd29757d8c49bac28ea48a2a16708a088e32dfe673a",
"@esbuild/android-x64@npm:0.18.20": "751957e816cf676117fbec20ab530fe2ce818492fbf32c8f6d9bb24e5963b54395b903adab95f6b874e4191845177f8e9cdd771f6b42298552b8573a5f24a150",
"@esbuild/android-x64@npm:0.19.12": "6253d60665402e38a080c101651c6e1617002b7aa53ed7a81f33d89fd5f99f37f11757bdd534faa3bf115dacf4723412a7cda532abdf0458bb478340772ba8d1",
"@esbuild/android-x64@npm:0.21.5": "24e477ccdaf1437cabe8710bc052a13b975a53617094a225e39823a1c562a71ef975d860ab895c129a813302495d85387143e27068e62fc897a2ac0335e4a2f6",
"@esbuild/darwin-arm64@npm:0.18.20": "16b1feeec7b1523da839e834e77f85a722bda5f2a9fb6800455e55684bd59bc11f8988b91ffefdb5ba3f4e8c1d7958f58413c74c729de92c26e31e0c326f658e",
"@esbuild/darwin-arm64@npm:0.19.12": "d934b758e8d6f7c69660f699a627963742a79dd5a917855c878700cc70eda3e629461e1fc69f8bb7242c15ec84f015e40f6877acd599604b784190514de4717f",
"@esbuild/darwin-arm64@npm:0.21.5": "67b0e4ebc870d0babb6721328f02b0e75eca5ee8f176220fa194ac5897ce76a27aa4f6d724389a74e1517670f70e766fe03c30875fdebeee5b1f7b22e99c5a1f",
"@esbuild/darwin-x64@npm:0.18.20": "a80288dea978a549e4fc42a3b1f0a1bc5f6341bbde3788b6b9fd6b9ba6ffd92a0b61cfe608543a8455d292d00094abbe7dc51bcd6487c9dc796a2e543299a9c4",
"@esbuild/darwin-x64@npm:0.19.12": "a436c4b3037a6a68c2b11fe487057c2cd4579363d94562d026a6d1a58eaf019c6ea94ba109e0b0a0597526fb6d2244d261fb7e6a18648f375ec90898b8bc14d6",
"@esbuild/darwin-x64@npm:0.21.5": "a4b6df47edf4b1e91eeca9d7af18f538e25615e00763709a4cc24a8918e7ac93b9bfc2ef9f44086f16257d05ad99e23c1213a7a1397475d1a78f0a1e773af89a",
"@esbuild/freebsd-arm64@npm:0.18.20": "72b69f1ba7fe6e8b7708809054cd96e9af3fd0bd561ce414c3bf7638abab15f7efc3782060dc7aa56dd4d1fcd43204355f2e0182a356d105a44e7c2efdec470c",
"@esbuild/freebsd-arm64@npm:0.19.12": "527060fd8bc2c9771d861a9a62935605e190dc17f454408fd87afc7d2fafe2a35cbca5cb171aaeab28cce187a21e5e2bfd607014e229360a8b4fa32438393203",
"@esbuild/freebsd-arm64@npm:0.21.5": "a4cf357807f2ea445b5191b8e5488070b567e2b534dba24ce6f8f1a332598ee0b9ffa41b3b0e55cd0cf57e2b56f0f1d84413faba182b81cb43bf19edf58a7654",
"@esbuild/freebsd-x64@npm:0.18.20": "b2cdcd81f3f7cd7be2f72c38790698993a6853ad241193bf085c2ad5d2df1495478a9d67a2282a54efeee3b827c26a412795b8064e19321c7aaf59ffc34f293f",
"@esbuild/freebsd-x64@npm:0.19.12": "b4d54892b0eec50f259fa6ab5527a5b4e48e1c68351d2c8febf60835bb5ac957564d2ab2ddf16ee66335b58a69ec367f48b125fb9646f8a39a11e1248c579501",
"@esbuild/freebsd-x64@npm:0.21.5": "8957c1345196e5dabd7d9f290b5292161f5d9955f269051fa7873118cfb5a20c31d70771ea3560b513f879d0948ba32fba915fb1b387571c4fbbb1fbeaf2dd87",
"@esbuild/linux-arm64@npm:0.18.20": "08216b531dc42e48abb6754f2b4f7f633055cd666ceb77c220c61c25aa84479b36ddeab25ecc23cf22965354314b84cabf1e8408a5cb1ba57b8343475613a782",
"@esbuild/linux-arm64@npm:0.19.12": "23dd17cd5b3f3d64726baa5632bd8079059ebf8419e3f9e82d900f8c781a7788980f6e6d1a604c1d84bd539f555227559f4916d52e2447a30f5886bbf1ed486c",
"@esbuild/linux-arm64@npm:0.21.5": "1b95b17ed94eb977e38ea9130e677551b7cf0ccccdb3f23a9f8b59b5d67400817c2a417e4f043295bd3f67796853da2a1b1a8ca201ffe745efb40a144dfdc99c",
"@esbuild/linux-arm@npm:0.18.20": "8fc75953ddebd11be542a224e0c73971e83556272d75d3f4023bebf4b0658a68314ee5721eb5dfabffb9ca9afcd7ae5404425f3d56cc6363c68bffa86f08fac3",
"@esbuild/linux-arm@npm:0.19.12": "76b9b411ba41320d57632347d1a09db7e745aec425db2cffe1c6467928c8d67bc122b544aa7fcbdca74a32262bfe0d48aa479931f6943bd84434389fada189a0",
"@esbuild/linux-arm@npm:0.21.5": "6bfcd098ada5e6117d028777e5cc58456c2f570157fa0a0dce30c9d05b8389b86f74bf6b862534bf6994d342946c98b6774e1820880fd289765864b668e94c17",
"@esbuild/linux-ia32@npm:0.18.20": "563d35963cfb7b94fec9e22986a4edfa8fd4f6d6d82fa6be1833eb7c50b996cdc9b53a656e2ccf02dc2ecc8676748b02d77ad20afbaf087ef802e562790390fa",
"@esbuild/linux-ia32@npm:0.19.12": "be7a5294d9387fe09e154c5c771761291ce2278c2e04d36396f737736d185ab4a23d97830afaec67bb593549745ba9e240ac86b0ad4c0e0044e553c408105aed",
"@esbuild/linux-ia32@npm:0.21.5": "73c249c9918f0c9a9268ffe14fe745f5e7564b309dcea213da08a5e4367ffdfc8df4b004c70f80269dce0f653a3280cfdd8bf9a7a616b5b60649e4faea6e69b5",
"@esbuild/linux-loong64@npm:0.18.20": "8a728161c3221ecc35e8d55f700d065e59fefbed5130feea6e3975f1e209cc8c31de55d908ff4abf29ec2d37e88e22f9b2590e9764e72a47825610b104a39374",
"@esbuild/linux-loong64@npm:0.19.12": "964386dd94bdd05383e6a8223a6af222a113bef78e4c8f7a77684c9c2e56c30d876c502ce4d28b4d91d21c402cdd491eb1e62bb72448c7077276c4714b299263",
"@esbuild/linux-loong64@npm:0.21.5": "60977efe24b3b6e1461d49da07dd57c1234992b9d2e6ac7d0dedfee538321d42be25e496ffb193121d3a6c6ca6ea6722b880e95695824dcc6643a3d9426b2296",
"@esbuild/linux-mips64el@npm:0.18.20": "e5d99e6c151323ea3ca5ddd6cbaab9bde45424932282adce064d90ad4e26fcaef1adce54b01734641616f65b89f1a5a69a715a9d05368b7c496a46c9ccca4744",
"@esbuild/linux-mips64el@npm:0.19.12": "5608d554f1db3311315eb29780e312e66d106d41ad53fb3458e201fbbddda198836fc4ca04314f7ae4e61462214c92494928804abab0759a384adff773da40d0",
"@esbuild/linux-mips64el@npm:0.21.5": "20fb6c8f6e58f66cd4351034858b2ad85bda4144576b180979305cfabed43780a71934e9f176e476c719f14e37253b231a43d46638ad232989d5f4dd72ec6b75",
"@esbuild/linux-ppc64@npm:0.18.20": "aebef9d269b964698128199821c8b1d9a45ca1898656d12add3f52cd335b098923565b7ef3bdea37297b14991f56f6b351681229d153904819b767ccc3af97db",
"@esbuild/linux-ppc64@npm:0.19.12": "7523a8c6b4b46324698b6aecfc661b369326099ebf72a36562ce69d8a6e2158cbe1d9af6d2588f130000c49875b719910df4b426885fcbac1065af590c1cd985",
"@esbuild/linux-ppc64@npm:0.21.5": "69f2ef1d127f48bc14cec479ae1a96dbf5fea651e0a3f148486f73495d2acb91acdaa164cd80648844916f05e7f9f9665a1864dd394e7f9acf96bea70937e6b5",
"@esbuild/linux-riscv64@npm:0.18.20": "3eb88a207ea74ed6a2cce3a3d91ce590b508fe673e0bdc5f72f58babd32ccd0fa79908f64ee25ce82bddc7a29d47a603c5522637d23cdad52d1ee4b6ba34b3cb",
"@esbuild/linux-riscv64@npm:0.19.12": "da7aedccce7377c1991a3bfce3767a41c2bd688a361ff5df9a16b56874d1bd198c4fa70ca15bd7234497ea5ff9a44ddbbece95733a1dbd9f43918b4bf27fb76c",
"@esbuild/linux-riscv64@npm:0.21.5": "60c749d87c0f67cc67c5cc0d82aa597b7a807bc52510a16960337433bdbc8fa9f3c46eba98080106c0971e404e2250ca11c441bb4ae5b7a7d78b4095e3a70363",
"@esbuild/linux-s390x@npm:0.18.20": "77172f6572740cda637f5beed73b3ff6bda8648b4c3632290dbfead82b3ff2f8431bdc3b43f2c7af881151b172eea086db24669658c4f9711f20366da21aace5",
"@esbuild/linux-s390x@npm:0.19.12": "5f55ca2284c1cd1034a0bdf1ded7d38f43539f028fd58ec157f36fd89701f5fd0d0d45514b82c4199e3bd16049635a3a16c96a694f5a8d9c8a40429ad3e2172e",
"@esbuild/linux-s390x@npm:0.21.5": "a14ff0484b962b374fd1e4662a53f8dd8999ba39fcf891f15631dfb2802c8d18893d6e366c42d28d55885e5804b7d6252c0e3cee038c241285c9b537ef12b4ae",
"@esbuild/linux-x64@npm:0.18.20": "9d438aec79e046e3527217fee95f39985e6e2df8c4390c9398ee24a6bff3f15e8f5fc2d5cc6564b1e182f864a99d8fd83818f880dba9616a2dcea6c7f16a57c5",
"@esbuild/linux-x64@npm:0.19.12": "401ff8f1d6d5ae6ebdd0d8e24cef86ba1c3adc4fac2014033c8e690331495cb57922e31cdaa96619e2b190a5bfc88ae8b90b1cd3a59952969a29da418bda58b1",
"@esbuild/linux-x64@npm:0.21.5": "9e5663fcace9c8456e9934a9ed6e7428db4080024eef3bfeaf82d476120bd881382c958be2785463d6b44467b3d3f870d6cce09a9cb37bcef19afeb97814d674",
"@esbuild/netbsd-x64@npm:0.18.20": "2523c64d41b2d8252f5f8f11fb5f8438d4e9fcbc5856e8644fb79b1c18175144b4c36c5a62306064639e444e938cd4641248dfdc167b15af26d72d90a1217898",
"@esbuild/netbsd-x64@npm:0.19.12": "0e4b3ae706cb82356e20862ec0066e9eb61bc7f7bf3cc09da27a72fa5790a59f5256f4e2cd255aac6023a37036c8ad805d51498dbd56fe7d913711858d3c8ebc",
"@esbuild/netbsd-x64@npm:0.21.5": "3cb6115c4557d653c7ad6d2be5b4ed7a688b14d85b7b7108a1a57dda0b2cca3f8ed13560fa6639da8788f860b75eb714a17cfb7ba8f967e93bdf40c9b3a1cde1",
"@esbuild/openbsd-x64@npm:0.18.20": "3e04b67db2a5ae3440dea5a0dddc6744cea6bc05bd7ce7b64ff4350efb16e804e701a14875199d62018e8322891dde4ba04ea7d6717556d6cc12e4178a1d7159",
"@esbuild/openbsd-x64@npm:0.19.12": "f55049053a978c178bf1d7f4857af395afa9b7708410707eef8149f42adc3ed6d72088419cc17f75f1b7be4991ad28007fe298be84f95ca4e02d28bac1b518c7",
"@esbuild/openbsd-x64@npm:0.21.5": "1caf0b502d6e2612ffd3e62589de2b9cd48cd742818746011d437e2d5787df4984f7c17b7a536aa20f12d04e519c859d755a7b57e6db0ed277054bd9c1036e85",
"@esbuild/sunos-x64@npm:0.18.20": "921cbdd363e622d854e83b9e868ccad05b0f0c09cb181e59f6ae1b74ddd6023974d1cba9116c56cc819d15063bf5a5bffa67c23a19b5b60b5a099ce1d9ec419d",
"@esbuild/sunos-x64@npm:0.19.12": "da944741c1d6c8d814633445f068b27cdff337f309513982125f633d7365154ba6073719ba4389e471479886841d0152f37426f5bd890b7a8c33b89b7f775c82",
"@esbuild/sunos-x64@npm:0.21.5": "676da7301c7c600bb7de2523ecf5d877128da3c125fd8136533f5be38ca15d9f800b2fbbd396ca37d44c5daa51b8124d8a4728bb18245cd2becb3191b897c45a",
"@esbuild/win32-arm64@npm:0.18.20": "9de26948654e871289a5b6a5ef0c238ca92b0973b00eea692689edd278a9e791ac2220e33cfc24eca673212571242c08e041cd0a97087b247716d9538609f68d",
"@esbuild/win32-arm64@npm:0.19.12": "c9e6922908588569a8cf396ab0c5230cd1634db77039cb635d83eb825eba64a4ac3e19f28917185495d9d7b043161bfbd4cd49eb7d3592b88cf4594d9d628d08",
"@esbuild/win32-arm64@npm:0.21.5": "9b2ab87429efd3c2697dc5c7948ea57b57757b6e4709469e773b73cd5fe4b7fda5912073f4c3bdf9d0346b8f3ae443367a63bcd51de24fb81b9f592712eb3366",
"@esbuild/win32-ia32@npm:0.18.20": "98d18afeb689679b73ee823b297d8fb160e97fb183cd5f39d716b787465c024b0489bebaec96e37157cfb10d5296e803070e90f07eaf9235a2afb041d25e9e31",
"@esbuild/win32-ia32@npm:0.19.12": "71487cca9ac6cce6bf214be36e5c6aa1eaac49a2bcd538fafb6168fecbbe2624edf2a057be531b5393c4e2672b24bd316a872cc081df1d9c06e3a12704662675",
"@esbuild/win32-ia32@npm:0.21.5": "c1fe3276507d82202c464cd4809e67e6f151e29ed9de05c32d086dfe30207db15e646911ebc7f50df659891bfee292a25062792c589c2ff769be238c6b5fb8be",
"@esbuild/win32-x64@npm:0.18.20": "b019d085b43c247251b8d3791fa8f3251851d34cfce54bbe8b15a3a73efb1bc903e884551c8a821d5e681a48bc91c80a6f7e394762b938a266d8b602b13664ee",
"@esbuild/win32-x64@npm:0.19.12": "33341d6ae7d0682fb679170c91efa3933fc58dfe3d2f95c19b9856db55af6c8af4785f3669f3de34907ab222b2a6a201a8557213bd37dcc8406593e9eddbaa3c",
"@esbuild/win32-x64@npm:0.21.5": "5d7b28baa9c22684d35ec0515f6d36f8f583f26733c8e84c7f78edf17b8a7d133819267486f2fd66f20ca3a810896f11c3c81106d745040c2f07ade314846bf1",
"@esbuild/aix-ppc64@npm:0.25.3": "5e3ec55997c8d3c9c0fa565cbd04f1566795fe47626d63f6a593a39190402869a2561c772d1db5621719fa9db174f4cbc201032447b97a1cc28e69a9426a893e",
"@esbuild/aix-ppc64@npm:0.25.5": "fb872b34a2843293dc60e809968fedf93e0d8f7174b062decffae6ba861eb56aaea0cd0aba87ba99162ceb2a690f0cde4fc29c000b52c035e40c91ec7861d43e",
"@esbuild/android-arm64@npm:0.25.3": "d840843df6b82cc918abea3e706235ae256caa7b6feaf4b78f47d97cfc476ffc905d5e4263f066ae96dcc997bdc4e33458ed3436d6a38d147cd401071dc92d10",
"@esbuild/android-arm64@npm:0.25.5": "c818e799b19b5587466bf68a27b578ccaaf866c1d144573fbde7659e3fd3f555422ec3e67f5bd186a87648957d1b6e74df4f847edea7219c16979c9916f36e91",
"@esbuild/android-arm@npm:0.25.3": "185f4827b86ebc797ec74a98a75256a401eda92af862d217c10268816e8c4feeb49d82e965916dd2df238d7f3eda98325085e8d36cccf63c6cb2d3a11b3c6ee0",
"@esbuild/android-arm@npm:0.25.5": "a5384933f9f2ffcadce2be49da6ff43249fe42f32a04071316434e9f633fc20c8d4029072e9a53555620c3531045786297607b852579eee30b6dbc3bc9d98cd9",
"@esbuild/android-x64@npm:0.25.3": "0328941aaedafe3e0164a93a0e57178ca5fbe5a336709bd24270329a504bdb76bfc4b7a63e07c2f6fdea1fbd4b25d53320ca5665351d477e8e77b2fd071732ee",
"@esbuild/android-x64@npm:0.25.5": "8ce115dc7e1e6735f23b4aadb2dfca29c0abd8577ce34802ea3d017a64e388928949134fe225dfe190babdc5ec01be5fc7794eca84738cdefc12c5e3789ce43b",
"@esbuild/darwin-arm64@npm:0.25.3": "c10ed8ec813cad217666f556481baa0c4286f2a0567ca662fbf3088cb960421729eaf6b5a8504b9c956a1497f88141549af5f7c0f907a27a2c546e75fb4c678e",
"@esbuild/darwin-arm64@npm:0.25.5": "a009eab62f2bd284a6f2001d5e08217059186ffc16907bbe873e1de40fe9b5ed92c0db2f4c4d0dc41545838850a430c8f2f35d7bdb9cd01a1a04293acd97afca",
"@esbuild/darwin-x64@npm:0.25.3": "9828c988e7a54e63c7afca426348bd09d5c70b4ec799908ec5310347a14c94900f58e14f2b2eeea87d68b382078977bd5d5629546b307e8ac093168a7c72712d",
"@esbuild/darwin-x64@npm:0.25.5": "cac8021a7a0c549263e076913346b35a5bb81f76ffbc1abfad5e7b67303f013ac0c76f111bf624ea8447b327ec86c18a60c6ff307d743a2269f5d47313f5b2de",
"@esbuild/freebsd-arm64@npm:0.25.3": "4b20547db6bc1dea0e14f4bb96fb474d6e80e8d01c4fdc141d77a1693be06aee5ea3d4968f80276f87037086822c336defa358cb315bd671a7af9c672a081811",
"@esbuild/freebsd-arm64@npm:0.25.5": "d248e7103b7094eb4288db7c9a78b2905a25b4a957f2b945531ca88d3394f45ceca2343a7c84954734534af6159bc741eb3d5c1ed9df990f7395337a1b14192c",
"@esbuild/freebsd-x64@npm:0.25.3": "083edc9e2de8f3dc407b52836b49ebea29d0d543786c706b744c77646f5fde53327b786d156b79b859fb61eaac191733d275a183807c8599d51cd4416d00f5d6",
"@esbuild/freebsd-x64@npm:0.25.5": "8a7be0740f07f5dbb3e24bf782ca6ef518a8ce9b53e5d864221722045713586d41774cbd531df97dc868b291b3b303c12e50ca8611c3cb7b5fe09a30b38285eb",
"@esbuild/linux-arm64@npm:0.25.3": "bad206365faf883e5f7615daef3d65b7a82d6c9e401fd67353352c532a42310dcf6491dbf0e094c8007fb6d73e45183bb63cc10585cfaadc1386fbf78c529dc1",
"@esbuild/linux-arm64@npm:0.25.5": "ce3c8fca47cf0a92148fb288eb35a5c4a4dcf7a700730b3a48fdd63c13e17c719eb6b350378203fba773477eb5be637f47a6d52c5d4ce5bdc0075ee917156006",
"@esbuild/linux-arm@npm:0.25.3": "4659e20bf62737bb6ba5e54f36f87260e8092f6c55aed6a73457cb002f7af990bb205ca48d0c19078540a210b65a1db1a1cecd7a4ed06f4fe4eb1c0d27c30bd0",
"@esbuild/linux-arm@npm:0.25.5": "cc81ea76ab86ed2a837c9da329f7c63412d288dc0aa608c8dcdf51705dc93d5b7f966a429be4896babe611074e5898c7e6c8e07ad7f50123a05478975294fbb4",
"@esbuild/linux-ia32@npm:0.25.3": "96cf22e5979c95aff499cf0ebd576e21964d9a7412bf5cd4eb1ab71cb555aef2b4d5d3e8aae34ab80354125f1ec571f0ddb3f728f9e19cebbeceff75bb9d0686",
"@esbuild/linux-ia32@npm:0.25.5": "bfed6750923afd56148f658f6ec8995479f5115116dc212ecb9e4c556064422e22eda855177e7c02cbc945494e4db1167101918c5fa932278115db2c7025a3f6",
"@esbuild/linux-loong64@npm:0.25.3": "9d12d8deaf0bdd5d64c062c65eb0e3ea24ab98b1e6ec34b2b14bb3902e5e3504442c3273f6dc05228f6104650ddaf0d37ba86033f19e7b065766c3d528c0f6a3",
"@esbuild/linux-loong64@npm:0.25.5": "e5c20140bbbdba53f0d86dd72961ed73e6255d2ada2d3a626f390b352170605644822ad7592f695b6e520edcefe0c5f6ba19d10694b5d11d725745d9792bde01",
"@esbuild/linux-mips64el@npm:0.25.3": "f117b06fe2d39b08571fd84ed191801cc9501342a514d5d83494219ad14bee9713b6332d0836f192c224b1f9a01405f3d6e2d22952e399bababd527bfeac9c0f",
"@esbuild/linux-mips64el@npm:0.25.5": "6b3559517efd0dd1301debc7af7e275b055859c26facdda2e229b1aaab6ebea4c480a1da151c46211ee4035d95bfa7f0cdacf735b57ee99d41b69c77357310b9",
"@esbuild/linux-ppc64@npm:0.25.3": "ef777920724eecd3bb20f9718901498001ed8b28ced1a6c9a8e947c5ae412d31856761556b9d89bdae1cd9af3ff53f9c83756fac3b4e99b53ebdce44c5ff0cdd",
"@esbuild/linux-ppc64@npm:0.25.5": "a1a1af99d758efce928335637924dcd8ddec4201af51014e1f831b012d53a0a673b1e0c31036ec9e8c5a0311439283419ec8abdfc67ecb245fa7f7b653006ed0",
"@esbuild/linux-riscv64@npm:0.25.3": "87d71b5c361f7d95c173f8c1051e8dce165ff3d6100ef0e5cbd090f8249c58d7f5a38e93774d081afe4fecf3a6e725102dbf9ffa51e5b4960ccd1b072cf86e10",
"@esbuild/linux-riscv64@npm:0.25.5": "6cd8dce6723b73e0f89898ab6cd52e0d009afdacdfc0d5529134de7b832c92c2e0421fbb5cbfc0e0c0b2b00a9b1ff2c4cdb9695b2c535ebc174960e986c727a7",
"@esbuild/linux-s390x@npm:0.25.3": "9972d82725c5818fca8ef1625c3f55a8033c2d678c809a01580780fd5171025e4f90b60fdfe6ff925a1738bb6cff85dea104fdce57badf0a270ed1d290345e23",
"@esbuild/linux-s390x@npm:0.25.5": "31b86dbc93d19eb362bad3353e65d6da771118346e723582d06c05f1b6ffad1c3765001b5215ef1e8f0c2bb29130d98815359bbc88e5c08304354d5a92e6ea94",
"@esbuild/linux-x64@npm:0.25.3": "434e21ed68e25e2043295fca9c382461bf50f031c45480a1482f297412f95ebfb183339001444e5d1e6b14358571c395f17ddb8bb9bbd22aefe82740463bc18c",
"@esbuild/linux-x64@npm:0.25.5": "f878a3e40edfd8a50de94bf982a9eaf03e636a0332af163a6c905490063aae652384fb392d4765c4338fb6f991034949c92ec768ee65c3b2fceeb494b89fe8b3",
"@esbuild/netbsd-arm64@npm:0.25.3": "4dbc6ef9a5ddcf44f2df0fe39c662189eb4cea38fe5778ecc81cc29af68fba2ac077c5b308ad84b8263bb6bea9f03732507b79966d051d860a2344b8fe8ddc4d",
"@esbuild/netbsd-arm64@npm:0.25.5": "941c5e28a63a93f19122271b5490e196db12815702c2266c6d66401b6909a4364ab889611ba81c5359624e3ce61f0505a680a1179ed9a555d1415fa1c485d75d",
"@esbuild/netbsd-x64@npm:0.25.3": "d42fca551f67c20b18d11cae67fed9675b90293c901b3b152d6e0c1153db1443f7b8a4f7786797b1946d19881db64b50f32e883d756ce3fdf8b844a1c71611f3",
"@esbuild/netbsd-x64@npm:0.25.5": "edbefdd88ca24a373497a7c8d1fdab418827ff89c6eee1c574159dbb4d9174552aa87753f35525a894964b77c14b012164ec5582b9f19dd4d6c1f5d45df411c7",
"@esbuild/openbsd-arm64@npm:0.25.3": "3aee3b70a7f41ce2355d93bd955718683861ffe9e6b5550c37caa28b8b16e6414222c806f413c37eb553c3990a22b8fdb88721c619f553d809db92cd070ed383",
"@esbuild/openbsd-arm64@npm:0.25.5": "d44633a374c109d2fb9c678882016e3ec3d79f0c5f21a6e6fb0114ea709bc539200b037a4e3ec52304eea2f8c5957bf16c6f0a7af5cfde41b652c4bac604bba6",
"@esbuild/openbsd-x64@npm:0.25.3": "d158b78f95feb68c6217f114a3178058aa93933e83897546ffecb6b9ab8e0fe5fed69940651b6c42c1ac9064a42a29fa1c2da316dc64ab146107c2c2599e68c6",
"@esbuild/openbsd-x64@npm:0.25.5": "efc4641ea653dedc9886f0603c2e7cfc6fbe94c34d4cdaee9b060a8b9d8143d1192c45da93b3e802af2c26f72ab1ad3a3fad0e0cb297d06de55814fe83ccd32c",
"@esbuild/sunos-x64@npm:0.25.3": "8b6bd4c43c023d0dcb9966349ec1f2ccdfb6163aea2c1c06060806795ed1fb083e22cb9e80e7853ba8c62a74d1bafa36dabab70881e7d6782c2dfb237f93bcc0",
"@esbuild/sunos-x64@npm:0.25.5": "29860663381b6098c0fda6f69235407654dfad953e83b3f9f06a270950d5c37da4ca60a4b5915b8e2606d468b560be6179870f64a22d5b046e8a930c31a7b554",
"@esbuild/win32-arm64@npm:0.25.3": "c49c827b8cae7eb2a4a6b38a1321c0c1bca1693826c7268d3c3b9361df360b897f583e91b9acff3eeb0c9f477d39c00a2d89c71436b64091442e74011a41f2ed",
"@esbuild/win32-arm64@npm:0.25.5": "a77d395251c8a62ab0cec07d5230222823fa02fbf3ef008d94b5213a335c9f949872c3f1c2f947abaa28098b669018e429af42f59616e049860a0072f3b006de",
"@esbuild/win32-ia32@npm:0.25.3": "84acc7f9d65de4875bfe09976620e94327bef444b1b8a795d98173ca777a2070b775763bd927ee475503455b2c1109bf5c911fdfe7c73de7d32124ccf3858afd",
"@esbuild/win32-ia32@npm:0.25.5": "ff1b6cbe835082aef5b93c3e2012d51be431d05c6ae5f90a5bc89687c687e8e2340c262dedddd124b27b511616bbc4088b5a4a949d3147f677084dc6ec572629",
"@esbuild/win32-x64@npm:0.25.3": "2b88dffa4814240cf7d88a6dee449361ae411a0d9cc6ebc327de59f4f6662a65fb2ef62fa38258bae422933d97a416db50ec4f04875ddf61d15f47bc0ec1ab22",
"@esbuild/win32-x64@npm:0.25.5": "266e69e8d37bd4deb77443588e49472e4e9791178cb39e1692eabb67cf65d8e85a932ac468e7ebb2072c8a9ee23ad413c8f0f7d954c474f643cedbbf7aad952a",
"@parcel/watcher-android-arm64@npm:2.4.1": "88cb813d54227fc25e487f00497cdd58974a07e1c22a5cc7cf922983d908b460e0876ec0c9acf333a5b6f5623dc50729f8b92612970bfbd5a12d4e5cffc025ff",
"@parcel/watcher-darwin-arm64@npm:2.4.1": "342502e0f175dbd0649f2edffc9f7d76823668e12184a62d8e542df454a067bcade1cfd298975bf7238a7575a9d721c6d7ccb0e8c9102dca5394c9fef2349561",
"@parcel/watcher-darwin-x64@npm:2.4.1": "175868753e64ea7bc70993a05a34694e8ad85d9d4a08bf9a36573925777369a0701f2971d6ff14f9ed525c9b7725ce40629cad97fd7c67dc653f247884d99a62",
@@ -87,23 +69,24 @@
"@parcel/watcher-win32-arm64@npm:2.4.1": "35fc4e90eb74a4e583377821775d5f90269deeaa61221fbb69127b3151279a37d4038df91beb38e51367ebb9d92f6b0295b58c0e4a7ac3ecc0adb0f27c935c69",
"@parcel/watcher-win32-ia32@npm:2.4.1": "0b12602039c1ebb6ea711bde1996ca66d814668a02d33b2b949c66111de9e3fbc6f4d8b9b6c985affa1eafa6089b4c13b0e0db8f8d3a7a2d19849c7d7f639f1c",
"@parcel/watcher-win32-x64@npm:2.4.1": "56f160729dc8c47d940187b4a2e9a4100be77fc2acc2dd5e4cb527d036676eecba454548cf00fb6d7c44757e42d77dc4d2d8ff19c1ce64759a7fde2097aa6bfe",
"@rollup/rollup-android-arm-eabi@npm:4.31.0": "c737cb26689f9d34357921d15ee6a7261e5d7cc068dbb93a36c2f40c34a59bd8721e7bb392943a212ecfb97d9326ced8254469e39e9d6b012db636269eb66577",
"@rollup/rollup-android-arm64@npm:4.31.0": "94957eda1ab8894a6fdf0b1772bc00e7563f2e520179542dfdd6f9797bbb9cde164693b29439da631fd8ee6b5117c36ea7ba7ad8ab43d1747c296b22d6c09cad",
"@rollup/rollup-darwin-arm64@npm:4.31.0": "2b408eef19930929008806adc87f29bb9cacbbea1f32770be339281d72a5bbc52a88da1269a34b88052a0037a0b2b61e70daf166ed9d3c982b4fb4bd606ad020",
"@rollup/rollup-darwin-x64@npm:4.31.0": "9e7bc70cfd1ccbdddad3016d9fd36616c8a71725f9c47bbdad1f3ef40b656f7db90f02c88a4724b399f8a46555e4f90c4880d5eea0f12fdeba2f71a555077db5",
"@rollup/rollup-freebsd-arm64@npm:4.31.0": "3e149a14c1930b539e1d0a733bc2582bc5e84a5906723b5ac0384d46c43861a05120dd4566bb4f1efca8f930fd1f0eb78646587fc3c0cc32606d32ce6fb7bb13",
"@rollup/rollup-freebsd-x64@npm:4.31.0": "fe381b185187a5c2e8383920090bcec0c1273d058cc113eba23a70bc9f49cbadacd92c2a6255d345971bd2cf283941f623b00035d051758f743cf3207c233b54",
"@rollup/rollup-linux-arm-gnueabihf@npm:4.31.0": "7bfe07f535125f59cc12fc0af162b9bae4400a364f5e2b1eae44377904deb3dc1c558048a0a8b059be1a54e609a7597c109f0a26a2a0baaf21a5539a331d14f4",
"@rollup/rollup-linux-arm-musleabihf@npm:4.31.0": "a1bb7593a83e2c2dbd32e8a3447e68ac43874a46aaa501c63a533695c47b66c7156527951bd84ad53c73a3155b5b50fd658c0aacad8790b6e4c03c0a83c94cad",
"@rollup/rollup-linux-arm64-gnu@npm:4.31.0": "e2e85814bcbaeb8b39e17ee5f8510c8856c5cc4c2ec1787245e8f8e0531563e36844549b02956b881d5aa9405e838a7d1b1697c305c394a57889c0b1c521c064",
"@rollup/rollup-linux-arm64-musl@npm:4.31.0": "00d8411e0516b298913d19dc2f4991ee184a4799b041f9c2a2eae5cf91f3aa315a4cc69d51d04c2540bfe0793b628af105d8df419ba541dba24981ccdc1a372a",
"@rollup/rollup-linux-loongarch64-gnu@npm:4.31.0": "ea1e4d813a12e8e9eda908d705dbf013835034a95cb63046a3bc15d43a6bf9812034d3779ab01c5ec87338ff1115ea86c6af2383efa4485b18da1423c68c3b79",
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.31.0": "903350e968edd4d9fcb4c53831672ff5980f4d58c32a1b34e2c6446d0ae965d522173a82d9dccdf040805f82507b05e3c7e629782e56ccc51c78e01bc0b02dc2",
"@rollup/rollup-linux-riscv64-gnu@npm:4.31.0": "02bf4d53b6edc386103fdfaa6f1c774b1859e61146a305f3a0942159902b829ba67fbb6a6dbf914ed77fa7ae20826f601d11de79f033b37666077f26ccc0bfb6",
"@rollup/rollup-linux-s390x-gnu@npm:4.31.0": "bd6a2a45d36e11a80d4675c6427eafbe85165ffdac4c75945c89c650897ac8c582b57b76e0a69a39c09ba06c58edd865e4d8a54e1c7a245d2c192db465ae2c55",
"@rollup/rollup-linux-x64-gnu@npm:4.31.0": "6100d9bd7a0de95a54b3ad15d953ea74bef4c9c4424c24c5187ee1641f81d8fcaa30e48d16faeec0957e3a48517fcf78486e47fedc277f8f26fb6fbc7619df4b",
"@rollup/rollup-linux-x64-musl@npm:4.31.0": "b9a94514d6606e8b320ecad50f7c4142b86bb688aa1e87f076a462f76488000a90b8f75db01250cc17b540a70f231ab4064e79b79b66a2c7ad76c224d30b05e3",
"@rollup/rollup-win32-arm64-msvc@npm:4.31.0": "d0fee5e492f22df8885e0dcf2eccc2b8424c926050b1506d5a59fb97388de9ac5bd149a20d8521cf379cc3a46af92cb5de5d15cf749e648062f9f6ebf17e5754",
"@rollup/rollup-win32-ia32-msvc@npm:4.31.0": "c0e4d6f7cde9fc9a28eff19c04a96807a76d911141bb9fbe2a41d7ba394f4ebf334d3cd9b712c086498cd5de73ab2f2d1c12e6d22b08178ea4ede84474c656b8",
"@rollup/rollup-win32-x64-msvc@npm:4.31.0": "c3c397ddceb47db9631887caed7ec437b3bb9d1ff0de24440614720d3fe322a0c712617b869177fc37c2386430bad2e92cc3735a52ef579e25c9aded76f75580"
"@rollup/rollup-android-arm-eabi@npm:4.44.1": "ec8b655e2930312fe94eded1cfe439901bbd442a891494a512259caa0bd936c29b9d06debb061bece88f5d41f619ccb4d0d77d0fe190f1a5c25a3a1a724d255f",
"@rollup/rollup-android-arm64@npm:4.44.1": "5eb5c7de31f435afb97feebd06feefb93c2cb272002240b8530c1f274436ea578d8320d67fa49eb1409ddb20a47219efff59a09b22a426584b881d36adac7bea",
"@rollup/rollup-darwin-arm64@npm:4.44.1": "93cef94c44d1baabc5346148d59ebb5d640948b2895bbc5de6804908999857f331c388eb449f98eba98d2b239492e91211accee7eaf4b579ae3c007705d76246",
"@rollup/rollup-darwin-x64@npm:4.44.1": "d235e7f40080cc19295d45935b83a0238cb66962e7d6d4af0eb261012d80bc344fe073ec9dcc3d39092138a66e7a69c4e79cbac7c6ee49b8329b80d12d52968f",
"@rollup/rollup-freebsd-arm64@npm:4.44.1": "e26f6bf6914e190d72f74da4c8e47c27661fc99f6310f80e664acfcd6262f4981ff043ff53ccc06dc6a232d481f9f0055e32dba3b65442259316b18fc0ea9087",
"@rollup/rollup-freebsd-x64@npm:4.44.1": "d06455bfbe8bf71996864879b8b9b4f95617adda959a5a143be0df9a5bf749cd52740a9a3b2548e67be00eef9ccb99ef04368a052afceae2011e2a817baf4156",
"@rollup/rollup-linux-arm-gnueabihf@npm:4.44.1": "1bb6818627de1434f889c8a6bfc13a0205f25055bcc9f39483e445411c753111c7d082cfca2affdeeaad46c3711e3ece140fabb7173ef3cd19446d3682863854",
"@rollup/rollup-linux-arm-musleabihf@npm:4.44.1": "6e9eff8ad332d9923a7cadc0ce1911c4e0a2f8457a8131485f0bce241bb7c223dc811b976ffb9ca08d4930630c647219dbfcdab639c3a8bef075b68285c01960",
"@rollup/rollup-linux-arm64-gnu@npm:4.44.1": "a5382c59bf531afd774b7de82d1600bfb5915a0708ad6c7099ffd1af657b813a525de18902178120b247c95e21487f0c96a8eecc8d9ae9163da12ecb4a5ed3d3",
"@rollup/rollup-linux-arm64-musl@npm:4.44.1": "44944da3785383b8cdb5f8b4eb627737edc10e206ec66ec6a762f75f2dcc12dff7bfaae864d37941d5d30c50c8fee5f5a2b12c19627b356e0aea3186f80e2d48",
"@rollup/rollup-linux-loongarch64-gnu@npm:4.44.1": "1f7502f1777622abb717a3109bf69907ba46a277a6ea33b99d6cea8e33f74b6d8a979ac5bfa33398f31211687adf7458ef9680b7f2e3523d82088a3d59857c8f",
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.44.1": "535c564216655518831098e5481f06b62452fad69209409776f4508e9c73265dfe531983a64b47c9090b244668b4c023c906061eee5a4c3c29c1c9822f1d1209",
"@rollup/rollup-linux-riscv64-gnu@npm:4.44.1": "423cb7d6578052d23374fe2ec3b996be9a420785fe324a0d1aa38e9e9d3f4b34ba3673f4ce5f622c7ed99bf82c4e24f55469b6e75deb5f27eb67369c052d8a9b",
"@rollup/rollup-linux-riscv64-musl@npm:4.44.1": "03a0530b45b554363296e938493e263aa26c342080aea72c9e2b673fc42d5ed2d9267d283ef136c71da64bc85a03fd360988aedbfc68029bd948567afafe71a6",
"@rollup/rollup-linux-s390x-gnu@npm:4.44.1": "93fecf841caf9621a99b8f0938d21a261ccc1ee7dced2ff47de659662a3bbbc0e3cc45ef38d3aca84918ecaeff51188a68a109db337892518ccfa393c305fafc",
"@rollup/rollup-linux-x64-gnu@npm:4.44.1": "b401ab19f21fb0f8ff50662a9fbe823d4c7904fdf0f8de17c3338107e3974ac89ba1189b7c6f0f2ff8734cfd07325bcb5e5dc6a5d53df076fe34757233063a72",
"@rollup/rollup-linux-x64-musl@npm:4.44.1": "87ef16e6ca9ae5d398f5b7e1b58033cf1b5f87efb0ab7c4b16dc7dd213a1b3a9305c2624b11e89539d75d146912eb7a41a139270464fc617fd1c2917e391fc56",
"@rollup/rollup-win32-arm64-msvc@npm:4.44.1": "5f4fe05f1c778d839ce22c2b1a1419d8c511fd10793326dab5a033978f259733b6d042519a26ad7df3f5b2cce75bfc2d2600d9c43ec9cf16d6acf105bedf00e7",
"@rollup/rollup-win32-ia32-msvc@npm:4.44.1": "5639edf6114f38055489c35f03f5d039b4719ae50309db235dc176c026fb8eb5bb028e0db2769ed4faec34722200f6a31df62c23a0f8c90a13568685a6f00140",
"@rollup/rollup-win32-x64-msvc@npm:4.44.1": "d23d4b88a0a96965ba20e75bb9f5bea6e22cab53b9658a54317634363a64aa43dd1ff66f569d0e4fecc34d60d554a64ae905fd85cbc436f78544d6f9d550ebe2"
}
@@ -0,0 +1,53 @@
From d8843c5fcaef79d209803849070e1a79ab380903 Mon Sep 17 00:00:00 2001
From: Euan Kemp <euank@euank.com>
Date: Sun, 24 Aug 2025 20:24:34 +0900
Subject: [PATCH] Fix compilation under rust 1.89
Rust 1.89 produces the following output:
```
error: unicode codepoint changing visible direction of text present in literal
...
warning: allow(text_direction_codepoint_in_literal) is ignored unless specified at crate level
--> rslib/i18n/src/generated.rs:7:10
|
7 | #![allow(text_direction_codepoint_in_literal)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
This change fixes it.
This ensures that some third-party crate that pulls in this code as
library code (and thus isn't subject to the rust-toolchain file in this
repo) doesn't hit this compilation error.
---
rslib/i18n/src/generated.rs | 1 -
rslib/i18n/src/lib.rs | 1 +
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/rslib/i18n/src/generated.rs b/rslib/i18n/src/generated.rs
index f3526f79f..f3fa71ce8 100644
--- a/rslib/i18n/src/generated.rs
+++ b/rslib/i18n/src/generated.rs
@@ -4,6 +4,5 @@
// Include auto-generated content
#![allow(clippy::all)]
-#![allow(text_direction_codepoint_in_literal)]
include!(concat!(env!("OUT_DIR"), "/strings.rs"));
diff --git a/rslib/i18n/src/lib.rs b/rslib/i18n/src/lib.rs
index bfd6f5ba2..f9dbb1948 100644
--- a/rslib/i18n/src/lib.rs
+++ b/rslib/i18n/src/lib.rs
@@ -1,6 +1,7 @@
// Copyright: Ankitects Pty Ltd and contributors
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
+#![allow(text_direction_codepoint_in_literal)]
mod generated;
use std::borrow::Cow;
--
2.50.1
@@ -1,21 +1,31 @@
From 104572dc7ebb75061b867158ce3d4311d8cf4594 Mon Sep 17 00:00:00 2001
From 3d41c84cb5f5daf10b5b5ecffcb53aeed7f0584b Mon Sep 17 00:00:00 2001
From: Euan Kemp <euank@euank.com>
Date: Thu, 6 Jul 2023 10:05:15 +0900
Subject: [PATCH] Skip formatting Python code.
Date: Fri, 11 Jul 2025 15:59:16 +0900
Subject: [PATCH] Skip formatting Python code
Co-authored-by: Pavel Sobolev <paveloom@riseup.net>
This otherwise fails the nixpkgs build
---
pylib/tools/hookslib.py | 1 -
1 file changed, 1 deletion(-)
pylib/tools/hookslib.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/pylib/tools/hookslib.py b/pylib/tools/hookslib.py
index 6361c633e..6b16d3ec1 100644
index 99f08fa1e..2bb4b3f26 100644
--- a/pylib/tools/hookslib.py
+++ b/pylib/tools/hookslib.py
@@ -208,4 +208,3 @@ def write_file(path: str, hooks: list[Hook], prefix: str, suffix: str):
os.environ["USERPROFILE"] = os.environ["HOME"]
@@ -82,7 +82,7 @@ class Hook:
code = f"""\
class {self.classname()}:
{classdoc}{self.list_code()}
-
+
def append(self, callback: {self.callable()}) -> None:
'''{appenddoc}'''
self._hooks.append(callback)
@@ -205,4 +205,3 @@ def write_file(path: str, hooks: list[Hook], prefix: str, suffix: str):
with open(path, "wb") as file:
file.write(code.encode("utf8"))
- subprocess.run([sys.executable, "-m", "black", "-q", path], check=True)
--
2.42.0
- subprocess.run([sys.executable, "-m", "ruff", "format", "-q", path], check=True)
--
2.49.0
+6 -1
View File
@@ -10,7 +10,12 @@
rustPlatform.buildRustPackage {
pname = "anki-sync-server";
inherit (anki) version src cargoDeps;
inherit (anki)
version
src
cargoDeps
patches
;
# only build sync server
cargoBuildFlags = [
+89
View File
@@ -0,0 +1,89 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl git wget jq common-updater-scripts yarn-berry_4 yarn-berry_4.yarn-berry-fetcher tomlq nix-prefetch-github
set -eu -o pipefail
set -x
TMPDIR=/tmp/anki-update-script
cleanup() {
if [ -e $TMPDIR/.done ]; then
rm -rf "$TMPDIR"
else
echo
read -p "Script exited prematurely. Do you want to delete the temporary directory $TMPDIR ? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
rm -rf "$TMPDIR"
fi
fi
}
trap cleanup EXIT
if [[ "$#" > 0 ]]; then
tag="$1"
else
tag="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s 'https://api.github.com/repos/ankitects/anki/releases' | jq -r 'map(select(.prerelease == false)) | .[0].tag_name')"
fi
tag_sha="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/ankitects/anki/git/ref/tags/$tag" | jq -r '.object.sha')"
rev="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/ankitects/anki/git/tags/$tag_sha" | jq -r '.object.sha')"
nixpkgs="$(git rev-parse --show-toplevel)"
scriptDir="$nixpkgs/pkgs/games/anki"
ver=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).anki.version" | tr -d '"')
if [[ "$tag" == "$ver" ]]; then
echo "Latest version is $tag, already $ver, skipping update"
exit 0
fi
echo "Updating from $ver to $tag"
mkdir -p $TMPDIR
curl -o $TMPDIR/yarn.lock "https://raw.githubusercontent.com/ankitects/anki/refs/tags/$tag/yarn.lock"
echo "Generating missing-hashes.json"
yarn-berry-fetcher missing-hashes $TMPDIR/yarn.lock > $TMPDIR/missing-hashes.json
yarnHash=$(yarn-berry-fetcher prefetch $TMPDIR/yarn.lock $TMPDIR/missing-hashes.json)
echo "Copying missing-hashes.json back into nixpkgs"
cp $TMPDIR/missing-hashes.json "$scriptDir/missing-hashes.json"
sed -i -E "s|yarnHash = \".*\"|yarnHash = \"$yarnHash\"|" "$scriptDir/default.nix"
echo "yarnHash updated"
echo "Regenerating uv-deps.json"
curl -o $TMPDIR/uv.lock "https://raw.githubusercontent.com/ankitects/anki/refs/tags/$tag/uv.lock"
# Extract all urls to pre-compute hashes so we can download whatever uv needs for its cache.
# We skip pyqt because the derivation uses the nixos packaged ones for
# native-library compatibility.
tq -f $TMPDIR/uv.lock --output json '.' | jq '.. | objects | .url | select(. != null)' -cr | \
grep -Ev "PyQt|pyqt" \
> $TMPDIR/uv.urls
echo '[' > $TMPDIR/uv-deps.json
for url in $(cat $TMPDIR/uv.urls); do
urlHash="$(nix-prefetch-url --type sha256 "$url")"
echo '{"url": "'$url'", "hash": "'$(nix-hash --type sha256 --to-sri $urlHash)'"},' >> $TMPDIR/uv-deps.json
done
# strip final trailing comma
sed '$s/,$//' -i $TMPDIR/uv-deps.json
echo ']' >> $TMPDIR/uv-deps.json
# and jq format it on the way into nixpkgs too
jq '.' $TMPDIR/uv-deps.json > "$scriptDir/uv-deps.json"
echo "Wrote uv-deps.json"
# github as well
srcHash="$(nix-prefetch-github ankitects anki --fetch-submodules --rev "$tag" --json | jq -r '.hash')"
sed -i "s|version = \".*\";|version = \"$tag\";|" "$scriptDir/default.nix"
sed -i "s|rev = \".*\";|rev = \"$rev\";|" "$scriptDir/default.nix"
sed -i "s|srcHash = \".*\";|srcHash = \"$srcHash\";|" "$scriptDir/default.nix"
touch $TMPDIR/.done
File diff suppressed because it is too large Load Diff