From 696c2deebf62f52b436d75b492706aceb463b87a Mon Sep 17 00:00:00 2001
From: matt1432 <matt@nelim.org>
Date: Thu, 20 Mar 2025 16:52:00 -0400
Subject: [PATCH] chore: update sources
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Flake Inputs:
    • Updated input 'gpu-screen-recorder-src':
        'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-03-16) rev: e7a95f830abc358fcdf6d24fcf11e346e0b77e99
      → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-03-19) rev: 634a563bc0e7d23040e70f90e7ccc498aa7db41e

    • Updated input 'home-manager':
        'github:nix-community/home-manager' (2025-03-18) rev: fb74bb76d94a6c55632376c931fc108131260ee9
      → 'github:nix-community/home-manager' (2025-03-20) rev: d725df5ad8cee60e61ee6fe3afb735e4fbc1ff41

    • Updated input 'hyprland':
        'github:hyprwm/Hyprland' (2025-03-18) rev: cca0f48b74e87f86244f5773c42d9ade84683f3b
      → 'github:hyprwm/Hyprland' (2025-03-20) rev: 7ea4fbf0ba034d947339b3a94a10da022eca1988

    • Updated input 'hyprland-plugins':
        'github:hyprwm/hyprland-plugins' (2025-03-16) rev: 0eb996c3ed89eeed3d493a310acd8eccb62838d9
      → 'github:hyprwm/hyprland-plugins' (2025-03-18) rev: 4e85fb4fbfc0ffa4b29c61ecd19cfde93ecebaed

    • Updated input 'hyprpaper':
        'github:hyprwm/hyprpaper' (2025-02-28) rev: 6f4ba431638e44478417b9f524fb1771e5eda83c
      → 'github:hyprwm/hyprpaper' (2025-03-20) rev: 05337a4595aa03eedec33f48004e46092917a5ca

    • Updated input 'jovian':
        'github:Jovian-Experiments/Jovian-NixOS' (2025-03-18) rev: fd69a59cfab06fe8ac0695377e10573e91b6a3ff
      → 'github:Jovian-Experiments/Jovian-NixOS' (2025-03-20) rev: a95606cae5c9e1f5b84debe7865ef171d4deb287

    • Updated input 'nixcord':
        'github:kaylorben/nixcord' (2025-03-17) rev: d7f44d000158fa46af9fae1819d8221d1ccb4ca2
      → 'github:kaylorben/nixcord' (2025-03-20) rev: f9797561bd3b0dbe13d56567dfd6f54c49b80d8f

    • Updated input 'nixos-jellyfin':
        'github:matt1432/nixos-jellyfin' (2025-03-12) rev: f3e37d6173969c2d7bec41a3888d96acde88bc5a
      → 'github:matt1432/nixos-jellyfin' (2025-03-20) rev: 0d90325fcac192a60c4687bd2b28cf7294c6dcec

    • Updated input 'nixpkgs':
        'github:NixOS/nixpkgs' (2025-03-15) rev: c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5
      → 'github:NixOS/nixpkgs' (2025-03-18) rev: b6eaf97c6960d97350c584de1b6dcff03c9daf42

    • Updated input 'nixpkgs-wayland':
        'github:nix-community/nixpkgs-wayland' (2025-03-16) rev: ba7f5a383fcb5001a233cdae3de9bd0d45ce9e4a
      → 'github:nix-community/nixpkgs-wayland' (2025-03-20) rev: 03de202737dfdccda26959bcacd576faa32edc57

    • Updated input 'poetry2nix':
        'github:nix-community/poetry2nix' (2025-03-17) rev: 25b1472cf0982124a1a6674379554047f1df163b
      → 'github:nix-community/poetry2nix' (2025-03-19) rev: b9a98080beff0903a5e5fe431f42cde1e3e50d6b

    • Updated input 'sops-nix':
        'github:Mic92/sops-nix' (2025-03-17) rev: 787afce414bcce803b605c510b60bf43c11f4b55
      → 'github:Mic92/sops-nix' (2025-03-19) rev: 1770be8ad89e41f1ed5a60ce628dd10877cb3609

    • Updated input 'spotifyplus-src':
        'github:thlucas1/homeassistantcomponent_spotifyplus' (2025-03-17) rev: c69ed37af0832200a960b16ef6f04146133254f1
      → 'github:thlucas1/homeassistantcomponent_spotifyplus' (2025-03-20) rev: 6beb671a9f0ed7d6851b1162dc82953385e6f8d5

    • Updated input 'spotifywebapi-src':
        'github:thlucas1/SpotifyWebApiPython' (2025-03-14) rev: 23e89dc0a68d10447e756ee6c0e5e9fa0fdbdc18
      → 'github:thlucas1/SpotifyWebApiPython' (2025-03-19) rev: e6e24c124245e10266d350a5721e6d6f8979a6d5

    • Updated input 'subscleaner-src':
        'gitlab:rogs/subscleaner' (2024-12-15) rev: 72e2f5afdfeded7dc05e4d1f098fc391065ec31f
      → 'gitlab:rogs/subscleaner' (2025-03-19) rev: cf619272d3d3f645c0ee6daf44d7d6c7b638c6e0

    • Updated input 'tuya-local-src':
        'github:make-all/tuya-local' (2025-03-17) rev: 6edf4e9888eadf1506b9c04dacc2902351ec8307
      → 'github:make-all/tuya-local' (2025-03-20) rev: 1a3428d58bcdef6b6fc3dd2ac649d8166aa95341

