@sfdxy/mule-lint 1.20.0 → 1.21.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 (134) 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/rules/api-led/ApikitConsoleProductionRule.d.ts +22 -0
  11. package/dist/src/rules/api-led/ApikitConsoleProductionRule.d.ts.map +1 -0
  12. package/dist/src/rules/api-led/ApikitConsoleProductionRule.js +43 -0
  13. package/dist/src/rules/api-led/ApikitConsoleProductionRule.js.map +1 -0
  14. package/dist/src/rules/api-led/ApikitMainFlowStructureRule.d.ts +24 -0
  15. package/dist/src/rules/api-led/ApikitMainFlowStructureRule.d.ts.map +1 -0
  16. package/dist/src/rules/api-led/ApikitMainFlowStructureRule.js +53 -0
  17. package/dist/src/rules/api-led/ApikitMainFlowStructureRule.js.map +1 -0
  18. package/dist/src/rules/api-led/ApikitStatusCodeVariableRule.d.ts +25 -0
  19. package/dist/src/rules/api-led/ApikitStatusCodeVariableRule.d.ts.map +1 -0
  20. package/dist/src/rules/api-led/ApikitStatusCodeVariableRule.js +59 -0
  21. package/dist/src/rules/api-led/ApikitStatusCodeVariableRule.js.map +1 -0
  22. package/dist/src/rules/connector/EventListenerNullGuardRule.d.ts +24 -0
  23. package/dist/src/rules/connector/EventListenerNullGuardRule.d.ts.map +1 -0
  24. package/dist/src/rules/connector/EventListenerNullGuardRule.js +58 -0
  25. package/dist/src/rules/connector/EventListenerNullGuardRule.js.map +1 -0
  26. package/dist/src/rules/connector/ReplayChannelConfigRule.d.ts +23 -0
  27. package/dist/src/rules/connector/ReplayChannelConfigRule.d.ts.map +1 -0
  28. package/dist/src/rules/connector/ReplayChannelConfigRule.js +52 -0
  29. package/dist/src/rules/connector/ReplayChannelConfigRule.js.map +1 -0
  30. package/dist/src/rules/dataweave/DataWeaveRules.d.ts +11 -4
  31. package/dist/src/rules/dataweave/DataWeaveRules.d.ts.map +1 -1
  32. package/dist/src/rules/dataweave/DataWeaveRules.js +20 -20
  33. package/dist/src/rules/dataweave/DataWeaveRules.js.map +1 -1
  34. package/dist/src/rules/dataweave/DuplicateTransformLogicRule.d.ts +25 -0
  35. package/dist/src/rules/dataweave/DuplicateTransformLogicRule.d.ts.map +1 -0
  36. package/dist/src/rules/dataweave/DuplicateTransformLogicRule.js +63 -0
  37. package/dist/src/rules/dataweave/DuplicateTransformLogicRule.js.map +1 -0
  38. package/dist/src/rules/error-handling/CatchAllLastRule.d.ts +24 -0
  39. package/dist/src/rules/error-handling/CatchAllLastRule.d.ts.map +1 -0
  40. package/dist/src/rules/error-handling/CatchAllLastRule.js +65 -0
  41. package/dist/src/rules/error-handling/CatchAllLastRule.js.map +1 -0
  42. package/dist/src/rules/error-handling/ErrorHandlerTypeCoverageRule.d.ts +28 -0
  43. package/dist/src/rules/error-handling/ErrorHandlerTypeCoverageRule.d.ts.map +1 -0
  44. package/dist/src/rules/error-handling/ErrorHandlerTypeCoverageRule.js +70 -0
  45. package/dist/src/rules/error-handling/ErrorHandlerTypeCoverageRule.js.map +1 -0
  46. package/dist/src/rules/error-handling/ErrorResponseStructureRule.d.ts +23 -0
  47. package/dist/src/rules/error-handling/ErrorResponseStructureRule.d.ts.map +1 -0
  48. package/dist/src/rules/error-handling/ErrorResponseStructureRule.js +73 -0
  49. package/dist/src/rules/error-handling/ErrorResponseStructureRule.js.map +1 -0
  50. package/dist/src/rules/error-handling/GenericErrorRule.d.ts +15 -3
  51. package/dist/src/rules/error-handling/GenericErrorRule.d.ts.map +1 -1
  52. package/dist/src/rules/error-handling/GenericErrorRule.js +58 -18
  53. package/dist/src/rules/error-handling/GenericErrorRule.js.map +1 -1
  54. package/dist/src/rules/error-handling/GlobalErrorHandlerRule.d.ts +14 -15
  55. package/dist/src/rules/error-handling/GlobalErrorHandlerRule.d.ts.map +1 -1
  56. package/dist/src/rules/error-handling/GlobalErrorHandlerRule.js +59 -38
  57. package/dist/src/rules/error-handling/GlobalErrorHandlerRule.js.map +1 -1
  58. package/dist/src/rules/error-handling/TryScopeRule.d.ts +5 -0
  59. package/dist/src/rules/error-handling/TryScopeRule.d.ts.map +1 -1
  60. package/dist/src/rules/error-handling/TryScopeRule.js +30 -7
  61. package/dist/src/rules/error-handling/TryScopeRule.js.map +1 -1
  62. package/dist/src/rules/http/ConnectionIdleTimeoutRule.d.ts +27 -0
  63. package/dist/src/rules/http/ConnectionIdleTimeoutRule.d.ts.map +1 -0
  64. package/dist/src/rules/http/ConnectionIdleTimeoutRule.js +46 -0
  65. package/dist/src/rules/http/ConnectionIdleTimeoutRule.js.map +1 -0
  66. package/dist/src/rules/index.d.ts +1 -1
  67. package/dist/src/rules/index.d.ts.map +1 -1
  68. package/dist/src/rules/index.js +50 -8
  69. package/dist/src/rules/index.js.map +1 -1
  70. package/dist/src/rules/logging/LoggerPayloadRule.d.ts +15 -0
  71. package/dist/src/rules/logging/LoggerPayloadRule.d.ts.map +1 -1
  72. package/dist/src/rules/logging/LoggerPayloadRule.js +48 -4
  73. package/dist/src/rules/logging/LoggerPayloadRule.js.map +1 -1
  74. package/dist/src/rules/operations/FlowRefTargetExistsRule.d.ts +23 -0
  75. package/dist/src/rules/operations/FlowRefTargetExistsRule.d.ts.map +1 -0
  76. package/dist/src/rules/operations/FlowRefTargetExistsRule.js +58 -0
  77. package/dist/src/rules/operations/FlowRefTargetExistsRule.js.map +1 -0
  78. package/dist/src/rules/operations/UnusedFlowRule.d.ts +20 -0
  79. package/dist/src/rules/operations/UnusedFlowRule.d.ts.map +1 -1
  80. package/dist/src/rules/operations/UnusedFlowRule.js +73 -7
  81. package/dist/src/rules/operations/UnusedFlowRule.js.map +1 -1
  82. package/dist/src/rules/operations/UnusedVariableRule.d.ts +31 -0
  83. package/dist/src/rules/operations/UnusedVariableRule.d.ts.map +1 -0
  84. package/dist/src/rules/operations/UnusedVariableRule.js +103 -0
  85. package/dist/src/rules/operations/UnusedVariableRule.js.map +1 -0
  86. package/dist/src/rules/performance/ListenerReconnectForeverRule.d.ts +28 -0
  87. package/dist/src/rules/performance/ListenerReconnectForeverRule.d.ts.map +1 -0
  88. package/dist/src/rules/performance/ListenerReconnectForeverRule.js +56 -0
  89. package/dist/src/rules/performance/ListenerReconnectForeverRule.js.map +1 -0
  90. package/dist/src/rules/performance/ReconnectionStrategyRule.d.ts +7 -4
  91. package/dist/src/rules/performance/ReconnectionStrategyRule.d.ts.map +1 -1
  92. package/dist/src/rules/performance/ReconnectionStrategyRule.js +44 -24
  93. package/dist/src/rules/performance/ReconnectionStrategyRule.js.map +1 -1
  94. package/dist/src/rules/security/ConnectorCredentialsSecuredRule.d.ts +36 -0
  95. package/dist/src/rules/security/ConnectorCredentialsSecuredRule.d.ts.map +1 -0
  96. package/dist/src/rules/security/ConnectorCredentialsSecuredRule.js +124 -0
  97. package/dist/src/rules/security/ConnectorCredentialsSecuredRule.js.map +1 -0
  98. package/dist/src/rules/security/HardcodedCredentialsRule.d.ts +4 -0
  99. package/dist/src/rules/security/HardcodedCredentialsRule.d.ts.map +1 -1
  100. package/dist/src/rules/security/HardcodedCredentialsRule.js +15 -0
  101. package/dist/src/rules/security/HardcodedCredentialsRule.js.map +1 -1
  102. package/dist/src/rules/security/SecurePropertiesEncryptionRule.d.ts +25 -0
  103. package/dist/src/rules/security/SecurePropertiesEncryptionRule.d.ts.map +1 -0
  104. package/dist/src/rules/security/SecurePropertiesEncryptionRule.js +59 -0
  105. package/dist/src/rules/security/SecurePropertiesEncryptionRule.js.map +1 -0
  106. package/dist/src/rules/security/SecurePropertiesKeyRule.d.ts +23 -0
  107. package/dist/src/rules/security/SecurePropertiesKeyRule.d.ts.map +1 -0
  108. package/dist/src/rules/security/SecurePropertiesKeyRule.js +45 -0
  109. package/dist/src/rules/security/SecurePropertiesKeyRule.js.map +1 -0
  110. package/dist/src/rules/security/TlsKeystorePasswordRule.d.ts +25 -0
  111. package/dist/src/rules/security/TlsKeystorePasswordRule.d.ts.map +1 -0
  112. package/dist/src/rules/security/TlsKeystorePasswordRule.js +63 -0
  113. package/dist/src/rules/security/TlsKeystorePasswordRule.js.map +1 -0
  114. package/dist/src/rules/standards/ApikitRouteVariableConsistencyRule.d.ts +26 -0
  115. package/dist/src/rules/standards/ApikitRouteVariableConsistencyRule.d.ts.map +1 -0
  116. package/dist/src/rules/standards/ApikitRouteVariableConsistencyRule.js +61 -0
  117. package/dist/src/rules/standards/ApikitRouteVariableConsistencyRule.js.map +1 -0
  118. package/dist/src/rules/standards/ConfigPropertiesOrderingRule.d.ts +34 -0
  119. package/dist/src/rules/standards/ConfigPropertiesOrderingRule.d.ts.map +1 -0
  120. package/dist/src/rules/standards/ConfigPropertiesOrderingRule.js +76 -0
  121. package/dist/src/rules/standards/ConfigPropertiesOrderingRule.js.map +1 -0
  122. package/dist/src/rules/standards/MissingEnvPropertiesDeclarationRule.d.ts +25 -0
  123. package/dist/src/rules/standards/MissingEnvPropertiesDeclarationRule.d.ts.map +1 -0
  124. package/dist/src/rules/standards/MissingEnvPropertiesDeclarationRule.js +111 -0
  125. package/dist/src/rules/standards/MissingEnvPropertiesDeclarationRule.js.map +1 -0
  126. package/dist/src/rules/yaml/YamlRules.d.ts +6 -2
  127. package/dist/src/rules/yaml/YamlRules.d.ts.map +1 -1
  128. package/dist/src/rules/yaml/YamlRules.js +15 -11
  129. package/dist/src/rules/yaml/YamlRules.js.map +1 -1
  130. package/dist/src/types/Rule.d.ts +13 -0
  131. package/dist/src/types/Rule.d.ts.map +1 -1
  132. package/docs/best-practices/rules-catalog.md +337 -29
  133. package/docs/linter/architecture.md +119 -64
  134. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigPropertiesOrderingRule = void 0;
