@sfdxy/mule-lint 1.20.0 → 1.22.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 (156) hide show
  1. package/README.md +63 -17
  2. package/dist/package.json +1 -1
  3. package/dist/src/core/XPathHelper.d.ts.map +1 -1
  4. package/dist/src/core/XPathHelper.js +8 -0
  5. package/dist/src/core/XPathHelper.js.map +1 -1
  6. package/dist/src/engine/LintEngine.d.ts +22 -0
  7. package/dist/src/engine/LintEngine.d.ts.map +1 -1
  8. package/dist/src/engine/LintEngine.js +105 -18
  9. package/dist/src/engine/LintEngine.js.map +1 -1
  10. package/dist/src/mcp/prompts/index.d.ts +1 -1
  11. package/dist/src/mcp/prompts/index.d.ts.map +1 -1
  12. package/dist/src/mcp/prompts/index.js +62 -1
  13. package/dist/src/mcp/prompts/index.js.map +1 -1
  14. package/dist/src/mcp/resources/index.js +114 -16
  15. package/dist/src/mcp/resources/index.js.map +1 -1
  16. package/dist/src/mcp/tools/getRuleDetails.d.ts.map +1 -1
  17. package/dist/src/mcp/tools/getRuleDetails.js +30 -1
  18. package/dist/src/mcp/tools/getRuleDetails.js.map +1 -1
  19. package/dist/src/rules/api-led/ApikitConsoleProductionRule.d.ts +22 -0
  20. package/dist/src/rules/api-led/ApikitConsoleProductionRule.d.ts.map +1 -0
  21. package/dist/src/rules/api-led/ApikitConsoleProductionRule.js +43 -0
  22. package/dist/src/rules/api-led/ApikitConsoleProductionRule.js.map +1 -0
  23. package/dist/src/rules/api-led/ApikitMainFlowStructureRule.d.ts +24 -0
  24. package/dist/src/rules/api-led/ApikitMainFlowStructureRule.d.ts.map +1 -0
  25. package/dist/src/rules/api-led/ApikitMainFlowStructureRule.js +53 -0
  26. package/dist/src/rules/api-led/ApikitMainFlowStructureRule.js.map +1 -0
  27. package/dist/src/rules/api-led/ApikitStatusCodeVariableRule.d.ts +25 -0
  28. package/dist/src/rules/api-led/ApikitStatusCodeVariableRule.d.ts.map +1 -0
  29. package/dist/src/rules/api-led/ApikitStatusCodeVariableRule.js +59 -0
  30. package/dist/src/rules/api-led/ApikitStatusCodeVariableRule.js.map +1 -0
  31. package/dist/src/rules/connector/EventListenerNullGuardRule.d.ts +24 -0
  32. package/dist/src/rules/connector/EventListenerNullGuardRule.d.ts.map +1 -0
  33. package/dist/src/rules/connector/EventListenerNullGuardRule.js +58 -0
  34. package/dist/src/rules/connector/EventListenerNullGuardRule.js.map +1 -0
  35. package/dist/src/rules/connector/ReplayChannelConfigRule.d.ts +23 -0
  36. package/dist/src/rules/connector/ReplayChannelConfigRule.d.ts.map +1 -0
  37. package/dist/src/rules/connector/ReplayChannelConfigRule.js +52 -0
  38. package/dist/src/rules/connector/ReplayChannelConfigRule.js.map +1 -0
  39. package/dist/src/rules/dataweave/DataWeaveRules.d.ts +11 -4
  40. package/dist/src/rules/dataweave/DataWeaveRules.d.ts.map +1 -1
  41. package/dist/src/rules/dataweave/DataWeaveRules.js +20 -20
  42. package/dist/src/rules/dataweave/DataWeaveRules.js.map +1 -1
  43. package/dist/src/rules/dataweave/DuplicateTransformLogicRule.d.ts +25 -0
  44. package/dist/src/rules/dataweave/DuplicateTransformLogicRule.d.ts.map +1 -0
  45. package/dist/src/rules/dataweave/DuplicateTransformLogicRule.js +63 -0
  46. package/dist/src/rules/dataweave/DuplicateTransformLogicRule.js.map +1 -0
  47. package/dist/src/rules/error-handling/CatchAllLastRule.d.ts +24 -0
  48. package/dist/src/rules/error-handling/CatchAllLastRule.d.ts.map +1 -0
  49. package/dist/src/rules/error-handling/CatchAllLastRule.js +65 -0
  50. package/dist/src/rules/error-handling/CatchAllLastRule.js.map +1 -0
  51. package/dist/src/rules/error-handling/ErrorHandlerTypeCoverageRule.d.ts +28 -0
  52. package/dist/src/rules/error-handling/ErrorHandlerTypeCoverageRule.d.ts.map +1 -0
  53. package/dist/src/rules/error-handling/ErrorHandlerTypeCoverageRule.js +70 -0
  54. package/dist/src/rules/error-handling/ErrorHandlerTypeCoverageRule.js.map +1 -0
  55. package/dist/src/rules/error-handling/ErrorResponseStructureRule.d.ts +23 -0
  56. package/dist/src/rules/error-handling/ErrorResponseStructureRule.d.ts.map +1 -0
  57. package/dist/src/rules/error-handling/ErrorResponseStructureRule.js +73 -0
  58. package/dist/src/rules/error-handling/ErrorResponseStructureRule.js.map +1 -0
  59. package/dist/src/rules/error-handling/GenericErrorRule.d.ts +15 -3
  60. package/dist/src/rules/error-handling/GenericErrorRule.d.ts.map +1 -1
  61. package/dist/src/rules/error-handling/GenericErrorRule.js +58 -18
  62. package/dist/src/rules/error-handling/GenericErrorRule.js.map +1 -1
  63. package/dist/src/rules/error-handling/GlobalErrorHandlerRule.d.ts +14 -15
  64. package/dist/src/rules/error-handling/GlobalErrorHandlerRule.d.ts.map +1 -1
  65. package/dist/src/rules/error-handling/GlobalErrorHandlerRule.js +59 -38
  66. package/dist/src/rules/error-handling/GlobalErrorHandlerRule.js.map +1 -1
  67. package/dist/src/rules/error-handling/TryScopeRule.d.ts +5 -0
  68. package/dist/src/rules/error-handling/TryScopeRule.d.ts.map +1 -1
  69. package/dist/src/rules/error-handling/TryScopeRule.js +30 -7
  70. package/dist/src/rules/error-handling/TryScopeRule.js.map +1 -1
  71. package/dist/src/rules/http/ConnectionIdleTimeoutRule.d.ts +27 -0
  72. package/dist/src/rules/http/ConnectionIdleTimeoutRule.d.ts.map +1 -0
  73. package/dist/src/rules/http/ConnectionIdleTimeoutRule.js +46 -0
  74. package/dist/src/rules/http/ConnectionIdleTimeoutRule.js.map +1 -0
  75. package/dist/src/rules/index.d.ts +1 -1
  76. package/dist/src/rules/index.d.ts.map +1 -1
  77. package/dist/src/rules/index.js +50 -8
  78. package/dist/src/rules/index.js.map +1 -1
  79. package/dist/src/rules/logging/LoggerPayloadRule.d.ts +15 -0
  80. package/dist/src/rules/logging/LoggerPayloadRule.d.ts.map +1 -1
  81. package/dist/src/rules/logging/LoggerPayloadRule.js +48 -4
  82. package/dist/src/rules/logging/LoggerPayloadRule.js.map +1 -1
  83. package/dist/src/rules/operations/FlowRefTargetExistsRule.d.ts +23 -0
  84. package/dist/src/rules/operations/FlowRefTargetExistsRule.d.ts.map +1 -0
  85. package/dist/src/rules/operations/FlowRefTargetExistsRule.js +58 -0
  86. package/dist/src/rules/operations/FlowRefTargetExistsRule.js.map +1 -0
  87. package/dist/src/rules/operations/UnusedFlowRule.d.ts +20 -0
  88. package/dist/src/rules/operations/UnusedFlowRule.d.ts.map +1 -1
  89. package/dist/src/rules/operations/UnusedFlowRule.js +73 -7
  90. package/dist/src/rules/operations/UnusedFlowRule.js.map +1 -1
  91. package/dist/src/rules/operations/UnusedVariableRule.d.ts +31 -0
  92. package/dist/src/rules/operations/UnusedVariableRule.d.ts.map +1 -0
  93. package/dist/src/rules/operations/UnusedVariableRule.js +103 -0
  94. package/dist/src/rules/operations/UnusedVariableRule.js.map +1 -0
  95. package/dist/src/rules/performance/ListenerReconnectForeverRule.d.ts +28 -0
  96. package/dist/src/rules/performance/ListenerReconnectForeverRule.d.ts.map +1 -0
  97. package/dist/src/rules/performance/ListenerReconnectForeverRule.js +56 -0
  98. package/dist/src/rules/performance/ListenerReconnectForeverRule.js.map +1 -0
  99. package/dist/src/rules/performance/ReconnectionStrategyRule.d.ts +7 -4
  100. package/dist/src/rules/performance/ReconnectionStrategyRule.d.ts.map +1 -1
  101. package/dist/src/rules/performance/ReconnectionStrategyRule.js +44 -24
  102. package/dist/src/rules/performance/ReconnectionStrategyRule.js.map +1 -1
  103. package/dist/src/rules/security/ConnectorCredentialsSecuredRule.d.ts +36 -0
  104. package/dist/src/rules/security/ConnectorCredentialsSecuredRule.d.ts.map +1 -0
  105. package/dist/src/rules/security/ConnectorCredentialsSecuredRule.js +124 -0
  106. package/dist/src/rules/security/ConnectorCredentialsSecuredRule.js.map +1 -0
  107. package/dist/src/rules/security/HardcodedCredentialsRule.d.ts +4 -0
  108. package/dist/src/rules/security/HardcodedCredentialsRule.d.ts.map +1 -1
  109. package/dist/src/rules/security/HardcodedCredentialsRule.js +15 -0
  110. package/dist/src/rules/security/HardcodedCredentialsRule.js.map +1 -1
  111. package/dist/src/rules/security/SecurePropertiesEncryptionRule.d.ts +25 -0
  112. package/dist/src/rules/security/SecurePropertiesEncryptionRule.d.ts.map +1 -0
  113. package/dist/src/rules/security/SecurePropertiesEncryptionRule.js +59 -0
  114. package/dist/src/rules/security/SecurePropertiesEncryptionRule.js.map +1 -0
  115. package/dist/src/rules/security/SecurePropertiesKeyRule.d.ts +23 -0
  116. package/dist/src/rules/security/SecurePropertiesKeyRule.d.ts.map +1 -0
  117. package/dist/src/rules/security/SecurePropertiesKeyRule.js +45 -0
  118. package/dist/src/rules/security/SecurePropertiesKeyRule.js.map +1 -0
  119. package/dist/src/rules/security/TlsKeystorePasswordRule.d.ts +25 -0
  120. package/dist/src/rules/security/TlsKeystorePasswordRule.d.ts.map +1 -0
  121. package/dist/src/rules/security/TlsKeystorePasswordRule.js +63 -0
  122. package/dist/src/rules/security/TlsKeystorePasswordRule.js.map +1 -0
  123. package/dist/src/rules/standards/ApikitRouteVariableConsistencyRule.d.ts +26 -0
  124. package/dist/src/rules/standards/ApikitRouteVariableConsistencyRule.d.ts.map +1 -0
  125. package/dist/src/rules/standards/ApikitRouteVariableConsistencyRule.js +61 -0
  126. package/dist/src/rules/standards/ApikitRouteVariableConsistencyRule.js.map +1 -0
  127. package/dist/src/rules/standards/ConfigPropertiesOrderingRule.d.ts +34 -0
  128. package/dist/src/rules/standards/ConfigPropertiesOrderingRule.d.ts.map +1 -0
  129. package/dist/src/rules/standards/ConfigPropertiesOrderingRule.js +76 -0
  130. package/dist/src/rules/standards/ConfigPropertiesOrderingRule.js.map +1 -0
  131. package/dist/src/rules/standards/MissingEnvPropertiesDeclarationRule.d.ts +25 -0
  132. package/dist/src/rules/standards/MissingEnvPropertiesDeclarationRule.d.ts.map +1 -0
  133. package/dist/src/rules/standards/MissingEnvPropertiesDeclarationRule.js +111 -0
  134. package/dist/src/rules/standards/MissingEnvPropertiesDeclarationRule.js.map +1 -0
  135. package/dist/src/rules/yaml/YamlRules.d.ts +6 -2
  136. package/dist/src/rules/yaml/YamlRules.d.ts.map +1 -1
  137. package/dist/src/rules/yaml/YamlRules.js +15 -11
  138. package/dist/src/rules/yaml/YamlRules.js.map +1 -1
  139. package/dist/src/types/Rule.d.ts +13 -0
  140. package/dist/src/types/Rule.d.ts.map +1 -1
  141. package/docs/README.md +87 -27
  142. package/docs/best-practices/ci-cd.md +135 -0
  143. package/docs/best-practices/connector-patterns.md +253 -0
  144. package/docs/best-practices/dataweave-patterns.md +370 -0
  145. package/docs/best-practices/deployment-2026.md +171 -0
  146. package/docs/best-practices/error-handling.md +277 -0
  147. package/docs/best-practices/event-driven-patterns.md +424 -0
  148. package/docs/best-practices/logging.md +163 -0
  149. package/docs/best-practices/mulesoft-best-practices.md +72 -865
  150. package/docs/best-practices/performance.md +273 -0
  151. package/docs/best-practices/rules-catalog.md +337 -29
  152. package/docs/best-practices/security.md +181 -0
  153. package/docs/best-practices/testing.md +190 -0
  154. package/docs/best-practices/variable-contracts.md +191 -0
  155. package/docs/linter/architecture.md +119 -64
  156. package/package.json +1 -1
