diff --git a/apps/extract-subs/default.nix b/apps/extract-subs/default.nix
index 1d3d53a9..d291f450 100644
--- a/apps/extract-subs/default.nix
+++ b/apps/extract-subs/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-xhnq5lHge1Ga3q020UCC8gSgQ0qNXSnqumXzGBjXnQA=";
+  npmDepsHash = "sha256-qGXPMU8tJCnvCDv+nkfAJw4cq6gKn2/BUX0WMtBb8wc=";
 
   runtimeInputs = [
     ffmpeg-full
diff --git a/apps/extract-subs/package-lock.json b/apps/extract-subs/package-lock.json
index 82c435c3..2ce26e3a 100644
--- a/apps/extract-subs/package-lock.json
+++ b/apps/extract-subs/package-lock.json
@@ -9,7 +9,7 @@
             "version": "0.0.0",
             "dependencies": {
                 "@types/fluent-ffmpeg": "2.1.27",
-                "@types/node": "22.13.16",
+                "@types/node": "22.14.0",
                 "esbuild": "0.25.2",
                 "eslint": "9.23.0",
                 "fluent-ffmpeg": "2.1.3",
@@ -35,7 +35,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
-                "typescript-eslint": "8.28.0"
+                "typescript-eslint": "8.29.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -492,9 +492,9 @@
             }
         },
         "node_modules/@eslint/config-helpers": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
-            "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
+            "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
             "license": "Apache-2.0",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -554,18 +554,30 @@
             }
         },
         "node_modules/@eslint/plugin-kit": {
-            "version": "0.2.7",
-            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
-            "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
+            "version": "0.2.8",
+            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz",
+            "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==",
             "license": "Apache-2.0",
             "dependencies": {
-                "@eslint/core": "^0.12.0",
+                "@eslint/core": "^0.13.0",
                 "levn": "^0.4.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
             }
         },
+        "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": {
+            "version": "0.13.0",
+            "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz",
+            "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==",
+            "license": "Apache-2.0",
+            "dependencies": {
+                "@types/json-schema": "^7.0.15"
+            },
+            "engines": {
+                "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+            }
+        },
         "node_modules/@humanfs/core": {
             "version": "0.19.1",
             "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
@@ -649,12 +661,12 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.16",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.16.tgz",
-            "integrity": "sha512-15tM+qA4Ypml/N7kyRdvfRjBQT2RL461uF1Bldn06K0Nzn1lY3nAPgHlsVrJxdZ9WhZiW0Fmc1lOYMtDsAuB3w==",
+            "version": "22.14.0",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.0.tgz",
+            "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==",
             "license": "MIT",
             "dependencies": {
-                "undici-types": "~6.20.0"
+                "undici-types": "~6.21.0"
             }
         },
         "node_modules/acorn": {
@@ -1490,9 +1502,9 @@
             }
         },
         "node_modules/undici-types": {
-            "version": "6.20.0",
-            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
-            "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+            "version": "6.21.0",
+            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+            "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
             "license": "MIT"
         },
         "node_modules/uri-js": {
diff --git a/apps/extract-subs/package.json b/apps/extract-subs/package.json
index 2c177dd2..c17a2ce4 100644
--- a/apps/extract-subs/package.json
+++ b/apps/extract-subs/package.json
@@ -9,7 +9,7 @@
     "dependencies": {
         "@types/fluent-ffmpeg": "2.1.27",
         "fluent-ffmpeg": "2.1.3",
-        "@types/node": "22.13.16",
+        "@types/node": "22.14.0",
         "esbuild": "0.25.2",
         "eslint": "9.23.0",
         "jiti": "2.4.2",
diff --git a/apps/list2series/default.nix b/apps/list2series/default.nix
index 11633777..d9a5afb4 100644
--- a/apps/list2series/default.nix
+++ b/apps/list2series/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-9iQ+Ke/Jq2VgSToVciQLuPDuedBF6zIRrdP0FKByQxs=";
+  npmDepsHash = "sha256-TXmob2BTSG6F02oi+2lRAFG115ItOOAXdnOjC2K37ec=";
 
   runtimeInputs = [];
 
diff --git a/apps/list2series/package-lock.json b/apps/list2series/package-lock.json
index 51ffcaa2..e5cbb7ef 100644
--- a/apps/list2series/package-lock.json
+++ b/apps/list2series/package-lock.json
@@ -8,7 +8,7 @@
             "name": "list2series",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.13.16",
+                "@types/node": "22.14.0",
                 "axios": "1.8.4",
                 "esbuild": "0.25.2",
                 "eslint": "9.23.0",
@@ -492,9 +492,9 @@
             }
         },
         "node_modules/@eslint/config-helpers": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
