« get me outta code hell

update node-tap to 19 - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2024-05-31 23:39:26 -0300
committer(quasar) nebula <qznebula@protonmail.com>2024-05-31 23:39:26 -0300
commitf5213cbab4524bbdc73cbebab5ebac614976609d (patch)
treec29af74412a6c2e107f2b19c52c2bfba1881b8dc
parent84954c24f11660d658e6bdd6ed20b15cd0fbaeb9 (diff)
update node-tap to 19
-rw-r--r--package-lock.json2671
-rw-r--r--package.json2
2 files changed, 1454 insertions, 1219 deletions
diff --git a/package-lock.json b/package-lock.json
index 3b85faa9..7d5d3152 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -28,7 +28,7 @@
             },
             "devDependencies": {
                 "chokidar": "^3.5.3",
-                "tap": "^18.4.0",
+                "tap": "^19.0.2",
                 "tcompare": "^6.0.0"
             },
             "engines": {
@@ -211,9 +211,9 @@
             }
         },
         "node_modules/@isaacs/ts-node-temp-fork-for-pr-2009": {
-            "version": "10.9.5",
-            "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.5.tgz",
-            "integrity": "sha512-hEDlwpHhIabtB+Urku8muNMEkGui0LVGlYLS3KoB9QBDf0Pw3r7q0RrfoQmFuk8CvRpGzErO3/vLQd9Ys+/g4g==",
+            "version": "10.9.7",
+            "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.7.tgz",
+            "integrity": "sha512-9f0bhUr9TnwwpgUhEpr3FjxSaH/OHaARkE2F9fM0lS4nIs2GNerrvGwQz493dk0JKlTaGYVrKbq36vA/whZ34g==",
             "dev": true,
             "dependencies": {
                 "@cspotcode/source-map-support": "^0.8.0",
@@ -269,9 +269,9 @@
             }
         },
         "node_modules/@jridgewell/resolve-uri": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
-            "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+            "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
             "dev": true,
             "engines": {
                 "node": ">=6.0.0"
@@ -410,25 +410,25 @@
             }
         },
         "node_modules/@npmcli/agent": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz",
-            "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==",
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz",
+            "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==",
             "dev": true,
             "dependencies": {
                 "agent-base": "^7.1.0",
                 "http-proxy-agent": "^7.0.0",
                 "https-proxy-agent": "^7.0.1",
                 "lru-cache": "^10.0.1",
-                "socks-proxy-agent": "^8.0.1"
+                "socks-proxy-agent": "^8.0.3"
             },
             "engines": {
                 "node": "^16.14.0 || >=18.0.0"
             }
         },
         "node_modules/@npmcli/fs": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz",
-            "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==",
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz",
+            "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==",
             "dev": true,
             "dependencies": {
                 "semver": "^7.3.5"
@@ -438,15 +438,15 @@
             }
         },
         "node_modules/@npmcli/git": {
-            "version": "5.0.4",
-            "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz",
-            "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==",
+            "version": "5.0.7",
+            "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz",
+            "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==",
             "dev": true,
             "dependencies": {
                 "@npmcli/promise-spawn": "^7.0.0",
                 "lru-cache": "^10.0.1",
                 "npm-pick-manifest": "^9.0.0",
-                "proc-log": "^3.0.0",
+                "proc-log": "^4.0.0",
                 "promise-inflight": "^1.0.1",
                 "promise-retry": "^2.0.1",
                 "semver": "^7.3.5",
@@ -481,16 +481,16 @@
             }
         },
         "node_modules/@npmcli/installed-package-contents": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz",
-            "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==",
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz",
+            "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==",
             "dev": true,
             "dependencies": {
                 "npm-bundled": "^3.0.0",
                 "npm-normalize-package-bin": "^3.0.0"
             },
             "bin": {
-                "installed-package-contents": "lib/index.js"
+                "installed-package-contents": "bin/index.js"
             },
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -505,10 +505,74 @@
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
         },
+        "node_modules/@npmcli/package-json": {
+            "version": "5.1.1",
+            "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.1.1.tgz",
+            "integrity": "sha512-uTq5j/UqUzbOaOxVy+osfOhpqOiLfUZ0Ut33UbcyyAPJbZcJsf4Mrsyb8r58FoIFlofw0iOFsuCA/oDK14VDJQ==",
+            "dev": true,
+            "dependencies": {
+                "@npmcli/git": "^5.0.0",
+                "glob": "^10.2.2",
+                "hosted-git-info": "^7.0.0",
+                "json-parse-even-better-errors": "^3.0.0",
+                "normalize-package-data": "^6.0.0",
+                "proc-log": "^4.0.0",
+                "semver": "^7.5.3"
+            },
+            "engines": {
+                "node": "^16.14.0 || >=18.0.0"
+            }
+        },
+        "node_modules/@npmcli/package-json/node_modules/brace-expansion": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+            "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+            "dev": true,
+            "dependencies": {
+                "balanced-match": "^1.0.0"
+            }
+        },
+        "node_modules/@npmcli/package-json/node_modules/glob": {
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
+            "dev": true,
+            "dependencies": {
+                "foreground-child": "^3.1.0",
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
+            },
+            "bin": {
+                "glob": "dist/esm/bin.mjs"
+            },
+            "engines": {
+                "node": ">=16 || 14 >=14.18"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/isaacs"
+            }
+        },
+        "node_modules/@npmcli/package-json/node_modules/minimatch": {
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+            "dev": true,
+            "dependencies": {
+                "brace-expansion": "^2.0.1"
+            },
+            "engines": {
+                "node": ">=16 || 14 >=14.17"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/isaacs"
+            }
+        },
         "node_modules/@npmcli/promise-spawn": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz",
-            "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==",
+            "version": "7.0.2",
+            "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
+            "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
             "dev": true,
             "dependencies": {
                 "which": "^4.0.0"
@@ -541,16 +605,25 @@
                 "node": "^16.13.0 || >=18.0.0"
             }
         },
+        "node_modules/@npmcli/redact": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz",
+            "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==",
+            "dev": true,
+            "engines": {
+                "node": "^16.14.0 || >=18.0.0"
+            }
+        },
         "node_modules/@npmcli/run-script": {
-            "version": "7.0.3",
-            "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.3.tgz",
-            "integrity": "sha512-ZMWGLHpzMq3rBGIwPyeaoaleaLMvrBrH8nugHxTi5ACkJZXTxXPtVuEH91ifgtss5hUwJQ2VDnzDBWPmz78rvg==",
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz",
+            "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==",
             "dev": true,
             "dependencies": {
                 "@npmcli/node-gyp": "^3.0.0",
+                "@npmcli/package-json": "^5.0.0",
                 "@npmcli/promise-spawn": "^7.0.0",
                 "node-gyp": "^10.0.0",
-                "read-package-json-fast": "^3.0.0",
                 "which": "^4.0.0"
             },
             "engines": {
@@ -592,72 +665,98 @@
             }
         },
         "node_modules/@sigstore/bundle": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz",
-            "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==",
+            "version": "2.3.2",
+            "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz",
+            "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==",
             "dev": true,
             "dependencies": {
-                "@sigstore/protobuf-specs": "^0.2.1"
+                "@sigstore/protobuf-specs": "^0.3.2"
             },
             "engines": {
                 "node": "^16.14.0 || >=18.0.0"
             }
         },
+        "node_modules/@sigstore/core": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz",
+            "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==",
+            "dev": true,
+            "engines": {
+                "node": "^16.14.0 || >=18.0.0"
+            }
+        },
         "node_modules/@sigstore/protobuf-specs": {
-            "version": "0.2.1",
-            "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz",
-            "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==",
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz",
+            "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==",
             "dev": true,
             "engines": {
-                "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+                "node": "^16.14.0 || >=18.0.0"
             }
         },
         "node_modules/@sigstore/sign": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.0.tgz",
-            "integrity": "sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==",
+            "version": "2.3.2",
+            "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz",
+            "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==",
             "dev": true,
             "dependencies": {
-                "@sigstore/bundle": "^2.1.0",
-                "@sigstore/protobuf-specs": "^0.2.1",
-                "make-fetch-happen": "^13.0.0"
+                "@sigstore/bundle": "^2.3.2",
+                "@sigstore/core": "^1.0.0",
+                "@sigstore/protobuf-specs": "^0.3.2",
+                "make-fetch-happen": "^13.0.1",
+                "proc-log": "^4.2.0",
+                "promise-retry": "^2.0.1"
             },
             "engines": {
                 "node": "^16.14.0 || >=18.0.0"
             }
         },
         "node_modules/@sigstore/tuf": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz",
-            "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==",
+            "version": "2.3.4",
+            "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz",
+            "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==",
+            "dev": true,
+            "dependencies": {
+                "@sigstore/protobuf-specs": "^0.3.2",
+                "tuf-js": "^2.2.1"
+            },
+            "engines": {
+                "node": "^16.14.0 || >=18.0.0"
+            }
+        },
+        "node_modules/@sigstore/verify": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz",
+            "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==",
             "dev": true,
             "dependencies": {
-                "@sigstore/protobuf-specs": "^0.2.1",
-                "tuf-js": "^2.1.0"
+                "@sigstore/bundle": "^2.3.2",
+                "@sigstore/core": "^1.1.0",
+                "@sigstore/protobuf-specs": "^0.3.2"
             },
             "engines": {
                 "node": "^16.14.0 || >=18.0.0"
             }
         },
         "node_modules/@tapjs/after": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.17.tgz",
-            "integrity": "sha512-14qeP+mHZ8nIMDGtdCwTgvKclLlHxfARMTasb9fw//tmF/8ZDZhTemtCDxAP75wihxy5P7nzVZo/6TpVeOZrwg==",
+            "version": "1.1.24",
+            "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.24.tgz",
+            "integrity": "sha512-Qys3CtftkfHGC7thDGm9TBzRCBLAoJKrXufF1zQxI1oNUjclWZP/s8CtHH0mwUTISOTehmBLV3wPPHSslD67Ng==",
             "dev": true,
             "dependencies": {
-                "is-actual-promise": "^1.0.0"
+                "is-actual-promise": "^1.0.1"
             },
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/after-each": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.1.17.tgz",
-            "integrity": "sha512-ia8sr00Wilni+2+wO4MKYCYikeRwUC41HamV8EPN63R2UmiBEOe/cMSf+KYADIh56JvxAiH7Xa0+GSFU+N2FQQ==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-2.0.1.tgz",
+            "integrity": "sha512-3JXIJ4g9LPjyXmn/1VuIMC0vh7uBgUpQPksjffxv0rL8wq4C8lvmqt8Qu/fVImJucqzA+WrRqVG1b2Ab0ocDOw==",
             "dev": true,
             "dependencies": {
                 "function-loop": "^4.0.0"
@@ -666,18 +765,18 @@
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/asserts": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.1.17.tgz",
-            "integrity": "sha512-eKmbWBORDXu9bUHtPTu7qFrXNj5UeeH2nABJeP9BGHIn2ydmTgMEWCO3E+ljf7tisHchY5/x672lr99+O/mbTQ==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-2.0.1.tgz",
+            "integrity": "sha512-v2xYDLUwMGt8pzoY5LIjDCaw2NM+G01NW4pC3RcpsZLZbzQv1x/phi2RAX0ixI0nCmZZybqRygFKuMcJamS+gg==",
             "dev": true,
             "dependencies": {
-                "@tapjs/stack": "1.2.7",
-                "is-actual-promise": "^1.0.0",
-                "tcompare": "6.4.5",
+                "@tapjs/stack": "2.0.1",
+                "is-actual-promise": "^1.0.1",
+                "tcompare": "7.0.1",
                 "trivial-deferred": "^2.0.0"
             },
             "engines": {
@@ -687,28 +786,41 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
+            }
+        },
+        "node_modules/@tapjs/asserts/node_modules/tcompare": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+            "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+            "dev": true,
+            "dependencies": {
+                "diff": "^5.2.0",
+                "react-element-to-jsx-string": "^15.0.0"
+            },
+            "engines": {
+                "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             }
         },
         "node_modules/@tapjs/before": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.1.17.tgz",
-            "integrity": "sha512-pAmEAIMIqF9MPNUgEsnuWCM00iD/FJOX0P5eXSsWexWHjuZAkv5tIT/4qpXO9KYj+9c51Lh+7YSY2Xvk1Jjolw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-2.0.1.tgz",
+            "integrity": "sha512-GgnlWPm2PbuyYuG4gkkO2KAvT/BbGnpKs60U4XzPSJ2w73Qc/IYWP0Kz6qfCWongpiLteoco67M89ujUQApYJw==",
             "dev": true,
             "dependencies": {
-                "is-actual-promise": "^1.0.0"
+                "is-actual-promise": "^1.0.1"
             },
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/before-each": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.1.17.tgz",
-            "integrity": "sha512-d2Um3Y2j0m563QNsSxczh+QeSg5sBngnBFGOelUtQVqmq91oNWU/7mY1pwN6ip8mMIQYD75CIhq5/Z57DGomWQ==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-2.0.1.tgz",
+            "integrity": "sha512-gG1nYkvCHtWwhkueulO475KczdQZ3vBRgdkta/Qi42ZjZo6SNhYVjNc/+LRGV5vZoESrvgSd+JrDRGufd+j43w==",
             "dev": true,
             "dependencies": {
                 "function-loop": "^4.0.0"
@@ -717,21 +829,21 @@
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/config": {
-            "version": "2.4.14",
-            "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.4.14.tgz",
-            "integrity": "sha512-dkjPVJGbLJC9BxCAxudAGiijnKc6XcQbpBSMAGJ/+VoRSqXlPkMWz0d8Ad3rNt7s+g2GBEWBx1kV7wcKtLlxmw==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-3.0.1.tgz",
+            "integrity": "sha512-gAYFzErdSuPQ3afW6iRR99hiJmRLU+x9T+NE89z9UM45iPxglWLrRv1PFfh3tmtX6rpzwD5RY4/FVPcP2+/1LQ==",
             "dev": true,
             "dependencies": {
-                "@tapjs/core": "1.4.6",
-                "@tapjs/test": "1.3.17",
+                "@tapjs/core": "2.0.1",
+                "@tapjs/test": "2.0.1",
                 "chalk": "^5.2.0",
-                "jackspeak": "^2.3.6",
+                "jackspeak": "^3.1.2",
                 "polite-json": "^4.0.1",
-                "tap-yaml": "2.2.1",
+                "tap-yaml": "2.2.2",
                 "walk-up-path": "^3.0.1"
             },
             "engines": {
@@ -741,8 +853,8 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6",
-                "@tapjs/test": "1.3.17"
+                "@tapjs/core": "2.0.1",
+                "@tapjs/test": "2.0.1"
             }
         },
         "node_modules/@tapjs/config/node_modules/chalk": {
@@ -758,35 +870,48 @@
             }
         },
         "node_modules/@tapjs/core": {
-            "version": "1.4.6",
-            "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.4.6.tgz",
-            "integrity": "sha512-cAKtdGJslrziwi/RJBU7jF930P/eSsemv295t6yLekNVP0XUCNtLFYirxuS1Xwob0nt0g/k+94xXB7o1wdTQvA==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-2.0.1.tgz",
+            "integrity": "sha512-q+8d+ohw5kudktIqgP5ETBcPWAPip+kMIxs2eL2G3dV+7Gc8WrH43cCPrbSGPRITIOSIDPrtpQZEcZwQNqDdQw==",
             "dev": true,
             "dependencies": {
-                "@tapjs/processinfo": "^3.1.6",
-                "@tapjs/stack": "1.2.7",
-                "@tapjs/test": "1.3.17",
+                "@tapjs/processinfo": "^3.1.7",
+                "@tapjs/stack": "2.0.1",
+                "@tapjs/test": "2.0.1",
                 "async-hook-domain": "^4.0.1",
-                "diff": "^5.1.0",
-                "is-actual-promise": "^1.0.0",
-                "minipass": "^7.0.3",
+                "diff": "^5.2.0",
+                "is-actual-promise": "^1.0.1",
+                "minipass": "^7.0.4",
                 "signal-exit": "4.1",
-                "tap-parser": "15.3.1",
-                "tap-yaml": "2.2.1",
-                "tcompare": "6.4.5",
+                "tap-parser": "16.0.1",
+                "tap-yaml": "2.2.2",
+                "tcompare": "7.0.1",
                 "trivial-deferred": "^2.0.0"
             },
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             }
         },