package/README.md CHANGED
@@ -28,12 +28,14 @@
28
28
 
29
29
  **Mule-Lint** is a TypeScript-based linting tool designed to enforce best practices and standards for MuleSoft applications. It provides:
30
30
 
31
- - **56 Built-in Rules** covering error handling, security, naming, logging, performance, and more
32
- - **Multiple Output Formats** - Table, JSON, SARIF, HTML, CSV <!-- id: 4 -->
33
- - **CI/CD Ready** - Exit codes and machine-readable output
34
- - **156+ Unit Tests** - Comprehensive test coverage for reliability
35
- - **TypeScript** - Fully typed for VS Code extension integration
36
- - **Extensible** - Add custom rules for your organization
31
+ - **82 Built-in Rules** covering error handling, security, naming, logging, performance, API-led, connectors, and more
32
+ - **Multiple Output Formats** - Table, JSON, SARIF, HTML, CSV <!-- id: 4 -->
33
+ - **CI/CD Ready** - Exit codes and machine-readable output
34
+ - **442 Unit Tests** - Comprehensive test coverage for reliability
35
+ - **TypeScript** - Fully typed for VS Code extension integration
36
+ - **Extensible** - Add custom rules for your organization
37
+ - **Document Cache** - Parsed XML documents cached to eliminate redundant parsing
38
+ - **Project Layer Detection** - Automatic SAPI/PAPI/EAPI/library/batch classification
37
39
 
