diff --git a/apps/config/package-lock.json b/apps/config/package-lock.json
index ea74a86e..c6d2bf15 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.3",
-                "typescript-eslint": "8.29.0"
+                "typescript-eslint": "8.29.1"
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
@@ -344,16 +344,16 @@
             "license": "MIT"
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz",
-            "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz",
+            "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/regexpp": "^4.10.0",
-                "@typescript-eslint/scope-manager": "8.29.0",
-                "@typescript-eslint/type-utils": "8.29.0",
-                "@typescript-eslint/utils": "8.29.0",
-                "@typescript-eslint/visitor-keys": "8.29.0",
+                "@typescript-eslint/scope-manager": "8.29.1",
+                "@typescript-eslint/type-utils": "8.29.1",
+                "@typescript-eslint/utils": "8.29.1",
+                "@typescript-eslint/visitor-keys": "8.29.1",
                 "graphemer": "^1.4.0",
                 "ignore": "^5.3.1",
                 "natural-compare": "^1.4.0",
@@ -373,15 +373,15 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz",
-            "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz",
+            "integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/scope-manager": "8.29.0",
-                "@typescript-eslint/types": "8.29.0",
-                "@typescript-eslint/typescript-estree": "8.29.0",
-                "@typescript-eslint/visitor-keys": "8.29.0",
+                "@typescript-eslint/scope-manager": "8.29.1",
+                "@typescript-eslint/types": "8.29.1",
+                "@typescript-eslint/typescript-estree": "8.29.1",
+                "@typescript-eslint/visitor-keys": "8.29.1",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -397,13 +397,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz",
-            "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz",
+            "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.29.0",
-                "@typescript-eslint/visitor-keys": "8.29.0"
+                "@typescript-eslint/types": "8.29.1",
+                "@typescript-eslint/visitor-keys": "8.29.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -414,13 +414,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz",
-            "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz",
+            "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "8.29.0",
-                "@typescript-eslint/utils": "8.29.0",
+                "@typescript-eslint/typescript-estree": "8.29.1",
+                "@typescript-eslint/utils": "8.29.1",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^2.0.1"
             },
@@ -437,9 +437,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz",
-            "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz",
+            "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==",
             "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.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz",
-            "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz",
+            "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.29.0",
-                "@typescript-eslint/visitor-keys": "8.29.0",
+                "@typescript-eslint/types": "8.29.1",
+                "@typescript-eslint/visitor-keys": "8.29.1",
                 "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.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz",
-            "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz",
+            "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "8.29.0",
-                "@typescript-eslint/types": "8.29.0",
-                "@typescript-eslint/typescript-estree": "8.29.0"
+                "@typescript-eslint/scope-manager": "8.29.1",
+                "@typescript-eslint/types": "8.29.1",
+                "@typescript-eslint/typescript-estree": "8.29.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -499,12 +499,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz",
-            "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz",
+            "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.29.0",
+                "@typescript-eslint/types": "8.29.1",
                 "eslint-visitor-keys": "^4.2.0"
             },
             "engines": {
@@ -1659,14 +1659,14 @@
             }
         },
         "node_modules/typescript-eslint": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.0.tgz",
-            "integrity": "sha512-ep9rVd9B4kQsZ7ZnWCVxUE/xDLUUUsRzE0poAeNu+4CkFErLfuvPt/qtm2EpnSyfvsR0S6QzDFSrPCFBwf64fg==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.1.tgz",
+            "integrity": "sha512-f8cDkvndhbQMPcysk6CUSGBWV+g1utqdn71P5YKwMumVMOG/5k7cHq0KyG4O52nB0oKS4aN2Tp5+wB4APJGC+w==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/eslint-plugin": "8.29.0",
-                "@typescript-eslint/parser": "8.29.0",
-                "@typescript-eslint/utils": "8.29.0"
+                "@typescript-eslint/eslint-plugin": "8.29.1",
+                "@typescript-eslint/parser": "8.29.1",
+                "@typescript-eslint/utils": "8.29.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
diff --git a/apps/config/package.json b/apps/config/package.json
index 5c4d1aee..bd9d7a0e 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.3",
-        "typescript-eslint": "8.29.0"
+        "typescript-eslint": "8.29.1"
     }
 }
