@sfdxy/mule-lint 1.17.0 → 1.18.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 +3 -0
- package/dist/bin/mule-lint.js +70 -1
- package/dist/bin/mule-lint.js.map +1 -1
- package/dist/package.json +6 -5
- package/dist/src/core/MetricsAggregator.js +1 -1
- package/dist/src/core/MetricsAggregator.js.map +1 -1
- package/dist/src/core/XPathHelper.d.ts +9 -1
- package/dist/src/core/XPathHelper.d.ts.map +1 -1
- package/dist/src/core/XPathHelper.js +4 -8
- package/dist/src/core/XPathHelper.js.map +1 -1
- package/dist/src/engine/LintEngine.d.ts.map +1 -1
- package/dist/src/engine/LintEngine.js +2 -4
- package/dist/src/engine/LintEngine.js.map +1 -1
- package/dist/src/formatter/MuleXmlFormatter.d.ts +68 -0
- package/dist/src/formatter/MuleXmlFormatter.d.ts.map +1 -0
- package/dist/src/formatter/MuleXmlFormatter.js +146 -0
- package/dist/src/formatter/MuleXmlFormatter.js.map +1 -0
- package/dist/src/formatter/index.d.ts +3 -0
- package/dist/src/formatter/index.d.ts.map +1 -0
- package/dist/src/formatter/index.js +9 -0
- package/dist/src/formatter/index.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js +12 -411
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/prompts/index.d.ts +6 -0
- package/dist/src/mcp/prompts/index.d.ts.map +1 -0
- package/dist/src/mcp/prompts/index.js +87 -0
- package/dist/src/mcp/prompts/index.js.map +1 -0
- package/dist/src/mcp/resources/index.d.ts +6 -0
- package/dist/src/mcp/resources/index.d.ts.map +1 -0
- package/dist/src/mcp/resources/index.js +166 -0
- package/dist/src/mcp/resources/index.js.map +1 -0
- package/dist/src/mcp/tools/formatMuleXml.d.ts +6 -0
- package/dist/src/mcp/tools/formatMuleXml.d.ts.map +1 -0
- package/dist/src/mcp/tools/formatMuleXml.js +142 -0
- package/dist/src/mcp/tools/formatMuleXml.js.map +1 -0
- package/dist/src/mcp/tools/getRuleDetails.d.ts +6 -0
- package/dist/src/mcp/tools/getRuleDetails.d.ts.map +1 -0
- package/dist/src/mcp/tools/getRuleDetails.js +46 -0
- package/dist/src/mcp/tools/getRuleDetails.js.map +1 -0
- package/dist/src/mcp/tools/runLintAnalysis.d.ts +7 -0
- package/dist/src/mcp/tools/runLintAnalysis.d.ts.map +1 -0
- package/dist/src/mcp/tools/runLintAnalysis.js +76 -0
- package/dist/src/mcp/tools/runLintAnalysis.js.map +1 -0
- package/dist/src/mcp/tools/validateSnippet.d.ts +6 -0
- package/dist/src/mcp/tools/validateSnippet.d.ts.map +1 -0
- package/dist/src/mcp/tools/validateSnippet.js +59 -0
- package/dist/src/mcp/tools/validateSnippet.js.map +1 -0
- package/dist/src/rules/governance/GovernanceRules.d.ts +2 -2
- package/dist/src/rules/governance/GovernanceRules.d.ts.map +1 -1
- package/dist/src/rules/governance/GovernanceRules.js +2 -2
- package/dist/src/rules/governance/GovernanceRules.js.map +1 -1
- package/dist/src/types/Rule.d.ts +1 -1
- package/dist/src/types/Rule.d.ts.map +1 -1
- package/docs/best-practices/rules-catalog.md +513 -44
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -314,6 +314,7 @@ npx @sfdxy/mule-lint src/main/mule -f sarif -o results.sarif
|
|
|
314
314
|
| DW-001 | External DWL | Warning | DataWeave | Externalize complex transforms |
|
|
315
315
|
| DW-002 | DWL Naming | Info | DataWeave | kebab-case for .dwl files |
|
|
316
316
|
| DW-003 | DWL Modules | Info | DataWeave | Use common modules |
|
|
317
|
+
| DW-004 | Java 17 DW Errors | Error | DataWeave | Java 17 compatible error handling |
|
|
317
318
|
| API-001 | Experience Layer | Info | API-Led | Experience API patterns |
|
|
318
319
|
| API-002 | Process Layer | Info | API-Led | Process layer orchestration |
|
|
319
320
|
| API-003 | System Layer | Info | API-Led | System layer connections |
|
|
@@ -328,6 +329,8 @@ npx @sfdxy/mule-lint src/main/mule -f sarif -o results.sarif
|
|
|
328
329
|
| EXP-003 | MUnit Coverage | Info | Experimental | Check for MUnit tests |
|
|
329
330
|
| YAML-001 | Env Files | Warning | Standards | Environment YAML files |
|
|
330
331
|
| YAML-003 | Property Naming | Info | Standards | Property key format |
|
|
332
|
+
| YAML-004 | Plaintext Secrets | Error | Security | Encrypt sensitive YAML properties |
|
|
333
|
+
|
|
331
334
|
### 2025-2026 Best Practices Rules (NEW)
|
|
332
335
|
|
|
333
336
|
| ID | Name | Severity | Category | Description |
|
package/dist/bin/mule-lint.js
CHANGED
|
@@ -42,11 +42,12 @@ const rules_1 = require("../src/rules");
|
|
|
42
42
|
const formatters_1 = require("../src/formatters");
|
|
43
43
|
const QualityGateEvaluator_1 = require("../src/core/QualityGateEvaluator");
|
|
44
44
|
const QualityGate_1 = require("../src/types/QualityGate");
|
|
45
|
+
const packageJson = require('../package.json');
|
|
45
46
|
const program = new commander_1.Command();
|
|
46
47
|
program
|
|
47
48
|
.name('mule-lint')
|
|
48
49
|
.description('Static analysis tool for MuleSoft applications')
|
|
49
|
-
.version(
|
|
50
|
+
.version(packageJson.version)
|
|
50
51
|
.argument('[path]', 'Path to scan (directory or file)')
|
|
51
52
|
.option('-f, --format <type>', 'Output format: table, json, sarif, html, csv', 'table')
|
|
52
53
|
.option('-o, --output <file>', 'Write output to file instead of stdout')
|
|
@@ -79,6 +80,25 @@ program
|
|
|
79
80
|
const server = new MuleLintMcpServer();
|
|
80
81
|
await server.start();
|
|
81
82
|
});
|
|
83
|
+
// Format subcommand — format Mule XML files using Prettier
|
|
84
|
+
program
|
|
85
|
+
.command('format')
|
|
86
|
+
.description('Format Mule XML files using Prettier with Anypoint Studio-compatible defaults')
|
|
87
|
+
.argument('<path>', 'Path to a Mule XML file or project directory')
|
|
88
|
+
.option('--check', 'Check if files are formatted without writing (exit 1 if unformatted)')
|
|
89
|
+
.option('--tab-width <n>', 'Spaces per indent level (default: 4)', parseInt)
|
|
90
|
+
.option('--print-width <n>', 'Max line width before wrapping (default: 140)', parseInt)
|
|
91
|
+
.option('--xml-quote-attributes <style>', 'Attribute quote style: preserve, single, double (default: preserve)')
|
|
92
|
+
.action(async (targetPath, opts) => {
|
|
93
|
+
try {
|
|
94
|
+
await runFormat(targetPath, opts);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
98
|
+
console.error(`Error: ${message}`);
|
|
99
|
+
process.exit(2);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
82
102
|
async function runLint(targetPath, options) {
|
|
83
103
|
const absolutePath = path.resolve(targetPath);
|
|
84
104
|
// Validate path exists
|
|
@@ -172,6 +192,55 @@ function resolveQualityGate(gateName, config) {
|
|
|
172
192
|
throw new Error(`Unknown quality gate: ${gateName}. Use 'default', 'strict', or 'config'`);
|
|
173
193
|
}
|
|
174
194
|
}
|
|
195
|
+
async function runFormat(targetPath, options) {
|
|
196
|
+
const absolutePath = path.resolve(targetPath);
|
|
197
|
+
if (!fs.existsSync(absolutePath)) {
|
|
198
|
+
throw new Error(`Path does not exist: ${absolutePath}`);
|
|
199
|
+
}
|
|
200
|
+
// Lazy import to keep startup fast for the lint path
|
|
201
|
+
const { formatFile, formatProject } = await Promise.resolve().then(() => __importStar(require('../src/formatter/MuleXmlFormatter')));
|
|
202
|
+
const formatOptions = {
|
|
203
|
+
check: options.check,
|
|
204
|
+
tabWidth: options.tabWidth,
|
|
205
|
+
printWidth: options.printWidth,
|
|
206
|
+
xmlQuoteAttributes: options.xmlQuoteAttributes,
|
|
207
|
+
};
|
|
208
|
+
const stat = fs.statSync(absolutePath);
|
|
209
|
+
let results;
|
|
210
|
+
if (stat.isDirectory()) {
|
|
211
|
+
results = await formatProject(absolutePath, formatOptions);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
results = [await formatFile(absolutePath, formatOptions)];
|
|
215
|
+
}
|
|
216
|
+
if (results.length === 0) {
|
|
217
|
+
console.log('No Mule XML files found.');
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
// Print results
|
|
221
|
+
let changedCount = 0;
|
|
222
|
+
let errorCount = 0;
|
|
223
|
+
for (const result of results) {
|
|
224
|
+
const relativePath = path.relative(process.cwd(), result.filePath);
|
|
225
|
+
if (result.error) {
|
|
226
|
+
console.error(` ✗ ${relativePath}: ${result.error}`);
|
|
227
|
+
errorCount++;
|
|
228
|
+
}
|
|
229
|
+
else if (result.changed) {
|
|
230
|
+
console.log(options.check ? ` ✗ ${relativePath} (needs formatting)` : ` ✓ ${relativePath}`);
|
|
231
|
+
changedCount++;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
const unchangedCount = results.length - changedCount - errorCount;
|
|
235
|
+
console.log(`\n${results.length} file(s) scanned: ${changedCount} ${options.check ? 'need formatting' : 'formatted'}, ${unchangedCount} unchanged, ${errorCount} error(s)`);
|
|
236
|
+
// In check mode, exit 1 if any files are unformatted
|
|
237
|
+
if (options.check && changedCount > 0) {
|
|
238
|
+
process.exit(1);
|
|
239
|
+
}
|
|
240
|
+
if (errorCount > 0) {
|
|
241
|
+
process.exit(2);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
175
244
|
// Run the CLI
|
|
176
245
|
program.parse();
|
|
177
246
|
//# sourceMappingURL=mule-lint.js.map
|
|
@@ -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;
|
|
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.18.1",
|
|
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",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc",
|
|
30
30
|
"build:watch": "tsc --watch",
|
|
31
|
-
"test": "jest",
|
|
32
|
-
"test:watch": "jest --watch",
|
|
33
|
-
"test:coverage": "jest --coverage",
|
|
31
|
+
"test": "NODE_OPTIONS='--experimental-vm-modules' jest",
|
|
32
|
+
"test:watch": "NODE_OPTIONS='--experimental-vm-modules' jest --watch",
|
|
33
|
+
"test:coverage": "NODE_OPTIONS='--experimental-vm-modules' jest --coverage",
|
|
34
34
|
"lint": "eslint src/ --ext .ts",
|
|
35
35
|
"lint:fix": "eslint src/ --ext .ts --fix",
|
|
36
36
|
"format": "prettier --write \"src/**/*.{ts,js,json,md}\"",
|
|
@@ -40,11 +40,13 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
43
|
+
"@prettier/plugin-xml": "^3.4.2",
|
|
43
44
|
"@xmldom/xmldom": "^0.8.10",
|
|
44
45
|
"chalk": "^4.1.2",
|
|
45
46
|
"commander": "^11.1.0",
|
|
46
47
|
"fast-glob": "^3.3.2",
|
|
47
48
|
"js-yaml": "^4.1.1",
|
|
49
|
+
"prettier": "^3.8.1",
|
|
48
50
|
"xpath": "^0.0.34",
|
|
49
51
|
"zod": "^3.25.0"
|
|
50
52
|
},
|
|
@@ -56,7 +58,6 @@
|
|
|
56
58
|
"@typescript-eslint/parser": "^6.15.0",
|
|
57
59
|
"eslint": "^8.56.0",
|
|
58
60
|
"jest": "^29.7.0",
|
|
59
|
-
"prettier": "^3.7.4",
|
|
60
61
|
"ts-jest": "^29.1.1",
|
|
61
62
|
"typescript": "^5.3.3"
|
|
62
63
|
},
|
|
@@ -139,7 +139,7 @@ class MetricsAggregator {
|
|
|
139
139
|
let bugs = 0;
|
|
140
140
|
let vulnerabilities = 0;
|
|
141
141
|
let codeSmells = 0;
|
|
142
|
-
|
|
142
|
+
let hotspots = 0;
|
|
143
143
|
for (const file of report.files) {
|
|
144
144
|
for (const issue of file.issues) {
|
|
145
145
|
const issueType = getIssueTypeForRule(issue.ruleId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricsAggregator.js","sourceRoot":"","sources":["../../../src/core/MetricsAggregator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MetricsAggregator.js","sourceRoot":"","sources":["../../../src/core/MetricsAggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
* These are the standard namespaces used in Mule 4 applications
|
|
4
4
|
*/
|
|
5
5
|
export declare const MULE_NAMESPACES: Record<string, string>;
|
|
6
|
+
/**
|
|
7
|
+
* Extended Node interface with properties added by @xmldom/xmldom
|
|
8
|
+
*/
|
|
9
|
+
export interface XmlDomNode extends Node {
|
|
10
|
+
lineNumber?: number;
|
|
11
|
+
columnNumber?: number;
|
|
12
|
+
localName?: string;
|
|
13
|
+
}
|
|
6
14
|
/**
|
|
7
15
|
* Helper class for namespace-aware XPath queries on Mule XML documents
|
|
8
16
|
*/
|
|
@@ -13,7 +21,7 @@ export declare class XPathHelper {
|
|
|
13
21
|
/**
|
|
14
22
|
* Get singleton instance
|
|
15
23
|
*/
|
|
16
|
-
static getInstance(
|
|
24
|
+
static getInstance(): XPathHelper;
|
|
17
25
|
/**
|
|
18
26
|
* Reset the singleton instance (useful for testing)
|
|
19
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XPathHelper.d.ts","sourceRoot":"","sources":["../../../src/core/XPathHelper.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6DlD,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,OAAO;
|
|
1
|
+
{"version":3,"file":"XPathHelper.d.ts","sourceRoot":"","sources":["../../../src/core/XPathHelper.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6DlD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,OAAO;IAIP;;OAEG;WACW,WAAW,IAAI,WAAW;IAOxC;;OAEG;WACW,KAAK,IAAI,IAAI;IAI3B;;;;;OAKG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,EAAE;IAaxE;;;;;OAKG;IACI,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAK5E;;;;;OAKG;IACI,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IAShF;;;;;OAKG;IACI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO;IAIpE;;;;;OAKG;IACI,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM;CAGrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEjD"}
|
|
@@ -98,16 +98,15 @@ exports.MULE_NAMESPACES = {
|
|
|
98
98
|
class XPathHelper {
|
|
99
99
|
static instance;
|
|
100
100
|
select;
|
|
101
|
-
constructor(
|
|
102
|
-
|
|
103
|
-
this.select = xpath.useNamespaces(namespaces);
|
|
101
|
+
constructor() {
|
|
102
|
+
this.select = xpath.useNamespaces(exports.MULE_NAMESPACES);
|
|
104
103
|
}
|
|
105
104
|
/**
|
|
106
105
|
* Get singleton instance
|
|
107
106
|
*/
|
|
108
|
-
static getInstance(
|
|
107
|
+
static getInstance() {
|
|
109
108
|
if (!XPathHelper.instance) {
|
|
110
|
-
XPathHelper.instance = new XPathHelper(
|
|
109
|
+
XPathHelper.instance = new XPathHelper();
|
|
111
110
|
}
|
|
112
111
|
return XPathHelper.instance;
|
|
113
112
|
}
|
|
@@ -197,14 +196,12 @@ function getAttribute(node, attrName) {
|
|
|
197
196
|
* Get line number from a parsed node (xmldom stores this)
|
|
198
197
|
*/
|
|
199
198
|
function getLineNumber(node) {
|
|
200
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
|
|
201
199
|
return node.lineNumber ?? 1;
|
|
202
200
|
}
|
|
203
201
|
/**
|
|
204
202
|
* Get column number from a parsed node
|
|
205
203
|
*/
|
|
206
204
|
function getColumnNumber(node) {
|
|
207
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
|
|
208
205
|
return node.columnNumber;
|
|
209
206
|
}
|
|
210
207
|
/**
|
|
@@ -218,7 +215,6 @@ function hasAttribute(node, attrName) {
|
|
|
218
215
|
* Get the local name of a node (without namespace prefix)
|
|
219
216
|
*/
|
|
220
217
|
function getLocalName(node) {
|
|
221
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
|
|
222
218
|
return node.localName ?? node.nodeName;
|
|
223
219
|
}
|
|
224
220
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XPathHelper.js","sourceRoot":"","sources":["../../../src/core/XPathHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"XPathHelper.js","sourceRoot":"","sources":["../../../src/core/XPathHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LintEngine.d.ts","sourceRoot":"","sources":["../../../src/engine/LintEngine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,KAAK,EAA2C,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAA2C,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"LintEngine.d.ts","sourceRoot":"","sources":["../../../src/engine/LintEngine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,KAAK,EAA2C,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAA2C,MAAM,iBAAiB,CAAC;AAQtF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,8CAA8C;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,EAAE,aAAa;IAMlC;;OAEG;IACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsH1D;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE;IAmB9D;;OAEG;IACI,eAAe,IAAI,IAAI,EAAE;IAOhC;;OAEG;IACH,OAAO,CAAC,WAAW;IAoDnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IA4ChB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,YAAY;IAgCpB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,GAAG;IAOX;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAG7B"}
|
|
@@ -46,6 +46,7 @@ const FileScanner_1 = require("../core/FileScanner");
|
|
|
46
46
|
const MetricsAggregator_1 = require("../core/MetricsAggregator");
|
|
47
47
|
const MetricsCollector_1 = require("../core/MetricsCollector");
|
|
48
48
|
const errors_1 = require("../core/errors");
|
|
49
|
+
const ProjectRule_1 = require("../rules/base/ProjectRule");
|
|
49
50
|
/**
|
|
50
51
|
* Main lint engine that orchestrates file scanning, parsing, and rule execution
|
|
51
52
|
*/
|
|
@@ -333,10 +334,7 @@ class LintEngine {
|
|
|
333
334
|
*/
|
|
334
335
|
runProjectRules(projectRoot) {
|
|
335
336
|
const issues = [];
|
|
336
|
-
|
|
337
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
338
|
-
const { ProjectRule } = require('../rules/base/ProjectRule');
|
|
339
|
-
const projectRules = this.getEnabledRules().filter((r) => r instanceof ProjectRule);
|
|
337
|
+
const projectRules = this.getEnabledRules().filter((r) => r instanceof ProjectRule_1.ProjectRule);
|
|
340
338
|
for (const rule of projectRules) {
|
|
341
339
|
try {
|
|
342
340
|
rule.reset();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LintEngine.js","sourceRoot":"","sources":["../../../src/engine/LintEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uCAAyB;AACzB,0DAA2B;AAE3B,4CAA6D;AAE7D,iDAA6C;AAC7C,qDAAkF;AAClF,iEAA8D;AAC9D,+DAAgF;AAChF,2CAAiD;
|
|
1
|
+
{"version":3,"file":"LintEngine.js","sourceRoot":"","sources":["../../../src/engine/LintEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anypoint Studio-compatible formatting defaults for Mule XML.
|
|
3
|
+
*
|
|
4
|
+
* These values match the standard Eclipse/Anypoint Studio XML editor:
|
|
5
|
+
* - 4-space indentation
|
|
6
|
+
* - 140-char line width
|
|
7
|
+
* - Attribute quotes are preserved (never mutates ' → " or vice-versa)
|
|
8
|
+
*/
|
|
9
|
+
export declare const MULE_XML_DEFAULTS: {
|
|
10
|
+
readonly tabWidth: 4;
|
|
11
|
+
readonly printWidth: 140;
|
|
12
|
+
readonly xmlQuoteAttributes: "preserve";
|
|
13
|
+
readonly xmlSortAttributesByKey: false;
|
|
14
|
+
readonly xmlSelfClosingSpace: true;
|
|
15
|
+
readonly xmlWhitespaceSensitivity: "ignore";
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* User-overridable formatting options.
|
|
19
|
+
*/
|
|
20
|
+
export interface FormatOptions {
|
|
21
|
+
/** Spaces per indentation level (default: 4 — Anypoint Studio standard) */
|
|
22
|
+
tabWidth?: number;
|
|
23
|
+
/** Max line width before wrapping (default: 140) */
|
|
24
|
+
printWidth?: number;
|
|
25
|
+
/** Attribute quote handling: 'preserve' (default), 'single', or 'double' */
|
|
26
|
+
xmlQuoteAttributes?: 'preserve' | 'single' | 'double';
|
|
27
|
+
/** Sort attributes alphabetically (default: false) */
|
|
28
|
+
xmlSortAttributesByKey?: boolean;
|
|
29
|
+
/** Dry-run mode — report changes without writing files */
|
|
30
|
+
check?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result of formatting a single file.
|
|
34
|
+
*/
|
|
35
|
+
export interface FormatResult {
|
|
36
|
+
filePath: string;
|
|
37
|
+
changed: boolean;
|
|
38
|
+
error?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Result of formatting raw XML content.
|
|
42
|
+
*/
|
|
43
|
+
export interface ContentFormatResult {
|
|
44
|
+
formatted: string;
|
|
45
|
+
changed: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Format raw XML content using Prettier with Mule-safe defaults.
|
|
49
|
+
*
|
|
50
|
+
* @param content Raw XML string
|
|
51
|
+
* @param options Override any formatting option
|
|
52
|
+
* @returns The formatted XML string
|
|
53
|
+
*/
|
|
54
|
+
export declare function formatXmlContent(content: string, options?: FormatOptions): Promise<ContentFormatResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Format a single XML file on disk.
|
|
57
|
+
*
|
|
58
|
+
* In `check` mode the file is not written — only `changed` is set.
|
|
59
|
+
*/
|
|
60
|
+
export declare function formatFile(filePath: string, options?: FormatOptions): Promise<FormatResult>;
|
|
61
|
+
/**
|
|
62
|
+
* Format all Mule XML files in a project.
|
|
63
|
+
*
|
|
64
|
+
* Discovers files matching `src/main/mule/**\/*.xml` (the standard Mule layout).
|
|
65
|
+
* In `check` mode no files are written.
|
|
66
|
+
*/
|
|
67
|
+
export declare function formatProject(projectPath: string, options?: FormatOptions): Promise<FormatResult[]>;
|
|
68
|
+
//# sourceMappingURL=MuleXmlFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MuleXmlFormatter.d.ts","sourceRoot":"","sources":["../../../src/formatter/MuleXmlFormatter.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;CAOpB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtD,sDAAsD;IACtD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACpB;AAID;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,YAAY,CAAC,CAsBvB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.MULE_XML_DEFAULTS = void 0;
|
|
40
|
+
exports.formatXmlContent = formatXmlContent;
|
|
41
|
+
exports.formatFile = formatFile;
|
|
42
|
+
exports.formatProject = formatProject;
|
|
43
|
+
const prettier = __importStar(require("prettier"));
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
47
|
+
/**
|
|
48
|
+
* Anypoint Studio-compatible formatting defaults for Mule XML.
|
|
49
|
+
*
|
|
50
|
+
* These values match the standard Eclipse/Anypoint Studio XML editor:
|
|
51
|
+
* - 4-space indentation
|
|
52
|
+
* - 140-char line width
|
|
53
|
+
* - Attribute quotes are preserved (never mutates ' → " or vice-versa)
|
|
54
|
+
*/
|
|
55
|
+
exports.MULE_XML_DEFAULTS = {
|
|
56
|
+
tabWidth: 4,
|
|
57
|
+
printWidth: 140,
|
|
58
|
+
xmlQuoteAttributes: 'preserve',
|
|
59
|
+
xmlSortAttributesByKey: false,
|
|
60
|
+
xmlSelfClosingSpace: true,
|
|
61
|
+
xmlWhitespaceSensitivity: 'ignore',
|
|
62
|
+
};
|
|
63
|
+
// ─── Core API ───────────────────────────────────────────────────────────────
|
|
64
|
+
/**
|
|
65
|
+
* Format raw XML content using Prettier with Mule-safe defaults.
|
|
66
|
+
*
|
|
67
|
+
* @param content Raw XML string
|
|
68
|
+
* @param options Override any formatting option
|
|
69
|
+
* @returns The formatted XML string
|
|
70
|
+
*/
|
|
71
|
+
async function formatXmlContent(content, options) {
|
|
72
|
+
const prettierOptions = buildPrettierOptions(options);
|
|
73
|
+
const formatted = await prettier.format(content, prettierOptions);
|
|
74
|
+
return {
|
|
75
|
+
formatted,
|
|
76
|
+
changed: formatted !== content,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Format a single XML file on disk.
|
|
81
|
+
*
|
|
82
|
+
* In `check` mode the file is not written — only `changed` is set.
|
|
83
|
+
*/
|
|
84
|
+
async function formatFile(filePath, options) {
|
|
85
|
+
const absolutePath = path.resolve(filePath);
|
|
86
|
+
try {
|
|
87
|
+
if (!fs.existsSync(absolutePath)) {
|
|
88
|
+
return { filePath: absolutePath, changed: false, error: `File not found: ${absolutePath}` };
|
|
89
|
+
}
|
|
90
|
+
const original = fs.readFileSync(absolutePath, 'utf-8');
|
|
91
|
+
const prettierOptions = buildPrettierOptions(options);
|
|
92
|
+
const formatted = await prettier.format(original, prettierOptions);
|
|
93
|
+
const changed = formatted !== original;
|
|
94
|
+
if (changed && !options?.check) {
|
|
95
|
+
fs.writeFileSync(absolutePath, formatted, 'utf-8');
|
|
96
|
+
}
|
|
97
|
+
return { filePath: absolutePath, changed };
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
101
|
+
return { filePath: absolutePath, changed: false, error: message };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Format all Mule XML files in a project.
|
|
106
|
+
*
|
|
107
|
+
* Discovers files matching `src/main/mule/**\/*.xml` (the standard Mule layout).
|
|
108
|
+
* In `check` mode no files are written.
|
|
109
|
+
*/
|
|
110
|
+
async function formatProject(projectPath, options) {
|
|
111
|
+
const absoluteProject = path.resolve(projectPath);
|
|
112
|
+
if (!fs.existsSync(absoluteProject)) {
|
|
113
|
+
return [{ filePath: absoluteProject, changed: false, error: `Project path not found: ${absoluteProject}` }];
|
|
114
|
+
}
|
|
115
|
+
// Discover Mule XML files
|
|
116
|
+
const pattern = 'src/main/mule/**/*.xml';
|
|
117
|
+
const files = await (0, fast_glob_1.default)(pattern, { cwd: absoluteProject, absolute: true });
|
|
118
|
+
if (files.length === 0) {
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
121
|
+
const results = [];
|
|
122
|
+
for (const file of files) {
|
|
123
|
+
results.push(await formatFile(file, options));
|
|
124
|
+
}
|
|
125
|
+
return results;
|
|
126
|
+
}
|
|
127
|
+
// ─── Internal helpers ───────────────────────────────────────────────────────
|
|
128
|
+
/**
|
|
129
|
+
* Merge user options with Mule XML defaults into a full Prettier config.
|
|
130
|
+
*
|
|
131
|
+
* Passes `@prettier/plugin-xml` as a plugin name string so that Prettier's
|
|
132
|
+
* own ESM-aware resolver handles the import. This avoids CJS/ESM issues.
|
|
133
|
+
*/
|
|
134
|
+
function buildPrettierOptions(options) {
|
|
135
|
+
return {
|
|
136
|
+
parser: 'xml',
|
|
137
|
+
plugins: ['@prettier/plugin-xml'],
|
|
138
|
+
tabWidth: options?.tabWidth ?? exports.MULE_XML_DEFAULTS.tabWidth,
|
|
139
|
+
printWidth: options?.printWidth ?? exports.MULE_XML_DEFAULTS.printWidth,
|
|
140
|
+
xmlQuoteAttributes: options?.xmlQuoteAttributes ?? exports.MULE_XML_DEFAULTS.xmlQuoteAttributes,
|
|
141
|
+
xmlSortAttributesByKey: options?.xmlSortAttributesByKey ?? exports.MULE_XML_DEFAULTS.xmlSortAttributesByKey,
|
|
142
|
+
xmlSelfClosingSpace: exports.MULE_XML_DEFAULTS.xmlSelfClosingSpace,
|
|
143
|
+
xmlWhitespaceSensitivity: exports.MULE_XML_DEFAULTS.xmlWhitespaceSensitivity,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=MuleXmlFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MuleXmlFormatter.js","sourceRoot":"","sources":["../../../src/formatter/MuleXmlFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/formatter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,iBAAiB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACR,aAAa,EACb,YAAY,EACZ,mBAAmB,GACtB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MULE_XML_DEFAULTS = exports.formatProject = exports.formatFile = exports.formatXmlContent = void 0;
|
|
4
|
+
var MuleXmlFormatter_1 = require("./MuleXmlFormatter");
|
|
5
|
+
Object.defineProperty(exports, "formatXmlContent", { enumerable: true, get: function () { return MuleXmlFormatter_1.formatXmlContent; } });
|
|
6
|
+
Object.defineProperty(exports, "formatFile", { enumerable: true, get: function () { return MuleXmlFormatter_1.formatFile; } });
|
|
7
|
+
Object.defineProperty(exports, "formatProject", { enumerable: true, get: function () { return MuleXmlFormatter_1.formatProject; } });
|
|
8
|
+
Object.defineProperty(exports, "MULE_XML_DEFAULTS", { enumerable: true, get: function () { return MuleXmlFormatter_1.MULE_XML_DEFAULTS; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|