From b8b926cdee257bd45d0c9f042e60b19ce8d7729d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 14:04:52 +0800 Subject: [PATCH 01/28] chore(deps): update all non-major dependencies (#13515) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 87 ++++++++++++++++++++------------------------------ 2 files changed, 37 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index b0404823f43..d68ac92efe0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "version": "3.5.17", - "packageManager": "pnpm@10.12.1", + "packageManager": "pnpm@10.12.2", "type": "module", "scripts": { "dev": "node scripts/dev.js", @@ -71,7 +71,7 @@ "@rollup/plugin-replace": "5.0.4", "@swc/core": "^1.12.1", "@types/hash-sum": "^1.0.2", - "@types/node": "^22.15.31", + "@types/node": "^22.15.32", "@types/semver": "^7.7.0", "@types/serve-handler": "^6.1.4", "@vitest/coverage-v8": "^3.1.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb70e76d866..2e2d0f47658 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ^1.0.2 version: 1.0.2 '@types/node': - specifier: ^22.15.31 - version: 22.15.31 + specifier: ^22.15.32 + version: 22.15.32 '@types/semver': specifier: ^7.7.0 version: 7.7.0 @@ -70,10 +70,10 @@ importers: version: 6.1.4 '@vitest/coverage-v8': specifier: ^3.1.4 - version: 3.1.4(vitest@3.1.4(@types/node@22.15.31)(jsdom@26.1.0)(sass@1.89.2)) + version: 3.1.4(vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2)) '@vitest/eslint-plugin': specifier: ^1.2.1 - version: 1.2.1(eslint@9.27.0)(typescript@5.6.3)(vitest@3.1.4(@types/node@22.15.31)(jsdom@26.1.0)(sass@1.89.2)) + version: 1.2.1(eslint@9.27.0)(typescript@5.6.3)(vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2)) '@vue/consolidate': specifier: 1.0.0 version: 1.0.0 @@ -175,10 +175,10 @@ importers: version: 8.32.1(eslint@9.27.0)(typescript@5.6.3) vite: specifier: 'catalog:' - version: 5.4.19(@types/node@22.15.31)(sass@1.89.2) + version: 5.4.15(@types/node@22.15.32)(sass@1.89.2) vitest: specifier: ^3.1.4 - version: 3.1.4(@types/node@22.15.31)(jsdom@26.1.0)(sass@1.89.2) + version: 3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2) packages-private/dts-built-test: dependencies: @@ -218,10 +218,10 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.4(vite@5.4.15(@types/node@22.15.31)(sass@1.89.2))(vue@packages+vue) + version: 5.2.4(vite@5.4.15(@types/node@22.15.32)(sass@1.89.2))(vue@packages+vue) vite: specifier: 'catalog:' - version: 5.4.15(@types/node@22.15.31)(sass@1.89.2) + version: 5.4.15(@types/node@22.15.32)(sass@1.89.2) packages-private/template-explorer: dependencies: @@ -236,10 +236,10 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.4(vite@5.4.15(@types/node@22.15.31)(sass@1.89.2))(vue@packages+vue) + version: 5.2.4(vite@5.4.15(@types/node@22.15.32)(sass@1.89.2))(vue@packages+vue) vite: specifier: 'catalog:' - version: 5.4.15(@types/node@22.15.31)(sass@1.89.2) + version: 5.4.15(@types/node@22.15.32)(sass@1.89.2) vue: specifier: workspace:* version: link:../../packages/vue @@ -1267,8 +1267,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.15.31': - resolution: {integrity: sha512-jnVe5ULKl6tijxUhvQeNbQG/84fHfg+yMak02cT8QVhBx/F05rAVxCGBYYTh2EKz22D6JF5ktXuNwdx7b9iEGw==} + '@types/node@22.15.32': + resolution: {integrity: sha512-3jigKqgSjsH6gYZv2nEsqdXfZqIFGAV36XYYjf9KGZ3PSG+IhLecqPnI310RvjutyMwifE2hhhNEklOUrvx/wA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2661,11 +2661,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - napi-postinstall@0.2.3: resolution: {integrity: sha512-Mi7JISo/4Ij2tDZ2xBE2WH+/KvVlkhA6juEjpEeRAVPNCpN3nxJo/5FhDNKgBcdmcmhaH6JjgST4xY/23ZYK0w==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -2859,10 +2854,6 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -4186,7 +4177,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@22.15.31': + '@types/node@22.15.32': dependencies: undici-types: 6.21.0 @@ -4198,13 +4189,13 @@ snapshots: '@types/serve-handler@6.1.4': dependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.32 '@types/trusted-types@2.0.7': {} '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.32 optional: true '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.6.3))(eslint@9.27.0)(typescript@5.6.3)': @@ -4337,12 +4328,12 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.7.2': optional: true - '@vitejs/plugin-vue@5.2.4(vite@5.4.15(@types/node@22.15.31)(sass@1.89.2))(vue@packages+vue)': + '@vitejs/plugin-vue@5.2.4(vite@5.4.15(@types/node@22.15.32)(sass@1.89.2))(vue@packages+vue)': dependencies: - vite: 5.4.15(@types/node@22.15.31)(sass@1.89.2) + vite: 5.4.15(@types/node@22.15.32)(sass@1.89.2) vue: link:packages/vue - '@vitest/coverage-v8@3.1.4(vitest@3.1.4(@types/node@22.15.31)(jsdom@26.1.0)(sass@1.89.2))': + '@vitest/coverage-v8@3.1.4(vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -4356,17 +4347,17 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/node@22.15.31)(jsdom@26.1.0)(sass@1.89.2) + vitest: 3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.2.1(eslint@9.27.0)(typescript@5.6.3)(vitest@3.1.4(@types/node@22.15.31)(jsdom@26.1.0)(sass@1.89.2))': + '@vitest/eslint-plugin@1.2.1(eslint@9.27.0)(typescript@5.6.3)(vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2))': dependencies: '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.6.3) eslint: 9.27.0 optionalDependencies: typescript: 5.6.3 - vitest: 3.1.4(@types/node@22.15.31)(jsdom@26.1.0)(sass@1.89.2) + vitest: 3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2) transitivePeerDependencies: - supports-color @@ -4377,13 +4368,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.4(vite@5.4.19(@types/node@22.15.31)(sass@1.89.2))': + '@vitest/mocker@3.1.4(vite@5.4.19(@types/node@22.15.32)(sass@1.89.2))': dependencies: '@vitest/spy': 3.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.19(@types/node@22.15.31)(sass@1.89.2) + vite: 5.4.19(@types/node@22.15.32)(sass@1.89.2) '@vitest/pretty-format@3.1.4': dependencies: @@ -5637,8 +5628,6 @@ snapshots: nanoid@3.3.11: {} - nanoid@3.3.8: {} - napi-postinstall@0.2.3: {} natural-compare@1.4.0: {} @@ -5832,12 +5821,6 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.5.3: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -6440,13 +6423,13 @@ snapshots: vary@1.1.2: {} - vite-node@3.1.4(@types/node@22.15.31)(sass@1.89.2): + vite-node@3.1.4(@types/node@22.15.32)(sass@1.89.2): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 5.4.19(@types/node@22.15.31)(sass@1.89.2) + vite: 5.4.19(@types/node@22.15.32)(sass@1.89.2) transitivePeerDependencies: - '@types/node' - less @@ -6458,30 +6441,30 @@ snapshots: - supports-color - terser - vite@5.4.15(@types/node@22.15.31)(sass@1.89.2): + vite@5.4.15(@types/node@22.15.32)(sass@1.89.2): dependencies: esbuild: 0.21.5 - postcss: 8.5.3 + postcss: 8.5.6 rollup: 4.43.0 optionalDependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.32 fsevents: 2.3.3 sass: 1.89.2 - vite@5.4.19(@types/node@22.15.31)(sass@1.89.2): + vite@5.4.19(@types/node@22.15.32)(sass@1.89.2): dependencies: esbuild: 0.21.5 postcss: 8.5.6 rollup: 4.43.0 optionalDependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.32 fsevents: 2.3.3 sass: 1.89.2 - vitest@3.1.4(@types/node@22.15.31)(jsdom@26.1.0)(sass@1.89.2): + vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2): dependencies: '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(vite@5.4.19(@types/node@22.15.31)(sass@1.89.2)) + '@vitest/mocker': 3.1.4(vite@5.4.19(@types/node@22.15.32)(sass@1.89.2)) '@vitest/pretty-format': 3.1.4 '@vitest/runner': 3.1.4 '@vitest/snapshot': 3.1.4 @@ -6498,11 +6481,11 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 5.4.19(@types/node@22.15.31)(sass@1.89.2) - vite-node: 3.1.4(@types/node@22.15.31)(sass@1.89.2) + vite: 5.4.19(@types/node@22.15.32)(sass@1.89.2) + vite-node: 3.1.4(@types/node@22.15.32)(sass@1.89.2) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.15.31 + '@types/node': 22.15.32 jsdom: 26.1.0 transitivePeerDependencies: - less From 50a1c308999124dff3bcd19b946e2f4bed1b1850 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 14:32:41 +0800 Subject: [PATCH 02/28] chore(deps): update build (#13516) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 339 +++++++++++++++++++++++++------------------------ 2 files changed, 174 insertions(+), 169 deletions(-) diff --git a/package.json b/package.json index d68ac92efe0..39ad2e20da9 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-replace": "5.0.4", - "@swc/core": "^1.12.1", + "@swc/core": "^1.12.5", "@types/hash-sum": "^1.0.2", "@types/node": "^22.15.32", "@types/semver": "^7.7.0", @@ -97,7 +97,7 @@ "pug": "^3.0.3", "puppeteer": "~24.9.0", "rimraf": "^6.0.1", - "rollup": "^4.43.0", + "rollup": "^4.44.0", "rollup-plugin-dts": "^6.2.1", "rollup-plugin-esbuild": "^6.2.1", "rollup-plugin-polyfill-node": "^0.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e2d0f47658..e8e25dc1f84 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,22 +40,22 @@ importers: version: 7.27.6 '@rollup/plugin-alias': specifier: ^5.1.1 - version: 5.1.1(rollup@4.43.0) + version: 5.1.1(rollup@4.44.0) '@rollup/plugin-commonjs': specifier: ^28.0.6 - version: 28.0.6(rollup@4.43.0) + version: 28.0.6(rollup@4.44.0) '@rollup/plugin-json': specifier: ^6.1.0 - version: 6.1.0(rollup@4.43.0) + version: 6.1.0(rollup@4.44.0) '@rollup/plugin-node-resolve': specifier: ^16.0.1 - version: 16.0.1(rollup@4.43.0) + version: 16.0.1(rollup@4.44.0) '@rollup/plugin-replace': specifier: 5.0.4 - version: 5.0.4(rollup@4.43.0) + version: 5.0.4(rollup@4.44.0) '@swc/core': - specifier: ^1.12.1 - version: 1.12.1 + specifier: ^1.12.5 + version: 1.12.5 '@types/hash-sum': specifier: ^1.0.2 version: 1.0.2 @@ -138,17 +138,17 @@ importers: specifier: ^6.0.1 version: 6.0.1 rollup: - specifier: ^4.43.0 - version: 4.43.0 + specifier: ^4.44.0 + version: 4.44.0 rollup-plugin-dts: specifier: ^6.2.1 - version: 6.2.1(rollup@4.43.0)(typescript@5.6.3) + version: 6.2.1(rollup@4.44.0)(typescript@5.6.3) rollup-plugin-esbuild: specifier: ^6.2.1 - version: 6.2.1(esbuild@0.25.5)(rollup@4.43.0) + version: 6.2.1(esbuild@0.25.5)(rollup@4.44.0) rollup-plugin-polyfill-node: specifier: ^0.13.0 - version: 0.13.0(rollup@4.43.0) + version: 0.13.0(rollup@4.44.0) semver: specifier: ^7.7.2 version: 7.7.2 @@ -1077,168 +1077,168 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.43.0': - resolution: {integrity: sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==} + '@rollup/rollup-android-arm-eabi@4.44.0': + resolution: {integrity: sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.43.0': - resolution: {integrity: sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==} + '@rollup/rollup-android-arm64@4.44.0': + resolution: {integrity: sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.43.0': - resolution: {integrity: sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==} + '@rollup/rollup-darwin-arm64@4.44.0': + resolution: {integrity: sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.43.0': - resolution: {integrity: sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==} + '@rollup/rollup-darwin-x64@4.44.0': + resolution: {integrity: sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.43.0': - resolution: {integrity: sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==} + '@rollup/rollup-freebsd-arm64@4.44.0': + resolution: {integrity: sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.43.0': - resolution: {integrity: sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==} + '@rollup/rollup-freebsd-x64@4.44.0': + resolution: {integrity: sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.43.0': - resolution: {integrity: sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==} + '@rollup/rollup-linux-arm-gnueabihf@4.44.0': + resolution: {integrity: sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.43.0': - resolution: {integrity: sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==} + '@rollup/rollup-linux-arm-musleabihf@4.44.0': + resolution: {integrity: sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.43.0': - resolution: {integrity: sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==} + '@rollup/rollup-linux-arm64-gnu@4.44.0': + resolution: {integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.43.0': - resolution: {integrity: sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==} + '@rollup/rollup-linux-arm64-musl@4.44.0': + resolution: {integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.43.0': - resolution: {integrity: sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==} + '@rollup/rollup-linux-loongarch64-gnu@4.44.0': + resolution: {integrity: sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': - resolution: {integrity: sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': + resolution: {integrity: sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.43.0': - resolution: {integrity: sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==} + '@rollup/rollup-linux-riscv64-gnu@4.44.0': + resolution: {integrity: sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.43.0': - resolution: {integrity: sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==} + '@rollup/rollup-linux-riscv64-musl@4.44.0': + resolution: {integrity: sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.43.0': - resolution: {integrity: sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==} + '@rollup/rollup-linux-s390x-gnu@4.44.0': + resolution: {integrity: sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.43.0': - resolution: {integrity: sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==} + '@rollup/rollup-linux-x64-gnu@4.44.0': + resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.43.0': - resolution: {integrity: sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==} + '@rollup/rollup-linux-x64-musl@4.44.0': + resolution: {integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.43.0': - resolution: {integrity: sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==} + '@rollup/rollup-win32-arm64-msvc@4.44.0': + resolution: {integrity: sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.43.0': - resolution: {integrity: sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==} + '@rollup/rollup-win32-ia32-msvc@4.44.0': + resolution: {integrity: sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.43.0': - resolution: {integrity: sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==} + '@rollup/rollup-win32-x64-msvc@4.44.0': + resolution: {integrity: sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==} cpu: [x64] os: [win32] - '@swc/core-darwin-arm64@1.12.1': - resolution: {integrity: sha512-nUjWVcJ3YS2N40ZbKwYO2RJ4+o2tWYRzNOcIQp05FqW0+aoUCVMdAUUzQinPDynfgwVshDAXCKemY8X7nN5MaA==} + '@swc/core-darwin-arm64@1.12.5': + resolution: {integrity: sha512-3WF+naP/qkt5flrTfJr+p07b522JcixKvIivM7FgvllA6LjJxf+pheoILrTS8IwrNAK/XtHfKWYcGY+3eaA4mA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.12.1': - resolution: {integrity: sha512-OGm4a4d3OeJn+tRt8H/eiHgTFrJbS6r8mi/Ob65tAEXZGHN900T2kR7c5ALr0V2hBOQ8BfhexwPoQlGQP/B95w==} + '@swc/core-darwin-x64@1.12.5': + resolution: {integrity: sha512-GCcD3dft8YN7unTBcW02Fx41jXp2MNQHCjx5ceWSEYOGvn7vBSUp7k7LkfTxGN5Ftxb9a1mxhPq8r4rD2u/aPw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.12.1': - resolution: {integrity: sha512-76YeeQKyK0EtNkQiNBZ0nbVGooPf9IucY0WqVXVpaU4wuG7ZyLEE2ZAIgXafIuzODGQoLfetue7I8boMxh1/MA==} + '@swc/core-linux-arm-gnueabihf@1.12.5': + resolution: {integrity: sha512-jWlzP/Y4+wbE/EJM+WGIDQsklLFV3g5LmbYTBgrY4+5nb517P31mkBzf5y2knfNWPrL7HzNu0578j3Zi2E6Iig==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.12.1': - resolution: {integrity: sha512-BxJDIJPq1+aCh9UsaSAN6wo3tuln8UhNXruOrzTI8/ElIig/3sAueDM6Eq7GvZSGGSA7ljhNATMJ0elD7lFatQ==} + '@swc/core-linux-arm64-gnu@1.12.5': + resolution: {integrity: sha512-GkzgIUz+2r6J6Tn3hb7/4ByaWHRrRZt4vuN9BLAd+y65m2Bt0vlEpPtWhrB/TVe4hEkFR+W5PDETLEbUT4i0tQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.12.1': - resolution: {integrity: sha512-NhLdbffSXvY0/FwUSAl4hKBlpe5GHQGXK8DxTo3HHjLsD9sCPYieo3vG0NQoUYAy4ZUY1WeGjyxeq4qZddJzEQ==} + '@swc/core-linux-arm64-musl@1.12.5': + resolution: {integrity: sha512-g0AJ7QmZPj3Uw+C5pDa48LAUG7JBgQmB0mN5cW+s2mjaFKT0mTSxYALtx/MDZwJExDPo0yJV8kSbFO1tvFPyhg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.12.1': - resolution: {integrity: sha512-CrYnV8SZIgArQ9LKH0xEF95PKXzX9WkRSc5j55arOSBeDCeDUQk1Bg/iKdnDiuj5HC1hZpvzwMzSBJjv+Z70jA==} + '@swc/core-linux-x64-gnu@1.12.5': + resolution: {integrity: sha512-PeYoSziNy+iNiBHPtAsO84bzBne/mbCsG5ijYkAhS1GVsDgohClorUvRXXhcUZoX2gr8TfSI9WLHo30K+DKiHg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.12.1': - resolution: {integrity: sha512-BQMl3d0HaGB0/h2xcKlGtjk/cGRn2tnbsaChAKcjFdCepblKBCz1pgO/mL7w5iXq3s57wMDUn++71/a5RAkZOA==} + '@swc/core-linux-x64-musl@1.12.5': + resolution: {integrity: sha512-EJrfCCIyuV5LLmYgKtIMwtgsnjVesdFe0IgQzEKs9OfB6cL6g7WO9conn8BkGX8jphVa7jChKxShDGkreWWDzA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.12.1': - resolution: {integrity: sha512-b7NeGnpqTfmIGtUqXBl0KqoSmOnH64nRZoT5l4BAGdvwY7nxitWR94CqZuwyLPty/bLywmyDA9uO12Kvgb3+gg==} + '@swc/core-win32-arm64-msvc@1.12.5': + resolution: {integrity: sha512-FnwT7fxkJJMgsfiDoZKEVGyCzrPFbzpflFAAoTCUCu3MaHw6mW55o/MAAfofvJ1iIcEpec4o93OilsmKtpyO5Q==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.12.1': - resolution: {integrity: sha512-iU/29X2D7cHBp1to62cUg/5Xk8K+lyOJiKIGGW5rdzTW/c2zz3d/ehgpzVP/rqC4NVr88MXspqHU4il5gmDajw==} + '@swc/core-win32-ia32-msvc@1.12.5': + resolution: {integrity: sha512-jW6l4KFt9mIXSpGseE6BQOEFmbIeXeShDuWgldEJXKeXf/uPs8wrqv80XBIUwVpK0ZbmJwPQ0waGVj8UM3th2Q==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.12.1': - resolution: {integrity: sha512-+Zh+JKDwiFqV5N9yAd2DhYVGPORGh9cfenu1ptr9yge+eHAf7vZJcC3rnj6QMR1QJh0Y5VC9+YBjRFjZVA7XDw==} + '@swc/core-win32-x64-msvc@1.12.5': + resolution: {integrity: sha512-AZszwuEjlz1tSNLQRm3T5OZJ5eebxjJlDQnnzXJmg0B7DJMRoaAe1HTLOmejxjFK6yWr7fh+pSeCw2PgQLxgqA==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.12.1': - resolution: {integrity: sha512-aKXdDTqxTVFl/bKQZ3EQUjEMBEoF6JBv29moMZq0kbVO43na6u/u+3Vcbhbrh+A2N0X5OL4RaveuWfAjEgOmeA==} + '@swc/core@1.12.5': + resolution: {integrity: sha512-KxA0PHHIuUBmQ/Oi+xFpVzILj2Oo37sTtftCbyowQlyx5YOknEOw1kLpas5hMcpznXgFyAWbpK71xQps4INPgA==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -1261,6 +1261,9 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/hash-sum@1.0.2': resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} @@ -3034,8 +3037,8 @@ packages: peerDependencies: rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 - rollup@4.43.0: - resolution: {integrity: sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==} + rollup@4.44.0: + resolution: {integrity: sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3997,13 +4000,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-alias@5.1.1(rollup@4.43.0)': + '@rollup/plugin-alias@5.1.1(rollup@4.44.0)': optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.0 - '@rollup/plugin-commonjs@28.0.6(rollup@4.43.0)': + '@rollup/plugin-commonjs@28.0.6(rollup@4.44.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.43.0) + '@rollup/pluginutils': 5.1.0(rollup@4.44.0) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.4(picomatch@4.0.2) @@ -4011,152 +4014,152 @@ snapshots: magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.0 - '@rollup/plugin-inject@5.0.5(rollup@4.43.0)': + '@rollup/plugin-inject@5.0.5(rollup@4.44.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.43.0) + '@rollup/pluginutils': 5.1.0(rollup@4.44.0) estree-walker: 2.0.2 magic-string: 0.30.17 optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.0 - '@rollup/plugin-json@6.1.0(rollup@4.43.0)': + '@rollup/plugin-json@6.1.0(rollup@4.44.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.43.0) + '@rollup/pluginutils': 5.1.0(rollup@4.44.0) optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.0 - '@rollup/plugin-node-resolve@16.0.1(rollup@4.43.0)': + '@rollup/plugin-node-resolve@16.0.1(rollup@4.44.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.43.0) + '@rollup/pluginutils': 5.1.0(rollup@4.44.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.0 - '@rollup/plugin-replace@5.0.4(rollup@4.43.0)': + '@rollup/plugin-replace@5.0.4(rollup@4.44.0)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.43.0) + '@rollup/pluginutils': 5.1.0(rollup@4.44.0) magic-string: 0.30.17 optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.0 - '@rollup/pluginutils@5.1.0(rollup@4.43.0)': + '@rollup/pluginutils@5.1.0(rollup@4.44.0)': dependencies: '@types/estree': 1.0.7 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.0 - '@rollup/rollup-android-arm-eabi@4.43.0': + '@rollup/rollup-android-arm-eabi@4.44.0': optional: true - '@rollup/rollup-android-arm64@4.43.0': + '@rollup/rollup-android-arm64@4.44.0': optional: true - '@rollup/rollup-darwin-arm64@4.43.0': + '@rollup/rollup-darwin-arm64@4.44.0': optional: true - '@rollup/rollup-darwin-x64@4.43.0': + '@rollup/rollup-darwin-x64@4.44.0': optional: true - '@rollup/rollup-freebsd-arm64@4.43.0': + '@rollup/rollup-freebsd-arm64@4.44.0': optional: true - '@rollup/rollup-freebsd-x64@4.43.0': + '@rollup/rollup-freebsd-x64@4.44.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.43.0': + '@rollup/rollup-linux-arm-gnueabihf@4.44.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.43.0': + '@rollup/rollup-linux-arm-musleabihf@4.44.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.43.0': + '@rollup/rollup-linux-arm64-gnu@4.44.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.43.0': + '@rollup/rollup-linux-arm64-musl@4.44.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.43.0': + '@rollup/rollup-linux-loongarch64-gnu@4.44.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.43.0': + '@rollup/rollup-linux-riscv64-gnu@4.44.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.43.0': + '@rollup/rollup-linux-riscv64-musl@4.44.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.43.0': + '@rollup/rollup-linux-s390x-gnu@4.44.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.43.0': + '@rollup/rollup-linux-x64-gnu@4.44.0': optional: true - '@rollup/rollup-linux-x64-musl@4.43.0': + '@rollup/rollup-linux-x64-musl@4.44.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.43.0': + '@rollup/rollup-win32-arm64-msvc@4.44.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.43.0': + '@rollup/rollup-win32-ia32-msvc@4.44.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.43.0': + '@rollup/rollup-win32-x64-msvc@4.44.0': optional: true - '@swc/core-darwin-arm64@1.12.1': + '@swc/core-darwin-arm64@1.12.5': optional: true - '@swc/core-darwin-x64@1.12.1': + '@swc/core-darwin-x64@1.12.5': optional: true - '@swc/core-linux-arm-gnueabihf@1.12.1': + '@swc/core-linux-arm-gnueabihf@1.12.5': optional: true - '@swc/core-linux-arm64-gnu@1.12.1': + '@swc/core-linux-arm64-gnu@1.12.5': optional: true - '@swc/core-linux-arm64-musl@1.12.1': + '@swc/core-linux-arm64-musl@1.12.5': optional: true - '@swc/core-linux-x64-gnu@1.12.1': + '@swc/core-linux-x64-gnu@1.12.5': optional: true - '@swc/core-linux-x64-musl@1.12.1': + '@swc/core-linux-x64-musl@1.12.5': optional: true - '@swc/core-win32-arm64-msvc@1.12.1': + '@swc/core-win32-arm64-msvc@1.12.5': optional: true - '@swc/core-win32-ia32-msvc@1.12.1': + '@swc/core-win32-ia32-msvc@1.12.5': optional: true - '@swc/core-win32-x64-msvc@1.12.1': + '@swc/core-win32-x64-msvc@1.12.5': optional: true - '@swc/core@1.12.1': + '@swc/core@1.12.5': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.23 optionalDependencies: - '@swc/core-darwin-arm64': 1.12.1 - '@swc/core-darwin-x64': 1.12.1 - '@swc/core-linux-arm-gnueabihf': 1.12.1 - '@swc/core-linux-arm64-gnu': 1.12.1 - '@swc/core-linux-arm64-musl': 1.12.1 - '@swc/core-linux-x64-gnu': 1.12.1 - '@swc/core-linux-x64-musl': 1.12.1 - '@swc/core-win32-arm64-msvc': 1.12.1 - '@swc/core-win32-ia32-msvc': 1.12.1 - '@swc/core-win32-x64-msvc': 1.12.1 + '@swc/core-darwin-arm64': 1.12.5 + '@swc/core-darwin-x64': 1.12.5 + '@swc/core-linux-arm-gnueabihf': 1.12.5 + '@swc/core-linux-arm64-gnu': 1.12.5 + '@swc/core-linux-arm64-musl': 1.12.5 + '@swc/core-linux-x64-gnu': 1.12.5 + '@swc/core-linux-x64-musl': 1.12.5 + '@swc/core-win32-arm64-msvc': 1.12.5 + '@swc/core-win32-ia32-msvc': 1.12.5 + '@swc/core-win32-x64-msvc': 1.12.5 '@swc/counter@0.1.3': {} @@ -4173,6 +4176,8 @@ snapshots: '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} + '@types/hash-sum@1.0.2': {} '@types/json-schema@7.0.15': {} @@ -6038,54 +6043,54 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.0 - rollup-plugin-dts@6.2.1(rollup@4.43.0)(typescript@5.6.3): + rollup-plugin-dts@6.2.1(rollup@4.44.0)(typescript@5.6.3): dependencies: magic-string: 0.30.17 - rollup: 4.43.0 + rollup: 4.44.0 typescript: 5.6.3 optionalDependencies: '@babel/code-frame': 7.26.2 - rollup-plugin-esbuild@6.2.1(esbuild@0.25.5)(rollup@4.43.0): + rollup-plugin-esbuild@6.2.1(esbuild@0.25.5)(rollup@4.44.0): dependencies: debug: 4.4.0 es-module-lexer: 1.6.0 esbuild: 0.25.5 get-tsconfig: 4.10.0 - rollup: 4.43.0 + rollup: 4.44.0 unplugin-utils: 0.2.4 transitivePeerDependencies: - supports-color - rollup-plugin-polyfill-node@0.13.0(rollup@4.43.0): + rollup-plugin-polyfill-node@0.13.0(rollup@4.44.0): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.43.0) - rollup: 4.43.0 + '@rollup/plugin-inject': 5.0.5(rollup@4.44.0) + rollup: 4.44.0 - rollup@4.43.0: + rollup@4.44.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.43.0 - '@rollup/rollup-android-arm64': 4.43.0 - '@rollup/rollup-darwin-arm64': 4.43.0 - '@rollup/rollup-darwin-x64': 4.43.0 - '@rollup/rollup-freebsd-arm64': 4.43.0 - '@rollup/rollup-freebsd-x64': 4.43.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.43.0 - '@rollup/rollup-linux-arm-musleabihf': 4.43.0 - '@rollup/rollup-linux-arm64-gnu': 4.43.0 - '@rollup/rollup-linux-arm64-musl': 4.43.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.43.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.43.0 - '@rollup/rollup-linux-riscv64-gnu': 4.43.0 - '@rollup/rollup-linux-riscv64-musl': 4.43.0 - '@rollup/rollup-linux-s390x-gnu': 4.43.0 - '@rollup/rollup-linux-x64-gnu': 4.43.0 - '@rollup/rollup-linux-x64-musl': 4.43.0 - '@rollup/rollup-win32-arm64-msvc': 4.43.0 - '@rollup/rollup-win32-ia32-msvc': 4.43.0 - '@rollup/rollup-win32-x64-msvc': 4.43.0 + '@rollup/rollup-android-arm-eabi': 4.44.0 + '@rollup/rollup-android-arm64': 4.44.0 + '@rollup/rollup-darwin-arm64': 4.44.0 + '@rollup/rollup-darwin-x64': 4.44.0 + '@rollup/rollup-freebsd-arm64': 4.44.0 + '@rollup/rollup-freebsd-x64': 4.44.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.44.0 + '@rollup/rollup-linux-arm-musleabihf': 4.44.0 + '@rollup/rollup-linux-arm64-gnu': 4.44.0 + '@rollup/rollup-linux-arm64-musl': 4.44.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.44.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.44.0 + '@rollup/rollup-linux-riscv64-gnu': 4.44.0 + '@rollup/rollup-linux-riscv64-musl': 4.44.0 + '@rollup/rollup-linux-s390x-gnu': 4.44.0 + '@rollup/rollup-linux-x64-gnu': 4.44.0 + '@rollup/rollup-linux-x64-musl': 4.44.0 + '@rollup/rollup-win32-arm64-msvc': 4.44.0 + '@rollup/rollup-win32-ia32-msvc': 4.44.0 + '@rollup/rollup-win32-x64-msvc': 4.44.0 fsevents: 2.3.3 rrweb-cssom@0.8.0: {} @@ -6445,7 +6450,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.5.6 - rollup: 4.43.0 + rollup: 4.44.0 optionalDependencies: '@types/node': 22.15.32 fsevents: 2.3.3 @@ -6455,7 +6460,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.5.6 - rollup: 4.43.0 + rollup: 4.44.0 optionalDependencies: '@types/node': 22.15.32 fsevents: 2.3.3 From ba391f5fdf5d84bfacaca6a2a3e7057fc99efa34 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 14:33:04 +0800 Subject: [PATCH 03/28] chore(deps): update dependency vite to v5.4.19 [security] (#13517) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8e25dc1f84..05ea3a23dc2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -175,7 +175,7 @@ importers: version: 8.32.1(eslint@9.27.0)(typescript@5.6.3) vite: specifier: 'catalog:' - version: 5.4.15(@types/node@22.15.32)(sass@1.89.2) + version: 5.4.19(@types/node@22.15.32)(sass@1.89.2) vitest: specifier: ^3.1.4 version: 3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2) From 7e133dbe01acea3efe8d0ad4cd0d864bc4efa6b6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 08:16:56 +0800 Subject: [PATCH 04/28] chore(deps): update all non-major dependencies (#13541) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 68 +++++++++++++++++++++++++------------------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 39ad2e20da9..4429f409c16 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "version": "3.5.17", - "packageManager": "pnpm@10.12.2", + "packageManager": "pnpm@10.12.4", "type": "module", "scripts": { "dev": "node scripts/dev.js", @@ -71,7 +71,7 @@ "@rollup/plugin-replace": "5.0.4", "@swc/core": "^1.12.5", "@types/hash-sum": "^1.0.2", - "@types/node": "^22.15.32", + "@types/node": "^22.16.0", "@types/semver": "^7.7.0", "@types/serve-handler": "^6.1.4", "@vitest/coverage-v8": "^3.1.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05ea3a23dc2..71d8025389e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ^1.0.2 version: 1.0.2 '@types/node': - specifier: ^22.15.32 - version: 22.15.32 + specifier: ^22.16.0 + version: 22.16.0 '@types/semver': specifier: ^7.7.0 version: 7.7.0 @@ -70,10 +70,10 @@ importers: version: 6.1.4 '@vitest/coverage-v8': specifier: ^3.1.4 - version: 3.1.4(vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2)) + version: 3.1.4(vitest@3.1.4(@types/node@22.16.0)(jsdom@26.1.0)(sass@1.89.2)) '@vitest/eslint-plugin': specifier: ^1.2.1 - version: 1.2.1(eslint@9.27.0)(typescript@5.6.3)(vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2)) + version: 1.2.1(eslint@9.27.0)(typescript@5.6.3)(vitest@3.1.4(@types/node@22.16.0)(jsdom@26.1.0)(sass@1.89.2)) '@vue/consolidate': specifier: 1.0.0 version: 1.0.0 @@ -175,10 +175,10 @@ importers: version: 8.32.1(eslint@9.27.0)(typescript@5.6.3) vite: specifier: 'catalog:' - version: 5.4.19(@types/node@22.15.32)(sass@1.89.2) + version: 5.4.15(@types/node@22.16.0)(sass@1.89.2) vitest: specifier: ^3.1.4 - version: 3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2) + version: 3.1.4(@types/node@22.16.0)(jsdom@26.1.0)(sass@1.89.2) packages-private/dts-built-test: dependencies: @@ -218,10 +218,10 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.4(vite@5.4.15(@types/node@22.15.32)(sass@1.89.2))(vue@packages+vue) + version: 5.2.4(vite@5.4.15(@types/node@22.16.0)(sass@1.89.2))(vue@packages+vue) vite: specifier: 'catalog:' - version: 5.4.15(@types/node@22.15.32)(sass@1.89.2) + version: 5.4.15(@types/node@22.16.0)(sass@1.89.2) packages-private/template-explorer: dependencies: @@ -236,10 +236,10 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: 'catalog:' - version: 5.2.4(vite@5.4.15(@types/node@22.15.32)(sass@1.89.2))(vue@packages+vue) + version: 5.2.4(vite@5.4.15(@types/node@22.16.0)(sass@1.89.2))(vue@packages+vue) vite: specifier: 'catalog:' - version: 5.4.15(@types/node@22.15.32)(sass@1.89.2) + version: 5.4.15(@types/node@22.16.0)(sass@1.89.2) vue: specifier: workspace:* version: link:../../packages/vue @@ -1270,8 +1270,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.15.32': - resolution: {integrity: sha512-3jigKqgSjsH6gYZv2nEsqdXfZqIFGAV36XYYjf9KGZ3PSG+IhLecqPnI310RvjutyMwifE2hhhNEklOUrvx/wA==} + '@types/node@22.16.0': + resolution: {integrity: sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4182,7 +4182,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@22.15.32': + '@types/node@22.16.0': dependencies: undici-types: 6.21.0 @@ -4194,13 +4194,13 @@ snapshots: '@types/serve-handler@6.1.4': dependencies: - '@types/node': 22.15.32 + '@types/node': 22.16.0 '@types/trusted-types@2.0.7': {} '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.15.32 + '@types/node': 22.16.0 optional: true '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.6.3))(eslint@9.27.0)(typescript@5.6.3)': @@ -4333,12 +4333,12 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.7.2': optional: true - '@vitejs/plugin-vue@5.2.4(vite@5.4.15(@types/node@22.15.32)(sass@1.89.2))(vue@packages+vue)': + '@vitejs/plugin-vue@5.2.4(vite@5.4.15(@types/node@22.16.0)(sass@1.89.2))(vue@packages+vue)': dependencies: - vite: 5.4.15(@types/node@22.15.32)(sass@1.89.2) + vite: 5.4.15(@types/node@22.16.0)(sass@1.89.2) vue: link:packages/vue - '@vitest/coverage-v8@3.1.4(vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2))': + '@vitest/coverage-v8@3.1.4(vitest@3.1.4(@types/node@22.16.0)(jsdom@26.1.0)(sass@1.89.2))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -4352,17 +4352,17 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2) + vitest: 3.1.4(@types/node@22.16.0)(jsdom@26.1.0)(sass@1.89.2) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.2.1(eslint@9.27.0)(typescript@5.6.3)(vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2))': + '@vitest/eslint-plugin@1.2.1(eslint@9.27.0)(typescript@5.6.3)(vitest@3.1.4(@types/node@22.16.0)(jsdom@26.1.0)(sass@1.89.2))': dependencies: '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.6.3) eslint: 9.27.0 optionalDependencies: typescript: 5.6.3 - vitest: 3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2) + vitest: 3.1.4(@types/node@22.16.0)(jsdom@26.1.0)(sass@1.89.2) transitivePeerDependencies: - supports-color @@ -4373,13 +4373,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.4(vite@5.4.19(@types/node@22.15.32)(sass@1.89.2))': + '@vitest/mocker@3.1.4(vite@5.4.19(@types/node@22.16.0)(sass@1.89.2))': dependencies: '@vitest/spy': 3.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.19(@types/node@22.15.32)(sass@1.89.2) + vite: 5.4.19(@types/node@22.16.0)(sass@1.89.2) '@vitest/pretty-format@3.1.4': dependencies: @@ -6428,13 +6428,13 @@ snapshots: vary@1.1.2: {} - vite-node@3.1.4(@types/node@22.15.32)(sass@1.89.2): + vite-node@3.1.4(@types/node@22.16.0)(sass@1.89.2): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 5.4.19(@types/node@22.15.32)(sass@1.89.2) + vite: 5.4.19(@types/node@22.16.0)(sass@1.89.2) transitivePeerDependencies: - '@types/node' - less @@ -6446,30 +6446,30 @@ snapshots: - supports-color - terser - vite@5.4.15(@types/node@22.15.32)(sass@1.89.2): + vite@5.4.15(@types/node@22.16.0)(sass@1.89.2): dependencies: esbuild: 0.21.5 postcss: 8.5.6 rollup: 4.44.0 optionalDependencies: - '@types/node': 22.15.32 + '@types/node': 22.16.0 fsevents: 2.3.3 sass: 1.89.2 - vite@5.4.19(@types/node@22.15.32)(sass@1.89.2): + vite@5.4.19(@types/node@22.16.0)(sass@1.89.2): dependencies: esbuild: 0.21.5 postcss: 8.5.6 rollup: 4.44.0 optionalDependencies: - '@types/node': 22.15.32 + '@types/node': 22.16.0 fsevents: 2.3.3 sass: 1.89.2 - vitest@3.1.4(@types/node@22.15.32)(jsdom@26.1.0)(sass@1.89.2): + vitest@3.1.4(@types/node@22.16.0)(jsdom@26.1.0)(sass@1.89.2): dependencies: '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(vite@5.4.19(@types/node@22.15.32)(sass@1.89.2)) + '@vitest/mocker': 3.1.4(vite@5.4.19(@types/node@22.16.0)(sass@1.89.2)) '@vitest/pretty-format': 3.1.4 '@vitest/runner': 3.1.4 '@vitest/snapshot': 3.1.4 @@ -6486,11 +6486,11 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 5.4.19(@types/node@22.15.32)(sass@1.89.2) - vite-node: 3.1.4(@types/node@22.15.32)(sass@1.89.2) + vite: 5.4.19(@types/node@22.16.0)(sass@1.89.2) + vite-node: 3.1.4(@types/node@22.16.0)(sass@1.89.2) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.15.32 + '@types/node': 22.16.0 jsdom: 26.1.0 transitivePeerDependencies: - less From c85f1b5a132eb8ec25f71b250e25e65a5c20964f Mon Sep 17 00:00:00 2001 From: GU Yiling Date: Thu, 3 Jul 2025 16:20:28 +0800 Subject: [PATCH 05/28] fix(css-vars): nullish v-bind in style should not lead to unexpected inheritance (#12461) close #12434 close #12439 close #7474 close #7475 --- .../__snapshots__/compileScript.spec.ts.snap | 6 ++--- .../__tests__/compileScript.spec.ts | 6 ++--- packages/compiler-sfc/src/style/cssVars.ts | 7 ++++- packages/runtime-core/src/component.ts | 4 +-- packages/runtime-core/src/hydration.ts | 7 +++-- .../__tests__/helpers/useCssVars.spec.ts | 23 ++++++++++++++++ .../runtime-dom/src/helpers/useCssVars.ts | 15 ++++++----- .../__tests__/ssrRenderAttrs.spec.ts | 15 +++++++++++ .../src/helpers/ssrRenderAttrs.ts | 21 ++++++++++++++- packages/shared/__tests__/cssVars.spec.ts | 27 +++++++++++++++++++ packages/shared/src/cssVars.ts | 24 +++++++++++++++++ packages/shared/src/index.ts | 1 + 12 files changed, 136 insertions(+), 20 deletions(-) create mode 100644 packages/shared/__tests__/cssVars.spec.ts create mode 100644 packages/shared/src/cssVars.ts diff --git a/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap b/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap index d9511e829df..2acac64b0fb 100644 --- a/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap @@ -884,9 +884,9 @@ export default { return (_ctx, _push, _parent, _attrs) => { const _cssVars = { style: { - "--xxxxxxxx-count": (count.value), - "--xxxxxxxx-style\\\\.color": (style.color), - "--xxxxxxxx-height\\\\ \\\\+\\\\ \\\\\\"px\\\\\\"": (height.value + "px") + ":--xxxxxxxx-count": (count.value), + ":--xxxxxxxx-style\\\\.color": (style.color), + ":--xxxxxxxx-height\\\\ \\\\+\\\\ \\\\\\"px\\\\\\"": (height.value + "px") }} _push(\`', () => { expect(content).toMatch(`return (_ctx, _push`) expect(content).toMatch(`ssrInterpolate`) expect(content).not.toMatch(`useCssVars`) - expect(content).toMatch(`"--${mockId}-count": (count.value)`) - expect(content).toMatch(`"--${mockId}-style\\\\.color": (style.color)`) + expect(content).toMatch(`":--${mockId}-count": (count.value)`) + expect(content).toMatch(`":--${mockId}-style\\\\.color": (style.color)`) expect(content).toMatch( - `"--${mockId}-height\\\\ \\\\+\\\\ \\\\\\"px\\\\\\"": (height.value + "px")`, + `":--${mockId}-height\\\\ \\\\+\\\\ \\\\\\"px\\\\\\"": (height.value + "px")`, ) assertCode(content) }) diff --git a/packages/compiler-sfc/src/style/cssVars.ts b/packages/compiler-sfc/src/style/cssVars.ts index 0397c7d790a..c6d1633cf60 100644 --- a/packages/compiler-sfc/src/style/cssVars.ts +++ b/packages/compiler-sfc/src/style/cssVars.ts @@ -23,7 +23,12 @@ export function genCssVarsFromList( return `{\n ${vars .map( key => - `"${isSSR ? `--` : ``}${genVarName(id, key, isProd, isSSR)}": (${key})`, + // The `:` prefix here is used in `ssrRenderStyle` to distinguish whether + // a custom property comes from `ssrCssVars`. If it does, we need to reset + // its value to `initial` on the component instance to avoid unintentionally + // inheriting the same property value from a different instance of the same + // component in the outer scope. + `"${isSSR ? `:--` : ``}${genVarName(id, key, isProd, isSSR)}": (${key})`, ) .join(',\n ')}\n}` } diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts index f191c36df12..60552d736d5 100644 --- a/packages/runtime-core/src/component.ts +++ b/packages/runtime-core/src/component.ts @@ -585,13 +585,13 @@ export interface ComponentInternalInstance { * For updating css vars on contained teleports * @internal */ - ut?: (vars?: Record) => void + ut?: (vars?: Record) => void /** * dev only. For style v-bind hydration mismatch checks * @internal */ - getCssVars?: () => Record + getCssVars?: () => Record /** * v2 compat only, for caching mutated $options diff --git a/packages/runtime-core/src/hydration.ts b/packages/runtime-core/src/hydration.ts index 12813b598b5..bdebed59602 100644 --- a/packages/runtime-core/src/hydration.ts +++ b/packages/runtime-core/src/hydration.ts @@ -28,6 +28,7 @@ import { isReservedProp, isString, normalizeClass, + normalizeCssVarValue, normalizeStyle, stringifyStyle, } from '@vue/shared' @@ -945,10 +946,8 @@ function resolveCssVars( ) { const cssVars = instance.getCssVars() for (const key in cssVars) { - expectedMap.set( - `--${getEscapedCssVarName(key, false)}`, - String(cssVars[key]), - ) + const value = normalizeCssVarValue(cssVars[key]) + expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value) } } if (vnode === root && instance.parent) { diff --git a/packages/runtime-dom/__tests__/helpers/useCssVars.spec.ts b/packages/runtime-dom/__tests__/helpers/useCssVars.spec.ts index 1fb4cc65fd0..e2102e0c7b8 100644 --- a/packages/runtime-dom/__tests__/helpers/useCssVars.spec.ts +++ b/packages/runtime-dom/__tests__/helpers/useCssVars.spec.ts @@ -465,4 +465,27 @@ describe('useCssVars', () => { render(h(App), root) expect(colorInOnMount).toBe(`red`) }) + + test('should set vars as `initial` for nullish values', async () => { + // `getPropertyValue` cannot reflect the real value for white spaces and JSDOM also + // doesn't 100% reflect the real behavior of browsers, so we only keep the test for + // `initial` value here. + // The value normalization is tested in packages/shared/__tests__/cssVars.spec.ts. + const state = reactive>({ + foo: undefined, + bar: null, + }) + const root = document.createElement('div') + const App = { + setup() { + useCssVars(() => state) + return () => h('div') + }, + } + render(h(App), root) + await nextTick() + const style = (root.children[0] as HTMLElement).style + expect(style.getPropertyValue('--foo')).toBe('initial') + expect(style.getPropertyValue('--bar')).toBe('initial') + }) }) diff --git a/packages/runtime-dom/src/helpers/useCssVars.ts b/packages/runtime-dom/src/helpers/useCssVars.ts index e2bc6de9278..3032143d9a7 100644 --- a/packages/runtime-dom/src/helpers/useCssVars.ts +++ b/packages/runtime-dom/src/helpers/useCssVars.ts @@ -10,14 +10,16 @@ import { warn, watch, } from '@vue/runtime-core' -import { NOOP, ShapeFlags } from '@vue/shared' +import { NOOP, ShapeFlags, normalizeCssVarValue } from '@vue/shared' export const CSS_VAR_TEXT: unique symbol = Symbol(__DEV__ ? 'CSS_VAR_TEXT' : '') /** * Runtime helper for SFC's CSS variable injection feature. * @private */ -export function useCssVars(getter: (ctx: any) => Record): void { +export function useCssVars( + getter: (ctx: any) => Record, +): void { if (!__BROWSER__ && !__TEST__) return const instance = getCurrentInstance() @@ -64,7 +66,7 @@ export function useCssVars(getter: (ctx: any) => Record): void { }) } -function setVarsOnVNode(vnode: VNode, vars: Record) { +function setVarsOnVNode(vnode: VNode, vars: Record) { if (__FEATURE_SUSPENSE__ && vnode.shapeFlag & ShapeFlags.SUSPENSE) { const suspense = vnode.suspense! vnode = suspense.activeBranch! @@ -94,13 +96,14 @@ function setVarsOnVNode(vnode: VNode, vars: Record) { } } -function setVarsOnNode(el: Node, vars: Record) { +function setVarsOnNode(el: Node, vars: Record) { if (el.nodeType === 1) { const style = (el as HTMLElement).style let cssText = '' for (const key in vars) { - style.setProperty(`--${key}`, vars[key]) - cssText += `--${key}: ${vars[key]};` + const value = normalizeCssVarValue(vars[key]) + style.setProperty(`--${key}`, value) + cssText += `--${key}: ${value};` } ;(style as any)[CSS_VAR_TEXT] = cssText } diff --git a/packages/server-renderer/__tests__/ssrRenderAttrs.spec.ts b/packages/server-renderer/__tests__/ssrRenderAttrs.spec.ts index 9f33866e5a8..984387bb864 100644 --- a/packages/server-renderer/__tests__/ssrRenderAttrs.spec.ts +++ b/packages/server-renderer/__tests__/ssrRenderAttrs.spec.ts @@ -203,4 +203,19 @@ describe('ssr: renderStyle', () => { }), ).toBe(`color:"><script;`) }) + + test('useCssVars handling', () => { + expect( + ssrRenderStyle({ + fontSize: null, + ':--v1': undefined, + ':--v2': null, + ':--v3': '', + ':--v4': ' ', + ':--v5': 'foo', + ':--v6': 0, + '--foo': 1, + }), + ).toBe(`--v1:initial;--v2:initial;--v3: ;--v4: ;--v5:foo;--v6:0;--foo:1;`) + }) }) diff --git a/packages/server-renderer/src/helpers/ssrRenderAttrs.ts b/packages/server-renderer/src/helpers/ssrRenderAttrs.ts index 9689b4185c6..b082da03fe8 100644 --- a/packages/server-renderer/src/helpers/ssrRenderAttrs.ts +++ b/packages/server-renderer/src/helpers/ssrRenderAttrs.ts @@ -1,5 +1,7 @@ import { escapeHtml, + isArray, + isObject, isRenderableAttrValue, isSVGTag, stringifyStyle, @@ -12,6 +14,7 @@ import { isString, makeMap, normalizeClass, + normalizeCssVarValue, normalizeStyle, propsToAttrMap, } from '@vue/shared' @@ -93,6 +96,22 @@ export function ssrRenderStyle(raw: unknown): string { if (isString(raw)) { return escapeHtml(raw) } - const styles = normalizeStyle(raw) + const styles = normalizeStyle(ssrResetCssVars(raw)) return escapeHtml(stringifyStyle(styles)) } + +function ssrResetCssVars(raw: unknown) { + if (!isArray(raw) && isObject(raw)) { + const res: Record = {} + for (const key in raw) { + // `:` prefixed keys are coming from `ssrCssVars` + if (key.startsWith(':--')) { + res[key.slice(1)] = normalizeCssVarValue(raw[key]) + } else { + res[key] = raw[key] + } + } + return res + } + return raw +} diff --git a/packages/shared/__tests__/cssVars.spec.ts b/packages/shared/__tests__/cssVars.spec.ts new file mode 100644 index 00000000000..747ab067d25 --- /dev/null +++ b/packages/shared/__tests__/cssVars.spec.ts @@ -0,0 +1,27 @@ +import { normalizeCssVarValue } from '../src' + +describe('utils/cssVars', () => { + test('should normalize css binding values correctly', () => { + expect(normalizeCssVarValue(null)).toBe('initial') + expect(normalizeCssVarValue(undefined)).toBe('initial') + expect(normalizeCssVarValue('')).toBe(' ') + expect(normalizeCssVarValue(' ')).toBe(' ') + expect(normalizeCssVarValue('foo')).toBe('foo') + expect(normalizeCssVarValue(0)).toBe('0') + }) + + test('should warn on invalid css binding values', () => { + const warning = + '[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:' + expect(normalizeCssVarValue(NaN)).toBe('NaN') + expect(warning).toHaveBeenWarnedTimes(1) + expect(normalizeCssVarValue(Infinity)).toBe('Infinity') + expect(warning).toHaveBeenWarnedTimes(2) + expect(normalizeCssVarValue(-Infinity)).toBe('-Infinity') + expect(warning).toHaveBeenWarnedTimes(3) + expect(normalizeCssVarValue({})).toBe('[object Object]') + expect(warning).toHaveBeenWarnedTimes(4) + expect(normalizeCssVarValue([])).toBe('') + expect(warning).toHaveBeenWarnedTimes(5) + }) +}) diff --git a/packages/shared/src/cssVars.ts b/packages/shared/src/cssVars.ts new file mode 100644 index 00000000000..0c69b606f5d --- /dev/null +++ b/packages/shared/src/cssVars.ts @@ -0,0 +1,24 @@ +/** + * Normalize CSS var value created by `v-bind` in `