+        "node_modules/@tapjs/core/node_modules/tcompare": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+            "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+            "dev": true,
+            "dependencies": {
+                "diff": "^5.2.0",
+                "react-element-to-jsx-string": "^15.0.0"
+            },
+            "engines": {
+                "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+            }
+        },
         "node_modules/@tapjs/error-serdes": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-1.2.1.tgz",
-            "integrity": "sha512-/7eLEcrGo+Qz3eWrjkhDC+VSEOjabkkzr9eRADeU+OLFeZaik8L/GRk0SGhnp4YsQkv0jcNV00A42bEx2HIZcw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-2.0.1.tgz",
+            "integrity": "sha512-P+M4rtcfkDsUveKKmoRNF+07xpbPnRY5KrstIUOnyn483clQ7BJhsnWr162yYNCsyOj4zEfZmAJI1f8Bi7h/ZA==",
             "dev": true,
             "dependencies": {
-                "minipass": "^7.0.3"
+                "minipass": "^7.0.4"
             },
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
@@ -796,9 +921,9 @@
             }
         },
         "node_modules/@tapjs/filter": {
-            "version": "1.2.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.2.17.tgz",
-            "integrity": "sha512-ytsqoPThV92ML1+M+cHlhAS7nOQpDNRBJiPqw20/GmNeoQXsDzVUlWR89DP3WNNUPrr/c1pCVr9XHVhCIeYk0w==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-2.0.1.tgz",
+            "integrity": "sha512-muKEeXK7Tz6VR4hjXfT2qXPvjYES575mtiRerjHf+8qP8D7MvmC8qDZJjzFdo1nZHKhF8snvFosIVuI1BAhvsw==",
             "dev": true,
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
@@ -807,13 +932,13 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/fixture": {
-            "version": "1.2.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.2.17.tgz",
-            "integrity": "sha512-eOOQxtsEcQ/sBxaZhpqdF9DCNxXAvLuiE5HgyL6d1eB4eceu57uIUKK7NDtFVv+vlbQH/NoiSTxmN/IBRbKT8w==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-2.0.1.tgz",
+            "integrity": "sha512-MLgEwsBlCD69iUbZcnKBehP2js5cV4p5GrFoOKSudMuH2DQJInaF/g2bkijue61cVZwPj/MRPCqAlkwA94epjg==",
             "dev": true,
             "dependencies": {
                 "mkdirp": "^3.0.0",
@@ -826,7 +951,7 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/fixture/node_modules/brace-expansion": {
@@ -839,31 +964,31 @@
             }
         },
         "node_modules/@tapjs/fixture/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/@tapjs/fixture/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -876,9 +1001,9 @@
             }
         },
         "node_modules/@tapjs/fixture/node_modules/rimraf": {
-            "version": "5.0.5",
-            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-            "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+            "version": "5.0.7",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+            "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
             "dev": true,
             "dependencies": {
                 "glob": "^10.3.7"
@@ -887,36 +1012,36 @@
                 "rimraf": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=14"
+                "node": ">=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/@tapjs/intercept": {
-            "version": "1.2.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.2.17.tgz",
-            "integrity": "sha512-CNuYBxiFBMNALS1PxH3yGI10H8ObxOoD67C2xGWyzXeYrPJ/R4x31Sda9bqaoK3uf/vj28bC9kSECCFjRsNAEg==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-2.0.1.tgz",
+            "integrity": "sha512-BZgXE3zCAbv4lfbph1r85gihtI3kXltHlFQ8Bf3Yy9fx27DKQlBvXnD7T69ke8kQLRzhz+wTMcR/mcQjo1fa7w==",
             "dev": true,
             "dependencies": {
-                "@tapjs/after": "1.1.17",
-                "@tapjs/stack": "1.2.7"
+                "@tapjs/after": "1.1.24",
+                "@tapjs/stack": "2.0.1"
             },
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/mock": {
-            "version": "1.2.15",
-            "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.2.15.tgz",
-            "integrity": "sha512-uXfVNDAMAbCGOu46B9jbryTau2pLSQjCdWnkAm/OUgZh/OtO0i7OORz9HdEPfEF2tuy1tLo9+vsCZm3lPU5F7w==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-2.0.1.tgz",
+            "integrity": "sha512-i1vkwNgO7uEuQW3+hTuE2L64aC9xk0cC3PtC6DZKqyApk2IstNgoIS38nfsI6v2kvEgZNuWlsNcRAYNDOIEhzA==",
             "dev": true,
             "dependencies": {
-                "@tapjs/after": "1.1.17",
-                "@tapjs/stack": "1.2.7",
+                "@tapjs/after": "1.1.24",
+                "@tapjs/stack": "2.0.1",
                 "resolve-import": "^1.4.5",
                 "walk-up-path": "^3.0.1"
             },
@@ -927,18 +1052,18 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/node-serialize": {
-            "version": "1.2.6",
-            "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.2.6.tgz",
-            "integrity": "sha512-xj1OJEsdTr0pQFlirfe/apN0dHUCMCx2Nm5H3SoiSOW4D1/FUKS65VZpWgo3mXMPxRyb/2T1DH3xON1eSGq4ww==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-2.0.1.tgz",
+            "integrity": "sha512-1GtHDa7AXpk8y08llIPfUKRTDNsq+BhXxz7wiIfVEAOEB09kGyfpWteOg+cmvb+aHU1Ays3z+medXTIBm0D5Kg==",
             "dev": true,
             "dependencies": {
-                "@tapjs/error-serdes": "1.2.1",
-                "@tapjs/stack": "1.2.7",
-                "tap-parser": "15.3.1"
+                "@tapjs/error-serdes": "2.0.1",
+                "@tapjs/stack": "2.0.1",
+                "tap-parser": "16.0.1"
             },
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
@@ -947,13 +1072,13 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/processinfo": {
-            "version": "3.1.6",
-            "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.6.tgz",
-            "integrity": "sha512-ktDsaf79wJsLaoG1Pp+stHSRf6a1k/JydoRAaYVG5iJnd3DooL6yewZsciUi2yiN/WQc5tAXCIFTXL4uXGB8LA==",
+            "version": "3.1.7",
+            "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.7.tgz",
+            "integrity": "sha512-SI5RJQ5HnUKEWnHSAF6hOm6XPdnjZ+CJzIaVHdFebed8iDAPTqb+IwMVu9yq9+VQ7FRsMMlgLL2SW4rss2iJbQ==",
             "dev": true,
             "dependencies": {
                 "pirates": "^4.0.5",
@@ -966,24 +1091,24 @@
             }
         },
         "node_modules/@tapjs/reporter": {
-            "version": "1.3.15",
-            "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.3.15.tgz",
-            "integrity": "sha512-us1vXd6TW1V8wJxxnP2a8DNSP1WFTpODyYukqWg7ym5nCalREYnz2MFsn65rRNu/xJlmqsmv+9P63rupud7Zlg==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-2.0.1.tgz",
+            "integrity": "sha512-fCdl4vg8vnlqIYtTQ9dc3zOqeXrA5QbATbT4dsPIiPuCM3gvKTbntaNBeaWWZkPx697Dj+b8TIxT/xhNMNv7jQ==",
             "dev": true,
             "dependencies": {
-                "@tapjs/config": "2.4.14",
-                "@tapjs/stack": "1.2.7",
+                "@tapjs/config": "3.0.1",
+                "@tapjs/stack": "2.0.1",
                 "chalk": "^5.2.0",
                 "ink": "^4.4.1",
-                "minipass": "^7.0.3",
+                "minipass": "^7.0.4",
                 "ms": "^2.1.3",
                 "patch-console": "^2.0.0",
                 "prismjs-terminal": "^1.2.3",
                 "react": "^18.2.0",
                 "string-length": "^6.0.0",
-                "tap-parser": "15.3.1",
-                "tap-yaml": "2.2.1",
-                "tcompare": "6.4.5"
+                "tap-parser": "16.0.1",
+                "tap-yaml": "2.2.2",
+                "tcompare": "7.0.1"
             },
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
@@ -992,7 +1117,7 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/reporter/node_modules/chalk": {
@@ -1013,36 +1138,49 @@
             "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
             "dev": true
         },
+        "node_modules/@tapjs/reporter/node_modules/tcompare": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+            "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+            "dev": true,
+            "dependencies": {
+                "diff": "^5.2.0",
+                "react-element-to-jsx-string": "^15.0.0"
+            },
+            "engines": {
+                "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+            }
+        },
         "node_modules/@tapjs/run": {
-            "version": "1.4.16",
-            "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.4.16.tgz",
-            "integrity": "sha512-ZTESjBDj5SitZgWz2hQdzfBoxgaFs89jQjWzqobcdfro0iF7TVRpSrvpz9GTMdo2Tu9aeFfMNfmaAtwNWnDabw==",
-            "dev": true,
-            "dependencies": {
-                "@tapjs/after": "1.1.17",
-                "@tapjs/before": "1.1.17",
-                "@tapjs/config": "2.4.14",
-                "@tapjs/processinfo": "^3.1.6",
-                "@tapjs/reporter": "1.3.15",
-                "@tapjs/spawn": "1.1.17",
-                "@tapjs/stdin": "1.1.17",
-                "@tapjs/test": "1.3.17",
-                "c8": "^8.0.1",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-2.0.2.tgz",
+            "integrity": "sha512-2hPGlabqbLb3hh4BHHvwE8R9a9OiWumkCkHw5QQUZurDsVOpB94FfteqW9mktTVjZJnN0go+sN3GN2jZUaPWGQ==",
+            "dev": true,
+            "dependencies": {
+                "@tapjs/after": "1.1.24",
+                "@tapjs/before": "2.0.1",
+                "@tapjs/config": "3.0.1",
+                "@tapjs/processinfo": "^3.1.7",
+                "@tapjs/reporter": "2.0.1",
+                "@tapjs/spawn": "2.0.1",
+                "@tapjs/stdin": "2.0.1",
+                "@tapjs/test": "2.0.1",
+                "c8": "^9.1.0",
                 "chalk": "^5.3.0",
-                "chokidar": "^3.5.3",
+                "chokidar": "^3.6.0",
                 "foreground-child": "^3.1.1",
-                "glob": "^10.3.10",
-                "minipass": "^7.0.3",
+                "glob": "^10.3.16",
+                "minipass": "^7.0.4",
                 "mkdirp": "^3.0.1",
                 "opener": "^1.5.2",
-                "pacote": "^17.0.3",
+                "pacote": "^17.0.6",
                 "resolve-import": "^1.4.5",
                 "rimraf": "^5.0.5",
-                "semver": "^7.5.4",
+                "semver": "^7.6.0",
                 "signal-exit": "^4.1.0",
-                "tap-parser": "15.3.1",
-                "tap-yaml": "2.2.1",
-                "tcompare": "6.4.5",
+                "tap-parser": "16.0.1",
+                "tap-yaml": "2.2.2",
+                "tcompare": "7.0.1",
                 "trivial-deferred": "^2.0.0",
                 "which": "^4.0.0"
             },
@@ -1056,7 +1194,7 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/run/node_modules/brace-expansion": {
@@ -1081,22 +1219,22 @@
             }
         },
         "node_modules/@tapjs/run/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
@@ -1112,9 +1250,9 @@
             }
         },
         "node_modules/@tapjs/run/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -1127,9 +1265,9 @@
             }
         },
         "node_modules/@tapjs/run/node_modules/rimraf": {
-            "version": "5.0.5",
-            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-            "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+            "version": "5.0.7",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+            "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
             "dev": true,
             "dependencies": {
                 "glob": "^10.3.7"
@@ -1138,12 +1276,25 @@
                 "rimraf": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=14"
+                "node": ">=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
+        "node_modules/@tapjs/run/node_modules/tcompare": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+            "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+            "dev": true,
+            "dependencies": {
+                "diff": "^5.2.0",
+                "react-element-to-jsx-string": "^15.0.0"
+            },
+            "engines": {
+                "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
+            }
+        },
         "node_modules/@tapjs/run/node_modules/which": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
@@ -1160,13 +1311,13 @@
             }
         },
         "node_modules/@tapjs/snapshot": {
-            "version": "1.2.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.2.17.tgz",
-            "integrity": "sha512-xDHys854ZA8s/1uCkE5PgBz4H1vYKChD6a4xjLVkaoRxpBHVp/IJZCD+8d69DRGnyuA4x2MGh0JLClTA9bLGrA==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-2.0.1.tgz",
+            "integrity": "sha512-ZnbCxL+9fiJ38tec6wvRtRBZz9ChRUq0Bov7dltdZMNkXqudKyB+Zzbg25bqDEIgcczyp6A9hOwTX6VybDGqpg==",
             "dev": true,
             "dependencies": {
-                "is-actual-promise": "^1.0.0",
-                "tcompare": "6.4.5",
+                "is-actual-promise": "^1.0.1",
+                "tcompare": "7.0.1",
                 "trivial-deferred": "^2.0.0"
             },
             "engines": {
@@ -1176,25 +1327,38 @@
                 "url": "https://github.com/sponsors/isaacs"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
+            }
+        },
+        "node_modules/@tapjs/snapshot/node_modules/tcompare": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+            "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+            "dev": true,
+            "dependencies": {
+                "diff": "^5.2.0",
+                "react-element-to-jsx-string": "^15.0.0"
+            },
+            "engines": {
+                "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             }
         },
         "node_modules/@tapjs/spawn": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.1.17.tgz",
-            "integrity": "sha512-Bbyxd91bgXEcglvXYKrRl2MaNHk00RajTZJ1kKe3Scr1ivaYv0maE6ZInAl4UE0a4SJl4Dskec+uKoZY3qGUYQ==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-2.0.1.tgz",
+            "integrity": "sha512-3VaQKJjHV5frMZj3Ef+QlJyB6b7VsGMil223zAEz8Ttgy2hDYtcb29nvsLPUcowFyOUrsydnXEnHgpR79wEPOA==",
             "dev": true,
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/stack": {
-            "version": "1.2.7",
-            "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-1.2.7.tgz",
-            "integrity": "sha512-7qUDWDmd+y7ZQ0vTrDTvFlWnJ+ND32NemS5HVuT1ZggHtBwJ62PQHIyCx/B5RopETBb6NvFPfUE21yTiex9Jkw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-2.0.1.tgz",
+            "integrity": "sha512-3rKbZkRkLeJl9ilV/6b80YfI4C4+OYf7iEz5/d0MIVhmVvxv0ttIy5JnZutAc4Gy9eRp5Ne5UTAIFOVY5k36cg==",
             "dev": true,
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
@@ -1204,48 +1368,49 @@
             }
         },
         "node_modules/@tapjs/stdin": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.1.17.tgz",