-            "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
+            "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
             "license": "Apache-2.0",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -554,18 +554,30 @@
             }
         },
         "node_modules/@eslint/plugin-kit": {
-            "version": "0.2.7",
-            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
-            "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
+            "version": "0.2.8",
+            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz",
+            "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==",
             "license": "Apache-2.0",
             "dependencies": {
-                "@eslint/core": "^0.12.0",
+                "@eslint/core": "^0.13.0",
                 "levn": "^0.4.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
             }
         },
+        "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": {
+            "version": "0.13.0",
+            "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz",
+            "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==",
+            "license": "Apache-2.0",
+            "dependencies": {
+                "@types/json-schema": "^7.0.15"
+            },
+            "engines": {
+                "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+            }
+        },
         "node_modules/@humanfs/core": {
             "version": "0.19.1",
             "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
@@ -640,12 +652,12 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.16",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.16.tgz",
-            "integrity": "sha512-15tM+qA4Ypml/N7kyRdvfRjBQT2RL461uF1Bldn06K0Nzn1lY3nAPgHlsVrJxdZ9WhZiW0Fmc1lOYMtDsAuB3w==",
+            "version": "22.14.0",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.0.tgz",
+            "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==",
             "license": "MIT",
             "dependencies": {
-                "undici-types": "~6.20.0"
+                "undici-types": "~6.21.0"
             }
         },
         "node_modules/acorn": {
@@ -814,9 +826,9 @@
             "license": "MIT"
         },
         "node_modules/confbox": {
-            "version": "0.2.1",
-            "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.1.tgz",
-            "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==",
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
+            "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
             "license": "MIT"
         },
         "node_modules/cross-spawn": {
@@ -1758,9 +1770,9 @@
             }
         },
         "node_modules/undici-types": {
-            "version": "6.20.0",
-            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
-            "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+            "version": "6.21.0",
+            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+            "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
             "license": "MIT"
         },
         "node_modules/uri-js": {
diff --git a/apps/list2series/package.json b/apps/list2series/package.json
index 76d1b04c..1161e45c 100644
--- a/apps/list2series/package.json
+++ b/apps/list2series/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.13.16",
+        "@types/node": "22.14.0",
         "axios": "1.8.4",
         "esbuild": "0.25.2",
         "eslint": "9.23.0",
diff --git a/apps/mc-mods/default.nix b/apps/mc-mods/default.nix
index 0d16874c..ccce39e6 100644
--- a/apps/mc-mods/default.nix
+++ b/apps/mc-mods/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-6Bei5W9JmxUN3ac47V9A/ixJxpIK4GOR0YBG2jOc47c=";
+  npmDepsHash = "sha256-85bgLIZVAk4XiVQtgN6Mlj+IdKy8+KN8BBFxu+qchpw=";
 
   runtimeInputs = [
     nodejs_latest
diff --git a/apps/mc-mods/package-lock.json b/apps/mc-mods/package-lock.json
index a2d1ceee..3bd05d24 100644
--- a/apps/mc-mods/package-lock.json
+++ b/apps/mc-mods/package-lock.json
@@ -8,7 +8,7 @@
             "name": "mc-mods",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.13.16",
+                "@types/node": "22.14.0",
                 "esbuild": "0.25.2",
                 "eslint": "9.23.0",
                 "jiti": "2.4.2",
@@ -491,9 +491,9 @@
             }
         },
         "node_modules/@eslint/config-helpers": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
-            "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
+            "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
             "license": "Apache-2.0",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -553,18 +553,30 @@
             }
         },
         "node_modules/@eslint/plugin-kit": {
-            "version": "0.2.7",
-            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
-            "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
+            "version": "0.2.8",
+            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz",
+            "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==",
             "license": "Apache-2.0",
             "dependencies": {
-                "@eslint/core": "^0.12.0",
+                "@eslint/core": "^0.13.0",
                 "levn": "^0.4.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
             }
         },
