import-js/eslint-plugin-import (eslint-plugin-import)
### [`v2.31.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2310---2024-10-03)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.30.0...v2.31.0)
##### Added
- support eslint v9 (\[[#2996](https://redirect.github.com/import-js/eslint-plugin-import/issues/2996)], thanks \[[@G-Rath](https://redirect.github.com/G-Rath)] \[[@michaelfaith](https://redirect.github.com/michaelfaith)])
- \[`order`]: allow validating named imports (\[[#3043](https://redirect.github.com/import-js/eslint-plugin-import/issues/3043)], thanks \[[@manuth](https://redirect.github.com/manuth)])
- \[`extensions`]: add the `checkTypeImports` option (\[[#2817](https://redirect.github.com/import-js/eslint-plugin-import/issues/2817)], thanks \[[@phryneas](https://redirect.github.com/phryneas)])
##### Fixed
- `ExportMap` / flat config: include `languageOptions` in context (\[[#3052](https://redirect.github.com/import-js/eslint-plugin-import/issues/3052)], thanks \[[@michaelfaith](https://redirect.github.com/michaelfaith)])
- \[`no-named-as-default`]: Allow using an identifier if the export is both a named and a default export (\[[#3032](https://redirect.github.com/import-js/eslint-plugin-import/issues/3032)], thanks \[[@akwodkiewicz](https://redirect.github.com/akwodkiewicz)])
- \[`export`]: False positive for exported overloaded functions in TS (\[[#3065](https://redirect.github.com/import-js/eslint-plugin-import/issues/3065)], thanks \[[@liuxingbaoyu](https://redirect.github.com/liuxingbaoyu)])
- `exportMap`: export map cache is tainted by unreliable parse results (\[[#3062](https://redirect.github.com/import-js/eslint-plugin-import/issues/3062)], thanks \[[@michaelfaith](https://redirect.github.com/michaelfaith)])
- `exportMap`: improve cacheKey when using flat config (\[[#3072](https://redirect.github.com/import-js/eslint-plugin-import/issues/3072)], thanks \[[@michaelfaith](https://redirect.github.com/michaelfaith)])
- adjust "is source type module" checks for flat config (\[[#2996](https://redirect.github.com/import-js/eslint-plugin-import/issues/2996)], thanks \[[@G-Rath](https://redirect.github.com/G-Rath)])
##### Changed
- \[Docs] \[`no-relative-packages`]: fix typo (\[[#3066](https://redirect.github.com/import-js/eslint-plugin-import/issues/3066)], thanks \[[@joshuaobrien](https://redirect.github.com/joshuaobrien)])
- \[Performance] \[`no-cycle`]: dont scc for each linted file (\[[#3068](https://redirect.github.com/import-js/eslint-plugin-import/issues/3068)], thanks \[[@soryy708](https://redirect.github.com/soryy708)])
- \[Docs] \[`no-cycle`]: add `disableScc` to docs (\[[#3070](https://redirect.github.com/import-js/eslint-plugin-import/issues/3070)], thanks \[[@soryy708](https://redirect.github.com/soryy708)])
- \[Tests] use re-exported `RuleTester` (\[[#3071](https://redirect.github.com/import-js/eslint-plugin-import/issues/3071)], thanks \[[@G-Rath](https://redirect.github.com/G-Rath)])
- \[Docs] \[`no-restricted-paths`]: fix grammar (\[[#3073](https://redirect.github.com/import-js/eslint-plugin-import/issues/3073)], thanks \[[@unbeauvoyage](https://redirect.github.com/unbeauvoyage)])
- \[Tests] \[`no-default-export`], \[`no-named-export`]: add test case (thanks \[[@G-Rath](https://redirect.github.com/G-Rath)])
### [`v2.30.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2300---2024-09-02)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.29.1...v2.30.0)
##### Added
- \[`dynamic-import-chunkname`]: add `allowEmpty` option to allow empty leading comments (\[[#2942](https://redirect.github.com/import-js/eslint-plugin-import/issues/2942)], thanks \[[@JiangWeixian](https://redirect.github.com/JiangWeixian)])
- \[`dynamic-import-chunkname`]: Allow empty chunk name when webpackMode: 'eager' is set; add suggestions to remove name in eager mode (\[[#3004](https://redirect.github.com/import-js/eslint-plugin-import/issues/3004)], thanks \[[@amsardesai](https://redirect.github.com/amsardesai)])
- \[`no-unused-modules`]: Add `ignoreUnusedTypeExports` option (\[[#3011](https://redirect.github.com/import-js/eslint-plugin-import/issues/3011)], thanks \[[@silverwind](https://redirect.github.com/silverwind)])
- add support for Flat Config (\[[#3018](https://redirect.github.com/import-js/eslint-plugin-import/issues/3018)], thanks \[[@michaelfaith](https://redirect.github.com/michaelfaith)])
##### Fixed
- \[`no-extraneous-dependencies`]: allow wrong path (\[[#3012](https://redirect.github.com/import-js/eslint-plugin-import/issues/3012)], thanks \[[@chabb](https://redirect.github.com/chabb)])
- \[`no-cycle`]: use scc algorithm to optimize (\[[#2998](https://redirect.github.com/import-js/eslint-plugin-import/issues/2998)], thanks \[[@soryy708](https://redirect.github.com/soryy708)])
- \[`no-duplicates`]: Removing duplicates breaks in TypeScript (\[[#3033](https://redirect.github.com/import-js/eslint-plugin-import/issues/3033)], thanks \[[@yesl-kim](https://redirect.github.com/yesl-kim)])
- \[`newline-after-import`]: fix considerComments option when require (\[[#2952](https://redirect.github.com/import-js/eslint-plugin-import/issues/2952)], thanks \[[@developer-bandi](https://redirect.github.com/developer-bandi)])
- \[`order`]: do not compare first path segment for relative paths (\[[#2682](https://redirect.github.com/import-js/eslint-plugin-import/issues/2682)]) (\[[#2885](https://redirect.github.com/import-js/eslint-plugin-import/issues/2885)], thanks \[[@mihkeleidast](https://redirect.github.com/mihkeleidast)])
##### Changed
- \[Docs] `no-extraneous-dependencies`: Make glob pattern description more explicit (\[[#2944](https://redirect.github.com/import-js/eslint-plugin-import/issues/2944)], thanks \[[@mulztob](https://redirect.github.com/mulztob)])
- \[`no-unused-modules`]: add console message to help debug \[[#2866](https://redirect.github.com/import-js/eslint-plugin-import/issues/2866)]
- \[Refactor] `ExportMap`: make procedures static instead of monkeypatching exportmap (\[[#2982](https://redirect.github.com/import-js/eslint-plugin-import/issues/2982)], thanks \[[@soryy708](https://redirect.github.com/soryy708)])
- \[Refactor] `ExportMap`: separate ExportMap instance from its builder logic (\[[#2985](https://redirect.github.com/import-js/eslint-plugin-import/issues/2985)], thanks \[[@soryy708](https://redirect.github.com/soryy708)])
- \[Docs] `order`: Add a quick note on how unbound imports and --fix (\[[#2640](https://redirect.github.com/import-js/eslint-plugin-import/issues/2640)], thanks \[[@minervabot](https://redirect.github.com/minervabot)])
- \[Tests] appveyor -> GHA (run tests on Windows in both pwsh and WSL + Ubuntu) (\[[#2987](https://redirect.github.com/import-js/eslint-plugin-import/issues/2987)], thanks \[[@joeyguerra](https://redirect.github.com/joeyguerra)])
- \[actions] migrate OSX tests to GHA (\[[ljharb#37](https://redirect.github.com/ljharb/eslint-plugin-import/issues/37)], thanks \[[@aks-](https://redirect.github.com/aks-)])
- \[Refactor] `exportMapBuilder`: avoid hoisting (\[[#2989](https://redirect.github.com/import-js/eslint-plugin-import/issues/2989)], thanks \[[@soryy708](https://redirect.github.com/soryy708)])
- \[Refactor] `ExportMap`: extract "builder" logic to separate files (\[[#2991](https://redirect.github.com/import-js/eslint-plugin-import/issues/2991)], thanks \[[@soryy708](https://redirect.github.com/soryy708)])
- \[Docs] \[`order`]: update the description of the `pathGroupsExcludedImportTypes` option (\[[#3036](https://redirect.github.com/import-js/eslint-plugin-import/issues/3036)], thanks \[[@liby](https://redirect.github.com/liby)])
- \[readme] Clarify how to install the plugin (\[[#2993](https://redirect.github.com/import-js/eslint-plugin-import/issues/2993)], thanks \[[@jwbth](https://redirect.github.com/jwbth)])
### [`v2.29.1`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2291---2023-12-14)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.29.0...v2.29.1)
##### Fixed
- \[`no-extraneous-dependencies`]: ignore `export type { ... } from '...'` when `includeTypes` is `false` (\[[#2919](https://redirect.github.com/import-js/eslint-plugin-import/issues/2919)], thanks \[[@Pandemic1617](https://redirect.github.com/Pandemic1617)])
- \[`no-unused-modules`]: support export patterns with array destructuring (\[[#2930](https://redirect.github.com/import-js/eslint-plugin-import/issues/2930)], thanks \[[@ljharb](https://redirect.github.com/ljharb)])
- \[Deps] update `tsconfig-paths` (\[[#2447](https://redirect.github.com/import-js/eslint-plugin-import/issues/2447)], thanks \[[@domdomegg](https://redirect.github.com/domdomegg)])
### [`v2.29.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2290---2023-10-22)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.28.1...v2.29.0)
##### Added
- TypeScript config: add .cts and .mts extensions (\[[#2851](https://redirect.github.com/import-js/eslint-plugin-import/issues/2851)], thanks \[[@Zamiell](https://redirect.github.com/Zamiell)])
- \[`newline-after-import`]: new option `exactCount` and docs update (\[[#1933](https://redirect.github.com/import-js/eslint-plugin-import/issues/1933)], thanks \[[@anikethsaha](https://redirect.github.com/anikethsaha)] and \[[@reosarevok](https://redirect.github.com/reosarevok)])
- \[`newline-after-import`]: fix `exactCount` with `considerComments` false positive, when there is a leading comment (\[[#2884](https://redirect.github.com/import-js/eslint-plugin-import/issues/2884)], thanks \[[@kinland](https://redirect.github.com/kinland)])
### [`v2.28.1`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2281---2023-08-18)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.28.0...v2.28.1)
##### Fixed
- \[`order`]: revert breaking change to single nested group (\[[#2854](https://redirect.github.com/import-js/eslint-plugin-import/issues/2854)], thanks \[[@yndajas](https://redirect.github.com/yndajas)])
##### Changed
- \[Docs] remove duplicate fixable notices in docs (\[[#2850](https://redirect.github.com/import-js/eslint-plugin-import/issues/2850)], thanks \[[@bmish](https://redirect.github.com/bmish)])
### [`v2.28.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2280---2023-07-27)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.5...v2.28.0)
##### Fixed
- \[`no-duplicates`]: remove duplicate identifiers in duplicate imports (\[[#2577](https://redirect.github.com/import-js/eslint-plugin-import/issues/2577)], thanks \[[@joe-matsec](https://redirect.github.com/joe-matsec)])
- \[`consistent-type-specifier-style`]: fix accidental removal of comma in certain cases (\[[#2754](https://redirect.github.com/import-js/eslint-plugin-import/issues/2754)], thanks \[[@bradzacher](https://redirect.github.com/bradzacher)])
- \[Perf] `ExportMap`: Improve `ExportMap.for` performance on larger codebases (\[[#2756](https://redirect.github.com/import-js/eslint-plugin-import/issues/2756)], thanks \[[@leipert](https://redirect.github.com/leipert)])
- \[`no-extraneous-dependencies`]/TypeScript: do not error when importing inline type from dev dependencies (\[[#1820](https://redirect.github.com/import-js/eslint-plugin-import/issues/1820)], thanks \[[@andyogo](https://redirect.github.com/andyogo)])
- \[`newline-after-import`]/TypeScript: do not error when re-exporting a namespaced import (\[[#2832](https://redirect.github.com/import-js/eslint-plugin-import/issues/2832)], thanks \[[@laurens-dg](https://redirect.github.com/laurens-dg)])
- \[`order`]: partial fix for \[[#2687](https://redirect.github.com/import-js/eslint-plugin-import/issues/2687)] (thanks \[[@ljharb](https://redirect.github.com/ljharb)])
- \[`no-duplicates`]: Detect across type and regular imports (\[[#2835](https://redirect.github.com/import-js/eslint-plugin-import/issues/2835)], thanks \[[@benkrejci](https://redirect.github.com/benkrejci)])
- \[`extensions`]: handle `.` and `..` properly (\[[#2778](https://redirect.github.com/import-js/eslint-plugin-import/issues/2778)], thanks \[[@benasher44](https://redirect.github.com/benasher44)])
- \[`no-unused-modules`]: improve schema (thanks \[[@ljharb](https://redirect.github.com/ljharb)])
- \[`no-unused-modules`]: report error on binding instead of parent export (\[[#2842](https://redirect.github.com/import-js/eslint-plugin-import/issues/2842)], thanks \[[@Chamion](https://redirect.github.com/Chamion)])
##### Changed
- \[Docs] \[`no-duplicates`]: fix example schema (\[[#2684](https://redirect.github.com/import-js/eslint-plugin-import/issues/2684)], thanks \[[@simmo](https://redirect.github.com/simmo)])
- \[Docs] \[`group-exports`]: fix syntax highlighting (\[[#2699](https://redirect.github.com/import-js/eslint-plugin-import/issues/2699)], thanks \[[@devinrhode2](https://redirect.github.com/devinrhode2)])
- \[Docs] \[`extensions`]: reference node ESM behavior (\[[#2748](https://redirect.github.com/import-js/eslint-plugin-import/issues/2748)], thanks \[[@xM8WVqaG](https://redirect.github.com/xM8WVqaG)])
- \[Refactor] \[`exports-last`]: use `array.prototype.findlastindex` (thanks \[[@ljharb](https://redirect.github.com/ljharb)])
- \[Refactor] \[`no-anonymous-default-export`]: use `object.fromentries` (thanks \[[@ljharb](https://redirect.github.com/ljharb)])
- \[Refactor] \[`no-unused-modules`]: use `array.prototype.flatmap` (thanks \[[@ljharb](https://redirect.github.com/ljharb)])
### [`v2.27.5`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2275---2023-01-16)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.4...v2.27.5)
##### Fixed
- \[`order]`: Fix group ranks order when alphabetizing (\[[#2674](https://redirect.github.com/import-js/eslint-plugin-import/issues/2674)], thanks \[[@Pearce-Ropion](https://redirect.github.com/Pearce-Ropion)])
### [`v2.27.4`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2274---2023-01-11)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.3...v2.27.4)
##### Fixed
- `semver` should be a prod dep (\[[#2668](https://redirect.github.com/import-js/eslint-plugin-import/issues/2668)])
### [`v2.27.3`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2273---2023-01-11)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.2...v2.27.3)
##### Fixed
- \[`no-empty-named-blocks`]: rewrite rule to only check import declarations (\[[#2666](https://redirect.github.com/import-js/eslint-plugin-import/issues/2666)])
### [`v2.27.2`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2272---2023-01-11)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.1...v2.27.2)
##### Fixed
- \[`no-duplicates`]: do not unconditionally require `typescript` (\[[#2665](https://redirect.github.com/import-js/eslint-plugin-import/issues/2665)])
### [`v2.27.1`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2271---2023-01-11)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.0...v2.27.1)
##### Fixed
- `array.prototype.flatmap` should be a prod dep (\[[#2664](https://redirect.github.com/import-js/eslint-plugin-import/issues/2664)], thanks \[[@cristobal](https://redirect.github.com/cristobal)])
### [`v2.27.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2270---2023-01-11)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.26.0...v2.27.0)
##### Added
- \[`newline-after-import`]: add `considerComments` option (\[[#2399](https://redirect.github.com/import-js/eslint-plugin-import/issues/2399)], thanks \[[@pri1311](https://redirect.github.com/pri1311)])
- \[`no-cycle`]: add `allowUnsafeDynamicCyclicDependency` option (\[[#2387](https://redirect.github.com/import-js/eslint-plugin-import/issues/2387)], thanks \[[@GerkinDev](https://redirect.github.com/GerkinDev)])
- \[`no-restricted-paths`]: support arrays for `from` and `target` options (\[[#2466](https://redirect.github.com/import-js/eslint-plugin-import/issues/2466)], thanks \[[@AdriAt360](https://redirect.github.com/AdriAt360)])
- \[`no-anonymous-default-export`]: add `allowNew` option (\[[#2505](https://redirect.github.com/import-js/eslint-plugin-import/issues/2505)], thanks \[[@DamienCassou](https://redirect.github.com/DamienCassou)])
- \[`order`]: Add `distinctGroup` option (\[[#2395](https://redirect.github.com/import-js/eslint-plugin-import/issues/2395)], thanks \[[@hyperupcall](https://redirect.github.com/hyperupcall)])
- \[`no-extraneous-dependencies`]: Add `includeInternal` option (\[[#2541](https://redirect.github.com/import-js/eslint-plugin-import/issues/2541)], thanks \[[@bdwain](https://redirect.github.com/bdwain)])
- \[`no-extraneous-dependencies`]: Add `includeTypes` option (\[[#2543](https://redirect.github.com/import-js/eslint-plugin-import/issues/2543)], thanks \[[@bdwain](https://redirect.github.com/bdwain)])
- \[`order`]: new `alphabetize.orderImportKind` option to sort imports with same path based on their kind (`type`, `typeof`) (\[[#2544](https://redirect.github.com/import-js/eslint-plugin-import/issues/2544)], thanks \[[@stropho](https://redirect.github.com/stropho)])
- \[`consistent-type-specifier-style`]: add rule (\[[#2473](https://redirect.github.com/import-js/eslint-plugin-import/issues/2473)], thanks \[[@bradzacher](https://redirect.github.com/bradzacher)])
- Add \[`no-empty-named-blocks`] rule (\[[#2568](https://redirect.github.com/import-js/eslint-plugin-import/issues/2568)], thanks \[[@guilhermelimak](https://redirect.github.com/guilhermelimak)])
- \[`prefer-default-export`]: add "target" option (\[[#2602](https://redirect.github.com/import-js/eslint-plugin-import/issues/2602)], thanks \[[@azyzz228](https://redirect.github.com/azyzz228)])
- \[`no-absolute-path`]: add fixer (\[[#2613](https://redirect.github.com/import-js/eslint-plugin-import/issues/2613)], thanks \[[@adipascu](https://redirect.github.com/adipascu)])
- \[`no-duplicates`]: support inline type import with `inlineTypeImport` option (\[[#2475](https://redirect.github.com/import-js/eslint-plugin-import/issues/2475)], thanks \[[@snewcomer](https://redirect.github.com/snewcomer)])
##### Fixed
- \[`order`]: move nested imports closer to main import entry (\[[#2396](https://redirect.github.com/import-js/eslint-plugin-import/issues/2396)], thanks \[[@pri1311](https://redirect.github.com/pri1311)])
- \[`no-restricted-paths`]: fix an error message (\[[#2466](https://redirect.github.com/import-js/eslint-plugin-import/issues/2466)], thanks \[[@AdriAt360](https://redirect.github.com/AdriAt360)])
- \[`no-restricted-paths`]: use `Minimatch.match` instead of `minimatch` to comply with Windows Native paths (\[[#2466](https://redirect.github.com/import-js/eslint-plugin-import/issues/2466)], thanks \[[@AdriAt360](https://redirect.github.com/AdriAt360)])
- \[`order`]: require with member expression could not be fixed if alphabetize.order was used (\[[#2490](https://redirect.github.com/import-js/eslint-plugin-import/issues/2490)], thanks \[[@msvab](https://redirect.github.com/msvab)])
- \[`order`]: leave more space in rankings for consecutive path groups (\[[#2506](https://redirect.github.com/import-js/eslint-plugin-import/issues/2506)], thanks \[[@Pearce-Ropion](https://redirect.github.com/Pearce-Ropion)])
- \[`no-cycle`]: add ExportNamedDeclaration statements to dependencies (\[[#2511](https://redirect.github.com/import-js/eslint-plugin-import/issues/2511)], thanks \[[@BenoitZugmeyer](https://redirect.github.com/BenoitZugmeyer)])
- \[`dynamic-import-chunkname`]: prevent false report on a valid webpack magic comment (\[[#2330](https://redirect.github.com/import-js/eslint-plugin-import/issues/2330)], thanks \[[@mhmadhamster](https://redirect.github.com/mhmadhamster)])
- \[`export`]: do not error on TS export overloads (\[[#1590](https://redirect.github.com/import-js/eslint-plugin-import/issues/1590)], thanks \[[@ljharb](https://redirect.github.com/ljharb)])
- \[`no-unresolved`], \[`extensions`]: ignore type only exports (\[[#2436](https://redirect.github.com/import-js/eslint-plugin-import/issues/2436)], thanks \[[@Lukas-Kullmann](https://redirect.github.com/Lukas-Kullmann)])
- `ExportMap`: add missing param to function (\[[#2589](https://redirect.github.com/import-js/eslint-plugin-import/issues/2589)], thanks \[[@Fdawgs](https://redirect.github.com/Fdawgs)])
- \[`no-unused-modules`]: `checkPkgFieldObject` filters boolean fields from checks (\[[#2598](https://redirect.github.com/import-js/eslint-plugin-import/issues/2598)], thanks \[[@mpint](https://redirect.github.com/mpint)])
- \[`no-cycle`]: accept Flow `typeof` imports, just like `type` (\[[#2608](https://redirect.github.com/import-js/eslint-plugin-import/issues/2608)], thanks \[[@gnprice](https://redirect.github.com/gnprice)])
- \[`no-import-module-exports`]: avoid a false positive for import variables (\[[#2315](https://redirect.github.com/import-js/eslint-plugin-import/issues/2315)], thanks \[[@BarryThePenguin](https://redirect.github.com/BarryThePenguin)])
##### Changed
- \[Tests] \[`named`]: Run all TypeScript test (\[[#2427](https://redirect.github.com/import-js/eslint-plugin-import/issues/2427)], thanks \[[@ProdigySim](https://redirect.github.com/ProdigySim)])
- \[readme] note use of typescript in readme `import/extensions` section (\[[#2440](https://redirect.github.com/import-js/eslint-plugin-import/issues/2440)], thanks \[[@OutdatedVersion](https://redirect.github.com/OutdatedVersion)])
- \[Docs] \[`order`]: use correct default value (\[[#2392](https://redirect.github.com/import-js/eslint-plugin-import/issues/2392)], thanks \[[@hyperupcall](https://redirect.github.com/hyperupcall)])
- \[meta] replace git.io link in comments with the original URL (\[[#2444](https://redirect.github.com/import-js/eslint-plugin-import/issues/2444)], thanks \[[@liby](https://redirect.github.com/liby)])
- \[Docs] remove global install in readme (\[[#2412](https://redirect.github.com/import-js/eslint-plugin-import/issues/2412)], thanks \[[@aladdin-add](https://redirect.github.com/aladdin-add)])
- \[readme] clarify `eslint-import-resolver-typescript` usage (\[[#2503](https://redirect.github.com/import-js/eslint-plugin-import/issues/2503)], thanks \[[@JounQin](https://redirect.github.com/JounQin)])
- \[Refactor] \[`no-cycle`]: Add per-run caching of traversed paths (\[[#2419](https://redirect.github.com/import-js/eslint-plugin-import/issues/2419)], thanks \[[@nokel81](https://redirect.github.com/nokel81)])
- \[Performance] `ExportMap`: add caching after parsing for an ambiguous module (\[[#2531](https://redirect.github.com/import-js/eslint-plugin-import/issues/2531)], thanks \[[@stenin-nikita](https://redirect.github.com/stenin-nikita)])
- \[Docs] \[`no-useless-path-segments`]: fix paths (\[[#2424](https://redirect.github.com/import-js/eslint-plugin-import/issues/2424)], thanks \[[@s-h-a-d-o-w](https://redirect.github.com/s-h-a-d-o-w)])
- \[Tests] \[`no-cycle`]: add passing test cases (\[[#2438](https://redirect.github.com/import-js/eslint-plugin-import/issues/2438)], thanks \[[@georeith](https://redirect.github.com/georeith)])
- \[Refactor] \[`no-extraneous-dependencies`] improve performance using cache (\[[#2374](https://redirect.github.com/import-js/eslint-plugin-import/issues/2374)], thanks \[[@meowtec](https://redirect.github.com/meowtec)])
- \[meta] `CONTRIBUTING.md`: mention inactive PRs (\[[#2546](https://redirect.github.com/import-js/eslint-plugin-import/issues/2546)], thanks \[[@stropho](https://redirect.github.com/stropho)])
- \[readme] make json for setting groups multiline (\[[#2570](https://redirect.github.com/import-js/eslint-plugin-import/issues/2570)], thanks \[[@bertyhell](https://redirect.github.com/bertyhell)])
- \[Tests] \[`no-restricted-paths`]: Tests for `import type` statements (\[[#2459](https://redirect.github.com/import-js/eslint-plugin-import/issues/2459)], thanks \[[@golergka](https://redirect.github.com/golergka)])
- \[Tests] \[`no-restricted-paths`]: fix one failing `import type` test case, submitted by \[[@golergka](https://redirect.github.com/golergka)], thanks \[[@azyzz228](https://redirect.github.com/azyzz228)]
- \[Docs] automate docs with eslint-doc-generator (\[[#2582](https://redirect.github.com/import-js/eslint-plugin-import/issues/2582)], thanks \[[@bmish](https://redirect.github.com/bmish)])
- \[readme] Increase clarity around typescript configuration (\[[#2588](https://redirect.github.com/import-js/eslint-plugin-import/issues/2588)], thanks \[[@Nfinished](https://redirect.github.com/Nfinished)])
- \[Docs] update `eslint-doc-generator` to v1.0.0 (\[[#2605](https://redirect.github.com/import-js/eslint-plugin-import/issues/2605)], thanks \[[@bmish](https://redirect.github.com/bmish)])
- \[Perf] \[`no-cycle`], \[`no-internal-modules`], \[`no-restricted-paths`]: use `anyOf` instead of `oneOf` (thanks \[[@ljharb](https://redirect.github.com/ljharb)], \[[@remcohaszing](https://redirect.github.com/remcohaszing)])
### [`v2.26.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2260---2022-04-05)
[Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.25.4...v2.26.0)
##### Added
- \[`no-named-default`], \[`no-default-export`], \[`prefer-default-export`], \[`no-named-export`], \[`export`], \[`named`], \[`namespace`], \[`no-unused-modules`]: support arbitrary module namespace names (\[[#2358](https://redirect.github.com/import-js/eslint-plugin-import/issues/2358)], thanks \[[@sosukesuzuki](https://redirect.github.com/sosukesuzuki)])
- \[`no-dynamic-require`]: support dynamic import with espree (\[[#2371](https://redirect.github.com/import-js/eslint-plugin-import/issues/2371)], thanks \[[@sosukesuzuki](https://redirect.github.com/sosukesuzuki)])
- \[`no-relative-packages`]: add fixer (\[[#2381](https://redirect.github.com/import-js/eslint-plugin-import/issues/2381)], thanks \[[@forivall](https://redirect.github.com/forivall)])
##### Fixed
- \[`default`]: `typescript-eslint-parser`: avoid a crash on exporting as namespace (thanks \[[@ljharb](https://redirect.github.com/ljharb)])
- \[`export`]/TypeScript: false positive for typescript namespace merging (\[[#1964](https://redirect.github.com/import-js/eslint-plugin-import/issues/1964)], thanks \[[@magarcia](https://redirect.github.com/magarcia)])
- \[`no-duplicates`]: ignore duplicate modules in different TypeScript module declarations (\[[#2378](https://redirect.github.com/import-js/eslint-plugin-import/issues/2378)], thanks \[[@remcohaszing](https://redirect.github.com/remcohaszing)])
- \[`no-unused-modules`]: avoid a crash when processing re-exports (\[[#2388](https://redirect.github.com/import-js/eslint-plugin-import/issues/2388)], thanks \[[@ljharb](https://redirect.github.com/ljharb)])
##### Changed
- \[Tests] \[`no-nodejs-modules`]: add tests for node protocol URL (\[[#2367](https://redirect.github.com/import-js/eslint-plugin-import/issues/2367)], thanks \[[@sosukesuzuki](https://redirect.github.com/sosukesuzuki)])
- \[Tests] \[`default`], \[`no-anonymous-default-export`], \[`no-mutable-exports`], \[`no-named-as-default-member`], \[`no-named-as-default`]: add tests for arbitrary module namespace names (\[[#2358](https://redirect.github.com/import-js/eslint-plugin-import/issues/2358)], thanks \[[@sosukesuzuki](https://redirect.github.com/sosukesuzuki)])
- \[Docs] \[`no-unresolved`]: Fix RegExp escaping in readme (\[[#2332](https://redirect.github.com/import-js/eslint-plugin-import/issues/2332)], thanks \[[@stephtr](https://redirect.github.com/stephtr)])
- \[Refactor] \[`namespace`]: try to improve performance (\[[#2340](https://redirect.github.com/import-js/eslint-plugin-import/issues/2340)], thanks \[[@ljharb](https://redirect.github.com/ljharb)])
- \[Docs] make rule doc titles consistent (\[[#2393](https://redirect.github.com/import-js/eslint-plugin-import/issues/2393)], thanks \[[@TheJaredWilcurt](https://redirect.github.com/TheJaredWilcurt)])
- \[Docs] \[`order`]: TS code examples should use TS code blocks (\[[#2411](https://redirect.github.com/import-js/eslint-plugin-import/issues/2411)], thanks \[[@MM25Zamanian](https://redirect.github.com/MM25Zamanian)])
- \[Docs] \[`no-unresolved`]: fix link (\[[#2417](https://redirect.github.com/import-js/eslint-plugin-import/issues/2417)], thanks \[[@kylemh](https://redirect.github.com/kylemh)])
Configuration
📅 Schedule: Branch creation - "after 4pm on friday,before 9am on monday,every weekend" in timezone Europe/Paris, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
â™» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
2.25.4
->2.31.0
Release Notes
import-js/eslint-plugin-import (eslint-plugin-import)
### [`v2.31.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2310---2024-10-03) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.30.0...v2.31.0) ##### Added - support eslint v9 (\[[#2996](https://redirect.github.com/import-js/eslint-plugin-import/issues/2996)], thanks \[[@G-Rath](https://redirect.github.com/G-Rath)] \[[@michaelfaith](https://redirect.github.com/michaelfaith)]) - \[`order`]: allow validating named imports (\[[#3043](https://redirect.github.com/import-js/eslint-plugin-import/issues/3043)], thanks \[[@manuth](https://redirect.github.com/manuth)]) - \[`extensions`]: add the `checkTypeImports` option (\[[#2817](https://redirect.github.com/import-js/eslint-plugin-import/issues/2817)], thanks \[[@phryneas](https://redirect.github.com/phryneas)]) ##### Fixed - `ExportMap` / flat config: include `languageOptions` in context (\[[#3052](https://redirect.github.com/import-js/eslint-plugin-import/issues/3052)], thanks \[[@michaelfaith](https://redirect.github.com/michaelfaith)]) - \[`no-named-as-default`]: Allow using an identifier if the export is both a named and a default export (\[[#3032](https://redirect.github.com/import-js/eslint-plugin-import/issues/3032)], thanks \[[@akwodkiewicz](https://redirect.github.com/akwodkiewicz)]) - \[`export`]: False positive for exported overloaded functions in TS (\[[#3065](https://redirect.github.com/import-js/eslint-plugin-import/issues/3065)], thanks \[[@liuxingbaoyu](https://redirect.github.com/liuxingbaoyu)]) - `exportMap`: export map cache is tainted by unreliable parse results (\[[#3062](https://redirect.github.com/import-js/eslint-plugin-import/issues/3062)], thanks \[[@michaelfaith](https://redirect.github.com/michaelfaith)]) - `exportMap`: improve cacheKey when using flat config (\[[#3072](https://redirect.github.com/import-js/eslint-plugin-import/issues/3072)], thanks \[[@michaelfaith](https://redirect.github.com/michaelfaith)]) - adjust "is source type module" checks for flat config (\[[#2996](https://redirect.github.com/import-js/eslint-plugin-import/issues/2996)], thanks \[[@G-Rath](https://redirect.github.com/G-Rath)]) ##### Changed - \[Docs] \[`no-relative-packages`]: fix typo (\[[#3066](https://redirect.github.com/import-js/eslint-plugin-import/issues/3066)], thanks \[[@joshuaobrien](https://redirect.github.com/joshuaobrien)]) - \[Performance] \[`no-cycle`]: dont scc for each linted file (\[[#3068](https://redirect.github.com/import-js/eslint-plugin-import/issues/3068)], thanks \[[@soryy708](https://redirect.github.com/soryy708)]) - \[Docs] \[`no-cycle`]: add `disableScc` to docs (\[[#3070](https://redirect.github.com/import-js/eslint-plugin-import/issues/3070)], thanks \[[@soryy708](https://redirect.github.com/soryy708)]) - \[Tests] use re-exported `RuleTester` (\[[#3071](https://redirect.github.com/import-js/eslint-plugin-import/issues/3071)], thanks \[[@G-Rath](https://redirect.github.com/G-Rath)]) - \[Docs] \[`no-restricted-paths`]: fix grammar (\[[#3073](https://redirect.github.com/import-js/eslint-plugin-import/issues/3073)], thanks \[[@unbeauvoyage](https://redirect.github.com/unbeauvoyage)]) - \[Tests] \[`no-default-export`], \[`no-named-export`]: add test case (thanks \[[@G-Rath](https://redirect.github.com/G-Rath)]) ### [`v2.30.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2300---2024-09-02) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.29.1...v2.30.0) ##### Added - \[`dynamic-import-chunkname`]: add `allowEmpty` option to allow empty leading comments (\[[#2942](https://redirect.github.com/import-js/eslint-plugin-import/issues/2942)], thanks \[[@JiangWeixian](https://redirect.github.com/JiangWeixian)]) - \[`dynamic-import-chunkname`]: Allow empty chunk name when webpackMode: 'eager' is set; add suggestions to remove name in eager mode (\[[#3004](https://redirect.github.com/import-js/eslint-plugin-import/issues/3004)], thanks \[[@amsardesai](https://redirect.github.com/amsardesai)]) - \[`no-unused-modules`]: Add `ignoreUnusedTypeExports` option (\[[#3011](https://redirect.github.com/import-js/eslint-plugin-import/issues/3011)], thanks \[[@silverwind](https://redirect.github.com/silverwind)]) - add support for Flat Config (\[[#3018](https://redirect.github.com/import-js/eslint-plugin-import/issues/3018)], thanks \[[@michaelfaith](https://redirect.github.com/michaelfaith)]) ##### Fixed - \[`no-extraneous-dependencies`]: allow wrong path (\[[#3012](https://redirect.github.com/import-js/eslint-plugin-import/issues/3012)], thanks \[[@chabb](https://redirect.github.com/chabb)]) - \[`no-cycle`]: use scc algorithm to optimize (\[[#2998](https://redirect.github.com/import-js/eslint-plugin-import/issues/2998)], thanks \[[@soryy708](https://redirect.github.com/soryy708)]) - \[`no-duplicates`]: Removing duplicates breaks in TypeScript (\[[#3033](https://redirect.github.com/import-js/eslint-plugin-import/issues/3033)], thanks \[[@yesl-kim](https://redirect.github.com/yesl-kim)]) - \[`newline-after-import`]: fix considerComments option when require (\[[#2952](https://redirect.github.com/import-js/eslint-plugin-import/issues/2952)], thanks \[[@developer-bandi](https://redirect.github.com/developer-bandi)]) - \[`order`]: do not compare first path segment for relative paths (\[[#2682](https://redirect.github.com/import-js/eslint-plugin-import/issues/2682)]) (\[[#2885](https://redirect.github.com/import-js/eslint-plugin-import/issues/2885)], thanks \[[@mihkeleidast](https://redirect.github.com/mihkeleidast)]) ##### Changed - \[Docs] `no-extraneous-dependencies`: Make glob pattern description more explicit (\[[#2944](https://redirect.github.com/import-js/eslint-plugin-import/issues/2944)], thanks \[[@mulztob](https://redirect.github.com/mulztob)]) - \[`no-unused-modules`]: add console message to help debug \[[#2866](https://redirect.github.com/import-js/eslint-plugin-import/issues/2866)] - \[Refactor] `ExportMap`: make procedures static instead of monkeypatching exportmap (\[[#2982](https://redirect.github.com/import-js/eslint-plugin-import/issues/2982)], thanks \[[@soryy708](https://redirect.github.com/soryy708)]) - \[Refactor] `ExportMap`: separate ExportMap instance from its builder logic (\[[#2985](https://redirect.github.com/import-js/eslint-plugin-import/issues/2985)], thanks \[[@soryy708](https://redirect.github.com/soryy708)]) - \[Docs] `order`: Add a quick note on how unbound imports and --fix (\[[#2640](https://redirect.github.com/import-js/eslint-plugin-import/issues/2640)], thanks \[[@minervabot](https://redirect.github.com/minervabot)]) - \[Tests] appveyor -> GHA (run tests on Windows in both pwsh and WSL + Ubuntu) (\[[#2987](https://redirect.github.com/import-js/eslint-plugin-import/issues/2987)], thanks \[[@joeyguerra](https://redirect.github.com/joeyguerra)]) - \[actions] migrate OSX tests to GHA (\[[ljharb#37](https://redirect.github.com/ljharb/eslint-plugin-import/issues/37)], thanks \[[@aks-](https://redirect.github.com/aks-)]) - \[Refactor] `exportMapBuilder`: avoid hoisting (\[[#2989](https://redirect.github.com/import-js/eslint-plugin-import/issues/2989)], thanks \[[@soryy708](https://redirect.github.com/soryy708)]) - \[Refactor] `ExportMap`: extract "builder" logic to separate files (\[[#2991](https://redirect.github.com/import-js/eslint-plugin-import/issues/2991)], thanks \[[@soryy708](https://redirect.github.com/soryy708)]) - \[Docs] \[`order`]: update the description of the `pathGroupsExcludedImportTypes` option (\[[#3036](https://redirect.github.com/import-js/eslint-plugin-import/issues/3036)], thanks \[[@liby](https://redirect.github.com/liby)]) - \[readme] Clarify how to install the plugin (\[[#2993](https://redirect.github.com/import-js/eslint-plugin-import/issues/2993)], thanks \[[@jwbth](https://redirect.github.com/jwbth)]) ### [`v2.29.1`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2291---2023-12-14) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.29.0...v2.29.1) ##### Fixed - \[`no-extraneous-dependencies`]: ignore `export type { ... } from '...'` when `includeTypes` is `false` (\[[#2919](https://redirect.github.com/import-js/eslint-plugin-import/issues/2919)], thanks \[[@Pandemic1617](https://redirect.github.com/Pandemic1617)]) - \[`no-unused-modules`]: support export patterns with array destructuring (\[[#2930](https://redirect.github.com/import-js/eslint-plugin-import/issues/2930)], thanks \[[@ljharb](https://redirect.github.com/ljharb)]) - \[Deps] update `tsconfig-paths` (\[[#2447](https://redirect.github.com/import-js/eslint-plugin-import/issues/2447)], thanks \[[@domdomegg](https://redirect.github.com/domdomegg)]) ### [`v2.29.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2290---2023-10-22) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.28.1...v2.29.0) ##### Added - TypeScript config: add .cts and .mts extensions (\[[#2851](https://redirect.github.com/import-js/eslint-plugin-import/issues/2851)], thanks \[[@Zamiell](https://redirect.github.com/Zamiell)]) - \[`newline-after-import`]: new option `exactCount` and docs update (\[[#1933](https://redirect.github.com/import-js/eslint-plugin-import/issues/1933)], thanks \[[@anikethsaha](https://redirect.github.com/anikethsaha)] and \[[@reosarevok](https://redirect.github.com/reosarevok)]) - \[`newline-after-import`]: fix `exactCount` with `considerComments` false positive, when there is a leading comment (\[[#2884](https://redirect.github.com/import-js/eslint-plugin-import/issues/2884)], thanks \[[@kinland](https://redirect.github.com/kinland)]) ### [`v2.28.1`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2281---2023-08-18) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.28.0...v2.28.1) ##### Fixed - \[`order`]: revert breaking change to single nested group (\[[#2854](https://redirect.github.com/import-js/eslint-plugin-import/issues/2854)], thanks \[[@yndajas](https://redirect.github.com/yndajas)]) ##### Changed - \[Docs] remove duplicate fixable notices in docs (\[[#2850](https://redirect.github.com/import-js/eslint-plugin-import/issues/2850)], thanks \[[@bmish](https://redirect.github.com/bmish)]) ### [`v2.28.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2280---2023-07-27) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.5...v2.28.0) ##### Fixed - \[`no-duplicates`]: remove duplicate identifiers in duplicate imports (\[[#2577](https://redirect.github.com/import-js/eslint-plugin-import/issues/2577)], thanks \[[@joe-matsec](https://redirect.github.com/joe-matsec)]) - \[`consistent-type-specifier-style`]: fix accidental removal of comma in certain cases (\[[#2754](https://redirect.github.com/import-js/eslint-plugin-import/issues/2754)], thanks \[[@bradzacher](https://redirect.github.com/bradzacher)]) - \[Perf] `ExportMap`: Improve `ExportMap.for` performance on larger codebases (\[[#2756](https://redirect.github.com/import-js/eslint-plugin-import/issues/2756)], thanks \[[@leipert](https://redirect.github.com/leipert)]) - \[`no-extraneous-dependencies`]/TypeScript: do not error when importing inline type from dev dependencies (\[[#1820](https://redirect.github.com/import-js/eslint-plugin-import/issues/1820)], thanks \[[@andyogo](https://redirect.github.com/andyogo)]) - \[`newline-after-import`]/TypeScript: do not error when re-exporting a namespaced import (\[[#2832](https://redirect.github.com/import-js/eslint-plugin-import/issues/2832)], thanks \[[@laurens-dg](https://redirect.github.com/laurens-dg)]) - \[`order`]: partial fix for \[[#2687](https://redirect.github.com/import-js/eslint-plugin-import/issues/2687)] (thanks \[[@ljharb](https://redirect.github.com/ljharb)]) - \[`no-duplicates`]: Detect across type and regular imports (\[[#2835](https://redirect.github.com/import-js/eslint-plugin-import/issues/2835)], thanks \[[@benkrejci](https://redirect.github.com/benkrejci)]) - \[`extensions`]: handle `.` and `..` properly (\[[#2778](https://redirect.github.com/import-js/eslint-plugin-import/issues/2778)], thanks \[[@benasher44](https://redirect.github.com/benasher44)]) - \[`no-unused-modules`]: improve schema (thanks \[[@ljharb](https://redirect.github.com/ljharb)]) - \[`no-unused-modules`]: report error on binding instead of parent export (\[[#2842](https://redirect.github.com/import-js/eslint-plugin-import/issues/2842)], thanks \[[@Chamion](https://redirect.github.com/Chamion)]) ##### Changed - \[Docs] \[`no-duplicates`]: fix example schema (\[[#2684](https://redirect.github.com/import-js/eslint-plugin-import/issues/2684)], thanks \[[@simmo](https://redirect.github.com/simmo)]) - \[Docs] \[`group-exports`]: fix syntax highlighting (\[[#2699](https://redirect.github.com/import-js/eslint-plugin-import/issues/2699)], thanks \[[@devinrhode2](https://redirect.github.com/devinrhode2)]) - \[Docs] \[`extensions`]: reference node ESM behavior (\[[#2748](https://redirect.github.com/import-js/eslint-plugin-import/issues/2748)], thanks \[[@xM8WVqaG](https://redirect.github.com/xM8WVqaG)]) - \[Refactor] \[`exports-last`]: use `array.prototype.findlastindex` (thanks \[[@ljharb](https://redirect.github.com/ljharb)]) - \[Refactor] \[`no-anonymous-default-export`]: use `object.fromentries` (thanks \[[@ljharb](https://redirect.github.com/ljharb)]) - \[Refactor] \[`no-unused-modules`]: use `array.prototype.flatmap` (thanks \[[@ljharb](https://redirect.github.com/ljharb)]) ### [`v2.27.5`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2275---2023-01-16) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.4...v2.27.5) ##### Fixed - \[`order]`: Fix group ranks order when alphabetizing (\[[#2674](https://redirect.github.com/import-js/eslint-plugin-import/issues/2674)], thanks \[[@Pearce-Ropion](https://redirect.github.com/Pearce-Ropion)]) ### [`v2.27.4`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2274---2023-01-11) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.3...v2.27.4) ##### Fixed - `semver` should be a prod dep (\[[#2668](https://redirect.github.com/import-js/eslint-plugin-import/issues/2668)]) ### [`v2.27.3`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2273---2023-01-11) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.2...v2.27.3) ##### Fixed - \[`no-empty-named-blocks`]: rewrite rule to only check import declarations (\[[#2666](https://redirect.github.com/import-js/eslint-plugin-import/issues/2666)]) ### [`v2.27.2`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2272---2023-01-11) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.1...v2.27.2) ##### Fixed - \[`no-duplicates`]: do not unconditionally require `typescript` (\[[#2665](https://redirect.github.com/import-js/eslint-plugin-import/issues/2665)]) ### [`v2.27.1`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2271---2023-01-11) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.27.0...v2.27.1) ##### Fixed - `array.prototype.flatmap` should be a prod dep (\[[#2664](https://redirect.github.com/import-js/eslint-plugin-import/issues/2664)], thanks \[[@cristobal](https://redirect.github.com/cristobal)]) ### [`v2.27.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2270---2023-01-11) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.26.0...v2.27.0) ##### Added - \[`newline-after-import`]: add `considerComments` option (\[[#2399](https://redirect.github.com/import-js/eslint-plugin-import/issues/2399)], thanks \[[@pri1311](https://redirect.github.com/pri1311)]) - \[`no-cycle`]: add `allowUnsafeDynamicCyclicDependency` option (\[[#2387](https://redirect.github.com/import-js/eslint-plugin-import/issues/2387)], thanks \[[@GerkinDev](https://redirect.github.com/GerkinDev)]) - \[`no-restricted-paths`]: support arrays for `from` and `target` options (\[[#2466](https://redirect.github.com/import-js/eslint-plugin-import/issues/2466)], thanks \[[@AdriAt360](https://redirect.github.com/AdriAt360)]) - \[`no-anonymous-default-export`]: add `allowNew` option (\[[#2505](https://redirect.github.com/import-js/eslint-plugin-import/issues/2505)], thanks \[[@DamienCassou](https://redirect.github.com/DamienCassou)]) - \[`order`]: Add `distinctGroup` option (\[[#2395](https://redirect.github.com/import-js/eslint-plugin-import/issues/2395)], thanks \[[@hyperupcall](https://redirect.github.com/hyperupcall)]) - \[`no-extraneous-dependencies`]: Add `includeInternal` option (\[[#2541](https://redirect.github.com/import-js/eslint-plugin-import/issues/2541)], thanks \[[@bdwain](https://redirect.github.com/bdwain)]) - \[`no-extraneous-dependencies`]: Add `includeTypes` option (\[[#2543](https://redirect.github.com/import-js/eslint-plugin-import/issues/2543)], thanks \[[@bdwain](https://redirect.github.com/bdwain)]) - \[`order`]: new `alphabetize.orderImportKind` option to sort imports with same path based on their kind (`type`, `typeof`) (\[[#2544](https://redirect.github.com/import-js/eslint-plugin-import/issues/2544)], thanks \[[@stropho](https://redirect.github.com/stropho)]) - \[`consistent-type-specifier-style`]: add rule (\[[#2473](https://redirect.github.com/import-js/eslint-plugin-import/issues/2473)], thanks \[[@bradzacher](https://redirect.github.com/bradzacher)]) - Add \[`no-empty-named-blocks`] rule (\[[#2568](https://redirect.github.com/import-js/eslint-plugin-import/issues/2568)], thanks \[[@guilhermelimak](https://redirect.github.com/guilhermelimak)]) - \[`prefer-default-export`]: add "target" option (\[[#2602](https://redirect.github.com/import-js/eslint-plugin-import/issues/2602)], thanks \[[@azyzz228](https://redirect.github.com/azyzz228)]) - \[`no-absolute-path`]: add fixer (\[[#2613](https://redirect.github.com/import-js/eslint-plugin-import/issues/2613)], thanks \[[@adipascu](https://redirect.github.com/adipascu)]) - \[`no-duplicates`]: support inline type import with `inlineTypeImport` option (\[[#2475](https://redirect.github.com/import-js/eslint-plugin-import/issues/2475)], thanks \[[@snewcomer](https://redirect.github.com/snewcomer)]) ##### Fixed - \[`order`]: move nested imports closer to main import entry (\[[#2396](https://redirect.github.com/import-js/eslint-plugin-import/issues/2396)], thanks \[[@pri1311](https://redirect.github.com/pri1311)]) - \[`no-restricted-paths`]: fix an error message (\[[#2466](https://redirect.github.com/import-js/eslint-plugin-import/issues/2466)], thanks \[[@AdriAt360](https://redirect.github.com/AdriAt360)]) - \[`no-restricted-paths`]: use `Minimatch.match` instead of `minimatch` to comply with Windows Native paths (\[[#2466](https://redirect.github.com/import-js/eslint-plugin-import/issues/2466)], thanks \[[@AdriAt360](https://redirect.github.com/AdriAt360)]) - \[`order`]: require with member expression could not be fixed if alphabetize.order was used (\[[#2490](https://redirect.github.com/import-js/eslint-plugin-import/issues/2490)], thanks \[[@msvab](https://redirect.github.com/msvab)]) - \[`order`]: leave more space in rankings for consecutive path groups (\[[#2506](https://redirect.github.com/import-js/eslint-plugin-import/issues/2506)], thanks \[[@Pearce-Ropion](https://redirect.github.com/Pearce-Ropion)]) - \[`no-cycle`]: add ExportNamedDeclaration statements to dependencies (\[[#2511](https://redirect.github.com/import-js/eslint-plugin-import/issues/2511)], thanks \[[@BenoitZugmeyer](https://redirect.github.com/BenoitZugmeyer)]) - \[`dynamic-import-chunkname`]: prevent false report on a valid webpack magic comment (\[[#2330](https://redirect.github.com/import-js/eslint-plugin-import/issues/2330)], thanks \[[@mhmadhamster](https://redirect.github.com/mhmadhamster)]) - \[`export`]: do not error on TS export overloads (\[[#1590](https://redirect.github.com/import-js/eslint-plugin-import/issues/1590)], thanks \[[@ljharb](https://redirect.github.com/ljharb)]) - \[`no-unresolved`], \[`extensions`]: ignore type only exports (\[[#2436](https://redirect.github.com/import-js/eslint-plugin-import/issues/2436)], thanks \[[@Lukas-Kullmann](https://redirect.github.com/Lukas-Kullmann)]) - `ExportMap`: add missing param to function (\[[#2589](https://redirect.github.com/import-js/eslint-plugin-import/issues/2589)], thanks \[[@Fdawgs](https://redirect.github.com/Fdawgs)]) - \[`no-unused-modules`]: `checkPkgFieldObject` filters boolean fields from checks (\[[#2598](https://redirect.github.com/import-js/eslint-plugin-import/issues/2598)], thanks \[[@mpint](https://redirect.github.com/mpint)]) - \[`no-cycle`]: accept Flow `typeof` imports, just like `type` (\[[#2608](https://redirect.github.com/import-js/eslint-plugin-import/issues/2608)], thanks \[[@gnprice](https://redirect.github.com/gnprice)]) - \[`no-import-module-exports`]: avoid a false positive for import variables (\[[#2315](https://redirect.github.com/import-js/eslint-plugin-import/issues/2315)], thanks \[[@BarryThePenguin](https://redirect.github.com/BarryThePenguin)]) ##### Changed - \[Tests] \[`named`]: Run all TypeScript test (\[[#2427](https://redirect.github.com/import-js/eslint-plugin-import/issues/2427)], thanks \[[@ProdigySim](https://redirect.github.com/ProdigySim)]) - \[readme] note use of typescript in readme `import/extensions` section (\[[#2440](https://redirect.github.com/import-js/eslint-plugin-import/issues/2440)], thanks \[[@OutdatedVersion](https://redirect.github.com/OutdatedVersion)]) - \[Docs] \[`order`]: use correct default value (\[[#2392](https://redirect.github.com/import-js/eslint-plugin-import/issues/2392)], thanks \[[@hyperupcall](https://redirect.github.com/hyperupcall)]) - \[meta] replace git.io link in comments with the original URL (\[[#2444](https://redirect.github.com/import-js/eslint-plugin-import/issues/2444)], thanks \[[@liby](https://redirect.github.com/liby)]) - \[Docs] remove global install in readme (\[[#2412](https://redirect.github.com/import-js/eslint-plugin-import/issues/2412)], thanks \[[@aladdin-add](https://redirect.github.com/aladdin-add)]) - \[readme] clarify `eslint-import-resolver-typescript` usage (\[[#2503](https://redirect.github.com/import-js/eslint-plugin-import/issues/2503)], thanks \[[@JounQin](https://redirect.github.com/JounQin)]) - \[Refactor] \[`no-cycle`]: Add per-run caching of traversed paths (\[[#2419](https://redirect.github.com/import-js/eslint-plugin-import/issues/2419)], thanks \[[@nokel81](https://redirect.github.com/nokel81)]) - \[Performance] `ExportMap`: add caching after parsing for an ambiguous module (\[[#2531](https://redirect.github.com/import-js/eslint-plugin-import/issues/2531)], thanks \[[@stenin-nikita](https://redirect.github.com/stenin-nikita)]) - \[Docs] \[`no-useless-path-segments`]: fix paths (\[[#2424](https://redirect.github.com/import-js/eslint-plugin-import/issues/2424)], thanks \[[@s-h-a-d-o-w](https://redirect.github.com/s-h-a-d-o-w)]) - \[Tests] \[`no-cycle`]: add passing test cases (\[[#2438](https://redirect.github.com/import-js/eslint-plugin-import/issues/2438)], thanks \[[@georeith](https://redirect.github.com/georeith)]) - \[Refactor] \[`no-extraneous-dependencies`] improve performance using cache (\[[#2374](https://redirect.github.com/import-js/eslint-plugin-import/issues/2374)], thanks \[[@meowtec](https://redirect.github.com/meowtec)]) - \[meta] `CONTRIBUTING.md`: mention inactive PRs (\[[#2546](https://redirect.github.com/import-js/eslint-plugin-import/issues/2546)], thanks \[[@stropho](https://redirect.github.com/stropho)]) - \[readme] make json for setting groups multiline (\[[#2570](https://redirect.github.com/import-js/eslint-plugin-import/issues/2570)], thanks \[[@bertyhell](https://redirect.github.com/bertyhell)]) - \[Tests] \[`no-restricted-paths`]: Tests for `import type` statements (\[[#2459](https://redirect.github.com/import-js/eslint-plugin-import/issues/2459)], thanks \[[@golergka](https://redirect.github.com/golergka)]) - \[Tests] \[`no-restricted-paths`]: fix one failing `import type` test case, submitted by \[[@golergka](https://redirect.github.com/golergka)], thanks \[[@azyzz228](https://redirect.github.com/azyzz228)] - \[Docs] automate docs with eslint-doc-generator (\[[#2582](https://redirect.github.com/import-js/eslint-plugin-import/issues/2582)], thanks \[[@bmish](https://redirect.github.com/bmish)]) - \[readme] Increase clarity around typescript configuration (\[[#2588](https://redirect.github.com/import-js/eslint-plugin-import/issues/2588)], thanks \[[@Nfinished](https://redirect.github.com/Nfinished)]) - \[Docs] update `eslint-doc-generator` to v1.0.0 (\[[#2605](https://redirect.github.com/import-js/eslint-plugin-import/issues/2605)], thanks \[[@bmish](https://redirect.github.com/bmish)]) - \[Perf] \[`no-cycle`], \[`no-internal-modules`], \[`no-restricted-paths`]: use `anyOf` instead of `oneOf` (thanks \[[@ljharb](https://redirect.github.com/ljharb)], \[[@remcohaszing](https://redirect.github.com/remcohaszing)]) ### [`v2.26.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2260---2022-04-05) [Compare Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.25.4...v2.26.0) ##### Added - \[`no-named-default`], \[`no-default-export`], \[`prefer-default-export`], \[`no-named-export`], \[`export`], \[`named`], \[`namespace`], \[`no-unused-modules`]: support arbitrary module namespace names (\[[#2358](https://redirect.github.com/import-js/eslint-plugin-import/issues/2358)], thanks \[[@sosukesuzuki](https://redirect.github.com/sosukesuzuki)]) - \[`no-dynamic-require`]: support dynamic import with espree (\[[#2371](https://redirect.github.com/import-js/eslint-plugin-import/issues/2371)], thanks \[[@sosukesuzuki](https://redirect.github.com/sosukesuzuki)]) - \[`no-relative-packages`]: add fixer (\[[#2381](https://redirect.github.com/import-js/eslint-plugin-import/issues/2381)], thanks \[[@forivall](https://redirect.github.com/forivall)]) ##### Fixed - \[`default`]: `typescript-eslint-parser`: avoid a crash on exporting as namespace (thanks \[[@ljharb](https://redirect.github.com/ljharb)]) - \[`export`]/TypeScript: false positive for typescript namespace merging (\[[#1964](https://redirect.github.com/import-js/eslint-plugin-import/issues/1964)], thanks \[[@magarcia](https://redirect.github.com/magarcia)]) - \[`no-duplicates`]: ignore duplicate modules in different TypeScript module declarations (\[[#2378](https://redirect.github.com/import-js/eslint-plugin-import/issues/2378)], thanks \[[@remcohaszing](https://redirect.github.com/remcohaszing)]) - \[`no-unused-modules`]: avoid a crash when processing re-exports (\[[#2388](https://redirect.github.com/import-js/eslint-plugin-import/issues/2388)], thanks \[[@ljharb](https://redirect.github.com/ljharb)]) ##### Changed - \[Tests] \[`no-nodejs-modules`]: add tests for node protocol URL (\[[#2367](https://redirect.github.com/import-js/eslint-plugin-import/issues/2367)], thanks \[[@sosukesuzuki](https://redirect.github.com/sosukesuzuki)]) - \[Tests] \[`default`], \[`no-anonymous-default-export`], \[`no-mutable-exports`], \[`no-named-as-default-member`], \[`no-named-as-default`]: add tests for arbitrary module namespace names (\[[#2358](https://redirect.github.com/import-js/eslint-plugin-import/issues/2358)], thanks \[[@sosukesuzuki](https://redirect.github.com/sosukesuzuki)]) - \[Docs] \[`no-unresolved`]: Fix RegExp escaping in readme (\[[#2332](https://redirect.github.com/import-js/eslint-plugin-import/issues/2332)], thanks \[[@stephtr](https://redirect.github.com/stephtr)]) - \[Refactor] \[`namespace`]: try to improve performance (\[[#2340](https://redirect.github.com/import-js/eslint-plugin-import/issues/2340)], thanks \[[@ljharb](https://redirect.github.com/ljharb)]) - \[Docs] make rule doc titles consistent (\[[#2393](https://redirect.github.com/import-js/eslint-plugin-import/issues/2393)], thanks \[[@TheJaredWilcurt](https://redirect.github.com/TheJaredWilcurt)]) - \[Docs] \[`order`]: TS code examples should use TS code blocks (\[[#2411](https://redirect.github.com/import-js/eslint-plugin-import/issues/2411)], thanks \[[@MM25Zamanian](https://redirect.github.com/MM25Zamanian)]) - \[Docs] \[`no-unresolved`]: fix link (\[[#2417](https://redirect.github.com/import-js/eslint-plugin-import/issues/2417)], thanks \[[@kylemh](https://redirect.github.com/kylemh)])Configuration
📅 Schedule: Branch creation - "after 4pm on friday,before 9am on monday,every weekend" in timezone Europe/Paris, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
â™» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.