-            "integrity": "sha512-mDutFFPDnlVM2oYDAfyYKA+fC+aEiyz5n08D8x6YAbwZNbTIVp+h6ucyp7ygJ04fshd4l3s1HUmCZLSmHb2xEw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-2.0.1.tgz",
+            "integrity": "sha512-5Oe13Fzpnt9seAi8h3bsMxtJp8S+DQI6ncBD9JBcS91XKLbqyKrb1bNzeXQN2PrHBs6Atw8cOzFZh0TjL+bIaA==",
             "dev": true,
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/test": {
-            "version": "1.3.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.3.17.tgz",
-            "integrity": "sha512-yQ4uHC2GaDS+Gr5qwx9uMGxqvpYgnlVY+QexBReSeYZthWIN0KD8HDvnVt4An5Sx/Qhd7UlnNpNMBd6AkvPEew==",
-            "dev": true,
-            "dependencies": {
-                "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5",
-                "@tapjs/after": "1.1.17",
-                "@tapjs/after-each": "1.1.17",
-                "@tapjs/asserts": "1.1.17",
-                "@tapjs/before": "1.1.17",
-                "@tapjs/before-each": "1.1.17",
-                "@tapjs/filter": "1.2.17",
-                "@tapjs/fixture": "1.2.17",
-                "@tapjs/intercept": "1.2.17",
-                "@tapjs/mock": "1.2.15",
-                "@tapjs/node-serialize": "1.2.6",
-                "@tapjs/snapshot": "1.2.17",
-                "@tapjs/spawn": "1.1.17",
-                "@tapjs/stdin": "1.1.17",
-                "@tapjs/typescript": "1.3.6",
-                "@tapjs/worker": "1.1.17",
-                "glob": "^10.3.10",
-                "jackspeak": "^2.3.6",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-2.0.1.tgz",
+            "integrity": "sha512-PKazf7r4+bLFATML2f/h8glGcSirXmzXUYlhFuxb4xHoOhHojyKgo1p8kSj+Ksxb3hVSCQlvyXgM8QYYaoMwog==",
+            "dev": true,
+            "dependencies": {
+                "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.7",
+                "@tapjs/after": "1.1.24",
+                "@tapjs/after-each": "2.0.1",
+                "@tapjs/asserts": "2.0.1",
+                "@tapjs/before": "2.0.1",
+                "@tapjs/before-each": "2.0.1",
+                "@tapjs/filter": "2.0.1",
+                "@tapjs/fixture": "2.0.1",
+                "@tapjs/intercept": "2.0.1",
+                "@tapjs/mock": "2.0.1",
+                "@tapjs/node-serialize": "2.0.1",
+                "@tapjs/snapshot": "2.0.1",
+                "@tapjs/spawn": "2.0.1",
+                "@tapjs/stdin": "2.0.1",
+                "@tapjs/typescript": "1.4.6",
+                "@tapjs/worker": "2.0.1",
+                "glob": "^10.3.16",
+                "jackspeak": "^3.1.2",
                 "mkdirp": "^3.0.0",
                 "resolve-import": "^1.4.5",
                 "rimraf": "^5.0.5",
                 "sync-content": "^1.0.1",
-                "tap-parser": "15.3.1",
-                "tshy": "^1.2.2",
-                "typescript": "5.2"
+                "tap-parser": "16.0.1",
+                "tshy": "^1.14.0",
+                "typescript": "5.4",
+                "walk-up-path": "^3.0.1"
             },
             "bin": {
                 "generate-tap-test-class": "scripts/build.mjs"
@@ -1254,7 +1419,7 @@
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/test/node_modules/brace-expansion": {
@@ -1267,31 +1432,31 @@
             }
         },
         "node_modules/@tapjs/test/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/@tapjs/test/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -1304,9 +1469,9 @@
             }
         },
         "node_modules/@tapjs/test/node_modules/rimraf": {
-            "version": "5.0.5",
-            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-            "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+            "version": "5.0.7",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+            "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
             "dev": true,
             "dependencies": {
                 "glob": "^10.3.7"
@@ -1315,61 +1480,61 @@
                 "rimraf": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=14"
+                "node": ">=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/@tapjs/typescript": {
-            "version": "1.3.6",
-            "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.3.6.tgz",
-            "integrity": "sha512-bHqQb06HcD1vFvSwElH0WK4cnCNthvA5OX/KBs5w1TNFHIeRHemp/hsSnGSNDwYwDETuOxD68rDZNTpNbzysBg==",
+            "version": "1.4.6",
+            "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.4.6.tgz",
+            "integrity": "sha512-6jxUQ7Mdb+Y2q8RJcwgZZ6dCR+X2u3hCL+xb1GDAtO7k1+B6z2b+z+I+FdhuO4YgrP0SLRjocL5rJM/xi9K7qw==",
             "dev": true,
             "dependencies": {
-                "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5"
+                "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.7"
             },
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tapjs/worker": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.1.17.tgz",
-            "integrity": "sha512-DCRzEBT+OgP518rQqzlX6KawvGTegkeEjPVa/TB6Iifj8WOHJ+XtunkR7riIRGEoCEOMD49DCJXj70c+XP0jNw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-2.0.1.tgz",
+            "integrity": "sha512-wegz8IxNEPIIAA+R76/avZgNmZ4iC7QGFbtXKGBU962/1lXTITxshRV6e21r0IBa7YLkSVgDuVSVB3+Qzve0Yg==",
             "dev": true,
             "engines": {
                 "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20"
             },
             "peerDependencies": {
-                "@tapjs/core": "1.4.6"
+                "@tapjs/core": "2.0.1"
             }
         },
         "node_modules/@tsconfig/node14": {
-            "version": "14.1.0",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.0.tgz",
-            "integrity": "sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==",
+            "version": "14.1.2",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.2.tgz",
+            "integrity": "sha512-1vncsbfCZ3TBLPxesRYz02Rn7SNJfbLoDVkcZ7F/ixOV6nwxwgdhD1mdPcc5YQ413qBJ8CvMxXMFfJ7oawjo7Q==",
             "dev": true
         },
         "node_modules/@tsconfig/node16": {
-            "version": "16.1.1",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.1.tgz",
-            "integrity": "sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==",
+            "version": "16.1.3",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.3.tgz",
+            "integrity": "sha512-9nTOUBn+EMKO6rtSZJk+DcqsfgtlERGT9XPJ5PRj/HNENPCBY1yu/JEj5wT6GLtbCLBO2k46SeXDaY0pjMqypw==",
             "dev": true
         },
         "node_modules/@tsconfig/node18": {
-            "version": "18.2.2",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz",
-            "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==",
+            "version": "18.2.4",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.4.tgz",
+            "integrity": "sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==",
             "dev": true
         },
         "node_modules/@tsconfig/node20": {
-            "version": "20.1.2",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz",
-            "integrity": "sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==",
+            "version": "20.1.4",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz",
+            "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==",
             "dev": true
         },
         "node_modules/@tufjs/canonical-json": {
@@ -1382,13 +1547,13 @@
             }
         },
         "node_modules/@tufjs/models": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz",
-            "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz",
+            "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==",
             "dev": true,
             "dependencies": {
                 "@tufjs/canonical-json": "2.0.0",
-                "minimatch": "^9.0.3"
+                "minimatch": "^9.0.4"
             },
             "engines": {
                 "node": "^16.14.0 || >=18.0.0"
@@ -1404,9 +1569,9 @@
             }
         },
         "node_modules/@tufjs/models/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -1425,9 +1590,9 @@
             "dev": true
         },
         "node_modules/@types/node": {
-            "version": "20.10.6",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz",
-            "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==",
+            "version": "20.13.0",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.13.0.tgz",
+            "integrity": "sha512-FM6AOb3khNkNIXPnHFDYaHerSv8uN22C91z098AnGccVu+Pcdhi+pNUFDi0iLmPIsVE0JBD0KVS7mzUYt4nRzQ==",
             "dev": true,
             "peer": true,
             "dependencies": {
@@ -1463,18 +1628,18 @@
             }
         },
         "node_modules/acorn-walk": {
-            "version": "8.3.1",
-            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz",
-            "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==",
+            "version": "8.3.2",
+            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+            "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
             "dev": true,
             "engines": {
                 "node": ">=0.4.0"
             }
         },
         "node_modules/agent-base": {
-            "version": "7.1.0",
-            "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
-            "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+            "version": "7.1.1",
+            "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+            "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
             "dev": true,
             "dependencies": {
                 "debug": "^4.3.4"
@@ -1521,24 +1686,9 @@
             }
         },
         "node_modules/ansi-escapes": {
-            "version": "6.2.0",
-            "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
-            "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
-            "dev": true,
-            "dependencies": {
-                "type-fest": "^3.0.0"
-            },
-            "engines": {
-                "node": ">=14.16"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/sindresorhus"
-            }
-        },
-        "node_modules/ansi-escapes/node_modules/type-fest": {
-            "version": "3.13.1",
-            "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
-            "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+            "version": "6.2.1",
+            "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz",
+            "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==",
             "dev": true,
             "engines": {
                 "node": ">=14.16"
@@ -1649,29 +1799,19 @@
                 "node": ">=8"
             }
         },
-        "node_modules/builtins": {
-            "version": "5.0.1",
-            "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
-            "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
-            "dev": true,
-            "dependencies": {
-                "semver": "^7.0.0"
-            }
-        },
         "node_modules/c8": {
-            "version": "8.0.1",
-            "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz",
-            "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==",
+            "version": "9.1.0",
+            "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz",
+            "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==",
             "dev": true,
             "dependencies": {
                 "@bcoe/v8-coverage": "^0.2.3",
                 "@istanbuljs/schema": "^0.1.3",
                 "find-up": "^5.0.0",
-                "foreground-child": "^2.0.0",
+                "foreground-child": "^3.1.1",
                 "istanbul-lib-coverage": "^3.2.0",
                 "istanbul-lib-report": "^3.0.1",
                 "istanbul-reports": "^3.1.6",
-                "rimraf": "^3.0.2",
                 "test-exclude": "^6.0.0",
                 "v8-to-istanbul": "^9.0.0",
                 "yargs": "^17.7.2",
@@ -1681,32 +1821,13 @@
                 "c8": "bin/c8.js"
             },
             "engines": {
-                "node": ">=12"
+                "node": ">=14.14.0"
             }
         },
-        "node_modules/c8/node_modules/foreground-child": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
-            "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
-            "dev": true,
-            "dependencies": {
-                "cross-spawn": "^7.0.0",
-                "signal-exit": "^3.0.2"
-            },
-            "engines": {
-                "node": ">=8.0.0"
-            }
-        },
-        "node_modules/c8/node_modules/signal-exit": {
-            "version": "3.0.7",
-            "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
-            "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
-            "dev": true
-        },
         "node_modules/cacache": {
-            "version": "18.0.2",
-            "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz",
-            "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==",
+            "version": "18.0.3",
+            "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz",
+            "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==",
             "dev": true,
             "dependencies": {
                 "@npmcli/fs": "^3.1.0",
@@ -1736,31 +1857,31 @@
             }
         },
         "node_modules/cacache/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/cacache/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -1796,16 +1917,10 @@
             }
         },
         "node_modules/chokidar": {
-            "version": "3.5.3",
-            "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
-            "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+            "version": "3.6.0",
+            "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+            "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
             "dev": true,
-            "funding": [
-                {
-                    "type": "individual",
-                    "url": "https://paulmillr.com/funding/"
-                }
-            ],
             "dependencies": {
                 "anymatch": "~3.1.2",
                 "braces": "~3.0.2",
@@ -1818,6 +1933,9 @@
             "engines": {
                 "node": ">= 8.10.0"
             },
+            "funding": {
+                "url": "https://paulmillr.com/funding/"
+            },
             "optionalDependencies": {
                 "fsevents": "~2.3.2"
             }
@@ -2096,9 +2214,9 @@
             "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
         },
         "node_modules/diff": {
-            "version": "5.1.0",
-            "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
-            "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+            "version": "5.2.0",
+            "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+            "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
             "dev": true,
             "engines": {
                 "node": ">=0.3.1"
@@ -2558,9 +2676,9 @@
             }
         },
         "node_modules/hasown": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
-            "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+            "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
             "dev": true,
             "dependencies": {
                 "function-bind": "^1.1.2"
@@ -2578,9 +2696,9 @@
             }
         },
         "node_modules/hosted-git-info": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
-            "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+            "version": "7.0.2",
+            "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+            "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
             "dev": true,
             "dependencies": {
                 "lru-cache": "^10.0.1"
@@ -2602,9 +2720,9 @@
             "dev": true
         },
         "node_modules/http-proxy-agent": {
-            "version": "7.0.0",
-            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
-            "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
+            "version": "7.0.2",
+            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+            "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
             "dev": true,
             "dependencies": {
                 "agent-base": "^7.1.0",
@@ -2615,9 +2733,9 @@
             }
         },
         "node_modules/https-proxy-agent": {
-            "version": "7.0.2",
-            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
-            "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
+            "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
             "dev": true,
             "dependencies": {
                 "agent-base": "^7.0.2",
@@ -2649,9 +2767,9 @@
             }
         },
         "node_modules/ignore-walk": {
-            "version": "6.0.4",
-            "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz",
-            "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==",
+            "version": "6.0.5",
+            "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz",
+            "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==",
             "dev": true,
             "dependencies": {
                 "minimatch": "^9.0.0"
@@ -2670,9 +2788,9 @@
             }
         },
         "node_modules/ignore-walk/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -2826,21 +2944,25 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
-        "node_modules/ip": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz",
-            "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==",
-            "dev": true
-        },
-        "node_modules/is-actual-promise": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.1.tgz",
-            "integrity": "sha512-PlsL4tNv62lx5yN2HSqaRSTgIpUAPW7U6+crVB8HfWm5161rZpeqWbl0ZSqH2MAfRKXWSZVPRNbE/r8qPcb13g==",
+        "node_modules/ip-address": {
+            "version": "9.0.5",
+            "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+            "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
             "dev": true,
             "dependencies": {
-                "tshy": "^1.7.0"
+                "jsbn": "1.1.0",
+                "sprintf-js": "^1.1.3"
+            },
+            "engines": {
+                "node": ">= 12"
             }
         },
+        "node_modules/is-actual-promise": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.2.tgz",
+            "integrity": "sha512-xsFiO1of0CLsQnPZ1iXHNTyR9YszOeWKYv+q6n8oSFW3ipooFJ1j1lbRMgiMCr+pp2gLruESI4zb5Ak6eK5OnQ==",
+            "dev": true
+        },
         "node_modules/is-binary-path": {
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -2987,9 +3109,9 @@
             }
         },
         "node_modules/istanbul-reports": {
-            "version": "3.1.6",
-            "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
-            "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
+            "version": "3.1.7",
+            "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+            "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
             "dev": true,
             "dependencies": {
                 "html-escaper": "^2.0.0",
@@ -3000,9 +3122,9 @@
             }
         },
         "node_modules/jackspeak": {
-            "version": "2.3.6",
-            "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
-            "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
+            "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
             "dev": true,
             "dependencies": {
                 "@isaacs/cliui": "^8.0.2"
@@ -3048,10 +3170,16 @@
             "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz",
             "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g=="
         },
+        "node_modules/jsbn": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+            "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
+            "dev": true
+        },
         "node_modules/json-parse-even-better-errors": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
-            "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+            "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
             "dev": true,
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -3126,9 +3254,9 @@
             }
         },
         "node_modules/lru-cache": {
-            "version": "10.1.0",
-            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz",
-            "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
+            "version": "10.2.2",
+            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
+            "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
             "dev": true,
             "engines": {
                 "node": "14 || >=16.14"
@@ -3156,9 +3284,9 @@
             "dev": true
         },
         "node_modules/make-fetch-happen": {
-            "version": "13.0.0",
-            "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz",
-            "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==",
+            "version": "13.0.1",
+            "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz",
+            "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==",
             "dev": true,
             "dependencies": {
                 "@npmcli/agent": "^2.0.0",
@@ -3170,6 +3298,7 @@
                 "minipass-flush": "^1.0.5",
                 "minipass-pipeline": "^1.2.4",
                 "negotiator": "^0.6.3",
+                "proc-log": "^4.2.0",
                 "promise-retry": "^2.0.1",
                 "ssri": "^10.0.0"
             },
@@ -3209,9 +3338,9 @@
             }
         },
         "node_modules/minipass": {
-            "version": "7.0.4",
-            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
-            "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+            "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
             "dev": true,
             "engines": {
                 "node": ">=16 || 14 >=14.17"
@@ -3230,9 +3359,9 @@
             }
         },
         "node_modules/minipass-fetch": {
-            "version": "3.0.4",
-            "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz",
-            "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==",
+            "version": "3.0.5",
+            "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz",
+            "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==",
             "dev": true,
             "dependencies": {
                 "minipass": "^7.0.3",
@@ -3429,9 +3558,9 @@
             }
         },
         "node_modules/node-gyp": {
-            "version": "10.0.1",
-            "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz",
-            "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==",
+            "version": "10.1.0",
+            "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz",
+            "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==",
             "dev": true,
             "dependencies": {
                 "env-paths": "^2.2.0",
@@ -3473,22 +3602,22 @@
             }
         },
         "node_modules/node-gyp/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
