diff --git a/apps/config/package-lock.json b/apps/config/package-lock.json
index d24fedad..e3513452 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.27.0"
+                "typescript-eslint": "8.28.0"
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
@@ -344,16 +344,16 @@
             "license": "MIT"
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "8.27.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz",
-            "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz",
+            "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/regexpp": "^4.10.0",
-                "@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",
+                "@typescript-eslint/scope-manager": "8.28.0",
+                "@typescript-eslint/type-utils": "8.28.0",
+                "@typescript-eslint/utils": "8.28.0",
+                "@typescript-eslint/visitor-keys": "8.28.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.27.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz",
-            "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz",
+            "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==",
             "license": "MIT",
             "dependencies": {
-                "@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",
+                "@typescript-eslint/scope-manager": "8.28.0",
+                "@typescript-eslint/types": "8.28.0",
+                "@typescript-eslint/typescript-estree": "8.28.0",
+                "@typescript-eslint/visitor-keys": "8.28.0",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -397,13 +397,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "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==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz",
+            "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.27.0",
-                "@typescript-eslint/visitor-keys": "8.27.0"
+                "@typescript-eslint/types": "8.28.0",
+                "@typescript-eslint/visitor-keys": "8.28.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -414,13 +414,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "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==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz",
+            "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "8.27.0",
-                "@typescript-eslint/utils": "8.27.0",
+                "@typescript-eslint/typescript-estree": "8.28.0",
+                "@typescript-eslint/utils": "8.28.0",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^2.0.1"
             },
@@ -437,9 +437,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "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==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz",
+            "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==",
             "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.27.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz",
-            "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz",
+            "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.27.0",
-                "@typescript-eslint/visitor-keys": "8.27.0",
+                "@typescript-eslint/types": "8.28.0",
+                "@typescript-eslint/visitor-keys": "8.28.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.27.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz",
-            "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz",
+            "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "8.27.0",
-                "@typescript-eslint/types": "8.27.0",
-                "@typescript-eslint/typescript-estree": "8.27.0"
+                "@typescript-eslint/scope-manager": "8.28.0",
+                "@typescript-eslint/types": "8.28.0",
+                "@typescript-eslint/typescript-estree": "8.28.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -499,12 +499,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "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==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz",
+            "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/types": "8.28.0",
                 "eslint-visitor-keys": "^4.2.0"
             },
             "engines": {
@@ -1659,14 +1659,14 @@
             }
         },
         "node_modules/typescript-eslint": {
-            "version": "8.27.0",
-            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.27.0.tgz",
-            "integrity": "sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.28.0.tgz",
+            "integrity": "sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/eslint-plugin": "8.27.0",
-                "@typescript-eslint/parser": "8.27.0",
-                "@typescript-eslint/utils": "8.27.0"
+                "@typescript-eslint/eslint-plugin": "8.28.0",
+                "@typescript-eslint/parser": "8.28.0",
+                "@typescript-eslint/utils": "8.28.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 f287458c..b9e7f949 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.27.0"
+        "typescript-eslint": "8.28.0"
     }
 }
diff --git a/apps/extract-subs/default.nix b/apps/extract-subs/default.nix
index 919a7b86..cbbc0cf0 100644
--- a/apps/extract-subs/default.nix
+++ b/apps/extract-subs/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-t9gZeheEIGwYFQXSIgHedEzsJOtZnFvbwUWi0T2zmVo=";
+  npmDepsHash = "sha256-z15n5h4nvCgN1N0bwZw1h28VTQ1OkzpkRmFTsX6pzG8=";
 
   runtimeInputs = [
     ffmpeg-full
diff --git a/apps/extract-subs/package-lock.json b/apps/extract-subs/package-lock.json
index 35be1cf5..971d5eab 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.11",
+                "@types/node": "22.13.13",
                 "esbuild": "0.25.1",
                 "eslint": "9.23.0",
                 "fluent-ffmpeg": "2.1.3",
@@ -28,10 +28,10 @@
             "version": "0.0.0",
             "dev": true,
             "dependencies": {
-                "@eslint/js": "9.22.0",
+                "@eslint/js": "9.23.0",
                 "@stylistic/eslint-plugin": "4.2.0",
-                "eslint": "9.22.0",
-                "eslint-plugin-jsdoc": "50.6.8",
+                "eslint": "9.23.0",
+                "eslint-plugin-jsdoc": "50.6.9",
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
@@ -628,9 +628,9 @@
             }
         },
         "node_modules/@types/estree": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