Docker Images:
    • vegardit/gitea-act-runner dind-latest:
       sha256:6190e52b6df100a1ca6be7e2e8331c60422440f98dfd286cc49c6be54d6783b5
     → sha256:3a4631ca14c26674ef8f4bdb9a8d0eb20ad39bda6f05801e6c7abb452c324c66

    • onlyoffice/documentserver latest:
       sha256:7cf23e8d1376d8c56b0d98696762bdecbe3c8b0d3c182592ed66e2e65b4f8f51
     → sha256:9c76330ee4be00623e204c5305b20f8868c37e0e90c88e351c27feb148aada80

    • nextcloud fpm:
       sha256:f277ddde7210f04a47daca3c3a0a6f42ff801c1e31b1f883b0a60feb842ee1d0
     → sha256:e9470fa0b94460bfda4bb741484513fc3a5757b0b30877176c0d0e7c8727b398

    • nginx latest:
       sha256:57a563126c0fd426346b02e5aa231ae9e5fd66f2248b36553207a0eca1403fde
     → sha256:124b44bfc9ccd1f3cedf4b592d4d1e8bddb78b51ec2ed5056c52d3692baebc19

    • ghcr.io/linuxserver/bazarr latest:
       sha256:0b3e1b888615cbd32cf879963d041abcf863d15160a9ace2928039a7b00590ef
     → sha256:fffd75389760b731f11468a1ddabcb35b042ef4b51994c9587337825cdef5470

Firefox Addons:
    floccus: 5.4.4 -> 5.4.5

Node modules:
    typescript-eslint: 8.26.1 -> 8.27.0
---
 apps/config/package-lock.json                 |  98 ++++++++--------
 apps/config/package.json                      |   2 +-
 apps/extract-subs/default.nix                 |   2 +-
 apps/extract-subs/package-lock.json           |   2 +-
 apps/mc-mods/default.nix                      |   2 +-
 apps/mc-mods/package-lock.json                |   2 +-
 apps/pin-inputs/default.nix                   |   2 +-
 apps/pin-inputs/package-lock.json             |   2 +-
 apps/update-sources/default.nix               |   2 +-
 apps/update-sources/package-lock.json         |   2 +-
 configurations/nos/modules/docker/default.nix |   6 +-
 .../docker/forgejo/images/act_runner.nix      |   4 +-
 .../docker/media/bazarr/images/bazarr.nix     |   4 +-
 .../docker/nextcloud/images/nextcloud.nix     |   4 +-
 .../modules/docker/nextcloud/images/nginx.nix |   2 +-
 .../docker/nextcloud/images/onlyoffice.nix    |   4 +-
 flake.lock                                    | 110 +++++++++---------
 modules/ags/config/default.nix                |   2 +-
 modules/ags/config/package-lock.json          | 110 +++++++++---------
 modules/ags/config/package.json               |   2 +-
 .../generated-firefox-addons.nix              |   6 +-
 .../spotifyplus/spotifywebapi.nix             |   1 +
 22 files changed, 188 insertions(+), 183 deletions(-)

diff --git a/apps/config/package-lock.json b/apps/config/package-lock.json
index f6a936c9..e23b7473 100644
--- a/apps/config/package-lock.json
+++ b/apps/config/package-lock.json
@@ -15,7 +15,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
-                "typescript-eslint": "8.26.1"
+                "typescript-eslint": "8.27.0"
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
@@ -344,16 +344,16 @@
             "license": "MIT"
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz",
-            "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz",
+            "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/regexpp": "^4.10.0",
-                "@typescript-eslint/scope-manager": "8.26.1",
-                "@typescript-eslint/type-utils": "8.26.1",
-                "@typescript-eslint/utils": "8.26.1",
-                "@typescript-eslint/visitor-keys": "8.26.1",
+                "@typescript-eslint/scope-manager": "8.27.0",
+                "@typescript-eslint/type-utils": "8.27.0",
+                "@typescript-eslint/utils": "8.27.0",
+                "@typescript-eslint/visitor-keys": "8.27.0",
                 "graphemer": "^1.4.0",
                 "ignore": "^5.3.1",
                 "natural-compare": "^1.4.0",
@@ -373,15 +373,15 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz",
-            "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz",
+            "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/scope-manager": "8.26.1",
-                "@typescript-eslint/types": "8.26.1",
-                "@typescript-eslint/typescript-estree": "8.26.1",
-                "@typescript-eslint/visitor-keys": "8.26.1",
+                "@typescript-eslint/scope-manager": "8.27.0",
+                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/typescript-estree": "8.27.0",
+                "@typescript-eslint/visitor-keys": "8.27.0",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -397,13 +397,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz",
-            "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz",
+            "integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.26.1",
-                "@typescript-eslint/visitor-keys": "8.26.1"
+                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/visitor-keys": "8.27.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -414,13 +414,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz",
-            "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz",
+            "integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "8.26.1",
-                "@typescript-eslint/utils": "8.26.1",
+                "@typescript-eslint/typescript-estree": "8.27.0",
+                "@typescript-eslint/utils": "8.27.0",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^2.0.1"
             },