@@ -3504,9 +3633,9 @@
             }
         },
         "node_modules/node-gyp/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -3518,6 +3647,15 @@
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
+        "node_modules/node-gyp/node_modules/proc-log": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz",
+            "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==",
+            "dev": true,
+            "engines": {
+                "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+            }
+        },
         "node_modules/node-gyp/node_modules/which": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
@@ -3534,9 +3672,9 @@
             }
         },
         "node_modules/nopt": {
-            "version": "7.2.0",
-            "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz",
-            "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
+            "version": "7.2.1",
+            "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
+            "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
             "dev": true,
             "dependencies": {
                 "abbrev": "^2.0.0"
@@ -3549,9 +3687,9 @@
             }
         },
         "node_modules/normalize-package-data": {
-            "version": "6.0.0",
-            "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
-            "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
+            "version": "6.0.1",
+            "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz",
+            "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==",
             "dev": true,
             "dependencies": {
                 "hosted-git-info": "^7.0.0",
@@ -3573,9 +3711,9 @@
             }
         },
         "node_modules/npm-bundled": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz",
-            "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz",
+            "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==",
             "dev": true,
             "dependencies": {
                 "npm-normalize-package-bin": "^3.0.0"
@@ -3606,13 +3744,13 @@
             }
         },
         "node_modules/npm-package-arg": {
-            "version": "11.0.1",
-            "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz",
-            "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==",
+            "version": "11.0.2",
+            "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz",
+            "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==",
             "dev": true,
             "dependencies": {
                 "hosted-git-info": "^7.0.0",
-                "proc-log": "^3.0.0",
+                "proc-log": "^4.0.0",
                 "semver": "^7.3.5",
                 "validate-npm-package-name": "^5.0.0"
             },
@@ -3621,9 +3759,9 @@
             }
         },
         "node_modules/npm-packlist": {
-            "version": "8.0.1",
-            "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.1.tgz",
-            "integrity": "sha512-MQpL27ZrsJQ2kiAuQPpZb5LtJwydNRnI15QWXsf3WHERu4rzjRj6Zju/My2fov7tLuu3Gle/uoIX/DDZ3u4O4Q==",
+            "version": "8.0.2",
+            "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz",
+            "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==",
             "dev": true,
             "dependencies": {
                 "ignore-walk": "^6.0.4"
@@ -3633,9 +3771,9 @@
             }
         },
         "node_modules/npm-pick-manifest": {
-            "version": "9.0.0",
-            "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz",
-            "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==",
+            "version": "9.0.1",
+            "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz",
+            "integrity": "sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==",
             "dev": true,
             "dependencies": {
                 "npm-install-checks": "^6.0.0",
@@ -3648,18 +3786,19 @@
             }
         },
         "node_modules/npm-registry-fetch": {
-            "version": "16.1.0",
-            "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz",
-            "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==",
+            "version": "16.2.1",
+            "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz",
+            "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==",
             "dev": true,
             "dependencies": {
+                "@npmcli/redact": "^1.1.0",
                 "make-fetch-happen": "^13.0.0",
                 "minipass": "^7.0.2",
                 "minipass-fetch": "^3.0.0",
                 "minipass-json-stream": "^1.0.1",
                 "minizlib": "^2.1.2",
                 "npm-package-arg": "^11.0.0",
-                "proc-log": "^3.0.0"
+                "proc-log": "^4.0.0"
             },
             "engines": {
                 "node": "^16.14.0 || >=18.0.0"
@@ -3757,9 +3896,9 @@
             }
         },
         "node_modules/pacote": {
-            "version": "17.0.5",
-            "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.5.tgz",
-            "integrity": "sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==",
+            "version": "17.0.7",
+            "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.7.tgz",
+            "integrity": "sha512-sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==",
             "dev": true,
             "dependencies": {
                 "@npmcli/git": "^5.0.0",
@@ -3773,11 +3912,11 @@
                 "npm-packlist": "^8.0.0",
                 "npm-pick-manifest": "^9.0.0",
                 "npm-registry-fetch": "^16.0.0",
-                "proc-log": "^3.0.0",
+                "proc-log": "^4.0.0",
                 "promise-retry": "^2.0.1",
                 "read-package-json": "^7.0.0",
                 "read-package-json-fast": "^3.0.0",
-                "sigstore": "^2.0.0",
+                "sigstore": "^2.2.0",
                 "ssri": "^10.0.0",
                 "tar": "^6.1.11"
             },
@@ -3833,16 +3972,16 @@
             }
         },
         "node_modules/path-scurry": {
-            "version": "1.10.1",
-            "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
-            "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+            "version": "1.11.1",
+            "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+            "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
             "dev": true,
             "dependencies": {
-                "lru-cache": "^9.1.1 || ^10.0.0",
+                "lru-cache": "^10.2.0",
                 "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
@@ -3928,9 +4067,9 @@
             }
         },
         "node_modules/proc-log": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz",
-            "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==",
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
+            "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
             "dev": true,
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -4003,9 +4142,9 @@
             ]
         },
         "node_modules/react": {
-            "version": "18.2.0",
-            "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
-            "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+            "version": "18.3.1",
+            "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+            "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
             "dev": true,
             "dependencies": {
                 "loose-envify": "^1.1.0"
@@ -4050,25 +4189,26 @@
             "dev": true
         },
         "node_modules/react-reconciler": {
-            "version": "0.29.0",
-            "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz",
-            "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==",
+            "version": "0.29.2",
+            "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz",
+            "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==",
             "dev": true,
             "dependencies": {
                 "loose-envify": "^1.1.0",
-                "scheduler": "^0.23.0"
+                "scheduler": "^0.23.2"
             },
             "engines": {
                 "node": ">=0.10.0"
             },
             "peerDependencies": {
-                "react": "^18.2.0"
+                "react": "^18.3.1"
             }
         },
         "node_modules/read-package-json": {
-            "version": "7.0.0",
-            "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz",
-            "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==",
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.1.tgz",
+            "integrity": "sha512-8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==",
+            "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.",
             "dev": true,
             "dependencies": {
                 "glob": "^10.2.2",
@@ -4103,31 +4243,31 @@
             }
         },
         "node_modules/read-package-json/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/read-package-json/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -4194,31 +4334,31 @@
             }
         },
         "node_modules/resolve-import/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/resolve-import/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -4314,22 +4454,19 @@
             "optional": true
         },
         "node_modules/scheduler": {
-            "version": "0.23.0",
-            "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
-            "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+            "version": "0.23.2",
+            "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+            "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
             "dev": true,
             "dependencies": {
                 "loose-envify": "^1.1.0"
             }
         },
         "node_modules/semver": {
-            "version": "7.5.4",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
-            "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+            "version": "7.6.2",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+            "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
             "dev": true,
-            "dependencies": {
-                "lru-cache": "^6.0.0"
-            },
             "bin": {
                 "semver": "bin/semver.js"
             },
@@ -4337,18 +4474,6 @@
                 "node": ">=10"
             }
         },
-        "node_modules/semver/node_modules/lru-cache": {
-            "version": "6.0.0",
-            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-            "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-            "dev": true,
-            "dependencies": {
-                "yallist": "^4.0.0"
-            },
-            "engines": {
-                "node": ">=10"
-            }
-        },
         "node_modules/shebang-command": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -4381,15 +4506,17 @@
             }
         },
         "node_modules/sigstore": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz",
-            "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==",
+            "version": "2.3.1",
+            "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz",
+            "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==",
             "dev": true,
             "dependencies": {
-                "@sigstore/bundle": "^2.1.0",
-                "@sigstore/protobuf-specs": "^0.2.1",
-                "@sigstore/sign": "^2.1.0",
-                "@sigstore/tuf": "^2.1.0"
+                "@sigstore/bundle": "^2.3.2",
+                "@sigstore/core": "^1.0.0",
+                "@sigstore/protobuf-specs": "^0.3.2",
+                "@sigstore/sign": "^2.3.2",
+                "@sigstore/tuf": "^2.3.4",
+                "@sigstore/verify": "^1.2.1"
             },
             "engines": {
                 "node": "^16.14.0 || >=18.0.0"
@@ -4434,26 +4561,26 @@
             }
         },
         "node_modules/socks": {
-            "version": "2.7.1",
-            "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
-            "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+            "version": "2.8.3",
+            "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
+            "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
             "dev": true,
             "dependencies": {
-                "ip": "^2.0.0",
+                "ip-address": "^9.0.5",
                 "smart-buffer": "^4.2.0"
             },
             "engines": {
-                "node": ">= 10.13.0",
+                "node": ">= 10.0.0",
                 "npm": ">= 3.0.0"
             }
         },
         "node_modules/socks-proxy-agent": {
-            "version": "8.0.2",
-            "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz",
-            "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==",
+            "version": "8.0.3",
+            "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz",
+            "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==",
             "dev": true,
             "dependencies": {
-                "agent-base": "^7.0.2",
+                "agent-base": "^7.1.1",
                 "debug": "^4.3.4",
                 "socks": "^2.7.1"
             },
@@ -4472,9 +4599,9 @@
             }
         },
         "node_modules/spdx-exceptions": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
-            "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+            "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
             "dev": true
         },
         "node_modules/spdx-expression-parse": {
@@ -4488,15 +4615,21 @@
             }
         },
         "node_modules/spdx-license-ids": {
-            "version": "3.0.16",
-            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
-            "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
+            "version": "3.0.18",
+            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
+            "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
+            "dev": true
+        },
+        "node_modules/sprintf-js": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+            "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
             "dev": true
         },
         "node_modules/ssri": {
-            "version": "10.0.5",
-            "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz",
-            "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==",
+            "version": "10.0.6",
+            "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+            "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
             "dev": true,
             "dependencies": {
                 "minipass": "^7.0.3"
@@ -4724,31 +4857,31 @@
             }
         },
         "node_modules/sync-content/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/sync-content/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -4761,9 +4894,9 @@
             }
         },
         "node_modules/sync-content/node_modules/rimraf": {
-            "version": "5.0.5",
-            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-            "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+            "version": "5.0.7",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+            "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
             "dev": true,
             "dependencies": {
                 "glob": "^10.3.7"
@@ -4772,36 +4905,36 @@
                 "rimraf": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=14"
+                "node": ">=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/tap": {
-            "version": "18.6.1",
-            "resolved": "https://registry.npmjs.org/tap/-/tap-18.6.1.tgz",
-            "integrity": "sha512-5cBQhJ1gdbsrTR3tA5kZZTts0HyOML6bcM7pEF7GF8d6y1ajfRMjbInS1Ty7/x2Ip0ko3cY1dYjPJ9JFNPsm7w==",
-            "dev": true,
-            "dependencies": {
-                "@tapjs/after": "1.1.17",
-                "@tapjs/after-each": "1.1.17",
-                "@tapjs/asserts": "1.1.17",
-                "@tapjs/before": "1.1.17",
-                "@tapjs/before-each": "1.1.17",
-                "@tapjs/core": "1.4.6",
-                "@tapjs/filter": "1.2.17",
-                "@tapjs/fixture": "1.2.17",
-                "@tapjs/intercept": "1.2.17",
-                "@tapjs/mock": "1.2.15",
-                "@tapjs/node-serialize": "1.2.6",
-                "@tapjs/run": "1.4.16",
-                "@tapjs/snapshot": "1.2.17",
-                "@tapjs/spawn": "1.1.17",
-                "@tapjs/stdin": "1.1.17",
-                "@tapjs/test": "1.3.17",
-                "@tapjs/typescript": "1.3.6",
-                "@tapjs/worker": "1.1.17",
+            "version": "19.0.2",
+            "resolved": "https://registry.npmjs.org/tap/-/tap-19.0.2.tgz",
+            "integrity": "sha512-SRGulk1RKlVuYtnPeephj+xyE0sG9CvGlKYP4lymBZykLtkwBPnEBjQ2iQmLX5z0BFEMfKh8G4bvZkhoSJb3kg==",
+            "dev": true,
+            "dependencies": {
+                "@tapjs/after": "1.1.24",
+                "@tapjs/after-each": "2.0.1",
+                "@tapjs/asserts": "2.0.1",
+                "@tapjs/before": "2.0.1",
+                "@tapjs/before-each": "2.0.1",
+                "@tapjs/core": "2.0.1",
+                "@tapjs/filter": "2.0.1",
+                "@tapjs/fixture": "2.0.1",
+                "@tapjs/intercept": "2.0.1",
+                "@tapjs/mock": "2.0.1",
+                "@tapjs/node-serialize": "2.0.1",
+                "@tapjs/run": "2.0.2",
+                "@tapjs/snapshot": "2.0.1",
+                "@tapjs/spawn": "2.0.1",
+                "@tapjs/stdin": "2.0.1",
+                "@tapjs/test": "2.0.1",
+                "@tapjs/typescript": "1.4.6",
+                "@tapjs/worker": "2.0.1",
                 "resolve-import": "^1.4.5"
             },
             "bin": {
@@ -4815,13 +4948,13 @@
             }
         },
         "node_modules/tap-parser": {
-            "version": "15.3.1",
-            "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-15.3.1.tgz",
-            "integrity": "sha512-hwAtXX5TBGt2MJeYvASc7DjP48PUzA7P8RTbLxQcgKCEH7ICD5IsRco7l5YvkzjHlZbUbeI9wzO8B4hw2sKgnQ==",
+            "version": "16.0.1",
+            "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-16.0.1.tgz",
+            "integrity": "sha512-vKianJzSSzLkJ3bHBwzvZDDRi9yGMwkRANJxwPAjAue50owB8rlluYySmTN4tZVH0nsh6stvrQbg9kuCL5svdg==",
             "dev": true,
             "dependencies": {
                 "events-to-array": "^2.0.3",
-                "tap-yaml": "2.2.1"
+                "tap-yaml": "2.2.2"
             },
             "bin": {
                 "tap-parser": "bin/cmd.cjs"
@@ -4831,12 +4964,12 @@
             }
         },
         "node_modules/tap-yaml": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.2.1.tgz",
-            "integrity": "sha512-ovZuUMLAIH59jnFHXKEGJ+WyDYl6Cuduwg9qpvnqkZOUA1nU84q02Sry1HT0KXcdv2uB91bEKKxnIybBgrb6oA==",
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.2.2.tgz",
+            "integrity": "sha512-MWG4OpAKtNoNVjCz/BqlDJiwTM99tiHRhHPS4iGOe1ZS0CgM4jSFH92lthSFvvy4EdDjQZDV7uYqUFlU9JuNhw==",
             "dev": true,
             "dependencies": {
-                "yaml": "^2.3.0",
+                "yaml": "^2.4.1",
                 "yaml-types": "^0.3.0"
             },
             "engines": {
@@ -4959,19 +5092,21 @@
             }
         },
         "node_modules/tshy": {
-            "version": "1.8.2",
-            "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.8.2.tgz",
-            "integrity": "sha512-aGlSY+jkZYAv0YDgtdv1U2vvbGTUdlXmhVP4uegujlJ/wuznmJqSu5cUV/6IW7N7a3HFRhofWvIS/FquYN9zgA==",
+            "version": "1.14.0",
+            "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.14.0.tgz",
+            "integrity": "sha512-YiUujgi4Jb+t2I48LwSRzHkBpniH9WjjktNozn+nlsGmVemKSjDNY7EwBRPvPCr5zAC/3ITAYWH9Z7kUinGSrw==",
             "dev": true,
             "dependencies": {
                 "chalk": "^5.3.0",
-                "chokidar": "^3.5.3",
+                "chokidar": "^3.6.0",
                 "foreground-child": "^3.1.1",
+                "minimatch": "^9.0.4",
                 "mkdirp": "^3.0.1",
-                "resolve-import": "^1.4.4",
+                "polite-json": "^4.0.1",
+                "resolve-import": "^1.4.5",
                 "rimraf": "^5.0.1",
                 "sync-content": "^1.0.2",
-                "typescript": "5.2",
+                "typescript": "^5.4.5",
                 "walk-up-path": "^3.0.1"
             },
             "bin": {
@@ -5003,31 +5138,31 @@
             }
         },
         "node_modules/tshy/node_modules/glob": {
-            "version": "10.3.10",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-            "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+            "version": "10.4.1",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+            "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
             "dev": true,
             "dependencies": {
                 "foreground-child": "^3.1.0",
-                "jackspeak": "^2.3.5",
-                "minimatch": "^9.0.1",
-                "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                "path-scurry": "^1.10.1"
+                "jackspeak": "^3.1.2",
+                "minimatch": "^9.0.4",
+                "minipass": "^7.1.2",
+                "path-scurry": "^1.11.1"
             },
             "bin": {
                 "glob": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=16 || 14 >=14.17"
+                "node": ">=16 || 14 >=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/tshy/node_modules/minimatch": {
-            "version": "9.0.3",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "version": "9.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+            "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
             "dev": true,
             "dependencies": {
                 "brace-expansion": "^2.0.1"
@@ -5040,9 +5175,9 @@
             }
         },
         "node_modules/tshy/node_modules/rimraf": {
-            "version": "5.0.5",
-            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-            "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+            "version": "5.0.7",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+            "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
             "dev": true,
             "dependencies": {
                 "glob": "^10.3.7"
@@ -5051,7 +5186,7 @@
                 "rimraf": "dist/esm/bin.mjs"
             },
             "engines": {
-                "node": ">=14"
+                "node": ">=14.18"
             },
             "funding": {
                 "url": "https://github.com/sponsors/isaacs"
@@ -5063,14 +5198,14 @@
             "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
         },
         "node_modules/tuf-js": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz",
-            "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==",
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz",
+            "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==",
             "dev": true,
             "dependencies": {
-                "@tufjs/models": "2.0.0",
+                "@tufjs/models": "2.0.1",
                 "debug": "^4.3.4",
-                "make-fetch-happen": "^13.0.0"
+                "make-fetch-happen": "^13.0.1"
             },
             "engines": {
                 "node": "^16.14.0 || >=18.0.0"
@@ -5099,9 +5234,9 @@
             }
         },
         "node_modules/typescript": {
-            "version": "5.2.2",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
-            "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+            "version": "5.4.5",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+            "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
             "dev": true,
             "bin": {
                 "tsc": "bin/tsc",
@@ -5180,9 +5315,9 @@
             }
         },
         "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": {
-            "version": "0.3.20",
-            "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
-            "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
+            "version": "0.3.25",
+            "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+            "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
             "dev": true,
             "dependencies": {
                 "@jridgewell/resolve-uri": "^3.1.0",
@@ -5200,13 +5335,10 @@
             }
         },
         "node_modules/validate-npm-package-name": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz",
-            "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==",
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
+            "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
             "dev": true,
-            "dependencies": {
-                "builtins": "^5.0.0"
-            },
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
@@ -5363,9 +5495,9 @@
             "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
         },
         "node_modules/ws": {
-            "version": "8.16.0",
-            "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
-            "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+            "version": "8.17.0",
+            "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
+            "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
             "dev": true,
             "engines": {
                 "node": ">=10.0.0"
@@ -5399,10 +5531,13 @@
             "dev": true
         },
         "node_modules/yaml": {
-            "version": "2.3.4",
-            "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
-            "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
+            "version": "2.4.2",
+            "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
+            "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
             "dev": true,
+            "bin": {
+                "yaml": "bin.mjs"
+            },
             "engines": {
                 "node": ">= 14"
             }
@@ -5620,9 +5755,9 @@
             }
         },
         "@isaacs/ts-node-temp-fork-for-pr-2009": {
-            "version": "10.9.5",
-            "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.5.tgz",
-            "integrity": "sha512-hEDlwpHhIabtB+Urku8muNMEkGui0LVGlYLS3KoB9QBDf0Pw3r7q0RrfoQmFuk8CvRpGzErO3/vLQd9Ys+/g4g==",
+            "version": "10.9.7",
+            "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.7.tgz",
+            "integrity": "sha512-9f0bhUr9TnwwpgUhEpr3FjxSaH/OHaARkE2F9fM0lS4nIs2GNerrvGwQz493dk0JKlTaGYVrKbq36vA/whZ34g==",
             "dev": true,
             "requires": {
                 "@cspotcode/source-map-support": "^0.8.0",
@@ -5653,9 +5788,9 @@
             "dev": true
         },
         "@jridgewell/resolve-uri": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
-            "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+            "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
             "dev": true
         },
         "@jridgewell/sourcemap-codec": {
@@ -5743,37 +5878,37 @@
             }
         },
         "@npmcli/agent": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz",
-            "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==",
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz",
+            "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==",
             "dev": true,
             "requires": {
                 "agent-base": "^7.1.0",
                 "http-proxy-agent": "^7.0.0",
                 "https-proxy-agent": "^7.0.1",
                 "lru-cache": "^10.0.1",
-                "socks-proxy-agent": "^8.0.1"
+                "socks-proxy-agent": "^8.0.3"
             }
         },
         "@npmcli/fs": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz",
-            "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==",
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz",
+            "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==",
             "dev": true,
             "requires": {
                 "semver": "^7.3.5"
             }
         },
         "@npmcli/git": {
-            "version": "5.0.4",
-            "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz",
-            "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==",
+            "version": "5.0.7",
+            "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz",
+            "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==",
             "dev": true,
             "requires": {
                 "@npmcli/promise-spawn": "^7.0.0",
                 "lru-cache": "^10.0.1",
                 "npm-pick-manifest": "^9.0.0",
-                "proc-log": "^3.0.0",
+                "proc-log": "^4.0.0",
                 "promise-inflight": "^1.0.1",
                 "promise-retry": "^2.0.1",
                 "semver": "^7.3.5",
@@ -5798,9 +5933,9 @@
             }
         },
         "@npmcli/installed-package-contents": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz",