4
+ const BaseRule_1 = require("../base/BaseRule");
5
+ /**
6
+ * CFG-001: Configuration Properties Ordering
7
+ *
8
+ * Mule configuration-properties elements should be loaded in the correct
9
+ * order: global defaults first, then environment-specific overrides, then
10
+ * secure properties. This ensures predictable property resolution (Mule
11
+ * uses last-wins for overlapping keys).
12
+ *
13
+ * Expected ordering pattern:
14
+ * 1. config/global.yaml (or common.yaml, defaults.yaml)
15
+ * 2. config/${mule.env}.yaml (environment-specific)
16
+ * 3. secure-properties:config (encrypted secrets)
17
+ * 4. entity-config/*.yaml (optional, additive)
18
+ *
19
+ * This rule flags when env-specific properties appear before global
20
+ * defaults, which would cause globals to override env-specific values.
21
+ */
22
+ class ConfigPropertiesOrderingRule extends BaseRule_1.BaseRule {
23
+ id = 'CFG-001';
24
+ name = 'Configuration Properties Ordering';
25
+ description = 'Configuration properties should be loaded in correct order: global before environment-specific';
26
+ severity = 'info';
27
+ category = 'standards';
28
+ /** Patterns that identify global/default property files */
29
+ GLOBAL_PATTERNS = [
30
+ 'global.yaml',
31
+ 'global.properties',
32
+ 'common.yaml',
33
+ 'common.properties',
34
+ 'defaults.yaml',
35
+ 'defaults.properties',
36
+ ];
37
+ /** Patterns that identify env-specific property files */
38
+ ENV_PATTERNS = ['${mule.env}', '${env}', '${mule.environment}'];
39
+ validate(doc, _context) {
40
+ const issues = [];
41
+ // Find all configuration-properties elements in document order
42
+ const configProps = this.select('//*[local-name()="configuration-properties"]', doc);
43
+ if (configProps.length < 2) {
44
+ return issues; // Not enough elements to have ordering issues
45
+ }
46
+ let globalIndex = -1;
47
+ let envIndex = -1;
48
+ for (let i = 0; i < configProps.length; i++) {
49
+ const file = this.getAttribute(configProps[i], 'file') ?? '';
50
+ const fileLower = file.toLowerCase();
51
+ if (this.isGlobalFile(fileLower)) {
52
+ globalIndex = i;
53
+ }
54
+ if (this.isEnvSpecificFile(file)) {
55
+ if (envIndex === -1) {
56
+ envIndex = i; // Track the first env-specific file
57
+ }
58
+ }
59
+ }
60
+ // Flag if env-specific appears before global defaults
61
+ if (globalIndex >= 0 && envIndex >= 0 && envIndex < globalIndex) {
62
+ issues.push(this.createIssue(configProps[envIndex], 'Environment-specific properties file is loaded before global defaults', {
63
+ suggestion: 'Load global/common properties first (e.g., config/global.yaml) before environment-specific files (e.g., config/${mule.env}.yaml) to ensure correct override behavior',
64
+ }));
65
+ }
66
+ return issues;
67
+ }
68
+ isGlobalFile(fileLower) {
69
+ return this.GLOBAL_PATTERNS.some((p) => fileLower.includes(p));
70
+ }
71
+ isEnvSpecificFile(file) {
72
+ return this.ENV_PATTERNS.some((p) => file.includes(p));
73
+ }
74
+ }
75
+ exports.ConfigPropertiesOrderingRule = ConfigPropertiesOrderingRule;
76
+ //# sourceMappingURL=ConfigPropertiesOrderingRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigPropertiesOrderingRule.js","sourceRoot":"","sources":["../../../../src/rules/standards/ConfigPropertiesOrderingRule.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,4BAA6B,SAAQ,mBAAQ;IACxD,EAAE,GAAG,SAAS,CAAC;IACf,IAAI,GAAG,mCAAmC,CAAC;IAC3C,WAAW,GACT,gGAAgG,CAAC;IACnG,QAAQ,GAAG,MAAe,CAAC;IAC3B,QAAQ,GAAG,WAAoB,CAAC;IAEhC,2DAA2D;IAC1C,eAAe,GAAG;QACjC,aAAa;QACb,mBAAmB;QACnB,aAAa;QACb,mBAAmB;QACnB,eAAe;QACf,qBAAqB;KACtB,CAAC;IAEF,yDAAyD;IACxC,YAAY,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAEjF,QAAQ,CAAC,GAAa,EAAE,QAA2B;QACjD,MAAM,MAAM,GAAY,EAAE,CAAC;QAE3B,+DAA+D;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;QAErF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,CAAC,8CAA8C;QAC/D,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;QACrB,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAErC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,WAAW,GAAG,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBACpB,QAAQ,GAAG,CAAC,CAAC,CAAC,oCAAoC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,WAAW,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,WAAW,CACd,WAAW,CAAC,QAAQ,CAAC,EACrB,uEAAuE,EACvE;gBACE,UAAU,EACR,sKAAsK;aACzK,CACF,CACF,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,SAAiB;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,iBAAiB,CAAC,IAAY;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAzED,oEAyEC"}
@@ -0,0 +1,25 @@
1
+ import { ValidationContext, Issue, IssueType } from '../../types';
2
+ import { ProjectRule } from '../base/ProjectRule';
3
+ /**
4
+ * CFG-002: Missing Environment Properties Declaration
5
+ *
6
+ * Projects using configuration-properties with environment placeholders
7
+ * (e.g., ${mule.env}.yaml) should have at least dev and prod property files.
8
+ * Missing environment files cause deployment failures.
9
+ *
10
+ * Checks that for each pattern like `${mule.env}.yaml`, the project has
11
+ * at minimum: dev.yaml and prod.yaml (or the equivalent with the pattern).
12
+ */
13
+ export declare class MissingEnvPropertiesDeclarationRule extends ProjectRule {
14
+ id: string;
15
+ name: string;
16
+ description: string;
17
+ severity: "warning";
18
+ category: "standards";
19
+ issueType: IssueType;
20
+ /** Required environments */
21
+ private readonly REQUIRED_ENVS;
22
+ protected validateProject(context: ValidationContext): Issue[];
23
+ private listFiles;
24
+ }
25
+ //# sourceMappingURL=MissingEnvPropertiesDeclarationRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MissingEnvPropertiesDeclarationRule.d.ts","sourceRoot":"","sources":["../../../../src/rules/standards/MissingEnvPropertiesDeclarationRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;;;;;;;;GASG;AACH,qBAAa,mCAAoC,SAAQ,WAAW;IAClE,EAAE,SAAa;IACf,IAAI,SAAoC;IACxC,WAAW,SAC+E;IAC1F,QAAQ,EAAG,SAAS,CAAU;IAC9B,QAAQ,EAAG,WAAW,CAAU;IAChC,SAAS,EAAE,SAAS,CAAS;IAE7B,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IAEjD,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;IA6D9D,OAAO,CAAC,SAAS;CAOlB"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MissingEnvPropertiesDeclarationRule = void 0;
37
+ const ProjectRule_1 = require("../base/ProjectRule");
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ /**
41
+ * CFG-002: Missing Environment Properties Declaration
42
+ *
43
+ * Projects using configuration-properties with environment placeholders
44
+ * (e.g., ${mule.env}.yaml) should have at least dev and prod property files.
45
+ * Missing environment files cause deployment failures.
46
+ *
47
+ * Checks that for each pattern like `${mule.env}.yaml`, the project has
48
+ * at minimum: dev.yaml and prod.yaml (or the equivalent with the pattern).
49
+ */
50
+ class MissingEnvPropertiesDeclarationRule extends ProjectRule_1.ProjectRule {
51
+ id = 'CFG-002';
52
+ name = 'Missing Environment Properties';
53
+ description = 'Projects with environment-parameterized configs must have dev and prod property files';
54
+ severity = 'warning';
55
+ category = 'standards';
56
+ issueType = 'bug';
57
+ /** Required environments */
58
+ REQUIRED_ENVS = ['dev', 'prod'];
59
+ validateProject(context) {
60
+ const issues = [];
61
+ const resourceDir = path.join(context.projectRoot, 'src', 'main', 'resources');
62
+ if (!fs.existsSync(resourceDir)) {
63
+ return issues; // Not a standard Mule project layout
64
+ }
65
+ // Look for YAML files in the resources directory
66
+ const files = this.listFiles(resourceDir);
67
+ const yamlFiles = files.filter((f) => f.endsWith('.yaml') || f.endsWith('.yml'));
68
+ // Check if any file looks like an env-parameterized name
69
+ // Common patterns: dev.yaml, prod.yaml, local.yaml, sandbox.yaml
70
+ const envFilePattern = /^(dev|prod|local|sandbox|qa|staging|uat|sit)\.(yaml|yml)$/;
71
+ const envFilesFound = yamlFiles
72
+ .map((f) => path.basename(f))
73
+ .filter((f) => envFilePattern.test(f));
74
+ // If there are env files, check that both dev and prod exist
75
+ if (envFilesFound.length > 0) {
76
+ for (const requiredEnv of this.REQUIRED_ENVS) {
77
+ const hasEnv = envFilesFound.some((f) => f.startsWith(`${requiredEnv}.`));
78
+ if (!hasEnv) {
79
+ issues.push(this.createProjectIssue(`Missing ${requiredEnv}.yaml property file — project has environment-specific configs but no ${requiredEnv} environment`, {
80
+ suggestion: `Create src/main/resources/${requiredEnv}.yaml with environment-specific properties`,
81
+ }));
82
+ }
83
+ }
84
+ }
85
+ // Also check for secure property files if secure-*.yaml pattern is used
86
+ const secureFiles = yamlFiles
87
+ .map((f) => path.basename(f))
88
+ .filter((f) => f.startsWith('secure-'));
89
+ if (secureFiles.length > 0) {
90
+ for (const requiredEnv of this.REQUIRED_ENVS) {
91
+ const hasSecureEnv = secureFiles.some((f) => f === `secure-${requiredEnv}.yaml` || f === `secure-${requiredEnv}.yml`);
92
+ if (!hasSecureEnv) {
93
+ issues.push(this.createProjectIssue(`Missing secure-${requiredEnv}.yaml — project uses secure properties but no ${requiredEnv} secure config`, {
94
+ suggestion: `Create src/main/resources/secure-${requiredEnv}.yaml with encrypted secrets for the ${requiredEnv} environment`,
95
+ }));
96
+ }
97
+ }
98
+ }
99
+ return issues;
100
+ }
101
+ listFiles(dir) {
102
+ try {
103
+ return fs.readdirSync(dir).map((f) => path.join(dir, f));
104
+ }
105
+ catch {
106
+ return [];
107
+ }
108
+ }
109
+ }
110
+ exports.MissingEnvPropertiesDeclarationRule = MissingEnvPropertiesDeclarationRule;
111
+ //# sourceMappingURL=MissingEnvPropertiesDeclarationRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MissingEnvPropertiesDeclarationRule.js","sourceRoot":"","sources":["../../../../src/rules/standards/MissingEnvPropertiesDeclarationRule.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,21 @@
1
1
  import { ValidationContext, Issue, IssueType } from '../../types';
