From dae1e5bb27db0e846efbe3026210013b42817838 Mon Sep 17 00:00:00 2001 From: JamesVanWaza Date: Sun, 29 Jun 2025 17:52:38 -0400 Subject: [PATCH 1/7] docs: update jsdoc's link (#19896) --- docs/src/rules/valid-jsdoc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/rules/valid-jsdoc.md b/docs/src/rules/valid-jsdoc.md index f8609bb85e7d..2d9a806ec4a2 100644 --- a/docs/src/rules/valid-jsdoc.md +++ b/docs/src/rules/valid-jsdoc.md @@ -11,7 +11,7 @@ further_reading: This rule was removed in ESLint v9.0.0 and replaced by the [`eslint-plugin-jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc) equivalent. ::: -[JSDoc](http://usejsdoc.org) generates application programming interface (API) documentation from specially-formatted comments in JavaScript code. For example, this is a JSDoc comment for a function: +[JSDoc](https://jsdoc.app) generates application programming interface (API) documentation from specially-formatted comments in JavaScript code. For example, this is a JSDoc comment for a function: ```js /** From ab7c62598a9fca498e495d45029ae92fd5fb9bf3 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Tue, 1 Jul 2025 08:10:19 +0000 Subject: [PATCH 2/7] docs: Update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ae6b9358ae93..30c3d6ccb0a9 100644 --- a/README.md +++ b/README.md @@ -329,7 +329,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Sentry Syntax Cybozu Anagram Solver Icons8 Discord GitBook Neko Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

Technology sponsors allow us to use their products and services for free as part of a contribution to the open source ecosystem and our work.

Netlify Algolia 1Password