+        "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": {
+            "version": "0.13.0",
+            "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz",
+            "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==",
+            "license": "Apache-2.0",
+            "dependencies": {
+                "@types/json-schema": "^7.0.15"
+            },
+            "engines": {
+                "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+            }
+        },
         "node_modules/@humanfs/core": {
             "version": "0.19.1",
             "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
@@ -639,12 +651,12 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.16",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.16.tgz",
-            "integrity": "sha512-15tM+qA4Ypml/N7kyRdvfRjBQT2RL461uF1Bldn06K0Nzn1lY3nAPgHlsVrJxdZ9WhZiW0Fmc1lOYMtDsAuB3w==",
+            "version": "22.14.0",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.0.tgz",
+            "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==",
             "license": "MIT",
             "dependencies": {
-                "undici-types": "~6.20.0"
+                "undici-types": "~6.21.0"
             }
         },
         "node_modules/acorn": {
@@ -771,9 +783,9 @@
             "license": "MIT"
         },
         "node_modules/confbox": {
-            "version": "0.2.1",
-            "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.1.tgz",
-            "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==",
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
+            "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
             "license": "MIT"
         },
         "node_modules/cross-spawn": {
@@ -1479,9 +1491,9 @@
             }
         },
         "node_modules/undici-types": {
-            "version": "6.20.0",
-            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
-            "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+            "version": "6.21.0",
+            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+            "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
             "license": "MIT"
         },
         "node_modules/uri-js": {
diff --git a/apps/mc-mods/package.json b/apps/mc-mods/package.json
index 60058bd7..acf9df3e 100644
--- a/apps/mc-mods/package.json
+++ b/apps/mc-mods/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.13.16",
+        "@types/node": "22.14.0",
         "esbuild": "0.25.2",
         "eslint": "9.23.0",
         "jiti": "2.4.2",
diff --git a/apps/pin-inputs/default.nix b/apps/pin-inputs/default.nix
index c661e081..cfb1248b 100644
--- a/apps/pin-inputs/default.nix
+++ b/apps/pin-inputs/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-cFB7hWrm6cl0T05ToBcyYtS/3RBNxteIltN2JuNulx8=";
+  npmDepsHash = "sha256-8reCDpSUbubvOD9u9DwGOXHmN2kEWVjNSdCIV6hJxxg=";
 
   runtimeInputs = [];
 
diff --git a/apps/pin-inputs/package-lock.json b/apps/pin-inputs/package-lock.json
index 2dbc1fc9..e21ce199 100644
--- a/apps/pin-inputs/package-lock.json
+++ b/apps/pin-inputs/package-lock.json
@@ -8,7 +8,7 @@
             "name": "pin-inputs",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.13.16",
+                "@types/node": "22.14.0",
                 "esbuild": "0.25.2",
                 "eslint": "9.23.0",
                 "jiti": "2.4.2",
@@ -491,9 +491,9 @@
             }
         },
         "node_modules/@eslint/config-helpers": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
-            "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
+            "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
             "license": "Apache-2.0",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -553,18 +553,30 @@
             }
         },
         "node_modules/@eslint/plugin-kit": {
-            "version": "0.2.7",
-            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
-            "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
+            "version": "0.2.8",
+            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz",
+            "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==",
             "license": "Apache-2.0",
             "dependencies": {
-                "@eslint/core": "^0.12.0",
+                "@eslint/core": "^0.13.0",
                 "levn": "^0.4.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
             }
         },
+        "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": {
+            "version": "0.13.0",
+            "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz",
+            "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==",
+            "license": "Apache-2.0",
+            "dependencies": {
+                "@types/json-schema": "^7.0.15"
+            },
+            "engines": {
+                "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+            }
+        },
         "node_modules/@humanfs/core": {
             "version": "0.19.1",
             "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
@@ -639,12 +651,12 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.16",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.16.tgz",
-            "integrity": "sha512-15tM+qA4Ypml/N7kyRdvfRjBQT2RL461uF1Bldn06K0Nzn1lY3nAPgHlsVrJxdZ9WhZiW0Fmc1lOYMtDsAuB3w==",
+            "version": "22.14.0",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.0.tgz",
+            "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==",
             "license": "MIT",
             "dependencies": {
-                "undici-types": "~6.20.0"
+                "undici-types": "~6.21.0"
             }
         },
         "node_modules/acorn": {
@@ -771,9 +783,9 @@
             "license": "MIT"
         },
         "node_modules/confbox": {
-            "version": "0.2.1",
-            "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.1.tgz",
-            "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==",
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
+            "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
             "license": "MIT"
         },
         "node_modules/cross-spawn": {
@@ -1479,9 +1491,9 @@
             }
         },
         "node_modules/undici-types": {
-            "version": "6.20.0",
-            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
-            "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+            "version": "6.21.0",
+            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+            "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
             "license": "MIT"
         },
         "node_modules/uri-js": {
diff --git a/apps/pin-inputs/package.json b/apps/pin-inputs/package.json
index 72ac38fd..5eb94b35 100644
--- a/apps/pin-inputs/package.json
+++ b/apps/pin-inputs/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.13.16",
+        "@types/node": "22.14.0",
         "esbuild": "0.25.2",
         "eslint": "9.23.0",
         "jiti": "2.4.2",
diff --git a/apps/update-sources/default.nix b/apps/update-sources/default.nix
index c1f357ad..3d0184d6 100644
--- a/apps/update-sources/default.nix
+++ b/apps/update-sources/default.nix
@@ -12,7 +12,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-Uk4ihi3PzFnaricPreqLSX3cGw1+8Gmmuo0bFkxc1CU=";
+  npmDepsHash = "sha256-hcT7Woy/n7zxAVIiaKIMYFIMUAZJ1/Yx1F/CHiD8g/s=";
 
   runtimeInputs = [
     curl
diff --git a/apps/update-sources/package-lock.json b/apps/update-sources/package-lock.json
index ed572c88..8c7b84dd 100644
--- a/apps/update-sources/package-lock.json
+++ b/apps/update-sources/package-lock.json
@@ -8,7 +8,7 @@
             "name": "update-sources",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.13.16",
+                "@types/node": "22.14.0",
                 "esbuild": "0.25.2",
                 "eslint": "9.23.0",
                 "jiti": "2.4.2",
@@ -34,7 +34,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
-                "typescript-eslint": "8.28.0"
+                "typescript-eslint": "8.29.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -491,9 +491,9 @@
             }
         },
         "node_modules/@eslint/config-helpers": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
