Skip to main content
ESLint Interlace
Plugin: import-next

Changelog

Release history and version updates for eslint-plugin-import-next

Live from GitHub

This changelog is fetched directly from CHANGELOG.md on GitHub and cached for 2 hours.

Live changelogfrom eslint-plugin-import-next/CHANGELOG.md, cached for 2 hours.Edit on GitHub

[2.3.6] - 2026-05-03

2.3.7

Patch Changes

  • #141 38ab670 Thanks @ofri-peretz! - fix: remove false meta.fixable: 'code' declarations from 21 rules that had no fix() function

    Rules that declared fixable: 'code' in their ESLint meta without an actual fix() implementation would show the ⚡ auto-fix icon in editors and CI formatters but apply no change when --fix was run. This patch removes the misleading declaration from:

    • browser-security/no-clickjacking
    • import-next/first, named, no-barrel-import, no-import-module-exports, no-namespace
    • node-security/no-buffer-overread, no-unsafe-dynamic-require, no-zip-slip
    • react-features/react-no-inline-functions
    • reliability/no-jsdoc-terminator-in-example (uses suggest, not auto-fix; corrected to hasSuggestions: true only)
    • secure-coding/no-directive-injection, no-electron-security-issues, no-graphql-injection, no-improper-sanitization, no-improper-type-validation, no-ldap-injection, no-unchecked-loop-condition, no-unlimited-resource-allocation, no-weak-password-recovery, no-xpath-injection
  • #186 edf208d Thanks @ofri-peretz! - Consolidation cleanup — no rule behavior change:

    • react-features: the README rules table now lists the 8 componentApi preset rules. The README generator (sync-readme-rules.ts) and the plugin-rule-source-drift validator now recurse into nested docs/rules/<category>/ subfolders, so every documented rule is advertised consistently (previously the nested componentApi docs were silently dropped, which an earlier readme exception had papered over — that exception is now removed in favour of the real fix).
    • node-security: remove the orphaned no-pii-in-logs rule source — the rule was migrated to eslint-plugin-secure-coding and is no longer exported here; the dead source was still compiling into dist.
    • import-next: restore the no-cycle unit test after #180's SCC refactor (computeSCCsFromFile + findShortestCyclePath are now bridged in the mock).

    Also fixes scripts/ilb-plugin-scope-audit.ts to stop mis-reading config-preset keys ('recommended-strict': {) as rules.

  • Updated dependencies [736a5fe]:

    • @interlace/eslint-devkit@1.4.1

Changed

  • no-cycle rewritten to per-import targeted DFS (replaces upfront full-graph BFS+Tarjan SCC). The nonCyclicFiles cache provides O(1) rejection after first visit; only files along the actual DFS path are read. Detection parity with the previous algorithm is preserved.

2.3.5 (2026-02-09)

This was a version bump only for eslint-plugin-import-next to align it with other projects, there were no code changes.

[2.3.3] - 2026-02-08

Bug Fixes

  • align codecov component IDs with full package names (2831b968)

Documentation

  • fix changelog header format across all packages (c3a15082)

❤️ Thank You

  • Ofri Peretz

[2.3.2] - 2026-02-06

Bug Fixes

  • align codecov component names and update docs components (0a59a86c)

❤️ Thank You

  • Ofri Peretz

[2.3.1] - 2026-02-02

This was a version bump only for eslint-plugin-import-next to align it with other projects, there were no code changes.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Documentation

[2.0.0] - 2025-12-30

Changed

  • Architecture Overhaul: Complete rewrite for performance and maintainability.
  • Rule Parity: Achieved 100% feature parity with eslint-plugin-import (46 rules).
  • Performance: no-cycle rule is now up to 100x faster using incremental graph analysis.
  • TypeScript Support: First-class support for TypeScript (parsers and resolvers) out of the box.

Added

  • New Rules:
    • prefer-node-protocol - Enforce node: protocol for Node.js built-ins.
    • no-named-as-default - specialized check for named exports used as default.
    • no-named-as-default-member - Check for properties on default export that match named exports.
    • no-relative-packages - Enforce package boundaries.
    • no-import-module-exports - Disallow module.exports alongside imports.
    • no-empty-named-blocks - Disallow empty named import blocks.
    • consistent-type-specifier-style - Enforce type-only import style (inline vs top-level).
    • no-dynamic-require - Disallow dynamic require calls.
    • no-self-import - Detect self-referential imports.
    • no-named-default - Disallow named default exports.
    • no-restricted-paths - Enhanced path restriction rule.
    • unambiguous - Enforce unambiguous module type.
  • Enhanced Documentation: All rules now feature AEO-compliant documentation with OWASP mappings.
  • Improved Testing: Comprehensive test suite covering all rules, including edge cases and TypeScript integration.

[1.0.0] - 2024-12-05

Added

  • Initial release with 30 LLM-optimized dependency rules
  • Module Resolution Rules (7 rules):
    • no-unresolved - Ensure imports resolve to a module
    • named - Ensure named imports exist
    • default - Ensure default export exists
    • namespace - Ensure namespace imports are valid
    • extensions - Enforce file extension usage
    • no-self-import - Prevent module from importing itself
    • no-duplicates - Prevent duplicate imports
  • Module System Rules (3 rules):
    • no-amd - Disallow AMD imports
    • no-commonjs - Disallow CommonJS imports
    • no-nodejs-modules - Disallow Node.js built-in modules
  • Dependency Boundaries Rules (6 rules):
    • no-cycle - Detect circular dependency chains
    • no-internal-modules - Forbid deep/internal module imports
    • no-cross-domain-imports - Enforce domain boundaries
    • enforce-dependency-direction - Enforce layered architecture
    • no-restricted-paths - Restrict imports between paths
    • no-relative-parent-imports - Disallow ../ imports
  • Export Style Rules (6 rules):
    • no-default-export - Disallow default exports
    • no-named-export - Disallow named exports
    • prefer-default-export - Prefer default for single exports
    • no-anonymous-default-export - Disallow anonymous default exports
    • no-mutable-exports - Disallow mutable exports
    • no-deprecated - Disallow deprecated exports
  • Import Style Rules (4 rules):
    • enforce-import-order - Enforce import ordering
    • first - Ensure imports are at the top
    • newline-after-import - Require newline after imports
    • no-unassigned-import - Disallow side-effect imports
  • Dependency Management Rules (4 rules):
    • no-extraneous-dependencies - Disallow unlisted dependencies
    • no-unused-modules - Detect unused exports/modules
    • max-dependencies - Limit number of dependencies
    • prefer-node-protocol - Prefer node: protocol for builtins
  • Preset configurations: recommended, strict, module-resolution, import-style, esm, architecture
  • Full ESLint 9 flat config support
  • ESLint MCP integration for AI assistants
  • TypeScript type exports for all rule options

View on GitHub →

On this page

No Headings