-            "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==",
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz",
+            "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==",
             "dev": true,
             "requires": {
                 "npm-bundled": "^3.0.0",
@@ -5813,10 +5948,58 @@
             "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==",
             "dev": true
         },
+        "@npmcli/package-json": {
+            "version": "5.1.1",
+            "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.1.1.tgz",
+            "integrity": "sha512-uTq5j/UqUzbOaOxVy+osfOhpqOiLfUZ0Ut33UbcyyAPJbZcJsf4Mrsyb8r58FoIFlofw0iOFsuCA/oDK14VDJQ==",
+            "dev": true,
+            "requires": {
+                "@npmcli/git": "^5.0.0",
+                "glob": "^10.2.2",
+                "hosted-git-info": "^7.0.0",
+                "json-parse-even-better-errors": "^3.0.0",
+                "normalize-package-data": "^6.0.0",
+                "proc-log": "^4.0.0",
+                "semver": "^7.5.3"
+            },
+            "dependencies": {
+                "brace-expansion": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+                    "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+                    "dev": true,
+                    "requires": {
+                        "balanced-match": "^1.0.0"
+                    }
+                },
+                "glob": {
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
+                    "dev": true,
+                    "requires": {
+                        "foreground-child": "^3.1.0",
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
+                    }
+                },
+                "minimatch": {
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+                    "dev": true,
+                    "requires": {
+                        "brace-expansion": "^2.0.1"
+                    }
+                }
+            }
+        },
         "@npmcli/promise-spawn": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz",
-            "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==",
+            "version": "7.0.2",
+            "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
+            "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
             "dev": true,
             "requires": {
                 "which": "^4.0.0"
@@ -5839,16 +6022,22 @@
                 }
             }
         },
+        "@npmcli/redact": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz",
+            "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==",
+            "dev": true
+        },
         "@npmcli/run-script": {
-            "version": "7.0.3",
-            "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.3.tgz",
-            "integrity": "sha512-ZMWGLHpzMq3rBGIwPyeaoaleaLMvrBrH8nugHxTi5ACkJZXTxXPtVuEH91ifgtss5hUwJQ2VDnzDBWPmz78rvg==",
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz",
+            "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==",
             "dev": true,
             "requires": {
                 "@npmcli/node-gyp": "^3.0.0",
+                "@npmcli/package-json": "^5.0.0",
                 "@npmcli/promise-spawn": "^7.0.0",
                 "node-gyp": "^10.0.0",
-                "read-package-json-fast": "^3.0.0",
                 "which": "^4.0.0"
             },
             "dependencies": {
@@ -5877,101 +6066,133 @@
             "optional": true
         },
         "@sigstore/bundle": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz",
-            "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==",
+            "version": "2.3.2",
+            "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz",
+            "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==",
             "dev": true,
             "requires": {
-                "@sigstore/protobuf-specs": "^0.2.1"
+                "@sigstore/protobuf-specs": "^0.3.2"
             }
         },
+        "@sigstore/core": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz",
+            "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==",
+            "dev": true
+        },
         "@sigstore/protobuf-specs": {
-            "version": "0.2.1",
-            "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz",
-            "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==",
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz",
+            "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==",
             "dev": true
         },
         "@sigstore/sign": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.0.tgz",
-            "integrity": "sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==",
+            "version": "2.3.2",
+            "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz",
+            "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==",
             "dev": true,
             "requires": {
-                "@sigstore/bundle": "^2.1.0",
-                "@sigstore/protobuf-specs": "^0.2.1",
-                "make-fetch-happen": "^13.0.0"
+                "@sigstore/bundle": "^2.3.2",
+                "@sigstore/core": "^1.0.0",
+                "@sigstore/protobuf-specs": "^0.3.2",
+                "make-fetch-happen": "^13.0.1",
+                "proc-log": "^4.2.0",
+                "promise-retry": "^2.0.1"
             }
         },
         "@sigstore/tuf": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz",
-            "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==",
+            "version": "2.3.4",
+            "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz",
+            "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==",
+            "dev": true,
+            "requires": {
+                "@sigstore/protobuf-specs": "^0.3.2",
+                "tuf-js": "^2.2.1"
+            }
+        },
+        "@sigstore/verify": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz",
+            "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==",
             "dev": true,
             "requires": {
-                "@sigstore/protobuf-specs": "^0.2.1",
-                "tuf-js": "^2.1.0"
+                "@sigstore/bundle": "^2.3.2",
+                "@sigstore/core": "^1.1.0",
+                "@sigstore/protobuf-specs": "^0.3.2"
             }
         },
         "@tapjs/after": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.17.tgz",
-            "integrity": "sha512-14qeP+mHZ8nIMDGtdCwTgvKclLlHxfARMTasb9fw//tmF/8ZDZhTemtCDxAP75wihxy5P7nzVZo/6TpVeOZrwg==",
+            "version": "1.1.24",
+            "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.24.tgz",
+            "integrity": "sha512-Qys3CtftkfHGC7thDGm9TBzRCBLAoJKrXufF1zQxI1oNUjclWZP/s8CtHH0mwUTISOTehmBLV3wPPHSslD67Ng==",
             "dev": true,
             "requires": {
-                "is-actual-promise": "^1.0.0"
+                "is-actual-promise": "^1.0.1"
             }
         },
         "@tapjs/after-each": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.1.17.tgz",
-            "integrity": "sha512-ia8sr00Wilni+2+wO4MKYCYikeRwUC41HamV8EPN63R2UmiBEOe/cMSf+KYADIh56JvxAiH7Xa0+GSFU+N2FQQ==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-2.0.1.tgz",
+            "integrity": "sha512-3JXIJ4g9LPjyXmn/1VuIMC0vh7uBgUpQPksjffxv0rL8wq4C8lvmqt8Qu/fVImJucqzA+WrRqVG1b2Ab0ocDOw==",
             "dev": true,
             "requires": {
                 "function-loop": "^4.0.0"
             }
         },
         "@tapjs/asserts": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.1.17.tgz",
-            "integrity": "sha512-eKmbWBORDXu9bUHtPTu7qFrXNj5UeeH2nABJeP9BGHIn2ydmTgMEWCO3E+ljf7tisHchY5/x672lr99+O/mbTQ==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-2.0.1.tgz",
+            "integrity": "sha512-v2xYDLUwMGt8pzoY5LIjDCaw2NM+G01NW4pC3RcpsZLZbzQv1x/phi2RAX0ixI0nCmZZybqRygFKuMcJamS+gg==",
             "dev": true,
             "requires": {
-                "@tapjs/stack": "1.2.7",
-                "is-actual-promise": "^1.0.0",
-                "tcompare": "6.4.5",
+                "@tapjs/stack": "2.0.1",
+                "is-actual-promise": "^1.0.1",
+                "tcompare": "7.0.1",
                 "trivial-deferred": "^2.0.0"
+            },
+            "dependencies": {
+                "tcompare": {
+                    "version": "7.0.1",
+                    "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+                    "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+                    "dev": true,
+                    "requires": {
+                        "diff": "^5.2.0",
+                        "react-element-to-jsx-string": "^15.0.0"
+                    }
+                }
             }
         },
         "@tapjs/before": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.1.17.tgz",
-            "integrity": "sha512-pAmEAIMIqF9MPNUgEsnuWCM00iD/FJOX0P5eXSsWexWHjuZAkv5tIT/4qpXO9KYj+9c51Lh+7YSY2Xvk1Jjolw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-2.0.1.tgz",
+            "integrity": "sha512-GgnlWPm2PbuyYuG4gkkO2KAvT/BbGnpKs60U4XzPSJ2w73Qc/IYWP0Kz6qfCWongpiLteoco67M89ujUQApYJw==",
             "dev": true,
             "requires": {
-                "is-actual-promise": "^1.0.0"
+                "is-actual-promise": "^1.0.1"
             }
         },
         "@tapjs/before-each": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.1.17.tgz",
-            "integrity": "sha512-d2Um3Y2j0m563QNsSxczh+QeSg5sBngnBFGOelUtQVqmq91oNWU/7mY1pwN6ip8mMIQYD75CIhq5/Z57DGomWQ==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-2.0.1.tgz",
+            "integrity": "sha512-gG1nYkvCHtWwhkueulO475KczdQZ3vBRgdkta/Qi42ZjZo6SNhYVjNc/+LRGV5vZoESrvgSd+JrDRGufd+j43w==",
             "dev": true,
             "requires": {
                 "function-loop": "^4.0.0"
             }
         },
         "@tapjs/config": {
-            "version": "2.4.14",
-            "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.4.14.tgz",
-            "integrity": "sha512-dkjPVJGbLJC9BxCAxudAGiijnKc6XcQbpBSMAGJ/+VoRSqXlPkMWz0d8Ad3rNt7s+g2GBEWBx1kV7wcKtLlxmw==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-3.0.1.tgz",
+            "integrity": "sha512-gAYFzErdSuPQ3afW6iRR99hiJmRLU+x9T+NE89z9UM45iPxglWLrRv1PFfh3tmtX6rpzwD5RY4/FVPcP2+/1LQ==",
             "dev": true,
             "requires": {
-                "@tapjs/core": "1.4.6",
-                "@tapjs/test": "1.3.17",
+                "@tapjs/core": "2.0.1",
+                "@tapjs/test": "2.0.1",
                 "chalk": "^5.2.0",
-                "jackspeak": "^2.3.6",
+                "jackspeak": "^3.1.2",
                 "polite-json": "^4.0.1",
-                "tap-yaml": "2.2.1",
+                "tap-yaml": "2.2.2",
                 "walk-up-path": "^3.0.1"
             },
             "dependencies": {
@@ -5984,45 +6205,57 @@
             }
         },
         "@tapjs/core": {
-            "version": "1.4.6",
-            "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.4.6.tgz",
-            "integrity": "sha512-cAKtdGJslrziwi/RJBU7jF930P/eSsemv295t6yLekNVP0XUCNtLFYirxuS1Xwob0nt0g/k+94xXB7o1wdTQvA==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-2.0.1.tgz",
+            "integrity": "sha512-q+8d+ohw5kudktIqgP5ETBcPWAPip+kMIxs2eL2G3dV+7Gc8WrH43cCPrbSGPRITIOSIDPrtpQZEcZwQNqDdQw==",
             "dev": true,
             "requires": {
-                "@tapjs/processinfo": "^3.1.6",
-                "@tapjs/stack": "1.2.7",
-                "@tapjs/test": "1.3.17",
+                "@tapjs/processinfo": "^3.1.7",
+                "@tapjs/stack": "2.0.1",
+                "@tapjs/test": "2.0.1",
                 "async-hook-domain": "^4.0.1",
-                "diff": "^5.1.0",
-                "is-actual-promise": "^1.0.0",
-                "minipass": "^7.0.3",
+                "diff": "^5.2.0",
+                "is-actual-promise": "^1.0.1",
+                "minipass": "^7.0.4",
                 "signal-exit": "4.1",
-                "tap-parser": "15.3.1",
-                "tap-yaml": "2.2.1",
-                "tcompare": "6.4.5",
+                "tap-parser": "16.0.1",
+                "tap-yaml": "2.2.2",
+                "tcompare": "7.0.1",
                 "trivial-deferred": "^2.0.0"
+            },
+            "dependencies": {
+                "tcompare": {
+                    "version": "7.0.1",
+                    "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+                    "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+                    "dev": true,
+                    "requires": {
+                        "diff": "^5.2.0",
+                        "react-element-to-jsx-string": "^15.0.0"
+                    }
+                }
             }
         },
         "@tapjs/error-serdes": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-1.2.1.tgz",