-            "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
+            "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
             "license": "Apache-2.0",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -553,18 +553,30 @@
             }
         },
         "node_modules/@eslint/plugin-kit": {
-            "version": "0.2.7",
-            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
-            "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
+            "version": "0.2.8",
+            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz",
+            "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==",
             "license": "Apache-2.0",
             "dependencies": {
-                "@eslint/core": "^0.12.0",
+                "@eslint/core": "^0.13.0",
                 "levn": "^0.4.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
             }
         },
+        "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": {
+            "version": "0.13.0",
+            "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz",
+            "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==",
+            "license": "Apache-2.0",
+            "dependencies": {
+                "@types/json-schema": "^7.0.15"
+            },
+            "engines": {
+                "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+            }
+        },
         "node_modules/@humanfs/core": {
             "version": "0.19.1",
             "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
@@ -639,12 +651,12 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.16",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.16.tgz",
-            "integrity": "sha512-15tM+qA4Ypml/N7kyRdvfRjBQT2RL461uF1Bldn06K0Nzn1lY3nAPgHlsVrJxdZ9WhZiW0Fmc1lOYMtDsAuB3w==",
+            "version": "22.14.0",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.0.tgz",
+            "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==",
             "license": "MIT",
             "dependencies": {
-                "undici-types": "~6.20.0"
+                "undici-types": "~6.21.0"
             }
         },
         "node_modules/acorn": {
@@ -771,9 +783,9 @@
             "license": "MIT"
         },
         "node_modules/confbox": {
-            "version": "0.2.1",
-            "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.1.tgz",
-            "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==",
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
+            "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
             "license": "MIT"
         },
         "node_modules/cross-spawn": {
@@ -1479,9 +1491,9 @@
             }
         },
         "node_modules/undici-types": {
-            "version": "6.20.0",
-            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
-            "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+            "version": "6.21.0",
+            "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+            "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
             "license": "MIT"
         },
         "node_modules/uri-js": {
diff --git a/apps/update-sources/package.json b/apps/update-sources/package.json
index d0f1144f..89b8821d 100644
--- a/apps/update-sources/package.json
+++ b/apps/update-sources/package.json
@@ -7,7 +7,7 @@
         "build": "node_ver=$(node -v); esbuild src/app.ts --bundle --platform=node --target=\"node${node_ver:1:2}\" --outfile=out/bin/app.cjs"
     },
     "dependencies": {
-        "@types/node": "22.13.16",
+        "@types/node": "22.14.0",
         "esbuild": "0.25.2",
         "eslint": "9.23.0",
         "jiti": "2.4.2",
diff --git a/configurations/nos/modules/docker/forgejo/images/act_runner.nix b/configurations/nos/modules/docker/forgejo/images/act_runner.nix
index 1e70bf23..31d95204 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:b3682aa0873960e8b8d5a1ec35417063b1a11a2a7b12dbc89f959346b57e38ea";
-  hash = "sha256-mUQavetqfVWUn3XHlhZdwCpzljLKzjpNJ4e0oZzhkpA=";
+  imageDigest = "sha256:1abb9999d9e44103f1f4e19a345fd33c2675253bb839053ffc698bfb85604c22";
+  hash = "sha256-mqTTH/gCOKIbwNPPLeVEXU3Ad3JpjS9sWVej5a3xf6M=";
   finalImageName = imageName;
   finalImageTag = "dind-latest";
 }