@@ -437,9 +437,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz",
-            "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.27.0.tgz",
+            "integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==",
             "license": "MIT",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -450,13 +450,13 @@
             }
         },
         "node_modules/@typescript-eslint/typescript-estree": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz",
-            "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz",
+            "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.26.1",
-                "@typescript-eslint/visitor-keys": "8.26.1",
+                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/visitor-keys": "8.27.0",
                 "debug": "^4.3.4",
                 "fast-glob": "^3.3.2",
                 "is-glob": "^4.0.3",
@@ -476,15 +476,15 @@
             }
         },
         "node_modules/@typescript-eslint/utils": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz",
-            "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz",
+            "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "8.26.1",
-                "@typescript-eslint/types": "8.26.1",
-                "@typescript-eslint/typescript-estree": "8.26.1"
+                "@typescript-eslint/scope-manager": "8.27.0",
+                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/typescript-estree": "8.27.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -499,12 +499,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz",
-            "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz",
+            "integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.26.1",
+                "@typescript-eslint/types": "8.27.0",
                 "eslint-visitor-keys": "^4.2.0"
             },
             "engines": {
@@ -1659,14 +1659,14 @@
             }
         },
         "node_modules/typescript-eslint": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.1.tgz",
-            "integrity": "sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.27.0.tgz",
+            "integrity": "sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/eslint-plugin": "8.26.1",
-                "@typescript-eslint/parser": "8.26.1",
-                "@typescript-eslint/utils": "8.26.1"
+                "@typescript-eslint/eslint-plugin": "8.27.0",
+                "@typescript-eslint/parser": "8.27.0",
+                "@typescript-eslint/utils": "8.27.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
diff --git a/apps/config/package.json b/apps/config/package.json
index 68fe76e0..64cf4403 100644
--- a/apps/config/package.json
+++ b/apps/config/package.json
@@ -11,6 +11,6 @@
         "jiti": "2.4.2",
         "pkg-types": "2.1.0",
         "typescript": "5.8.2",
-        "typescript-eslint": "8.26.1"
+        "typescript-eslint": "8.27.0"
     }
 }