38
40
  ### Architecture
39
41
 
@@ -44,15 +46,18 @@ flowchart TB
44
46
  end
45
47
 
46
48
  subgraph Engine["LintEngine"]
47
- B[FileScanner] --> C[XmlParser]
49
+ B[FileScanner] --> C[XmlParser + Document Cache]
48
50
  C --> D[Rule Executor]
51
+ B --> PreScan[Pre-Scan: allFlowRefs, allFlowNames, projectLayer]
52
+ PreScan --> D
49
53
  end
50
54
 
51
55
  subgraph Rules["Rules - Strategy Pattern"]
52
- D --> E[MULE-001]
53
- D --> F[MULE-002]
54
- D --> G[...]
55
- D --> H[MULE-010]
56
+ D --> E[Per-File Rules]
57
+ D --> F[Project Rules]
58
+ E --> G[MULE-001..804]
59
+ E --> H[SEC, ERR, API, DW, ...]
60
+ F --> I2[YAML, HYG, CFG, ...]
56
61
  end
57
62
 
58
63
  subgraph Output["Formatters"]
@@ -81,11 +86,12 @@ flowchart TB
81
86
 
82
87
  ```mermaid
83
88
  flowchart LR
84
- A["XML Files"] --> B["Parse DOM"]
85
- B --> C["Execute Rules"]
86
- C --> D["Collect Issues"]
87
- D --> E["Format Output"]
88
- E --> F["Table / JSON / SARIF / HTML / CSV"]
89
+ A["XML Files"] --> B["Pre-Scan (flow-refs, flow-names, project layer)"]
90
+ B --> C["Parse DOM (cached)"]
91
+ C --> D["Execute Rules"]
92
+ D --> E["Collect Issues"]
93
+ E --> F["Format Output"]
94
+ F --> G["Table / JSON / SARIF / HTML / CSV"]
89
95
  ```
