@sfdxy/mule-lint 1.16.3 → 1.18.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 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 |
@@ -518,7 +521,8 @@ This tool exposes a **Model Context Protocol (MCP)** server, allowing AI agents
518
521
 
519
522
  ### Features
520
523
  - **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).
524
+ - **Resources**: `mule-lint://rules` (list all available rules), `mule-lint://docs/{slug}` (best practices documentation).
525
+ - **Prompts**: `analyze-project`, `explain-rule`, `fix-issue`.
522
526
 
523
527
  ### Setup for Claude Desktop
524
528
 
@@ -529,21 +533,23 @@ Add the following to your `claude_desktop_config.json`:
529
533
  "mcpServers": {
530
534
  "mule-lint": {
531
535
  "command": "npx",
532
- "args": ["-y", "--package=@sfdxy/mule-lint", "mule-lint-mcp"]
536
+ "args": ["-y", "@sfdxy/mule-lint", "mcp"]
533
537
  }
534
538
  }
535
539
  }
536
540
  ```
537
541
 
538
- ### Setup for VS Code
542
+ ### Setup for VS Code / Gemini Code Assist
539
543
 
540
544
  Create a `.vscode/mcp.json` file in your project root:
541
545
 
542
546
  ```json
543
547
  {
544
- "mule-lint": {
545
- "command": "npx",
546
- "args": ["-y", "--package=@sfdxy/mule-lint", "mule-lint-mcp"]
548
+ "servers": {
549
+ "mule-lint": {
550
+ "command": "npx",
551
+ "args": ["-y", "@sfdxy/mule-lint", "mcp"]
552
+ }
547
553
  }
548
554
  }
549
555
  ```
@@ -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('<path>', 'Path to scan (directory or file)')
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,34 @@ 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
+ });
82
+ // Format subcommand — format Mule XML files using Prettier
83
+ program
84
+ .command('format')
85
+ .description('Format Mule XML files using Prettier with Anypoint Studio-compatible defaults')
86
+ .argument('<path>', 'Path to a Mule XML file or project directory')
87
+ .option('--check', 'Check if files are formatted without writing (exit 1 if unformatted)')
88
+ .option('--tab-width <n>', 'Spaces per indent level (default: 4)', parseInt)
89
+ .option('--print-width <n>', 'Max line width before wrapping (default: 140)', parseInt)
90
+ .option('--xml-quote-attributes <style>', 'Attribute quote style: preserve, single, double (default: preserve)')
91
+ .action(async (targetPath, opts) => {
92
+ try {
93
+ await runFormat(targetPath, opts);
94
+ }
95
+ catch (error) {
96
+ const message = error instanceof Error ? error.message : String(error);
97
+ console.error(`Error: ${message}`);
98
+ process.exit(2);
99
+ }
100
+ });
69
101
  async function runLint(targetPath, options) {
70
102
  const absolutePath = path.resolve(targetPath);
71
103
  // Validate path exists
@@ -159,6 +191,55 @@ function resolveQualityGate(gateName, config) {
159
191
  throw new Error(`Unknown quality gate: ${gateName}. Use 'default', 'strict', or 'config'`);
160
192
  }
161
193
  }
194
+ async function runFormat(targetPath, options) {
195
+ const absolutePath = path.resolve(targetPath);
196
+ if (!fs.existsSync(absolutePath)) {
197
+ throw new Error(`Path does not exist: ${absolutePath}`);
198
+ }
199
+ // Lazy import to keep startup fast for the lint path
200
+ const { formatFile, formatProject } = await Promise.resolve().then(() => __importStar(require('../src/formatter/MuleXmlFormatter')));
201
+ const formatOptions = {
202
+ check: options.check,
203
+ tabWidth: options.tabWidth,
204
+ printWidth: options.printWidth,
205
+ xmlQuoteAttributes: options.xmlQuoteAttributes,
206
+ };
207
+ const stat = fs.statSync(absolutePath);
208
+ let results;
209
+ if (stat.isDirectory()) {
210
+ results = await formatProject(absolutePath, formatOptions);
211
+ }
212
+ else {
213
+ results = [await formatFile(absolutePath, formatOptions)];
214
+ }
215
+ if (results.length === 0) {
216
+ console.log('No Mule XML files found.');
217
+ return;
218
+ }
219
+ // Print results
220
+ let changedCount = 0;
221
+ let errorCount = 0;
222
+ for (const result of results) {
223
+ const relativePath = path.relative(process.cwd(), result.filePath);
224
+ if (result.error) {
225
+ console.error(` ✗ ${relativePath}: ${result.error}`);
226
+ errorCount++;
227
+ }
228
+ else if (result.changed) {
229
+ console.log(options.check ? ` ✗ ${relativePath} (needs formatting)` : ` ✓ ${relativePath}`);
230
+ changedCount++;
231
+ }
232
+ }
233
+ const unchangedCount = results.length - changedCount - errorCount;
234
+ console.log(`\n${results.length} file(s) scanned: ${changedCount} ${options.check ? 'need formatting' : 'formatted'}, ${unchangedCount} unchanged, ${errorCount} error(s)`);
235
+ // In check mode, exit 1 if any files are unformatted
236
+ if (options.check && changedCount > 0) {
237
+ process.exit(1);
238
+ }
239
+ if (errorCount > 0) {
240
+ process.exit(2);
241
+ }
242
+ }
162
243
  // Run the CLI
163
244
  program.parse();
164
245
  //# sourceMappingURL=mule-lint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mule-lint.js","sourceRoot":"","sources":["../../bin/mule-lint.ts"],"names":[],"mappings":"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"}
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.16.3",
3
+ "version": "1.18.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",
@@ -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,12 +40,15 @@
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",
48
- "xpath": "^0.0.34"
49
+ "prettier": "^3.8.1",
50
+ "xpath": "^0.0.34",
51
+ "zod": "^3.25.0"
49
52
  },
50
53
  "devDependencies": {
51
54
  "@types/jest": "^29.5.11",
@@ -55,7 +58,6 @@
55
58
  "@typescript-eslint/parser": "^6.15.0",
56
59
  "eslint": "^8.56.0",
57
60
  "jest": "^29.7.0",
58
- "prettier": "^3.7.4",
59
61
  "ts-jest": "^29.1.1",
60
62
  "typescript": "^5.3.3"
61
63
  },
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,4CAUC;AAOD,gCAyBC;AAQD,sCAuBC;AAzID,mDAAqC;AACrC,uCAAyB;AACzB,2CAA6B;AAC7B,0DAA2B;AAE3B;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG;IAC7B,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,GAAG;IACf,kBAAkB,EAAE,UAAmB;IACvC,sBAAsB,EAAE,KAAK;IAC7B,mBAAmB,EAAE,IAAI;IACzB,wBAAwB,EAAE,QAAiB;CACrC,CAAC;AAmCX,+EAA+E;AAE/E;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CAClC,OAAe,EACf,OAAuB;IAEvB,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAClE,OAAO;QACH,SAAS;QACT,OAAO,EAAE,SAAS,KAAK,OAAO;KACjC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAC5B,QAAgB,EAChB,OAAuB;IAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,YAAY,EAAE,EAAE,CAAC;QAChG,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,SAAS,KAAK,QAAQ,CAAC;QAEvC,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC7B,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACtE,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CAC/B,WAAmB,EACnB,OAAuB;IAEvB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,eAAe,EAAE,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,0BAA0B;IAC1B,MAAM,OAAO,GAAG,wBAAwB,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAE,EAAC,OAAO,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,+EAA+E;AAE/E;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,OAAuB;IACjD,OAAO;QACH,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC,sBAAsB,CAAC;QACjC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,yBAAiB,CAAC,QAAQ;QACzD,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,yBAAiB,CAAC,UAAU;QAC/D,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,yBAAiB,CAAC,kBAAkB;QACvF,sBAAsB,EAAE,OAAO,EAAE,sBAAsB,IAAI,yBAAiB,CAAC,sBAAsB;QACnG,mBAAmB,EAAE,yBAAiB,CAAC,mBAAmB;QAC1D,wBAAwB,EAAE,yBAAiB,CAAC,wBAAwB;KACnD,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { formatXmlContent, formatFile, formatProject, MULE_XML_DEFAULTS, } from './MuleXmlFormatter';
2
+ export type { FormatOptions, FormatResult, ContentFormatResult, } from './MuleXmlFormatter';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatter/index.ts"],"names":[],"mappings":";;;AAAA,uDAK4B;AAJxB,oHAAA,gBAAgB,OAAA;AAChB,8GAAA,UAAU,OAAA;AACV,iHAAA,aAAa,OAAA;AACb,qHAAA,iBAAiB,OAAA"}
@@ -4,4 +4,5 @@ export * from './engine';
4
4
  export * from './rules';
5
5
  export * from './formatters';
6
6
  export * from './quality';
7
+ export * from './formatter';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AAGxB,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AAGxB,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC"}
package/dist/src/index.js CHANGED
@@ -27,4 +27,6 @@ __exportStar(require("./rules"), exports);
27
27
  __exportStar(require("./formatters"), exports);
28
28
  // Quality scoring
29
29
  __exportStar(require("./quality"), exports);
30
+ // XML Formatter
31
+ __exportStar(require("./formatter"), exports);
30
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;;;;;;;;;;;;;AAErC,QAAQ;AACR,0CAAwB;AAExB,iBAAiB;AACjB,yCAAuB;AAEvB,SAAS;AACT,2CAAyB;AAEzB,QAAQ;AACR,0CAAwB;AAExB,aAAa;AACb,+CAA6B;AAE7B,kBAAkB;AAClB,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;;;;;;;;;;;;;AAErC,QAAQ;AACR,0CAAwB;AAExB,iBAAiB;AACjB,yCAAuB;AAEvB,SAAS;AACT,2CAAyB;AAEzB,QAAQ;AACR,0CAAwB;AAExB,aAAa;AACb,+CAA6B;AAE7B,kBAAkB;AAClB,4CAA0B;AAE1B,gBAAgB;AAChB,8CAA4B"}
@@ -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;IA2LlB,OAAO,CAAC,cAAc;IAmKtB,OAAO,CAAC,YAAY;IA8EP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAKtC"}
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;IAiUlB,OAAO,CAAC,cAAc;IAmKtB,OAAO,CAAC,YAAY;IAiFP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAKtC"}