-            "integrity": "sha512-/7eLEcrGo+Qz3eWrjkhDC+VSEOjabkkzr9eRADeU+OLFeZaik8L/GRk0SGhnp4YsQkv0jcNV00A42bEx2HIZcw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-2.0.1.tgz",
+            "integrity": "sha512-P+M4rtcfkDsUveKKmoRNF+07xpbPnRY5KrstIUOnyn483clQ7BJhsnWr162yYNCsyOj4zEfZmAJI1f8Bi7h/ZA==",
             "dev": true,
             "requires": {
-                "minipass": "^7.0.3"
+                "minipass": "^7.0.4"
             }
         },
         "@tapjs/filter": {
-            "version": "1.2.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.2.17.tgz",
-            "integrity": "sha512-ytsqoPThV92ML1+M+cHlhAS7nOQpDNRBJiPqw20/GmNeoQXsDzVUlWR89DP3WNNUPrr/c1pCVr9XHVhCIeYk0w==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-2.0.1.tgz",
+            "integrity": "sha512-muKEeXK7Tz6VR4hjXfT2qXPvjYES575mtiRerjHf+8qP8D7MvmC8qDZJjzFdo1nZHKhF8snvFosIVuI1BAhvsw==",
             "dev": true,
             "requires": {}
         },
         "@tapjs/fixture": {
-            "version": "1.2.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.2.17.tgz",
-            "integrity": "sha512-eOOQxtsEcQ/sBxaZhpqdF9DCNxXAvLuiE5HgyL6d1eB4eceu57uIUKK7NDtFVv+vlbQH/NoiSTxmN/IBRbKT8w==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-2.0.1.tgz",
+            "integrity": "sha512-MLgEwsBlCD69iUbZcnKBehP2js5cV4p5GrFoOKSudMuH2DQJInaF/g2bkijue61cVZwPj/MRPCqAlkwA94epjg==",
             "dev": true,
             "requires": {
                 "mkdirp": "^3.0.0",
@@ -6039,31 +6272,31 @@
                     }
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
                     }
                 },
                 "rimraf": {
-                    "version": "5.0.5",
-                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-                    "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+                    "version": "5.0.7",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+                    "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
                     "dev": true,
                     "requires": {
                         "glob": "^10.3.7"
@@ -6072,42 +6305,42 @@
             }
         },
         "@tapjs/intercept": {
-            "version": "1.2.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.2.17.tgz",
-            "integrity": "sha512-CNuYBxiFBMNALS1PxH3yGI10H8ObxOoD67C2xGWyzXeYrPJ/R4x31Sda9bqaoK3uf/vj28bC9kSECCFjRsNAEg==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-2.0.1.tgz",
+            "integrity": "sha512-BZgXE3zCAbv4lfbph1r85gihtI3kXltHlFQ8Bf3Yy9fx27DKQlBvXnD7T69ke8kQLRzhz+wTMcR/mcQjo1fa7w==",
             "dev": true,
             "requires": {
-                "@tapjs/after": "1.1.17",
-                "@tapjs/stack": "1.2.7"
+                "@tapjs/after": "1.1.24",
+                "@tapjs/stack": "2.0.1"
             }
         },
         "@tapjs/mock": {
-            "version": "1.2.15",
-            "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.2.15.tgz",
-            "integrity": "sha512-uXfVNDAMAbCGOu46B9jbryTau2pLSQjCdWnkAm/OUgZh/OtO0i7OORz9HdEPfEF2tuy1tLo9+vsCZm3lPU5F7w==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-2.0.1.tgz",
+            "integrity": "sha512-i1vkwNgO7uEuQW3+hTuE2L64aC9xk0cC3PtC6DZKqyApk2IstNgoIS38nfsI6v2kvEgZNuWlsNcRAYNDOIEhzA==",
             "dev": true,
             "requires": {
-                "@tapjs/after": "1.1.17",
-                "@tapjs/stack": "1.2.7",
+                "@tapjs/after": "1.1.24",
+                "@tapjs/stack": "2.0.1",
                 "resolve-import": "^1.4.5",
                 "walk-up-path": "^3.0.1"
             }
         },
         "@tapjs/node-serialize": {
-            "version": "1.2.6",
-            "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.2.6.tgz",
-            "integrity": "sha512-xj1OJEsdTr0pQFlirfe/apN0dHUCMCx2Nm5H3SoiSOW4D1/FUKS65VZpWgo3mXMPxRyb/2T1DH3xON1eSGq4ww==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-2.0.1.tgz",
+            "integrity": "sha512-1GtHDa7AXpk8y08llIPfUKRTDNsq+BhXxz7wiIfVEAOEB09kGyfpWteOg+cmvb+aHU1Ays3z+medXTIBm0D5Kg==",
             "dev": true,
             "requires": {
-                "@tapjs/error-serdes": "1.2.1",
-                "@tapjs/stack": "1.2.7",
-                "tap-parser": "15.3.1"
+                "@tapjs/error-serdes": "2.0.1",
+                "@tapjs/stack": "2.0.1",
+                "tap-parser": "16.0.1"
             }
         },
         "@tapjs/processinfo": {
-            "version": "3.1.6",
-            "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.6.tgz",
-            "integrity": "sha512-ktDsaf79wJsLaoG1Pp+stHSRf6a1k/JydoRAaYVG5iJnd3DooL6yewZsciUi2yiN/WQc5tAXCIFTXL4uXGB8LA==",
+            "version": "3.1.7",
+            "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.7.tgz",
+            "integrity": "sha512-SI5RJQ5HnUKEWnHSAF6hOm6XPdnjZ+CJzIaVHdFebed8iDAPTqb+IwMVu9yq9+VQ7FRsMMlgLL2SW4rss2iJbQ==",
             "dev": true,
             "requires": {
                 "pirates": "^4.0.5",
@@ -6117,24 +6350,24 @@
             }
         },
         "@tapjs/reporter": {
-            "version": "1.3.15",
-            "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.3.15.tgz",
-            "integrity": "sha512-us1vXd6TW1V8wJxxnP2a8DNSP1WFTpODyYukqWg7ym5nCalREYnz2MFsn65rRNu/xJlmqsmv+9P63rupud7Zlg==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-2.0.1.tgz",
+            "integrity": "sha512-fCdl4vg8vnlqIYtTQ9dc3zOqeXrA5QbATbT4dsPIiPuCM3gvKTbntaNBeaWWZkPx697Dj+b8TIxT/xhNMNv7jQ==",
             "dev": true,
             "requires": {
-                "@tapjs/config": "2.4.14",
-                "@tapjs/stack": "1.2.7",
+                "@tapjs/config": "3.0.1",
+                "@tapjs/stack": "2.0.1",
                 "chalk": "^5.2.0",
                 "ink": "^4.4.1",
-                "minipass": "^7.0.3",
+                "minipass": "^7.0.4",
                 "ms": "^2.1.3",
                 "patch-console": "^2.0.0",
                 "prismjs-terminal": "^1.2.3",
                 "react": "^18.2.0",
                 "string-length": "^6.0.0",
-                "tap-parser": "15.3.1",
-                "tap-yaml": "2.2.1",
-                "tcompare": "6.4.5"
+                "tap-parser": "16.0.1",
+                "tap-yaml": "2.2.2",
+                "tcompare": "7.0.1"
             },
             "dependencies": {
                 "chalk": {
@@ -6148,39 +6381,49 @@
                     "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
                     "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
                     "dev": true
+                },
+                "tcompare": {
+                    "version": "7.0.1",
+                    "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+                    "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+                    "dev": true,
+                    "requires": {
+                        "diff": "^5.2.0",
+                        "react-element-to-jsx-string": "^15.0.0"
+                    }
                 }
             }
         },
         "@tapjs/run": {
-            "version": "1.4.16",
-            "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.4.16.tgz",
-            "integrity": "sha512-ZTESjBDj5SitZgWz2hQdzfBoxgaFs89jQjWzqobcdfro0iF7TVRpSrvpz9GTMdo2Tu9aeFfMNfmaAtwNWnDabw==",
-            "dev": true,
-            "requires": {
-                "@tapjs/after": "1.1.17",
-                "@tapjs/before": "1.1.17",
-                "@tapjs/config": "2.4.14",
-                "@tapjs/processinfo": "^3.1.6",
-                "@tapjs/reporter": "1.3.15",
-                "@tapjs/spawn": "1.1.17",
-                "@tapjs/stdin": "1.1.17",
-                "@tapjs/test": "1.3.17",
-                "c8": "^8.0.1",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-2.0.2.tgz",
+            "integrity": "sha512-2hPGlabqbLb3hh4BHHvwE8R9a9OiWumkCkHw5QQUZurDsVOpB94FfteqW9mktTVjZJnN0go+sN3GN2jZUaPWGQ==",
+            "dev": true,
+            "requires": {
+                "@tapjs/after": "1.1.24",
+                "@tapjs/before": "2.0.1",
+                "@tapjs/config": "3.0.1",
+                "@tapjs/processinfo": "^3.1.7",
+                "@tapjs/reporter": "2.0.1",
+                "@tapjs/spawn": "2.0.1",
+                "@tapjs/stdin": "2.0.1",
+                "@tapjs/test": "2.0.1",
+                "c8": "^9.1.0",
                 "chalk": "^5.3.0",
-                "chokidar": "^3.5.3",
+                "chokidar": "^3.6.0",
                 "foreground-child": "^3.1.1",
-                "glob": "^10.3.10",
-                "minipass": "^7.0.3",
+                "glob": "^10.3.16",
+                "minipass": "^7.0.4",
                 "mkdirp": "^3.0.1",
                 "opener": "^1.5.2",
-                "pacote": "^17.0.3",
+                "pacote": "^17.0.6",
                 "resolve-import": "^1.4.5",
                 "rimraf": "^5.0.5",
-                "semver": "^7.5.4",
+                "semver": "^7.6.0",
                 "signal-exit": "^4.1.0",
-                "tap-parser": "15.3.1",
-                "tap-yaml": "2.2.1",
-                "tcompare": "6.4.5",
+                "tap-parser": "16.0.1",
+                "tap-yaml": "2.2.2",
+                "tcompare": "7.0.1",
                 "trivial-deferred": "^2.0.0",
                 "which": "^4.0.0"
             },
@@ -6201,16 +6444,16 @@
                     "dev": true
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "isexe": {
@@ -6220,23 +6463,33 @@
                     "dev": true
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
                     }
                 },
                 "rimraf": {
-                    "version": "5.0.5",
-                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-                    "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+                    "version": "5.0.7",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+                    "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
                     "dev": true,
                     "requires": {
                         "glob": "^10.3.7"
                     }
                 },
+                "tcompare": {
+                    "version": "7.0.1",
+                    "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+                    "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+                    "dev": true,
+                    "requires": {
+                        "diff": "^5.2.0",
+                        "react-element-to-jsx-string": "^15.0.0"
+                    }
+                },
                 "which": {
                     "version": "4.0.0",
                     "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
@@ -6249,67 +6502,80 @@
             }
         },
         "@tapjs/snapshot": {
-            "version": "1.2.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.2.17.tgz",
-            "integrity": "sha512-xDHys854ZA8s/1uCkE5PgBz4H1vYKChD6a4xjLVkaoRxpBHVp/IJZCD+8d69DRGnyuA4x2MGh0JLClTA9bLGrA==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-2.0.1.tgz",
+            "integrity": "sha512-ZnbCxL+9fiJ38tec6wvRtRBZz9ChRUq0Bov7dltdZMNkXqudKyB+Zzbg25bqDEIgcczyp6A9hOwTX6VybDGqpg==",
             "dev": true,
             "requires": {
-                "is-actual-promise": "^1.0.0",
-                "tcompare": "6.4.5",
+                "is-actual-promise": "^1.0.1",
+                "tcompare": "7.0.1",
                 "trivial-deferred": "^2.0.0"
+            },
+            "dependencies": {
+                "tcompare": {
+                    "version": "7.0.1",
+                    "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz",
+                    "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==",
+                    "dev": true,
+                    "requires": {
+                        "diff": "^5.2.0",
+                        "react-element-to-jsx-string": "^15.0.0"
+                    }
+                }
             }
         },
         "@tapjs/spawn": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.1.17.tgz",
-            "integrity": "sha512-Bbyxd91bgXEcglvXYKrRl2MaNHk00RajTZJ1kKe3Scr1ivaYv0maE6ZInAl4UE0a4SJl4Dskec+uKoZY3qGUYQ==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-2.0.1.tgz",
+            "integrity": "sha512-3VaQKJjHV5frMZj3Ef+QlJyB6b7VsGMil223zAEz8Ttgy2hDYtcb29nvsLPUcowFyOUrsydnXEnHgpR79wEPOA==",
             "dev": true,
             "requires": {}
         },
         "@tapjs/stack": {
-            "version": "1.2.7",
-            "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-1.2.7.tgz",
-            "integrity": "sha512-7qUDWDmd+y7ZQ0vTrDTvFlWnJ+ND32NemS5HVuT1ZggHtBwJ62PQHIyCx/B5RopETBb6NvFPfUE21yTiex9Jkw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-2.0.1.tgz",
+            "integrity": "sha512-3rKbZkRkLeJl9ilV/6b80YfI4C4+OYf7iEz5/d0MIVhmVvxv0ttIy5JnZutAc4Gy9eRp5Ne5UTAIFOVY5k36cg==",
             "dev": true
         },
         "@tapjs/stdin": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.1.17.tgz",