90
96
 
91
97
  ---
@@ -355,6 +361,46 @@ npx @sfdxy/mule-lint src/main/mule -f sarif -o results.sarif
355
361
  | ERR-001 | Try Scope | Info | Error Handling | Complex operations should use Try scope |
356
362
  | PERF-002 | Connection Pooling | Warning | Performance | DB/HTTP should configure connection pools |
357
363
 
364
+ ### Security & Integrity Rules (v1.21)
365
+
366
+ | ID | Name | Severity | Category | Description |
367
+ | ------- | ---------------------------- | -------- | --------- | ------------------------------------------------------- |
368
+ | SEC-007 | Connector Credentials | Error | Security | Connector configs must use secure property placeholders |
369
+ | SEC-008 | Secure Properties Key | Error | Security | Secure properties file must use externalized key |
370
+ | SEC-009 | TLS Keystore Password | Error | Security | TLS keystore passwords must use secure properties |
371
+ | SEC-010 | Secure Properties Encryption | Warning | Security | Secure properties must use strong encryption algorithm |
372
+ | HYG-004 | Flow-Ref Target Exists | Error | Standards | Flow-ref must point to an existing flow/sub-flow |
373
+
374
+ ### Error Handling & Resilience Rules (v1.21)
375
+
376
+ | ID | Name | Severity | Category | Description |
377
+ | ------- | -------------------------- | -------- | -------------- | ----------------------------------------------------------- |
378
+ | ERR-002 | Error Type Coverage | Warning | Error Handling | APIKit flows should handle common HTTP error types |
379
+ | ERR-003 | Error Response Structure | Warning | Error Handling | Error handlers should set both httpStatus and response body |
380
+ | ERR-004 | Catch-All Must Be Last | Error | Error Handling | type="ANY" on-error must be the last handler block |
381
+ | RES-002 | Listener Reconnect Forever | Warning | Performance | Listener connectors should use reconnect-forever strategy |
382
+ | CFG-001 | Config Properties Ordering | Info | Standards | Config properties should follow a consistent ordering |
383
+
384
+ ### API-Led & Connector Rules (v1.21)
385
+
386
+ | ID | Name | Severity | Category | Description |
387
+ | -------- | ----------------------- | -------- | --------- | ------------------------------------------------------- |
388
+ | API-006 | APIKit Main Flow | Warning | API-Led | APIKit main flow should follow standard structure |
389
+ | API-007 | APIKit Status Code Var | Warning | API-Led | APIKit routes should set httpStatus variable |
390
+ | API-008 | APIKit Console Prod | Warning | API-Led | APIKit console should be disabled in production |
391
+ | SF-001 | Replay Channel Config | Warning | Connector | Salesforce replay channel should have proper config |
392
+ | HTTP-004 | Connection Idle Timeout | Warning | HTTP | HTTP request configs should set connection idle timeout |
393
+
394
+ ### Code Hygiene Rules (v1.21)
395
+
396
+ | ID | Name | Severity | Category | Description |
397
+ | ------- | ---------------------------- | -------- | --------- | ---------------------------------------------------------- |
398
+ | DW-005 | Duplicate Transform Logic | Warning | DataWeave | Detect duplicated DataWeave transform expressions |
399
+ | HYG-005 | Unused Variable | Warning | Standards | Detect set-variable values never referenced in the project |
400
+ | CFG-002 | Missing Env Properties | Warning | Standards | Properties referenced in XML should exist in YAML configs |
401
+ | STD-001 | APIKit Route Var Consistency | Info | Standards | APIKit route variable names should be consistent |
402
+ | SF-002 | Event Listener Null Guard | Warning | Connector | Event listeners should guard against null payloads |
403
+
358
404
  ### Operations & Resilience Rules
