diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f0c8402..5ef8516 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,7 @@ jobs: uses: ./.github/actions/setup-node-pnpm - name: Install Playwright browsers - run: pnpx playwright install chromium + run: pnpm exec playwright install chromium - run: pnpm ready diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index 60fd406..e8f2ca3 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -32,7 +32,6 @@ "@vitest/browser": "^4.0.3", "@vitest/browser-playwright": "^4.0.3", "@vitest/ui": "^4.0.3", - "happy-dom": "^20.0.0", "playwright": "^1.55.0", "rolldown-vite": "^7.1.10", "tailwindcss": "^4.1.13", diff --git a/apps/dashboard/src/components/minification/CompressionRatioChart.tsx b/apps/dashboard/src/components/minification/CompressionRatioChart.tsx index 3085244..1e4127b 100644 --- a/apps/dashboard/src/components/minification/CompressionRatioChart.tsx +++ b/apps/dashboard/src/components/minification/CompressionRatioChart.tsx @@ -42,7 +42,7 @@ export function CompressionRatioChart({ data }: CompressionRatioChartProps) { `${label}%`} + formatter={(label) => `${label as number}%`} style={{ fontSize: '10px', fill: '#94a3b8' }} /> diff --git a/apps/dashboard/src/components/minification/MinificationTimeChart.tsx b/apps/dashboard/src/components/minification/MinificationTimeChart.tsx index 05fe332..5ca25fa 100644 --- a/apps/dashboard/src/components/minification/MinificationTimeChart.tsx +++ b/apps/dashboard/src/components/minification/MinificationTimeChart.tsx @@ -39,7 +39,7 @@ export function MinificationTimeChart({ data }: MinificationTimeChartProps) { `${label}ms`} + formatter={(label) => `${label as number}ms`} style={{ fontSize: '12px', fill: '#94a3b8' }} /> diff --git a/apps/dashboard/src/components/rolldown/BuildTimeChart.tsx b/apps/dashboard/src/components/rolldown/BuildTimeChart.tsx index 066c2c5..b93934e 100644 --- a/apps/dashboard/src/components/rolldown/BuildTimeChart.tsx +++ b/apps/dashboard/src/components/rolldown/BuildTimeChart.tsx @@ -49,7 +49,7 @@ export function BuildTimeChart() { `${label}ms`} + formatter={(label) => `${label as number}ms`} style={{ fontSize: '11px', fill: '#94a3b8' }} /> diff --git a/apps/dashboard/vitest.config.ts b/apps/dashboard/vitest.config.ts index c93d225..c29fbcf 100644 --- a/apps/dashboard/vitest.config.ts +++ b/apps/dashboard/vitest.config.ts @@ -16,7 +16,5 @@ export default defineProject({ }, ], }, - globals: true, - environment: 'happy-dom', }, }); diff --git a/package.json b/package.json index 10119d3..5019af7 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "@voidzero-dev/vite-plus": "latest", "dprint": "^0.50.2", "oxlint-tsgolint": "^0.3.0", + "playwright": "^1.56.1", "top-github-dependents-by-stars": "^1.0.4", "vitest": "^4.0.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 35e1fbb..d0eb38e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: oxlint-tsgolint: specifier: ^0.3.0 version: 0.3.0 + playwright: + specifier: ^1.56.1 + version: 1.56.1 top-github-dependents-by-stars: specifier: ^1.0.4 version: 1.0.4 @@ -89,16 +92,13 @@ importers: version: 4.0.3(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2))(vitest@4.0.3) '@vitest/browser-playwright': specifier: ^4.0.3 - version: 4.0.3(playwright@1.55.0)(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2))(vitest@4.0.3) + version: 4.0.3(playwright@1.56.1)(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2))(vitest@4.0.3) '@vitest/ui': specifier: ^4.0.3 version: 4.0.3(vitest@4.0.3) - happy-dom: - specifier: ^20.0.0 - version: 20.0.8 playwright: specifier: ^1.55.0 - version: 1.55.0 + version: 1.56.1 rolldown-vite: specifier: ^7.1.10 version: 7.1.19(@types/node@20.19.17)(esbuild@0.25.11)(jiti@2.6.1) @@ -887,26 +887,26 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@3.13.0': - resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} + '@shikijs/core@3.14.0': + resolution: {integrity: sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw==} - '@shikijs/engine-javascript@3.13.0': - resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==} + '@shikijs/engine-javascript@3.14.0': + resolution: {integrity: sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ==} - '@shikijs/engine-oniguruma@3.13.0': - resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==} + '@shikijs/engine-oniguruma@3.14.0': + resolution: {integrity: sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug==} - '@shikijs/langs@3.13.0': - resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==} + '@shikijs/langs@3.14.0': + resolution: {integrity: sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg==} - '@shikijs/themes@3.13.0': - resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==} + '@shikijs/themes@3.14.0': + resolution: {integrity: sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA==} - '@shikijs/transformers@3.13.0': - resolution: {integrity: sha512-833lcuVzcRiG+fXvgslWsM2f4gHpjEgui1ipIknSizRuTgMkNZupiXE5/TVJ6eSYfhNBFhBZKkReKWO2GgYmqA==} + '@shikijs/transformers@3.14.0': + resolution: {integrity: sha512-i67zQnY9wLMMnKasonVW1L9fKneSLZDj1ePsA4o0AZWU4uUobmJY9baRDa36z+a9/g0aG76/2tybQvm4hrwxIQ==} - '@shikijs/types@3.13.0': - resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==} + '@shikijs/types@3.14.0': + resolution: {integrity: sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -1976,13 +1976,13 @@ packages: resolution: {integrity: sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==} hasBin: true - playwright-core@1.55.0: - resolution: {integrity: sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==} + playwright-core@1.56.1: + resolution: {integrity: sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==} engines: {node: '>=18'} hasBin: true - playwright@1.55.0: - resolution: {integrity: sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==} + playwright@1.56.1: + resolution: {integrity: sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==} engines: {node: '>=18'} hasBin: true @@ -2172,8 +2172,8 @@ packages: set-cookie-parser@2.7.1: resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} - shiki@3.13.0: - resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==} + shiki@3.14.0: + resolution: {integrity: sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g==} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -2956,38 +2956,38 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.5': optional: true - '@shikijs/core@3.13.0': + '@shikijs/core@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.13.0': + '@shikijs/engine-javascript@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 - '@shikijs/engine-oniguruma@3.13.0': + '@shikijs/engine-oniguruma@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.13.0': + '@shikijs/langs@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 - '@shikijs/themes@3.13.0': + '@shikijs/themes@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 - '@shikijs/transformers@3.13.0': + '@shikijs/transformers@3.14.0': dependencies: - '@shikijs/core': 3.13.0 - '@shikijs/types': 3.13.0 + '@shikijs/core': 3.14.0 + '@shikijs/types': 3.14.0 - '@shikijs/types@3.13.0': + '@shikijs/types@3.14.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -3156,6 +3156,7 @@ snapshots: '@types/node@20.19.17': dependencies: undici-types: 6.21.0 + optional: true '@types/react-dom@19.1.9(@types/react@19.1.13)': dependencies: @@ -3184,7 +3185,8 @@ snapshots: '@types/web-bluetooth@0.0.21': {} - '@types/whatwg-mimetype@3.0.2': {} + '@types/whatwg-mimetype@3.0.2': + optional: true '@ungap/structured-clone@1.3.0': {} @@ -3194,11 +3196,11 @@ snapshots: vite: rolldown-vite@7.1.19(@types/node@20.19.17)(esbuild@0.25.11)(jiti@2.6.1) vue: 3.5.22(typescript@5.9.2) - '@vitest/browser-playwright@4.0.3(playwright@1.55.0)(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2))(vitest@4.0.3)': + '@vitest/browser-playwright@4.0.3(playwright@1.56.1)(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2))(vitest@4.0.3)': dependencies: '@vitest/browser': 4.0.3(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2))(vitest@4.0.3) '@vitest/mocker': 4.0.3(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2)) - playwright: 1.55.0 + playwright: 1.56.1 tinyrainbow: 3.0.3 vitest: 4.0.3(@types/node@20.19.17)(@vitest/browser-playwright@4.0.3)(@vitest/ui@4.0.3)(esbuild@0.25.11)(happy-dom@20.0.8)(jiti@2.6.1) transitivePeerDependencies: @@ -3785,6 +3787,7 @@ snapshots: '@types/node': 20.19.17 '@types/whatwg-mimetype': 3.0.2 whatwg-mimetype: 3.0.0 + optional: true has-symbols@1.1.0: {} @@ -4082,11 +4085,11 @@ snapshots: dependencies: pngjs: 7.0.0 - playwright-core@1.55.0: {} + playwright-core@1.56.1: {} - playwright@1.55.0: + playwright@1.56.1: dependencies: - playwright-core: 1.55.0 + playwright-core: 1.56.1 optionalDependencies: fsevents: 2.3.2 @@ -4277,14 +4280,14 @@ snapshots: set-cookie-parser@2.7.1: {} - shiki@3.13.0: + shiki@3.14.0: dependencies: - '@shikijs/core': 3.13.0 - '@shikijs/engine-javascript': 3.13.0 - '@shikijs/engine-oniguruma': 3.13.0 - '@shikijs/langs': 3.13.0 - '@shikijs/themes': 3.13.0 - '@shikijs/types': 3.13.0 + '@shikijs/core': 3.14.0 + '@shikijs/engine-javascript': 3.14.0 + '@shikijs/engine-oniguruma': 3.14.0 + '@shikijs/langs': 3.14.0 + '@shikijs/themes': 3.14.0 + '@shikijs/types': 3.14.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -4415,7 +4418,8 @@ snapshots: jiti: 2.6.1 quansync: 0.2.11 - undici-types@6.21.0: {} + undici-types@6.21.0: + optional: true undici@7.16.0: {} @@ -4500,9 +4504,9 @@ snapshots: '@docsearch/css': 4.2.0 '@docsearch/js': 4.2.0 '@iconify-json/simple-icons': 1.2.55 - '@shikijs/core': 3.13.0 - '@shikijs/transformers': 3.13.0 - '@shikijs/types': 3.13.0 + '@shikijs/core': 3.14.0 + '@shikijs/transformers': 3.14.0 + '@shikijs/types': 3.14.0 '@types/markdown-it': 14.1.2 '@vitejs/plugin-vue': 6.0.1(rolldown-vite@7.1.19(@types/node@20.19.17)(esbuild@0.25.11)(jiti@2.6.1))(vue@3.5.22(typescript@5.9.2)) '@vue/devtools-api': 8.0.3 @@ -4512,7 +4516,7 @@ snapshots: focus-trap: 7.6.5 mark.js: 8.11.1 minisearch: 7.2.0 - shiki: 3.13.0 + shiki: 3.14.0 vite: rolldown-vite@7.1.19(@types/node@20.19.17)(esbuild@0.25.11)(jiti@2.6.1) vue: 3.5.22(typescript@5.9.2) optionalDependencies: @@ -4566,7 +4570,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.19.17 - '@vitest/browser-playwright': 4.0.3(playwright@1.55.0)(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2))(vitest@4.0.3) + '@vitest/browser-playwright': 4.0.3(playwright@1.56.1)(vite@7.1.6(@types/node@20.19.17)(jiti@2.6.1)(lightningcss@1.30.2))(vitest@4.0.3) '@vitest/ui': 4.0.3(vitest@4.0.3) happy-dom: 20.0.8 transitivePeerDependencies: @@ -4597,7 +4601,8 @@ snapshots: dependencies: iconv-lite: 0.6.3 - whatwg-mimetype@3.0.0: {} + whatwg-mimetype@3.0.0: + optional: true whatwg-mimetype@4.0.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5c2dcdc..21a275b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -27,3 +27,4 @@ minimumReleaseAgeExclude: - 'vite' - 'vitepress' - 'vitest' + - '@vitest/*'