diff --git a/apps/list2series/default.nix b/apps/list2series/default.nix
index c483ff2d..d6ff6ead 100644
--- a/apps/list2series/default.nix
+++ b/apps/list2series/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-7KG3chQa9G7M/QDVpeQtLylsqyAe2Ns+nKS/kSIZM9g=";
+  npmDepsHash = "sha256-KHd2+rZvGRi1dqAfH80M9LITgEHZ3IGUE5mdGBRwDyo=";
 
   runtimeInputs = [];
 
diff --git a/apps/list2series/package-lock.json b/apps/list2series/package-lock.json
index e355075d..3fd100d3 100644
--- a/apps/list2series/package-lock.json
+++ b/apps/list2series/package-lock.json
@@ -35,7 +35,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.3",
-                "typescript-eslint": "8.29.0"
+                "typescript-eslint": "8.29.1"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
diff --git a/apps/mc-mods/default.nix b/apps/mc-mods/default.nix
index c30ff25c..699056cb 100644
--- a/apps/mc-mods/default.nix
+++ b/apps/mc-mods/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-PvDGyHwn7zpaQ0q9pxVXgyfyzB93U8KMKBJp+Wclv4w=";
+  npmDepsHash = "sha256-c1gU85N+5MqdmyDV/EsYIa6PYs4Kl2hxMj6P61L9Z/c=";
 
   runtimeInputs = [
     nodejs_latest
diff --git a/apps/mc-mods/package-lock.json b/apps/mc-mods/package-lock.json
index b2659388..282b3651 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.3",
-                "typescript-eslint": "8.29.0"
+                "typescript-eslint": "8.29.1"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
diff --git a/apps/pin-inputs/default.nix b/apps/pin-inputs/default.nix
index 744377c0..60f3c86d 100644
--- a/apps/pin-inputs/default.nix
+++ b/apps/pin-inputs/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-BUx0PwxhNlUAbPmjmgU25AIskqzPM3tgIHhuoV7d4fQ=";
+  npmDepsHash = "sha256-JMu/G8FhWaGi4NEi78RX06URqMjS0/aHID2bbQZpzC0=";
 
   runtimeInputs = [];
 
diff --git a/apps/pin-inputs/package-lock.json b/apps/pin-inputs/package-lock.json
index 66e3fcdc..0b283ca9 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.3",
-                "typescript-eslint": "8.29.0"
+                "typescript-eslint": "8.29.1"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
diff --git a/configurations/cluster/modules/caddy/plugins.nix b/configurations/cluster/modules/caddy/plugins.nix
index a38dcc25..52351ea4 100644
--- a/configurations/cluster/modules/caddy/plugins.nix
+++ b/configurations/cluster/modules/caddy/plugins.nix
@@ -1,18 +1,17 @@
-# This file was autogenerated. DO NOT EDIT!
 {
   plugins = {
     certmagic = {
       url = "github.com/caddyserver/certmagic";
-      version = "v0.22.2";
-      type = "version";
+      version = "v0.22.3-0.20250407182622-b9399eadfbe7";
+      type = "git";
     };
 
     cloudflare = {
       url = "github.com/caddy-dns/cloudflare";
-      version = "v0.0.0-20250228175314-1fb64108d4de";
+      version = "v0.0.0-20250407183951-bbf79111721a";
       type = "version";
     };
   };
 
-  hash = "sha256-rT+igzVTqHXUHqYFENH9GJYNTgY6oB4XlEzUU/vihdk=";
+  hash = "sha256-KvoZDfLBRGmIA65iQqK8R7SoQA8W6tXxpHQph+1TgUg=";
 }
diff --git a/configurations/nos/modules/docker/forgejo/images/postgres.nix b/configurations/nos/modules/docker/forgejo/images/postgres.nix
index 3a31ddf3..540d2a27 100644
--- a/configurations/nos/modules/docker/forgejo/images/postgres.nix
+++ b/configurations/nos/modules/docker/forgejo/images/postgres.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "postgres";
-  imageDigest = "sha256:4e8c2e92ad1fa2c3ea5efca42540e626a362d467e50bec75f9afecf2666f2f5b";
-  hash = "sha256-66K3Taz+Y9SLkBGrjG002BZyrBe3ufx7zOXKQDAVMqk=";
+  imageDigest = "sha256:1e6c52c366e39e869184256c45757e1c85ba15b3d244b0a2cea640da6df1c4e3";
+  hash = "sha256-w31u8URnr3jhPCHDQufnzn8AMPIx9zQ8ICMApHep6lA=";
   finalImageName = imageName;
   finalImageTag = "14";
 }
