From 8725a188e6d4fd406f1f2e7379994dc0a75efd02 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Tue, 4 Feb 2025 02:16:45 -0600 Subject: [PATCH 01/45] Install `vitest` --- package.json | 2 + packages/integration-tests/package.json | 7 +- yarn.lock | 823 +++++++++++++++++++++--- 3 files changed, 755 insertions(+), 77 deletions(-) diff --git a/package.json b/package.json index 1715d87e3568..bd088478034d 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "@typescript-eslint/types": "workspace:^", "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", + "@vitest/coverage-v8": "^3.0.7", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", "cspell": "^8.15.2", @@ -123,6 +124,7 @@ "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", + "vitest": "^3.0.7", "yargs": "17.7.2" }, "resolutions": { diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 6788989e816c..f390c0b1d60e 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -18,10 +18,7 @@ "check-types": "npx nx typecheck" }, "devDependencies": { - "@jest/types": "29.6.3", - "jest": "29.7.0", - "ncp": "*", - "tmp": "*", - "tsx": "*" + "@vitest/coverage-v8": "^3.0.7", + "vitest": "^3.0.7" } } diff --git a/yarn.lock b/yarn.lock index f6420965e5e9..5feb23e0a006 100644 --- a/yarn.lock +++ b/yarn.lock @@ -252,6 +252,16 @@ __metadata: languageName: node linkType: hard +"@ampproject/remapping@npm:^2.3.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: d3ad7b89d973df059c4e8e6d7c972cbeb1bb2f18f002a3bd04ae0707da214cb06cc06929b65aa2313b9347463df2914772298bae8b1d7973f246bb3f2ab3e8f0 + languageName: node + linkType: hard + "@apideck/better-ajv-errors@npm:^0.3.1": version: 0.3.6 resolution: "@apideck/better-ajv-errors@npm:0.3.6" @@ -558,6 +568,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.4": + version: 7.26.9 + resolution: "@babel/parser@npm:7.26.9" + dependencies: + "@babel/types": ^7.26.9 + bin: + parser: ./bin/babel-parser.js + checksum: 2df965dbf3c67d19dc437412ceef23033b4d39b0dbd7cb498d8ab9ad9e1738338656ee72676199773b37d658edf9f4161cf255515234fed30695d74e73be5514 + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" @@ -1707,6 +1728,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.4, @babel/types@npm:^7.26.9": + version: 7.26.9 + resolution: "@babel/types@npm:7.26.9" + dependencies: + "@babel/helper-string-parser": ^7.25.9 + "@babel/helper-validator-identifier": ^7.25.9 + checksum: cc124c149615deb30343a4c81ac5b0e3a68bdb4b1bd61a91a2859ee8e5e5f400f6ff65be4740f407c17bfc09baa9c777e7f8f765dccf3284963956b67ac95a38 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1714,6 +1745,13 @@ __metadata: languageName: node linkType: hard +"@bcoe/v8-coverage@npm:^1.0.2": + version: 1.0.2 + resolution: "@bcoe/v8-coverage@npm:1.0.2" + checksum: f4e6f55817645fc1b543aa0bbd6ffceb7b9ff3052e8c92c493a0a71831e6b8ae97d73e123b048cb98ef9d9e31afae018a60795f2e27a6f3e94a1ec7abedac85d + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -3822,6 +3860,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -3832,7 +3877,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -4458,6 +4503,139 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.34.9" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-android-arm64@npm:4.34.9" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-darwin-arm64@npm:4.34.9" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-darwin-x64@npm:4.34.9" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.34.9" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-freebsd-x64@npm:4.34.9" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.9" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.34.9" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.34.9" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.34.9" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loongarch64-gnu@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.9" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.9" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.34.9" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.34.9" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.34.9" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.34.9" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.34.9" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.34.9" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.34.9": + version: 4.34.9 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.34.9" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -5724,11 +5902,8 @@ __metadata: version: 0.0.0-use.local resolution: "@typescript-eslint/integration-tests@workspace:packages/integration-tests" dependencies: - "@jest/types": 29.6.3 - jest: 29.7.0 - ncp: "*" - tmp: "*" - tsx: "*" + "@vitest/coverage-v8": ^3.0.7 + vitest: ^3.0.7 languageName: unknown linkType: soft @@ -5886,6 +6061,7 @@ __metadata: "@typescript-eslint/types": "workspace:^" "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" + "@vitest/coverage-v8": ^3.0.7 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 cspell: ^8.15.2 @@ -5921,6 +6097,7 @@ __metadata: tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" + vitest: ^3.0.7 yargs: 17.7.2 languageName: unknown linkType: soft @@ -6021,6 +6198,113 @@ __metadata: languageName: node linkType: hard +"@vitest/coverage-v8@npm:^3.0.7": + version: 3.0.7 + resolution: "@vitest/coverage-v8@npm:3.0.7" + dependencies: + "@ampproject/remapping": ^2.3.0 + "@bcoe/v8-coverage": ^1.0.2 + debug: ^4.4.0 + istanbul-lib-coverage: ^3.2.2 + istanbul-lib-report: ^3.0.1 + istanbul-lib-source-maps: ^5.0.6 + istanbul-reports: ^3.1.7 + magic-string: ^0.30.17 + magicast: ^0.3.5 + std-env: ^3.8.0 + test-exclude: ^7.0.1 + tinyrainbow: ^2.0.0 + peerDependencies: + "@vitest/browser": 3.0.7 + vitest: 3.0.7 + peerDependenciesMeta: + "@vitest/browser": + optional: true + checksum: 46c5eb628bb1b77a3b6dc6cbf0c3968721fa5cbf9b01919f8e01252d239560a54c94797337e859a63cdf0f6606a8ad26f96c832f6b2c667890e0e026d44a4780 + languageName: node + linkType: hard + +"@vitest/expect@npm:3.0.7": + version: 3.0.7 + resolution: "@vitest/expect@npm:3.0.7" + dependencies: + "@vitest/spy": 3.0.7 + "@vitest/utils": 3.0.7 + chai: ^5.2.0 + tinyrainbow: ^2.0.0 + checksum: 788ead8ec0876a15bcd51eba8b5e0bc4c95e07205192096c0e33328992c351a7569b32ea2f948dbfc7b5482f301e6d505cde639ead2e80ffc9f0d683714b1bfa + languageName: node + linkType: hard + +"@vitest/mocker@npm:3.0.7": + version: 3.0.7 + resolution: "@vitest/mocker@npm:3.0.7" + dependencies: + "@vitest/spy": 3.0.7 + estree-walker: ^3.0.3 + magic-string: ^0.30.17 + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 057fe03ab4f9ef40f5431a375dc812da8face4f6c6045c817402bcd0739992ff1d31de080d8ac8c4122f792b2d27c4c04a4e4e872a04c3ba2b1517bc78430130 + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:3.0.7, @vitest/pretty-format@npm:^3.0.7": + version: 3.0.7 + resolution: "@vitest/pretty-format@npm:3.0.7" + dependencies: + tinyrainbow: ^2.0.0 + checksum: 5209282b26f57fa4bd918cba2265c34e161120f2fabc2987b0b77fb9a402a12cc5591d4e42689fcbdde5e2e1804cafc96e4e338d5b9d8b35ccbabd4cee7c8e81 + languageName: node + linkType: hard + +"@vitest/runner@npm:3.0.7": + version: 3.0.7 + resolution: "@vitest/runner@npm:3.0.7" + dependencies: + "@vitest/utils": 3.0.7 + pathe: ^2.0.3 + checksum: 980dd31c54b5b83e8ddc27d416999f3a8170abf3d836b2fb34a6730f942c53ad819399904bd46ea4bb89b4b0f3d0a793c135b3b83d70852859cbcad10111ae22 + languageName: node + linkType: hard + +"@vitest/snapshot@npm:3.0.7": + version: 3.0.7 + resolution: "@vitest/snapshot@npm:3.0.7" + dependencies: + "@vitest/pretty-format": 3.0.7 + magic-string: ^0.30.17 + pathe: ^2.0.3 + checksum: d516bd7b04ba34726c57f1da7779165dbd376260f856a43254a4220ea6d040606440433583234de7282e0ec24fb7f6025d2a4f7688e2daebe75ed0afcd77d44c + languageName: node + linkType: hard + +"@vitest/spy@npm:3.0.7": + version: 3.0.7 + resolution: "@vitest/spy@npm:3.0.7" + dependencies: + tinyspy: ^3.0.2 + checksum: f62537dc2632ed20464c017ca2feeb18bf2edd653bb1f6cd69ec5e6b52bb3803b1a601ca56777b0c463ce8d960294a0db9198c106dd6048d48ee5e7d09eaba59 + languageName: node + linkType: hard + +"@vitest/utils@npm:3.0.7": + version: 3.0.7 + resolution: "@vitest/utils@npm:3.0.7" + dependencies: + "@vitest/pretty-format": 3.0.7 + loupe: ^3.1.3 + tinyrainbow: ^2.0.0 + checksum: 1a90d3444f9990484e6196d7cc1ceb0fcd8ca587319c0307d2e838f038ec45b7a711f8a76cbfb512fe13c6c3691e1d39d1d69158e27432724ec62b308e17f6e9 + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": version: 1.14.1 resolution: "@webassemblyjs/ast@npm:1.14.1" @@ -6712,6 +6996,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66 + languageName: node + linkType: hard + "ast-types-flow@npm:^0.0.8": version: 0.0.8 resolution: "ast-types-flow@npm:0.0.8" @@ -7228,6 +7519,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a + languageName: node + linkType: hard + "cacache@npm:^17.0.0": version: 17.0.5 resolution: "cacache@npm:17.0.5" @@ -7392,6 +7690,19 @@ __metadata: languageName: node linkType: hard +"chai@npm:^5.2.0": + version: 5.2.0 + resolution: "chai@npm:5.2.0" + dependencies: + assertion-error: ^2.0.1 + check-error: ^2.1.1 + deep-eql: ^5.0.1 + loupe: ^3.1.0 + pathval: ^2.0.0 + checksum: 15e4ba12d02df3620fd59b4a6e8efe43b47872ce61f1c0ca77ac1205a2a5898f3b6f1f52408fd1a708b8d07fdfb5e65b97af40bad9fd94a69ed8d4264c7a69f1 + languageName: node + linkType: hard + "chalk-template@npm:^1.1.0": version: 1.1.0 resolution: "chalk-template@npm:1.1.0" @@ -7462,6 +7773,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a + languageName: node + linkType: hard + "cheerio-select@npm:^2.1.0": version: 2.1.0 resolution: "cheerio-select@npm:2.1.0" @@ -8712,6 +9030,13 @@ __metadata: languageName: node linkType: hard +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 6aaaadb4c19cbce42e26b2bbe5bd92875f599d2602635dc97f0294bae48da79e89470aedee05f449e0ca8c65e9fd7e7872624d1933a1db02713d99c2ca8d1f24 + languageName: node + linkType: hard + "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -9407,6 +9732,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^1.6.0": + version: 1.6.0 + resolution: "es-module-lexer@npm:1.6.0" + checksum: 4413a9aed9bf581de62b98174f3eea3f23ce2994fb6832df64bdd6504f6977da1a3b5ebd3c10f75e3c2f214dcf1a1d8b54be5e62c71b7110e6ccedbf975d2b7d + languageName: node + linkType: hard + "es-object-atoms@npm:^1.0.0": version: 1.0.0 resolution: "es-object-atoms@npm:1.0.0" @@ -9447,33 +9779,35 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:~0.20.2": - version: 0.20.2 - resolution: "esbuild@npm:0.20.2" +"esbuild@npm:^0.25.0, esbuild@npm:~0.25.0": + version: 0.25.0 + resolution: "esbuild@npm:0.25.0" dependencies: - "@esbuild/aix-ppc64": 0.20.2 - "@esbuild/android-arm": 0.20.2 - "@esbuild/android-arm64": 0.20.2 - "@esbuild/android-x64": 0.20.2 - "@esbuild/darwin-arm64": 0.20.2 - "@esbuild/darwin-x64": 0.20.2 - "@esbuild/freebsd-arm64": 0.20.2 - "@esbuild/freebsd-x64": 0.20.2 - "@esbuild/linux-arm": 0.20.2 - "@esbuild/linux-arm64": 0.20.2 - "@esbuild/linux-ia32": 0.20.2 - "@esbuild/linux-loong64": 0.20.2 - "@esbuild/linux-mips64el": 0.20.2 - "@esbuild/linux-ppc64": 0.20.2 - "@esbuild/linux-riscv64": 0.20.2 - "@esbuild/linux-s390x": 0.20.2 - "@esbuild/linux-x64": 0.20.2 - "@esbuild/netbsd-x64": 0.20.2 - "@esbuild/openbsd-x64": 0.20.2 - "@esbuild/sunos-x64": 0.20.2 - "@esbuild/win32-arm64": 0.20.2 - "@esbuild/win32-ia32": 0.20.2 - "@esbuild/win32-x64": 0.20.2 + "@esbuild/aix-ppc64": 0.25.0 + "@esbuild/android-arm": 0.25.0 + "@esbuild/android-arm64": 0.25.0 + "@esbuild/android-x64": 0.25.0 + "@esbuild/darwin-arm64": 0.25.0 + "@esbuild/darwin-x64": 0.25.0 + "@esbuild/freebsd-arm64": 0.25.0 + "@esbuild/freebsd-x64": 0.25.0 + "@esbuild/linux-arm": 0.25.0 + "@esbuild/linux-arm64": 0.25.0 + "@esbuild/linux-ia32": 0.25.0 + "@esbuild/linux-loong64": 0.25.0 + "@esbuild/linux-mips64el": 0.25.0 + "@esbuild/linux-ppc64": 0.25.0 + "@esbuild/linux-riscv64": 0.25.0 + "@esbuild/linux-s390x": 0.25.0 + "@esbuild/linux-x64": 0.25.0 + "@esbuild/netbsd-arm64": 0.25.0 + "@esbuild/netbsd-x64": 0.25.0 + "@esbuild/openbsd-arm64": 0.25.0 + "@esbuild/openbsd-x64": 0.25.0 + "@esbuild/sunos-x64": 0.25.0 + "@esbuild/win32-arm64": 0.25.0 + "@esbuild/win32-ia32": 0.25.0 + "@esbuild/win32-x64": 0.25.0 dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -9509,8 +9843,12 @@ __metadata: optional: true "@esbuild/linux-x64": optional: true + "@esbuild/netbsd-arm64": + optional: true "@esbuild/netbsd-x64": optional: true + "@esbuild/openbsd-arm64": + optional: true "@esbuild/openbsd-x64": optional: true "@esbuild/sunos-x64": @@ -9523,39 +9861,37 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: bc88050fc1ca5c1bd03648f9979e514bdefb956a63aa3974373bb7b9cbac0b3aac9b9da1b5bdca0b3490e39d6b451c72815dbd6b7d7f978c91fbe9c9e9aa4e4c + checksum: 4d1e0cb7c059a373ea3edb20ca5efcea29efada03e4ea82b2b8ab1f2f062e4791e9744213308775d26e07a0225a7d8250da93da5c8e07ef61bb93d58caab8cf9 languageName: node linkType: hard -"esbuild@npm:~0.25.0": - version: 0.25.0 - resolution: "esbuild@npm:0.25.0" +"esbuild@npm:~0.20.2": + version: 0.20.2 + resolution: "esbuild@npm:0.20.2" dependencies: - "@esbuild/aix-ppc64": 0.25.0 - "@esbuild/android-arm": 0.25.0 - "@esbuild/android-arm64": 0.25.0 - "@esbuild/android-x64": 0.25.0 - "@esbuild/darwin-arm64": 0.25.0 - "@esbuild/darwin-x64": 0.25.0 - "@esbuild/freebsd-arm64": 0.25.0 - "@esbuild/freebsd-x64": 0.25.0 - "@esbuild/linux-arm": 0.25.0 - "@esbuild/linux-arm64": 0.25.0 - "@esbuild/linux-ia32": 0.25.0 - "@esbuild/linux-loong64": 0.25.0 - "@esbuild/linux-mips64el": 0.25.0 - "@esbuild/linux-ppc64": 0.25.0 - "@esbuild/linux-riscv64": 0.25.0 - "@esbuild/linux-s390x": 0.25.0 - "@esbuild/linux-x64": 0.25.0 - "@esbuild/netbsd-arm64": 0.25.0 - "@esbuild/netbsd-x64": 0.25.0 - "@esbuild/openbsd-arm64": 0.25.0 - "@esbuild/openbsd-x64": 0.25.0 - "@esbuild/sunos-x64": 0.25.0 - "@esbuild/win32-arm64": 0.25.0 - "@esbuild/win32-ia32": 0.25.0 - "@esbuild/win32-x64": 0.25.0 + "@esbuild/aix-ppc64": 0.20.2 + "@esbuild/android-arm": 0.20.2 + "@esbuild/android-arm64": 0.20.2 + "@esbuild/android-x64": 0.20.2 + "@esbuild/darwin-arm64": 0.20.2 + "@esbuild/darwin-x64": 0.20.2 + "@esbuild/freebsd-arm64": 0.20.2 + "@esbuild/freebsd-x64": 0.20.2 + "@esbuild/linux-arm": 0.20.2 + "@esbuild/linux-arm64": 0.20.2 + "@esbuild/linux-ia32": 0.20.2 + "@esbuild/linux-loong64": 0.20.2 + "@esbuild/linux-mips64el": 0.20.2 + "@esbuild/linux-ppc64": 0.20.2 + "@esbuild/linux-riscv64": 0.20.2 + "@esbuild/linux-s390x": 0.20.2 + "@esbuild/linux-x64": 0.20.2 + "@esbuild/netbsd-x64": 0.20.2 + "@esbuild/openbsd-x64": 0.20.2 + "@esbuild/sunos-x64": 0.20.2 + "@esbuild/win32-arm64": 0.20.2 + "@esbuild/win32-ia32": 0.20.2 + "@esbuild/win32-x64": 0.20.2 dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -9591,12 +9927,8 @@ __metadata: optional: true "@esbuild/linux-x64": optional: true - "@esbuild/netbsd-arm64": - optional: true "@esbuild/netbsd-x64": optional: true - "@esbuild/openbsd-arm64": - optional: true "@esbuild/openbsd-x64": optional: true "@esbuild/sunos-x64": @@ -9609,7 +9941,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 4d1e0cb7c059a373ea3edb20ca5efcea29efada03e4ea82b2b8ab1f2f062e4791e9744213308775d26e07a0225a7d8250da93da5c8e07ef61bb93d58caab8cf9 + checksum: bc88050fc1ca5c1bd03648f9979e514bdefb956a63aa3974373bb7b9cbac0b3aac9b9da1b5bdca0b3490e39d6b451c72815dbd6b7d7f978c91fbe9c9e9aa4e4c languageName: node linkType: hard @@ -10106,7 +10438,7 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:^3.0.0": +"estree-walker@npm:^3.0.0, estree-walker@npm:^3.0.3": version: 3.0.3 resolution: "estree-walker@npm:3.0.3" dependencies: @@ -10225,6 +10557,13 @@ __metadata: languageName: node linkType: hard +"expect-type@npm:^1.1.0": + version: 1.2.0 + resolution: "expect-type@npm:1.2.0" + checksum: fb6cce8e0d8cd2d2b329afeacad08dbf01297b0363494a826cb3dad7d22d45e5283a1c2c3f8cdef5765afefab4676a7cb9a46c9c5a506fdd1ee255e429debe96 + languageName: node + linkType: hard + "expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" @@ -10992,7 +11331,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.12, glob@npm:^10.3.7, glob@npm:~10.4.5": +"glob@npm:^10.3.12, glob@npm:^10.3.7, glob@npm:^10.4.1, glob@npm:~10.4.5": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -12569,6 +12908,13 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-coverage@npm:^3.2.2": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 + languageName: node + linkType: hard + "istanbul-lib-instrument@npm:^5.0.4": version: 5.2.1 resolution: "istanbul-lib-instrument@npm:5.2.1" @@ -12595,7 +12941,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-report@npm:^3.0.0": +"istanbul-lib-report@npm:^3.0.0, istanbul-lib-report@npm:^3.0.1": version: 3.0.1 resolution: "istanbul-lib-report@npm:3.0.1" dependencies: @@ -12617,6 +12963,17 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-source-maps@npm:^5.0.6": + version: 5.0.6 + resolution: "istanbul-lib-source-maps@npm:5.0.6" + dependencies: + "@jridgewell/trace-mapping": ^0.3.23 + debug: ^4.1.1 + istanbul-lib-coverage: ^3.0.0 + checksum: 8dd6f2c1e2ecaacabeef8dc9ab52c4ed0a6036310002cf7f46ea6f3a5fb041da8076f5350e6a6be4c60cd4f231c51c73e042044afaf44820d857d92ecfb8ab6c + languageName: node + linkType: hard + "istanbul-reports@npm:^3.1.3": version: 3.1.6 resolution: "istanbul-reports@npm:3.1.6" @@ -12627,6 +12984,16 @@ __metadata: languageName: node linkType: hard +"istanbul-reports@npm:^3.1.7": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: ^2.0.0 + istanbul-lib-report: ^3.0.0 + checksum: 2072db6e07bfbb4d0eb30e2700250636182398c1af811aea5032acb219d2080f7586923c09fa194029efd6b92361afb3dcbe1ebcc3ee6651d13340f7c6c4ed95 + languageName: node + linkType: hard + "iterator.prototype@npm:^1.1.4": version: 1.1.4 resolution: "iterator.prototype@npm:1.1.4" @@ -13738,6 +14105,13 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.3": + version: 3.1.3 + resolution: "loupe@npm:3.1.3" + checksum: 9b2530b1d5a44d2c9fc5241f97ea00296dca257173c535b4832bc31f9516e10387991feb5b3fff23df116c8fcf907ce3980f82b215dcc5d19cde17ce9b9ec3e1 + languageName: node + linkType: hard + "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -13818,6 +14192,26 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.17": + version: 0.30.17 + resolution: "magic-string@npm:0.30.17" + dependencies: + "@jridgewell/sourcemap-codec": ^1.5.0 + checksum: f4b4ed17c5ada64f77fc98491847302ebad64894a905c417c943840c0384662118c9b37f9f68bb86add159fa4749ff6f118c4627d69a470121b46731f8debc6d + languageName: node + linkType: hard + +"magicast@npm:^0.3.5": + version: 0.3.5 + resolution: "magicast@npm:0.3.5" + dependencies: + "@babel/parser": ^7.25.4 + "@babel/types": ^7.25.4 + source-map-js: ^1.2.0 + checksum: 668f07ade907a44bccfc9a9321588473f6d5fa25329aa26b9ad9a3bf87cc2e6f9c482cbdd3e33c0b9ab9b79c065630c599cc055a12f881c8c924ee0d7282cdce + languageName: node + linkType: hard + "make-dir@npm:*, make-dir@npm:^4.0.0": version: 4.0.0 resolution: "make-dir@npm:4.0.0" @@ -15202,7 +15596,7 @@ __metadata: languageName: node linkType: hard -"ncp@npm:*, ncp@npm:^2.0.0": +"ncp@npm:^2.0.0": version: 2.0.0 resolution: "ncp@npm:2.0.0" bin: @@ -16073,6 +16467,13 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^2.0.3": + version: 2.0.3 + resolution: "pathe@npm:2.0.3" + checksum: 0602bdd4acb54d91044e0c56f1fb63467ae7d44ab3afea1f797947b0eb2b4d1d91cf0d58d065fdb0a8ab0c4acbbd8d3a5b424983eaf10dd5285d37a16f6e3ee9 + languageName: node + linkType: hard + "pathval@npm:^1.1.1": version: 1.1.1 resolution: "pathval@npm:1.1.1" @@ -16080,6 +16481,13 @@ __metadata: languageName: node linkType: hard +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 682b6a6289de7990909effef7dae9aa7bb6218c0426727bccf66a35b34e7bfbc65615270c5e44e3c9557a5cb44b1b9ef47fc3cb18bce6ad3ba92bcd28467ed7d + languageName: node + linkType: hard + "periscopic@npm:^3.0.0": version: 3.1.0 resolution: "periscopic@npm:3.1.0" @@ -16637,7 +17045,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.26, postcss@npm:^8.4.32, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.5.1": +"postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.26, postcss@npm:^8.4.32, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.5.1, postcss@npm:^8.5.3": version: 8.5.3 resolution: "postcss@npm:8.5.3" dependencies: @@ -17747,6 +18155,78 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.30.1": + version: 4.34.9 + resolution: "rollup@npm:4.34.9" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.34.9 + "@rollup/rollup-android-arm64": 4.34.9 + "@rollup/rollup-darwin-arm64": 4.34.9 + "@rollup/rollup-darwin-x64": 4.34.9 + "@rollup/rollup-freebsd-arm64": 4.34.9 + "@rollup/rollup-freebsd-x64": 4.34.9 + "@rollup/rollup-linux-arm-gnueabihf": 4.34.9 + "@rollup/rollup-linux-arm-musleabihf": 4.34.9 + "@rollup/rollup-linux-arm64-gnu": 4.34.9 + "@rollup/rollup-linux-arm64-musl": 4.34.9 + "@rollup/rollup-linux-loongarch64-gnu": 4.34.9 + "@rollup/rollup-linux-powerpc64le-gnu": 4.34.9 + "@rollup/rollup-linux-riscv64-gnu": 4.34.9 + "@rollup/rollup-linux-s390x-gnu": 4.34.9 + "@rollup/rollup-linux-x64-gnu": 4.34.9 + "@rollup/rollup-linux-x64-musl": 4.34.9 + "@rollup/rollup-win32-arm64-msvc": 4.34.9 + "@rollup/rollup-win32-ia32-msvc": 4.34.9 + "@rollup/rollup-win32-x64-msvc": 4.34.9 + "@types/estree": 1.0.6 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: ed7a5e382de5fe872abffdab614b7f745cbed7328cf4ced560c4d09214b3d30e167f8c7df9e8b63489497bdf3a6be07a2474f9ff3195026bdf2d49cdbeac38ae + languageName: node + linkType: hard + "rtl-detect@npm:^1.0.4": version: 1.0.4 resolution: "rtl-detect@npm:1.0.4" @@ -18218,6 +18698,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 8aa5a98640ca09fe00d74416eca97551b3e42991614a3d1b824b115fc1401543650914f651ab1311518177e4d297e80b953f4cd4cd7ea1eabe824e8f2091de01 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -18409,7 +18896,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.1": +"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.0, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b @@ -18586,6 +19073,13 @@ __metadata: languageName: node linkType: hard +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 + languageName: node + linkType: hard + "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -18607,6 +19101,13 @@ __metadata: languageName: node linkType: hard +"std-env@npm:^3.8.0": + version: 3.8.1 + resolution: "std-env@npm:3.8.1" + checksum: 20114a5270aa2a3fc50d897461c6ab73329cf2d3c6bff1c124bb969577493aeebda8ee1916588b2657afcee9881bc652437cfdec6360e3f30be36c8675ea0cbb + languageName: node + linkType: hard + "string-argv@npm:^0.3.2, string-argv@npm:~0.3.1": version: 0.3.2 resolution: "string-argv@npm:0.3.2" @@ -19179,6 +19680,17 @@ __metadata: languageName: node linkType: hard +"test-exclude@npm:^7.0.1": + version: 7.0.1 + resolution: "test-exclude@npm:7.0.1" + dependencies: + "@istanbuljs/schema": ^0.1.2 + glob: ^10.4.1 + minimatch: ^9.0.4 + checksum: e5a49a054bf2da74467dd8149b202166e36275c0dc2c9585f7d34de99c6d055d2287ac8d2a8e4c27c59b893acbc671af3fa869e8069a58ad117250e9c01c726b + languageName: node + linkType: hard + "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -19207,6 +19719,20 @@ __metadata: languageName: node linkType: hard +"tinybench@npm:^2.9.0": + version: 2.9.0 + resolution: "tinybench@npm:2.9.0" + checksum: 1ab00d7dfe0d1f127cbf00822bacd9024f7a50a3ecd1f354a8168e0b7d2b53a639a24414e707c27879d1adc0f5153141d51d76ebd7b4d37fe245e742e5d91fe8 + languageName: node + linkType: hard + +"tinyexec@npm:^0.3.2": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: bd491923020610bdeadb0d8cf5d70e7cbad5a3201620fd01048c9bf3b31ffaa75c33254e1540e13b993ce4e8187852b0b5a93057bb598e7a57afa2ca2048a35c + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.10": version: 0.2.10 resolution: "tinyglobby@npm:0.2.10" @@ -19217,6 +19743,27 @@ __metadata: languageName: node linkType: hard +"tinypool@npm:^1.0.2": + version: 1.0.2 + resolution: "tinypool@npm:1.0.2" + checksum: 752f23114d8fc95a9497fc812231d6d0a63728376aa11e6e8499c10423a91112e760e388887ea7854f1b16977c321f07c0eab061ec2f60f6761e58b184aac880 + languageName: node + linkType: hard + +"tinyrainbow@npm:^2.0.0": + version: 2.0.0 + resolution: "tinyrainbow@npm:2.0.0" + checksum: 26360631d97e43955a07cfb70fe40a154ce4e2bcd14fa3d37ce8e2ed8f4fa9e5ba00783e4906bbfefe6dcabef5d3510f5bee207cb693bee4e4e7553f5454bef1 + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.2": + version: 3.0.2 + resolution: "tinyspy@npm:3.0.2" + checksum: 5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337 + languageName: node + linkType: hard + "title-case@npm:^3.0.3": version: 3.0.3 resolution: "title-case@npm:3.0.3" @@ -20004,6 +20551,126 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:3.0.7": + version: 3.0.7 + resolution: "vite-node@npm:3.0.7" + dependencies: + cac: ^6.7.14 + debug: ^4.4.0 + es-module-lexer: ^1.6.0 + pathe: ^2.0.3 + vite: ^5.0.0 || ^6.0.0 + bin: + vite-node: vite-node.mjs + checksum: 90a3dd0e1b620cdf0c20272739cd1035af20c9b7606c1a093b3368b2c7c59cfd2327c27faabfbc9b293ae5d9a3318aeb40a2a974fe42807167e4cec625d9759e + languageName: node + linkType: hard + +"vite@npm:^5.0.0 || ^6.0.0": + version: 6.2.0 + resolution: "vite@npm:6.2.0" + dependencies: + esbuild: ^0.25.0 + fsevents: ~2.3.3 + postcss: ^8.5.3 + rollup: ^4.30.1 + peerDependencies: + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + bin: + vite: bin/vite.js + checksum: 0f2b6232fe94184885dd025609995874ac75279a85596a4053a283bd8bd0391f8ed3e7efb3e8f94073811a2b237c626e850990b04d2c7a1dc33f05d150f36bcd + languageName: node + linkType: hard + +"vitest@npm:^3.0.7": + version: 3.0.7 + resolution: "vitest@npm:3.0.7" + dependencies: + "@vitest/expect": 3.0.7 + "@vitest/mocker": 3.0.7 + "@vitest/pretty-format": ^3.0.7 + "@vitest/runner": 3.0.7 + "@vitest/snapshot": 3.0.7 + "@vitest/spy": 3.0.7 + "@vitest/utils": 3.0.7 + chai: ^5.2.0 + debug: ^4.4.0 + expect-type: ^1.1.0 + magic-string: ^0.30.17 + pathe: ^2.0.3 + std-env: ^3.8.0 + tinybench: ^2.9.0 + tinyexec: ^0.3.2 + tinypool: ^1.0.2 + tinyrainbow: ^2.0.0 + vite: ^5.0.0 || ^6.0.0 + vite-node: 3.0.7 + why-is-node-running: ^2.3.0 + peerDependencies: + "@edge-runtime/vm": "*" + "@types/debug": ^4.1.12 + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + "@vitest/browser": 3.0.7 + "@vitest/ui": 3.0.7 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/debug": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: f384103ce5fdd5f0e4e3fbbb8e015ce887f1af6399a31a4fb8906407a6f4925b2e1708caba014c81f1c4a59627e944a65c7dc4de2819e7fe0b044796c57630ae + languageName: node + linkType: hard + "vscode-languageserver-textdocument@npm:^1.0.12": version: 1.0.12 resolution: "vscode-languageserver-textdocument@npm:1.0.12" @@ -20424,6 +21091,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" + dependencies: + siginfo: ^2.0.0 + stackback: 0.0.2 + bin: + why-is-node-running: cli.js + checksum: 58ebbf406e243ace97083027f0df7ff4c2108baf2595bb29317718ef207cc7a8104e41b711ff65d6fa354f25daa8756b67f2f04931a4fd6ba9d13ae8197496fb + languageName: node + linkType: hard + "wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" From 010f39ef4da24e6605b1a0bd59ffbf16d96c050b Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Tue, 4 Feb 2025 02:17:44 -0600 Subject: [PATCH 02/45] Rename `jest.config.js` to `vitest.config.mts` --- packages/integration-tests/{jest.config.js => vitest.config.mts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/integration-tests/{jest.config.js => vitest.config.mts} (100%) diff --git a/packages/integration-tests/jest.config.js b/packages/integration-tests/vitest.config.mts similarity index 100% rename from packages/integration-tests/jest.config.js rename to packages/integration-tests/vitest.config.mts From 7386ded631fb83a47b0e1694165d1f9b29b4f6f1 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Tue, 4 Feb 2025 03:15:59 -0600 Subject: [PATCH 03/45] chore(integration-tests): migrate to `vitest` --- eslint.config.mjs | 47 ++++++++ knip.ts | 10 ++ nx.json | 53 +++++++- package.json | 4 +- .../eslint.config.js | 13 +- .../package.json | 2 +- .../eslint.config.js | 13 +- .../package.json | 2 +- packages/integration-tests/package.json | 2 +- packages/integration-tests/project.json | 4 +- .../__snapshots__/eslint-v8.test.ts.snap | 4 +- ...onfig-types-@types__eslint-v8.test.ts.snap | 17 ++- ...onfig-types-@types__eslint-v9.test.ts.snap | 17 ++- .../tests/__snapshots__/markdown.test.ts.snap | 4 +- ...nded-does-not-require-program.test.ts.snap | 4 +- .../tests/__snapshots__/vue-jsx.test.ts.snap | 4 +- .../tests/__snapshots__/vue-sfc.test.ts.snap | 4 +- .../tools/integration-test-base.ts | 111 ++++++++++------- .../integration-tests/tools/pack-packages.ts | 113 +++++++++++++----- packages/integration-tests/tsconfig.spec.json | 4 +- packages/integration-tests/vitest.config.mts | 46 +++---- tsconfig.repo-config-files.json | 2 + vitest.config.base.mts | 20 ++++ vitest.config.mts | 21 ++++ yarn.lock | 61 ++++++++-- 25 files changed, 416 insertions(+), 166 deletions(-) create mode 100644 vitest.config.base.mts create mode 100644 vitest.config.mts diff --git a/eslint.config.mjs b/eslint.config.mjs index 4ea22b6c99c2..83e76c0264e5 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -5,6 +5,7 @@ import { FlatCompat } from '@eslint/eslintrc'; import eslint from '@eslint/js'; import eslintCommentsPlugin from '@eslint-community/eslint-plugin-eslint-comments/configs'; import tseslintInternalPlugin from '@typescript-eslint/eslint-plugin-internal'; +import vitestPlugin from '@vitest/eslint-plugin'; import eslintPluginPlugin from 'eslint-plugin-eslint-plugin'; import importPlugin from 'eslint-plugin-import'; import jestPlugin from 'eslint-plugin-jest'; @@ -28,6 +29,10 @@ const restrictNamedDeclarations = { selector: 'ExportNamedDeclaration[declaration=null][source=null]', }; +const vitestFiles = [ + 'packages/integration-tests/tests/**/*.test.{ts,tsx,cts,mts}', +]; + export default tseslint.config( // register all of the plugins up-front { @@ -43,6 +48,7 @@ export default tseslint.config( // @ts-expect-error -- https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/pull/1038 ['jsx-a11y']: jsxA11yPlugin.flatConfigs.recommended.plugins['jsx-a11y'], ['perfectionist']: perfectionistPlugin, + ['vitest']: vitestPlugin, // https://github.com/facebook/react/issues/28313 ['react']: reactPlugin, // @ts-expect-error -- Temporary types incompatibility pending flat config support @@ -66,6 +72,7 @@ export default tseslint.config( '.nx/', '.yarn/', '**/jest.config.js', + '**/vitest.config.mts', '**/node_modules/**', '**/dist/**', '**/fixtures/**', @@ -361,12 +368,22 @@ export default tseslint.config( // define the jest globals for all test files { files: ['packages/*/tests/**/*.{ts,tsx,cts,mts}'], + ignores: vitestFiles, languageOptions: { globals: { ...jestPlugin.environments.globals.globals, }, }, }, + // define the vitest globals for all test files + { + files: vitestFiles, + languageOptions: { + globals: { + ...vitestPlugin.environments.env.globals, + }, + }, + }, // test file specific configuration { files: [ @@ -376,6 +393,7 @@ export default tseslint.config( 'packages/integration-tests/tools/integration-test-base.ts', 'packages/integration-tests/tools/pack-packages.ts', ], + ignores: vitestFiles, rules: { '@typescript-eslint/no-empty-function': [ 'error', @@ -402,6 +420,35 @@ export default tseslint.config( 'jest/valid-expect': 'error', }, }, + // test file specific configuration + { + files: vitestFiles, + rules: { + '@typescript-eslint/no-empty-function': [ + 'error', + { allow: ['arrowFunctions'] }, + ], + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-unsafe-assignment': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/no-unsafe-return': 'off', + 'vitest/no-alias-methods': 'error', + 'vitest/no-disabled-tests': 'error', + 'vitest/no-done-callback': 'error', + 'vitest/no-focused-tests': 'error', + 'vitest/no-identical-title': 'error', + 'vitest/no-test-prefixes': 'error', + 'vitest/no-test-return-statement': 'error', + 'vitest/prefer-each': 'error', + 'vitest/prefer-spy-on': 'error', + 'vitest/prefer-to-be': 'error', + 'vitest/prefer-to-contain': 'error', + 'vitest/prefer-to-have-length': 'error', + 'vitest/valid-expect': 'error', + }, + settings: { vitest: { typecheck: true } }, + }, // plugin rule tests { files: [ diff --git a/knip.ts b/knip.ts index 1970ad38462e..ccbaca317ef1 100644 --- a/knip.ts +++ b/knip.ts @@ -11,6 +11,9 @@ export default { types: 'off', unresolved: 'off', }, + vitest: { + config: ['vitest.config.mts', 'packages/*/vitest.config.mts'], + }, workspaces: { '.': { entry: ['tools/release/changelog-renderer.js', 'tools/scripts/**/*.mts'], @@ -54,6 +57,13 @@ export default { }, 'packages/integration-tests': { ignore: ['fixtures/**', 'typings/global.d.ts'], + vitest: { + config: ['vitest.config.mts'], + entry: [ + '**/*.{bench,test,test-d,spec}.?(c|m)[jt]s?(x)', + 'tools/pack-packages.ts', + ], + }, }, 'packages/parser': { ignore: ['tests/fixtures/**'], diff --git a/nx.json b/nx.json index adc90d3d0152..e94fa87429fa 100644 --- a/nx.json +++ b/nx.json @@ -14,6 +14,27 @@ "configName": "tsconfig.build.json" } } + }, + { + "plugin": "@nx/vite/plugin", + "options": { + "buildTargetName": "vite:build", + "testTargetName": "test", + "serveTargetName": "serve", + "devTargetName": "dev", + "previewTargetName": "preview", + "serveStaticTargetName": "serve-static", + "typecheckTargetName": "vite:typecheck", + "buildDepsTargetName": "vite:build-deps", + "watchDepsTargetName": "vite:watch-deps" + } + }, + { + "plugin": "@nx/jest/plugin", + "include": ["packages/*"], + "options": { + "targetName": "test" + } } ], "release": { @@ -40,19 +61,19 @@ "build": { "dependsOn": ["^build"], "inputs": ["production", "^production"], + "outputs": ["{projectRoot}/dist"], + "options": { + "cwd": "{projectRoot}" + }, "cache": true }, "test": { - "inputs": [ - "default", - "^production", - "{workspaceRoot}/jest.config.js", - "{workspaceRoot}/jest.config.base.js" - ], + "dependsOn": ["^build"], "outputs": ["{projectRoot}/coverage"], "cache": true }, "@nx/jest:jest": { + "dependsOn": ["^build"], "inputs": [ "default", "^production", @@ -72,7 +93,25 @@ } } }, + "@nx/vite:test": { + "dependsOn": ["^build"], + "inputs": [ + "default", + "^production", + "{workspaceRoot}/vitest.config.mts", + "{workspaceRoot}/vitest.config.base.mts", + "{projectRoot}/vitest.config.mts" + ], + "outputs": ["{options.reportsDirectory}"], + "cache": true, + "options": { + "config": "{projectRoot}/vitest.config.mts", + "watch": false, + "reportsDirectory": "{projectRoot}/coverage" + } + }, "lint": { + "executor": "@nx/eslint:lint", "dependsOn": [ "eslint-plugin:build", "eslint-plugin-internal:build", @@ -87,6 +126,7 @@ "transitive": false } ], + "outputs": ["{options.outputFile}"], "cache": true } }, @@ -110,6 +150,7 @@ "!{projectRoot}/**/?(*.)+(test).[jt]s?(x)?(.snap)", "!{projectRoot}/tsconfig.spec.json", "!{projectRoot}/jest.config.[jt]s", + "!{projectRoot}/vitest.config.m[jt]s", "!{projectRoot}/src/test-setup.[jt]s" ] } diff --git a/package.json b/package.json index bd088478034d..1df01108bafc 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "@nx/devkit": "20.4.5", "@nx/eslint": "20.4.5", "@nx/jest": "20.4.5", + "@nx/vite": "20.4.5", "@nx/workspace": "20.4.5", "@swc/core": "^1.4.12", "@swc/jest": "^0.2.36", @@ -77,7 +78,6 @@ "@types/jest": "29.5.13", "@types/jest-specific-snapshot": "^0.5.9", "@types/natural-compare": "^1.4.3", - "@types/ncp": "^2.0.8", "@types/node": "^20.12.5", "@types/semver": "^7.5.8", "@types/tmp": "^0.2.6", @@ -89,6 +89,7 @@ "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", "@vitest/coverage-v8": "^3.0.7", + "@vitest/eslint-plugin": "^1.1.36", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", "cspell": "^8.15.2", @@ -124,6 +125,7 @@ "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", + "vite": "^6.2.0", "vitest": "^3.0.7", "yargs": "17.7.2" }, diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/eslint.config.js b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/eslint.config.js index de1165286a7c..5514f5f451f9 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/eslint.config.js +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/eslint.config.js @@ -3,8 +3,8 @@ import { FlatCompat } from '@eslint/eslintrc'; import eslint from '@eslint/js'; import stylisticPlugin from '@stylistic/eslint-plugin'; +import vitestPlugin from '@vitest/eslint-plugin'; import deprecationPlugin from 'eslint-plugin-deprecation'; -import jestPlugin from 'eslint-plugin-jest'; import tseslint from 'typescript-eslint'; import __dirname from './dirname.cjs'; @@ -26,7 +26,7 @@ export default tseslint.config( plugins: { ['@typescript-eslint']: tseslint.plugin, ['deprecation']: deprecationPlugin, - ['jest']: jestPlugin, + ['vitest']: vitestPlugin, }, }, eslint.configs.recommended, @@ -42,23 +42,22 @@ function _otherCases() { ['@stylistic']: stylisticPlugin, ['@typescript-eslint']: tseslint.plugin, ['deprecation']: deprecationPlugin, - ['jest']: jestPlugin, + ['vitest']: vitestPlugin, }, }); tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommended, stylisticPlugin.configs['recommended-flat'], - jestPlugin.configs['flat/recommended'], + vitestPlugin.configs.recommended, ); tseslint.config( compat.config(deprecationPlugin.configs.recommended), - ...compat.config(jestPlugin.configs.recommended), + vitestPlugin.configs.recommended, ); tseslint.config( // @ts-expect-error deprecationPlugin.configs.recommended, - // this should error but doesn't because there are no types exported from the jest plugin - jestPlugin.configs.recommended, + vitestPlugin.configs.recommended, ); } diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json index 36b3ca74a7fd..4a4107573d35 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json @@ -7,6 +7,6 @@ "eslint": "9.9.1", "@stylistic/eslint-plugin": "2.3.0", "eslint-plugin-deprecation": "latest", - "eslint-plugin-jest": "latest" + "@vitest/eslint-plugin": "latest" } } diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/eslint.config.js b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/eslint.config.js index de1165286a7c..5514f5f451f9 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/eslint.config.js +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/eslint.config.js @@ -3,8 +3,8 @@ import { FlatCompat } from '@eslint/eslintrc'; import eslint from '@eslint/js'; import stylisticPlugin from '@stylistic/eslint-plugin'; +import vitestPlugin from '@vitest/eslint-plugin'; import deprecationPlugin from 'eslint-plugin-deprecation'; -import jestPlugin from 'eslint-plugin-jest'; import tseslint from 'typescript-eslint'; import __dirname from './dirname.cjs'; @@ -26,7 +26,7 @@ export default tseslint.config( plugins: { ['@typescript-eslint']: tseslint.plugin, ['deprecation']: deprecationPlugin, - ['jest']: jestPlugin, + ['vitest']: vitestPlugin, }, }, eslint.configs.recommended, @@ -42,23 +42,22 @@ function _otherCases() { ['@stylistic']: stylisticPlugin, ['@typescript-eslint']: tseslint.plugin, ['deprecation']: deprecationPlugin, - ['jest']: jestPlugin, + ['vitest']: vitestPlugin, }, }); tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommended, stylisticPlugin.configs['recommended-flat'], - jestPlugin.configs['flat/recommended'], + vitestPlugin.configs.recommended, ); tseslint.config( compat.config(deprecationPlugin.configs.recommended), - ...compat.config(jestPlugin.configs.recommended), + vitestPlugin.configs.recommended, ); tseslint.config( // @ts-expect-error deprecationPlugin.configs.recommended, - // this should error but doesn't because there are no types exported from the jest plugin - jestPlugin.configs.recommended, + vitestPlugin.configs.recommended, ); } diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json index 517496e985ec..79a0437dc5e1 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json @@ -7,6 +7,6 @@ "eslint": "latest", "@stylistic/eslint-plugin": "latest", "eslint-plugin-deprecation": "latest", - "eslint-plugin-jest": "latest" + "@vitest/eslint-plugin": "latest" } } diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index f390c0b1d60e..987ddaa0ce6a 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -14,7 +14,7 @@ "scripts": { "format": "prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore", "lint": "npx nx lint", - "test": "jest --no-coverage", + "test": "vitest --run", "check-types": "npx nx typecheck" }, "devDependencies": { diff --git a/packages/integration-tests/project.json b/packages/integration-tests/project.json index ce97afcc5e5a..c5eebfd10f9e 100644 --- a/packages/integration-tests/project.json +++ b/packages/integration-tests/project.json @@ -1,7 +1,9 @@ { "name": "integration-tests", "$schema": "../../node_modules/nx/schemas/project-schema.json", - "type": "library", + "projectType": "library", + "root": "packages/integration-tests", + "sourceRoot": "packages/integration-tests/tools", "implicitDependencies": ["typescript-eslint"], "targets": { "lint": { diff --git a/packages/integration-tests/tests/__snapshots__/eslint-v8.test.ts.snap b/packages/integration-tests/tests/__snapshots__/eslint-v8.test.ts.snap index fc96eb5bd1b2..8b4bb4e3cfdc 100644 --- a/packages/integration-tests/tests/__snapshots__/eslint-v8.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/eslint-v8.test.ts.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`eslint-v8 eslint should work successfully 1`] = ` +exports[`eslint-v8 > eslint > should work successfully 1`] = ` [ { "errorCount": 1, diff --git a/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v8.test.ts.snap b/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v8.test.ts.snap index d4869dfcbd44..c48c4b032719 100644 --- a/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v8.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v8.test.ts.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`flat-config-types-@types__eslint-v8 eslint should work successfully 1`] = ` +exports[`flat-config-types-@types__eslint-v8 > eslint > should work successfully 1`] = ` [ { "errorCount": 2, @@ -37,8 +37,8 @@ exports[`flat-config-types-@types__eslint-v8 eslint should work successfully 1`] import { FlatCompat } from '@eslint/eslintrc' import eslint from '@eslint/js' import stylisticPlugin from '@stylistic/eslint-plugin' +import vitestPlugin from '@vitest/eslint-plugin' import deprecationPlugin from 'eslint-plugin-deprecation' -import jestPlugin from 'eslint-plugin-jest' import tseslint from 'typescript-eslint' import __dirname from './dirname.cjs' @@ -60,7 +60,7 @@ export default tseslint.config( plugins: { ['@typescript-eslint']: tseslint.plugin, ['deprecation']: deprecationPlugin, - ['jest']: jestPlugin, + ['vitest']: vitestPlugin, }, }, eslint.configs.recommended, @@ -76,24 +76,23 @@ function _otherCases() { ['@stylistic']: stylisticPlugin, ['@typescript-eslint']: tseslint.plugin, ['deprecation']: deprecationPlugin, - ['jest']: jestPlugin, + ['vitest']: vitestPlugin, }, }) tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommended, stylisticPlugin.configs['recommended-flat'], - jestPlugin.configs['flat/recommended'], + vitestPlugin.configs.recommended, ) tseslint.config( compat.config(deprecationPlugin.configs.recommended), - ...compat.config(jestPlugin.configs.recommended), + vitestPlugin.configs.recommended, ) tseslint.config( // @ts-expect-error deprecationPlugin.configs.recommended, - // this should error but doesn't because there are no types exported from the jest plugin - jestPlugin.configs.recommended, + vitestPlugin.configs.recommended, ) } ", diff --git a/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v9.test.ts.snap b/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v9.test.ts.snap index 57bc1348f075..1d5e2cc9677d 100644 --- a/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v9.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v9.test.ts.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`flat-config-types-@types__eslint-v9 eslint should work successfully 1`] = ` +exports[`flat-config-types-@types__eslint-v9 > eslint > should work successfully 1`] = ` [ { "errorCount": 2, @@ -37,8 +37,8 @@ exports[`flat-config-types-@types__eslint-v9 eslint should work successfully 1`] import { FlatCompat } from '@eslint/eslintrc' import eslint from '@eslint/js' import stylisticPlugin from '@stylistic/eslint-plugin' +import vitestPlugin from '@vitest/eslint-plugin' import deprecationPlugin from 'eslint-plugin-deprecation' -import jestPlugin from 'eslint-plugin-jest' import tseslint from 'typescript-eslint' import __dirname from './dirname.cjs' @@ -60,7 +60,7 @@ export default tseslint.config( plugins: { ['@typescript-eslint']: tseslint.plugin, ['deprecation']: deprecationPlugin, - ['jest']: jestPlugin, + ['vitest']: vitestPlugin, }, }, eslint.configs.recommended, @@ -76,24 +76,23 @@ function _otherCases() { ['@stylistic']: stylisticPlugin, ['@typescript-eslint']: tseslint.plugin, ['deprecation']: deprecationPlugin, - ['jest']: jestPlugin, + ['vitest']: vitestPlugin, }, }) tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommended, stylisticPlugin.configs['recommended-flat'], - jestPlugin.configs['flat/recommended'], + vitestPlugin.configs.recommended, ) tseslint.config( compat.config(deprecationPlugin.configs.recommended), - ...compat.config(jestPlugin.configs.recommended), + vitestPlugin.configs.recommended, ) tseslint.config( // @ts-expect-error deprecationPlugin.configs.recommended, - // this should error but doesn't because there are no types exported from the jest plugin - jestPlugin.configs.recommended, + vitestPlugin.configs.recommended, ) } ", diff --git a/packages/integration-tests/tests/__snapshots__/markdown.test.ts.snap b/packages/integration-tests/tests/__snapshots__/markdown.test.ts.snap index b987cad32f7f..9f5bda85287a 100644 --- a/packages/integration-tests/tests/__snapshots__/markdown.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/markdown.test.ts.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`markdown eslint should work successfully 1`] = ` +exports[`markdown > eslint > should work successfully 1`] = ` [ { "errorCount": 10, diff --git a/packages/integration-tests/tests/__snapshots__/recommended-does-not-require-program.test.ts.snap b/packages/integration-tests/tests/__snapshots__/recommended-does-not-require-program.test.ts.snap index 059dfb803b0e..a8bb9c1e3138 100644 --- a/packages/integration-tests/tests/__snapshots__/recommended-does-not-require-program.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/recommended-does-not-require-program.test.ts.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`recommended-does-not-require-program eslint should work successfully 1`] = ` +exports[`recommended-does-not-require-program > eslint > should work successfully 1`] = ` [ { "errorCount": 1, diff --git a/packages/integration-tests/tests/__snapshots__/vue-jsx.test.ts.snap b/packages/integration-tests/tests/__snapshots__/vue-jsx.test.ts.snap index 94cb255c6050..bed8923abdb3 100644 --- a/packages/integration-tests/tests/__snapshots__/vue-jsx.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/vue-jsx.test.ts.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`vue-jsx eslint should work successfully 1`] = ` +exports[`vue-jsx > eslint > should work successfully 1`] = ` [ { "errorCount": 1, diff --git a/packages/integration-tests/tests/__snapshots__/vue-sfc.test.ts.snap b/packages/integration-tests/tests/__snapshots__/vue-sfc.test.ts.snap index d649b5ab80e3..2eeb2fa46f59 100644 --- a/packages/integration-tests/tests/__snapshots__/vue-sfc.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/vue-sfc.test.ts.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`vue-sfc eslint should work successfully 1`] = ` +exports[`vue-sfc > eslint > should work successfully 1`] = ` [ { "errorCount": 1, diff --git a/packages/integration-tests/tools/integration-test-base.ts b/packages/integration-tests/tools/integration-test-base.ts index b3d4426d60b9..4389c53cbaef 100644 --- a/packages/integration-tests/tools/integration-test-base.ts +++ b/packages/integration-tests/tools/integration-test-base.ts @@ -1,11 +1,13 @@ -import type { DirOptions } from 'tmp'; - -import ncp from 'ncp'; -import childProcess from 'node:child_process'; -import fs from 'node:fs'; -import path from 'node:path'; +import * as childProcess from 'node:child_process'; +import * as fs from 'node:fs/promises'; +import * as os from 'node:os'; +import * as path from 'node:path'; import { promisify } from 'node:util'; -import tmp from 'tmp'; +import { inject } from 'vitest'; + +import rootPackageJson from '../../../package.json'; + +const tseslintPackages = inject('tseslintPackages'); interface PackageJSON { devDependencies: Record; @@ -13,22 +15,13 @@ interface PackageJSON { private?: boolean; } -const rootPackageJson: PackageJSON = require('../../../package.json'); - -tmp.setGracefulCleanup(); - -const copyDir = promisify(ncp.ncp); const execFile = promisify(childProcess.execFile); -const readFile = promisify(fs.readFile); -const tmpDir = promisify(tmp.dir) as (opts?: DirOptions) => Promise; -const tmpFile = promisify(tmp.file); -const writeFile = promisify(fs.writeFile); const BASE_DEPENDENCIES: PackageJSON['devDependencies'] = { - ...global.tseslintPackages, + ...tseslintPackages, eslint: rootPackageJson.devDependencies.eslint, - jest: rootPackageJson.devDependencies.jest, typescript: rootPackageJson.devDependencies.typescript, + vitest: rootPackageJson.devDependencies.vitest, }; const FIXTURES_DIR = path.join(__dirname, '..', 'fixtures'); @@ -36,8 +29,10 @@ const FIXTURES_DIR = path.join(__dirname, '..', 'fixtures'); const KEEP_INTEGRATION_TEST_DIR = process.env.KEEP_INTEGRATION_TEST_DIR === 'true'; -// make sure that jest doesn't timeout the test -jest.setTimeout(60000); +const homeOrTmpDir = os.tmpdir() || os.homedir(); + +// make sure that vitest doesn't timeout the test +vi.setConfig({ testTimeout: 60_000 }); function integrationTest( testName: string, @@ -50,41 +45,55 @@ function integrationTest( describe(testName, () => { it('should work successfully', async () => { - const testFolder = await tmpDir({ - keep: KEEP_INTEGRATION_TEST_DIR, - }); + const testFolder = path.join( + homeOrTmpDir, + 'typescript-eslint-integration-tests', + fixture, + ); + + await fs.mkdir(testFolder, { recursive: true }); + if (KEEP_INTEGRATION_TEST_DIR) { console.error(testFolder); } // copy the fixture files to the temp folder - await copyDir(fixtureDir, testFolder); + await fs.cp(fixtureDir, testFolder, { recursive: true }); // build and write the package.json for the test - const fixturePackageJson: PackageJSON = await import( - path.join(fixtureDir, 'package.json') - ); - await writeFile( + const fixturePackageJson: PackageJSON = ( + await import(path.join(fixtureDir, 'package.json'), { + with: { type: 'json' }, + }) + ).default; + + await fs.writeFile( path.join(testFolder, 'package.json'), - JSON.stringify({ - private: true, - ...fixturePackageJson, - devDependencies: { - ...BASE_DEPENDENCIES, - ...fixturePackageJson.devDependencies, - }, - // ensure everything uses the locally packed versions instead of the NPM versions - resolutions: { - ...global.tseslintPackages, + JSON.stringify( + { + private: true, + ...fixturePackageJson, + devDependencies: { + ...BASE_DEPENDENCIES, + ...fixturePackageJson.devDependencies, + }, + // ensure everything uses the locally packed versions instead of the NPM versions + resolutions: { + ...tseslintPackages, + }, }, - }), + null, + 2, + ), + { encoding: 'utf-8' }, ); // console.log('package.json written.'); // Ensure yarn uses the node-modules linker and not PnP - await writeFile( + await fs.writeFile( path.join(testFolder, '.yarnrc.yml'), - `nodeLinker: node-modules`, + `nodeLinker: node-modules\n`, + { encoding: 'utf-8' }, ); await new Promise((resolve, reject) => { @@ -97,6 +106,7 @@ function integrationTest( ['install', '--no-immutable'], { cwd: testFolder, + shell: true, }, (err, stdout, stderr) => { if (err) { @@ -119,8 +129,6 @@ function integrationTest( await executeTest(testFolder); }); - - afterAll(() => {}); }); }); } @@ -131,7 +139,9 @@ export function eslintIntegrationTest( ): void { integrationTest('eslint', testFilename, async testFolder => { // lint, outputting to a JSON file - const outFile = await tmpFile(); + const outFile = path.join(testFolder, 'eslint.json'); + + await fs.writeFile(outFile, '', { encoding: 'utf-8' }); let stderr = ''; try { await execFile( @@ -147,6 +157,7 @@ export function eslintIntegrationTest( ], { cwd: testFolder, + shell: true, }, ); } catch (ex) { @@ -161,11 +172,18 @@ export function eslintIntegrationTest( expect(stderr).toHaveLength(0); // assert the linting state is consistent - const lintOutputRAW = (await readFile(outFile, 'utf8')) + const lintOutputRAW = (await fs.readFile(outFile, 'utf8')) // clean the output to remove any changing facets so tests are stable .replaceAll( new RegExp(`"filePath": ?"(/private)?${testFolder}`, 'g'), '"filePath": "', + ) + .replaceAll(/"filePath":"([^"]*)"/g, (_, testFile: string) => { + return `"filePath": "/${path.relative(testFolder, testFile)}"`; + }) + .replaceAll( + /C:\\\\usr\\\\linked\\\\tsconfig.json/g, + path.posix.join('/usr', 'linked', 'tsconfig.json'), ); try { const lintOutput = JSON.parse(lintOutputRAW); @@ -186,8 +204,9 @@ export function typescriptIntegrationTest( ): void { integrationTest(testName, testFilename, async testFolder => { const [result] = await Promise.allSettled([ - execFile('yarn', ['tsc', '--noEmit', ...tscArgs], { + execFile('yarn', ['tsc', '--noEmit', '--skipLibCheck', ...tscArgs], { cwd: testFolder, + shell: true, }), ]); diff --git a/packages/integration-tests/tools/pack-packages.ts b/packages/integration-tests/tools/pack-packages.ts index 129db0558ac3..3c8c8e614231 100644 --- a/packages/integration-tests/tools/pack-packages.ts +++ b/packages/integration-tests/tools/pack-packages.ts @@ -7,10 +7,15 @@ * against the exact same version of the package. */ -import { spawnSync } from 'node:child_process'; -import fs from 'node:fs'; +import type { TestProject } from 'vitest/node'; + +import * as child_process from 'node:child_process'; +import fs from 'node:fs/promises'; +import * as os from 'node:os'; import path from 'node:path'; -import tmp from 'tmp'; +import { promisify } from 'node:util'; + +const execFile = promisify(child_process.execFile); interface PackageJSON { devDependencies: Record; @@ -18,37 +23,81 @@ interface PackageJSON { private?: boolean; } -const PACKAGES_DIR = path.resolve(__dirname, '..', '..'); -const PACKAGES = fs.readdirSync(PACKAGES_DIR); - -const tarFolder = tmp.dirSync({ - // because of how jest executes things, we need to ensure - // the temp files hang around - keep: true, -}).name; - -export const tseslintPackages: PackageJSON['devDependencies'] = {}; -for (const pkg of PACKAGES) { - const packageDir = path.join(PACKAGES_DIR, pkg); - const packagePath = path.join(packageDir, 'package.json'); - if (!fs.existsSync(packagePath)) { - continue; +declare module 'vitest' { + export interface ProvidedContext { + tseslintPackages: PackageJSON['devDependencies']; } +} - // eslint-disable-next-line @typescript-eslint/no-require-imports -- this file needs to be sync and CJS for jest - const packageJson = require(packagePath) as PackageJSON; - if (packageJson.private === true) { - continue; - } +const PACKAGES_DIR = path.resolve(__dirname, '..', '..'); - const result = spawnSync('npm', ['pack', packageDir], { - cwd: tarFolder, - encoding: 'utf-8', - }); - const stdoutLines = result.stdout.trim().split('\n'); - const tarball = stdoutLines[stdoutLines.length - 1]; +const homeOrTmpDir = os.tmpdir() || os.homedir(); - tseslintPackages[packageJson.name] = `file:${path.join(tarFolder, tarball)}`; -} +const tarFolder = path.join( + homeOrTmpDir, + 'typescript-eslint-integration-tests', + 'tarballs', +); + +export const setup = async (project: TestProject): Promise => { + const PACKAGES = await fs.readdir(PACKAGES_DIR, { withFileTypes: true }); + + await fs.mkdir(tarFolder, { recursive: true }); + + const tseslintPackages = Object.fromEntries( + ( + await Promise.all( + PACKAGES.map(async ({ name: pkg }) => { + const packageDir = path.join(PACKAGES_DIR, pkg); + const packagePath = path.join(packageDir, 'package.json'); -console.log('Finished packing local packages.'); + try { + if (!(await fs.stat(packagePath)).isFile()) { + return; + } + } catch { + return; + } + + const packageJson: PackageJSON = ( + await import(packagePath, { + with: { type: 'json' }, + }) + ).default; + + if ('private' in packageJson && packageJson.private === true) { + return; + } + + const result = await execFile('npm', ['pack', packageDir], { + cwd: tarFolder, + encoding: 'utf-8', + shell: true, + }); + + if (typeof result.stdout !== 'string') { + return; + } + + const stdoutLines = result.stdout.trim().split('\n'); + const tarball = stdoutLines[stdoutLines.length - 1]; + + return [ + packageJson.name, + `file:${path.join(tarFolder, tarball)}`, + ] as const; + }), + ) + ).filter(e => e != null), + ); + + console.log('Finished packing local packages.'); + + project.provide('tseslintPackages', tseslintPackages); +}; + +export const teardown = async (): Promise => { + if (process.env.KEEP_INTEGRATION_TEST_DIR !== 'true') { + await fs.rm(path.dirname(tarFolder), { recursive: true }); + } +}; diff --git a/packages/integration-tests/tsconfig.spec.json b/packages/integration-tests/tsconfig.spec.json index f148576f18c4..33c53866943e 100644 --- a/packages/integration-tests/tsconfig.spec.json +++ b/packages/integration-tests/tsconfig.spec.json @@ -3,10 +3,10 @@ "compilerOptions": { "outDir": "../../dist/out-tsc/packages/integration-tests", "module": "NodeNext", - "types": ["jest", "node"] + "resolveJsonModule": true, + "types": ["node", "vitest/globals", "vitest/importMeta"] }, "include": [ - "jest.config.js", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts", diff --git a/packages/integration-tests/vitest.config.mts b/packages/integration-tests/vitest.config.mts index 81c7288cdf99..b64df6ea693f 100644 --- a/packages/integration-tests/vitest.config.mts +++ b/packages/integration-tests/vitest.config.mts @@ -1,21 +1,25 @@ -'use strict'; - -// pack the packages ahead of time and create a mapping for use in the tests -require('tsx/cjs'); -const { tseslintPackages } = require('./tools/pack-packages'); - -// @ts-check -/** @type {import('@jest/types').Config.InitialOptions} */ -module.exports = { - ...require('../../jest.config.base.js'), - globals: { - tseslintPackages, - }, - testRegex: ['/tests/[^/]+.test.ts$'], - rootDir: __dirname, - - // TODO(Brad Zacher) - for some reason if we run more than 1 test at a time - // yarn will error saying the tarballs are corrupt on just - // the first test. - maxWorkers: 1, -}; +import * as os from 'node:os'; +import { defineConfig, mergeConfig } from 'vitest/config'; + +import { vitestBaseConfig } from '../../vitest.config.base.mjs'; +import packageJson from './package.json' with { type: 'json' }; + +const vitestConfig = mergeConfig( + vitestBaseConfig, + + defineConfig({ + test: { + dir: `${import.meta.dirname}/tests`, + + fileParallelism: os.platform() !== 'win32', + + globalSetup: ['./tools/pack-packages.ts'], + + name: packageJson.name, + + root: import.meta.dirname, + }, + }), +); + +export default vitestConfig; diff --git a/tsconfig.repo-config-files.json b/tsconfig.repo-config-files.json index 111efb73975a..58efac7250b6 100644 --- a/tsconfig.repo-config-files.json +++ b/tsconfig.repo-config-files.json @@ -12,6 +12,8 @@ "tools/**/*.ts", "tools/**/*.mts", "eslint.config.mjs", + "vitest.config.base.mts", + "vitest.config.mts", "jest.config.base.js", "jest.config.js", "jest.preset.js", diff --git a/vitest.config.base.mts b/vitest.config.base.mts new file mode 100644 index 000000000000..2a84af748ada --- /dev/null +++ b/vitest.config.base.mts @@ -0,0 +1,20 @@ +import type { ViteUserConfig } from 'vitest/config'; + +export const vitestBaseConfig = { + test: { + coverage: { + extension: ['.ts', '.tsx', '.js', '.jsx'], + include: ['src'], + reporter: [ + ['lcov'], + process.env.GITHUB_ACTIONS ? ['text-summary'] : ['none'], + ], + }, + globals: true, + reporters: process.env.GITHUB_ACTIONS + ? [['github-actions'], ['verbose']] + : [['verbose']], + setupFiles: ['console-fail-test/setup'], + watch: false, + }, +} as const satisfies ViteUserConfig; diff --git a/vitest.config.mts b/vitest.config.mts new file mode 100644 index 000000000000..7d3e2c751551 --- /dev/null +++ b/vitest.config.mts @@ -0,0 +1,21 @@ +import { defaultExclude, defineConfig, mergeConfig } from 'vitest/config'; + +import { vitestBaseConfig } from './vitest.config.base.mjs'; + +const vitestConfig = mergeConfig( + vitestBaseConfig, + + defineConfig({ + test: { + exclude: [ + ...defaultExclude, + 'packages/rule-tester/tests/eslint-base/eslint-base.test.js', + ], + name: 'root', + + root: import.meta.dirname, + }, + }), +); + +export default vitestConfig; diff --git a/yarn.lock b/yarn.lock index 5feb23e0a006..e059629b00dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4255,6 +4255,24 @@ __metadata: languageName: node linkType: hard +"@nx/vite@npm:20.4.5": + version: 20.4.5 + resolution: "@nx/vite@npm:20.4.5" + dependencies: + "@nx/devkit": 20.4.5 + "@nx/js": 20.4.5 + "@phenomnomnominal/tsquery": ~5.0.1 + "@swc/helpers": ~0.5.0 + enquirer: ~2.3.6 + minimatch: 9.0.3 + tsconfig-paths: ^4.1.2 + peerDependencies: + vite: ^5.0.0 + vitest: ^1.3.1 || ^2.0.0 + checksum: dec9ab2e0d89d7dd1e2b1d1fda634c566facb954180300db777941a9bbaabb9cd13c3126a2880627ec087494df73fae7e721f60d7842e80c07fc8df237f2bb17 + languageName: node + linkType: hard + "@nx/workspace@npm:20.4.5": version: 20.4.5 resolution: "@nx/workspace@npm:20.4.5" @@ -5139,6 +5157,15 @@ __metadata: languageName: node linkType: hard +"@swc/helpers@npm:~0.5.0": + version: 0.5.15 + resolution: "@swc/helpers@npm:0.5.15" + dependencies: + tslib: ^2.8.0 + checksum: 1a9e0dbb792b2d1e0c914d69c201dbc96af3a0e6e6e8cf5a7f7d6a5d7b0e8b762915cd4447acb6b040e2ecc1ed49822875a7239f99a2d63c96c3c3407fb6fccf + languageName: node + linkType: hard + "@swc/jest@npm:^0.2.36": version: 0.2.36 resolution: "@swc/jest@npm:0.2.36" @@ -5585,15 +5612,6 @@ __metadata: languageName: node linkType: hard -"@types/ncp@npm:^2.0.8": - version: 2.0.8 - resolution: "@types/ncp@npm:2.0.8" - dependencies: - "@types/node": "*" - checksum: 33ab7fb6f6777b9b77114acb159acb565c24fed7d78ab19553b9621f1da38c8bf5976b8cb8d0c66864b5c1d08db6ca155978ba07b93bbc2e661fc3e535e2677f - languageName: node - linkType: hard - "@types/node-forge@npm:^1.3.0": version: 1.3.11 resolution: "@types/node-forge@npm:1.3.11" @@ -6039,6 +6057,7 @@ __metadata: "@nx/devkit": 20.4.5 "@nx/eslint": 20.4.5 "@nx/jest": 20.4.5 + "@nx/vite": 20.4.5 "@nx/workspace": 20.4.5 "@swc/core": ^1.4.12 "@swc/jest": ^0.2.36 @@ -6050,7 +6069,6 @@ __metadata: "@types/jest": 29.5.13 "@types/jest-specific-snapshot": ^0.5.9 "@types/natural-compare": ^1.4.3 - "@types/ncp": ^2.0.8 "@types/node": ^20.12.5 "@types/semver": ^7.5.8 "@types/tmp": ^0.2.6 @@ -6062,6 +6080,7 @@ __metadata: "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" "@vitest/coverage-v8": ^3.0.7 + "@vitest/eslint-plugin": ^1.1.36 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 cspell: ^8.15.2 @@ -6097,6 +6116,7 @@ __metadata: tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" + vite: ^6.2.0 vitest: ^3.0.7 yargs: 17.7.2 languageName: unknown @@ -6224,6 +6244,23 @@ __metadata: languageName: node linkType: hard +"@vitest/eslint-plugin@npm:^1.1.36": + version: 1.1.36 + resolution: "@vitest/eslint-plugin@npm:1.1.36" + peerDependencies: + "@typescript-eslint/utils": ^8.24.0 + eslint: ">= 8.57.0" + typescript: ">= 5.0.0" + vitest: "*" + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + checksum: 799db5753310124b289e09635a266857bcae003822c4da49a60891f52fea78c4b89f3754c20d9a0a5e963e7ba975acf4633cf19eafa0806fa08d059466232887 + languageName: node + linkType: hard + "@vitest/expect@npm:3.0.7": version: 3.0.7 resolution: "@vitest/expect@npm:3.0.7" @@ -19912,7 +19949,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2": +"tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.8.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a @@ -20566,7 +20603,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.0 || ^6.0.0": +"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.0": version: 6.2.0 resolution: "vite@npm:6.2.0" dependencies: From c4e8bbb6bb78fdb866a42ea10356bfbc7ea5083e Mon Sep 17 00:00:00 2001 From: Kirk Waiblinger <53019676+kirkwaiblinger@users.noreply.github.com> Date: Wed, 5 Mar 2025 02:10:29 -0700 Subject: [PATCH 04/45] chore: validate root TS (#10912) --- project.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.json b/project.json index 2213d1b6f2ce..766cb5ca8849 100644 --- a/project.json +++ b/project.json @@ -4,7 +4,7 @@ "// These targets are used for repo level utils and checking repo files which do not belong to specific published packages": {}, "targets": { "typecheck": { - "command": "tsc" + "command": "tsc -b ./tsconfig.repo-config-files.json" }, "lint": { "command": "eslint . --ignore-pattern=packages --cache" From 487c80de62f877b25b05842f6cdca709ef5bfa11 Mon Sep 17 00:00:00 2001 From: Kirk Waiblinger <53019676+kirkwaiblinger@users.noreply.github.com> Date: Thu, 6 Mar 2025 10:18:30 -0700 Subject: [PATCH 05/45] fix(eslint-plugin): [prefer-nullish-coalescing] treat `any`/`unknown` as eligible for nullish coalescing (#10865) * treat any/unknown as eligible for nullish coalescing * more stuff * fix typo Co-authored-by: Ronen Amiel * feedback * tweaks * merge mistake * rename vars in test Co-authored-by: Ronen Amiel --------- Co-authored-by: Ronen Amiel --- .../docs/rules/prefer-nullish-coalescing.mdx | 8 +- .../src/rules/no-unnecessary-condition.ts | 21 +- .../src/rules/prefer-nullish-coalescing.ts | 37 ++- packages/eslint-plugin/src/util/index.ts | 2 +- ...sAndNullishUtils.ts => truthinessUtils.ts} | 11 - .../prefer-nullish-coalescing.shot | 11 +- .../rules/prefer-nullish-coalescing.test.ts | 219 +++++++++++++----- 7 files changed, 216 insertions(+), 93 deletions(-) rename packages/eslint-plugin/src/util/{truthinessAndNullishUtils.ts => truthinessUtils.ts} (74%) diff --git a/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.mdx b/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.mdx index 87cf88527046..438cc97d6af6 100644 --- a/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.mdx +++ b/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.mdx @@ -84,7 +84,7 @@ Examples of code for this rule with `{ ignoreConditionalTests: false }`: ```ts option='{ "ignoreConditionalTests": false }' -declare const a: string | null; +declare let a: string | null; declare const b: string | null; if (a || b) { @@ -102,7 +102,7 @@ a || b ? true : false; ```ts option='{ "ignoreConditionalTests": false }' -declare const a: string | null; +declare let a: string | null; declare const b: string | null; if (a ?? b) { @@ -133,7 +133,7 @@ Examples of code for this rule with `{ ignoreMixedLogicalExpressions: false }`: ```ts option='{ "ignoreMixedLogicalExpressions": false }' -declare const a: string | null; +declare let a: string | null; declare const b: string | null; declare const c: string | null; declare const d: string | null; @@ -149,7 +149,7 @@ a || (b && c && d); ```ts option='{ "ignoreMixedLogicalExpressions": false }' -declare const a: string | null; +declare let a: string | null; declare const b: string | null; declare const c: string | null; declare const d: string | null; diff --git a/packages/eslint-plugin/src/rules/no-unnecessary-condition.ts b/packages/eslint-plugin/src/rules/no-unnecessary-condition.ts index cb93dfae3ba3..19e734179127 100644 --- a/packages/eslint-plugin/src/rules/no-unnecessary-condition.ts +++ b/packages/eslint-plugin/src/rules/no-unnecessary-condition.ts @@ -12,12 +12,10 @@ import { getTypeName, getTypeOfPropertyOfName, getValueOfLiteralType, - isAlwaysNullish, isArrayMethodCallWithPredicate, isIdentifier, isNullableType, isPossiblyFalsy, - isPossiblyNullish, isPossiblyTruthy, isTypeAnyType, isTypeFlagSet, @@ -31,6 +29,25 @@ import { } from '../util/assertionFunctionUtils'; // #region + +const nullishFlag = ts.TypeFlags.Undefined | ts.TypeFlags.Null; + +function isNullishType(type: ts.Type): boolean { + return tsutils.isTypeFlagSet(type, nullishFlag); +} + +function isAlwaysNullish(type: ts.Type): boolean { + return tsutils.unionTypeParts(type).every(isNullishType); +} + +/** + * Note that this differs from {@link isNullableType} in that it doesn't consider + * `any` or `unknown` to be nullable. + */ +function isPossiblyNullish(type: ts.Type): boolean { + return tsutils.unionTypeParts(type).some(isNullishType); +} + function toStaticValue( type: ts.Type, ): diff --git a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts index 54d7b060dcb8..caa193b36bdd 100644 --- a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts +++ b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts @@ -13,7 +13,7 @@ import { isNodeEqual, isNodeOfTypes, isNullLiteral, - isPossiblyNullish, + isNullableType, isUndefinedIdentifier, nullThrows, NullThrowsReasons, @@ -193,7 +193,7 @@ export default createRule({ * a nullishness check, taking into account the rule's configuration. */ function isTypeEligibleForPreferNullish(type: ts.Type): boolean { - if (!isPossiblyNullish(type)) { + if (!isNullableType(type)) { return false; } @@ -211,14 +211,33 @@ export default createRule({ ] .filter((flag): flag is number => typeof flag === 'number') .reduce((previous, flag) => previous | flag, 0); + + if (ignorableFlags === 0) { + // any types are eligible for conversion. + return true; + } + + // if the type is `any` or `unknown` we can't make any assumptions + // about the value, so it could be any primitive, even though the flags + // won't be set. + // + // technically, this is true of `void` as well, however, it's a TS error + // to test `void` for truthiness, so we don't need to bother checking for + // it in valid code. + if ( + tsutils.isTypeFlagSet(type, ts.TypeFlags.Any | ts.TypeFlags.Unknown) + ) { + return false; + } + if ( - type.flags !== ts.TypeFlags.Null && - type.flags !== ts.TypeFlags.Undefined && - (type as ts.UnionOrIntersectionType).types.some(t => - tsutils - .intersectionTypeParts(t) - .some(t => tsutils.isTypeFlagSet(t, ignorableFlags)), - ) + tsutils + .typeParts(type) + .some(t => + tsutils + .intersectionTypeParts(t) + .some(t => tsutils.isTypeFlagSet(t, ignorableFlags)), + ) ) { return false; } diff --git a/packages/eslint-plugin/src/util/index.ts b/packages/eslint-plugin/src/util/index.ts index 6bd8189c5a51..035fca0cec4a 100644 --- a/packages/eslint-plugin/src/util/index.ts +++ b/packages/eslint-plugin/src/util/index.ts @@ -28,7 +28,7 @@ export * from './getConstraintInfo'; export * from './getValueOfLiteralType'; export * from './isHigherPrecedenceThanAwait'; export * from './skipChainExpression'; -export * from './truthinessAndNullishUtils'; +export * from './truthinessUtils'; // this is done for convenience - saves migrating all of the old rules export * from '@typescript-eslint/type-utils'; diff --git a/packages/eslint-plugin/src/util/truthinessAndNullishUtils.ts b/packages/eslint-plugin/src/util/truthinessUtils.ts similarity index 74% rename from packages/eslint-plugin/src/util/truthinessAndNullishUtils.ts rename to packages/eslint-plugin/src/util/truthinessUtils.ts index b35e0334719d..048a7a60500e 100644 --- a/packages/eslint-plugin/src/util/truthinessAndNullishUtils.ts +++ b/packages/eslint-plugin/src/util/truthinessUtils.ts @@ -28,14 +28,3 @@ export const isPossiblyTruthy = (type: ts.Type): boolean => // like `"" & { __brand: string }`. intersectionParts.every(type => !tsutils.isFalsyType(type)), ); - -// Nullish utilities -const nullishFlag = ts.TypeFlags.Undefined | ts.TypeFlags.Null; -const isNullishType = (type: ts.Type): boolean => - tsutils.isTypeFlagSet(type, nullishFlag); - -export const isPossiblyNullish = (type: ts.Type): boolean => - tsutils.unionTypeParts(type).some(isNullishType); - -export const isAlwaysNullish = (type: ts.Type): boolean => - tsutils.unionTypeParts(type).every(isNullishType); diff --git a/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-nullish-coalescing.shot b/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-nullish-coalescing.shot index 124ed091013c..babba8f3ad55 100644 --- a/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-nullish-coalescing.shot +++ b/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-nullish-coalescing.shot @@ -55,17 +55,19 @@ exports[`Validating rule docs prefer-nullish-coalescing.mdx code examples ESLint "Incorrect Options: { "ignoreConditionalTests": false } -declare const a: string | null; +declare let a: string | null; declare const b: string | null; if (a || b) { ~~ Prefer using nullish coalescing operator (\`??\`) instead of a logical or (\`||\`), as it is a safer operator. } if ((a ||= b)) { + ~~~ Prefer using nullish coalescing operator (\`??=\`) instead of a logical assignment (\`||=\`), as it is a safer operator. } while (a || b) {} ~~ Prefer using nullish coalescing operator (\`??\`) instead of a logical or (\`||\`), as it is a safer operator. while ((a ||= b)) {} + ~~~ Prefer using nullish coalescing operator (\`??=\`) instead of a logical assignment (\`||=\`), as it is a safer operator. do {} while (a || b); ~~ Prefer using nullish coalescing operator (\`??\`) instead of a logical or (\`||\`), as it is a safer operator. for (let i = 0; a || b; i += 1) {} @@ -79,7 +81,7 @@ exports[`Validating rule docs prefer-nullish-coalescing.mdx code examples ESLint "Correct Options: { "ignoreConditionalTests": false } -declare const a: string | null; +declare let a: string | null; declare const b: string | null; if (a ?? b) { @@ -98,7 +100,7 @@ exports[`Validating rule docs prefer-nullish-coalescing.mdx code examples ESLint "Incorrect Options: { "ignoreMixedLogicalExpressions": false } -declare const a: string | null; +declare let a: string | null; declare const b: string | null; declare const c: string | null; declare const d: string | null; @@ -106,6 +108,7 @@ declare const d: string | null; a || (b && c); ~~ Prefer using nullish coalescing operator (\`??\`) instead of a logical or (\`||\`), as it is a safer operator. a ||= b && c; + ~~~ Prefer using nullish coalescing operator (\`??=\`) instead of a logical assignment (\`||=\`), as it is a safer operator. (a && b) || c || d; ~~ Prefer using nullish coalescing operator (\`??\`) instead of a logical or (\`||\`), as it is a safer operator. ~~ Prefer using nullish coalescing operator (\`??\`) instead of a logical or (\`||\`), as it is a safer operator. @@ -121,7 +124,7 @@ exports[`Validating rule docs prefer-nullish-coalescing.mdx code examples ESLint "Correct Options: { "ignoreMixedLogicalExpressions": false } -declare const a: string | null; +declare let a: string | null; declare const b: string | null; declare const c: string | null; declare const d: string | null; diff --git a/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts b/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts index 1aa35f847af4..a57db7e341be 100644 --- a/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts +++ b/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts @@ -199,22 +199,6 @@ x ? x : y; `, ` declare let x: boolean; -!x ? y : x; - `, - ` -declare let x: any; -x ? x : y; - `, - ` -declare let x: any; -!x ? y : x; - `, - ` -declare let x: unknown; -x ? x : y; - `, - ` -declare let x: unknown; !x ? y : x; `, ` @@ -311,22 +295,6 @@ x.n ? x.n : y; `, ` declare let x: { n: boolean }; -!x.n ? y : x.n; - `, - ` -declare let x: { n: any }; -x.n ? x.n : y; - `, - ` -declare let x: { n: any }; -!x.n ? y : x.n; - `, - ` -declare let x: { n: unknown }; -x.n ? x.n : y; - `, - ` -declare let x: { n: unknown }; !x.n ? y : x.n; `, ` @@ -536,41 +504,11 @@ declare let x: (${type} & { __brand?: any }) | undefined; `, options: [{ ignorePrimitives: true }], })), - ` - declare let x: any; - declare let y: number; - x || y; - `, - ` - declare let x: unknown; - declare let y: number; - x || y; - `, ` declare let x: never; declare let y: number; x || y; `, - ` - declare let x: any; - declare let y: number; - x ? x : y; - `, - ` - declare let x: any; - declare let y: number; - !x ? y : x; - `, - ` - declare let x: unknown; - declare let y: number; - x ? x : y; - `, - ` - declare let x: unknown; - declare let y: number; - !x ? y : x; - `, ` declare let x: never; declare let y: number; @@ -1373,7 +1311,53 @@ if (c || (!a ? b : a)) { }, ], }, + + { + code: ` +declare const a: any; +declare const b: any; +a ? a : b; + `, + options: [ + { + ignorePrimitives: true, + }, + ], + }, + + { + code: ` +declare const a: any; +declare const b: any; +a ? a : b; + `, + options: [ + { + ignorePrimitives: { + number: true, + }, + }, + ], + }, + + { + code: ` +declare const a: unknown; +const b = a || 'bar'; + `, + options: [ + { + ignorePrimitives: { + bigint: true, + boolean: false, + number: false, + string: false, + }, + }, + ], + }, ], + invalid: [ ...nullishTypeTest((nullish, type, equals) => ({ code: ` @@ -5078,6 +5062,51 @@ defaultBoxOptional.a?.b ?? getFallbackBox(); }, { code: ` +declare const x: any; +declare const y: any; +x || y; + `, + errors: [ + { + messageId: 'preferNullishOverOr', + suggestions: [ + { + messageId: 'suggestNullish', + output: ` +declare const x: any; +declare const y: any; +x ?? y; + `, + }, + ], + }, + ], + }, + + { + code: ` +declare const x: unknown; +declare const y: any; +x || y; + `, + errors: [ + { + messageId: 'preferNullishOverOr', + suggestions: [ + { + messageId: 'suggestNullish', + output: ` +declare const x: unknown; +declare const y: any; +x ?? y; + `, + }, + ], + }, + ], + }, + { + code: ` interface Box { value: string; } @@ -5308,5 +5337,71 @@ defaultBoxOptional.a?.b ?? getFallbackBox(); options: [{ ignoreTernaryTests: false }], output: null, }, + { + code: ` +declare let x: unknown; +declare let y: number; +!x ? y : x; + `, + errors: [ + { + messageId: 'preferNullishOverTernary', + suggestions: [ + { + messageId: 'suggestNullish', + output: ` +declare let x: unknown; +declare let y: number; +x ?? y; + `, + }, + ], + }, + ], + }, + + { + code: ` +declare let x: unknown; +declare let y: number; +x ? x : y; + `, + errors: [ + { + messageId: 'preferNullishOverTernary', + suggestions: [ + { + messageId: 'suggestNullish', + output: ` +declare let x: unknown; +declare let y: number; +x ?? y; + `, + }, + ], + }, + ], + }, + + { + code: ` +declare let x: { n: unknown }; +!x.n ? y : x.n; + `, + errors: [ + { + messageId: 'preferNullishOverTernary', + suggestions: [ + { + messageId: 'suggestNullish', + output: ` +declare let x: { n: unknown }; +x.n ?? y; + `, + }, + ], + }, + ], + }, ], }); From 8bca77c41b311b89c66ca17f033f3b0bda2f520a Mon Sep 17 00:00:00 2001 From: "typescript-eslint[bot]" <53356952+typescript-eslint[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 03:42:16 -0800 Subject: [PATCH 06/45] chore: update sponsors (#10923) Co-authored-by: typescript-eslint[bot] --- packages/website/data/sponsors.json | 120 ++++++++++++++-------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/packages/website/data/sponsors.json b/packages/website/data/sponsors.json index 260ed104bf6d..14ab85f3eec5 100644 --- a/packages/website/data/sponsors.json +++ b/packages/website/data/sponsors.json @@ -3,7 +3,7 @@ "id": "ESLint", "image": "https://images.opencollective.com/eslint/48a2e5d/logo.png", "name": "ESLint", - "totalDonations": 3240000, + "totalDonations": 3270000, "website": "https://eslint.org/" }, { @@ -17,21 +17,21 @@ "id": "Nx (by Nrwl)", "image": "https://images.opencollective.com/nx/0efbe42/logo.png", "name": "Nx (by Nrwl)", - "totalDonations": 1175000, + "totalDonations": 1200000, "website": "https://nx.dev" }, { "id": "JetBrains", "image": "https://images.opencollective.com/jetbrains/fe76f99/logo.png", "name": "JetBrains", - "totalDonations": 700000, + "totalDonations": 750000, "website": "https://www.jetbrains.com/" }, { "id": "Cybozu", "image": "https://images.opencollective.com/cybozu/933e46d/logo.png", "name": "Cybozu", - "totalDonations": 610000, + "totalDonations": 635000, "website": "https://cybozu.co.jp/" }, { @@ -45,14 +45,14 @@ "id": "Codecademy", "image": "https://images.opencollective.com/codecademy/d56a48d/logo.png", "name": "Codecademy", - "totalDonations": 370000, + "totalDonations": 380000, "website": "https://codecademy.com" }, { "id": "Sourcegraph", - "image": "https://images.opencollective.com/sourcegraph/67e40ff/logo.png", + "image": "https://images.opencollective.com/sourcegraph/f67b621/logo.png", "name": "Sourcegraph", - "totalDonations": 320000, + "totalDonations": 330000, "website": "https://about.sourcegraph.com" }, { @@ -66,7 +66,7 @@ "id": "Airbnb", "image": "https://images.opencollective.com/airbnb/d327d66/logo.png", "name": "Airbnb", - "totalDonations": 275800, + "totalDonations": 280800, "website": "https://www.airbnb.com/" }, { @@ -80,9 +80,16 @@ "id": "GitBook", "image": "https://images.opencollective.com/gitbook/820419f/logo.png", "name": "GitBook", - "totalDonations": 200000, + "totalDonations": 210000, "website": "https://www.gitbook.com" }, + { + "id": "Vite", + "image": "https://images.opencollective.com/vite/e6d15e1/logo.png", + "name": "Vite", + "totalDonations": 180000, + "website": "https://vite.dev/" + }, { "id": "n8n.io - n8n GmbH", "image": "https://images.opencollective.com/n8n/40721f5/logo.png", @@ -97,13 +104,6 @@ "totalDonations": 120000, "website": "https://blog.coinbase.com/engineering-and-security/home" }, - { - "id": "Vite", - "image": "https://images.opencollective.com/vite/e6d15e1/logo.png", - "name": "Vite", - "totalDonations": 120000, - "website": "https://vite.dev/" - }, { "id": "Sentry", "image": "https://images.opencollective.com/sentry/9620d33/logo.png", @@ -122,7 +122,7 @@ "id": "STORIS", "image": "https://images.opencollective.com/storis/dfb0e13/logo.png", "name": "STORIS", - "totalDonations": 95500, + "totalDonations": 99000, "website": "https://www.storis.com/" }, { @@ -153,13 +153,6 @@ "totalDonations": 60000, "website": "https://deepsource.io/" }, - { - "id": "frontendmasters", - "image": "https://avatars.githubusercontent.com/u/5613852?v=4", - "name": "Frontend Masters", - "totalDonations": 56791, - "website": "https://FrontendMasters.com" - }, { "id": "Future Processing", "image": "https://images.opencollective.com/future-processing/1410d26/logo.png", @@ -188,55 +181,62 @@ "totalDonations": 50000, "website": "https://vlt.sh/" }, - { - "id": "Joe Alden", - "image": "https://images.opencollective.com/joealden/44a6738/avatar.png", - "name": "Joe Alden", - "totalDonations": 48000, - "website": "https://joealden.com" - }, { "id": "WebdriverIO", "image": "https://images.opencollective.com/webdriverio/bbdd5c3/logo.png", "name": "WebdriverIO", - "totalDonations": 45500, + "totalDonations": 49000, "website": "https://webdriver.io/" }, { - "id": "syntaxfm", - "image": "https://avatars.githubusercontent.com/u/130389858?v=4", - "name": "Syntax", - "totalDonations": 43280, - "website": "https://syntax.fm" + "id": "frontendmasters", + "image": "https://avatars.githubusercontent.com/u/5613852?v=4", + "name": "Frontend Masters", + "totalDonations": 48560, + "website": "https://FrontendMasters.com" }, { - "id": "Whitebox", - "image": "https://images.opencollective.com/whiteboxinc/ef0d11d/logo.png", - "name": "Whitebox", - "totalDonations": 40000, - "website": "https://whitebox.com" + "id": "Joe Alden", + "image": "https://images.opencollective.com/joealden/44a6738/avatar.png", + "name": "Joe Alden", + "totalDonations": 48000, + "website": "https://joealden.com" + }, + { + "id": "Defined Networking", + "image": "https://images.opencollective.com/defined-networking/072920e/logo.png", + "name": "Defined Networking", + "totalDonations": 42500, + "website": "https://www.defined.net" }, { "id": "Quicko", "image": "https://images.opencollective.com/quicko/7bd1dc9/logo.png", "name": "Quicko", - "totalDonations": 40000, + "totalDonations": 42000, "website": "https://quicko.com" }, { - "id": "Defined Networking", - "image": "https://images.opencollective.com/defined-networking/072920e/logo.png", - "name": "Defined Networking", + "id": "Whitebox", + "image": "https://images.opencollective.com/whiteboxinc/ef0d11d/logo.png", + "name": "Whitebox", "totalDonations": 40000, - "website": "https://www.defined.net" + "website": "https://whitebox.com" }, { "id": "Torutek", "image": "https://images.opencollective.com/torutek/logo.png", "name": "Torutek", - "totalDonations": 35000, + "totalDonations": 40000, "website": "https://torutek.com" }, + { + "id": "syntaxfm", + "image": "https://avatars.githubusercontent.com/u/130389858?v=4", + "name": "Syntax", + "totalDonations": 38211, + "website": "https://syntax.fm" + }, { "id": "Monito", "image": "https://images.opencollective.com/monito/50fc878/logo.png", @@ -255,28 +255,28 @@ "id": "0+X", "image": "https://images.opencollective.com/0-x/707287f/logo.png", "name": "0+X", - "totalDonations": 26000, + "totalDonations": 27000, "website": "https://www.0x.se" }, { "id": "Trevor Burnham", "image": "https://images.opencollective.com/trevorburnham/016f6da/avatar.png", "name": "Trevor Burnham", - "totalDonations": 25000, + "totalDonations": 26000, "website": "https://trevorburnham.com" }, { "id": "Evil Martians", "image": "https://images.opencollective.com/evilmartians/707ab4d/logo.png", "name": "Evil Martians", - "totalDonations": 23500, + "totalDonations": 24000, "website": "https://evilmartians.com/" }, { "id": "Corellium", "image": "https://images.opencollective.com/corellium/aa8c228/logo.png", "name": "Corellium", - "totalDonations": 23400, + "totalDonations": 24000, "website": "https://www.corellium.com" }, { @@ -328,13 +328,6 @@ "totalDonations": 15000, "website": "https://paddn.com/" }, - { - "id": "getsentry", - "image": "https://avatars.githubusercontent.com/u/1396951?v=4", - "name": "Sentry", - "totalDonations": 14869, - "website": "https://sentry.io" - }, { "id": "Now4real", "image": "https://images.opencollective.com/now4real/54ca7d9/logo.png", @@ -342,11 +335,18 @@ "totalDonations": 14500, "website": "https://now4real.com/" }, + { + "id": "getsentry", + "image": "https://avatars.githubusercontent.com/u/1396951?v=4", + "name": "Sentry", + "totalDonations": 13636, + "website": "https://sentry.io" + }, { "id": "codecov", "image": "https://avatars.githubusercontent.com/u/8226205?v=4", "name": "Codecov", - "totalDonations": 14051, + "totalDonations": 12659, "website": "https://codecov.io/" }, { From 26cde721c2359df5168b8e3d7540f8d9e47fb021 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 7 Mar 2025 07:19:04 -0600 Subject: [PATCH 07/45] Update `vitest` to version 3.0.8 --- package.json | 6 +- packages/integration-tests/package.json | 4 +- yarn.lock | 136 ++++++++++++------------ 3 files changed, 73 insertions(+), 73 deletions(-) diff --git a/package.json b/package.json index 1df01108bafc..7a0c147d2746 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@typescript-eslint/types": "workspace:^", "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", - "@vitest/coverage-v8": "^3.0.7", + "@vitest/coverage-v8": "^3.0.8", "@vitest/eslint-plugin": "^1.1.36", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", @@ -125,8 +125,8 @@ "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", - "vite": "^6.2.0", - "vitest": "^3.0.7", + "vite": "^6.2.1", + "vitest": "^3.0.8", "yargs": "17.7.2" }, "resolutions": { diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 987ddaa0ce6a..88e06dc75750 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -18,7 +18,7 @@ "check-types": "npx nx typecheck" }, "devDependencies": { - "@vitest/coverage-v8": "^3.0.7", - "vitest": "^3.0.7" + "@vitest/coverage-v8": "^3.0.8", + "vitest": "^3.0.8" } } diff --git a/yarn.lock b/yarn.lock index e059629b00dc..155931630555 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5920,8 +5920,8 @@ __metadata: version: 0.0.0-use.local resolution: "@typescript-eslint/integration-tests@workspace:packages/integration-tests" dependencies: - "@vitest/coverage-v8": ^3.0.7 - vitest: ^3.0.7 + "@vitest/coverage-v8": ^3.0.8 + vitest: ^3.0.8 languageName: unknown linkType: soft @@ -6079,7 +6079,7 @@ __metadata: "@typescript-eslint/types": "workspace:^" "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" - "@vitest/coverage-v8": ^3.0.7 + "@vitest/coverage-v8": ^3.0.8 "@vitest/eslint-plugin": ^1.1.36 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 @@ -6116,8 +6116,8 @@ __metadata: tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" - vite: ^6.2.0 - vitest: ^3.0.7 + vite: ^6.2.1 + vitest: ^3.0.8 yargs: 17.7.2 languageName: unknown linkType: soft @@ -6218,9 +6218,9 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-v8@npm:^3.0.7": - version: 3.0.7 - resolution: "@vitest/coverage-v8@npm:3.0.7" +"@vitest/coverage-v8@npm:^3.0.8": + version: 3.0.8 + resolution: "@vitest/coverage-v8@npm:3.0.8" dependencies: "@ampproject/remapping": ^2.3.0 "@bcoe/v8-coverage": ^1.0.2 @@ -6235,12 +6235,12 @@ __metadata: test-exclude: ^7.0.1 tinyrainbow: ^2.0.0 peerDependencies: - "@vitest/browser": 3.0.7 - vitest: 3.0.7 + "@vitest/browser": 3.0.8 + vitest: 3.0.8 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: 46c5eb628bb1b77a3b6dc6cbf0c3968721fa5cbf9b01919f8e01252d239560a54c94797337e859a63cdf0f6606a8ad26f96c832f6b2c667890e0e026d44a4780 + checksum: 6b3f0f86f8df895f9d4e3978b11303cada2425452177b70e9b2c19fe5a56e2f5d075b7760de4d856406daa3d9f22c173145664cad75677f4085c63e290071e65 languageName: node linkType: hard @@ -6261,23 +6261,23 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:3.0.7": - version: 3.0.7 - resolution: "@vitest/expect@npm:3.0.7" +"@vitest/expect@npm:3.0.8": + version: 3.0.8 + resolution: "@vitest/expect@npm:3.0.8" dependencies: - "@vitest/spy": 3.0.7 - "@vitest/utils": 3.0.7 + "@vitest/spy": 3.0.8 + "@vitest/utils": 3.0.8 chai: ^5.2.0 tinyrainbow: ^2.0.0 - checksum: 788ead8ec0876a15bcd51eba8b5e0bc4c95e07205192096c0e33328992c351a7569b32ea2f948dbfc7b5482f301e6d505cde639ead2e80ffc9f0d683714b1bfa + checksum: f3356755ff797f763d31cd6dca5a9ca9e2bb9a9da18e3154659cf9d4b7676342c45bce53e8aa76464d28797bd9a4aa7fa75a76857927706007cbe5385522fd56 languageName: node linkType: hard -"@vitest/mocker@npm:3.0.7": - version: 3.0.7 - resolution: "@vitest/mocker@npm:3.0.7" +"@vitest/mocker@npm:3.0.8": + version: 3.0.8 + resolution: "@vitest/mocker@npm:3.0.8" dependencies: - "@vitest/spy": 3.0.7 + "@vitest/spy": 3.0.8 estree-walker: ^3.0.3 magic-string: ^0.30.17 peerDependencies: @@ -6288,57 +6288,57 @@ __metadata: optional: true vite: optional: true - checksum: 057fe03ab4f9ef40f5431a375dc812da8face4f6c6045c817402bcd0739992ff1d31de080d8ac8c4122f792b2d27c4c04a4e4e872a04c3ba2b1517bc78430130 + checksum: 9769160ca5386cc46cd627bc654168f8267b873dac078bdd33e02f22baf3be2b411f65a7cd54173756a9d88ca90c43bb61e1febc58b4dcbfc96eac529ec0583a languageName: node linkType: hard -"@vitest/pretty-format@npm:3.0.7, @vitest/pretty-format@npm:^3.0.7": - version: 3.0.7 - resolution: "@vitest/pretty-format@npm:3.0.7" +"@vitest/pretty-format@npm:3.0.8, @vitest/pretty-format@npm:^3.0.8": + version: 3.0.8 + resolution: "@vitest/pretty-format@npm:3.0.8" dependencies: tinyrainbow: ^2.0.0 - checksum: 5209282b26f57fa4bd918cba2265c34e161120f2fabc2987b0b77fb9a402a12cc5591d4e42689fcbdde5e2e1804cafc96e4e338d5b9d8b35ccbabd4cee7c8e81 + checksum: 1c0651979b44d58203b5a508e4e09d368ea3fbf2721fc555a701a7b35921b30fc363965686e026350d0870b17fb79ddcb20d386b8a51ae42bd0e82e1fe995aa9 languageName: node linkType: hard -"@vitest/runner@npm:3.0.7": - version: 3.0.7 - resolution: "@vitest/runner@npm:3.0.7" +"@vitest/runner@npm:3.0.8": + version: 3.0.8 + resolution: "@vitest/runner@npm:3.0.8" dependencies: - "@vitest/utils": 3.0.7 + "@vitest/utils": 3.0.8 pathe: ^2.0.3 - checksum: 980dd31c54b5b83e8ddc27d416999f3a8170abf3d836b2fb34a6730f942c53ad819399904bd46ea4bb89b4b0f3d0a793c135b3b83d70852859cbcad10111ae22 + checksum: 220449385e2064be48cc75ad74824e008c4ac493d6b5422433cf4ad67745802a69e55e8b81a5cd7615243e1c33f148ea5edb63b9a2b56e7c83838143a188abcc languageName: node linkType: hard -"@vitest/snapshot@npm:3.0.7": - version: 3.0.7 - resolution: "@vitest/snapshot@npm:3.0.7" +"@vitest/snapshot@npm:3.0.8": + version: 3.0.8 + resolution: "@vitest/snapshot@npm:3.0.8" dependencies: - "@vitest/pretty-format": 3.0.7 + "@vitest/pretty-format": 3.0.8 magic-string: ^0.30.17 pathe: ^2.0.3 - checksum: d516bd7b04ba34726c57f1da7779165dbd376260f856a43254a4220ea6d040606440433583234de7282e0ec24fb7f6025d2a4f7688e2daebe75ed0afcd77d44c + checksum: 1bccaf37de698a6b73a54afdcbfa2874f75bf0dcab6c00f01994294f166448856491ddaddb406325832ceb54b7623b5c35d132dbffad5575d3e0a7a0df84fa12 languageName: node linkType: hard -"@vitest/spy@npm:3.0.7": - version: 3.0.7 - resolution: "@vitest/spy@npm:3.0.7" +"@vitest/spy@npm:3.0.8": + version: 3.0.8 + resolution: "@vitest/spy@npm:3.0.8" dependencies: tinyspy: ^3.0.2 - checksum: f62537dc2632ed20464c017ca2feeb18bf2edd653bb1f6cd69ec5e6b52bb3803b1a601ca56777b0c463ce8d960294a0db9198c106dd6048d48ee5e7d09eaba59 + checksum: 2e35b0fb0434baff243b26ebf4b57665b07e6f51efedd70ebb9422cd30942893612f6aed68c32956212f3f22d4ef335ac0d12987480d536c12892e0a45255f34 languageName: node linkType: hard -"@vitest/utils@npm:3.0.7": - version: 3.0.7 - resolution: "@vitest/utils@npm:3.0.7" +"@vitest/utils@npm:3.0.8": + version: 3.0.8 + resolution: "@vitest/utils@npm:3.0.8" dependencies: - "@vitest/pretty-format": 3.0.7 + "@vitest/pretty-format": 3.0.8 loupe: ^3.1.3 tinyrainbow: ^2.0.0 - checksum: 1a90d3444f9990484e6196d7cc1ceb0fcd8ca587319c0307d2e838f038ec45b7a711f8a76cbfb512fe13c6c3691e1d39d1d69158e27432724ec62b308e17f6e9 + checksum: 20bac67702c8f32316dba3af165db23bd588913050cabaf8f86512a26389078c84eee7900dc2da2fcca452c540f8a55c42dd48a8cc808016a021f6dd41c1e31f languageName: node linkType: hard @@ -20588,9 +20588,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:3.0.7": - version: 3.0.7 - resolution: "vite-node@npm:3.0.7" +"vite-node@npm:3.0.8": + version: 3.0.8 + resolution: "vite-node@npm:3.0.8" dependencies: cac: ^6.7.14 debug: ^4.4.0 @@ -20599,13 +20599,13 @@ __metadata: vite: ^5.0.0 || ^6.0.0 bin: vite-node: vite-node.mjs - checksum: 90a3dd0e1b620cdf0c20272739cd1035af20c9b7606c1a093b3368b2c7c59cfd2327c27faabfbc9b293ae5d9a3318aeb40a2a974fe42807167e4cec625d9759e + checksum: 58532ba5bab923dedad7c28fb8b37afc4ef009a8b62dde31f38919958bc3cd47d580b56ad82f321873c3d0d67e691a8eac10c26b06c70843eb357ed2105a44c2 languageName: node linkType: hard -"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.0": - version: 6.2.0 - resolution: "vite@npm:6.2.0" +"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.1": + version: 6.2.1 + resolution: "vite@npm:6.2.1" dependencies: esbuild: ^0.25.0 fsevents: ~2.3.3 @@ -20651,21 +20651,21 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 0f2b6232fe94184885dd025609995874ac75279a85596a4053a283bd8bd0391f8ed3e7efb3e8f94073811a2b237c626e850990b04d2c7a1dc33f05d150f36bcd + checksum: d7379a9870c888681f7e4a861095e7f568ecd4cb99a5eed2dec65dc205ce863783d45c66a1a275868e23732087009533eadec999061c1ddef96aa8aaa0dcf6d2 languageName: node linkType: hard -"vitest@npm:^3.0.7": - version: 3.0.7 - resolution: "vitest@npm:3.0.7" - dependencies: - "@vitest/expect": 3.0.7 - "@vitest/mocker": 3.0.7 - "@vitest/pretty-format": ^3.0.7 - "@vitest/runner": 3.0.7 - "@vitest/snapshot": 3.0.7 - "@vitest/spy": 3.0.7 - "@vitest/utils": 3.0.7 +"vitest@npm:^3.0.8": + version: 3.0.8 + resolution: "vitest@npm:3.0.8" + dependencies: + "@vitest/expect": 3.0.8 + "@vitest/mocker": 3.0.8 + "@vitest/pretty-format": ^3.0.8 + "@vitest/runner": 3.0.8 + "@vitest/snapshot": 3.0.8 + "@vitest/spy": 3.0.8 + "@vitest/utils": 3.0.8 chai: ^5.2.0 debug: ^4.4.0 expect-type: ^1.1.0 @@ -20677,14 +20677,14 @@ __metadata: tinypool: ^1.0.2 tinyrainbow: ^2.0.0 vite: ^5.0.0 || ^6.0.0 - vite-node: 3.0.7 + vite-node: 3.0.8 why-is-node-running: ^2.3.0 peerDependencies: "@edge-runtime/vm": "*" "@types/debug": ^4.1.12 "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - "@vitest/browser": 3.0.7 - "@vitest/ui": 3.0.7 + "@vitest/browser": 3.0.8 + "@vitest/ui": 3.0.8 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -20704,7 +20704,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: f384103ce5fdd5f0e4e3fbbb8e015ce887f1af6399a31a4fb8906407a6f4925b2e1708caba014c81f1c4a59627e944a65c7dc4de2819e7fe0b044796c57630ae + checksum: e4786f6127a261d61fec20c1a9cc2acae514696fc382d0cd9c62d83d7d872eaadf4d7d09495a04a6c5a8879306f197a35729c7c6c1929ef870ea063e4be87847 languageName: node linkType: hard From 3cb652d93baa2ac5eb7f45f43026e03f5cd1e29f Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 7 Mar 2025 07:19:49 -0600 Subject: [PATCH 08/45] Remove `vitest/no-done-callback` as it is deprecated. --- eslint.config.mjs | 1 - 1 file changed, 1 deletion(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 83e76c0264e5..6ee70f45bf44 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -435,7 +435,6 @@ export default tseslint.config( '@typescript-eslint/no-unsafe-return': 'off', 'vitest/no-alias-methods': 'error', 'vitest/no-disabled-tests': 'error', - 'vitest/no-done-callback': 'error', 'vitest/no-focused-tests': 'error', 'vitest/no-identical-title': 'error', 'vitest/no-test-prefixes': 'error', From 530039cf2a7394482799310795f5cddbc38f65a4 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 7 Mar 2025 07:23:50 -0600 Subject: [PATCH 09/45] Fix Vitest config --- packages/integration-tests/package.json | 2 +- packages/integration-tests/project.json | 3 +++ packages/integration-tests/vitest.config.mts | 13 +++++++---- vitest.config.base.mts | 7 ++++++ vitest.config.mts | 23 +++++++++++++++----- 5 files changed, 38 insertions(+), 10 deletions(-) diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 88e06dc75750..28ec4a475f99 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -14,7 +14,7 @@ "scripts": { "format": "prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore", "lint": "npx nx lint", - "test": "vitest --run", + "test": "vitest --run --config=$INIT_CWD/vitest.config.mts", "check-types": "npx nx typecheck" }, "devDependencies": { diff --git a/packages/integration-tests/project.json b/packages/integration-tests/project.json index c5eebfd10f9e..a34197dff37d 100644 --- a/packages/integration-tests/project.json +++ b/packages/integration-tests/project.json @@ -9,6 +9,9 @@ "lint": { "executor": "@nx/eslint:lint", "outputs": ["{options.outputFile}"] + }, + "test": { + "executor": "@nx/vite:test" } } } diff --git a/packages/integration-tests/vitest.config.mts b/packages/integration-tests/vitest.config.mts index b64df6ea693f..3d1c8d7f7a38 100644 --- a/packages/integration-tests/vitest.config.mts +++ b/packages/integration-tests/vitest.config.mts @@ -1,4 +1,5 @@ import * as os from 'node:os'; +import * as path from 'node:path'; import { defineConfig, mergeConfig } from 'vitest/config'; import { vitestBaseConfig } from '../../vitest.config.base.mjs'; @@ -9,13 +10,17 @@ const vitestConfig = mergeConfig( defineConfig({ test: { - dir: `${import.meta.dirname}/tests`, - - fileParallelism: os.platform() !== 'win32', + dir: path.join(import.meta.dirname, 'tests'), globalSetup: ['./tools/pack-packages.ts'], - name: packageJson.name, + name: packageJson.name.split('/').pop(), + + poolOptions: { + forks: { + singleFork: os.platform() === 'win32', + }, + }, root: import.meta.dirname, }, diff --git a/vitest.config.base.mts b/vitest.config.base.mts index 2a84af748ada..fa54b0c82d8e 100644 --- a/vitest.config.base.mts +++ b/vitest.config.base.mts @@ -1,8 +1,11 @@ import type { ViteUserConfig } from 'vitest/config'; +import { coverageConfigDefaults } from 'vitest/config'; + export const vitestBaseConfig = { test: { coverage: { + exclude: [...coverageConfigDefaults.exclude, '**/fixtures/'], extension: ['.ts', '.tsx', '.js', '.jsx'], include: ['src'], reporter: [ @@ -11,10 +14,14 @@ export const vitestBaseConfig = { ], }, globals: true, + include: ['**/*.test.?(c|m)ts?(x)'], reporters: process.env.GITHUB_ACTIONS ? [['github-actions'], ['verbose']] : [['verbose']], setupFiles: ['console-fail-test/setup'], + typecheck: { + include: ['**/*.test-d.?(c|m)ts?(x)'], + }, watch: false, }, } as const satisfies ViteUserConfig; diff --git a/vitest.config.mts b/vitest.config.mts index 7d3e2c751551..0351e652cf35 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -1,4 +1,5 @@ -import { defaultExclude, defineConfig, mergeConfig } from 'vitest/config'; +import * as path from 'node:path'; +import { defineConfig, mergeConfig } from 'vitest/config'; import { vitestBaseConfig } from './vitest.config.base.mjs'; @@ -7,13 +8,25 @@ const vitestConfig = mergeConfig( defineConfig({ test: { - exclude: [ - ...defaultExclude, - 'packages/rule-tester/tests/eslint-base/eslint-base.test.js', - ], + coverage: { + exclude: [ + 'packages/{website?(-eslint),?(rule-schema-to-typescript-)types}/src', + 'packages/ast-spec/src/**/fixtures', + ], + + include: ['packages/*/src'], + }, + + dir: path.join(import.meta.dirname, 'packages'), + name: 'root', root: import.meta.dirname, + + workspace: [ + 'packages/*/vitest.config.mts', + '!packages/{website?(-eslint),?(rule-schema-to-typescript-)types}/vitest.config.mts', + ], }, }), ); From 487271f1418c8e1177cc27b1a1479fc198ab9ab3 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Sat, 8 Mar 2025 03:00:00 -0600 Subject: [PATCH 10/45] Include `vitest.config.mts` in `tsconfig.spec.json` --- packages/integration-tests/tsconfig.spec.json | 5 ++++- packages/typescript-estree/tsconfig.spec.json | 1 + tsconfig.base.json | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/integration-tests/tsconfig.spec.json b/packages/integration-tests/tsconfig.spec.json index 33c53866943e..1b403cf689a2 100644 --- a/packages/integration-tests/tsconfig.spec.json +++ b/packages/integration-tests/tsconfig.spec.json @@ -3,10 +3,13 @@ "compilerOptions": { "outDir": "../../dist/out-tsc/packages/integration-tests", "module": "NodeNext", - "resolveJsonModule": true, "types": ["node", "vitest/globals", "vitest/importMeta"] }, "include": [ + "../../vitest.config.base.mts", + "../../package.json", + "vitest.config.mts", + "package.json", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts", diff --git a/packages/typescript-estree/tsconfig.spec.json b/packages/typescript-estree/tsconfig.spec.json index 5ab0499df71e..0ebfae73f2b1 100644 --- a/packages/typescript-estree/tsconfig.spec.json +++ b/packages/typescript-estree/tsconfig.spec.json @@ -8,6 +8,7 @@ }, "include": [ "jest.config.js", + "../../package.json", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts", diff --git a/tsconfig.base.json b/tsconfig.base.json index 0891cd26d2bd..cac35772e97e 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -21,7 +21,8 @@ "noImplicitReturns": true, "pretty": true, "removeComments": false, - "resolveJsonModule": false, + "resolveJsonModule": true, + "rootDir": "./", "skipDefaultLibCheck": false, "skipLibCheck": true, "sourceMap": false, From 39e3eb6b0a187a68bf13821cfbc041f0b3197e3d Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Sat, 8 Mar 2025 03:41:05 -0600 Subject: [PATCH 11/45] Add `vitest.config.mts` files to ESLint configuration --- eslint.config.mjs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 6ee70f45bf44..e132cce0ceaa 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -72,7 +72,6 @@ export default tseslint.config( '.nx/', '.yarn/', '**/jest.config.js', - '**/vitest.config.mts', '**/node_modules/**', '**/dist/**', '**/fixtures/**', @@ -476,7 +475,13 @@ export default tseslint.config( }, }, { - files: ['eslint.config.{js,cjs,mjs}', 'knip.ts', 'packages/*/src/index.ts'], + files: [ + 'eslint.config.{js,cjs,mjs}', + 'knip.ts', + 'packages/*/src/index.ts', + 'vitest.config.mts', + 'packages/*/vitest.config.mts', + ], rules: { // requirement 'import/no-default-export': 'off', From 5529d489dd004e412d96610417bb3479fe72e971 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 10 Mar 2025 06:07:59 -0500 Subject: [PATCH 12/45] Use `defineProject` instead of `defineConfig` --- packages/integration-tests/vitest.config.mts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/integration-tests/vitest.config.mts b/packages/integration-tests/vitest.config.mts index 3d1c8d7f7a38..da32a4fcb4a1 100644 --- a/packages/integration-tests/vitest.config.mts +++ b/packages/integration-tests/vitest.config.mts @@ -1,6 +1,6 @@ import * as os from 'node:os'; import * as path from 'node:path'; -import { defineConfig, mergeConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; import { vitestBaseConfig } from '../../vitest.config.base.mjs'; import packageJson from './package.json' with { type: 'json' }; @@ -8,12 +8,10 @@ import packageJson from './package.json' with { type: 'json' }; const vitestConfig = mergeConfig( vitestBaseConfig, - defineConfig({ + defineProject({ test: { dir: path.join(import.meta.dirname, 'tests'), - globalSetup: ['./tools/pack-packages.ts'], - name: packageJson.name.split('/').pop(), poolOptions: { From c8211375660ceab72ec301306be104f05662ad4a Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 10 Mar 2025 06:41:05 -0500 Subject: [PATCH 13/45] Simplify `workspace` and `coverage.exclude` --- vitest.config.base.mts | 6 ++++++ vitest.config.mts | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/vitest.config.base.mts b/vitest.config.base.mts index fa54b0c82d8e..98b46cdb5033 100644 --- a/vitest.config.base.mts +++ b/vitest.config.base.mts @@ -8,20 +8,26 @@ export const vitestBaseConfig = { exclude: [...coverageConfigDefaults.exclude, '**/fixtures/'], extension: ['.ts', '.tsx', '.js', '.jsx'], include: ['src'], + reporter: [ ['lcov'], process.env.GITHUB_ACTIONS ? ['text-summary'] : ['none'], ], }, + globals: true, include: ['**/*.test.?(c|m)ts?(x)'], + reporters: process.env.GITHUB_ACTIONS ? [['github-actions'], ['verbose']] : [['verbose']], + setupFiles: ['console-fail-test/setup'], + typecheck: { include: ['**/*.test-d.?(c|m)ts?(x)'], }, + watch: false, }, } as const satisfies ViteUserConfig; diff --git a/vitest.config.mts b/vitest.config.mts index 0351e652cf35..3e53a620d008 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -10,7 +10,10 @@ const vitestConfig = mergeConfig( test: { coverage: { exclude: [ - 'packages/{website?(-eslint),?(rule-schema-to-typescript-)types}/src', + 'packages/website/src', + 'packages/website-eslint/src', + 'packages/rule-schema-to-typescript-types/src', + 'packages/types/src', 'packages/ast-spec/src/**/fixtures', ], @@ -18,14 +21,15 @@ const vitestConfig = mergeConfig( }, dir: path.join(import.meta.dirname, 'packages'), - name: 'root', - root: import.meta.dirname, workspace: [ 'packages/*/vitest.config.mts', - '!packages/{website?(-eslint),?(rule-schema-to-typescript-)types}/vitest.config.mts', + '!packages/website/vitest.config.mts', + '!packages/website-eslint/vitest.config.mts', + '!packages/rule-schema-to-typescript-types/vitest.config.mts', + '!packages/types/vitest.config.mts', ], }, }), From 6eea50b55909b8f74a5e1e73ee14097d48b405a2 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 10 Mar 2025 06:45:55 -0500 Subject: [PATCH 14/45] Explicitly enable `resolveJsonModule` --- packages/integration-tests/tsconfig.spec.json | 1 + tsconfig.base.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/integration-tests/tsconfig.spec.json b/packages/integration-tests/tsconfig.spec.json index 1b403cf689a2..9b418b054390 100644 --- a/packages/integration-tests/tsconfig.spec.json +++ b/packages/integration-tests/tsconfig.spec.json @@ -3,6 +3,7 @@ "compilerOptions": { "outDir": "../../dist/out-tsc/packages/integration-tests", "module": "NodeNext", + "resolveJsonModule": true, "types": ["node", "vitest/globals", "vitest/importMeta"] }, "include": [ diff --git a/tsconfig.base.json b/tsconfig.base.json index cac35772e97e..8f80694b00b0 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -21,7 +21,7 @@ "noImplicitReturns": true, "pretty": true, "removeComments": false, - "resolveJsonModule": true, + "resolveJsonModule": false, "rootDir": "./", "skipDefaultLibCheck": false, "skipLibCheck": true, From 47971cdf59784680c83eb08df9e753484a66def0 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 10 Mar 2025 08:07:31 -0500 Subject: [PATCH 15/45] Use `.replace` instead of `.split` --- packages/integration-tests/vitest.config.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/integration-tests/vitest.config.mts b/packages/integration-tests/vitest.config.mts index da32a4fcb4a1..8bec0905c4b7 100644 --- a/packages/integration-tests/vitest.config.mts +++ b/packages/integration-tests/vitest.config.mts @@ -12,7 +12,7 @@ const vitestConfig = mergeConfig( test: { dir: path.join(import.meta.dirname, 'tests'), globalSetup: ['./tools/pack-packages.ts'], - name: packageJson.name.split('/').pop(), + name: packageJson.name.replace('@typescript-eslint/', ''), poolOptions: { forks: { From 4ac2aba6955013d19c73965112527ff4ead0d2ff Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 10 Mar 2025 08:29:36 -0500 Subject: [PATCH 16/45] Type check `vitest.config.mts` files using project references. --- packages/ast-spec/project.json | 3 +++ packages/integration-tests/tsconfig.spec.json | 8 +++++--- packages/typescript-estree/tsconfig.spec.json | 1 - project.json | 3 ++- tsconfig.base.json | 1 - tsconfig.repo-config-files.json | 6 +++++- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/ast-spec/project.json b/packages/ast-spec/project.json index f726b2e798f7..bb045ad1f6be 100644 --- a/packages/ast-spec/project.json +++ b/packages/ast-spec/project.json @@ -15,6 +15,9 @@ "lint": { "executor": "@nx/eslint:lint", "outputs": ["{options.outputFile}"] + }, + "typecheck": { + "dependsOn": ["typescript-estree:build"] } } } diff --git a/packages/integration-tests/tsconfig.spec.json b/packages/integration-tests/tsconfig.spec.json index 9b418b054390..af608ad2d885 100644 --- a/packages/integration-tests/tsconfig.spec.json +++ b/packages/integration-tests/tsconfig.spec.json @@ -7,8 +7,6 @@ "types": ["node", "vitest/globals", "vitest/importMeta"] }, "include": [ - "../../vitest.config.base.mts", - "../../package.json", "vitest.config.mts", "package.json", "src/**/*.test.ts", @@ -18,5 +16,9 @@ "tools", "typings" ], - "references": [] + "references": [ + { + "path": "../../tsconfig.repo-config-files.json" + } + ] } diff --git a/packages/typescript-estree/tsconfig.spec.json b/packages/typescript-estree/tsconfig.spec.json index 0ebfae73f2b1..5ab0499df71e 100644 --- a/packages/typescript-estree/tsconfig.spec.json +++ b/packages/typescript-estree/tsconfig.spec.json @@ -8,7 +8,6 @@ }, "include": [ "jest.config.js", - "../../package.json", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts", diff --git a/project.json b/project.json index 766cb5ca8849..4152bbb4fc71 100644 --- a/project.json +++ b/project.json @@ -4,7 +4,8 @@ "// These targets are used for repo level utils and checking repo files which do not belong to specific published packages": {}, "targets": { "typecheck": { - "command": "tsc -b ./tsconfig.repo-config-files.json" + "command": "tsc -b ./tsconfig.repo-config-files.json", + "dependsOn": ["typescript-eslint:build"] }, "lint": { "command": "eslint . --ignore-pattern=packages --cache" diff --git a/tsconfig.base.json b/tsconfig.base.json index 8f80694b00b0..0891cd26d2bd 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -22,7 +22,6 @@ "pretty": true, "removeComments": false, "resolveJsonModule": false, - "rootDir": "./", "skipDefaultLibCheck": false, "skipLibCheck": true, "sourceMap": false, diff --git a/tsconfig.repo-config-files.json b/tsconfig.repo-config-files.json index 58efac7250b6..2b9ada215695 100644 --- a/tsconfig.repo-config-files.json +++ b/tsconfig.repo-config-files.json @@ -3,7 +3,6 @@ "compilerOptions": { "outDir": "dist/out-tsc/root/eslint", "types": ["@types/node"], - "noEmit": true, "allowJs": true, "allowImportingTsExtensions": true }, @@ -19,5 +18,10 @@ "jest.preset.js", "knip.ts", ".github/**/*.js" + ], + "references": [ + { + "path": "./packages/typescript-eslint/tsconfig.build.json" + } ] } From aeaab0889b1ab01bb9f58a1ef3c82bbe36f844d7 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 10 Mar 2025 11:16:12 -0500 Subject: [PATCH 17/45] Fix `@nx/vite/plugin` usage in `nx.json` --- nx.json | 1 + 1 file changed, 1 insertion(+) diff --git a/nx.json b/nx.json index e94fa87429fa..e45c6788c9cc 100644 --- a/nx.json +++ b/nx.json @@ -17,6 +17,7 @@ }, { "plugin": "@nx/vite/plugin", + "include": ["packages/*"], "options": { "buildTargetName": "vite:build", "testTargetName": "test", From 59f3be54cad64ba66900deae08bce1bce4c1113b Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 10 Mar 2025 21:20:07 -0500 Subject: [PATCH 18/45] Update `@vitest/eslint-plugin` to version 1.1.37 --- package.json | 2 +- yarn.lock | 491 +++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 377 insertions(+), 116 deletions(-) diff --git a/package.json b/package.json index 7a0c147d2746..b4286e9ac131 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", "@vitest/coverage-v8": "^3.0.8", - "@vitest/eslint-plugin": "^1.1.36", + "@vitest/eslint-plugin": "^1.1.37", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", "cspell": "^8.15.2", diff --git a/yarn.lock b/yarn.lock index 23b359b7e547..b760ccfde75c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3048,6 +3048,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/aix-ppc64@npm:0.25.1" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-arm64@npm:0.20.2" @@ -3062,6 +3069,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-arm64@npm:0.25.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-arm@npm:0.20.2" @@ -3076,6 +3090,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-arm@npm:0.25.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/android-x64@npm:0.20.2" @@ -3090,6 +3111,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/android-x64@npm:0.25.1" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/darwin-arm64@npm:0.20.2" @@ -3104,6 +3132,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/darwin-arm64@npm:0.25.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/darwin-x64@npm:0.20.2" @@ -3118,6 +3153,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/darwin-x64@npm:0.25.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/freebsd-arm64@npm:0.20.2" @@ -3132,6 +3174,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/freebsd-arm64@npm:0.25.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/freebsd-x64@npm:0.20.2" @@ -3146,6 +3195,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/freebsd-x64@npm:0.25.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-arm64@npm:0.20.2" @@ -3160,6 +3216,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-arm64@npm:0.25.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-arm@npm:0.20.2" @@ -3174,6 +3237,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-arm@npm:0.25.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-ia32@npm:0.20.2" @@ -3188,6 +3258,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-ia32@npm:0.25.1" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-loong64@npm:0.20.2" @@ -3202,6 +3279,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-loong64@npm:0.25.1" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-mips64el@npm:0.20.2" @@ -3216,6 +3300,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-mips64el@npm:0.25.1" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-ppc64@npm:0.20.2" @@ -3230,6 +3321,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-ppc64@npm:0.25.1" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-riscv64@npm:0.20.2" @@ -3244,6 +3342,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-riscv64@npm:0.25.1" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-s390x@npm:0.20.2" @@ -3258,6 +3363,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-s390x@npm:0.25.1" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/linux-x64@npm:0.20.2" @@ -3272,6 +3384,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/linux-x64@npm:0.25.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/netbsd-arm64@npm:0.25.0" @@ -3279,6 +3398,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/netbsd-arm64@npm:0.25.1" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/netbsd-x64@npm:0.20.2" @@ -3293,6 +3419,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/netbsd-x64@npm:0.25.1" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.25.0": version: 0.25.0 resolution: "@esbuild/openbsd-arm64@npm:0.25.0" @@ -3300,6 +3433,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/openbsd-arm64@npm:0.25.1" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/openbsd-x64@npm:0.20.2" @@ -3314,6 +3454,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/openbsd-x64@npm:0.25.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/sunos-x64@npm:0.20.2" @@ -3328,6 +3475,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/sunos-x64@npm:0.25.1" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-arm64@npm:0.20.2" @@ -3342,6 +3496,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-arm64@npm:0.25.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-ia32@npm:0.20.2" @@ -3356,6 +3517,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-ia32@npm:0.25.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/win32-x64@npm:0.20.2" @@ -3370,6 +3538,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.25.1": + version: 0.25.1 + resolution: "@esbuild/win32-x64@npm:0.25.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-plugin-eslint-comments@npm:^4.4.1": version: 4.4.1 resolution: "@eslint-community/eslint-plugin-eslint-comments@npm:4.4.1" @@ -4521,135 +4696,135 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.34.9" +"@rollup/rollup-android-arm-eabi@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.35.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-android-arm64@npm:4.34.9" +"@rollup/rollup-android-arm64@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-android-arm64@npm:4.35.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-darwin-arm64@npm:4.34.9" +"@rollup/rollup-darwin-arm64@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.35.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-darwin-x64@npm:4.34.9" +"@rollup/rollup-darwin-x64@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.35.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.34.9" +"@rollup/rollup-freebsd-arm64@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.35.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-freebsd-x64@npm:4.34.9" +"@rollup/rollup-freebsd-x64@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.35.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.9" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.35.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.34.9" +"@rollup/rollup-linux-arm-musleabihf@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.35.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.34.9" +"@rollup/rollup-linux-arm64-gnu@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.35.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.34.9" +"@rollup/rollup-linux-arm64-musl@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.35.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.9" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.35.0" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.34.9" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.35.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.34.9" +"@rollup/rollup-linux-riscv64-gnu@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.35.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.34.9" +"@rollup/rollup-linux-s390x-gnu@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.35.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.34.9" +"@rollup/rollup-linux-x64-gnu@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.35.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.34.9" +"@rollup/rollup-linux-x64-musl@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.35.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.34.9" +"@rollup/rollup-win32-arm64-msvc@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.35.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.34.9" +"@rollup/rollup-win32-ia32-msvc@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.35.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.34.9": - version: 4.34.9 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.34.9" +"@rollup/rollup-win32-x64-msvc@npm:4.35.0": + version: 4.35.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.35.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6080,7 +6255,7 @@ __metadata: "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" "@vitest/coverage-v8": ^3.0.8 - "@vitest/eslint-plugin": ^1.1.36 + "@vitest/eslint-plugin": ^1.1.37 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 cspell: ^8.15.2 @@ -6244,9 +6419,9 @@ __metadata: languageName: node linkType: hard -"@vitest/eslint-plugin@npm:^1.1.36": - version: 1.1.36 - resolution: "@vitest/eslint-plugin@npm:1.1.36" +"@vitest/eslint-plugin@npm:^1.1.37": + version: 1.1.37 + resolution: "@vitest/eslint-plugin@npm:1.1.37" peerDependencies: "@typescript-eslint/utils": ^8.24.0 eslint: ">= 8.57.0" @@ -6257,7 +6432,7 @@ __metadata: optional: true vitest: optional: true - checksum: 799db5753310124b289e09635a266857bcae003822c4da49a60891f52fea78c4b89f3754c20d9a0a5e963e7ba975acf4633cf19eafa0806fa08d059466232887 + checksum: 697fec7491e943d08ee5169e00041597b56db2d9a27740639e9051b254f4115af423ea81ca47b6df5cf4ac5de9d651f43bc1f7be19731eedfce6a1262133fd9f languageName: node linkType: hard @@ -9816,35 +9991,35 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.25.0, esbuild@npm:~0.25.0": - version: 0.25.0 - resolution: "esbuild@npm:0.25.0" - dependencies: - "@esbuild/aix-ppc64": 0.25.0 - "@esbuild/android-arm": 0.25.0 - "@esbuild/android-arm64": 0.25.0 - "@esbuild/android-x64": 0.25.0 - "@esbuild/darwin-arm64": 0.25.0 - "@esbuild/darwin-x64": 0.25.0 - "@esbuild/freebsd-arm64": 0.25.0 - "@esbuild/freebsd-x64": 0.25.0 - "@esbuild/linux-arm": 0.25.0 - "@esbuild/linux-arm64": 0.25.0 - "@esbuild/linux-ia32": 0.25.0 - "@esbuild/linux-loong64": 0.25.0 - "@esbuild/linux-mips64el": 0.25.0 - "@esbuild/linux-ppc64": 0.25.0 - "@esbuild/linux-riscv64": 0.25.0 - "@esbuild/linux-s390x": 0.25.0 - "@esbuild/linux-x64": 0.25.0 - "@esbuild/netbsd-arm64": 0.25.0 - "@esbuild/netbsd-x64": 0.25.0 - "@esbuild/openbsd-arm64": 0.25.0 - "@esbuild/openbsd-x64": 0.25.0 - "@esbuild/sunos-x64": 0.25.0 - "@esbuild/win32-arm64": 0.25.0 - "@esbuild/win32-ia32": 0.25.0 - "@esbuild/win32-x64": 0.25.0 +"esbuild@npm:^0.25.0": + version: 0.25.1 + resolution: "esbuild@npm:0.25.1" + dependencies: + "@esbuild/aix-ppc64": 0.25.1 + "@esbuild/android-arm": 0.25.1 + "@esbuild/android-arm64": 0.25.1 + "@esbuild/android-x64": 0.25.1 + "@esbuild/darwin-arm64": 0.25.1 + "@esbuild/darwin-x64": 0.25.1 + "@esbuild/freebsd-arm64": 0.25.1 + "@esbuild/freebsd-x64": 0.25.1 + "@esbuild/linux-arm": 0.25.1 + "@esbuild/linux-arm64": 0.25.1 + "@esbuild/linux-ia32": 0.25.1 + "@esbuild/linux-loong64": 0.25.1 + "@esbuild/linux-mips64el": 0.25.1 + "@esbuild/linux-ppc64": 0.25.1 + "@esbuild/linux-riscv64": 0.25.1 + "@esbuild/linux-s390x": 0.25.1 + "@esbuild/linux-x64": 0.25.1 + "@esbuild/netbsd-arm64": 0.25.1 + "@esbuild/netbsd-x64": 0.25.1 + "@esbuild/openbsd-arm64": 0.25.1 + "@esbuild/openbsd-x64": 0.25.1 + "@esbuild/sunos-x64": 0.25.1 + "@esbuild/win32-arm64": 0.25.1 + "@esbuild/win32-ia32": 0.25.1 + "@esbuild/win32-x64": 0.25.1 dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -9898,7 +10073,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 4d1e0cb7c059a373ea3edb20ca5efcea29efada03e4ea82b2b8ab1f2f062e4791e9744213308775d26e07a0225a7d8250da93da5c8e07ef61bb93d58caab8cf9 + checksum: c84e209259273fca0f8ba7cd00974dfff53eb3fcce5ff0f987d8231a5b49f22c16fa954f0bf06f07b00bd368270d8274feb5a09d7d5dfae0891a47dda24455a2 languageName: node linkType: hard @@ -9982,6 +10157,92 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:~0.25.0": + version: 0.25.0 + resolution: "esbuild@npm:0.25.0" + dependencies: + "@esbuild/aix-ppc64": 0.25.0 + "@esbuild/android-arm": 0.25.0 + "@esbuild/android-arm64": 0.25.0 + "@esbuild/android-x64": 0.25.0 + "@esbuild/darwin-arm64": 0.25.0 + "@esbuild/darwin-x64": 0.25.0 + "@esbuild/freebsd-arm64": 0.25.0 + "@esbuild/freebsd-x64": 0.25.0 + "@esbuild/linux-arm": 0.25.0 + "@esbuild/linux-arm64": 0.25.0 + "@esbuild/linux-ia32": 0.25.0 + "@esbuild/linux-loong64": 0.25.0 + "@esbuild/linux-mips64el": 0.25.0 + "@esbuild/linux-ppc64": 0.25.0 + "@esbuild/linux-riscv64": 0.25.0 + "@esbuild/linux-s390x": 0.25.0 + "@esbuild/linux-x64": 0.25.0 + "@esbuild/netbsd-arm64": 0.25.0 + "@esbuild/netbsd-x64": 0.25.0 + "@esbuild/openbsd-arm64": 0.25.0 + "@esbuild/openbsd-x64": 0.25.0 + "@esbuild/sunos-x64": 0.25.0 + "@esbuild/win32-arm64": 0.25.0 + "@esbuild/win32-ia32": 0.25.0 + "@esbuild/win32-x64": 0.25.0 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 4d1e0cb7c059a373ea3edb20ca5efcea29efada03e4ea82b2b8ab1f2f062e4791e9744213308775d26e07a0225a7d8250da93da5c8e07ef61bb93d58caab8cf9 + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -18193,28 +18454,28 @@ __metadata: linkType: hard "rollup@npm:^4.30.1": - version: 4.34.9 - resolution: "rollup@npm:4.34.9" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.34.9 - "@rollup/rollup-android-arm64": 4.34.9 - "@rollup/rollup-darwin-arm64": 4.34.9 - "@rollup/rollup-darwin-x64": 4.34.9 - "@rollup/rollup-freebsd-arm64": 4.34.9 - "@rollup/rollup-freebsd-x64": 4.34.9 - "@rollup/rollup-linux-arm-gnueabihf": 4.34.9 - "@rollup/rollup-linux-arm-musleabihf": 4.34.9 - "@rollup/rollup-linux-arm64-gnu": 4.34.9 - "@rollup/rollup-linux-arm64-musl": 4.34.9 - "@rollup/rollup-linux-loongarch64-gnu": 4.34.9 - "@rollup/rollup-linux-powerpc64le-gnu": 4.34.9 - "@rollup/rollup-linux-riscv64-gnu": 4.34.9 - "@rollup/rollup-linux-s390x-gnu": 4.34.9 - "@rollup/rollup-linux-x64-gnu": 4.34.9 - "@rollup/rollup-linux-x64-musl": 4.34.9 - "@rollup/rollup-win32-arm64-msvc": 4.34.9 - "@rollup/rollup-win32-ia32-msvc": 4.34.9 - "@rollup/rollup-win32-x64-msvc": 4.34.9 + version: 4.35.0 + resolution: "rollup@npm:4.35.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.35.0 + "@rollup/rollup-android-arm64": 4.35.0 + "@rollup/rollup-darwin-arm64": 4.35.0 + "@rollup/rollup-darwin-x64": 4.35.0 + "@rollup/rollup-freebsd-arm64": 4.35.0 + "@rollup/rollup-freebsd-x64": 4.35.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.35.0 + "@rollup/rollup-linux-arm-musleabihf": 4.35.0 + "@rollup/rollup-linux-arm64-gnu": 4.35.0 + "@rollup/rollup-linux-arm64-musl": 4.35.0 + "@rollup/rollup-linux-loongarch64-gnu": 4.35.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.35.0 + "@rollup/rollup-linux-riscv64-gnu": 4.35.0 + "@rollup/rollup-linux-s390x-gnu": 4.35.0 + "@rollup/rollup-linux-x64-gnu": 4.35.0 + "@rollup/rollup-linux-x64-musl": 4.35.0 + "@rollup/rollup-win32-arm64-msvc": 4.35.0 + "@rollup/rollup-win32-ia32-msvc": 4.35.0 + "@rollup/rollup-win32-x64-msvc": 4.35.0 "@types/estree": 1.0.6 fsevents: ~2.3.2 dependenciesMeta: @@ -18260,7 +18521,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: ed7a5e382de5fe872abffdab614b7f745cbed7328cf4ced560c4d09214b3d30e167f8c7df9e8b63489497bdf3a6be07a2474f9ff3195026bdf2d49cdbeac38ae + checksum: 1139d35809d1aa4ac8bff49fd0c819bcce86ce6e8e259fd0cacac086998938b5ad44f523d4414b6565ebc0338e7d2de0ad3efa03e26738fe8bd05f1baf72e980 languageName: node linkType: hard From d56610e06eab1458004d78ec67b4c333e85e18e5 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Wed, 12 Mar 2025 00:41:04 -0500 Subject: [PATCH 19/45] Fix Vitest config --- packages/integration-tests/vitest.config.mts | 2 ++ vitest.config.base.mts | 9 ++++----- vitest.config.mts | 2 ++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/integration-tests/vitest.config.mts b/packages/integration-tests/vitest.config.mts index 8bec0905c4b7..97c158e968c5 100644 --- a/packages/integration-tests/vitest.config.mts +++ b/packages/integration-tests/vitest.config.mts @@ -9,6 +9,8 @@ const vitestConfig = mergeConfig( vitestBaseConfig, defineProject({ + root: import.meta.dirname, + test: { dir: path.join(import.meta.dirname, 'tests'), globalSetup: ['./tools/pack-packages.ts'], diff --git a/vitest.config.base.mts b/vitest.config.base.mts index 98b46cdb5033..b3c18c1a5649 100644 --- a/vitest.config.base.mts +++ b/vitest.config.base.mts @@ -9,17 +9,16 @@ export const vitestBaseConfig = { extension: ['.ts', '.tsx', '.js', '.jsx'], include: ['src'], - reporter: [ - ['lcov'], - process.env.GITHUB_ACTIONS ? ['text-summary'] : ['none'], - ], + reporter: process.env.GITHUB_ACTIONS + ? [['lcov'], ['text'], ['text-summary']] + : [['lcov']], }, globals: true, include: ['**/*.test.?(c|m)ts?(x)'], reporters: process.env.GITHUB_ACTIONS - ? [['github-actions'], ['verbose']] + ? [['verbose'], ['github-actions']] : [['verbose']], setupFiles: ['console-fail-test/setup'], diff --git a/vitest.config.mts b/vitest.config.mts index 3e53a620d008..9d9bf1885083 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -7,6 +7,8 @@ const vitestConfig = mergeConfig( vitestBaseConfig, defineConfig({ + root: import.meta.dirname, + test: { coverage: { exclude: [ From 046ef2072f157a9c504974c6ce9948d058bb653c Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Sat, 15 Mar 2025 11:29:37 -0500 Subject: [PATCH 20/45] Update `vite` to version 6.2.2 --- package.json | 2 +- yarn.lock | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index b4286e9ac131..7efeed351077 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", - "vite": "^6.2.1", + "vite": "^6.2.2", "vitest": "^3.0.8", "yargs": "17.7.2" }, diff --git a/yarn.lock b/yarn.lock index b760ccfde75c..120d2c599fea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -569,13 +569,13 @@ __metadata: linkType: hard "@babel/parser@npm:^7.25.4": - version: 7.26.9 - resolution: "@babel/parser@npm:7.26.9" + version: 7.26.10 + resolution: "@babel/parser@npm:7.26.10" dependencies: - "@babel/types": ^7.26.9 + "@babel/types": ^7.26.10 bin: parser: ./bin/babel-parser.js - checksum: 2df965dbf3c67d19dc437412ceef23033b4d39b0dbd7cb498d8ab9ad9e1738338656ee72676199773b37d658edf9f4161cf255515234fed30695d74e73be5514 + checksum: 81f9af962aea55a2973d213dffc6191939df7eba0511ba585d23f0d838931f5fca2efb83ae382e4b9bb486f20ae1b2607cb1b8be49af89e9f011fb4355727f47 languageName: node linkType: hard @@ -1728,13 +1728,13 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.4, @babel/types@npm:^7.26.9": - version: 7.26.9 - resolution: "@babel/types@npm:7.26.9" +"@babel/types@npm:^7.25.4, @babel/types@npm:^7.26.10": + version: 7.26.10 + resolution: "@babel/types@npm:7.26.10" dependencies: "@babel/helper-string-parser": ^7.25.9 "@babel/helper-validator-identifier": ^7.25.9 - checksum: cc124c149615deb30343a4c81ac5b0e3a68bdb4b1bd61a91a2859ee8e5e5f400f6ff65be4740f407c17bfc09baa9c777e7f8f765dccf3284963956b67ac95a38 + checksum: 07340068ea3824dcaccf702dfc9628175c9926912ad6efba182d8b07e20953297d0a514f6fb103a61b9d5c555c8b87fc2237ddb06efebe14794eefc921dfa114 languageName: node linkType: hard @@ -6291,7 +6291,7 @@ __metadata: tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" - vite: ^6.2.1 + vite: ^6.2.2 vitest: ^3.0.8 yargs: 17.7.2 languageName: unknown @@ -20864,9 +20864,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.1": - version: 6.2.1 - resolution: "vite@npm:6.2.1" +"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.2": + version: 6.2.2 + resolution: "vite@npm:6.2.2" dependencies: esbuild: ^0.25.0 fsevents: ~2.3.3 @@ -20912,7 +20912,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: d7379a9870c888681f7e4a861095e7f568ecd4cb99a5eed2dec65dc205ce863783d45c66a1a275868e23732087009533eadec999061c1ddef96aa8aaa0dcf6d2 + checksum: 5a8b2083ef2534fab8769f18807e1df055730f1cb7853bed9d2556b2bb6c566aad25b6f530440370798baa4bc6c63f0d1339b646ee06102bc4f9373e93fefb7e languageName: node linkType: hard From 94d08d04ce2d1bf34f2bb7d81f113f2ac67cedb8 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Sat, 15 Mar 2025 21:53:41 -0500 Subject: [PATCH 21/45] Fix `typecheck` task --- nx.json | 5 +++++ packages/integration-tests/tsconfig.spec.json | 2 +- project.json | 3 ++- tsconfig.repo-config-files.json | 5 +++-- tsconfig.spec.json | 8 ++++++++ 5 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 tsconfig.spec.json diff --git a/nx.json b/nx.json index e45c6788c9cc..6f69941fe0d4 100644 --- a/nx.json +++ b/nx.json @@ -129,6 +129,11 @@ ], "outputs": ["{options.outputFile}"], "cache": true + }, + "typecheck": { + "dependsOn": ["types:copy-ast-spec"], + "outputs": ["{workspaceRoot}/dist/out-tsc/{projectRoot}"], + "cache": true } }, "namedInputs": { diff --git a/packages/integration-tests/tsconfig.spec.json b/packages/integration-tests/tsconfig.spec.json index af608ad2d885..d7f954ed0f80 100644 --- a/packages/integration-tests/tsconfig.spec.json +++ b/packages/integration-tests/tsconfig.spec.json @@ -18,7 +18,7 @@ ], "references": [ { - "path": "../../tsconfig.repo-config-files.json" + "path": "../../tsconfig.spec.json" } ] } diff --git a/project.json b/project.json index 4152bbb4fc71..3eec06ff272f 100644 --- a/project.json +++ b/project.json @@ -5,7 +5,8 @@ "targets": { "typecheck": { "command": "tsc -b ./tsconfig.repo-config-files.json", - "dependsOn": ["typescript-eslint:build"] + "dependsOn": ["types:copy-ast-spec"], + "outputs": ["{workspaceRoot}/dist/out-tsc/root"] }, "lint": { "command": "eslint . --ignore-pattern=packages --cache" diff --git a/tsconfig.repo-config-files.json b/tsconfig.repo-config-files.json index 2b9ada215695..caafa8d8cc8c 100644 --- a/tsconfig.repo-config-files.json +++ b/tsconfig.repo-config-files.json @@ -11,8 +11,6 @@ "tools/**/*.ts", "tools/**/*.mts", "eslint.config.mjs", - "vitest.config.base.mts", - "vitest.config.mts", "jest.config.base.js", "jest.config.js", "jest.preset.js", @@ -22,6 +20,9 @@ "references": [ { "path": "./packages/typescript-eslint/tsconfig.build.json" + }, + { + "path": "./tsconfig.spec.json" } ] } diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100644 index 000000000000..59f6ad919a03 --- /dev/null +++ b/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/out-tsc/root/vitest", + "resolveJsonModule": true + }, + "include": ["package.json", "vitest.config.base.mts", "vitest.config.mts"] +} From 936b603aae082623e009e00d815a64dd65957c21 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Wed, 26 Mar 2025 14:23:47 -0500 Subject: [PATCH 22/45] Update `vitest` to version 3.0.9 --- package.json | 6 +- packages/eslint-plugin-internal/package.json | 4 +- packages/integration-tests/package.json | 4 +- packages/typescript-eslint/package.json | 4 +- yarn.lock | 330 ++++++++++--------- 5 files changed, 179 insertions(+), 169 deletions(-) diff --git a/package.json b/package.json index 7efeed351077..83850809ffcc 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@typescript-eslint/types": "workspace:^", "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", - "@vitest/coverage-v8": "^3.0.8", + "@vitest/coverage-v8": "^3.0.9", "@vitest/eslint-plugin": "^1.1.37", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", @@ -125,8 +125,8 @@ "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", - "vite": "^6.2.2", - "vitest": "^3.0.8", + "vite": "^6.2.3", + "vitest": "^3.0.9", "yargs": "17.7.2" }, "resolutions": { diff --git a/packages/eslint-plugin-internal/package.json b/packages/eslint-plugin-internal/package.json index 4709ac5c9efc..57bbbb8d28e5 100644 --- a/packages/eslint-plugin-internal/package.json +++ b/packages/eslint-plugin-internal/package.json @@ -31,8 +31,8 @@ "prettier": "^3.2.5" }, "devDependencies": { - "@vitest/coverage-v8": "^3.0.8", + "@vitest/coverage-v8": "^3.0.9", "rimraf": "*", - "vitest": "^3.0.8" + "vitest": "^3.0.9" } } diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 28ec4a475f99..d5dd22625e6d 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -18,7 +18,7 @@ "check-types": "npx nx typecheck" }, "devDependencies": { - "@vitest/coverage-v8": "^3.0.8", - "vitest": "^3.0.8" + "@vitest/coverage-v8": "^3.0.9", + "vitest": "^3.0.9" } } diff --git a/packages/typescript-eslint/package.json b/packages/typescript-eslint/package.json index 76e25f3c4b95..ebe854b82af0 100644 --- a/packages/typescript-eslint/package.json +++ b/packages/typescript-eslint/package.json @@ -62,12 +62,12 @@ "typescript": ">=4.8.4 <5.9.0" }, "devDependencies": { - "@vitest/coverage-v8": "^3.0.8", + "@vitest/coverage-v8": "^3.0.9", "downlevel-dts": "*", "prettier": "^3.2.5", "rimraf": "*", "typescript": "*", - "vitest": "^3.0.8" + "vitest": "^3.0.9" }, "funding": { "type": "opencollective", diff --git a/yarn.lock b/yarn.lock index 523bfd9411de..7291880376c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -569,13 +569,13 @@ __metadata: linkType: hard "@babel/parser@npm:^7.25.4": - version: 7.26.10 - resolution: "@babel/parser@npm:7.26.10" + version: 7.27.0 + resolution: "@babel/parser@npm:7.27.0" dependencies: - "@babel/types": ^7.26.10 + "@babel/types": ^7.27.0 bin: parser: ./bin/babel-parser.js - checksum: 81f9af962aea55a2973d213dffc6191939df7eba0511ba585d23f0d838931f5fca2efb83ae382e4b9bb486f20ae1b2607cb1b8be49af89e9f011fb4355727f47 + checksum: 062a4e6d51553603253990c84e051ed48671a55b9d4e9caf2eff9dc888465070a0cfd288a467dbf0d99507781ea4a835b5606e32ddc0319f1b9273f913676829 languageName: node linkType: hard @@ -1728,13 +1728,13 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.25.4, @babel/types@npm:^7.26.10": - version: 7.26.10 - resolution: "@babel/types@npm:7.26.10" +"@babel/types@npm:^7.25.4, @babel/types@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/types@npm:7.27.0" dependencies: "@babel/helper-string-parser": ^7.25.9 "@babel/helper-validator-identifier": ^7.25.9 - checksum: 07340068ea3824dcaccf702dfc9628175c9926912ad6efba182d8b07e20953297d0a514f6fb103a61b9d5c555c8b87fc2237ddb06efebe14794eefc921dfa114 + checksum: 59582019eb8a693d4277015d4dec0233874d884b9019dcd09550332db7f0f2ac9e30eca685bb0ada4bab5a4dc8bbc2a6bcaadb151c69b7e6aa94b5eaf8fc8c51 languageName: node linkType: hard @@ -4703,135 +4703,142 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.35.0" +"@rollup/rollup-android-arm-eabi@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.37.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-android-arm64@npm:4.35.0" +"@rollup/rollup-android-arm64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-android-arm64@npm:4.37.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.35.0" +"@rollup/rollup-darwin-arm64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.37.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.35.0" +"@rollup/rollup-darwin-x64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.37.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.35.0" +"@rollup/rollup-freebsd-arm64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.37.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-freebsd-x64@npm:4.35.0" +"@rollup/rollup-freebsd-x64@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.37.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.35.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.37.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.35.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.37.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.35.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.37.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.35.0" +"@rollup/rollup-linux-arm64-musl@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.37.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.35.0" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.37.0" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.35.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.37.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.35.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.37.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.35.0" +"@rollup/rollup-linux-riscv64-musl@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.37.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.37.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.35.0" +"@rollup/rollup-linux-x64-gnu@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.37.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.35.0" +"@rollup/rollup-linux-x64-musl@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.37.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.35.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.37.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.35.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.37.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.35.0": - version: 4.35.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.35.0" +"@rollup/rollup-win32-x64-msvc@npm:4.37.0": + version: 4.37.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.37.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6047,10 +6054,10 @@ __metadata: "@typescript-eslint/scope-manager": "workspace:*" "@typescript-eslint/type-utils": "workspace:*" "@typescript-eslint/utils": "workspace:*" - "@vitest/coverage-v8": ^3.0.8 + "@vitest/coverage-v8": ^3.0.9 prettier: ^3.2.5 rimraf: "*" - vitest: ^3.0.8 + vitest: ^3.0.9 languageName: unknown linkType: soft @@ -6102,8 +6109,8 @@ __metadata: version: 0.0.0-use.local resolution: "@typescript-eslint/integration-tests@workspace:packages/integration-tests" dependencies: - "@vitest/coverage-v8": ^3.0.8 - vitest: ^3.0.8 + "@vitest/coverage-v8": ^3.0.9 + vitest: ^3.0.9 languageName: unknown linkType: soft @@ -6261,7 +6268,7 @@ __metadata: "@typescript-eslint/types": "workspace:^" "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" - "@vitest/coverage-v8": ^3.0.8 + "@vitest/coverage-v8": ^3.0.9 "@vitest/eslint-plugin": ^1.1.37 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 @@ -6298,8 +6305,8 @@ __metadata: tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" - vite: ^6.2.2 - vitest: ^3.0.8 + vite: ^6.2.3 + vitest: ^3.0.9 yargs: 17.7.2 languageName: unknown linkType: soft @@ -6400,9 +6407,9 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-v8@npm:^3.0.8": - version: 3.0.8 - resolution: "@vitest/coverage-v8@npm:3.0.8" +"@vitest/coverage-v8@npm:^3.0.9": + version: 3.0.9 + resolution: "@vitest/coverage-v8@npm:3.0.9" dependencies: "@ampproject/remapping": ^2.3.0 "@bcoe/v8-coverage": ^1.0.2 @@ -6417,12 +6424,12 @@ __metadata: test-exclude: ^7.0.1 tinyrainbow: ^2.0.0 peerDependencies: - "@vitest/browser": 3.0.8 - vitest: 3.0.8 + "@vitest/browser": 3.0.9 + vitest: 3.0.9 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: 6b3f0f86f8df895f9d4e3978b11303cada2425452177b70e9b2c19fe5a56e2f5d075b7760de4d856406daa3d9f22c173145664cad75677f4085c63e290071e65 + checksum: cb6d05fb696356e5dbc7a8bb136e285c34501fe0991904e69f42df5a45c114488d80e27175dc607b934547afb2255c4444efe0f789883082c50d770d2d4ffd92 languageName: node linkType: hard @@ -6443,23 +6450,23 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:3.0.8": - version: 3.0.8 - resolution: "@vitest/expect@npm:3.0.8" +"@vitest/expect@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/expect@npm:3.0.9" dependencies: - "@vitest/spy": 3.0.8 - "@vitest/utils": 3.0.8 + "@vitest/spy": 3.0.9 + "@vitest/utils": 3.0.9 chai: ^5.2.0 tinyrainbow: ^2.0.0 - checksum: f3356755ff797f763d31cd6dca5a9ca9e2bb9a9da18e3154659cf9d4b7676342c45bce53e8aa76464d28797bd9a4aa7fa75a76857927706007cbe5385522fd56 + checksum: 6df325d45e0ad4b6ad73a55e5328f615f92171fc4dbf3875972c08013727cfa435b9916636c7f3902a45f1874db10805d449311b70125edf1422dceb325ac982 languageName: node linkType: hard -"@vitest/mocker@npm:3.0.8": - version: 3.0.8 - resolution: "@vitest/mocker@npm:3.0.8" +"@vitest/mocker@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/mocker@npm:3.0.9" dependencies: - "@vitest/spy": 3.0.8 + "@vitest/spy": 3.0.9 estree-walker: ^3.0.3 magic-string: ^0.30.17 peerDependencies: @@ -6470,57 +6477,57 @@ __metadata: optional: true vite: optional: true - checksum: 9769160ca5386cc46cd627bc654168f8267b873dac078bdd33e02f22baf3be2b411f65a7cd54173756a9d88ca90c43bb61e1febc58b4dcbfc96eac529ec0583a + checksum: e8e8fb8eb938316a8444160859a0c1413488fa3f347b3f80597e3e4fc695597132c9f5f55280b4c35bf4dc3b13fc968b38c804d62f1effbfd49c147d05f73643 languageName: node linkType: hard -"@vitest/pretty-format@npm:3.0.8, @vitest/pretty-format@npm:^3.0.8": - version: 3.0.8 - resolution: "@vitest/pretty-format@npm:3.0.8" +"@vitest/pretty-format@npm:3.0.9, @vitest/pretty-format@npm:^3.0.9": + version: 3.0.9 + resolution: "@vitest/pretty-format@npm:3.0.9" dependencies: tinyrainbow: ^2.0.0 - checksum: 1c0651979b44d58203b5a508e4e09d368ea3fbf2721fc555a701a7b35921b30fc363965686e026350d0870b17fb79ddcb20d386b8a51ae42bd0e82e1fe995aa9 + checksum: 447b53bd962bc5978cf3e8c67f0600e38470ea63ab6ae24fb048dca79305828f37d9d854a7db1abc97ebde66a65187f87a99ca7969e43c750998c944e3ec48c6 languageName: node linkType: hard -"@vitest/runner@npm:3.0.8": - version: 3.0.8 - resolution: "@vitest/runner@npm:3.0.8" +"@vitest/runner@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/runner@npm:3.0.9" dependencies: - "@vitest/utils": 3.0.8 + "@vitest/utils": 3.0.9 pathe: ^2.0.3 - checksum: 220449385e2064be48cc75ad74824e008c4ac493d6b5422433cf4ad67745802a69e55e8b81a5cd7615243e1c33f148ea5edb63b9a2b56e7c83838143a188abcc + checksum: fd3efa42a75aaa4eb370b9bf084a311f4b485786411e6dfecf28da70e05b1621f595510e4414f2d4ef1e7bf1a7400e2f6a9e17ca786f2f4842775339e606410d languageName: node linkType: hard -"@vitest/snapshot@npm:3.0.8": - version: 3.0.8 - resolution: "@vitest/snapshot@npm:3.0.8" +"@vitest/snapshot@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/snapshot@npm:3.0.9" dependencies: - "@vitest/pretty-format": 3.0.8 + "@vitest/pretty-format": 3.0.9 magic-string: ^0.30.17 pathe: ^2.0.3 - checksum: 1bccaf37de698a6b73a54afdcbfa2874f75bf0dcab6c00f01994294f166448856491ddaddb406325832ceb54b7623b5c35d132dbffad5575d3e0a7a0df84fa12 + checksum: 79c42c6b10f972ddcf9ab1f32f8e181fe54a2b253df2d7f09f1bd4162b976093442cbdcc8ae58046768b52c65cf3a49aa8694d5505d19c49b253c0d8089cd31d languageName: node linkType: hard -"@vitest/spy@npm:3.0.8": - version: 3.0.8 - resolution: "@vitest/spy@npm:3.0.8" +"@vitest/spy@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/spy@npm:3.0.9" dependencies: tinyspy: ^3.0.2 - checksum: 2e35b0fb0434baff243b26ebf4b57665b07e6f51efedd70ebb9422cd30942893612f6aed68c32956212f3f22d4ef335ac0d12987480d536c12892e0a45255f34 + checksum: 1b90f40c4ac34529e7d098c745396a51e9b2f187d31d50a664ac7374db56edb3792862a35d1b8049e421705db6445761d687f9f8c5e298a9ca6cfa47d55625d7 languageName: node linkType: hard -"@vitest/utils@npm:3.0.8": - version: 3.0.8 - resolution: "@vitest/utils@npm:3.0.8" +"@vitest/utils@npm:3.0.9": + version: 3.0.9 + resolution: "@vitest/utils@npm:3.0.9" dependencies: - "@vitest/pretty-format": 3.0.8 + "@vitest/pretty-format": 3.0.9 loupe: ^3.1.3 tinyrainbow: ^2.0.0 - checksum: 20bac67702c8f32316dba3af165db23bd588913050cabaf8f86512a26389078c84eee7900dc2da2fcca452c540f8a55c42dd48a8cc808016a021f6dd41c1e31f + checksum: d31797594598817670cc49dfcd4ded2953d707c62e5dc7807737e8108073e97499cf7ef2eb3295f1fb52446a8a85ba50aacef21126689251092bc8566bff4bb6 languageName: node linkType: hard @@ -18462,28 +18469,29 @@ __metadata: linkType: hard "rollup@npm:^4.30.1": - version: 4.35.0 - resolution: "rollup@npm:4.35.0" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.35.0 - "@rollup/rollup-android-arm64": 4.35.0 - "@rollup/rollup-darwin-arm64": 4.35.0 - "@rollup/rollup-darwin-x64": 4.35.0 - "@rollup/rollup-freebsd-arm64": 4.35.0 - "@rollup/rollup-freebsd-x64": 4.35.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.35.0 - "@rollup/rollup-linux-arm-musleabihf": 4.35.0 - "@rollup/rollup-linux-arm64-gnu": 4.35.0 - "@rollup/rollup-linux-arm64-musl": 4.35.0 - "@rollup/rollup-linux-loongarch64-gnu": 4.35.0 - "@rollup/rollup-linux-powerpc64le-gnu": 4.35.0 - "@rollup/rollup-linux-riscv64-gnu": 4.35.0 - "@rollup/rollup-linux-s390x-gnu": 4.35.0 - "@rollup/rollup-linux-x64-gnu": 4.35.0 - "@rollup/rollup-linux-x64-musl": 4.35.0 - "@rollup/rollup-win32-arm64-msvc": 4.35.0 - "@rollup/rollup-win32-ia32-msvc": 4.35.0 - "@rollup/rollup-win32-x64-msvc": 4.35.0 + version: 4.37.0 + resolution: "rollup@npm:4.37.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.37.0 + "@rollup/rollup-android-arm64": 4.37.0 + "@rollup/rollup-darwin-arm64": 4.37.0 + "@rollup/rollup-darwin-x64": 4.37.0 + "@rollup/rollup-freebsd-arm64": 4.37.0 + "@rollup/rollup-freebsd-x64": 4.37.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.37.0 + "@rollup/rollup-linux-arm-musleabihf": 4.37.0 + "@rollup/rollup-linux-arm64-gnu": 4.37.0 + "@rollup/rollup-linux-arm64-musl": 4.37.0 + "@rollup/rollup-linux-loongarch64-gnu": 4.37.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.37.0 + "@rollup/rollup-linux-riscv64-gnu": 4.37.0 + "@rollup/rollup-linux-riscv64-musl": 4.37.0 + "@rollup/rollup-linux-s390x-gnu": 4.37.0 + "@rollup/rollup-linux-x64-gnu": 4.37.0 + "@rollup/rollup-linux-x64-musl": 4.37.0 + "@rollup/rollup-win32-arm64-msvc": 4.37.0 + "@rollup/rollup-win32-ia32-msvc": 4.37.0 + "@rollup/rollup-win32-x64-msvc": 4.37.0 "@types/estree": 1.0.6 fsevents: ~2.3.2 dependenciesMeta: @@ -18513,6 +18521,8 @@ __metadata: optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true "@rollup/rollup-linux-s390x-gnu": optional: true "@rollup/rollup-linux-x64-gnu": @@ -18529,7 +18539,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 1139d35809d1aa4ac8bff49fd0c819bcce86ce6e8e259fd0cacac086998938b5ad44f523d4414b6565ebc0338e7d2de0ad3efa03e26738fe8bd05f1baf72e980 + checksum: bb6c82ab5a12750e7dd521651f7bb7f44e4c03f058f38995f65141d4032b53a9f4b14d777af1bec6f00cdbbd1cf856581b516d803c9c5ecaede0b77501239673 languageName: node linkType: hard @@ -20418,12 +20428,12 @@ __metadata: "@typescript-eslint/eslint-plugin": 8.28.0 "@typescript-eslint/parser": 8.28.0 "@typescript-eslint/utils": 8.28.0 - "@vitest/coverage-v8": ^3.0.8 + "@vitest/coverage-v8": ^3.0.9 downlevel-dts: "*" prettier: ^3.2.5 rimraf: "*" typescript: "*" - vitest: ^3.0.8 + vitest: ^3.0.9 peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" @@ -20857,9 +20867,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:3.0.8": - version: 3.0.8 - resolution: "vite-node@npm:3.0.8" +"vite-node@npm:3.0.9": + version: 3.0.9 + resolution: "vite-node@npm:3.0.9" dependencies: cac: ^6.7.14 debug: ^4.4.0 @@ -20868,13 +20878,13 @@ __metadata: vite: ^5.0.0 || ^6.0.0 bin: vite-node: vite-node.mjs - checksum: 58532ba5bab923dedad7c28fb8b37afc4ef009a8b62dde31f38919958bc3cd47d580b56ad82f321873c3d0d67e691a8eac10c26b06c70843eb357ed2105a44c2 + checksum: 6a40628da3d3098aa10404106b12b77327301260f3979dacce0d579a6ee09258982ee81183118f13c0703c0a0cf77118ae56a29354a4bed79565d35d1187d42d languageName: node linkType: hard -"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.2": - version: 6.2.2 - resolution: "vite@npm:6.2.2" +"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.3": + version: 6.2.3 + resolution: "vite@npm:6.2.3" dependencies: esbuild: ^0.25.0 fsevents: ~2.3.3 @@ -20920,21 +20930,21 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 5a8b2083ef2534fab8769f18807e1df055730f1cb7853bed9d2556b2bb6c566aad25b6f530440370798baa4bc6c63f0d1339b646ee06102bc4f9373e93fefb7e + checksum: 5ce6c0ce9fd3591e1eb21ffaac9b1395cbd03926399cdb0f2a333c08fd9cab17da47d5203b88b574675c4a6ad5a77dd4a88ad51ea400ad6d75d993d5f05c8b64 languageName: node linkType: hard -"vitest@npm:^3.0.8": - version: 3.0.8 - resolution: "vitest@npm:3.0.8" - dependencies: - "@vitest/expect": 3.0.8 - "@vitest/mocker": 3.0.8 - "@vitest/pretty-format": ^3.0.8 - "@vitest/runner": 3.0.8 - "@vitest/snapshot": 3.0.8 - "@vitest/spy": 3.0.8 - "@vitest/utils": 3.0.8 +"vitest@npm:^3.0.9": + version: 3.0.9 + resolution: "vitest@npm:3.0.9" + dependencies: + "@vitest/expect": 3.0.9 + "@vitest/mocker": 3.0.9 + "@vitest/pretty-format": ^3.0.9 + "@vitest/runner": 3.0.9 + "@vitest/snapshot": 3.0.9 + "@vitest/spy": 3.0.9 + "@vitest/utils": 3.0.9 chai: ^5.2.0 debug: ^4.4.0 expect-type: ^1.1.0 @@ -20946,14 +20956,14 @@ __metadata: tinypool: ^1.0.2 tinyrainbow: ^2.0.0 vite: ^5.0.0 || ^6.0.0 - vite-node: 3.0.8 + vite-node: 3.0.9 why-is-node-running: ^2.3.0 peerDependencies: "@edge-runtime/vm": "*" "@types/debug": ^4.1.12 "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - "@vitest/browser": 3.0.8 - "@vitest/ui": 3.0.8 + "@vitest/browser": 3.0.9 + "@vitest/ui": 3.0.9 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -20973,7 +20983,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: e4786f6127a261d61fec20c1a9cc2acae514696fc382d0cd9c62d83d7d872eaadf4d7d09495a04a6c5a8879306f197a35729c7c6c1929ef870ea063e4be87847 + checksum: f8ec160cf8f75e4344dfa8f330e2cac6a49635977319a04c36803ccec1b69918381e435cb9d01edafab293648c65e9b766bba71fdf3451cb927590be263687f9 languageName: node linkType: hard From 6067c144007c50499bddc172e5400824e0bd1986 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Wed, 26 Mar 2025 14:27:14 -0500 Subject: [PATCH 23/45] Update `@vitest/eslint-plugin` to version 1.1.38 --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 83850809ffcc..bdd611088ff4 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", "@vitest/coverage-v8": "^3.0.9", - "@vitest/eslint-plugin": "^1.1.37", + "@vitest/eslint-plugin": "^1.1.38", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", "cspell": "^8.15.2", diff --git a/yarn.lock b/yarn.lock index 7291880376c3..e062f22ce82e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6269,7 +6269,7 @@ __metadata: "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" "@vitest/coverage-v8": ^3.0.9 - "@vitest/eslint-plugin": ^1.1.37 + "@vitest/eslint-plugin": ^1.1.38 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 cspell: ^8.15.2 @@ -6433,9 +6433,9 @@ __metadata: languageName: node linkType: hard -"@vitest/eslint-plugin@npm:^1.1.37": - version: 1.1.37 - resolution: "@vitest/eslint-plugin@npm:1.1.37" +"@vitest/eslint-plugin@npm:^1.1.38": + version: 1.1.38 + resolution: "@vitest/eslint-plugin@npm:1.1.38" peerDependencies: "@typescript-eslint/utils": ^8.24.0 eslint: ">= 8.57.0" @@ -6446,7 +6446,7 @@ __metadata: optional: true vitest: optional: true - checksum: 697fec7491e943d08ee5169e00041597b56db2d9a27740639e9051b254f4115af423ea81ca47b6df5cf4ac5de9d651f43bc1f7be19731eedfce6a1262133fd9f + checksum: 139b3f3f6fbb4e3ef92a5228f6e73b881228351f0ff32fe0d1c3e63a0d3548eb8927c15ab41053dd18b642c111b291f9333b3db097a188af659ee7aa11993dd0 languageName: node linkType: hard From 3644c1c5315d6079e639384b258a26c83111e3f9 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 27 Mar 2025 02:29:15 -0500 Subject: [PATCH 24/45] Fix `integration-tests` --- .../package.json | 2 +- .../package.json | 2 +- .../tools/integration-test-base.ts | 24 ++++--------------- .../integration-tests/tools/pack-packages.ts | 18 ++++++++------ 4 files changed, 17 insertions(+), 29 deletions(-) diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json index 4a4107573d35..a21d89e85aba 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json @@ -1,7 +1,7 @@ { "type": "module", "devDependencies": { - "@eslint/eslintrc": "latest", + "@eslint/eslintrc": "3.3.0", "@eslint/js": "latest", "@types/eslint": "^8", "eslint": "9.9.1", diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json index 79a0437dc5e1..ec22201f269a 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json @@ -1,7 +1,7 @@ { "type": "module", "devDependencies": { - "@eslint/eslintrc": "latest", + "@eslint/eslintrc": "3.3.0", "@eslint/js": "latest", "@types/eslint": "^9", "eslint": "latest", diff --git a/packages/integration-tests/tools/integration-test-base.ts b/packages/integration-tests/tools/integration-test-base.ts index 4389c53cbaef..ff77597ff5d9 100644 --- a/packages/integration-tests/tools/integration-test-base.ts +++ b/packages/integration-tests/tools/integration-test-base.ts @@ -1,22 +1,15 @@ import * as childProcess from 'node:child_process'; import * as fs from 'node:fs/promises'; -import * as os from 'node:os'; import * as path from 'node:path'; -import { promisify } from 'node:util'; import { inject } from 'vitest'; +import type { PackageJSON } from './pack-packages.js'; + import rootPackageJson from '../../../package.json'; +import { execFile, homeOrTmpDir } from './pack-packages.js'; const tseslintPackages = inject('tseslintPackages'); -interface PackageJSON { - devDependencies: Record; - name: string; - private?: boolean; -} - -const execFile = promisify(childProcess.execFile); - const BASE_DEPENDENCIES: PackageJSON['devDependencies'] = { ...tseslintPackages, eslint: rootPackageJson.devDependencies.eslint, @@ -25,11 +18,6 @@ const BASE_DEPENDENCIES: PackageJSON['devDependencies'] = { }; const FIXTURES_DIR = path.join(__dirname, '..', 'fixtures'); -// an env var to persist the temp folder so that it can be inspected for debugging purposes -const KEEP_INTEGRATION_TEST_DIR = - process.env.KEEP_INTEGRATION_TEST_DIR === 'true'; - -const homeOrTmpDir = os.tmpdir() || os.homedir(); // make sure that vitest doesn't timeout the test vi.setConfig({ testTimeout: 60_000 }); @@ -53,10 +41,6 @@ function integrationTest( await fs.mkdir(testFolder, { recursive: true }); - if (KEEP_INTEGRATION_TEST_DIR) { - console.error(testFolder); - } - // copy the fixture files to the temp folder await fs.cp(fixtureDir, testFolder, { recursive: true }); @@ -172,7 +156,7 @@ export function eslintIntegrationTest( expect(stderr).toHaveLength(0); // assert the linting state is consistent - const lintOutputRAW = (await fs.readFile(outFile, 'utf8')) + const lintOutputRAW = (await fs.readFile(outFile, { encoding: 'utf-8' })) // clean the output to remove any changing facets so tests are stable .replaceAll( new RegExp(`"filePath": ?"(/private)?${testFolder}`, 'g'), diff --git a/packages/integration-tests/tools/pack-packages.ts b/packages/integration-tests/tools/pack-packages.ts index 3c8c8e614231..488fd0b69430 100644 --- a/packages/integration-tests/tools/pack-packages.ts +++ b/packages/integration-tests/tools/pack-packages.ts @@ -10,14 +10,15 @@ import type { TestProject } from 'vitest/node'; import * as child_process from 'node:child_process'; -import fs from 'node:fs/promises'; +import * as fs from 'node:fs/promises'; import * as os from 'node:os'; -import path from 'node:path'; +import * as path from 'node:path'; +import { pathToFileURL } from 'node:url'; import { promisify } from 'node:util'; -const execFile = promisify(child_process.execFile); +export const execFile = promisify(child_process.execFile); -interface PackageJSON { +export interface PackageJSON { devDependencies: Record; name: string; private?: boolean; @@ -31,7 +32,7 @@ declare module 'vitest' { const PACKAGES_DIR = path.resolve(__dirname, '..', '..'); -const homeOrTmpDir = os.tmpdir() || os.homedir(); +export const homeOrTmpDir = os.tmpdir() || os.homedir(); const tarFolder = path.join( homeOrTmpDir, @@ -40,7 +41,10 @@ const tarFolder = path.join( ); export const setup = async (project: TestProject): Promise => { - const PACKAGES = await fs.readdir(PACKAGES_DIR, { withFileTypes: true }); + const PACKAGES = await fs.readdir(PACKAGES_DIR, { + encoding: 'utf-8', + withFileTypes: true, + }); await fs.mkdir(tarFolder, { recursive: true }); @@ -60,7 +64,7 @@ export const setup = async (project: TestProject): Promise => { } const packageJson: PackageJSON = ( - await import(packagePath, { + await import(pathToFileURL(packagePath).href, { with: { type: 'json' }, }) ).default; From 67ca16a173af86b077568e66de89467d89b7c8cc Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 27 Mar 2025 05:25:34 -0500 Subject: [PATCH 25/45] Fix `integration-tests` --- .../eslint.config.js | 1 + .../package.json | 2 +- .../eslint.config.js | 1 + .../package.json | 2 +- ...config-types-@types__eslint-v8.test.ts.snap | 18 +++++++++++++++--- ...config-types-@types__eslint-v9.test.ts.snap | 18 +++++++++++++++--- .../tools/integration-test-base.ts | 8 +++++--- 7 files changed, 39 insertions(+), 11 deletions(-) diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/eslint.config.js b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/eslint.config.js index 5514f5f451f9..2a31589bc03c 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/eslint.config.js +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/eslint.config.js @@ -52,6 +52,7 @@ function _otherCases() { vitestPlugin.configs.recommended, ); tseslint.config( + // @ts-expect-error compat.config(deprecationPlugin.configs.recommended), vitestPlugin.configs.recommended, ); diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json index a21d89e85aba..4a4107573d35 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v8/package.json @@ -1,7 +1,7 @@ { "type": "module", "devDependencies": { - "@eslint/eslintrc": "3.3.0", + "@eslint/eslintrc": "latest", "@eslint/js": "latest", "@types/eslint": "^8", "eslint": "9.9.1", diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/eslint.config.js b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/eslint.config.js index 5514f5f451f9..2a31589bc03c 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/eslint.config.js +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/eslint.config.js @@ -52,6 +52,7 @@ function _otherCases() { vitestPlugin.configs.recommended, ); tseslint.config( + // @ts-expect-error compat.config(deprecationPlugin.configs.recommended), vitestPlugin.configs.recommended, ); diff --git a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json index ec22201f269a..79a0437dc5e1 100644 --- a/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json +++ b/packages/integration-tests/fixtures/flat-config-types-@types__eslint-v9/package.json @@ -1,7 +1,7 @@ { "type": "module", "devDependencies": { - "@eslint/eslintrc": "3.3.0", + "@eslint/eslintrc": "latest", "@eslint/js": "latest", "@types/eslint": "^9", "eslint": "latest", diff --git a/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v8.test.ts.snap b/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v8.test.ts.snap index c48c4b032719..7592f9303847 100644 --- a/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v8.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v8.test.ts.snap @@ -3,7 +3,7 @@ exports[`flat-config-types-@types__eslint-v8 > eslint > should work successfully 1`] = ` [ { - "errorCount": 2, + "errorCount": 3, "fatalErrorCount": 0, "filePath": "/eslint.config.js", "fixableErrorCount": 0, @@ -23,8 +23,19 @@ exports[`flat-config-types-@types__eslint-v8 > eslint > should work successfully { "column": 5, "endColumn": 24, - "endLine": 59, - "line": 59, + "endLine": 55, + "line": 55, + "message": "Include a description after the "@ts-expect-error" directive to explain why the @ts-expect-error is necessary. The description must be 3 characters or longer.", + "messageId": "tsDirectiveCommentRequiresDescription", + "nodeType": "Line", + "ruleId": "@typescript-eslint/ban-ts-comment", + "severity": 2, + }, + { + "column": 5, + "endColumn": 24, + "endLine": 60, + "line": 60, "message": "Include a description after the "@ts-expect-error" directive to explain why the @ts-expect-error is necessary. The description must be 3 characters or longer.", "messageId": "tsDirectiveCommentRequiresDescription", "nodeType": "Line", @@ -86,6 +97,7 @@ function _otherCases() { vitestPlugin.configs.recommended, ) tseslint.config( + // @ts-expect-error compat.config(deprecationPlugin.configs.recommended), vitestPlugin.configs.recommended, ) diff --git a/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v9.test.ts.snap b/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v9.test.ts.snap index 1d5e2cc9677d..fa2a75464d2c 100644 --- a/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v9.test.ts.snap +++ b/packages/integration-tests/tests/__snapshots__/flat-config-types-@types__eslint-v9.test.ts.snap @@ -3,7 +3,7 @@ exports[`flat-config-types-@types__eslint-v9 > eslint > should work successfully 1`] = ` [ { - "errorCount": 2, + "errorCount": 3, "fatalErrorCount": 0, "filePath": "/eslint.config.js", "fixableErrorCount": 0, @@ -23,8 +23,19 @@ exports[`flat-config-types-@types__eslint-v9 > eslint > should work successfully { "column": 5, "endColumn": 24, - "endLine": 59, - "line": 59, + "endLine": 55, + "line": 55, + "message": "Include a description after the "@ts-expect-error" directive to explain why the @ts-expect-error is necessary. The description must be 3 characters or longer.", + "messageId": "tsDirectiveCommentRequiresDescription", + "nodeType": "Line", + "ruleId": "@typescript-eslint/ban-ts-comment", + "severity": 2, + }, + { + "column": 5, + "endColumn": 24, + "endLine": 60, + "line": 60, "message": "Include a description after the "@ts-expect-error" directive to explain why the @ts-expect-error is necessary. The description must be 3 characters or longer.", "messageId": "tsDirectiveCommentRequiresDescription", "nodeType": "Line", @@ -86,6 +97,7 @@ function _otherCases() { vitestPlugin.configs.recommended, ) tseslint.config( + // @ts-expect-error compat.config(deprecationPlugin.configs.recommended), vitestPlugin.configs.recommended, ) diff --git a/packages/integration-tests/tools/integration-test-base.ts b/packages/integration-tests/tools/integration-test-base.ts index ff77597ff5d9..a82aab9bb3e9 100644 --- a/packages/integration-tests/tools/integration-test-base.ts +++ b/packages/integration-tests/tools/integration-test-base.ts @@ -162,9 +162,11 @@ export function eslintIntegrationTest( new RegExp(`"filePath": ?"(/private)?${testFolder}`, 'g'), '"filePath": "', ) - .replaceAll(/"filePath":"([^"]*)"/g, (_, testFile: string) => { - return `"filePath": "/${path.relative(testFolder, testFile)}"`; - }) + .replaceAll( + /"filePath":"([^"]*)"/g, + (_, testFile: string) => + `"filePath": "/${path.relative(testFolder, testFile)}"`, + ) .replaceAll( /C:\\\\usr\\\\linked\\\\tsconfig.json/g, path.posix.join('/usr', 'linked', 'tsconfig.json'), From b5cae28ac3ef980d13d7ebf9075a908c200fd6d2 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 27 Mar 2025 05:52:33 -0500 Subject: [PATCH 26/45] Fix `knip` --- knip.ts | 2 -- package.json | 2 -- yarn.lock | 11 ----------- 3 files changed, 15 deletions(-) diff --git a/knip.ts b/knip.ts index ccbaca317ef1..6bada85b5d32 100644 --- a/knip.ts +++ b/knip.ts @@ -29,8 +29,6 @@ export default { 'glob', 'jest-specific-snapshot', 'make-dir', - 'ncp', - 'tmp', // imported for type purposes only 'website', ], diff --git a/package.json b/package.json index bdd611088ff4..989ae4e47e22 100644 --- a/package.json +++ b/package.json @@ -115,13 +115,11 @@ "lint-staged": "^15.2.2", "make-dir": "^4.0.0", "markdownlint-cli": "^0.44.0", - "ncp": "^2.0.0", "nx": "20.4.5", "prettier": "3.5.0", "pretty-format": "^29.7.0", "rimraf": "^5.0.5", "semver": "7.7.0", - "tmp": "^0.2.1", "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", diff --git a/yarn.lock b/yarn.lock index e062f22ce82e..11101cbb01b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6295,13 +6295,11 @@ __metadata: lint-staged: ^15.2.2 make-dir: ^4.0.0 markdownlint-cli: ^0.44.0 - ncp: ^2.0.0 nx: 20.4.5 prettier: 3.5.0 pretty-format: ^29.7.0 rimraf: ^5.0.5 semver: 7.7.0 - tmp: ^0.2.1 tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" @@ -15909,15 +15907,6 @@ __metadata: languageName: node linkType: hard -"ncp@npm:^2.0.0": - version: 2.0.0 - resolution: "ncp@npm:2.0.0" - bin: - ncp: ./bin/ncp - checksum: ea9b19221da1d1c5529bdb9f8e85c9d191d156bcaae408cce5e415b7fbfd8744c288e792bd7faf1fe3b70fd44c74e22f0d43c39b209bc7ac1fb8016f70793a16 - languageName: node - linkType: hard - "negotiator@npm:0.6.3, negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" From d73f172743b38b1a8824590bbb07a2bf7bcf3a5e Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 27 Mar 2025 05:55:49 -0500 Subject: [PATCH 27/45] Fix `knip` --- knip.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/knip.ts b/knip.ts index 6bada85b5d32..965efa8e72fd 100644 --- a/knip.ts +++ b/knip.ts @@ -57,10 +57,6 @@ export default { ignore: ['fixtures/**', 'typings/global.d.ts'], vitest: { config: ['vitest.config.mts'], - entry: [ - '**/*.{bench,test,test-d,spec}.?(c|m)[jt]s?(x)', - 'tools/pack-packages.ts', - ], }, }, 'packages/parser': { From 16429f37770e353da7774a361de38dfda6226c27 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 27 Mar 2025 06:55:34 -0500 Subject: [PATCH 28/45] Remove unnecessary `typings/global.d.ts` file --- knip.ts | 5 +---- packages/integration-tests/typings/global.d.ts | 2 -- 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 packages/integration-tests/typings/global.d.ts diff --git a/knip.ts b/knip.ts index 965efa8e72fd..0d7df6173382 100644 --- a/knip.ts +++ b/knip.ts @@ -54,10 +54,7 @@ export default { ignore: ['tests/fixtures/**'], }, 'packages/integration-tests': { - ignore: ['fixtures/**', 'typings/global.d.ts'], - vitest: { - config: ['vitest.config.mts'], - }, + ignore: ['fixtures/**'], }, 'packages/parser': { ignore: ['tests/fixtures/**'], diff --git a/packages/integration-tests/typings/global.d.ts b/packages/integration-tests/typings/global.d.ts deleted file mode 100644 index 1a4c2599eaea..000000000000 --- a/packages/integration-tests/typings/global.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -// eslint-disable-next-line no-var -declare var tseslintPackages: Record; From ec002c1f275b3d9a9646dd144dc257b59d0ee039 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 31 Mar 2025 09:05:07 -0500 Subject: [PATCH 29/45] Update `vitest` to version 3.1.1 --- package.json | 6 +- packages/eslint-plugin-internal/package.json | 4 +- packages/integration-tests/package.json | 4 +- packages/typescript-eslint/package.json | 4 +- yarn.lock | 532 +++++++++---------- 5 files changed, 275 insertions(+), 275 deletions(-) diff --git a/package.json b/package.json index 989ae4e47e22..8c4937f3aae8 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@typescript-eslint/types": "workspace:^", "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", - "@vitest/coverage-v8": "^3.0.9", + "@vitest/coverage-v8": "^3.1.1", "@vitest/eslint-plugin": "^1.1.38", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", @@ -123,8 +123,8 @@ "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", - "vite": "^6.2.3", - "vitest": "^3.0.9", + "vite": "^6.2.4", + "vitest": "^3.1.1", "yargs": "17.7.2" }, "resolutions": { diff --git a/packages/eslint-plugin-internal/package.json b/packages/eslint-plugin-internal/package.json index 57bbbb8d28e5..2446f9acb6a3 100644 --- a/packages/eslint-plugin-internal/package.json +++ b/packages/eslint-plugin-internal/package.json @@ -31,8 +31,8 @@ "prettier": "^3.2.5" }, "devDependencies": { - "@vitest/coverage-v8": "^3.0.9", + "@vitest/coverage-v8": "^3.1.1", "rimraf": "*", - "vitest": "^3.0.9" + "vitest": "^3.1.1" } } diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index d5dd22625e6d..c1298201a5a8 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -18,7 +18,7 @@ "check-types": "npx nx typecheck" }, "devDependencies": { - "@vitest/coverage-v8": "^3.0.9", - "vitest": "^3.0.9" + "@vitest/coverage-v8": "^3.1.1", + "vitest": "^3.1.1" } } diff --git a/packages/typescript-eslint/package.json b/packages/typescript-eslint/package.json index ebe854b82af0..1f4b4e5fee4b 100644 --- a/packages/typescript-eslint/package.json +++ b/packages/typescript-eslint/package.json @@ -62,12 +62,12 @@ "typescript": ">=4.8.4 <5.9.0" }, "devDependencies": { - "@vitest/coverage-v8": "^3.0.9", + "@vitest/coverage-v8": "^3.1.1", "downlevel-dts": "*", "prettier": "^3.2.5", "rimraf": "*", "typescript": "*", - "vitest": "^3.0.9" + "vitest": "^3.1.1" }, "funding": { "type": "opencollective", diff --git a/yarn.lock b/yarn.lock index 11101cbb01b9..998973141359 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3048,9 +3048,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/aix-ppc64@npm:0.25.1" +"@esbuild/aix-ppc64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/aix-ppc64@npm:0.25.2" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -3069,9 +3069,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/android-arm64@npm:0.25.1" +"@esbuild/android-arm64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/android-arm64@npm:0.25.2" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -3090,9 +3090,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/android-arm@npm:0.25.1" +"@esbuild/android-arm@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/android-arm@npm:0.25.2" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -3111,9 +3111,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/android-x64@npm:0.25.1" +"@esbuild/android-x64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/android-x64@npm:0.25.2" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -3132,9 +3132,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/darwin-arm64@npm:0.25.1" +"@esbuild/darwin-arm64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/darwin-arm64@npm:0.25.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -3153,9 +3153,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/darwin-x64@npm:0.25.1" +"@esbuild/darwin-x64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/darwin-x64@npm:0.25.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -3174,9 +3174,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/freebsd-arm64@npm:0.25.1" +"@esbuild/freebsd-arm64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/freebsd-arm64@npm:0.25.2" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -3195,9 +3195,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/freebsd-x64@npm:0.25.1" +"@esbuild/freebsd-x64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/freebsd-x64@npm:0.25.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -3216,9 +3216,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-arm64@npm:0.25.1" +"@esbuild/linux-arm64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-arm64@npm:0.25.2" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -3237,9 +3237,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-arm@npm:0.25.1" +"@esbuild/linux-arm@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-arm@npm:0.25.2" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -3258,9 +3258,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-ia32@npm:0.25.1" +"@esbuild/linux-ia32@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-ia32@npm:0.25.2" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -3279,9 +3279,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-loong64@npm:0.25.1" +"@esbuild/linux-loong64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-loong64@npm:0.25.2" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -3300,9 +3300,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-mips64el@npm:0.25.1" +"@esbuild/linux-mips64el@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-mips64el@npm:0.25.2" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -3321,9 +3321,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-ppc64@npm:0.25.1" +"@esbuild/linux-ppc64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-ppc64@npm:0.25.2" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -3342,9 +3342,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-riscv64@npm:0.25.1" +"@esbuild/linux-riscv64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-riscv64@npm:0.25.2" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -3363,9 +3363,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-s390x@npm:0.25.1" +"@esbuild/linux-s390x@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-s390x@npm:0.25.2" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -3384,9 +3384,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/linux-x64@npm:0.25.1" +"@esbuild/linux-x64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/linux-x64@npm:0.25.2" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -3398,9 +3398,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-arm64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/netbsd-arm64@npm:0.25.1" +"@esbuild/netbsd-arm64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/netbsd-arm64@npm:0.25.2" conditions: os=netbsd & cpu=arm64 languageName: node linkType: hard @@ -3419,9 +3419,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/netbsd-x64@npm:0.25.1" +"@esbuild/netbsd-x64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/netbsd-x64@npm:0.25.2" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -3433,9 +3433,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-arm64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/openbsd-arm64@npm:0.25.1" +"@esbuild/openbsd-arm64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/openbsd-arm64@npm:0.25.2" conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard @@ -3454,9 +3454,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/openbsd-x64@npm:0.25.1" +"@esbuild/openbsd-x64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/openbsd-x64@npm:0.25.2" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -3475,9 +3475,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/sunos-x64@npm:0.25.1" +"@esbuild/sunos-x64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/sunos-x64@npm:0.25.2" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -3496,9 +3496,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/win32-arm64@npm:0.25.1" +"@esbuild/win32-arm64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/win32-arm64@npm:0.25.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -3517,9 +3517,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/win32-ia32@npm:0.25.1" +"@esbuild/win32-ia32@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/win32-ia32@npm:0.25.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -3538,9 +3538,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.25.1": - version: 0.25.1 - resolution: "@esbuild/win32-x64@npm:0.25.1" +"@esbuild/win32-x64@npm:0.25.2": + version: 0.25.2 + resolution: "@esbuild/win32-x64@npm:0.25.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -4703,142 +4703,142 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.37.0" +"@rollup/rollup-android-arm-eabi@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.38.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-android-arm64@npm:4.37.0" +"@rollup/rollup-android-arm64@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-android-arm64@npm:4.38.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.37.0" +"@rollup/rollup-darwin-arm64@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.38.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.37.0" +"@rollup/rollup-darwin-x64@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.38.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.37.0" +"@rollup/rollup-freebsd-arm64@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.38.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-freebsd-x64@npm:4.37.0" +"@rollup/rollup-freebsd-x64@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.38.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.37.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.38.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.37.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.38.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.37.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.38.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.37.0" +"@rollup/rollup-linux-arm64-musl@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.38.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.37.0" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.38.0" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.37.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.38.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.37.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.38.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.37.0" +"@rollup/rollup-linux-riscv64-musl@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.38.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.37.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.38.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.37.0" +"@rollup/rollup-linux-x64-gnu@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.38.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.37.0" +"@rollup/rollup-linux-x64-musl@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.38.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.37.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.38.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.37.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.38.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.37.0": - version: 4.37.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.37.0" +"@rollup/rollup-win32-x64-msvc@npm:4.38.0": + version: 4.38.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.38.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6054,10 +6054,10 @@ __metadata: "@typescript-eslint/scope-manager": "workspace:*" "@typescript-eslint/type-utils": "workspace:*" "@typescript-eslint/utils": "workspace:*" - "@vitest/coverage-v8": ^3.0.9 + "@vitest/coverage-v8": ^3.1.1 prettier: ^3.2.5 rimraf: "*" - vitest: ^3.0.9 + vitest: ^3.1.1 languageName: unknown linkType: soft @@ -6109,8 +6109,8 @@ __metadata: version: 0.0.0-use.local resolution: "@typescript-eslint/integration-tests@workspace:packages/integration-tests" dependencies: - "@vitest/coverage-v8": ^3.0.9 - vitest: ^3.0.9 + "@vitest/coverage-v8": ^3.1.1 + vitest: ^3.1.1 languageName: unknown linkType: soft @@ -6268,7 +6268,7 @@ __metadata: "@typescript-eslint/types": "workspace:^" "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" - "@vitest/coverage-v8": ^3.0.9 + "@vitest/coverage-v8": ^3.1.1 "@vitest/eslint-plugin": ^1.1.38 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 @@ -6303,8 +6303,8 @@ __metadata: tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" - vite: ^6.2.3 - vitest: ^3.0.9 + vite: ^6.2.4 + vitest: ^3.1.1 yargs: 17.7.2 languageName: unknown linkType: soft @@ -6405,9 +6405,9 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-v8@npm:^3.0.9": - version: 3.0.9 - resolution: "@vitest/coverage-v8@npm:3.0.9" +"@vitest/coverage-v8@npm:^3.1.1": + version: 3.1.1 + resolution: "@vitest/coverage-v8@npm:3.1.1" dependencies: "@ampproject/remapping": ^2.3.0 "@bcoe/v8-coverage": ^1.0.2 @@ -6418,16 +6418,16 @@ __metadata: istanbul-reports: ^3.1.7 magic-string: ^0.30.17 magicast: ^0.3.5 - std-env: ^3.8.0 + std-env: ^3.8.1 test-exclude: ^7.0.1 tinyrainbow: ^2.0.0 peerDependencies: - "@vitest/browser": 3.0.9 - vitest: 3.0.9 + "@vitest/browser": 3.1.1 + vitest: 3.1.1 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: cb6d05fb696356e5dbc7a8bb136e285c34501fe0991904e69f42df5a45c114488d80e27175dc607b934547afb2255c4444efe0f789883082c50d770d2d4ffd92 + checksum: 5f55207c0f3ccf66cb56267643fffdce06bece64eb7f777c49257094c82371fb087e83976821f1c234dc796bc396dd89a3e26c59ad1534dcc639c39caa116532 languageName: node linkType: hard @@ -6448,23 +6448,23 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/expect@npm:3.0.9" +"@vitest/expect@npm:3.1.1": + version: 3.1.1 + resolution: "@vitest/expect@npm:3.1.1" dependencies: - "@vitest/spy": 3.0.9 - "@vitest/utils": 3.0.9 + "@vitest/spy": 3.1.1 + "@vitest/utils": 3.1.1 chai: ^5.2.0 tinyrainbow: ^2.0.0 - checksum: 6df325d45e0ad4b6ad73a55e5328f615f92171fc4dbf3875972c08013727cfa435b9916636c7f3902a45f1874db10805d449311b70125edf1422dceb325ac982 + checksum: a345dbdf60470853fc7641268bea2721ab6c117c77b2195fce74aab187284fedf81e7d1d2292336184804993139734169ee8a7af2ac8e7d67f3f8b5b89797f77 languageName: node linkType: hard -"@vitest/mocker@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/mocker@npm:3.0.9" +"@vitest/mocker@npm:3.1.1": + version: 3.1.1 + resolution: "@vitest/mocker@npm:3.1.1" dependencies: - "@vitest/spy": 3.0.9 + "@vitest/spy": 3.1.1 estree-walker: ^3.0.3 magic-string: ^0.30.17 peerDependencies: @@ -6475,57 +6475,57 @@ __metadata: optional: true vite: optional: true - checksum: e8e8fb8eb938316a8444160859a0c1413488fa3f347b3f80597e3e4fc695597132c9f5f55280b4c35bf4dc3b13fc968b38c804d62f1effbfd49c147d05f73643 + checksum: a97f5b730360a13e9b6da99c110928eff9c87fe853f18578826025485dc89a42c6870d3c11c30bbe07cac40d45163d3d1b21fc7ed85035dc782b8ecbe4264b96 languageName: node linkType: hard -"@vitest/pretty-format@npm:3.0.9, @vitest/pretty-format@npm:^3.0.9": - version: 3.0.9 - resolution: "@vitest/pretty-format@npm:3.0.9" +"@vitest/pretty-format@npm:3.1.1, @vitest/pretty-format@npm:^3.1.1": + version: 3.1.1 + resolution: "@vitest/pretty-format@npm:3.1.1" dependencies: tinyrainbow: ^2.0.0 - checksum: 447b53bd962bc5978cf3e8c67f0600e38470ea63ab6ae24fb048dca79305828f37d9d854a7db1abc97ebde66a65187f87a99ca7969e43c750998c944e3ec48c6 + checksum: 9f036086bf46b65fb062a6e9f796b17dd64f81eeb237ea141f3bcda413bc71a1f17546cd9def4ee75ea0c47f1120a083b048e65cf877ab114a4355105f64e14d languageName: node linkType: hard -"@vitest/runner@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/runner@npm:3.0.9" +"@vitest/runner@npm:3.1.1": + version: 3.1.1 + resolution: "@vitest/runner@npm:3.1.1" dependencies: - "@vitest/utils": 3.0.9 + "@vitest/utils": 3.1.1 pathe: ^2.0.3 - checksum: fd3efa42a75aaa4eb370b9bf084a311f4b485786411e6dfecf28da70e05b1621f595510e4414f2d4ef1e7bf1a7400e2f6a9e17ca786f2f4842775339e606410d + checksum: 9d05418116bd8a40415c17fa4a90c5f852b0ab0fe8403655fcaef6d6a8943d511f8e948f775a0c5e49b767c0aaa2372aea44bb0f62c68791e035717638097129 languageName: node linkType: hard -"@vitest/snapshot@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/snapshot@npm:3.0.9" +"@vitest/snapshot@npm:3.1.1": + version: 3.1.1 + resolution: "@vitest/snapshot@npm:3.1.1" dependencies: - "@vitest/pretty-format": 3.0.9 + "@vitest/pretty-format": 3.1.1 magic-string: ^0.30.17 pathe: ^2.0.3 - checksum: 79c42c6b10f972ddcf9ab1f32f8e181fe54a2b253df2d7f09f1bd4162b976093442cbdcc8ae58046768b52c65cf3a49aa8694d5505d19c49b253c0d8089cd31d + checksum: 00079c18e21c7271a6b27198f6604645ec5e4cda8f86716ee658a0993d1baaa47ac0064a92ed0a61a29c27a7f2877f3fa6e11a90d3d597c119623732ecaf1f7b languageName: node linkType: hard -"@vitest/spy@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/spy@npm:3.0.9" +"@vitest/spy@npm:3.1.1": + version: 3.1.1 + resolution: "@vitest/spy@npm:3.1.1" dependencies: tinyspy: ^3.0.2 - checksum: 1b90f40c4ac34529e7d098c745396a51e9b2f187d31d50a664ac7374db56edb3792862a35d1b8049e421705db6445761d687f9f8c5e298a9ca6cfa47d55625d7 + checksum: 7ab13a9fed9fa41a2eee2d098c5026938f7899f41bd1a5ae8db6bd3ed2d3fc4ac6d9142e5028391d5d36c54f989c15450ea89d1fb326bc7fcce590cefd290a41 languageName: node linkType: hard -"@vitest/utils@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/utils@npm:3.0.9" +"@vitest/utils@npm:3.1.1": + version: 3.1.1 + resolution: "@vitest/utils@npm:3.1.1" dependencies: - "@vitest/pretty-format": 3.0.9 + "@vitest/pretty-format": 3.1.1 loupe: ^3.1.3 tinyrainbow: ^2.0.0 - checksum: d31797594598817670cc49dfcd4ded2953d707c62e5dc7807737e8108073e97499cf7ef2eb3295f1fb52446a8a85ba50aacef21126689251092bc8566bff4bb6 + checksum: 6d93b0876b1c708b3b9f5a1203ab3838811798ee1f989e5b06a1de3aca2c61493075a1a44de220c77ddf914b9f0888845612c9a8175d965b98715196fc169ebe languageName: node linkType: hard @@ -10004,34 +10004,34 @@ __metadata: linkType: hard "esbuild@npm:^0.25.0": - version: 0.25.1 - resolution: "esbuild@npm:0.25.1" - dependencies: - "@esbuild/aix-ppc64": 0.25.1 - "@esbuild/android-arm": 0.25.1 - "@esbuild/android-arm64": 0.25.1 - "@esbuild/android-x64": 0.25.1 - "@esbuild/darwin-arm64": 0.25.1 - "@esbuild/darwin-x64": 0.25.1 - "@esbuild/freebsd-arm64": 0.25.1 - "@esbuild/freebsd-x64": 0.25.1 - "@esbuild/linux-arm": 0.25.1 - "@esbuild/linux-arm64": 0.25.1 - "@esbuild/linux-ia32": 0.25.1 - "@esbuild/linux-loong64": 0.25.1 - "@esbuild/linux-mips64el": 0.25.1 - "@esbuild/linux-ppc64": 0.25.1 - "@esbuild/linux-riscv64": 0.25.1 - "@esbuild/linux-s390x": 0.25.1 - "@esbuild/linux-x64": 0.25.1 - "@esbuild/netbsd-arm64": 0.25.1 - "@esbuild/netbsd-x64": 0.25.1 - "@esbuild/openbsd-arm64": 0.25.1 - "@esbuild/openbsd-x64": 0.25.1 - "@esbuild/sunos-x64": 0.25.1 - "@esbuild/win32-arm64": 0.25.1 - "@esbuild/win32-ia32": 0.25.1 - "@esbuild/win32-x64": 0.25.1 + version: 0.25.2 + resolution: "esbuild@npm:0.25.2" + dependencies: + "@esbuild/aix-ppc64": 0.25.2 + "@esbuild/android-arm": 0.25.2 + "@esbuild/android-arm64": 0.25.2 + "@esbuild/android-x64": 0.25.2 + "@esbuild/darwin-arm64": 0.25.2 + "@esbuild/darwin-x64": 0.25.2 + "@esbuild/freebsd-arm64": 0.25.2 + "@esbuild/freebsd-x64": 0.25.2 + "@esbuild/linux-arm": 0.25.2 + "@esbuild/linux-arm64": 0.25.2 + "@esbuild/linux-ia32": 0.25.2 + "@esbuild/linux-loong64": 0.25.2 + "@esbuild/linux-mips64el": 0.25.2 + "@esbuild/linux-ppc64": 0.25.2 + "@esbuild/linux-riscv64": 0.25.2 + "@esbuild/linux-s390x": 0.25.2 + "@esbuild/linux-x64": 0.25.2 + "@esbuild/netbsd-arm64": 0.25.2 + "@esbuild/netbsd-x64": 0.25.2 + "@esbuild/openbsd-arm64": 0.25.2 + "@esbuild/openbsd-x64": 0.25.2 + "@esbuild/sunos-x64": 0.25.2 + "@esbuild/win32-arm64": 0.25.2 + "@esbuild/win32-ia32": 0.25.2 + "@esbuild/win32-x64": 0.25.2 dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -10085,7 +10085,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: c84e209259273fca0f8ba7cd00974dfff53eb3fcce5ff0f987d8231a5b49f22c16fa954f0bf06f07b00bd368270d8274feb5a09d7d5dfae0891a47dda24455a2 + checksum: 2c4e91948b939e711e9342e692fc3c8b0a95acbc1fc9c7628db6092c4aef7c32aa643b2782111625871756084536cebc4831b3f1d5c3b6bd4e4774e21bc4bbea languageName: node linkType: hard @@ -10868,7 +10868,7 @@ __metadata: languageName: node linkType: hard -"expect-type@npm:^1.1.0": +"expect-type@npm:^1.2.0": version: 1.2.0 resolution: "expect-type@npm:1.2.0" checksum: fb6cce8e0d8cd2d2b329afeacad08dbf01297b0363494a826cb3dad7d22d45e5283a1c2c3f8cdef5765afefab4676a7cb9a46c9c5a506fdd1ee255e429debe96 @@ -18458,30 +18458,30 @@ __metadata: linkType: hard "rollup@npm:^4.30.1": - version: 4.37.0 - resolution: "rollup@npm:4.37.0" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.37.0 - "@rollup/rollup-android-arm64": 4.37.0 - "@rollup/rollup-darwin-arm64": 4.37.0 - "@rollup/rollup-darwin-x64": 4.37.0 - "@rollup/rollup-freebsd-arm64": 4.37.0 - "@rollup/rollup-freebsd-x64": 4.37.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.37.0 - "@rollup/rollup-linux-arm-musleabihf": 4.37.0 - "@rollup/rollup-linux-arm64-gnu": 4.37.0 - "@rollup/rollup-linux-arm64-musl": 4.37.0 - "@rollup/rollup-linux-loongarch64-gnu": 4.37.0 - "@rollup/rollup-linux-powerpc64le-gnu": 4.37.0 - "@rollup/rollup-linux-riscv64-gnu": 4.37.0 - "@rollup/rollup-linux-riscv64-musl": 4.37.0 - "@rollup/rollup-linux-s390x-gnu": 4.37.0 - "@rollup/rollup-linux-x64-gnu": 4.37.0 - "@rollup/rollup-linux-x64-musl": 4.37.0 - "@rollup/rollup-win32-arm64-msvc": 4.37.0 - "@rollup/rollup-win32-ia32-msvc": 4.37.0 - "@rollup/rollup-win32-x64-msvc": 4.37.0 - "@types/estree": 1.0.6 + version: 4.38.0 + resolution: "rollup@npm:4.38.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.38.0 + "@rollup/rollup-android-arm64": 4.38.0 + "@rollup/rollup-darwin-arm64": 4.38.0 + "@rollup/rollup-darwin-x64": 4.38.0 + "@rollup/rollup-freebsd-arm64": 4.38.0 + "@rollup/rollup-freebsd-x64": 4.38.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.38.0 + "@rollup/rollup-linux-arm-musleabihf": 4.38.0 + "@rollup/rollup-linux-arm64-gnu": 4.38.0 + "@rollup/rollup-linux-arm64-musl": 4.38.0 + "@rollup/rollup-linux-loongarch64-gnu": 4.38.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.38.0 + "@rollup/rollup-linux-riscv64-gnu": 4.38.0 + "@rollup/rollup-linux-riscv64-musl": 4.38.0 + "@rollup/rollup-linux-s390x-gnu": 4.38.0 + "@rollup/rollup-linux-x64-gnu": 4.38.0 + "@rollup/rollup-linux-x64-musl": 4.38.0 + "@rollup/rollup-win32-arm64-msvc": 4.38.0 + "@rollup/rollup-win32-ia32-msvc": 4.38.0 + "@rollup/rollup-win32-x64-msvc": 4.38.0 + "@types/estree": 1.0.7 fsevents: ~2.3.2 dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -18528,7 +18528,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: bb6c82ab5a12750e7dd521651f7bb7f44e4c03f058f38995f65141d4032b53a9f4b14d777af1bec6f00cdbbd1cf856581b516d803c9c5ecaede0b77501239673 + checksum: b2c44611bb99c2023dcca48ab804aff2fdad5bc8e3ca0693a6971c1fcfb421d6cd48dfb7dc7f836e234ec8b2b5e3392b8ae2d9b9d090d826730225a7d1ae8af2 languageName: node linkType: hard @@ -19406,7 +19406,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.8.0": +"std-env@npm:^3.8.1": version: 3.8.1 resolution: "std-env@npm:3.8.1" checksum: 20114a5270aa2a3fc50d897461c6ab73329cf2d3c6bff1c124bb969577493aeebda8ee1916588b2657afcee9881bc652437cfdec6360e3f30be36c8675ea0cbb @@ -20417,12 +20417,12 @@ __metadata: "@typescript-eslint/eslint-plugin": 8.28.0 "@typescript-eslint/parser": 8.28.0 "@typescript-eslint/utils": 8.28.0 - "@vitest/coverage-v8": ^3.0.9 + "@vitest/coverage-v8": ^3.1.1 downlevel-dts: "*" prettier: ^3.2.5 rimraf: "*" typescript: "*" - vitest: ^3.0.9 + vitest: ^3.1.1 peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" @@ -20856,9 +20856,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:3.0.9": - version: 3.0.9 - resolution: "vite-node@npm:3.0.9" +"vite-node@npm:3.1.1": + version: 3.1.1 + resolution: "vite-node@npm:3.1.1" dependencies: cac: ^6.7.14 debug: ^4.4.0 @@ -20867,13 +20867,13 @@ __metadata: vite: ^5.0.0 || ^6.0.0 bin: vite-node: vite-node.mjs - checksum: 6a40628da3d3098aa10404106b12b77327301260f3979dacce0d579a6ee09258982ee81183118f13c0703c0a0cf77118ae56a29354a4bed79565d35d1187d42d + checksum: 34f214413cdbdf77bd2ff786934fa6c3e7c6628cfae6e6aba92fc7c0438ad0642166e43077954216b7737aed9de5dec4b6a916dea0384b791e1521e242dd2d56 languageName: node linkType: hard -"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.3": - version: 6.2.3 - resolution: "vite@npm:6.2.3" +"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.4": + version: 6.2.4 + resolution: "vite@npm:6.2.4" dependencies: esbuild: ^0.25.0 fsevents: ~2.3.3 @@ -20919,40 +20919,40 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 5ce6c0ce9fd3591e1eb21ffaac9b1395cbd03926399cdb0f2a333c08fd9cab17da47d5203b88b574675c4a6ad5a77dd4a88ad51ea400ad6d75d993d5f05c8b64 + checksum: 1b3692e1b599481c06875b462e3613b19cd5f3f3890cd418b43d4b5c2dd575e1ea6ed540448c083f1d664c912c42f80d881bc6f3f0c823f0ad2323dc762c8d6b languageName: node linkType: hard -"vitest@npm:^3.0.9": - version: 3.0.9 - resolution: "vitest@npm:3.0.9" - dependencies: - "@vitest/expect": 3.0.9 - "@vitest/mocker": 3.0.9 - "@vitest/pretty-format": ^3.0.9 - "@vitest/runner": 3.0.9 - "@vitest/snapshot": 3.0.9 - "@vitest/spy": 3.0.9 - "@vitest/utils": 3.0.9 +"vitest@npm:^3.1.1": + version: 3.1.1 + resolution: "vitest@npm:3.1.1" + dependencies: + "@vitest/expect": 3.1.1 + "@vitest/mocker": 3.1.1 + "@vitest/pretty-format": ^3.1.1 + "@vitest/runner": 3.1.1 + "@vitest/snapshot": 3.1.1 + "@vitest/spy": 3.1.1 + "@vitest/utils": 3.1.1 chai: ^5.2.0 debug: ^4.4.0 - expect-type: ^1.1.0 + expect-type: ^1.2.0 magic-string: ^0.30.17 pathe: ^2.0.3 - std-env: ^3.8.0 + std-env: ^3.8.1 tinybench: ^2.9.0 tinyexec: ^0.3.2 tinypool: ^1.0.2 tinyrainbow: ^2.0.0 vite: ^5.0.0 || ^6.0.0 - vite-node: 3.0.9 + vite-node: 3.1.1 why-is-node-running: ^2.3.0 peerDependencies: "@edge-runtime/vm": "*" "@types/debug": ^4.1.12 "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - "@vitest/browser": 3.0.9 - "@vitest/ui": 3.0.9 + "@vitest/browser": 3.1.1 + "@vitest/ui": 3.1.1 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -20972,7 +20972,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: f8ec160cf8f75e4344dfa8f330e2cac6a49635977319a04c36803ccec1b69918381e435cb9d01edafab293648c65e9b766bba71fdf3451cb927590be263687f9 + checksum: 817198380f249388bebc64cdae27e64d04570bc6ca98c13b3518059a655ebf94f413e17bbe5d71bfc2ca444e9ab93d0b39e9da4f455a51600fd92d4fa6c50664 languageName: node linkType: hard From b23c42df8ea9e272612a666591181e9e4985d510 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Wed, 2 Apr 2025 11:19:11 -0500 Subject: [PATCH 30/45] Update `@vitest/eslint-plugin` to version 1.1.39 --- package.json | 2 +- yarn.lock | 184 +++++++++++++++++++++++++-------------------------- 2 files changed, 93 insertions(+), 93 deletions(-) diff --git a/package.json b/package.json index 8c4937f3aae8..437aa265179a 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", "@vitest/coverage-v8": "^3.1.1", - "@vitest/eslint-plugin": "^1.1.38", + "@vitest/eslint-plugin": "^1.1.39", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", "cspell": "^8.15.2", diff --git a/yarn.lock b/yarn.lock index 72344b573aec..4a16e3ce24b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4703,142 +4703,142 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.38.0" +"@rollup/rollup-android-arm-eabi@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.39.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-android-arm64@npm:4.38.0" +"@rollup/rollup-android-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-android-arm64@npm:4.39.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.38.0" +"@rollup/rollup-darwin-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.39.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.38.0" +"@rollup/rollup-darwin-x64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.39.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.38.0" +"@rollup/rollup-freebsd-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.39.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-freebsd-x64@npm:4.38.0" +"@rollup/rollup-freebsd-x64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.39.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.38.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.38.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.39.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.38.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.39.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.38.0" +"@rollup/rollup-linux-arm64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.39.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.38.0" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.38.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.38.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.39.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.38.0" +"@rollup/rollup-linux-riscv64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.39.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.38.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.39.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.38.0" +"@rollup/rollup-linux-x64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.39.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.38.0" +"@rollup/rollup-linux-x64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.39.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.38.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.39.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.38.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.39.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.38.0": - version: 4.38.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.38.0" +"@rollup/rollup-win32-x64-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.39.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6269,7 +6269,7 @@ __metadata: "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" "@vitest/coverage-v8": ^3.1.1 - "@vitest/eslint-plugin": ^1.1.38 + "@vitest/eslint-plugin": ^1.1.39 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 cspell: ^8.15.2 @@ -6431,9 +6431,9 @@ __metadata: languageName: node linkType: hard -"@vitest/eslint-plugin@npm:^1.1.38": - version: 1.1.38 - resolution: "@vitest/eslint-plugin@npm:1.1.38" +"@vitest/eslint-plugin@npm:^1.1.39": + version: 1.1.39 + resolution: "@vitest/eslint-plugin@npm:1.1.39" peerDependencies: "@typescript-eslint/utils": ^8.24.0 eslint: ">= 8.57.0" @@ -6444,7 +6444,7 @@ __metadata: optional: true vitest: optional: true - checksum: 139b3f3f6fbb4e3ef92a5228f6e73b881228351f0ff32fe0d1c3e63a0d3548eb8927c15ab41053dd18b642c111b291f9333b3db097a188af659ee7aa11993dd0 + checksum: 0730c7d2a24b6e72ad74478991f7426fe889d0a326f4dc5034db5bfb1fcedeb1f54f8d90d61587e66c447139fa5c72af07003d740753860de82a9b0565bd14aa languageName: node linkType: hard @@ -10869,9 +10869,9 @@ __metadata: linkType: hard "expect-type@npm:^1.2.0": - version: 1.2.0 - resolution: "expect-type@npm:1.2.0" - checksum: fb6cce8e0d8cd2d2b329afeacad08dbf01297b0363494a826cb3dad7d22d45e5283a1c2c3f8cdef5765afefab4676a7cb9a46c9c5a506fdd1ee255e429debe96 + version: 1.2.1 + resolution: "expect-type@npm:1.2.1" + checksum: 4fc41ff0c784cb8984ab7801326251d3178083661f0ad08bbd3e5ca789293e6b66d5082f0cef83ebf9849c85d0280a19df5e4e2c57999a2464db9a01c7e3344f languageName: node linkType: hard @@ -18458,29 +18458,29 @@ __metadata: linkType: hard "rollup@npm:^4.30.1": - version: 4.38.0 - resolution: "rollup@npm:4.38.0" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.38.0 - "@rollup/rollup-android-arm64": 4.38.0 - "@rollup/rollup-darwin-arm64": 4.38.0 - "@rollup/rollup-darwin-x64": 4.38.0 - "@rollup/rollup-freebsd-arm64": 4.38.0 - "@rollup/rollup-freebsd-x64": 4.38.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.38.0 - "@rollup/rollup-linux-arm-musleabihf": 4.38.0 - "@rollup/rollup-linux-arm64-gnu": 4.38.0 - "@rollup/rollup-linux-arm64-musl": 4.38.0 - "@rollup/rollup-linux-loongarch64-gnu": 4.38.0 - "@rollup/rollup-linux-powerpc64le-gnu": 4.38.0 - "@rollup/rollup-linux-riscv64-gnu": 4.38.0 - "@rollup/rollup-linux-riscv64-musl": 4.38.0 - "@rollup/rollup-linux-s390x-gnu": 4.38.0 - "@rollup/rollup-linux-x64-gnu": 4.38.0 - "@rollup/rollup-linux-x64-musl": 4.38.0 - "@rollup/rollup-win32-arm64-msvc": 4.38.0 - "@rollup/rollup-win32-ia32-msvc": 4.38.0 - "@rollup/rollup-win32-x64-msvc": 4.38.0 + version: 4.39.0 + resolution: "rollup@npm:4.39.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.39.0 + "@rollup/rollup-android-arm64": 4.39.0 + "@rollup/rollup-darwin-arm64": 4.39.0 + "@rollup/rollup-darwin-x64": 4.39.0 + "@rollup/rollup-freebsd-arm64": 4.39.0 + "@rollup/rollup-freebsd-x64": 4.39.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.39.0 + "@rollup/rollup-linux-arm-musleabihf": 4.39.0 + "@rollup/rollup-linux-arm64-gnu": 4.39.0 + "@rollup/rollup-linux-arm64-musl": 4.39.0 + "@rollup/rollup-linux-loongarch64-gnu": 4.39.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.39.0 + "@rollup/rollup-linux-riscv64-gnu": 4.39.0 + "@rollup/rollup-linux-riscv64-musl": 4.39.0 + "@rollup/rollup-linux-s390x-gnu": 4.39.0 + "@rollup/rollup-linux-x64-gnu": 4.39.0 + "@rollup/rollup-linux-x64-musl": 4.39.0 + "@rollup/rollup-win32-arm64-msvc": 4.39.0 + "@rollup/rollup-win32-ia32-msvc": 4.39.0 + "@rollup/rollup-win32-x64-msvc": 4.39.0 "@types/estree": 1.0.7 fsevents: ~2.3.2 dependenciesMeta: @@ -18528,7 +18528,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: b2c44611bb99c2023dcca48ab804aff2fdad5bc8e3ca0693a6971c1fcfb421d6cd48dfb7dc7f836e234ec8b2b5e3392b8ae2d9b9d090d826730225a7d1ae8af2 + checksum: e5205be3107221bc0de467c6f9d2cc4bef18019f5111fa84f24dd640cb1c82c0c46a5f51c052df956fe24bd6a1e34398fb5abe08470f94d29aa7ad08208115e9 languageName: node linkType: hard From 4a09a2d85f72ccf7b46e476777a978993fd5b968 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Wed, 2 Apr 2025 23:59:29 -0500 Subject: [PATCH 31/45] Fix `knip` config --- knip.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/knip.ts b/knip.ts index 0d7df6173382..af8570224e94 100644 --- a/knip.ts +++ b/knip.ts @@ -11,9 +11,14 @@ export default { types: 'off', unresolved: 'off', }, + + vite: false, + vitest: { - config: ['vitest.config.mts', 'packages/*/vitest.config.mts'], + config: ['vitest.config.mts'], + entry: ['tests/**/*.{bench,test,test-d}.?(c|m)ts?(x)'], }, + workspaces: { '.': { entry: ['tools/release/changelog-renderer.js', 'tools/scripts/**/*.mts'], From c2411a74c27099aa83e8caa5ec10067ab1add141 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 3 Apr 2025 05:59:38 -0500 Subject: [PATCH 32/45] Update `vite` to version 6.2.5 --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 437aa265179a..68bc118116e2 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,7 @@ "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", - "vite": "^6.2.4", + "vite": "^6.2.5", "vitest": "^3.1.1", "yargs": "17.7.2" }, diff --git a/yarn.lock b/yarn.lock index 4a16e3ce24b7..1f7926d30c66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6303,7 +6303,7 @@ __metadata: tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" - vite: ^6.2.4 + vite: ^6.2.5 vitest: ^3.1.1 yargs: 17.7.2 languageName: unknown @@ -20871,9 +20871,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.4": - version: 6.2.4 - resolution: "vite@npm:6.2.4" +"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.5": + version: 6.2.5 + resolution: "vite@npm:6.2.5" dependencies: esbuild: ^0.25.0 fsevents: ~2.3.3 @@ -20919,7 +20919,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 1b3692e1b599481c06875b462e3613b19cd5f3f3890cd418b43d4b5c2dd575e1ea6ed540448c083f1d664c912c42f80d881bc6f3f0c823f0ad2323dc762c8d6b + checksum: 49a6529c5ae8d6e4926f2daa51d7e20c50d780d8d2ec8c08605e966983fe8d17ec69bc36a356c1a21141c5a630b7a4109f3690c5b33f579d3e2bf26f914a149d languageName: node linkType: hard From 9da04c05a5206cf76eb3525b8638cdbdbabf2e50 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Mon, 7 Apr 2025 10:57:59 -0500 Subject: [PATCH 33/45] Fix `integration-tests` --- eslint.config.mjs | 4 +- .../tools/integration-test-base.ts | 107 +----------- .../integration-tests/tools/pack-packages.ts | 155 +++++++++++++++--- packages/integration-tests/vitest.config.mts | 8 - 4 files changed, 143 insertions(+), 131 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index d20c2a94c8f0..f8c2a72afaf9 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -33,6 +33,8 @@ const vitestFiles = [ 'packages/eslint-plugin-internal/tests/**/*.test.{ts,tsx,cts,mts}', 'packages/typescript-eslint/tests/**/*.test.{ts,tsx,cts,mts}', 'packages/integration-tests/tests/**/*.test.{ts,tsx,cts,mts},', + 'packages/integration-tests/tools/integration-test-base.ts', + 'packages/integration-tests/tools/pack-packages.ts', ]; export default tseslint.config( @@ -391,8 +393,6 @@ export default tseslint.config( 'packages/*/tests/**/*.test.{ts,tsx,cts,mts}', 'packages/*/tests/**/test.{ts,tsx,cts,mts}', 'packages/parser/tests/**/*.{ts,tsx,cts,mts}', - 'packages/integration-tests/tools/integration-test-base.ts', - 'packages/integration-tests/tools/pack-packages.ts', ], ignores: vitestFiles, rules: { diff --git a/packages/integration-tests/tools/integration-test-base.ts b/packages/integration-tests/tools/integration-test-base.ts index a82aab9bb3e9..8951c11c54e4 100644 --- a/packages/integration-tests/tools/integration-test-base.ts +++ b/packages/integration-tests/tools/integration-test-base.ts @@ -1,23 +1,7 @@ -import * as childProcess from 'node:child_process'; import * as fs from 'node:fs/promises'; import * as path from 'node:path'; -import { inject } from 'vitest'; -import type { PackageJSON } from './pack-packages.js'; - -import rootPackageJson from '../../../package.json'; -import { execFile, homeOrTmpDir } from './pack-packages.js'; - -const tseslintPackages = inject('tseslintPackages'); - -const BASE_DEPENDENCIES: PackageJSON['devDependencies'] = { - ...tseslintPackages, - eslint: rootPackageJson.devDependencies.eslint, - typescript: rootPackageJson.devDependencies.typescript, - vitest: rootPackageJson.devDependencies.vitest, -}; - -const FIXTURES_DIR = path.join(__dirname, '..', 'fixtures'); +import { execFile, FIXTURES_DESTINATION_DIR } from './pack-packages.js'; // make sure that vitest doesn't timeout the test vi.setConfig({ testTimeout: 60_000 }); @@ -28,89 +12,12 @@ function integrationTest( executeTest: (testFolder: string) => Promise, ): void { const fixture = path.parse(testFilename).name.replace('.test', ''); - describe(fixture, () => { - const fixtureDir = path.join(FIXTURES_DIR, fixture); + const testFolder = path.join(FIXTURES_DESTINATION_DIR, fixture); + + describe(fixture, () => { describe(testName, () => { it('should work successfully', async () => { - const testFolder = path.join( - homeOrTmpDir, - 'typescript-eslint-integration-tests', - fixture, - ); - - await fs.mkdir(testFolder, { recursive: true }); - - // copy the fixture files to the temp folder - await fs.cp(fixtureDir, testFolder, { recursive: true }); - - // build and write the package.json for the test - const fixturePackageJson: PackageJSON = ( - await import(path.join(fixtureDir, 'package.json'), { - with: { type: 'json' }, - }) - ).default; - - await fs.writeFile( - path.join(testFolder, 'package.json'), - JSON.stringify( - { - private: true, - ...fixturePackageJson, - devDependencies: { - ...BASE_DEPENDENCIES, - ...fixturePackageJson.devDependencies, - }, - // ensure everything uses the locally packed versions instead of the NPM versions - resolutions: { - ...tseslintPackages, - }, - }, - null, - 2, - ), - { encoding: 'utf-8' }, - ); - // console.log('package.json written.'); - - // Ensure yarn uses the node-modules linker and not PnP - await fs.writeFile( - path.join(testFolder, '.yarnrc.yml'), - `nodeLinker: node-modules\n`, - { encoding: 'utf-8' }, - ); - - await new Promise((resolve, reject) => { - // we use the non-promise version so we can log everything on error - childProcess.execFile( - // we use yarn instead of npm as it will cache the remote packages and - // make installing things faster - 'yarn', - // We call explicitly with --no-immutable to prevent errors related to missing lock files in CI - ['install', '--no-immutable'], - { - cwd: testFolder, - shell: true, - }, - (err, stdout, stderr) => { - if (err) { - if (stdout.length > 0) { - console.warn(stdout); - } - if (stderr.length > 0) { - console.error(stderr); - } - // childProcess.ExecFileException is an extension of Error - // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors - reject(err); - } else { - resolve(); - } - }, - ); - }); - // console.log('Install complete.'); - await executeTest(testFolder); }); }); @@ -125,7 +32,6 @@ export function eslintIntegrationTest( // lint, outputting to a JSON file const outFile = path.join(testFolder, 'eslint.json'); - await fs.writeFile(outFile, '', { encoding: 'utf-8' }); let stderr = ''; try { await execFile( @@ -167,10 +73,7 @@ export function eslintIntegrationTest( (_, testFile: string) => `"filePath": "/${path.relative(testFolder, testFile)}"`, ) - .replaceAll( - /C:\\\\usr\\\\linked\\\\tsconfig.json/g, - path.posix.join('/usr', 'linked', 'tsconfig.json'), - ); + .replaceAll(/C:\\\\(usr)\\\\(linked)\\\\(tsconfig.json)/g, '/$1/$2/$3'); try { const lintOutput = JSON.parse(lintOutputRAW); expect(lintOutput).toMatchSnapshot(); diff --git a/packages/integration-tests/tools/pack-packages.ts b/packages/integration-tests/tools/pack-packages.ts index 488fd0b69430..403ecf6ff581 100644 --- a/packages/integration-tests/tools/pack-packages.ts +++ b/packages/integration-tests/tools/pack-packages.ts @@ -16,37 +16,49 @@ import * as path from 'node:path'; import { pathToFileURL } from 'node:url'; import { promisify } from 'node:util'; +import rootPackageJson from '../../../package.json'; + export const execFile = promisify(child_process.execFile); -export interface PackageJSON { +interface PackageJSON { devDependencies: Record; name: string; private?: boolean; } -declare module 'vitest' { - export interface ProvidedContext { - tseslintPackages: PackageJSON['devDependencies']; - } -} - const PACKAGES_DIR = path.resolve(__dirname, '..', '..'); -export const homeOrTmpDir = os.tmpdir() || os.homedir(); - -const tarFolder = path.join( - homeOrTmpDir, +const INTEGRATION_TEST_DIR = path.join( + os.tmpdir() || os.homedir(), 'typescript-eslint-integration-tests', - 'tarballs', ); +const FIXTURES_DIR_BASENAME = 'fixtures'; + +export const FIXTURES_DESTINATION_DIR = path.join( + INTEGRATION_TEST_DIR, + FIXTURES_DIR_BASENAME, +); + +const YARN_RC_CONTENT = 'nodeLinker: node-modules\n\nenableGlobalCache: true\n'; + +const FIXTURES_DIR = path.join(__dirname, '..', FIXTURES_DIR_BASENAME); + +const TAR_FOLDER = path.join(INTEGRATION_TEST_DIR, 'tarballs'); + export const setup = async (project: TestProject): Promise => { + const testFileBaseNames = project.vitest.state + .getPaths() + .map(testFilePath => path.basename(testFilePath, '.test.ts')); + const PACKAGES = await fs.readdir(PACKAGES_DIR, { encoding: 'utf-8', withFileTypes: true, }); - await fs.mkdir(tarFolder, { recursive: true }); + await fs.mkdir(FIXTURES_DESTINATION_DIR, { recursive: true }); + + await fs.mkdir(TAR_FOLDER, { recursive: true }); const tseslintPackages = Object.fromEntries( ( @@ -56,7 +68,7 @@ export const setup = async (project: TestProject): Promise => { const packagePath = path.join(packageDir, 'package.json'); try { - if (!(await fs.stat(packagePath)).isFile()) { + if (!(await fs.lstat(packagePath)).isFile()) { return; } } catch { @@ -74,7 +86,7 @@ export const setup = async (project: TestProject): Promise => { } const result = await execFile('npm', ['pack', packageDir], { - cwd: tarFolder, + cwd: TAR_FOLDER, encoding: 'utf-8', shell: true, }); @@ -88,20 +100,125 @@ export const setup = async (project: TestProject): Promise => { return [ packageJson.name, - `file:${path.join(tarFolder, tarball)}`, + `file:${path.join(TAR_FOLDER, tarball)}`, ] as const; }), ) ).filter(e => e != null), ); - console.log('Finished packing local packages.'); + const BASE_DEPENDENCIES: PackageJSON['devDependencies'] = { + ...tseslintPackages, + eslint: rootPackageJson.devDependencies.eslint, + typescript: rootPackageJson.devDependencies.typescript, + vitest: rootPackageJson.devDependencies.vitest, + }; - project.provide('tseslintPackages', tseslintPackages); + const temp = await fs.mkdtemp(path.join(INTEGRATION_TEST_DIR, 'temp'), { + encoding: 'utf-8', + }); + + await fs.writeFile(path.join(temp, '.yarnrc.yml'), YARN_RC_CONTENT, { + encoding: 'utf-8', + }); + + await fs.writeFile( + path.join(temp, 'package.json'), + JSON.stringify( + { + devDependencies: BASE_DEPENDENCIES, + packageManager: rootPackageJson.packageManager, + private: true, + resolutions: tseslintPackages, + }, + null, + 2, + ), + { encoding: 'utf-8' }, + ); + + // We install the tarballs here once so that yarn can cache them globally. + // This solves 2 problems: + // 1. Tests can be run concurrently because they won't be trying to install + // the same tarballs at the same time. + // 2. Installing the tarballs for each test becomes much faster as Yarn can + // grab them from the global cache folder. + await execFile('yarn', ['install', '--no-immutable'], { + cwd: temp, + shell: true, + }); + + await Promise.all( + testFileBaseNames.map(async fixture => { + const testFolder = path.join(FIXTURES_DESTINATION_DIR, fixture); + + const fixtureDir = path.join(FIXTURES_DIR, fixture); + + const fixturePackageJson: PackageJSON = ( + await import( + pathToFileURL(path.join(fixtureDir, 'package.json')).href, + { with: { type: 'json' } } + ) + ).default; + + await fs.cp(fixtureDir, testFolder, { recursive: true }); + + await fs.writeFile( + path.join(testFolder, 'package.json'), + JSON.stringify( + { + private: true, + ...fixturePackageJson, + devDependencies: { + ...BASE_DEPENDENCIES, + ...fixturePackageJson.devDependencies, + }, + + packageManager: rootPackageJson.packageManager, + + // ensure everything uses the locally packed versions instead of the NPM versions + resolutions: { + ...tseslintPackages, + }, + }, + null, + 2, + ), + { encoding: 'utf-8' }, + ); + + await fs.writeFile( + path.join(testFolder, '.yarnrc.yml'), + YARN_RC_CONTENT, + { encoding: 'utf-8' }, + ); + + const { stderr, stdout } = await execFile( + 'yarn', + ['install', '--no-immutable'], + { + cwd: testFolder, + shell: true, + }, + ); + + if (stderr) { + console.error(stderr); + + if (stdout) { + console.log(stdout); + } + } + }), + ); + + await fs.rm(temp, { recursive: true }); + + console.log('Finished packing local packages.'); }; export const teardown = async (): Promise => { if (process.env.KEEP_INTEGRATION_TEST_DIR !== 'true') { - await fs.rm(path.dirname(tarFolder), { recursive: true }); + await fs.rm(INTEGRATION_TEST_DIR, { recursive: true }); } }; diff --git a/packages/integration-tests/vitest.config.mts b/packages/integration-tests/vitest.config.mts index 97c158e968c5..5bf58b7687e7 100644 --- a/packages/integration-tests/vitest.config.mts +++ b/packages/integration-tests/vitest.config.mts @@ -1,4 +1,3 @@ -import * as os from 'node:os'; import * as path from 'node:path'; import { defineProject, mergeConfig } from 'vitest/config'; @@ -15,13 +14,6 @@ const vitestConfig = mergeConfig( dir: path.join(import.meta.dirname, 'tests'), globalSetup: ['./tools/pack-packages.ts'], name: packageJson.name.replace('@typescript-eslint/', ''), - - poolOptions: { - forks: { - singleFork: os.platform() === 'win32', - }, - }, - root: import.meta.dirname, }, }), From 59482bccbcbb7feb78e56221c8e3b98f7832fa6f Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Tue, 8 Apr 2025 03:08:00 -0500 Subject: [PATCH 34/45] Fix `integration-tests` --- packages/integration-tests/tools/pack-packages.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/integration-tests/tools/pack-packages.ts b/packages/integration-tests/tools/pack-packages.ts index 403ecf6ff581..a5b83cee1f59 100644 --- a/packages/integration-tests/tools/pack-packages.ts +++ b/packages/integration-tests/tools/pack-packages.ts @@ -47,9 +47,9 @@ const FIXTURES_DIR = path.join(__dirname, '..', FIXTURES_DIR_BASENAME); const TAR_FOLDER = path.join(INTEGRATION_TEST_DIR, 'tarballs'); export const setup = async (project: TestProject): Promise => { - const testFileBaseNames = project.vitest.state - .getPaths() - .map(testFilePath => path.basename(testFilePath, '.test.ts')); + const testFileBaseNames = ( + await project.globTestFiles(project.vitest.state.getPaths()) + ).testFiles.map(testFilePath => path.basename(testFilePath, '.test.ts')); const PACKAGES = await fs.readdir(PACKAGES_DIR, { encoding: 'utf-8', From b802e1623ea2e80c27668a50c59a3b9c57a6b41f Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 10 Apr 2025 09:09:34 -0500 Subject: [PATCH 35/45] Update `vite` to version 6.2.6 --- package.json | 2 +- yarn.lock | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 68bc118116e2..8dc964d6a70c 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,7 @@ "tsx": "*", "typescript": ">=4.8.4 <5.9.0", "typescript-eslint": "workspace:^", - "vite": "^6.2.5", + "vite": "^6.2.6", "vitest": "^3.1.1", "yargs": "17.7.2" }, diff --git a/yarn.lock b/yarn.lock index 7f6bd0474b12..dc71c808f85d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6303,7 +6303,7 @@ __metadata: tsx: "*" typescript: ">=4.8.4 <5.9.0" typescript-eslint: "workspace:^" - vite: ^6.2.5 + vite: ^6.2.6 vitest: ^3.1.1 yargs: 17.7.2 languageName: unknown @@ -6432,10 +6432,9 @@ __metadata: linkType: hard "@vitest/eslint-plugin@npm:^1.1.39": - version: 1.1.39 - resolution: "@vitest/eslint-plugin@npm:1.1.39" + version: 1.1.40 + resolution: "@vitest/eslint-plugin@npm:1.1.40" peerDependencies: - "@typescript-eslint/utils": ^8.24.0 eslint: ">= 8.57.0" typescript: ">= 5.0.0" vitest: "*" @@ -6444,7 +6443,7 @@ __metadata: optional: true vitest: optional: true - checksum: 0730c7d2a24b6e72ad74478991f7426fe889d0a326f4dc5034db5bfb1fcedeb1f54f8d90d61587e66c447139fa5c72af07003d740753860de82a9b0565bd14aa + checksum: bb8c4d7654945890f666be6ef0ebd8c21b6f896416099655bfd286ad0d388b6e5b83e11a9cdd044daeb11dac1bc1ee03d41db02db27426a8cedfdd33a6675645 languageName: node linkType: hard @@ -19407,9 +19406,9 @@ __metadata: linkType: hard "std-env@npm:^3.8.1": - version: 3.8.1 - resolution: "std-env@npm:3.8.1" - checksum: 20114a5270aa2a3fc50d897461c6ab73329cf2d3c6bff1c124bb969577493aeebda8ee1916588b2657afcee9881bc652437cfdec6360e3f30be36c8675ea0cbb + version: 3.9.0 + resolution: "std-env@npm:3.9.0" + checksum: d40126e4a650f6e5456711e6c297420352a376ef99a9599e8224d2d8f2ff2b91a954f3264fcef888d94fce5c9ae14992c5569761c95556fc87248ce4602ed212 languageName: node linkType: hard @@ -20871,9 +20870,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.5": - version: 6.2.5 - resolution: "vite@npm:6.2.5" +"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^6.2.6": + version: 6.2.6 + resolution: "vite@npm:6.2.6" dependencies: esbuild: ^0.25.0 fsevents: ~2.3.3 @@ -20919,7 +20918,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 49a6529c5ae8d6e4926f2daa51d7e20c50d780d8d2ec8c08605e966983fe8d17ec69bc36a356c1a21141c5a630b7a4109f3690c5b33f579d3e2bf26f914a149d + checksum: ddeb36d29c053c6d6f0e70eb01939848db611135878d85e9497fc4b899667f58ce35ea4014acf01342ee1cf115879280fac809c0a806ad6432833cde87fe90dc languageName: node linkType: hard From e0000512fe377fd82dc21a3f1d8129bd5d5817d6 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 10 Apr 2025 09:16:23 -0500 Subject: [PATCH 36/45] Update `@vitest/eslint-plugin` to version 1.1.40 --- package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 8dc964d6a70c..a1f8af775685 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", "@vitest/coverage-v8": "^3.1.1", - "@vitest/eslint-plugin": "^1.1.39", + "@vitest/eslint-plugin": "^1.1.40", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", "cspell": "^8.15.2", diff --git a/yarn.lock b/yarn.lock index dc71c808f85d..55f59d9078bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6269,7 +6269,7 @@ __metadata: "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" "@vitest/coverage-v8": ^3.1.1 - "@vitest/eslint-plugin": ^1.1.39 + "@vitest/eslint-plugin": ^1.1.40 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 cspell: ^8.15.2 @@ -6431,7 +6431,7 @@ __metadata: languageName: node linkType: hard -"@vitest/eslint-plugin@npm:^1.1.39": +"@vitest/eslint-plugin@npm:^1.1.40": version: 1.1.40 resolution: "@vitest/eslint-plugin@npm:1.1.40" peerDependencies: From 03a9ddc0c18190152435601d3a71c430b56fe6ed Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 10 Apr 2025 19:17:09 -0500 Subject: [PATCH 37/45] Update `@vitest/eslint-plugin` to version 1.1.42 --- package.json | 2 +- yarn.lock | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 1ef867994bdf..61fc5e9ce4f0 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@typescript-eslint/typescript-estree": "workspace:^", "@typescript-eslint/utils": "workspace:^", "@vitest/coverage-v8": "^3.1.1", - "@vitest/eslint-plugin": "^1.1.40", + "@vitest/eslint-plugin": "^1.1.42", "console-fail-test": "^0.5.0", "cross-fetch": "^4.0.0", "cspell": "^8.15.2", diff --git a/yarn.lock b/yarn.lock index bce8d6e52dda..b766da182575 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6269,7 +6269,7 @@ __metadata: "@typescript-eslint/typescript-estree": "workspace:^" "@typescript-eslint/utils": "workspace:^" "@vitest/coverage-v8": ^3.1.1 - "@vitest/eslint-plugin": ^1.1.40 + "@vitest/eslint-plugin": ^1.1.42 console-fail-test: ^0.5.0 cross-fetch: ^4.0.0 cspell: ^8.15.2 @@ -6431,19 +6431,18 @@ __metadata: languageName: node linkType: hard -"@vitest/eslint-plugin@npm:^1.1.40": - version: 1.1.40 - resolution: "@vitest/eslint-plugin@npm:1.1.40" +"@vitest/eslint-plugin@npm:^1.1.42": + version: 1.1.42 + resolution: "@vitest/eslint-plugin@npm:1.1.42" peerDependencies: + "@typescript-eslint/utils": ">= 8.24.0" eslint: ">= 8.57.0" typescript: ">= 5.0.0" vitest: "*" peerDependenciesMeta: typescript: optional: true - vitest: - optional: true - checksum: bb8c4d7654945890f666be6ef0ebd8c21b6f896416099655bfd286ad0d388b6e5b83e11a9cdd044daeb11dac1bc1ee03d41db02db27426a8cedfdd33a6675645 + checksum: 0b78745fde3cd6c35ce2cecd097133a41ff0c3787f9827538be1196e54b22d41a63c8ce2ac4571f29132399e96d6cf5ee47dcaf8a8f618bed8de80ad86851046 languageName: node linkType: hard From 1ad683c65a27cf4d05f2820b8140b7d23f695d59 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 10 Apr 2025 19:55:48 -0500 Subject: [PATCH 38/45] Enable the new `vitest/prefer-describe-function-title` rule --- eslint.config.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/eslint.config.mjs b/eslint.config.mjs index 64b63d80d14f..d6d43ff3e406 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -441,6 +441,7 @@ export default tseslint.config( 'vitest/no-identical-title': 'error', 'vitest/no-test-prefixes': 'error', 'vitest/no-test-return-statement': 'error', + 'vitest/prefer-describe-function-title': 'error', 'vitest/prefer-each': 'error', 'vitest/prefer-spy-on': 'error', 'vitest/prefer-to-be': 'error', From 85871ec9349c0218c342d349be85a7410ec2b72f Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 11 Apr 2025 00:01:56 -0500 Subject: [PATCH 39/45] Use `vitestPlugin.configs.env` --- eslint.config.mjs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index d6d43ff3e406..d1b6f612c4b3 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -382,11 +382,7 @@ export default tseslint.config( // define the vitest globals for all test files { files: vitestFiles, - languageOptions: { - globals: { - ...vitestPlugin.environments.env.globals, - }, - }, + ...vitestPlugin.configs.env, }, // test file specific configuration { From 24ab0be262b2c84c56e950970fcb6c81c8b77155 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 11 Apr 2025 17:00:11 -0500 Subject: [PATCH 40/45] Run `ast-spec:typecheck` during `postinstall` --- tools/scripts/postinstall.mts | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/scripts/postinstall.mts b/tools/scripts/postinstall.mts index ba5dbc9d809e..5d123b1991d5 100644 --- a/tools/scripts/postinstall.mts +++ b/tools/scripts/postinstall.mts @@ -44,5 +44,6 @@ void (async function (): Promise { // Build all the packages ready for use await $`yarn build`; + await $`yarn nx typecheck ast-spec`; } })(); From 3aada338bb57c3d98002a3e581603df7c2370312 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 11 Apr 2025 17:33:24 -0500 Subject: [PATCH 41/45] Fix `ast-spec:test` --- packages/ast-spec/project.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/ast-spec/project.json b/packages/ast-spec/project.json index bb045ad1f6be..fcd5321b19f3 100644 --- a/packages/ast-spec/project.json +++ b/packages/ast-spec/project.json @@ -16,6 +16,9 @@ "executor": "@nx/eslint:lint", "outputs": ["{options.outputFile}"] }, + "test": { + "dependsOn": ["typecheck"] + }, "typecheck": { "dependsOn": ["typescript-estree:build"] } From 67e80dfcd00d7a536cd5817f04d6345545789648 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 11 Apr 2025 20:04:35 -0500 Subject: [PATCH 42/45] Try disabling remote cache --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 398c05e17baa..bc63f90d355c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -182,6 +182,10 @@ jobs: # Added the - at the end to function as a separator to improve readability in the PR comment from the Nx cloud app NX_CLOUD_ENV_NAME: 'Node ${{ matrix.node-version }} -' COLLECT_COVERAGE: false + NX_SKIP_NX_CACHE: true + NX_DISABLE_NX_CACHE: true + NX_SKIP_REMOTE_CACHE: true + NX_DISABLE_REMOTE_CACHE: true steps: - name: Checkout uses: actions/checkout@v4 @@ -205,6 +209,10 @@ jobs: if: env.PRIMARY_NODE_VERSION != matrix.node-version || matrix.os != 'ubuntu-latest' run: npx nx test ${{ matrix.package }} env: + NX_SKIP_REMOTE_CACHE: true + NX_DISABLE_NX_CACHE: true + NX_SKIP_NX_CACHE: true + NX_DISABLE_REMOTE_CACHE: true CI: true - name: Store coverage for uploading From bb7e02eeda97ddda99d588952512e7f2716281cb Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 11 Apr 2025 22:44:12 -0500 Subject: [PATCH 43/45] Try disabling remote cache --- .github/workflows/ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc63f90d355c..398c05e17baa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -182,10 +182,6 @@ jobs: # Added the - at the end to function as a separator to improve readability in the PR comment from the Nx cloud app NX_CLOUD_ENV_NAME: 'Node ${{ matrix.node-version }} -' COLLECT_COVERAGE: false - NX_SKIP_NX_CACHE: true - NX_DISABLE_NX_CACHE: true - NX_SKIP_REMOTE_CACHE: true - NX_DISABLE_REMOTE_CACHE: true steps: - name: Checkout uses: actions/checkout@v4 @@ -209,10 +205,6 @@ jobs: if: env.PRIMARY_NODE_VERSION != matrix.node-version || matrix.os != 'ubuntu-latest' run: npx nx test ${{ matrix.package }} env: - NX_SKIP_REMOTE_CACHE: true - NX_DISABLE_NX_CACHE: true - NX_SKIP_NX_CACHE: true - NX_DISABLE_REMOTE_CACHE: true CI: true - name: Store coverage for uploading From 3f8d5fb9d9cbe5c419dbc8534eb1f64c54190ca8 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Fri, 11 Apr 2025 22:44:26 -0500 Subject: [PATCH 44/45] Update `typecheck` output path in `nx.json` --- nx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nx.json b/nx.json index 6f69941fe0d4..a63ac186a25a 100644 --- a/nx.json +++ b/nx.json @@ -132,7 +132,7 @@ }, "typecheck": { "dependsOn": ["types:copy-ast-spec"], - "outputs": ["{workspaceRoot}/dist/out-tsc/{projectRoot}"], + "outputs": ["{workspaceRoot}/dist"], "cache": true } }, From e62aa0a66befc4e4e30018d4bbfd67073c306e76 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Sat, 12 Apr 2025 02:46:02 -0500 Subject: [PATCH 45/45] Fix `vitest` coverage output when run with `nx` --- nx.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/nx.json b/nx.json index a63ac186a25a..ac7a356e5991 100644 --- a/nx.json +++ b/nx.json @@ -103,12 +103,11 @@ "{workspaceRoot}/vitest.config.base.mts", "{projectRoot}/vitest.config.mts" ], - "outputs": ["{options.reportsDirectory}"], + "outputs": ["{projectRoot}/coverage"], "cache": true, "options": { "config": "{projectRoot}/vitest.config.mts", - "watch": false, - "reportsDirectory": "{projectRoot}/coverage" + "watch": false } }, "lint": {