eslint-plugin-import-next 2.3.5 → 2.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +99 -78
- package/package.json +21 -5
- package/src/index.d.ts +192 -0
- package/src/index.js +13 -1
- package/src/oxlint.d.ts +20 -0
- package/src/oxlint.js +21 -0
- package/src/rules/consistent-type-specifier-style.js +5 -1
- package/src/rules/default.js +1 -0
- package/src/rules/dynamic-import-chunkname.js +4 -1
- package/src/rules/enforce-dependency-direction.js +2 -1
- package/src/rules/enforce-import-order.js +4 -2
- package/src/rules/enforce-team-boundaries.js +27 -17
- package/src/rules/export.js +3 -0
- package/src/rules/exports-last.js +3 -0
- package/src/rules/extensions.js +1 -0
- package/src/rules/first.js +2 -1
- package/src/rules/group-exports.js +3 -0
- package/src/rules/max-dependencies.js +2 -1
- package/src/rules/named.js +1 -1
- package/src/rules/namespace.js +1 -0
- package/src/rules/newline-after-import.js +1 -0
- package/src/rules/no-absolute-path.js +3 -0
- package/src/rules/no-amd.js +2 -1
- package/src/rules/no-anonymous-default-export.js +2 -0
- package/src/rules/no-barrel-file.js +2 -1
- package/src/rules/no-barrel-import.js +1 -1
- package/src/rules/no-commonjs.js +2 -1
- package/src/rules/no-cross-domain-imports.js +2 -1
- package/src/rules/no-cycle.d.ts +1 -1
- package/src/rules/no-cycle.js +187 -71
- package/src/rules/no-default-export.js +2 -1
- package/src/rules/no-deprecated.js +2 -1
- package/src/rules/no-duplicates.js +1 -0
- package/src/rules/no-dynamic-require.js +3 -0
- package/src/rules/no-empty-named-blocks.js +4 -1
- package/src/rules/no-extraneous-dependencies.js +4 -1
- package/src/rules/no-full-package-import.js +1 -0
- package/src/rules/no-import-module-exports.js +3 -1
- package/src/rules/no-internal-modules.js +1 -0
- package/src/rules/no-legacy-imports.js +1 -0
- package/src/rules/no-mutable-exports.js +2 -1
- package/src/rules/no-named-as-default-member.js +3 -0
- package/src/rules/no-named-as-default.js +3 -0
- package/src/rules/no-named-default.js +3 -0
- package/src/rules/no-named-export.js +2 -1
- package/src/rules/no-namespace.js +12 -6
- package/src/rules/no-nodejs-modules.js +3 -1
- package/src/rules/no-relative-packages.js +4 -1
- package/src/rules/no-relative-parent-imports.js +1 -0
- package/src/rules/no-restricted-paths.js +1 -0
- package/src/rules/no-self-import.js +2 -1
- package/src/rules/no-unassigned-import.js +1 -0
- package/src/rules/no-unresolved.js +3 -2
- package/src/rules/no-unused-modules.js +1 -0
- package/src/rules/no-useless-path-segments.js +3 -0
- package/src/rules/prefer-default-export.js +2 -1
- package/src/rules/prefer-direct-import.js +1 -0
- package/src/rules/prefer-modern-api.js +1 -0
- package/src/rules/prefer-node-protocol.js +2 -0
- package/src/rules/prefer-tree-shakeable-imports.js +1 -0
- package/src/rules/require-import-approval.js +1 -0
- package/src/rules/unambiguous.js +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
## [2.3.6] - 2026-05-03
|
|
2
|
+
|
|
3
|
+
## 2.3.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#141](https://github.com/ofri-peretz/eslint/pull/141) [`38ab670`](https://github.com/ofri-peretz/eslint/commit/38ab670a0221684f4fd3d5dc3c05ddec7458ca2b) Thanks [@ofri-peretz](https://github.com/ofri-peretz)! - fix: remove false `meta.fixable: 'code'` declarations from 21 rules that had no `fix()` function
|
|
8
|
+
|
|
9
|
+
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:
|
|
10
|
+
- `browser-security/no-clickjacking`
|
|
11
|
+
- `import-next/first`, `named`, `no-barrel-import`, `no-import-module-exports`, `no-namespace`
|
|
12
|
+
- `node-security/no-buffer-overread`, `no-unsafe-dynamic-require`, `no-zip-slip`
|
|
13
|
+
- `react-features/react-no-inline-functions`
|
|
14
|
+
- `reliability/no-jsdoc-terminator-in-example` (uses `suggest`, not auto-fix; corrected to `hasSuggestions: true` only)
|
|
15
|
+
- `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`
|
|
16
|
+
|
|
17
|
+
- [#186](https://github.com/ofri-peretz/eslint/pull/186) [`edf208d`](https://github.com/ofri-peretz/eslint/commit/edf208d67ac2357312c97d8964fcf6a462e407eb) Thanks [@ofri-peretz](https://github.com/ofri-peretz)! - Consolidation cleanup — no rule behavior change:
|
|
18
|
+
- **react-features**: the README rules table now lists the 8 `componentApi`
|
|
19
|
+
preset rules. The README generator (`sync-readme-rules.ts`) and the
|
|
20
|
+
`plugin-rule-source-drift` validator now recurse into nested
|
|
21
|
+
`docs/rules/<category>/` subfolders, so every documented rule is advertised
|
|
22
|
+
consistently (previously the nested componentApi docs were silently dropped,
|
|
23
|
+
which an earlier `readme` exception had papered over — that exception is now
|
|
24
|
+
removed in favour of the real fix).
|
|
25
|
+
- **node-security**: remove the orphaned `no-pii-in-logs` rule source — the rule
|
|
26
|
+
was migrated to `eslint-plugin-secure-coding` and is no longer exported here;
|
|
27
|
+
the dead source was still compiling into `dist`.
|
|
28
|
+
- **import-next**: restore the `no-cycle` unit test after [#180](https://github.com/ofri-peretz/eslint/issues/180)'s SCC refactor
|
|
29
|
+
(`computeSCCsFromFile` + `findShortestCyclePath` are now bridged in the mock).
|
|
30
|
+
|
|
31
|
+
Also fixes `scripts/ilb-plugin-scope-audit.ts` to stop mis-reading config-preset
|
|
32
|
+
keys (`'recommended-strict': {`) as rules.
|
|
33
|
+
|
|
34
|
+
- Updated dependencies [[`736a5fe`](https://github.com/ofri-peretz/eslint/commit/736a5fed47e673f6157ea900b29fe2a54e4bc7df)]:
|
|
35
|
+
- @interlace/eslint-devkit@1.4.1
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
|
|
39
|
+
- `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.
|
|
40
|
+
|
|
41
|
+
## 2.3.5 (2026-02-09)
|
|
42
|
+
|
|
43
|
+
This was a version bump only for eslint-plugin-import-next to align it with other projects, there were no code changes.
|
|
44
|
+
|
|
1
45
|
## [2.3.3] - 2026-02-08
|
|
2
46
|
|
|
3
47
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://eslint.interlace.tools" target="blank"><img src="https://eslint.interlace.tools/eslint-interlace-logo-light.svg" alt="ESLint Interlace Logo" width="120" /></a>
|
|
2
|
+
<a href="https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next" target="blank"><img src="https://eslint.interlace.tools/eslint-interlace-logo-light.svg" alt="ESLint Interlace Logo" width="120" /></a>
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -10,14 +10,15 @@
|
|
|
10
10
|
<a href="https://www.npmjs.com/package/eslint-plugin-import-next" target="_blank"><img src="https://img.shields.io/npm/v/eslint-plugin-import-next.svg" alt="NPM Version" /></a>
|
|
11
11
|
<a href="https://www.npmjs.com/package/eslint-plugin-import-next" target="_blank"><img src="https://img.shields.io/npm/dm/eslint-plugin-import-next.svg" alt="NPM Downloads" /></a>
|
|
12
12
|
<a href="https://opensource.org/licenses/MIT" target="_blank"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="Package License" /></a>
|
|
13
|
-
<a href="https://app.codecov.io/gh/ofri-peretz/eslint/components?components%5B0%5D=
|
|
13
|
+
<a href="https://app.codecov.io/gh/ofri-peretz/eslint/components?components%5B0%5D=import-next" target="_blank"><img src="https://codecov.io/gh/ofri-peretz/eslint/graph/badge.svg?component=import-next" alt="Codecov" /></a>
|
|
14
14
|
<a href="https://github.com/ofri-peretz/eslint" target="_blank"><img src="https://img.shields.io/badge/Since-Dec_2025-blue?logo=rocket&logoColor=white" alt="Since Dec 2025" /></a>
|
|
15
15
|
</p>
|
|
16
16
|
|
|
17
|
+
> ⭐ If this plugin caught a real bug for you, [**star the repo**](https://github.com/ofri-peretz/eslint) — it's the signal that keeps these rules maintained.
|
|
18
|
+
|
|
17
19
|
## Description
|
|
18
20
|
|
|
19
21
|
This plugin provides Next-generation import sorting, validation, and architectural boundaries.
|
|
20
|
-
By using this plugin, you can proactively identify and mitigate security risks across your entire codebase.
|
|
21
22
|
|
|
22
23
|
## Philosophy
|
|
23
24
|
|
|
@@ -25,24 +26,17 @@ By using this plugin, you can proactively identify and mitigate security risks a
|
|
|
25
26
|
|
|
26
27
|
## Getting Started
|
|
27
28
|
|
|
28
|
-
- To check out the [guide](https://eslint.interlace.tools/docs/quality/plugin-import-next), visit [eslint.interlace.tools](https://eslint.interlace.tools). 📚
|
|
29
|
-
- 要查看中文 [指南](https://eslint.interlace.tools/docs/quality/plugin-import-next), 请访问 [eslint.interlace.tools](https://eslint.interlace.tools). 📚
|
|
30
|
-
- [가이드](https://eslint.interlace.tools/docs/quality/plugin-import-next) 문서는 [eslint.interlace.tools](https://eslint.interlace.tools)에서 확인하실 수 있습니다. 📚
|
|
31
|
-
- [ガイド](https://eslint.interlace.tools/docs/quality/plugin-import-next)は [eslint.interlace.tools](https://eslint.interlace.tools)でご確認ください。 📚
|
|
32
|
-
- Para ver la [guía](https://eslint.interlace.tools/docs/quality/plugin-import-next), visita [eslint.interlace.tools](https://eslint.interlace.tools). 📚
|
|
33
|
-
- للاطلاع على [الدليل](https://eslint.interlace.tools/docs/quality/plugin-import-next)، قم بزيارة [eslint.interlace.tools](https://eslint.interlace.tools). 📚
|
|
29
|
+
- To check out the [guide](https://eslint.interlace.tools/docs/quality/plugin-import-next?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next), visit [eslint.interlace.tools](https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next). 📚
|
|
30
|
+
- 要查看中文 [指南](https://eslint.interlace.tools/docs/quality/plugin-import-next?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next), 请访问 [eslint.interlace.tools](https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next). 📚
|
|
31
|
+
- [가이드](https://eslint.interlace.tools/docs/quality/plugin-import-next?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) 문서는 [eslint.interlace.tools](https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next)에서 확인하실 수 있습니다. 📚
|
|
32
|
+
- [ガイド](https://eslint.interlace.tools/docs/quality/plugin-import-next?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next)は [eslint.interlace.tools](https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next)でご確認ください。 📚
|
|
33
|
+
- Para ver la [guía](https://eslint.interlace.tools/docs/quality/plugin-import-next?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next), visita [eslint.interlace.tools](https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next). 📚
|
|
34
|
+
- للاطلاع على [الدليل](https://eslint.interlace.tools/docs/quality/plugin-import-next?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next)، قم بزيارة [eslint.interlace.tools](https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next). 📚
|
|
34
35
|
|
|
35
36
|
```bash
|
|
36
37
|
npm install eslint-plugin-import-next --save-dev
|
|
37
38
|
```
|
|
38
39
|
|
|
39
|
-
## 🔄 Compatibility Matrix
|
|
40
|
-
| Rule | Original Plugin | Status | Notes |
|
|
41
|
-
| :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | :----------------------- |
|
|
42
|
-
| All Rules | [`eslint-plugin-import`](https://www.npmjs.com/package/eslint-plugin-import) [](https://www.npmjs.com/package/eslint-plugin-import) | ✅ Supported | Full drop-in replacement |
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
40
|
## ⚙️ Configuration Presets
|
|
47
41
|
| Preset | Description |
|
|
48
42
|
| :------------------ | :----------------------------------------------- |
|
|
@@ -58,6 +52,19 @@ npm install eslint-plugin-import-next --save-dev
|
|
|
58
52
|
| `errors` | Matches eslint-plugin-import errors preset |
|
|
59
53
|
| `warnings` | Matches eslint-plugin-import warnings preset |
|
|
60
54
|
|
|
55
|
+
## 🔄 Parity with `eslint-plugin-import`
|
|
56
|
+
| Rule | Original Plugin | Status | Notes |
|
|
57
|
+
| :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | :----------------------- |
|
|
58
|
+
| All Rules | [`eslint-plugin-import`](https://www.npmjs.com/package/eslint-plugin-import) [](https://www.npmjs.com/package/eslint-plugin-import) | ✅ Supported | Full drop-in replacement |
|
|
59
|
+
|
|
60
|
+
## 📦 Compatibility
|
|
61
|
+
| Package | Version |
|
|
62
|
+
| :--- | :--- |
|
|
63
|
+
| ESLint | `^8.0.0 \|\| ^9.0.0 \|\| ^10.0.0` |
|
|
64
|
+
| Node.js | `>=18.0.0` |
|
|
65
|
+
|
|
66
|
+
See the [ESLint Version Support Policy](../../docs/ESLINT_VERSION_SUPPORT.md) for the full matrix.
|
|
67
|
+
|
|
61
68
|
## Rules
|
|
62
69
|
|
|
63
70
|
**Legend**
|
|
@@ -65,69 +72,74 @@ npm install eslint-plugin-import-next --save-dev
|
|
|
65
72
|
| Icon | Description |
|
|
66
73
|
| :---: | :--- |
|
|
67
74
|
| 💼 | **Recommended**: Included in the recommended preset. |
|
|
68
|
-
| ⚠️ | **Warns**: Set
|
|
75
|
+
| ⚠️ | **Warns**: Set to warn in recommended preset. |
|
|
69
76
|
| 🔧 | **Auto-fixable**: Automatically fixable by the `--fix` CLI option. |
|
|
70
77
|
| 💡 | **Suggestions**: Providing code suggestions in IDE. |
|
|
71
78
|
| 🚫 | **Deprecated**: This rule is deprecated. |
|
|
72
|
-
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
| [
|
|
80
|
-
| [
|
|
81
|
-
| [
|
|
82
|
-
| [
|
|
83
|
-
| [
|
|
84
|
-
| [
|
|
85
|
-
| [
|
|
86
|
-
| [
|
|
87
|
-
| [
|
|
88
|
-
| [
|
|
89
|
-
| [
|
|
90
|
-
| [
|
|
91
|
-
| [
|
|
92
|
-
| [
|
|
93
|
-
| [
|
|
94
|
-
| [no-
|
|
95
|
-
| [no-
|
|
96
|
-
| [no-
|
|
97
|
-
| [no-
|
|
98
|
-
| [no-
|
|
99
|
-
| [no-
|
|
100
|
-
| [no-
|
|
101
|
-
| [no-
|
|
102
|
-
| [no-
|
|
103
|
-
| [no-
|
|
104
|
-
| [no-
|
|
105
|
-
| [no-
|
|
106
|
-
| [no-
|
|
107
|
-
| [no-
|
|
108
|
-
| [no-
|
|
109
|
-
| [no-
|
|
110
|
-
| [no-
|
|
111
|
-
| [no-
|
|
112
|
-
| [no-
|
|
113
|
-
| [no-
|
|
114
|
-
| [no-
|
|
115
|
-
| [no-
|
|
116
|
-
| [no-
|
|
117
|
-
| [no-
|
|
118
|
-
| [no-
|
|
119
|
-
| [no-
|
|
120
|
-
| [no-
|
|
121
|
-
| [no-
|
|
122
|
-
| [no-
|
|
123
|
-
| [
|
|
124
|
-
| [
|
|
125
|
-
| [
|
|
126
|
-
| [
|
|
127
|
-
| [
|
|
128
|
-
| [
|
|
129
|
-
| [
|
|
130
|
-
|
|
79
|
+
| 🟢 | **Type-unaware**: AST-only, runs in oxlint JS-plugin tier. |
|
|
80
|
+
| 🟡 | **Type-aware (refining)**: pure-AST primary path; types refine precision. |
|
|
81
|
+
| 🟠 | **Type-aware (graceful)**: requires TS program; silent without it. |
|
|
82
|
+
|
|
83
|
+
<!-- AUTO-GENERATED:RULES_TABLE:START - Do not edit manually -->
|
|
84
|
+
| Rule | CWE | OWASP | CVSS | Description | 🧠 | 💼 | ⚠️ | 🔧 | 💡 | 🚫 |
|
|
85
|
+
| :--- | :---: | :---: | :---: | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
|
|
86
|
+
| [consistent-type-specifier-style](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/consistent-type-specifier-style?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
87
|
+
| [default](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/default?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟡 | 💼 | | | | |
|
|
88
|
+
| [dynamic-import-chunkname](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/dynamic-import-chunkname?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
89
|
+
| [enforce-dependency-direction](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/enforce-dependency-direction?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
90
|
+
| [enforce-import-order](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/enforce-import-order?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
91
|
+
| [enforce-team-boundaries](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/enforce-team-boundaries?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
92
|
+
| [export](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/export?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | 💼 | | | | |
|
|
93
|
+
| [exports-last](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/exports-last?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
94
|
+
| [extensions](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/extensions?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
95
|
+
| [first](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/first?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | ⚠️ | | | |
|
|
96
|
+
| [group-exports](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/group-exports?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
97
|
+
| [max-dependencies](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/max-dependencies?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
98
|
+
| [named](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/named?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟡 | 💼 | | | | |
|
|
99
|
+
| [namespace](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/namespace?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟡 | | ⚠️ | | | |
|
|
100
|
+
| [newline-after-import](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/newline-after-import?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | ⚠️ | | | |
|
|
101
|
+
| [no-absolute-path](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-absolute-path?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
102
|
+
| [no-amd](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-amd?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | ⚠️ | | | |
|
|
103
|
+
| [no-anonymous-default-export](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-anonymous-default-export?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
104
|
+
| [no-barrel-file](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-barrel-file?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
105
|
+
| [no-barrel-import](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-barrel-import?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
106
|
+
| [no-commonjs](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-commonjs?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
107
|
+
| [no-cross-domain-imports](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-cross-domain-imports?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
108
|
+
| [no-cycle](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-cycle?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | A05:2021 | | | 🟢 | 💼 | | | | |
|
|
109
|
+
| [no-default-export](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-default-export?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
110
|
+
| [no-deprecated](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-deprecated?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | A09:2021 | | | 🟢 | | | | | |
|
|
111
|
+
| [no-duplicates](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-duplicates?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | 💼 | | | | |
|
|
112
|
+
| [no-dynamic-require](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-dynamic-require?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
113
|
+
| [no-empty-named-blocks](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-empty-named-blocks?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | ⚠️ | | | |
|
|
114
|
+
| [no-extraneous-dependencies](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-extraneous-dependencies?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | ⚠️ | | | |
|
|
115
|
+
| [no-full-package-import](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-full-package-import?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
116
|
+
| [no-import-module-exports](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-import-module-exports?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
117
|
+
| [no-internal-modules](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-internal-modules?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
118
|
+
| [no-legacy-imports](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-legacy-imports?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
119
|
+
| [no-mutable-exports](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-mutable-exports?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
120
|
+
| [no-named-as-default](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-named-as-default?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | ⚠️ | | | |
|
|
121
|
+
| [no-named-as-default-member](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-named-as-default-member?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | ⚠️ | | | |
|
|
122
|
+
| [no-named-default](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-named-default?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
123
|
+
| [no-named-export](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-named-export?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
124
|
+
| [no-namespace](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-namespace?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
125
|
+
| [no-nodejs-modules](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-nodejs-modules?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
126
|
+
| [no-relative-packages](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-relative-packages?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
127
|
+
| [no-relative-parent-imports](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-relative-parent-imports?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
128
|
+
| [no-restricted-paths](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-restricted-paths?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
129
|
+
| [no-self-import](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-self-import?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | 💼 | | | | |
|
|
130
|
+
| [no-unassigned-import](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-unassigned-import?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
131
|
+
| [no-unresolved](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-unresolved?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | A03:2021 | | | 🟢 | 💼 | | | | |
|
|
132
|
+
| [no-unused-modules](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-unused-modules?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
133
|
+
| [no-useless-path-segments](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/no-useless-path-segments?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
134
|
+
| [order](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/order?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | ⚠️ | | | |
|
|
135
|
+
| [prefer-default-export](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/prefer-default-export?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
136
|
+
| [prefer-direct-import](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/prefer-direct-import?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
137
|
+
| [prefer-modern-api](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/prefer-modern-api?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
138
|
+
| [prefer-node-protocol](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/prefer-node-protocol?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
139
|
+
| [prefer-tree-shakeable-imports](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/prefer-tree-shakeable-imports?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
140
|
+
| [require-import-approval](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/require-import-approval?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
141
|
+
| [unambiguous](https://eslint.interlace.tools/docs/quality/plugin-import-next/rules/unambiguous?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next) | | | | | 🟢 | | | | | |
|
|
142
|
+
<!-- AUTO-GENERATED:RULES_TABLE:END -->
|
|
131
143
|
## 🔗 Related ESLint Plugins
|
|
132
144
|
|
|
133
145
|
Part of the **Interlace ESLint Ecosystem** — AI-native security plugins with LLM-optimized error messages:
|
|
@@ -136,7 +148,7 @@ Part of the **Interlace ESLint Ecosystem** — AI-native security plugins with L
|
|
|
136
148
|
| :--- | :---: | :--- |
|
|
137
149
|
| [`eslint-plugin-secure-coding`](https://www.npmjs.com/package/eslint-plugin-secure-coding) | [](https://www.npmjs.com/package/eslint-plugin-secure-coding) | General security rules & OWASP guidelines. |
|
|
138
150
|
| [`eslint-plugin-pg`](https://www.npmjs.com/package/eslint-plugin-pg) | [](https://www.npmjs.com/package/eslint-plugin-pg) | PostgreSQL security & best practices. |
|
|
139
|
-
| [`eslint-plugin-
|
|
151
|
+
| [`eslint-plugin-node-security`](https://www.npmjs.com/package/eslint-plugin-node-security) | [](https://www.npmjs.com/package/eslint-plugin-node-security) | Node.js core-module security (fs, child_process, vm, crypto, Buffer). |
|
|
140
152
|
| [`eslint-plugin-jwt`](https://www.npmjs.com/package/eslint-plugin-jwt) | [](https://www.npmjs.com/package/eslint-plugin-jwt) | JWT security & best practices. |
|
|
141
153
|
| [`eslint-plugin-browser-security`](https://www.npmjs.com/package/eslint-plugin-browser-security) | [](https://www.npmjs.com/package/eslint-plugin-browser-security) | Browser-specific security & XSS prevention. |
|
|
142
154
|
| [`eslint-plugin-express-security`](https://www.npmjs.com/package/eslint-plugin-express-security) | [](https://www.npmjs.com/package/eslint-plugin-express-security) | Express.js security hardening rules. |
|
|
@@ -146,10 +158,19 @@ Part of the **Interlace ESLint Ecosystem** — AI-native security plugins with L
|
|
|
146
158
|
| [`eslint-plugin-vercel-ai-security`](https://www.npmjs.com/package/eslint-plugin-vercel-ai-security) | [](https://www.npmjs.com/package/eslint-plugin-vercel-ai-security) | Vercel AI SDK security hardening. |
|
|
147
159
|
| [`eslint-plugin-import-next`](https://www.npmjs.com/package/eslint-plugin-import-next) | [](https://www.npmjs.com/package/eslint-plugin-import-next) | Next-gen import sorting & architecture. |
|
|
148
160
|
|
|
161
|
+
<!-- INTERLACE:STAR_CTA:START -->
|
|
162
|
+
## ⭐ Support & follow
|
|
163
|
+
|
|
164
|
+
If this plugin caught a real bug for you, **[star the repo](https://github.com/ofri-peretz/eslint)** — stars are the signal that keeps the Interlace ESLint ecosystem maintained — and **[follow the writeups on Dev.to](https://dev.to/ofri-peretz)** for the benchmarks and security research behind these rules.
|
|
165
|
+
|
|
166
|
+
[](https://github.com/ofri-peretz/eslint)
|
|
167
|
+
|
|
168
|
+
<!-- INTERLACE:STAR_CTA:END -->
|
|
169
|
+
|
|
149
170
|
## 📄 License
|
|
150
171
|
|
|
151
172
|
MIT © [Ofri Peretz](https://github.com/ofri-peretz)
|
|
152
173
|
|
|
153
174
|
<p align="center">
|
|
154
|
-
<a href="https://eslint.interlace.tools/docs/quality/plugin-import-next"><img src="https://eslint.interlace.tools/images/og-import-next.png" alt="ESLint Interlace Plugin" width="100%" /></a>
|
|
175
|
+
<a href="https://eslint.interlace.tools/docs/quality/plugin-import-next?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-import-next"><img src="https://eslint.interlace.tools/images/og-import-next.png" alt="ESLint Interlace Plugin" width="100%" /></a>
|
|
155
176
|
</p>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-import-next",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.7",
|
|
4
4
|
"description": "Drop-in replacement for eslint-plugin-import. 100x faster no-cycle detection, AI-optimized fixes, zero config migration.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -13,11 +13,15 @@
|
|
|
13
13
|
"./types": {
|
|
14
14
|
"types": "./src/types/index.d.ts",
|
|
15
15
|
"default": "./src/types/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./oxlint": {
|
|
18
|
+
"types": "./src/oxlint.d.ts",
|
|
19
|
+
"default": "./src/oxlint.js"
|
|
16
20
|
}
|
|
17
21
|
},
|
|
18
22
|
"author": "Ofri Peretz <ofriperetzdev@gmail.com>",
|
|
19
23
|
"license": "MIT",
|
|
20
|
-
"homepage": "https://
|
|
24
|
+
"homepage": "https://eslint.interlace.tools/docs/quality/plugin-import-next?utm_source=npm&utm_medium=referral&utm_campaign=eslint-plugin-import-next",
|
|
21
25
|
"repository": {
|
|
22
26
|
"type": "git",
|
|
23
27
|
"url": "https://github.com/ofri-peretz/eslint",
|
|
@@ -64,13 +68,25 @@
|
|
|
64
68
|
"engines": {
|
|
65
69
|
"node": ">=18.0.0"
|
|
66
70
|
},
|
|
67
|
-
"peerDependencies": {
|
|
71
|
+
"peerDependencies": {
|
|
72
|
+
"eslint": "^8.0.0 || ^9.0.0 || ^10.0.0"
|
|
73
|
+
},
|
|
68
74
|
"dependencies": {
|
|
69
75
|
"tslib": "^2.3.0",
|
|
70
|
-
"@interlace/eslint-devkit": "^1.
|
|
76
|
+
"@interlace/eslint-devkit": "^1.4.1"
|
|
71
77
|
},
|
|
72
78
|
"devDependencies": {
|
|
73
79
|
"@typescript-eslint/parser": "^8.46.2",
|
|
74
80
|
"@typescript-eslint/rule-tester": "^8.46.2"
|
|
81
|
+
},
|
|
82
|
+
"scripts": {
|
|
83
|
+
"build": "tsx ../../scripts/build-package.ts",
|
|
84
|
+
"test": "vitest run",
|
|
85
|
+
"test:coverage": "vitest run --coverage",
|
|
86
|
+
"typecheck": "tsc -p tsconfig.lib.json --noEmit"
|
|
87
|
+
},
|
|
88
|
+
"funding": {
|
|
89
|
+
"type": "github",
|
|
90
|
+
"url": "https://github.com/ofri-peretz/eslint"
|
|
75
91
|
}
|
|
76
|
-
}
|
|
92
|
+
}
|
package/src/index.d.ts
CHANGED
|
@@ -379,6 +379,198 @@ export declare const plugin: {
|
|
|
379
379
|
* Preset configurations for common use cases
|
|
380
380
|
*/
|
|
381
381
|
export declare const configs: {
|
|
382
|
+
/**
|
|
383
|
+
* Flagship preset — exactly the rule from this plugin that appears in the
|
|
384
|
+
* ecosystem-wide flagship list (`.agent/flagship-rules.md`). Use this when
|
|
385
|
+
* you want the highest-signal subset shippable in CI gates without the
|
|
386
|
+
* noise of `recommended`.
|
|
387
|
+
*/
|
|
388
|
+
flagship: {
|
|
389
|
+
plugins: {
|
|
390
|
+
'import-next': {
|
|
391
|
+
meta: {
|
|
392
|
+
name: string;
|
|
393
|
+
version: string;
|
|
394
|
+
};
|
|
395
|
+
rules: {
|
|
396
|
+
'no-duplicates': TSESLint.RuleModule<"noDuplicates", import("./rules/no-duplicates").RuleOptions, unknown, TSESLint.RuleListener> & {
|
|
397
|
+
name: string;
|
|
398
|
+
};
|
|
399
|
+
named: TSESLint.RuleModule<"named", import("./rules/named").RuleOptions, unknown, TSESLint.RuleListener> & {
|
|
400
|
+
name: string;
|
|
401
|
+
};
|
|
402
|
+
default: TSESLint.RuleModule<"noDefaultExport", [], unknown, TSESLint.RuleListener> & {
|
|
403
|
+
name: string;
|
|
404
|
+
};
|
|
405
|
+
namespace: TSESLint.RuleModule<"namespace", import("./rules/namespace").RuleOptions, unknown, TSESLint.RuleListener> & {
|
|
406
|
+
name: string;
|
|
407
|
+
};
|
|
408
|
+
extensions: TSESLint.RuleModule<"missingExtension" | "unexpectedExtension", [{
|
|
409
|
+
pattern?: Record<string, "always" | "never">;
|
|
410
|
+
default?: "always" | "never";
|
|
411
|
+
}], unknown, TSESLint.RuleListener> & {
|
|
412
|
+
name: string;
|
|
413
|
+
};
|
|
414
|
+
'no-self-import': TSESLint.RuleModule<"selfImport", [(import("./rules/no-self-import").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
415
|
+
name: string;
|
|
416
|
+
};
|
|
417
|
+
'no-unresolved': TSESLint.RuleModule<"unresolvedImport" | "moduleNotFound" | "invalidExtension" | "addIgnoreComment", [(import("./rules/no-unresolved").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
418
|
+
name: string;
|
|
419
|
+
};
|
|
420
|
+
'no-absolute-path': TSESLint.RuleModule<"absolutePath", [(import("./rules/no-absolute-path").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
421
|
+
name: string;
|
|
422
|
+
};
|
|
423
|
+
'no-dynamic-require': TSESLint.RuleModule<"dynamicRequire" | "dynamicImport", [(import("./rules/no-dynamic-require").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
424
|
+
name: string;
|
|
425
|
+
};
|
|
426
|
+
'no-relative-packages': TSESLint.RuleModule<"relativePackage", [(import("./rules/no-relative-packages").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
427
|
+
name: string;
|
|
428
|
+
};
|
|
429
|
+
'no-useless-path-segments': TSESLint.RuleModule<"uselessPathSegments", [(import("./rules/no-useless-path-segments").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
430
|
+
name: string;
|
|
431
|
+
};
|
|
432
|
+
'no-amd': TSESLint.RuleModule<"preferES6", [(import("./rules/no-amd").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
433
|
+
name: string;
|
|
434
|
+
};
|
|
435
|
+
'no-commonjs': TSESLint.RuleModule<"preferES6" | "commonjsRequire" | "commonjsExport" | "commonjsModule", [(import("./rules/no-commonjs").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
436
|
+
name: string;
|
|
437
|
+
};
|
|
438
|
+
'no-nodejs-modules': TSESLint.RuleModule<"nodejsBuiltinImport" | "nodejsBuiltinRequire" | "nodejsBuiltinDynamic", [(import("./rules/no-nodejs-modules").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
439
|
+
name: string;
|
|
440
|
+
};
|
|
441
|
+
'no-import-module-exports': TSESLint.RuleModule<"importModuleExports", [(import("./rules/no-import-module-exports").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
442
|
+
name: string;
|
|
443
|
+
};
|
|
444
|
+
unambiguous: TSESLint.RuleModule<"ambiguous", [], unknown, TSESLint.RuleListener> & {
|
|
445
|
+
name: string;
|
|
446
|
+
};
|
|
447
|
+
'no-cycle': TSESLint.RuleModule<"moduleSplit" | "directImport" | "extractShared" | "dependencyInjection", import("./rules/no-cycle").RuleOptions, unknown, TSESLint.RuleListener> & {
|
|
448
|
+
name: string;
|
|
449
|
+
};
|
|
450
|
+
'no-internal-modules': TSESLint.RuleModule<"internalModuleImport" | "suggestPublicApi" | "suggestBarrelExport", [(import("./rules/no-internal-modules").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
451
|
+
name: string;
|
|
452
|
+
};
|
|
453
|
+
'no-cross-domain-imports': TSESLint.RuleModule<"crossDomainImport" | "useSharedModule" | "useEvents" | "useApplicationService", [(import("./rules/no-cross-domain-imports").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
454
|
+
name: string;
|
|
455
|
+
};
|
|
456
|
+
'enforce-dependency-direction': TSESLint.RuleModule<"dependencyDirectionViolation" | "useDependencyInversion" | "refactorDependency", [(import("./rules/enforce-dependency-direction").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
457
|
+
name: string;
|
|
458
|
+
};
|
|
459
|
+
'no-restricted-paths': TSESLint.RuleModule<"restrictedPath" | "pathViolation" | "zoneViolation", [(import("./rules/no-restricted-paths").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
460
|
+
name: string;
|
|
461
|
+
};
|
|
462
|
+
'no-relative-parent-imports': TSESLint.RuleModule<"relativeParentImport" | "preferAbsoluteImport" | "suggestAlias", [(import("./rules/no-relative-parent-imports").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
463
|
+
name: string;
|
|
464
|
+
};
|
|
465
|
+
export: TSESLint.RuleModule<"duplicateExport" | "duplicateDefault", [], unknown, TSESLint.RuleListener> & {
|
|
466
|
+
name: string;
|
|
467
|
+
};
|
|
468
|
+
'no-default-export': TSESLint.RuleModule<"defaultExport" | "preferNamedExport" | "defaultExportRefactor", [(import("./rules/no-default-export").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
469
|
+
name: string;
|
|
470
|
+
};
|
|
471
|
+
'no-named-export': TSESLint.RuleModule<"namedExport" | "suggestDefault", [(import("./rules/no-named-export").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
472
|
+
name: string;
|
|
473
|
+
};
|
|
474
|
+
'prefer-default-export': TSESLint.RuleModule<"preferDefaultExport" | "singleNamedExport" | "multipleNamedToDefault", [(import("./rules/prefer-default-export").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
475
|
+
name: string;
|
|
476
|
+
};
|
|
477
|
+
'no-anonymous-default-export': TSESLint.RuleModule<"anonymousDefaultExport" | "suggestNamedExport" | "arrowFunctionExport" | "useNamedExport", [(import("./rules/no-anonymous-default-export").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
478
|
+
name: string;
|
|
479
|
+
};
|
|
480
|
+
'no-mutable-exports': TSESLint.RuleModule<"mutableExport" | "varExport" | "letExport", [(import("./rules/no-mutable-exports").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
481
|
+
name: string;
|
|
482
|
+
};
|
|
483
|
+
'no-deprecated': TSESLint.RuleModule<"deprecatedImport" | "deprecatedExport" | "deprecatedUsage", [(import("./rules/no-deprecated").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
484
|
+
name: string;
|
|
485
|
+
};
|
|
486
|
+
'exports-last': TSESLint.RuleModule<"exportNotLast", [], unknown, TSESLint.RuleListener> & {
|
|
487
|
+
name: string;
|
|
488
|
+
};
|
|
489
|
+
'group-exports': TSESLint.RuleModule<"groupExports", [], unknown, TSESLint.RuleListener> & {
|
|
490
|
+
name: string;
|
|
491
|
+
};
|
|
492
|
+
'enforce-import-order': TSESLint.RuleModule<"importOrder" | "alphabeticalOrder" | "importsNotContiguous", [(import("./rules/enforce-import-order").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
493
|
+
name: string;
|
|
494
|
+
};
|
|
495
|
+
order: TSESLint.RuleModule<"importOrder" | "alphabeticalOrder" | "importsNotContiguous", [(import("./rules/enforce-import-order").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
496
|
+
name: string;
|
|
497
|
+
};
|
|
498
|
+
'no-unassigned-import': TSESLint.RuleModule<"unassignedImport" | "sideEffectOnly" | "missingAssignment", [(import("./rules/no-unassigned-import").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
499
|
+
name: string;
|
|
500
|
+
};
|
|
501
|
+
first: TSESLint.RuleModule<"first", import("./rules/first").RuleOptions, unknown, TSESLint.RuleListener> & {
|
|
502
|
+
name: string;
|
|
503
|
+
};
|
|
504
|
+
'newline-after-import': TSESLint.RuleModule<"newlineAfterImport", import("./rules/newline-after-import").RuleOptions, unknown, TSESLint.RuleListener> & {
|
|
505
|
+
name: string;
|
|
506
|
+
};
|
|
507
|
+
'no-empty-named-blocks': TSESLint.RuleModule<"emptyNamedBlock" | "suggestRemove", [], unknown, TSESLint.RuleListener> & {
|
|
508
|
+
name: string;
|
|
509
|
+
};
|
|
510
|
+
'no-named-as-default': TSESLint.RuleModule<"namedAsDefault", [], unknown, TSESLint.RuleListener> & {
|
|
511
|
+
name: string;
|
|
512
|
+
};
|
|
513
|
+
'no-named-as-default-member': TSESLint.RuleModule<"namedAsDefaultMember", [], unknown, TSESLint.RuleListener> & {
|
|
514
|
+
name: string;
|
|
515
|
+
};
|
|
516
|
+
'no-named-default': TSESLint.RuleModule<"namedDefault", [], unknown, TSESLint.RuleListener> & {
|
|
517
|
+
name: string;
|
|
518
|
+
};
|
|
519
|
+
'no-namespace': TSESLint.RuleModule<"noNamespace", [(import("./rules/no-namespace").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
520
|
+
name: string;
|
|
521
|
+
};
|
|
522
|
+
'consistent-type-specifier-style': TSESLint.RuleModule<"preferInline" | "preferTopLevel", [(("prefer-inline" | "prefer-top-level") | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
523
|
+
name: string;
|
|
524
|
+
};
|
|
525
|
+
'dynamic-import-chunkname': TSESLint.RuleModule<"missingChunkName" | "invalidChunkName" | "suggestChunkName", [(import("./rules/dynamic-import-chunkname").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
526
|
+
name: string;
|
|
527
|
+
};
|
|
528
|
+
'no-extraneous-dependencies': TSESLint.RuleModule<"extraneousDependency" | "missingDependency" | "devDependencyInProduction" | "addToDependencies" | "addToDevDependencies" | "moveToDependencies", [(import("./rules/no-extraneous-dependencies").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
529
|
+
name: string;
|
|
530
|
+
};
|
|
531
|
+
'no-unused-modules': TSESLint.RuleModule<"missingExports", [(import("./rules/no-unused-modules").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
532
|
+
name: string;
|
|
533
|
+
};
|
|
534
|
+
'max-dependencies': TSESLint.RuleModule<"maxDependencies" | "suggestRefactor" | "dependencyAnalysis", [(import("./rules/max-dependencies").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
535
|
+
name: string;
|
|
536
|
+
};
|
|
537
|
+
'prefer-node-protocol': TSESLint.RuleModule<"preferNodeProtocol", [(import("./rules/prefer-node-protocol").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
538
|
+
name: string;
|
|
539
|
+
};
|
|
540
|
+
'no-barrel-file': TSESLint.RuleModule<"barrelFileDetected" | "considerDirectExports", [(import("./rules/no-barrel-file").NoBarrelFileOptions | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
541
|
+
name: string;
|
|
542
|
+
};
|
|
543
|
+
'no-barrel-import': TSESLint.RuleModule<"barrelImportDetected", [(import("./rules/no-barrel-import").NoBarrelImportOptions | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
544
|
+
name: string;
|
|
545
|
+
};
|
|
546
|
+
'prefer-tree-shakeable-imports': TSESLint.RuleModule<"namespaceImport" | "defaultImportFromLargePackage", [(import("./rules/prefer-tree-shakeable-imports").PreferTreeShakeableOptions | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
547
|
+
name: string;
|
|
548
|
+
};
|
|
549
|
+
'prefer-direct-import': TSESLint.RuleModule<"preferDirectImport", [(import("./rules/prefer-direct-import").PreferDirectImportOptions | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
550
|
+
name: string;
|
|
551
|
+
};
|
|
552
|
+
'no-full-package-import': TSESLint.RuleModule<"fullPackageImport", [(import("./rules/no-full-package-import").NoFullPackageImportOptions | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
553
|
+
name: string;
|
|
554
|
+
};
|
|
555
|
+
'enforce-team-boundaries': TSESLint.RuleModule<"unauthorizedTeamImport", [import("./rules/enforce-team-boundaries").EnforceTeamBoundariesOptions], unknown, TSESLint.RuleListener> & {
|
|
556
|
+
name: string;
|
|
557
|
+
};
|
|
558
|
+
'no-legacy-imports': TSESLint.RuleModule<"legacyImport", [import("./rules/no-legacy-imports").NoLegacyImportsOptions], unknown, TSESLint.RuleListener> & {
|
|
559
|
+
name: string;
|
|
560
|
+
};
|
|
561
|
+
'require-import-approval': TSESLint.RuleModule<"unapprovedPackage" | "blockedPackage", [import("./rules/require-import-approval").RequireImportApprovalOptions], unknown, TSESLint.RuleListener> & {
|
|
562
|
+
name: string;
|
|
563
|
+
};
|
|
564
|
+
'prefer-modern-api': TSESLint.RuleModule<"preferModernApi", [(import("./rules/prefer-modern-api").PreferModernApiOptions | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
565
|
+
name: string;
|
|
566
|
+
};
|
|
567
|
+
};
|
|
568
|
+
};
|
|
569
|
+
};
|
|
570
|
+
rules: {
|
|
571
|
+
'import-next/no-cycle': string;
|
|
572
|
+
};
|
|
573
|
+
};
|
|
382
574
|
/**
|
|
383
575
|
* Recommended configuration for most projects
|
|
384
576
|
*
|