Commit a1cf179

Anton Golub <antongolub@antongolub.com>
2025-09-19 20:58:22
chore: up deps, apply npm audit fix (#1336)
* chore: up deps, apply npm audit fix * chore: update zizmor to v1.13.0 * ci: use windows-2025 for runners * ci: extend win tests timeout * ci: rollback to win-2022
1 parent 84e484a
.github/workflows/test.yml
@@ -138,7 +138,7 @@ jobs:
           npm run test:dcr
 
   smoke-win32-node16:
-    runs-on: windows-latest
+    runs-on: windows-2022
     needs: build
     steps:
       - uses: actions/checkout@v5
@@ -156,7 +156,7 @@ jobs:
           name: build
 
       - run: npm run test:smoke:win32
-        timeout-minutes: 1
+        timeout-minutes: 2
         env:
           FORCE_COLOR: 3
 
.github/workflows/zizmor.yml
@@ -27,4 +27,4 @@ jobs:
           enable-cache: false
 
       - name: Run zizmor
-        run: uvx zizmor@1.11.0 .github/workflows -v -p --min-severity=medium
+        run: uvx zizmor@1.13.0 .github/workflows -v -p --min-severity=medium
build/3rd-party-licenses
@@ -30,7 +30,7 @@ braces@3.0.3
   micromatch/braces
   MIT
 
-chalk@5.6.0
+chalk@5.6.2
   <unknown>
   chalk/chalk
   MIT
@@ -60,7 +60,7 @@ fill-range@7.1.1
   jonschlinkert/fill-range
   MIT
 
-fs-extra@11.3.1
+fs-extra@11.3.2
   JP Richardson <jprichardson@gmail.com>
   https://github.com/jprichardson/node-fs-extra
   MIT
build/cli.js
build/index.cjs
@@ -55,11 +55,11 @@ var import_vendor = require("./vendor.cjs");
 // src/versions.ts
 var versions = {
   zx: "8.8.1",
-  chalk: "5.6.0",
+  chalk: "5.6.2",
   depseek: "0.4.3",
   dotenv: "0.2.3",
   fetch: "1.6.7",
-  fs: "11.3.1",
+  fs: "11.3.2",
   glob: "14.1.0",
   minimist: "1.2.8",
   ps: "0.1.4",
build/vendor-extra.cjs
@@ -7151,6 +7151,48 @@ var require_stat = __commonJS({
   }
 });
 
+// node_modules/fs-extra/lib/util/async.js
+var require_async7 = __commonJS({
+  "node_modules/fs-extra/lib/util/async.js"(exports2, module2) {
+    "use strict";
+    function asyncIteratorConcurrentProcess(iterator, fn) {
+      return __async(this, null, function* () {
+        const promises = [];
+        try {
+          for (var iter = __forAwait(iterator), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
+            const item = temp.value;
+            promises.push(
+              fn(item).then(
+                () => null,
+                (err) => err != null ? err : new Error("unknown error")
+              )
+            );
+          }
+        } catch (temp) {
+          error = [temp];
+        } finally {
+          try {
+            more && (temp = iter.return) && (yield temp.call(iter));
+          } finally {
+            if (error)
+              throw error[0];
+          }
+        }
+        yield Promise.all(
+          promises.map(
+            (promise) => promise.then((possibleErr) => {
+              if (possibleErr !== null) throw possibleErr;
+            })
+          )
+        );
+      });
+    }
+    module2.exports = {
+      asyncIteratorConcurrentProcess
+    };
+  }
+});
+
 // node_modules/fs-extra/lib/copy/copy.js
 var require_copy = __commonJS({
   "node_modules/fs-extra/lib/copy/copy.js"(exports2, module2) {
@@ -7161,6 +7203,7 @@ var require_copy = __commonJS({
     var { pathExists } = require_path_exists();
     var { utimesMillis } = require_utimes();
     var stat = require_stat();
+    var { asyncIteratorConcurrentProcess } = require_async7();
     function copy(_0, _1) {
       return __async(this, arguments, function* (src, dest, opts = {}) {
         if (typeof opts === "function") {
@@ -7241,33 +7284,15 @@ var require_copy = __commonJS({
         if (!destStat) {
           yield fs6.mkdir(dest);
         }
-        const promises = [];
-        try {
-          for (var iter = __forAwait(yield fs6.opendir(src)), more, temp, error; more = !(temp = yield iter.next()).done; more = false) {
-            const item = temp.value;
-            const srcItem = path3.join(src, item.name);
-            const destItem = path3.join(dest, item.name);
-            promises.push(
-              runFilter(srcItem, destItem, opts).then((include) => {
-                if (include) {
-                  return stat.checkPaths(srcItem, destItem, "copy", opts).then(({ destStat: destStat2 }) => {
-                    return getStatsAndPerformCopy(destStat2, srcItem, destItem, opts);
-                  });
-                }
-              })
-            );
+        yield asyncIteratorConcurrentProcess(yield fs6.opendir(src), (item) => __async(null, null, function* () {
+          const srcItem = path3.join(src, item.name);
+          const destItem = path3.join(dest, item.name);
+          const include = yield runFilter(srcItem, destItem, opts);
+          if (include) {
+            const { destStat: destStat2 } = yield stat.checkPaths(srcItem, destItem, "copy", opts);
+            yield getStatsAndPerformCopy(destStat2, srcItem, destItem, opts);
           }
-        } catch (temp) {
-          error = [temp];
-        } finally {
-          try {
-            more && (temp = iter.return) && (yield temp.call(iter));
-          } finally {
-            if (error)
-              throw error[0];
-          }
-        }
-        yield Promise.all(promises);
+        }));
         if (!destStat) {
           yield fs6.chmod(dest, srcStat.mode);
         }
src/versions.ts
@@ -14,11 +14,11 @@
 
 export const versions: Record<string, string> = {
   zx: '8.8.1',
-  chalk: '5.6.0',
+  chalk: '5.6.2',
   depseek: '0.4.3',
   dotenv: '0.2.3',
   fetch: '1.6.7',
-  fs: '11.3.1',
+  fs: '11.3.2',
   glob: '14.1.0',
   minimist: '1.2.8',
   ps: '0.1.4',
test/export.test.js
@@ -242,7 +242,6 @@ describe('index', () => {
     assert.equal(typeof index.fs.FileWriteStream, 'function', 'index.fs.FileWriteStream')
     assert.equal(typeof index.fs.ReadStream, 'function', 'index.fs.ReadStream')
     assert.equal(typeof index.fs.Stats, 'function', 'index.fs.Stats')
-    assert.equal(typeof index.fs.Utf8Stream, 'function', 'index.fs.Utf8Stream')
     assert.equal(typeof index.fs.WriteStream, 'function', 'index.fs.WriteStream')
     assert.equal(typeof index.fs._toUnixTimestamp, 'function', 'index.fs._toUnixTimestamp')
     assert.equal(typeof index.fs.access, 'function', 'index.fs.access')
@@ -319,7 +318,6 @@ describe('index', () => {
     assert.equal(typeof index.fs.mkdirs, 'function', 'index.fs.mkdirs')
     assert.equal(typeof index.fs.mkdirsSync, 'function', 'index.fs.mkdirsSync')
     assert.equal(typeof index.fs.mkdtemp, 'function', 'index.fs.mkdtemp')
-    assert.equal(typeof index.fs.mkdtempDisposableSync, 'function', 'index.fs.mkdtempDisposableSync')
     assert.equal(typeof index.fs.mkdtempSync, 'function', 'index.fs.mkdtempSync')
     assert.equal(typeof index.fs.move, 'function', 'index.fs.move')
     assert.equal(typeof index.fs.moveSync, 'function', 'index.fs.moveSync')
.size-limit.json
@@ -33,7 +33,7 @@
       "build/globals.js",
       "build/deno.js"
     ],
-    "limit": "815.20 kB",
+    "limit": "816.00 kB",
     "brotli": false,
     "gzip": false
   },
@@ -47,7 +47,7 @@
   {
     "name": "vendor",
     "path": "build/vendor-*.{cjs,d.ts}",
-    "limit": "766.41 kB",
+    "limit": "767.20 kB",
     "brotli": false,
     "gzip": false
   },
@@ -66,7 +66,7 @@
       "README.md",
       "LICENSE"
     ],
-    "limit": "872.75 kB",
+    "limit": "873.50 kB",
     "brotli": false,
     "gzip": false
   }
package-lock.json
@@ -17,12 +17,12 @@
         "@size-limit/file": "11.2.0",
         "@types/fs-extra": "11.0.4",
         "@types/minimist": "1.2.5",
-        "@types/node": "24.3.0",
+        "@types/node": "24.5.0",
         "@types/which": "3.0.4",
         "@webpod/ingrid": "1.1.1",
         "@webpod/ps": "0.1.4",
         "c8": "10.1.3",
-        "chalk": "5.6.0",
+        "chalk": "5.6.2",
         "create-require": "1.1.1",
         "cronometro": "5.3.0",
         "depseek": "0.4.3",
@@ -36,11 +36,11 @@
         "esbuild-plugin-resolve": "2.0.0",
         "esbuild-plugin-transform-hook": "0.2.0",
         "esbuild-plugin-utils": "0.1.0",
-        "fs-extra": "11.3.1",
+        "fs-extra": "11.3.2",
         "get-port": "7.1.0",
         "globby": "14.1.0",
         "jsr": "0.13.5",
-        "lefthook": "1.12.3",
+        "lefthook": "1.13.0",
         "madge": "8.0.0",
         "minimist": "1.2.8",
         "node-fetch-native": "1.6.7",
@@ -2126,13 +2126,13 @@
       "license": "MIT"
     },
     "node_modules/@types/node": {
-      "version": "24.3.0",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz",
-      "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==",
+      "version": "24.5.0",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.0.tgz",
+      "integrity": "sha512-y1dMvuvJspJiPSDZUQ+WMBvF7dpnEqN4x9DDC9ie5Fs/HUZJA3wFp7EhHoVaKX/iI0cRoECV8X2jL8zi0xrHCg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "undici-types": "~7.10.0"
+        "undici-types": "~7.12.0"
       }
     },
     "node_modules/@types/normalize-package-data": {
@@ -2873,9 +2873,9 @@
       }
     },
     "node_modules/chalk": {
-      "version": "5.6.0",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz",
-      "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==",
+      "version": "5.6.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
+      "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -4183,9 +4183,9 @@
       }
     },
     "node_modules/fs-extra": {
-      "version": "11.3.1",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz",
-      "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==",
+      "version": "11.3.2",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
+      "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -5056,9 +5056,9 @@
       }
     },
     "node_modules/lefthook": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-1.12.3.tgz",
-      "integrity": "sha512-huMg+mGp6wHPjkaLdchuOvxVRMzvz6OVdhivatiH2Qn47O5Zm46jwzbVPYIanX6N/8ZTjGLBxv8tZ0KYmKt/Jg==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-1.13.0.tgz",
+      "integrity": "sha512-6pno+NjfBrKKt3XQmFUvwDdKXzBVh5JvzAIwcCOu9mqg81nAMCZd2FtTuU1fmDzXFNdsxjW8mwwKB+S8t5ucOQ==",
       "dev": true,
       "hasInstallScript": true,
       "license": "MIT",
@@ -5066,22 +5066,22 @@
         "lefthook": "bin/index.js"
       },
       "optionalDependencies": {
-        "lefthook-darwin-arm64": "1.12.3",
-        "lefthook-darwin-x64": "1.12.3",
-        "lefthook-freebsd-arm64": "1.12.3",
-        "lefthook-freebsd-x64": "1.12.3",
-        "lefthook-linux-arm64": "1.12.3",
-        "lefthook-linux-x64": "1.12.3",
-        "lefthook-openbsd-arm64": "1.12.3",
-        "lefthook-openbsd-x64": "1.12.3",
-        "lefthook-windows-arm64": "1.12.3",
-        "lefthook-windows-x64": "1.12.3"
+        "lefthook-darwin-arm64": "1.13.0",
+        "lefthook-darwin-x64": "1.13.0",
+        "lefthook-freebsd-arm64": "1.13.0",
+        "lefthook-freebsd-x64": "1.13.0",
+        "lefthook-linux-arm64": "1.13.0",
+        "lefthook-linux-x64": "1.13.0",
+        "lefthook-openbsd-arm64": "1.13.0",
+        "lefthook-openbsd-x64": "1.13.0",
+        "lefthook-windows-arm64": "1.13.0",
+        "lefthook-windows-x64": "1.13.0"
       }
     },
     "node_modules/lefthook-darwin-arm64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.12.3.tgz",
-      "integrity": "sha512-j1lwaosWRy3vhz8oQgCS1M6EUFN95aIYeNuqkczsBoAA6BDNAmVP1ctYEIYUK4bYaIgENbqbA9prYMAhyzh6Og==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.13.0.tgz",
+      "integrity": "sha512-mhD4zOj2VRx34tptEc/lP643n5YAAVP95f/TiP6geQz4kpLwUrsTwQxzoXUIauU2DGSNbFtp9hVSE++0e4ESEA==",
       "cpu": [
         "arm64"
       ],
@@ -5093,9 +5093,9 @@
       ]
     },
     "node_modules/lefthook-darwin-x64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-1.12.3.tgz",
-      "integrity": "sha512-x6aWFfLQX4m5zQ4X9zh5+hHOE5XTvNjz2zB9DI+xbIBLs2RRg0xJNT3OfgSrBU1QtEBneJ5dRQP5nl47td9GDQ==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-1.13.0.tgz",
+      "integrity": "sha512-uspgWrhh9Xoyb+x0hVeMnYkSA1K/cEov4QHxcBBTIvTvjEuijSLIQEzULsHvg7a6xNM/8E3SBzOwBRK44jM2Mw==",
       "cpu": [
         "x64"
       ],
@@ -5107,9 +5107,9 @@
       ]
     },
     "node_modules/lefthook-freebsd-arm64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.12.3.tgz",
-      "integrity": "sha512-41OmulLqVZ0EOHmmHouJrpL59SwDD7FLoso4RsQVIBPaf8fHacdLo07Ye28VWQ5XolZQvnWcr1YXKo4JhqQMyw==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.13.0.tgz",
+      "integrity": "sha512-UUY+UlGuwAkO8hEY4+SGYfM1OeXSI4i2/8ROwBpu6fz0LrTL1OUYRVhLIRNJvWrF2XabfgXVUrnjGY7YSq4zpg==",
       "cpu": [
         "arm64"
       ],
@@ -5121,9 +5121,9 @@
       ]
     },
     "node_modules/lefthook-freebsd-x64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.12.3.tgz",
-      "integrity": "sha512-741/JRCJIS++hgYEH2uefN4FsH872V7gy2zDhcfQofiZnWP7+qhl4Wmwi8IpjIu4X7hLOC4cT18LOVU5L8KV9Q==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.13.0.tgz",
+      "integrity": "sha512-wdF/Cwmbiblz+UaLb3a0trSKEmaY5z20latrmhim98M1H48iBHhUyUUJWaSEauyFMJWPwu7rSVZl5KktPxCxVA==",
       "cpu": [
         "x64"
       ],
@@ -5135,9 +5135,9 @@
       ]
     },
     "node_modules/lefthook-linux-arm64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-1.12.3.tgz",