-            "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+            "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
             "license": "MIT"
         },
         "node_modules/@types/fluent-ffmpeg": {
@@ -649,9 +649,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.11",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz",
-            "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==",
+            "version": "22.13.13",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz",
+            "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.20.0"
diff --git a/apps/extract-subs/package.json b/apps/extract-subs/package.json
index 82cafff0..1c8209fa 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.11",
+        "@types/node": "22.13.13",
         "esbuild": "0.25.1",
         "eslint": "9.23.0",
         "jiti": "2.4.2",
diff --git a/apps/list2series/default.nix b/apps/list2series/default.nix
index 363b1f62..bea5eac0 100644
--- a/apps/list2series/default.nix
+++ b/apps/list2series/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-GrGSXKAH8w068rIOFwmQoM1Zn68ESkazBiDaoE0mrQw=";
+  npmDepsHash = "sha256-df+aDVrrktLD8E0ZI0MKwZ7OczliC3OBbK3lZbIuATM=";
 
   runtimeInputs = [];
 
diff --git a/apps/list2series/package-lock.json b/apps/list2series/package-lock.json
index cd5478ed..df4c3120 100644
--- a/apps/list2series/package-lock.json
+++ b/apps/list2series/package-lock.json
@@ -8,8 +8,8 @@
             "name": "list2series",
             "version": "0.0.0",
             "dependencies": {
-                "@types/node": "22.13.11",
-                "axios": "^1.8.4",
+                "@types/node": "22.13.13",
+                "axios": "1.8.4",
                 "esbuild": "0.25.1",
                 "eslint": "9.23.0",
                 "jiti": "2.4.2",
@@ -35,7 +35,7 @@
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
-                "typescript-eslint": "8.27.0"
+                "typescript-eslint": "8.28.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -628,9 +628,9 @@
             }
         },
         "node_modules/@types/estree": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
-            "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+            "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
             "license": "MIT"
         },
         "node_modules/@types/json-schema": {
@@ -640,9 +640,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.11",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz",
-            "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==",
+            "version": "22.13.13",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz",
+            "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.20.0"
diff --git a/apps/list2series/package.json b/apps/list2series/package.json
index a6a851fb..eb9cc4f5 100644
--- a/apps/list2series/package.json
+++ b/apps/list2series/package.json
@@ -7,8 +7,8 @@
         "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.11",
-        "axios": "^1.8.4",
+        "@types/node": "22.13.13",
+        "axios": "1.8.4",
         "esbuild": "0.25.1",
         "eslint": "9.23.0",
         "jiti": "2.4.2",
diff --git a/apps/mc-mods/default.nix b/apps/mc-mods/default.nix
index 8b78c4fb..caa843bd 100644
--- a/apps/mc-mods/default.nix
+++ b/apps/mc-mods/default.nix
@@ -5,7 +5,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-+dAii/IbWELkdGLDTIkU77DFTTmh6etv3R3xpiDPOQk=";
+  npmDepsHash = "sha256-dW6QEgVfFOQO8akUDM0ALZG4mRZE8jn/RNeFql0/MMU=";
 
   runtimeInputs = [
     nodejs_latest
diff --git a/apps/mc-mods/package-lock.json b/apps/mc-mods/package-lock.json
index 2633f006..cce803f1 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.11",
+                "@types/node": "22.13.13",
                 "esbuild": "0.25.1",
                 "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.27.0"
+                "typescript-eslint": "8.28.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -627,9 +627,9 @@
             }
         },
         "node_modules/@types/estree": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