diff --git a/configurations/nos/modules/docker/freshrss/images/postgres.nix b/configurations/nos/modules/docker/freshrss/images/postgres.nix
index 3a31ddf3..540d2a27 100644
--- a/configurations/nos/modules/docker/freshrss/images/postgres.nix
+++ b/configurations/nos/modules/docker/freshrss/images/postgres.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "postgres";
-  imageDigest = "sha256:4e8c2e92ad1fa2c3ea5efca42540e626a362d467e50bec75f9afecf2666f2f5b";
-  hash = "sha256-66K3Taz+Y9SLkBGrjG002BZyrBe3ufx7zOXKQDAVMqk=";
+  imageDigest = "sha256:1e6c52c366e39e869184256c45757e1c85ba15b3d244b0a2cea640da6df1c4e3";
+  hash = "sha256-w31u8URnr3jhPCHDQufnzn8AMPIx9zQ8ICMApHep6lA=";
   finalImageName = imageName;
   finalImageTag = "14";
 }
diff --git a/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix b/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix
index 8768add2..468d60e2 100644
--- a/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix
+++ b/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "rssbridge/rss-bridge";
-  imageDigest = "sha256:05b758a554de5c1b391f5247850bb74cab7229ec28caa1b46629ca8e53940fb1";
-  hash = "sha256-5XGRvFUjF4L3ZOZvPzHA3ftkQrrSWS5HRVqBCiqOXk8=";
+  imageDigest = "sha256:539383a3c5ee42594fac9cec10da8f9bd36adf5cd415a476a85cd9c36db735a9";
+  hash = "sha256-p/OZl9vwgpd1zRiQ49F7mGkdz0/+IPTJ7Eb4g+7jAW4=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix b/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix
index 662eb80d..f3386084 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:8e93c08ff7112303bf29395520101bf23b08ff7621c3b931672dc6e0a6caae1c";
-  hash = "sha256-7b9Ii9LUS6TfAHKiuO2TBYBbkWiMQ3fHF8PxErlG8UA=";
+  imageDigest = "sha256:d6c430bc4bb48979dd8247816af75e4fbb5999535eef7c9515ba8e5dbc8ac80d";
+  hash = "sha256-LO6uuTSHWzwbLFuvNrQ/qAf750cmkvZMCVDbIHzmeig=";
   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 80c8cbd1..b11b4b7d 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:e9470fa0b94460bfda4bb741484513fc3a5757b0b30877176c0d0e7c8727b398";
-  hash = "sha256-l2ymBaZQMxgQDF8gJjvl4upFeieiKI+P00WtwT7sBZQ=";
+  imageDigest = "sha256:e904d95a06623eea6489507642275684f1a559b54093356596261b8d0289c53e";
+  hash = "sha256-NJSsKlazRjYhV6lUzs28DwunGUZHZbkzaNe1BS3ifmg=";
   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 b875bdfb..8e207be9 100644