diff --git a/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix b/configurations/nos/modules/docker/freshrss/images/rss-bridge.nix
index e7dc4aab..8768add2 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:b025ebb9219cf8c861bc1094f1c75d812a36c9d247a511214a041679672a7787";
-  hash = "sha256-D3MJe4UCHDGxz+yVhuOEcF2BYSWfWuNhxw271bbAqPc=";
+  imageDigest = "sha256:05b758a554de5c1b391f5247850bb74cab7229ec28caa1b46629ca8e53940fb1";
+  hash = "sha256-5XGRvFUjF4L3ZOZvPzHA3ftkQrrSWS5HRVqBCiqOXk8=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/immich/images/machine-learning.nix b/configurations/nos/modules/docker/immich/images/machine-learning.nix
index 5161f86a..c9f97079 100644
--- a/configurations/nos/modules/docker/immich/images/machine-learning.nix
+++ b/configurations/nos/modules/docker/immich/images/machine-learning.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/immich-app/immich-machine-learning";
-  imageDigest = "sha256:838757ea055071269e12bb8a4fb43109fb7dbe2340fffd96cb07ecf26b939e25";
-  hash = "sha256-Lz5KECwWyYNMTboxP7cFugx0Gqj8e9FkhWAVM21pfuI=";
+  imageDigest = "sha256:d6f07b454c0ec7e4ba3a5926fff2482f8fd1a9922b489122dec33b11a4f37bdd";
+  hash = "sha256-4XMrJQzlWsvnMSyDdZsHUa8I4QPHgYaTmo0OKix3ETw=";
   finalImageName = imageName;
   finalImageTag = "release";
 }
diff --git a/configurations/nos/modules/docker/immich/images/server.nix b/configurations/nos/modules/docker/immich/images/server.nix
index b9343da4..8bc19c26 100644
--- a/configurations/nos/modules/docker/immich/images/server.nix
+++ b/configurations/nos/modules/docker/immich/images/server.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/immich-app/immich-server";
-  imageDigest = "sha256:de80b21948fc3ec4c96872c24bf3ea556a8d9b5bfc3e83445e0094b605282761";
-  hash = "sha256-0RhsCWCijZZoZe3ny2cAXsV9VJh+6gskAa9AiNbyKts=";
+  imageDigest = "sha256:7e5b6729b12b5e5cc5d98bcc6f7c27f723fabae4ee77696855808ebd5200bbf8";
+  hash = "sha256-4+AK8upcMkTYmTxrp19qfO0yXNHaRs67UnGz9r5v7xY=";
   finalImageName = imageName;
   finalImageTag = "release";
 }
diff --git a/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix b/configurations/nos/modules/docker/media/bazarr/images/bazarr.nix
index 563cabd5..662eb80d 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:9cea5b5c817379690bb5c53cd14bbf21fec44d39870d56a1d9e003f27a642509";
-  hash = "sha256-+fG0prQjEv1XU5CguamD37REtsQ9QSqSDD+fCToJgTM=";
+  imageDigest = "sha256:8e93c08ff7112303bf29395520101bf23b08ff7621c3b931672dc6e0a6caae1c";
+  hash = "sha256-7b9Ii9LUS6TfAHKiuO2TBYBbkWiMQ3fHF8PxErlG8UA=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/media/prowlarr/images/prowlarr.nix b/configurations/nos/modules/docker/media/prowlarr/images/prowlarr.nix
index 054a58a1..de4eafb4 100644
--- a/configurations/nos/modules/docker/media/prowlarr/images/prowlarr.nix
+++ b/configurations/nos/modules/docker/media/prowlarr/images/prowlarr.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/linuxserver/prowlarr";
-  imageDigest = "sha256:2611b04166440455966b64928dbb082819f10e9ca27db56e2f234d755b767ad4";
-  hash = "sha256-E04zdsSs++4m+FUHsehjPai2H4oDxI9reYq6bSl+zKI=";
+  imageDigest = "sha256:81fb4868e9340f807d91a17012e467a274f7bfb86fe31190ad40c0723e2a22c5";
+  hash = "sha256-xPu85r68/uNZ5EIht5t+6n2W1iCCnTtIpNzzEXWKIQg=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/flake.lock b/flake.lock
index caa7f035..f4aecf0a 100644
--- a/flake.lock
+++ b/flake.lock
@@ -3,11 +3,11 @@
     "Kapowarr-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1743470007,
-        "narHash": "sha256-BSf3wx789Gg/OwGM9sIrxIsphh06s1x18VRmJ5S5P9w=",
+        "lastModified": 1743561280,
+        "narHash": "sha256-C6Bd2xFWGPQuruQcbTwyu87JdSxOxEMVdY3o6+q/3E0=",
         "owner": "matt1432",
         "repo": "Kapowarr",
