v3.0.0
Major Changes
-
#471
d30112bThanks @copilot-swe-agent! - Add ESLint language plugin support. The plugin now exports alanguagesobject that provides language implementations forjson,jsonc,json5, andx. The shared configurations (base,recommended-with-json, etc.) now use thejsonc-based language implementation by default (vialanguage: "jsonc/x"in ESLint flat config) and have been updated to use the new language plugin approach instead of the parser approach. -
#468
8c87c6cThanks @copilot-swe-agent! - Drop support for legacy config. The plugin now exports flat configs as the main configuration format. The previousflat/*namespace is kept for backward compatibility. -
#465
62b2127Thanks @copilot-swe-agent! - Drop support for older ESLint versions. The new minimum supported version is ESLint 9.38.0 or later. -
#460
cc949e3Thanks @copilot-swe-agent! - Drop support for older Node.js versions. The new minimum supported versions are: ^20.19.0 || ^22.13.0 || >=24 -
#469
ee27486Thanks @copilot-swe-agent! - Convert to ESM-only package. The plugin now uses tsdown for bundling and is distributed as pure ESM. The package no longer supports CommonJSrequire()syntax. Users need to useimportstatements or dynamicimport()to load the plugin. -
#466
29e47c4Thanks @renovate! - Update dependency jsonc-eslint-parser to v3 -
#473
0f6d480Thanks @ota-meshi! - feat: include "no-irregular-whitespace" rule in recommended configs -
#477
75304cfThanks @ota-meshi! - Removed re-export from jsonc-eslint-parser
Minor Changes
-
#474
90c0d61Thanks @ota-meshi! - fix: replace espree with jsonc-eslint-parser for tokenization -
#476
633b7d1Thanks @ota-meshi! - The JSONCSourceCode, JSONCToken, and JSONCComment types are now provided. Using these types, you can define a RuleContext type that is useful for creating JSON rules.e.g.
import type * as core from "@eslint/core"; export type RuleContext<RuleOptions extends unknown[] = unknown[]> = core.RuleContext<{ LangOptions: JSONCLanguageOptions; Code: JSONCSourceCode; RuleOptions: RuleOptions; Node: JSONCNodeOrToken; MessageIds: string; }>;