--- a/configurations/nos/modules/docker/nextcloud/images/nginx.nix
+++ b/configurations/nos/modules/docker/nextcloud/images/nginx.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "nginx";
-  imageDigest = "sha256:124b44bfc9ccd1f3cedf4b592d4d1e8bddb78b51ec2ed5056c52d3692baebc19";
-  hash = "sha256-GZA2ZIhDVPgXmJ831Ix16dYK9nGntckNpyS9Md7yrNU=";
+  imageDigest = "sha256:09369da6b10306312cd908661320086bf87fbae1b6b0c49a1f50ba531fef2eab";
+  hash = "sha256-PH3jMib/DmusC9KTtyYTSdUxEj8AvWx86/SWBdOwOvA=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/flake.lock b/flake.lock
index 5e6bded8..f6589284 100644
--- a/flake.lock
+++ b/flake.lock
@@ -87,11 +87,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742573103,
-        "narHash": "sha256-YeEr1crWImNA8+II1pUsO3nS6u1C6oPK6L0WjN0QWJw=",
+        "lastModified": 1744147385,
+        "narHash": "sha256-zmoI6gxh8LTXiPldf71Y9GzL2mjoFPGezje5UrHarAQ=",
         "owner": "matt1432",
         "repo": "astal",
-        "rev": "ebdf75b73ed9df30ff5d4e6c200ece44b5141a00",
+        "rev": "d69b4f6b9ca2ea6def16578a8b46daa9d2b5f6b7",
         "type": "github"
       },
       "original": {
@@ -172,11 +172,11 @@
     "custom-sidebar-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1744026832,
-        "narHash": "sha256-e3nNAMEJqxiFL/h8zO8DZHqL9zYKnJilAvbLzekmS7s=",
+        "lastModified": 1744145654,
+        "narHash": "sha256-I+1MplrzlbLz+R1vXSq8ja5uanlRufHjIAW1byj/1P4=",
         "owner": "elchininet",
         "repo": "custom-sidebar",
-        "rev": "34d0ccc4fc9d58be6642e4dca94362ecb10c1761",
+        "rev": "92e8339321e61c4ee3a0e5628ccb6e80db152320",
         "type": "github"
       },
       "original": {
@@ -461,11 +461,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1744008831,
-        "narHash": "sha256-g3mHJLB8ShKuMaBBZxiGuoftJ22f7Boegiw5xBUnS8E=",
+        "lastModified": 1744138333,
+        "narHash": "sha256-l0Vjq1EZoYTfWImVmwsvMEuIdasrBRRCoNTV0rNtYi0=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "f463902a3f03e15af658e48bcc60b39188ddf734",
+        "rev": "760eed59594f2f258db0d66b7ca4a5138681fd97",
         "type": "github"
       },
       "original": {
@@ -577,11 +577,11 @@
         "xdph": "xdph"
       },
       "locked": {
-        "lastModified": 1744029991,
-        "narHash": "sha256-++WgYi6LeTvsRtCwEF0G91cFctfPCK+mA32jkokNAPs=",
+        "lastModified": 1744134195,
+        "narHash": "sha256-6khrmCqqm4wIsTWZ0q8zCNn93hPRK03GE2Y9YaxFYq0=",
         "owner": "hyprwm",
         "repo": "Hyprland",
-        "rev": "8a8f394da70e40043d1ba2c193b81867560b2b05",
+        "rev": "ea852965ffd4bf2bd2a74c0e821ba6190021eb31",
         "type": "github"
       },
       "original": {
@@ -837,11 +837,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743879910,
-        "narHash": "sha256-jAr345BODeDluX6DfO3TdY7pB77olVOcYFYjxz6rPxo=",
+        "lastModified": 1744117730,
+        "narHash": "sha256-kcxkKeBYyhy3BT5wfGmMo6kNo3XM5R7h/bu5fLdbnG4=",
         "owner": "Jovian-Experiments",
         "repo": "Jovian-NixOS",
-        "rev": "96a7fbb4a892696ff89d3d42fc743ab5d6714222",
+        "rev": "92a01193c13d5ef9085899e22715c6e5f2590af8",
         "type": "github"
       },
       "original": {
@@ -956,11 +956,11 @@
     "modernz-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1744015005,
-        "narHash": "sha256-n8M/+GaPfMdHWUaaPWXp3Km1ZSDYPMqIGAfnwUqxxSc=",
+        "lastModified": 1744058091,
+        "narHash": "sha256-ZfiqFpdBOQMjK1kkcUuhqQe08x9lW99QOSJa1Xdk7BM=",
         "owner": "Samillion",
         "repo": "ModernZ",
-        "rev": "b3c56c8d32fb1603df7603df0035dd68a73d8e4d",
+        "rev": "aca1be5aa7a649cbdc3de113f4590814548b5643",
         "type": "github"
       },
       "original": {
@@ -1161,11 +1161,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743990663,
-        "narHash": "sha256-n7bzOLVlYvxgawlIl8fXIxaDjATKhYOhp2OyP61DxdI=",
+        "lastModified": 1744100164,
+        "narHash": "sha256-I1275vcG9SFPPTXI4ksJcjhHvE9iRTvmIO7Ky0cbFZg=",
         "owner": "fufexan",
         "repo": "nix-gaming",
-        "rev": "35e3aef6ebb7b27195586130175f1409cd71d7f7",
+        "rev": "abc089ceb741aa5e05f6064a2246a46a2b4c01a5",
         "type": "github"
       },
       "original": {
@@ -1284,11 +1284,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742568248,
-        "narHash": "sha256-DLy7a13K73Se+UaRdFJa5QfPmnFvO2yoeg02c8ioR4k=",
+        "lastModified": 1744084647,
+        "narHash": "sha256-DgFfDQf713caAN4LtxABGBhP7QxXow+kQSafSddzzr4=",
         "owner": "nix-community",
         "repo": "nixd",
-        "rev": "590eccaa079929daa58316f5386dbcc150e2d50d",
+        "rev": "e32db14503340dbcae7a156de306ba680cb1b516",
         "type": "github"
       },
       "original": {
@@ -1322,11 +1322,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1743827369,
-        "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=",
+        "lastModified": 1743964447,
+        "narHash": "sha256-nEo1t3Q0F+0jQ36HJfbJtiRU4OI+/0jX/iITURKe3EE=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "42a1c966be226125b48c384171c44c651c236c22",
+        "rev": "063dece00c5a77e4a0ea24e5e5a5bd75232806f8",
         "type": "github"
       },
       "original": {
@@ -1710,11 +1710,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743910657,
-        "narHash": "sha256-zr2jmWeWyhCD8WmO2aWov2g0WPPuZfcJDKzMJZYGq3Y=",
+        "lastModified": 1744103455,
+        "narHash": "sha256-SR6+qjkPjGQG+8eM4dCcVtss8r9bre/LAxFMPJpaZeU=",
         "owner": "Mic92",
         "repo": "sops-nix",
-        "rev": "523f58a4faff6c67f5f685bed33a7721e984c304",
+        "rev": "69d5a5a4635c27dae5a742f36108beccc506c1ba",
         "type": "github"
       },
       "original": {
@@ -1825,11 +1825,11 @@
     "tuya-local-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1744036388,
-        "narHash": "sha256-V0FFbj4ItPLXMy7L59t6Bi0YHZ2E/SKsTRLhRpZzvHc=",
+        "lastModified": 1744119045,
+        "narHash": "sha256-0eM1WuubG44CRcz1AEWLPccWU3TIWoIx18m96DDcmjY=",
         "owner": "make-all",
         "repo": "tuya-local",
-        "rev": "b24ed038fc1b959d328528af7957cff39dd69f85",
+        "rev": "5799e6bfa200d857bcb99b3601317f209cc2e560",
         "type": "github"
       },
       "original": {
@@ -1857,11 +1857,11 @@
     "vimplugin-roslyn-nvim-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1743179866,
-        "narHash": "sha256-OrZfSoXW/ePD1KUKXASCTs3oDfPlRQT062xerXec1kA=",
+        "lastModified": 1744134351,
+        "narHash": "sha256-VQYHRD3++0+OU7Eyrfif+k9T+F1vvPv0cSJ9XZBoUtE=",
         "owner": "seblj",
         "repo": "roslyn.nvim",
-        "rev": "02aa30c67a538c00ef197708daf2edba11d50a2b",
+        "rev": "09541daaefaa61a422a4ae979dcc8d1b5cd37e42",
         "type": "github"
       },
       "original": {
diff --git a/modules/ags/config/default.nix b/modules/ags/config/default.nix
index 9b1ddb77..ef555bd4 100644
--- a/modules/ags/config/default.nix
+++ b/modules/ags/config/default.nix
@@ -1,3 +1,3 @@
 {
-  npmDepsHash = "sha256-UBiN2T9jGoRNzNabISdPW4QlcCO8DxVTw9XdLpOktoI=";
+  npmDepsHash = "sha256-lTj8CEWbsTQdQtvVPyld7Ycqob4XrfqfBEp/NxpvrwM=";
 }
diff --git a/modules/ags/config/package-lock.json b/modules/ags/config/package-lock.json
index 388bd5f9..5aaa358e 100644
--- a/modules/ags/config/package-lock.json
+++ b/modules/ags/config/package-lock.json
@@ -10,12 +10,12 @@
             "dependencies": {
                 "@eslint/js": "9.24.0",
                 "@stylistic/eslint-plugin": "4.2.0",
-                "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
+                "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?3ac89cab8a2a9f5ef86dc9fdc3a3dce2188ca8f7",
                 "eslint": "9.24.0",
                 "eslint-plugin-jsdoc": "50.6.9",
                 "fzf": "0.5.2",
                 "jiti": "2.4.2",
-                "typescript-eslint": "8.29.0"
+                "typescript-eslint": "8.29.1"
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
@@ -356,16 +356,16 @@
             "license": "MIT"
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz",
-            "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz",
+            "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/regexpp": "^4.10.0",
-                "@typescript-eslint/scope-manager": "8.29.0",
-                "@typescript-eslint/type-utils": "8.29.0",
-                "@typescript-eslint/utils": "8.29.0",
-                "@typescript-eslint/visitor-keys": "8.29.0",
+                "@typescript-eslint/scope-manager": "8.29.1",
+                "@typescript-eslint/type-utils": "8.29.1",
+                "@typescript-eslint/utils": "8.29.1",
+                "@typescript-eslint/visitor-keys": "8.29.1",
                 "graphemer": "^1.4.0",
                 "ignore": "^5.3.1",
                 "natural-compare": "^1.4.0",
@@ -385,15 +385,15 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz",
-            "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz",
+            "integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/scope-manager": "8.29.0",
-                "@typescript-eslint/types": "8.29.0",
-                "@typescript-eslint/typescript-estree": "8.29.0",
-                "@typescript-eslint/visitor-keys": "8.29.0",
+                "@typescript-eslint/scope-manager": "8.29.1",
+                "@typescript-eslint/types": "8.29.1",
+                "@typescript-eslint/typescript-estree": "8.29.1",
+                "@typescript-eslint/visitor-keys": "8.29.1",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -409,13 +409,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz",
-            "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz",
+            "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.29.0",
-                "@typescript-eslint/visitor-keys": "8.29.0"
+                "@typescript-eslint/types": "8.29.1",
+                "@typescript-eslint/visitor-keys": "8.29.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -426,13 +426,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz",
-            "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz",
+            "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "8.29.0",
-                "@typescript-eslint/utils": "8.29.0",
+                "@typescript-eslint/typescript-estree": "8.29.1",
+                "@typescript-eslint/utils": "8.29.1",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^2.0.1"
             },
@@ -449,9 +449,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz",
-            "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz",
+            "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==",
             "license": "MIT",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -462,13 +462,13 @@
             }
         },
         "node_modules/@typescript-eslint/typescript-estree": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz",