359
405
 
360
406
  | ID | Name | Severity | Category | Description |
@@ -377,7 +423,7 @@ npx @sfdxy/mule-lint src/main/mule -f sarif -o results.sarif
377
423
  | PROJ-001 | POM Validation | Error | Structure | Validates pom.xml existence and plugins |
378
424
  | PROJ-002 | Git Hygiene | Warning | Structure | Validates .gitignore existence and entries |
379
425
 
380
- **Total: 56 rules** across 14 categories.
426
+ **Total: 82 rules** across 16 categories.
381
427
 
382
428
  See [Rules Catalog](docs/best-practices/rules-catalog.md) for detailed documentation.
383
429
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sfdxy/mule-lint",
3
- "version": "1.20.0",
3
+ "version": "1.22.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 +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,MAAM,WAAW,UAAW,SAAQ,IAAI;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,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;CAGnE;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"}
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,CAyElD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,IAAI;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,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;CAGnE;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"}
@@ -91,6 +91,14 @@ exports.MULE_NAMESPACES = {
91
91
  sockets: 'http://www.mulesoft.org/schema/mule/sockets',
92
92
  // Web Service Consumer
93
93
  wsc: 'http://www.mulesoft.org/schema/mule/wsc',
94
+ // NetSuite
95
+ netsuite: 'http://www.mulesoft.org/schema/mule/netsuite',
96
+ // SAP
97
+ sap: 'http://www.mulesoft.org/schema/mule/sap',
98
+ // Anypoint MQ
99
+ 'anypoint-mq': 'http://www.mulesoft.org/schema/mule/anypoint-mq',
100
+ // OAuth
101
+ oauth: 'http://www.mulesoft.org/schema/mule/oauth',
94
102
  };
95
103
  /**
96
104
  * Helper class for namespace-aware XPath queries on Mule XML documents
@@ -1 +1 @@
1
- {"version":3,"file":"XPathHelper.js","sourceRoot":"","sources":["../../../src/core/XPathHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XPathHelper.js","sourceRoot":"","sources":["../../../src/core/XPathHelper.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,12 @@ export declare class LintEngine {
19
19
  private rules;
20
20
  private config;
21
21
  private verbose;
22
+ /**
23
+ * Cache of parsed XML documents keyed by absolute file path.
24
+ * Populated during preScanFiles() and reused in processFile()
25
+ * to avoid parsing every XML file twice.
26
+ */
27
+ private documentCache;
22
28
  constructor(options: EngineOptions);