-      "integrity": "sha512-BXIy1aDFZmFgmebJliNrEqZfX1lSOD4b/USvANv1UirFrNgTq5SRssd1CKfflT2PwKX6LsJTD4WabLLWZOxp9A==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-1.13.0.tgz",
+      "integrity": "sha512-tpg4pA0JTeLxGAZDFJVOGyIMjQAE7F8HcM31tj+3KOogahspOffpmSoS1SlHzUSZ8Jm+Bvoqcis/sW68HkmWHw==",
       "cpu": [
         "arm64"
       ],
@@ -5149,9 +5149,9 @@
       ]
     },
     "node_modules/lefthook-linux-x64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-1.12.3.tgz",
-      "integrity": "sha512-FRdwdj5jsQAP2eVrtkVUqMqYNCbQ2Ix84izy29/BvLlu/hVypAGbDfUkgFnsmAd6ZsCBeYCEtPuqyg3E3SO0Rg==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-1.13.0.tgz",
+      "integrity": "sha512-5JUhlDaYqt9vBTSQ5gkA00+0ktUSRyL60AhZID6OR4ML39SidzMTu/GrgHscPT4sD3TfSODEdGZ28sNKdLg6jA==",
       "cpu": [
         "x64"
       ],
@@ -5163,9 +5163,9 @@
       ]
     },
     "node_modules/lefthook-openbsd-arm64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-1.12.3.tgz",
