diff --git a/package.json b/package.json index 48b9b6807..200902ecb 100644 --- a/package.json +++ b/package.json @@ -85,9 +85,9 @@ "@types/jest": "^29.0.0", "@types/node": "^16.0.0", "@types/semver": "^7.5.8", - "@typescript-eslint/eslint-plugin": "^7.0.0", - "@typescript-eslint/parser": "^7.0.0", - "@typescript-eslint/utils": "^7.0.0", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", + "@typescript-eslint/utils": "^8.0.0", "babel-jest": "^29.0.0", "babel-plugin-replace-ts-export-assignment": "^0.0.2", "dedent": "^1.5.0", diff --git a/src/rules/prefer-importing-jest-globals.ts b/src/rules/prefer-importing-jest-globals.ts index 639185ee6..862a7d5fb 100644 --- a/src/rules/prefer-importing-jest-globals.ts +++ b/src/rules/prefer-importing-jest-globals.ts @@ -117,7 +117,8 @@ export default createRule({ if (importNode?.type === AST_NODE_TYPES.ImportDeclaration) { for (const specifier of importNode.specifiers) { if (specifier.type === AST_NODE_TYPES.ImportSpecifier) { - let importName = specifier.imported.name ?? ''; + let importName = + 'name' in specifier.imported ? specifier.imported.name : ''; const local = getAccessorValue(specifier.local); if (local !== importName) { diff --git a/src/rules/unbound-method.ts b/src/rules/unbound-method.ts index 4ec40eafa..3a27a9d98 100644 --- a/src/rules/unbound-method.ts +++ b/src/rules/unbound-method.ts @@ -48,6 +48,14 @@ export type MessageIds = 'unbound' | 'unboundWithoutThisAnnotation'; const DEFAULT_MESSAGE = 'This rule requires `@typescript-eslint/eslint-plugin`'; +// todo: remove these along with the actual runtime properties below in new major +declare module '@typescript-eslint/utils/ts-eslint' { + interface RuleMetaDataDocs { + requiresTypeChecking?: boolean; + recommended?: unknown; + } +} + export default createRule({ defaultOptions: [{ ignoreStatic: false }], ...baseRule, diff --git a/src/rules/utils/parseJestFnCall.ts b/src/rules/utils/parseJestFnCall.ts index 56742edd8..a4292287f 100644 --- a/src/rules/utils/parseJestFnCall.ts +++ b/src/rules/utils/parseJestFnCall.ts @@ -452,15 +452,12 @@ const describeImportDefAsImport = ( return null; } - let imported = def.node.imported.name ?? ''; - - if ('value' in def.node.imported) { - imported = def.node.imported.value as string; - } - return { source: def.parent.source.value, - imported, + imported: + 'name' in def.node.imported + ? def.node.imported.name + : def.node.imported.value, local: def.node.local.name, }; }; diff --git a/yarn.lock b/yarn.lock index 85fe24053..f6ff3b2ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2888,44 +2888,40 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.18.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" +"@typescript-eslint/eslint-plugin@npm:^8.0.0": + version: 8.34.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.34.0" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/type-utils": 7.18.0 - "@typescript-eslint/utils": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 + "@typescript-eslint/scope-manager": 8.34.0 + "@typescript-eslint/type-utils": 8.34.0 + "@typescript-eslint/utils": 8.34.0 + "@typescript-eslint/visitor-keys": 8.34.0 graphemer: ^1.4.0 - ignore: ^5.3.1 + ignore: ^7.0.0 natural-compare: ^1.4.0 - ts-api-utils: ^1.3.0 + ts-api-utils: ^2.1.0 peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: dfcf150628ca2d4ccdfc20b46b0eae075c2f16ef5e70d9d2f0d746acf4c69a09f962b93befee01a529f14bbeb3e817b5aba287d7dd0edc23396bc5ed1f448c3d + "@typescript-eslint/parser": ^8.34.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: f5d4a57d0661bea3b15b8842abeae3327828647540e8127c882d44cbf793e84d4c9e33b6740f682891ddf20ca664a634b7016289e1bc98ae21f02808498a28ec languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.0.0": - version: 7.18.0 - resolution: "@typescript-eslint/parser@npm:7.18.0" +"@typescript-eslint/parser@npm:^8.0.0": + version: 8.34.0 + resolution: "@typescript-eslint/parser@npm:8.34.0" dependencies: - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/typescript-estree": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 + "@typescript-eslint/scope-manager": 8.34.0 + "@typescript-eslint/types": 8.34.0 + "@typescript-eslint/typescript-estree": 8.34.0 + "@typescript-eslint/visitor-keys": 8.34.0 debug: ^4.3.4 peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 132b56ac3b2d90b588d61d005a70f6af322860974225b60201cbf45abf7304d67b7d8a6f0ade1c188ac4e339884e78d6dcd450417f1481998f9ddd155bab0801 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: 7b6797c4d87e8b2e24f99bd2e9c4102366b8f77f4a2912f810df01d7b655524304859e0adef12c21dbbe986bacc7e45d35845d8c4439193350c38d8a14bb7ef7 languageName: node linkType: hard @@ -2942,13 +2938,16 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/scope-manager@npm:7.18.0" +"@typescript-eslint/project-service@npm:8.34.0": + version: 8.34.0 + resolution: "@typescript-eslint/project-service@npm:8.34.0" dependencies: - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 - checksum: b982c6ac13d8c86bb3b949c6b4e465f3f60557c2ccf4cc229799827d462df56b9e4d3eaed7711d79b875422fc3d71ec1ebcb5195db72134d07c619e3c5506b57 + "@typescript-eslint/tsconfig-utils": ^8.34.0 + "@typescript-eslint/types": ^8.34.0 + debug: ^4.3.4 + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: 194440e5f350c284faa760548d16b389c6d285262d5528c6fb83c6adaf7765c9d4c57e5dc9e48e10941c8833942dae0d543438bf25083ccf2a83208bbf293d38 languageName: node linkType: hard @@ -2962,6 +2961,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:8.34.0": + version: 8.34.0 + resolution: "@typescript-eslint/scope-manager@npm:8.34.0" + dependencies: + "@typescript-eslint/types": 8.34.0 + "@typescript-eslint/visitor-keys": 8.34.0 + checksum: 074464b1dc7efc7311eb54a74c1b592c1693a20abc46b6ed73f2d91377e83f85aa06780699208205b129b098b83f2c9a7c38c9f016617dd336cced3716fa0991 + languageName: node + linkType: hard + "@typescript-eslint/tsconfig-utils@npm:8.33.1, @typescript-eslint/tsconfig-utils@npm:^8.33.1": version: 8.33.1 resolution: "@typescript-eslint/tsconfig-utils@npm:8.33.1" @@ -2971,27 +2980,27 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/type-utils@npm:7.18.0" - dependencies: - "@typescript-eslint/typescript-estree": 7.18.0 - "@typescript-eslint/utils": 7.18.0 - debug: ^4.3.4 - ts-api-utils: ^1.3.0 +"@typescript-eslint/tsconfig-utils@npm:8.34.0, @typescript-eslint/tsconfig-utils@npm:^8.34.0": + version: 8.34.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.34.0" peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 68fd5df5146c1a08cde20d59b4b919acab06a1b06194fe4f7ba1b928674880249890785fbbc97394142f2ef5cff5a7fba9b8a940449e7d5605306505348e38bc + typescript: ">=4.8.4 <5.9.0" + checksum: cbbca9526bd9c0309c77f9436f68c2c06712779a593a17757f1f7558ece27d9f40db2b37ebf12bd9e19cf227479083b7973c502436a0954a08406d8a598910ba languageName: node linkType: hard -"@typescript-eslint/types@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/types@npm:7.18.0" - checksum: 7df2750cd146a0acd2d843208d69f153b458e024bbe12aab9e441ad2c56f47de3ddfeb329c4d1ea0079e2577fea4b8c1c1ce15315a8d49044586b04fedfe7a4d +"@typescript-eslint/type-utils@npm:8.34.0": + version: 8.34.0 + resolution: "@typescript-eslint/type-utils@npm:8.34.0" + dependencies: + "@typescript-eslint/typescript-estree": 8.34.0 + "@typescript-eslint/utils": 8.34.0 + debug: ^4.3.4 + ts-api-utils: ^2.1.0 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: 97046c06edc6d15363f9a1e08ace2f774def8b903b42bf32db6e7f944f0f308273583b0ddd86c013e3f945bc15862d11625ff0d63578cc0b6f94a881f7337cef languageName: node linkType: hard @@ -3002,22 +3011,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" - dependencies: - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - minimatch: ^9.0.4 - semver: ^7.6.0 - ts-api-utils: ^1.3.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: c82d22ec9654973944f779eb4eb94c52f4a6eafaccce2f0231ff7757313f3a0d0256c3252f6dfe6d43f57171d09656478acb49a629a9d0c193fb959bc3f36116 +"@typescript-eslint/types@npm:8.34.0, @typescript-eslint/types@npm:^8.34.0": + version: 8.34.0 + resolution: "@typescript-eslint/types@npm:8.34.0" + checksum: 08e5ff523df38d6db3abc41314825fe7b079340385e7b0618567a53e17da20062b71a7d7e8d5d62283d97296c58fdd3d52f126878d82042df18792c2c7f275ae languageName: node linkType: hard @@ -3041,17 +3038,38 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.18.0, @typescript-eslint/utils@npm:^7.0.0": - version: 7.18.0 - resolution: "@typescript-eslint/utils@npm:7.18.0" +"@typescript-eslint/typescript-estree@npm:8.34.0": + version: 8.34.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.34.0" dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/typescript-estree": 7.18.0 + "@typescript-eslint/project-service": 8.34.0 + "@typescript-eslint/tsconfig-utils": 8.34.0 + "@typescript-eslint/types": 8.34.0 + "@typescript-eslint/visitor-keys": 8.34.0 + debug: ^4.3.4 + fast-glob: ^3.3.2 + is-glob: ^4.0.3 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^2.1.0 + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: b752314f2ff05ddb39c7831d208aa1b2a77ea6829f656ee8e385f90cd44555590831b6d733d3d8ff7a37460e1feeeaf9fd2341f337b92bda2f07f594dc53766e + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:8.34.0": + version: 8.34.0 + resolution: "@typescript-eslint/utils@npm:8.34.0" + dependencies: + "@eslint-community/eslint-utils": ^4.7.0 + "@typescript-eslint/scope-manager": 8.34.0 + "@typescript-eslint/types": 8.34.0 + "@typescript-eslint/typescript-estree": 8.34.0 peerDependencies: - eslint: ^8.56.0 - checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: ad55f2ec0a901da1f44064fdad06f4c3eabc2e42f26e6017e3b594a513d928f1fa5d58043b336f97019350f6e81c1fa508585b7877ec5f6a357f8c5d634d5cba languageName: node linkType: hard @@ -3070,16 +3088,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" - dependencies: - "@typescript-eslint/types": 7.18.0 - eslint-visitor-keys: ^3.4.3 - checksum: 6e806a7cdb424c5498ea187a5a11d0fef7e4602a631be413e7d521e5aec1ab46ba00c76cfb18020adaa0a8c9802354a163bfa0deb74baa7d555526c7517bb158 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:8.33.1": version: 8.33.1 resolution: "@typescript-eslint/visitor-keys@npm:8.33.1" @@ -3090,6 +3098,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:8.34.0": + version: 8.34.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.34.0" + dependencies: + "@typescript-eslint/types": 8.34.0 + eslint-visitor-keys: ^4.2.0 + checksum: b356267516faf17b0a6db07f44a3271bd05e5ab7f1f329cc03abac951ce38db495f3ecf5331e61d8378de67be4209166f8d630be91b0fa915a9ae9ff77222cfd + languageName: node + linkType: hard + "@ungap/structured-clone@npm:^1.2.0": version: 1.3.0 resolution: "@ungap/structured-clone@npm:1.3.0" @@ -3361,13 +3379,6 @@ __metadata: languageName: node linkType: hard -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - "array.prototype.findlastindex@npm:^1.2.5": version: 1.2.6 resolution: "array.prototype.findlastindex@npm:1.2.6" @@ -5224,9 +5235,9 @@ __metadata: "@types/jest": ^29.0.0 "@types/node": ^16.0.0 "@types/semver": ^7.5.8 - "@typescript-eslint/eslint-plugin": ^7.0.0 - "@typescript-eslint/parser": ^7.0.0 - "@typescript-eslint/utils": ^7.0.0 + "@typescript-eslint/eslint-plugin": ^8.0.0 + "@typescript-eslint/parser": ^8.0.0 + "@typescript-eslint/utils": ^8.0.0 babel-jest: ^29.0.0 babel-plugin-replace-ts-export-assignment: ^0.0.2 dedent: ^1.5.0 @@ -5586,7 +5597,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2, fast-glob@npm:^3.3.3": +"fast-glob@npm:^3.3.2, fast-glob@npm:^3.3.3": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" dependencies: @@ -6113,20 +6124,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 - languageName: node - linkType: hard - "globby@npm:^14.0.0": version: 14.1.0 resolution: "globby@npm:14.1.0" @@ -6416,14 +6413,14 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1, ignore@npm:^5.3.2": +"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.2": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be languageName: node linkType: hard -"ignore@npm:^7.0.3": +"ignore@npm:^7.0.0, ignore@npm:^7.0.3": version: 7.0.5 resolution: "ignore@npm:7.0.5" checksum: d0862bf64d3d58bf34d5fb0a9f725bec9ca5ce8cd1aecc8f28034269e8f69b8009ffd79ca3eda96962a6a444687781cd5efdb8c7c8ddc0a6996e36d31c217f14 @@ -8395,7 +8392,7 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": +"merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 @@ -11226,15 +11223,6 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.3.0": - version: 1.4.3 - resolution: "ts-api-utils@npm:1.4.3" - peerDependencies: - typescript: ">=4.2.0" - checksum: ea00dee382d19066b2a3d8929f1089888b05fec797e32e7a7004938eda1dccf2e77274ee2afcd4166f53fab9b8d7ee90ebb225a3183f9ba8817d636f688a148d - languageName: node - linkType: hard - "ts-api-utils@npm:^2.1.0": version: 2.1.0 resolution: "ts-api-utils@npm:2.1.0"