-        "rev": "08e7eacf410c3141513680688d09b4e51600caf5",
+        "rev": "d3f2d8e3637f4121de45aa6c75b482001057737e",
         "type": "github"
       },
       "original": {
@@ -172,11 +172,11 @@
     "custom-sidebar-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1743375236,
-        "narHash": "sha256-/9NWUy3Iy6pvAIl72yWARwQmN13RpPLXdBgzK9a289Y=",
+        "lastModified": 1743631350,
+        "narHash": "sha256-3yyvKUsWvUKoE+7SjzxGt114WD4K6Xsjuko0ZrubvPg=",
         "owner": "elchininet",
         "repo": "custom-sidebar",
-        "rev": "79b73566db6275f0b60c30ccd9be0a6baae6eeed",
+        "rev": "78a13129d0a1e31d3fd6f56be0740840e6ec4148",
         "type": "github"
       },
       "original": {
@@ -294,11 +294,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1741352980,
-        "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
+        "lastModified": 1743550720,
+        "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
         "owner": "hercules-ci",
         "repo": "flake-parts",
-        "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
+        "rev": "c621e8422220273271f52058f618c94e405bb0f5",
         "type": "github"
       },
       "original": {
@@ -441,11 +441,11 @@
     "gtk-theme-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1743452130,
-        "narHash": "sha256-dtBSH5mgKZQLXq2cBX0t2uRXFzhxn+XZF9kAgHkhLkk=",
+        "lastModified": 1743550838,
+        "narHash": "sha256-vdA3pkMha+vFQwAspZVLIkNi1VviArN+VUoievdrHZM=",
         "owner": "dracula",
         "repo": "gtk",
-        "rev": "b8826a6b26c1846e452f281cda15e58b76127778",
+        "rev": "ceeb13795df115d150fca7c8ae1721b9a618cb3b",
         "type": "github"
       },
       "original": {
@@ -461,11 +461,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743482579,
-        "narHash": "sha256-u81nqA4UuRatKDkzUuIfVYdLMw8birEy+99oXpdyXhY=",
+        "lastModified": 1743648554,
+        "narHash": "sha256-23JFd+zd2GamTTdnGuFVeIg8x8C3hLpQJRh/PGTORzo=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "c21383b556609ce1ad901aa08b4c6fbd9e0c7af0",
+        "rev": "107352dde4ff3c01cb5a0b3fe17f5beef37215bc",
         "type": "github"
       },
       "original": {
@@ -577,11 +577,11 @@
         "xdph": "xdph"
       },
       "locked": {
-        "lastModified": 1743463509,
-        "narHash": "sha256-JASYdXTJovrTgT04ATMGpRruvY4+lrdhAkoPhPPb+h4=",
+        "lastModified": 1743666186,
+        "narHash": "sha256-Mt2hsnJnYUodsfkBowkHNG5U66WpJ4pwsb05oyFbeSE=",
         "owner": "hyprwm",
         "repo": "Hyprland",
-        "rev": "d1a59ec39eb4c0d6a7d3d38a26f8924e6bca5cef",
+        "rev": "b496e2c71817aae5560af04b8c6439c39f4e05d8",
         "type": "github"
       },
       "original": {
@@ -837,11 +837,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743144043,
-        "narHash": "sha256-QlEk4Xm5KG0jW5Kus9teY3bhxdf0GUTexxTUCaJM5ms=",
+        "lastModified": 1743660830,
+        "narHash": "sha256-ezJqPIuB25iMJeugwHKWnB1DjMvrdpkrPxE3TCULjGk=",
         "owner": "Jovian-Experiments",
         "repo": "Jovian-NixOS",
-        "rev": "1c17514c8558886af0afc34b6c348c1f2ee9fd24",
+        "rev": "c7ade1c8fe2bdb70d38b3b9a97b874dcaf33b755",
         "type": "github"
       },
       "original": {
@@ -1040,11 +1040,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742933628,
-        "narHash": "sha256-Qe/XUKvcaNdQflvhQQSX1PV5SjNx/RCBBDHxbWxE2xI=",
+        "lastModified": 1743682999,
+        "narHash": "sha256-bg+aAN8K90r3m/I+xXiXG0gawpbkshwlk93wxUN7KEk=",
         "owner": "viperML",
         "repo": "nh",
-        "rev": "7bd0d00a3f1aab85a7e29d34b4f1f6744263e6c3",
+        "rev": "9e9a4590b38b62b28f07a1fae973ce7b6ca0687a",
         "type": "github"
       },
       "original": {
@@ -1112,11 +1112,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1741859942,
-        "narHash": "sha256-lOMeXwNYIiX+/8unr+6blKkeWBJ2TRfJ2xGJ1Xo/qFw=",
+        "lastModified": 1743678859,
+        "narHash": "sha256-U/9X5+CG2M/2235TGgC7hDxRkaGyKOFbUESD0C/ChT4=",
         "owner": "Mic92",
         "repo": "nix-fast-build",
-        "rev": "0ef0c6065345426fb4872c9ee75a58c11f62d3f8",
+        "rev": "2098f7602e271f4dab8a39f5a41e55e36a4b921d",
         "type": "github"
       },
       "original": {
@@ -1161,11 +1161,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743299372,
-        "narHash": "sha256-vFuxkHPd+Xpi5Bx1VCyZwYl/BbF83C+KmlbPBNVJvNU=",
+        "lastModified": 1743644846,
+        "narHash": "sha256-I217zRnDlSdWzoZi4sHaRKdY+x60tLOo8TyRshkyUBM=",
         "owner": "fufexan",
         "repo": "nix-gaming",
-        "rev": "2ab0a37308559926bddb0009dfcf16a2a5b34e2b",
+        "rev": "a6fac721ece856f5dd4690b41b92e7ba3a71d033",
         "type": "github"
       },
       "original": {
@@ -1257,11 +1257,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743453178,
-        "narHash": "sha256-TdVPzQabTKVeX50Mbwu6Tq2l65e5WQk2o3S4NHyRBA0=",
+        "lastModified": 1743597733,
+        "narHash": "sha256-s2N8foBzxht3IuRyQ34VX3coQWNZKchoTHI3DEaKMKA=",
         "owner": "kaylorben",
         "repo": "nixcord",
-        "rev": "ea80fdaf62168f85ce9813bc8f21fe45f892f5e7",
+        "rev": "1c9bcc2d01497c274555ff659a7272e7e1572cfb",
         "type": "github"
       },
       "original": {
@@ -1322,11 +1322,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1743315132,
-        "narHash": "sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om+D4UnDhlDW9BE=",
+        "lastModified": 1743583204,
+        "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "52faf482a3889b7619003c0daec593a1912fddc1",
+        "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
         "type": "github"
       },
       "original": {
@@ -1710,11 +1710,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743502316,
-        "narHash": "sha256-zI2WSkU+ei4zCxT+IVSQjNM9i0ST++T2qSFXTsAND7s=",
+        "lastModified": 1743604509,
+        "narHash": "sha256-Hf5aYGP3hP+uNbcd4NrEMUAR+1o518uGzoeVyMzzJwo=",
         "owner": "Mic92",
         "repo": "sops-nix",
-        "rev": "e7f4d7ed8bce8dfa7d2f2fe6f8b8f523e54646f8",
+        "rev": "4521de68fba1a36fae8caebce3d6e047179661f7",
         "type": "github"
       },
       "original": {
@@ -1793,11 +1793,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1743081648,
-        "narHash": "sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE=",
+        "lastModified": 1743677901,
+        "narHash": "sha256-eWZln+k+L/VHO69tUTzEmgeDWNQNKIpSUa9nqQgBrSE=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "29a3d7b768c70addce17af0869f6e2bd8f5be4b7",
+        "rev": "57dabe2a6255bd6165b2437ff6c2d1f6ee78421a",
         "type": "github"
       },
       "original": {
@@ -1825,11 +1825,11 @@
     "tuya-local-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1743479190,
-        "narHash": "sha256-Qcv8AhyY2tsi7IZB+ZSXyZsJAMrfkYytBlShqF9S5v0=",
+        "lastModified": 1743684968,
+        "narHash": "sha256-PLeeLTcQP+fWbmQY+piaOQvzO76PZprHajDk2N3PRF8=",
         "owner": "make-all",
         "repo": "tuya-local",
-        "rev": "ffde11cecabc74c4288922c331eebc6fe1291f10",
+        "rev": "0c7bf61017603620403cd9850a1db7f466b43c90",
         "type": "github"
       },
       "original": {
diff --git a/lib/pkgs/mk-types/default.nix b/lib/pkgs/mk-types/default.nix
index edb4751f..a124dbce 100644
--- a/lib/pkgs/mk-types/default.nix
+++ b/lib/pkgs/mk-types/default.nix
@@ -21,7 +21,7 @@ in
     pname = "${pname}-types";
     version = "0.0.0";
 
-    npmDepsHash = "sha256-w0YvzqNb22didMdSelfztTxbnDeE1UiSPGrP0riaYzQ=";
+    npmDepsHash = "sha256-EQGuiVsEQZUWdHEBhw1ZRmkYREITeEY+/YiZA0kN774=";
 
     src = ./.;
     dontNpmBuild = true;
diff --git a/lib/pkgs/mk-types/package-lock.json b/lib/pkgs/mk-types/package-lock.json
index 75e3f811..bc35a90b 100644
--- a/lib/pkgs/mk-types/package-lock.json
+++ b/lib/pkgs/mk-types/package-lock.json
@@ -795,9 +795,9 @@
             }
         },
         "node_modules/fast-xml-parser": {
-            "version": "5.0.9",
-            "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.0.9.tgz",
-            "integrity": "sha512-2mBwCiuW3ycKQQ6SOesSB8WeF+fIGb6I/GG5vU5/XEptwFFhp9PE8b9O7fbs2dpq9fXn4ULR3UsfydNUCntf5A==",
+            "version": "5.2.0",
+            "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.0.tgz",
+            "integrity": "sha512-Uw9+Mjt4SBRud1IcaYuW/O0lW8SKKdMl5g7g24HiIuyH5fQSD+AVLybSlJtqLYEbytVFjWQa5DMGcNgeksdRBg==",
             "funding": [
                 {
                     "type": "github",
diff --git a/modules/ags/config/default.nix b/modules/ags/config/default.nix
index 48804ee0..30a18b50 100644
--- a/modules/ags/config/default.nix
+++ b/modules/ags/config/default.nix
@@ -1,3 +1,3 @@
 {
-  npmDepsHash = "sha256-ybceL4xpeSRhH4ak3P47029gxXY3ZgLVEiQUfnJ6zPE=";
+  npmDepsHash = "sha256-qWm0L/i4yvkt0c7HNlDxidT7AGHsB+8gwWxevKSeaFE=";
 }
diff --git a/modules/ags/config/package-lock.json b/modules/ags/config/package-lock.json
index a09e9bb0..36d6a7d4 100644
--- a/modules/ags/config/package-lock.json
+++ b/modules/ags/config/package-lock.json
@@ -108,9 +108,9 @@
             }
         },
         "node_modules/@eslint/config-helpers": {
-            "version": "0.2.0",
-            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
-            "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
+            "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
             "license": "Apache-2.0",
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -192,18 +192,30 @@
             }
         },
         "node_modules/@eslint/plugin-kit": {
-            "version": "0.2.7",
-            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
-            "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
+            "version": "0.2.8",
+            "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz",
+            "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==",
             "license": "Apache-2.0",
             "dependencies": {
-                "@eslint/core": "^0.12.0",
+                "@eslint/core": "^0.13.0",
                 "levn": "^0.4.1"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
             }
         },