-            "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+            "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
             "license": "MIT"
         },
         "node_modules/@types/json-schema": {
@@ -639,9 +639,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.11",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz",
-            "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==",
+            "version": "22.13.13",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz",
+            "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.20.0"
diff --git a/apps/mc-mods/package.json b/apps/mc-mods/package.json
index 7467244e..4fe50883 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.11",
+        "@types/node": "22.13.13",
         "esbuild": "0.25.1",
         "eslint": "9.23.0",
         "jiti": "2.4.2",
diff --git a/apps/pin-inputs/default.nix b/apps/pin-inputs/default.nix
index 312ba953..a44d53e0 100644
--- a/apps/pin-inputs/default.nix
+++ b/apps/pin-inputs/default.nix
@@ -1,7 +1,7 @@
 {buildApp, ...}:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-ZofvMJlZF3znFIPCeVgfjO/desMHYcxwA09E5q9KqUI=";
+  npmDepsHash = "sha256-ziWwF9RnTGFvWOpnWQkF3+TzgGqvDflgEjEiIm8FlP0=";
 
   runtimeInputs = [];
 
diff --git a/apps/pin-inputs/package-lock.json b/apps/pin-inputs/package-lock.json
index 693ac0cd..7725a789 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.11",
+                "@types/node": "22.13.13",
                 "esbuild": "0.25.1",
                 "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.27.0"
+                "typescript-eslint": "8.28.0"
             }
         },
         "node_modules/@esbuild/aix-ppc64": {
@@ -627,9 +627,9 @@
             }
         },
         "node_modules/@types/estree": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
