From 513f2e1775486c4ed1382617959c1a5620d41775 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Apr 2026 03:30:23 +0000 Subject: [PATCH 01/44] envoy-bin: 1.37.1 -> 1.37.2 --- pkgs/by-name/en/envoy-bin/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/en/envoy-bin/package.nix b/pkgs/by-name/en/envoy-bin/package.nix index 248d400b58c4..579b9fedf479 100644 --- a/pkgs/by-name/en/envoy-bin/package.nix +++ b/pkgs/by-name/en/envoy-bin/package.nix @@ -7,7 +7,7 @@ versionCheckHook, }: let - version = "1.37.1"; + version = "1.37.2"; inherit (stdenvNoCC.hostPlatform) system; throwSystem = throw "envoy-bin is not available for ${system}."; @@ -20,8 +20,8 @@ let hash = { - aarch64-linux = "sha256-ZYEeEq6PedT09kGNJ6LTL+vEzIpSM9Wuik2g4+Dz/nU="; - x86_64-linux = "sha256-jbkO4KoIWuaHPb8hISgW0p9sRV1HYMSuz01lk3Y9sYw="; + aarch64-linux = "sha256-sNf78pVUOEziPnGQCQJX/rXKE28UViazre+rstU/h4s="; + x86_64-linux = "sha256-MtPMIDuKvc6MLtkWopgSQ2TgxI6DtxlvVR52m2pIm/g="; } .${system} or throwSystem; in From 31eebf7332d4398378f3d7af43d3ab413542e7fc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 15 Apr 2026 17:41:51 +0000 Subject: [PATCH 02/44] mcuboot-imgtool: 2.3.0 -> 2.4.0 --- pkgs/by-name/mc/mcuboot-imgtool/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mc/mcuboot-imgtool/package.nix b/pkgs/by-name/mc/mcuboot-imgtool/package.nix index def6f6e3792d..8c0d680f4ab4 100644 --- a/pkgs/by-name/mc/mcuboot-imgtool/package.nix +++ b/pkgs/by-name/mc/mcuboot-imgtool/package.nix @@ -7,13 +7,13 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "mcuboot-imgtool"; - version = "2.3.0"; + version = "2.4.0"; pyproject = true; src = fetchPypi { inherit (finalAttrs) version; pname = "imgtool"; - hash = "sha256-//cuTnk6wOwCpJPBlUhxXMwKI1ivruqhC0nMwuC9EpU="; + hash = "sha256-7y2x2eP2K5vJQlqOhsTqchLBZPChbpI9VSUPDYdDNC4="; }; passthru.updateScript = nix-update-script { }; From 7687ab5634351b2ad999a5acf014ae20addc9248 Mon Sep 17 00:00:00 2001 From: squat Date: Sun, 12 Apr 2026 21:06:18 +0200 Subject: [PATCH 03/44] linkding: init at v1.45.0 This commit introduces a new package: https://linkding.link, a popular and simple bookmark manager written in Django. The package has a fairly complex build-process and needs several patches to successfully build-run outside of a Docker container. I will be submitting PRs upstream for better support for customized runtime data directories to eliminate the need for lots of patching. Wherever possible, the derivation mirrors build steps from the upstream Dockerfiles. I have confirmed this package works exactly as expected when running: ```shell nix build .#linkding ./result/bin/linkding-bootstrap ./result/bin/linkding runserver ``` Signed-off-by: squat --- pkgs/by-name/li/linkding/package.nix | 301 +++++++++++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 pkgs/by-name/li/linkding/package.nix diff --git a/pkgs/by-name/li/linkding/package.nix b/pkgs/by-name/li/linkding/package.nix new file mode 100644 index 000000000000..920942e394b6 --- /dev/null +++ b/pkgs/by-name/li/linkding/package.nix @@ -0,0 +1,301 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, + fetchurl, + gcc, + icu, + nix-update-script, + nixosTests, + pkg-config, + python3, + sqlite, + stdenv, + uwsgi, +}: +let + version = "1.45.0"; + + python = python3.override { + self = python; + packageOverrides = final: prev: { + django = prev.django_6; + }; + }; + + uwsgiWithPython = uwsgi.override { + plugins = [ "python3" ]; + python3 = python; + }; + + # Compile the SQLite ICU extension for case-insensitive search and ordering. + # This mirrors the compile-icu stage in the upstream Dockerfile. + icuExtension = stdenv.mkDerivation { + pname = "linkding-sqlite-icu"; + inherit version; + + src = fetchurl { + url = "https://www.sqlite.org/src/raw/ext/icu/icu.c?name=91c021c7e3e8bbba286960810fa303295c622e323567b2e6def4ce58e4466e60"; + name = "icu.c"; + hash = "sha256-DkELE5p82yZVz0GVFdWWAEU8eo10ob0fqx66Q7rxv+U="; + }; + + nativeBuildInputs = [ + gcc + pkg-config + ]; + + buildInputs = [ + icu.dev + sqlite.dev + ]; + + dontUnpack = true; + + buildPhase = '' + runHook preBuild + gcc -fPIC -shared $src \ + -I${sqlite.dev}/include \ + $(pkg-config --libs --cflags icu-uc icu-io) \ + -o libicu.so + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm755 libicu.so $out/lib/libicu.so + runHook postInstall + ''; + }; +in +python.pkgs.buildPythonApplication (finalAttrs: { + pname = "linkding"; + inherit version; + pyproject = true; + + src = fetchFromGitHub { + owner = "sissbruecker"; + repo = "linkding"; + tag = "v${finalAttrs.version}"; + hash = "sha256-iGvUKmOPL0akfR52hzSGH6wu06/WP9ygiQ/HxsmrYWg="; + }; + + __structuredAttrs = true; + + build-system = with python.pkgs; [ + setuptools + ]; + + dependencies = with python.pkgs; [ + beautifulsoup4 + bleach + bleach-allowlist + django + djangorestframework + huey + markdown + mozilla-django-oidc + requests + waybackpy + ]; + + optional-dependencies = { + postgres = with python.pkgs; [ psycopg ]; + }; + + dontCheckRuntimeDeps = true; + # Django's runserver re-executes sys.argv[0] via the Python interpreter, + # so manage.py must remain a valid Python script and cannot be wrapped in bash. + dontWrapPythonPrograms = true; + + pyprojectAppendix = '' + [tool.setuptools.packages.find] + include = ["bookmarks*"] + [tool.setuptools.package-data] + bookmarks = ["static/**/*", "styles/**/*", "templates/**/*", "version.txt"] + ''; + + ui = buildNpmPackage { + inherit (finalAttrs) version; + + pname = "${finalAttrs.pname}-ui"; + src = finalAttrs.src; + + npmDepsHash = "sha256-zUMgl+h0BPm9QzGi1WZG8f0tDoYk8p+Al3q6uEKXqLk="; + + installPhase = '' + runHook preInstall + mkdir -p $out/bookmarks + mv bookmarks/static $out/bookmarks + runHook postInstall + ''; + }; + + postPatch = '' + echo "$pyprojectAppendix" >> pyproject.toml + + # Point the SQLite ICU extension to its store path so it is found + # regardless of the working directory at runtime. + substituteInPlace bookmarks/settings/base.py \ + --replace-fail \ + 'SQLITE_ICU_EXTENSION_PATH = "./libicu.so"' \ + 'SQLITE_ICU_EXTENSION_PATH = "${icuExtension}/lib/libicu.so"' + + # Allow overriding the data directory via an internal environment variable + # so that the NixOS module can point it at the mutable state directory + # (/var/lib/linkding). The variable name is intentionally NixOS-specific + # and not a real linkding option to avoid confusing users. + substituteInPlace bookmarks/settings/base.py \ + --replace-fail \ + 'BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))' \ + 'BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))''\nDATA_DIR = os.getenv("_NIXOS_LINKDING_DATA_DIR", os.path.join(os.getcwd(), "data"))' + + substituteInPlace bookmarks/settings/base.py \ + --replace-fail \ + '"filename": os.path.join(BASE_DIR, "data", "tasks.sqlite3"),' \ + '"filename": os.path.join(DATA_DIR, "tasks.sqlite3"),' + + substituteInPlace bookmarks/settings/base.py \ + --replace-fail \ + '"NAME": os.path.join(BASE_DIR, "data", "db.sqlite3"),' \ + '"NAME": os.path.join(DATA_DIR, "db.sqlite3"),' + + substituteInPlace bookmarks/settings/base.py \ + --replace-fail \ + 'LD_FAVICON_FOLDER = os.path.join(BASE_DIR, "data", "favicons")' \ + 'LD_FAVICON_FOLDER = os.path.join(DATA_DIR, "favicons")' + + substituteInPlace bookmarks/settings/base.py \ + --replace-fail \ + 'LD_PREVIEW_FOLDER = os.path.join(BASE_DIR, "data", "previews")' \ + 'LD_PREVIEW_FOLDER = os.path.join(DATA_DIR, "previews")' + + substituteInPlace bookmarks/settings/base.py \ + --replace-fail \ + 'LD_ASSET_FOLDER = os.path.join(BASE_DIR, "data", "assets")' \ + 'LD_ASSET_FOLDER = os.path.join(DATA_DIR, "assets")' + + substituteInPlace bookmarks/utils.py \ + --replace-fail \ + 'import datetime' \ + 'import datetime''\nimport os' + + substituteInPlace bookmarks/utils.py \ + --replace-fail \ + 'with open("version.txt") as f:' \ + 'with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "version.txt")) as f:' + + substituteInPlace bookmarks/settings/prod.py \ + --replace-fail \ + 'with open(os.path.join(BASE_DIR, "data", "secretkey.txt")) as f:' \ + 'with open(os.path.join(DATA_DIR, "secretkey.txt")) as f:' + + substituteInPlace bookmarks/settings/dev.py \ + --replace-fail \ + 'os.path.join(BASE_DIR, "data", "favicons"),' \ + 'os.path.join(DATA_DIR, "favicons"),' + + substituteInPlace bookmarks/settings/dev.py \ + --replace-fail \ + 'os.path.join(BASE_DIR, "data", "previews"),' \ + 'os.path.join(DATA_DIR, "previews"),' + + # Patch management commands that bypass Django settings and use hardcoded + # relative "data/" paths. Replace them with paths derived from DATA_DIR + # via django.conf.settings so the data directory is always correct. + substituteInPlace bookmarks/management/commands/generate_secret_key.py \ + --replace-fail \ + 'from django.core.management.utils import get_random_secret_key' \ + 'from django.conf import settings''\nfrom django.core.management.utils import get_random_secret_key' + substituteInPlace bookmarks/management/commands/generate_secret_key.py \ + --replace-fail \ + 'secret_key_file = os.path.join("data", "secretkey.txt")' \ + 'secret_key_file = os.path.join(settings.DATA_DIR, "secretkey.txt")' + substituteInPlace bookmarks/management/commands/migrate_tasks.py \ + --replace-fail \ + 'import sqlite3' \ + 'import sqlite3''\nfrom django.conf import settings' + substituteInPlace bookmarks/management/commands/migrate_tasks.py \ + --replace-fail \ + 'db = sqlite3.connect(os.path.join("data", "db.sqlite3"))' \ + 'db = sqlite3.connect(os.path.join(settings.DATA_DIR, "db.sqlite3"))' + + # Place the version.txt file inside of the bookmarks package + # so that it can be installed by setuptools alongside the package + # in the Nix store. + mv version.txt bookmarks/version.txt + ''; + + preBuild = '' + cp -r ${finalAttrs.ui}/bookmarks/static/* bookmarks/static + ''; + + # Collect static files at build time so the result is a pure store path + # that can be served directly by the NixOS module without any runtime step. + # STATIC_ROOT in base.py defaults to $PWD/static, so the collected files + # land there and are picked up by postInstall. + postBuild = '' + mkdir data + ${python.interpreter} manage.py collectstatic --no-input + ''; + + postInstall = + let + pythonPath = python.pkgs.makePythonPath finalAttrs.passthru.dependencies; + in + '' + mkdir $out/bin + + cp -r static/* $out/${python.sitePackages}/bookmarks/static + + cp ./manage.py $out/bin/.manage.py + chmod +x $out/bin/.manage.py + + makeWrapper $out/bin/.manage.py $out/bin/linkding \ + --prefix PYTHONPATH : "${pythonPath}:$out/${python.sitePackages}" + + # Bootstrap script mirroring the upstream bootstrap.sh: creates data + # directories and runs Django management commands to initialize a fresh + # linkding installation. The linkding binary is referenced by its + # absolute store path so the script works without PATH manipulation. + cat > $out/bin/linkding-bootstrap << EOF + #!/bin/sh + DATA_DIR="\''${_NIXOS_LINKDING_DATA_DIR:-data}" + mkdir -p "\$DATA_DIR"/favicons "\$DATA_DIR"/previews "\$DATA_DIR"/assets + $out/bin/linkding generate_secret_key + $out/bin/linkding migrate + $out/bin/linkding enable_wal + $out/bin/linkding create_initial_superuser + $out/bin/linkding migrate_tasks + EOF + chmod +x $out/bin/linkding-bootstrap + ''; + + passthru = { + inherit + python + icuExtension + uwsgiWithPython + ; + tests = { + inherit (nixosTests) linkding linkding-postgres; + }; + updateScript = nix-update-script { + extraArgs = [ + "--subpackage" + "ui" + ]; + }; + }; + + meta = { + description = "Self-hosted bookmark manager designed to be minimal, fast, and easy to set up"; + homepage = "https://linkding.link/"; + changelog = "https://github.com/sissbruecker/linkding/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + squat + ]; + platforms = lib.platforms.linux; + }; +}) From 5c55071c5b8e570c057817731d41d959c120bec0 Mon Sep 17 00:00:00 2001 From: squat Date: Fri, 17 Apr 2026 13:39:05 +0200 Subject: [PATCH 04/44] nixos: introduce a service for linkding This commit adds a new NixOS service for the linkding package. This NixOS service runs 3 systemd services: 1. linkding-setup: this one-shot service bootstraps the creation of the runtime data directory and sets up the SQL database by running migrations, creating users, etc. 2. linkding: this is the main service, which runs linkding inside of uwsgi. 3. linkding-background-tasks: this is a sidecar service that runs `huey`, a task manager, which linkding uses to generate previews, downloads favicons, etc for your bookmarks. Wherever possible, the NixOS service mirrors the configuration from the upstream scripts/Docker compose. I've validated that following configurations work on my own machines: 1. linkding with the sqlite3: this is the simplest way to run the linkding service, storing all DB data in the data directory. Task runner is confirmed working and favicons/previews are correctly generated. 2. linkding with postgresql: this is a trickier configuration that needs to pull in an optional-dependency. This is also confirmed working even against a non-local postgres instance. Signed-off-by: squat --- .../manual/release-notes/rl-2605.section.md | 2 + nixos/modules/module-list.nix | 1 + nixos/modules/services/web-apps/linkding.nix | 403 ++++++++++++++++++ nixos/tests/all-tests.nix | 2 + nixos/tests/web-apps/linkding-postgres.nix | 42 ++ nixos/tests/web-apps/linkding.nix | 38 ++ 6 files changed, 488 insertions(+) create mode 100644 nixos/modules/services/web-apps/linkding.nix create mode 100644 nixos/tests/web-apps/linkding-postgres.nix create mode 100644 nixos/tests/web-apps/linkding.nix diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 1b931222d9cc..deb7c9c85041 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -98,6 +98,8 @@ - [Ente Auth](https://ente.io/auth/), an open source 2FA authenticator, with end-to-end encrypted backups. Available as [programs.ente-auth](#opt-programs.ente-auth.enable). +- [linkding](https://linkding.link/), a self-hosted bookmark manager designed to be minimal, fast, and easy to set up. Available as [services.linkding](#opt-services.linkding.enable). + - [Tinyauth](https://tinyauth.app/), a simple authentication middleware for web apps, with OAuth and LDAP support. Available as [services.tinyauth](#opt-services.tinyauth.enable). - [Dawarich](https://dawarich.app/), a self-hostable location history tracker. Available as [services.dawarich](#opt-services.dawarich.enable). diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index b23517fcce16..ec5c517e3dd4 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1697,6 +1697,7 @@ ./services/web-apps/librespeed.nix ./services/web-apps/libretranslate.nix ./services/web-apps/limesurvey.nix + ./services/web-apps/linkding.nix ./services/web-apps/linkwarden.nix ./services/web-apps/lubelogger.nix ./services/web-apps/mainsail.nix diff --git a/nixos/modules/services/web-apps/linkding.nix b/nixos/modules/services/web-apps/linkding.nix new file mode 100644 index 000000000000..fae7fb89c4d9 --- /dev/null +++ b/nixos/modules/services/web-apps/linkding.nix @@ -0,0 +1,403 @@ +{ + config, + lib, + pkgs, + ... +}: +let + inherit (lib) + mkEnableOption + mkIf + mkOption + mkPackageOption + optionalAttrs + types + ; + + cfg = config.services.linkding; +in +{ + options.services.linkding = { + enable = mkEnableOption "linkding, a self-hosted bookmark manager"; + + package = mkPackageOption pkgs "linkding" { }; + + user = mkOption { + type = types.str; + default = "linkding"; + description = '' + User account under which linkding runs. + + ::: {.note} + If left as the default value this user will automatically be created + on system activation, otherwise you are responsible for ensuring the + user exists before the linkding service starts. + ::: + ''; + }; + + group = mkOption { + type = types.str; + default = "linkding"; + description = '' + Group under which linkding runs. + + ::: {.note} + If left as the default value this group will automatically be created + on system activation, otherwise you are responsible for ensuring the + group exists before the linkding service starts. + ::: + ''; + }; + + dataDir = mkOption { + type = types.path; + default = "/var/lib/linkding"; + description = "Directory used for all mutable state: SQLite database, secret key, favicons, previews, and assets."; + }; + + address = mkOption { + type = types.str; + default = "127.0.0.1"; + description = "Address on which linkding listens."; + }; + + port = mkOption { + type = types.port; + default = 9090; + description = "Port on which linkding listens."; + }; + + contextPath = mkOption { + type = types.str; + default = ""; + example = "linkding/"; + description = '' + Configures a URL context path under which linkding is accessible. + When set, linkding is available at `http://host:/`. + Must end with a `/` when non-empty. + ''; + }; + + environmentFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/secrets/linkding.env"; + description = '' + Path to an environment file loaded by all linkding services. + Useful for injecting secrets that should not appear in the Nix store, + such as `LD_DB_PASSWORD` or `LD_SUPERUSER_PASSWORD`. + ''; + }; + + settings = mkOption { + type = types.attrsOf types.str; + default = { }; + example = { + LD_DISABLE_BACKGROUND_TASKS = "True"; + LD_DISABLE_URL_VALIDATION = "True"; + LD_ENABLE_OIDC = "True"; + }; + description = '' + Additional environment variables passed to linkding. + Refer to the [linkding documentation](https://linkding.link/options/) + for the full list of supported `LD_*` options. + ''; + }; + + database = { + type = mkOption { + type = types.enum [ + "sqlite" + "postgres" + ]; + default = "sqlite"; + description = "Database engine to use. Defaults to SQLite."; + }; + + host = mkOption { + type = types.str; + default = "localhost"; + description = "PostgreSQL server host."; + }; + + port = mkOption { + type = types.port; + default = 5432; + description = "PostgreSQL server port."; + }; + + name = mkOption { + type = types.str; + default = "linkding"; + description = "PostgreSQL database name."; + }; + + user = mkOption { + type = types.str; + default = "linkding"; + description = "PostgreSQL user name."; + }; + + createLocally = mkOption { + type = types.bool; + default = false; + description = "Whether to automatically create a local PostgreSQL database and user."; + }; + }; + + openFirewall = mkOption { + type = types.bool; + default = false; + description = "Open the linkding port in the firewall."; + }; + }; + + config = mkIf cfg.enable ( + let + pkg = cfg.package; + + usePostgres = cfg.database.type == "postgres"; + + pythonPath = + "${pkg.passthru.python.pkgs.makePythonPath pkg.passthru.dependencies}:${lib.getBin pkg}/${pkg.passthru.python.sitePackages}" + + lib.strings.optionalString usePostgres ":${pkg.passthru.python.pkgs.makePythonPath pkg.optional-dependencies.postgres}"; + + # Build the environment passed to every linkding process. + environment = { + DJANGO_SETTINGS_MODULE = "bookmarks.settings.prod"; + _NIXOS_LINKDING_DATA_DIR = cfg.dataDir; + LD_SERVER_PORT = toString cfg.port; + } + // optionalAttrs (cfg.contextPath != "") { + LD_CONTEXT_PATH = cfg.contextPath; + } + // optionalAttrs usePostgres { + LD_DB_ENGINE = "postgres"; + LD_DB_DATABASE = cfg.database.name; + LD_DB_USER = cfg.database.user; + LD_DB_HOST = "/run/postgresql"; + } + // optionalAttrs (usePostgres && !cfg.database.createLocally) { + LD_DB_HOST = cfg.database.host; + LD_DB_PORT = toString cfg.database.port; + } + // cfg.settings; + + environmentFile = pkgs.writeText "linkding-environment" (lib.generators.toKeyValue { } environment); + + # Generate a uwsgi.ini for the linkding instance, adapted for NixOS from + # the upstream uwsgi.ini. The static-map entries serve pre-generated + # static files from the Nix store as well as the mutable user-data + # directories (favicons, previews) from the data directory. + uwsgiIni = pkgs.writeText "linkding-uwsgi.ini" '' + [uwsgi] + plugins-dir = ${pkg.passthru.uwsgiWithPython}/lib/uwsgi + plugin = python3 + module = bookmarks.wsgi:application + env = DJANGO_SETTINGS_MODULE=bookmarks.settings.prod + processes = 2 + threads = 2 + buffer-size = 8192 + die-on-term = true + mime-file = ${pkgs.mailcap}/etc/mime.types + http = ${cfg.address}:${toString cfg.port} + static-map = /${cfg.contextPath}static=${pkg}/${pkg.passthru.python.sitePackages}/bookmarks/static + static-map = /${cfg.contextPath}static=${cfg.dataDir}/favicons + static-map = /${cfg.contextPath}static=${cfg.dataDir}/previews + static-map = /${cfg.contextPath}robots.txt=${pkg}/${pkg.passthru.python.sitePackages}/bookmarks/static/robots.txt + + if-env = LD_REQUEST_TIMEOUT + http-timeout = %(_) + socket-timeout = %(_) + harakiri = %(_) + endif = + + if-env = LD_REQUEST_MAX_CONTENT_LENGTH + limit-post = %(_) + endif = + + if-env = LD_LOG_X_FORWARDED_FOR + log-x-forwarded-for = %(_) + endif = + + if-env = LD_DISABLE_REQUEST_LOGS=true + disable-logging = true + log-4xx = true + log-5xx = true + endif = + ''; + + # Manage wrapper script installed into the system PATH so administrators can + # run Django management commands as the linkding service user. + linkdingManageScript = + let + args = lib.escapeShellArgs ( + [ + "--uid=${cfg.user}" + "--gid=${cfg.group}" + "--working-directory=${cfg.dataDir}" + "--property=EnvironmentFile=${environmentFile}" + ] + ++ lib.optional (cfg.environmentFile != null) "--property=EnvironmentFile=${cfg.environmentFile}" + ++ [ + "--property=ReadWritePaths=${cfg.dataDir}" + "--setenv=PYTHONPATH=${pythonPath}" + "--pty" + "--wait" + "--collect" + "--service-type=exec" + "--quiet" + "--" + "${lib.getExe' pkg "linkding"}" + ] + ); + in + pkgs.writeShellScriptBin "linkding-manage" '' + exec ${lib.getExe' config.systemd.package "systemd-run"} ${args} "$@" + ''; + + commonServiceConfig = { + Slice = "system-linkding.slice"; + User = cfg.user; + Group = cfg.group; + EnvironmentFile = [ + environmentFile + ] + ++ lib.optional (cfg.environmentFile != null) cfg.environmentFile; + Environment = "PYTHONPATH=${pythonPath}"; + WorkingDirectory = cfg.dataDir; + StateDirectory = [ + "linkding" + "linkding/favicons" + "linkding/previews" + "linkding/assets" + ]; + StateDirectoryMode = "0750"; + # Hardening + NoNewPrivileges = true; + PrivateTmp = true; + PrivateDevices = true; + ProtectSystem = "strict"; + ProtectHome = true; + ReadWritePaths = [ cfg.dataDir ]; + PrivateMounts = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + RemoveIPC = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + }; + in + { + assertions = [ + { + assertion = cfg.database.createLocally -> usePostgres; + message = "services.linkding.database.createLocally requires services.linkding.database.type = \"postgres\""; + } + { + assertion = + cfg.database.createLocally -> cfg.database.host == "localhost" || cfg.database.host == ""; + message = "services.linkding.database.host should be empty or \"localhost\" when createLocally is enabled"; + } + { + assertion = + cfg.database.createLocally + -> cfg.database.user == cfg.user && cfg.database.user == cfg.database.name; + message = "services.linkding.database.user must match services.linkding.user and services.linkding.database.name when createLocally is enabled"; + } + { + assertion = cfg.contextPath == "" || lib.hasSuffix "/" cfg.contextPath; + message = "services.linkding.contextPath must end with \"/\" when non-empty"; + } + ]; + + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ cfg.port ]; + }; + + environment.systemPackages = [ linkdingManageScript ]; + + users.users.${cfg.user} = { + isSystemUser = true; + group = cfg.group; + home = cfg.dataDir; + }; + + users.groups.${cfg.group} = { }; + + systemd.slices.system-linkding = { + description = "linkding bookmark manager System Slice"; + documentation = [ "https://linkding.link/" ]; + }; + + # One-shot setup service: run database migrations and first-time + # initialization steps taken from the upstream bootstrap.sh. + systemd.services.linkding-setup = { + description = "linkding database migrations and initialization"; + after = [ + "network.target" + ] + ++ lib.optionals (usePostgres && cfg.database.createLocally) [ "postgresql.target" ]; + requires = lib.optionals (usePostgres && cfg.database.createLocally) [ "postgresql.target" ]; + + serviceConfig = commonServiceConfig // { + Type = "oneshot"; + ExecStart = "${lib.getExe' pkg "linkding-bootstrap"}"; + }; + }; + + # Main WSGI service — starts after setup completes. + systemd.services.linkding = { + description = "linkding bookmark manager"; + wantedBy = [ "multi-user.target" ]; + after = [ "linkding-setup.service" ]; + requires = [ "linkding-setup.service" ]; + startLimitBurst = 5; + startLimitIntervalSec = 60; + serviceConfig = commonServiceConfig // { + Type = "exec"; + ExecStart = "${lib.getExe pkgs.uwsgi} --ini ${uwsgiIni}"; + Restart = "on-failure"; + }; + }; + + # Background task processor (Huey). Can be disabled via + # services.linkding.settings.LD_DISABLE_BACKGROUND_TASKS = "True". + systemd.services.linkding-background-tasks = + mkIf ((cfg.settings.LD_DISABLE_BACKGROUND_TASKS or "False") != "True") + { + description = "linkding background task processor"; + wantedBy = [ "multi-user.target" ]; + after = [ "linkding-setup.service" ]; + requires = [ "linkding-setup.service" ]; + + serviceConfig = commonServiceConfig // { + Type = "exec"; + ExecStart = "${lib.getExe' pkg "linkding"} run_huey -f"; + Restart = "on-failure"; + RestartSec = "5s"; + }; + }; + + # Automatically provision a local PostgreSQL database when requested. + services.postgresql = mkIf cfg.database.createLocally { + enable = true; + ensureDatabases = [ cfg.database.name ]; + ensureUsers = [ + { + name = cfg.database.user; + ensureDBOwnership = true; + } + ]; + }; + } + ); + + meta.maintainers = with lib.maintainers; [ squat ]; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 929e8362e8f3..61da880f2b03 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -889,6 +889,8 @@ in lighttpd = runTest ./lighttpd.nix; limesurvey = runTest ./limesurvey.nix; limine = import ./limine { inherit runTest; }; + linkding = runTest ./web-apps/linkding.nix; + linkding-postgres = runTest ./web-apps/linkding-postgres.nix; linkwarden = runTest ./web-apps/linkwarden.nix; listmonk = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./listmonk.nix { }; litellm = runTest ./litellm.nix; diff --git a/nixos/tests/web-apps/linkding-postgres.nix b/nixos/tests/web-apps/linkding-postgres.nix new file mode 100644 index 000000000000..486e8de653b3 --- /dev/null +++ b/nixos/tests/web-apps/linkding-postgres.nix @@ -0,0 +1,42 @@ +{ lib, ... }: +{ + name = "linkding-postgres"; + + meta = { + maintainers = with lib.maintainers; [ squat ]; + }; + + nodes.machine = + { ... }: + { + services.linkding = { + enable = true; + port = 9090; + database = { + createLocally = true; + type = "postgres"; + }; + }; + }; + + testScript = '' + machine.start() + machine.wait_for_unit("linkding.service") + machine.wait_for_open_port(9090) + + with subtest("Login page loads"): + machine.succeed( + "curl -sSfL http://127.0.0.1:9090 | grep -i 'linkding'" + ) + + with subtest("Health endpoint responds"): + machine.succeed( + "curl -sSf http://127.0.0.1:9090/health" + ) + + with subtest("linkding-manage works"): + machine.succeed( + "linkding-manage version" + ) + ''; +} diff --git a/nixos/tests/web-apps/linkding.nix b/nixos/tests/web-apps/linkding.nix new file mode 100644 index 000000000000..074e5c947a33 --- /dev/null +++ b/nixos/tests/web-apps/linkding.nix @@ -0,0 +1,38 @@ +{ lib, pkgs, ... }: +{ + name = "linkding"; + + meta = { + maintainers = with lib.maintainers; [ squat ]; + }; + + nodes.machine = + { ... }: + { + services.linkding = { + enable = true; + port = 9090; + }; + }; + + testScript = '' + machine.start() + machine.wait_for_unit("linkding.service") + machine.wait_for_open_port(9090) + + with subtest("Login page loads"): + machine.succeed( + "curl -sSfL http://127.0.0.1:9090 | grep -i 'linkding'" + ) + + with subtest("Health endpoint responds"): + machine.succeed( + "curl -sSf http://127.0.0.1:9090/health" + ) + + with subtest("linkding-manage works"): + machine.succeed( + "linkding-manage version" + ) + ''; +} From ab3bd2dbee1e06bfd5b7aa7af43553c1ea02d9fb Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Sun, 19 Apr 2026 00:04:54 +0200 Subject: [PATCH 05/44] lix_2_93: drop Lix 2.93 is removed because it has been deprecated. Lix 2.93.3 has a known series of issues and 2.94 is superior along all dimensions to the current knowledge. Change-Id: Ie95b6ac3a25e67702c5618aecf39f86f2e1293ad Signed-off-by: Raito Bezarius --- pkgs/tools/package-management/lix/default.nix | 68 +------------------ 1 file changed, 1 insertion(+), 67 deletions(-) diff --git a/pkgs/tools/package-management/lix/default.nix b/pkgs/tools/package-management/lix/default.nix index 8ebcd187f4a3..0f59bb4e9d33 100644 --- a/pkgs/tools/package-management/lix/default.nix +++ b/pkgs/tools/package-management/lix/default.nix @@ -175,73 +175,6 @@ lib.makeExtensible ( { inherit makeLixScope; - lix_2_93 = self.makeLixScope { - attrName = "lix_2_93"; - - lix-args = rec { - version = "2.93.3"; - - src = fetchFromGitea { - domain = "git.lix.systems"; - owner = "lix-project"; - repo = "lix"; - rev = version; - hash = "sha256-Oqw04eboDM8rrUgAXiT7w5F2uGrQdt8sGX+Mk6mVXZQ="; - }; - - cargoDeps = rustPlatform.fetchCargoVendor { - name = "lix-${version}"; - inherit src; - hash = "sha256-YMyNOXdlx0I30SkcmdW/6DU0BYc3ZOa2FMJSKMkr7I8="; - }; - - patches = [ - # Support for lowdown >= 1.4, https://gerrit.lix.systems/c/lix/+/3731 - (fetchpatch2 { - name = "lix-lowdown-1.4.0.patch"; - url = "https://git.lix.systems/lix-project/lix/commit/858de5f47a1bfd33835ec97794ece339a88490f1.patch"; - hash = "sha256-FfLO2dFSWV1qwcupIg8dYEhCHir2XX6/Hs89eLwd+SY="; - }) - - # Support for toml11 >= 4.0, https://gerrit.lix.systems/c/lix/+/3953 - (fetchpatch { - name = "lix-2.93-toml11-4-1.patch"; - url = "https://git.lix.systems/lix-project/lix/commit/96a39dc464165a3e503a6dc7bd44518a116fe846.patch"; - hash = "sha256-j1DOScY2IFvcouhoap9CQwIZf99MZ92HtY7CjInF/s4="; - }) - (fetchpatch { - name = "lix-2.93-toml11-4-2.patch"; - url = "https://git.lix.systems/lix-project/lix/commit/699d3a63a6351edfdbc8c05f814cc93d6c3637ca.patch"; - hash = "sha256-2iUynAdimxhe5ZSDB7DlzFG3tu1yWhq+lTvjf6+M0pM="; - }) - (fetchpatch { - name = "lix-2.93-toml11-4-3.patch"; - url = "https://git.lix.systems/lix-project/lix/commit/ad52cbde2faa677b711ec950dae74e4aede965a4.patch"; - hash = "sha256-ajQwafL3yZDJMVrR+D9eTGh7L0xbDbqhAUagRur4HDE="; - }) - (fetchpatch { - name = "lix-2.93-toml11-4-4.patch"; - url = "https://git.lix.systems/lix-project/lix/commit/e29a1ccf0af2e2890ec7b7fde82f0e53a1d0aad9.patch"; - hash = "sha256-sXqZxCUtZsO7uEVk2AZx3IkP8b8EPVghYboetcQTp2A="; - }) - (fetchpatch { - name = "lix-2.93-toml11-4-5.patch"; - url = "https://git.lix.systems/lix-project/lix/commit/176b834464b7285b74a72d35df7470a46362ce60.patch"; - hash = "sha256-/KIszfHf2XoB+GeVvXad2AV8pazffYdQRDtIXb9tbj8="; - }) - (fetchpatch { - name = "lix-2.93-toml11-4-6.patch"; - url = "https://git.lix.systems/lix-project/lix/commit/b6d5670bcffebdd43352ea79b36135e35a8148d9.patch"; - hash = "sha256-f4s0TR5MhNMNM5TYLOR7K2/1rtZ389KDjTCKFVK0OcE="; - }) - - lixMdbookPatch - - lixLowdown30Patch - ]; - }; - }; - lix_2_94 = self.makeLixScope { attrName = "lix_2_94"; @@ -344,5 +277,6 @@ lib.makeExtensible ( lix_2_90 = throw (removedMessage "2.90"); # added in 2025-09-11 lix_2_91 = throw (removedMessage "2.91"); # added in 2025-09-11 lix_2_92 = throw (removedMessage "2.92"); # added in 2025-09-11 + lix_2_93 = throw (removedMessage "2.93"); # added in 2026-04-19 } ) From cd5d300bba7ec9c8938452b440aa0053a5fb4f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edward=20Tj=C3=B6rnhammar?= Date: Mon, 20 Apr 2026 18:11:52 +0200 Subject: [PATCH 06/44] linuxPackages.nvidiaPackages.dc_5{7,8,9}0: add compatible open kmods --- nixos/modules/hardware/video/nvidia.nix | 7 +++++++ pkgs/os-specific/linux/nvidia-x11/default.nix | 3 +++ 2 files changed, 10 insertions(+) diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix index d8c42c128438..cef902557555 100644 --- a/nixos/modules/hardware/video/nvidia.nix +++ b/nixos/modules/hardware/video/nvidia.nix @@ -356,6 +356,13 @@ in It is suggested to use the open source kernel modules on Turing or later GPUs (RTX series, GTX 16xx), and the closed source modules otherwise. ''; } + { + assertion = !cfg.open || (nvidia_x11.open != null); + message = '' + The selected NVIDIA package does not provide open kernel modules. + Set hardware.nvidia.open = false or choose a package branch with open module support. + ''; + } ]; boot = { blacklistedKernelModules = [ diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix index 709f3d838af5..44976a9ceec8 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -126,6 +126,7 @@ rec { sha256_64bit = "sha256-ueL4BpN4FDHMh/TNKRCeEz3Oy1ClDWto1LO/LWlr1ok="; persistencedSha256 = "sha256-wsNeuw7IaY6Qc/i/AzT/4N82lPjkwfrhxidKWUtcwW8="; fabricmanagerSha256 = "sha256-f/AQ8HrgoqBQyXNrXA/UaI4OMQ9QcjjYWIhr1/5uM74="; + openSha256 = "sha256-hECHfguzwduEfPo5pCDjWE/MjtRDhINVr4b1awFdP44="; useSettings = false; usePersistenced = true; useFabricmanager = true; @@ -137,6 +138,7 @@ rec { sha256_64bit = "sha256-TKxT5I+K3/Zh1HyHiO0kBZokjJ/YCYzq/QiKSYmG7CY="; persistencedSha256 = "sha256-J1UwS0o/fxz45gIbH9uaKxARW+x4uOU1scvAO4rHU5Y="; fabricmanagerSha256 = "sha256-tyCHKIr8nxVfZIqcWKAwRoMLzmGlsOUhDlO5V/9W97Y="; + openSha256 = "sha256-ychsaurbQ2KNFr/SAprKI2tlvAigoKoFU1H7+SaxSrY="; useSettings = false; usePersistenced = true; useFabricmanager = true; @@ -148,6 +150,7 @@ rec { sha256_64bit = "sha256-AlaGfggsr5PXsl+nyOabMWBiqcbHLG4ij617I4xvoX0="; persistencedSha256 = "sha256-x4K0Gp89LdL5YJhAI0AydMRxl6fyBylEnj+nokoBrK8="; fabricmanagerSha256 = "sha256-jSTKzeRVTUcYma1Cb0ajSdXKCi6KzUXCp2OByPSWSR4="; + openSha256 = "sha256-aTV5J4zmEgRCOavo6wLwh5efOZUG+YtoeIT/tnrC1Hg="; useSettings = false; usePersistenced = true; useFabricmanager = true; From f87c4d090aeeacc510b7d9d1525f01390c8e5318 Mon Sep 17 00:00:00 2001 From: SamLukeYes Date: Tue, 21 Apr 2026 01:40:46 +0800 Subject: [PATCH 07/44] xonsh: 0.22.8 -> 0.23.0 --- pkgs/by-name/xo/xonsh/unwrapped.nix | 32 ++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/xo/xonsh/unwrapped.nix b/pkgs/by-name/xo/xonsh/unwrapped.nix index 60307957c04d..6b7ded51582d 100644 --- a/pkgs/by-name/xo/xonsh/unwrapped.nix +++ b/pkgs/by-name/xo/xonsh/unwrapped.nix @@ -16,9 +16,12 @@ pip, pyte, pytest-mock, + pytest-rerunfailures, pytest-subprocess, + pytest-timeout, pytestCheckHook, requests, + virtualenv, man, util-linux, @@ -32,7 +35,7 @@ buildPythonPackage rec { pname = "xonsh"; - version = "0.22.8"; + version = "0.23.0"; pyproject = true; # PyPI package ships incomplete tests @@ -40,7 +43,7 @@ buildPythonPackage rec { owner = "xonsh"; repo = "xonsh"; tag = version; - hash = "sha256-NOQs21Ahp2oMx1Lw1ekvb2aqUWwIXw1WyC9ZE5V9wJI="; + hash = "sha256-hZMA1GMyzo2297iTrgOdRuqjqR55KughPsaL0EZWLWM="; }; build-system = [ @@ -61,9 +64,14 @@ buildPythonPackage rec { pip pyte pytest-mock + pytest-rerunfailures pytest-subprocess + pytest-timeout pytestCheckHook requests + + # required by test_xonsh_activator + virtualenv ] ++ lib.optionals (!stdenv.isDarwin) [ # required by test_man_completion @@ -74,16 +82,16 @@ buildPythonPackage rec { disabledTests = [ # fails on sandbox "test_colorize_file" - "test_xonsh_activator" + "test_repath_HOME_PATH_itself" + "test_repath_HOME_PATH_var" + "test_repath_HOME_PATH_var_brace" # flaky tests in test_integrations.py "test_script" "test_catching_system_exit" "test_catching_exit_signal" - "test_alias_stability" "test_captured_subproc_is_not_affected_next_command" "test_spec_decorator_alias" - "test_alias_stability_exception" # flaky tests in test_python.py "test_complete_import" @@ -112,18 +120,22 @@ buildPythonPackage rec { "test_on_command_not_found_replacement" "test_skipper_command" "test_xonsh_lexer_no_win" + "test_on_command_not_found_dict_without_env" + ]; + + disabledTestPaths = [ + # don't run stress tests when building package + "tests/xintegration/test_stress.py" ]; # https://github.com/NixOS/nixpkgs/issues/248978 dontWrapPythonPrograms = true; - env.LC_ALL = "en_US.UTF-8"; - postPatch = '' sed -i -e 's|/bin/ls|${lib.getExe' coreutils "ls"}|' tests/test_execer.py - sed -i -e 's|SHELL=xonsh|SHELL=$out/bin/xonsh|' tests/test_integrations.py + sed -i -e 's|SHELL=xonsh|SHELL=$out/bin/xonsh|' tests/xintegration/test_integrations.py - for script in tests/test_integrations.py scripts/xon.sh $(find -name "*.xsh"); do + for script in tests/xintegration/test_integrations.py scripts/xon.sh $(find -name "*.xsh"); do sed -i -e 's|/usr/bin/env|${lib.getExe' coreutils "env"}|' $script done patchShebangs . @@ -139,7 +151,7 @@ buildPythonPackage rec { meta = { homepage = "https://xon.sh/"; - description = "Python-ish, BASHwards-compatible shell"; + description = "Python-powered shell"; changelog = "https://github.com/xonsh/xonsh/blob/${version}/CHANGELOG.md"; license = with lib.licenses; [ bsd3 ]; mainProgram = "xonsh"; From 97b5957e8dfb85ace59413510d5ce30956bf3893 Mon Sep 17 00:00:00 2001 From: 2kybe3 Date: Mon, 20 Apr 2026 20:21:21 +0200 Subject: [PATCH 08/44] just: 1.49.0 -> 1.50.0 Changelog: https://github.com/casey/just/blob/1.50.0/CHANGELOG.md Diff: https://github.com/casey/just/compare/1.49.0...1.50.0 --- pkgs/by-name/ju/just/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ju/just/package.nix b/pkgs/by-name/ju/just/package.nix index e6089f6751ab..5abbadc5b51b 100644 --- a/pkgs/by-name/ju/just/package.nix +++ b/pkgs/by-name/ju/just/package.nix @@ -17,7 +17,7 @@ withDocumentation ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, }: let - version = "1.49.0"; + version = "1.50.0"; in rustPlatform.buildRustPackage { inherit version; @@ -34,10 +34,10 @@ rustPlatform.buildRustPackage { owner = "casey"; repo = "just"; tag = version; - hash = "sha256-4vUcKHoQto4TQce4y4/MwdES0+PPlSjNvzLW77FodWs="; + hash = "sha256-2hq7lgjL4XbcaaWxuDfqU0UcC4DRYKL6WFjdnb5AmjY="; }; - cargoHash = "sha256-5hhwzkNgF+i5aCUoVh1VNfkNJFttyy5cLhBwu8uHmAQ="; + cargoHash = "sha256-tKeVE5BpDvElnpN/CO6lOqDUwhWD1dGm7k51Z3wAviE="; nativeBuildInputs = lib.optionals (installShellCompletions || installManPages) [ installShellFiles ] From f0cc30d2197d15df94c2541069e3d7af3bb43710 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 20 Apr 2026 22:29:05 +0000 Subject: [PATCH 09/44] androidStudioPackages.canary: 2025.3.4.4 -> 2026.1.1.1 --- pkgs/applications/editors/android-studio/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 82f23e4d0d0b..36f4114dacc1 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -26,9 +26,9 @@ let url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.4.5/android-studio-panda4-rc1-linux.tar.gz"; }; latestVersion = { - version = "2025.3.4.4"; # "Android Studio Panda 4 | 2025.3.4 Canary 4" - sha256Hash = "sha256-sPGJuOm5T7EZV5hhOJsZc7P8CTXyv9A6k82hM1GZGpY="; - url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.4.4/android-studio-panda4-canary4-linux.tar.gz"; + version = "2026.1.1.1"; # "Android Studio Quail 1 | 2026.1.1 Canary 1" + sha256Hash = "sha256-Nr7V6B4sEZrcwkMdKoevLEkyIHawxUx/ejN0nBL4KW0="; + url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.1.1/android-studio-quail1-canary1-linux.tar.gz"; }; in { From 617306490cadd78d4c46ce93a7df4cced6e7cf7c Mon Sep 17 00:00:00 2001 From: Ilan Joselevich Date: Tue, 21 Apr 2026 10:18:30 +0100 Subject: [PATCH 10/44] Revert "nixos/prometheus-exporters: add socketOpts and use for node-exporter & postfix-exporter" --- .../manual/release-notes/rl-2605.section.md | 2 -- .../monitoring/prometheus/exporters.md | 13 +------------ .../monitoring/prometheus/exporters.nix | 19 +++---------------- .../monitoring/prometheus/exporters/node.nix | 7 +------ .../prometheus/exporters/postfix.nix | 7 +------ 5 files changed, 6 insertions(+), 42 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index f883372fd450..bd5f460c32a8 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -318,8 +318,6 @@ See . - [hardware.xpadneo](#opt-hardware.xpadneo.enable) now supports configuring kernel module parameters via a freeform [settings](#opt-hardware.xpadneo.settings) option, with convenience options for [rumble attenuation](#opt-hardware.xpadneo.rumbleAttenuation) and [controller quirks](#opt-hardware.xpadneo.quirks). -- The `services.prometheus.exporters` module interface now accepts an optional `socketOpts` attribute, allowing individual exporter modules to describe an accompanying `systemd.sockets.prometheus-${name}-exporter` unit alongside their service, enabling socket activation support. - - Wine has been updated to the 11.0 branch. Please check the [upstream announcement](https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0) for more details. - `security.acme` now defaults to a dynamic renewal duration, if diff --git a/nixos/modules/services/monitoring/prometheus/exporters.md b/nixos/modules/services/monitoring/prometheus/exporters.md index f12be9b5f874..f0bff8154291 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.md +++ b/nixos/modules/services/monitoring/prometheus/exporters.md @@ -138,23 +138,12 @@ example: DynamicUser = false; ExecStart = '' ${pkgs.prometheus-postfix-exporter}/bin/postfix_exporter \ - --web.systemd-socket \ + --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ --web.telemetry-path ${cfg.telemetryPath} \ ${lib.concatStringsSep " \\\n " cfg.extraFlags} ''; }; }; - - # `socketOpts` is an optional attribute set describing a - # `systemd.sockets.prometheus-${name}-exporter` unit that - # accompanies the exporter's service. When set, it is merged - # with a default definition that includes - # `wantedBy = [ "sockets.target" ]`, enabling socket activation - # for exporters that support it. - # Note that this attribute is optional. - socketOpts = { - socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}"; - }; } ``` - This should already be enough for the postfix exporter. Additionally one diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index a6317a032235..18a1e30d31fe 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -36,15 +36,10 @@ let # - extraOpts (types.attrs): extra configuration options to # configure the exporter with, which # are appended to the default options - # - socketOpts (types.attrs): optional config that is merged with - # the default definition of the - # exporter's systemd socket unit. When - # set, a `prometheus-${name}-exporter.socket` - # unit is created, enabling socket activation. # - # Note that `extraOpts` and `socketOpts` are optional, but a script - # for the exporter's systemd service must be provided by specifying - # either `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart` + # Note that `extraOpts` is optional, but a script for the exporter's + # systemd service must be provided by specifying either + # `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart` exporterOpts = (genAttrs @@ -316,7 +311,6 @@ let name, conf, serviceOpts, - socketOpts, }: let enableDynamicUser = serviceOpts.serviceConfig.DynamicUser or true; @@ -374,12 +368,6 @@ let "-m comment --comment ${name}-exporter -j nixos-fw-accept" ]); networking.firewall.extraInputRules = mkIf (conf.openFirewall && nftables) conf.firewallRules; - systemd.sockets."prometheus-${name}-exporter" = mkIf (socketOpts != null) (mkMerge [ - { - wantedBy = [ "sockets.target" ]; - } - socketOpts - ]); systemd.services."prometheus-${name}-exporter" = mkMerge [ { wantedBy = [ "multi-user.target" ]; @@ -615,7 +603,6 @@ in mkExporterConf { inherit name; inherit (conf) serviceOpts; - socketOpts = conf.socketOpts or null; conf = cfg.${name}; } ) exporterOpts) diff --git a/nixos/modules/services/monitoring/prometheus/exporters/node.nix b/nixos/modules/services/monitoring/prometheus/exporters/node.nix index 82bb7c804294..2c4a82f0e044 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/node.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/node.nix @@ -39,7 +39,6 @@ in ''; }; }; - serviceOpts = { serviceConfig = { DynamicUser = false; @@ -48,7 +47,7 @@ in ${pkgs.prometheus-node-exporter}/bin/node_exporter \ ${concatMapStringsSep " " (x: "--collector." + x) cfg.enabledCollectors} \ ${concatMapStringsSep " " (x: "--no-collector." + x) cfg.disabledCollectors} \ - --web.systemd-socket ${concatStringsSep " " cfg.extraFlags} + --web.listen-address ${cfg.listenAddress}:${toString cfg.port} ${concatStringsSep " " cfg.extraFlags} ''; RestrictAddressFamilies = optionals (collectorIsEnabled "logind" || collectorIsEnabled "systemd") [ @@ -68,8 +67,4 @@ in ProtectHome = true; }; }; - - socketOpts = { - socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}"; - }; } diff --git a/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix b/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix index e0abda068b2f..53a4056b86dd 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix @@ -85,7 +85,6 @@ in }; }; }; - serviceOpts = { after = mkIf cfg.systemd.enable [ cfg.systemd.unit ]; serviceConfig = { @@ -96,7 +95,7 @@ in SupplementaryGroups = mkIf cfg.systemd.enable [ "systemd-journal" ]; ExecStart = '' ${lib.getExe cfg.package} \ - --web.systemd-socket \ + --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ --web.telemetry-path ${cfg.telemetryPath} \ --postfix.showq_path ${escapeShellArg cfg.showqPath} \ ${concatStringsSep " \\\n " ( @@ -116,8 +115,4 @@ in ''; }; }; - - socketOpts = { - socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}"; - }; } From fa7ad22d062c5093a04154207e183f714f009ab2 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 21 Apr 2026 14:45:17 +0300 Subject: [PATCH 11/44] python3.pkgs.plopp: 26.4.0 -> 26.4.1 Diff: https://github.com/scipp/plopp/compare/26.4.0...26.4.1 --- pkgs/development/python-modules/plopp/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/plopp/default.nix b/pkgs/development/python-modules/plopp/default.nix index e9f0eff94a96..969f68728a25 100644 --- a/pkgs/development/python-modules/plopp/default.nix +++ b/pkgs/development/python-modules/plopp/default.nix @@ -36,14 +36,14 @@ buildPythonPackage (finalAttrs: { pname = "plopp"; - version = "26.4.0"; + version = "26.4.1"; pyproject = true; src = fetchFromGitHub { owner = "scipp"; repo = "plopp"; tag = finalAttrs.version; - hash = "sha256-qjuhM0/qrGIZw00DOnaGODGHqzGn4r3gIAguJS5OPZ8="; + hash = "sha256-fx+jMqso/ISB6KiWVGGBgvsT9vayfe+MCrSciAIyKks="; }; build-system = [ From bb53f67be3c3f285d0c717664d0b8165a32a4eb1 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Tue, 21 Apr 2026 16:40:34 +0200 Subject: [PATCH 12/44] speakersafetyd: 1.1.2-unstable-2026-03-28 -> 2.0.0 --- pkgs/by-name/sp/speakersafetyd/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 68a108e8b2ff..e38650277481 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "speakersafetyd"; - version = "1.1.2-unstable-2026-03-28"; + version = "2.0.0"; src = fetchFromGitHub { owner = "AsahiLinux"; repo = "speakersafetyd"; - rev = "a97c341e39e3f89e99f65d2a35d4e060b3b0168a"; - hash = "sha256-FWpO2cp8licwevpAP25fmiIUEehkQp61E4A7RmsKJH0="; + tag = finalAttrs.version; + hash = "sha256-tHHoVJqWcip5u/e7M9l74opdzfe0Y9Q6ItIT7w7XfA8="; }; - cargoHash = "sha256-xcCnzDN/U3sp12UwznaYjalzcKxo8Eo4vHnO/Sf++Zk="; + cargoHash = "sha256-v0w/eA/qd9xBivgq7BgdaGRGDdX2NA1gbRgv84cB6d4="; nativeBuildInputs = [ pkg-config From ab3df3196e00c6199b65e11dd0d7461d05c7f4dc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 21 Apr 2026 17:02:59 +0000 Subject: [PATCH 13/44] davmail: 6.5.1 -> 6.6.0 --- pkgs/by-name/da/davmail/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/da/davmail/package.nix b/pkgs/by-name/da/davmail/package.nix index e80be26e650e..de6b66ae1c57 100644 --- a/pkgs/by-name/da/davmail/package.nix +++ b/pkgs/by-name/da/davmail/package.nix @@ -23,13 +23,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "davmail"; - version = "6.5.1"; + version = "6.6.0"; src = fetchFromGitHub { owner = "mguessan"; repo = "davmail"; tag = finalAttrs.version; - hash = "sha256-D/MEWq696PFXlarQZdSrTS9VFODg7u7yhUsbCwHV9qs="; + hash = "sha256-La6nrbAGeZlIhs0i5dm6pIcvn+V1wQjuqBza4w+Aa3A="; }; buildPhase = '' From 7fed7a400d3605d8a390607eaabda0fba00d900f Mon Sep 17 00:00:00 2001 From: nikstur Date: Tue, 21 Apr 2026 18:50:12 +0200 Subject: [PATCH 14/44] nixos/systemd/initrd: fix modprobe Contains the same fix as in d36077c0b686c91cea9d20edd58da632d4f28318 but now for the initrd. --- nixos/modules/system/boot/systemd/initrd.nix | 4 ++++ nixos/tests/systemd-initrd-modprobe.nix | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix index 370fceb94844..3dd954a526bb 100644 --- a/nixos/modules/system/boot/systemd/initrd.nix +++ b/nixos/modules/system/boot/systemd/initrd.nix @@ -640,6 +640,10 @@ in ) cfg.automounts ); + services."modprobe@" = lib.mkIf (config.system.build.kernel.config.isYes "MODULES") { + serviceConfig.ExecSearchPath = lib.makeBinPath [ cfg.package.kmod ]; + }; + services.initrd-find-nixos-closure = lib.mkIf (!config.system.nixos-init.enable) { description = "Find NixOS closure"; diff --git a/nixos/tests/systemd-initrd-modprobe.nix b/nixos/tests/systemd-initrd-modprobe.nix index 88237f5ab801..894de6e29ffd 100644 --- a/nixos/tests/systemd-initrd-modprobe.nix +++ b/nixos/tests/systemd-initrd-modprobe.nix @@ -18,6 +18,10 @@ rtt = machine.succeed("cat /sys/module/tcp_hybla/parameters/rtt0") assert int(rtt) == 42, "Parameter should be respected for initrd kernel modules" + with subtest("modprobe@ services work"): + modprobe_service_status = machine.succeed("systemctl show --property ExecMainStatus modprobe@9pnet_virtio.service") + t.assertEqual("ExecMainStatus=0\n", modprobe_service_status) + # Make sure it sticks in stage 2 machine.switch_root() machine.wait_for_unit("multi-user.target") From 2c7f0d79701976cc68481e6ed23e245e860da2b1 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Tue, 21 Apr 2026 19:08:54 +0100 Subject: [PATCH 15/44] nixos-rebuild-ng: mock pathlib.Path.exists in test_upgrade_channels This should avoid make it try to call the real path to see if it exists. Seems to be an issue in a particular setup in aarch64-darwin at least, but I can't reproduce. Fix: #511860. --- pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py b/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py index f8c6d75c5290..8fb4d5ef166e 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py +++ b/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py @@ -892,11 +892,13 @@ def test_switch_to_configuration_with_systemd_run( ], ) @patch("pathlib.Path.is_dir", autospec=True, return_value=True) +@patch("pathlib.Path.exists", autospec=True, return_value=False) @patch("os.geteuid", autospec=True, return_value=1000) @patch(get_qualified_name(n.run_wrapper, n), autospec=True) def test_upgrade_channels( mock_run: Mock, mock_geteuid: Mock, + mock_exists: Mock, mock_is_dir: Mock, mock_glob: Mock, ) -> None: @@ -912,7 +914,11 @@ def test_upgrade_channels( ["nix-channel", "--update", "nixos"], check=False, sudo=True ) + # root check mock_geteuid.return_value = 0 + # (channel_path / ".update-on-nixos-rebuild").exists() + mock_exists.return_value = True + n.upgrade_channels(all_channels=True, sudo=False) mock_run.assert_has_calls( [ From 4cec3122850f3aa592b04648c1088268bc6144a6 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Tue, 21 Apr 2026 20:01:49 +0100 Subject: [PATCH 16/44] nixos-rebuild-ng: refactor test_upgrade_channels --- .../nixos-rebuild-ng/src/nixos_rebuild/nix.py | 8 ++- .../ni/nixos-rebuild-ng/src/tests/test_nix.py | 67 +++++++++++-------- 2 files changed, 45 insertions(+), 30 deletions(-) diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/nix.py b/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/nix.py index c825320eae74..c6b5b4d63c45 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/nix.py +++ b/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/nix.py @@ -726,7 +726,11 @@ def switch_to_configuration( ) -def upgrade_channels(all_channels: bool = False, sudo: bool = False) -> None: +def upgrade_channels( + all_channels: bool = False, + sudo: bool = False, + channels_dir: Path = Path("/nix/var/nix/profiles/per-user/root/channels/"), +) -> None: """Upgrade channels for classic Nix. It will either upgrade just the `nixos` channel (including any channel @@ -739,7 +743,7 @@ def upgrade_channels(all_channels: bool = False, sudo: bool = False) -> None: ) channel_updated = False - for channel_path in Path("/nix/var/nix/profiles/per-user/root/channels/").glob("*"): + for channel_path in channels_dir.glob("*"): if channel_path.is_dir() and ( all_channels or channel_path.name == "nixos" diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py b/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py index 8fb4d5ef166e..bccb2f196970 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py +++ b/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py @@ -882,50 +882,61 @@ def test_switch_to_configuration_with_systemd_run( ) -@patch( - "pathlib.Path.glob", - autospec=True, - return_value=[ - Path("/nix/var/nix/profiles/per-user/root/channels/nixos"), - Path("/nix/var/nix/profiles/per-user/root/channels/nixos-hardware"), - Path("/nix/var/nix/profiles/per-user/root/channels/home-manager"), - ], -) -@patch("pathlib.Path.is_dir", autospec=True, return_value=True) -@patch("pathlib.Path.exists", autospec=True, return_value=False) @patch("os.geteuid", autospec=True, return_value=1000) @patch(get_qualified_name(n.run_wrapper, n), autospec=True) -def test_upgrade_channels( - mock_run: Mock, - mock_geteuid: Mock, - mock_exists: Mock, - mock_is_dir: Mock, - mock_glob: Mock, -) -> None: +def test_upgrade_channels(mock_run: Mock, mock_geteuid: Mock, tmpdir: Path) -> None: + tmp_path = Path(tmpdir) + with pytest.raises(m.NixOSRebuildError) as e: - n.upgrade_channels(all_channels=False, sudo=False) + n.upgrade_channels(all_channels=False, sudo=False, channels_dir=tmp_path) assert str(e.value) == ( "error: if you pass the '--upgrade' or '--upgrade-all' flag, you must " "also pass '--sudo' or run the command as root (e.g., with sudo)" ) - n.upgrade_channels(all_channels=False, sudo=True) - mock_run.assert_called_once_with( - ["nix-channel", "--update", "nixos"], check=False, sudo=True + (tmp_path / "nixos").mkdir() + (tmp_path / "nixos-hardware").mkdir() + (tmp_path / "nixos-hardware" / ".update-on-nixos-rebuild").touch() + (tmp_path / "home-manager").mkdir() + + # should work because we are passing sudo=True even with os.geteuid == 1000 + n.upgrade_channels(all_channels=False, sudo=True, channels_dir=tmp_path) + mock_run.assert_has_calls( + [ + call( + ["nix-channel", "--update", "nixos-hardware"], + check=False, + sudo=True, + ), + call( + ["nix-channel", "--update", "nixos"], + check=False, + sudo=True, + ), + ] ) + mock_run.reset_mock() # root check mock_geteuid.return_value = 0 - # (channel_path / ".update-on-nixos-rebuild").exists() - mock_exists.return_value = True - n.upgrade_channels(all_channels=True, sudo=False) + n.upgrade_channels(all_channels=True, sudo=False, channels_dir=tmp_path) mock_run.assert_has_calls( [ - call(["nix-channel", "--update", "nixos"], check=False, sudo=False), call( - ["nix-channel", "--update", "nixos-hardware"], check=False, sudo=False + ["nix-channel", "--update", "home-manager"], + check=False, + sudo=False, + ), + call( + ["nix-channel", "--update", "nixos-hardware"], + check=False, + sudo=False, + ), + call( + ["nix-channel", "--update", "nixos"], + check=False, + sudo=False, ), - call(["nix-channel", "--update", "home-manager"], check=False, sudo=False), ] ) From c5e1229e44b7eb16a058ea823675492d4d944bcd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 21 Apr 2026 20:03:06 +0000 Subject: [PATCH 17/44] factoriolab: 3.18.2 -> 3.19.2 --- pkgs/by-name/fa/factoriolab/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fa/factoriolab/package.nix b/pkgs/by-name/fa/factoriolab/package.nix index 050187ea3622..f170132fc08a 100644 --- a/pkgs/by-name/fa/factoriolab/package.nix +++ b/pkgs/by-name/fa/factoriolab/package.nix @@ -10,13 +10,13 @@ }: buildNpmPackage rec { pname = "factoriolab"; - version = "3.18.2"; + version = "3.19.2"; src = fetchFromGitHub { owner = "factoriolab"; repo = "factoriolab"; tag = "v${version}"; - hash = "sha256-M7u9pqr7OGHgNMly1am11R6EcV6LKyPw2JzIAbzt6Wo="; + hash = "sha256-DjNsn3PVGf+36m+k2j9NMQTqhPj8HF6V8wqaQKUB4Ho="; fetchLFS = true; }; buildInputs = [ vips ]; From 345e2b56e5b4ad8b881e77bcdef41dbd3f768057 Mon Sep 17 00:00:00 2001 From: Marvin Vogt Date: Tue, 21 Apr 2026 23:39:37 +0200 Subject: [PATCH 18/44] hanko: 0.5.4 -> 1.1.2 --- pkgs/by-name/ha/hanko/package.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ha/hanko/package.nix b/pkgs/by-name/ha/hanko/package.nix index aab772d410fa..4cec55ee32b3 100644 --- a/pkgs/by-name/ha/hanko/package.nix +++ b/pkgs/by-name/ha/hanko/package.nix @@ -8,16 +8,19 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "hanko"; - version = "0.5.4"; + version = "1.1.2"; src = fetchFromGitHub { owner = "SRv6d"; repo = "hanko"; tag = "v${finalAttrs.version}"; - hash = "sha256-9HRoXqZ3wdD6xf33tooEHiBWSZlggjUFomblwF4cFtA="; + hash = "sha256-tmspfsIIxYa9fTPhHJrVRUcpC8gZ0R4prTLTDstuwbg="; }; - cargoHash = "sha256-wHvhlWi99igZ2gKAIcBYg207JrbQNCOjlcVttIy3MV0="; + cargoHash = "sha256-IcQtG29qTQl4U0HwG+kvPT07RhSgUADtejV7ObWyjG0="; + + # Upstream tests require network access, which is unavailable in the sandbox. + doCheck = false; passthru = { updateScript = nix-update-script { }; From 27220ce259cedcfeacf2f9dcb825bae51179c47c Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Tue, 21 Apr 2026 17:42:49 -0700 Subject: [PATCH 19/44] flycast: 2.5 -> 2.6 --- pkgs/by-name/fl/flycast/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fl/flycast/package.nix b/pkgs/by-name/fl/flycast/package.nix index 6fa6a6ce8356..c9ab0cfedf83 100644 --- a/pkgs/by-name/fl/flycast/package.nix +++ b/pkgs/by-name/fl/flycast/package.nix @@ -13,18 +13,19 @@ lua, miniupnpc, SDL2, + systemdLibs, vulkan-loader, }: stdenv.mkDerivation (finalAttrs: { pname = "flycast"; - version = "2.5"; + version = "2.6"; src = fetchFromGitHub { owner = "flyinghead"; repo = "flycast"; tag = "v${finalAttrs.version}"; - hash = "sha256-OnlSkwPDUrpj9uEPEAxZO1iSgd5ZiQUJLneu14v9pKQ="; + hash = "sha256-Lq6Oj+U4mpwNlL/t3ZB9gjE5NAVQyhdvBwLUGu1C+j0="; fetchSubmodules = true; }; @@ -43,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: { lua miniupnpc SDL2 + systemdLibs ]; cmakeFlags = [ From 347c91efe7187f37a6ff948977c76e30d3084e7a Mon Sep 17 00:00:00 2001 From: 2kybe3 Date: Wed, 22 Apr 2026 06:48:15 +0200 Subject: [PATCH 20/44] usage: 3.2.0 -> 3.2.1 Changelog: https://github.com/jdx/usage/releases/tag/v3.2.1 Diff: https://github.com/jdx/usage/compare/v3.2.0...v3.2.1 --- pkgs/by-name/us/usage/package.nix | 10 +++------- pkgs/by-name/us/usage/use-bin-exe-env.patch | 17 ----------------- 2 files changed, 3 insertions(+), 24 deletions(-) delete mode 100644 pkgs/by-name/us/usage/use-bin-exe-env.patch diff --git a/pkgs/by-name/us/usage/package.nix b/pkgs/by-name/us/usage/package.nix index 58e6a1183629..76c6eecaf0e5 100644 --- a/pkgs/by-name/us/usage/package.nix +++ b/pkgs/by-name/us/usage/package.nix @@ -12,20 +12,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "usage"; - version = "3.2.0"; + version = "3.2.1"; src = fetchFromGitHub { owner = "jdx"; repo = "usage"; tag = "v${finalAttrs.version}"; - hash = "sha256-0yonwl/2BIkGUs0uOBP+Pjo93NvLVK4QQQj/K4C4NNY="; + hash = "sha256-L8OQ6GdHoxJROA/lczichG4nNx5UGKxInihel5AaFIc="; }; - cargoHash = "sha256-jxTN+La7Ye2okRZGAY6niIvvRf2E4vFFHd1nny7JJDo="; - - patches = [ - ./use-bin-exe-env.patch - ]; + cargoHash = "sha256-JauKSCp5Fk1shzXE2dy/joYamv7XW2rnIsu4hjIkBUA="; postPatch = '' substituteInPlace ./examples/*.sh \ diff --git a/pkgs/by-name/us/usage/use-bin-exe-env.patch b/pkgs/by-name/us/usage/use-bin-exe-env.patch deleted file mode 100644 index 832881faeb85..000000000000 --- a/pkgs/by-name/us/usage/use-bin-exe-env.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/cli/tests/shell_completions_integration.rs b/cli/tests/shell_completions_integration.rs -index 815c44c..51b5dd9 100644 ---- a/cli/tests/shell_completions_integration.rs -+++ b/cli/tests/shell_completions_integration.rs -@@ -25,6 +25,13 @@ fn run_complete_word(usage_bin: &Path, shell: &str, spec_file: &Path, words: &[& - - /// Build the usage binary and return its path - fn build_usage_binary() -> PathBuf { -+ if let Some(usage_path) = std::env::var("CARGO_BIN_EXE_usage") -+ .ok() -+ .filter(|s| !s.is_empty()) -+ { -+ return PathBuf::from(usage_path); -+ } -+ - let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - let workspace_root = manifest_dir.parent().unwrap(); From 4f9b44a2968c9397d7b09fdf5fbf315259040bb0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 04:59:44 +0000 Subject: [PATCH 21/44] vivify: 0.13.0 -> 0.14.0 --- pkgs/by-name/vi/vivify/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/vi/vivify/package.nix b/pkgs/by-name/vi/vivify/package.nix index 08ebe3c821b0..36b01b38fc2e 100644 --- a/pkgs/by-name/vi/vivify/package.nix +++ b/pkgs/by-name/vi/vivify/package.nix @@ -13,18 +13,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "vivify"; - version = "0.13.0"; + version = "0.14.0"; src = fetchFromGitHub { owner = "jannis-baum"; repo = "Vivify"; tag = "v${finalAttrs.version}"; - hash = "sha256-LjVxSf2rddg9DyAY6MAVFzuoxIT4d1a/8Wv8DukxeYM="; + hash = "sha256-CszMG+c0bNHfXWqcI3b4iGpeFJ+FmzHDzxflPS+wEe0="; }; yarnOfflineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/yarn.lock"; - hash = "sha256-61NXUEpXIFJXRuIZgLAkDqsk6WvV7WU2Qm24ID0oDtw="; + hash = "sha256-svgEanFiBSQn0TdTuB0CnLR71lkANABEaDiKB+Vc0Rc="; }; installPhase = '' From 0b6942cecb98edc60263f00934f0060688f208f3 Mon Sep 17 00:00:00 2001 From: Harinn Date: Wed, 22 Apr 2026 15:15:13 +0700 Subject: [PATCH 22/44] yq-go: 4.52.5 -> 4.53.2 --- pkgs/by-name/yq/yq-go/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/yq/yq-go/package.nix b/pkgs/by-name/yq/yq-go/package.nix index 468788f036e4..2d79bfe85617 100644 --- a/pkgs/by-name/yq/yq-go/package.nix +++ b/pkgs/by-name/yq/yq-go/package.nix @@ -11,16 +11,16 @@ buildGoModule (finalAttrs: { pname = "yq-go"; - version = "4.52.5"; + version = "4.53.2"; src = fetchFromGitHub { owner = "mikefarah"; repo = "yq"; tag = "v${finalAttrs.version}"; - hash = "sha256-ZOgAPnONzRBTjNeOgQK4fXwUrypHH51XI/JWbE/momE="; + hash = "sha256-So0yUblAxLgbw1/BrOp6zj9wGMTtsspjk2UQaBIBIYE="; }; - vendorHash = "sha256-QTcDE5qs46ryWhZlKHIC2G1jbEO12XGJa6QvEJC5oL8="; + vendorHash = "sha256-t+u3rJNbe8JcfWBb+jMaZuTcSWYmhMiCeKbI2noVaCo="; nativeBuildInputs = lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ installShellFiles From 341840d4f4f6b77673c185e5bc1505269ae7fdb0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 08:21:07 +0000 Subject: [PATCH 23/44] rage: 0.11.1 -> 0.11.2 --- pkgs/by-name/ra/rage/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ra/rage/package.nix b/pkgs/by-name/ra/rage/package.nix index da17b435013c..4dd1e7472c63 100644 --- a/pkgs/by-name/ra/rage/package.nix +++ b/pkgs/by-name/ra/rage/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rage"; - version = "0.11.1"; + version = "0.11.2"; src = fetchFromGitHub { owner = "str4d"; repo = "rage"; rev = "v${finalAttrs.version}"; - hash = "sha256-aZs1iqfpsiMuhxXNqRatpKD99eDBCsWHk4OPpnnaB70="; + hash = "sha256-uBRXdDdfKTlw006LfCrIvbng7b/fhJDHrmHDLLxdmAU="; }; - cargoHash = "sha256-GdvqkB/jHAGUbzhOLPkIX664JJH3WrZZtv+/E/PhTR8="; + cargoHash = "sha256-b5x6ESGsF0Mn5dNVagBSopuawbrNcJuMK1//Ns+xuJs="; nativeBuildInputs = [ installShellFiles From dd3ce2f81964d670824a9f605b3ff937440a0de3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 09:29:33 +0000 Subject: [PATCH 24/44] python3Packages.hueble: 2.2.1 -> 2.2.2 --- pkgs/development/python-modules/hueble/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/hueble/default.nix b/pkgs/development/python-modules/hueble/default.nix index 051b1bd68303..87b63ec3b319 100644 --- a/pkgs/development/python-modules/hueble/default.nix +++ b/pkgs/development/python-modules/hueble/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "hueble"; - version = "2.2.1"; + version = "2.2.2"; pyproject = true; src = fetchFromGitHub { owner = "flip-dots"; repo = "HueBLE"; tag = "v${version}"; - hash = "sha256-JbihHDG44PeS6rxUOXSRF9NlH/smUGz3/JrCmXqTT5s="; + hash = "sha256-ASegu+kssupiJD6IFDAmZk7kl+RVUsTep6Zjs6IhVBI="; }; build-system = [ setuptools ]; From 69468469671647ce212d0bb475630df6fd45213f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 09:59:09 +0000 Subject: [PATCH 25/44] memogram: 0.4.2 -> 0.5.0 --- pkgs/by-name/me/memogram/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/me/memogram/package.nix b/pkgs/by-name/me/memogram/package.nix index 8d0354fd090a..9dc9c1f8e5e1 100644 --- a/pkgs/by-name/me/memogram/package.nix +++ b/pkgs/by-name/me/memogram/package.nix @@ -6,16 +6,16 @@ }: buildGoModule (finalAttrs: { pname = "memogram"; - version = "0.4.2"; + version = "0.5.0"; src = fetchFromGitHub { owner = "usememos"; repo = "telegram-integration"; tag = "v${finalAttrs.version}"; - hash = "sha256-OkNx5qAF7Gxk50S9a31NUWRoC9uHPUwUHG3jA8gy7AQ="; + hash = "sha256-kXn3m7o+WqxONUUiy6PVfdJfKuo9hJfpaAaXQx0LsnU="; }; - vendorHash = "sha256-iSJU/FyyEbZlpTT3isJlsEvDzNpg3ylE5367KPBeUxM="; + vendorHash = "sha256-aSq+wjWZUK4Rh7bw9NqqxnD9H3X+EgMF6F4w+SUtm70="; subPackages = [ "bin/memogram" ]; From abd0e4abd9990871cdf7edd8e1e8944001bedb5a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 10:14:19 +0000 Subject: [PATCH 26/44] dprint-plugins.dprint-plugin-biome: 0.12.7 -> 0.12.8 --- pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix index 1eb892d89f2f..abb4ce1a531c 100644 --- a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix +++ b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "Biome (JS/TS/JSON) wrapper plugin"; - hash = "sha256-OCnhTv0UfRX4ntmkhNlswfhHbxVFiGu8ovYagEITlI8="; + hash = "sha256-dje/9QfRL9D16J6NXErK1HdJyMZaLpI/L/lq3WdyQso="; initConfig = { configExcludes = [ "**/node_modules" ]; configKey = "biome"; @@ -17,6 +17,6 @@ mkDprintPlugin { }; pname = "dprint-plugin-biome"; updateUrl = "https://plugins.dprint.dev/dprint/biome/latest.json"; - url = "https://plugins.dprint.dev/biome-0.12.7.wasm"; - version = "0.12.7"; + url = "https://plugins.dprint.dev/biome-0.12.8.wasm"; + version = "0.12.8"; } From 4736df67c936f8d5d51dc3cef76bd6e87365ac22 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 10:59:36 +0000 Subject: [PATCH 27/44] libretro.desmume2015: 0-unstable-2022-04-05 -> 0-unstable-2026-04-20 --- pkgs/applications/emulators/libretro/cores/desmume2015.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/desmume2015.nix b/pkgs/applications/emulators/libretro/cores/desmume2015.nix index cb8566a6b511..afcf54a597b5 100644 --- a/pkgs/applications/emulators/libretro/cores/desmume2015.nix +++ b/pkgs/applications/emulators/libretro/cores/desmume2015.nix @@ -10,13 +10,13 @@ }: mkLibretroCore { core = "desmume2015"; - version = "0-unstable-2022-04-05"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "libretro"; repo = "desmume2015"; - rev = "af397ff3d1f208c27f3922cc8f2b8e08884ba893"; - hash = "sha256-kEb+og4g7rJvCinBZKcb42geZO6W8ynGsTG9yqYgI+U="; + rev = "f43dd42aae0816fcc69b2ebaa9299cbfef2ce2cc"; + hash = "sha256-jozi1aFgrvlBJ2cc+gXRHi1TguzSTz+GC4C3UNMl1D4="; }; extraBuildInputs = [ From d8ed0dac72d4bc1dff141dc869484cbdfde1d717 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 11:32:15 +0000 Subject: [PATCH 28/44] windsurf: 1.9600.41 -> 2.0.67 --- pkgs/by-name/wi/windsurf/info.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/wi/windsurf/info.json b/pkgs/by-name/wi/windsurf/info.json index cfc9d0c7d9ed..0be77d11b2df 100644 --- a/pkgs/by-name/wi/windsurf/info.json +++ b/pkgs/by-name/wi/windsurf/info.json @@ -1,20 +1,20 @@ { "aarch64-darwin": { - "version": "1.9600.41", + "version": "2.0.67", "vscodeVersion": "1.110.1", - "url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/f90ca8311d630b9b77e7537222ecfce0a0ac990b/Windsurf-darwin-arm64-1.9600.41.zip", - "sha256": "db935596cf4f27018eca94529c807f1d3e42fb040b75ee99726a0bd9089fcf0b" + "url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/08b5de9bae1728a5ad46386c9b8903192a125c51/Windsurf-darwin-arm64-2.0.67.zip", + "sha256": "1be5a36addf99211aa4deed9476184defb94d6fe58ba30e7f84833834915961f" }, "x86_64-darwin": { - "version": "1.9600.41", + "version": "2.0.67", "vscodeVersion": "1.110.1", - "url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/f90ca8311d630b9b77e7537222ecfce0a0ac990b/Windsurf-darwin-x64-1.9600.41.zip", - "sha256": "6b7403b6405b9961f5a5d004120da7991ca3b35f140437b6b4ee4ac8d3e72795" + "url": "https://windsurf-stable.codeiumdata.com/darwin-x64/stable/08b5de9bae1728a5ad46386c9b8903192a125c51/Windsurf-darwin-x64-2.0.67.zip", + "sha256": "2186862bf20f5968837ea777b171f05a65320259063b1343117c53ceef8cdc97" }, "x86_64-linux": { - "version": "1.9600.41", + "version": "2.0.67", "vscodeVersion": "1.110.1", - "url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/f90ca8311d630b9b77e7537222ecfce0a0ac990b/Windsurf-linux-x64-1.9600.41.tar.gz", - "sha256": "b8c9e9dad0bc51e40e393f5a16e8c20cedefcd91d0bd879c15200039f0933962" + "url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/08b5de9bae1728a5ad46386c9b8903192a125c51/Windsurf-linux-x64-2.0.67.tar.gz", + "sha256": "f2f10ef446096bc77c6d0513ea7ceb8a59398d5119a93f5b88a7c77a59727b67" } } From acdb28118b1da5e93c39da702c0afbd73483181a Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Wed, 22 Apr 2026 07:32:28 -0400 Subject: [PATCH 29/44] release-checks: fix eval error Attempt to fix eval error on Hydra. See: https://hydra.nixos.org/build/326752376. --- pkgs/applications/networking/sync/lsyncd/default.nix | 6 +++++- .../darwin/by-name/av/AvailabilityVersions/package.nix | 6 +++++- .../darwin/by-name/bo/bootstrap_cmds/package.nix | 6 +++++- pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix | 6 +++++- pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix | 6 +++++- pkgs/os-specific/darwin/by-name/dy/dyld/package.nix | 6 +++++- pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix | 6 +++++- pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix | 6 +++++- .../darwin/by-name/po/PowerManagement/package.nix | 6 +++++- pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix | 6 +++++- pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix | 6 +++++- pkgs/os-specific/darwin/by-name/to/top/package.nix | 6 +++++- 12 files changed, 60 insertions(+), 12 deletions(-) diff --git a/pkgs/applications/networking/sync/lsyncd/default.nix b/pkgs/applications/networking/sync/lsyncd/default.nix index f28cbcb83196..f5cce8daac55 100644 --- a/pkgs/applications/networking/sync/lsyncd/default.nix +++ b/pkgs/applications/networking/sync/lsyncd/default.nix @@ -17,7 +17,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/package.nix b/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/package.nix index d0aa908a3b83..dc23cff7e934 100644 --- a/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/package.nix +++ b/pkgs/os-specific/darwin/by-name/av/AvailabilityVersions/package.nix @@ -11,7 +11,11 @@ let inherit (buildPackages) gnused python3; f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/bo/bootstrap_cmds/package.nix b/pkgs/os-specific/darwin/by-name/bo/bootstrap_cmds/package.nix index 3d267ef6ae5a..17b4b9f62118 100644 --- a/pkgs/os-specific/darwin/by-name/bo/bootstrap_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/bo/bootstrap_cmds/package.nix @@ -14,7 +14,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix b/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix index d905e3617611..462bfcce9706 100644 --- a/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix @@ -10,7 +10,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix b/pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix index d26a1a9f4b13..614f670b10f9 100644 --- a/pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/do/doc_cmds/package.nix @@ -11,7 +11,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix b/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix index 06c4aaedc5af..eda8c5d8df5a 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix @@ -22,7 +22,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix b/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix index 1e6433c31098..08498f2786a0 100644 --- a/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix @@ -19,7 +19,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix b/pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix index ea0ae1c12795..e13835513ed4 100644 --- a/pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix +++ b/pkgs/os-specific/darwin/by-name/io/IOKitTools/package.nix @@ -10,7 +10,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/po/PowerManagement/package.nix b/pkgs/os-specific/darwin/by-name/po/PowerManagement/package.nix index 6c3883ed969a..9c285b013760 100644 --- a/pkgs/os-specific/darwin/by-name/po/PowerManagement/package.nix +++ b/pkgs/os-specific/darwin/by-name/po/PowerManagement/package.nix @@ -7,7 +7,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix b/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix index ba35d58c481f..4fc44ef8dcfc 100644 --- a/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix @@ -15,7 +15,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix b/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix index a8b44093a9a5..7a911463152d 100644 --- a/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix @@ -18,7 +18,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; diff --git a/pkgs/os-specific/darwin/by-name/to/top/package.nix b/pkgs/os-specific/darwin/by-name/to/top/package.nix index ef7e6efe9d0e..69418a6d9b6c 100644 --- a/pkgs/os-specific/darwin/by-name/to/top/package.nix +++ b/pkgs/os-specific/darwin/by-name/to/top/package.nix @@ -9,7 +9,11 @@ let f = pkgs: prev: - if !pkgs.stdenv.hostPlatform.isDarwin || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" then + if + !pkgs.stdenv.hostPlatform.isDarwin + || pkgs.stdenv.name == "bootstrap-stage0-stdenv-darwin" + || !(pkgs.stdenv ? __bootPackages) + then prev.darwin.sourceRelease else f pkgs.stdenv.__bootPackages pkgs; From 0f8fa65370f4e48f3e20070bdad911642edeba53 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 13:43:34 +0000 Subject: [PATCH 30/44] kdsingleapplication: 1.2.0 -> 1.2.1 --- pkgs/by-name/kd/kdsingleapplication/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/kd/kdsingleapplication/package.nix b/pkgs/by-name/kd/kdsingleapplication/package.nix index a1be57ca0823..07975b3ec0f1 100644 --- a/pkgs/by-name/kd/kdsingleapplication/package.nix +++ b/pkgs/by-name/kd/kdsingleapplication/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "KDSingleApplication"; - version = "1.2.0"; + version = "1.2.1"; src = fetchFromGitHub { owner = "KDAB"; repo = "KDSingleApplication"; tag = "v${finalAttrs.version}"; - hash = "sha256-rglt89Gw6OHXXVOEwf0TxezDzyHEvWepeGeup7fBlLs="; + hash = "sha256-LmiQL8hQR5U4S/L5FS9Pb2WpOoZJyiAaWGoMkGl5aUM="; }; nativeBuildInputs = [ cmake ]; From e8ce29b7561372469521b6573be2848c860c2101 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 13:44:47 +0000 Subject: [PATCH 31/44] node-gyp: 12.2.0 -> 12.3.0 --- pkgs/by-name/no/node-gyp/package-lock.json | 2086 +++++++------------- pkgs/by-name/no/node-gyp/package.nix | 6 +- 2 files changed, 697 insertions(+), 1395 deletions(-) diff --git a/pkgs/by-name/no/node-gyp/package-lock.json b/pkgs/by-name/no/node-gyp/package-lock.json index 8dee8031b32e..7e534093e5ff 100644 --- a/pkgs/by-name/no/node-gyp/package-lock.json +++ b/pkgs/by-name/no/node-gyp/package-lock.json @@ -1,23 +1,23 @@ { "name": "node-gyp", - "version": "12.2.0", + "version": "12.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "node-gyp", - "version": "12.2.0", + "version": "12.3.0", "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^15.0.0", "nopt": "^9.0.0", "proc-log": "^6.0.0", "semver": "^7.3.5", "tar": "^7.5.4", "tinyglobby": "^0.2.12", + "undici": "^6.25.0", "which": "^6.0.0" }, "bin": { @@ -29,47 +29,13 @@ "eslint": "^9.39.1", "mocha": "^11.7.5", "nan": "^2.23.1", - "neostandard": "^0.12.2", + "neostandard": "^0.13.0", "require-inject": "^1.4.4" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@emnapi/core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", - "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.1.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", - "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@epic-web/invariant": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", @@ -120,15 +86,15 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^3.1.5" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -161,20 +127,20 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", - "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.4", + "ajv": "^6.14.0", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", - "minimatch": "^3.1.2", + "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { @@ -185,9 +151,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "dev": true, "license": "MIT", "engines": { @@ -222,29 +188,43 @@ } }, "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, "engines": { "node": ">=18.18.0" } }, "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanfs/core": "^0.19.1", + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", "@humanwhocodes/retry": "^0.4.0" }, "engines": { "node": ">=18.18.0" } }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, "node_modules/@humanwhocodes/gitignore-to-minimatch": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", @@ -284,27 +264,6 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -323,91 +282,6 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@isaacs/fs-minipass": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", @@ -420,57 +294,6 @@ "node": ">=18.0.0" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", - "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.10.0" - } - }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.4.0" - } - }, - "node_modules/@npmcli/agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.0.tgz", - "integrity": "sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==", - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^11.2.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@npmcli/fs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", - "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -502,17 +325,6 @@ "eslint": ">=8.40.0" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -528,20 +340,20 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.54.0.tgz", - "integrity": "sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.0.tgz", + "integrity": "sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/type-utils": "8.54.0", - "@typescript-eslint/utils": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/type-utils": "8.59.0", + "@typescript-eslint/utils": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -551,9 +363,9 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.54.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "@typescript-eslint/parser": "^8.59.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { @@ -567,17 +379,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.54.0.tgz", - "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.0.tgz", + "integrity": "sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "debug": "^4.4.3" }, "engines": { @@ -588,19 +399,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.54.0.tgz", - "integrity": "sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.0.tgz", + "integrity": "sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.54.0", - "@typescript-eslint/types": "^8.54.0", + "@typescript-eslint/tsconfig-utils": "^8.59.0", + "@typescript-eslint/types": "^8.59.0", "debug": "^4.4.3" }, "engines": { @@ -611,18 +422,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.54.0.tgz", - "integrity": "sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.0.tgz", + "integrity": "sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0" + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -633,9 +444,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.54.0.tgz", - "integrity": "sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.0.tgz", + "integrity": "sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==", "dev": true, "license": "MIT", "engines": { @@ -646,21 +457,21 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.54.0.tgz", - "integrity": "sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.0.tgz", + "integrity": "sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/utils": "8.54.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0", + "@typescript-eslint/utils": "8.59.0", "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -670,14 +481,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.54.0.tgz", - "integrity": "sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.0.tgz", + "integrity": "sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==", "dev": true, "license": "MIT", "engines": { @@ -689,21 +500,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.54.0.tgz", - "integrity": "sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.0.tgz", + "integrity": "sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.54.0", - "@typescript-eslint/tsconfig-utils": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/visitor-keys": "8.54.0", + "@typescript-eslint/project-service": "8.59.0", + "@typescript-eslint/tsconfig-utils": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "debug": "^4.4.3", - "minimatch": "^9.0.5", + "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -713,46 +524,59 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.54.0.tgz", - "integrity": "sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.0.tgz", + "integrity": "sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.54.0", - "@typescript-eslint/types": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0" + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -762,19 +586,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.54.0.tgz", - "integrity": "sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.0.tgz", + "integrity": "sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.54.0", - "eslint-visitor-keys": "^4.2.1" + "@typescript-eslint/types": "8.59.0", + "eslint-visitor-keys": "^5.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -784,275 +608,19 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", - "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", - "cpu": [ - "arm" - ], + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", - "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", - "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", - "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", - "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", - "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", - "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", - "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", - "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", - "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", - "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", - "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", - "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", - "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", - "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", - "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.11" - }, + "license": "Apache-2.0", "engines": { - "node": ">=14.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", - "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", - "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", - "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/abbrev": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", @@ -1063,12 +631,11 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1086,19 +653,10 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "dev": true, "license": "MIT", "dependencies": { @@ -1113,13 +671,16 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -1327,9 +888,9 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -1344,38 +905,16 @@ "dev": true, "license": "ISC" }, - "node_modules/cacache": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz", - "integrity": "sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^5.0.0", - "fs-minipass": "^3.0.0", - "glob": "^13.0.0", - "lru-cache": "^11.1.0", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^7.0.2", - "ssri": "^13.0.0", - "unique-filename": "^5.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" }, "engines": { @@ -1503,6 +1042,69 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1523,16 +1125,6 @@ "dev": true, "license": "MIT" }, - "node_modules/comment-parser": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.5.tgz", - "integrity": "sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12.0.0" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1654,6 +1246,7 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -1769,31 +1362,21 @@ "license": "MIT" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/enhanced-resolve": { - "version": "5.18.4", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", - "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.0" }, "engines": { "node": ">=10.13.0" @@ -1808,16 +1391,10 @@ "node": ">=6" } }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "license": "MIT" - }, "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", "dev": true, "license": "MIT", "dependencies": { @@ -1904,16 +1481,16 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", - "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.2.tgz", + "integrity": "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", + "call-bind": "^1.0.9", "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.24.1", + "es-abstract": "^1.24.2", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", @@ -1925,7 +1502,7 @@ "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", - "safe-array-concat": "^1.1.3" + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -2015,25 +1592,25 @@ } }, "node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", + "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", + "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", @@ -2052,7 +1629,7 @@ "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -2090,66 +1667,6 @@ "eslint": ">=6.0.0" } }, - "node_modules/eslint-import-context": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz", - "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-tsconfig": "^4.10.1", - "stable-hash-x": "^0.2.0" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-context" - }, - "peerDependencies": { - "unrs-resolver": "^1.0.0" - }, - "peerDependenciesMeta": { - "unrs-resolver": { - "optional": true - } - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", - "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.4.0", - "get-tsconfig": "^4.10.0", - "is-bun-module": "^2.0.0", - "stable-hash": "^0.0.5", - "tinyglobby": "^0.2.13", - "unrs-resolver": "^1.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-resolver-typescript" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } - } - }, "node_modules/eslint-plugin-es-x": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", @@ -2172,64 +1689,10 @@ "eslint": ">=8" } }, - "node_modules/eslint-plugin-import-x": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.16.1.tgz", - "integrity": "sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "^8.35.0", - "comment-parser": "^1.4.1", - "debug": "^4.4.1", - "eslint-import-context": "^0.1.9", - "is-glob": "^4.0.3", - "minimatch": "^9.0.3 || ^10.0.1", - "semver": "^7.7.2", - "stable-hash-x": "^0.2.0", - "unrs-resolver": "^1.9.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-import-x" - }, - "peerDependencies": { - "@typescript-eslint/utils": "^8.0.0", - "eslint": "^8.57.0 || ^9.0.0", - "eslint-import-resolver-node": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/utils": { - "optional": true - }, - "eslint-import-resolver-node": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-import-x/node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/eslint-plugin-n": { - "version": "17.23.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.2.tgz", - "integrity": "sha512-RhWBeb7YVPmNa2eggvJooiuehdL76/bbfj/OJewyoGT80qn5PXdz8zMOTO6YHOsI7byPt7+Ighh/i/4a5/v7hw==", + "version": "17.24.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.24.0.tgz", + "integrity": "sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==", "dev": true, "license": "MIT", "dependencies": { @@ -2528,9 +1991,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -2567,18 +2030,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -2698,9 +2149,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.1.tgz", - "integrity": "sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", "dev": true, "license": "MIT", "dependencies": { @@ -2711,17 +2162,22 @@ } }, "node_modules/glob": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", - "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", - "license": "BlueOak-1.0.0", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", "dependencies": { - "minimatch": "^10.1.1", + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "20 || >=22" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2740,16 +2196,27 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", - "license": "BlueOak-1.0.0", + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "license": "MIT", "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2893,9 +2360,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", "dev": true, "license": "MIT", "dependencies": { @@ -2915,51 +2382,6 @@ "he": "bin/he" } }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "license": "BSD-2-Clause" - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -2991,6 +2413,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.19" @@ -3011,15 +2434,6 @@ "node": ">= 0.4" } }, - "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -3091,16 +2505,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-bun-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", - "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.7.1" - } - }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -3463,12 +2867,12 @@ "license": "MIT" }, "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "license": "ISC", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/iterator.prototype": { @@ -3640,35 +3044,11 @@ } }, "node_modules/lru-cache": { - "version": "11.2.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", - "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/make-fetch-happen": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.3.tgz", - "integrity": "sha512-iyyEpDty1mwW3dGlYXAJqC/azFn5PPvgKVwXayOGBSmKLxhKZ9fg4qIan2ePpp1vJIwfFiO34LAPZgq9SZW9Aw==", - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^4.0.0", - "cacache": "^20.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^5.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", - "ssri": "^13.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" }, "node_modules/math-intrinsics": { "version": "1.1.0", @@ -3681,9 +3061,9 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -3694,133 +3074,14 @@ } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-fetch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.0.tgz", - "integrity": "sha512-fiCdUALipqgPWrOVTz9fw0XhcazULXOSU6ie40DDbX1F49p1dBrSRBuswndTx1x3vEb/g0FT7vC4c4C2u/mh3A==", - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-flush/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, "node_modules/minizlib": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", @@ -3871,51 +3132,23 @@ } }, "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, - "node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/mocha/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -3924,23 +3157,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -3961,31 +3177,16 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/nan": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.25.0.tgz", - "integrity": "sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==", + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.26.2.tgz", + "integrity": "sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==", "dev": true, "license": "MIT" }, - "node_modules/napi-postinstall": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", - "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", - "dev": true, - "license": "MIT", - "bin": { - "napi-postinstall": "lib/cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/napi-postinstall" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3993,48 +3194,54 @@ "dev": true, "license": "MIT" }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/neostandard": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/neostandard/-/neostandard-0.12.2.tgz", - "integrity": "sha512-VZU8EZpSaNadp3rKEwBhVD1Kw8jE3AftQLkCyOaM7bWemL1LwsYRsBnAmXy2LjG9zO8t66qJdqB7ccwwORyrAg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/neostandard/-/neostandard-0.13.0.tgz", + "integrity": "sha512-R3iglFr+Dla/8qFBqsMxBvcYBOgP6rAGw7uRHKMpM3bUP0wLDRzUstxtEI9RfEwn7xszE/UUnh8H090Ru4Z52A==", "dev": true, "license": "MIT", "dependencies": { "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@stylistic/eslint-plugin": "2.11.0", - "eslint-import-resolver-typescript": "^3.10.1", - "eslint-plugin-import-x": "^4.16.1", - "eslint-plugin-n": "^17.20.0", + "eslint-plugin-n": "^17.23.2", "eslint-plugin-promise": "^7.2.1", "eslint-plugin-react": "^7.37.5", - "find-up": "^5.0.0", - "globals": "^15.15.0", - "peowly": "^1.3.2", - "typescript-eslint": "^8.35.1" + "find-up": "^8.0.0", + "globals": "^17.3.0", + "peowly": "^1.3.3", + "typescript-eslint": "^8.56.0" }, "bin": { "neostandard": "cli.mjs" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "peerDependencies": { "eslint": "^9.0.0" } }, + "node_modules/neostandard/node_modules/find-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-8.0.0.tgz", + "integrity": "sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^8.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/neostandard/node_modules/globals": { - "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", + "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", "dev": true, "license": "MIT", "engines": { @@ -4044,6 +3251,96 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/neostandard/node_modules/locate-path": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-8.0.0.tgz", + "integrity": "sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/neostandard/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/neostandard/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/neostandard/node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-exports-info/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/nopt": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", @@ -4235,18 +3532,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", - "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -4295,29 +3580,31 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": "20 || >=22" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/peowly": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/peowly/-/peowly-1.3.2.tgz", - "integrity": "sha512-BYIrwr8JCXY49jUZscgw311w9oGEKo7ux/s+BxrhKTQbiQ0iYNdZNJ5LgagaeercQdFHwnR7Z5IxxFWVQ+BasQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/peowly/-/peowly-1.3.3.tgz", + "integrity": "sha512-5UmUtvuCv3KzBX2NuQw2uF28o0t8Eq4KkPRZfUCzJs+DiNVKw7OaYn29vNDgrt/Pggs23CPlSTqgzlhHJfpT0A==", "dev": true, "license": "MIT", "engines": { - "node": ">=18.6.0" + "node": ">=18.6.0", + "typescript": ">=5.8" } }, "node_modules/picocolors": { @@ -4328,9 +3615,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "license": "MIT", "engines": { "node": ">=12" @@ -4368,19 +3655,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4499,19 +3773,25 @@ } }, "node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "version": "2.0.0-next.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz", + "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4536,25 +3816,16 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, @@ -4621,17 +3892,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT", - "optional": true - }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4743,14 +4007,14 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -4811,73 +4075,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ssri": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.0.tgz", - "integrity": "sha512-yizwGBpbCn4YomB2lzhZqrHLJoqFGXihNbib3ozhqF/cIp5ue+xSmOQrjNasEE62hFxsCcg/V/z23t4n8jMEng==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/stable-hash": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", - "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/stable-hash-x": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz", - "integrity": "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", @@ -4893,6 +4090,25 @@ } }, "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -4907,17 +4123,31 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -5022,16 +4252,19 @@ } }, "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-ansi-cjs": { @@ -5048,6 +4281,16 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -5088,9 +4331,9 @@ } }, "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, "license": "MIT", "engines": { @@ -5102,9 +4345,9 @@ } }, "node_modules/tar": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz", - "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==", + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", + "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==", "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", @@ -5118,13 +4361,13 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -5134,9 +4377,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { @@ -5169,14 +4412,6 @@ "typescript": ">=4.0.0" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5269,11 +4504,12 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -5283,16 +4519,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.54.0.tgz", - "integrity": "sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.0.tgz", + "integrity": "sha512-BU3ONW9X+v90EcCH9ZS6LMackcVtxRLlI3XrYyqZIwVSHIk7Qf7bFw1z0M9Q0IUxhTMZCf8piY9hTYaNEIASrw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.54.0", - "@typescript-eslint/parser": "8.54.0", - "@typescript-eslint/typescript-estree": "8.54.0", - "@typescript-eslint/utils": "8.54.0" + "@typescript-eslint/eslint-plugin": "8.59.0", + "@typescript-eslint/parser": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0", + "@typescript-eslint/utils": "8.59.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5302,8 +4538,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/unbox-primitive": { @@ -5325,63 +4561,26 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unique-filename": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-5.0.0.tgz", - "integrity": "sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==", - "license": "ISC", - "dependencies": { - "unique-slug": "^6.0.0" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/unique-slug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-6.0.0.tgz", - "integrity": "sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/unrs-resolver": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", - "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", - "dev": true, - "hasInstallScript": true, + "node_modules/undici": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz", + "integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==", "license": "MIT", - "dependencies": { - "napi-postinstall": "^0.3.0" + "engines": { + "node": ">=18.17" + } + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" }, "funding": { - "url": "https://opencollective.com/unrs-resolver" - }, - "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.11.1", - "@unrs/resolver-binding-android-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-x64": "1.11.1", - "@unrs/resolver-binding-freebsd-x64": "1.11.1", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", - "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-musl": "1.11.1", - "@unrs/resolver-binding-wasm32-wasi": "1.11.1", - "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", - "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", - "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/uri-js": { @@ -5395,12 +4594,12 @@ } }, "node_modules/which": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz", - "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" @@ -5516,18 +4715,18 @@ "license": "Apache-2.0" }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -5552,6 +4751,64 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -5616,6 +4873,51 @@ "node": ">=10" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/pkgs/by-name/no/node-gyp/package.nix b/pkgs/by-name/no/node-gyp/package.nix index 0255156bccaf..71bb7778ddd4 100644 --- a/pkgs/by-name/no/node-gyp/package.nix +++ b/pkgs/by-name/no/node-gyp/package.nix @@ -8,16 +8,16 @@ buildNpmPackage rec { pname = "node-gyp"; - version = "12.2.0"; + version = "12.3.0"; src = fetchFromGitHub { owner = "nodejs"; repo = "node-gyp"; tag = "v${version}"; - hash = "sha256-0XTv7kDc5Mt7e4VuVQeuJusIxwQzePm4PaE9ms6oRoM="; + hash = "sha256-+QPQxWrO2n5QsyAmM5UfL/posEyQQGHmDG7EL0jBNeE="; }; - npmDepsHash = "sha256-MflhEEUuzhXb6HTdnz2pvfZJN5w4/dAQ6Cw/C5jSbLs="; + npmDepsHash = "sha256-43YHmebfSYNb7glSjycQqjnLY13Bp9syXRAWNDjBIXY="; postPatch = '' ln -s ${./package-lock.json} package-lock.json From 9880f9dd708dcf8bb10e496b80117a6390eb5033 Mon Sep 17 00:00:00 2001 From: confusedalex Date: Wed, 22 Apr 2026 16:00:16 +0200 Subject: [PATCH 32/44] nixos-init: fix example of extraBin --- nixos/modules/system/boot/systemd/initrd.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix index 370fceb94844..4f19ca1edf44 100644 --- a/nixos/modules/system/boot/systemd/initrd.nix +++ b/nixos/modules/system/boot/systemd/initrd.nix @@ -248,7 +248,7 @@ in ''; example = literalExpression '' { - umount = ''${pkgs.util-linux}/bin/umount; + umount = "''${pkgs.util-linux}/bin/umount"; } ''; type = types.attrsOf types.path; From 9c2d68b46a131c9b2155d110b1bf9a268838cfe0 Mon Sep 17 00:00:00 2001 From: nescias Date: Wed, 22 Apr 2026 14:23:14 +0000 Subject: [PATCH 33/44] sequoia-git: 0.5.0 -> 0.6.0 Signed-off-by: Matthias Beyer --- pkgs/by-name/se/sequoia-git/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/se/sequoia-git/package.nix b/pkgs/by-name/se/sequoia-git/package.nix index 47ef3dcee3a9..c28836c7c00b 100644 --- a/pkgs/by-name/se/sequoia-git/package.nix +++ b/pkgs/by-name/se/sequoia-git/package.nix @@ -14,16 +14,16 @@ }: rustPlatform.buildRustPackage rec { pname = "sequoia-git"; - version = "0.5.0"; + version = "0.6.0"; src = fetchFromGitLab { owner = "sequoia-pgp"; repo = "sequoia-git"; rev = "v${version}"; - hash = "sha256-7ynaz48j/ebQAZ2QxeWwkf7kFP70HKtHCv4/wGxxaVY="; + hash = "sha256-1nSFzpz0Rl9uoE59teP3o7PduSmA20QEhe+fvTM6JGA="; }; - cargoHash = "sha256-+sIH4zFLewNNkpd42co2B0rLrIsde5gsBDsqSSc0HZQ="; + cargoHash = "sha256-/9/nTqCRi74TMToWQjtnnzQ8en+nqKT8gUipNcHTxvs="; buildInputs = [ openssl.dev From 1164013a57d621823a30c641d748901309a3917e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 15:38:07 +0000 Subject: [PATCH 34/44] libretro.beetle-supafaust: 0-unstable-2026-03-31 -> 0-unstable-2026-04-20 --- .../emulators/libretro/cores/beetle-supafaust.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/beetle-supafaust.nix b/pkgs/applications/emulators/libretro/cores/beetle-supafaust.nix index 47ce3de10492..78a88ec19771 100644 --- a/pkgs/applications/emulators/libretro/cores/beetle-supafaust.nix +++ b/pkgs/applications/emulators/libretro/cores/beetle-supafaust.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "mednafen-supafaust"; - version = "0-unstable-2026-03-31"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "libretro"; repo = "supafaust"; - rev = "584ef2c5571f1ece95f6117aa04b7e8fee213fb1"; - hash = "sha256-aptn3igUIvU/ho+6iXAg0J7X5ymdWeTM+zL+BA06tG4="; + rev = "2b93c0d7dff5b8f6c4e60e049d66849923fa8bba"; + hash = "sha256-cK+2MR4dJBhTRkPRuRtP2zWGw+mROZMgUOLc8BOxuz8="; }; makefile = "Makefile"; From f666e9f83681577480b6e04b6a47c2d29e72d4f1 Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 22 Apr 2026 18:44:08 +0300 Subject: [PATCH 35/44] nixos-rebuild-ng: don't assert on exact order of calls Depends on filesystem ordering semantics. --- pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py b/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py index bccb2f196970..9b225eca4e84 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py +++ b/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_nix.py @@ -913,7 +913,8 @@ def test_upgrade_channels(mock_run: Mock, mock_geteuid: Mock, tmpdir: Path) -> N check=False, sudo=True, ), - ] + ], + any_order=True, ) mock_run.reset_mock() @@ -938,5 +939,6 @@ def test_upgrade_channels(mock_run: Mock, mock_geteuid: Mock, tmpdir: Path) -> N check=False, sudo=False, ), - ] + ], + any_order=True, ) From a9d60f3c4dddfbba6ec759e5e29a1c32bdf6fa82 Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 22 Apr 2026 18:31:30 +0300 Subject: [PATCH 36/44] linux_7_0: 7.0 -> 7.0.1 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index a6e58099a242..e06aa4ad0c27 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -40,8 +40,8 @@ "lts": false }, "7.0": { - "version": "7.0", - "hash": "sha256:1w4i705i0nl1xqv7fdhdbhy7j3xrzhl31fabs6vmgiw7nf06szxv", + "version": "7.0.1", + "hash": "sha256:1gw7v1j0pp2w6fm5y1n0krhnfvgab2jkrvcvwl8hx614dnikbjdj", "lts": false } } From 28ed039c78a6feb946d5111f9e40f72ac3418221 Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 22 Apr 2026 18:31:38 +0300 Subject: [PATCH 37/44] linux_6_19: 6.19.13 -> 6.19.14 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index e06aa4ad0c27..d3eb3a1617bd 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -35,8 +35,8 @@ "lts": true }, "6.19": { - "version": "6.19.13", - "hash": "sha256:0j2ncikwi4mkx9v33ahzmi2qq2bx5f82701nnha1grs0lzzb2n85", + "version": "6.19.14", + "hash": "sha256:11giqsz9qa7s9lm94nn4h1bcb2411crsbfyvzrvhfjmy75kvzs6d", "lts": false }, "7.0": { From 0b01c28e67a1a33bf0e13db453a0563c4fc56f49 Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 22 Apr 2026 18:31:45 +0300 Subject: [PATCH 38/44] linux_6_18: 6.18.23 -> 6.18.24 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index d3eb3a1617bd..21e09362052f 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -30,8 +30,8 @@ "lts": true }, "6.18": { - "version": "6.18.23", - "hash": "sha256:0d2ihdz5hdy1ywhck76y9rnzzvkl2lhrb5xvc6w5l4ydpxv8wb9a", + "version": "6.18.24", + "hash": "sha256:0pr5s7hkmn7n17bm7p6sqrkq8g9z42jnvqihv96kn42qrrbwa1y2", "lts": true }, "6.19": { From 7138b26451e6ccb06b62884ce76edb46e358df75 Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 22 Apr 2026 18:31:49 +0300 Subject: [PATCH 39/44] linux_6_12: 6.12.82 -> 6.12.83 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 21e09362052f..b6e78ceacaa9 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -25,8 +25,8 @@ "lts": true }, "6.12": { - "version": "6.12.82", - "hash": "sha256:1a8r1wzfssrnqbf4yvbcfynf5w6la4vy1w5wlns1p63krl2hnmqf", + "version": "6.12.83", + "hash": "sha256:0cfzvhm876jm61cy023apwmi5axjilwfc0xnag9jd9fzs4n1gqrr", "lts": true }, "6.18": { From 145bde70a8386a97f4db175ab285b3385f280202 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 15:58:45 +0000 Subject: [PATCH 40/44] pdk-ciel: 2.4.0 -> 2.4.1 --- pkgs/by-name/pd/pdk-ciel/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pd/pdk-ciel/package.nix b/pkgs/by-name/pd/pdk-ciel/package.nix index 092483f395cc..e8e4f5cea931 100644 --- a/pkgs/by-name/pd/pdk-ciel/package.nix +++ b/pkgs/by-name/pd/pdk-ciel/package.nix @@ -6,14 +6,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "ciel"; - version = "2.4.0"; + version = "2.4.1"; pyproject = true; src = fetchFromGitHub { owner = "fossi-foundation"; repo = "ciel"; tag = finalAttrs.version; - hash = "sha256-AWbkHL0zO3tD0mE3dZIcj8mVND7o3imTxOpEfOtlRDI="; + hash = "sha256-p35R0wfoGR8CmI++ae7iKLJs00RHHMdaSckgC18EIyM="; }; build-system = [ python3Packages.poetry-core ]; From 7d6fff7c84e4cfb4d155df636d5e572dbb76d76a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 16:29:30 +0000 Subject: [PATCH 41/44] equicord: 2026-04-06 -> 2026-04-22 --- pkgs/by-name/eq/equicord/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/eq/equicord/package.nix b/pkgs/by-name/eq/equicord/package.nix index 1bd53a12a68c..150dcd7f059e 100644 --- a/pkgs/by-name/eq/equicord/package.nix +++ b/pkgs/by-name/eq/equicord/package.nix @@ -20,20 +20,20 @@ stdenv.mkDerivation (finalAttrs: { # the Equicord repository. Dates as tags (and automatic releases) were the compromise # we came to with upstream. Please do not change the version schema (e.g., to semver) # unless upstream changes the tag schema from dates. - version = "2026-04-06"; + version = "2026-04-22"; src = fetchFromGitHub { owner = "Equicord"; repo = "Equicord"; tag = finalAttrs.version; - hash = "sha256-3wFmi+SzInP+1PH3pwBquTrU757I8z6PmvPxuyygIwU="; + hash = "sha256-KhGSQTnpOWSvrsoghF/kpzUVdNTZUlzpsm6UikySRHY="; }; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; pnpm = pnpm_10; fetcherVersion = 3; - hash = "sha256-9DNn38JdFQMQh48UEJo5d6CUMbjlzs5LEma6095o508="; + hash = "sha256-RwppRWrEzIKZDb3QLVAMd1bHXyFwiatYNiNccVgrcWA="; }; nativeBuildInputs = [ From a18e9fc25b1993d0c52f2cb3fe089ca91e09a78a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 22 Apr 2026 16:31:56 +0000 Subject: [PATCH 42/44] chameleon-cli: 2.1.0-unstable-2026-04-06 -> 2.1.0-unstable-2026-04-19 --- pkgs/by-name/ch/chameleon-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ch/chameleon-cli/package.nix b/pkgs/by-name/ch/chameleon-cli/package.nix index ac1ff7f2612f..bf64bc06717b 100644 --- a/pkgs/by-name/ch/chameleon-cli/package.nix +++ b/pkgs/by-name/ch/chameleon-cli/package.nix @@ -23,14 +23,14 @@ in stdenv.mkDerivation (finalAttrs: { pname = "chameleon-cli"; - version = "2.1.0-unstable-2026-04-06"; + version = "2.1.0-unstable-2026-04-19"; src = fetchFromGitHub { owner = "RfidResearchGroup"; repo = "ChameleonUltra"; - rev = "93c1e150ab17b81cec40639fea7e88b1920e2c95"; + rev = "75eb389fe97a18b5ba6c8754cdfa0ec716a2dcf1"; rootDir = "software"; - hash = "sha256-5yxXmKRBNmmJgiA2E3gUmGRgPZpO/CRFlMw5YFCFUUs="; + hash = "sha256-RnP+j6ZZxE167Xr6C0Hs/d6zV8jjQUyI91Ya8JVMrcs="; }; postPatch = '' From 79e9ef66e862ea9fc52b0ec19c991d33b8f84490 Mon Sep 17 00:00:00 2001 From: Chris Portela Date: Wed, 22 Apr 2026 17:00:55 +0000 Subject: [PATCH 43/44] openclaw: 2026.4.12 -> 2026.4.21 --- pkgs/by-name/op/openclaw/package.nix | 40 +++++++++++++++++++--------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/op/openclaw/package.nix b/pkgs/by-name/op/openclaw/package.nix index 5ec51c738910..6804b61651ac 100644 --- a/pkgs/by-name/op/openclaw/package.nix +++ b/pkgs/by-name/op/openclaw/package.nix @@ -11,7 +11,7 @@ versionCheckHook, rolldown, installShellFiles, - version ? "2026.4.12", + version ? "2026.4.21", }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "openclaw"; @@ -21,10 +21,10 @@ stdenvNoCC.mkDerivation (finalAttrs: { owner = "openclaw"; repo = "openclaw"; tag = "v${finalAttrs.version}"; - hash = "sha256-d0/Y3s+MQFaG1lZr9nk00KU7bJhglApFZFLRCLJ4Hc4="; + hash = "sha256-K1Pl9lXzGKfoq/fXWxYX5PoY3IBzJr0PPstUDGET/gs="; }; - pnpmDepsHash = "sha256-Tkraoxlux/lUS1ilpAIvSl5VUT0ZA9DWptNXRNl8B8o="; + pnpmDepsHash = "sha256-FDajXHs4s0+QDRPq4ZxQWWW9rqeSJVYACAl/5Mw2Agc="; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; @@ -70,15 +70,31 @@ stdenvNoCC.mkDerivation (finalAttrs: { continue; }' \ --replace-fail \ - 'stageInstalledRootRuntimeDeps({ fingerprint, packageJson, pluginDir, repoRoot }) - ) { - return; - }' \ - 'stageInstalledRootRuntimeDeps({ fingerprint, packageJson, pluginDir, repoRoot }) - ) { - return; - } - return; // nix: sandbox has no npm' + ' if ( + stageInstalledRootRuntimeDeps({ + directDependencyPackageRoot, + fingerprint, + packageJson, + pluginDir, + pruneConfig, + repoRoot, + }) + ) { + continue; + }' \ + ' if ( + stageInstalledRootRuntimeDeps({ + directDependencyPackageRoot, + fingerprint, + packageJson, + pluginDir, + pruneConfig, + repoRoot, + }) + ) { + continue; + } + continue; // nix: sandbox has no npm' pnpm build pnpm ui:build From b15920b42f9a6b88e9feb307af2173f60f1b1a70 Mon Sep 17 00:00:00 2001 From: nicknb Date: Wed, 22 Apr 2026 19:54:15 +0200 Subject: [PATCH 44/44] qmk-udev-rules: 0.27.13 -> 0.1.20 --- pkgs/by-name/qm/qmk-udev-rules/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/qm/qmk-udev-rules/package.nix b/pkgs/by-name/qm/qmk-udev-rules/package.nix index a724a0e1daf0..dd9e920069a7 100644 --- a/pkgs/by-name/qm/qmk-udev-rules/package.nix +++ b/pkgs/by-name/qm/qmk-udev-rules/package.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "qmk-udev-rules"; - version = "0.27.13"; + version = "0.1.20"; src = fetchFromGitHub { owner = "qmk"; - repo = "qmk_firmware"; - tag = finalAttrs.version; - hash = "sha256-Zs508OQ0RYCg0f9wqR+VXUmVvhP/jCA3piwRq2ZpR84="; + repo = "qmk_udev"; + tag = "v${finalAttrs.version}"; + hash = "sha256-sxwvyMniEXTnmHEs8ldsBjwReKUT5FlqYxcUULV0cpI="; }; dontBuild = true; @@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { installPhase = '' runHook preInstall - install -D util/udev/50-qmk.rules $out/lib/udev/rules.d/50-qmk.rules + install -D 50-qmk.rules $out/lib/udev/rules.d/50-qmk.rules runHook postInstall '';