+        "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": {
+            "version": "0.13.0",
+            "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz",
+            "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==",
+            "license": "Apache-2.0",
+            "dependencies": {
+                "@types/json-schema": "^7.0.15"
+            },
+            "engines": {
+                "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+            }
+        },
         "node_modules/@humanfs/core": {
             "version": "0.19.1",
             "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
diff --git a/overlays/misc-fixes/default.nix b/overlays/misc-fixes/default.nix
index c5977760..e1ad6fe9 100644
--- a/overlays/misc-fixes/default.nix
+++ b/overlays/misc-fixes/default.nix
@@ -10,4 +10,16 @@ final: prev: {
       hash = "sha256-Q7TJn1XEwGDaPZOvGdQ+B78e8mkZTtBrBVKngUCRABQ=";
     };
   });
+
+  # FIXME: https://pr-tracker.nelim.org/?pr=395654
+  platformioPackages = let
+    callPackage = final.newScope self;
+
+    self = {
+      platformio-core = callPackage "${final.path}/pkgs/development/embedded/platformio/core.nix" {};
+
+      platformio-chrootenv = callPackage "${final.path}/pkgs/development/embedded/platformio/chrootenv.nix" {};
+    };
+  in
+    self;
 }
diff --git a/packages/jmusicbot/default.nix b/packages/jmusicbot/default.nix
index 37dee673..f4943bf7 100644
--- a/packages/jmusicbot/default.nix
+++ b/packages/jmusicbot/default.nix
@@ -33,10 +33,10 @@
   });
 in
   (jmusicbot.override {jre_headless = jre;}).overrideAttrs (o: rec {
-    version = "0.4.3.4";
+    version = "0.4.3.5";
     src = fetchurl {
       url = "https://github.com/xPrinny/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
-      sha256 = "sha256-kUgVzZnjdhjvnUOqmmb1MXGxh9YXQosP0j6xITGjy/E=";
+      sha256 = "sha256-3hGqm6Ey4CHLSTEPvKmaPTwsoG5+jHS6W3zwjF3km8Q=";
     };
     meta = o.meta // {platforms = ["x86_64-linux"];};
   })