eslint-plugin-maintainability 3.0.0 โ†’ 3.0.1

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +4 -2
  2. package/README.md +42 -69
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,13 +5,15 @@ All notable changes to `@interlace/eslint-plugin-maintainability` will be docume
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [Unreleased]
9
-
10
8
  ### Documentation
11
9
 
12
10
  - ๐Ÿ“˜ Launched new documentation site: [eslint.interlace.tools](https://eslint.interlace.tools/)
13
11
  - ๐Ÿ“ Achieved 100% documentation parity (both .md and .mdx files)
14
12
 
13
+ ## [3.0.0] - 2026-02-02
14
+
15
+ This was a version bump only for eslint-plugin-maintainability to align it with other projects, there were no code changes.
16
+
15
17
  ## [1.0.0] - 2026-01-26
16
18
 
17
19
  ### Added
package/README.md CHANGED
@@ -3,20 +3,21 @@
3
3
  </p>
4
4
 
5
5
  <p align="center">
6
- Code quality, maintainability standards, and cognitive complexity limits.
6
+ Security-focused ESLint plugin.
7
7
  </p>
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/eslint-plugin-maintainability" target="_blank"><img src="https://img.shields.io/npm/v/eslint-plugin-maintainability.svg" alt="NPM Version" /></a>
11
11
  <a href="https://www.npmjs.com/package/eslint-plugin-maintainability" target="_blank"><img src="https://img.shields.io/npm/dm/eslint-plugin-maintainability.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=quality" target="_blank"><img src="https://codecov.io/gh/ofri-peretz/eslint/graph/badge.svg?component=quality" alt="Codecov" /></a>
13
+ <a href="https://app.codecov.io/gh/ofri-peretz/eslint/components?components%5B0%5D=maintainability" target="_blank"><img src="https://codecov.io/gh/ofri-peretz/eslint/graph/badge.svg?component=maintainability" 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
17
  ## Description
18
18
 
19
- This plugin elevates your codebase by enforcing high standards for code quality, maintainability, and cognitive complexity. It helps you identify and refactor complex logic that can lead to bugs and technical debt, promoting cleaner and more readable code. By integrating these checks, you ensure that your application remains scalable and easy to maintain for the long term.
19
+ This plugin provides Security-focused ESLint plugin.
20
+ By using this plugin, you can proactively identify and mitigate security risks across your entire codebase.
20
21
 
21
22
  ## Philosophy
22
23
 
@@ -24,93 +25,65 @@ This plugin elevates your codebase by enforcing high standards for code quality,
24
25
 
25
26
  ## Getting Started
26
27
 
27
- - To check out the [guide](https://eslint.interlace.tools/docs/quality), visit [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
28
- - ่ฆๆŸฅ็œ‹ไธญๆ–‡ [ๆŒ‡ๅ—](https://eslint.interlace.tools/docs/quality), ่ฏท่ฎฟ้—ฎ [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
29
- - [๊ฐ€์ด๋“œ](https://eslint.interlace.tools/docs/quality) ๋ฌธ์„œ๋Š” [eslint.interlace.tools](https://eslint.interlace.tools)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“š
30
- - [ใ‚ฌใ‚คใƒ‰](https://eslint.interlace.tools/docs/quality)ใฏ [eslint.interlace.tools](https://eslint.interlace.tools)ใงใ”็ขบ่ชใใ ใ•ใ„ใ€‚ ๐Ÿ“š
31
- - Para ver la [guรญa](https://eslint.interlace.tools/docs/quality), visita [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
32
- - ู„ู„ุงุทู„ุงุน ุนู„ู‰ [ุงู„ุฏู„ูŠู„](https://eslint.interlace.tools/docs/quality)ุŒ ู‚ู… ุจุฒูŠุงุฑุฉ [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
28
+ - To check out the [guide](https://eslint.interlace.tools/docs/quality/plugin-maintainability), visit [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
29
+ - ่ฆๆŸฅ็œ‹ไธญๆ–‡ [ๆŒ‡ๅ—](https://eslint.interlace.tools/docs/quality/plugin-maintainability), ่ฏท่ฎฟ้—ฎ [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
30
+ - [๊ฐ€์ด๋“œ](https://eslint.interlace.tools/docs/quality/plugin-maintainability) ๋ฌธ์„œ๋Š” [eslint.interlace.tools](https://eslint.interlace.tools)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“š
31
+ - [ใ‚ฌใ‚คใƒ‰](https://eslint.interlace.tools/docs/quality/plugin-maintainability)ใฏ [eslint.interlace.tools](https://eslint.interlace.tools)ใงใ”็ขบ่ชใใ ใ•ใ„ใ€‚ ๐Ÿ“š
32
+ - Para ver la [guรญa](https://eslint.interlace.tools/docs/quality/plugin-maintainability), visita [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
33
+ - ู„ู„ุงุทู„ุงุน ุนู„ู‰ [ุงู„ุฏู„ูŠู„](https://eslint.interlace.tools/docs/quality/plugin-maintainability)ุŒ ู‚ู… ุจุฒูŠุงุฑุฉ [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
33
34
 
34
35
  ```bash
35
36
  npm install eslint-plugin-maintainability --save-dev
36
37
  ```
37
38
 
38
39
  ## โš™๏ธ Configuration Presets
39
-
40
40
  | Preset | Description |
41
41
  | :------------ | :----------------------------------------- |
42
42
  | `recommended` | Recommended code quality rules as warnings |
43
43
 
44
- ## AI-Optimized Messages
45
-
46
- This plugin is optimized for ESLint's [Model Context Protocol (MCP)](https://eslint.org/docs/latest/use/mcp), enabling AI assistants like **Cursor**, **GitHub Copilot**, and **Claude** to:
47
-
48
- - Understand the exact vulnerability type via CWE references
49
- - Apply the correct fix using structured guidance
50
- - Provide educational context to developers
51
-
52
- ```json
53
- // .cursor/mcp.json
54
- {
55
- "mcpServers": {
56
- "eslint": {
57
- "command": "npx",
58
- "args": ["@eslint/mcp@latest"]
59
- }
60
- }
61
- }
62
- ```
63
-
64
- By providing this structured context (CWE, OWASP, Fix), we enable AI tools to **reason** about the security flaw rather than hallucinating. This allows Copilot/Cursor to suggest the _exact_ correct fix immediately.
65
-
66
44
  ## Rules
67
45
 
68
46
  **Legend**
69
47
 
70
- | Icon | Description |
71
- | :--: | :----------------------------------------------------------------- |
72
- | ๐Ÿ’ผ | **Recommended**: Included in the recommended preset. |
73
- | โš ๏ธ | **Warns**: Set to warn in recommended preset. |
74
- | ๐Ÿ”ง | **Auto-fixable**: Automatically fixable by the `--fix` CLI option. |
75
- | ๐Ÿ’ก | **Suggestions**: Providing code suggestions in IDE. |
76
- | ๐Ÿšซ | **Deprecated**: This rule is deprecated. |
77
-
78
- | Rule | Pattern/Concept | Description | ๐Ÿ’ผ | โš ๏ธ | ๐Ÿ”ง | ๐Ÿ’ก | ๐Ÿšซ |
79
- | :--------------------------------------------------------------------------------------------------------------- | :-------------- | :-------------------------------- | :-: | :-: | :-: | :-: | :-: |
80
- | [`expiring-todo-comments`](https://eslint.interlace.tools/docs/quality/rules/expiring-todo-comments) | Quality | Enforce expiry for TODO comments | | | | | |
81
- | [`max-parameters`](https://eslint.interlace.tools/docs/quality/rules/max-parameters) | Complexity | Limit function parameters | | | | | |
82
- | [`no-commented-code`](https://eslint.interlace.tools/docs/quality/rules/no-commented-code) | Quality | Disallow commented code | ๐Ÿ’ผ | โš ๏ธ | | | |
83
- | [`no-lonely-if`](https://eslint.interlace.tools/docs/quality/rules/no-lonely-if) | Quality | Disallow lonely if statements | | | ๐Ÿ”ง | | |
84
- | [`no-missing-null-checks`](https://eslint.interlace.tools/docs/quality/rules/no-missing-null-checks) | Quality | Enforce null checking | | | | | |
85
- | [`no-nested-ternary`](https://eslint.interlace.tools/docs/quality/rules/no-nested-ternary) | Complexity | Disallow nested ternaries | | | | | |
86
- | [`no-unsafe-type-narrowing`](https://eslint.interlace.tools/docs/quality/rules/no-unsafe-type-narrowing) | Type Safety | Prevent unsafe type narrowing | | | | | |
87
- | [`prefer-code-point`](https://eslint.interlace.tools/docs/quality/rules/prefer-code-point) | Best Practice | Prefer Code Point over Char Code | | | ๐Ÿ”ง | | |
88
- | [`prefer-dom-node-text-content`](https://eslint.interlace.tools/docs/quality/rules/prefer-dom-node-text-content) | Quality | Prefer textContent over innerText | | | ๐Ÿ”ง | | |
89
- | [`cognitive-complexity`](https://eslint.interlace.tools/docs/quality/rules/cognitive-complexity) | Complexity | Limit cognitive complexity | ๐Ÿ’ผ | โš ๏ธ | | | |
90
- | [`nested-complexity-hotspots`](https://eslint.interlace.tools/docs/quality/rules/nested-complexity-hotspots) | Complexity | Detect nested complexity hotpots | | | | | |
91
- | [`error-message`](https://eslint.interlace.tools/docs/quality/rules/error-message) | Error Handling | Enforce error message conventions | | | | | |
92
- | [`no-missing-error-context`](https://eslint.interlace.tools/docs/quality/rules/no-missing-error-context) | Error Handling | Ensure errors have context | | | | | |
93
- | [`no-silent-errors`](https://eslint.interlace.tools/docs/quality/rules/no-silent-errors) | Error Handling | Disallow silent error swallowing | ๐Ÿ’ผ | โš ๏ธ | | | |
94
- | [`no-unhandled-promise`](https://eslint.interlace.tools/docs/quality/rules/no-unhandled-promise) | Error Handling | Ensure all promises are handled | | | | | |
48
+ | Icon | Description |
49
+ | :---: | :--- |
50
+ | ๐Ÿ’ผ | **Recommended**: Included in the recommended preset. |
51
+ | โš ๏ธ | **Warns**: Set towarn in recommended preset. |
52
+ | ๐Ÿ”ง | **Auto-fixable**: Automatically fixable by the `--fix` CLI option. |
53
+ | ๐Ÿ’ก | **Suggestions**: Providing code suggestions in IDE. |
54
+ | ๐Ÿšซ | **Deprecated**: This rule is deprecated. |
55
+
56
+ | Rule | CWE | OWASP | CVSS | Description | ๐Ÿ’ผ | โš ๏ธ | ๐Ÿ”ง | ๐Ÿ’ก | ๐Ÿšซ |
57
+ | :--- | :---: | :---: | :---: | :--- | :---: | :---: | :---: | :---: | :---: |
58
+ | [complexity](https://eslint.interlace.tools/docs/quality/plugin-maintainability/rules/complexity) | | | | Enforce complexity | | | | | |
59
+ | [development](https://eslint.interlace.tools/docs/quality/plugin-maintainability/rules/development) | | | | Enforce development | | | | | |
60
+ | [duplication](https://eslint.interlace.tools/docs/quality/plugin-maintainability/rules/duplication) | | | | Enforce duplication | | | | | |
61
+ | [error-handling](https://eslint.interlace.tools/docs/quality/plugin-maintainability/rules/error-handling) | | | | Enforce error handling | | | | | |
62
+ | [maintainability](https://eslint.interlace.tools/docs/quality/plugin-maintainability/rules/maintainability) | | | | Enforce maintainability | | | | | |
63
+ | [quality](https://eslint.interlace.tools/docs/quality/plugin-maintainability/rules/quality) | | | | Enforce quality | | | | | |
64
+
65
+ ## ๐Ÿ”— Related ESLint Plugins
95
66
 
96
67
  Part of the **Interlace ESLint Ecosystem** โ€” AI-native security plugins with LLM-optimized error messages:
97
68
 
98
- | Plugin | Downloads | Description |
99
- | :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------ |
100
- | [`eslint-plugin-secure-coding`](https://www.npmjs.com/package/eslint-plugin-secure-coding) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-secure-coding.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-secure-coding) | General security rules & OWASP guidelines. |
101
- | [`eslint-plugin-pg`](https://www.npmjs.com/package/eslint-plugin-pg) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-pg.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-pg) | PostgreSQL security & best practices. |
102
- | [`eslint-plugin-crypto`](https://www.npmjs.com/package/eslint-plugin-crypto) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-crypto.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-crypto) | NodeJS Cryptography security rules. |
103
- | [`eslint-plugin-jwt`](https://www.npmjs.com/package/eslint-plugin-jwt) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-jwt.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-jwt) | JWT security & best practices. |
69
+ | Plugin | Downloads | Description |
70
+ | :--- | :---: | :--- |
71
+ | [`eslint-plugin-secure-coding`](https://www.npmjs.com/package/eslint-plugin-secure-coding) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-secure-coding.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-secure-coding) | General security rules & OWASP guidelines. |
72
+ | [`eslint-plugin-pg`](https://www.npmjs.com/package/eslint-plugin-pg) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-pg.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-pg) | PostgreSQL security & best practices. |
73
+ | [`eslint-plugin-crypto`](https://www.npmjs.com/package/eslint-plugin-crypto) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-crypto.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-crypto) | NodeJS Cryptography security rules. |
74
+ | [`eslint-plugin-jwt`](https://www.npmjs.com/package/eslint-plugin-jwt) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-jwt.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-jwt) | JWT security & best practices. |
104
75
  | [`eslint-plugin-browser-security`](https://www.npmjs.com/package/eslint-plugin-browser-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-browser-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-browser-security) | Browser-specific security & XSS prevention. |
105
- | [`eslint-plugin-express-security`](https://www.npmjs.com/package/eslint-plugin-express-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-express-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-express-security) | Express.js security hardening rules. |
106
- | [`eslint-plugin-lambda-security`](https://www.npmjs.com/package/eslint-plugin-lambda-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-lambda-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-lambda-security) | AWS Lambda security best practices. |
107
- | [`eslint-plugin-nestjs-security`](https://www.npmjs.com/package/eslint-plugin-nestjs-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-nestjs-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-nestjs-security) | NestJS security rules & patterns. |
108
- | [`eslint-plugin-import-next`](https://www.npmjs.com/package/eslint-plugin-import-next) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-import-next.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-import-next) | Next-gen import sorting & architecture. |
76
+ | [`eslint-plugin-express-security`](https://www.npmjs.com/package/eslint-plugin-express-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-express-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-express-security) | Express.js security hardening rules. |
77
+ | [`eslint-plugin-lambda-security`](https://www.npmjs.com/package/eslint-plugin-lambda-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-lambda-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-lambda-security) | AWS Lambda security best practices. |
78
+ | [`eslint-plugin-nestjs-security`](https://www.npmjs.com/package/eslint-plugin-nestjs-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-nestjs-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-nestjs-security) | NestJS security rules & patterns. |
79
+ | [`eslint-plugin-mongodb-security`](https://www.npmjs.com/package/eslint-plugin-mongodb-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-mongodb-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-mongodb-security) | MongoDB security best practices. |
80
+ | [`eslint-plugin-vercel-ai-security`](https://www.npmjs.com/package/eslint-plugin-vercel-ai-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-vercel-ai-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-vercel-ai-security) | Vercel AI SDK security hardening. |
81
+ | [`eslint-plugin-import-next`](https://www.npmjs.com/package/eslint-plugin-import-next) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-import-next.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-import-next) | Next-gen import sorting & architecture. |
109
82
 
110
83
  ## ๐Ÿ“„ License
111
84
 
112
85
  MIT ยฉ [Ofri Peretz](https://github.com/ofri-peretz)
113
86
 
114
87
  <p align="center">
115
- <a href="https://eslint.interlace.tools/docs/quality"><img src="https://eslint.interlace.tools/images/og-quality.png" alt="ESLint Interlace Plugin" width="300" /></a>
116
- </p>
88
+ <a href="https://eslint.interlace.tools/docs/quality/plugin-maintainability"><img src="https://eslint.interlace.tools/images/og-maintainability.png" alt="ESLint Interlace Plugin" width="100%" /></a>
89
+ </p>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-maintainability",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "ESLint rules for reducing cognitive load and ensuring code readability.",
5
5
  "type": "commonjs",
6
6
  "main": "./src/index.js",