@sfdxy/mule-lint 1.16.2 → 1.17.0
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 +9 -6
- package/dist/bin/mule-lint.js +14 -1
- package/dist/bin/mule-lint.js.map +1 -1
- package/dist/package.json +3 -2
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js +6 -0
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/rules/documentation/DisplayNameRule.d.ts +17 -0
- package/dist/src/rules/documentation/DisplayNameRule.d.ts.map +1 -0
- package/dist/src/rules/documentation/DisplayNameRule.js +46 -0
- package/dist/src/rules/documentation/DisplayNameRule.js.map +1 -0
- package/dist/src/rules/index.d.ts.map +1 -1
- package/dist/src/rules/index.js +21 -12
- package/dist/src/rules/index.js.map +1 -1
- package/dist/src/rules/logging/ExcessiveLoggersRule.d.ts +16 -0
- package/dist/src/rules/logging/ExcessiveLoggersRule.d.ts.map +1 -0
- package/dist/src/rules/logging/ExcessiveLoggersRule.js +45 -0
- package/dist/src/rules/logging/ExcessiveLoggersRule.js.map +1 -0
- package/dist/src/rules/operations/CommentedCodeRule.d.ts +17 -0
- package/dist/src/rules/operations/CommentedCodeRule.d.ts.map +1 -0
- package/dist/src/rules/operations/CommentedCodeRule.js +58 -0
- package/dist/src/rules/operations/CommentedCodeRule.js.map +1 -0
- package/dist/src/rules/operations/UnusedFlowRule.d.ts +17 -0
- package/dist/src/rules/operations/UnusedFlowRule.d.ts.map +1 -0
- package/dist/src/rules/operations/UnusedFlowRule.js +80 -0
- package/dist/src/rules/operations/UnusedFlowRule.js.map +1 -0
- package/dist/src/rules/performance/ReconnectionStrategyRule.d.ts +16 -0
- package/dist/src/rules/performance/ReconnectionStrategyRule.d.ts.map +1 -0
- package/dist/src/rules/performance/ReconnectionStrategyRule.js +60 -0
- package/dist/src/rules/performance/ReconnectionStrategyRule.js.map +1 -0
- package/dist/src/rules/security/EncryptionKeyInLogsRule.d.ts +17 -0
- package/dist/src/rules/security/EncryptionKeyInLogsRule.d.ts.map +1 -0
- package/dist/src/rules/security/EncryptionKeyInLogsRule.js +46 -0
- package/dist/src/rules/security/EncryptionKeyInLogsRule.js.map +1 -0
- package/dist/src/rules/standards/ApiKitValidationRule.d.ts +16 -0
- package/dist/src/rules/standards/ApiKitValidationRule.d.ts.map +1 -0
- package/dist/src/rules/standards/ApiKitValidationRule.js +39 -0
- package/dist/src/rules/standards/ApiKitValidationRule.js.map +1 -0
- package/dist/src/rules/standards/AutoDiscoveryRule.d.ts +16 -0
- package/dist/src/rules/standards/AutoDiscoveryRule.d.ts.map +1 -0
- package/dist/src/rules/standards/AutoDiscoveryRule.js +47 -0
- package/dist/src/rules/standards/AutoDiscoveryRule.js.map +1 -0
- package/dist/src/rules/standards/CronExternalizedRule.d.ts +16 -0
- package/dist/src/rules/standards/CronExternalizedRule.d.ts.map +1 -0
- package/dist/src/rules/standards/CronExternalizedRule.js +32 -0
- package/dist/src/rules/standards/CronExternalizedRule.js.map +1 -0
- package/dist/src/rules/standards/HttpPortPlaceholderRule.d.ts +16 -0
- package/dist/src/rules/standards/HttpPortPlaceholderRule.d.ts.map +1 -0
- package/dist/src/rules/standards/HttpPortPlaceholderRule.js +34 -0
- package/dist/src/rules/standards/HttpPortPlaceholderRule.js.map +1 -0
- package/package.json +3 -2
- package/dist/src/rules/operations/OperationsRules.d.ts +0 -137
- package/dist/src/rules/operations/OperationsRules.d.ts.map +0 -1
- package/dist/src/rules/operations/OperationsRules.js +0 -442
- package/dist/src/rules/operations/OperationsRules.js.map +0 -1
package/README.md
CHANGED
|
@@ -518,7 +518,8 @@ This tool exposes a **Model Context Protocol (MCP)** server, allowing AI agents
|
|
|
518
518
|
|
|
519
519
|
### Features
|
|
520
520
|
- **Tools**: `run_lint_analysis` (scan project), `get_rule_details` (explain rule), `validate_snippet` (check XML/DWL).
|
|
521
|
-
- **Resources**: `mule-lint://rules` (list all available rules).
|
|
521
|
+
- **Resources**: `mule-lint://rules` (list all available rules), `mule-lint://docs/{slug}` (best practices documentation).
|
|
522
|
+
- **Prompts**: `analyze-project`, `explain-rule`, `fix-issue`.
|
|
522
523
|
|
|
523
524
|
### Setup for Claude Desktop
|
|
524
525
|
|
|
@@ -529,21 +530,23 @@ Add the following to your `claude_desktop_config.json`:
|
|
|
529
530
|
"mcpServers": {
|
|
530
531
|
"mule-lint": {
|
|
531
532
|
"command": "npx",
|
|
532
|
-
"args": ["-y", "
|
|
533
|
+
"args": ["-y", "@sfdxy/mule-lint", "mcp"]
|
|
533
534
|
}
|
|
534
535
|
}
|
|
535
536
|
}
|
|
536
537
|
```
|
|
537
538
|
|
|
538
|
-
### Setup for VS Code
|
|
539
|
+
### Setup for VS Code / Gemini Code Assist
|
|
539
540
|
|
|
540
541
|
Create a `.vscode/mcp.json` file in your project root:
|
|
541
542
|
|
|
542
543
|
```json
|
|
543
544
|
{
|
|
544
|
-
"
|
|
545
|
-
"
|
|
546
|
-
|
|
545
|
+
"servers": {
|
|
546
|
+
"mule-lint": {
|
|
547
|
+
"command": "npx",
|
|
548
|
+
"args": ["-y", "@sfdxy/mule-lint", "mcp"]
|
|
549
|
+
}
|
|
547
550
|
}
|
|
548
551
|
}
|
|
549
552
|
```
|
package/dist/bin/mule-lint.js
CHANGED
|
@@ -47,7 +47,7 @@ program
|
|
|
47
47
|
.name('mule-lint')
|
|
48
48
|
.description('Static analysis tool for MuleSoft applications')
|
|
49
49
|
.version('1.0.0')
|
|
50
|
-
.argument('
|
|
50
|
+
.argument('[path]', 'Path to scan (directory or file)')
|
|
51
51
|
.option('-f, --format <type>', 'Output format: table, json, sarif, html, csv', 'table')
|
|
52
52
|
.option('-o, --output <file>', 'Write output to file instead of stdout')
|
|
53
53
|
.option('-c, --config <file>', 'Path to configuration file')
|
|
@@ -57,6 +57,10 @@ program
|
|
|
57
57
|
.option('-g, --quality-gate <name>', 'Apply quality gate: default, strict, or from config')
|
|
58
58
|
.option('-v, --verbose', 'Show verbose output')
|
|
59
59
|
.action(async (targetPath, options) => {
|
|
60
|
+
if (!targetPath) {
|
|
61
|
+
program.help();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
60
64
|
try {
|
|
61
65
|
await runLint(targetPath, options);
|
|
62
66
|
}
|
|
@@ -66,6 +70,15 @@ program
|
|
|
66
70
|
process.exit(2);
|
|
67
71
|
}
|
|
68
72
|
});
|
|
73
|
+
// MCP subcommand — starts the Model Context Protocol server over stdio
|
|
74
|
+
program
|
|
75
|
+
.command('mcp')
|
|
76
|
+
.description('Start the MCP (Model Context Protocol) server over stdio for AI agent integration')
|
|
77
|
+
.action(async () => {
|
|
78
|
+
const { MuleLintMcpServer } = await Promise.resolve().then(() => __importStar(require('../src/mcp')));
|
|
79
|
+
const server = new MuleLintMcpServer();
|
|
80
|
+
await server.start();
|
|
81
|
+
});
|
|
69
82
|
async function runLint(targetPath, options) {
|
|
70
83
|
const absolutePath = path.resolve(targetPath);
|
|
71
84
|
// Validate path exists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mule-lint.js","sourceRoot":"","sources":["../../bin/mule-lint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,uCAAyB;AACzB,2CAA6B;AAC7B,yDAAsD;AACtD,wCAAyC;AACzC,kDAAwD;AAExD,2EAI0C;AAC1C,0DAAkG;AAElG,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,QAAQ,EAAE,kCAAkC,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,EAAE,OAAO,CAAC;KACtF,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,aAAa,EAAE,+CAA+C,CAAC;KACtE,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;KACrE,MAAM,CAAC,oBAAoB,EAAE,oCAAoC,CAAC;KAClE,MAAM,CAAC,2BAA2B,EAAE,qDAAqD,CAAC;KAC1F,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"mule-lint.js","sourceRoot":"","sources":["../../bin/mule-lint.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sfdxy/mule-lint",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.0",
|
|
4
4
|
"description": "Static analysis tool for MuleSoft applications - supports humans, AI agents, and CI/CD pipelines",
|
|
5
5
|
"author": "Avinava",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,7 +45,8 @@
|
|
|
45
45
|
"commander": "^11.1.0",
|
|
46
46
|
"fast-glob": "^3.3.2",
|
|
47
47
|
"js-yaml": "^4.1.1",
|
|
48
|
-
"xpath": "^0.0.34"
|
|
48
|
+
"xpath": "^0.0.34",
|
|
49
|
+
"zod": "^3.25.0"
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
52
|
"@types/jest": "^29.5.11",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAa;;IA6B3B,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAa;;IA6B3B,OAAO,CAAC,UAAU;IA8LlB,OAAO,CAAC,cAAc;IAmKtB,OAAO,CAAC,YAAY;IAiFP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAKtC"}
|
package/dist/src/mcp/index.js
CHANGED
|
@@ -76,6 +76,7 @@ class MuleLintMcpServer {
|
|
|
76
76
|
}
|
|
77
77
|
setupTools() {
|
|
78
78
|
// Tool: run_lint_analysis
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP SDK generic type inference exceeds TS depth limits (TS2589)
|
|
79
80
|
this.server.tool('run_lint_analysis', 'USE THIS TOOL FIRST to analyze a MuleSoft project. It scans the codebase for best practice violations, security issues (secure:: properties), and potential runtime errors. Returns a comprehensive report needed to identify what needs fixing.', {
|
|
80
81
|
projectPath: zod_1.z
|
|
81
82
|
.string()
|
|
@@ -140,6 +141,7 @@ class MuleLintMcpServer {
|
|
|
140
141
|
}
|
|
141
142
|
});
|
|
142
143
|
// Tool: get_rule_details
|
|
144
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP SDK generic type inference exceeds TS depth limits (TS2589)
|
|
143
145
|
this.server.tool('get_rule_details', 'Retrieve detailed documentation for a specific linting rule ID (e.g., MULE-001). Use this to understand WHY a rule failed and HOW to fix it properly according to best practices.', {
|
|
144
146
|
ruleId: zod_1.z
|
|
145
147
|
.string()
|
|
@@ -174,6 +176,7 @@ class MuleLintMcpServer {
|
|
|
174
176
|
};
|
|
175
177
|
});
|
|
176
178
|
// Tool: validate_snippet
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP SDK generic type inference exceeds TS depth limits (TS2589)
|
|
177
180
|
this.server.tool('validate_snippet', 'Validates a small XML or DataWeave code snippet in isolation. Use this to check syntax and basic rules on generated code BEFORE suggesting it to the user.', {
|
|
178
181
|
code: zod_1.z.string().describe('The code snippet to validate'),
|
|
179
182
|
type: zod_1.z.enum(['xml', 'dwl']).describe('The type of code (xml or dwl)'),
|
|
@@ -385,6 +388,7 @@ class MuleLintMcpServer {
|
|
|
385
388
|
}
|
|
386
389
|
setupPrompts() {
|
|
387
390
|
// Prompt: analyze-project
|
|
391
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP SDK generic type inference exceeds TS depth limits (TS2589)
|
|
388
392
|
this.server.registerPrompt('analyze-project', {
|
|
389
393
|
description: 'Analyze the current project for MuleSoft best practice violations and linting issues.',
|
|
390
394
|
argsSchema: {
|
|
@@ -404,6 +408,7 @@ class MuleLintMcpServer {
|
|
|
404
408
|
};
|
|
405
409
|
});
|
|
406
410
|
// Prompt: explain-rule
|
|
411
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP SDK generic type inference exceeds TS depth limits (TS2589)
|
|
407
412
|
this.server.registerPrompt('explain-rule', {
|
|
408
413
|
description: 'Explain a specific linting rule and provide examples of good vs bad code.',
|
|
409
414
|
argsSchema: {
|
|
@@ -423,6 +428,7 @@ class MuleLintMcpServer {
|
|
|
423
428
|
};
|
|
424
429
|
});
|
|
425
430
|
// Prompt: fix-issue
|
|
431
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP SDK generic type inference exceeds TS depth limits (TS2589)
|
|
426
432
|
this.server.registerPrompt('fix-issue', {
|
|
427
433
|
description: 'Suggest a fix for a specific linting issue in a file.',
|
|
428
434
|
argsSchema: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsF;AACtF,wEAAiF;AACjF,6BAAwB;AAExB,2CAAiD;AACjD,qDAAkD;AAElD,oCAAkD;AAClD,2CAA6B;AAC7B,uCAAyB;AACzB,iDAA6C;AAE7C;;;GAGG;AACH,MAAa,iBAAiB;IAClB,MAAM,CAAY;IAClB,MAAM,CAAa;IAE3B;QACI,8DAA8D;QAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACzE,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAS,CAAC;YACxB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC/B,CAAC,CAAC;QAEH,kGAAkG;QAClG,MAAM,aAAa,GAAwB;YACvC,KAAK,EAAE,EAAE;YACT,2EAA2E;YAC3E,0EAA0E;YAC1E,gBAAgB,EAAE,MAAM;YACxB,aAAa,EAAE,KAAK;SACvB,CAAC;QACF,kDAAkD;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAU,CAAC;YACzB,KAAK,EAAE,iBAAS;YAChB,MAAM,EAAE,aAAa;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEO,UAAU;QACd,0BAA0B;QAC1B,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ValidationContext, Issue } from '../../types';
|
|
2
|
+
import { BaseRule } from '../base/BaseRule';
|
|
3
|
+
/**
|
|
4
|
+
* DOC-001: Display Name Enforcement
|
|
5
|
+
*
|
|
6
|
+
* Key components should have meaningful doc:name attributes, not defaults.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DisplayNameRule extends BaseRule {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
severity: "info";
|
|
13
|
+
category: "documentation";
|
|
14
|
+
private componentDefaults;
|
|
15
|
+
validate(doc: Document, _context: ValidationContext): Issue[];
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=DisplayNameRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DisplayNameRule.d.ts","sourceRoot":"","sources":["../../../../src/rules/documentation/DisplayNameRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IACzC,EAAE,SAAa;IACf,IAAI,SAA8B;IAClC,WAAW,SAAyD;IACpE,QAAQ,EAAG,MAAM,CAAU;IAC3B,QAAQ,EAAG,eAAe,CAAU;IAGpC,OAAO,CAAC,iBAAiB,CAOvB;IAEF,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,KAAK,EAAE;CA8BhE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DisplayNameRule = void 0;
|
|
4
|
+
const BaseRule_1 = require("../base/BaseRule");
|
|
5
|
+
/**
|
|
6
|
+
* DOC-001: Display Name Enforcement
|
|
7
|
+
*
|
|
8
|
+
* Key components should have meaningful doc:name attributes, not defaults.
|
|
9
|
+
*/
|
|
10
|
+
class DisplayNameRule extends BaseRule_1.BaseRule {
|
|
11
|
+
id = 'DOC-001';
|
|
12
|
+
name = 'Display Name Enforcement';
|
|
13
|
+
description = 'Key components should have meaningful display names';
|
|
14
|
+
severity = 'info';
|
|
15
|
+
category = 'documentation';
|
|
16
|
+
// Components that should have meaningful names, with their default names to flag
|
|
17
|
+
componentDefaults = [
|
|
18
|
+
{ element: 'set-payload', defaults: ['Set Payload', 'set-payload'] },
|
|
19
|
+
{ element: 'set-variable', defaults: ['Set Variable', 'set-variable'] },
|
|
20
|
+
{ element: 'transform', defaults: ['Transform Message', 'transform'] },
|
|
21
|
+
{ element: 'flow-ref', defaults: ['Flow Reference', 'flow-ref'] },
|
|
22
|
+
{ element: 'logger', defaults: ['Logger', 'logger'] },
|
|
23
|
+
{ element: 'choice', defaults: ['Choice', 'choice'] },
|
|
24
|
+
];
|
|
25
|
+
validate(doc, _context) {
|
|
26
|
+
const issues = [];
|
|
27
|
+
for (const component of this.componentDefaults) {
|
|
28
|
+
const elements = this.select(`//*[local-name()="${component.element}"]`, doc);
|
|
29
|
+
for (const element of elements) {
|
|
30
|
+
const docName = this.getDocName(element);
|
|
31
|
+
if (!docName) {
|
|
32
|
+
continue; // Missing doc:name is handled by MULE-604
|
|
33
|
+
}
|
|
34
|
+
// Check if using default name
|
|
35
|
+
if (component.defaults.some((d) => docName.toLowerCase() === d.toLowerCase())) {
|
|
36
|
+
issues.push(this.createIssue(element, `${component.element} has generic name "${docName}"`, {
|
|
37
|
+
suggestion: `Use a descriptive name explaining the purpose`,
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return issues;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.DisplayNameRule = DisplayNameRule;
|
|
46
|
+
//# sourceMappingURL=DisplayNameRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DisplayNameRule.js","sourceRoot":"","sources":["../../../../src/rules/documentation/DisplayNameRule.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAE5C;;;;GAIG;AACH,MAAa,eAAgB,SAAQ,mBAAQ;IACzC,EAAE,GAAG,SAAS,CAAC;IACf,IAAI,GAAG,0BAA0B,CAAC;IAClC,WAAW,GAAG,qDAAqD,CAAC;IACpE,QAAQ,GAAG,MAAe,CAAC;IAC3B,QAAQ,GAAG,eAAwB,CAAC;IAEpC,iFAAiF;IACzE,iBAAiB,GAAG;QACxB,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE;QACpE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE;QACvE,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE;QACtE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE;QACjE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACrD,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;KACxD,CAAC;IAEF,QAAQ,CAAC,GAAa,EAAE,QAA2B;QAC/C,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,SAAS,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC;YAE9E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,SAAS,CAAC,0CAA0C;gBACxD,CAAC;gBAED,8BAA8B;gBAC9B,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC5E,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,WAAW,CACZ,OAAO,EACP,GAAG,SAAS,CAAC,OAAO,sBAAsB,OAAO,GAAG,EACpD;wBACI,UAAU,EAAE,+CAA+C;qBAC9D,CACJ,CACJ,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA/CD,0CA+CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AA4FnC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAGpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAGxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,IAAI,EAoG3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAExD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
|
package/dist/src/rules/index.js
CHANGED
|
@@ -39,15 +39,21 @@ const InsecureTlsRule_1 = require("./security/InsecureTlsRule");
|
|
|
39
39
|
const TlsVersionRule_1 = require("./security/TlsVersionRule");
|
|
40
40
|
const RateLimitingRule_1 = require("./security/RateLimitingRule");
|
|
41
41
|
const InputValidationRule_1 = require("./security/InputValidationRule");
|
|
42
|
+
const EncryptionKeyInLogsRule_1 = require("./security/EncryptionKeyInLogsRule");
|
|
42
43
|
// Import all rules - Logging
|
|
43
44
|
const LoggerCategoryRule_1 = require("./logging/LoggerCategoryRule");
|
|
44
45
|
const LoggerPayloadRule_1 = require("./logging/LoggerPayloadRule");
|
|
45
46
|
const LoggerInUntilSuccessfulRule_1 = require("./logging/LoggerInUntilSuccessfulRule");
|
|
46
47
|
const NewLoggingRules_1 = require("./logging/NewLoggingRules");
|
|
48
|
+
const ExcessiveLoggersRule_1 = require("./logging/ExcessiveLoggersRule");
|
|
47
49
|
// Import all rules - Standards
|
|
48
50
|
const ChoiceAntiPatternRule_1 = require("./standards/ChoiceAntiPatternRule");
|
|
49
51
|
const DwlStandardsRule_1 = require("./standards/DwlStandardsRule");
|
|
50
52
|
const DeprecatedComponentRule_1 = require("./standards/DeprecatedComponentRule");
|
|
53
|
+
const AutoDiscoveryRule_1 = require("./standards/AutoDiscoveryRule");
|
|
54
|
+
const HttpPortPlaceholderRule_1 = require("./standards/HttpPortPlaceholderRule");
|
|
55
|
+
const CronExternalizedRule_1 = require("./standards/CronExternalizedRule");
|
|
56
|
+
const ApiKitValidationRule_1 = require("./standards/ApiKitValidationRule");
|
|
51
57
|
// Import all rules - HTTP
|
|
52
58
|
const HttpUserAgentRule_1 = require("./http/HttpUserAgentRule");
|
|
53
59
|
const HttpContentTypeRule_1 = require("./http/HttpContentTypeRule");
|
|
@@ -55,11 +61,13 @@ const HttpTimeoutRule_1 = require("./http/HttpTimeoutRule");
|
|
|
55
61
|
// Import all rules - Documentation
|
|
56
62
|
const FlowDescriptionRule_1 = require("./documentation/FlowDescriptionRule");
|
|
57
63
|
const MissingDocNameRule_1 = require("./documentation/MissingDocNameRule");
|
|
64
|
+
const DisplayNameRule_1 = require("./documentation/DisplayNameRule");
|
|
58
65
|
// Import all rules - Performance
|
|
59
66
|
const ScatterGatherRoutesRule_1 = require("./performance/ScatterGatherRoutesRule");
|
|
60
67
|
const AsyncErrorHandlerRule_1 = require("./performance/AsyncErrorHandlerRule");
|
|
61
68
|
const LargeChoiceBlockRule_1 = require("./performance/LargeChoiceBlockRule");
|
|
62
69
|
const ConnectionPoolingRule_1 = require("./performance/ConnectionPoolingRule");
|
|
70
|
+
const ReconnectionStrategyRule_1 = require("./performance/ReconnectionStrategyRule");
|
|
63
71
|
// Import all rules - Complexity
|
|
64
72
|
const FlowComplexityRule_1 = require("./complexity/FlowComplexityRule");
|
|
65
73
|
// Import all rules - YAML
|
|
@@ -74,8 +82,9 @@ const ApiLedRules_1 = require("./api-led/ApiLedRules");
|
|
|
74
82
|
const SingleSystemSapiRule_1 = require("./api-led/SingleSystemSapiRule");
|
|
75
83
|
// Import all rules - Experimental
|
|
76
84
|
const ExperimentalRules_1 = require("./experimental/ExperimentalRules");
|
|
77
|
-
// Import all rules - Operations &
|
|
78
|
-
const
|
|
85
|
+
// Import all rules - Operations & Hygiene
|
|
86
|
+
const CommentedCodeRule_1 = require("./operations/CommentedCodeRule");
|
|
87
|
+
const UnusedFlowRule_1 = require("./operations/UnusedFlowRule");
|
|
79
88
|
// Import all rules - Governance
|
|
80
89
|
const GovernanceRules_1 = require("./governance/GovernanceRules");
|
|
81
90
|
// Export individual rules - Error Handling
|
|
@@ -206,19 +215,19 @@ exports.ALL_RULES = [
|
|
|
206
215
|
new ExperimentalRules_1.ConnectorConfigNamingRule(),
|
|
207
216
|
new ExperimentalRules_1.MUnitCoverageRule(),
|
|
208
217
|
// Operations & Resilience Rules (RES-001, OPS-001, OPS-002, OPS-003)
|
|
209
|
-
new
|
|
210
|
-
new
|
|
211
|
-
new
|
|
212
|
-
new
|
|
218
|
+
new ReconnectionStrategyRule_1.ReconnectionStrategyRule(),
|
|
219
|
+
new AutoDiscoveryRule_1.AutoDiscoveryRule(),
|
|
220
|
+
new HttpPortPlaceholderRule_1.HttpPortPlaceholderRule(),
|
|
221
|
+
new CronExternalizedRule_1.CronExternalizedRule(),
|
|
213
222
|
// Security Enhancement (SEC-006)
|
|
214
|
-
new
|
|
223
|
+
new EncryptionKeyInLogsRule_1.EncryptionKeyInLogsRule(),
|
|
215
224
|
// Code Hygiene Rules (HYG-001, HYG-002, HYG-003)
|
|
216
|
-
new
|
|
217
|
-
new
|
|
218
|
-
new
|
|
225
|
+
new ExcessiveLoggersRule_1.ExcessiveLoggersRule(),
|
|
226
|
+
new CommentedCodeRule_1.CommentedCodeRule(),
|
|
227
|
+
new UnusedFlowRule_1.UnusedFlowRule(),
|
|
219
228
|
// Additional Standards (API-005, DOC-001)
|
|
220
|
-
new
|
|
221
|
-
new
|
|
229
|
+
new ApiKitValidationRule_1.ApiKitValidationRule(),
|
|
230
|
+
new DisplayNameRule_1.DisplayNameRule(),
|
|
222
231
|
// Governance Rules (PROJ-001, PROJ-002)
|
|
223
232
|
new GovernanceRules_1.PomValidationRule(),
|
|
224
233
|
new GovernanceRules_1.GitHygieneRule(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ValidationContext, Issue } from '../../types';
|
|
2
|
+
import { BaseRule } from '../base/BaseRule';
|
|
3
|
+
/**
|
|
4
|
+
* HYG-001: Excessive Loggers
|
|
5
|
+
*
|
|
6
|
+
* Flows should not have too many loggers which can impact performance.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ExcessiveLoggersRule extends BaseRule {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
severity: "warning";
|
|
13
|
+
category: "logging";
|
|
14
|
+
validate(doc: Document, context: ValidationContext): Issue[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ExcessiveLoggersRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExcessiveLoggersRule.d.ts","sourceRoot":"","sources":["../../../../src/rules/logging/ExcessiveLoggersRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAC9C,EAAE,SAAa;IACf,IAAI,SAAuB;IAC3B,WAAW,SAA6C;IACxD,QAAQ,EAAG,SAAS,CAAU;IAC9B,QAAQ,EAAG,SAAS,CAAU;IAE9B,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;CAiD/D"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExcessiveLoggersRule = void 0;
|
|
4
|
+
const BaseRule_1 = require("../base/BaseRule");
|
|
5
|
+
/**
|
|
6
|
+
* HYG-001: Excessive Loggers
|
|
7
|
+
*
|
|
8
|
+
* Flows should not have too many loggers which can impact performance.
|
|
9
|
+
*/
|
|
10
|
+
class ExcessiveLoggersRule extends BaseRule_1.BaseRule {
|
|
11
|
+
id = 'HYG-001';
|
|
12
|
+
name = 'Excessive Loggers';
|
|
13
|
+
description = 'Flows should not have excessive loggers';
|
|
14
|
+
severity = 'warning';
|
|
15
|
+
category = 'logging';
|
|
16
|
+
validate(doc, context) {
|
|
17
|
+
const issues = [];
|
|
18
|
+
const maxLoggers = this.getOption(context, 'maxLoggers', 5);
|
|
19
|
+
// Check flows
|
|
20
|
+
const flows = this.select('//*[local-name()="flow"]', doc);
|
|
21
|
+
for (const flow of flows) {
|
|
22
|
+
const flowName = this.getNameAttribute(flow) ?? 'unknown';
|
|
23
|
+
const loggerCount = this.count('.//*[local-name()="logger"]', flow);
|
|
24
|
+
if (loggerCount > maxLoggers) {
|
|
25
|
+
issues.push(this.createIssue(flow, `Flow "${flowName}" has ${loggerCount} loggers (max recommended: ${maxLoggers})`, {
|
|
26
|
+
suggestion: 'Consider reducing loggers or moving detailed logging to DEBUG level',
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Check sub-flows
|
|
31
|
+
const subflows = this.select('//*[local-name()="sub-flow"]', doc);
|
|
32
|
+
for (const subflow of subflows) {
|
|
33
|
+
const subflowName = this.getNameAttribute(subflow) ?? 'unknown';
|
|
34
|
+
const loggerCount = this.count('.//*[local-name()="logger"]', subflow);
|
|
35
|
+
if (loggerCount > maxLoggers) {
|
|
36
|
+
issues.push(this.createIssue(subflow, `Sub-flow "${subflowName}" has ${loggerCount} loggers (max recommended: ${maxLoggers})`, {
|
|
37
|
+
suggestion: 'Consider reducing loggers or moving detailed logging to DEBUG level',
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return issues;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.ExcessiveLoggersRule = ExcessiveLoggersRule;
|
|
45
|
+
//# sourceMappingURL=ExcessiveLoggersRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExcessiveLoggersRule.js","sourceRoot":"","sources":["../../../../src/rules/logging/ExcessiveLoggersRule.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAE5C;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,mBAAQ;IAC9C,EAAE,GAAG,SAAS,CAAC;IACf,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAAG,yCAAyC,CAAC;IACxD,QAAQ,GAAG,SAAkB,CAAC;IAC9B,QAAQ,GAAG,SAAkB,CAAC;IAE9B,QAAQ,CAAC,GAAa,EAAE,OAA0B;QAC9C,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAS,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAEpE,cAAc;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;QAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;YAEpE,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,WAAW,CACZ,IAAI,EACJ,SAAS,QAAQ,SAAS,WAAW,8BAA8B,UAAU,GAAG,EAChF;oBACI,UAAU,EACN,qEAAqE;iBAC5E,CACJ,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QAElE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;YAEvE,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,WAAW,CACZ,OAAO,EACP,aAAa,WAAW,SAAS,WAAW,8BAA8B,UAAU,GAAG,EACvF;oBACI,UAAU,EACN,qEAAqE;iBAC5E,CACJ,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAxDD,oDAwDC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ValidationContext, Issue } from '../../types';
|
|
2
|
+
import { BaseRule } from '../base/BaseRule';
|
|
3
|
+
/**
|
|
4
|
+
* HYG-002: Commented Code Detection
|
|
5
|
+
*
|
|
6
|
+
* Detects potentially commented-out code blocks in Mule configurations.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CommentedCodeRule extends BaseRule {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
severity: "info";
|
|
13
|
+
category: "standards";
|
|
14
|
+
private codePatterns;
|
|
15
|
+
validate(doc: Document, _context: ValidationContext): Issue[];
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=CommentedCodeRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentedCodeRule.d.ts","sourceRoot":"","sources":["../../../../src/rules/operations/CommentedCodeRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC3C,EAAE,SAAa;IACf,IAAI,SAA8B;IAClC,WAAW,SAA8D;IACzE,QAAQ,EAAG,MAAM,CAAU;IAC3B,QAAQ,EAAG,WAAW,CAAU;IAGhC,OAAO,CAAC,YAAY,CAYlB;IAEF,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,KAAK,EAAE;CAgChE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommentedCodeRule = void 0;
|
|
4
|
+
const BaseRule_1 = require("../base/BaseRule");
|
|
5
|
+
/**
|
|
6
|
+
* HYG-002: Commented Code Detection
|
|
7
|
+
*
|
|
8
|
+
* Detects potentially commented-out code blocks in Mule configurations.
|
|
9
|
+
*/
|
|
10
|
+
class CommentedCodeRule extends BaseRule_1.BaseRule {
|
|
11
|
+
id = 'HYG-002';
|
|
12
|
+
name = 'Commented Code Detection';
|
|
13
|
+
description = 'Detects potentially commented-out code in configurations';
|
|
14
|
+
severity = 'info';
|
|
15
|
+
category = 'standards';
|
|
16
|
+
// Patterns that suggest commented-out XML code
|
|
17
|
+
codePatterns = [
|
|
18
|
+
/<flow\s/,
|
|
19
|
+
/<sub-flow\s/,
|
|
20
|
+
/<http:/,
|
|
21
|
+
/<logger\s/,
|
|
22
|
+
/<set-variable\s/,
|
|
23
|
+
/<set-payload\s/,
|
|
24
|
+
/<choice>/,
|
|
25
|
+
/<transform\s/,
|
|
26
|
+
/<flow-ref\s/,
|
|
27
|
+
/<try>/,
|
|
28
|
+
/<db:/,
|
|
29
|
+
];
|
|
30
|
+
validate(doc, _context) {
|
|
31
|
+
const issues = [];
|
|
32
|
+
// Use XPath to find comment nodes: comment()
|
|
33
|
+
// Note: In xmldom, we need to iterate through the document differently
|
|
34
|
+
try {
|
|
35
|
+
const commentNodes = this.select('//comment()', doc);
|
|
36
|
+
for (const commentNode of commentNodes) {
|
|
37
|
+
const commentText = commentNode.textContent ?? '';
|
|
38
|
+
// Check if comment contains code-like patterns
|
|
39
|
+
for (const pattern of this.codePatterns) {
|
|
40
|
+
if (pattern.test(commentText)) {
|
|
41
|
+
issues.push(this.createIssue(commentNode, 'Commented-out code detected', {
|
|
42
|
+
suggestion: 'Remove commented code or convert to documentation comment',
|
|
43
|
+
codeSnippet: commentText.substring(0, 80) + '...',
|
|
44
|
+
}));
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// XPath comment() may not be supported in all parsers
|
|
52
|
+
// Silently return empty issues
|
|
53
|
+
}
|
|
54
|
+
return issues;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.CommentedCodeRule = CommentedCodeRule;
|
|
58
|
+
//# sourceMappingURL=CommentedCodeRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentedCodeRule.js","sourceRoot":"","sources":["../../../../src/rules/operations/CommentedCodeRule.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAE5C;;;;GAIG;AACH,MAAa,iBAAkB,SAAQ,mBAAQ;IAC3C,EAAE,GAAG,SAAS,CAAC;IACf,IAAI,GAAG,0BAA0B,CAAC;IAClC,WAAW,GAAG,0DAA0D,CAAC;IACzE,QAAQ,GAAG,MAAe,CAAC;IAC3B,QAAQ,GAAG,WAAoB,CAAC;IAEhC,+CAA+C;IACvC,YAAY,GAAG;QACnB,SAAS;QACT,aAAa;QACb,QAAQ;QACR,WAAW;QACX,iBAAiB;QACjB,gBAAgB;QAChB,UAAU;QACV,cAAc;QACd,aAAa;QACb,OAAO;QACP,MAAM;KACT,CAAC;IAEF,QAAQ,CAAC,GAAa,EAAE,QAA2B;QAC/C,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,6CAA6C;QAC7C,uEAAuE;QACvE,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAErD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACrC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC;gBAElD,+CAA+C;gBAC/C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,6BAA6B,EAAE;4BACzD,UAAU,EACN,2DAA2D;4BAC/D,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;yBACpD,CAAC,CACL,CAAC;wBACF,MAAM;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,sDAAsD;YACtD,+BAA+B;QACnC,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAtDD,8CAsDC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ValidationContext, Issue } from '../../types';
|
|
2
|
+
import { BaseRule } from '../base/BaseRule';
|
|
3
|
+
/**
|
|
4
|
+
* HYG-003: Unused Flow Detection
|
|
5
|
+
*
|
|
6
|
+
* Detects flows that are never referenced by flow-ref.
|
|
7
|
+
*/
|
|
8
|
+
export declare class UnusedFlowRule extends BaseRule {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
severity: "warning";
|
|
13
|
+
category: "standards";
|
|
14
|
+
validate(doc: Document, _context: ValidationContext): Issue[];
|
|
15
|
+
private isExternallyReferenced;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=UnusedFlowRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnusedFlowRule.d.ts","sourceRoot":"","sources":["../../../../src/rules/operations/UnusedFlowRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IACxC,EAAE,SAAa;IACf,IAAI,SAA2B;IAC/B,WAAW,SAA6C;IACxD,QAAQ,EAAG,SAAS,CAAU;IAC9B,QAAQ,EAAG,WAAW,CAAU;IAEhC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,KAAK,EAAE;IA2E7D,OAAO,CAAC,sBAAsB;CAYjC"}
|