2
2
  import { BaseRule } from '../base/BaseRule';
3
+ import { ProjectRule } from '../base/ProjectRule';
3
4
  /**
4
5
  * YAML-001: Environment Properties Files
5
6
  *
6
7
  * Checks that environment-specific YAML files exist.
8
+ *
9
+ * This is a ProjectRule — it runs once per scan to avoid producing
10
+ * N identical issues (one per XML file).
7
11
  */
8
- export declare class EnvironmentFilesRule extends BaseRule {
12
+ export declare class EnvironmentFilesRule extends ProjectRule {
9
13
  id: string;
10
14
  name: string;
11
15
  description: string;
12
16
  severity: "warning";
13
17
  category: "standards";
14
- validate(_doc: Document, context: ValidationContext): Issue[];
18
+ protected validateProject(context: ValidationContext): Issue[];
15
19
  }
16
20
  /**
17
21
  * YAML-003: Property Naming Convention
@@ -1 +1 @@
1
- {"version":3,"file":"YamlRules.d.ts","sourceRoot":"","sources":["../../../../src/rules/yaml/YamlRules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,EAAE,SAAc;IAChB,IAAI,SAAkC;IACtC,WAAW,SAA2D;IACtE,QAAQ,EAAG,SAAS,CAAU;IAC9B,QAAQ,EAAG,WAAW,CAAU;IAEhC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;CA+C9D;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,EAAE,SAAc;IAChB,IAAI,SAAgC;IACpC,WAAW,SAA0D;IACrE,QAAQ,EAAG,MAAM,CAAU;IAC3B,QAAQ,EAAG,WAAW,CAAU;IAEhC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;IA6B7D,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,aAAa;CAuBtB;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,EAAE,SAAc;IAChB,IAAI,SAA0B;IAC9B,WAAW,SAA0D;IACrE,QAAQ,EAAG,OAAO,CAAU;IAC5B,QAAQ,EAAG,UAAU,CAAU;IAC/B,SAAS,EAAE,SAAS,CAAmB;IAEvC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;IAuB7D,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,aAAa;CAuBtB"}
1
+ {"version":3,"file":"YamlRules.d.ts","sourceRoot":"","sources":["../../../../src/rules/yaml/YamlRules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,EAAE,SAAc;IAChB,IAAI,SAAkC;IACtC,WAAW,SAA2D;IACtE,QAAQ,EAAG,SAAS,CAAU;IAC9B,QAAQ,EAAG,WAAW,CAAU;IAEhC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;CA6C/D;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,EAAE,SAAc;IAChB,IAAI,SAAgC;IACpC,WAAW,SAA0D;IACrE,QAAQ,EAAG,MAAM,CAAU;IAC3B,QAAQ,EAAG,WAAW,CAAU;IAEhC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;IA6B7D,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,aAAa;CAuBtB;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,EAAE,SAAc;IAChB,IAAI,SAA0B;IAC9B,WAAW,SAA0D;IACrE,QAAQ,EAAG,OAAO,CAAU;IAC5B,QAAQ,EAAG,UAAU,CAAU;IAC/B,SAAS,EAAE,SAAS,CAAmB;IAEvC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,KAAK,EAAE;IAuB7D,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,aAAa;CAuBtB"}
@@ -37,19 +37,23 @@ exports.PlaintextSecretsRule = exports.PropertyNamingRule = exports.EnvironmentF
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const BaseRule_1 = require("../base/BaseRule");
40
+ const ProjectRule_1 = require("../base/ProjectRule");
40
41
  const YamlParser_1 = require("../../core/YamlParser");
41
42
  /**
42
43
  * YAML-001: Environment Properties Files
43
44
  *
44
45
  * Checks that environment-specific YAML files exist.
46
+ *
47
+ * This is a ProjectRule — it runs once per scan to avoid producing
48
+ * N identical issues (one per XML file).
45
49
  */
46
- class EnvironmentFilesRule extends BaseRule_1.BaseRule {
50
+ class EnvironmentFilesRule extends ProjectRule_1.ProjectRule {
47
51
  id = 'YAML-001';
48
52
  name = 'Environment Properties Files';
49
53
  description = 'Environment-specific YAML property files should exist';
50
54
  severity = 'warning';
51
55
  category = 'standards';
52
- validate(_doc, context) {
56
+ validateProject(context) {
53
57
  const issues = [];
54
58
  const configDir = path.join(context.projectRoot, 'src/main/resources');
55
59
  const configSubDir = path.join(configDir, 'config');
@@ -77,13 +81,9 @@ class EnvironmentFilesRule extends BaseRule_1.BaseRule {
77
81
  existingFiles.has(`config-${env}.yml`) ||
78
82
  existingFiles.has(`${env}-properties.yaml`);
79
83
  if (!hasEnvFile) {
80
- issues.push({
81
- line: 1,
82
- message: `Missing environment properties file for "${env}"`,
83
- ruleId: this.id,
84
- severity: this.severity,
84
+ issues.push(this.createProjectIssue(`Missing environment properties file for "${env}"`, {
85
85
  suggestion: `Create ${env}.yaml or config-${env}.yaml in src/main/resources/`,
86
- });
86
+ }));
87
87
  }
88
88
  }
89
89
  return issues;
@@ -127,9 +127,13 @@ class PropertyNamingRule extends BaseRule_1.BaseRule {
127
127
  isValidPropertyName(key) {
128
128
  // Valid: db.host, api.client.timeout, http.port, salesforce.authorizationUrl
129
129
  // Valid: external-sapi.basepath, ramp.polling.max_retries
130
- // Invalid: DBHOST, DbHost (no uppercase at start of segment)
131
- // Now allows camelCase, hyphens in categories, underscores in properties
132
- return (/^[a-z][a-zA-Z0-9_-]*(\.[a-z][a-zA-Z0-9_-]*)+$/.test(key) || /^[a-z][a-zA-Z0-9_-]*$/.test(key)); // Single word keys OK too
130
+ // Valid: netsuite.NSQLPath (uppercase segments for vendor conventions)
131
+ // Invalid: completely random strings without dots (unless single word key)
132
+ //
133
+ // Each segment must start with a letter (any case) and can contain
134
+ // letters, digits, underscores, and hyphens. Segments are separated by dots.
135
+ return (/^[a-zA-Z][a-zA-Z0-9_-]*(\.[a-zA-Z][a-zA-Z0-9_-]*)+$/.test(key) ||
136
+ /^[a-zA-Z][a-zA-Z0-9_-]*$/.test(key)); // Single word keys OK too
133
137
  }
134
138
  findYamlFiles(dir) {
135
139
  const files = [];
@@ -1 +1 @@
1
- {"version":3,"file":"YamlRules.js","sourceRoot":"","sources":["../../../../src/rules/yaml/YamlRules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"YamlRules.js","sourceRoot":"","sources":["../../../../src/rules/yaml/YamlRules.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,11 @@ export interface RuleConfig {
43
43
  /** Rule-specific options */
44
44
  options?: Record<string, unknown>;
45
45
  }
46
+ /**
47
+ * Detected project layer in MuleSoft API-led connectivity architecture.
48
+ * Used to auto-adjust rule severity and enable/disable rules per layer.
49
+ */
50
+ export type ProjectLayer = 'sapi' | 'papi' | 'eapi' | 'library' | 'batch' | 'unknown';
46
51
  /**
47
52
  * Project-level context derived from a pre-scan of all files.
48
53
  * Populated by LintEngine before per-file rule execution.
@@ -52,6 +57,8 @@ export interface ProjectContext {
52
57
  hasHttpListener: boolean;
53
58
  /** True if any file contains an apikit:router or apikit:console element */
54
59
  hasApikitRouter: boolean;
60
+ /** Detected project layer based on naming conventions and content */
61
+ projectLayer?: ProjectLayer;
55
62
  }
56
63
  /**
57
64
  * Context passed to each rule during validation
@@ -71,6 +78,12 @@ export interface ValidationContext {
71
78
  * When undefined (e.g. standalone file scan), intra-file refs only.
72
79
  */
73
80
  allFlowRefs?: Set<string>;
81
+ /**
82
+ * Set of all flow/sub-flow names defined across all project files.
83
+ * Populated during the LintEngine pre-scan phase.
84
+ * Used by HYG-004 (FlowRefTargetExistsRule) for cross-file validation.
85
+ */
86
+ allFlowNames?: Set<string>;
74
87
  /**
75
88
  * Project-level feature flags derived from a pre-scan of all files.
76
89
  * Rules that only apply to HTTP-exposed projects (e.g. MULE-005) should
@@ -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,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"}
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,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtF;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,eAAe,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,eAAe,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;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,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B;;;;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"}