eslint-plugin-operability 4.1.3 → 4.1.4

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
@@ -193,6 +193,7 @@ Part of the **Interlace ESLint ecosystem** — AI-native rules with LLM-optimize
193
193
  | [`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) | Injection prevention. |
194
194
  | [`eslint-plugin-sequelize-security`](https://www.npmjs.com/package/eslint-plugin-sequelize-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-sequelize-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-sequelize-security) | Sequelize ORM security. |
195
195
  | [`eslint-plugin-sqlite-security`](https://www.npmjs.com/package/eslint-plugin-sqlite-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-sqlite-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-sqlite-security) | SQLite security. |
196
+ | [`eslint-plugin-supabase-security`](https://www.npmjs.com/package/eslint-plugin-supabase-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-supabase-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-supabase-security) | Supabase security. |
196
197
  | [`eslint-plugin-typeorm-security`](https://www.npmjs.com/package/eslint-plugin-typeorm-security) | [![downloads](https://img.shields.io/npm/dt/eslint-plugin-typeorm-security.svg?style=flat-square)](https://www.npmjs.com/package/eslint-plugin-typeorm-security) | TypeORM security. |
197
198
  | [`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) | AI SDK security. |
198
199
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-operability",
3
- "version": "4.1.3",
3
+ "version": "4.1.4",
4
4
  "description": "ESLint plugin for production operability — bans debug code and console logging in production, verbose error messages, and process.exit calls.",
5
5
  "type": "commonjs",
6
6
  "main": "./src/index.js",
