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": { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy