@sfdxy/mule-lint 1.18.1 → 1.20.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 +164 -151
- package/dist/bin/mule-lint-mcp.js.map +1 -1
- package/dist/bin/mule-lint.js +2 -2
- package/dist/bin/mule-lint.js.map +1 -1
- package/dist/package.json +26 -15
- package/dist/src/core/ComplexityCalculator.d.ts.map +1 -1
- package/dist/src/core/ComplexityCalculator.js.map +1 -1
- package/dist/src/core/FileScanner.d.ts.map +1 -1
- package/dist/src/core/FileScanner.js.map +1 -1
- package/dist/src/core/MetricsAggregator.d.ts.map +1 -1
- package/dist/src/core/MetricsAggregator.js +1 -1
- package/dist/src/core/MetricsAggregator.js.map +1 -1
- package/dist/src/core/MetricsCollector.d.ts.map +1 -1
- package/dist/src/core/MetricsCollector.js +1 -2
- package/dist/src/core/MetricsCollector.js.map +1 -1
- package/dist/src/core/QualityGateEvaluator.d.ts.map +1 -1
- package/dist/src/core/QualityGateEvaluator.js.map +1 -1
- package/dist/src/core/XPathHelper.d.ts.map +1 -1
- package/dist/src/core/XPathHelper.js +0 -1
- package/dist/src/core/XPathHelper.js.map +1 -1
- package/dist/src/core/XmlParser.d.ts.map +1 -1
- package/dist/src/core/XmlParser.js.map +1 -1
- package/dist/src/core/YamlParser.d.ts.map +1 -1
- package/dist/src/core/YamlParser.js.map +1 -1
- package/dist/src/core/errors.js.map +1 -1
- package/dist/src/engine/LintEngine.d.ts +10 -0
- package/dist/src/engine/LintEngine.d.ts.map +1 -1
- package/dist/src/engine/LintEngine.js +68 -4
- package/dist/src/engine/LintEngine.js.map +1 -1
- package/dist/src/formatter/MuleXmlFormatter.d.ts.map +1 -1
- package/dist/src/formatter/MuleXmlFormatter.js +7 -1
- package/dist/src/formatter/MuleXmlFormatter.js.map +1 -1
- package/dist/src/formatter/index.d.ts +2 -2
- package/dist/src/formatter/index.d.ts.map +1 -1
- package/dist/src/formatter/index.js.map +1 -1
- package/dist/src/formatters/CsvFormatter.js.map +1 -1
- package/dist/src/formatters/HtmlFormatter.js +0 -1
- package/dist/src/formatters/HtmlFormatter.js.map +1 -1
- package/dist/src/formatters/JsonFormatter.d.ts.map +1 -1
- package/dist/src/formatters/JsonFormatter.js.map +1 -1
- package/dist/src/formatters/SarifFormatter.js.map +1 -1
- package/dist/src/formatters/TableFormatter.js.map +1 -1
- package/dist/src/formatters/html/components/Icons.js +1 -1
- package/dist/src/formatters/html/components/Icons.js.map +1 -1
- package/dist/src/formatters/html/components/MetricCard.d.ts.map +1 -1
- package/dist/src/formatters/html/components/MetricCard.js.map +1 -1
- package/dist/src/formatters/html/components/Modal.d.ts.map +1 -1
- package/dist/src/formatters/html/components/Modal.js.map +1 -1
- package/dist/src/formatters/html/components/RatingBadge.d.ts.map +1 -1
- package/dist/src/formatters/html/components/RatingBadge.js +6 -6
- package/dist/src/formatters/html/components/RatingBadge.js.map +1 -1
- package/dist/src/formatters/html/index.d.ts +2 -2
- package/dist/src/formatters/html/index.d.ts.map +1 -1
- package/dist/src/formatters/html/index.js.map +1 -1
- package/dist/src/formatters/html/scripts/charts.d.ts.map +1 -1
- package/dist/src/formatters/html/scripts/charts.js +45 -12
- package/dist/src/formatters/html/scripts/charts.js.map +1 -1
- package/dist/src/formatters/html/scripts/index.d.ts.map +1 -1
- package/dist/src/formatters/html/scripts/index.js.map +1 -1
- package/dist/src/formatters/html/scripts/renderer.d.ts.map +1 -1
- package/dist/src/formatters/html/scripts/renderer.js +175 -35
- package/dist/src/formatters/html/scripts/renderer.js.map +1 -1
- package/dist/src/formatters/html/sections/Header.d.ts.map +1 -1
- package/dist/src/formatters/html/sections/Header.js.map +1 -1
- package/dist/src/formatters/html/sections/LintSummary.d.ts.map +1 -1
- package/dist/src/formatters/html/sections/LintSummary.js.map +1 -1
- package/dist/src/formatters/html/sections/QualityRatings.js.map +1 -1
- package/dist/src/formatters/html/sections/Sidebar.d.ts.map +1 -1
- package/dist/src/formatters/html/sections/Sidebar.js.map +1 -1
- package/dist/src/formatters/html/styles/badges.d.ts.map +1 -1
- package/dist/src/formatters/html/styles/badges.js.map +1 -1
- package/dist/src/formatters/html/styles/index.d.ts.map +1 -1
- package/dist/src/formatters/html/styles/index.js.map +1 -1
- package/dist/src/formatters/html/theme.js.map +1 -1
- package/dist/src/formatters/html/views/Dashboard.js +5 -5
- package/dist/src/formatters/html/views/Dashboard.js.map +1 -1
- package/dist/src/formatters/html/views/IssuesView.d.ts.map +1 -1
- package/dist/src/formatters/html/views/IssuesView.js.map +1 -1
- package/dist/src/formatters/index.js.map +1 -1
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js +0 -1
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/prompts/index.js.map +1 -1
- package/dist/src/mcp/resources/index.js +30 -7
- package/dist/src/mcp/resources/index.js.map +1 -1
- package/dist/src/mcp/tools/formatMuleXml.d.ts.map +1 -1
- package/dist/src/mcp/tools/formatMuleXml.js +4 -13
- package/dist/src/mcp/tools/formatMuleXml.js.map +1 -1
- package/dist/src/mcp/tools/getRuleDetails.d.ts.map +1 -1
- package/dist/src/mcp/tools/getRuleDetails.js +1 -3
- package/dist/src/mcp/tools/getRuleDetails.js.map +1 -1
- package/dist/src/mcp/tools/runLintAnalysis.js +9 -9
- package/dist/src/mcp/tools/runLintAnalysis.js.map +1 -1
- package/dist/src/mcp/tools/validateSnippet.d.ts.map +1 -1
- package/dist/src/mcp/tools/validateSnippet.js.map +1 -1
- package/dist/src/quality/calculator.d.ts.map +1 -1
- package/dist/src/quality/calculator.js +1 -1
- package/dist/src/quality/calculator.js.map +1 -1
- package/dist/src/quality/index.d.ts.map +1 -1
- package/dist/src/quality/index.js.map +1 -1
- package/dist/src/quality/thresholds.js.map +1 -1
- package/dist/src/quality/types.d.ts.map +1 -1
- package/dist/src/rules/api-led/ApiLedRules.d.ts.map +1 -1
- package/dist/src/rules/api-led/ApiLedRules.js +6 -2
- package/dist/src/rules/api-led/ApiLedRules.js.map +1 -1
- package/dist/src/rules/api-led/SingleSystemSapiRule.d.ts.map +1 -1
- package/dist/src/rules/api-led/SingleSystemSapiRule.js.map +1 -1
- package/dist/src/rules/base/BaseRule.d.ts.map +1 -1
- package/dist/src/rules/base/BaseRule.js.map +1 -1
- package/dist/src/rules/base/ProjectRule.d.ts.map +1 -1
- package/dist/src/rules/base/ProjectRule.js.map +1 -1
- package/dist/src/rules/complexity/FlowComplexityRule.d.ts.map +1 -1
- package/dist/src/rules/complexity/FlowComplexityRule.js.map +1 -1
- package/dist/src/rules/dataweave/DataWeaveRules.d.ts +6 -0
- package/dist/src/rules/dataweave/DataWeaveRules.d.ts.map +1 -1
- package/dist/src/rules/dataweave/DataWeaveRules.js +17 -3
- package/dist/src/rules/dataweave/DataWeaveRules.js.map +1 -1
- package/dist/src/rules/dataweave/Java17DWErrorHandlingRule.d.ts.map +1 -1
- package/dist/src/rules/dataweave/Java17DWErrorHandlingRule.js.map +1 -1
- package/dist/src/rules/documentation/DisplayNameRule.d.ts.map +1 -1
- package/dist/src/rules/documentation/DisplayNameRule.js.map +1 -1
- package/dist/src/rules/documentation/FlowDescriptionRule.d.ts.map +1 -1
- package/dist/src/rules/documentation/FlowDescriptionRule.js.map +1 -1
- package/dist/src/rules/documentation/MissingDocNameRule.d.ts.map +1 -1
- package/dist/src/rules/documentation/MissingDocNameRule.js.map +1 -1
- package/dist/src/rules/error-handling/CorrelationIdRule.d.ts +22 -1
- package/dist/src/rules/error-handling/CorrelationIdRule.d.ts.map +1 -1
- package/dist/src/rules/error-handling/CorrelationIdRule.js +107 -6
- package/dist/src/rules/error-handling/CorrelationIdRule.js.map +1 -1
- package/dist/src/rules/error-handling/GenericErrorRule.d.ts.map +1 -1
- package/dist/src/rules/error-handling/GenericErrorRule.js.map +1 -1
- package/dist/src/rules/error-handling/GlobalErrorHandlerRule.d.ts +14 -2
- package/dist/src/rules/error-handling/GlobalErrorHandlerRule.d.ts.map +1 -1
- package/dist/src/rules/error-handling/GlobalErrorHandlerRule.js +40 -18
- package/dist/src/rules/error-handling/GlobalErrorHandlerRule.js.map +1 -1
- package/dist/src/rules/error-handling/HttpStatusRule.d.ts +5 -0
- package/dist/src/rules/error-handling/HttpStatusRule.d.ts.map +1 -1
- package/dist/src/rules/error-handling/HttpStatusRule.js +15 -0
- package/dist/src/rules/error-handling/HttpStatusRule.js.map +1 -1
- package/dist/src/rules/error-handling/MissingErrorHandlerRule.d.ts.map +1 -1
- package/dist/src/rules/error-handling/MissingErrorHandlerRule.js.map +1 -1
- package/dist/src/rules/error-handling/TryScopeRule.d.ts.map +1 -1
- package/dist/src/rules/error-handling/TryScopeRule.js.map +1 -1
- package/dist/src/rules/experimental/ExperimentalRules.d.ts.map +1 -1
- package/dist/src/rules/experimental/ExperimentalRules.js +6 -2
- package/dist/src/rules/experimental/ExperimentalRules.js.map +1 -1
- package/dist/src/rules/governance/GovernanceRules.d.ts.map +1 -1
- package/dist/src/rules/governance/GovernanceRules.js.map +1 -1
- package/dist/src/rules/http/HttpContentTypeRule.d.ts +28 -1
- package/dist/src/rules/http/HttpContentTypeRule.d.ts.map +1 -1
- package/dist/src/rules/http/HttpContentTypeRule.js +68 -7
- package/dist/src/rules/http/HttpContentTypeRule.js.map +1 -1
- package/dist/src/rules/http/HttpTimeoutRule.d.ts.map +1 -1
- package/dist/src/rules/http/HttpTimeoutRule.js.map +1 -1
- package/dist/src/rules/http/HttpUserAgentRule.d.ts.map +1 -1
- package/dist/src/rules/http/HttpUserAgentRule.js.map +1 -1
- package/dist/src/rules/index.js.map +1 -1
- package/dist/src/rules/logging/ExcessiveLoggersRule.d.ts.map +1 -1
- package/dist/src/rules/logging/ExcessiveLoggersRule.js.map +1 -1
- package/dist/src/rules/logging/LoggerCategoryRule.d.ts.map +1 -1
- package/dist/src/rules/logging/LoggerCategoryRule.js.map +1 -1
- package/dist/src/rules/logging/LoggerInUntilSuccessfulRule.d.ts.map +1 -1
- package/dist/src/rules/logging/LoggerInUntilSuccessfulRule.js.map +1 -1
- package/dist/src/rules/logging/LoggerPayloadRule.d.ts.map +1 -1
- package/dist/src/rules/logging/LoggerPayloadRule.js.map +1 -1
- package/dist/src/rules/logging/NewLoggingRules.d.ts.map +1 -1
- package/dist/src/rules/logging/NewLoggingRules.js.map +1 -1
- package/dist/src/rules/naming/FlowCasingRule.d.ts.map +1 -1
- package/dist/src/rules/naming/FlowCasingRule.js.map +1 -1
- package/dist/src/rules/naming/FlowNamingRule.d.ts.map +1 -1
- package/dist/src/rules/naming/FlowNamingRule.js +3 -1
- package/dist/src/rules/naming/FlowNamingRule.js.map +1 -1
- package/dist/src/rules/naming/VariableNamingRule.d.ts.map +1 -1
- package/dist/src/rules/naming/VariableNamingRule.js.map +1 -1
- package/dist/src/rules/operations/CommentedCodeRule.d.ts.map +1 -1
- package/dist/src/rules/operations/CommentedCodeRule.js.map +1 -1
- package/dist/src/rules/operations/UnusedFlowRule.d.ts +6 -1
- package/dist/src/rules/operations/UnusedFlowRule.d.ts.map +1 -1
- package/dist/src/rules/operations/UnusedFlowRule.js +23 -9
- package/dist/src/rules/operations/UnusedFlowRule.js.map +1 -1
- package/dist/src/rules/performance/AsyncErrorHandlerRule.d.ts.map +1 -1
- package/dist/src/rules/performance/AsyncErrorHandlerRule.js.map +1 -1
- package/dist/src/rules/performance/ConnectionPoolingRule.d.ts +5 -0
- package/dist/src/rules/performance/ConnectionPoolingRule.d.ts.map +1 -1
- package/dist/src/rules/performance/ConnectionPoolingRule.js +18 -5
- package/dist/src/rules/performance/ConnectionPoolingRule.js.map +1 -1
- package/dist/src/rules/performance/LargeChoiceBlockRule.d.ts.map +1 -1
- package/dist/src/rules/performance/LargeChoiceBlockRule.js.map +1 -1
- package/dist/src/rules/performance/ReconnectionStrategyRule.d.ts +7 -0
- package/dist/src/rules/performance/ReconnectionStrategyRule.d.ts.map +1 -1
- package/dist/src/rules/performance/ReconnectionStrategyRule.js +15 -2
- package/dist/src/rules/performance/ReconnectionStrategyRule.js.map +1 -1
- package/dist/src/rules/performance/ScatterGatherRoutesRule.d.ts.map +1 -1
- package/dist/src/rules/performance/ScatterGatherRoutesRule.js.map +1 -1
- package/dist/src/rules/security/EncryptionKeyInLogsRule.d.ts.map +1 -1
- package/dist/src/rules/security/EncryptionKeyInLogsRule.js.map +1 -1
- package/dist/src/rules/security/HardcodedCredentialsRule.d.ts.map +1 -1
- package/dist/src/rules/security/HardcodedCredentialsRule.js.map +1 -1
- package/dist/src/rules/security/HardcodedHttpRule.d.ts.map +1 -1
- package/dist/src/rules/security/HardcodedHttpRule.js +1 -9
- package/dist/src/rules/security/HardcodedHttpRule.js.map +1 -1
- package/dist/src/rules/security/InputValidationRule.d.ts.map +1 -1
- package/dist/src/rules/security/InputValidationRule.js +1 -3
- package/dist/src/rules/security/InputValidationRule.js.map +1 -1
- package/dist/src/rules/security/InsecureTlsRule.d.ts.map +1 -1
- package/dist/src/rules/security/InsecureTlsRule.js.map +1 -1
- package/dist/src/rules/security/RateLimitingRule.d.ts.map +1 -1
- package/dist/src/rules/security/RateLimitingRule.js.map +1 -1
- package/dist/src/rules/security/TlsVersionRule.d.ts.map +1 -1
- package/dist/src/rules/security/TlsVersionRule.js.map +1 -1
- package/dist/src/rules/standards/ApiKitValidationRule.d.ts.map +1 -1
- package/dist/src/rules/standards/ApiKitValidationRule.js.map +1 -1
- package/dist/src/rules/standards/AutoDiscoveryRule.d.ts.map +1 -1
- package/dist/src/rules/standards/AutoDiscoveryRule.js.map +1 -1
- package/dist/src/rules/standards/ChoiceAntiPatternRule.d.ts.map +1 -1
- package/dist/src/rules/standards/ChoiceAntiPatternRule.js.map +1 -1
- package/dist/src/rules/standards/CronExternalizedRule.d.ts.map +1 -1
- package/dist/src/rules/standards/CronExternalizedRule.js.map +1 -1
- package/dist/src/rules/standards/DeprecatedComponentRule.d.ts.map +1 -1
- package/dist/src/rules/standards/DeprecatedComponentRule.js.map +1 -1
- package/dist/src/rules/standards/DwlStandardsRule.d.ts.map +1 -1
- package/dist/src/rules/standards/DwlStandardsRule.js.map +1 -1
- package/dist/src/rules/standards/HttpPortPlaceholderRule.d.ts.map +1 -1
- package/dist/src/rules/standards/HttpPortPlaceholderRule.js.map +1 -1
- package/dist/src/rules/structure/StructureRules.d.ts +8 -1
- package/dist/src/rules/structure/StructureRules.d.ts.map +1 -1
- package/dist/src/rules/structure/StructureRules.js +11 -7
- package/dist/src/rules/structure/StructureRules.js.map +1 -1
- package/dist/src/rules/yaml/YamlRules.d.ts.map +1 -1
- package/dist/src/rules/yaml/YamlRules.js +2 -7
- package/dist/src/rules/yaml/YamlRules.js.map +1 -1
- package/dist/src/types/Config.d.ts.map +1 -1
- package/dist/src/types/Config.js.map +1 -1
- package/dist/src/types/QualityGate.d.ts.map +1 -1
- package/dist/src/types/QualityGate.js.map +1 -1
- package/dist/src/types/Report.d.ts.map +1 -1
- package/dist/src/types/Rule.d.ts +22 -0
- package/dist/src/types/Rule.d.ts.map +1 -1
- package/docs/README.md +27 -27
- package/docs/best-practices/documentation-standards.md +20 -11
- package/docs/best-practices/folder-structure.md +16 -10
- package/docs/best-practices/mulesoft-best-practices.md +96 -94
- package/docs/best-practices/rules-catalog.md +422 -299
- package/docs/linter/architecture.md +70 -64
- package/docs/linter/extending.md +137 -128
- package/docs/linter/folder-structure.md +39 -38
- package/docs/linter/naming-conventions.md +80 -78
- package/docs/linter/rule-engine.md +306 -306
- package/docs/mcp-design.md +35 -21
- package/package.json +84 -73
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Report.d.ts","sourceRoot":"","sources":["../../../src/types/Report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,UAAU;
|
|
1
|
+
{"version":3,"file":"Report.d.ts","sourceRoot":"","sources":["../../../src/types/Report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;IACpC,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wCAAwC;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,0CAA0C;IAC1C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,sDAAsD;IACtD,gBAAgB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,qBAAqB;IACrB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3E,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;IAChE,+BAA+B;IAC/B,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IAIzC,oCAAoC;IACpC,UAAU,CAAC,EAAE;QACX,wCAAwC;QACxC,KAAK,EAAE,MAAM,CAAC;QACd,kCAAkC;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,8BAA8B;QAC9B,OAAO,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C,yCAAyC;QACzC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACrC,CAAC;IAEF,8BAA8B;IAC9B,eAAe,CAAC,EAAE;QAChB,gCAAgC;QAChC,oBAAoB,EAAE,MAAM,CAAC;QAC7B,sCAAsC;QACtC,aAAa,EAAE,MAAM,CAAC;QACtB,+BAA+B;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB;QACjB,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACrC,CAAC;IAEF,iCAAiC;IACjC,WAAW,CAAC,EAAE;QACZ,2BAA2B;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,iBAAiB;QACjB,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACrC,CAAC;IAEF,uBAAuB;IACvB,QAAQ,CAAC,EAAE;QACT,gCAAgC;QAChC,eAAe,EAAE,MAAM,CAAC;QACxB,kCAAkC;QAClC,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB;QACjB,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACrC,CAAC;IAEF,4CAA4C;IAC5C,QAAQ,CAAC,EAAE;QACT,4BAA4B;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,6BAA6B;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,0BAA0B;QAC1B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,0BAA0B;IAC1B,YAAY,CAAC,EAAE;QACb,oCAAoC;QACpC,UAAU,EAAE,MAAM,CAAC;QACnB,iCAAiC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B"}
|
package/dist/src/types/Rule.d.ts
CHANGED
|
@@ -43,6 +43,16 @@ export interface RuleConfig {
|
|
|
43
43
|
/** Rule-specific options */
|
|
44
44
|
options?: Record<string, unknown>;
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Project-level context derived from a pre-scan of all files.
|
|
48
|
+
* Populated by LintEngine before per-file rule execution.
|
|
49
|
+
*/
|
|
50
|
+
export interface ProjectContext {
|
|
51
|
+
/** True if any file in the project contains an http:listener element */
|
|
52
|
+
hasHttpListener: boolean;
|
|
53
|
+
/** True if any file contains an apikit:router or apikit:console element */
|
|
54
|
+
hasApikitRouter: boolean;
|
|
55
|
+
}
|
|
46
56
|
/**
|
|
47
57
|
* Context passed to each rule during validation
|
|
48
58
|
*/
|
|
@@ -55,6 +65,18 @@ export interface ValidationContext {
|
|
|
55
65
|
projectRoot: string;
|
|
56
66
|
/** Configuration for this specific rule */
|
|
57
67
|
config: RuleConfig;
|
|
68
|
+
/**
|
|
69
|
+
* Set of all flow/sub-flow names referenced via <flow-ref> across all
|
|
70
|
+
* project files. Populated during the LintEngine pre-scan phase.
|
|
71
|
+
* When undefined (e.g. standalone file scan), intra-file refs only.
|
|
72
|
+
*/
|
|
73
|
+
allFlowRefs?: Set<string>;
|
|
74
|
+
/**
|
|
75
|
+
* Project-level feature flags derived from a pre-scan of all files.
|
|
76
|
+
* Rules that only apply to HTTP-exposed projects (e.g. MULE-005) should
|
|
77
|
+
* check these flags before reporting issues.
|
|
78
|
+
*/
|
|
79
|
+
projectContext?: ProjectContext;
|
|
58
80
|
}
|
|
59
81
|
/**
|
|
60
82
|
* Interface that all lint rules must implement
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../../src/types/Rule.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../../src/types/Rule.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,QAAQ,GACR,UAAU,GACV,SAAS,GACT,MAAM,GACN,aAAa,GACb,eAAe,GACf,WAAW,GACX,YAAY,GACZ,WAAW,GACX,WAAW,GACX,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,cAAc,CAAC;AAEnB;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,KAAK,GAAG,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,eAAe,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,MAAM,EAAE,UAAU,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,uCAAuC;IACvC,QAAQ,EAAE,YAAY,CAAC;IACvB,gEAAgE;IAChE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE,CAAC;CAC9D"}
|
package/docs/README.md
CHANGED
|
@@ -8,10 +8,10 @@ Welcome to the Mule-Lint documentation. This documentation is organized into two
|
|
|
8
8
|
|
|
9
9
|
Comprehensive guidelines for building maintainable, secure, and performant Mule applications. These guidelines cover more than just what the linter validates - they represent industry best practices for MuleSoft development.
|
|
10
10
|
|
|
11
|
-
| Document
|
|
12
|
-
|
|
11
|
+
| Document | Description |
|
|
12
|
+
| ----------------------------------------------------------------- | -------------------------------------------- |
|
|
13
13
|
| [Best Practices Guide](best-practices/mulesoft-best-practices.md) | Complete MuleSoft development best practices |
|
|
14
|
-
| [Rules Catalog](best-practices/rules-catalog.md)
|
|
14
|
+
| [Rules Catalog](best-practices/rules-catalog.md) | All 56 linter rules with examples |
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -19,13 +19,13 @@ Comprehensive guidelines for building maintainable, secure, and performant Mule
|
|
|
19
19
|
|
|
20
20
|
For contributors and those extending mule-lint.
|
|
21
21
|
|
|
22
|
-
| Document
|
|
23
|
-
|
|
24
|
-
| [Architecture](linter/architecture.md)
|
|
25
|
-
| [Rule Engine](linter/rule-engine.md)
|
|
26
|
-
| [Extending](linter/extending.md)
|
|
27
|
-
| [Folder Structure](linter/folder-structure.md)
|
|
28
|
-
| [Naming Conventions](linter/naming-conventions.md) | Code style and naming standards
|
|
22
|
+
| Document | Description |
|
|
23
|
+
| -------------------------------------------------- | -------------------------------------- |
|
|
24
|
+
| [Architecture](linter/architecture.md) | System design, patterns, and data flow |
|
|
25
|
+
| [Rule Engine](linter/rule-engine.md) | Rule engine internals and interfaces |
|
|
26
|
+
| [Extending](linter/extending.md) | How to create custom rules |
|
|
27
|
+
| [Folder Structure](linter/folder-structure.md) | Project organization |
|
|
28
|
+
| [Naming Conventions](linter/naming-conventions.md) | Code style and naming standards |
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
@@ -61,28 +61,28 @@ mule-lint ./src/main/mule --fail-on-warning
|
|
|
61
61
|
|
|
62
62
|
### Exit Codes
|
|
63
63
|
|
|
64
|
-
| Code | Meaning
|
|
65
|
-
|
|
66
|
-
| 0
|
|
67
|
-
| 1
|
|
68
|
-
| 2
|
|
69
|
-
| 3
|
|
64
|
+
| Code | Meaning |
|
|
65
|
+
| ---- | ---------------------------- |
|
|
66
|
+
| 0 | Success (no errors) |
|
|
67
|
+
| 1 | Errors found |
|
|
68
|
+
| 2 | CLI/Configuration error |
|
|
69
|
+
| 3 | Parse errors (malformed XML) |
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
73
73
|
## Rule Families
|
|
74
74
|
|
|
75
|
-
| Family
|
|
76
|
-
|
|
77
|
-
| Core MuleSoft
|
|
78
|
-
| Security
|
|
79
|
-
| Logging
|
|
80
|
-
| Operations
|
|
81
|
-
| YAML Properties | YAML-XXX
|
|
82
|
-
| DataWeave
|
|
83
|
-
| API-Led
|
|
84
|
-
| Governance
|
|
85
|
-
| Experimental
|
|
75
|
+
| Family | Prefix | Count | Description |
|
|
76
|
+
| --------------- | ------------------------- | ----- | -------------------------------------------------- |
|
|
77
|
+
| Core MuleSoft | MULE-XXX | 29 | Core Mule 4 XML validation |
|
|
78
|
+
| Security | SEC-XXX | 5 | Security best practices (TLS, rate limiting, etc.) |
|
|
79
|
+
| Logging | LOG-XXX | 2 | Structured logging and sensitive data |
|
|
80
|
+
| Operations | OPS-XXX, RES-XXX, HYG-XXX | 7 | Reconnection, auto-discovery, hygiene |
|
|
81
|
+
| YAML Properties | YAML-XXX | 3 | YAML configuration validation |
|
|
82
|
+
| DataWeave | DW-XXX | 4 | DataWeave file validation |
|
|
83
|
+
| API-Led | API-XXX | 5 | API-Led connectivity patterns |
|
|
84
|
+
| Governance | PROJ-XXX | 2 | POM and Git hygiene |
|
|
85
|
+
| Experimental | EXP-XXX | 3 | Beta rules for evaluation |
|
|
86
86
|
|
|
87
87
|
**Total: 56 rules**
|
|
88
88
|
|
|
@@ -5,22 +5,26 @@ Detailed, up-to-date documentation is critical for the long-term maintainability
|
|
|
5
5
|
## 1. Code-Level Documentation
|
|
6
6
|
|
|
7
7
|
### Flow Documentation
|
|
8
|
+
|
|
8
9
|
Every flow should have a `doc:description` explaining its purpose, input, and output.
|
|
9
10
|
|
|
10
11
|
```xml
|
|
11
|
-
<flow name="process-order-flow"
|
|
12
|
-
doc:name="Process Order"
|
|
12
|
+
<flow name="process-order-flow"
|
|
13
|
+
doc:name="Process Order"
|
|
13
14
|
doc:description="Orchestrates the order fulfillment process. Input: Order JSON. Output: Order Status JSON.">
|
|
14
15
|
<!-- ... -->
|
|
15
16
|
</flow>
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
### Component Documentation
|
|
20
|
+
|
|
19
21
|
Use the `doc:name` attribute to provide a human-readable display name for components in the Studio canvas.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
|
|
23
|
+
- **Bad**: `Request`, `Transform Message`
|
|
24
|
+
- **Good**: `Request System API`, `Map to Common Model`
|
|
22
25
|
|
|
23
26
|
### Complex DataWeave
|
|
27
|
+
|
|
24
28
|
For complex transformations, use Javadoc-style comments within the `.dwl` file to explain the logic.
|
|
25
29
|
|
|
26
30
|
```dataweave
|
|
@@ -49,34 +53,39 @@ Every repository must contain a `README.md` at the root. Use this template:
|
|
|
49
53
|
[Short Description of what the application does]
|
|
50
54
|
|
|
51
55
|
## Architecture
|
|
56
|
+
|
|
52
57
|
- **Layer**: [System/Process/Experience]
|
|
53
58
|
- **Domain**: [e.g., Finance, Logistics]
|
|
54
59
|
- **Dependencies**: [List dependent System APIs or external systems]
|
|
55
60
|
|
|
56
61
|
## Setup & Installation
|
|
62
|
+
|
|
57
63
|
1. Clone the repo
|
|
58
64
|
2. Configure `dev.yaml` with your credentials...
|
|
59
65
|
|
|
60
66
|
## Features
|
|
67
|
+
|
|
61
68
|
- Order Creation
|
|
62
69
|
- Inventory Check
|
|
63
70
|
|
|
64
71
|
## API Specification
|
|
72
|
+
|
|
65
73
|
[Link to Exchange or local RAML]
|
|
66
74
|
```
|
|
67
75
|
|
|
68
76
|
## 3. API Documentation (Exchange)
|
|
69
77
|
|
|
70
78
|
Maintain your API specification (RAML/OAS) in Anypoint Exchange.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
79
|
+
|
|
80
|
+
- **Description**: Provide a high-level overview of the API.
|
|
81
|
+
- **Examples**: Include valid request/response examples for every endpoint.
|
|
82
|
+
- **Status Codes**: Document all possible HTTP return codes (200, 400, 401, 500).
|
|
74
83
|
|
|
75
84
|
## 4. Commit Messages
|
|
76
85
|
|
|
77
86
|
Follow [Conventional Commits](https://www.conventionalcommits.org/):
|
|
78
87
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
88
|
+
- `feat: add new order processing logic`
|
|
89
|
+
- `fix: resolve null pointer in mapping`
|
|
90
|
+
- `docs: update README with deployment steps`
|
|
91
|
+
- `chore: upgrade mule maven plugin`
|
|
@@ -33,26 +33,32 @@ my-mule-project/
|
|
|
33
33
|
## Key Directories Explained
|
|
34
34
|
|
|
35
35
|
### `src/main/mule`
|
|
36
|
+
|
|
36
37
|
Contains the actual Mule flow definitions.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
|
|
39
|
+
- **Best Practice**: Split monolithic XML files into logic units.
|
|
40
|
+
- `global.xml`: Configuration elements only (HTTP Listener Config, Database Config, etc.).
|
|
41
|
+
- `api.xml`: The main entry point (APIKit Router).
|
|
42
|
+
- `[feature]-impl.xml`: Implementation flows for a specific feature.
|
|
41
43
|
|
|
42
44
|
### `src/main/resources`
|
|
45
|
+
|
|
43
46
|
Contains external assets needed by the application.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
|
|
48
|
+
- **`dwl/`**: Store complex DataWeave transformations here as separate `.dwl` files. Avoid inline scripts longer than 5 lines.
|
|
49
|
+
- **`properties/`**: Store externalized configuration. Use environment-specific files (e.g., `dev.yaml`, `prod.yaml`).
|
|
50
|
+
- **`api/`**: The API definition (RAML or OAS).
|
|
47
51
|
|
|
48
52
|
### `src/test/munit`
|
|
53
|
+
|
|
49
54
|
Contains your MUnit test suites.
|
|
50
|
-
|
|
55
|
+
|
|
56
|
+
- **Naming**: Match the source file name, e.g., `orders-test-suite.xml` tests `orders-impl.xml`.
|
|
51
57
|
|
|
52
58
|
## Naming Conventions
|
|
53
59
|
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
- **Files**: Use `kebab-case` (e.g., `process-orders.xml`, `common-utils.dwl`).
|
|
61
|
+
- **Directories**: Use `kebab-case` (e.g., `business-logic`, `error-handling`).
|
|
56
62
|
|
|
57
63
|
## Why this structure?
|
|
58
64
|
|