diff --git a/apps/extract-subs/default.nix b/apps/extract-subs/default.nix
index 04221572..8f96e0ea 100644
--- a/apps/extract-subs/default.nix
+++ b/apps/extract-subs/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-3WBOJHKqBOdNP6Ym9+HfQhIMYmHnocR7Xw6I6uyUaNo=";
+  npmDepsHash = "sha256-aYNdrZMoC7ikDQ3O/2OYRc0jzhfDOQ8UibvxAJq6pz8=";
 
   runtimeInputs = [
     ffmpeg-full
diff --git a/apps/extract-subs/package-lock.json b/apps/extract-subs/package-lock.json
index ceeb2b0f..a12ea7f8 100644
--- a/apps/extract-subs/package-lock.json
+++ b/apps/extract-subs/package-lock.json
@@ -31,7 +31,7 @@
                 "@eslint/js": "9.22.0",
                 "@stylistic/eslint-plugin": "4.2.0",
                 "eslint": "9.22.0",
-                "eslint-plugin-jsdoc": "50.6.7",
+                "eslint-plugin-jsdoc": "50.6.8",
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
diff --git a/apps/mc-mods/default.nix b/apps/mc-mods/default.nix
index 8d83dd46..059e6071 100644
--- a/apps/mc-mods/default.nix
+++ b/apps/mc-mods/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-TytpX0oevXrJgtXYRpfBpohH/xu0vEIbbhsx/lzFtc0=";
+  npmDepsHash = "sha256-+vMIPeIAkzbnbUvvd2mr08W7TeeD4hmZUouOa+KbIog=";
 
   runtimeInputs = [
     nodejs_latest
diff --git a/apps/mc-mods/package-lock.json b/apps/mc-mods/package-lock.json
index 0005ea5f..011a6c39 100644
--- a/apps/mc-mods/package-lock.json
+++ b/apps/mc-mods/package-lock.json
@@ -34,7 +34,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
-                "typescript-eslint": "8.26.1"
+                "typescript-eslint": "8.27.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
diff --git a/apps/pin-inputs/default.nix b/apps/pin-inputs/default.nix
index 3225c119..c9de7fc4 100644
--- a/apps/pin-inputs/default.nix
+++ b/apps/pin-inputs/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-DdgN5JpjRQvrcbM/4PsFgFfAAxFP1XKK2eJzniy/YBk=";
+  npmDepsHash = "sha256-yy4x44TunP84Hc/QFogfUN1B/h+apuW7rcCUqiDasD0=";
 
   runtimeInputs = [];
 
diff --git a/apps/pin-inputs/package-lock.json b/apps/pin-inputs/package-lock.json
index 94a3e42a..af11353f 100644
--- a/apps/pin-inputs/package-lock.json
+++ b/apps/pin-inputs/package-lock.json
@@ -34,7 +34,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
-                "typescript-eslint": "8.26.1"
+                "typescript-eslint": "8.27.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
diff --git a/apps/update-sources/default.nix b/apps/update-sources/default.nix
index 3f5fb475..55eec92d 100644
--- a/apps/update-sources/default.nix
+++ b/apps/update-sources/default.nix
@@ -12,7 +12,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-WgT0zbf+c1ONy+B5XUMxiUE6CS8Q0MoseufNJ6IM2z0=";
+  npmDepsHash = "sha256-vGYSD8Td1s4LvX38UW9vZ52o0Cy169YUKkwu2IfLoS4=";
 
   runtimeInputs = [
     curl
diff --git a/apps/update-sources/package-lock.json b/apps/update-sources/package-lock.json
index 8e81e14b..d3aef5f0 100644
--- a/apps/update-sources/package-lock.json
+++ b/apps/update-sources/package-lock.json
@@ -30,7 +30,7 @@
                 "@eslint/js": "9.22.0",
                 "@stylistic/eslint-plugin": "4.2.0",
                 "eslint": "9.22.0",
-                "eslint-plugin-jsdoc": "50.6.7",
+                "eslint-plugin-jsdoc": "50.6.8",
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
diff --git a/configurations/nos/modules/docker/default.nix b/configurations/nos/modules/docker/default.nix
index 9667ee52..7eb6b50c 100644
--- a/configurations/nos/modules/docker/default.nix
+++ b/configurations/nos/modules/docker/default.nix
@@ -1,4 +1,8 @@
-{config, mainUser, ...}: let
+{
+  config,
+  mainUser,
+  ...
+}: let
   globalEnv = {
     configPath = "/var/lib/docker-data";
     mainUID = toString config.users.users.${mainUser}.uid;
diff --git a/configurations/nos/modules/docker/forgejo/images/act_runner.nix b/configurations/nos/modules/docker/forgejo/images/act_runner.nix
index 2661e31f..ea4da3fd 100644
--- a/configurations/nos/modules/docker/forgejo/images/act_runner.nix
+++ b/configurations/nos/modules/docker/forgejo/images/act_runner.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "vegardit/gitea-act-runner";
-  imageDigest = "sha256:6190e52b6df100a1ca6be7e2e8331c60422440f98dfd286cc49c6be54d6783b5";
-  hash = "sha256-A5zDXAz/PXr7d2GnhTpla6XC3q4I6jG8dBqHN4IOujk=";
+  imageDigest = "sha256:3a4631ca14c26674ef8f4bdb9a8d0eb20ad39bda6f05801e6c7abb452c324c66";
+  hash = "sha256-rKON5tD5cr/NR6rmdPyWxqVQwvOK7JpEkPVIJDxT20E=";
   finalImageName = imageName;
   finalImageTag = "dind-latest";
 }
diff --git a/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix b/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix
index 2db3ff67..d0ea89a2 100644
--- a/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix
+++ b/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/linuxserver/bazarr";
-  imageDigest = "sha256:0b3e1b888615cbd32cf879963d041abcf863d15160a9ace2928039a7b00590ef";
-  hash = "sha256-SmZDwml1K5GXPGo3F1t+I1KPBHEVI6mBHaXOfnFnYvY=";
+  imageDigest = "sha256:fffd75389760b731f11468a1ddabcb35b042ef4b51994c9587337825cdef5470";
+  hash = "sha256-Tcjo1N/TptoyLI5Kt6leESEq6wbJW9pSEPzGX3DJ/SA=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/nextcloud/images/nextcloud.nix b/configurations/nos/modules/docker/nextcloud/images/nextcloud.nix
index 1087daea..80c8cbd1 100644
--- a/configurations/nos/modules/docker/nextcloud/images/nextcloud.nix
+++ b/configurations/nos/modules/docker/nextcloud/images/nextcloud.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "nextcloud";
-  imageDigest = "sha256:f277ddde7210f04a47daca3c3a0a6f42ff801c1e31b1f883b0a60feb842ee1d0";
-  hash = "sha256-FLPzypD/AAjBYK0mhJWcFjtJTMHcS8fo9h0nJYd66gs=";
+  imageDigest = "sha256:e9470fa0b94460bfda4bb741484513fc3a5757b0b30877176c0d0e7c8727b398";
+  hash = "sha256-l2ymBaZQMxgQDF8gJjvl4upFeieiKI+P00WtwT7sBZQ=";
   finalImageName = imageName;
   finalImageTag = "fpm";
 }
diff --git a/configurations/nos/modules/docker/nextcloud/images/nginx.nix b/configurations/nos/modules/docker/nextcloud/images/nginx.nix
index bf6e5b73..b875bdfb 100644
--- a/configurations/nos/modules/docker/nextcloud/images/nginx.nix
+++ b/configurations/nos/modules/docker/nextcloud/images/nginx.nix
@@ -1,7 +1,7 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "nginx";
-  imageDigest = "sha256:57a563126c0fd426346b02e5aa231ae9e5fd66f2248b36553207a0eca1403fde";
+  imageDigest = "sha256:124b44bfc9ccd1f3cedf4b592d4d1e8bddb78b51ec2ed5056c52d3692baebc19";
   hash = "sha256-GZA2ZIhDVPgXmJ831Ix16dYK9nGntckNpyS9Md7yrNU=";
   finalImageName = imageName;
   finalImageTag = "latest";
diff --git a/configurations/nos/modules/docker/nextcloud/images/onlyoffice.nix b/configurations/nos/modules/docker/nextcloud/images/onlyoffice.nix
index 60d3e222..3f7d5f76 100644
--- a/configurations/nos/modules/docker/nextcloud/images/onlyoffice.nix
+++ b/configurations/nos/modules/docker/nextcloud/images/onlyoffice.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "onlyoffice/documentserver";
-  imageDigest = "sha256:7cf23e8d1376d8c56b0d98696762bdecbe3c8b0d3c182592ed66e2e65b4f8f51";
-  hash = "sha256-+P4+cviTSxIMlms+uGuKbAhnEpX1qQ143fxmv+NNl/w=";
+  imageDigest = "sha256:9c76330ee4be00623e204c5305b20f8868c37e0e90c88e351c27feb148aada80";
+  hash = "sha256-8fSmxhmYKlSCxWxm27ARuEUuExzrQp+oy1lZ9oul+us=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/flake.lock b/flake.lock
index 1ce3c71f..8c0c1967 100644
--- a/flake.lock
+++ b/flake.lock
@@ -402,11 +402,11 @@
     "gpu-screen-recorder-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1742084555,
-        "narHash": "sha256-NU0x4G3rycaFfAVQie7WT8Xu94XRwr/kfU490xVPibM=",
+        "lastModified": 1742377879,
+        "narHash": "sha256-Y5dWRBde8g8xn34F23rLaGy4xsB5IrSDJrSHhCwKblU=",
         "ref": "refs/heads/master",
-        "rev": "e7a95f830abc358fcdf6d24fcf11e346e0b77e99",
-        "revCount": 1020,
+        "rev": "634a563bc0e7d23040e70f90e7ccc498aa7db41e",
+        "revCount": 1023,
         "type": "git",
         "url": "https://repo.dec05eba.com/gpu-screen-recorder"
       },
@@ -461,11 +461,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742305478,
-        "narHash": "sha256-iYCinzZnnUeCkZ031qGRwPdwRsqW6o9Y0MgGpA7Zva4=",
+        "lastModified": 1742501496,
+        "narHash": "sha256-LYwyZmhckDKK7i4avmbcs1pBROpOaHi98lbjX1fmVpU=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "fb74bb76d94a6c55632376c931fc108131260ee9",
+        "rev": "d725df5ad8cee60e61ee6fe3afb735e4fbc1ff41",
         "type": "github"
       },
       "original": {
@@ -577,11 +577,11 @@
         "xdph": "xdph"
       },
       "locked": {
-        "lastModified": 1742297408,
-        "narHash": "sha256-Xn3vzG7dhQlK26B0vUeModxYC8UD/6OhOi+5vqYV6Y4=",
+        "lastModified": 1742468927,
+        "narHash": "sha256-3CBAs8OF0etCIaa4p+VyuXfLrL1cvD5E3Dmigqg2YOo=",
         "owner": "hyprwm",
         "repo": "Hyprland",
-        "rev": "cca0f48b74e87f86244f5773c42d9ade84683f3b",
+        "rev": "7ea4fbf0ba034d947339b3a94a10da022eca1988",
         "type": "github"
       },
       "original": {
@@ -603,11 +603,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742164373,
-        "narHash": "sha256-O0SmKvUf5rnDczzVZbhImDzSvrsPwONI3GcWgLdsdzg=",
+        "lastModified": 1742314758,
+        "narHash": "sha256-18VcHcqkRBsJjBU6173BK+YVytXrS8kzKXY08auQq8Y=",
         "owner": "hyprwm",
         "repo": "hyprland-plugins",
-        "rev": "0eb996c3ed89eeed3d493a310acd8eccb62838d9",
+        "rev": "4e85fb4fbfc0ffa4b29c61ecd19cfde93ecebaed",
         "type": "github"
       },
       "original": {
@@ -764,11 +764,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1740765362,
-        "narHash": "sha256-QmF+wyFzudTB3Dq2i9acY/nhc8uRiD+p7iG+V1Q5neE=",
+        "lastModified": 1742482360,
+        "narHash": "sha256-B1CsQ7DameEzwdl3mQN0D6E3LA8eJ2XPj4BWufoKjP8=",
         "owner": "hyprwm",
         "repo": "hyprpaper",
-        "rev": "6f4ba431638e44478417b9f524fb1771e5eda83c",
+        "rev": "05337a4595aa03eedec33f48004e46092917a5ca",
         "type": "github"
       },
       "original": {
@@ -837,11 +837,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742278596,
-        "narHash": "sha256-ZShdL237Hz+Sog0mzfsCui+kyj+Xd2ka91Dilxlz9j4=",
+        "lastModified": 1742465245,
+        "narHash": "sha256-gpjtkoeq5Ye9J8GoR+rWg3NL4bbEtcLvvF4nN6MtxdU=",
         "owner": "Jovian-Experiments",
         "repo": "Jovian-NixOS",
-        "rev": "fd69a59cfab06fe8ac0695377e10573e91b6a3ff",
+        "rev": "a95606cae5c9e1f5b84debe7865ef171d4deb287",
         "type": "github"
       },
       "original": {
@@ -884,11 +884,11 @@
         "nixpkgs-lib": "nixpkgs-lib"
       },
       "locked": {
-        "lastModified": 1742127176,
-        "narHash": "sha256-8OFwIe502OuLcdXSESx1LsDryFKrKTAPU4VqeWr01Vw=",
+        "lastModified": 1742411562,
+        "narHash": "sha256-JU2eVyIbRDH9PWFtAQuwb4W1xUheZt8ZTTpjoqAMU0k=",
         "owner": "nix-community",
         "repo": "lib-aggregate",
-        "rev": "4f006373d71f658c9cca107d5abd329be62ba04c",
+        "rev": "b22d96436e482510231d67d1fce03abae1376434",
         "type": "github"
       },
       "original": {
@@ -1257,11 +1257,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742251239,
-        "narHash": "sha256-QH61lUWvO7jkZAzsgBJtyjmX5/UozZcSZQxOl10jVk4=",
+        "lastModified": 1742469527,
+        "narHash": "sha256-4RYuXu2q+fgu+lDIAPEZW/C5+OMbfyOgoJ+S3OQMhcQ=",
         "owner": "kaylorben",
         "repo": "nixcord",
-        "rev": "d7f44d000158fa46af9fae1819d8221d1ccb4ca2",
+        "rev": "f9797561bd3b0dbe13d56567dfd6f54c49b80d8f",
         "type": "github"
       },
       "original": {
@@ -1307,11 +1307,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1741815142,
-        "narHash": "sha256-TFnTSujBOQly2QGsq7wl9wYx7cIGHPy3YcgZ7qQK/jY=",
+        "lastModified": 1742445147,
+        "narHash": "sha256-NrcN+85UtEHzbNaQ9umwPhMC+DvvIE8KQaaV7zuhHYU=",
         "owner": "matt1432",
         "repo": "nixos-jellyfin",
-        "rev": "f3e37d6173969c2d7bec41a3888d96acde88bc5a",
+        "rev": "0d90325fcac192a60c4687bd2b28cf7294c6dcec",
         "type": "github"
       },
       "original": {
@@ -1322,11 +1322,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1742069588,
-        "narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=",
+        "lastModified": 1742288794,
+        "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5",
+        "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42",
         "type": "github"
       },
       "original": {
@@ -1396,11 +1396,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742129410,
-        "narHash": "sha256-VCmLTGD5hJYIuCF3JXMWqri1TagNv6pA7a3mnPpUK9k=",
+        "lastModified": 1742477168,
+        "narHash": "sha256-OgpoaMP9mRcDjPwNEYlKlgSFllf3DBYnJ3pPoO+R3bc=",
         "owner": "nix-community",
         "repo": "nixpkgs-wayland",
-        "rev": "ba7f5a383fcb5001a233cdae3de9bd0d45ce9e4a",
+        "rev": "03de202737dfdccda26959bcacd576faa32edc57",
         "type": "github"
       },
       "original": {
@@ -1541,11 +1541,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742230249,
-        "narHash": "sha256-Ff1jt+ICe+LFb8UqwWFIOqPPJFlBGh5FzjHD+gpRu7M=",
+        "lastModified": 1742397518,
+        "narHash": "sha256-nzgO/ZCSBzWjbMkYDxG+yl9Z2eGbCgQu06Oku3ir5D4=",
         "owner": "nix-community",
         "repo": "poetry2nix",
-        "rev": "25b1472cf0982124a1a6674379554047f1df163b",
+        "rev": "b9a98080beff0903a5e5fe431f42cde1e3e50d6b",
         "type": "github"
       },
       "original": {
@@ -1770,11 +1770,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742239755,
-        "narHash": "sha256-ptn8dR4Uat3UUadGYNnB7CIH9SQm8mK69D2A/twBUXQ=",
+        "lastModified": 1742406979,
+        "narHash": "sha256-r0aq70/3bmfjTP+JZs4+XV5SgmCtk1BLU4CQPWGtA7o=",
         "owner": "Mic92",
         "repo": "sops-nix",
-        "rev": "787afce414bcce803b605c510b60bf43c11f4b55",
+        "rev": "1770be8ad89e41f1ed5a60ce628dd10877cb3609",
         "type": "github"
       },
       "original": {
@@ -1786,11 +1786,11 @@
     "spotifyplus-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1742253448,
-        "narHash": "sha256-iYvDB2VLPtmuS3QV2zC+HZlMD+p9NYDGDOwtduJulGc=",
+        "lastModified": 1742435397,
+        "narHash": "sha256-2BxK0X896evkprg3Dx4eg8UPnpLG1We8hvWxLWBi7GE=",
         "owner": "thlucas1",
         "repo": "homeassistantcomponent_spotifyplus",
-        "rev": "c69ed37af0832200a960b16ef6f04146133254f1",
+        "rev": "6beb671a9f0ed7d6851b1162dc82953385e6f8d5",
         "type": "github"
       },
       "original": {
@@ -1802,11 +1802,11 @@
     "spotifywebapi-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1741958492,
-        "narHash": "sha256-rS4r0P+rd2RVyZW3QWi0kZi/3WoZdgZW1XZE74wPQNg=",
+        "lastModified": 1742393886,
+        "narHash": "sha256-x/gU5wh8tXVpjEWQSYcsoKLAPHs+zNlg0L4hdZImggQ=",
         "owner": "thlucas1",
         "repo": "SpotifyWebApiPython",
-        "rev": "23e89dc0a68d10447e756ee6c0e5e9fa0fdbdc18",
+        "rev": "e6e24c124245e10266d350a5721e6d6f8979a6d5",
         "type": "github"
       },
       "original": {
@@ -1818,11 +1818,11 @@
     "subscleaner-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1734281369,
-        "narHash": "sha256-s36pAjfLQtvKEgtYFPH1LwogBHPLi5F8Fz04LIo/+44=",
+        "lastModified": 1742410596,
+        "narHash": "sha256-LNerWve5ZcYdy7HxFEMAtyZourwWmCpSVaJnK0BT4u0=",
         "owner": "rogs",
         "repo": "subscleaner",
-        "rev": "72e2f5afdfeded7dc05e4d1f098fc391065ec31f",
+        "rev": "cf619272d3d3f645c0ee6daf44d7d6c7b638c6e0",
         "type": "gitlab"
       },
       "original": {
@@ -1853,11 +1853,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742303424,
-        "narHash": "sha256-2R7cGdcA2npQQcIWu2cTlU63veTzwVZe78BliIuJT00=",
+        "lastModified": 1742370146,
+        "narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "b3b938ab8ba2e8a0ce9ee9b30ccfa5e903ae5753",
+        "rev": "adc195eef5da3606891cedf80c0d9ce2d3190808",
         "type": "github"
       },
       "original": {
@@ -1885,11 +1885,11 @@
     "tuya-local-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1742198616,
-        "narHash": "sha256-CkH2Njv9qdGlnEo3RP64Lz4ys62W6DxYC/TSl/lndPI=",
+        "lastModified": 1742480497,
+        "narHash": "sha256-eJAjsNeeL0FwLjYzfDwAfaT7kNTgt2KQ2tovmst9wII=",
         "owner": "make-all",
         "repo": "tuya-local",
-        "rev": "6edf4e9888eadf1506b9c04dacc2902351ec8307",
+        "rev": "1a3428d58bcdef6b6fc3dd2ac649d8166aa95341",
         "type": "github"
       },
       "original": {
diff --git a/modules/ags/config/default.nix b/modules/ags/config/default.nix
index b2e9f509..0379419a 100644
--- a/modules/ags/config/default.nix
+++ b/modules/ags/config/default.nix
@@ -1,3 +1,3 @@
 {
-  npmDepsHash = "sha256-CUvj1ZEMXhlTnj6LQ6dy5Y5XNGfYUrvMOeEslAWXlp4=";
+  npmDepsHash = "sha256-zlmhCzIZp0moW5vsko4sK4+ZxefUY0qbAfq1RBii6ko=";
 }
diff --git a/modules/ags/config/package-lock.json b/modules/ags/config/package-lock.json
index 2f1bf785..d364b81a 100644
--- a/modules/ags/config/package-lock.json
+++ b/modules/ags/config/package-lock.json
@@ -15,7 +15,7 @@
                 "eslint-plugin-jsdoc": "50.6.8",
                 "fzf": "0.5.2",
                 "jiti": "2.4.2",
-                "typescript-eslint": "8.26.1"
+                "typescript-eslint": "8.27.0"
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
@@ -301,9 +301,9 @@
             }
         },
         "node_modules/@pkgr/core": {
-            "version": "0.1.1",
-            "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
-            "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.2.tgz",
+            "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==",
             "license": "MIT",
             "engines": {
                 "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
@@ -344,16 +344,16 @@
             "license": "MIT"
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz",
-            "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz",
+            "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/regexpp": "^4.10.0",
-                "@typescript-eslint/scope-manager": "8.26.1",
-                "@typescript-eslint/type-utils": "8.26.1",
-                "@typescript-eslint/utils": "8.26.1",
-                "@typescript-eslint/visitor-keys": "8.26.1",
+                "@typescript-eslint/scope-manager": "8.27.0",
+                "@typescript-eslint/type-utils": "8.27.0",
+                "@typescript-eslint/utils": "8.27.0",
+                "@typescript-eslint/visitor-keys": "8.27.0",
                 "graphemer": "^1.4.0",
                 "ignore": "^5.3.1",
                 "natural-compare": "^1.4.0",
@@ -373,15 +373,15 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz",
-            "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz",
+            "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/scope-manager": "8.26.1",
-                "@typescript-eslint/types": "8.26.1",
-                "@typescript-eslint/typescript-estree": "8.26.1",
-                "@typescript-eslint/visitor-keys": "8.26.1",
+                "@typescript-eslint/scope-manager": "8.27.0",
+                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/typescript-estree": "8.27.0",
+                "@typescript-eslint/visitor-keys": "8.27.0",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -397,13 +397,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz",
-            "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz",
+            "integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.26.1",
-                "@typescript-eslint/visitor-keys": "8.26.1"
+                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/visitor-keys": "8.27.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -414,13 +414,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz",
-            "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz",
+            "integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "8.26.1",
-                "@typescript-eslint/utils": "8.26.1",
+                "@typescript-eslint/typescript-estree": "8.27.0",
+                "@typescript-eslint/utils": "8.27.0",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^2.0.1"
             },
@@ -437,9 +437,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz",
-            "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.27.0.tgz",
+            "integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==",
             "license": "MIT",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -450,13 +450,13 @@
             }
         },
         "node_modules/@typescript-eslint/typescript-estree": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz",