package/src/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.configs=exports.plugin=exports.rules=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");exports.rules={get"no-console-log"(){return require("./rules/operability/no-console-log").noConsoleLog},get"no-process-exit"(){return require("./rules/operability/no-process-exit").noProcessExit},get"no-debug-code-in-production"(){return require("./rules/operability/no-debug-code-in-production").noDebugCodeInProduction},get"no-verbose-error-messages"(){return require("./rules/operability/no-verbose-error-messages").noVerboseErrorMessages},get"require-code-minification"(){return require("./rules/operability/require-code-minification").requireCodeMinification},get"require-data-minimization"(){return require("./rules/operability/require-data-minimization").requireDataMinimization},get"operability/no-console-log"(){return require("./rules/operability/no-console-log").noConsoleLog},get"operability/no-process-exit"(){return require("./rules/operability/no-process-exit").noProcessExit},get"operability/no-debug-code-in-production"(){return require("./rules/operability/no-debug-code-in-production").noDebugCodeInProduction},get"operability/no-verbose-error-messages"(){return require("./rules/operability/no-verbose-error-messages").noVerboseErrorMessages},get"operability/require-code-minification"(){return require("./rules/operability/require-code-minification").requireCodeMinification},get"operability/require-data-minimization"(){return require("./rules/operability/require-data-minimization").requireDataMinimization}};(0,eslint_devkit_1.withCanonicalDocsUrls)("plugin-operability",exports.rules);exports.plugin={meta:{name:"eslint-plugin-operability",version:"4.1.3"},rules:exports.rules};exports.configs={recommended:{plugins:{"operability":exports.plugin},rules:{"operability/no-console-log":"warn","operability/no-debug-code-in-production":"error","operability/no-verbose-error-messages":"warn"}}};exports.default=exports.plugin;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.configs=exports.plugin=exports.rules=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");exports.rules={get"no-console-log"(){return require("./rules/operability/no-console-log").noConsoleLog},get"no-process-exit"(){return require("./rules/operability/no-process-exit").noProcessExit},get"no-debug-code-in-production"(){return require("./rules/operability/no-debug-code-in-production").noDebugCodeInProduction},get"no-verbose-error-messages"(){return require("./rules/operability/no-verbose-error-messages").noVerboseErrorMessages},get"require-code-minification"(){return require("./rules/operability/require-code-minification").requireCodeMinification},get"require-data-minimization"(){return require("./rules/operability/require-data-minimization").requireDataMinimization},get"operability/no-console-log"(){return require("./rules/operability/no-console-log").noConsoleLog},get"operability/no-process-exit"(){return require("./rules/operability/no-process-exit").noProcessExit},get"operability/no-debug-code-in-production"(){return require("./rules/operability/no-debug-code-in-production").noDebugCodeInProduction},get"operability/no-verbose-error-messages"(){return require("./rules/operability/no-verbose-error-messages").noVerboseErrorMessages},get"operability/require-code-minification"(){return require("./rules/operability/require-code-minification").requireCodeMinification},get"operability/require-data-minimization"(){return require("./rules/operability/require-data-minimization").requireDataMinimization}};(0,eslint_devkit_1.withCanonicalDocsUrls)("plugin-operability",exports.rules);exports.plugin={meta:{name:"eslint-plugin-operability",version:"4.1.4"},rules:exports.rules};exports.configs={recommended:{plugins:{"operability":exports.plugin},rules:{"operability/no-console-log":"warn","operability/no-debug-code-in-production":"error","operability/no-verbose-error-messages":"warn"}}};exports.default=exports.plugin;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.noDebugCodeInProduction=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");const non_production_paths_1=require("../../lib/non-production-paths");exports.noDebugCodeInProduction=(0,eslint_devkit_1.createRule)({name:"no-debug-code-in-production",meta:{type:"problem",docs:{url:"https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-operability/docs/rules/no-debug-code-in-production.md",description:"Detect debug code in production",cwe:"CWE-489",cvss:7.5},messages:{violationDetected:(0,eslint_devkit_1.formatLLMMessage)({icon:eslint_devkit_1.MessageIcons.SECURITY,issueName:"violation Detected",cwe:"CWE-489",description:"Detect debug code in production detected - DEBUG, __DEV__, console",severity:"HIGH",fix:"Review and apply secure practices",documentationLink:"https://cwe.mitre.org/data/definitions/489.html"})},schema:[{type:"object",properties:{ignoreNonProductionPaths:{type:"boolean",default:true}},additionalProperties:false}]},defaultOptions:[{ignoreNonProductionPaths:true}],create(context,[options={}]){const{ignoreNonProductionPaths=true}=options;if(ignoreNonProductionPaths&&(0,non_production_paths_1.isNonProductionPath)(context.filename)){return{}}return{Identifier(node){if(["DEBUG","__DEV__"].includes(node.name)){context.report({node,messageId:"violationDetected"})}},CallExpression(node){if(node.callee.type===eslint_devkit_1.AST_NODE_TYPES.MemberExpression&&node.callee.object.type===eslint_devkit_1.AST_NODE_TYPES.Identifier&&node.callee.object.name==="console"&&(0,eslint_devkit_1.propertyName)(node.callee)==="log"){context.report({node,messageId:"violationDetected"})}}}}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.noDebugCodeInProduction=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");const non_production_paths_1=require("../../lib/non-production-paths");exports.noDebugCodeInProduction=(0,eslint_devkit_1.createRule)({name:"no-debug-code-in-production",meta:{type:"problem",docs:{url:"https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-operability/docs/rules/no-debug-code-in-production.md",description:"Detect debug code in production",cwe:"CWE-489",cvss:7.5},messages:{violationDetected:(0,eslint_devkit_1.formatLLMMessage)({icon:eslint_devkit_1.MessageIcons.SECURITY,issueName:"violation Detected",cwe:"CWE-489",description:"Detect debug code in production detected - DEBUG, __DEV__, console",severity:"HIGH",fix:"Review and apply secure practices",documentationLink:"https://cwe.mitre.org/data/definitions/489.html"})},schema:[{type:"object",properties:{ignoreNonProductionPaths:{type:"boolean",default:true}},additionalProperties:false}]},defaultOptions:[{ignoreNonProductionPaths:true}],create(context,[options={}]){const{ignoreNonProductionPaths=true}=options;if(ignoreNonProductionPaths&&(0,non_production_paths_1.isNonProductionPath)(context.filename)){return{}}return{Identifier(node){if(!["DEBUG","__DEV__"].includes(node.name))return;const parent=node.parent;if(parent?.type===eslint_devkit_1.AST_NODE_TYPES.MemberExpression&&parent.property===node&&!parent.computed)return;if(parent?.type===eslint_devkit_1.AST_NODE_TYPES.Property&&parent.key===node&&!parent.computed)return;context.report({node,messageId:"violationDetected"})},CallExpression(node){if(node.callee.type===eslint_devkit_1.AST_NODE_TYPES.MemberExpression&&node.callee.object.type===eslint_devkit_1.AST_NODE_TYPES.Identifier&&node.callee.object.name==="console"&&(0,eslint_devkit_1.propertyName)(node.callee)==="log"){context.report({node,messageId:"violationDetected"})}}}}});