@sfdxy/mule-lint 1.21.0 → 1.23.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.
Files changed (37) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/mcp/prompts/index.d.ts +1 -1
  3. package/dist/src/mcp/prompts/index.d.ts.map +1 -1
  4. package/dist/src/mcp/prompts/index.js +62 -1
  5. package/dist/src/mcp/prompts/index.js.map +1 -1
  6. package/dist/src/mcp/resources/index.js +114 -16
  7. package/dist/src/mcp/resources/index.js.map +1 -1
  8. package/dist/src/mcp/tools/getRuleDetails.d.ts.map +1 -1
  9. package/dist/src/mcp/tools/getRuleDetails.js +30 -1
  10. package/dist/src/mcp/tools/getRuleDetails.js.map +1 -1
  11. package/dist/src/rules/index.js +3 -3
  12. package/dist/src/rules/index.js.map +1 -1
  13. package/dist/src/rules/logging/{NewLoggingRules.d.ts → LoggingPatternRules.d.ts} +1 -1
  14. package/dist/src/rules/logging/LoggingPatternRules.d.ts.map +1 -0
  15. package/dist/src/rules/logging/{NewLoggingRules.js → LoggingPatternRules.js} +1 -1
  16. package/dist/src/rules/logging/LoggingPatternRules.js.map +1 -0
  17. package/dist/src/rules/naming/FlowCasingRule.d.ts +6 -3
  18. package/dist/src/rules/naming/FlowCasingRule.d.ts.map +1 -1
  19. package/dist/src/rules/naming/FlowCasingRule.js +26 -8
  20. package/dist/src/rules/naming/FlowCasingRule.js.map +1 -1
  21. package/docs/README.md +87 -27
  22. package/docs/best-practices/ci-cd.md +135 -0
  23. package/docs/best-practices/connector-patterns.md +253 -0
  24. package/docs/best-practices/dataweave-patterns.md +370 -0
  25. package/docs/best-practices/deployment-2026.md +171 -0
  26. package/docs/best-practices/error-handling.md +277 -0
  27. package/docs/best-practices/event-driven-patterns.md +424 -0
  28. package/docs/best-practices/logging.md +163 -0
  29. package/docs/best-practices/mulesoft-best-practices.md +72 -865
  30. package/docs/best-practices/performance.md +273 -0
  31. package/docs/best-practices/security.md +181 -0
  32. package/docs/best-practices/testing.md +190 -0
  33. package/docs/best-practices/variable-contracts.md +191 -0
  34. package/docs/linter/naming-conventions.md +4 -0
  35. package/package.json +1 -1
  36. package/dist/src/rules/logging/NewLoggingRules.d.ts.map +0 -1
  37. package/dist/src/rules/logging/NewLoggingRules.js.map +0 -1
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sfdxy/mule-lint",
3
- "version": "1.21.0",
3
+ "version": "1.23.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",
@@ -1,6 +1,6 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  /**
3
- * Register all MCP prompts (analyze-project, explain-rule, fix-issue)
3
+ * Register all MCP prompts (analyze-project, explain-rule, fix-issue, review-best-practices)
4
4
  */
5
5
  export declare function registerPrompts(server: McpServer): void;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAIvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAKvD"}
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerPrompts = registerPrompts;
4
4
  const zod_1 = require("zod");
5
5
  /**
6
- * Register all MCP prompts (analyze-project, explain-rule, fix-issue)
6
+ * Register all MCP prompts (analyze-project, explain-rule, fix-issue, review-best-practices)
7
7
  */
8
8
  function registerPrompts(server) {
9
9
  registerAnalyzeProject(server);
10
10
  registerExplainRule(server);
11
11
  registerFixIssue(server);
12
+ registerReviewBestPractices(server);
12
13
  }