-            "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz",
+            "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.26.1",
-                "@typescript-eslint/visitor-keys": "8.26.1",
+                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/visitor-keys": "8.27.0",
                 "debug": "^4.3.4",
                 "fast-glob": "^3.3.2",
                 "is-glob": "^4.0.3",
@@ -476,15 +476,15 @@
             }
         },
         "node_modules/@typescript-eslint/utils": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz",
-            "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz",
+            "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "8.26.1",
-                "@typescript-eslint/types": "8.26.1",
-                "@typescript-eslint/typescript-estree": "8.26.1"
+                "@typescript-eslint/scope-manager": "8.27.0",
+                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/typescript-estree": "8.27.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -499,12 +499,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz",
-            "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz",
+            "integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.26.1",
+                "@typescript-eslint/types": "8.27.0",
                 "eslint-visitor-keys": "^4.2.0"
             },
             "engines": {
@@ -1598,9 +1598,9 @@
             }
         },
         "node_modules/ts-api-utils": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz",
-            "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==",
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+            "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
             "license": "MIT",
             "engines": {
                 "node": ">=18.12"
@@ -1642,14 +1642,14 @@
             }
         },
         "node_modules/typescript-eslint": {
-            "version": "8.26.1",
-            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.1.tgz",
-            "integrity": "sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==",
+            "version": "8.27.0",
+            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.27.0.tgz",
+            "integrity": "sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/eslint-plugin": "8.26.1",
-                "@typescript-eslint/parser": "8.26.1",
-                "@typescript-eslint/utils": "8.26.1"
+                "@typescript-eslint/eslint-plugin": "8.27.0",
+                "@typescript-eslint/parser": "8.27.0",
+                "@typescript-eslint/utils": "8.27.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
diff --git a/modules/ags/config/package.json b/modules/ags/config/package.json
index 3584de94..85a46dbf 100644
--- a/modules/ags/config/package.json
+++ b/modules/ags/config/package.json
@@ -10,6 +10,6 @@
         "eslint-plugin-jsdoc": "50.6.8",
         "fzf": "0.5.2",
         "jiti": "2.4.2",
-        "typescript-eslint": "8.26.1"
+        "typescript-eslint": "8.27.0"
     }
 }