From e91bb870f8c6e38baa508f18048cd2a2d04b8b9c Mon Sep 17 00:00:00 2001 From: xbinaryx Date: Tue, 1 Jul 2025 22:27:19 +0300 Subject: [PATCH 3/7] fix: allow separate default and named type imports (#19899) * fix: allow separate default and named type imports in no-duplicate-imports * fix default import and named export --- lib/rules/no-duplicate-imports.js | 14 ++++++++++++++ tests/lib/rules/no-duplicate-imports.js | 20 +++++--------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/lib/rules/no-duplicate-imports.js b/lib/rules/no-duplicate-imports.js index 13e251b53fb8..76270332762f 100644 --- a/lib/rules/no-duplicate-imports.js +++ b/lib/rules/no-duplicate-imports.js @@ -66,6 +66,20 @@ function isImportExportCanBeMerged(node1, node2) { const importExportType1 = getImportExportType(node1); const importExportType2 = getImportExportType(node2); + if ( + (node1.importKind === "type" || node1.exportKind === "type") && + (node2.importKind === "type" || node2.exportKind === "type") + ) { + const isDefault1 = importExportType1 === "ImportDefaultSpecifier"; + const isDefault2 = importExportType2 === "ImportDefaultSpecifier"; + const isNamed1 = isImportExportSpecifier(importExportType1, "named"); + const isNamed2 = isImportExportSpecifier(importExportType2, "named"); + + if ((isDefault1 && isNamed2) || (isDefault2 && isNamed1)) { + return false; + } + } + if ( (importExportType1 === "ExportAll" && importExportType2 !== "ExportAll" && diff --git a/tests/lib/rules/no-duplicate-imports.js b/tests/lib/rules/no-duplicate-imports.js index f03bbda42abe..f212da0669df 100644 --- a/tests/lib/rules/no-duplicate-imports.js +++ b/tests/lib/rules/no-duplicate-imports.js @@ -247,6 +247,7 @@ ruleTesterTypeScript.run("no-duplicate-imports", rule, { 'import type * as Bar from "os";\nimport { type Baz } from "os";', 'import foo, * as bar from "os";\nimport { type Baz } from "os";', 'import foo, { type bar } from "os";\nimport type * as Baz from "os";', + 'import type { Merge } from "lodash-es";\nimport type _ from "lodash-es";', { code: 'import type Os from "os";\nexport { type Hello } from "hello";', options: [{ includeExports: true }], @@ -283,6 +284,10 @@ ruleTesterTypeScript.run("no-duplicate-imports", rule, { code: 'import type Os from "os";\nexport * from "os";', options: [{ includeExports: true }], }, + { + code: 'import type Os from "os";\nexport type { Something } from "os";', + options: [{ includeExports: true }], + }, { code: 'export type { Something } from "os";\nexport * from "os";', options: [{ includeExports: true }], @@ -361,16 +366,6 @@ ruleTesterTypeScript.run("no-duplicate-imports", rule, { }, ], }, - { - code: 'import type { Merge } from "lodash-es";\nimport type _ from "lodash-es";', - errors: [ - { - messageId: "import", - data: { module: "lodash-es" }, - type: "ImportDeclaration", - }, - ], - }, { code: 'import type Os from "os";\nimport type { Something } from "os";\nimport type * as Foobar from "os";', errors: [ @@ -379,11 +374,6 @@ ruleTesterTypeScript.run("no-duplicate-imports", rule, { data: { module: "os" }, type: "ImportDeclaration", }, - { - messageId: "import", - data: { module: "os" }, - type: "ImportDeclaration", - }, ], }, { From b3dbc16563cb7036d75edff9814e17053a645321 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Tue, 1 Jul 2025 19:50:46 +0000 Subject: [PATCH 4/7] chore: package.json update for @eslint/js release --- packages/js/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/js/package.json b/packages/js/package.json index 2c08e39d206d..db572d449568 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/js", - "version": "9.30.0", + "version": "9.30.1", "description": "ESLint JavaScript language implementation", "funding": "https://eslint.org/donate", "main": "./src/index.js", From b035f747c6e6d1c7a299c90b0ed0b8109cf24a53 Mon Sep 17 00:00:00 2001 From: Francesco Trotta Date: Tue, 1 Jul 2025 22:04:32 +0200 Subject: [PATCH 5/7] chore: upgrade to `@eslint/js@9.30.1` (#19906) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ad413a267d6e..36979b3b10d1 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "@eslint/config-helpers": "^0.3.0", "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.30.0", + "@eslint/js": "9.30.1", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", From b2950ace77663f96cab395b5fe525054d3f49bfe Mon Sep 17 00:00:00 2001 From: Jenkins Date: Tue, 1 Jul 2025 20:11:39 +0000 Subject: [PATCH 6/7] Build: changelog update for 9.30.1 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93d9a67e5da0..bbaf72830d87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +v9.30.1 - July 1, 2025 + +* [`b035f74`](https://github.com/eslint/eslint/commit/b035f747c6e6d1c7a299c90b0ed0b8109cf24a53) chore: upgrade to `@eslint/js@9.30.1` (#19906) (Francesco Trotta) +* [`b3dbc16`](https://github.com/eslint/eslint/commit/b3dbc16563cb7036d75edff9814e17053a645321) chore: package.json update for @eslint/js release (Jenkins) +* [`e91bb87`](https://github.com/eslint/eslint/commit/e91bb870f8c6e38baa508f18048cd2a2d04b8b9c) fix: allow separate default and named type imports (#19899) (xbinaryx) +* [`ab7c625`](https://github.com/eslint/eslint/commit/ab7c62598a9fca498e495d45029ae92fd5fb9bf3) docs: Update README (GitHub Actions Bot) +* [`dae1e5b`](https://github.com/eslint/eslint/commit/dae1e5bb27db0e846efbe3026210013b42817838) docs: update jsdoc's link (#19896) (JamesVanWaza) + v9.30.0 - June 27, 2025 * [`2b6491c`](https://github.com/eslint/eslint/commit/2b6491cd4b8eec44d4a3f8dea1b71151e8dd0230) chore: upgrade to `@eslint/js@9.30.0` (#19889) (Francesco Trotta) From 6769b5fa11ecfb2c2cf78472d3d90564a1e01d3c Mon Sep 17 00:00:00 2001 From: Jenkins Date: Tue, 1 Jul 2025 20:11:39 +0000 Subject: [PATCH 7/7] 9.30.1 --- docs/package.json | 2 +- docs/src/_data/versions.json | 2 +- docs/src/use/formatters/html-formatter-example.html | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/package.json b/docs/package.json index 14dc8b1c26be..6698ecb58371 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,7 +1,7 @@ { "name": "docs-eslint", "private": true, - "version": "9.30.0", + "version": "9.30.1", "description": "", "main": "index.js", "keywords": [], diff --git a/docs/src/_data/versions.json b/docs/src/_data/versions.json index df63a9d9d286..df8e8b46d1eb 100644 --- a/docs/src/_data/versions.json +++ b/docs/src/_data/versions.json @@ -6,7 +6,7 @@ "path": "/docs/head/" }, { - "version": "9.30.0", + "version": "9.30.1", "branch": "latest", "path": "/docs/latest/" }, diff --git a/docs/src/use/formatters/html-formatter-example.html b/docs/src/use/formatters/html-formatter-example.html index 0d074ee6521e..b3c742130bcd 100644 --- a/docs/src/use/formatters/html-formatter-example.html +++ b/docs/src/use/formatters/html-formatter-example.html @@ -118,7 +118,7 @@

ESLint Report

- 8 problems (4 errors, 4 warnings) - Generated on Fri Jun 27 2025 20:37:32 GMT+0000 (Coordinated Universal Time) + 8 problems (4 errors, 4 warnings) - Generated on Tue Jul 01 2025 20:11:40 GMT+0000 (Coordinated Universal Time)
diff --git a/package.json b/package.json index 36979b3b10d1..ba7a14eea552 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint", - "version": "9.30.0", + "version": "9.30.1", "author": "Nicholas C. Zakas ", "description": "An AST-based pattern checker for JavaScript.", "type": "commonjs",