13
14
  /**
14
15
  * Prompt: analyze-project
@@ -84,4 +85,64 @@ function registerFixIssue(server) {
84
85
  };
85
86
  });
86
87
  }
88
+ /**
89
+ * Prompt: review-best-practices
90
+ *
91
+ * Guides the LLM to read applicable best-practice docs based on project type,
92
+ * then run lint analysis, then cross-reference findings with best practices
93
+ * to provide improvement suggestions beyond just lint rule violations.
94
+ */
95
+ function registerReviewBestPractices(server) {
96
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP SDK generic type inference exceeds TS depth limits (TS2589)
97
+ server.registerPrompt('review-best-practices', {
98
+ description: 'Review a MuleSoft project against best practices. Reads applicable guides based on project type, runs lint analysis, and provides improvement recommendations beyond rule violations.',
99
+ argsSchema: {
100
+ path: zod_1.z.string().describe('The absolute path to the MuleSoft project'),
101
+ projectType: zod_1.z
102
+ .string()
103
+ .describe('The type of project: "http-api" (System/Experience API with HTTP listener), "event-driven" (Process API with platform events/MQ), or "batch" (scheduler/batch processing)'),
104
+ },
105
+ }, ({ path, projectType }) => {
106
+ // Build the list of recommended docs based on project type
107
+ const commonDocs = ['error-handling', 'logging', 'security', 'variables', 'dataweave'];
108
+ const typeDocs = {
109
+ 'http-api': ['connectors', 'performance', 'folder-structure'],
110
+ 'event-driven': ['event-driven', 'connectors', 'performance'],
111
+ batch: ['event-driven', 'performance', 'connectors'],
112
+ };
113
+ const extraDocs = typeDocs[projectType] ?? [];
114
+ const recommendedDocs = [...commonDocs, ...extraDocs];
115
+ const docsList = recommendedDocs.map((d) => `mule-lint://docs/${d}`).join('\n ');
116
+ return {
117
+ messages: [
118
+ {
119
+ role: 'user',
120
+ content: {
121
+ type: 'text',
122
+ text: `Please perform a comprehensive best practices review of the MuleSoft project at ${path}.
123
+
124
+ This is a "${projectType}" project. Follow these steps:
125
+
126
+ 1. **Read best practice guides** — read these resources first to understand the standards:
127
+ ${docsList}
128
+
129
+ 2. **Run lint analysis** — use the run_lint_analysis tool on the project path.
130
+
131
+ 3. **Cross-reference** — compare lint findings with the best practices you read. Look for:
132
+ - Lint rule violations and their recommended fixes
133
+ - Patterns that are technically valid but don't follow best practices
134
+ - Missing patterns that should be present (e.g., entity configs, DWL modules, correlation IDs)
135
+ - **Advanced patterns**: VM queue dispatchers for multi-entity orchestration, scheduler watermarking for incremental polling, pre-batch bulk lookups to prevent N+1 queries, cross-system value mapping strategy selection, centralized error log objects for CRM visibility
136
+
137
+ 4. **Report** — provide a structured summary with:
138
+ - Critical issues (must fix)
139
+ - Recommended improvements (should fix)
140
+ - Architecture observations (consider for future)
141
+ - Specific code examples for each recommendation`,
142
+ },
143
+ },
144
+ ],
145
+ };
146
+ });
147
+ }
87
148
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/prompts/index.ts"],"names":[],"mappings":";;AAMA,0CAIC;AAVD,6BAAwB;AAGxB;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAiB;IAC/C,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,MAAiB;IAC/C,iIAAiI;IAChI,MAAc,CAAC,cAAc,CAC5B,iBAAiB,EACjB;QACE,WAAW,EACT,uFAAuF;QACzF,UAAU,EAAE;YACV,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;SACzE;KACF,EACD,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;QAC7B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0CAA0C,IAAI,8KAA8K;qBACnO;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAiB;IAC5C,iIAAiI;IAChI,MAAc,CAAC,cAAc,CAC5B,cAAc,EACd;QACE,WAAW,EAAE,2EAA2E;QACxF,UAAU,EAAE;YACV,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC9E;KACF,EACD,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;QACjC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,6CAA6C,MAAM,yJAAyJ;qBACnN;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAiB;IACzC,iIAAiI;IAChI,MAAc,CAAC,cAAc,CAC5B,WAAW,EACX;QACE,WAAW,EAAE,uDAAuD;QACpE,UAAU,EAAE;YACV,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACnE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACnE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;SACzE;KACF,EACD,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAiD,EAAE,EAAE;QACvE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,kCAAkC,IAAI,MAAM,KAAK,4CAA4C,IAAI,oHAAoH;qBAC5N;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -76,68 +76,166 @@ function registerRulesResource(server) {
76
76
  }
77
77
  /**
78
78
  * Resource: mule-lint://docs/{slug}
79
- * Access official MuleSoft development best practices documentation
79
+ * Access official MuleSoft development best practices documentation.
80
+ *
81
+ * Each slug maps to a focused, self-contained guide optimized for LLM consumption.
82
+ * Guides are typically < 200 lines and cover a single topic with decision matrices,
83
+ * code examples, anti-patterns, and checklists.
80
84
  */
