From c9e16439477e2ec24b05a3d191979c01cecd2465 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 18 Oct 2025 23:01:45 +0900 Subject: [PATCH 01/26] ci: centralize `ci-bun.yml` (#301) --- .github/workflows/bun-test.yml | 32 -------------------------------- .github/workflows/ci-bun.yml | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 32 deletions(-) delete mode 100644 .github/workflows/bun-test.yml create mode 100644 .github/workflows/ci-bun.yml diff --git a/.github/workflows/bun-test.yml b/.github/workflows/bun-test.yml deleted file mode 100644 index 61e86f367..000000000 --- a/.github/workflows/bun-test.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Bun CI - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - build: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - os: [windows-latest, macOS-14, ubuntu-latest] - bun: [latest] - - steps: - - uses: actions/checkout@v5 - - name: Use Bun ${{ matrix.bun }} ${{ matrix.os }} - uses: oven-sh/setup-bun@v2 - with: - bun-version: ${{ matrix.bun }} - - name: bun install, build, and test - run: | - bun install - bun run --bun build - bun run --bun test - env: - CI: true diff --git a/.github/workflows/ci-bun.yml b/.github/workflows/ci-bun.yml new file mode 100644 index 000000000..9806f0555 --- /dev/null +++ b/.github/workflows/ci-bun.yml @@ -0,0 +1,14 @@ +name: ci-bun + +on: + push: + branches: + - main + + pull_request: + branches: + - main + +jobs: + ci-bun: + uses: eslint/workflows/.github/workflows/ci-bun.yml@main From 27fdbe7c62d67f5807402e734f4b9b584585e94d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 19 Oct 2025 15:10:08 +0200 Subject: [PATCH 02/26] chore: update actions/setup-node action to v6 (#300) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 10 +++++----- .github/workflows/manual-publish.yml | 2 +- .github/workflows/release-please.yml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca8a11f33..60d19bad3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: "lts/*" @@ -42,7 +42,7 @@ jobs: - uses: actions/checkout@v5 - name: Set up Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} @@ -61,7 +61,7 @@ jobs: - uses: actions/checkout@v5 - name: Setup Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: "lts/*" @@ -101,7 +101,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: "lts/*" @@ -123,7 +123,7 @@ jobs: with: version: latest - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: "lts/*" diff --git a/.github/workflows/manual-publish.yml b/.github/workflows/manual-publish.yml index 3a3bd2ec1..d20b470cd 100644 --- a/.github/workflows/manual-publish.yml +++ b/.github/workflows/manual-publish.yml @@ -33,7 +33,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: lts/* registry-url: "https://registry.npmjs.org" diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index d8a8a3d40..730ec7479 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -35,7 +35,7 @@ jobs: if: ${{ steps.release.outputs.releases_created == 'true' }} # Node.js release - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 if: ${{ steps.release.outputs.releases_created == 'true' }} with: node-version: lts/* From 02bac50b8a053f12a97afbe65b126ccd2c469d9e Mon Sep 17 00:00:00 2001 From: jaymarvelz Date: Mon, 20 Oct 2025 23:26:19 +0300 Subject: [PATCH 03/26] fix: require `fix` in suggestion objects (#298) --- packages/core/src/types.ts | 6 +++--- packages/core/tests/types/types.test.ts | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 8a042fffb..3ed92b4a5 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -487,7 +487,7 @@ interface ViolationReportBase { /** * The data to insert into the message. */ - data?: Record | undefined; + data?: Record | undefined; /** * The fix to be applied for the violation. @@ -521,12 +521,12 @@ interface SuggestedEditBase { /** * The data to insert into the message. */ - data?: Record | undefined; + data?: Record | undefined; /** * The fix to be applied for the suggestion. */ - fix?: RuleFixer | null | undefined; + fix: RuleFixer; } type SuggestionMessage = { desc: string } | { messageId: string }; diff --git a/packages/core/tests/types/types.test.ts b/packages/core/tests/types/types.test.ts index eb1122ace..14935c2fe 100644 --- a/packages/core/tests/types/types.test.ts +++ b/packages/core/tests/types/types.test.ts @@ -298,6 +298,7 @@ const testRule: RuleDefinition<{ start: { line: node.start, column: 1 }, end: { line: node.start + 1, column: Infinity }, }, + data: undefined, fix(fixer: RuleTextEditor): RuleTextEdit { return fixer.replaceText( node, @@ -318,6 +319,12 @@ const testRule: RuleDefinition<{ suggest: [ { messageId: "Bar", + data: { + foo: "foo", + bar: 1, + baz: true, + }, + // @ts-expect-error -- 'fix' is required in suggestion objects fix: null, }, ], @@ -328,6 +335,11 @@ const testRule: RuleDefinition<{ context.report({ message: "This baz is foobar", loc: { line: node.start, column: 1 }, + data: { + foo: "foo", + bar: 1, + baz: true, + }, fix: null, suggest: null, }); From 760fb02e35e455726d551490f86020b8f9cd7a0e Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Tue, 21 Oct 2025 08:06:55 +0000 Subject: [PATCH 04/26] docs: Update README sponsors --- README.md | 2 +- packages/compat/README.md | 2 +- packages/config-array/README.md | 2 +- packages/config-helpers/README.md | 2 +- packages/core/README.md | 2 +- packages/mcp/README.md | 2 +- packages/migrate-config/README.md | 2 +- packages/object-schema/README.md | 2 +- packages/plugin-kit/README.md | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index e46c27118..2beef3f97 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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

diff --git a/packages/compat/README.md b/packages/compat/README.md index afa46b44a..1995e2526 100644 --- a/packages/compat/README.md +++ b/packages/compat/README.md @@ -207,7 +207,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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

diff --git a/packages/config-array/README.md b/packages/config-array/README.md index 1d12bbdb4..2535d9cb9 100644 --- a/packages/config-array/README.md +++ b/packages/config-array/README.md @@ -361,7 +361,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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

diff --git a/packages/config-helpers/README.md b/packages/config-helpers/README.md index e7b1a22b1..dab57af0b 100644 --- a/packages/config-helpers/README.md +++ b/packages/config-helpers/README.md @@ -90,7 +90,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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

diff --git a/packages/core/README.md b/packages/core/README.md index 28f216df3..6c7283335 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -22,7 +22,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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

diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 7de744b74..12ef04c44 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -36,7 +36,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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

diff --git a/packages/migrate-config/README.md b/packages/migrate-config/README.md index 6bb9f4b90..b75662845 100644 --- a/packages/migrate-config/README.md +++ b/packages/migrate-config/README.md @@ -103,7 +103,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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

diff --git a/packages/object-schema/README.md b/packages/object-schema/README.md index edf6eb867..c2b5fe736 100644 --- a/packages/object-schema/README.md +++ b/packages/object-schema/README.md @@ -235,7 +235,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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

diff --git a/packages/plugin-kit/README.md b/packages/plugin-kit/README.md index a550f34ac..b7ffb2c1a 100644 --- a/packages/plugin-kit/README.md +++ b/packages/plugin-kit/README.md @@ -266,7 +266,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

-

Syntax Cybozu Sentry Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Syntax Cybozu Sentry 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 5ccde5bc9442c572d740c063fcb50392bf13c3db Mon Sep 17 00:00:00 2001 From: Francesco Trotta Date: Tue, 21 Oct 2025 17:45:38 +0200 Subject: [PATCH 05/26] feat: export additional core types (#304) --- packages/core/src/types.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 3ed92b4a5..4a836006a 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -479,11 +479,11 @@ export interface RuleTextEdit { * @param fixer The text editor to apply the fix. * @returns The fix(es) for the violation. */ -type RuleFixer = ( +export type RuleFixer = ( fixer: RuleTextEditor, ) => RuleTextEdit | Iterable | null; -interface ViolationReportBase { +export interface ViolationReportBase { /** * The data to insert into the message. */ @@ -501,10 +501,10 @@ interface ViolationReportBase { suggest?: SuggestedEdit[] | null | undefined; } -type ViolationMessage = +export type ViolationMessage = | { message: string } | { messageId: MessageIds }; -type ViolationLocation = +export type ViolationLocation = | { loc: SourceLocation | Position } | { node: Node }; @@ -517,7 +517,7 @@ export type ViolationReport< // #region Suggestions -interface SuggestedEditBase { +export interface SuggestedEditBase { /** * The data to insert into the message. */ @@ -529,7 +529,7 @@ interface SuggestedEditBase { fix: RuleFixer; } -type SuggestionMessage = { desc: string } | { messageId: string }; +export type SuggestionMessage = { desc: string } | { messageId: string }; /** * A suggested edit for a rule violation. @@ -539,7 +539,7 @@ export type SuggestedEdit = SuggestedEditBase & SuggestionMessage; /** * The normalized version of a lint suggestion. */ -interface LintSuggestion { +export interface LintSuggestion { /** A short description. */ desc: string; @@ -904,7 +904,7 @@ export type EcmaVersion = * The type of JavaScript source code. * @deprecated Only supported in legacy eslintrc config format. */ -type JavaScriptSourceType = "script" | "module" | "commonjs"; +export type JavaScriptSourceType = "script" | "module" | "commonjs"; /** * Parser options. @@ -974,7 +974,7 @@ export interface EnvironmentConfig { /** * A configuration object that may have a `rules` block. */ -interface HasRules { +export interface HasRules { rules?: Partial | undefined; } @@ -983,7 +983,7 @@ interface HasRules { * * @see [ESLint Legacy Configuration](https://eslint.org/docs/latest/use/configure/) */ -interface BaseConfig< +export interface BaseConfig< Rules extends RulesConfig = RulesConfig, OverrideRules extends RulesConfig = Rules, > extends HasRules { From b953e0796e687373b27c607e44074679735d6bd5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Oct 2025 00:06:48 +0800 Subject: [PATCH 06/26] chore: update eslint (#305) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/migrate-config/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/migrate-config/package.json b/packages/migrate-config/package.json index d988add22..e50b9ebd0 100644 --- a/packages/migrate-config/package.json +++ b/packages/migrate-config/package.json @@ -47,9 +47,9 @@ }, "dependencies": { "@eslint/compat": "^1.4.0", - "@eslint/eslintrc": "^3.1.0", + "@eslint/eslintrc": "^3.3.1", "camelcase": "^8.0.0", - "espree": "^10.3.0", + "espree": "^10.4.0", "recast": "^0.23.7" } } From 9ca5d8022f862d2db52f56cb73acb472ef559b4d Mon Sep 17 00:00:00 2001 From: Pixel998 Date: Mon, 27 Oct 2025 10:00:03 +0300 Subject: [PATCH 07/26] ci: fix `stale.yml` (#306) --- .github/workflows/stale.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index d4295bda4..fe232e62b 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -4,6 +4,10 @@ on: schedule: - cron: "31 22 * * *" # Runs every day at 10:31 PM UTC +permissions: + issues: write + pull-requests: write + jobs: stale: uses: eslint/workflows/.github/workflows/stale.yml@main From f5ecc7e945634a173af677d2d597d583bd2704e6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 10:19:16 -0400 Subject: [PATCH 08/26] chore: release main (#303) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .release-please-manifest.json | 10 +++++----- packages/compat/CHANGELOG.md | 9 +++++++++ packages/compat/jsr.json | 2 +- packages/compat/package.json | 4 ++-- packages/config-helpers/CHANGELOG.md | 9 +++++++++ packages/config-helpers/jsr.json | 2 +- packages/config-helpers/package.json | 4 ++-- packages/core/CHANGELOG.md | 12 ++++++++++++ packages/core/jsr.json | 2 +- packages/core/package.json | 2 +- packages/migrate-config/CHANGELOG.md | 11 +++++++++++ packages/migrate-config/package.json | 6 +++--- packages/plugin-kit/CHANGELOG.md | 9 +++++++++ packages/plugin-kit/jsr.json | 2 +- packages/plugin-kit/package.json | 4 ++-- 15 files changed, 69 insertions(+), 19 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index dca608e84..e38f0361c 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,10 +1,10 @@ { - "packages/compat": "1.4.0", + "packages/compat": "1.4.1", "packages/config-array": "0.21.1", - "packages/config-helpers": "0.4.1", - "packages/core": "0.16.0", + "packages/config-helpers": "0.4.2", + "packages/core": "0.17.0", "packages/mcp": "0.1.1", - "packages/migrate-config": "1.6.0", + "packages/migrate-config": "1.6.1", "packages/object-schema": "2.1.7", - "packages/plugin-kit": "0.4.0" + "packages/plugin-kit": "0.4.1" } diff --git a/packages/compat/CHANGELOG.md b/packages/compat/CHANGELOG.md index 9dde8ad62..3eba77b07 100644 --- a/packages/compat/CHANGELOG.md +++ b/packages/compat/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [1.4.1](https://github.com/eslint/rewrite/compare/compat-v1.4.0...compat-v1.4.1) (2025-10-27) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/core bumped from ^0.16.0 to ^0.17.0 + ## [1.4.0](https://github.com/eslint/rewrite/compare/compat-v1.3.2...compat-v1.4.0) (2025-09-16) diff --git a/packages/compat/jsr.json b/packages/compat/jsr.json index 64decf0fd..68de1b0c2 100644 --- a/packages/compat/jsr.json +++ b/packages/compat/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/compat", - "version": "1.4.0", + "version": "1.4.1", "exports": "./dist/esm/index.js", "publish": { "include": [ diff --git a/packages/compat/package.json b/packages/compat/package.json index ba9cb283d..49c29ea09 100644 --- a/packages/compat/package.json +++ b/packages/compat/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/compat", - "version": "1.4.0", + "version": "1.4.1", "description": "Compatibility utilities for ESLint", "type": "module", "main": "dist/esm/index.js", @@ -49,7 +49,7 @@ }, "homepage": "https://github.com/eslint/rewrite/tree/main/packages/compat#readme", "dependencies": { - "@eslint/core": "^0.16.0" + "@eslint/core": "^0.17.0" }, "devDependencies": { "@types/node": "^24.7.2", diff --git a/packages/config-helpers/CHANGELOG.md b/packages/config-helpers/CHANGELOG.md index f1bf55e80..1beab21c5 100644 --- a/packages/config-helpers/CHANGELOG.md +++ b/packages/config-helpers/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [0.4.2](https://github.com/eslint/rewrite/compare/config-helpers-v0.4.1...config-helpers-v0.4.2) (2025-10-27) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/core bumped from ^0.16.0 to ^0.17.0 + ## [0.4.1](https://github.com/eslint/rewrite/compare/config-helpers-v0.4.0...config-helpers-v0.4.1) (2025-10-17) diff --git a/packages/config-helpers/jsr.json b/packages/config-helpers/jsr.json index 7ed686df6..1840b1213 100644 --- a/packages/config-helpers/jsr.json +++ b/packages/config-helpers/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/config-helpers", - "version": "0.4.1", + "version": "0.4.2", "exports": "./dist/esm/index.js", "publish": { "include": [ diff --git a/packages/config-helpers/package.json b/packages/config-helpers/package.json index ece520cd8..7ac79cecf 100644 --- a/packages/config-helpers/package.json +++ b/packages/config-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/config-helpers", - "version": "0.4.1", + "version": "0.4.2", "description": "Helper utilities for creating ESLint configuration", "type": "module", "main": "dist/esm/index.js", @@ -48,7 +48,7 @@ }, "homepage": "https://github.com/eslint/rewrite/tree/main/packages/config-helpers#readme", "dependencies": { - "@eslint/core": "^0.16.0" + "@eslint/core": "^0.17.0" }, "devDependencies": { "eslint": "^9.27.0", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index c377ae2a7..b273185c7 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [0.17.0](https://github.com/eslint/rewrite/compare/core-v0.16.0...core-v0.17.0) (2025-10-27) + + +### Features + +* export additional core types ([#304](https://github.com/eslint/rewrite/issues/304)) ([5ccde5b](https://github.com/eslint/rewrite/commit/5ccde5bc9442c572d740c063fcb50392bf13c3db)) + + +### Bug Fixes + +* require `fix` in suggestion objects ([#298](https://github.com/eslint/rewrite/issues/298)) ([02bac50](https://github.com/eslint/rewrite/commit/02bac50b8a053f12a97afbe65b126ccd2c469d9e)) + ## [0.16.0](https://github.com/eslint/rewrite/compare/core-v0.15.2...core-v0.16.0) (2025-09-16) diff --git a/packages/core/jsr.json b/packages/core/jsr.json index ea9532062..09a786a36 100644 --- a/packages/core/jsr.json +++ b/packages/core/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/core", - "version": "0.16.0", + "version": "0.17.0", "exports": "./dist/esm/types.d.ts", "publish": { "include": [ diff --git a/packages/core/package.json b/packages/core/package.json index 999513124..d2f470bbf 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/core", - "version": "0.16.0", + "version": "0.17.0", "description": "Runtime-agnostic core of ESLint", "type": "module", "types": "./dist/esm/types.d.ts", diff --git a/packages/migrate-config/CHANGELOG.md b/packages/migrate-config/CHANGELOG.md index ef579b46e..b1e1afea0 100644 --- a/packages/migrate-config/CHANGELOG.md +++ b/packages/migrate-config/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [1.6.1](https://github.com/eslint/rewrite/compare/migrate-config-v1.6.0...migrate-config-v1.6.1) (2025-10-27) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/compat bumped from ^1.4.0 to ^1.4.1 + * devDependencies + * @eslint/core bumped from ^0.16.0 to ^0.17.0 + ## [1.6.0](https://github.com/eslint/rewrite/compare/migrate-config-v1.5.3...migrate-config-v1.6.0) (2025-09-16) diff --git a/packages/migrate-config/package.json b/packages/migrate-config/package.json index e50b9ebd0..4d6c5a722 100644 --- a/packages/migrate-config/package.json +++ b/packages/migrate-config/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/migrate-config", - "version": "1.6.0", + "version": "1.6.1", "description": "Configuration migration for ESLint", "type": "module", "bin": { @@ -39,14 +39,14 @@ }, "homepage": "https://github.com/eslint/rewrite/tree/main/packages/migrate-config#readme", "devDependencies": { - "@eslint/core": "^0.16.0", + "@eslint/core": "^0.17.0", "eslint": "^9.27.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "dependencies": { - "@eslint/compat": "^1.4.0", + "@eslint/compat": "^1.4.1", "@eslint/eslintrc": "^3.3.1", "camelcase": "^8.0.0", "espree": "^10.4.0", diff --git a/packages/plugin-kit/CHANGELOG.md b/packages/plugin-kit/CHANGELOG.md index 7156e3344..4737565d6 100644 --- a/packages/plugin-kit/CHANGELOG.md +++ b/packages/plugin-kit/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [0.4.1](https://github.com/eslint/rewrite/compare/plugin-kit-v0.4.0...plugin-kit-v0.4.1) (2025-10-27) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/core bumped from ^0.16.0 to ^0.17.0 + ## [0.4.0](https://github.com/eslint/rewrite/compare/plugin-kit-v0.3.5...plugin-kit-v0.4.0) (2025-09-16) diff --git a/packages/plugin-kit/jsr.json b/packages/plugin-kit/jsr.json index 58464962e..17338644e 100644 --- a/packages/plugin-kit/jsr.json +++ b/packages/plugin-kit/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/plugin-kit", - "version": "0.4.0", + "version": "0.4.1", "exports": "./dist/esm/index.js", "publish": { "include": [ diff --git a/packages/plugin-kit/package.json b/packages/plugin-kit/package.json index 03dc6f23c..d1ac94f38 100644 --- a/packages/plugin-kit/package.json +++ b/packages/plugin-kit/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/plugin-kit", - "version": "0.4.0", + "version": "0.4.1", "description": "Utilities for building ESLint plugins.", "author": "Nicholas C. Zakas", "type": "module", @@ -48,7 +48,7 @@ ], "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.16.0", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "devDependencies": { From b7eff4aed783664c440f4a288d8b8540593db2d1 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Thu, 30 Oct 2025 08:06:26 +0000 Subject: [PATCH 09/26] docs: Update README sponsors --- README.md | 2 +- packages/compat/README.md | 2 +- packages/config-array/README.md | 2 +- packages/config-helpers/README.md | 2 +- packages/core/README.md | 2 +- packages/mcp/README.md | 2 +- packages/migrate-config/README.md | 2 +- packages/object-schema/README.md | 2 +- packages/plugin-kit/README.md | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2beef3f97..ffe565229 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. diff --git a/packages/compat/README.md b/packages/compat/README.md index 1995e2526..5f916922c 100644 --- a/packages/compat/README.md +++ b/packages/compat/README.md @@ -206,7 +206,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. diff --git a/packages/config-array/README.md b/packages/config-array/README.md index 2535d9cb9..c023dcf79 100644 --- a/packages/config-array/README.md +++ b/packages/config-array/README.md @@ -360,7 +360,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. diff --git a/packages/config-helpers/README.md b/packages/config-helpers/README.md index dab57af0b..ab4d67a9b 100644 --- a/packages/config-helpers/README.md +++ b/packages/config-helpers/README.md @@ -89,7 +89,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. diff --git a/packages/core/README.md b/packages/core/README.md index 6c7283335..5d52d4347 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -21,7 +21,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 12ef04c44..0a2e4a760 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -35,7 +35,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. diff --git a/packages/migrate-config/README.md b/packages/migrate-config/README.md index b75662845..b5c591069 100644 --- a/packages/migrate-config/README.md +++ b/packages/migrate-config/README.md @@ -102,7 +102,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. diff --git a/packages/object-schema/README.md b/packages/object-schema/README.md index c2b5fe736..03eb67c57 100644 --- a/packages/object-schema/README.md +++ b/packages/object-schema/README.md @@ -234,7 +234,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. diff --git a/packages/plugin-kit/README.md b/packages/plugin-kit/README.md index b7ffb2c1a..8a8c94466 100644 --- a/packages/plugin-kit/README.md +++ b/packages/plugin-kit/README.md @@ -265,7 +265,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

Qlty Software trunk.io Shopify

Silver Sponsors

-

Vite Liftoff American Express StackBlitz

Bronze Sponsors

+

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Syntax Cybozu Sentry 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. From 77442aeef61be7d201c8ae15fde44baa74600d64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Thu, 30 Oct 2025 20:51:37 +0900 Subject: [PATCH 10/26] chore: fix CI failure and ensure the latest `@eslint/core` is used (#309) --- package.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package.json b/package.json index 3f3922244..f184df4c0 100644 --- a/package.json +++ b/package.json @@ -44,5 +44,10 @@ "typescript": "^5.8.3", "typescript-eslint": "^8.0.0", "yorkie": "^2.0.0" + }, + "overrides": { + "eslint": { + "@eslint/core": "file:packages/core" + } } } From 35f73425f5234755908debf26dc7e7353ffb2902 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Oct 2025 13:00:53 +0100 Subject: [PATCH 11/26] chore: update dependency @eslint/core to ^0.17.0 (#307) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- templates/package/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/package/package.json b/templates/package/package.json index 4bee178ec..af0c72f21 100644 --- a/templates/package/package.json +++ b/templates/package/package.json @@ -47,7 +47,7 @@ }, "homepage": "https://github.com/eslint/rewrite/tree/main/packages/<%= name %>#readme", "devDependencies": { - "@eslint/core": "^0.16.0", + "@eslint/core": "^0.17.0", "eslint": "^9.27.0", "rollup-plugin-copy": "^3.5.0" }, From d27478953f26832518ec9fe38f159f060fac0d4e Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Sat, 1 Nov 2025 08:05:50 +0000 Subject: [PATCH 12/26] docs: Update README sponsors --- README.md | 2 +- packages/compat/README.md | 2 +- packages/config-array/README.md | 2 +- packages/config-helpers/README.md | 2 +- packages/core/README.md | 2 +- packages/mcp/README.md | 2 +- packages/migrate-config/README.md | 2 +- packages/object-schema/README.md | 2 +- packages/plugin-kit/README.md | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ffe565229..8e4adc34c 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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

diff --git a/packages/compat/README.md b/packages/compat/README.md index 5f916922c..ee3ef83c6 100644 --- a/packages/compat/README.md +++ b/packages/compat/README.md @@ -207,7 +207,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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

diff --git a/packages/config-array/README.md b/packages/config-array/README.md index c023dcf79..971428f89 100644 --- a/packages/config-array/README.md +++ b/packages/config-array/README.md @@ -361,7 +361,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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

diff --git a/packages/config-helpers/README.md b/packages/config-helpers/README.md index ab4d67a9b..9a8428903 100644 --- a/packages/config-helpers/README.md +++ b/packages/config-helpers/README.md @@ -90,7 +90,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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

diff --git a/packages/core/README.md b/packages/core/README.md index 5d52d4347..8fd2703cc 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -22,7 +22,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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

diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 0a2e4a760..81816d90f 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -36,7 +36,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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

diff --git a/packages/migrate-config/README.md b/packages/migrate-config/README.md index b5c591069..26e47e73f 100644 --- a/packages/migrate-config/README.md +++ b/packages/migrate-config/README.md @@ -103,7 +103,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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

diff --git a/packages/object-schema/README.md b/packages/object-schema/README.md index 03eb67c57..585526219 100644 --- a/packages/object-schema/README.md +++ b/packages/object-schema/README.md @@ -235,7 +235,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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

diff --git a/packages/plugin-kit/README.md b/packages/plugin-kit/README.md index 8a8c94466..84fa44675 100644 --- a/packages/plugin-kit/README.md +++ b/packages/plugin-kit/README.md @@ -266,7 +266,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

-

Syntax Cybozu Sentry Icons8 Discord GitBook 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 d9a760df6c3536d9dca88ad9853ddc5a628d2ce2 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Tue, 4 Nov 2025 08:06:51 +0000 Subject: [PATCH 13/26] docs: Update README sponsors --- README.md | 2 +- packages/compat/README.md | 2 +- packages/config-array/README.md | 2 +- packages/config-helpers/README.md | 2 +- packages/core/README.md | 2 +- packages/mcp/README.md | 2 +- packages/migrate-config/README.md | 2 +- packages/object-schema/README.md | 2 +- packages/plugin-kit/README.md | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 8e4adc34c..2f52d79fd 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

diff --git a/packages/compat/README.md b/packages/compat/README.md index ee3ef83c6..9b4c20891 100644 --- a/packages/compat/README.md +++ b/packages/compat/README.md @@ -205,7 +205,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

diff --git a/packages/config-array/README.md b/packages/config-array/README.md index 971428f89..b2854230b 100644 --- a/packages/config-array/README.md +++ b/packages/config-array/README.md @@ -359,7 +359,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

diff --git a/packages/config-helpers/README.md b/packages/config-helpers/README.md index 9a8428903..f42e4ac9f 100644 --- a/packages/config-helpers/README.md +++ b/packages/config-helpers/README.md @@ -88,7 +88,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

diff --git a/packages/core/README.md b/packages/core/README.md index 8fd2703cc..518c08288 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -20,7 +20,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 81816d90f..98b2a747e 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -34,7 +34,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

diff --git a/packages/migrate-config/README.md b/packages/migrate-config/README.md index 26e47e73f..e9b33b45b 100644 --- a/packages/migrate-config/README.md +++ b/packages/migrate-config/README.md @@ -101,7 +101,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

diff --git a/packages/object-schema/README.md b/packages/object-schema/README.md index 585526219..4d10ce747 100644 --- a/packages/object-schema/README.md +++ b/packages/object-schema/README.md @@ -233,7 +233,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

diff --git a/packages/plugin-kit/README.md b/packages/plugin-kit/README.md index 84fa44675..2025e0dd9 100644 --- a/packages/plugin-kit/README.md +++ b/packages/plugin-kit/README.md @@ -264,7 +264,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Platinum Sponsors

Automattic Airbnb

Gold Sponsors

-

Qlty Software trunk.io Shopify

Silver Sponsors

+

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

Technology Sponsors

From 72a1eb52f8dd0058b86e1346564c939403c4f18d Mon Sep 17 00:00:00 2001 From: sethamus <32633697+sethamus@users.noreply.github.com> Date: Thu, 6 Nov 2025 10:11:30 +0300 Subject: [PATCH 14/26] chore: add `@cfworker/json-schema` to fix CI (#312) --- packages/mcp/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 1aef84829..bd945efd8 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -36,11 +36,12 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "dependencies": { - "@modelcontextprotocol/sdk": "^1.11.0", + "@modelcontextprotocol/sdk": "^1.21.0", "eslint": "^9.26.0", "zod": "^3.24.4" }, "devDependencies": { + "@cfworker/json-schema": "^4.1.1", "@types/node": "^24.7.2" } } From 44b445b605c4186e874e722d10a486095927ee20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Thu, 6 Nov 2025 16:15:18 +0900 Subject: [PATCH 15/26] chore: update `.gitignore` to exclude shared workflows (#313) --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index aad18c2d2..a0ed0cff0 100644 --- a/.gitignore +++ b/.gitignore @@ -141,7 +141,7 @@ yarn.lock bun.lockb # Automatically generated files by GitHub Actions workflow -tools/update-readme.js +/.shared-workflows # pnpm pnpm-lock.yaml From 0897d950872d4d3fd9b35de44925e7ed3b8bb8a2 Mon Sep 17 00:00:00 2001 From: Francesco Trotta Date: Sun, 9 Nov 2025 09:02:18 +0100 Subject: [PATCH 16/26] chore: update test types npm script and CI job (#315) --- .github/workflows/ci.yml | 3 +++ package.json | 2 +- packages/migrate-config/src/migrate-config-cli.js | 1 + packages/migrate-config/src/migrate-config.js | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 60d19bad3..12f35132e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,6 +70,9 @@ jobs: npm install npm run build + - name: Run TypeScript Compiler + run: npx tsc + - name: Test types (core) working-directory: packages/core run: | diff --git a/package.json b/package.json index f184df4c0..cd04b0b45 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "fmt": "prettier --write .", "fmt:check": "prettier --check .", "test:jsr": "npm run test:jsr --workspaces --if-present", - "test:types": "tsc" + "test:types": "tsc && npm run test:types --workspaces --if-present" }, "workspaces": [ "packages/*" diff --git a/packages/migrate-config/src/migrate-config-cli.js b/packages/migrate-config/src/migrate-config-cli.js index b2802ab91..c881de639 100755 --- a/packages/migrate-config/src/migrate-config-cli.js +++ b/packages/migrate-config/src/migrate-config-cli.js @@ -23,6 +23,7 @@ import fsp from "node:fs/promises"; import path from "node:path"; import { migrateConfig, migrateJSConfig } from "./migrate-config.js"; +// @ts-ignore: No types available import { Legacy } from "@eslint/eslintrc"; //----------------------------------------------------------------------------- diff --git a/packages/migrate-config/src/migrate-config.js b/packages/migrate-config/src/migrate-config.js index 901bdcf42..b1c33fd7b 100644 --- a/packages/migrate-config/src/migrate-config.js +++ b/packages/migrate-config/src/migrate-config.js @@ -8,6 +8,7 @@ //----------------------------------------------------------------------------- import * as recast from "recast"; +// @ts-ignore: No types available import { Legacy } from "@eslint/eslintrc"; import camelCase from "camelcase"; import pluginsNeedingCompat from "./compat-plugins.js"; From a40d8c60af5bc09ea5e1c778655312a34ddc9f83 Mon Sep 17 00:00:00 2001 From: Pixel998 Date: Tue, 11 Nov 2025 18:47:35 +0300 Subject: [PATCH 17/26] feat: patch missing context and SourceCode methods for v10 (#311) --- packages/compat/README.md | 10 +- packages/compat/src/fixup-rules.js | 229 ++++++++++- packages/compat/tests/fixup-rules.test.js | 462 +++++++++++++++++++++- 3 files changed, 678 insertions(+), 23 deletions(-) diff --git a/packages/compat/README.md b/packages/compat/README.md index 9b4c20891..245e5017e 100644 --- a/packages/compat/README.md +++ b/packages/compat/README.md @@ -2,9 +2,9 @@ ## Overview -This packages contains functions that allow you to wrap existing ESLint rules, plugins, and configurations that were intended for use with ESLint v8.x to allow them to work as-is in ESLint v9.x. +This package contains functions that allow you to wrap existing ESLint rules, plugins, and configurations that were intended for use with ESLint v8.x or v9.x to allow them to work as-is in ESLint v9.x and v10.x. -**Note:** All plugins are not guaranteed to work in ESLint v9.x. This package fixes the most common issues but can't fix everything. +**Note:** All plugins are not guaranteed to work in ESLint v9.x or v10.x. This package fixes the most common issues but can't fix everything. ## Installation @@ -37,7 +37,7 @@ This package exports the following functions in both ESM and CommonJS format: ### Fixing Rules -If you have a rule that you'd like to make compatible with ESLint v9.x, you can do so using the `fixupRule()` function: +If you have a rule that you'd like to make compatible with ESLint v9.x or v10.x, you can do so using the `fixupRule()` function: ```js // ESM example @@ -71,7 +71,7 @@ module.exports = compatRule; ### Fixing Plugins -If you are using a plugin in your `eslint.config.js` that is not yet compatible with ESLint 9.x, you can wrap it using the `fixupPluginRules()` function: +If you are using a plugin in your `eslint.config.js` that is not yet compatible with ESLint v9.x or v10.x, you can wrap it using the `fixupPluginRules()` function: ```js // eslint.config.js - ESM example @@ -115,7 +115,7 @@ module.exports = defineConfig([ ### Fixing Configs -If you are importing other configs into your `eslint.config.js` that use plugins that are not yet compatible with ESLint 9.x, you can wrap the entire array or a single object using the `fixupConfigRules()` function: +If you are importing other configs into your `eslint.config.js` that use plugins that are not yet compatible with ESLint v9.x or v10.x, you can wrap the entire array or a single object using the `fixupConfigRules()` function: ```js // eslint.config.js - ESM example diff --git a/packages/compat/src/fixup-rules.js b/packages/compat/src/fixup-rules.js index aedd1a759..e893f52e7 100644 --- a/packages/compat/src/fixup-rules.js +++ b/packages/compat/src/fixup-rules.js @@ -1,5 +1,5 @@ /** - * @filedescription Functions to fix up rules to provide missing methods on the `context` object. + * @fileoverview Functions to fix up rules to provide missing methods on the `context` and `sourceCode` objects. * @author Nicholas C. Zakas */ @@ -70,13 +70,67 @@ const fixedUpPluginReplacements = new WeakMap(); */ const fixedUpPlugins = new WeakSet(); +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/** + * Determines if two nodes or tokens overlap. + * @param {object} first The first node or token to check. + * @param {object} second The second node or token to check. + * @returns {boolean} True if the two nodes or tokens overlap. + */ +function nodesOrTokensOverlap(first, second) { + return ( + (first.range[0] <= second.range[0] && + first.range[1] >= second.range[0]) || + (second.range[0] <= first.range[0] && second.range[1] >= first.range[0]) + ); +} + +/** + * Checks whether a node is an export declaration. + * @param {object} node An AST node. + * @returns {boolean} True if the node is an export declaration. + */ +function looksLikeExport(node) { + return ( + node.type === "ExportDefaultDeclaration" || + node.type === "ExportNamedDeclaration" + ); +} + +/** + * Checks for the presence of a JSDoc comment for the given node and returns it. + * @param {object} node The AST node to get the comment for. + * @param {object} sourceCode A SourceCode instance to get comments. + * @returns {object|null} The Block comment token containing the JSDoc comment + * for the given node or null if not found. + */ +function findJSDocComment(node, sourceCode) { + const tokenBefore = sourceCode.getTokenBefore(node, { + includeComments: true, + }); + + if ( + tokenBefore && + tokenBefore.type === "Block" && + tokenBefore.value.charAt(0) === "*" && + node.loc.start.line - tokenBefore.loc.end.line <= 1 + ) { + return tokenBefore; + } + + return null; +} + //----------------------------------------------------------------------------- // Exports //----------------------------------------------------------------------------- /** * Takes the given rule and creates a new rule with the `create()` method wrapped - * to provide the missing methods on the `context` object. + * to provide missing methods on the `context` and `sourceCode` objects. * @param {FixupRuleDefinition|FixupLegacyRuleDefinition} ruleDefinition The rule to fix up. * @returns {FixupRuleDefinition} The fixed-up rule. */ @@ -98,52 +152,193 @@ export function fixupRule(ruleDefinition) { : ruleDefinition.create.bind(ruleDefinition); function ruleCreate(context) { - // if getScope is already there then no need to create old methods + const sourceCode = context.sourceCode; + + // No need to create old methods for ESLint < 9 if ("getScope" in context) { return originalCreate(context); } - const sourceCode = context.sourceCode; - let currentNode = sourceCode.ast; + let eslintVersion = 9; + if (!("getCwd" in context)) { + eslintVersion = 10; + } + + let compatSourceCode = sourceCode; + if (eslintVersion >= 10) { + compatSourceCode = Object.assign(Object.create(sourceCode), { + getTokenOrCommentBefore(node, skip) { + return sourceCode.getTokenBefore(node, { + includeComments: true, + skip, + }); + }, + getTokenOrCommentAfter(node, skip) { + return sourceCode.getTokenAfter(node, { + includeComments: true, + skip, + }); + }, + isSpaceBetweenTokens(first, second) { + if (nodesOrTokensOverlap(first, second)) { + return false; + } + + const [startingNodeOrToken, endingNodeOrToken] = + first.range[1] <= second.range[0] + ? [first, second] + : [second, first]; + const firstToken = + sourceCode.getLastToken(startingNodeOrToken) || + startingNodeOrToken; + const finalToken = + sourceCode.getFirstToken(endingNodeOrToken) || + endingNodeOrToken; + let currentToken = firstToken; + + while (currentToken !== finalToken) { + const nextToken = sourceCode.getTokenAfter( + currentToken, + { + includeComments: true, + }, + ); + + if ( + currentToken.range[1] !== nextToken.range[0] || + (nextToken !== finalToken && + nextToken.type === "JSXText" && + /\s/u.test(nextToken.value)) + ) { + return true; + } + + currentToken = nextToken; + } + + return false; + }, + getJSDocComment(node) { + let parent = node.parent; + + switch (node.type) { + case "ClassDeclaration": + case "FunctionDeclaration": + return findJSDocComment( + looksLikeExport(parent) ? parent : node, + sourceCode, + ); + + case "ClassExpression": + return findJSDocComment(parent.parent, sourceCode); + + case "ArrowFunctionExpression": + case "FunctionExpression": + if ( + parent.type !== "CallExpression" && + parent.type !== "NewExpression" + ) { + while ( + !sourceCode.getCommentsBefore(parent) + .length && + !/Function/u.test(parent.type) && + parent.type !== "MethodDefinition" && + parent.type !== "Property" + ) { + parent = parent.parent; + + if (!parent) { + break; + } + } + + if ( + parent && + parent.type !== "FunctionDeclaration" && + parent.type !== "Program" + ) { + return findJSDocComment(parent, sourceCode); + } + } + + return findJSDocComment(node, sourceCode); + + default: + return null; + } + }, + }); + + Object.freeze(compatSourceCode); + } - const newContext = Object.assign(Object.create(context), { - parserServices: sourceCode.parserServices, + let currentNode = compatSourceCode.ast; + + const compatContext = Object.assign(Object.create(context), { + parserServices: compatSourceCode.parserServices, /* * The following methods rely on the current node in the traversal, * so we need to add them manually. */ getScope() { - return sourceCode.getScope(currentNode); + return compatSourceCode.getScope(currentNode); }, getAncestors() { - return sourceCode.getAncestors(currentNode); + return compatSourceCode.getAncestors(currentNode); }, markVariableAsUsed(variable) { - sourceCode.markVariableAsUsed(variable, currentNode); + compatSourceCode.markVariableAsUsed(variable, currentNode); }, }); + if (eslintVersion >= 10) { + Object.assign(compatContext, { + parserOptions: compatContext.languageOptions.parserOptions, + + getCwd() { + return compatContext.cwd; + }, + + getFilename() { + return compatContext.filename; + }, + + getPhysicalFilename() { + return compatContext.physicalFilename; + }, + + getSourceCode() { + return compatSourceCode; + }, + }); + + Object.defineProperty(compatContext, "sourceCode", { + enumerable: true, + value: compatSourceCode, + }); + } + // add passthrough methods for (const [ contextMethodName, sourceCodeMethodName, ] of removedMethodNames) { - newContext[contextMethodName] = - sourceCode[sourceCodeMethodName].bind(sourceCode); + compatContext[contextMethodName] = + compatSourceCode[sourceCodeMethodName].bind(compatSourceCode); } // freeze just like the original context - Object.freeze(newContext); + Object.freeze(compatContext); /* * Create the visitor object using the original create() method. * This is necessary to ensure that the visitor object is created * with the correct context. */ - const visitor = originalCreate(newContext); + const visitor = originalCreate(compatContext); /* * Wrap each method in the visitor object to update the currentNode @@ -184,7 +379,7 @@ export function fixupRule(ruleDefinition) { }; // copy `schema` property of function-style rule or top-level `schema` property of object-style rule into `meta` object - // @ts-ignore -- top-level `schema` property was not offically supported for object-style rules so it doesn't exist in types + // @ts-ignore -- top-level `schema` property was not officially supported for object-style rules so it doesn't exist in types const { schema } = ruleDefinition; if (schema) { if (!newRuleDefinition.meta) { @@ -207,7 +402,7 @@ export function fixupRule(ruleDefinition) { /** * Takes the given plugin and creates a new plugin with all of the rules wrapped - * to provide the missing methods on the `context` object. + * to provide missing methods on the `context` and `sourceCode` objects. * @param {FixupPluginDefinition} plugin The plugin to fix up. * @returns {FixupPluginDefinition} The fixed-up plugin. */ @@ -244,7 +439,7 @@ export function fixupPluginRules(plugin) { /** * Takes the given configuration and creates a new configuration with all of the - * rules wrapped to provide the missing methods on the `context` object. + * rules wrapped to provide missing methods on the `context` and `sourceCode` objects. * @param {FixupConfigArray|FixupConfig} config The configuration to fix up. * @returns {FixupConfigArray} The fixed-up configuration. */ diff --git a/packages/compat/tests/fixup-rules.test.js b/packages/compat/tests/fixup-rules.test.js index 8f4b92bad..23260cd7d 100644 --- a/packages/compat/tests/fixup-rules.test.js +++ b/packages/compat/tests/fixup-rules.test.js @@ -24,7 +24,7 @@ const REPLACEMENT_METHODS = ["getScope", "getAncestors"]; // Tests //----------------------------------------------------------------------------- -describe("@eslint/backcompat", () => { +describe("@eslint/compat", () => { describe("fixupRule()", () => { it("should return a new rule object with the same own properties", () => { const rule = { @@ -493,6 +493,319 @@ describe("@eslint/backcompat", () => { ); }); }); + + it("should restore context.parserOptions", () => { + const rule = { + create(context) { + assert.deepStrictEqual( + context.parserOptions, + context.languageOptions.parserOptions, + ); + + return { + Identifier(node) { + context.report(node, "Identifier"); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = "let foo;"; + const messages = linter.verify(code, config); + + assert.strictEqual(messages.length, 1); + assert.strictEqual(messages[0].message, "Identifier"); + }); + + it("should restore context.getCwd()", () => { + const rule = { + create(context) { + assert.strictEqual(context.getCwd(), context.cwd); + + return { + Identifier(node) { + context.report(node, "Identifier"); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = "let foo;"; + const messages = linter.verify(code, config); + + assert.strictEqual(messages.length, 1); + assert.strictEqual(messages[0].message, "Identifier"); + }); + + it("should restore context.getFilename()", () => { + const rule = { + create(context) { + assert.strictEqual(context.getFilename(), context.filename); + + return { + Identifier(node) { + context.report(node, "Identifier"); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = "let foo;"; + const messages = linter.verify(code, config); + + assert.strictEqual(messages.length, 1); + assert.strictEqual(messages[0].message, "Identifier"); + }); + + it("should restore context.getPhysicalFilename()", () => { + const rule = { + create(context) { + assert.strictEqual( + context.getPhysicalFilename(), + context.physicalFilename, + ); + + return { + Identifier(node) { + context.report(node, "Identifier"); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = "let foo;"; + const messages = linter.verify(code, config); + + assert.strictEqual(messages.length, 1); + assert.strictEqual(messages[0].message, "Identifier"); + }); + + it("should restore context.getSourceCode()", () => { + const rule = { + create(context) { + assert.strictEqual( + context.getSourceCode(), + context.sourceCode, + ); + + return { + Identifier(node) { + context.report(node, "Identifier"); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = "let foo;"; + const messages = linter.verify(code, config); + + assert.strictEqual(messages.length, 1); + assert.strictEqual(messages[0].message, "Identifier"); + }); + + it("should restore sourceCode.getTokenOrCommentBefore()", () => { + const rule = { + create(context) { + return { + Identifier(node) { + assert.strictEqual( + context.sourceCode.getTokenOrCommentBefore(node) + .value, + "let", + ); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = "let foo;"; + linter.verify(code, config); + }); + + it("should restore sourceCode.getTokenOrCommentAfter()", () => { + const rule = { + create(context) { + return { + Identifier(node) { + assert.strictEqual( + context.sourceCode.getTokenOrCommentAfter(node) + .value, + "=", + ); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = "let foo = 0;"; + linter.verify(code, config); + }); + + it("should restore sourceCode.isSpaceBetweenTokens()", () => { + const rule = { + create(context) { + return { + Identifier(node) { + assert.strictEqual( + context.sourceCode.isSpaceBetweenTokens( + node, + context.sourceCode.getTokenBefore(node), + ), + true, + ); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = "let foo"; + linter.verify(code, config); + }); + + it("should restore sourceCode.getJSDocComment()", () => { + const rule = { + create(context) { + return { + FunctionDeclaration(node) { + const jsdoc = + context.sourceCode.getJSDocComment(node); + + assert.strictEqual(jsdoc.type, "Block"); + assert.strictEqual(jsdoc.value, "* Desc"); + }, + }; + }, + }; + + const config = { + plugins: { + test: { + rules: { + "test-rule": fixupRule(rule), + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }; + + const linter = new Linter(); + const code = ["/** Desc*/", "function foo(){}"].join("\n"); + linter.verify(code, config); + }); }); describe("fixupPluginRules()", () => { @@ -701,6 +1014,80 @@ describe("@eslint/backcompat", () => { ); }); }); + + it("should restore context.getFilename()", () => { + const plugin = { + configs: { + recommended: { + rules: { + "test-rule": "error", + }, + }, + }, + rules: { + "test-rule": { + create(context) { + assert.strictEqual( + context.getFilename(), + context.filename, + ); + return { + Identifier(node) { + context.report(node, "Identifier"); + }, + }; + }, + }, + }, + }; + + const linter = new Linter(); + const code = "let foo;"; + const config = { + plugins: { test: fixupPluginRules(plugin) }, + rules: { "test/test-rule": "error" }, + }; + const messages = linter.verify(code, config); + + assert.strictEqual(messages.length, 1); + assert.strictEqual(messages[0].message, "Identifier"); + }); + + it("should restore sourceCode.getTokenOrCommentBefore()", () => { + const plugin = { + configs: { + recommended: { + rules: { + "test-rule": "error", + }, + }, + }, + rules: { + "test-rule": { + create(context) { + return { + Identifier(node) { + assert.strictEqual( + context.sourceCode.getTokenOrCommentBefore( + node, + ).value, + "let", + ); + }, + }; + }, + }, + }, + }; + + const linter = new Linter(); + const code = "let foo;"; + const config = { + plugins: { test: fixupPluginRules(plugin) }, + rules: { "test/test-rule": "error" }, + }; + linter.verify(code, config); + }); }); describe("fixupConfigRules()", () => { @@ -834,5 +1221,78 @@ describe("@eslint/backcompat", () => { ); }); }); + + it("should restore context.getFilename()", () => { + const config = [ + { + plugins: { + test: { + rules: { + "test-rule": { + create(context) { + assert.strictEqual( + context.getFilename(), + context.filename, + ); + return { + Identifier(node) { + context.report( + node, + "Identifier", + ); + }, + }; + }, + }, + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }, + ]; + + const linter = new Linter(); + const code = "let foo;"; + const messages = linter.verify(code, fixupConfigRules(config)); + + assert.strictEqual(messages.length, 1); + assert.strictEqual(messages[0].message, "Identifier"); + }); + + it("should restore sourceCode.getTokenOrCommentBefore()", () => { + const config = [ + { + plugins: { + test: { + rules: { + "test-rule": { + create(context) { + return { + Identifier(node) { + assert.strictEqual( + context.sourceCode.getTokenOrCommentBefore( + node, + ).value, + "let", + ); + }, + }; + }, + }, + }, + }, + }, + rules: { + "test/test-rule": "error", + }, + }, + ]; + + const linter = new Linter(); + const code = "let foo;"; + linter.verify(code, fixupConfigRules(config)); + }); }); }); From acc623c807bf8237a26b18291f04dd99e4e4981a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Wed, 12 Nov 2025 01:46:54 +0800 Subject: [PATCH 18/26] feat!: Require Node.js ^20.19.0 || ^22.13.0 || >=24 (#297) --- .github/workflows/ci.yml | 2 +- package.json | 2 +- packages/compat/package.json | 2 +- packages/config-array/package.json | 2 +- packages/config-helpers/package.json | 2 +- packages/core/package.json | 2 +- packages/mcp/package.json | 2 +- packages/migrate-config/package.json | 2 +- packages/object-schema/package.json | 2 +- packages/plugin-kit/package.json | 2 +- templates/package/package.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 12f35132e..1a206121b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,7 @@ jobs: strategy: matrix: os: [windows-latest, macOS-latest, ubuntu-latest] - node-version: [18.x, 20.x, 22.x, 24.x, 25.x] + node-version: [25.x, 24.x, 22.x, 20.x, "20.19.0"] steps: - uses: actions/checkout@v5 diff --git a/package.json b/package.json index cd04b0b45..c8b66d7fb 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "!(*.{js,ts})": "prettier --write --ignore-unknown" }, "engines": { - "node": ">= 22.3.0" + "node": "^22.13.0 || >=24" }, "devDependencies": { "@eslint/config-helpers": "file:packages/config-helpers", diff --git a/packages/compat/package.json b/packages/compat/package.json index 49c29ea09..4f7b2cd6f 100644 --- a/packages/compat/package.json +++ b/packages/compat/package.json @@ -64,6 +64,6 @@ } }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } } diff --git a/packages/config-array/package.json b/packages/config-array/package.json index af492d890..69d82ccb7 100644 --- a/packages/config-array/package.json +++ b/packages/config-array/package.json @@ -59,6 +59,6 @@ "rollup-plugin-copy": "^3.5.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } } diff --git a/packages/config-helpers/package.json b/packages/config-helpers/package.json index 7ac79cecf..97c6d9aa6 100644 --- a/packages/config-helpers/package.json +++ b/packages/config-helpers/package.json @@ -55,6 +55,6 @@ "rollup-plugin-copy": "^3.5.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } } diff --git a/packages/core/package.json b/packages/core/package.json index d2f470bbf..34f3adba6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -44,6 +44,6 @@ "json-schema": "^0.4.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } } diff --git a/packages/mcp/package.json b/packages/mcp/package.json index bd945efd8..b8a0b2925 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -33,7 +33,7 @@ }, "homepage": "https://github.com/eslint/rewrite/tree/main/packages/mcp#readme", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "dependencies": { "@modelcontextprotocol/sdk": "^1.21.0", diff --git a/packages/migrate-config/package.json b/packages/migrate-config/package.json index 4d6c5a722..f8790a088 100644 --- a/packages/migrate-config/package.json +++ b/packages/migrate-config/package.json @@ -43,7 +43,7 @@ "eslint": "^9.27.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "dependencies": { "@eslint/compat": "^1.4.1", diff --git a/packages/object-schema/package.json b/packages/object-schema/package.json index f5981d2f0..46ec84738 100644 --- a/packages/object-schema/package.json +++ b/packages/object-schema/package.json @@ -54,6 +54,6 @@ "rollup-plugin-copy": "^3.5.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } } diff --git a/packages/plugin-kit/package.json b/packages/plugin-kit/package.json index d1ac94f38..ef4f2f2d8 100644 --- a/packages/plugin-kit/package.json +++ b/packages/plugin-kit/package.json @@ -56,6 +56,6 @@ "rollup-plugin-copy": "^3.5.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } } diff --git a/templates/package/package.json b/templates/package/package.json index af0c72f21..0fc4d9760 100644 --- a/templates/package/package.json +++ b/templates/package/package.json @@ -52,6 +52,6 @@ "rollup-plugin-copy": "^3.5.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } } From 7d6a2a8dfb73203790403dea240669b6ab543340 Mon Sep 17 00:00:00 2001 From: Pixel998 Date: Tue, 11 Nov 2025 20:59:54 +0300 Subject: [PATCH 19/26] fix!: remove deprecated `nodeType` property (#265) --- packages/core/src/types.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 4a836006a..199d4bd47 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -575,12 +575,6 @@ export interface LintMessage { /** The ID of the message in the rule's meta. */ messageId?: string | undefined; - /** - * Type of node. - * @deprecated `nodeType` is deprecated and will be removed in the next major version. - */ - nodeType?: string | undefined; - /** If `true` then this is a fatal error. */ fatal?: true | undefined; From 0455323682227ba2e219645a49c20085ab76cbf0 Mon Sep 17 00:00:00 2001 From: "Nicholas C. Zakas" Date: Tue, 11 Nov 2025 13:08:53 -0500 Subject: [PATCH 20/26] fix!: Remove deprecated RuleContext methods (#263) --- packages/core/src/types.ts | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 199d4bd47..95604e70d 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -303,67 +303,31 @@ export interface RuleContext< */ cwd: string; - /** - * Returns the current working directory for the session. - * @deprecated Use `cwd` instead. - */ - getCwd(): string; - /** * The filename of the file being linted. */ filename: string; - /** - * Returns the filename of the file being linted. - * @deprecated Use `filename` instead. - */ - getFilename(): string; - /** * The physical filename of the file being linted. */ physicalFilename: string; - /** - * Returns the physical filename of the file being linted. - * @deprecated Use `physicalFilename` instead. - */ - getPhysicalFilename(): string; - /** * The source code object that the rule is running on. */ sourceCode: Options["Code"]; - /** - * Returns the source code object that the rule is running on. - * @deprecated Use `sourceCode` instead. - */ - getSourceCode(): Options["Code"]; - /** * Shared settings for the configuration. */ settings: SettingsConfig; - /** - * Parser-specific options for the configuration. - * @deprecated Use `languageOptions.parserOptions` instead. - */ - parserOptions: Record; - /** * The language options for the configuration. */ languageOptions: Options["LangOptions"]; - /** - * The CommonJS path to the parser used while parsing this file. - * @deprecated No longer used. - */ - parserPath: string | undefined; - /** * The rule ID. */ From 50c6da82a3e5cc7c3ca3c2ed603936a40fe659f9 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Thu, 13 Nov 2025 08:06:38 +0000 Subject: [PATCH 21/26] docs: Update README sponsors --- README.md | 2 +- packages/compat/README.md | 2 +- packages/config-array/README.md | 2 +- packages/config-helpers/README.md | 2 +- packages/core/README.md | 2 +- packages/mcp/README.md | 2 +- packages/migrate-config/README.md | 2 +- packages/object-schema/README.md | 2 +- packages/plugin-kit/README.md | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2f52d79fd..b96ce6202 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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

diff --git a/packages/compat/README.md b/packages/compat/README.md index 245e5017e..c493dfe10 100644 --- a/packages/compat/README.md +++ b/packages/compat/README.md @@ -207,7 +207,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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

diff --git a/packages/config-array/README.md b/packages/config-array/README.md index b2854230b..19af407e3 100644 --- a/packages/config-array/README.md +++ b/packages/config-array/README.md @@ -361,7 +361,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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

diff --git a/packages/config-helpers/README.md b/packages/config-helpers/README.md index f42e4ac9f..a06051357 100644 --- a/packages/config-helpers/README.md +++ b/packages/config-helpers/README.md @@ -90,7 +90,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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

diff --git a/packages/core/README.md b/packages/core/README.md index 518c08288..700abb165 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -22,7 +22,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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

diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 98b2a747e..aa68dcd3d 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -36,7 +36,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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

diff --git a/packages/migrate-config/README.md b/packages/migrate-config/README.md index e9b33b45b..69601014c 100644 --- a/packages/migrate-config/README.md +++ b/packages/migrate-config/README.md @@ -103,7 +103,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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

diff --git a/packages/object-schema/README.md b/packages/object-schema/README.md index 4d10ce747..ecd0835c8 100644 --- a/packages/object-schema/README.md +++ b/packages/object-schema/README.md @@ -235,7 +235,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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

diff --git a/packages/plugin-kit/README.md b/packages/plugin-kit/README.md index 2025e0dd9..52da7a968 100644 --- a/packages/plugin-kit/README.md +++ b/packages/plugin-kit/README.md @@ -266,7 +266,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).

Automattic Airbnb

Gold Sponsors

Qlty Software Shopify

Silver Sponsors

Vite Liftoff American Express StackBlitz

Bronze Sponsors

-

Cybozu Icons8 Discord GitBook Nx Mercedes-Benz Group HeroCoders LambdaTest

+

Cybozu Syntax 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 45842c0176d19015ac10dcbbadd29bf8782e71da Mon Sep 17 00:00:00 2001 From: Francesco Trotta Date: Fri, 14 Nov 2025 10:54:15 +0100 Subject: [PATCH 22/26] chore: update `@modelcontextprotocol/sdk` and tests (#321) --- packages/mcp/package.json | 2 +- packages/mcp/tests/mcp-server.test.js | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/mcp/package.json b/packages/mcp/package.json index b8a0b2925..ddad06834 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -36,7 +36,7 @@ "node": "^20.19.0 || ^22.13.0 || >=24" }, "dependencies": { - "@modelcontextprotocol/sdk": "^1.21.0", + "@modelcontextprotocol/sdk": "^1.22.0", "eslint": "^9.26.0", "zod": "^3.24.4" }, diff --git a/packages/mcp/tests/mcp-server.test.js b/packages/mcp/tests/mcp-server.test.js index d7be975a2..fdc6088fb 100644 --- a/packages/mcp/tests/mcp-server.test.js +++ b/packages/mcp/tests/mcp-server.test.js @@ -23,8 +23,6 @@ const passingFilePath = path.join(dirname, "fixtures", "passing.js"); const syntaxErrorFilePath = path.join(dirname, "fixtures", "syntax-error.js"); const filePathsJsonSchema = { - $schema: "http://json-schema.org/draft-07/schema#", - additionalProperties: false, properties: { filePaths: { items: { From bf42b1760ed5a17d2f0731d3c1ebd2a7059f33b7 Mon Sep 17 00:00:00 2001 From: Francesco Trotta Date: Fri, 14 Nov 2025 12:01:29 +0100 Subject: [PATCH 23/26] fix!: set core package to v1.0.0 (#320) --- release-please-config.json | 1 + 1 file changed, 1 insertion(+) diff --git a/release-please-config.json b/release-please-config.json index 51eb9b1b3..a3f48e976 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -37,6 +37,7 @@ }, "packages/core": { "release-type": "node", + "release-as": "1.0.0", "extra-files": [ { "type": "json", From acfeed1b23ca3b2e239f1e240f6cac1e5569d32c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 15 Nov 2025 00:47:54 +0900 Subject: [PATCH 24/26] ci: update `eslint` in `@eslint/mcp` (#319) --- .github/renovate.json5 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 13efb2da5..bf48b2b56 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,4 +1,13 @@ { $schema: "https://docs.renovatebot.com/renovate-schema.json", extends: ["github>eslint/workflows//.github/renovate/eslint-base.json5"], + packageRules: [ + { + description: "Update `eslint` in dependencies", + matchDepTypes: ["dependencies"], + matchPackageNames: ["eslint"], + minimumReleaseAge: null, // Don't wait for these packages + rangeStrategy: "bump", + }, + ], } From cc41c896062f8e7d2075d4605abd2db8229f9ae5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Nov 2025 10:54:29 -0500 Subject: [PATCH 25/26] chore: update dependency eslint to ^9.39.1 (#322) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/mcp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mcp/package.json b/packages/mcp/package.json index ddad06834..8f4270c6e 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -37,7 +37,7 @@ }, "dependencies": { "@modelcontextprotocol/sdk": "^1.22.0", - "eslint": "^9.26.0", + "eslint": "^9.39.1", "zod": "^3.24.4" }, "devDependencies": { From c368656dbba4d927344905f24b3993a378a59a88 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 14 Nov 2025 17:28:35 +0100 Subject: [PATCH 26/26] chore: release main (#317) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .release-please-manifest.json | 16 ++++++++-------- packages/compat/CHANGELOG.md | 19 +++++++++++++++++++ packages/compat/jsr.json | 2 +- packages/compat/package.json | 4 ++-- packages/config-array/CHANGELOG.md | 18 ++++++++++++++++++ packages/config-array/jsr.json | 2 +- packages/config-array/package.json | 4 ++-- packages/config-helpers/CHANGELOG.md | 18 ++++++++++++++++++ packages/config-helpers/jsr.json | 2 +- packages/config-helpers/package.json | 4 ++-- packages/core/CHANGELOG.md | 19 +++++++++++++++++++ packages/core/jsr.json | 2 +- packages/core/package.json | 2 +- packages/mcp/CHANGELOG.md | 11 +++++++++++ packages/mcp/package.json | 2 +- packages/mcp/src/mcp-server.js | 2 +- packages/migrate-config/CHANGELOG.md | 20 ++++++++++++++++++++ packages/migrate-config/package.json | 6 +++--- packages/object-schema/CHANGELOG.md | 11 +++++++++++ packages/object-schema/jsr.json | 2 +- packages/object-schema/package.json | 2 +- packages/plugin-kit/CHANGELOG.md | 18 ++++++++++++++++++ packages/plugin-kit/jsr.json | 2 +- packages/plugin-kit/package.json | 4 ++-- 24 files changed, 163 insertions(+), 29 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e38f0361c..d488d19c4 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,10 +1,10 @@ { - "packages/compat": "1.4.1", - "packages/config-array": "0.21.1", - "packages/config-helpers": "0.4.2", - "packages/core": "0.17.0", - "packages/mcp": "0.1.1", - "packages/migrate-config": "1.6.1", - "packages/object-schema": "2.1.7", - "packages/plugin-kit": "0.4.1" + "packages/compat": "2.0.0", + "packages/config-array": "0.22.0", + "packages/config-helpers": "0.5.0", + "packages/core": "1.0.0", + "packages/mcp": "0.2.0", + "packages/migrate-config": "2.0.0", + "packages/object-schema": "3.0.0", + "packages/plugin-kit": "0.5.0" } diff --git a/packages/compat/CHANGELOG.md b/packages/compat/CHANGELOG.md index 3eba77b07..488adf4aa 100644 --- a/packages/compat/CHANGELOG.md +++ b/packages/compat/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [2.0.0](https://github.com/eslint/rewrite/compare/compat-v1.4.1...compat-v2.0.0) (2025-11-14) + + +### ⚠ BREAKING CHANGES + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) + +### Features + +* patch missing context and SourceCode methods for v10 ([#311](https://github.com/eslint/rewrite/issues/311)) ([a40d8c6](https://github.com/eslint/rewrite/commit/a40d8c60af5bc09ea5e1c778655312a34ddc9f83)) +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) ([acc623c](https://github.com/eslint/rewrite/commit/acc623c807bf8237a26b18291f04dd99e4e4981a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/core bumped from ^0.17.0 to ^1.0.0 + ## [1.4.1](https://github.com/eslint/rewrite/compare/compat-v1.4.0...compat-v1.4.1) (2025-10-27) diff --git a/packages/compat/jsr.json b/packages/compat/jsr.json index 68de1b0c2..fd8dea790 100644 --- a/packages/compat/jsr.json +++ b/packages/compat/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/compat", - "version": "1.4.1", + "version": "2.0.0", "exports": "./dist/esm/index.js", "publish": { "include": [ diff --git a/packages/compat/package.json b/packages/compat/package.json index 4f7b2cd6f..9a81d961f 100644 --- a/packages/compat/package.json +++ b/packages/compat/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/compat", - "version": "1.4.1", + "version": "2.0.0", "description": "Compatibility utilities for ESLint", "type": "module", "main": "dist/esm/index.js", @@ -49,7 +49,7 @@ }, "homepage": "https://github.com/eslint/rewrite/tree/main/packages/compat#readme", "dependencies": { - "@eslint/core": "^0.17.0" + "@eslint/core": "^1.0.0" }, "devDependencies": { "@types/node": "^24.7.2", diff --git a/packages/config-array/CHANGELOG.md b/packages/config-array/CHANGELOG.md index aeb44bede..019c1db54 100644 --- a/packages/config-array/CHANGELOG.md +++ b/packages/config-array/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [0.22.0](https://github.com/eslint/rewrite/compare/config-array-v0.21.1...config-array-v0.22.0) (2025-11-14) + + +### ⚠ BREAKING CHANGES + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) + +### Features + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) ([acc623c](https://github.com/eslint/rewrite/commit/acc623c807bf8237a26b18291f04dd99e4e4981a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/object-schema bumped from ^2.1.7 to ^3.0.0 + ## [0.21.1](https://github.com/eslint/rewrite/compare/config-array-v0.21.0...config-array-v0.21.1) (2025-10-17) diff --git a/packages/config-array/jsr.json b/packages/config-array/jsr.json index fc1ab3bb0..ad5bc4619 100644 --- a/packages/config-array/jsr.json +++ b/packages/config-array/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/config-array", - "version": "0.21.1", + "version": "0.22.0", "exports": "./dist/esm/index.js", "publish": { "include": [ diff --git a/packages/config-array/package.json b/packages/config-array/package.json index 69d82ccb7..9d16ddbe9 100644 --- a/packages/config-array/package.json +++ b/packages/config-array/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/config-array", - "version": "0.21.1", + "version": "0.22.0", "description": "General purpose glob-based configuration matching.", "author": "Nicholas C. Zakas", "type": "module", @@ -49,7 +49,7 @@ ], "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.7", + "@eslint/object-schema": "^3.0.0", "debug": "^4.3.1", "minimatch": "^3.1.2" }, diff --git a/packages/config-helpers/CHANGELOG.md b/packages/config-helpers/CHANGELOG.md index 1beab21c5..055d31b81 100644 --- a/packages/config-helpers/CHANGELOG.md +++ b/packages/config-helpers/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [0.5.0](https://github.com/eslint/rewrite/compare/config-helpers-v0.4.2...config-helpers-v0.5.0) (2025-11-14) + + +### ⚠ BREAKING CHANGES + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) + +### Features + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) ([acc623c](https://github.com/eslint/rewrite/commit/acc623c807bf8237a26b18291f04dd99e4e4981a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/core bumped from ^0.17.0 to ^1.0.0 + ## [0.4.2](https://github.com/eslint/rewrite/compare/config-helpers-v0.4.1...config-helpers-v0.4.2) (2025-10-27) diff --git a/packages/config-helpers/jsr.json b/packages/config-helpers/jsr.json index 1840b1213..da784f3a7 100644 --- a/packages/config-helpers/jsr.json +++ b/packages/config-helpers/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/config-helpers", - "version": "0.4.2", + "version": "0.5.0", "exports": "./dist/esm/index.js", "publish": { "include": [ diff --git a/packages/config-helpers/package.json b/packages/config-helpers/package.json index 97c6d9aa6..504ef34fe 100644 --- a/packages/config-helpers/package.json +++ b/packages/config-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/config-helpers", - "version": "0.4.2", + "version": "0.5.0", "description": "Helper utilities for creating ESLint configuration", "type": "module", "main": "dist/esm/index.js", @@ -48,7 +48,7 @@ }, "homepage": "https://github.com/eslint/rewrite/tree/main/packages/config-helpers#readme", "dependencies": { - "@eslint/core": "^0.17.0" + "@eslint/core": "^1.0.0" }, "devDependencies": { "eslint": "^9.27.0", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index b273185c7..92e17caf7 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [1.0.0](https://github.com/eslint/rewrite/compare/core-v0.17.0...core-v1.0.0) (2025-11-14) + + +### ⚠ BREAKING CHANGES + +* Remove deprecated RuleContext methods ([#263](https://github.com/eslint/rewrite/issues/263)) +* remove deprecated `nodeType` property ([#265](https://github.com/eslint/rewrite/issues/265)) +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) + +### Features + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) ([acc623c](https://github.com/eslint/rewrite/commit/acc623c807bf8237a26b18291f04dd99e4e4981a)) + + +### Bug Fixes + +* remove deprecated `nodeType` property ([#265](https://github.com/eslint/rewrite/issues/265)) ([7d6a2a8](https://github.com/eslint/rewrite/commit/7d6a2a8dfb73203790403dea240669b6ab543340)) +* Remove deprecated RuleContext methods ([#263](https://github.com/eslint/rewrite/issues/263)) ([0455323](https://github.com/eslint/rewrite/commit/0455323682227ba2e219645a49c20085ab76cbf0)) + ## [0.17.0](https://github.com/eslint/rewrite/compare/core-v0.16.0...core-v0.17.0) (2025-10-27) diff --git a/packages/core/jsr.json b/packages/core/jsr.json index 09a786a36..57e3d3bea 100644 --- a/packages/core/jsr.json +++ b/packages/core/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/core", - "version": "0.17.0", + "version": "1.0.0", "exports": "./dist/esm/types.d.ts", "publish": { "include": [ diff --git a/packages/core/package.json b/packages/core/package.json index 34f3adba6..0220d6cbe 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/core", - "version": "0.17.0", + "version": "1.0.0", "description": "Runtime-agnostic core of ESLint", "type": "module", "types": "./dist/esm/types.d.ts", diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index ed1ddf274..5de7eb399 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [0.2.0](https://github.com/eslint/rewrite/compare/mcp-v0.1.1...mcp-v0.2.0) (2025-11-14) + + +### ⚠ BREAKING CHANGES + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) + +### Features + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) ([acc623c](https://github.com/eslint/rewrite/commit/acc623c807bf8237a26b18291f04dd99e4e4981a)) + ## [0.1.1](https://github.com/eslint/rewrite/compare/mcp-v0.1.0...mcp-v0.1.1) (2025-07-30) diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 8f4270c6e..7227000f6 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/mcp", - "version": "0.1.1", + "version": "0.2.0", "description": "MCP server for ESLint", "type": "module", "bin": "./src/mcp-cli.js", diff --git a/packages/mcp/src/mcp-server.js b/packages/mcp/src/mcp-server.js index af3604cf6..554b85adc 100644 --- a/packages/mcp/src/mcp-server.js +++ b/packages/mcp/src/mcp-server.js @@ -17,7 +17,7 @@ import { ESLint } from "eslint"; const mcpServer = new McpServer({ name: "ESLint", - version: "0.1.1", // x-release-please-version + version: "0.2.0", // x-release-please-version }); // Important: Cursor throws an error when `describe()` is used in the schema. diff --git a/packages/migrate-config/CHANGELOG.md b/packages/migrate-config/CHANGELOG.md index b1e1afea0..ff216a1d1 100644 --- a/packages/migrate-config/CHANGELOG.md +++ b/packages/migrate-config/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [2.0.0](https://github.com/eslint/rewrite/compare/migrate-config-v1.6.1...migrate-config-v2.0.0) (2025-11-14) + + +### ⚠ BREAKING CHANGES + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) + +### Features + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) ([acc623c](https://github.com/eslint/rewrite/commit/acc623c807bf8237a26b18291f04dd99e4e4981a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/compat bumped from ^1.4.1 to ^2.0.0 + * devDependencies + * @eslint/core bumped from ^0.17.0 to ^1.0.0 + ## [1.6.1](https://github.com/eslint/rewrite/compare/migrate-config-v1.6.0...migrate-config-v1.6.1) (2025-10-27) diff --git a/packages/migrate-config/package.json b/packages/migrate-config/package.json index f8790a088..171746973 100644 --- a/packages/migrate-config/package.json +++ b/packages/migrate-config/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/migrate-config", - "version": "1.6.1", + "version": "2.0.0", "description": "Configuration migration for ESLint", "type": "module", "bin": { @@ -39,14 +39,14 @@ }, "homepage": "https://github.com/eslint/rewrite/tree/main/packages/migrate-config#readme", "devDependencies": { - "@eslint/core": "^0.17.0", + "@eslint/core": "^1.0.0", "eslint": "^9.27.0" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" }, "dependencies": { - "@eslint/compat": "^1.4.1", + "@eslint/compat": "^2.0.0", "@eslint/eslintrc": "^3.3.1", "camelcase": "^8.0.0", "espree": "^10.4.0", diff --git a/packages/object-schema/CHANGELOG.md b/packages/object-schema/CHANGELOG.md index 7644858b9..736a27e8d 100644 --- a/packages/object-schema/CHANGELOG.md +++ b/packages/object-schema/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [3.0.0](https://github.com/eslint/rewrite/compare/object-schema-v2.1.7...object-schema-v3.0.0) (2025-11-14) + + +### ⚠ BREAKING CHANGES + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) + +### Features + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) ([acc623c](https://github.com/eslint/rewrite/commit/acc623c807bf8237a26b18291f04dd99e4e4981a)) + ## [2.1.7](https://github.com/eslint/rewrite/compare/object-schema-v2.1.6...object-schema-v2.1.7) (2025-10-17) diff --git a/packages/object-schema/jsr.json b/packages/object-schema/jsr.json index c770880af..7d958927c 100644 --- a/packages/object-schema/jsr.json +++ b/packages/object-schema/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/object-schema", - "version": "2.1.7", + "version": "3.0.0", "exports": "./dist/esm/index.js", "publish": { "include": [ diff --git a/packages/object-schema/package.json b/packages/object-schema/package.json index 46ec84738..9944a0c2e 100644 --- a/packages/object-schema/package.json +++ b/packages/object-schema/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/object-schema", - "version": "2.1.7", + "version": "3.0.0", "description": "An object schema merger/validator", "type": "module", "main": "dist/esm/index.js", diff --git a/packages/plugin-kit/CHANGELOG.md b/packages/plugin-kit/CHANGELOG.md index 4737565d6..30969659a 100644 --- a/packages/plugin-kit/CHANGELOG.md +++ b/packages/plugin-kit/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [0.5.0](https://github.com/eslint/rewrite/compare/plugin-kit-v0.4.1...plugin-kit-v0.5.0) (2025-11-14) + + +### ⚠ BREAKING CHANGES + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) + +### Features + +* Require Node.js ^20.19.0 || ^22.13.0 || >=24 ([#297](https://github.com/eslint/rewrite/issues/297)) ([acc623c](https://github.com/eslint/rewrite/commit/acc623c807bf8237a26b18291f04dd99e4e4981a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @eslint/core bumped from ^0.17.0 to ^1.0.0 + ## [0.4.1](https://github.com/eslint/rewrite/compare/plugin-kit-v0.4.0...plugin-kit-v0.4.1) (2025-10-27) diff --git a/packages/plugin-kit/jsr.json b/packages/plugin-kit/jsr.json index 17338644e..8a3a66e36 100644 --- a/packages/plugin-kit/jsr.json +++ b/packages/plugin-kit/jsr.json @@ -1,6 +1,6 @@ { "name": "@eslint/plugin-kit", - "version": "0.4.1", + "version": "0.5.0", "exports": "./dist/esm/index.js", "publish": { "include": [ diff --git a/packages/plugin-kit/package.json b/packages/plugin-kit/package.json index ef4f2f2d8..fd1017a4a 100644 --- a/packages/plugin-kit/package.json +++ b/packages/plugin-kit/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/plugin-kit", - "version": "0.4.1", + "version": "0.5.0", "description": "Utilities for building ESLint plugins.", "author": "Nicholas C. Zakas", "type": "module", @@ -48,7 +48,7 @@ ], "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.17.0", + "@eslint/core": "^1.0.0", "levn": "^0.4.1" }, "devDependencies": {