-      "integrity": "sha512-tch5wXY4GOjKAYohH7OFoxNdVHuUSYt2Pulo2VTkMYEG8IrvJnRO5MkvgHtKDHzU5mfABQYv5+ccJykDx5hQWA==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-1.13.0.tgz",
+      "integrity": "sha512-UNCoKrbH0Yv61jCCUIPRr7ErS3yYt2VNCFdzLf752O9K0yrfn9FzYUsyxQFEn1Ah/kq+TNgZw90gVLg5fv1t4g==",
       "cpu": [
         "arm64"
       ],
@@ -5177,9 +5177,9 @@
       ]
     },
     "node_modules/lefthook-openbsd-x64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-1.12.3.tgz",
-      "integrity": "sha512-IHbHg/rUFXrAN7LnjcQEtutCHBaD49CZge96Hpk0GZ2eEG5GTCNRnUyEf+Kf3+RTqHFgwtADdpeDa/ZaGZTM4g==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-1.13.0.tgz",
+      "integrity": "sha512-iyvE+jgHYnLvOoHsLykgf98lftewsQzEBciYxygna9sLZ9nLvfbwp9mWUk09yMRmPCFGDeeDecERaUa2SICWLA==",
       "cpu": [
         "x64"
       ],
@@ -5191,9 +5191,9 @@
       ]
     },
     "node_modules/lefthook-windows-arm64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-1.12.3.tgz",