-            "integrity": "sha512-mDutFFPDnlVM2oYDAfyYKA+fC+aEiyz5n08D8x6YAbwZNbTIVp+h6ucyp7ygJ04fshd4l3s1HUmCZLSmHb2xEw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-2.0.1.tgz",
+            "integrity": "sha512-5Oe13Fzpnt9seAi8h3bsMxtJp8S+DQI6ncBD9JBcS91XKLbqyKrb1bNzeXQN2PrHBs6Atw8cOzFZh0TjL+bIaA==",
             "dev": true,
             "requires": {}
         },
         "@tapjs/test": {
-            "version": "1.3.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.3.17.tgz",
-            "integrity": "sha512-yQ4uHC2GaDS+Gr5qwx9uMGxqvpYgnlVY+QexBReSeYZthWIN0KD8HDvnVt4An5Sx/Qhd7UlnNpNMBd6AkvPEew==",
-            "dev": true,
-            "requires": {
-                "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5",
-                "@tapjs/after": "1.1.17",
-                "@tapjs/after-each": "1.1.17",
-                "@tapjs/asserts": "1.1.17",
-                "@tapjs/before": "1.1.17",
-                "@tapjs/before-each": "1.1.17",
-                "@tapjs/filter": "1.2.17",
-                "@tapjs/fixture": "1.2.17",
-                "@tapjs/intercept": "1.2.17",
-                "@tapjs/mock": "1.2.15",
-                "@tapjs/node-serialize": "1.2.6",
-                "@tapjs/snapshot": "1.2.17",
-                "@tapjs/spawn": "1.1.17",
-                "@tapjs/stdin": "1.1.17",
-                "@tapjs/typescript": "1.3.6",
-                "@tapjs/worker": "1.1.17",
-                "glob": "^10.3.10",
-                "jackspeak": "^2.3.6",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-2.0.1.tgz",
+            "integrity": "sha512-PKazf7r4+bLFATML2f/h8glGcSirXmzXUYlhFuxb4xHoOhHojyKgo1p8kSj+Ksxb3hVSCQlvyXgM8QYYaoMwog==",
+            "dev": true,
+            "requires": {
+                "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.7",
+                "@tapjs/after": "1.1.24",
+                "@tapjs/after-each": "2.0.1",
+                "@tapjs/asserts": "2.0.1",
+                "@tapjs/before": "2.0.1",
+                "@tapjs/before-each": "2.0.1",
+                "@tapjs/filter": "2.0.1",
+                "@tapjs/fixture": "2.0.1",
+                "@tapjs/intercept": "2.0.1",
+                "@tapjs/mock": "2.0.1",
+                "@tapjs/node-serialize": "2.0.1",
+                "@tapjs/snapshot": "2.0.1",
+                "@tapjs/spawn": "2.0.1",
+                "@tapjs/stdin": "2.0.1",
+                "@tapjs/typescript": "1.4.6",
+                "@tapjs/worker": "2.0.1",
+                "glob": "^10.3.16",
+                "jackspeak": "^3.1.2",
                 "mkdirp": "^3.0.0",
                 "resolve-import": "^1.4.5",
                 "rimraf": "^5.0.5",
                 "sync-content": "^1.0.1",
-                "tap-parser": "15.3.1",
-                "tshy": "^1.2.2",
-                "typescript": "5.2"
+                "tap-parser": "16.0.1",
+                "tshy": "^1.14.0",
+                "typescript": "5.4",
+                "walk-up-path": "^3.0.1"
             },
             "dependencies": {
                 "brace-expansion": {
@@ -6322,31 +6588,31 @@
                     }
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
                     }
                 },
                 "rimraf": {
-                    "version": "5.0.5",
-                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-                    "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+                    "version": "5.0.7",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+                    "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
                     "dev": true,
                     "requires": {
                         "glob": "^10.3.7"
@@ -6355,43 +6621,43 @@
             }
         },
         "@tapjs/typescript": {
-            "version": "1.3.6",
-            "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.3.6.tgz",
-            "integrity": "sha512-bHqQb06HcD1vFvSwElH0WK4cnCNthvA5OX/KBs5w1TNFHIeRHemp/hsSnGSNDwYwDETuOxD68rDZNTpNbzysBg==",
+            "version": "1.4.6",
+            "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.4.6.tgz",
+            "integrity": "sha512-6jxUQ7Mdb+Y2q8RJcwgZZ6dCR+X2u3hCL+xb1GDAtO7k1+B6z2b+z+I+FdhuO4YgrP0SLRjocL5rJM/xi9K7qw==",
             "dev": true,
             "requires": {
-                "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5"
+                "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.7"
             }
         },
         "@tapjs/worker": {
-            "version": "1.1.17",
-            "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.1.17.tgz",
-            "integrity": "sha512-DCRzEBT+OgP518rQqzlX6KawvGTegkeEjPVa/TB6Iifj8WOHJ+XtunkR7riIRGEoCEOMD49DCJXj70c+XP0jNw==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-2.0.1.tgz",
+            "integrity": "sha512-wegz8IxNEPIIAA+R76/avZgNmZ4iC7QGFbtXKGBU962/1lXTITxshRV6e21r0IBa7YLkSVgDuVSVB3+Qzve0Yg==",
             "dev": true,
             "requires": {}
         },
         "@tsconfig/node14": {
-            "version": "14.1.0",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.0.tgz",
-            "integrity": "sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==",
+            "version": "14.1.2",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.2.tgz",
+            "integrity": "sha512-1vncsbfCZ3TBLPxesRYz02Rn7SNJfbLoDVkcZ7F/ixOV6nwxwgdhD1mdPcc5YQ413qBJ8CvMxXMFfJ7oawjo7Q==",
             "dev": true
         },
         "@tsconfig/node16": {
-            "version": "16.1.1",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.1.tgz",
-            "integrity": "sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==",
+            "version": "16.1.3",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.3.tgz",
+            "integrity": "sha512-9nTOUBn+EMKO6rtSZJk+DcqsfgtlERGT9XPJ5PRj/HNENPCBY1yu/JEj5wT6GLtbCLBO2k46SeXDaY0pjMqypw==",
             "dev": true
         },
         "@tsconfig/node18": {
-            "version": "18.2.2",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz",
-            "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==",
+            "version": "18.2.4",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.4.tgz",
+            "integrity": "sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==",
             "dev": true
         },
         "@tsconfig/node20": {
-            "version": "20.1.2",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz",
-            "integrity": "sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==",
+            "version": "20.1.4",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz",
+            "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==",
             "dev": true
         },
         "@tufjs/canonical-json": {
@@ -6401,13 +6667,13 @@
             "dev": true
         },
         "@tufjs/models": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz",
-            "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==",
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz",
+            "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==",
             "dev": true,
             "requires": {
                 "@tufjs/canonical-json": "2.0.0",
-                "minimatch": "^9.0.3"
+                "minimatch": "^9.0.4"
             },
             "dependencies": {
                 "brace-expansion": {
@@ -6420,9 +6686,9 @@
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
@@ -6437,9 +6703,9 @@
             "dev": true
         },
         "@types/node": {
-            "version": "20.10.6",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz",
-            "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==",
+            "version": "20.13.0",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.13.0.tgz",
+            "integrity": "sha512-FM6AOb3khNkNIXPnHFDYaHerSv8uN22C91z098AnGccVu+Pcdhi+pNUFDi0iLmPIsVE0JBD0KVS7mzUYt4nRzQ==",
             "dev": true,
             "peer": true,
             "requires": {
@@ -6464,15 +6730,15 @@
             "requires": {}
         },
         "acorn-walk": {
-            "version": "8.3.1",
-            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz",
-            "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==",
+            "version": "8.3.2",
+            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+            "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
             "dev": true
         },
         "agent-base": {
-            "version": "7.1.0",
-            "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
-            "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+            "version": "7.1.1",
+            "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+            "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
             "dev": true,
             "requires": {
                 "debug": "^4.3.4"
@@ -6508,21 +6774,10 @@
             }
         },
         "ansi-escapes": {
-            "version": "6.2.0",
-            "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz",
-            "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==",
-            "dev": true,
-            "requires": {
-                "type-fest": "^3.0.0"
-            },
-            "dependencies": {
-                "type-fest": {
-                    "version": "3.13.1",
-                    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
-                    "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
-                    "dev": true
-                }
-            }
+            "version": "6.2.1",
+            "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz",
+            "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==",
+            "dev": true
         },
         "ansi-regex": {
             "version": "5.0.1",
@@ -6599,57 +6854,29 @@
                 "fill-range": "^7.0.1"
             }
         },
-        "builtins": {
-            "version": "5.0.1",
-            "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
-            "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
-            "dev": true,
-            "requires": {
-                "semver": "^7.0.0"
-            }
-        },
         "c8": {
-            "version": "8.0.1",
-            "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz",
-            "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==",
+            "version": "9.1.0",
+            "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz",
+            "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==",
             "dev": true,
             "requires": {
                 "@bcoe/v8-coverage": "^0.2.3",
                 "@istanbuljs/schema": "^0.1.3",
                 "find-up": "^5.0.0",
-                "foreground-child": "^2.0.0",
+                "foreground-child": "^3.1.1",
                 "istanbul-lib-coverage": "^3.2.0",
                 "istanbul-lib-report": "^3.0.1",
                 "istanbul-reports": "^3.1.6",
-                "rimraf": "^3.0.2",
                 "test-exclude": "^6.0.0",
                 "v8-to-istanbul": "^9.0.0",
                 "yargs": "^17.7.2",
                 "yargs-parser": "^21.1.1"
-            },
-            "dependencies": {
-                "foreground-child": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
-                    "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
-                    "dev": true,
-                    "requires": {
-                        "cross-spawn": "^7.0.0",
-                        "signal-exit": "^3.0.2"
-                    }
-                },
-                "signal-exit": {
-                    "version": "3.0.7",
-                    "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
-                    "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
-                    "dev": true
-                }
             }
         },
         "cacache": {
-            "version": "18.0.2",
-            "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz",
-            "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==",
+            "version": "18.0.3",
+            "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz",
+            "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==",
             "dev": true,
             "requires": {
                 "@npmcli/fs": "^3.1.0",
@@ -6676,22 +6903,22 @@
                     }
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
@@ -6714,9 +6941,9 @@
             }
         },
         "chokidar": {
-            "version": "3.5.3",
-            "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
-            "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+            "version": "3.6.0",
+            "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+            "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
             "dev": true,
             "requires": {
                 "anymatch": "~3.1.2",
@@ -6926,9 +7153,9 @@
             "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
         },
         "diff": {
-            "version": "5.1.0",
-            "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
-            "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+            "version": "5.2.0",
+            "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+            "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
             "dev": true
         },
         "doctrine": {
@@ -7262,9 +7489,9 @@
             "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
         },
         "hasown": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
-            "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+            "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
             "dev": true,
             "requires": {
                 "function-bind": "^1.1.2"
@@ -7276,9 +7503,9 @@
             "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
         },
         "hosted-git-info": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz",
-            "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==",
+            "version": "7.0.2",
+            "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+            "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
             "dev": true,
             "requires": {
                 "lru-cache": "^10.0.1"
@@ -7297,9 +7524,9 @@
             "dev": true
         },
         "http-proxy-agent": {
-            "version": "7.0.0",
-            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
-            "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
+            "version": "7.0.2",
+            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+            "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
             "dev": true,
             "requires": {
                 "agent-base": "^7.1.0",
@@ -7307,9 +7534,9 @@
             }
         },
         "https-proxy-agent": {
-            "version": "7.0.2",
-            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
-            "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
+            "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
             "dev": true,
             "requires": {
                 "agent-base": "^7.0.2",
@@ -7332,9 +7559,9 @@
             "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
         },
         "ignore-walk": {
-            "version": "6.0.4",
-            "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz",
-            "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==",
+            "version": "6.0.5",
+            "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz",
+            "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==",
             "dev": true,
             "requires": {
                 "minimatch": "^9.0.0"
@@ -7350,9 +7577,9 @@
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
@@ -7455,21 +7682,22 @@
                 }
             }
         },
-        "ip": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz",
-            "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==",
-            "dev": true
-        },
-        "is-actual-promise": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.1.tgz",
-            "integrity": "sha512-PlsL4tNv62lx5yN2HSqaRSTgIpUAPW7U6+crVB8HfWm5161rZpeqWbl0ZSqH2MAfRKXWSZVPRNbE/r8qPcb13g==",
+        "ip-address": {
+            "version": "9.0.5",
+            "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+            "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
             "dev": true,
             "requires": {
-                "tshy": "^1.7.0"
+                "jsbn": "1.1.0",
+                "sprintf-js": "^1.1.3"
             }
         },
+        "is-actual-promise": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.2.tgz",
+            "integrity": "sha512-xsFiO1of0CLsQnPZ1iXHNTyR9YszOeWKYv+q6n8oSFW3ipooFJ1j1lbRMgiMCr+pp2gLruESI4zb5Ak6eK5OnQ==",
+            "dev": true
+        },
         "is-binary-path": {
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -7580,9 +7808,9 @@
             }
         },
         "istanbul-reports": {
-            "version": "3.1.6",
-            "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
-            "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
+            "version": "3.1.7",
+            "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+            "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
             "dev": true,
             "requires": {
                 "html-escaper": "^2.0.0",
@@ -7590,9 +7818,9 @@
             }
         },
         "jackspeak": {
-            "version": "2.3.6",
-            "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
-            "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
+            "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
             "dev": true,
             "requires": {
                 "@isaacs/cliui": "^8.0.2",
@@ -7623,10 +7851,16 @@
             "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz",
             "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g=="
         },
+        "jsbn": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+            "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
+            "dev": true
+        },
         "json-parse-even-better-errors": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz",
-            "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==",
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+            "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
             "dev": true
         },
         "json-schema-traverse": {
@@ -7683,9 +7917,9 @@
             }
         },
         "lru-cache": {
-            "version": "10.1.0",
-            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz",
-            "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==",
+            "version": "10.2.2",
+            "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
+            "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
             "dev": true
         },
         "make-dir": {
@@ -7704,9 +7938,9 @@
             "dev": true
         },
         "make-fetch-happen": {
-            "version": "13.0.0",
-            "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz",
-            "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==",
+            "version": "13.0.1",
+            "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz",
+            "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==",
             "dev": true,
             "requires": {
                 "@npmcli/agent": "^2.0.0",
@@ -7718,6 +7952,7 @@
                 "minipass-flush": "^1.0.5",
                 "minipass-pipeline": "^1.2.4",
                 "negotiator": "^0.6.3",
+                "proc-log": "^4.2.0",
                 "promise-retry": "^2.0.1",
                 "ssri": "^10.0.0"
             }
@@ -7742,9 +7977,9 @@
             }
         },
         "minipass": {
-            "version": "7.0.4",
-            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
-            "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+            "version": "7.1.2",
+            "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+            "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
             "dev": true
         },
         "minipass-collect": {
@@ -7757,9 +7992,9 @@
             }
         },
         "minipass-fetch": {
-            "version": "3.0.4",
-            "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz",
-            "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==",
+            "version": "3.0.5",
+            "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz",
+            "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==",
             "dev": true,
             "requires": {
                 "encoding": "^0.1.13",
@@ -7916,9 +8151,9 @@
             "dev": true
         },
         "node-gyp": {
-            "version": "10.0.1",
-            "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz",
-            "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==",
+            "version": "10.1.0",
+            "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz",
+            "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==",
             "dev": true,
             "requires": {
                 "env-paths": "^2.2.0",
@@ -7943,16 +8178,16 @@
                     }
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "isexe": {
@@ -7962,14 +8197,20 @@
                     "dev": true
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
                     }
                 },
+                "proc-log": {
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz",
+                    "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==",
+                    "dev": true
+                },
                 "which": {
                     "version": "4.0.0",
                     "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
@@ -7988,18 +8229,18 @@
             "optional": true
         },
         "nopt": {
-            "version": "7.2.0",
-            "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz",
-            "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
+            "version": "7.2.1",
+            "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
+            "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
             "dev": true,
             "requires": {
                 "abbrev": "^2.0.0"
             }
         },
         "normalize-package-data": {
-            "version": "6.0.0",
-            "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz",
-            "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==",
+            "version": "6.0.1",
+            "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz",
+            "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==",
             "dev": true,
             "requires": {
                 "hosted-git-info": "^7.0.0",
@@ -8015,9 +8256,9 @@
             "dev": true
         },
         "npm-bundled": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz",
-            "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz",
+            "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==",
             "dev": true,
             "requires": {
                 "npm-normalize-package-bin": "^3.0.0"
@@ -8039,30 +8280,30 @@
             "dev": true
         },
         "npm-package-arg": {
-            "version": "11.0.1",
-            "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz",
-            "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==",
+            "version": "11.0.2",
+            "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz",
+            "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==",
             "dev": true,
             "requires": {
                 "hosted-git-info": "^7.0.0",
-                "proc-log": "^3.0.0",
+                "proc-log": "^4.0.0",
                 "semver": "^7.3.5",
                 "validate-npm-package-name": "^5.0.0"
             }
         },
         "npm-packlist": {
-            "version": "8.0.1",
-            "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.1.tgz",
-            "integrity": "sha512-MQpL27ZrsJQ2kiAuQPpZb5LtJwydNRnI15QWXsf3WHERu4rzjRj6Zju/My2fov7tLuu3Gle/uoIX/DDZ3u4O4Q==",
+            "version": "8.0.2",
+            "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz",
+            "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==",
             "dev": true,
             "requires": {
                 "ignore-walk": "^6.0.4"
             }
         },
         "npm-pick-manifest": {
-            "version": "9.0.0",
-            "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz",
-            "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==",
+            "version": "9.0.1",
+            "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz",
+            "integrity": "sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==",
             "dev": true,
             "requires": {
                 "npm-install-checks": "^6.0.0",
@@ -8072,18 +8313,19 @@
             }
         },
         "npm-registry-fetch": {
-            "version": "16.1.0",
-            "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz",
-            "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==",
+            "version": "16.2.1",
+            "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz",
+            "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==",
             "dev": true,
             "requires": {
+                "@npmcli/redact": "^1.1.0",
                 "make-fetch-happen": "^13.0.0",
                 "minipass": "^7.0.2",
                 "minipass-fetch": "^3.0.0",
                 "minipass-json-stream": "^1.0.1",
                 "minizlib": "^2.1.2",
                 "npm-package-arg": "^11.0.0",
-                "proc-log": "^3.0.0"
+                "proc-log": "^4.0.0"
             }
         },
         "once": {
@@ -8148,9 +8390,9 @@
             }
         },
         "pacote": {
-            "version": "17.0.5",
-            "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.5.tgz",
-            "integrity": "sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==",
+            "version": "17.0.7",
+            "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.7.tgz",
+            "integrity": "sha512-sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==",
             "dev": true,
             "requires": {
                 "@npmcli/git": "^5.0.0",
@@ -8164,11 +8406,11 @@
                 "npm-packlist": "^8.0.0",
                 "npm-pick-manifest": "^9.0.0",
                 "npm-registry-fetch": "^16.0.0",
-                "proc-log": "^3.0.0",
+                "proc-log": "^4.0.0",
                 "promise-retry": "^2.0.1",
                 "read-package-json": "^7.0.0",
                 "read-package-json-fast": "^3.0.0",
-                "sigstore": "^2.0.0",
+                "sigstore": "^2.2.0",
                 "ssri": "^10.0.0",
                 "tar": "^6.1.11"
             }
@@ -8203,12 +8445,12 @@
             "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
         },
         "path-scurry": {
-            "version": "1.10.1",
-            "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
-            "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+            "version": "1.11.1",
+            "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+            "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
             "dev": true,
             "requires": {
-                "lru-cache": "^9.1.1 || ^10.0.0",
+                "lru-cache": "^10.2.0",
                 "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
             }
         },
@@ -8261,9 +8503,9 @@
             }
         },
         "proc-log": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz",