-            "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+            "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
             "license": "MIT"
         },
         "node_modules/@types/json-schema": {
@@ -639,9 +639,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.11",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz",
-            "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==",
+            "version": "22.13.13",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz",
+            "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.20.0"
diff --git a/apps/pin-inputs/package.json b/apps/pin-inputs/package.json
index 2bb7c8ee..2bbc19f4 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.11",
+        "@types/node": "22.13.13",
         "esbuild": "0.25.1",
         "eslint": "9.23.0",
         "jiti": "2.4.2",
diff --git a/apps/update-sources/default.nix b/apps/update-sources/default.nix
index ae6afe5b..561f0388 100644
--- a/apps/update-sources/default.nix
+++ b/apps/update-sources/default.nix
@@ -12,7 +12,7 @@
 }:
 buildApp {
   src = ./.;
-  npmDepsHash = "sha256-Vgwc+2XbnX1FhpjPoymikVoNKW+l6Q2VmDNNa9uWlLg=";
+  npmDepsHash = "sha256-cPmHnRBNDlej/abeup0JSAQpHBP4P/Rgba5l6TNpkNg=";
 
   runtimeInputs = [
     curl
diff --git a/apps/update-sources/package-lock.json b/apps/update-sources/package-lock.json
index b1e8da4a..49dc0530 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.11",
+                "@types/node": "22.13.13",
                 "esbuild": "0.25.1",
                 "eslint": "9.23.0",
                 "jiti": "2.4.2",
@@ -27,10 +27,10 @@
             "version": "0.0.0",
             "dev": true,
             "dependencies": {
-                "@eslint/js": "9.22.0",
+                "@eslint/js": "9.23.0",
                 "@stylistic/eslint-plugin": "4.2.0",
-                "eslint": "9.22.0",
-                "eslint-plugin-jsdoc": "50.6.8",
+                "eslint": "9.23.0",
+                "eslint-plugin-jsdoc": "50.6.9",
                 "jiti": "2.4.2",
                 "pkg-types": "2.1.0",
                 "typescript": "5.8.2",
@@ -627,9 +627,9 @@
             }
         },
         "node_modules/@types/estree": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
-            "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+            "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
             "license": "MIT"
         },
         "node_modules/@types/json-schema": {
@@ -639,9 +639,9 @@
             "license": "MIT"
         },
         "node_modules/@types/node": {
-            "version": "22.13.11",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.11.tgz",
-            "integrity": "sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g==",
+            "version": "22.13.13",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz",
+            "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==",
             "license": "MIT",
             "dependencies": {
                 "undici-types": "~6.20.0"
diff --git a/apps/update-sources/package.json b/apps/update-sources/package.json
index 0786d100..e22a04a6 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.11",
+        "@types/node": "22.13.13",
         "esbuild": "0.25.1",
         "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 ea4da3fd..1e70bf23 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:3a4631ca14c26674ef8f4bdb9a8d0eb20ad39bda6f05801e6c7abb452c324c66";
-  hash = "sha256-rKON5tD5cr/NR6rmdPyWxqVQwvOK7JpEkPVIJDxT20E=";
+  imageDigest = "sha256:b3682aa0873960e8b8d5a1ec35417063b1a11a2a7b12dbc89f959346b57e38ea";
+  hash = "sha256-mUQavetqfVWUn3XHlhZdwCpzljLKzjpNJ4e0oZzhkpA=";
   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 ad05e846..4589b831 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:721f7e5a8619e2b77569393bda271538f5ae21686629e0e3abe0fa18599e08fc";
-  hash = "sha256-TotMQiL6uhPJ+N3sO0+F5dD/R9BzYtm/XlaD6D5Aq7o=";
+  imageDigest = "sha256:f699ff53d38c03767c4736fe253b0935c7d6b80725b9f09f2fcfaeac5dceab4b";
+  hash = "sha256-ruA7MdqgYlRir0DbSk0DInxilp/jRjP/SIN4Tzl1sCM=";
   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 b6155ab4..08c479ff 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:072b5eec074476726c38994ca80edc8d19e14859d49b0f1b6aaa04b0ce415f0c";
-  hash = "sha256-Q6JdDAeNJs+BlZlRse+fIpUXpo6wQCWpNcCHpzPYoo8=";
+  imageDigest = "sha256:695d0b0b083b1f3ff7a91693f573ac4f8919ce15c923bcd04101b817db8e1b03";
+  hash = "sha256-Z79vDo7DUiOepZTL297cJSiO2MkimX8wD2I0ZP0KqaU=";
   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 01a22c0b..5e5a75a6 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:7122354defac839a7ecf541395907c21805f6a2b60b67ee476e66b162f1a355d";
-  hash = "sha256-xcFmtb8GRAc2VQnPjytIh1Pmof3njCDWFoF233/upx8=";
+  imageDigest = "sha256:a906a1daf4e82e9fa3e307cda55c46618fa9a639f7b417d13392795c7a1c3176";
+  hash = "sha256-s5W8wKrZWbnPfeSYek92h5pPYMOmfckm14imh8D4KVw=";
   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 d0ea89a2..563cabd5 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:fffd75389760b731f11468a1ddabcb35b042ef4b51994c9587337825cdef5470";
-  hash = "sha256-Tcjo1N/TptoyLI5Kt6leESEq6wbJW9pSEPzGX3DJ/SA=";
+  imageDigest = "sha256:9cea5b5c817379690bb5c53cd14bbf21fec44d39870d56a1d9e003f27a642509";
+  hash = "sha256-+fG0prQjEv1XU5CguamD37REtsQ9QSqSDD+fCToJgTM=";
   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 5ecd054f..054a58a1 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:18e9801e4509e45873c1adb03adf0bf718743ff5147e19b4cdf7626f8bd2f752";
-  hash = "sha256-SXlE7QYGGVWePjORCFiN+0bfqFpEfoPV0fp5XqN9XCU=";
+  imageDigest = "sha256:2611b04166440455966b64928dbb082819f10e9ca27db56e2f234d755b767ad4";
+  hash = "sha256-E04zdsSs++4m+FUHsehjPai2H4oDxI9reYq6bSl+zKI=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/configurations/nos/modules/docker/media/radarr/images/radarr.nix b/configurations/nos/modules/docker/media/radarr/images/radarr.nix
index caf0a20b..3a9e82d1 100644
--- a/configurations/nos/modules/docker/media/radarr/images/radarr.nix
+++ b/configurations/nos/modules/docker/media/radarr/images/radarr.nix
@@ -1,8 +1,8 @@
 pkgs:
 pkgs.dockerTools.pullImage rec {
   imageName = "ghcr.io/linuxserver/radarr";
-  imageDigest = "sha256:de82a83c39316ef10024a17e6d0f5238bc27347b39ce4508a633604b4f48302d";
-  hash = "sha256-pg886CAboy7RyVd9HIfcBAtYZ/zZnbi9QI8O+H+KfR4=";
+  imageDigest = "sha256:eccd80c53e55572b91ae205eb572e16b3e012631892e74be7ccedb6d5fafb630";
+  hash = "sha256-CYt7kePS7ijvzvFfEHqyYmrr7nJmk5WUBnUzEF5rcKE=";
   finalImageName = imageName;
   finalImageTag = "latest";
 }
diff --git a/flake.lock b/flake.lock
index 7cc8c1d6..ad01b2a4 100644
--- a/flake.lock
+++ b/flake.lock
@@ -444,11 +444,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742756669,
-        "narHash": "sha256-55QHo/lETkGO4lUfxhJ6TUs5OLOz5Ks7JDNAKDzpt4I=",
+        "lastModified": 1742996658,
+        "narHash": "sha256-snxgTLVq6ooaD3W3mPHu7LVWpoZKczhxHAUZy2ea4oA=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "0e75a40458d065d1e5c6a10d0b74b9e35b550ae6",
+        "rev": "693840c01b9bef9e54100239cef937e53d4661bf",
         "type": "github"
       },
       "original": {
@@ -560,11 +560,11 @@
         "xdph": "xdph"
       },
       "locked": {
-        "lastModified": 1742746774,
-        "narHash": "sha256-6BMwAfC604szlL8S7BJkH8a090p0505rFB+mAiApBoo=",
+        "lastModified": 1743009764,
+        "narHash": "sha256-ySdBBDjPGTzvca/0Cnuz3+EswXn33thVqYksMR+93M8=",
         "owner": "hyprwm",
         "repo": "Hyprland",
-        "rev": "e4abf26069b4d43c8f6ad6b3dfb56c952abb38c2",
+        "rev": "9ea76428b68fad5a68e9153bcb246547ac2e5d6c",
         "type": "github"
       },
       "original": {
@@ -586,11 +586,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742550672,
-        "narHash": "sha256-q6v3nkJZdu45bwCuymQ+q3U7uwfA+M3GqsvZ0TgNsi4=",
+        "lastModified": 1742861859,
+        "narHash": "sha256-lbdHyp2+NoyciCJBtBt3Cgm2dDvoHvTdCRMbmwJoUmk=",
         "owner": "hyprwm",
         "repo": "hyprland-plugins",
-        "rev": "7429a0ea78353dab6a7a9a3e8101db98a306957d",
+        "rev": "1f332c09a2382cb23da0f69a6f504f8b33433831",
         "type": "github"
       },
       "original": {
@@ -1023,11 +1023,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1741336922,
-        "narHash": "sha256-ahECQuhpwRKp0TcBsE1rsHlm6t+mUllMojORXmgBcC4=",
+        "lastModified": 1742933628,
+        "narHash": "sha256-Qe/XUKvcaNdQflvhQQSX1PV5SjNx/RCBBDHxbWxE2xI=",
         "owner": "viperML",
         "repo": "nh",
-        "rev": "509dd6c96eefa11e7324f475a86ff4ea447987b7",
+        "rev": "7bd0d00a3f1aab85a7e29d34b4f1f6744263e6c3",
         "type": "github"
       },
       "original": {
@@ -1144,11 +1144,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742694749,
-        "narHash": "sha256-hH/Wofw+RKBbcTMuzCvvgPrnTkmEZd54bOsT0QR7EJM=",
+        "lastModified": 1742998728,
+        "narHash": "sha256-WOJEfqNrgvUFgGlA70S3h9iHIJtT6qhwxVwbiUdVhXs=",
         "owner": "fufexan",
         "repo": "nix-gaming",
-        "rev": "1491461d4a47f61264df62863ed163a00192b2f1",
+        "rev": "5f44cf346870efd1c6300d81d03a132a8834e0e4",
         "type": "github"
       },
       "original": {
@@ -1240,11 +1240,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742580728,
-        "narHash": "sha256-SyhAnd66UwtisdTOen13K5iSRkp/H+/w9tYH8c4AGKc=",
+        "lastModified": 1742915532,
+        "narHash": "sha256-LJ9rlcyOyL4RIG5FgOG8FhCnoJrh83Wqu5yOQkGe0Z0=",
         "owner": "kaylorben",
         "repo": "nixcord",
-        "rev": "b5f200ebbc880dd69ce06a9cd442fc758f426f87",
+        "rev": "eb7f65e995720ccde1928fedad335fd468bc152a",
         "type": "github"
       },
       "original": {
@@ -1305,11 +1305,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1742422364,
-        "narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
+        "lastModified": 1742889210,
+        "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
+        "rev": "698214a32beb4f4c8e3942372c694f40848b360d",
         "type": "github"
       },
       "original": {
@@ -1379,11 +1379,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742734205,
-        "narHash": "sha256-lNKab0pvZ7hXbmT68ujRBqKouxDnR1UdKK4RnLXy+sk=",
+        "lastModified": 1742993746,
+        "narHash": "sha256-eNM2El9Hw+oVV/Md4/7uLDV6lfHmagpFeCPhJcSAmtg=",
         "owner": "nix-community",
         "repo": "nixpkgs-wayland",
-        "rev": "5acb0bcac2293d8402c515f95c036cd46005341d",
+        "rev": "9bb30b85c24a9557e4fbf9cdf00b9be313b1f916",
         "type": "github"
       },
       "original": {
@@ -1835,11 +1835,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1742370146,
-        "narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=",
+        "lastModified": 1742982148,
+        "narHash": "sha256-aRA6LSxjlbMI6MmMzi/M5WH/ynd8pK+vACD9za3MKLQ=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "adc195eef5da3606891cedf80c0d9ce2d3190808",
+        "rev": "61c88349bf6dff49fa52d7dfc39b21026c2a8881",
         "type": "github"
       },
       "original": {
@@ -1867,11 +1867,11 @@
     "tuya-local-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1742723062,
-        "narHash": "sha256-tGeq29iGUE9ncURpSxL6uKLz1NviAOM7ObGfLV6tFVU=",
+        "lastModified": 1742872718,
+        "narHash": "sha256-Qglq9dVlP6uV4I6UwmM8vSKlLpdvP2G5Z+ANiX4EOGo=",
         "owner": "make-all",
         "repo": "tuya-local",
-        "rev": "8207ad2f53798258f94b7c0652a5e33071832548",
+        "rev": "ccada583bfb41ac8b9bd4c92761a65f26e614169",
         "type": "github"
       },
       "original": {
@@ -1899,11 +1899,11 @@
     "vimplugin-roslyn-nvim-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1741792635,
-        "narHash": "sha256-UgFY13WKxV1jhjzqZS1AHMN/dMrgt3uAkhZjAuthHMg=",
+        "lastModified": 1742848130,
+        "narHash": "sha256-wqrrZOIXqdPjbvmndlz9XJSpVC/exm9NtS7zR+1TrNQ=",
         "owner": "seblj",
         "repo": "roslyn.nvim",
-        "rev": "0d298e68efa511df18a0bd4fd9a0c9bf70ebdbf2",
+        "rev": "8c80d1fe4070264f58a366d8ed431544f5f3455a",
         "type": "github"
       },
       "original": {
diff --git a/lib/pkgs/mk-types/default.nix b/lib/pkgs/mk-types/default.nix
index 87d0992d..edb4751f 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-ashBeJG1B+Inmux0PVnSIk5E1Tb7v5+we5zkh9yvYXo=";
+    npmDepsHash = "sha256-w0YvzqNb22didMdSelfztTxbnDeE1UiSPGrP0riaYzQ=";
 
     src = ./.;
     dontNpmBuild = true;
diff --git a/lib/pkgs/mk-types/package-lock.json b/lib/pkgs/mk-types/package-lock.json
index 041f610d..75e3f811 100644
--- a/lib/pkgs/mk-types/package-lock.json
+++ b/lib/pkgs/mk-types/package-lock.json
@@ -1057,9 +1057,9 @@
             "license": "MIT"
         },
         "node_modules/lru-cache": {
-            "version": "11.0.2",
-            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz",
-            "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==",
+            "version": "11.1.0",
+            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz",
+            "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==",
             "license": "ISC",
             "engines": {
                 "node": "20 || >=22"
diff --git a/modules/ags/config/default.nix b/modules/ags/config/default.nix
index 24ea979a..7021f3cb 100644
--- a/modules/ags/config/default.nix
+++ b/modules/ags/config/default.nix
@@ -1,3 +1,3 @@
 {
-  npmDepsHash = "sha256-CVKhJMdI5D9jLU+6VdxmbPgdlQhgLFIy2CiLcGq2YXo=";
+  npmDepsHash = "sha256-iHXZjvSGvnN/hn7LusaRB6wK/EZY+JgWVrzMOrAcxGg=";
 }
diff --git a/modules/ags/config/package-lock.json b/modules/ags/config/package-lock.json
index 2186fc4d..69aa9ea3 100644
--- a/modules/ags/config/package-lock.json
+++ b/modules/ags/config/package-lock.json
@@ -15,7 +15,7 @@
                 "eslint-plugin-jsdoc": "50.6.9",
                 "fzf": "0.5.2",
                 "jiti": "2.4.2",
-                "typescript-eslint": "8.27.0"
+                "typescript-eslint": "8.28.0"
             }
         },
         "node_modules/@es-joy/jsdoccomment": {
@@ -332,9 +332,9 @@
             }
         },
         "node_modules/@types/estree": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