-            "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz",
+            "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.29.0",
-                "@typescript-eslint/visitor-keys": "8.29.0",
+                "@typescript-eslint/types": "8.29.1",
+                "@typescript-eslint/visitor-keys": "8.29.1",
                 "debug": "^4.3.4",
                 "fast-glob": "^3.3.2",
                 "is-glob": "^4.0.3",
@@ -488,15 +488,15 @@
             }
         },
         "node_modules/@typescript-eslint/utils": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz",
-            "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz",
+            "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "8.29.0",
-                "@typescript-eslint/types": "8.29.0",
-                "@typescript-eslint/typescript-estree": "8.29.0"
+                "@typescript-eslint/scope-manager": "8.29.1",
+                "@typescript-eslint/types": "8.29.1",
+                "@typescript-eslint/typescript-estree": "8.29.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -511,12 +511,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz",
-            "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz",
+            "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.29.0",
+                "@typescript-eslint/types": "8.29.1",
                 "eslint-visitor-keys": "^4.2.0"
             },
             "engines": {
@@ -595,8 +595,8 @@
             "license": "Python-2.0"
         },
         "node_modules/astal": {
-            "resolved": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
-            "integrity": "sha512-Ed0mUh2JombUGdCbatQ4ooyVd1DLdnLBdeCDZX8EbtLU7baaoj9M5LSbDcBRVZMO61xpBX0pQGE2xhKUDssYJw==",
+            "resolved": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?3ac89cab8a2a9f5ef86dc9fdc3a3dce2188ca8f7",
+            "integrity": "sha512-r3TVrp68eaM9G9ELsytJ1pc+wYzY03AO5c285cAjq5Pxhb9wIx+L7OJFH+fbvMMrWtR5uyiquVcLuDS+eK70VQ==",
             "license": "LGPL-2.1"
         },
         "node_modules/balanced-match": {
@@ -1654,14 +1654,14 @@
             }
         },
         "node_modules/typescript-eslint": {
-            "version": "8.29.0",
-            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.0.tgz",
-            "integrity": "sha512-ep9rVd9B4kQsZ7ZnWCVxUE/xDLUUUsRzE0poAeNu+4CkFErLfuvPt/qtm2EpnSyfvsR0S6QzDFSrPCFBwf64fg==",
+            "version": "8.29.1",
+            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.1.tgz",
+            "integrity": "sha512-f8cDkvndhbQMPcysk6CUSGBWV+g1utqdn71P5YKwMumVMOG/5k7cHq0KyG4O52nB0oKS4aN2Tp5+wB4APJGC+w==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/eslint-plugin": "8.29.0",
-                "@typescript-eslint/parser": "8.29.0",
-                "@typescript-eslint/utils": "8.29.0"
+                "@typescript-eslint/eslint-plugin": "8.29.1",
+                "@typescript-eslint/parser": "8.29.1",
+                "@typescript-eslint/utils": "8.29.1"
             },
             "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 22bed84c..a53f5fd1 100644