-            "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==",
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
+            "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
             "dev": true
         },
         "process-on-spawn": {
@@ -8310,9 +8552,9 @@
             "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
         },
         "react": {
-            "version": "18.2.0",
-            "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
-            "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+            "version": "18.3.1",
+            "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+            "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
             "dev": true,
             "requires": {
                 "loose-envify": "^1.1.0"
@@ -8347,19 +8589,19 @@
             "dev": true
         },
         "react-reconciler": {
-            "version": "0.29.0",
-            "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz",
-            "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==",
+            "version": "0.29.2",
+            "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz",
+            "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==",
             "dev": true,
             "requires": {
                 "loose-envify": "^1.1.0",
-                "scheduler": "^0.23.0"
+                "scheduler": "^0.23.2"
             }
         },
         "read-package-json": {
-            "version": "7.0.0",
-            "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz",
-            "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==",
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.1.tgz",
+            "integrity": "sha512-8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==",
             "dev": true,
             "requires": {
                 "glob": "^10.2.2",
@@ -8378,22 +8620,22 @@
                     }
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
@@ -8451,22 +8693,22 @@
                     }
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
@@ -8527,33 +8769,19 @@
             "optional": true
         },
         "scheduler": {
-            "version": "0.23.0",
-            "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
-            "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+            "version": "0.23.2",
+            "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+            "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
             "dev": true,
             "requires": {
                 "loose-envify": "^1.1.0"
             }
         },
         "semver": {
-            "version": "7.5.4",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
-            "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
-            "dev": true,
-            "requires": {
-                "lru-cache": "^6.0.0"
-            },
-            "dependencies": {
-                "lru-cache": {
-                    "version": "6.0.0",
-                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-                    "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-                    "dev": true,
-                    "requires": {
-                        "yallist": "^4.0.0"
-                    }
-                }
-            }
+            "version": "7.6.2",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+            "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+            "dev": true
         },
         "shebang-command": {
             "version": "2.0.0",
@@ -8575,15 +8803,17 @@
             "dev": true
         },
         "sigstore": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz",
-            "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==",
+            "version": "2.3.1",
+            "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz",
+            "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==",
             "dev": true,
             "requires": {
-                "@sigstore/bundle": "^2.1.0",
-                "@sigstore/protobuf-specs": "^0.2.1",
-                "@sigstore/sign": "^2.1.0",
-                "@sigstore/tuf": "^2.1.0"
+                "@sigstore/bundle": "^2.3.2",
+                "@sigstore/core": "^1.0.0",
+                "@sigstore/protobuf-specs": "^0.3.2",
+                "@sigstore/sign": "^2.3.2",
+                "@sigstore/tuf": "^2.3.4",
+                "@sigstore/verify": "^1.2.1"
             }
         },
         "slice-ansi": {
@@ -8611,22 +8841,22 @@
             "dev": true
         },
         "socks": {
-            "version": "2.7.1",
-            "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
-            "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+            "version": "2.8.3",
+            "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
+            "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
             "dev": true,
             "requires": {
-                "ip": "^2.0.0",
+                "ip-address": "^9.0.5",
                 "smart-buffer": "^4.2.0"
             }
         },
         "socks-proxy-agent": {
-            "version": "8.0.2",
-            "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz",
-            "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==",
+            "version": "8.0.3",
+            "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz",
+            "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==",
             "dev": true,
             "requires": {
-                "agent-base": "^7.0.2",
+                "agent-base": "^7.1.1",
                 "debug": "^4.3.4",
                 "socks": "^2.7.1"
             }
@@ -8642,9 +8872,9 @@
             }
         },
         "spdx-exceptions": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
-            "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+            "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
             "dev": true
         },
         "spdx-expression-parse": {
@@ -8658,15 +8888,21 @@
             }
         },
         "spdx-license-ids": {
-            "version": "3.0.16",
-            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
-            "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
+            "version": "3.0.18",
+            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
+            "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
+            "dev": true
+        },
+        "sprintf-js": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+            "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
             "dev": true
         },
         "ssri": {
-            "version": "10.0.5",
-            "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz",
-            "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==",
+            "version": "10.0.6",
+            "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+            "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
             "dev": true,
             "requires": {
                 "minipass": "^7.0.3"
@@ -8825,31 +9061,31 @@
                     }
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
                     }
                 },
                 "rimraf": {
-                    "version": "5.0.5",
-                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-                    "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+                    "version": "5.0.7",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+                    "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
                     "dev": true,
                     "requires": {
                         "glob": "^10.3.7"
@@ -8858,49 +9094,49 @@
             }
         },
         "tap": {
-            "version": "18.6.1",
-            "resolved": "https://registry.npmjs.org/tap/-/tap-18.6.1.tgz",
-            "integrity": "sha512-5cBQhJ1gdbsrTR3tA5kZZTts0HyOML6bcM7pEF7GF8d6y1ajfRMjbInS1Ty7/x2Ip0ko3cY1dYjPJ9JFNPsm7w==",
-            "dev": true,
-            "requires": {
-                "@tapjs/after": "1.1.17",
-                "@tapjs/after-each": "1.1.17",
-                "@tapjs/asserts": "1.1.17",
-                "@tapjs/before": "1.1.17",
-                "@tapjs/before-each": "1.1.17",
-                "@tapjs/core": "1.4.6",
-                "@tapjs/filter": "1.2.17",
-                "@tapjs/fixture": "1.2.17",
-                "@tapjs/intercept": "1.2.17",
-                "@tapjs/mock": "1.2.15",
-                "@tapjs/node-serialize": "1.2.6",
-                "@tapjs/run": "1.4.16",
-                "@tapjs/snapshot": "1.2.17",
-                "@tapjs/spawn": "1.1.17",
-                "@tapjs/stdin": "1.1.17",
-                "@tapjs/test": "1.3.17",
-                "@tapjs/typescript": "1.3.6",
-                "@tapjs/worker": "1.1.17",
+            "version": "19.0.2",
+            "resolved": "https://registry.npmjs.org/tap/-/tap-19.0.2.tgz",
+            "integrity": "sha512-SRGulk1RKlVuYtnPeephj+xyE0sG9CvGlKYP4lymBZykLtkwBPnEBjQ2iQmLX5z0BFEMfKh8G4bvZkhoSJb3kg==",
+            "dev": true,
+            "requires": {
+                "@tapjs/after": "1.1.24",
+                "@tapjs/after-each": "2.0.1",
+                "@tapjs/asserts": "2.0.1",
+                "@tapjs/before": "2.0.1",
+                "@tapjs/before-each": "2.0.1",
+                "@tapjs/core": "2.0.1",
+                "@tapjs/filter": "2.0.1",
+                "@tapjs/fixture": "2.0.1",
+                "@tapjs/intercept": "2.0.1",
+                "@tapjs/mock": "2.0.1",
+                "@tapjs/node-serialize": "2.0.1",
+                "@tapjs/run": "2.0.2",
+                "@tapjs/snapshot": "2.0.1",
+                "@tapjs/spawn": "2.0.1",
+                "@tapjs/stdin": "2.0.1",
+                "@tapjs/test": "2.0.1",
+                "@tapjs/typescript": "1.4.6",
+                "@tapjs/worker": "2.0.1",
                 "resolve-import": "^1.4.5"
             }
         },
         "tap-parser": {
-            "version": "15.3.1",
-            "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-15.3.1.tgz",
-            "integrity": "sha512-hwAtXX5TBGt2MJeYvASc7DjP48PUzA7P8RTbLxQcgKCEH7ICD5IsRco7l5YvkzjHlZbUbeI9wzO8B4hw2sKgnQ==",
+            "version": "16.0.1",
+            "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-16.0.1.tgz",
+            "integrity": "sha512-vKianJzSSzLkJ3bHBwzvZDDRi9yGMwkRANJxwPAjAue50owB8rlluYySmTN4tZVH0nsh6stvrQbg9kuCL5svdg==",
             "dev": true,
             "requires": {
                 "events-to-array": "^2.0.3",
-                "tap-yaml": "2.2.1"
+                "tap-yaml": "2.2.2"
             }
         },
         "tap-yaml": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.2.1.tgz",
-            "integrity": "sha512-ovZuUMLAIH59jnFHXKEGJ+WyDYl6Cuduwg9qpvnqkZOUA1nU84q02Sry1HT0KXcdv2uB91bEKKxnIybBgrb6oA==",
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.2.2.tgz",
+            "integrity": "sha512-MWG4OpAKtNoNVjCz/BqlDJiwTM99tiHRhHPS4iGOe1ZS0CgM4jSFH92lthSFvvy4EdDjQZDV7uYqUFlU9JuNhw==",
             "dev": true,
             "requires": {
-                "yaml": "^2.3.0",
+                "yaml": "^2.4.1",
                 "yaml-types": "^0.3.0"
             }
         },
@@ -8994,19 +9230,21 @@
             "dev": true
         },
         "tshy": {
-            "version": "1.8.2",
-            "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.8.2.tgz",
-            "integrity": "sha512-aGlSY+jkZYAv0YDgtdv1U2vvbGTUdlXmhVP4uegujlJ/wuznmJqSu5cUV/6IW7N7a3HFRhofWvIS/FquYN9zgA==",
+            "version": "1.14.0",
+            "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.14.0.tgz",
+            "integrity": "sha512-YiUujgi4Jb+t2I48LwSRzHkBpniH9WjjktNozn+nlsGmVemKSjDNY7EwBRPvPCr5zAC/3ITAYWH9Z7kUinGSrw==",
             "dev": true,
             "requires": {
                 "chalk": "^5.3.0",
-                "chokidar": "^3.5.3",
+                "chokidar": "^3.6.0",
                 "foreground-child": "^3.1.1",
+                "minimatch": "^9.0.4",
                 "mkdirp": "^3.0.1",
-                "resolve-import": "^1.4.4",
+                "polite-json": "^4.0.1",
+                "resolve-import": "^1.4.5",
                 "rimraf": "^5.0.1",
                 "sync-content": "^1.0.2",
-                "typescript": "5.2",
+                "typescript": "^5.4.5",
                 "walk-up-path": "^3.0.1"
             },
             "dependencies": {
@@ -9026,31 +9264,31 @@
                     "dev": true
                 },
                 "glob": {
-                    "version": "10.3.10",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
-                    "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+                    "version": "10.4.1",
+                    "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+                    "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
                     "dev": true,
                     "requires": {
                         "foreground-child": "^3.1.0",
-                        "jackspeak": "^2.3.5",
-                        "minimatch": "^9.0.1",
-                        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
-                        "path-scurry": "^1.10.1"
+                        "jackspeak": "^3.1.2",
+                        "minimatch": "^9.0.4",
+                        "minipass": "^7.1.2",
+                        "path-scurry": "^1.11.1"
                     }
                 },
                 "minimatch": {
-                    "version": "9.0.3",
-                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
-                    "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+                    "version": "9.0.4",
+                    "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+                    "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
                     "dev": true,
                     "requires": {
                         "brace-expansion": "^2.0.1"
                     }
                 },
                 "rimraf": {
-                    "version": "5.0.5",
-                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz",
-                    "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==",
+                    "version": "5.0.7",
+                    "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz",
+                    "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==",
                     "dev": true,
                     "requires": {
                         "glob": "^10.3.7"
@@ -9064,14 +9302,14 @@
             "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
         },
         "tuf-js": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz",
-            "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==",
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz",
+            "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==",
             "dev": true,
             "requires": {
-                "@tufjs/models": "2.0.0",
+                "@tufjs/models": "2.0.1",
                 "debug": "^4.3.4",
-                "make-fetch-happen": "^13.0.0"
+                "make-fetch-happen": "^13.0.1"
             }
         },
         "type-check": {
@@ -9088,9 +9326,9 @@
             "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
         },
         "typescript": {
-            "version": "5.2.2",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
-            "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+            "version": "5.4.5",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+            "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
             "dev": true
         },
         "undici-types": {
@@ -9150,9 +9388,9 @@
             },
             "dependencies": {
                 "@jridgewell/trace-mapping": {
-                    "version": "0.3.20",
-                    "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
-                    "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
+                    "version": "0.3.25",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+                    "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
                     "dev": true,
                     "requires": {
                         "@jridgewell/resolve-uri": "^3.1.0",
@@ -9172,13 +9410,10 @@
             }
         },
         "validate-npm-package-name": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz",
-            "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==",
-            "dev": true,
-            "requires": {
-                "builtins": "^5.0.0"
-            }
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
+            "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
+            "dev": true
         },
         "walk-up-path": {
             "version": "3.0.1",
@@ -9284,9 +9519,9 @@
             "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
         },
         "ws": {
-            "version": "8.16.0",
-            "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
-            "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+            "version": "8.17.0",
+            "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
+            "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
             "dev": true,
             "requires": {}
         },
@@ -9303,9 +9538,9 @@
             "dev": true
         },
         "yaml": {
-            "version": "2.3.4",
-            "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
-            "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
+            "version": "2.4.2",
+            "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
+            "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
             "dev": true
         },
         "yaml-types": {
diff --git a/package.json b/package.json
index fd8ac9cf..7e14c89f 100644
--- a/package.json
+++ b/package.json
@@ -74,7 +74,7 @@
     "license": "GPL-3.0",
     "devDependencies": {
         "chokidar": "^3.5.3",
-        "tap": "^18.4.0",
+        "tap": "^19.0.2",
         "tcompare": "^6.0.0"
     },
     "tap": {