-            "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+            "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
             "license": "MIT"
         },
         "node_modules/@types/json-schema": {
@@ -344,16 +344,16 @@
             "license": "MIT"
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "8.27.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz",
-            "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz",
+            "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/regexpp": "^4.10.0",
-                "@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",
+                "@typescript-eslint/scope-manager": "8.28.0",
+                "@typescript-eslint/type-utils": "8.28.0",
+                "@typescript-eslint/utils": "8.28.0",
+                "@typescript-eslint/visitor-keys": "8.28.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.27.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz",
-            "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz",
+            "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==",
             "license": "MIT",
             "dependencies": {
-                "@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",
+                "@typescript-eslint/scope-manager": "8.28.0",
+                "@typescript-eslint/types": "8.28.0",
+                "@typescript-eslint/typescript-estree": "8.28.0",
+                "@typescript-eslint/visitor-keys": "8.28.0",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -397,13 +397,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "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==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz",
+            "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.27.0",
-                "@typescript-eslint/visitor-keys": "8.27.0"
+                "@typescript-eslint/types": "8.28.0",
+                "@typescript-eslint/visitor-keys": "8.28.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -414,13 +414,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "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==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz",
+            "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "8.27.0",
-                "@typescript-eslint/utils": "8.27.0",
+                "@typescript-eslint/typescript-estree": "8.28.0",
+                "@typescript-eslint/utils": "8.28.0",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^2.0.1"
             },
@@ -437,9 +437,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "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==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz",
+            "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==",
             "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.27.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz",
-            "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz",
+            "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.27.0",
-                "@typescript-eslint/visitor-keys": "8.27.0",
+                "@typescript-eslint/types": "8.28.0",
+                "@typescript-eslint/visitor-keys": "8.28.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.27.0",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz",
-            "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz",
+            "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==",
             "license": "MIT",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "8.27.0",
-                "@typescript-eslint/types": "8.27.0",
-                "@typescript-eslint/typescript-estree": "8.27.0"
+                "@typescript-eslint/scope-manager": "8.28.0",
+                "@typescript-eslint/types": "8.28.0",
+                "@typescript-eslint/typescript-estree": "8.28.0"
             },
             "engines": {
                 "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -499,12 +499,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "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==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz",
+            "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/types": "8.27.0",
+                "@typescript-eslint/types": "8.28.0",
                 "eslint-visitor-keys": "^4.2.0"
             },
             "engines": {
@@ -1642,14 +1642,14 @@
             }
         },
         "node_modules/typescript-eslint": {
-            "version": "8.27.0",
-            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.27.0.tgz",
-            "integrity": "sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==",
+            "version": "8.28.0",
+            "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.28.0.tgz",
+            "integrity": "sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==",
             "license": "MIT",
             "dependencies": {
-                "@typescript-eslint/eslint-plugin": "8.27.0",
-                "@typescript-eslint/parser": "8.27.0",
-                "@typescript-eslint/utils": "8.27.0"
+                "@typescript-eslint/eslint-plugin": "8.28.0",
+                "@typescript-eslint/parser": "8.28.0",
+                "@typescript-eslint/utils": "8.28.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 784df050..e182392e 100644
--- a/modules/ags/config/package.json
+++ b/modules/ags/config/package.json
@@ -10,6 +10,6 @@
         "eslint-plugin-jsdoc": "50.6.9",
         "fzf": "0.5.2",
         "jiti": "2.4.2",
-        "typescript-eslint": "8.27.0"
+        "typescript-eslint": "8.28.0"
     }
 }