-      "integrity": "sha512-wghcE5TSpb+mbtemUV6uAo9hEK09kxRzhf2nPdeDX+fw42cL2TGZsbaCnDyzaY144C+L2/wEWrLIHJMnZYkuqA==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-1.13.0.tgz",
+      "integrity": "sha512-+u0GyvZouKGcecFsayIbzq1KIoDcrSqVhivLfJUq7vpMXbSHV5HbhrkdkfqkuGjGgGnWulQY29/bDubTQoqfOA==",
       "cpu": [
         "arm64"
       ],
@@ -5205,9 +5205,9 @@
       ]
     },
     "node_modules/lefthook-windows-x64": {
-      "version": "1.12.3",
-      "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-1.12.3.tgz",
-      "integrity": "sha512-7Co/L8e2x2hGC1L33jDJ4ZlTkO3PJm25GOGpLfN1kqwhGB/uzMLeTI/PBczjlIN8isUv26ouNd9rVR7Bibrwyg==",
+      "version": "1.13.0",
+      "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-1.13.0.tgz",
+      "integrity": "sha512-RG8dfOkszk6BaOA7k26NO0R1/vy1tno7/wgdg+Wjt0pYFiBo0DhmPMoAVB4kzjObqBKDd1KWidzsEv4/R0oFIg==",
       "cpu": [
         "x64"
       ],
@@ -7734,9 +7734,9 @@
       }
     },
     "node_modules/undici-types": {
-      "version": "7.10.0",
-      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz",
-      "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==",
+      "version": "7.12.0",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz",
+      "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==",
       "dev": true,
       "license": "MIT"
     },