81
85
  function registerDocsResource(server) {
82
86
  server.registerResource('docs', new mcp_js_1.ResourceTemplate('mule-lint://docs/{slug}', {
83
87
  list: () => {
84
88
  return {
85
89
  resources: [
90
+ // ── Core Development ──
86
91
  {
87
- uri: 'mule-lint://docs/architecture',
88
- name: 'Architecture',
92
+ uri: 'mule-lint://docs/error-handling',
93
+ name: 'Error Handling',
94
+ description: 'Global error handlers, HTTP vs event-driven patterns, connector error types, centralized CRM error log objects, self-healing error flows',
89
95
  mimeType: 'text/markdown',
90
96
  },
91
97
  {
92
- uri: 'mule-lint://docs/best-practices',
93
- name: 'Best Practices',
98
+ uri: 'mule-lint://docs/variables',
99
+ name: 'Variable Contracts',
100
+ description: 'Standard variable sets for APIKit routes and event listeners, correlation ID sourcing, array mirroring',
94
101
  mimeType: 'text/markdown',
95
102
  },
96
103
  {
97
- uri: 'mule-lint://docs/documentation-standards',
98
- name: 'Documentation Standards',
104
+ uri: 'mule-lint://docs/logging',
105
+ name: 'Logging Standards',
106
+ description: 'Logger categories, structured JSON logging, MDC/tracing module, PII prevention, log levels',
107
+ mimeType: 'text/markdown',
108
+ },
109
+ {
110
+ uri: 'mule-lint://docs/security',
111
+ name: 'Security',
112
+ description: 'Secure properties, TLS 1.2+, credential management, zero-trust architecture, input validation',
113
+ mimeType: 'text/markdown',
114
+ },
115
+ {
116
+ uri: 'mule-lint://docs/performance',
117
+ name: 'Performance',
118
+ description: 'Timeouts, connection pooling, async error handling, streaming, flow complexity limits, pre-batch bulk lookup (N+1 prevention with scatter-gather + groupBy)',
119
+ mimeType: 'text/markdown',
120
+ },
121
+ // ── Architecture & Patterns ──
122
+ {
123
+ uri: 'mule-lint://docs/event-driven',
124
+ name: 'Event-Driven Patterns',
125
+ description: 'Platform Events, Anypoint MQ, VM Queue Dispatcher, scheduler watermarking with ObjectStore, deferred task polling, AsyncAPI 2.6, deduplication',
99
126
  mimeType: 'text/markdown',
100
127
  },
101
- { uri: 'mule-lint://docs/extending', name: 'Extending', mimeType: 'text/markdown' },
128
+ {
129
+ uri: 'mule-lint://docs/connectors',
130
+ name: 'Connector Patterns',
131
+ description: 'Entity config YAML pattern, Salesforce/NetSuite connector gotchas, protocol negotiation, ObjectStore caching, DWL utility modules',
132
+ mimeType: 'text/markdown',
133
+ },
134
+ {
135
+ uri: 'mule-lint://docs/dataweave',
136
+ name: 'DataWeave Patterns',
137
+ description: 'DWL modules, type coercion for connectors, cross-system value mapping (4 strategies: DWL, JSON dictionary, bidirectional, external), import path rules',
138
+ mimeType: 'text/markdown',
139
+ },
140
+ // ── Project & Operations ──
102
141
  {
103
142
  uri: 'mule-lint://docs/folder-structure',
104
143
  name: 'Folder Structure',
144
+ description: 'Standard Maven layout for Mule 4 projects, file naming, directory organization',
105
145
  mimeType: 'text/markdown',
106
146
  },
107
147
  {
108
- uri: 'mule-lint://docs/naming',
109
- name: 'Naming Conventions',
148
+ uri: 'mule-lint://docs/documentation-standards',
149
+ name: 'Documentation Standards',
150
+ description: 'Flow doc:description, README templates, DataWeave comments, commit message conventions',
151
+ mimeType: 'text/markdown',
152
+ },
153
+ {
154
+ uri: 'mule-lint://docs/testing',
155
+ name: 'Testing (MUnit)',
156
+ description: 'MUnit test structure, error scenario testing, event-driven testing, coverage goals',
157
+ mimeType: 'text/markdown',
158
+ },
159
+ {
160
+ uri: 'mule-lint://docs/ci-cd',
161
+ name: 'CI/CD Integration',
162
+ description: 'Pipeline stages, mule-lint integration, quality gates, SARIF output, GitHub Actions',
163
+ mimeType: 'text/markdown',
164
+ },
165
+ {
166
+ uri: 'mule-lint://docs/deployment',
167
+ name: 'Deployment & Modernization (2026)',
168
+ description: 'CloudHub 2.0, Java 17 migration, Anypoint Code Builder, API Governance, monitoring',
169
+ mimeType: 'text/markdown',
170
+ },
171
+ // ── Reference ──
172
+ {
173
+ uri: 'mule-lint://docs/best-practices',
174
+ name: 'Best Practices Index',
175
+ description: 'Master index linking to all topic-specific guides with quick reference card and API-Led overview',
110
176
  mimeType: 'text/markdown',
111
177
  },
112
178
  {
113
179
  uri: 'mule-lint://docs/rules-catalog',
114
180
  name: 'Rules Catalog',
181
+ description: 'Complete reference for all 82 lint rules with severity, examples, and configuration options',
182
+ mimeType: 'text/markdown',
183
+ },
184
+ // ── Linter Internals (for contributors) ──
185
+ {
186
+ uri: 'mule-lint://docs/architecture',
187
+ name: 'Linter Architecture',
188
+ description: 'Internal linter design, patterns, and data flow (for contributors)',
189
+ mimeType: 'text/markdown',
190
+ },
191
+ {
192
+ uri: 'mule-lint://docs/extending',
193
+ name: 'Extending the Linter',
194
+ description: 'How to create custom rules and extend mule-lint (for contributors)',
115
195
  mimeType: 'text/markdown',
116
196
  },
117
197
  ],
118
198
  };
119
199
  },
120
200
  }), {
121
- description: 'Access the official MuleSoft development best practices and internal documentation. Read these documents to ensure your generated code aligns with our architectural standards, naming conventions, and project structure.',
201
+ description: 'Access MuleSoft development best practices and linter documentation. Each slug maps to a focused topic guide. Start by listing available resources, then read the guides relevant to your current task. For example, read "error-handling" when implementing error handlers, or "connectors" when configuring Salesforce/NetSuite connectors.',
122
202
  mimeType: 'text/markdown',
123
203
  }, (uri, variables) => {
124
204
  const slug = variables.slug;
205
+ // Map slugs to file paths — topic-specific best practices + linter docs
125
206
  const docsMap = {
126
- architecture: 'docs/linter/architecture.md',
127
- 'best-practices': 'docs/best-practices/mulesoft-best-practices.md',
207
+ // Core Development
208
+ 'error-handling': 'docs/best-practices/error-handling.md',
209
+ variables: 'docs/best-practices/variable-contracts.md',
210
+ logging: 'docs/best-practices/logging.md',
211
+ security: 'docs/best-practices/security.md',
212
+ performance: 'docs/best-practices/performance.md',
213
+ // Architecture & Patterns
214
+ 'event-driven': 'docs/best-practices/event-driven-patterns.md',
215
+ connectors: 'docs/best-practices/connector-patterns.md',
216
+ dataweave: 'docs/best-practices/dataweave-patterns.md',
217
+ // Project & Operations
218
+ 'folder-structure': 'docs/best-practices/folder-structure.md',
128
219
  'documentation-standards': 'docs/best-practices/documentation-standards.md',
220
+ testing: 'docs/best-practices/testing.md',
221
+ 'ci-cd': 'docs/best-practices/ci-cd.md',
222
+ deployment: 'docs/best-practices/deployment-2026.md',
223
+ // Reference
224
+ 'best-practices': 'docs/best-practices/mulesoft-best-practices.md',
225
+ 'rules-catalog': 'docs/best-practices/rules-catalog.md',
226
+ // Linter Internals — keep for contributors
227
+ architecture: 'docs/linter/architecture.md',
129
228
  extending: 'docs/linter/extending.md',
130
- 'folder-structure': 'docs/best-practices/folder-structure.md',
131
229
  naming: 'docs/linter/naming-conventions.md',
132
- 'rules-catalog': 'docs/best-practices/rules-catalog.md',
133
230
  };
134
231
  const relativePath = docsMap[slug];
135
232
  if (!relativePath) {
233
+ const available = Object.keys(docsMap).join(', ');
136
234
  return {
137
235
  contents: [
138
236
  {
139
237
  uri: uri.href,
140
- text: `Document not found: ${slug}. Available: ${Object.keys(docsMap).join(', ')}`,
238
+ text: `Document not found: "${slug}". Available slugs: ${available}`,
141
239
  mimeType: 'text/plain',
142
240
  },
143
241
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/resources/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/resources/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getRuleDetails.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/getRuleDetails.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4C9D"}
1
+ {"version":3,"file":"getRuleDetails.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/getRuleDetails.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BpE;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmD9D"}
@@ -3,12 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerGetRuleDetails = registerGetRuleDetails;
4
4
  const zod_1 = require("zod");
5
5
  const rules_1 = require("../../rules");
6
+ /**
7
+ * Mapping from rule category to the best-practice doc slug.
8
+ * Used by get_rule_details to point agents at the relevant guide.
9
+ */
10
+ const categoryToDocSlug = {
11
+ 'error-handling': 'error-handling',
12
+ naming: 'variables',
13
+ security: 'security',
14
+ logging: 'logging',
15
+ http: 'performance',
16
+ performance: 'performance',
17
+ documentation: 'documentation-standards',
18
+ standards: 'best-practices',
19
+ complexity: 'performance',
20
+ structure: 'folder-structure',
21
+ yaml: 'security',
22
+ dataweave: 'dataweave',
23
+ 'api-led': 'best-practices',
24
+ connector: 'connectors',
25
+ governance: 'ci-cd',
26
+ operations: 'ci-cd',
27
+ experimental: 'best-practices',
28
+ };
6
29
  /**
7
30
  * Register the get_rule_details tool on the MCP server
8
31
  */
9
32
  function registerGetRuleDetails(server) {
10
33
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP SDK generic type inference exceeds TS depth limits (TS2589)
11
- 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.', {
34
+ 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. Returns rule metadata, the relevant best-practice guide slug, and related rules.', {
12
35
  ruleId: zod_1.z.string().describe('The ID of the rule to retrieve (e.g., "MULE-001", "DW-004")'),
13
36
  }, ({ ruleId }) => {
14
37
  const rule = (0, rules_1.getRuleById)(ruleId);
@@ -23,6 +46,7 @@ function registerGetRuleDetails(server) {
23
46
  isError: true,
24
47
  };
25
48
  }
49
+ const docSlug = categoryToDocSlug[rule.category] || 'best-practices';
26
50
  return {
27
51
  content: [
28
52
  {
@@ -35,6 +59,11 @@ function registerGetRuleDetails(server) {
35
59
  severity: rule.severity,
36
60
  issueType: rule.issueType ?? 'code-smell',
37
61
  docsUrl: rule.docsUrl,
62
+ bestPracticeGuide: {
63
+ slug: docSlug,
64
+ uri: `mule-lint://docs/${docSlug}`,
65
+ hint: `Read the "${docSlug}" resource for detailed patterns, code examples, and checklists related to this rule.`,
66
+ },
38
67
  }, null, 2),
39
68
  },
40
69
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"getRuleDetails.js","sourceRoot":"","sources":["../../../../src/mcp/tools/getRuleDetails.ts"],"names":[],"mappings":";;AAQA,wDA4CC;AApDD,6BAAwB;AAGxB,uCAA0C;AAE1C;;GAEG;AACH,SAAgB,sBAAsB,CAAC,MAAiB;IACtD,iIAAiI;IAChI,MAAc,CAAC,IAAI,CAClB,kBAAkB,EAClB,mLAAmL,EACnL;QACE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;KAC3F,EACD,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mBAAmB,MAAM,EAAE;qBAClC;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,YAAY;wBACzC,OAAO,EAAE,IAAI,CAAC,OAAO;qBACtB,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getRuleDetails.js","sourceRoot":"","sources":["../../../../src/mcp/tools/getRuleDetails.ts"],"names":[],"mappings":";;AAgCA,wDAmDC;AAnFD,6BAAwB;AAGxB,uCAA0C;AAE1C;;;GAGG;AACH,MAAM,iBAAiB,GAA2B;IAChD,gBAAgB,EAAE,gBAAgB;IAClC,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,yBAAyB;IACxC,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,gBAAgB;IAC3B,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,gBAAgB;CAC/B,CAAC;AAEF;;GAEG;AACH,SAAgB,sBAAsB,CAAC,MAAiB;IACtD,iIAAiI;IAChI,MAAc,CAAC,IAAI,CAClB,kBAAkB,EAClB,oQAAoQ,EACpQ;QACE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;KAC3F,EACD,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mBAAmB,MAAM,EAAE;qBAClC;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC;QAErE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,YAAY;wBACzC,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,iBAAiB,EAAE;4BACjB,IAAI,EAAE,OAAO;4BACb,GAAG,EAAE,oBAAoB,OAAO,EAAE;4BAClC,IAAI,EAAE,aAAa,OAAO,uFAAuF;yBAClH;qBACF,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -51,7 +51,7 @@ const SecurePropertiesEncryptionRule_1 = require("./security/SecurePropertiesEnc
51
51
  const LoggerCategoryRule_1 = require("./logging/LoggerCategoryRule");
52
52
  const LoggerPayloadRule_1 = require("./logging/LoggerPayloadRule");
53
53
  const LoggerInUntilSuccessfulRule_1 = require("./logging/LoggerInUntilSuccessfulRule");
54
- const NewLoggingRules_1 = require("./logging/NewLoggingRules");
54
+ const LoggingPatternRules_1 = require("./logging/LoggingPatternRules");
55
55
  const ExcessiveLoggersRule_1 = require("./logging/ExcessiveLoggersRule");
56
56
  // Import all rules - Standards
57
57
  const ChoiceAntiPatternRule_1 = require("./standards/ChoiceAntiPatternRule");
@@ -196,8 +196,8 @@ exports.ALL_RULES = [
196
196
  new LoggerCategoryRule_1.LoggerCategoryRule(),
197
197
  new LoggerPayloadRule_1.LoggerPayloadRule(),
198
198
  new LoggerInUntilSuccessfulRule_1.LoggerInUntilSuccessfulRule(),
199
- new NewLoggingRules_1.StructuredLoggingRule(), // LOG-001: Structured Logging
200
- new NewLoggingRules_1.SensitiveDataLoggingRule(), // LOG-004: Sensitive Data in Logs
199
+ new LoggingPatternRules_1.StructuredLoggingRule(), // LOG-001: Structured Logging
200
+ new LoggingPatternRules_1.SensitiveDataLoggingRule(), // LOG-004: Sensitive Data in Logs
201
201
  // Standards Rules (MULE-008, 010, 701)
202
202
  new ChoiceAntiPatternRule_1.ChoiceAntiPatternRule(),
203
203
  new DwlStandardsRule_1.DwlStandardsRule(),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkSA,gDAEC;AAKD,kCAEC;AAKD,sCAEC;AAlTD,oBAAoB;AACpB,kDAAgC;AAChC,qDAAmC;AAEnC,oCAAoC;AACpC,oFAAiF;AACjF,sFAAmF;AACnF,oEAAiE;AACjE,0EAAuE;AACvE,wEAAqE;AACrE,gEAA6D;AAC7D,gGAA6F;AAC7F,4FAAyF;AACzF,wEAAqE;AAErE,4BAA4B;AAC5B,4DAAyD;AACzD,4DAAyD;AACzD,oEAAiE;AAEjE,8BAA8B;AAC9B,oEAAiE;AACjE,kFAA+E;AAC/E,gEAA6D;AAC7D,8DAA2D;AAC3D,kEAA+D;AAC/D,wEAAqE;AACrE,gFAA6E;AAC7E,gGAA6F;AAC7F,gFAA6E;AAC7E,gFAA6E;AAC7E,8FAA2F;AAE3F,6BAA6B;AAC7B,qEAAkE;AAClE,mEAAgE;AAChE,uFAAoF;AACpF,+DAA4F;AAC5F,yEAAsE;AAEtE,+BAA+B;AAC/B,6EAA0E;AAC1E,mEAAgE;AAChE,iFAA8E;AAC9E,qEAAkE;AAClE,iFAA8E;AAC9E,2EAAwE;AACxE,2EAAwE;AACxE,2FAAwF;AACxF,yGAAsG;AACtG,uGAAoG;AAEpG,0BAA0B;AAC1B,gEAA6D;AAC7D,oEAAiE;AACjE,4DAAyD;AACzD,gFAA6E;AAE7E,+BAA+B;AAC/B,iFAA8E;AAC9E,uFAAoF;AAEpF,mCAAmC;AACnC,6EAA0E;AAC1E,2EAAwE;AACxE,qEAAkE;AAElE,iCAAiC;AACjC,mFAAgF;AAChF,+EAA4E;AAC5E,6EAA0E;AAC1E,+EAA4E;AAC5E,qFAAkF;AAClF,6FAA0F;AAE1F,gCAAgC;AAChC,wEAAqE;AAErE,0BAA0B;AAC1B,gDAAkG;AAElG,+BAA+B;AAC/B,+DAIoC;AAEpC,+BAA+B;AAC/B,+DAA4F;AAC5F,qFAAkF;AAClF,yFAAsF;AAEtF,6BAA6B;AAC7B,uDAA+F;AAC/F,yEAAsE;AACtE,uFAAoF;AACpF,yFAAsF;AACtF,uFAAoF;AAEpF,kCAAkC;AAClC,wEAI0C;AAE1C,0CAA0C;AAC1C,sEAAmE;AACnE,gEAA6D;AAC7D,kFAA+E;AAC/E,wEAAqE;AAErE,gCAAgC;AAChC,kEAAiF;AAIjF,2CAA2C;AAC3C,kFAAiF;AAAxE,gIAAA,sBAAsB,OAAA;AAC/B,oFAAmF;AAA1E,kIAAA,uBAAuB,OAAA;AAChC,kEAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,wEAAuE;AAA9D,sHAAA,iBAAiB,OAAA;AAC1B,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AAEzB,mCAAmC;AACnC,0DAAyD;AAAhD,gHAAA,cAAc,OAAA;AACvB,0DAAyD;AAAhD,gHAAA,cAAc,OAAA;AACvB,kEAAiE;AAAxD,wHAAA,kBAAkB,OAAA;AAE3B,qCAAqC;AACrC,kEAAiE;AAAxD,sHAAA,iBAAiB,OAAA;AAC1B,gFAA+E;AAAtE,oIAAA,wBAAwB,OAAA;AACjC,8DAA6D;AAApD,kHAAA,eAAe,OAAA;AAExB,oCAAoC;AACpC,mEAAkE;AAAzD,wHAAA,kBAAkB,OAAA;AAC3B,iEAAgE;AAAvD,sHAAA,iBAAiB,OAAA;AAC1B,qFAAoF;AAA3E,0IAAA,2BAA2B,OAAA;AAEpC,sCAAsC;AACtC,2EAA0E;AAAjE,8HAAA,qBAAqB,OAAA;AAC9B,iEAAgE;AAAvD,oHAAA,gBAAgB,OAAA;AACzB,+EAA8E;AAArE,kIAAA,uBAAuB,OAAA;AAEhC,iCAAiC;AACjC,8DAA6D;AAApD,sHAAA,iBAAiB,OAAA;AAC1B,kEAAiE;AAAxD,0HAAA,mBAAmB,OAAA;AAC5B,0DAAyD;AAAhD,kHAAA,eAAe,OAAA;AAExB,0CAA0C;AAC1C,2EAA0E;AAAjE,0HAAA,mBAAmB,OAAA;AAC5B,yEAAwE;AAA/D,wHAAA,kBAAkB,OAAA;AAE3B,wCAAwC;AACxC,iFAAgF;AAAvE,kIAAA,uBAAuB,OAAA;AAChC,6EAA4E;AAAnE,8HAAA,qBAAqB,OAAA;AAC9B,2EAA0E;AAAjE,4HAAA,oBAAoB,OAAA;AAE7B;;;GAGG;AACU,QAAA,SAAS,GAAW;IAC/B,sDAAsD;IACtD,IAAI,+CAAsB,EAAE;IAC5B,IAAI,iDAAuB,EAAE;IAC7B,IAAI,+BAAc,EAAE;IACpB,IAAI,qCAAiB,EAAE;IACvB,IAAI,mCAAgB,EAAE;IACtB,IAAI,2BAAY,EAAE,EAAE,mCAAmC;IACvD,IAAI,2DAA4B,EAAE,EAAE,sCAAsC;IAC1E,IAAI,uDAA0B,EAAE,EAAE,oCAAoC;IACtE,IAAI,mCAAgB,EAAE,EAAE,kCAAkC;IAE1D,oCAAoC;IACpC,IAAI,+BAAc,EAAE;IACpB,IAAI,+BAAc,EAAE;IACpB,IAAI,uCAAkB,EAAE;IAExB,sCAAsC;IACtC,IAAI,qCAAiB,EAAE;IACvB,IAAI,mDAAwB,EAAE;IAC9B,IAAI,iCAAe,EAAE;IACrB,IAAI,+BAAc,EAAE,EAAE,6BAA6B;IACnD,IAAI,mCAAgB,EAAE,EAAE,yBAAyB;IACjD,IAAI,yCAAmB,EAAE,EAAE,4BAA4B;IAEvD,qCAAqC;IACrC,IAAI,uCAAkB,EAAE;IACxB,IAAI,qCAAiB,EAAE;IACvB,IAAI,yDAA2B,EAAE;IACjC,IAAI,uCAAqB,EAAE,EAAE,8BAA8B;IAC3D,IAAI,0CAAwB,EAAE,EAAE,kCAAkC;IAElE,uCAAuC;IACvC,IAAI,6CAAqB,EAAE;IAC3B,IAAI,mCAAgB,EAAE;IACtB,IAAI,iDAAuB,EAAE;IAE7B,4CAA4C;IAC5C,IAAI,qCAAiB,EAAE;IACvB,IAAI,yCAAmB,EAAE;IACzB,IAAI,iCAAe,EAAE;IACrB,IAAI,qDAAyB,EAAE,EAAE,oCAAoC;IAErE,sCAAsC;IACtC,IAAI,yCAAmB,EAAE;IACzB,IAAI,uCAAkB,EAAE;IAExB,yCAAyC;IACzC,IAAI,iDAAuB,EAAE;IAC7B,IAAI,6CAAqB,EAAE;IAC3B,IAAI,2CAAoB,EAAE;IAC1B,IAAI,6CAAqB,EAAE,EAAE,+BAA+B;IAE5D,8BAA8B;IAC9B,IAAI,uCAAkB,EAAE;IAExB,kCAAkC;IAClC,IAAI,gCAAoB,EAAE;IAC1B,IAAI,8BAAkB,EAAE;IACxB,IAAI,gCAAoB,EAAE;IAE1B,uCAAuC;IACvC,IAAI,qCAAoB,EAAE;IAC1B,IAAI,iCAAgB,EAAE;IACtB,IAAI,kCAAiB,EAAE;IAEvB,+CAA+C;IAC/C,IAAI,gCAAe,EAAE;IACrB,IAAI,8BAAa,EAAE;IACnB,IAAI,+BAAc,EAAE;IACpB,IAAI,qDAAyB,EAAE;IAC/B,IAAI,yDAA2B,EAAE,EAAE,oCAAoC;IAEvE,wDAAwD;IACxD,IAAI,iCAAmB,EAAE;IACzB,IAAI,8BAAgB,EAAE;IACtB,IAAI,6BAAe,EAAE;IACrB,IAAI,2CAAoB,EAAE;IAC1B,IAAI,yDAA2B,EAAE,EAAE,sCAAsC;IACzE,IAAI,2DAA4B,EAAE,EAAE,uCAAuC;IAC3E,IAAI,yDAA2B,EAAE,EAAE,wCAAwC;IAE3E,yCAAyC;IACzC,IAAI,oCAAgB,EAAE;IACtB,IAAI,6CAAyB,EAAE;IAC/B,IAAI,qCAAiB,EAAE;IAEvB,8EAA8E;IAC9E,IAAI,mDAAwB,EAAE;IAC9B,IAAI,2DAA4B,EAAE,EAAE,sCAAsC;IAC1E,IAAI,qCAAiB,EAAE;IACvB,IAAI,iDAAuB,EAAE;IAC7B,IAAI,2CAAoB,EAAE;IAE1B,qEAAqE;IACrE,IAAI,iDAAuB,EAAE;IAC7B,IAAI,iEAA+B,EAAE;IACrC,IAAI,iDAAuB,EAAE;IAC7B,IAAI,iDAAuB,EAAE;IAC7B,IAAI,+DAA8B,EAAE;IAEpC,mEAAmE;IACnE,IAAI,2CAAoB,EAAE;IAC1B,IAAI,qCAAiB,EAAE;IACvB,IAAI,+BAAc,EAAE;IACpB,IAAI,iDAAuB,EAAE;IAC7B,IAAI,uCAAkB,EAAE,EAAE,2BAA2B;IAErD,qEAAqE;IACrE,IAAI,2CAAoB,EAAE;IAC1B,IAAI,iCAAe,EAAE;IACrB,IAAI,2DAA4B,EAAE,EAAE,sCAAsC;IAC1E,IAAI,yEAAmC,EAAE,EAAE,kCAAkC;IAC7E,IAAI,uEAAkC,EAAE,EAAE,6CAA6C;IAEvF,wCAAwC;IACxC,IAAI,mCAAiB,EAAE;IACvB,IAAI,gCAAc,EAAE;IAEpB,mCAAmC;IACnC,IAAI,iDAAuB,EAAE,EAAE,2CAA2C;IAC1E,IAAI,uDAA0B,EAAE,EAAE,oCAAoC;CACvE,CAAC;AAEF;;GAEG;AACH,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,OAAO,iBAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,EAAU;IACpC,OAAO,iBAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,OAAO,iBAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/index.ts"],"names":[],"mappings":"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"}
@@ -32,4 +32,4 @@ export declare class SensitiveDataLoggingRule extends BaseRule {
32
32
  private readonly sensitiveValuePatterns;
33
33
  validate(doc: Document, _context: ValidationContext): Issue[];
34
34
  }
35
- //# sourceMappingURL=NewLoggingRules.d.ts.map
35
+ //# sourceMappingURL=LoggingPatternRules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggingPatternRules.d.ts","sourceRoot":"","sources":["../../../../src/rules/logging/LoggingPatternRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,EAAE,SAAa;IACf,IAAI,SAAwB;IAC5B,WAAW,SAAkD;IAC7D,QAAQ,EAAG,MAAM,CAAU;IAC3B,QAAQ,EAAG,SAAS,CAAU;IAE9B,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;CAiC7D;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAyB,SAAQ,QAAQ;IACpD,EAAE,SAAa;IACf,IAAI,SAA4B;IAChC,WAAW,SAA6D;IACxE,QAAQ,EAAG,OAAO,CAAU;IAC5B,QAAQ,EAAG,SAAS,CAAU;IAI9B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAQrC;IAEF,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,KAAK,EAAE;CAmC9D"}
@@ -85,4 +85,4 @@ class SensitiveDataLoggingRule extends BaseRule_1.BaseRule {
85
85
  }
86
86
  }
87
87
  exports.SensitiveDataLoggingRule = SensitiveDataLoggingRule;
88
- //# sourceMappingURL=NewLoggingRules.js.map
88
+ //# sourceMappingURL=LoggingPatternRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggingPatternRules.js","sourceRoot":"","sources":["../../../../src/rules/logging/LoggingPatternRules.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAE5C;;;;;GAKG;AACH,MAAa,qBAAsB,SAAQ,mBAAQ;IACjD,EAAE,GAAG,SAAS,CAAC;IACf,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAAG,8CAA8C,CAAC;IAC7D,QAAQ,GAAG,MAAe,CAAC;IAC3B,QAAQ,GAAG,SAAkB,CAAC;IAE9B,QAAQ,CAAC,GAAa,EAAE,OAA0B;QAChD,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,+CAA+C;QAC/C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,4CAA4C;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAClC,oFAAoF,EACpF,GAAG,CACJ,CAAC;QAEF,oCAAoC;QACpC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QAEvE,0DAA0D;QAC1D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,WAAW,CACd,eAAe,CAAC,CAAC,CAAC,EAClB,iEAAiE,EACjE;gBACE,UAAU,EACR,2HAA2H;aAC9H,CACF,CACF,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxCD,sDAwCC;AAED;;;;;;;;GAQG;AACH,MAAa,wBAAyB,SAAQ,mBAAQ;IACpD,EAAE,GAAG,SAAS,CAAC;IACf,IAAI,GAAG,wBAAwB,CAAC;IAChC,WAAW,GAAG,yDAAyD,CAAC;IACxE,QAAQ,GAAG,OAAgB,CAAC;IAC5B,QAAQ,GAAG,SAAkB,CAAC;IAE9B,iEAAiE;IACjE,6DAA6D;IAC5C,sBAAsB,GAAG;QACxC,qFAAqF;QACrF,wFAAwF;QACxF,wCAAwC;QACxC,qBAAqB;QACrB,mBAAmB;QACnB,mBAAmB,EAAE,mCAAmC;QACxD,0CAA0C,EAAE,+BAA+B;KAC5E,CAAC;IAEF,QAAQ,CAAC,GAAa,EAAE,QAA2B;QACjD,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,sDAAsD;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QAE/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAiB,CAAC;YAClC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAEtD,kDAAkD;YAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,SAAS;YACX,CAAC;YAED,iEAAiE;YACjE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAClD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,WAAW,CACd,MAAM,EACN,oDAAoD,OAAO,CAAC,MAAM,YAAY,EAC9E;wBACE,UAAU,EACR,iHAAiH;qBACpH,CACF,CACF,CAAC;oBACF,MAAM,CAAC,8BAA8B;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAtDD,4DAsDC"}
@@ -3,7 +3,8 @@ import { BaseRule } from '../base/BaseRule';
3
3
  /**
4
4
  * MULE-101: Flow Name Casing
5
5
  *
6
- * Flow names should follow consistent casing (kebab-case recommended).
6
+ * Flow names should follow consistent casing.
7
+ * Supports configurable conventions: 'kebab-case' (default), 'camelCase', or 'any'.
7
8
  */
8
9
  export declare class FlowCasingRule extends BaseRule {
9
10
  id: string;
@@ -12,8 +13,10 @@ export declare class FlowCasingRule extends BaseRule {
12
13
  severity: "warning";
13
14
  category: "naming";
14
15
  private readonly KEBAB_CASE_PATTERN;
16
+ private readonly CAMEL_CASE_PATTERN;
15
17
  private readonly APIKIT_PATTERN;
16
- validate(doc: Document, _context: ValidationContext): Issue[];
17
- private toKebabCase;
18
+ validate(doc: Document, context: ValidationContext): Issue[];
19
+ private isValidName;
20
+ private toConvention;
18
21
  }
19
22
  //# sourceMappingURL=FlowCasingRule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlowCasingRule.d.ts","sourceRoot":"","sources":["../../../../src/rules/naming/FlowCasingRule.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;IAC1C,EAAE,SAAc;IAChB,IAAI,SAAsB;IAC1B,WAAW,SAAoD;IAC/D,QAAQ,EAAG,SAAS,CAAU;IAC9B,QAAQ,EAAG,QAAQ,CAAU;IAE7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoD;IAGvF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IAEjF,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,KAAK,EAAE;IA4B7D,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"FlowCasingRule.d.ts","sourceRoot":"","sources":["../../../../src/rules/naming/FlowCasingRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,EAAE,SAAc;IAChB,IAAI,SAAsB;IAC1B,WAAW,SAAmF;IAC9F,QAAQ,EAAG,SAAS,CAAU;IAC9B,QAAQ,EAAG,QAAQ,CAAU;IAE7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoD;IACvF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;IAGnF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IAEjF,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;IAkC5D,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;CAcrB"}
@@ -5,38 +5,56 @@ const BaseRule_1 = require("../base/BaseRule");
5
5
  /**
6
6
  * MULE-101: Flow Name Casing
7
7
  *
8
- * Flow names should follow consistent casing (kebab-case recommended).
8
+ * Flow names should follow consistent casing.
9
+ * Supports configurable conventions: 'kebab-case' (default), 'camelCase', or 'any'.
9
10
  */
10
11
  class FlowCasingRule extends BaseRule_1.BaseRule {
11
12
  id = 'MULE-101';
12
13
  name = 'Flow Name Casing';
13
- description = 'Flow names should follow kebab-case convention';
14
+ description = 'Flow names should follow consistent casing convention (kebab-case by default)';
14
15
  severity = 'warning';
15
16
  category = 'naming';
16
17
  KEBAB_CASE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*(-flow|-subflow)?$/;
18
+ CAMEL_CASE_PATTERN = /^[a-z][a-zA-Z0-9]*(Flow|Subflow|SubFlow)?$/;
17
19
  // APIKit auto-generated flow patterns (HTTP verb:resource:config format)
18
20
  APIKIT_PATTERN = /^(get|post|put|patch|delete|options|head):\\/;
19
- validate(doc, _context) {
21
+ validate(doc, context) {
20
22
  const issues = [];
23
+ const convention = this.getOption(context, 'convention', 'kebab-case');
24
+ if (convention === 'any') {
25
+ return issues;
26
+ }
21
27
  const flows = this.select('//mule:flow | //mule:sub-flow', doc);
22
28
  for (const flow of flows) {
23
29
  const name = this.getNameAttribute(flow);
24
30
  if (!name) {
25
31
  continue;
26
32
  }
27
- // Skip APIKit auto-generated flows (e.g., "get:\\healthCheck:tns-billing-papi-config")
33
+ // Skip APIKit auto-generated flows (e.g., "get:\\orders:my-api-config")
28
34
  if (this.APIKIT_PATTERN.test(name)) {
29
35
  continue;
30
36
  }
31
- if (!this.KEBAB_CASE_PATTERN.test(name)) {
32
- issues.push(this.createIssue(flow, `Flow name "${name}" should be kebab-case`, {
33
- suggestion: `Rename to "${this.toKebabCase(name)}"`,
37
+ if (!this.isValidName(name, convention)) {
38
+ issues.push(this.createIssue(flow, `Flow name "${name}" should be ${convention}`, {
39
+ suggestion: `Rename to "${this.toConvention(name, convention)}"`,
34
40
  }));
35
41
  }
36
42
  }
37
43
  return issues;
38
44
  }
39
- toKebabCase(name) {
45
+ isValidName(name, convention) {
46
+ if (convention === 'camelCase') {
47
+ return this.CAMEL_CASE_PATTERN.test(name);
48
+ }
49
+ return this.KEBAB_CASE_PATTERN.test(name);
50
+ }
51
+ toConvention(name, convention) {
52
+ if (convention === 'camelCase') {
53
+ return name
54
+ .split('-')
55
+ .map((part, i) => i === 0 ? part.toLowerCase() : part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
56
+ .join('');
57
+ }
40
58
  return name
41
59
  .replace(/([a-z])([A-Z])/g, '$1-$2')
42
60
  .replace(/[\s_]+/g, '-')
@@ -1 +1 @@
1
- {"version":3,"file":"FlowCasingRule.js","sourceRoot":"","sources":["../../../../src/rules/naming/FlowCasingRule.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAE5C;;;;GAIG;AACH,MAAa,cAAe,SAAQ,mBAAQ;IAC1C,EAAE,GAAG,UAAU,CAAC;IAChB,IAAI,GAAG,kBAAkB,CAAC;IAC1B,WAAW,GAAG,gDAAgD,CAAC;IAC/D,QAAQ,GAAG,SAAkB,CAAC;IAC9B,QAAQ,GAAG,QAAiB,CAAC;IAEZ,kBAAkB,GAAG,gDAAgD,CAAC;IAEvF,yEAAyE;IACxD,cAAc,GAAG,8CAA8C,CAAC;IAEjF,QAAQ,CAAC,GAAa,EAAE,QAA2B;QACjD,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QAEhE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,uFAAuF;YACvF,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,SAAS;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,IAAI,wBAAwB,EAAE;oBACjE,UAAU,EAAE,cAAc,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;iBACpD,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,OAAO,IAAI;aACR,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,WAAW,EAAE,CAAC;IACnB,CAAC;CACF;AA9CD,wCA8CC"}
1
+ {"version":3,"file":"FlowCasingRule.js","sourceRoot":"","sources":["../../../../src/rules/naming/FlowCasingRule.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAE5C;;;;;GAKG;AACH,MAAa,cAAe,SAAQ,mBAAQ;IAC1C,EAAE,GAAG,UAAU,CAAC;IAChB,IAAI,GAAG,kBAAkB,CAAC;IAC1B,WAAW,GAAG,+EAA+E,CAAC;IAC9F,QAAQ,GAAG,SAAkB,CAAC;IAC9B,QAAQ,GAAG,QAAiB,CAAC;IAEZ,kBAAkB,GAAG,gDAAgD,CAAC;IACtE,kBAAkB,GAAG,4CAA4C,CAAC;IAEnF,yEAAyE;IACxD,cAAc,GAAG,8CAA8C,CAAC;IAEjF,QAAQ,CAAC,GAAa,EAAE,OAA0B;QAChD,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAW,CAAC;QAEjF,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QAEhE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,wEAAwE;YACxE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,SAAS;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,IAAI,eAAe,UAAU,EAAE,EAAE;oBACpE,UAAU,EAAE,cAAc,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG;iBACjE,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,UAAkB;QAClD,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEO,YAAY,CAAC,IAAY,EAAE,UAAkB;QACnD,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,IAAI;iBACR,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACf,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAC1F;iBACA,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QACD,OAAO,IAAI;aACR,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,WAAW,EAAE,CAAC;IACnB,CAAC;CACF;AApED,wCAoEC"}