[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
test testing-tools vite
12

Configure Feed

Select the types of activity you want to include in your feed.

chore(deps): update eslint packages (#9615)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Vladimir Sheremet <sleuths.slews0s@icloud.com>

authored by

renovate[bot]
renovate[bot]
Vladimir Sheremet
and committed by
GitHub
(Mar 4, 2026, 6:17 PM +0100) 94eb73b5 3fe55cee

+490 -501
+5 -5
README.md
··· 20 20 Next generation testing framework powered by Vite. 21 21 <p> 22 22 <p align="center"> 23 - <a href="https://npmx.dev/package/vitest"><img src="https://img.shields.io/npm/v/vitest?color=729B1B&label="></a> 23 + <a href="https://npmx.dev/package/vitest"><img src="https://img.shields.io/npm/v/vitest?color=729B1B&label=" alt="current vitest version badge"></a> 24 24 <p> 25 25 26 26 <p align="center"> ··· 89 89 90 90 <p align="center"> 91 91 <a href="https://cdn.jsdelivr.net/gh/sheremet-va/static/vitest/sponsors.svg"> 92 - <img src='https://cdn.jsdelivr.net/gh/sheremet-va/static/vitest/sponsors.svg'/> 92 + <img src='https://cdn.jsdelivr.net/gh/sheremet-va/static/vitest/sponsors.svg' alt="vitest's sponsors"/> 93 93 </a> 94 94 </p> 95 95 ··· 97 97 98 98 <p align="center"> 99 99 <a href="https://cdn.jsdelivr.net/gh/sheremet-va/static/sponsors.svg"> 100 - <img src='https://cdn.jsdelivr.net/gh/sheremet-va/static/sponsors.svg'/> 100 + <img src='https://cdn.jsdelivr.net/gh/sheremet-va/static/sponsors.svg' alt="vladimir's sponsors"/> 101 101 </a> 102 102 </p> 103 103 ··· 105 105 106 106 <p align="center"> 107 107 <a href="https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg"> 108 - <img src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg'/> 108 + <img src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg' alt="anthony's sponsors"/> 109 109 </a> 110 110 </p> 111 111 ··· 113 113 114 114 <p align="center"> 115 115 <a href="https://cdn.jsdelivr.net/gh/patak-dev/static/sponsors.svg"> 116 - <img src='https://cdn.jsdelivr.net/gh/patak-dev/static/sponsors.svg'/> 116 + <img src='https://cdn.jsdelivr.net/gh/patak-dev/static/sponsors.svg' alt="patak's sponsors"/> 117 117 </a> 118 118 </p> 119 119
+4
eslint.config.js
··· 61 61 'ts/ban-types': 'off', 62 62 'ts/no-unsafe-function-type': 'off', 63 63 64 + 'markdown/fenced-code-language': 'off', 65 + // it uses parser which is not compatible with vitepress 66 + 'markdown/no-missing-link-fragments': 'off', 67 + 64 68 'no-restricted-imports': [ 65 69 'error', 66 70 {
+2 -2
package.json
··· 40 40 "test:browser:playwright": "pnpm -C test/browser run test:playwright" 41 41 }, 42 42 "devDependencies": { 43 - "@antfu/eslint-config": "^7.2.0", 43 + "@antfu/eslint-config": "^7.6.1", 44 44 "@antfu/ni": "^28.2.0", 45 45 "@playwright/test": "^1.58.2", 46 46 "@rollup/plugin-commonjs": "^29.0.0", ··· 55 55 "bumpp": "^10.4.1", 56 56 "changelogithub": "^14.0.0", 57 57 "esbuild": "^0.27.3", 58 - "eslint": "^9.39.2", 58 + "eslint": "^9.39.3", 59 59 "magic-string": "^0.30.21", 60 60 "pathe": "^2.0.3", 61 61 "premove": "^4.0.0",
+394 -408
pnpm-lock.yaml
··· 177 177 .: 178 178 devDependencies: 179 179 '@antfu/eslint-config': 180 - specifier: ^7.2.0 181 - version: 7.2.0(@vue/compiler-sfc@3.5.29)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@packages+vitest) 180 + specifier: ^7.6.1 181 + version: 7.6.1(@typescript-eslint/rule-tester@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.29)(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)(vitest@packages+vitest) 182 182 '@antfu/ni': 183 183 specifier: ^28.2.0 184 184 version: 28.2.0 ··· 222 222 specifier: ^0.27.3 223 223 version: 0.27.3 224 224 eslint: 225 - specifier: ^9.39.2 226 - version: 9.39.2(jiti@2.6.1) 225 + specifier: ^9.39.3 226 + version: 9.39.3(jiti@2.6.1) 227 227 magic-string: 228 228 specifier: ^0.30.21 229 229 version: 0.30.21 ··· 1655 1655 '@adobe/css-tools@4.4.0': 1656 1656 resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} 1657 1657 1658 - '@antfu/eslint-config@7.2.0': 1659 - resolution: {integrity: sha512-I/GWDvkvUfp45VolhrMpOdkfBC69f6lstJi0BCSooylQZwH4OTJPkbXCkp4lKh9V4BeMrcO3G5iC+YIfY28/aA==} 1658 + '@antfu/eslint-config@7.6.1': 1659 + resolution: {integrity: sha512-MRiskHFHYPF0R3eWDUkPPiHUM3fWXwAviVv9O8iMH5hVJkgp60oJYBMzbImKdqSGMuuyOMY3GXxWbH60t9rK0g==} 1660 1660 hasBin: true 1661 1661 peerDependencies: 1662 - '@eslint-react/eslint-plugin': ^2.0.1 1662 + '@angular-eslint/eslint-plugin': ^21.1.0 1663 + '@angular-eslint/eslint-plugin-template': ^21.1.0 1664 + '@angular-eslint/template-parser': ^21.1.0 1665 + '@eslint-react/eslint-plugin': ^2.11.0 1663 1666 '@next/eslint-plugin-next': '>=15.0.0' 1664 1667 '@prettier/plugin-xml': ^3.4.1 1665 1668 '@unocss/eslint-plugin': '>=0.50.0' 1666 1669 astro-eslint-parser: ^1.0.2 1667 - eslint: ^9.10.0 1670 + eslint: ^9.10.0 || ^10.0.0 1668 1671 eslint-plugin-astro: ^1.2.0 1669 1672 eslint-plugin-format: '>=0.1.0' 1670 1673 eslint-plugin-jsx-a11y: '>=6.10.2' 1671 1674 eslint-plugin-react-hooks: ^7.0.0 1672 - eslint-plugin-react-refresh: ^0.4.19 1675 + eslint-plugin-react-refresh: ^0.5.0 1673 1676 eslint-plugin-solid: ^0.14.3 1674 1677 eslint-plugin-svelte: '>=2.35.1' 1675 1678 eslint-plugin-vuejs-accessibility: ^2.4.1 ··· 1677 1680 prettier-plugin-slidev: ^1.0.5 1678 1681 svelte-eslint-parser: '>=0.37.0' 1679 1682 peerDependenciesMeta: 1683 + '@angular-eslint/eslint-plugin': 1684 + optional: true 1685 + '@angular-eslint/eslint-plugin-template': 1686 + optional: true 1687 + '@angular-eslint/template-parser': 1688 + optional: true 1680 1689 '@eslint-react/eslint-plugin': 1681 1690 optional: true 1682 1691 '@next/eslint-plugin-next': ··· 2304 2313 '@canvas/image-data@1.0.0': 2305 2314 resolution: {integrity: sha512-BxOqI5LgsIQP1odU5KMwV9yoijleOPzHL18/YvNqF9KFSGF2K/DLlYAbDQsWqd/1nbaFuSkYD/191dpMtNh4vw==} 2306 2315 2307 - '@clack/core@0.5.0': 2308 - resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} 2316 + '@clack/core@1.0.1': 2317 + resolution: {integrity: sha512-WKeyK3NOBwDOzagPR5H08rFk9D/WuN705yEbuZvKqlkmoLM2woKtXb10OO2k1NoSU4SFG947i2/SCYh+2u5e4g==} 2309 2318 2310 - '@clack/prompts@0.11.0': 2311 - resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} 2319 + '@clack/prompts@1.0.1': 2320 + resolution: {integrity: sha512-/42G73JkuYdyWZ6m8d/CJtBrGl1Hegyc7Fy78m5Ob+jF85TOUmLR5XLce/U3LxYAw0kJ8CT5aI99RIvPHcGp/Q==} 2312 2321 2313 2322 '@csstools/color-helpers@5.1.0': 2314 2323 resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} ··· 2411 2420 '@emnapi/wasi-threads@1.1.0': 2412 2421 resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} 2413 2422 2414 - '@es-joy/jsdoccomment@0.78.0': 2415 - resolution: {integrity: sha512-rQkU5u8hNAq2NVRzHnIUUvR6arbO0b6AOlvpTNS48CkiKSn/xtNfOzBK23JE4SiW89DgvU7GtxLVgV4Vn2HBAw==} 2416 - engines: {node: '>=20.11.0'} 2417 - 2418 - '@es-joy/jsdoccomment@0.82.0': 2419 - resolution: {integrity: sha512-xs3OTxPefjTZaoDS7H1X2pV33enAmZg+8YldjmeYk7XZnq420phdnp6o0JtrsHBdSRJ5+RTocgyED9TL3epgpw==} 2423 + '@es-joy/jsdoccomment@0.84.0': 2424 + resolution: {integrity: sha512-0xew1CxOam0gV5OMjh2KjFQZsKL2bByX1+q4j3E73MpYIdyUxcZb/xQct9ccUb+ve5KGUYbCUxyPnYB7RbuP+w==} 2420 2425 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2421 2426 2422 2427 '@es-joy/resolve.exports@1.2.0': ··· 2897 2902 peerDependencies: 2898 2903 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 2899 2904 2900 - '@eslint-community/eslint-utils@4.9.0': 2901 - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} 2902 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2903 - peerDependencies: 2904 - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 2905 - 2906 2905 '@eslint-community/eslint-utils@4.9.1': 2907 2906 resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} 2908 2907 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2909 2908 peerDependencies: 2910 2909 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 2911 2910 2912 - '@eslint-community/regexpp@4.12.1': 2913 - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 2914 - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 2915 - 2916 2911 '@eslint-community/regexpp@4.12.2': 2917 2912 resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} 2918 2913 engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 2919 2914 2920 - '@eslint/compat@1.4.1': 2921 - resolution: {integrity: sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==} 2922 - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2915 + '@eslint/compat@2.0.2': 2916 + resolution: {integrity: sha512-pR1DoD0h3HfF675QZx0xsyrsU8q70Z/plx7880NOhS02NuWLgBCOMDL787nUeQ7EWLkxv3bPQJaarjcPQb2Dwg==} 2917 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2923 2918 peerDependencies: 2924 - eslint: ^8.40 || 9 2919 + eslint: ^8.40 || 9 || 10 2925 2920 peerDependenciesMeta: 2926 2921 eslint: 2927 2922 optional: true ··· 2934 2929 resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} 2935 2930 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2936 2931 2937 - '@eslint/config-helpers@0.5.1': 2938 - resolution: {integrity: sha512-QN8067dXsXAl9HIvqws7STEviheRFojX3zek5OpC84oBxDGqizW9731ByF/ASxqQihbWrVDdZXS+Ihnsckm9dg==} 2932 + '@eslint/config-helpers@0.5.2': 2933 + resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} 2939 2934 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2940 2935 2941 2936 '@eslint/core@0.17.0': ··· 2946 2941 resolution: {integrity: sha512-r18fEAj9uCk+VjzGt2thsbOmychS+4kxI14spVNibUO2vqKX7obOG+ymZljAwuPZl+S3clPGwCwTDtrdqTiY6Q==} 2947 2942 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2948 2943 2944 + '@eslint/core@1.1.0': 2945 + resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} 2946 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2947 + 2949 2948 '@eslint/eslintrc@3.3.1': 2950 2949 resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} 2951 2950 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2952 2951 2953 - '@eslint/js@9.39.2': 2954 - resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} 2952 + '@eslint/js@9.39.3': 2953 + resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==} 2955 2954 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2956 2955 2957 2956 '@eslint/markdown@7.5.1': ··· 2966 2965 resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} 2967 2966 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2968 2967 2969 - '@eslint/plugin-kit@0.5.1': 2970 - resolution: {integrity: sha512-hZ2uC1jbf6JMSsF2ZklhRQqf6GLpYyux6DlzegnW/aFlpu6qJj5GO7ub7WOETCrEl6pl6DAX7RgTgj/fyG+6BQ==} 2968 + '@eslint/plugin-kit@0.6.0': 2969 + resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} 2971 2970 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 2972 2971 2973 2972 '@exodus/bytes@1.11.0': ··· 3606 3605 '@opentelemetry/semantic-conventions@1.38.0': 3607 3606 resolution: {integrity: sha512-kocjix+/sSggfJhwXqClZ3i9Y/MI0fp7b+g7kCRm6psy2dsf8uApTRclwG18h8Avm7C9+fnt+O36PspJ/OzoWg==} 3608 3607 engines: {node: '>=14'} 3608 + 3609 + '@ota-meshi/ast-token-store@0.3.0': 3610 + resolution: {integrity: sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==} 3611 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 3609 3612 3610 3613 '@oxc-minify/binding-android-arm-eabi@0.108.0': 3611 3614 resolution: {integrity: sha512-obfkLrlAv40lAE6C9eYameBKLpTJ/ToynpBbTwb+wSVg+HXYzLoFYy1M5V9/otjCnxxVpPdnHsOqw8aGCRT0WA==} ··· 4555 4558 '@standard-schema/spec@1.1.0': 4556 4559 resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} 4557 4560 4558 - '@stylistic/eslint-plugin@5.7.1': 4559 - resolution: {integrity: sha512-zjTUwIsEfT+k9BmXwq1QEFYsb4afBlsI1AXFyWQBgggMzwBFOuu92pGrE5OFx90IOjNl+lUbQoTG7f8S0PkOdg==} 4561 + '@stylistic/eslint-plugin@5.9.0': 4562 + resolution: {integrity: sha512-FqqSkvDMYJReydrMhlugc71M76yLLQWNfmGq+SIlLa7N3kHp8Qq8i2PyWrVNAfjOyOIY+xv9XaaYwvVW7vroMA==} 4560 4563 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4561 4564 peerDependencies: 4562 - eslint: '>=9.0.0' 4565 + eslint: ^9.0.0 || ^10.0.0 4563 4566 4564 4567 '@surma/rollup-plugin-off-main-thread@2.2.3': 4565 4568 resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} ··· 4944 4947 '@types/yauzl@2.10.3': 4945 4948 resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} 4946 4949 4947 - '@typescript-eslint/eslint-plugin@8.53.1': 4948 - resolution: {integrity: sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==} 4950 + '@typescript-eslint/eslint-plugin@8.56.1': 4951 + resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} 4949 4952 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4950 4953 peerDependencies: 4951 - '@typescript-eslint/parser': ^8.53.1 4952 - eslint: ^8.57.0 || ^9.0.0 4954 + '@typescript-eslint/parser': ^8.56.1 4955 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 4953 4956 typescript: '>=4.8.4 <6.0.0' 4954 4957 4955 - '@typescript-eslint/parser@8.53.1': 4956 - resolution: {integrity: sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==} 4958 + '@typescript-eslint/parser@8.56.1': 4959 + resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} 4957 4960 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4958 4961 peerDependencies: 4959 - eslint: ^8.57.0 || ^9.0.0 4962 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 4960 4963 typescript: '>=4.8.4 <6.0.0' 4961 4964 4962 - '@typescript-eslint/project-service@8.53.1': 4963 - resolution: {integrity: sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==} 4964 - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4965 - peerDependencies: 4966 - typescript: '>=4.8.4 <6.0.0' 4967 - 4968 - '@typescript-eslint/scope-manager@8.53.1': 4969 - resolution: {integrity: sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==} 4970 - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4971 - 4972 - '@typescript-eslint/tsconfig-utils@8.53.1': 4973 - resolution: {integrity: sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==} 4965 + '@typescript-eslint/project-service@8.56.1': 4966 + resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} 4974 4967 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4975 4968 peerDependencies: 4976 4969 typescript: '>=4.8.4 <6.0.0' 4977 4970 4978 - '@typescript-eslint/type-utils@8.53.1': 4979 - resolution: {integrity: sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==} 4971 + '@typescript-eslint/rule-tester@8.56.1': 4972 + resolution: {integrity: sha512-EWuV5Vq1EFYJEOVcILyWPO35PjnT0c6tv99PCpD12PgfZae5/Jo+F17hGjsEs2Moe+Dy1J7KIr8y037cK8+/rQ==} 4980 4973 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4981 4974 peerDependencies: 4982 - eslint: ^8.57.0 || ^9.0.0 4983 - typescript: '>=4.8.4 <6.0.0' 4975 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 4984 4976 4985 - '@typescript-eslint/types@8.50.1': 4986 - resolution: {integrity: sha512-v5lFIS2feTkNyMhd7AucE/9j/4V9v5iIbpVRncjk/K0sQ6Sb+Np9fgYS/63n6nwqahHQvbmujeBL7mp07Q9mlA==} 4977 + '@typescript-eslint/scope-manager@8.56.1': 4978 + resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} 4987 4979 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4988 4980 4989 - '@typescript-eslint/types@8.53.1': 4990 - resolution: {integrity: sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==} 4991 - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4992 - 4993 - '@typescript-eslint/typescript-estree@8.53.1': 4994 - resolution: {integrity: sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==} 4981 + '@typescript-eslint/tsconfig-utils@8.56.1': 4982 + resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} 4995 4983 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4996 4984 peerDependencies: 4997 4985 typescript: '>=4.8.4 <6.0.0' 4998 4986 4999 - '@typescript-eslint/utils@8.53.1': 5000 - resolution: {integrity: sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==} 4987 + '@typescript-eslint/type-utils@8.56.1': 4988 + resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} 5001 4989 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 5002 4990 peerDependencies: 5003 - eslint: ^8.57.0 || ^9.0.0 4991 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 5004 4992 typescript: '>=4.8.4 <6.0.0' 5005 4993 5006 - '@typescript-eslint/visitor-keys@8.53.1': 5007 - resolution: {integrity: sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==} 4994 + '@typescript-eslint/types@8.56.1': 4995 + resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} 4996 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 4997 + 4998 + '@typescript-eslint/typescript-estree@8.56.1': 4999 + resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} 5000 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 5001 + peerDependencies: 5002 + typescript: '>=4.8.4 <6.0.0' 5003 + 5004 + '@typescript-eslint/utils@8.56.1': 5005 + resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} 5006 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 5007 + peerDependencies: 5008 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 5009 + typescript: '>=4.8.4 <6.0.0' 5010 + 5011 + '@typescript-eslint/visitor-keys@8.56.1': 5012 + resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} 5008 5013 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 5009 5014 5010 5015 '@typescript/vfs@1.6.2': ··· 5126 5131 '@vitest/cjs-lib@file:test/browser/cjs-lib': 5127 5132 resolution: {directory: test/browser/cjs-lib, type: directory} 5128 5133 5129 - '@vitest/eslint-plugin@1.6.6': 5130 - resolution: {integrity: sha512-bwgQxQWRtnTVzsUHK824tBmHzjV0iTx3tZaiQIYDjX3SA7TsQS8CuDVqxXrRY3FaOUMgbGavesCxI9MOfFLm7Q==} 5134 + '@vitest/eslint-plugin@1.6.9': 5135 + resolution: {integrity: sha512-9WfPx1OwJ19QLCSRLkqVO7//1WcWnK3fE/3fJhKMAmDe8+9G4rB47xCNIIeCq3FdEzkIoLTfDlwDlPBaUTMhow==} 5131 5136 engines: {node: '>=18'} 5132 5137 peerDependencies: 5133 5138 eslint: '>=8.57.0' ··· 5612 5617 balanced-match@1.0.2: 5613 5618 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 5614 5619 5620 + balanced-match@4.0.4: 5621 + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} 5622 + engines: {node: 18 || 20 || >=22} 5623 + 5615 5624 bare-events@2.4.2: 5616 5625 resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} 5617 5626 ··· 5663 5672 5664 5673 brace-expansion@2.0.1: 5665 5674 resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 5675 + 5676 + brace-expansion@5.0.3: 5677 + resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} 5678 + engines: {node: 18 || 20 || >=22} 5666 5679 5667 5680 braces@3.0.3: 5668 5681 resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} ··· 5875 5888 commander@9.5.0: 5876 5889 resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 5877 5890 engines: {node: ^12.20.0 || >=14} 5878 - 5879 - comment-parser@1.4.1: 5880 - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} 5881 - engines: {node: '>= 12.0.0'} 5882 - 5883 - comment-parser@1.4.4: 5884 - resolution: {integrity: sha512-0D6qSQ5IkeRrGJFHRClzaMOenMeT0gErz3zIw3AprKMqhRN6LNU2jQOdkPG/FZ+8bCgXE1VidrgSzlBBDZRr8A==} 5885 - engines: {node: '>= 12.0.0'} 5886 5891 5887 5892 comment-parser@1.4.5: 5888 5893 resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} ··· 6215 6220 dezalgo@1.0.4: 6216 6221 resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} 6217 6222 6218 - diff-sequences@27.5.1: 6219 - resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} 6220 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 6221 - 6222 6223 diff-sequences@29.6.3: 6223 6224 resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 6224 6225 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} ··· 6396 6397 peerDependencies: 6397 6398 eslint: '>=6.0.0' 6398 6399 6399 - eslint-compat-utils@0.6.5: 6400 - resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==} 6401 - engines: {node: '>=12'} 6400 + eslint-config-flat-gitignore@2.2.1: 6401 + resolution: {integrity: sha512-wA5EqN0era7/7Gt5Botlsfin/UNY0etJSEeBgbUlFLFrBi47rAN//+39fI7fpYcl8RENutlFtvp/zRa/M/pZNg==} 6402 6402 peerDependencies: 6403 - eslint: '>=6.0.0' 6403 + eslint: ^9.5.0 || ^10.0.0 6404 6404 6405 - eslint-config-flat-gitignore@2.1.0: 6406 - resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==} 6407 - peerDependencies: 6408 - eslint: ^9.5.0 6409 - 6410 - eslint-flat-config-utils@3.0.0: 6411 - resolution: {integrity: sha512-bzTam/pSnPANR0GUz4g7lo4fyzlQZwuz/h8ytsSS4w59N/JlXH/l7jmyNVBLxPz3B9/9ntz5ZLevGpazyDXJQQ==} 6405 + eslint-flat-config-utils@3.0.1: 6406 + resolution: {integrity: sha512-VMA3u86bLzNAwD/7DkLtQ9lolgIOx2Sj0kTMMnBvrvEz7w0rQj4aGCR+lqsqtld63gKiLyT4BnQZ3gmGDXtvjg==} 6412 6407 6413 6408 eslint-json-compat-utils@0.2.1: 6414 6409 resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} ··· 6426 6421 peerDependencies: 6427 6422 eslint: '*' 6428 6423 6429 - eslint-plugin-antfu@3.1.3: 6430 - resolution: {integrity: sha512-Az1QuqQJ/c2efWCxVxF249u3D4AcAu1Y3VCGAlJm+x4cgnn1ybUAnCT5DWVcogeaWduQKeVw07YFydVTOF4xDw==} 6424 + eslint-plugin-antfu@3.2.2: 6425 + resolution: {integrity: sha512-Qzixht2Dmd/pMbb5EnKqw2V8TiWHbotPlsORO8a+IzCLFwE0RxK8a9k4DCTFPzBwyxJzH+0m2Mn8IUGeGQkyUw==} 6431 6426 peerDependencies: 6432 6427 eslint: '*' 6433 6428 6434 - eslint-plugin-command@3.4.0: 6435 - resolution: {integrity: sha512-EW4eg/a7TKEhG0s5IEti72kh3YOTlnhfFNuctq5WnB1fst37/IHTd5OkD+vnlRf3opTvUcSRihAateP6bT5ZcA==} 6429 + eslint-plugin-command@3.5.2: 6430 + resolution: {integrity: sha512-PA59QAkQDwvcCMEt5lYLJLI3zDGVKJeC4id/pcRY2XdRYhSGW7iyYT1VC1N3bmpuvu6Qb/9QptiS3GJMjeGTJg==} 6436 6431 peerDependencies: 6432 + '@typescript-eslint/rule-tester': '*' 6433 + '@typescript-eslint/typescript-estree': '*' 6434 + '@typescript-eslint/utils': '*' 6437 6435 eslint: '*' 6438 6436 6439 6437 eslint-plugin-es-x@7.8.0: ··· 6442 6440 peerDependencies: 6443 6441 eslint: '>=8' 6444 6442 6445 - eslint-plugin-import-lite@0.5.0: 6446 - resolution: {integrity: sha512-7uBvxuQj+VlYmZSYSHcm33QgmZnvMLP2nQiWaLtjhJ5x1zKcskOqjolL+dJC13XY+ktQqBgidAnnQMELfRaXQg==} 6443 + eslint-plugin-import-lite@0.5.2: 6444 + resolution: {integrity: sha512-XvfdWOC5dSLEI9krIPRlNmKSI2ViIE9pVylzfV9fCq0ZpDaNeUk6o0wZv0OzN83QdadgXp1NsY0qjLINxwYCsw==} 6447 6445 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 6448 6446 peerDependencies: 6449 6447 eslint: '>=9.0.0' 6450 6448 6451 - eslint-plugin-jsdoc@62.4.0: 6452 - resolution: {integrity: sha512-SmwVS4QCSsBRmOfAn1J2CyCO4chqZtSU5olBCiHZ0RnxZVjIBTgm/1ZBFwFDUiV5/llFZcuSHEJK5DjHCDcGPw==} 6449 + eslint-plugin-jsdoc@62.7.1: 6450 + resolution: {integrity: sha512-4Zvx99Q7d1uggYBUX/AIjvoyqXhluGbbKrRmG8SQTLprPFg6fa293tVJH1o1GQwNe3lUydd8ZHzn37OaSncgSQ==} 6453 6451 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 6454 6452 peerDependencies: 6455 - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 6453 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 6456 6454 6457 - eslint-plugin-jsonc@2.21.0: 6458 - resolution: {integrity: sha512-HttlxdNG5ly3YjP1cFMP62R4qKLxJURfBZo2gnMY+yQojZxkLyOpY1H1KRTKBmvQeSG9pIpSGEhDjE17vvYosg==} 6459 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 6455 + eslint-plugin-jsonc@3.1.1: 6456 + resolution: {integrity: sha512-7TSQO8ZyvOuXWb0sYke3KUSh0DJA4/QviKfuzD3/Cy3XDjtrIrTWQbjb7j/Yy2l/DgwuM+lCS2c/jqJifv5jhg==} 6457 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 6460 6458 peerDependencies: 6461 - eslint: '>=6.0.0' 6459 + eslint: '>=9.38.0' 6462 6460 6463 - eslint-plugin-n@17.23.2: 6464 - resolution: {integrity: sha512-RhWBeb7YVPmNa2eggvJooiuehdL76/bbfj/OJewyoGT80qn5PXdz8zMOTO6YHOsI7byPt7+Ighh/i/4a5/v7hw==} 6461 + eslint-plugin-n@17.24.0: 6462 + resolution: {integrity: sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==} 6465 6463 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 6466 6464 peerDependencies: 6467 6465 eslint: '>=8.23.0' ··· 6470 6468 resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} 6471 6469 engines: {node: '>=5.0.0'} 6472 6470 6473 - eslint-plugin-perfectionist@5.4.0: 6474 - resolution: {integrity: sha512-XxpUMpeVaSJF5rpF6NHmhj3xavHZrflKcRbDssAUWrHUU/+l3l7PPYnVJ6IOpR2KjQ1Blucaeb0cFL3LIBis0A==} 6471 + eslint-plugin-perfectionist@5.6.0: 6472 + resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==} 6475 6473 engines: {node: ^20.0.0 || >=22.0.0} 6476 6474 peerDependencies: 6477 - eslint: '>=8.45.0' 6475 + eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 6478 6476 6479 - eslint-plugin-pnpm@1.5.0: 6480 - resolution: {integrity: sha512-ayMo1GvrQ/sF/bz1aOAiH0jv9eAqU2Z+a1ycoWz/uFFK5NxQDq49BDKQtBumcOUBf2VHyiTW4a8u+6KVqoIWzQ==} 6477 + eslint-plugin-pnpm@1.6.0: 6478 + resolution: {integrity: sha512-dxmt9r3zvPaft6IugS4i0k16xag3fTbOvm/road5uV9Y8qUCQT0xzheSh3gMlYAlC6vXRpfArBDsTZ7H7JKCbg==} 6481 6479 peerDependencies: 6482 - eslint: ^9.0.0 6480 + eslint: ^9.0.0 || ^10.0.0 6483 6481 6484 - eslint-plugin-regexp@2.10.0: 6485 - resolution: {integrity: sha512-ovzQT8ESVn5oOe5a7gIDPD5v9bCSjIFJu57sVPDqgPRXicQzOnYfFN21WoQBQF18vrhT5o7UMKFwJQVVjyJ0ng==} 6486 - engines: {node: ^18 || >=20} 6487 - peerDependencies: 6488 - eslint: '>=8.44.0' 6489 - 6490 - eslint-plugin-toml@1.0.3: 6491 - resolution: {integrity: sha512-GlCBX+R313RvFY2Tj0ZmvzCEv8FDp1z2itvTFTV4bW/Bkbl3xEp9inWNsRWH3SiDUlxo8Pew31ILEp/3J0WxaA==} 6482 + eslint-plugin-regexp@3.0.0: 6483 + resolution: {integrity: sha512-iW7hgAV8NOG6E2dz+VeKpq67YLQ9jaajOKYpoOSic2/q8y9BMdXBKkSR9gcMtbqEhNQzdW41E3wWzvhp8ExYwQ==} 6492 6484 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 6493 6485 peerDependencies: 6494 6486 eslint: '>=9.38.0' 6495 6487 6496 - eslint-plugin-unicorn@62.0.0: 6497 - resolution: {integrity: sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==} 6488 + eslint-plugin-toml@1.3.0: 6489 + resolution: {integrity: sha512-+jjKAs2WRNom9PU1APlrL1kNexy1RHoKB7SHw7FLZBlqOCYXUKyG3Quiv1XUICdWDJ6oGVgW/mSm+BDuQrcc3w==} 6490 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 6491 + peerDependencies: 6492 + eslint: '>=9.38.0' 6493 + 6494 + eslint-plugin-unicorn@63.0.0: 6495 + resolution: {integrity: sha512-Iqecl9118uQEXYh7adylgEmGfkn5es3/mlQTLLkd4pXkIk9CTGrAbeUux+YljSa2ohXCBmQQ0+Ej1kZaFgcfkA==} 6498 6496 engines: {node: ^20.10.0 || >=21.0.0} 6499 6497 peerDependencies: 6500 6498 eslint: '>=9.38.0' 6501 6499 6502 - eslint-plugin-unused-imports@4.3.0: 6503 - resolution: {integrity: sha512-ZFBmXMGBYfHttdRtOG9nFFpmUvMtbHSjsKrS20vdWdbfiVYsO3yA2SGYy9i9XmZJDfMGBflZGBCm70SEnFQtOA==} 6500 + eslint-plugin-unused-imports@4.4.1: 6501 + resolution: {integrity: sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==} 6504 6502 peerDependencies: 6505 6503 '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 6506 - eslint: ^9.0.0 || ^8.0.0 6504 + eslint: ^10.0.0 || ^9.0.0 || ^8.0.0 6507 6505 peerDependenciesMeta: 6508 6506 '@typescript-eslint/eslint-plugin': 6509 6507 optional: true 6510 6508 6511 - eslint-plugin-vue@10.7.0: 6512 - resolution: {integrity: sha512-r2XFCK4qlo1sxEoAMIoTTX0PZAdla0JJDt1fmYiworZUX67WeEGqm+JbyAg3M+pGiJ5U6Mp5WQbontXWtIW7TA==} 6509 + eslint-plugin-vue@10.8.0: 6510 + resolution: {integrity: sha512-f1J/tcbnrpgC8suPN5AtdJ5MQjuXbSU9pGRSSYAuF3SHoiYCOdEX6O22pLaRyLHXvDcOe+O5ENgc1owQ587agA==} 6513 6511 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 6514 6512 peerDependencies: 6515 6513 '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 6516 6514 '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 6517 - eslint: ^8.57.0 || ^9.0.0 6515 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 6518 6516 vue-eslint-parser: ^10.0.0 6519 6517 peerDependenciesMeta: 6520 6518 '@stylistic/eslint-plugin': ··· 6522 6520 '@typescript-eslint/parser': 6523 6521 optional: true 6524 6522 6525 - eslint-plugin-yml@3.0.0: 6526 - resolution: {integrity: sha512-kuAW6o3hlFHyF5p7TLon+AtvNWnsvRrb88pqywGMSCEqAP5d1gOMvNGgWLVlKHqmx5RbFhQLcxFDGmS4IU9DwA==} 6523 + eslint-plugin-yml@3.3.0: 6524 + resolution: {integrity: sha512-kRja5paNrMfZnbNqDbZSFrSHz5x7jmGBQq7d6z/+wRvWD4Y0yb1fbjojBg3ReMewFhBB7nD2nPC86+m3HmILJA==} 6527 6525 engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} 6528 6526 peerDependencies: 6529 6527 eslint: '>=9.38.0' ··· 6550 6548 resolution: {integrity: sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==} 6551 6549 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 6552 6550 6553 - eslint@9.39.2: 6554 - resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} 6551 + eslint@9.39.3: 6552 + resolution: {integrity: sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==} 6555 6553 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 6556 6554 hasBin: true 6557 6555 peerDependencies: ··· 6568 6566 resolution: {integrity: sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==} 6569 6567 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 6570 6568 6571 - espree@9.6.1: 6572 - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 6573 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 6574 - 6575 6569 esprima-extract-comments@1.1.0: 6576 6570 resolution: {integrity: sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw==} 6577 6571 engines: {node: '>=4'} ··· 6580 6574 resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 6581 6575 engines: {node: '>=4'} 6582 6576 hasBin: true 6583 - 6584 - esquery@1.6.0: 6585 - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 6586 - engines: {node: '>=0.10'} 6587 6577 6588 6578 esquery@1.7.0: 6589 6579 resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} ··· 6963 6953 resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} 6964 6954 engines: {node: '>=18'} 6965 6955 6966 - globals@17.1.0: 6967 - resolution: {integrity: sha512-8HoIcWI5fCvG5NADj4bDav+er9B9JMj2vyL2pI8D0eismKyUvPLTSs+Ln3wqhwcp306i73iyVnEKx3F6T47TGw==} 6956 + globals@17.3.0: 6957 + resolution: {integrity: sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==} 6968 6958 engines: {node: '>=18'} 6969 6959 6970 6960 globalthis@1.0.4: ··· 6986 6976 6987 6977 grapheme-splitter@1.0.4: 6988 6978 resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 6989 - 6990 - graphemer@1.4.0: 6991 - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 6992 6979 6993 6980 graphql@16.12.0: 6994 6981 resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} ··· 7455 7442 jsbn@1.1.0: 7456 7443 resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} 7457 7444 7458 - jsdoc-type-pratt-parser@4.8.0: 7459 - resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} 7460 - engines: {node: '>=12.0.0'} 7461 - 7462 - jsdoc-type-pratt-parser@7.0.0: 7463 - resolution: {integrity: sha512-c7YbokssPOSHmqTbSAmTtnVgAVa/7lumWNYqomgd5KOMyPrRve2anx6lonfOsXEQacqF9FKVUj7bLg4vRSvdYA==} 7464 - engines: {node: '>=20.0.0'} 7465 - 7466 7445 jsdoc-type-pratt-parser@7.1.0: 7467 7446 resolution: {integrity: sha512-SX7q7XyCwzM/MEDCYz0l8GgGbJAACGFII9+WfNYr5SLEKukHWRy2Jk3iWRe7P+lpYJNs7oQ+OSei4JtKGUjd7A==} 7447 + engines: {node: '>=20.0.0'} 7448 + 7449 + jsdoc-type-pratt-parser@7.1.1: 7450 + resolution: {integrity: sha512-/2uqY7x6bsrpi3i9LVU6J89352C0rpMk0as8trXxCtvd4kPk1ke/Eyif6wqfSLvoNJqcDG9Vk4UsXgygzCt2xA==} 7468 7451 engines: {node: '>=20.0.0'} 7469 7452 7470 7453 jsdom@27.4.0: ··· 7513 7496 engines: {node: '>=6'} 7514 7497 hasBin: true 7515 7498 7516 - jsonc-eslint-parser@2.4.2: 7517 - resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==} 7518 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 7499 + jsonc-eslint-parser@3.1.0: 7500 + resolution: {integrity: sha512-75EA7EWZExL/j+MDKQrRbdzcRI2HOkRlmUw8fZJc1ioqFEOvBsq7Rt+A6yCxOt9w/TYNpkt52gC6nm/g5tFIng==} 7501 + engines: {node: ^20.19.0 || ^22.13.0 || >=24} 7519 7502 7520 7503 jsonc-parser@3.3.1: 7521 7504 resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} ··· 8042 8025 resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} 8043 8026 engines: {node: 20 || >=22} 8044 8027 8028 + minimatch@10.2.3: 8029 + resolution: {integrity: sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==} 8030 + engines: {node: 18 || 20 || >=22} 8031 + 8045 8032 minimatch@3.1.2: 8046 8033 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 8047 8034 ··· 8460 8447 resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} 8461 8448 engines: {node: '>=14.19.0'} 8462 8449 8463 - pnpm-workspace-yaml@1.5.0: 8464 - resolution: {integrity: sha512-PxdyJuFvq5B0qm3s9PaH/xOtSxrcvpBRr+BblhucpWjs8c79d4b7/cXhyY4AyHOHCnqklCYZTjfl0bT/mFVTRw==} 8450 + pnpm-workspace-yaml@1.6.0: 8451 + resolution: {integrity: sha512-uUy4dK3E11sp7nK+hnT7uAWfkBMe00KaUw8OG3NuNlYQoTk4sc9pcdIy1+XIP85v9Tvr02mK3JPaNNrP0QyRaw==} 8465 8452 8466 8453 possible-typed-array-names@1.1.0: 8467 8454 resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} ··· 9002 8989 engines: {node: '>=10'} 9003 8990 hasBin: true 9004 8991 8992 + semver@7.7.4: 8993 + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} 8994 + engines: {node: '>=10'} 8995 + hasBin: true 8996 + 9005 8997 send@0.18.0: 9006 8998 resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 9007 8999 engines: {node: '>= 0.8.0'} ··· 9333 9325 resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} 9334 9326 engines: {node: '>=16.0.0'} 9335 9327 9336 - synckit@0.11.11: 9337 - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} 9328 + synckit@0.11.12: 9329 + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} 9338 9330 engines: {node: ^14.18.0 || >=16.0.0} 9339 9331 9340 9332 tabbable@6.4.0: ··· 9926 9918 '@vue/composition-api': 9927 9919 optional: true 9928 9920 9929 - vue-eslint-parser@10.2.0: 9930 - resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} 9921 + vue-eslint-parser@10.4.0: 9922 + resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==} 9931 9923 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 9932 9924 peerDependencies: 9933 - eslint: ^8.57.0 || ^9.0.0 9925 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 9934 9926 9935 9927 vue-observe-visibility@2.0.0-alpha.1: 9936 9928 resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} ··· 10254 10246 10255 10247 '@adobe/css-tools@4.4.0': {} 10256 10248 10257 - '@antfu/eslint-config@7.2.0(@vue/compiler-sfc@3.5.29)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@packages+vitest)': 10249 + '@antfu/eslint-config@7.6.1(@typescript-eslint/rule-tester@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.29)(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)(vitest@packages+vitest)': 10258 10250 dependencies: 10259 10251 '@antfu/install-pkg': 1.1.0 10260 - '@clack/prompts': 0.11.0 10261 - '@eslint-community/eslint-plugin-eslint-comments': 4.6.0(eslint@9.39.2(jiti@2.6.1)) 10252 + '@clack/prompts': 1.0.1 10253 + '@eslint-community/eslint-plugin-eslint-comments': 4.6.0(eslint@9.39.3(jiti@2.6.1)) 10262 10254 '@eslint/markdown': 7.5.1 10263 - '@stylistic/eslint-plugin': 5.7.1(eslint@9.39.2(jiti@2.6.1)) 10264 - '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 10265 - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 10266 - '@vitest/eslint-plugin': 1.6.6(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@packages+vitest) 10255 + '@stylistic/eslint-plugin': 5.9.0(eslint@9.39.3(jiti@2.6.1)) 10256 + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 10257 + '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 10258 + '@vitest/eslint-plugin': 1.6.9(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)(vitest@packages+vitest) 10267 10259 ansis: 4.2.0 10268 10260 cac: 6.7.14(patch_hash=a8f0f3517a47ce716ed90c0cfe6ae382ab763b021a664ada2a608477d0621588) 10269 - eslint: 9.39.2(jiti@2.6.1) 10270 - eslint-config-flat-gitignore: 2.1.0(eslint@9.39.2(jiti@2.6.1)) 10271 - eslint-flat-config-utils: 3.0.0 10272 - eslint-merge-processors: 2.0.0(eslint@9.39.2(jiti@2.6.1)) 10273 - eslint-plugin-antfu: 3.1.3(eslint@9.39.2(jiti@2.6.1)) 10274 - eslint-plugin-command: 3.4.0(eslint@9.39.2(jiti@2.6.1)) 10275 - eslint-plugin-import-lite: 0.5.0(eslint@9.39.2(jiti@2.6.1)) 10276 - eslint-plugin-jsdoc: 62.4.0(eslint@9.39.2(jiti@2.6.1)) 10277 - eslint-plugin-jsonc: 2.21.0(eslint@9.39.2(jiti@2.6.1)) 10278 - eslint-plugin-n: 17.23.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 10261 + eslint: 9.39.3(jiti@2.6.1) 10262 + eslint-config-flat-gitignore: 2.2.1(eslint@9.39.3(jiti@2.6.1)) 10263 + eslint-flat-config-utils: 3.0.1 10264 + eslint-merge-processors: 2.0.0(eslint@9.39.3(jiti@2.6.1)) 10265 + eslint-plugin-antfu: 3.2.2(eslint@9.39.3(jiti@2.6.1)) 10266 + eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1)) 10267 + eslint-plugin-import-lite: 0.5.2(eslint@9.39.3(jiti@2.6.1)) 10268 + eslint-plugin-jsdoc: 62.7.1(eslint@9.39.3(jiti@2.6.1)) 10269 + eslint-plugin-jsonc: 3.1.1(eslint@9.39.3(jiti@2.6.1)) 10270 + eslint-plugin-n: 17.24.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 10279 10271 eslint-plugin-no-only-tests: 3.3.0 10280 - eslint-plugin-perfectionist: 5.4.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 10281 - eslint-plugin-pnpm: 1.5.0(eslint@9.39.2(jiti@2.6.1)) 10282 - eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@2.6.1)) 10283 - eslint-plugin-toml: 1.0.3(eslint@9.39.2(jiti@2.6.1)) 10284 - eslint-plugin-unicorn: 62.0.0(eslint@9.39.2(jiti@2.6.1)) 10285 - eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) 10286 - eslint-plugin-vue: 10.7.0(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) 10287 - eslint-plugin-yml: 3.0.0(eslint@9.39.2(jiti@2.6.1)) 10288 - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.29)(eslint@9.39.2(jiti@2.6.1)) 10289 - globals: 17.1.0 10290 - jsonc-eslint-parser: 2.4.2 10272 + eslint-plugin-perfectionist: 5.6.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 10273 + eslint-plugin-pnpm: 1.6.0(eslint@9.39.3(jiti@2.6.1)) 10274 + eslint-plugin-regexp: 3.0.0(eslint@9.39.3(jiti@2.6.1)) 10275 + eslint-plugin-toml: 1.3.0(eslint@9.39.3(jiti@2.6.1)) 10276 + eslint-plugin-unicorn: 63.0.0(eslint@9.39.3(jiti@2.6.1)) 10277 + eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1)) 10278 + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.9.0(eslint@9.39.3(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.3(jiti@2.6.1))) 10279 + eslint-plugin-yml: 3.3.0(eslint@9.39.3(jiti@2.6.1)) 10280 + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.29)(eslint@9.39.3(jiti@2.6.1)) 10281 + globals: 17.3.0 10291 10282 local-pkg: 1.1.2 10292 10283 parse-gitignore: 2.0.0 10293 10284 toml-eslint-parser: 1.0.3 10294 - vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@2.6.1)) 10285 + vue-eslint-parser: 10.4.0(eslint@9.39.3(jiti@2.6.1)) 10295 10286 yaml-eslint-parser: 2.0.0 10296 10287 transitivePeerDependencies: 10297 10288 - '@eslint/json' 10289 + - '@typescript-eslint/rule-tester' 10290 + - '@typescript-eslint/typescript-estree' 10291 + - '@typescript-eslint/utils' 10298 10292 - '@vue/compiler-sfc' 10299 10293 - supports-color 10300 10294 - typescript ··· 11067 11061 11068 11062 '@canvas/image-data@1.0.0': {} 11069 11063 11070 - '@clack/core@0.5.0': 11064 + '@clack/core@1.0.1': 11071 11065 dependencies: 11072 11066 picocolors: 1.1.1 11073 11067 sisteransi: 1.0.5 11074 11068 11075 - '@clack/prompts@0.11.0': 11069 + '@clack/prompts@1.0.1': 11076 11070 dependencies: 11077 - '@clack/core': 0.5.0 11071 + '@clack/core': 1.0.1 11078 11072 picocolors: 1.1.1 11079 11073 sisteransi: 1.0.5 11080 11074 ··· 11161 11155 tslib: 2.8.1 11162 11156 optional: true 11163 11157 11164 - '@es-joy/jsdoccomment@0.78.0': 11158 + '@es-joy/jsdoccomment@0.84.0': 11165 11159 dependencies: 11166 11160 '@types/estree': 1.0.8 11167 - '@typescript-eslint/types': 8.50.1 11168 - comment-parser: 1.4.1 11169 - esquery: 1.6.0 11170 - jsdoc-type-pratt-parser: 7.0.0 11171 - 11172 - '@es-joy/jsdoccomment@0.82.0': 11173 - dependencies: 11174 - '@types/estree': 1.0.8 11175 - '@typescript-eslint/types': 8.53.1 11176 - comment-parser: 1.4.4 11161 + '@typescript-eslint/types': 8.56.1 11162 + comment-parser: 1.4.5 11177 11163 esquery: 1.7.0 11178 - jsdoc-type-pratt-parser: 7.1.0 11164 + jsdoc-type-pratt-parser: 7.1.1 11179 11165 11180 11166 '@es-joy/resolve.exports@1.2.0': {} 11181 11167 ··· 11413 11399 '@esbuild/win32-x64@0.27.3': 11414 11400 optional: true 11415 11401 11416 - '@eslint-community/eslint-plugin-eslint-comments@4.6.0(eslint@9.39.2(jiti@2.6.1))': 11402 + '@eslint-community/eslint-plugin-eslint-comments@4.6.0(eslint@9.39.3(jiti@2.6.1))': 11417 11403 dependencies: 11418 11404 escape-string-regexp: 4.0.0 11419 - eslint: 9.39.2(jiti@2.6.1) 11405 + eslint: 9.39.3(jiti@2.6.1) 11420 11406 ignore: 7.0.5 11421 11407 11422 - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.6.1))': 11408 + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.3(jiti@2.6.1))': 11423 11409 dependencies: 11424 - eslint: 9.39.2(jiti@2.6.1) 11410 + eslint: 9.39.3(jiti@2.6.1) 11425 11411 eslint-visitor-keys: 3.4.3 11426 - 11427 - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': 11428 - dependencies: 11429 - eslint: 9.39.2(jiti@2.6.1) 11430 - eslint-visitor-keys: 3.4.3 11431 - 11432 - '@eslint-community/regexpp@4.12.1': {} 11433 11412 11434 11413 '@eslint-community/regexpp@4.12.2': {} 11435 11414 11436 - '@eslint/compat@1.4.1(eslint@9.39.2(jiti@2.6.1))': 11415 + '@eslint/compat@2.0.2(eslint@9.39.3(jiti@2.6.1))': 11437 11416 dependencies: 11438 - '@eslint/core': 0.17.0 11417 + '@eslint/core': 1.1.0 11439 11418 optionalDependencies: 11440 - eslint: 9.39.2(jiti@2.6.1) 11419 + eslint: 9.39.3(jiti@2.6.1) 11441 11420 11442 11421 '@eslint/config-array@0.21.1': 11443 11422 dependencies: ··· 11451 11430 dependencies: 11452 11431 '@eslint/core': 0.17.0 11453 11432 11454 - '@eslint/config-helpers@0.5.1': 11433 + '@eslint/config-helpers@0.5.2': 11455 11434 dependencies: 11456 - '@eslint/core': 1.0.1 11435 + '@eslint/core': 1.1.0 11457 11436 11458 11437 '@eslint/core@0.17.0': 11459 11438 dependencies: 11460 11439 '@types/json-schema': 7.0.15 11461 11440 11462 11441 '@eslint/core@1.0.1': 11442 + dependencies: 11443 + '@types/json-schema': 7.0.15 11444 + 11445 + '@eslint/core@1.1.0': 11463 11446 dependencies: 11464 11447 '@types/json-schema': 7.0.15 11465 11448 ··· 11477 11460 transitivePeerDependencies: 11478 11461 - supports-color 11479 11462 11480 - '@eslint/js@9.39.2': {} 11463 + '@eslint/js@9.39.3': {} 11481 11464 11482 11465 '@eslint/markdown@7.5.1': 11483 11466 dependencies: ··· 11500 11483 '@eslint/core': 0.17.0 11501 11484 levn: 0.4.1 11502 11485 11503 - '@eslint/plugin-kit@0.5.1': 11486 + '@eslint/plugin-kit@0.6.0': 11504 11487 dependencies: 11505 - '@eslint/core': 1.0.1 11488 + '@eslint/core': 1.1.0 11506 11489 levn: 0.4.1 11507 11490 11508 11491 '@exodus/bytes@1.11.0(@noble/hashes@1.8.0)': ··· 12183 12166 12184 12167 '@opentelemetry/semantic-conventions@1.38.0': {} 12185 12168 12169 + '@ota-meshi/ast-token-store@0.3.0': {} 12170 + 12186 12171 '@oxc-minify/binding-android-arm-eabi@0.108.0': 12187 12172 optional: true 12188 12173 ··· 12839 12824 12840 12825 '@standard-schema/spec@1.1.0': {} 12841 12826 12842 - '@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1))': 12827 + '@stylistic/eslint-plugin@5.9.0(eslint@9.39.3(jiti@2.6.1))': 12843 12828 dependencies: 12844 - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) 12845 - '@typescript-eslint/types': 8.53.1 12846 - eslint: 9.39.2(jiti@2.6.1) 12829 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 12830 + '@typescript-eslint/types': 8.56.1 12831 + eslint: 9.39.3(jiti@2.6.1) 12847 12832 eslint-visitor-keys: 4.2.1 12848 12833 espree: 10.4.0 12849 12834 estraverse: 5.3.0 ··· 13203 13188 '@types/node': 24.11.0 13204 13189 optional: true 13205 13190 13206 - '@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': 13191 + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)': 13207 13192 dependencies: 13208 13193 '@eslint-community/regexpp': 4.12.2 13209 - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 13210 - '@typescript-eslint/scope-manager': 8.53.1 13211 - '@typescript-eslint/type-utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 13212 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 13213 - '@typescript-eslint/visitor-keys': 8.53.1 13214 - eslint: 9.39.2(jiti@2.6.1) 13194 + '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 13195 + '@typescript-eslint/scope-manager': 8.56.1 13196 + '@typescript-eslint/type-utils': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 13197 + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 13198 + '@typescript-eslint/visitor-keys': 8.56.1 13199 + eslint: 9.39.3(jiti@2.6.1) 13215 13200 ignore: 7.0.5 13216 13201 natural-compare: 1.4.0 13217 13202 ts-api-utils: 2.4.0(typescript@5.9.3) ··· 13219 13204 transitivePeerDependencies: 13220 13205 - supports-color 13221 13206 13222 - '@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': 13207 + '@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)': 13223 13208 dependencies: 13224 - '@typescript-eslint/scope-manager': 8.53.1 13225 - '@typescript-eslint/types': 8.53.1 13226 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) 13227 - '@typescript-eslint/visitor-keys': 8.53.1 13209 + '@typescript-eslint/scope-manager': 8.56.1 13210 + '@typescript-eslint/types': 8.56.1 13211 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) 13212 + '@typescript-eslint/visitor-keys': 8.56.1 13228 13213 debug: 4.4.3 13229 - eslint: 9.39.2(jiti@2.6.1) 13214 + eslint: 9.39.3(jiti@2.6.1) 13230 13215 typescript: 5.9.3 13231 13216 transitivePeerDependencies: 13232 13217 - supports-color 13233 13218 13234 - '@typescript-eslint/project-service@8.53.1(typescript@5.9.3)': 13219 + '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': 13235 13220 dependencies: 13236 - '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) 13237 - '@typescript-eslint/types': 8.53.1 13221 + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) 13222 + '@typescript-eslint/types': 8.56.1 13238 13223 debug: 4.4.3 13239 13224 typescript: 5.9.3 13240 13225 transitivePeerDependencies: 13241 13226 - supports-color 13242 13227 13243 - '@typescript-eslint/scope-manager@8.53.1': 13228 + '@typescript-eslint/rule-tester@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)': 13244 13229 dependencies: 13245 - '@typescript-eslint/types': 8.53.1 13246 - '@typescript-eslint/visitor-keys': 8.53.1 13230 + '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 13231 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) 13232 + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 13233 + ajv: 6.12.6 13234 + eslint: 9.39.3(jiti@2.6.1) 13235 + json-stable-stringify-without-jsonify: 1.0.1 13236 + lodash.merge: 4.6.2 13237 + semver: 7.7.3 13238 + transitivePeerDependencies: 13239 + - supports-color 13240 + - typescript 13247 13241 13248 - '@typescript-eslint/tsconfig-utils@8.53.1(typescript@5.9.3)': 13242 + '@typescript-eslint/scope-manager@8.56.1': 13243 + dependencies: 13244 + '@typescript-eslint/types': 8.56.1 13245 + '@typescript-eslint/visitor-keys': 8.56.1 13246 + 13247 + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': 13249 13248 dependencies: 13250 13249 typescript: 5.9.3 13251 13250 13252 - '@typescript-eslint/type-utils@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': 13251 + '@typescript-eslint/type-utils@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)': 13253 13252 dependencies: 13254 - '@typescript-eslint/types': 8.53.1 13255 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) 13256 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 13253 + '@typescript-eslint/types': 8.56.1 13254 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) 13255 + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 13257 13256 debug: 4.4.3 13258 - eslint: 9.39.2(jiti@2.6.1) 13257 + eslint: 9.39.3(jiti@2.6.1) 13259 13258 ts-api-utils: 2.4.0(typescript@5.9.3) 13260 13259 typescript: 5.9.3 13261 13260 transitivePeerDependencies: 13262 13261 - supports-color 13263 13262 13264 - '@typescript-eslint/types@8.50.1': {} 13263 + '@typescript-eslint/types@8.56.1': {} 13265 13264 13266 - '@typescript-eslint/types@8.53.1': {} 13267 - 13268 - '@typescript-eslint/typescript-estree@8.53.1(typescript@5.9.3)': 13265 + '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': 13269 13266 dependencies: 13270 - '@typescript-eslint/project-service': 8.53.1(typescript@5.9.3) 13271 - '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) 13272 - '@typescript-eslint/types': 8.53.1 13273 - '@typescript-eslint/visitor-keys': 8.53.1 13267 + '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3) 13268 + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) 13269 + '@typescript-eslint/types': 8.56.1 13270 + '@typescript-eslint/visitor-keys': 8.56.1 13274 13271 debug: 4.4.3 13275 - minimatch: 9.0.5 13272 + minimatch: 10.2.3 13276 13273 semver: 7.7.3 13277 13274 tinyglobby: 0.2.15 13278 13275 ts-api-utils: 2.4.0(typescript@5.9.3) ··· 13280 13277 transitivePeerDependencies: 13281 13278 - supports-color 13282 13279 13283 - '@typescript-eslint/utils@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': 13280 + '@typescript-eslint/utils@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)': 13284 13281 dependencies: 13285 - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) 13286 - '@typescript-eslint/scope-manager': 8.53.1 13287 - '@typescript-eslint/types': 8.53.1 13288 - '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) 13289 - eslint: 9.39.2(jiti@2.6.1) 13282 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 13283 + '@typescript-eslint/scope-manager': 8.56.1 13284 + '@typescript-eslint/types': 8.56.1 13285 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) 13286 + eslint: 9.39.3(jiti@2.6.1) 13290 13287 typescript: 5.9.3 13291 13288 transitivePeerDependencies: 13292 13289 - supports-color 13293 13290 13294 - '@typescript-eslint/visitor-keys@8.53.1': 13291 + '@typescript-eslint/visitor-keys@8.56.1': 13295 13292 dependencies: 13296 - '@typescript-eslint/types': 8.53.1 13297 - eslint-visitor-keys: 4.2.1 13293 + '@typescript-eslint/types': 8.56.1 13294 + eslint-visitor-keys: 5.0.0 13298 13295 13299 13296 '@typescript/vfs@1.6.2(typescript@5.9.3)': 13300 13297 dependencies: ··· 13479 13476 13480 13477 '@vitest/cjs-lib@file:test/browser/cjs-lib': {} 13481 13478 13482 - '@vitest/eslint-plugin@1.6.6(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@packages+vitest)': 13479 + '@vitest/eslint-plugin@1.6.9(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)(vitest@packages+vitest)': 13483 13480 dependencies: 13484 - '@typescript-eslint/scope-manager': 8.53.1 13485 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 13486 - eslint: 9.39.2(jiti@2.6.1) 13481 + '@typescript-eslint/scope-manager': 8.56.1 13482 + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 13483 + eslint: 9.39.3(jiti@2.6.1) 13487 13484 optionalDependencies: 13488 13485 typescript: 5.9.3 13489 13486 vitest: link:packages/vitest ··· 14032 14029 14033 14030 balanced-match@1.0.2: {} 14034 14031 14032 + balanced-match@4.0.4: {} 14033 + 14035 14034 bare-events@2.4.2: 14036 14035 optional: true 14037 14036 ··· 14096 14095 brace-expansion@2.0.1: 14097 14096 dependencies: 14098 14097 balanced-match: 1.0.2 14098 + 14099 + brace-expansion@5.0.3: 14100 + dependencies: 14101 + balanced-match: 4.0.4 14099 14102 14100 14103 braces@3.0.3: 14101 14104 dependencies: ··· 14367 14370 commander@2.20.3: {} 14368 14371 14369 14372 commander@9.5.0: {} 14370 - 14371 - comment-parser@1.4.1: {} 14372 - 14373 - comment-parser@1.4.4: {} 14374 14373 14375 14374 comment-parser@1.4.5: {} 14376 14375 ··· 14683 14682 asap: 2.0.6 14684 14683 wrappy: 1.0.2 14685 14684 14686 - diff-sequences@27.5.1: {} 14687 - 14688 14685 diff-sequences@29.6.3: {} 14689 14686 14690 14687 dom-accessibility-api@0.5.16: {} ··· 14972 14969 optionalDependencies: 14973 14970 source-map: 0.6.1 14974 14971 14975 - eslint-compat-utils@0.5.1(eslint@9.39.2(jiti@2.6.1)): 14972 + eslint-compat-utils@0.5.1(eslint@9.39.3(jiti@2.6.1)): 14976 14973 dependencies: 14977 - eslint: 9.39.2(jiti@2.6.1) 14974 + eslint: 9.39.3(jiti@2.6.1) 14978 14975 semver: 7.7.3 14979 14976 14980 - eslint-compat-utils@0.6.5(eslint@9.39.2(jiti@2.6.1)): 14977 + eslint-config-flat-gitignore@2.2.1(eslint@9.39.3(jiti@2.6.1)): 14981 14978 dependencies: 14982 - eslint: 9.39.2(jiti@2.6.1) 14983 - semver: 7.7.3 14979 + '@eslint/compat': 2.0.2(eslint@9.39.3(jiti@2.6.1)) 14980 + eslint: 9.39.3(jiti@2.6.1) 14984 14981 14985 - eslint-config-flat-gitignore@2.1.0(eslint@9.39.2(jiti@2.6.1)): 14982 + eslint-flat-config-utils@3.0.1: 14986 14983 dependencies: 14987 - '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@2.6.1)) 14988 - eslint: 9.39.2(jiti@2.6.1) 14989 - 14990 - eslint-flat-config-utils@3.0.0: 14991 - dependencies: 14992 - '@eslint/config-helpers': 0.5.1 14984 + '@eslint/config-helpers': 0.5.2 14993 14985 pathe: 2.0.3 14994 14986 14995 - eslint-json-compat-utils@0.2.1(eslint@9.39.2(jiti@2.6.1))(jsonc-eslint-parser@2.4.2): 14987 + eslint-json-compat-utils@0.2.1(eslint@9.39.3(jiti@2.6.1))(jsonc-eslint-parser@3.1.0): 14996 14988 dependencies: 14997 - eslint: 9.39.2(jiti@2.6.1) 14998 - esquery: 1.6.0 14999 - jsonc-eslint-parser: 2.4.2 14989 + eslint: 9.39.3(jiti@2.6.1) 14990 + esquery: 1.7.0 14991 + jsonc-eslint-parser: 3.1.0 15000 14992 15001 - eslint-merge-processors@2.0.0(eslint@9.39.2(jiti@2.6.1)): 14993 + eslint-merge-processors@2.0.0(eslint@9.39.3(jiti@2.6.1)): 15002 14994 dependencies: 15003 - eslint: 9.39.2(jiti@2.6.1) 14995 + eslint: 9.39.3(jiti@2.6.1) 15004 14996 15005 - eslint-plugin-antfu@3.1.3(eslint@9.39.2(jiti@2.6.1)): 14997 + eslint-plugin-antfu@3.2.2(eslint@9.39.3(jiti@2.6.1)): 15006 14998 dependencies: 15007 - eslint: 9.39.2(jiti@2.6.1) 14999 + eslint: 9.39.3(jiti@2.6.1) 15008 15000 15009 - eslint-plugin-command@3.4.0(eslint@9.39.2(jiti@2.6.1)): 15001 + eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1)): 15010 15002 dependencies: 15011 - '@es-joy/jsdoccomment': 0.78.0 15012 - eslint: 9.39.2(jiti@2.6.1) 15003 + '@es-joy/jsdoccomment': 0.84.0 15004 + '@typescript-eslint/rule-tester': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 15005 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) 15006 + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 15007 + eslint: 9.39.3(jiti@2.6.1) 15013 15008 15014 - eslint-plugin-es-x@7.8.0(eslint@9.39.2(jiti@2.6.1)): 15009 + eslint-plugin-es-x@7.8.0(eslint@9.39.3(jiti@2.6.1)): 15015 15010 dependencies: 15016 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) 15011 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 15017 15012 '@eslint-community/regexpp': 4.12.2 15018 - eslint: 9.39.2(jiti@2.6.1) 15019 - eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@2.6.1)) 15013 + eslint: 9.39.3(jiti@2.6.1) 15014 + eslint-compat-utils: 0.5.1(eslint@9.39.3(jiti@2.6.1)) 15020 15015 15021 - eslint-plugin-import-lite@0.5.0(eslint@9.39.2(jiti@2.6.1)): 15016 + eslint-plugin-import-lite@0.5.2(eslint@9.39.3(jiti@2.6.1)): 15022 15017 dependencies: 15023 - eslint: 9.39.2(jiti@2.6.1) 15018 + eslint: 9.39.3(jiti@2.6.1) 15024 15019 15025 - eslint-plugin-jsdoc@62.4.0(eslint@9.39.2(jiti@2.6.1)): 15020 + eslint-plugin-jsdoc@62.7.1(eslint@9.39.3(jiti@2.6.1)): 15026 15021 dependencies: 15027 - '@es-joy/jsdoccomment': 0.82.0 15022 + '@es-joy/jsdoccomment': 0.84.0 15028 15023 '@es-joy/resolve.exports': 1.2.0 15029 15024 are-docs-informative: 0.0.2 15030 15025 comment-parser: 1.4.5 15031 15026 debug: 4.4.3 15032 15027 escape-string-regexp: 4.0.0 15033 - eslint: 9.39.2(jiti@2.6.1) 15028 + eslint: 9.39.3(jiti@2.6.1) 15034 15029 espree: 11.1.0 15035 15030 esquery: 1.7.0 15036 15031 html-entities: 2.6.0 15037 15032 object-deep-merge: 2.0.0 15038 15033 parse-imports-exports: 0.2.4 15039 - semver: 7.7.3 15034 + semver: 7.7.4 15040 15035 spdx-expression-parse: 4.0.0 15041 15036 to-valid-identifier: 1.0.0 15042 15037 transitivePeerDependencies: 15043 15038 - supports-color 15044 15039 15045 - eslint-plugin-jsonc@2.21.0(eslint@9.39.2(jiti@2.6.1)): 15040 + eslint-plugin-jsonc@3.1.1(eslint@9.39.3(jiti@2.6.1)): 15046 15041 dependencies: 15047 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) 15048 - diff-sequences: 27.5.1 15049 - eslint: 9.39.2(jiti@2.6.1) 15050 - eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@2.6.1)) 15051 - eslint-json-compat-utils: 0.2.1(eslint@9.39.2(jiti@2.6.1))(jsonc-eslint-parser@2.4.2) 15052 - espree: 10.4.0 15053 - graphemer: 1.4.0 15054 - jsonc-eslint-parser: 2.4.2 15042 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 15043 + '@eslint/core': 1.0.1 15044 + '@eslint/plugin-kit': 0.6.0 15045 + '@ota-meshi/ast-token-store': 0.3.0 15046 + diff-sequences: 29.6.3 15047 + eslint: 9.39.3(jiti@2.6.1) 15048 + eslint-json-compat-utils: 0.2.1(eslint@9.39.3(jiti@2.6.1))(jsonc-eslint-parser@3.1.0) 15049 + jsonc-eslint-parser: 3.1.0 15055 15050 natural-compare: 1.4.0 15056 - synckit: 0.11.11 15051 + synckit: 0.11.12 15057 15052 transitivePeerDependencies: 15058 15053 - '@eslint/json' 15059 15054 15060 - eslint-plugin-n@17.23.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): 15055 + eslint-plugin-n@17.24.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3): 15061 15056 dependencies: 15062 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) 15057 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 15063 15058 enhanced-resolve: 5.18.4 15064 - eslint: 9.39.2(jiti@2.6.1) 15065 - eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@2.6.1)) 15059 + eslint: 9.39.3(jiti@2.6.1) 15060 + eslint-plugin-es-x: 7.8.0(eslint@9.39.3(jiti@2.6.1)) 15066 15061 get-tsconfig: 4.13.0 15067 15062 globals: 15.15.0 15068 15063 globrex: 0.1.2 ··· 15074 15069 15075 15070 eslint-plugin-no-only-tests@3.3.0: {} 15076 15071 15077 - eslint-plugin-perfectionist@5.4.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): 15072 + eslint-plugin-perfectionist@5.6.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3): 15078 15073 dependencies: 15079 - '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 15080 - eslint: 9.39.2(jiti@2.6.1) 15074 + '@typescript-eslint/utils': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 15075 + eslint: 9.39.3(jiti@2.6.1) 15081 15076 natural-orderby: 5.0.0 15082 15077 transitivePeerDependencies: 15083 15078 - supports-color 15084 15079 - typescript 15085 15080 15086 - eslint-plugin-pnpm@1.5.0(eslint@9.39.2(jiti@2.6.1)): 15081 + eslint-plugin-pnpm@1.6.0(eslint@9.39.3(jiti@2.6.1)): 15087 15082 dependencies: 15088 15083 empathic: 2.0.0 15089 - eslint: 9.39.2(jiti@2.6.1) 15090 - jsonc-eslint-parser: 2.4.2 15084 + eslint: 9.39.3(jiti@2.6.1) 15085 + jsonc-eslint-parser: 3.1.0 15091 15086 pathe: 2.0.3 15092 - pnpm-workspace-yaml: 1.5.0 15087 + pnpm-workspace-yaml: 1.6.0 15093 15088 tinyglobby: 0.2.15 15094 15089 yaml: 2.8.2 15095 15090 yaml-eslint-parser: 2.0.0 15096 15091 15097 - eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@2.6.1)): 15092 + eslint-plugin-regexp@3.0.0(eslint@9.39.3(jiti@2.6.1)): 15098 15093 dependencies: 15099 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) 15094 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 15100 15095 '@eslint-community/regexpp': 4.12.2 15101 - comment-parser: 1.4.1 15102 - eslint: 9.39.2(jiti@2.6.1) 15103 - jsdoc-type-pratt-parser: 4.8.0 15096 + comment-parser: 1.4.5 15097 + eslint: 9.39.3(jiti@2.6.1) 15098 + jsdoc-type-pratt-parser: 7.1.0 15104 15099 refa: 0.12.1 15105 15100 regexp-ast-analysis: 0.7.1 15106 15101 scslre: 0.3.0 15107 15102 15108 - eslint-plugin-toml@1.0.3(eslint@9.39.2(jiti@2.6.1)): 15103 + eslint-plugin-toml@1.3.0(eslint@9.39.3(jiti@2.6.1)): 15109 15104 dependencies: 15110 15105 '@eslint/core': 1.0.1 15111 - '@eslint/plugin-kit': 0.5.1 15106 + '@eslint/plugin-kit': 0.6.0 15107 + '@ota-meshi/ast-token-store': 0.3.0 15112 15108 debug: 4.4.3 15113 - eslint: 9.39.2(jiti@2.6.1) 15109 + eslint: 9.39.3(jiti@2.6.1) 15114 15110 toml-eslint-parser: 1.0.3 15115 15111 transitivePeerDependencies: 15116 15112 - supports-color 15117 15113 15118 - eslint-plugin-unicorn@62.0.0(eslint@9.39.2(jiti@2.6.1)): 15114 + eslint-plugin-unicorn@63.0.0(eslint@9.39.3(jiti@2.6.1)): 15119 15115 dependencies: 15120 15116 '@babel/helper-validator-identifier': 7.28.5 15121 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) 15122 - '@eslint/plugin-kit': 0.4.1 15117 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 15123 15118 change-case: 5.4.4 15124 15119 ci-info: 4.3.1 15125 15120 clean-regexp: 1.0.0 15126 15121 core-js-compat: 3.47.0 15127 - eslint: 9.39.2(jiti@2.6.1) 15128 - esquery: 1.6.0 15122 + eslint: 9.39.3(jiti@2.6.1) 15129 15123 find-up-simple: 1.0.1 15130 15124 globals: 16.5.0 15131 15125 indent-string: 5.0.0 ··· 15137 15131 semver: 7.7.3 15138 15132 strip-indent: 4.1.1 15139 15133 15140 - eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): 15134 + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1)): 15141 15135 dependencies: 15142 - eslint: 9.39.2(jiti@2.6.1) 15136 + eslint: 9.39.3(jiti@2.6.1) 15143 15137 optionalDependencies: 15144 - '@typescript-eslint/eslint-plugin': 8.53.1(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 15138 + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 15145 15139 15146 - eslint-plugin-vue@10.7.0(@stylistic/eslint-plugin@5.7.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))): 15140 + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.9.0(eslint@9.39.3(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@9.39.3(jiti@2.6.1))): 15147 15141 dependencies: 15148 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) 15149 - eslint: 9.39.2(jiti@2.6.1) 15142 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 15143 + eslint: 9.39.3(jiti@2.6.1) 15150 15144 natural-compare: 1.4.0 15151 15145 nth-check: 2.1.1 15152 15146 postcss-selector-parser: 7.1.1 15153 15147 semver: 7.7.3 15154 - vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@2.6.1)) 15148 + vue-eslint-parser: 10.4.0(eslint@9.39.3(jiti@2.6.1)) 15155 15149 xml-name-validator: 4.0.0 15156 15150 optionalDependencies: 15157 - '@stylistic/eslint-plugin': 5.7.1(eslint@9.39.2(jiti@2.6.1)) 15158 - '@typescript-eslint/parser': 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 15151 + '@stylistic/eslint-plugin': 5.9.0(eslint@9.39.3(jiti@2.6.1)) 15152 + '@typescript-eslint/parser': 8.56.1(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) 15159 15153 15160 - eslint-plugin-yml@3.0.0(eslint@9.39.2(jiti@2.6.1)): 15154 + eslint-plugin-yml@3.3.0(eslint@9.39.3(jiti@2.6.1)): 15161 15155 dependencies: 15162 15156 '@eslint/core': 1.0.1 15163 - '@eslint/plugin-kit': 0.5.1 15157 + '@eslint/plugin-kit': 0.6.0 15158 + '@ota-meshi/ast-token-store': 0.3.0 15164 15159 debug: 4.4.3 15165 15160 diff-sequences: 29.6.3 15166 15161 escape-string-regexp: 5.0.0 15167 - eslint: 9.39.2(jiti@2.6.1) 15162 + eslint: 9.39.3(jiti@2.6.1) 15168 15163 natural-compare: 1.4.0 15169 15164 yaml-eslint-parser: 2.0.0 15170 15165 transitivePeerDependencies: 15171 15166 - supports-color 15172 15167 15173 - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.29)(eslint@9.39.2(jiti@2.6.1)): 15168 + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.29)(eslint@9.39.3(jiti@2.6.1)): 15174 15169 dependencies: 15175 15170 '@vue/compiler-sfc': 3.5.29 15176 - eslint: 9.39.2(jiti@2.6.1) 15171 + eslint: 9.39.3(jiti@2.6.1) 15177 15172 15178 15173 eslint-scope@8.4.0: 15179 15174 dependencies: ··· 15186 15181 15187 15182 eslint-visitor-keys@5.0.0: {} 15188 15183 15189 - eslint@9.39.2(jiti@2.6.1): 15184 + eslint@9.39.3(jiti@2.6.1): 15190 15185 dependencies: 15191 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) 15192 - '@eslint-community/regexpp': 4.12.1 15186 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1)) 15187 + '@eslint-community/regexpp': 4.12.2 15193 15188 '@eslint/config-array': 0.21.1 15194 15189 '@eslint/config-helpers': 0.4.2 15195 15190 '@eslint/core': 0.17.0 15196 15191 '@eslint/eslintrc': 3.3.1 15197 - '@eslint/js': 9.39.2 15192 + '@eslint/js': 9.39.3 15198 15193 '@eslint/plugin-kit': 0.4.1 15199 15194 '@humanfs/node': 0.16.6 15200 15195 '@humanwhocodes/module-importer': 1.0.1 ··· 15208 15203 eslint-scope: 8.4.0 15209 15204 eslint-visitor-keys: 4.2.1 15210 15205 espree: 10.4.0 15211 - esquery: 1.6.0 15206 + esquery: 1.7.0 15212 15207 esutils: 2.0.3 15213 15208 fast-deep-equal: 3.1.3 15214 15209 file-entry-cache: 8.0.0 ··· 15239 15234 acorn-jsx: 5.3.2(acorn@8.11.3(patch_hash=62f89b815dbd769c8a4d5b19b1f6852f28922ecb581d876c8a8377d05c2483c4)) 15240 15235 eslint-visitor-keys: 5.0.0 15241 15236 15242 - espree@9.6.1: 15243 - dependencies: 15244 - acorn: 8.11.3(patch_hash=62f89b815dbd769c8a4d5b19b1f6852f28922ecb581d876c8a8377d05c2483c4) 15245 - acorn-jsx: 5.3.2(acorn@8.11.3(patch_hash=62f89b815dbd769c8a4d5b19b1f6852f28922ecb581d876c8a8377d05c2483c4)) 15246 - eslint-visitor-keys: 3.4.3 15247 - 15248 15237 esprima-extract-comments@1.1.0: 15249 15238 dependencies: 15250 15239 esprima: 4.0.1 15251 15240 15252 15241 esprima@4.0.1: {} 15253 - 15254 - esquery@1.6.0: 15255 - dependencies: 15256 - estraverse: 5.3.0 15257 15242 15258 15243 esquery@1.7.0: 15259 15244 dependencies: ··· 15714 15699 15715 15700 globals@16.5.0: {} 15716 15701 15717 - globals@17.1.0: {} 15702 + globals@17.3.0: {} 15718 15703 15719 15704 globalthis@1.0.4: 15720 15705 dependencies: ··· 15730 15715 graceful-fs@4.2.11: {} 15731 15716 15732 15717 grapheme-splitter@1.0.4: {} 15733 - 15734 - graphemer@1.4.0: {} 15735 15718 15736 15719 graphql@16.12.0: {} 15737 15720 ··· 16195 16178 16196 16179 jsbn@1.1.0: {} 16197 16180 16198 - jsdoc-type-pratt-parser@4.8.0: {} 16199 - 16200 - jsdoc-type-pratt-parser@7.0.0: {} 16201 - 16202 16181 jsdoc-type-pratt-parser@7.1.0: {} 16182 + 16183 + jsdoc-type-pratt-parser@7.1.1: {} 16203 16184 16204 16185 jsdom@27.4.0(@noble/hashes@1.8.0): 16205 16186 dependencies: ··· 16275 16256 16276 16257 json5@2.2.3: {} 16277 16258 16278 - jsonc-eslint-parser@2.4.2: 16259 + jsonc-eslint-parser@3.1.0: 16279 16260 dependencies: 16280 16261 acorn: 8.11.3(patch_hash=62f89b815dbd769c8a4d5b19b1f6852f28922ecb581d876c8a8377d05c2483c4) 16281 - eslint-visitor-keys: 3.4.3 16282 - espree: 9.6.1 16262 + eslint-visitor-keys: 5.0.0 16283 16263 semver: 7.7.3 16284 16264 16285 16265 jsonc-parser@3.3.1: {} ··· 16965 16945 dependencies: 16966 16946 '@isaacs/brace-expansion': 5.0.0 16967 16947 16948 + minimatch@10.2.3: 16949 + dependencies: 16950 + brace-expansion: 5.0.3 16951 + 16968 16952 minimatch@3.1.2: 16969 16953 dependencies: 16970 16954 brace-expansion: 1.1.11 ··· 17445 17429 17446 17430 pngjs@7.0.0: {} 17447 17431 17448 - pnpm-workspace-yaml@1.5.0: 17432 + pnpm-workspace-yaml@1.6.0: 17449 17433 dependencies: 17450 17434 yaml: 2.8.2 17451 17435 ··· 18037 18021 18038 18022 semver@7.7.3: {} 18039 18023 18024 + semver@7.7.4: {} 18025 + 18040 18026 send@0.18.0: 18041 18027 dependencies: 18042 18028 debug: 2.6.9 ··· 18482 18468 18483 18469 sync-message-port@1.1.3: {} 18484 18470 18485 - synckit@0.11.11: 18471 + synckit@0.11.12: 18486 18472 dependencies: 18487 18473 '@pkgr/core': 0.2.9 18488 18474 ··· 19105 19091 dependencies: 19106 19092 vue: 3.5.29(typescript@5.9.3) 19107 19093 19108 - vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)): 19094 + vue-eslint-parser@10.4.0(eslint@9.39.3(jiti@2.6.1)): 19109 19095 dependencies: 19110 19096 debug: 4.4.3 19111 - eslint: 9.39.2(jiti@2.6.1) 19097 + eslint: 9.39.3(jiti@2.6.1) 19112 19098 eslint-scope: 8.4.0 19113 - eslint-visitor-keys: 4.2.1 19114 - espree: 10.4.0 19115 - esquery: 1.6.0 19099 + eslint-visitor-keys: 5.0.0 19100 + espree: 11.1.0 19101 + esquery: 1.7.0 19116 19102 semver: 7.7.3 19117 19103 transitivePeerDependencies: 19118 19104 - supports-color
+1 -1
.github/commit-convention.md
··· 2 2 3 3 > This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular). 4 4 5 - #### TL;DR: 5 + ### TL;DR: 6 6 7 7 Messages must be matched by the following regex: 8 8
+1 -1
docs/api/expect.md
··· 6 6 type Awaitable<T> = T | PromiseLike<T> 7 7 ``` 8 8 9 - `expect` is used to create assertions. In this context `assertions` are functions that can be called to assert a statement. Vitest provides `chai` assertions by default and also `Jest` compatible assertions built on top of `chai`. Since Vitest 4.1, for spy/mock testing, Vitest also provides [Chai-style assertions](#chai-style-spy-assertions) (e.g., `expect(spy).to.have.been.called()`) alongside Jest-style assertions (e.g., `expect(spy).toHaveBeenCalled()`). Unlike `Jest`, Vitest supports a message as the second argument - if the assertion fails, the error message will be equal to it. 9 + `expect` is used to create assertions. In this context `assertions` are functions that can be called to assert a statement. Vitest provides `chai` assertions by default and also `Jest` compatible assertions built on top of `chai`. Since Vitest 4.1, for spy/mock testing, Vitest also provides Chai-style assertions (e.g., [`expect(spy).to.have.been.called()`](#called)) alongside Jest-style assertions (e.g., `expect(spy).toHaveBeenCalled()`). Unlike `Jest`, Vitest supports a message as the second argument - if the assertion fails, the error message will be equal to it. 10 10 11 11 ```ts 12 12 export interface ExpectStatic extends Chai.ExpectStatic, AsymmetricMatchersContaining {
+2 -2
docs/blog/vitest-3-2.md
··· 47 47 48 48 The new [annotation API](/guide/test-annotations) allows you to annotate any test with a custom message and attachment. These annotations are visible in the UI, HTML, junit, tap and GitHub Actions reporters. Vitest will also print related annotation in the CLI if the test fails. 49 49 50 - <img src="/annotation-api-cute-puppy-example.png" /> 50 + <img src="/annotation-api-cute-puppy-example.png" alt="an example of annotation with a cute puppy" /> 51 51 52 52 ## Scoped Fixtures 53 53 ··· 106 106 ``` 107 107 ::: 108 108 109 - <img src="/v3-2-custom-colors.png" /> 109 + <img src="/v3-2-custom-colors.png" alt="an example of project names with custom backgrounds" /> 110 110 111 111 ## Custom Browser Locators API 112 112
+1 -1
docs/blog/vitest-3.md
··· 67 67 You can follow the design process in [#7069](https://github.com/vitest-dev/vitest/pull/7069) PR. It was a hard fight trying to reverse-engineer the previous `onTaskUpdate` API to make this new elegant lifecycle possible. 68 68 69 69 <div class="flex align-center justify-center"> 70 - <img src="/on-task-update.gif" /> 70 + <img src="/on-task-update.gif" alt="a gif from it's always sunny with a drawing board" /> 71 71 </div> 72 72 73 73 ## Inline Workspace
+1 -1
docs/config/alias.md
··· 12 12 ::: warning 13 13 Vitest uses Vite SSR primitives to run tests which has [certain pitfalls](https://vitejs.dev/guide/ssr.html#ssr-externals). 14 14 15 - 1. Aliases affect only modules imported directly with an `import` keyword by an [inlined](#server-deps-inline) module (all source code is inlined by default). 15 + 1. Aliases affect only modules imported directly with an `import` keyword by an [inlined](/config/server#server-deps-inline) module (all source code is inlined by default). 16 16 2. Vitest does not support aliasing `require` calls. 17 17 3. If you are aliasing an external dependency (e.g., `react` -> `preact`), you may want to alias the actual `node_modules` packages instead to make it work for externalized dependencies. Both [Yarn](https://classic.yarnpkg.com/en/docs/cli/add/#toc-yarn-add-alias) and [pnpm](https://pnpm.io/aliases/) support aliasing via the `npm:` prefix. 18 18 :::
+1 -1
docs/config/benchmark.md
··· 28 28 - **Type:** `string[]` 29 29 - **Default:** `[]` 30 30 31 - Include globs for in-source benchmark test files. This option is similar to [`includeSource`](#includesource). 31 + Include globs for in-source benchmark test files. This option is similar to [`includeSource`](/config/include-source). 32 32 33 33 When defined, Vitest will run all matched files with `import.meta.vitest` inside. 34 34
+1 -1
docs/config/coverage.md
··· 149 149 - **Available for providers:** `'v8' | 'istanbul'` 150 150 - **CLI:** `--coverage.allowExternal`, `--coverage.allowExternal=false` 151 151 152 - Collect coverage of files outside the [project `root`](#root). 152 + Collect coverage of files outside the [project `root`](/config/root). 153 153 154 154 ## coverage.excludeAfterRemap 155 155
+6 -6
docs/config/deps.md
··· 44 44 45 45 Options that are applied to external files when the environment is set to `client`. By default, `jsdom` and `happy-dom` use `client` environment, while `node` and `edge` environments use `ssr`, so these options will have no affect on files inside those environments. 46 46 47 - Usually, files inside `node_modules` are externalized, but these options also affect files in [`server.deps.external`](#server-deps-external). 47 + Usually, files inside `node_modules` are externalized, but these options also affect files in [`server.deps.external`](/config/server#server-deps-external). 48 48 49 49 ### deps.client.transformAssets 50 50 ··· 56 56 This module will have a default export equal to the path to the asset, if no query is specified. 57 57 58 58 ::: warning 59 - At the moment, this option only works with [`vmThreads`](#vmthreads) and [`vmForks`](#vmforks) pools. 59 + At the moment, this option only works with [`vmThreads`](/config/pool#vmthreads) and [`vmForks`](/config/pool#vmforks) pools. 60 60 ::: 61 61 62 62 ### deps.client.transformCss ··· 66 66 67 67 Should Vitest process CSS (.css, .scss, .sass, etc) files and resolve them like Vite does in the browser. 68 68 69 - If CSS files are disabled with [`css`](#css) options, this option will just silence `ERR_UNKNOWN_FILE_EXTENSION` errors. 69 + If CSS files are disabled with [`css`](/config/css) options, this option will just silence `ERR_UNKNOWN_FILE_EXTENSION` errors. 70 70 71 71 ::: warning 72 - At the moment, this option only works with [`vmThreads`](#vmthreads) and [`vmForks`](#vmforks) pools. 72 + At the moment, this option only works with [`vmThreads`](/config/pool#vmthreads) and [`vmForks`](/config/pool#vmforks) pools. 73 73 ::: 74 74 75 75 ### deps.client.transformGlobPattern ··· 82 82 By default, files inside `node_modules` are externalized and not transformed, unless it's CSS or an asset, and corresponding option is not disabled. 83 83 84 84 ::: warning 85 - At the moment, this option only works with [`vmThreads`](#vmthreads) and [`vmForks`](#vmforks) pools. 85 + At the moment, this option only works with [`vmThreads`](/config/pool#vmthreads) and [`vmForks`](/config/pool#vmforks) pools. 86 86 ::: 87 87 88 88 ## deps.interopDefault ··· 113 113 - **Type:** `string[]` 114 114 - **Default**: `['node_modules']` 115 115 116 - A list of directories that should be treated as module directories. This config option affects the behavior of [`vi.mock`](/api/vi#vi-mock): when no factory is provided and the path of what you are mocking matches one of the `moduleDirectories` values, Vitest will try to resolve the mock by looking for a `__mocks__` folder in the [root](#root) of the project. 116 + A list of directories that should be treated as module directories. This config option affects the behavior of [`vi.mock`](/api/vi#vi-mock): when no factory is provided and the path of what you are mocking matches one of the `moduleDirectories` values, Vitest will try to resolve the mock by looking for a `__mocks__` folder in the [root](/config/root) of the project. 117 117 118 118 This option will also affect if a file should be treated as a module when externalizing dependencies. By default, Vitest imports external modules with native Node.js bypassing Vite transformation step. 119 119
+1 -1
docs/config/fileparallelism.md
··· 12 12 Should all test files run in parallel. Setting this to `false` will override `maxWorkers` option to `1`. 13 13 14 14 ::: tip 15 - This option doesn't affect tests running in the same file. If you want to run those in parallel, use `concurrent` option on [describe](/api/describe#describe-concurrent) or via [a config](#sequence-concurrent). 15 + This option doesn't affect tests running in the same file. If you want to run those in parallel, use `concurrent` option on [describe](/api/describe#describe-concurrent) or via [a config](/config/sequence#sequence-concurrent). 16 16 :::
+1 -1
docs/config/globalsetup.md
··· 62 62 If you need to execute code in the same process as tests, use [`setupFiles`](/config/setupfiles) instead, but note that it runs before every test file. 63 63 ::: 64 64 65 - ### Handling Test Reruns 65 + ## Handling Test Reruns 66 66 67 67 You can define a custom callback function to be called when Vitest reruns tests. The test runner will wait for it to complete before executing tests. Note that you cannot destruct the `project` like `{ onTestsRerun }` because it relies on the context. 68 68
+1 -1
docs/config/includetasklocation.md
··· 8 8 - **Type:** `boolean` 9 9 - **Default:** `false` 10 10 11 - Should `location` property be included when Vitest API receives tasks in [reporters](#reporters). If you have a lot of tests, this might cause a small performance regression. 11 + Should `location` property be included when Vitest API receives tasks in [reporters](/config/reporters). If you have a lot of tests, this might cause a small performance regression. 12 12 13 13 The `location` property has `column` and `line` values that correspond to the `test` or `describe` position in the original file. 14 14
+2 -2
docs/config/sequence.md
··· 24 24 25 25 Sharding is happening before sorting, and only if `--shard` option is provided. 26 26 27 - If [`sequencer.groupOrder`](#grouporder) is specified, the sequencer will be called once for each group and pool. 27 + If [`sequence.groupOrder`](#sequence-grouporder) is specified, the sequencer will be called once for each group and pool. 28 28 29 29 ## sequence.groupOrder 30 30 ··· 38 38 - If several projects use the same group order, they will run at the same time. 39 39 40 40 This setting only affects the order in which projects run, not the order of tests within a project. 41 - To control test isolation or the order of tests inside a project, use the [`isolate`](#isolate) and [`sequence.sequencer`](#sequence-sequencer) options. 41 + To control test isolation or the order of tests inside a project, use the [`isolate`](/config/isolate) and [`sequence.sequencer`](/config/sequence#sequence-sequencer) options. 42 42 43 43 ::: details Example 44 44 Consider this example:
+4 -4
docs/config/server.md
··· 15 15 Normally, Vitest should do this automatically. 16 16 ::: 17 17 18 - ## deps 18 + ## server.deps 19 19 20 - ### external 20 + ### server.deps.external 21 21 22 22 - **Type:** `(string | RegExp)[]` 23 23 - **Default:** files inside [`moduleDirectories`](/config/deps#moduledirectories) ··· 48 48 If a `RegExp` is provided, it is matched against the full file path. 49 49 ::: 50 50 51 - ### inline 51 + ### server.deps.inline 52 52 53 53 - **Type:** `(string | RegExp)[] | true` 54 54 - **Default:** everything that is not externalized ··· 63 63 If a `RegExp` is provided, it is matched against the full file path. 64 64 ::: 65 65 66 - ### fallbackCJS 66 + ### server.deps.fallbackCJS 67 67 68 68 - **Type:** `boolean` 69 69 - **Default:** `false`
+1 -1
docs/config/snapshotenvironment.md
··· 28 28 ::: warning 29 29 This is a low-level option and should be used only for advanced cases where you don't have access to default Node.js APIs. 30 30 31 - If you just need to configure snapshots feature, use [`snapshotFormat`](#snapshotformat) or [`resolveSnapshotPath`](#resolvesnapshotpath) options. 31 + If you just need to configure snapshots feature, use [`snapshotFormat`](/config/snapshotformat) or [`resolveSnapshotPath`](/config/resolvesnapshotpath) options. 32 32 :::
+1 -1
docs/config/snapshotformat.md
··· 12 12 ::: tip 13 13 Beware that `plugins` field on this object will be ignored. 14 14 15 - If you need to extend snapshot serializer via pretty-format plugins, please, use [`expect.addSnapshotSerializer`](/api/expect#expect-addsnapshotserializer) API or [snapshotSerializers](#snapshotserializers) option. 15 + If you need to extend snapshot serializer via pretty-format plugins, please, use [`expect.addSnapshotSerializer`](/api/expect#expect-addsnapshotserializer) API or [snapshotSerializers](/config/snapshotserializers) option. 16 16 :::
+1 -2
docs/guide/cli.md
··· 169 169 ## Options 170 170 171 171 ::: tip 172 - Vitest supports both camel case and kebab case for CLI arguments. For example, `--passWithNoTests` and `--pass-with-no-tests` will both work (`--no-color` and `--inspect-brk` are the exceptions). 172 + Vitest supports both camel case and kebab case for [CLI arguments](https://github.com/cacjs/cac#dot-nested-options). For example, `--passWithNoTests` and `--pass-with-no-tests` will both work (`--no-color` and `--inspect-brk` are the exceptions). 173 173 174 174 Vitest also supports different ways of specifying the value: `--reporter dot` and `--reporter=dot` are both valid. 175 175 ··· 238 238 vitest --merge-reports --reporter=junit 239 239 ``` 240 240 241 - [cac's dot notation]: https://github.com/cacjs/cac#dot-nested-options
+9 -9
docs/guide/extending-matchers.md
··· 109 109 110 110 Matcher function has access to `this` context with the following properties: 111 111 112 - ### `isNot` 112 + ## `isNot` 113 113 114 114 Returns true, if matcher was called on `not` (`expect(received).not.toBeFoo()`). You do not need to respect it, Vitest will reverse the value of `pass` automatically. 115 115 116 - ### `promise` 116 + ## `promise` 117 117 118 118 If matcher was called on `resolved/rejected`, this value will contain the name of modifier. Otherwise, it will be an empty string. 119 119 120 - ### `equals` 120 + ## `equals` 121 121 122 122 This is a utility function that allows you to compare two values. It will return `true` if values are equal, `false` otherwise. This function is used internally for almost every matcher. It supports objects with asymmetric matchers by default. 123 123 124 - ### `utils` 124 + ## `utils` 125 125 126 126 This contains a set of utility functions that you can use to display messages. 127 127 128 128 `this` context also contains information about the current test. You can also get it by calling `expect.getState()`. The most useful properties are: 129 129 130 - ### `currentTestName` 130 + ## `currentTestName` 131 131 132 132 Full name of the current test (including describe block). 133 133 134 - ### `task` <Advanced /> <Version>4.1.0</Version> {#task} 134 + ## `task` <Advanced /> <Version>4.1.0</Version> {#task} 135 135 136 136 Contains a reference to [the `Test` runner task](/api/advanced/runner#tasks) when available. 137 137 ··· 139 139 When using the global `expect` with concurrent tests, `this.task` is `undefined`. Use `context.expect` instead to ensure `task` is available in custom matchers. 140 140 ::: 141 141 142 - ### `testPath` 142 + ## `testPath` 143 143 144 144 File path to the current test. 145 145 146 - ### `environment` 146 + ## `environment` 147 147 148 148 The name of the current [`environment`](/config/environment) (for example, `jsdom`). 149 149 150 - ### `soft` 150 + ## `soft` 151 151 152 152 Was assertion called as a [`soft`](/api/expect#soft) one. You don't need to respect it, Vitest will always catch the error. 153 153
+3 -3
docs/guide/ide.md
··· 12 12 ## VS Code <Badge>Official</Badge> {#vs-code} 13 13 14 14 <p text-center> 15 - <img :src="`https://raw.githubusercontent.com/vitest-dev/vscode/main/img/cover-${isDark ? 'light' : 'dark' }.png`" w-60> 15 + <img :src="`https://raw.githubusercontent.com/vitest-dev/vscode/main/img/cover-${isDark ? 'light' : 'dark' }.png`" w-60 alt="vscode logo"> 16 16 </p> 17 17 18 18 [GitHub](https://github.com/vitest-dev/vscode) | [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=vitest.explorer) 19 19 20 - ![](https://i.ibb.co/bJCbCf2/202203292020.gif) 20 + ![A gif of vscode extension in vscode](https://i.ibb.co/bJCbCf2/202203292020.gif) 21 21 22 22 ## JetBrains IDE 23 23 24 24 WebStorm, PhpStorm, IntelliJ IDEA Ultimate, and other JetBrains IDEs come with built-in support for Vitest. 25 25 26 26 <p text-center> 27 - <img :src="`/ide/vitest-jb-${isDark ? 'light' : 'dark'}.png`" w-60> 27 + <img :src="`/ide/vitest-jb-${isDark ? 'light' : 'dark'}.png`" w-60 alt="webstorm logo"> 28 28 </p> 29 29 30 30 [WebStorm Help](https://www.jetbrains.com/help/webstorm/vitest.html) | [IntelliJ IDEA Ultimate Help](https://www.jetbrains.com/help/idea/vitest.html) | [PhpStorm Help](https://www.jetbrains.com/help/phpstorm/vitest.html)
+1 -1
docs/guide/mocking.md
··· 162 162 ``` 163 163 164 164 ::: warning 165 - Don't forget that this only [mocks _external_ access](#mocking-pitfalls). In this example, if `original` calls `mocked` internally, it will always call the function defined in the module, not in the mock factory. 165 + Don't forget that this only [mocks _external_ access](/guide/mocking/modules#mocking-modules-pitfalls). In this example, if `original` calls `mocked` internally, it will always call the function defined in the module, not in the mock factory. 166 166 ::: 167 167 168 168 ### Mock the current date
+1 -1
docs/guide/open-telemetry.md
··· 143 143 144 144 You can view traces using any of the open source or commercial products that support OpenTelemetry API. If you did not use OpenTelemetry before, we recommend starting with [Jaeger](https://www.jaegertracing.io/docs/2.11/getting-started/#all-in-one) because it is really easy to setup. 145 145 146 - <img src="/otel-jaeger.png" /> 146 + <img src="/otel-jaeger.png" alt="an example of open telemetry result in jaeger" /> 147 147 148 148 ## `@opentelemetry/api` 149 149
+7 -7
docs/guide/test-context.md
··· 22 22 23 23 ## Built-in Test Context 24 24 25 - #### `task` 25 + ### `task` 26 26 27 27 A readonly object containing metadata about the test. 28 28 29 - #### `expect` 29 + ### `expect` 30 30 31 31 The `expect` API bound to the current test: 32 32 ··· 52 52 }) 53 53 ``` 54 54 55 - #### `skip` 55 + ### `skip` 56 56 57 57 ```ts 58 58 function skip(note?: string): never ··· 79 79 }) 80 80 ``` 81 81 82 - #### `annotate` <Version>3.2.0</Version> {#annotate} 82 + ### `annotate` <Version>3.2.0</Version> {#annotate} 83 83 84 84 ```ts 85 85 function annotate( ··· 102 102 }) 103 103 ``` 104 104 105 - #### `signal` <Version>3.2.0</Version> {#signal} 105 + ### `signal` <Version>3.2.0</Version> {#signal} 106 106 107 107 An [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) that can be aborted by Vitest. The signal is aborted in these situations: 108 108 ··· 117 117 }, 2000) 118 118 ``` 119 119 120 - #### `onTestFailed` 120 + ### `onTestFailed` 121 121 122 122 The [`onTestFailed`](/api/hooks#ontestfailed) hook bound to the current test. This API is useful if you are running tests concurrently and need to have a special handling only for this specific test. 123 123 124 - #### `onTestFinished` 124 + ### `onTestFinished` 125 125 126 126 The [`onTestFinished`](/api/hooks#ontestfailed) hook bound to the current test. This API is useful if you are running tests concurrently and need to have a special handling only for this specific test. 127 127
+1 -1
docs/guide/testing-types.md
··· 77 77 78 78 If TypeScript added support for ["throw" types](https://github.com/microsoft/TypeScript/pull/40468) these error messages could be improved significantly. Until then they will take a certain amount of squinting. 79 79 80 - #### Concrete "expected" objects vs typeargs 80 + ### Concrete "expected" objects vs typeargs 81 81 82 82 Error messages for an assertion like this: 83 83
+1 -1
packages/mocker/EXPORTS.md
··· 1 - # Using as a Vite plugin 1 + ## Using as a Vite plugin 2 2 3 3 Make sure you have `vite` and `@vitest/spy` installed (and `msw` if you are planning to use `ModuleMockerMSWInterceptor`). 4 4
+3 -3
docs/api/advanced/test-project.md
··· 51 51 ::: 52 52 53 53 ::: info 54 - If the [root project](/api/advanced/vitest#getroottestproject) is not part of user projects, its `name` will not be resolved. 54 + If the [root project](/api/advanced/vitest#getrootproject) is not part of user projects, its `name` will not be resolved. 55 55 ::: 56 56 57 57 ## vitest ··· 78 78 79 79 ## globalConfig 80 80 81 - The test config that [`Vitest`](/api/advanced/vitest) was initialized with. If this is the [root project](/api/advanced/vitest#getroottestproject), `globalConfig` and `config` will reference the same object. This config is useful for values that cannot be set on the project level, like `coverage` or `reporters`. 81 + The test config that [`Vitest`](/api/advanced/vitest) was initialized with. If this is the [root project](/api/advanced/vitest#getrootproject), `globalConfig` and `config` will reference the same object. This config is useful for values that cannot be set on the project level, like `coverage` or `reporters`. 82 82 83 83 ```ts 84 84 import type { ResolvedConfig } from 'vitest/node' ··· 206 206 function isRootProject(): boolean 207 207 ``` 208 208 209 - Checks if the current project is the root project. You can also get the root project by calling [`vitest.getRootProject()`](#getrootproject). 209 + Checks if the current project is the root project. You can also get the root project by calling [`vitest.getRootProject()`](/api/advanced/vitest#getrootproject). 210 210 211 211 ## globTestFiles 212 212
+14 -14
docs/api/browser/locators.md
··· 65 65 Providing roles via `role` or `aria-*` attributes to built-in elements that already have an implicit role is **highly discouraged** by ARIA guidelines. 66 66 ::: 67 67 68 - ##### Options 68 + **Options** 69 69 70 70 - `exact: boolean` 71 71 ··· 189 189 page.getByRole('button', { selected: false }) // ❌ 190 190 ``` 191 191 192 - ##### See also 192 + **See also** 193 193 194 194 - [List of ARIA roles at MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles) 195 195 - [List of ARIA roles at w3.org](https://www.w3.org/TR/wai-aria-1.2/#role_definitions) ··· 213 213 page.getByAltText('non existing alt text') // ❌ 214 214 ``` 215 215 216 - #### Options 216 + **Options** 217 217 218 218 - `exact: boolean` 219 219 220 220 Whether the `text` is matched exactly: case-sensitive and whole-string. Disabled by default. This option is ignored if `text` is a regular expression. Note that exact match still trims whitespace. 221 221 222 - #### See also 222 + **See also** 223 223 224 224 - [testing-library's `ByAltText`](https://testing-library.com/docs/queries/byalttext/) 225 225 ··· 260 260 <input aria-label="Username" /> 261 261 ``` 262 262 263 - #### Options 263 + **Options** 264 264 265 265 - `exact: boolean` 266 266 267 267 Whether the `text` is matched exactly: case-sensitive and whole-string. Disabled by default. This option is ignored if `text` is a regular expression. Note that exact match still trims whitespace. 268 268 269 - #### See also 269 + **See also** 270 270 271 271 - [testing-library's `ByLabelText`](https://testing-library.com/docs/queries/bylabeltext/) 272 272 ··· 292 292 It is generally better to rely on a label using [`getByLabelText`](#getbylabeltext) than a placeholder. 293 293 ::: 294 294 295 - #### Options 295 + **Options** 296 296 297 297 - `exact: boolean` 298 298 299 299 Whether the `text` is matched exactly: case-sensitive and whole-string. Disabled by default. This option is ignored if `text` is a regular expression. Note that exact match still trims whitespace. 300 300 301 - #### See also 301 + **See also** 302 302 303 303 - [testing-library's `ByPlaceholderText`](https://testing-library.com/docs/queries/byplaceholdertext/) 304 304 ··· 324 324 This locator is useful for locating non-interactive elements. If you need to locate an interactive element, like a button or an input, prefer [`getByRole`](#getbyrole). 325 325 ::: 326 326 327 - #### Options 327 + **Options** 328 328 329 329 - `exact: boolean` 330 330 331 331 Whether the `text` is matched exactly: case-sensitive and whole-string. Disabled by default. This option is ignored if `text` is a regular expression. Note that exact match still trims whitespace. 332 332 333 - #### See also 333 + **See also** 334 334 335 335 - [testing-library's `ByText`](https://testing-library.com/docs/queries/bytext/) 336 336 ··· 352 352 page.getByTitle('Create') // ❌ 353 353 ``` 354 354 355 - #### Options 355 + **Options** 356 356 357 357 - `exact: boolean` 358 358 359 359 Whether the `text` is matched exactly: case-sensitive and whole-string. Disabled by default. This option is ignored if `text` is a regular expression. Note that exact match still trims whitespace. 360 360 361 - #### See also 361 + **See also** 362 362 363 363 - [testing-library's `ByTitle`](https://testing-library.com/docs/queries/bytitle/) 364 364 ··· 381 381 It is recommended to use this only after the other locators don't work for your use case. Using `data-testid` attributes does not resemble how your software is used and should be avoided if possible. 382 382 ::: 383 383 384 - #### Options 384 + **Options** 385 385 386 386 - `exact: boolean` 387 387 388 388 Whether the `text` is matched exactly: case-sensitive and whole-string. Disabled by default. This option is ignored if `text` is a regular expression. Note that exact match still trims whitespace. 389 389 390 - #### See also 390 + **See also** 391 391 392 392 - [testing-library's `ByTestId`](https://testing-library.com/docs/queries/bytestid/) 393 393
+1 -1
docs/config/browser/api.md
··· 9 9 - **Default:** `63315` 10 10 - **CLI:** `--browser.api=63315`, `--browser.api.port=1234, --browser.api.host=example.com` 11 11 12 - Configure options for Vite server that serves code in the browser. Does not affect [`test.api`](#api) option. By default, Vitest assigns port `63315` to avoid conflicts with the development server, allowing you to run both in parallel. 12 + Configure options for Vite server that serves code in the browser. Does not affect [`test.api`](/config/api) option. By default, Vitest assigns port `63315` to avoid conflicts with the development server, allowing you to run both in parallel. 13 13 14 14 ## api.allowWrite <Version>4.1.0</Version> {#api-allowwrite} 15 15
+1 -1
docs/config/browser/provider.md
··· 64 64 ## Custom Provider <Badge type="danger">advanced</Badge> 65 65 66 66 ::: danger ADVANCED API 67 - The custom provider API is highly experimental and can change between patches. If you just need to run tests in a browser, use the [`browser.instances`](#browser-instances) option instead. 67 + The custom provider API is highly experimental and can change between patches. If you just need to run tests in a browser, use the [`browser.instances`](/config/browser/instances) option instead. 68 68 ::: 69 69 70 70 ```ts
+10 -10
docs/guide/browser/visual-regression-testing.md
··· 389 389 The trick here is keeping visual tests separate from your regular tests, 390 390 otherwise, you'll waste hours checking failing logs of screenshot mismatches. 391 391 392 - #### Organizing Your Tests 392 + ### Organizing Your Tests 393 393 394 394 First, isolate your visual tests. Stick them in a `visual` folder (or whatever 395 395 makes sense for your project): ··· 414 414 - `vitest --project visual` 415 415 ::: 416 416 417 - #### CI Setup 417 + ### CI Setup 418 418 419 419 Your CI needs browsers installed. How you do this depends on your provider: 420 420 ··· 454 454 run: npm run test:visual 455 455 ``` 456 456 457 - #### The Update Workflow 457 + ### The Update Workflow 458 458 459 459 Here's where it gets interesting. You don't want to update screenshots on every 460 460 PR automatically <small>*(chaos!)*</small>. Instead, create a ··· 599 599 Your tests stay local, only the browsers run in the cloud. It's Playwright's 600 600 remote browser feature, but Microsoft handles all the infrastructure. 601 601 602 - #### Organizing Your Tests 602 + ### Organizing Your Tests 603 603 604 604 Keep visual tests separate to control costs. Only tests that actually take 605 605 screenshots should use the service. 606 606 607 607 The cleanest approach is using [Test Projects](/guide/projects): 608 608 609 - <!-- eslint-disable style/quote-props --> 609 + 610 610 ```ts [vitest.config.ts] 611 611 import { env } from 'node:process' 612 612 import { defineConfig } from 'vitest/config' ··· 637 637 connectOptions: { 638 638 wsEndpoint: `${env.PLAYWRIGHT_SERVICE_URL}?${new URLSearchParams({ 639 639 'api-version': '2025-09-01', 640 - os: 'linux', // always use Linux for consistency 640 + 'os': 'linux', // always use Linux for consistency 641 641 // helps identifying runs in the service's dashboard 642 - runName: `Vitest ${env.CI ? 'CI' : 'local'} run @${new Date().toISOString()}`, 642 + 'runName': `Vitest ${env.CI ? 'CI' : 'local'} run @${new Date().toISOString()}`, 643 643 })}`, 644 644 exposeNetwork: '<loopback>', 645 645 headers: { ··· 662 662 }, 663 663 }) 664 664 ``` 665 - <!-- eslint-enable style/quote-props --> 665 + 666 666 667 667 Follow the [official guide to create a Playwright Workspace](https://learn.microsoft.com/en-us/azure/app-testing/playwright-workspaces/quickstart-run-end-to-end-tests?tabs=playwrightcli&pivots=playwright-test-runner#create-a-workspace). 668 668 ··· 688 688 } 689 689 ``` 690 690 691 - #### Running Tests 691 + ### Running Tests 692 692 693 693 ```bash 694 694 # Local development ··· 706 706 - **Pay for what you use**, only visual tests consume service minutes 707 707 - **No Docker or workflow setups needed**, nothing to manage or maintain 708 708 709 - #### CI Setup 709 + ### CI Setup 710 710 711 711 In your CI, add the secrets: 712 712
+6 -3
packages/coverage-v8/src/provider.ts
··· 297 297 && node.expression.left.object.meta.name === 'import' 298 298 && node.expression.left.object.property.name === 'meta' 299 299 && node.expression.left.property.type === 'Identifier' 300 - && node.expression.left.property.name === 'env') { 300 + && node.expression.left.property.name === 'env' 301 + ) { 301 302 return true 302 303 } 303 304 ··· 308 309 && node.expression.type === 'AssignmentExpression' 309 310 && node.expression.left.type === 'MemberExpression' 310 311 && node.expression.left.object.type === 'Identifier' 311 - && node.expression.left.object.name === '__vite_ssr_import_meta__') { 312 + && node.expression.left.object.name === '__vite_ssr_import_meta__' 313 + ) { 312 314 return true 313 315 } 314 316 ··· 318 320 && node.type === 'ExpressionStatement' 319 321 && node.expression.type === 'CallExpression' 320 322 && node.expression.callee.type === 'Identifier' 321 - && node.expression.callee.name === '_ts_decorate') { 323 + && node.expression.callee.name === '_ts_decorate' 324 + ) { 322 325 return 'ignore-this-and-nested-nodes' 323 326 } 324 327 },
+1 -2
packages/expect/src/jest-asymmetric-matchers.ts
··· 173 173 value, 174 174 otherValue, 175 175 customTesters, 176 - ) 177 - ) { 176 + )) { 178 177 result = false 179 178 break 180 179 }
-2
packages/expect/src/types.ts
··· 188 188 /** 189 189 * Matches if the received number is within a certain precision of the expected number. 190 190 * 191 - * @param precision - Optional decimal precision for comparison. Default is 2. 192 - * 193 191 * @example 194 192 * expect(10.45).toEqual(expect.closeTo(10.5, 1)); 195 193 * expect(5.11).toEqual(expect.closeTo(5.12)); // with default precision