@@ -7918,9 +7918,9 @@
       }
     },
     "node_modules/vite": {
-      "version": "5.4.19",
-      "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz",
-      "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==",
+      "version": "5.4.20",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz",
+      "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
package.json
@@ -114,12 +114,12 @@
     "@size-limit/file": "11.2.0",
     "@types/fs-extra": "11.0.4",
     "@types/minimist": "1.2.5",
-    "@types/node": "24.3.0",
+    "@types/node": "24.5.0",
     "@types/which": "3.0.4",
     "@webpod/ingrid": "1.1.1",
     "@webpod/ps": "0.1.4",
     "c8": "10.1.3",
-    "chalk": "5.6.0",
+    "chalk": "5.6.2",
     "create-require": "1.1.1",
     "cronometro": "5.3.0",
     "depseek": "0.4.3",
@@ -133,11 +133,11 @@
     "esbuild-plugin-resolve": "2.0.0",
     "esbuild-plugin-transform-hook": "0.2.0",
     "esbuild-plugin-utils": "0.1.0",
-    "fs-extra": "11.3.1",
+    "fs-extra": "11.3.2",
     "get-port": "7.1.0",
     "globby": "14.1.0",
     "jsr": "0.13.5",
-    "lefthook": "1.12.3",
+    "lefthook": "1.13.0",
     "madge": "8.0.0",
     "minimist": "1.2.8",
     "node-fetch-native": "1.6.7",