eslint-plugin-mongodb-security 8.1.1 โ†’ 8.2.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.
package/README.md CHANGED
@@ -16,7 +16,8 @@
16
16
 
17
17
  ## Description
18
18
 
19
- This plugin is essential for securing specific MongoDB interactions, primarily focusing on preventing NoSQL injection attacks. It analyzes your queries and database operations to flag potentially unsafe patterns that could be exploited by malicious actors. By adopting these rules, you can safeguard your data integrity and prevent unauthorized access through injection vulnerabilities.
19
+ This plugin provides Security rules for MongoDB queries and interactions (NoSQL injection).
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,19 +25,18 @@ This plugin is essential for securing specific MongoDB interactions, primarily f
24
25
 
25
26
  ## Getting Started
26
27
 
27
- - To check out the [guide](https://eslint.interlace.tools/docs/mongodb-security), visit [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
28
- - ่ฆๆŸฅ็œ‹ไธญๆ–‡ [ๆŒ‡ๅ—](https://eslint.interlace.tools/docs/mongodb-security), ่ฏท่ฎฟ้—ฎ [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
29
- - [๊ฐ€์ด๋“œ](https://eslint.interlace.tools/docs/mongodb-security) ๋ฌธ์„œ๋Š” [eslint.interlace.tools](https://eslint.interlace.tools)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“š
30
- - [ใ‚ฌใ‚คใƒ‰](https://eslint.interlace.tools/docs/mongodb-security)ใฏ [eslint.interlace.tools](https://eslint.interlace.tools)ใงใ”็ขบ่ชใใ ใ•ใ„ใ€‚ ๐Ÿ“š
31
- - Para ver la [guรญa](https://eslint.interlace.tools/docs/mongodb-security), visita [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
32
- - ู„ู„ุงุทู„ุงุน ุนู„ู‰ [ุงู„ุฏู„ูŠู„](https://eslint.interlace.tools/docs/mongodb-security)ุŒ ู‚ู… ุจุฒูŠุงุฑุฉ [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
28
+ - To check out the [guide](https://eslint.interlace.tools/docs/security/plugin-mongodb-security), visit [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
29
+ - ่ฆๆŸฅ็œ‹ไธญๆ–‡ [ๆŒ‡ๅ—](https://eslint.interlace.tools/docs/security/plugin-mongodb-security), ่ฏท่ฎฟ้—ฎ [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
30
+ - [๊ฐ€์ด๋“œ](https://eslint.interlace.tools/docs/security/plugin-mongodb-security) ๋ฌธ์„œ๋Š” [eslint.interlace.tools](https://eslint.interlace.tools)์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“š
31
+ - [ใ‚ฌใ‚คใƒ‰](https://eslint.interlace.tools/docs/security/plugin-mongodb-security)ใฏ [eslint.interlace.tools](https://eslint.interlace.tools)ใงใ”็ขบ่ชใใ ใ•ใ„ใ€‚ ๐Ÿ“š
32
+ - Para ver la [guรญa](https://eslint.interlace.tools/docs/security/plugin-mongodb-security), visita [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
33
+ - ู„ู„ุงุทู„ุงุน ุนู„ู‰ [ุงู„ุฏู„ูŠู„](https://eslint.interlace.tools/docs/security/plugin-mongodb-security)ุŒ ู‚ู… ุจุฒูŠุงุฑุฉ [eslint.interlace.tools](https://eslint.interlace.tools). ๐Ÿ“š
33
34
 
34
35
  ```bash
35
36
  npm install eslint-plugin-mongodb-security --save-dev
36
37
  ```
37
38
 
38
39
  ## Usage Examples
39
-
40
40
  ### Prevent NoSQL Injection (`no-operator-injection`)
41
41
 
42
42
  ```javascript
@@ -60,7 +60,6 @@ User.find({ name: { $eq: sanitize(userInput) } });
60
60
  ---
61
61
 
62
62
  ## โš™๏ธ Configuration Presets
63
-
64
63
  | Preset | Description |
65
64
  | :------------ | :------------------------------------------------ |
66
65
  | `recommended` | Critical rules as errors, high as warnings |
@@ -68,7 +67,6 @@ User.find({ name: { $eq: sanitize(userInput) } });
68
67
  | `mongoose` | Specialized rules for Mongoose ODM usage patterns |
69
68
 
70
69
  ## ๐Ÿ“š Supported Libraries
71
-
72
70
  | Library | npm | Downloads | Detection |
73
71
  | ---------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
74
72
  | `mongodb` | [![npm](https://img.shields.io/npm/v/mongodb.svg?style=flat-square)](https://www.npmjs.com/package/mongodb) | [![downloads](https://img.shields.io/npm/dt/mongodb.svg?style=flat-square)](https://www.npmjs.com/package/mongodb) | Injection, Unbounded Queries |
@@ -78,78 +76,59 @@ User.find({ name: { $eq: sanitize(userInput) } });
78
76
 
79
77
  ---
80
78
 
81
- ## AI-Optimized Messages
82
-
83
- 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:
84
-
85
- - Understand the exact vulnerability type via CWE references
86
- - Apply the correct fix using structured guidance
87
- - Provide educational context to developers
88
-
89
- ```json
90
- // .cursor/mcp.json
91
- {
92
- "mcpServers": {
93
- "eslint": {
94
- "command": "npx",
95
- "args": ["@eslint/mcp@latest"]
96
- }
97
- }
98
- }
99
- ```
100
-
101
- 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.
102
-
103
79
  ## Rules
104
80
 
105
81
  **Legend**
106
82
 
107
- | Icon | Description |
108
- | :--: | :----------------------------------------------------------------- |
109
- | ๐Ÿ’ผ | **Recommended**: Included in the recommended preset. |
110
- | โš ๏ธ | **Warns**: Set to warn in recommended preset. |
111
- | ๐Ÿ”ง | **Auto-fixable**: Automatically fixable by the `--fix` CLI option. |
112
- | ๐Ÿ’ก | **Suggestions**: Providing code suggestions in IDE. |
113
- | ๐Ÿšซ | **Deprecated**: This rule is deprecated. |
114
-
115
- | Rule | CWE | OWASP | CVSS | Description | ๐Ÿ’ผ | โš ๏ธ | ๐Ÿ”ง | ๐Ÿ’ก | ๐Ÿšซ |
116
- | :---------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :--: | :----------------------------------------------------------------------------- | :-: | :-: | :-: | :-: | :-: |
117
- | [`no-bypass-middleware`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-bypass-middleware) | CWE-284 | A01:2025 | 7.5 | [no-bypass-middleware](docs/rules/no-bypass-middleware.md) | ๐Ÿ’ผ | โš ๏ธ | | | |
118
- | [`no-debug-mode-production`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-debug-mode-production) | CWE-489 | A05:2025 | 7.5 | [no-debug-mode-production](docs/rules/no-debug-mode-production.md) | ๐Ÿ’ผ | | | | |
119
- | [`no-hardcoded-connection-string`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-hardcoded-connection-string) | CWE-798 | A07:2025 | 9.8 | [no-hardcoded-connection-string](docs/rules/no-hardcoded-connection-string.md) | ๐Ÿ’ผ | | ๐Ÿ”ง | | |
120
- | [`no-hardcoded-credentials`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-hardcoded-credentials) | CWE-798 | A07:2025 | 9.8 | [no-hardcoded-credentials](docs/rules/no-hardcoded-credentials.md) | ๐Ÿ’ผ | | ๐Ÿ”ง | | |
121
- | [`no-operator-injection`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-operator-injection) | CWE-943 | A03:2025 | 9.8 | [no-operator-injection](docs/rules/no-operator-injection.md) | ๐Ÿ’ผ | | | | |
122
- | [`no-select-sensitive-fields`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-select-sensitive-fields) | CWE-200 | A01:2025 | 5.3 | [no-select-sensitive-fields](docs/rules/no-select-sensitive-fields.md) | ๐Ÿ’ผ | โš ๏ธ | | | |
123
- | [`no-unbounded-find`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-unbounded-find) | CWE-770 | A04:2025 | 5.3 | [no-unbounded-find](docs/rules/no-unbounded-find.md) | ๐Ÿ’ผ | โš ๏ธ | | | |
124
- | [`no-unsafe-populate`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-unsafe-populate) | CWE-284 | A01:2025 | 5.3 | [no-unsafe-populate](docs/rules/no-unsafe-populate.md) | ๐Ÿ’ผ | | | | |
125
- | [`no-unsafe-query`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-unsafe-query) | CWE-943 | A03:2025 | 9.8 | [no-unsafe-query](docs/rules/no-unsafe-query.md) | ๐Ÿ’ผ | | | | |
126
- | [`no-unsafe-regex-query`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-unsafe-regex-query) | CWE-1333 | A03:2025 | 7.5 | [no-unsafe-regex-query](docs/rules/no-unsafe-regex-query.md) | ๐Ÿ’ผ | | | | |
127
- | [`no-unsafe-where`](https://eslint.interlace.tools/docs/mongodb-security/rules/no-unsafe-where) | CWE-943 | A03:2025 | 9.8 | [no-unsafe-where](docs/rules/no-unsafe-where.md) | ๐Ÿ’ผ | | | | |
128
- | [`require-auth-mechanism`](https://eslint.interlace.tools/docs/mongodb-security/rules/require-auth-mechanism) | CWE-306 | A07:2025 | 7.5 | [require-auth-mechanism](docs/rules/require-auth-mechanism.md) | ๐Ÿ’ผ | โš ๏ธ | | | |
129
- | [`require-lean-queries`](https://eslint.interlace.tools/docs/mongodb-security/rules/require-lean-queries) | CWE-400 | A04:2025 | 5.3 | [require-lean-queries](docs/rules/require-lean-queries.md) | | | ๐Ÿ”ง | | |
130
- | [`require-projection`](https://eslint.interlace.tools/docs/mongodb-security/rules/require-projection) | CWE-200 | A01:2025 | 5.3 | [require-projection](docs/rules/require-projection.md) | | | | | |
131
- | [`require-schema-validation`](https://eslint.interlace.tools/docs/mongodb-security/rules/require-schema-validation) | CWE-20 | A04:2025 | 7.5 | [require-schema-validation](docs/rules/require-schema-validation.md) | ๐Ÿ’ผ | โš ๏ธ | | | |
132
- | [`require-tls-connection`](https://eslint.interlace.tools/docs/mongodb-security/rules/require-tls-connection) | CWE-319 | A02:2025 | 7.5 | [require-tls-connection](docs/rules/require-tls-connection.md) | ๐Ÿ’ผ | โš ๏ธ | | | |
83
+ | Icon | Description |
84
+ | :---: | :--- |
85
+ | ๐Ÿ’ผ | **Recommended**: Included in the recommended preset. |
86
+ | โš ๏ธ | **Warns**: Set towarn in recommended preset. |
87
+ | ๐Ÿ”ง | **Auto-fixable**: Automatically fixable by the `--fix` CLI option. |
88
+ | ๐Ÿ’ก | **Suggestions**: Providing code suggestions in IDE. |
89
+ | ๐Ÿšซ | **Deprecated**: This rule is deprecated. |
90
+
91
+ | Rule | CWE | OWASP | CVSS | Description | ๐Ÿ’ผ | โš ๏ธ | ๐Ÿ”ง | ๐Ÿ’ก | ๐Ÿšซ |
92
+ | :--- | :---: | :---: | :---: | :--- | :---: | :---: | :---: | :---: | :---: |
93
+ | [no-bypass-middleware](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-bypass-middleware) | | | | ESLint rule documentation for no-bypass-middleware | | | | | |
94
+ | [no-debug-mode-production](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-debug-mode-production) | | | | ESLint rule documentation for no-debug-mode-production | | | | | |
95
+ | [no-hardcoded-connection-string](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-hardcoded-connection-string) | | | | ESLint rule documentation for no-hardcoded-connection-string | | | | | |
96
+ | [no-hardcoded-credentials](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-hardcoded-credentials) | | | | ESLint rule documentation for no-hardcoded-credentials | | | | | |
97
+ | [no-operator-injection](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-operator-injection) | | | | ESLint rule documentation for no-operator-injection | | | | | |
98
+ | [no-select-sensitive-fields](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-select-sensitive-fields) | | | | ESLint rule documentation for no-select-sensitive-fields | | | | | |
99
+ | [no-unbounded-find](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-unbounded-find) | | | | ESLint rule documentation for no-unbounded-find | | | | | |
100
+ | [no-unsafe-populate](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-unsafe-populate) | | | | ESLint rule documentation for no-unsafe-populate | | | | | |
101
+ | [no-unsafe-query](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-unsafe-query) | | | | ESLint rule documentation for no-unsafe-query | | | | | |
102
+ | [no-unsafe-regex-query](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-unsafe-regex-query) | | | | ESLint rule documentation for no-unsafe-regex-query | | | | | |
103
+ | [no-unsafe-where](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/no-unsafe-where) | | | | ESLint rule documentation for no-unsafe-where | | | | | |
104
+ | [require-auth-mechanism](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/require-auth-mechanism) | | | | ESLint rule documentation for require-auth-mechanism | | | | | |
105
+ | [require-lean-queries](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/require-lean-queries) | | | | ESLint rule documentation for require-lean-queries | | | | | |
106
+ | [require-projection](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/require-projection) | | | | ESLint rule documentation for require-projection | | | | | |
107
+ | [require-schema-validation](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/require-schema-validation) | | | | ESLint rule documentation for require-schema-validation | | | | | |
108
+ | [require-tls-connection](https://eslint.interlace.tools/docs/security/plugin-mongodb-security/rules/require-tls-connection) | | | | ESLint rule documentation for require-tls-connection | | | | | |
109
+
110
+ ## ๐Ÿ”— Related ESLint Plugins
133
111
 
134
112
  Part of the **Interlace ESLint Ecosystem** โ€” AI-native security plugins with LLM-optimized error messages:
135
113
 
136
- | Plugin | Downloads | Description |
137
- | :--------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------ |
138
- | [`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. |
139
- | [`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. |
140
- | [`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. |
141
- | [`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. |
142
- | [`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. |
143
- | [`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 rules. |
144
- | [`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. |
145
- | [`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. |
146
- | [`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. |
147
- | [`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. |
114
+ | Plugin | Downloads | Description |
115
+ | :--- | :---: | :--- |
116
+ | [`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. |
117
+ | [`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. |
118
+ | [`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. |
119
+ | [`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. |
120
+ | [`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. |
121
+ | [`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. |
122
+ | [`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. |
123
+ | [`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. |
124
+ | [`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. |
125
+ | [`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. |
126
+ | [`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. |
148
127
 
149
128
  ## ๐Ÿ“„ License
150
129
 
151
130
  MIT ยฉ [Ofri Peretz](https://github.com/ofri-peretz)
152
131
 
153
132
  <p align="center">
154
- <a href="https://eslint.interlace.tools/docs/mongodb-security"><img src="https://eslint.interlace.tools/images/og-mongodb-security.png" alt="ESLint Interlace Plugin" width="300" /></a>
155
- </p>
133
+ <a href="https://eslint.interlace.tools/docs/security/plugin-mongodb-security"><img src="https://eslint.interlace.tools/images/og-mongodb-security.png" alt="ESLint Interlace Plugin" width="100%" /></a>
134
+ </p>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-mongodb-security",
3
- "version": "8.1.1",
3
+ "version": "8.2.1",
4
4
  "description": "Security-focused ESLint plugin for MongoDB & Mongoose. Detects NoSQL injection, operator attacks, credential exposure, and ODM-specific vulnerabilities with AI-optimized fix guidance.",
5
5
  "type": "commonjs",
6
6
  "main": "./src/index.js",
@@ -17,10 +17,10 @@
17
17
  },
18
18
  "author": "Ofri Peretz <ofriperetzdev@gmail.com>",
19
19
  "license": "MIT",
20
- "homepage": "https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-mongodb-security/README.md",
20
+ "homepage": "https://github.com/ofri-peretz/eslint/tree/main/packages/eslint-plugin-mongodb-security#readme",
21
21
  "repository": {
22
22
  "type": "git",
23
- "url": "git+https://github.com/ofri-peretz/eslint.git",
23
+ "url": "https://github.com/ofri-peretz/eslint",
24
24
  "directory": "packages/eslint-plugin-mongodb-security"
25
25
  },
26
26
  "bugs": {
@@ -41,6 +41,7 @@
41
41
  "eslint",
42
42
  "eslint-plugin",
43
43
  "eslintplugin",
44
+ "interlace-security",
44
45
  "mongodb",
45
46
  "mongoose",
46
47
  "nosql",
@@ -79,8 +80,8 @@
79
80
  }
80
81
  },
81
82
  "dependencies": {
82
- "@interlace/eslint-devkit": "^1.2.1",
83
- "tslib": "^2.3.0"
83
+ "tslib": "^2.3.0",
84
+ "@interlace/eslint-devkit": "^1.2.1"
84
85
  },
85
86
  "devDependencies": {
86
87
  "@typescript-eslint/parser": "^8.46.2",
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noBypassMiddleware: import("@typescript-eslint/utils/ts-eslint").RuleModule<"bypassMiddleware", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noBypassMiddleware: import("@typescript-eslint/utils/ts-eslint").RuleModule<"bypassMiddleware", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noBypassMiddleware;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noDebugModeProduction: import("@typescript-eslint/utils/ts-eslint").RuleModule<"debugModeProduction", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noDebugModeProduction: import("@typescript-eslint/utils/ts-eslint").RuleModule<"debugModeProduction", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noDebugModeProduction;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noHardcodedConnectionString: import("@typescript-eslint/utils/ts-eslint").RuleModule<"hardcodedConnectionString", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noHardcodedConnectionString: import("@typescript-eslint/utils/ts-eslint").RuleModule<"hardcodedConnectionString", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noHardcodedConnectionString;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noHardcodedCredentials: import("@typescript-eslint/utils/ts-eslint").RuleModule<"hardcodedCredentials", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noHardcodedCredentials: import("@typescript-eslint/utils/ts-eslint").RuleModule<"hardcodedCredentials", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noHardcodedCredentials;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noOperatorInjection: import("@typescript-eslint/utils/ts-eslint").RuleModule<"operatorInjection", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noOperatorInjection: import("@typescript-eslint/utils/ts-eslint").RuleModule<"operatorInjection", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noOperatorInjection;
@@ -8,5 +8,7 @@ export interface Options {
8
8
  sensitiveFields?: string[];
9
9
  }
10
10
  type RuleOptions = [Options?];
11
- export declare const noSelectSensitiveFields: import("@typescript-eslint/utils/ts-eslint").RuleModule<"selectSensitiveFields", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
11
+ export declare const noSelectSensitiveFields: import("@typescript-eslint/utils/ts-eslint").RuleModule<"selectSensitiveFields", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
12
+ name: string;
13
+ };
12
14
  export default noSelectSensitiveFields;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noUnboundedFind: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unboundedFind", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noUnboundedFind: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unboundedFind", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noUnboundedFind;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noUnsafePopulate: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unsafePopulate", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noUnsafePopulate: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unsafePopulate", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noUnsafePopulate;
@@ -20,5 +20,7 @@ export interface Options {
20
20
  additionalMethods?: string[];
21
21
  }
22
22
  type RuleOptions = [Options?];
23
- export declare const noUnsafeQuery: TSESLint.RuleModule<MessageIds, RuleOptions, unknown, TSESLint.RuleListener>;
23
+ export declare const noUnsafeQuery: TSESLint.RuleModule<MessageIds, RuleOptions, unknown, TSESLint.RuleListener> & {
24
+ name: string;
25
+ };
24
26
  export default noUnsafeQuery;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noUnsafeRegexQuery: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unsafeRegex", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noUnsafeRegexQuery: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unsafeRegex", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noUnsafeRegexQuery;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const noUnsafeWhere: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unsafeWhere", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const noUnsafeWhere: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unsafeWhere", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default noUnsafeWhere;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const requireAuthMechanism: import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireAuthMechanism", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const requireAuthMechanism: import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireAuthMechanism", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default requireAuthMechanism;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const requireLeanQueries: import("@typescript-eslint/utils/ts-eslint").RuleModule<"useLean", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const requireLeanQueries: import("@typescript-eslint/utils/ts-eslint").RuleModule<"useLean", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default requireLeanQueries;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const requireProjection: import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireProjection", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const requireProjection: import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireProjection", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default requireProjection;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const requireSchemaValidation: import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireSchemaValidation", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const requireSchemaValidation: import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireSchemaValidation", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default requireSchemaValidation;
@@ -7,5 +7,7 @@ export interface Options {
7
7
  allowInTests?: boolean;
8
8
  }
9
9
  type RuleOptions = [Options?];
10
- export declare const requireTlsConnection: import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireTls", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
+ export declare const requireTlsConnection: import("@typescript-eslint/utils/ts-eslint").RuleModule<"requireTls", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
11
+ name: string;
12
+ };
11
13
  export default requireTlsConnection;