23
29
  /**
24
30
  * Scan a directory or file and return lint report
@@ -67,12 +73,28 @@ export declare class LintEngine {
67
73
  /**
68
74
  * Pre-scan all XML files to build cross-file context:
69
75
  * - allFlowRefs: union of all <flow-ref name="..."> targets across files
76
+ * - allFlowNames: union of all <flow>/<sub-flow> name attributes across files
70
77
  * - projectContext: whether the project has HTTP listeners / APIkit routers
71
78
  *
79
+ * Parsed documents are cached in this.documentCache so that processFile()
80
+ * can reuse them instead of re-parsing.
81
+ *
72
82
  * This runs before the main per-file rule execution so that rules can use
73
83
  * the aggregated information (e.g. HYG-003 cross-file unused flow detection,
84
+ * HYG-004 cross-file flow-ref target validation,
74
85
  * MULE-005 HTTP-only project detection).
75
86
  */
76
87
  private preScanFiles;
88
+ /**
89
+ * Detect the API-led connectivity layer of the project.
90
+ *
91
+ * Heuristics (in priority order):
92
+ * 1. Directory/project name contains `-sapi`, `-papi`, `-eapi`
93
+ * 2. Flow names contain `sapi`, `papi`, `eapi` patterns
94
+ * 3. No HTTP listener + batch jobs → batch
95
+ * 4. No flows at all → library
96
+ * 5. Otherwise → unknown
97
+ */
98
+ private detectProjectLayer;
77
99
  }
78
100
  //# sourceMappingURL=LintEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LintEngine.d.ts","sourceRoot":"","sources":["../../../src/engine/LintEngine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,KAAK,EAA2D,MAAM,UAAU,CAAC;AAChG,OAAO,EAAE,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAA2C,MAAM,iBAAiB,CAAC;AAQtF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+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;CACnB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,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;IAgI1D;;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;IAwDnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAgDhB;;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;IAI1B;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;CA4DrB"}