--- a/modules/ags/config/package.json
+++ b/modules/ags/config/package.json
@@ -3,13 +3,13 @@
     "version": "0.0.0",
     "main": "app.ts",
     "dependencies": {
-        "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
+        "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?3ac89cab8a2a9f5ef86dc9fdc3a3dce2188ca8f7",
         "@eslint/js": "9.24.0",
         "@stylistic/eslint-plugin": "4.2.0",
         "eslint": "9.24.0",
         "eslint-plugin-jsdoc": "50.6.9",
         "fzf": "0.5.2",
         "jiti": "2.4.2",
-        "typescript-eslint": "8.29.0"
+        "typescript-eslint": "8.29.1"
     }
 }
diff --git a/scopedPackages/lovelace-components/custom-sidebar/default.nix b/scopedPackages/lovelace-components/custom-sidebar/default.nix
index 18d23447..cc3c342b 100644
--- a/scopedPackages/lovelace-components/custom-sidebar/default.nix
+++ b/scopedPackages/lovelace-components/custom-sidebar/default.nix
@@ -35,7 +35,7 @@ in
 
     pnpmDeps = pnpm.fetchDeps {
       inherit (finalAttrs) pname version src;
-      hash = "sha256-S+wv8WFWmQAmA84ZZNWyvS0b6qwPDx81E2qqWIyfzcI=";
+      hash = "sha256-izGzoCYMzF3hSIT0rlyw5pYHnZQXYvM251gH1Yz3nHM=";
     };
 
     passthru.updateScript = concatTextFile {