diff --git a/scopedPackages/firefox-addons/generated-firefox-addons.nix b/scopedPackages/firefox-addons/generated-firefox-addons.nix
index bbc16769..ad736a5e 100644
--- a/scopedPackages/firefox-addons/generated-firefox-addons.nix
+++ b/scopedPackages/firefox-addons/generated-firefox-addons.nix
@@ -102,10 +102,10 @@
   };
   "floccus" = buildFirefoxXpiAddon {
     pname = "floccus";
-    version = "5.4.4";
+    version = "5.4.5";
     addonId = "floccus@handmadeideas.org";
-    url = "https://addons.mozilla.org/firefox/downloads/file/4431645/floccus-5.4.4.xpi";
-    sha256 = "ca8c70c1fe9f61b7c112934099b1827ae9700f682ba5fe7173279dfbc215114b";
+    url = "https://addons.mozilla.org/firefox/downloads/file/4458625/floccus-5.4.5.xpi";
+    sha256 = "2bdd6cca9e2e50dc70a39393f95f595d76c8ee53b7952c09ae6389e0c010134f";
     meta = with lib; {
       homepage = "https://floccus.org";
       description = "Sync your bookmarks and tabs across browsers via Nextcloud, any WebDAV service, any Git service, via a local file, via Google Drive.";
diff --git a/scopedPackages/hass-components/spotifyplus/spotifywebapi.nix b/scopedPackages/hass-components/spotifyplus/spotifywebapi.nix
index 8057628c..33181b42 100644
--- a/scopedPackages/hass-components/spotifyplus/spotifywebapi.nix
+++ b/scopedPackages/hass-components/spotifyplus/spotifywebapi.nix
@@ -21,6 +21,7 @@ in
       oauthlib
       platformdirs
       pychromecast
+      pyotp
       requests
       requests_oauthlib
       setuptools