From 8f0dbc9974042d9f365772ace0aa8b5b9a23cada Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 01:39:28 +0000 Subject: [PATCH 1/8] fix(deps): lock file maintenance minor/patch updates (#5981) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 607 +++++++++++++++++++------------------- package.json | 20 +- rust/Cargo.lock | 52 ++-- rust/parse_ast/Cargo.toml | 6 +- 4 files changed, 345 insertions(+), 340 deletions(-) diff --git a/package-lock.json b/package-lock.json index aee11d6d1..16f1a091b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,11 +17,11 @@ "devDependencies": { "@codemirror/commands": "^6.8.1", "@codemirror/lang-javascript": "^6.2.4", - "@codemirror/language": "^6.11.0", + "@codemirror/language": "^6.11.1", "@codemirror/search": "^6.5.11", "@codemirror/state": "^6.5.2", - "@codemirror/view": "^6.36.8", - "@eslint/js": "^9.27.0", + "@codemirror/view": "^6.37.1", + "@eslint/js": "^9.28.0", "@inquirer/prompts": "^7.5.3", "@jridgewell/sourcemap-codec": "^1.5.0", "@mermaid-js/mermaid-cli": "^11.4.2", @@ -37,7 +37,7 @@ "@rollup/pluginutils": "^5.1.4", "@shikijs/vitepress-twoslash": "^3.4.2", "@types/mocha": "^10.0.10", - "@types/node": "^18.19.103", + "@types/node": "^18.19.110", "@types/picomatch": "^4.0.0", "@types/semver": "^7.7.0", "@types/yargs-parser": "^21.0.3", @@ -54,9 +54,9 @@ "date-time": "^4.0.0", "es5-shim": "^4.6.7", "es6-shim": "^0.35.8", - "eslint": "^9.27.0", + "eslint": "^9.28.0", "eslint-config-prettier": "^10.1.5", - "eslint-plugin-prettier": "^5.4.0", + "eslint-plugin-prettier": "^5.4.1", "eslint-plugin-unicorn": "^59.0.1", "eslint-plugin-vue": "^10.1.0", "fixturify": "^3.0.0", @@ -66,7 +66,7 @@ "globals": "^16.2.0", "husky": "^9.1.7", "is-reference": "^3.0.3", - "lint-staged": "^16.0.0", + "lint-staged": "^16.1.0", "locate-character": "^3.0.0", "magic-string": "^0.30.17", "mocha": "^11.5.0", @@ -89,13 +89,13 @@ "source-map": "^0.7.4", "source-map-support": "^0.5.21", "systemjs": "^6.15.1", - "terser": "^5.39.2", + "terser": "^5.40.0", "tslib": "^2.8.1", "typescript": "^5.8.3", - "typescript-eslint": "^8.32.1", + "typescript-eslint": "^8.33.1", "vite": "^6.3.5", "vitepress": "^1.6.3", - "vue": "^3.5.15", + "vue": "^3.5.16", "vue-tsc": "^2.2.10", "wasm-pack": "^0.13.1", "yargs-parser": "^21.1.1" @@ -158,41 +158,41 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.25.0.tgz", - "integrity": "sha512-1pfQulNUYNf1Tk/svbfjfkLBS36zsuph6m+B6gDkPEivFmso/XnRgwDvjAx80WNtiHnmeNjIXdF7Gos8+OLHqQ==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.27.0.tgz", + "integrity": "sha512-SITU5umoknxETtw67TxJu9njyMkWiH8pM+Bvw4dzfuIrIAT6Y1rmwV4y0A0didWoT+6xVuammIykbtBMolBcmg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.25.0.tgz", - "integrity": "sha512-AFbG6VDJX/o2vDd9hqncj1B6B4Tulk61mY0pzTtzKClyTDlNP0xaUiEKhl6E7KO9I/x0FJF5tDCm0Hn6v5x18A==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.27.0.tgz", + "integrity": "sha512-go1b9qIZK5vYEQ7jD2bsfhhhVsoh9cFxQ5xF8TzTsg2WOCZR3O92oXCkq15SOK0ngJfqDU6a/k0oZ4KuEnih1Q==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.25.0.tgz", - "integrity": "sha512-il1zS/+Rc6la6RaCdSZ2YbJnkQC6W1wiBO8+SH+DE6CPMWBU6iDVzH0sCKSAtMWl9WBxoN6MhNjGBnCv9Yy2bA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.27.0.tgz", + "integrity": "sha512-tnFOzdNuMzsz93kOClj3fKfuYoF3oYaEB5bggULSj075GJ7HUNedBEm7a6ScrjtnOaOtipbnT7veUpHA4o4wEQ==", "dev": true, "license": "MIT", "engines": { @@ -200,151 +200,151 @@ } }, "node_modules/@algolia/client-insights": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.25.0.tgz", - "integrity": "sha512-blbjrUH1siZNfyCGeq0iLQu00w3a4fBXm0WRIM0V8alcAPo7rWjLbMJMrfBtzL9X5ic6wgxVpDADXduGtdrnkw==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.27.0.tgz", + "integrity": "sha512-y1qgw39qZijjQBXrqZTiwK1cWgWGRiLpJNWBv9w36nVMKfl9kInrfsYmdBAfmlhVgF/+Woe0y1jQ7pa4HyShAw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.25.0.tgz", - "integrity": "sha512-aywoEuu1NxChBcHZ1pWaat0Plw7A8jDMwjgRJ00Mcl7wGlwuPt5dJ/LTNcg3McsEUbs2MBNmw0ignXBw9Tbgow==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.27.0.tgz", + "integrity": "sha512-XluG9qPZKEbiLoIfXTKbABsWDNOMPx0t6T2ImJTTeuX+U/zBdmfcqqgcgkqXp+vbXof/XX/4of9Eqo1JaqEmKw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.25.0.tgz", - "integrity": "sha512-a/W2z6XWKjKjIW1QQQV8PTTj1TXtaKx79uR3NGBdBdGvVdt24KzGAaN7sCr5oP8DW4D3cJt44wp2OY/fZcPAVA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.27.0.tgz", + "integrity": "sha512-V8/To+SsAl2sdw2AAjeLJuCW1L+xpz+LAGerJK7HKqHzE5yQhWmIWZTzqYQcojkii4iBMYn0y3+uReWqT8XVSQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.25.0.tgz", - "integrity": "sha512-9rUYcMIBOrCtYiLX49djyzxqdK9Dya/6Z/8sebPn94BekT+KLOpaZCuc6s0Fpfq7nx5J6YY5LIVFQrtioK9u0g==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.27.0.tgz", + "integrity": "sha512-EJJ7WmvmUXZdchueKFCK8UZFyLqy4Hz64snNp0cTc7c0MKaSeDGYEDxVsIJKp15r7ORaoGxSyS4y6BGZMXYuCg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/ingestion": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.25.0.tgz", - "integrity": "sha512-jJeH/Hk+k17Vkokf02lkfYE4A+EJX+UgnMhTLR/Mb+d1ya5WhE+po8p5a/Nxb6lo9OLCRl6w3Hmk1TX1e9gVbQ==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.27.0.tgz", + "integrity": "sha512-xNCyWeqpmEo4EdmpG57Fs1fJIQcPwt5NnJ6MBdXnUdMVXF4f5PHgza+HQWQQcYpCsune96jfmR0v7us6gRIlCw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.25.0.tgz", - "integrity": "sha512-Ls3i1AehJ0C6xaHe7kK9vPmzImOn5zBg7Kzj8tRYIcmCWVyuuFwCIsbuIIz/qzUf1FPSWmw0TZrGeTumk2fqXg==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.27.0.tgz", + "integrity": "sha512-P0NDiEFyt9UYQLBI0IQocIT7xHpjMpoFN3UDeerbztlkH9HdqT0GGh1SHYmNWpbMWIGWhSJTtz6kSIWvFu4+pw==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.25.0.tgz", - "integrity": "sha512-79sMdHpiRLXVxSjgw7Pt4R1aNUHxFLHiaTDnN2MQjHwJ1+o3wSseb55T9VXU4kqy3m7TUme3pyRhLk5ip/S4Mw==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.27.0.tgz", + "integrity": "sha512-cqfTMF1d1cc7hg0vITNAFxJZas7MJ4Obc36WwkKpY23NOtGb+4tH9X7UKlQa2PmTgbXIANoJ/DAQTeiVlD2I4Q==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.25.0.tgz", - "integrity": "sha512-JLaF23p1SOPBmfEqozUAgKHQrGl3z/Z5RHbggBu6s07QqXXcazEsub5VLonCxGVqTv6a61AAPr8J1G5HgGGjEw==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.27.0.tgz", + "integrity": "sha512-ErenYTcXl16wYXtf0pxLl9KLVxIztuehqXHfW9nNsD8mz9OX42HbXuPzT7y6JcPiWJpc/UU/LY5wBTB65vsEUg==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0" + "@algolia/client-common": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.25.0.tgz", - "integrity": "sha512-rtzXwqzFi1edkOF6sXxq+HhmRKDy7tz84u0o5t1fXwz0cwx+cjpmxu/6OQKTdOJFS92JUYHsG51Iunie7xbqfQ==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.27.0.tgz", + "integrity": "sha512-CNOvmXsVi+IvT7z1d+6X7FveVkgEQwTNgipjQCHTIbF9KSMfZR7tUsJC+NpELrm10ALdOMauah84ybs9rw1cKQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0" + "@algolia/client-common": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.25.0.tgz", - "integrity": "sha512-ZO0UKvDyEFvyeJQX0gmZDQEvhLZ2X10K+ps6hViMo1HgE2V8em00SwNsQ+7E/52a+YiBkVWX61pJJJE44juDMQ==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.27.0.tgz", + "integrity": "sha512-Nx9EdLYZDsaYFTthqmc0XcVvsx6jqeEX8fNiYOB5i2HboQwl8pJPj1jFhGqoGd0KG7KFR+sdPO5/e0EDDAru2Q==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-common": "5.25.0" + "@algolia/client-common": "5.27.0" }, "engines": { "node": ">= 14.0.0" @@ -417,9 +417,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.3.tgz", - "integrity": "sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", "dev": true, "license": "MIT", "engines": { @@ -427,9 +427,9 @@ } }, "node_modules/@babel/core": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.3.tgz", - "integrity": "sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", "dev": true, "license": "MIT", "dependencies": { @@ -438,10 +438,10 @@ "@babel/generator": "^7.27.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.3", - "@babel/parser": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.3", + "@babel/traverse": "^7.27.4", "@babel/types": "^7.27.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -465,13 +465,13 @@ "license": "MIT" }, "node_modules/@babel/generator": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.3.tgz", - "integrity": "sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.3", + "@babel/parser": "^7.27.5", "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", @@ -561,23 +561,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.3.tgz", - "integrity": "sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3" + "@babel/types": "^7.27.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.3.tgz", - "integrity": "sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", "dev": true, "license": "MIT", "dependencies": { @@ -606,15 +606,15 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.3.tgz", - "integrity": "sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.3", + "@babel/parser": "^7.27.4", "@babel/template": "^7.27.2", "@babel/types": "^7.27.3", "debug": "^4.3.1", @@ -635,9 +635,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.3.tgz", - "integrity": "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -742,9 +742,9 @@ } }, "node_modules/@codemirror/language": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.11.0.tgz", - "integrity": "sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==", + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.11.1.tgz", + "integrity": "sha512-5kS1U7emOGV84vxC+ruBty5sUgcD0te6dyupyRVG2zaSjhTDM73LhVKUtVwiqSe6QwmEoA4SCiU8AKPFyumAWQ==", "dev": true, "license": "MIT", "dependencies": { @@ -791,13 +791,14 @@ } }, "node_modules/@codemirror/view": { - "version": "6.37.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.37.0.tgz", - "integrity": "sha512-ghHIeRGfWB8h9Tc3sMdr7D5zp4sZvlCzG36Xjdh2ymmfAwvSaCJAAsL3HLyLEnHcE953+5Uox1bx5OS+YCW/7Q==", + "version": "6.37.1", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.37.1.tgz", + "integrity": "sha512-Qy4CAUwngy/VQkEz0XzMKVRcckQuqLYWKqVpDDDghBe5FSXSqfVrJn49nw3ePZHxRUz4nRmb05Lgi+9csWo4eg==", "dev": true, "license": "MIT", "dependencies": { "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } @@ -1506,9 +1507,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.27.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.27.0.tgz", - "integrity": "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==", + "version": "9.28.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz", + "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==", "dev": true, "license": "MIT", "engines": { @@ -1543,9 +1544,9 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz", - "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz", + "integrity": "sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==", "dev": true, "license": "MIT", "dependencies": { @@ -1553,13 +1554,13 @@ } }, "node_modules/@floating-ui/dom": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz", - "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.1.tgz", + "integrity": "sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==", "dev": true, "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.0", + "@floating-ui/core": "^1.7.1", "@floating-ui/utils": "^0.2.9" } }, @@ -1721,9 +1722,9 @@ } }, "node_modules/@iconify-json/simple-icons": { - "version": "1.2.36", - "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.36.tgz", - "integrity": "sha512-ZMpVdoW/7hhbt2aHVSvudjH8eSVNNjKkAAjwAQHgiuPUiIfbvNakVin+H9uhUz4N9TbDT/nanzV/4Slb+6dDXw==", + "version": "1.2.37", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.37.tgz", + "integrity": "sha512-jZwTBznpYVDYKWyAuRpepPpCiHScVrX6f8WRX8ReX6pdii99LYVHwJywKcH2excWQrWmBomC9nkxGlEKzXZ/wQ==", "dev": true, "license": "CC0-1.0", "dependencies": { @@ -2500,9 +2501,9 @@ } }, "node_modules/@pkgr/core": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", - "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", + "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", "dev": true, "license": "MIT", "engines": { @@ -3036,59 +3037,59 @@ ] }, "node_modules/@shikijs/core": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.4.2.tgz", - "integrity": "sha512-AG8vnSi1W2pbgR2B911EfGqtLE9c4hQBYkv/x7Z+Kt0VxhgQKcW7UNDVYsu9YxwV6u+OJrvdJrMq6DNWoBjihQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.6.0.tgz", + "integrity": "sha512-9By7Xb3olEX0o6UeJyPLI1PE1scC4d3wcVepvtv2xbuN9/IThYN4Wcwh24rcFeASzPam11MCq8yQpwwzCgSBRw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.4.2", + "@shikijs/types": "3.6.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "node_modules/@shikijs/engine-javascript": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.4.2.tgz", - "integrity": "sha512-1/adJbSMBOkpScCE/SB6XkjJU17ANln3Wky7lOmrnpl+zBdQ1qXUJg2GXTYVHRq+2j3hd1DesmElTXYDgtfSOQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.6.0.tgz", + "integrity": "sha512-7YnLhZG/TU05IHMG14QaLvTW/9WiK8SEYafceccHUSXs2Qr5vJibUwsDfXDLmRi0zHdzsxrGKpSX6hnqe0k8nA==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.4.2", + "@shikijs/types": "3.6.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.4.2.tgz", - "integrity": "sha512-zcZKMnNndgRa3ORja6Iemsr3DrLtkX3cAF7lTJkdMB6v9alhlBsX9uNiCpqofNrXOvpA3h6lHcLJxgCIhVOU5Q==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.6.0.tgz", + "integrity": "sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.4.2", + "@shikijs/types": "3.6.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.4.2.tgz", - "integrity": "sha512-H6azIAM+OXD98yztIfs/KH5H4PU39t+SREhmM8LaNXyUrqj2mx+zVkr8MWYqjceSjDw9I1jawm1WdFqU806rMA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.6.0.tgz", + "integrity": "sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.4.2" + "@shikijs/types": "3.6.0" } }, "node_modules/@shikijs/themes": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.4.2.tgz", - "integrity": "sha512-qAEuAQh+brd8Jyej2UDDf+b4V2g1Rm8aBIdvt32XhDPrHvDkEnpb7Kzc9hSuHUxz0Iuflmq7elaDuQAP9bHIhg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.6.0.tgz", + "integrity": "sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.4.2" + "@shikijs/types": "3.6.0" } }, "node_modules/@shikijs/transformers": { @@ -3164,14 +3165,14 @@ } }, "node_modules/@shikijs/twoslash": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-3.4.2.tgz", - "integrity": "sha512-zRNPmi2lA8o+k7UQfmbPwH2jPvfW9OrgpsO4OUOM+8QTxrepFU9TNF8vNcxZEW5cbishQkJrV19cI9Zk3cb5aQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-3.6.0.tgz", + "integrity": "sha512-AxRxLWtmrVftwxN/2hSL6Hym+bannS+zuUEXpbNuo6BpG4jHTM0KEkICEH3B3Gm5ZNzGdI74NdDiAqAZ6WPJuQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "3.4.2", - "@shikijs/types": "3.4.2", + "@shikijs/core": "3.6.0", + "@shikijs/types": "3.6.0", "twoslash": "^0.3.1" }, "peerDependencies": { @@ -3179,9 +3180,9 @@ } }, "node_modules/@shikijs/types": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.4.2.tgz", - "integrity": "sha512-zHC1l7L+eQlDXLnxvM9R91Efh2V4+rN3oMVS2swCBssbj2U/FBwybD1eeLaq8yl/iwT+zih8iUbTBCgGZOYlVg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.6.0.tgz", + "integrity": "sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==", "dev": true, "license": "MIT", "dependencies": { @@ -3190,9 +3191,9 @@ } }, "node_modules/@shikijs/vitepress-twoslash": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@shikijs/vitepress-twoslash/-/vitepress-twoslash-3.4.2.tgz", - "integrity": "sha512-irVhypyX0vs79S00buqBGYeBJnBtBV50nqppPcKz3TiGlaWxH3BqcCLbJ6cl39N1hxzzuI51SVQv21SbjfsCBA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/vitepress-twoslash/-/vitepress-twoslash-3.6.0.tgz", + "integrity": "sha512-pUoRj98UDV41CxfxPysrBryc1/1WdUL93ogcD/s156i4XcujnCfJJc+y5vR3W5Nc1R31VUacwWsI8HhaRRS/uA==", "dev": true, "license": "MIT", "dependencies": { @@ -3201,10 +3202,10 @@ "mdast-util-from-markdown": "^2.0.2", "mdast-util-gfm": "^3.1.0", "mdast-util-to-hast": "^13.2.0", - "shiki": "3.4.2", + "shiki": "3.6.0", "twoslash": "^0.3.1", "twoslash-vue": "^0.3.1", - "vue": "^3.5.14" + "vue": "^3.5.16" } }, "node_modules/@shikijs/vscode-textmate": { @@ -3686,9 +3687,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.107", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.107.tgz", - "integrity": "sha512-uvHN/vnsPj8hJWaqXUjT59LKYh0RlZXsdYa4CGz4R9aFGePPsUPN0xlHrDzOset937H2TunFJ8SwPCX69y9qhA==", + "version": "18.19.111", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.111.tgz", + "integrity": "sha512-90sGdgA+QLJr1F9X79tQuEut0gEYIfkX9pydI4XGRgvFo9g2JWswefI+WUSUHPYVBHYSEfTEqBxA5hQvAZB3Mw==", "dev": true, "license": "MIT", "dependencies": { @@ -3779,17 +3780,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.0.tgz", - "integrity": "sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.1.tgz", + "integrity": "sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.33.0", - "@typescript-eslint/type-utils": "8.33.0", - "@typescript-eslint/utils": "8.33.0", - "@typescript-eslint/visitor-keys": "8.33.0", + "@typescript-eslint/scope-manager": "8.33.1", + "@typescript-eslint/type-utils": "8.33.1", + "@typescript-eslint/utils": "8.33.1", + "@typescript-eslint/visitor-keys": "8.33.1", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -3803,15 +3804,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.33.0", + "@typescript-eslint/parser": "^8.33.1", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", - "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -3819,16 +3820,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.0.tgz", - "integrity": "sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.1.tgz", + "integrity": "sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.33.0", - "@typescript-eslint/types": "8.33.0", - "@typescript-eslint/typescript-estree": "8.33.0", - "@typescript-eslint/visitor-keys": "8.33.0", + "@typescript-eslint/scope-manager": "8.33.1", + "@typescript-eslint/types": "8.33.1", + "@typescript-eslint/typescript-estree": "8.33.1", + "@typescript-eslint/visitor-keys": "8.33.1", "debug": "^4.3.4" }, "engines": { @@ -3844,14 +3845,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.0.tgz", - "integrity": "sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.1.tgz", + "integrity": "sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.33.0", - "@typescript-eslint/types": "^8.33.0", + "@typescript-eslint/tsconfig-utils": "^8.33.1", + "@typescript-eslint/types": "^8.33.1", "debug": "^4.3.4" }, "engines": { @@ -3860,17 +3861,20 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.0.tgz", - "integrity": "sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.1.tgz", + "integrity": "sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.33.0", - "@typescript-eslint/visitor-keys": "8.33.0" + "@typescript-eslint/types": "8.33.1", + "@typescript-eslint/visitor-keys": "8.33.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3881,9 +3885,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.0.tgz", - "integrity": "sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.1.tgz", + "integrity": "sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==", "dev": true, "license": "MIT", "engines": { @@ -3898,14 +3902,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.33.0.tgz", - "integrity": "sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.33.1.tgz", + "integrity": "sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.33.0", - "@typescript-eslint/utils": "8.33.0", + "@typescript-eslint/typescript-estree": "8.33.1", + "@typescript-eslint/utils": "8.33.1", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -3922,9 +3926,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.0.tgz", - "integrity": "sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.1.tgz", + "integrity": "sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==", "dev": true, "license": "MIT", "engines": { @@ -3936,16 +3940,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.0.tgz", - "integrity": "sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.1.tgz", + "integrity": "sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.33.0", - "@typescript-eslint/tsconfig-utils": "8.33.0", - "@typescript-eslint/types": "8.33.0", - "@typescript-eslint/visitor-keys": "8.33.0", + "@typescript-eslint/project-service": "8.33.1", + "@typescript-eslint/tsconfig-utils": "8.33.1", + "@typescript-eslint/types": "8.33.1", + "@typescript-eslint/visitor-keys": "8.33.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3965,16 +3969,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.0.tgz", - "integrity": "sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.1.tgz", + "integrity": "sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.33.0", - "@typescript-eslint/types": "8.33.0", - "@typescript-eslint/typescript-estree": "8.33.0" + "@typescript-eslint/scope-manager": "8.33.1", + "@typescript-eslint/types": "8.33.1", + "@typescript-eslint/typescript-estree": "8.33.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3989,13 +3993,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.0.tgz", - "integrity": "sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.1.tgz", + "integrity": "sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.33.0", + "@typescript-eslint/types": "8.33.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4618,25 +4622,25 @@ } }, "node_modules/algoliasearch": { - "version": "5.25.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.25.0.tgz", - "integrity": "sha512-n73BVorL4HIwKlfJKb4SEzAYkR3Buwfwbh+MYxg2mloFph2fFGV58E90QTzdbfzWrLn4HE5Czx/WTjI8fcHaMg==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.27.0.tgz", + "integrity": "sha512-2PvAgvxxJzA3+dB+ERfS2JPdvUsxNf89Cc2GF5iCcFupTULOwmbfinvqrC4Qj9nHJJDNf494NqEN/1f9177ZTQ==", "dev": true, "license": "MIT", "dependencies": { - "@algolia/client-abtesting": "5.25.0", - "@algolia/client-analytics": "5.25.0", - "@algolia/client-common": "5.25.0", - "@algolia/client-insights": "5.25.0", - "@algolia/client-personalization": "5.25.0", - "@algolia/client-query-suggestions": "5.25.0", - "@algolia/client-search": "5.25.0", - "@algolia/ingestion": "1.25.0", - "@algolia/monitoring": "1.25.0", - "@algolia/recommend": "5.25.0", - "@algolia/requester-browser-xhr": "5.25.0", - "@algolia/requester-fetch": "5.25.0", - "@algolia/requester-node-http": "5.25.0" + "@algolia/client-abtesting": "5.27.0", + "@algolia/client-analytics": "5.27.0", + "@algolia/client-common": "5.27.0", + "@algolia/client-insights": "5.27.0", + "@algolia/client-personalization": "5.27.0", + "@algolia/client-query-suggestions": "5.27.0", + "@algolia/client-search": "5.27.0", + "@algolia/ingestion": "1.27.0", + "@algolia/monitoring": "1.27.0", + "@algolia/recommend": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" @@ -5309,9 +5313,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001720", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001720.tgz", - "integrity": "sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==", + "version": "1.0.30001721", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz", + "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==", "dev": true, "funding": [ { @@ -6839,9 +6843,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.161", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.161.tgz", - "integrity": "sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA==", + "version": "1.5.165", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz", + "integrity": "sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==", "dev": true, "license": "ISC" }, @@ -7114,9 +7118,9 @@ } }, "node_modules/eslint": { - "version": "9.27.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.27.0.tgz", - "integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==", + "version": "9.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz", + "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7126,7 +7130,7 @@ "@eslint/config-helpers": "^0.2.1", "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.27.0", + "@eslint/js": "9.28.0", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -7191,14 +7195,14 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.0.tgz", - "integrity": "sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.1.tgz", + "integrity": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==", "dev": true, "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.11.0" + "synckit": "^0.11.7" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -8012,15 +8016,16 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -11760,9 +11765,9 @@ } }, "node_modules/pinia": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.2.tgz", - "integrity": "sha512-sH2JK3wNY809JOeiiURUR0wehJ9/gd9qFN2Y828jCbxEzKEmEt0pzCXwqiSTfuRsK9vQsOflSdnbdBOGrhtn+g==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.3.tgz", + "integrity": "sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==", "dev": true, "license": "MIT", "dependencies": { @@ -13061,9 +13066,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, "license": "MIT", "engines": { @@ -13093,18 +13098,18 @@ } }, "node_modules/shiki": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.4.2.tgz", - "integrity": "sha512-wuxzZzQG8kvZndD7nustrNFIKYJ1jJoWIPaBpVe2+KHSvtzMi4SBjOxrigs8qeqce/l3U0cwiC+VAkLKSunHQQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.6.0.tgz", + "integrity": "sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "3.4.2", - "@shikijs/engine-javascript": "3.4.2", - "@shikijs/engine-oniguruma": "3.4.2", - "@shikijs/langs": "3.4.2", - "@shikijs/themes": "3.4.2", - "@shikijs/types": "3.4.2", + "@shikijs/core": "3.6.0", + "@shikijs/engine-javascript": "3.6.0", + "@shikijs/engine-oniguruma": "3.6.0", + "@shikijs/langs": "3.6.0", + "@shikijs/themes": "3.6.0", + "@shikijs/types": "3.6.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } @@ -13441,9 +13446,9 @@ "peer": true }, "node_modules/streamx": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", - "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", + "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", "dev": true, "license": "MIT", "peer": true, @@ -13733,9 +13738,9 @@ } }, "node_modules/synckit": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.7.tgz", - "integrity": "sha512-/5aUeiRPqmY0CRTJ+iVWfOOMHWTDh8JAIuNF1A6nZ2/RdCNWwKaUrO5Qw5ephLK6dYa7NclYBI0ahdgUECvdhA==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", + "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", "dev": true, "license": "MIT", "dependencies": { @@ -13878,9 +13883,9 @@ "license": "ISC" }, "node_modules/terser": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.40.0.tgz", - "integrity": "sha512-cfeKl/jjwSR5ar7d0FGmave9hFGJT8obyo0z+CrQOylLDbk7X81nPU6vq9VORa5jU30SkDnT2FXjLbR8HLP+xA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.41.0.tgz", + "integrity": "sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -14294,15 +14299,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.33.0.tgz", - "integrity": "sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==", + "version": "8.33.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.33.1.tgz", + "integrity": "sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.33.0", - "@typescript-eslint/parser": "8.33.0", - "@typescript-eslint/utils": "8.33.0" + "@typescript-eslint/eslint-plugin": "8.33.1", + "@typescript-eslint/parser": "8.33.1", + "@typescript-eslint/utils": "8.33.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -15006,9 +15011,9 @@ } }, "node_modules/vscode-css-languageservice": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.5.tgz", - "integrity": "sha512-ehEIMXYPYEz/5Svi2raL9OKLpBt5dSAdoCFoLpo0TVFKrVpDemyuQwS3c3D552z/qQCg3pMp8oOLMObY6M3ajQ==", + "version": "6.3.6", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.6.tgz", + "integrity": "sha512-fU4h8mT3KlvfRcbF74v/M+Gzbligav6QMx4AD/7CbclWPYOpGb9kgIswfpZVJbIcOEJJACI9iYizkNwdiAqlHw==", "dev": true, "license": "MIT", "dependencies": { @@ -15019,9 +15024,9 @@ } }, "node_modules/vscode-html-languageservice": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.4.0.tgz", - "integrity": "sha512-9/cbc90BSYCghmHI7/VbWettHZdC7WYpz2g5gBK6UDUI1MkZbM773Q12uAYJx9jzAiNHPpyo6KzcwmcnugncAQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.5.0.tgz", + "integrity": "sha512-No6Er2P2L8IsXDnUFlp0bP4f2sdkJv+zJLZYFhtEQIp+2xNfxY8WYkhSxLJ/7bZhuV/aU55lmGSSHBVxSGer3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -15032,9 +15037,9 @@ } }, "node_modules/vscode-json-languageservice": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.5.0.tgz", - "integrity": "sha512-JchBzp8ArzhCVpRS/LT4wzEEvwHXIUEdZD064cGTI4RVs34rNCZXPUguIYSfGBcHH1GV79ufPcfy3Pd8+ukbKw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.6.0.tgz", + "integrity": "sha512-w1dv0nEoFxaNDq0PlYleYnlM4sFYXtFNZxaGGYy9nsCidXqHMh4RFHqld6XkFOhxs7hRBpK1QuXlH9OFDkTyfg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 1346a35e7..007cdf4ff 100644 --- a/package.json +++ b/package.json @@ -119,11 +119,11 @@ "devDependencies": { "@codemirror/commands": "^6.8.1", "@codemirror/lang-javascript": "^6.2.4", - "@codemirror/language": "^6.11.0", + "@codemirror/language": "^6.11.1", "@codemirror/search": "^6.5.11", "@codemirror/state": "^6.5.2", - "@codemirror/view": "^6.36.8", - "@eslint/js": "^9.27.0", + "@codemirror/view": "^6.37.1", + "@eslint/js": "^9.28.0", "@inquirer/prompts": "^7.5.3", "@jridgewell/sourcemap-codec": "^1.5.0", "@mermaid-js/mermaid-cli": "^11.4.2", @@ -139,7 +139,7 @@ "@rollup/pluginutils": "^5.1.4", "@shikijs/vitepress-twoslash": "^3.4.2", "@types/mocha": "^10.0.10", - "@types/node": "^18.19.103", + "@types/node": "^18.19.110", "@types/picomatch": "^4.0.0", "@types/semver": "^7.7.0", "@types/yargs-parser": "^21.0.3", @@ -156,9 +156,9 @@ "date-time": "^4.0.0", "es5-shim": "^4.6.7", "es6-shim": "^0.35.8", - "eslint": "^9.27.0", + "eslint": "^9.28.0", "eslint-config-prettier": "^10.1.5", - "eslint-plugin-prettier": "^5.4.0", + "eslint-plugin-prettier": "^5.4.1", "eslint-plugin-unicorn": "^59.0.1", "eslint-plugin-vue": "^10.1.0", "fixturify": "^3.0.0", @@ -168,7 +168,7 @@ "globals": "^16.2.0", "husky": "^9.1.7", "is-reference": "^3.0.3", - "lint-staged": "^16.0.0", + "lint-staged": "^16.1.0", "locate-character": "^3.0.0", "magic-string": "^0.30.17", "mocha": "^11.5.0", @@ -191,13 +191,13 @@ "source-map": "^0.7.4", "source-map-support": "^0.5.21", "systemjs": "^6.15.1", - "terser": "^5.39.2", + "terser": "^5.40.0", "tslib": "^2.8.1", "typescript": "^5.8.3", - "typescript-eslint": "^8.32.1", + "typescript-eslint": "^8.33.1", "vite": "^6.3.5", "vitepress": "^1.6.3", - "vue": "^3.5.15", + "vue": "^3.5.16", "vue-tsc": "^2.2.10", "wasm-pack": "^0.13.1", "yargs-parser": "^21.1.1" diff --git a/rust/Cargo.lock b/rust/Cargo.lock index e168a0b64..5c262fbce 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -149,9 +149,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" dependencies = [ "allocator-api2", ] @@ -167,9 +167,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.24" +version = "1.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" +checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" dependencies = [ "shlex", ] @@ -348,9 +348,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "hstr" @@ -596,9 +596,9 @@ dependencies = [ [[package]] name = "napi-build" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03acbfa4f156a32188bfa09b86dc11a431b5725253fc1fc6f6df5bed273382c4" +checksum = "44e0e3177307063d3e7e55b7dd7b648cca9d7f46daa35422c0d98cc2bf48c2c1" [[package]] name = "napi-derive" @@ -675,9 +675,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ "hermit-abi", "libc", @@ -1053,9 +1053,9 @@ dependencies = [ [[package]] name = "sourcemap" -version = "9.2.1" +version = "9.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdee719193ae5c919a3ee43f64c2c0dd87f9b9a451d67918a2a5ec2e3c70561c" +checksum = "e22afbcb92ce02d23815b9795523c005cb9d3c214f8b7a66318541c240ea7935" dependencies = [ "base64-simd", "bitvec", @@ -1134,9 +1134,9 @@ dependencies = [ [[package]] name = "swc_common" -version = "11.0.0" +version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "209e700a12f0fccd72db3bac7a751e631ef777d543c9e86247e9366b11e30a27" +checksum = "44c332906667b0fa98622f19a19e43afa5aa63b652813f80645dd0f33eca1fbb" dependencies = [ "anyhow", "ast_node", @@ -1163,9 +1163,9 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "22.0.0" +version = "22.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aef98ee955eac3339cb3a8152c64746196bd14919b41afdf2cc410c06e6cfee" +checksum = "3993329d52eab041a7123fc25c76a54ead1488cb24114b5c7b56f0d1f9d2a210" dependencies = [ "anyhow", "base64", @@ -1277,9 +1277,9 @@ dependencies = [ [[package]] name = "swc_ecma_lexer" -version = "14.0.3" +version = "14.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b232a4ba5106d7bfa4da9cb4a22c3f3fdac64d656cf45c60a349f8ded133462" +checksum = "bb339d30ba6ee93da5d5638982faaa79586cd429fe331648abf42afa0eb0a7b5" dependencies = [ "arrayvec", "bitflags", @@ -1302,9 +1302,9 @@ dependencies = [ [[package]] name = "swc_ecma_minifier" -version = "20.0.3" +version = "20.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c43654113e9a75edf05fbe2c66b5232e149f563c97bef58ff1a896daa288092" +checksum = "cf26b860e6a0e23807c70b03175d0e09082cfe256130c4759fdf9372020d3a3f" dependencies = [ "arrayvec", "bitflags", @@ -1340,9 +1340,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "14.0.1" +version = "14.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b59cd2d4c1989c38eae5cd5888f3a3120ecbe2e53b939e586d340b12de7c1e2" +checksum = "60e07e6ecd47f748988902976d09c4022b1147772f88ad8a95852a20722ac7dc" dependencies = [ "arrayvec", "bitflags", @@ -1366,9 +1366,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "15.1.0" +version = "15.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb01eeec1de9e2cfd089e3afcf3db60df10c812f97a42d953d094eba32e9d26f" +checksum = "49c0a76bff24b9fa13d5451e7a664d18158849c45434d863e0553e29fb31170b" dependencies = [ "better_scoped_tls", "bitflags", @@ -1444,9 +1444,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "15.0.1" +version = "15.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199e2f048c1998d550ebe5296e0876a3e5b2f963d75a925c2208466071edb9d8" +checksum = "7d2c29dbfc54e02c14975aff9d2c75ae6fff0808d860d9971a493d37870e282f" dependencies = [ "indexmap", "num_cpus", diff --git a/rust/parse_ast/Cargo.toml b/rust/parse_ast/Cargo.toml index 937800751..d596201f1 100644 --- a/rust/parse_ast/Cargo.toml +++ b/rust/parse_ast/Cargo.toml @@ -10,7 +10,7 @@ anyhow = "1.0.98" swc_atoms = "5.0.0" swc_compiler_base = "22.0.0" swc_config = "3.0.0" -swc_common = { version = "11.0.0", features = ["parking_lot"] } +swc_common = { version = "11.0.3", features = ["parking_lot"] } swc_ecma_ast = "11.0.0" -swc_ecma_parser = "14.0.0" -parking_lot = "0.12.3" +swc_ecma_parser = "14.0.1" +parking_lot = "0.12.4" From da88626ce276955bcd49dbd5b7312c553905129b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E7=AC=91?= <530257315@qq.com> Date: Fri, 6 Jun 2025 12:23:20 +0800 Subject: [PATCH 2/8] fix: consider function expression in thenable when tree-shaking dynamic imports (#5977) --- src/ast/utils/identifyNode.ts | 5 +++++ src/ast/variables/LocalVariable.ts | 4 +++- .../treeshake-deterministic-dynamic-import/_expected.js | 6 ++++++ .../samples/treeshake-deterministic-dynamic-import/main.js | 6 ++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/ast/utils/identifyNode.ts b/src/ast/utils/identifyNode.ts index 1090a27b6..e07c8c3f0 100644 --- a/src/ast/utils/identifyNode.ts +++ b/src/ast/utils/identifyNode.ts @@ -1,6 +1,7 @@ import type ArrowFunctionExpression from '../nodes/ArrowFunctionExpression'; import type AwaitExpression from '../nodes/AwaitExpression'; import type CallExpression from '../nodes/CallExpression'; +import type FunctionExpression from '../nodes/FunctionExpression'; import type Identifier from '../nodes/Identifier'; import type ImportExpression from '../nodes/ImportExpression'; import type MemberExpression from '../nodes/MemberExpression'; @@ -22,6 +23,10 @@ export function isArrowFunctionExpressionNode(node: unknown): node is ArrowFunct return node instanceof NodeBase && node.type === nodeType.ArrowFunctionExpression; } +export function isFunctionExpressionNode(node: unknown): node is FunctionExpression { + return node instanceof NodeBase && node.type === nodeType.FunctionExpression; +} + export function isCallExpressionNode(node: unknown): node is CallExpression { return node instanceof NodeBase && node.type === nodeType.CallExpression; } diff --git a/src/ast/variables/LocalVariable.ts b/src/ast/variables/LocalVariable.ts index 331f1199a..ed7438793 100644 --- a/src/ast/variables/LocalVariable.ts +++ b/src/ast/variables/LocalVariable.ts @@ -25,6 +25,7 @@ import type { VariableKind } from '../nodes/shared/VariableKinds'; import { isArrowFunctionExpressionNode, isCallExpressionNode, + isFunctionExpressionNode, isIdentifierNode, isImportExpressionNode, isMemberExpressionNode @@ -237,7 +238,8 @@ export default class LocalVariable extends Variable { */ if ( this.kind === 'parameter' && - isArrowFunctionExpressionNode(declaration.parent) && + (isArrowFunctionExpressionNode(declaration.parent) || + isFunctionExpressionNode(declaration.parent)) && isCallExpressionNode(declaration.parent.parent) && isMemberExpressionNode(declaration.parent.parent.callee) && isIdentifierNode(declaration.parent.parent.callee.property) && diff --git a/test/form/samples/treeshake-deterministic-dynamic-import/_expected.js b/test/form/samples/treeshake-deterministic-dynamic-import/_expected.js index 9dda828d7..9bd210cfb 100644 --- a/test/form/samples/treeshake-deterministic-dynamic-import/_expected.js +++ b/test/form/samples/treeshake-deterministic-dynamic-import/_expected.js @@ -29,6 +29,12 @@ async function entry() { } f(m); }); + Promise.resolve().then(function () { return sub2; }).then(function(m){ + function f(m){ + console.log(m.baz2); + } + f(m); + }); Promise.resolve().then(function () { return sub2; }).then(({ baz2 }) => baz2); Promise.resolve().then(function () { return sub2; }).then(function({ reexported }) { }); diff --git a/test/form/samples/treeshake-deterministic-dynamic-import/main.js b/test/form/samples/treeshake-deterministic-dynamic-import/main.js index ee9855071..67588eb10 100644 --- a/test/form/samples/treeshake-deterministic-dynamic-import/main.js +++ b/test/form/samples/treeshake-deterministic-dynamic-import/main.js @@ -14,6 +14,12 @@ export async function entry() { } f(m); }) + import('./sub2.js').then(function(m){ + function f(m){ + console.log(m.baz2) + } + f(m); + }) import('./sub2.js').then(({ baz2 }) => baz2) import('./sub2.js').then(function({ reexported }) { reexported }) From 224c90071791e5c067d2c55e11f15b04acf7ebeb Mon Sep 17 00:00:00 2001 From: Omkar Joshi <65808188+OmkarJ13@users.noreply.github.com> Date: Fri, 6 Jun 2025 10:30:44 +0530 Subject: [PATCH 3/8] fix: preserve constant identifiers in unary expressions instead of magic numbers (#5968) * fix: preserve constant identifiers in unary expressions instead of magic numbers * test: formatting --------- Co-authored-by: Lukas Taegert-Atkinson --- src/ast/nodes/UnaryExpression.ts | 6 ++++- .../_config.js | 4 +++ .../_expected.js | 25 +++++++++++++++++++ .../main.js | 23 +++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 test/form/samples/unary-expressions-preserve-constants/_config.js create mode 100644 test/form/samples/unary-expressions-preserve-constants/_expected.js create mode 100644 test/form/samples/unary-expressions-preserve-constants/main.js diff --git a/src/ast/nodes/UnaryExpression.ts b/src/ast/nodes/UnaryExpression.ts index 555f39f4a..4f22084c1 100644 --- a/src/ast/nodes/UnaryExpression.ts +++ b/src/ast/nodes/UnaryExpression.ts @@ -114,9 +114,13 @@ export default class UnaryExpression extends NodeBase { ): void { if (!this.deoptimized) this.applyDeoptimizations(); this.included = true; + // Check if the argument is an identifier that should be preserved as a reference for readability + const shouldPreserveArgument = + this.argument instanceof Identifier && this.argument.variable?.included; if ( typeof this.getRenderedLiteralValue(includeChildrenRecursively) === 'symbol' || - this.argument.shouldBeIncluded(context) + this.argument.shouldBeIncluded(context) || + shouldPreserveArgument ) { this.argument.include(context, includeChildrenRecursively); this.renderedLiteralValue = UnknownValue; diff --git a/test/form/samples/unary-expressions-preserve-constants/_config.js b/test/form/samples/unary-expressions-preserve-constants/_config.js new file mode 100644 index 000000000..da9b696b9 --- /dev/null +++ b/test/form/samples/unary-expressions-preserve-constants/_config.js @@ -0,0 +1,4 @@ +module.exports = defineTest({ + description: + 'Preserves constant identifiers in unary expressions when constants are used elsewhere' +}); diff --git a/test/form/samples/unary-expressions-preserve-constants/_expected.js b/test/form/samples/unary-expressions-preserve-constants/_expected.js new file mode 100644 index 000000000..2bdd58007 --- /dev/null +++ b/test/form/samples/unary-expressions-preserve-constants/_expected.js @@ -0,0 +1,25 @@ +const BOB = 3; +const ALICE = 5; + +function getBob() { + return {x: BOB, y: -BOB, z: +BOB}; +} + +function getAlice() { + console.log(ALICE); + return ~ALICE; +} + +// Test with different operators +function testOperators() { + return { + negate: -BOB, + plus: +BOB, + not: !BOB, + bitwise: ~BOB, + typeof: typeof BOB, + void: void BOB + }; +} + +export { ALICE, BOB, getAlice, getBob, testOperators }; diff --git a/test/form/samples/unary-expressions-preserve-constants/main.js b/test/form/samples/unary-expressions-preserve-constants/main.js new file mode 100644 index 000000000..9dc8dcce3 --- /dev/null +++ b/test/form/samples/unary-expressions-preserve-constants/main.js @@ -0,0 +1,23 @@ +export const BOB = 3; +export const ALICE = 5; + +export function getBob() { + return {x: BOB, y: -BOB, z: +BOB}; +} + +export function getAlice() { + console.log(ALICE); + return ~ALICE; +} + +// Test with different operators +export function testOperators() { + return { + negate: -BOB, + plus: +BOB, + not: !BOB, + bitwise: ~BOB, + typeof: typeof BOB, + void: void BOB + }; +} From 13992f2a5c89a0802cfd60e1b308afdc85dc4f3f Mon Sep 17 00:00:00 2001 From: Fredrik Lillejordet Date: Fri, 6 Jun 2025 09:43:15 +0200 Subject: [PATCH 4/8] Update README.md (#5976) Replaced 404 Not found TNG logo with TNG GitHub logo. Co-authored-by: Lukas Taegert-Atkinson --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1b6b9ea8..0c4fe959e 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ Support this project by becoming a sponsor. Your logo will show up here with a l ## Special Sponsor -TNG Logo +TNG Logo TNG has been supporting the work of [Lukas Taegert-Atkinson](https://github.com/lukastaegert) on Rollup since 2017. From 149d94c1674c9e7d0d52d5506836f9393d667958 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 6 Jun 2025 13:15:10 +0200 Subject: [PATCH 5/8] Debug/fix watch pipeline (#5982) * Debug pipeline * Print stdout and stderr on timeout * Add more logging * Add logging to killing * Try to kill after a timeout to see if it helps * Use a macroscopic timeout in the test * Remove solo * Update test/cli/samples/watch/watch-event-hooks-error/_config.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Rename iteration variable --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- test/cli/index.js | 15 +++++++++------ .../watch/watch-event-hooks-error/_config.js | 6 ++++-- test/types.d.ts | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/test/cli/index.js b/test/cli/index.js index 4ac71627c..13d0ed2bc 100644 --- a/test/cli/index.js +++ b/test/cli/index.js @@ -23,12 +23,13 @@ runTestSuiteWithSamples( 'cli', path.resolve(__dirname, 'samples'), /** + * @param {string} directory * @param {import('../types').TestConfigCli} config */ (directory, config) => { - (config.skip ? it.skip : config.solo ? it.only : it)( - path.basename(directory) + ': ' + config.description, - async () => { + for (let iteration = 0; iteration < (config.repeat || 1); iteration++) { + const description = `${path.basename(directory)}: ${config.description}${iteration > 0 ? ` (run ${iteration + 1})` : ''}`; + (config.skip ? it.skip : config.solo ? it.only : it)(description, async () => { process.chdir(config.cwd || directory); try { await runTest(config); @@ -39,8 +40,8 @@ runTestSuiteWithSamples( } throw error; } - } - ).timeout(80_000); + }).timeout(80_000); + } }, () => process.chdir(cwd) ); @@ -106,7 +107,9 @@ async function runTest(config) { } } if (childProcess.signalCode === 'SIGKILL') { - return reject(new Error('Test aborted due to timeout.')); + return reject( + new Error(`Test aborted due to timeout.\nstdout: ${stdout}\n\nstderr: ${stderr}\n`) + ); } if ('stderr' in config) { diff --git a/test/cli/samples/watch/watch-event-hooks-error/_config.js b/test/cli/samples/watch/watch-event-hooks-error/_config.js index 4987c8e7b..5e0a06a01 100644 --- a/test/cli/samples/watch/watch-event-hooks-error/_config.js +++ b/test/cli/samples/watch/watch-event-hooks-error/_config.js @@ -1,11 +1,13 @@ -const { assertIncludes } = require('../../../../testHelpers.js'); +const { assertIncludes, wait } = require('../../../../testHelpers.js'); module.exports = defineTest({ description: 'onError event hook shell commands write to stderr', spawnScript: 'wrapper.js', spawnArgs: ['-cw', '--watch.onError', 'echo error'], - abortOnStderr(data) { + async abortOnStderr(data) { if (data.includes('waiting for changes')) { + // Wait a little for the child process to complete the command + await wait(300); return true; } }, diff --git a/test/types.d.ts b/test/types.d.ts index be8377537..f9f2337fd 100644 --- a/test/types.d.ts +++ b/test/types.d.ts @@ -133,11 +133,12 @@ export interface TestConfigCli extends TestConfigBase { * Run assertions against the exports of the bundle after executing it. */ exports?: (exportObject: any) => void | Promise; + repeat?: number; /** * Run assertions against the generated code when bundling to stdout. */ result?: (code: string) => void; - retry?: number; + retry?: boolean; /** * Display generated output in console. */ From 13b4669dbc21cb738551cd725d2a18c77b3cea11 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 6 Jun 2025 13:18:09 +0200 Subject: [PATCH 6/8] 4.41.2 --- CHANGELOG.md | 20 ++++++++++++++++++++ browser/package.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1de4b3bf8..0cbb1c040 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # rollup changelog +## 4.41.2 + +_2025-06-06_ + +### Bug Fixes + +- Detect named export usages in dynamic imports with `then` and non-arrow function expressions (#5977) +- Do not replace usages of constant variables with their values for readability (#5968) + +### Pull Requests + +- [#5968](https://github.com/rollup/rollup/pull/5968): fix: preserve constant identifiers in unary expressions instead of magic numbers (@OmkarJ13, @lukastaegert) +- [#5969](https://github.com/rollup/rollup/pull/5969): chore(deps): update dependency yargs-parser to v22 (@renovate[bot], @lukastaegert) +- [#5970](https://github.com/rollup/rollup/pull/5970): chore(deps): lock file maintenance minor/patch updates (@renovate[bot]) +- [#5971](https://github.com/rollup/rollup/pull/5971): chore(deps): lock file maintenance (@renovate[bot]) +- [#5976](https://github.com/rollup/rollup/pull/5976): Update README.md (@ftlno, @lukastaegert) +- [#5977](https://github.com/rollup/rollup/pull/5977): fix: consider function expression in thenable when tree-shaking dynamic imports (@TrickyPi) +- [#5981](https://github.com/rollup/rollup/pull/5981): fix(deps): lock file maintenance minor/patch updates (@renovate[bot]) +- [#5982](https://github.com/rollup/rollup/pull/5982): Debug/fix watch pipeline (@lukastaegert) + ## 4.41.1 _2025-05-24_ diff --git a/browser/package.json b/browser/package.json index 6d6934fe0..777e30a9f 100644 --- a/browser/package.json +++ b/browser/package.json @@ -1,6 +1,6 @@ { "name": "@rollup/browser", - "version": "4.41.1", + "version": "4.41.2", "description": "Next-generation ES module bundler browser build", "main": "dist/rollup.browser.js", "module": "dist/es/rollup.browser.js", diff --git a/package-lock.json b/package-lock.json index 16f1a091b..5795c930b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rollup", - "version": "4.41.1", + "version": "4.41.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup", - "version": "4.41.1", + "version": "4.41.2", "license": "MIT", "dependencies": { "@types/estree": "1.0.7" diff --git a/package.json b/package.json index 007cdf4ff..e2b8f08f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rollup", - "version": "4.41.1", + "version": "4.41.2", "description": "Next-generation ES module bundler", "main": "dist/rollup.js", "module": "dist/es/rollup.js", From dddc00de6ad733c76fff550140b3b6398f1f08de Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Fri, 6 Jun 2025 21:59:08 +0800 Subject: [PATCH 7/8] feat: watch mode add `allowInputInsideOutputPath` option (#5966) * feat: watch mode add `allowInputInsideOutputPath` option * fix: docs lint * test: case * test: update * Slightly streamline code * Fix test --------- Co-authored-by: Lukas Taegert-Atkinson Co-authored-by: Lukas Taegert-Atkinson --- cli/help.md | 2 ++ docs/command-line-interface/index.md | 5 +++- docs/configuration-options/index.md | 11 +++++++ docs/javascript-api/index.md | 1 + src/rollup/types.d.ts | 1 + src/watch/watch-proxy.ts | 29 ++++++++++--------- .../_config.js | 9 ++++++ .../output/main.js | 1 + .../output/out.js | 1 + .../rollup.config.mjs | 12 ++++++++ 10 files changed, 57 insertions(+), 15 deletions(-) create mode 100644 test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/_config.js create mode 100644 test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/output/main.js create mode 100644 test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/output/out.js create mode 100644 test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/rollup.config.mjs diff --git a/cli/help.md b/cli/help.md index 7a49dd45d..8c5560d02 100644 --- a/cli/help.md +++ b/cli/help.md @@ -90,6 +90,8 @@ Basic options: --no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw --validate Validate output --waitForBundleInput Wait for bundle input files +--watch.allowInputInsideOutputPath Whether the input path is allowed to be a + subpath of the output path --watch.buildDelay Throttle watch rebuilds --no-watch.clearScreen Do not clear the screen when rebuilding --watch.exclude Exclude files from being watched diff --git a/docs/command-line-interface/index.md b/docs/command-line-interface/index.md index 4a7626966..a27d434af 100755 --- a/docs/command-line-interface/index.md +++ b/docs/command-line-interface/index.md @@ -139,7 +139,8 @@ export default { clearScreen, exclude, include, - skipWrite + skipWrite, + allowInputInsideOutputPath } }; ``` @@ -459,6 +460,8 @@ Many options have command line equivalents. In those cases, any arguments passed --no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw --validate Validate output --waitForBundleInput Wait for bundle input files +--watch.allowInputInsideOutputPath Whether the input path is allowed to be a + subpath of the output path --watch.buildDelay Throttle watch rebuilds --no-watch.clearScreen Do not clear the screen when rebuilding --watch.exclude Exclude files from being watched diff --git a/docs/configuration-options/index.md b/docs/configuration-options/index.md index 539b7f6c9..96e4d94a8 100755 --- a/docs/configuration-options/index.md +++ b/docs/configuration-options/index.md @@ -2860,6 +2860,7 @@ For each key, the first number represents the elapsed time while the second repr ```typescript interface WatcherOptions { + allowInputInsideOutputPath?: boolean; buildDelay?: number; chokidar?: ChokidarOptions; clearScreen?: boolean; @@ -2892,6 +2893,16 @@ export default [ These options only take effect when running Rollup with the `--watch` flag, or using `rollup.watch`. +### watch.allowInputInsideOutputPath + +| | | +| --: | :-- | +| Type: | `boolean` | +| CLI: | `--watch.allowInputInsideOutputPath`/`--no-watch.allowInputInsideOutputPath` | +| Default: | `false` | + +Whether the input path is allowed to be a subpath of the output path. + ### watch.buildDelay | | | diff --git a/docs/javascript-api/index.md b/docs/javascript-api/index.md index 23dea37fc..6f2446cb6 100755 --- a/docs/javascript-api/index.md +++ b/docs/javascript-api/index.md @@ -320,6 +320,7 @@ const watchOptions = { ...inputOptions, output: [outputOptions], watch: { + allowInputInsideOutputPath, buildDelay, chokidar, clearScreen, diff --git a/src/rollup/types.d.ts b/src/rollup/types.d.ts index 42c9bb3c1..0ec31f59b 100644 --- a/src/rollup/types.d.ts +++ b/src/rollup/types.d.ts @@ -1009,6 +1009,7 @@ export interface ChokidarOptions { export type RollupWatchHooks = 'onError' | 'onStart' | 'onBundleStart' | 'onBundleEnd' | 'onEnd'; export interface WatcherOptions { + allowInputInsideOutputPath?: boolean; buildDelay?: number; chokidar?: ChokidarOptions; clearScreen?: boolean; diff --git a/src/watch/watch-proxy.ts b/src/watch/watch-proxy.ts index 2d02ebede..f2c0d10a5 100644 --- a/src/watch/watch-proxy.ts +++ b/src/watch/watch-proxy.ts @@ -9,8 +9,8 @@ import { ensureArray } from '../utils/ensureArray'; import { error, logInvalidOption } from '../utils/logs'; import { mergeOptions } from '../utils/options/mergeOptions'; import { URL_WATCH } from '../utils/urls'; -import { WatchEmitter } from './WatchEmitter'; import { loadFsEvents } from './fsevents-importer'; +import { WatchEmitter } from './WatchEmitter'; export default function watch(configs: RollupOptions[] | RollupOptions): RollupWatcher { const emitter = new WatchEmitter() as RollupWatcher; @@ -22,7 +22,7 @@ export default function watch(configs: RollupOptions[] | RollupOptions): RollupW return emitter; } -function withTrailingSlash(path: string): string { +function ensureTrailingSlash(path: string): string { if (path[path.length - 1] !== '/') { return `${path}/`; } @@ -31,25 +31,26 @@ function withTrailingSlash(path: string): string { function checkWatchConfig(config: MergedRollupOptions[]): void { for (const item of config) { + if (typeof item.watch !== 'boolean' && item.watch?.allowInputInsideOutputPath) { + break; + } if (item.input && item.output) { const input = typeof item.input === 'string' ? ensureArray(item.input) : item.input; - const output = ensureArray(item.output); + const outputs = ensureArray(item.output); for (const index in input) { - const inputPath = input[index as keyof typeof input] as string; - const subPath = output.find(o => { - if (!o.dir || typeof inputPath !== 'string') { - return false; - } - const _outPath = withTrailingSlash(o.dir); - const _inputPath = withTrailingSlash(inputPath); - return _inputPath.startsWith(_outPath); - }); - if (subPath) { + const inputPath = input[index as keyof typeof input]; + if (typeof inputPath !== 'string') { + continue; + } + const outputWithInputAsSubPath = outputs.find( + ({ dir }) => dir && ensureTrailingSlash(inputPath).startsWith(ensureTrailingSlash(dir)) + ); + if (outputWithInputAsSubPath) { error( logInvalidOption( 'watch', URL_WATCH, - `the input "${inputPath}" is a subpath of the output "${subPath.dir}"` + `the input "${inputPath}" is a subpath of the output "${outputWithInputAsSubPath.dir}"` ) ); } diff --git a/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/_config.js b/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/_config.js new file mode 100644 index 000000000..79acda4b6 --- /dev/null +++ b/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/_config.js @@ -0,0 +1,9 @@ +module.exports = defineTest({ + description: + 'allowInputInsideOutputPath set to true, should not throw an error when input is inside output path', + spawnArgs: ['-cw'], + abortOnStderr(data) { + return data.includes('waiting for changes'); + }, + execute: true +}); diff --git a/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/output/main.js b/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/output/main.js new file mode 100644 index 000000000..17eee8f1f --- /dev/null +++ b/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/output/main.js @@ -0,0 +1 @@ +assert.equal( 1 + 1, 2 ); diff --git a/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/output/out.js b/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/output/out.js new file mode 100644 index 000000000..17eee8f1f --- /dev/null +++ b/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/output/out.js @@ -0,0 +1 @@ +assert.equal( 1 + 1, 2 ); diff --git a/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/rollup.config.mjs b/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/rollup.config.mjs new file mode 100644 index 000000000..51fa9da44 --- /dev/null +++ b/test/cli/samples/watch/watch-output-contain-input-allowInputInsideOutputPath/rollup.config.mjs @@ -0,0 +1,12 @@ +export default [ + { + input: {'out': 'output/main.js'}, + watch: { + allowInputInsideOutputPath: true, + }, + output: { + dir: 'output', + format: 'es' + } + }, +]; From f76339428586620ff3e4c32fce48f923e7be7b05 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Fri, 6 Jun 2025 16:30:06 +0200 Subject: [PATCH 8/8] 4.42.0 --- CHANGELOG.md | 12 ++++++++++++ browser/package.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cbb1c040..cb81c7237 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # rollup changelog +## 4.42.0 + +_2025-06-06_ + +### Features + +- Add option to allow the input to be located in the output in watch mode (#5966) + +### Pull Requests + +- [#5966](https://github.com/rollup/rollup/pull/5966): feat: watch mode add `allowInputInsideOutputPath` option (@btea, @lukastaegert) + ## 4.41.2 _2025-06-06_ diff --git a/browser/package.json b/browser/package.json index 777e30a9f..a0457d6f8 100644 --- a/browser/package.json +++ b/browser/package.json @@ -1,6 +1,6 @@ { "name": "@rollup/browser", - "version": "4.41.2", + "version": "4.42.0", "description": "Next-generation ES module bundler browser build", "main": "dist/rollup.browser.js", "module": "dist/es/rollup.browser.js", diff --git a/package-lock.json b/package-lock.json index 5795c930b..a316e408c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rollup", - "version": "4.41.2", + "version": "4.42.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup", - "version": "4.41.2", + "version": "4.42.0", "license": "MIT", "dependencies": { "@types/estree": "1.0.7" diff --git a/package.json b/package.json index e2b8f08f2..7e1fe7129 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rollup", - "version": "4.41.2", + "version": "4.42.0", "description": "Next-generation ES module bundler", "main": "dist/rollup.js", "module": "dist/es/rollup.js",