1
+ {"version":3,"file":"LintEngine.d.ts","sourceRoot":"","sources":["../../../src/engine/LintEngine.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,IAAI,EACJ,KAAK,EAMN,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAA2C,MAAM,iBAAiB,CAAC;AAQtF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+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;CACnB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAU;IAEzB;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAoC;gBAE7C,OAAO,EAAE,aAAa;IAMlC;;OAEG;IACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoI1D;;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;IAqEnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAuDhB;;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;IAI1B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,YAAY;IAgFpB;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;CA2C3B"}
@@ -54,6 +54,12 @@ class LintEngine {
54
54
  rules;
55
55
  config;
56
56
  verbose;
57
+ /**
58
+ * Cache of parsed XML documents keyed by absolute file path.
59
+ * Populated during preScanFiles() and reused in processFile()
60
+ * to avoid parsing every XML file twice.
61
+ */
62
+ documentCache = new Map();
57
63
  constructor(options) {
58
64
  this.rules = options.rules;
59
65
  this.config = { ...Config_1.DEFAULT_CONFIG, ...options.config };
@@ -89,8 +95,8 @@ class LintEngine {
89
95
  });
90
96
  this.log(`Found ${files.length} files to scan`);
91
97
  // Pre-scan: collect cross-file context before rule execution
92
- const { allFlowRefs, projectContext } = isStandalone
93
- ? { allFlowRefs: undefined, projectContext: undefined }
98
+ const { allFlowRefs, allFlowNames, projectContext } = isStandalone
99
+ ? { allFlowRefs: undefined, allFlowNames: undefined, projectContext: undefined }
94
100
  : this.preScanFiles(files);
95
101
  // Process each file and collect metrics
96
102
  const fileResults = [];
@@ -112,7 +118,7 @@ class LintEngine {
112
118
  flowComplexityData: [],
113
119
  };
114
120
  for (const file of files) {
115
- const result = this.processFile(file, projectRoot, isStandalone, metricsAggregator, allFlowRefs, projectContext);
121
+ const result = this.processFile(file, projectRoot, isStandalone, metricsAggregator, allFlowRefs, allFlowNames, projectContext);
116
122
  fileResults.push(result);
117
123
  }
118
124
  // Run Project Rules (only once per scan, if not standalone)
@@ -152,6 +158,8 @@ class LintEngine {
152
158
  const summary = this.buildSummary(fileResults);
153
159
  this.log(`Scan complete in ${durationMs}ms`);
154
160
  this.log(`Found ${summary.bySeverity.error} errors, ${summary.bySeverity.warning} warnings`);
161
+ // Release cached documents to free memory
162
+ this.documentCache.clear();
155
163
  // Build initial report with base metrics
156
164
  const baseReport = {
157
165
  projectRoot,
@@ -214,24 +222,34 @@ class LintEngine {
214
222
  /**
215
223
  * Process a single file
216
224
  */
217
- processFile(file, projectRoot, isStandalone = false, metricsAggregator, allFlowRefs, projectContext) {
225
+ processFile(file, projectRoot, isStandalone = false, metricsAggregator, allFlowRefs, allFlowNames, projectContext) {
218
226
  this.log(` Processing: ${file.relativePath}`);
219
227
  try {
220
- const content = (0, FileScanner_1.readFileContent)(file.absolutePath);
221
- const parseResult = (0, XmlParser_1.parseXml)(content, file.relativePath);
222
- if (!parseResult.success || !parseResult.document) {
223
- return {
224
- filePath: file.absolutePath,
225
- relativePath: file.relativePath,
226
- issues: [],
227
- parsed: false,
228
- parseError: parseResult.error,
229
- };
228
+ // Try to use the cached document from preScanFiles() first
229
+ const cachedDoc = this.documentCache.get(file.absolutePath);
230
+ let doc;
231
+ if (cachedDoc) {
232
+ doc = cachedDoc;
233
+ }
234
+ else {
235
+ // Cache miss (standalone mode or non-XML processed first time)
236
+ const content = (0, FileScanner_1.readFileContent)(file.absolutePath);
237
+ const parseResult = (0, XmlParser_1.parseXml)(content, file.relativePath);
238
+ if (!parseResult.success || !parseResult.document) {
239
+ return {
240
+ filePath: file.absolutePath,
241
+ relativePath: file.relativePath,
242
+ issues: [],
243
+ parsed: false,
244
+ parseError: parseResult.error,
245
+ };
246
+ }
247
+ doc = parseResult.document;
230
248
  }
231
- const issues = this.runRules(parseResult.document, file.absolutePath, projectRoot, isStandalone, allFlowRefs, projectContext);
249
+ const issues = this.runRules(doc, file.absolutePath, projectRoot, isStandalone, allFlowRefs, allFlowNames, projectContext);
232
250
  // Collect metrics from parsed document
233
251
  if (metricsAggregator) {
234
- this.collectFileMetrics(parseResult.document, file.relativePath, metricsAggregator);
252
+ this.collectFileMetrics(doc, file.relativePath, metricsAggregator);
235
253
  }
236
254
  return {
237
255
  filePath: file.absolutePath,
@@ -254,7 +272,7 @@ class LintEngine {
254
272
  /**
255
273
  * Run all enabled rules against a document
256
274
  */
257
- runRules(doc, filePath, projectRoot, isStandalone = false, allFlowRefs, projectContext) {
275
+ runRules(doc, filePath, projectRoot, isStandalone = false, allFlowRefs, allFlowNames, projectContext) {
258
276
  const issues = [];
259
277
  const enabledRules = this.getEnabledRules();
260
278
  for (const rule of enabledRules) {
@@ -262,6 +280,10 @@ class LintEngine {
262
280
  if (isStandalone && rule.category === 'structure') {
263
281
  continue;
264
282
  }
283
+ // Skip ProjectRule instances — they are handled separately in runProjectRules()
284
+ if (rule instanceof ProjectRule_1.ProjectRule) {
285
+ continue;
286
+ }
265
287
  try {
266
288
  const context = {
267
289
  filePath,
@@ -269,6 +291,7 @@ class LintEngine {
269
291
  projectRoot,
270
292
  config: this.getRuleConfig(rule.id),
271
293
  allFlowRefs,
294
+ allFlowNames,
272
295
  projectContext,
273
296
  };
274
297
  const ruleIssues = rule.validate(doc, context);
@@ -380,18 +403,26 @@ class LintEngine {
380
403
  /**
381
404
  * Pre-scan all XML files to build cross-file context:
382
405
  * - allFlowRefs: union of all <flow-ref name="..."> targets across files
406
+ * - allFlowNames: union of all <flow>/<sub-flow> name attributes across files
383
407
  * - projectContext: whether the project has HTTP listeners / APIkit routers
384
408
  *
409
+ * Parsed documents are cached in this.documentCache so that processFile()
410
+ * can reuse them instead of re-parsing.
411
+ *
385
412
  * This runs before the main per-file rule execution so that rules can use
386
413
  * the aggregated information (e.g. HYG-003 cross-file unused flow detection,
414
+ * HYG-004 cross-file flow-ref target validation,
387
415
  * MULE-005 HTTP-only project detection).
388
416
  */
389
417
  preScanFiles(files) {
390
418
  const allFlowRefs = new Set();
419
+ const allFlowNames = new Set();
391
420
  const projectContext = {
392
421
  hasHttpListener: false,
393
422
  hasApikitRouter: false,
394
423
  };
424
+ // Clear the cache at the start of each scan
425
+ this.documentCache.clear();
395
426
  for (const file of files) {
396
427
  // Only process XML files
397
428
  if (!file.absolutePath.endsWith('.xml')) {
@@ -404,6 +435,8 @@ class LintEngine {
404
435
  continue;
405
436
  }
406
437
  const doc = parseResult.document;
438
+ // Cache the parsed document for reuse in processFile()
439
+ this.documentCache.set(file.absolutePath, doc);
407
440
  // Collect flow-ref targets
408
441
  const allElements = doc.getElementsByTagName('*');
409
442
  for (let i = 0; i < allElements.length; i++) {
@@ -415,6 +448,13 @@ class LintEngine {
415
448
  allFlowRefs.add(name);
416
449
  }
417
450
  }
451
+ // Collect flow/sub-flow definitions
452
+ if (localName === 'flow' || localName === 'sub-flow') {
453
+ const name = el.getAttribute('name');
454
+ if (name) {
455
+ allFlowNames.add(name);
456
+ }
457
+ }
418
458
  // Detect HTTP listener
419
459
  if (localName === 'listener') {
420
460
  projectContext.hasHttpListener = true;
@@ -433,7 +473,54 @@ class LintEngine {
433
473
  // Ignore unreadable files during pre-scan
434
474
  }
435
475
  }
436
- return { allFlowRefs, projectContext };
476
+ // Detect project layer from directory name, flow names, and content
477
+ projectContext.projectLayer = this.detectProjectLayer(files, allFlowNames, projectContext);
478
+ return { allFlowRefs, allFlowNames, projectContext };
479
+ }
480
+ /**
481
+ * Detect the API-led connectivity layer of the project.
482
+ *
483
+ * Heuristics (in priority order):
484
+ * 1. Directory/project name contains `-sapi`, `-papi`, `-eapi`
485
+ * 2. Flow names contain `sapi`, `papi`, `eapi` patterns
486
+ * 3. No HTTP listener + batch jobs → batch
487
+ * 4. No flows at all → library
488
+ * 5. Otherwise → unknown
489
+ */
490
+ detectProjectLayer(files, allFlowNames, projectContext) {
491
+ // Check project directory name
492
+ const projectDir = files.length > 0
493
+ ? path.basename(path.resolve(files[0].absolutePath, '..', '..', '..', '..'))
494
+ : '';
495
+ const dirLower = projectDir.toLowerCase();
496
+ if (dirLower.includes('-sapi') || dirLower.includes('_sapi') || dirLower.endsWith('sapi')) {
497
+ return 'sapi';
498
+ }
499
+ if (dirLower.includes('-papi') || dirLower.includes('_papi') || dirLower.endsWith('papi')) {
500
+ return 'papi';
501
+ }
502
+ if (dirLower.includes('-eapi') || dirLower.includes('_eapi') || dirLower.endsWith('eapi')) {
503
+ return 'eapi';
504
+ }
505
+ // Check flow names for layer hints
506
+ const flowNamesArray = [...allFlowNames].map((n) => n.toLowerCase());
507
+ const hasSapiFlow = flowNamesArray.some((n) => n.includes('sapi') || n.includes('system-api'));
508
+ const hasPapiFlow = flowNamesArray.some((n) => n.includes('papi') || n.includes('process-api'));
509
+ const hasEapiFlow = flowNamesArray.some((n) => n.includes('eapi') || n.includes('experience-api'));
510
+ if (hasSapiFlow && !hasPapiFlow && !hasEapiFlow)
511
+ return 'sapi';
512
+ if (hasPapiFlow && !hasSapiFlow && !hasEapiFlow)
513
+ return 'papi';
514
+ if (hasEapiFlow && !hasSapiFlow && !hasPapiFlow)
515
+ return 'eapi';
516
+ // No flows → library
517
+ if (allFlowNames.size === 0)
518
+ return 'library';
519
+ // Has batch jobs but no HTTP listener → batch
520
+ const hasBatch = flowNamesArray.some((n) => n.includes('batch'));
521
+ if (hasBatch && !projectContext.hasHttpListener)
522
+ return 'batch';
523
+ return 'unknown';
437
524
  }
438
525
  }
439
526
  exports.LintEngine = LintEngine;
@@ -1 +1 @@
1
- {"version":3,"file":"LintEngine.js","sourceRoot":"","sources":["../../../src/engine/LintEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LintEngine.js","sourceRoot":"","sources":["../../../src/engine/LintEngine.ts"],"names":[],"mappings":"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"}
@@ -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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"}