@jterrats/smart-deployment 1.0.3 → 1.0.4

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 (257) hide show
  1. package/LICENSE +29 -0
  2. package/README.md +6 -0
  3. package/lib/ai/wave-validation-service.d.ts +21 -0
  4. package/lib/ai/wave-validation-service.js +189 -114
  5. package/lib/ai/wave-validation-service.js.map +1 -1
  6. package/lib/analysis/analysis-reporter.d.ts +12 -0
  7. package/lib/analysis/analysis-reporter.js +61 -0
  8. package/lib/analysis/analysis-reporter.js.map +1 -1
  9. package/lib/analysis/analyze-artifact-service.d.ts +25 -0
  10. package/lib/analysis/analyze-artifact-service.js +50 -0
  11. package/lib/analysis/analyze-artifact-service.js.map +1 -0
  12. package/lib/analysis/analyze-context-service.d.ts +25 -0
  13. package/lib/analysis/analyze-context-service.js +28 -0
  14. package/lib/analysis/analyze-context-service.js.map +1 -0
  15. package/lib/analysis/project-analysis-service.d.ts +48 -0
  16. package/lib/analysis/project-analysis-service.js +134 -0
  17. package/lib/analysis/project-analysis-service.js.map +1 -0
  18. package/lib/commands/analyze.d.ts +0 -2
  19. package/lib/commands/analyze.js +31 -162
  20. package/lib/commands/analyze.js.map +1 -1
  21. package/lib/commands/config.d.ts +0 -4
  22. package/lib/commands/config.js +25 -95
  23. package/lib/commands/config.js.map +1 -1
  24. package/lib/commands/resume.js +6 -16
  25. package/lib/commands/resume.js.map +1 -1
  26. package/lib/commands/start.d.ts +0 -11
  27. package/lib/commands/start.js +38 -550
  28. package/lib/commands/start.js.map +1 -1
  29. package/lib/commands/status.js +36 -12
  30. package/lib/commands/status.js.map +1 -1
  31. package/lib/commands/validate.d.ts +3 -0
  32. package/lib/commands/validate.js +5 -7
  33. package/lib/commands/validate.js.map +1 -1
  34. package/lib/config/config-mutation-service.d.ts +21 -0
  35. package/lib/config/config-mutation-service.js +61 -0
  36. package/lib/config/config-mutation-service.js.map +1 -0
  37. package/lib/dependencies/circular-dependency-detector.d.ts +5 -0
  38. package/lib/dependencies/circular-dependency-detector.js +67 -72
  39. package/lib/dependencies/circular-dependency-detector.js.map +1 -1
  40. package/lib/dependencies/dependency-depth-calculator.d.ts +28 -0
  41. package/lib/dependencies/dependency-depth-calculator.js +86 -39
  42. package/lib/dependencies/dependency-depth-calculator.js.map +1 -1
  43. package/lib/dependencies/dependency-graph-builder.d.ts +45 -13
  44. package/lib/dependencies/dependency-graph-builder.js +228 -123
  45. package/lib/dependencies/dependency-graph-builder.js.map +1 -1
  46. package/lib/dependencies/dependency-impact-analyzer.d.ts +13 -0
  47. package/lib/dependencies/dependency-impact-analyzer.js +146 -102
  48. package/lib/dependencies/dependency-impact-analyzer.js.map +1 -1
  49. package/lib/dependencies/dependency-merger.d.ts +10 -0
  50. package/lib/dependencies/dependency-merger.js +123 -61
  51. package/lib/dependencies/dependency-merger.js.map +1 -1
  52. package/lib/dependencies/dependency-resolver.d.ts +34 -9
  53. package/lib/dependencies/dependency-resolver.js +181 -112
  54. package/lib/dependencies/dependency-resolver.js.map +1 -1
  55. package/lib/dependencies/dependency-semantics.d.ts +20 -0
  56. package/lib/dependencies/dependency-semantics.js +55 -0
  57. package/lib/dependencies/dependency-semantics.js.map +1 -0
  58. package/lib/dependencies/graph-visualizer.d.ts +6 -1
  59. package/lib/dependencies/graph-visualizer.js +38 -4
  60. package/lib/dependencies/graph-visualizer.js.map +1 -1
  61. package/lib/dependencies/heuristic-inference.d.ts +2 -53
  62. package/lib/dependencies/heuristic-inference.js +8 -317
  63. package/lib/dependencies/heuristic-inference.js.map +1 -1
  64. package/lib/dependencies/heuristic-patterns.d.ts +14 -0
  65. package/lib/dependencies/heuristic-patterns.js +247 -0
  66. package/lib/dependencies/heuristic-patterns.js.map +1 -0
  67. package/lib/deployment/cycle-remediation-runner.d.ts +36 -0
  68. package/lib/deployment/cycle-remediation-runner.js +262 -0
  69. package/lib/deployment/cycle-remediation-runner.js.map +1 -0
  70. package/lib/deployment/deployment-context-service.d.ts +24 -0
  71. package/lib/deployment/deployment-context-service.js +17 -0
  72. package/lib/deployment/deployment-context-service.js.map +1 -0
  73. package/lib/deployment/deployment-runner.d.ts +37 -0
  74. package/lib/deployment/deployment-runner.js +94 -0
  75. package/lib/deployment/deployment-runner.js.map +1 -0
  76. package/lib/deployment/deployment-status-service.d.ts +5 -0
  77. package/lib/deployment/deployment-status-service.js +39 -18
  78. package/lib/deployment/deployment-status-service.js.map +1 -1
  79. package/lib/deployment/deployment-validation-service.d.ts +5 -2
  80. package/lib/deployment/deployment-validation-service.js +48 -45
  81. package/lib/deployment/deployment-validation-service.js.map +1 -1
  82. package/lib/deployment/resume-deployment-service.d.ts +14 -0
  83. package/lib/deployment/resume-deployment-service.js +25 -0
  84. package/lib/deployment/resume-deployment-service.js.map +1 -0
  85. package/lib/deployment/start-execution-service.d.ts +44 -0
  86. package/lib/deployment/start-execution-service.js +94 -0
  87. package/lib/deployment/start-execution-service.js.map +1 -0
  88. package/lib/deployment/test-executor.d.ts +60 -1
  89. package/lib/deployment/test-executor.js +180 -12
  90. package/lib/deployment/test-executor.js.map +1 -1
  91. package/lib/deployment/test-plan-service.d.ts +8 -0
  92. package/lib/deployment/test-plan-service.js +26 -0
  93. package/lib/deployment/test-plan-service.js.map +1 -0
  94. package/lib/deployment/wave-manifest-service.d.ts +11 -0
  95. package/lib/deployment/wave-manifest-service.js +41 -0
  96. package/lib/deployment/wave-manifest-service.js.map +1 -0
  97. package/lib/parsers/apex-class-parser.js +180 -98
  98. package/lib/parsers/apex-class-parser.js.map +1 -1
  99. package/lib/parsers/apex-trigger-parser.js +56 -7
  100. package/lib/parsers/apex-trigger-parser.js.map +1 -1
  101. package/lib/parsers/aura-parser.js +2 -2
  102. package/lib/parsers/aura-parser.js.map +1 -1
  103. package/lib/parsers/bot-parser.js +31 -4
  104. package/lib/parsers/bot-parser.js.map +1 -1
  105. package/lib/parsers/custom-metadata-parser.js +37 -3
  106. package/lib/parsers/custom-metadata-parser.js.map +1 -1
  107. package/lib/parsers/custom-object-parser.js +284 -150
  108. package/lib/parsers/custom-object-parser.js.map +1 -1
  109. package/lib/parsers/email-template-parser.js +115 -58
  110. package/lib/parsers/email-template-parser.js.map +1 -1
  111. package/lib/parsers/flexipage-parser.js +41 -16
  112. package/lib/parsers/flexipage-parser.js.map +1 -1
  113. package/lib/parsers/flow-parser.js +73 -63
  114. package/lib/parsers/flow-parser.js.map +1 -1
  115. package/lib/parsers/genai-prompt-parser.js +16 -4
  116. package/lib/parsers/genai-prompt-parser.js.map +1 -1
  117. package/lib/parsers/layout-parser.d.ts +11 -0
  118. package/lib/parsers/layout-parser.js +143 -68
  119. package/lib/parsers/layout-parser.js.map +1 -1
  120. package/lib/parsers/lwc-parser.d.ts +0 -9
  121. package/lib/parsers/lwc-parser.js +245 -100
  122. package/lib/parsers/lwc-parser.js.map +1 -1
  123. package/lib/parsers/parser-utils.d.ts +3 -0
  124. package/lib/parsers/parser-utils.js +16 -0
  125. package/lib/parsers/parser-utils.js.map +1 -0
  126. package/lib/parsers/permission-set-parser.d.ts +6 -0
  127. package/lib/parsers/permission-set-parser.js +31 -40
  128. package/lib/parsers/permission-set-parser.js.map +1 -1
  129. package/lib/parsers/profile-parser.d.ts +13 -0
  130. package/lib/parsers/profile-parser.js +39 -34
  131. package/lib/parsers/profile-parser.js.map +1 -1
  132. package/lib/parsers/visualforce-parser.js +2 -1
  133. package/lib/parsers/visualforce-parser.js.map +1 -1
  134. package/lib/presentation/analyze-command-presenter.d.ts +10 -0
  135. package/lib/presentation/analyze-command-presenter.js +30 -0
  136. package/lib/presentation/analyze-command-presenter.js.map +1 -0
  137. package/lib/presentation/config-command-presenter.d.ts +15 -0
  138. package/lib/presentation/config-command-presenter.js +50 -0
  139. package/lib/presentation/config-command-presenter.js.map +1 -0
  140. package/lib/presentation/project-analysis-presenter.d.ts +9 -0
  141. package/lib/presentation/project-analysis-presenter.js +9 -0
  142. package/lib/presentation/project-analysis-presenter.js.map +1 -0
  143. package/lib/presentation/resume-command-presenter.d.ts +7 -0
  144. package/lib/presentation/resume-command-presenter.js +12 -0
  145. package/lib/presentation/resume-command-presenter.js.map +1 -0
  146. package/lib/presentation/start-command-presenter.d.ts +15 -0
  147. package/lib/presentation/start-command-presenter.js +29 -0
  148. package/lib/presentation/start-command-presenter.js.map +1 -0
  149. package/lib/presentation/status-command-presenter.d.ts +7 -0
  150. package/lib/presentation/status-command-presenter.js +16 -0
  151. package/lib/presentation/status-command-presenter.js.map +1 -0
  152. package/lib/presentation/validate-command-presenter.d.ts +9 -0
  153. package/lib/presentation/validate-command-presenter.js +50 -0
  154. package/lib/presentation/validate-command-presenter.js.map +1 -0
  155. package/lib/services/metadata-scanner-service.d.ts +8 -12
  156. package/lib/services/metadata-scanner-service.js +55 -533
  157. package/lib/services/metadata-scanner-service.js.map +1 -1
  158. package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +4 -0
  159. package/lib/services/scanners/automation-ai-metadata-scanner.js +61 -0
  160. package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -0
  161. package/lib/services/scanners/code-metadata-scanner.d.ts +23 -0
  162. package/lib/services/scanners/code-metadata-scanner.js +149 -0
  163. package/lib/services/scanners/code-metadata-scanner.js.map +1 -0
  164. package/lib/services/scanners/data-metadata-scanner.d.ts +3 -0
  165. package/lib/services/scanners/data-metadata-scanner.js +82 -0
  166. package/lib/services/scanners/data-metadata-scanner.js.map +1 -0
  167. package/lib/services/scanners/experience-metadata-scanner.d.ts +5 -0
  168. package/lib/services/scanners/experience-metadata-scanner.js +123 -0
  169. package/lib/services/scanners/experience-metadata-scanner.js.map +1 -0
  170. package/lib/services/scanners/scanner-runtime.d.ts +11 -0
  171. package/lib/services/scanners/scanner-runtime.js +115 -0
  172. package/lib/services/scanners/scanner-runtime.js.map +1 -0
  173. package/lib/services/scanners/security-metadata-scanner.d.ts +3 -0
  174. package/lib/services/scanners/security-metadata-scanner.js +71 -0
  175. package/lib/services/scanners/security-metadata-scanner.js.map +1 -0
  176. package/lib/types/dependency.d.ts +11 -1
  177. package/lib/types/metadata.d.ts +17 -0
  178. package/lib/types/salesforce/flow/actions.d.ts +108 -0
  179. package/lib/types/salesforce/flow/actions.js +2 -0
  180. package/lib/types/salesforce/flow/actions.js.map +1 -0
  181. package/lib/types/salesforce/flow/common.d.ts +36 -0
  182. package/lib/types/salesforce/flow/common.js +5 -0
  183. package/lib/types/salesforce/flow/common.js.map +1 -0
  184. package/lib/types/salesforce/flow/metadata.d.ts +37 -0
  185. package/lib/types/salesforce/flow/metadata.js +2 -0
  186. package/lib/types/salesforce/flow/metadata.js.map +1 -0
  187. package/lib/types/salesforce/flow/records.d.ts +38 -0
  188. package/lib/types/salesforce/flow/records.js +2 -0
  189. package/lib/types/salesforce/flow/records.js.map +1 -0
  190. package/lib/types/salesforce/flow/resources.d.ts +44 -0
  191. package/lib/types/salesforce/flow/resources.js +2 -0
  192. package/lib/types/salesforce/flow/resources.js.map +1 -0
  193. package/lib/types/salesforce/flow/screens.d.ts +56 -0
  194. package/lib/types/salesforce/flow/screens.js +2 -0
  195. package/lib/types/salesforce/flow/screens.js.map +1 -0
  196. package/lib/types/salesforce/flow/start.d.ts +24 -0
  197. package/lib/types/salesforce/flow/start.js +2 -0
  198. package/lib/types/salesforce/flow/start.js.map +1 -0
  199. package/lib/types/salesforce/flow.d.ts +9 -514
  200. package/lib/types/salesforce/flow.js +1 -1
  201. package/lib/types/salesforce/object/core.d.ts +68 -0
  202. package/lib/types/salesforce/object/core.js +5 -0
  203. package/lib/types/salesforce/object/core.js.map +1 -0
  204. package/lib/types/salesforce/object/field.d.ts +155 -0
  205. package/lib/types/salesforce/object/field.js +5 -0
  206. package/lib/types/salesforce/object/field.js.map +1 -0
  207. package/lib/types/salesforce/object/filter.d.ts +16 -0
  208. package/lib/types/salesforce/object/filter.js +5 -0
  209. package/lib/types/salesforce/object/filter.js.map +1 -0
  210. package/lib/types/salesforce/object/policy.d.ts +27 -0
  211. package/lib/types/salesforce/object/policy.js +5 -0
  212. package/lib/types/salesforce/object/policy.js.map +1 -0
  213. package/lib/types/salesforce/object/record.d.ts +44 -0
  214. package/lib/types/salesforce/object/record.js +5 -0
  215. package/lib/types/salesforce/object/record.js.map +1 -0
  216. package/lib/types/salesforce/object/view.d.ts +71 -0
  217. package/lib/types/salesforce/object/view.js +5 -0
  218. package/lib/types/salesforce/object/view.js.map +1 -0
  219. package/lib/types/salesforce/object/weblink.d.ts +70 -0
  220. package/lib/types/salesforce/object/weblink.js +5 -0
  221. package/lib/types/salesforce/object/weblink.js.map +1 -0
  222. package/lib/types/salesforce/object.d.ts +7 -423
  223. package/lib/types/salesforce/object.js +7 -1
  224. package/lib/types/salesforce/object.js.map +1 -1
  225. package/lib/utils/cache-manager.d.ts +16 -15
  226. package/lib/utils/cache-manager.js +290 -188
  227. package/lib/utils/cache-manager.js.map +1 -1
  228. package/lib/utils/logger.d.ts +8 -0
  229. package/lib/utils/logger.js +82 -69
  230. package/lib/utils/logger.js.map +1 -1
  231. package/lib/validators/xml/xml-reference-rules.d.ts +3 -0
  232. package/lib/validators/xml/xml-reference-rules.js +173 -0
  233. package/lib/validators/xml/xml-reference-rules.js.map +1 -0
  234. package/lib/validators/xml/xml-report-formatter.d.ts +2 -0
  235. package/lib/validators/xml/xml-report-formatter.js +47 -0
  236. package/lib/validators/xml/xml-report-formatter.js.map +1 -0
  237. package/lib/validators/xml/xml-schema-rules.d.ts +3 -0
  238. package/lib/validators/xml/xml-schema-rules.js +75 -0
  239. package/lib/validators/xml/xml-schema-rules.js.map +1 -0
  240. package/lib/validators/xml/xml-validation-types.d.ts +25 -0
  241. package/lib/validators/xml/xml-validation-types.js +2 -0
  242. package/lib/validators/xml/xml-validation-types.js.map +1 -0
  243. package/lib/validators/xml-metadata-validator.d.ts +2 -63
  244. package/lib/validators/xml-metadata-validator.js +7 -338
  245. package/lib/validators/xml-metadata-validator.js.map +1 -1
  246. package/lib/waves/test-optimizer.d.ts +13 -0
  247. package/lib/waves/test-optimizer.js +124 -63
  248. package/lib/waves/test-optimizer.js.map +1 -1
  249. package/lib/waves/wave-builder.d.ts +17 -21
  250. package/lib/waves/wave-builder.js +199 -135
  251. package/lib/waves/wave-builder.js.map +1 -1
  252. package/lib/waves/wave-splitter.d.ts +12 -8
  253. package/lib/waves/wave-splitter.js +156 -115
  254. package/lib/waves/wave-splitter.js.map +1 -1
  255. package/npm-shrinkwrap.json +2 -2
  256. package/oclif.manifest.json +1 -1
  257. package/package.json +1 -1
@@ -51,9 +51,11 @@ const TYPE_COLORS = {
51
51
  */
52
52
  export class GraphVisualizer {
53
53
  graph;
54
+ edgeMetadata;
54
55
  options;
55
56
  constructor(graph, options = {}) {
56
57
  this.graph = graph;
58
+ this.edgeMetadata = new Map((options.edgeMetadata ?? []).map((edge) => [`${edge.from}->${edge.to}`, edge]));
57
59
  this.options = {
58
60
  showLabels: options.showLabels ?? true,
59
61
  colorScheme: options.colorScheme ?? 'type',
@@ -78,8 +80,10 @@ export class GraphVisualizer {
78
80
  for (const dep of deps) {
79
81
  const fromStyle = this.getMermaidNodeStyle(nodeId, criticalSet);
80
82
  const toStyle = this.getMermaidNodeStyle(dep, criticalSet);
81
- const edgeStyle = criticalSet.has(nodeId) && criticalSet.has(dep) ? '==>' : '-->';
82
- lines.push(` ${this.escapeNodeId(nodeId)}${fromStyle} ${edgeStyle} ${this.escapeNodeId(dep)}${toStyle}`);
83
+ const edgeMetadata = this.edgeMetadata.get(`${nodeId}->${dep}`);
84
+ const edgeStyle = this.getMermaidEdgeStyle(nodeId, dep, criticalSet, edgeMetadata);
85
+ const edgeLabel = edgeMetadata ? `|${edgeMetadata.type}|` : '';
86
+ lines.push(` ${this.escapeNodeId(nodeId)}${fromStyle} ${edgeStyle}${edgeLabel} ${this.escapeNodeId(dep)}${toStyle}`);
83
87
  }
84
88
  }
85
89
  // Add isolated nodes
@@ -117,8 +121,10 @@ export class GraphVisualizer {
117
121
  // Add edges
118
122
  for (const [nodeId, deps] of filtered.entries()) {
119
123
  for (const dep of deps) {
120
- const edgeStyle = criticalSet.has(nodeId) && criticalSet.has(dep) ? ', color=red, penwidth=2.0' : '';
121
- lines.push(` "${nodeId}" -> "${dep}"${edgeStyle};`);
124
+ const edgeMetadata = this.edgeMetadata.get(`${nodeId}->${dep}`);
125
+ const edgeAttributes = this.getDotEdgeAttributes(nodeId, dep, criticalSet, edgeMetadata);
126
+ const attributeBlock = edgeAttributes.length > 0 ? ` [${edgeAttributes.join(', ')}]` : '';
127
+ lines.push(` "${nodeId}" -> "${dep}"${attributeBlock};`);
122
128
  }
123
129
  }
124
130
  lines.push('}');
@@ -190,6 +196,34 @@ export class GraphVisualizer {
190
196
  const nodeType = nodeId.split(':')[0];
191
197
  return types.includes(nodeType);
192
198
  }
199
+ getMermaidEdgeStyle(from, to, criticalSet, edgeMetadata) {
200
+ if (criticalSet.has(from) && criticalSet.has(to)) {
201
+ return '==>';
202
+ }
203
+ if (edgeMetadata?.type === 'soft') {
204
+ return '-.->';
205
+ }
206
+ if (edgeMetadata?.type === 'inferred') {
207
+ return '==>';
208
+ }
209
+ return '-->';
210
+ }
211
+ getDotEdgeAttributes(from, to, criticalSet, edgeMetadata) {
212
+ const styles = [];
213
+ if (criticalSet.has(from) && criticalSet.has(to)) {
214
+ styles.push('color=red', 'penwidth=2.0');
215
+ }
216
+ if (edgeMetadata?.type === 'soft') {
217
+ styles.push('style=dashed');
218
+ }
219
+ if (edgeMetadata?.type === 'inferred') {
220
+ styles.push('color=blue');
221
+ }
222
+ if (edgeMetadata) {
223
+ styles.push(`label="${edgeMetadata.type}"`);
224
+ }
225
+ return styles;
226
+ }
193
227
  /**
194
228
  * Get Mermaid node styling
195
229
  */
@@ -1 +1 @@
1
- {"version":3,"file":"graph-visualizer.js","sourceRoot":"","sources":["../../src/dependencies/graph-visualizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-visualizer.js","sourceRoot":"","sources":["../../src/dependencies/graph-visualizer.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import type { MetadataComponent } from '../types/metadata.js';
15
15
  import type { NodeId } from '../types/dependency.js';
16
+ import { calculateConfidence } from './heuristic-patterns.js';
16
17
  /**
17
18
  * Confidence level for inferred dependencies
18
19
  */
@@ -64,63 +65,10 @@ export declare class HeuristicInference {
64
65
  private options;
65
66
  private patterns;
66
67
  constructor(options?: HeuristicInferenceOptions);
67
- /**
68
- * @ac US-029-AC-6: Confidence scoring
69
- *
70
- * Calculate confidence score for an inferred dependency
71
- */
72
68
  static calculateConfidence(pattern: string, existingDeps: number, nameSimilarity: number): {
73
69
  confidence: ConfidenceLevel;
74
70
  score: number;
75
71
  };
76
- /**
77
- * @ac US-029-AC-1: Test class → Production class inference
78
- *
79
- * Infers that test classes depend on the production classes they test.
80
- * Patterns:
81
- * - AccountServiceTest → AccountService
82
- * - Test_AccountService → AccountService
83
- * - AccountService_Test → AccountService
84
- */
85
- private static inferTestClassDependencies;
86
- /**
87
- * @ac US-029-AC-2: Handler → Service pattern detection
88
- *
89
- * Infers that handler classes depend on service classes.
90
- * Patterns:
91
- * - AccountHandler → AccountService
92
- * - Account_Handler → Account_Service
93
- */
94
- private static inferHandlerServicePattern;
95
- /**
96
- * @ac US-029-AC-3: Trigger → Handler pattern detection
97
- *
98
- * Infers that triggers depend on handler classes.
99
- * Patterns:
100
- * - AccountTrigger → AccountTriggerHandler
101
- * - AccountTrigger → AccountHandler
102
- */
103
- private static inferTriggerHandlerPattern;
104
- /**
105
- * @ac US-029-AC-4: Controller → Service pattern detection
106
- *
107
- * Infers that controller classes depend on service classes.
108
- * Patterns:
109
- * - AccountController → AccountService
110
- * - LWC_AccountController → AccountService
111
- */
112
- private static inferControllerServicePattern;
113
- /**
114
- * @ac US-029-AC-5: Naming convention analysis
115
- *
116
- * Infers dependencies based on common naming conventions.
117
- * Patterns:
118
- * - *Selector → *Service
119
- * - *Batch → *Service
120
- * - *Queueable → *Service
121
- * - *Integration → *Service
122
- */
123
- private static inferFromNamingConventions;
124
72
  /**
125
73
  * Infer dependencies for all components
126
74
  */
@@ -134,3 +82,4 @@ export declare class HeuristicInference {
134
82
  */
135
83
  private initializePatterns;
136
84
  }
85
+ export { calculateConfidence };
@@ -12,6 +12,7 @@
12
12
  * @issue #29
13
13
  */
14
14
  import { getLogger } from '../utils/logger.js';
15
+ import { calculateConfidence, inferControllerServicePattern, inferFromNamingConventions, inferHandlerServicePattern, inferTestClassDependencies, inferTriggerHandlerPattern, } from './heuristic-patterns.js';
15
16
  const logger = getLogger('HeuristicInference');
16
17
  /**
17
18
  * Heuristic Dependency Inference
@@ -46,319 +47,8 @@ export class HeuristicInference {
46
47
  patterns: this.patterns.filter((p) => p.enabled).map((p) => p.name),
47
48
  });
48
49
  }
49
- /**
50
- * @ac US-029-AC-6: Confidence scoring
51
- *
52
- * Calculate confidence score for an inferred dependency
53
- */
54
50
  static calculateConfidence(pattern, existingDeps, nameSimilarity) {
55
- let score = 50; // Base score
56
- // Pattern-based boost
57
- const patternScores = {
58
- 'test-suffix': 45,
59
- 'test-prefix': 45,
60
- 'trigger-handler': 40,
61
- 'handler-service': 35,
62
- 'controller-service': 35,
63
- 'batch-service': 25,
64
- 'queueable-service': 25,
65
- 'selector-service': 20,
66
- 'integration-service': 15,
67
- };
68
- score += patternScores[pattern] ?? 0;
69
- // Name similarity boost (0-10 points)
70
- score += Math.floor(nameSimilarity * 10);
71
- // Existing dependencies penalty (if already has many deps, less confident)
72
- score -= Math.min(existingDeps * 2, 10);
73
- // Clamp to 0-100
74
- score = Math.max(0, Math.min(100, score));
75
- // Determine confidence level
76
- let confidence;
77
- if (score >= 80) {
78
- confidence = 'high';
79
- }
80
- else if (score >= 65) {
81
- confidence = 'medium';
82
- }
83
- else {
84
- confidence = 'low';
85
- }
86
- return { confidence, score };
87
- }
88
- /**
89
- * @ac US-029-AC-1: Test class → Production class inference
90
- *
91
- * Infers that test classes depend on the production classes they test.
92
- * Patterns:
93
- * - AccountServiceTest → AccountService
94
- * - Test_AccountService → AccountService
95
- * - AccountService_Test → AccountService
96
- */
97
- static inferTestClassDependencies(component, components) {
98
- if (component.type !== 'ApexClass') {
99
- return [];
100
- }
101
- const inferred = [];
102
- const className = component.name;
103
- // Pattern 1: ClassNameTest → ClassName
104
- if (className.endsWith('Test')) {
105
- const productionClassName = className.slice(0, -4);
106
- const prodNodeId = `ApexClass:${productionClassName}`;
107
- if (components.has(prodNodeId)) {
108
- inferred.push({
109
- from: `ApexClass:${className}`,
110
- to: prodNodeId,
111
- reason: 'Test class typically tests production class',
112
- confidence: 'high',
113
- pattern: 'test-suffix',
114
- score: 95,
115
- });
116
- }
117
- }
118
- // Pattern 2: Test_ClassName → ClassName
119
- if (className.startsWith('Test_')) {
120
- const productionClassName = className.slice(5);
121
- const prodNodeId = `ApexClass:${productionClassName}`;
122
- if (components.has(prodNodeId)) {
123
- inferred.push({
124
- from: `ApexClass:${className}`,
125
- to: prodNodeId,
126
- reason: 'Test class typically tests production class',
127
- confidence: 'high',
128
- pattern: 'test-prefix',
129
- score: 95,
130
- });
131
- }
132
- }
133
- // Pattern 3: ClassName_Test → ClassName
134
- if (className.endsWith('_Test')) {
135
- const productionClassName = className.slice(0, -5);
136
- const prodNodeId = `ApexClass:${productionClassName}`;
137
- if (components.has(prodNodeId)) {
138
- inferred.push({
139
- from: `ApexClass:${className}`,
140
- to: prodNodeId,
141
- reason: 'Test class typically tests production class',
142
- confidence: 'high',
143
- pattern: 'test-suffix-underscore',
144
- score: 95,
145
- });
146
- }
147
- }
148
- return inferred;
149
- }
150
- /**
151
- * @ac US-029-AC-2: Handler → Service pattern detection
152
- *
153
- * Infers that handler classes depend on service classes.
154
- * Patterns:
155
- * - AccountHandler → AccountService
156
- * - Account_Handler → Account_Service
157
- */
158
- static inferHandlerServicePattern(component, components) {
159
- if (component.type !== 'ApexClass') {
160
- return [];
161
- }
162
- const inferred = [];
163
- const className = component.name;
164
- // Pattern: AccountHandler → AccountService
165
- if (className.endsWith('Handler')) {
166
- const baseName = className.slice(0, -7); // Remove 'Handler'
167
- const serviceNames = [`${baseName}Service`, `${baseName}_Service`, `${baseName}Svc`];
168
- for (const serviceName of serviceNames) {
169
- const serviceNodeId = `ApexClass:${serviceName}`;
170
- if (components.has(serviceNodeId)) {
171
- inferred.push({
172
- from: `ApexClass:${className}`,
173
- to: serviceNodeId,
174
- reason: 'Handler typically calls service layer',
175
- confidence: 'high',
176
- pattern: 'handler-service',
177
- score: 85,
178
- });
179
- }
180
- }
181
- }
182
- // Pattern: Account_Handler → Account_Service
183
- if (className.includes('Handler')) {
184
- const baseName = className.replace(/Handler$/, '').replace(/_Handler$/, '');
185
- const serviceNames = [`${baseName}Service`, `${baseName}_Service`];
186
- for (const serviceName of serviceNames) {
187
- const serviceNodeId = `ApexClass:${serviceName}`;
188
- if (components.has(serviceNodeId) && !inferred.some((i) => i.to === serviceNodeId)) {
189
- inferred.push({
190
- from: `ApexClass:${className}`,
191
- to: serviceNodeId,
192
- reason: 'Handler typically calls service layer',
193
- confidence: 'medium',
194
- pattern: 'handler-service-variant',
195
- score: 75,
196
- });
197
- }
198
- }
199
- }
200
- return inferred;
201
- }
202
- /**
203
- * @ac US-029-AC-3: Trigger → Handler pattern detection
204
- *
205
- * Infers that triggers depend on handler classes.
206
- * Patterns:
207
- * - AccountTrigger → AccountTriggerHandler
208
- * - AccountTrigger → AccountHandler
209
- */
210
- static inferTriggerHandlerPattern(component, components) {
211
- if (component.type !== 'ApexTrigger') {
212
- return [];
213
- }
214
- const inferred = [];
215
- const triggerName = component.name;
216
- // Pattern 1: AccountTrigger → AccountTriggerHandler
217
- const handlerNames = [
218
- `${triggerName}Handler`,
219
- triggerName.replace(/Trigger$/, 'TriggerHandler'),
220
- triggerName.replace(/Trigger$/, 'Handler'),
221
- ];
222
- for (const handlerName of handlerNames) {
223
- const handlerNodeId = `ApexClass:${handlerName}`;
224
- if (components.has(handlerNodeId)) {
225
- inferred.push({
226
- from: `ApexTrigger:${triggerName}`,
227
- to: handlerNodeId,
228
- reason: 'Trigger typically delegates to handler class',
229
- confidence: 'high',
230
- pattern: 'trigger-handler',
231
- score: 90,
232
- });
233
- break; // Only add one handler per trigger
234
- }
235
- }
236
- return inferred;
237
- }
238
- /**
239
- * @ac US-029-AC-4: Controller → Service pattern detection
240
- *
241
- * Infers that controller classes depend on service classes.
242
- * Patterns:
243
- * - AccountController → AccountService
244
- * - LWC_AccountController → AccountService
245
- */
246
- static inferControllerServicePattern(component, components) {
247
- if (component.type !== 'ApexClass') {
248
- return [];
249
- }
250
- const inferred = [];
251
- const className = component.name;
252
- // Pattern: AccountController → AccountService
253
- if (className.endsWith('Controller') || className.includes('Controller')) {
254
- const baseName = className
255
- .replace(/Controller$/, '')
256
- .replace(/_Controller$/, '')
257
- .replace(/^LWC_/, '')
258
- .replace(/^VF_/, '');
259
- const serviceNames = [`${baseName}Service`, `${baseName}_Service`, `${baseName}Svc`];
260
- for (const serviceName of serviceNames) {
261
- const serviceNodeId = `ApexClass:${serviceName}`;
262
- if (components.has(serviceNodeId)) {
263
- inferred.push({
264
- from: `ApexClass:${className}`,
265
- to: serviceNodeId,
266
- reason: 'Controller typically calls service layer',
267
- confidence: 'high',
268
- pattern: 'controller-service',
269
- score: 85,
270
- });
271
- }
272
- }
273
- }
274
- return inferred;
275
- }
276
- /**
277
- * @ac US-029-AC-5: Naming convention analysis
278
- *
279
- * Infers dependencies based on common naming conventions.
280
- * Patterns:
281
- * - *Selector → *Service
282
- * - *Batch → *Service
283
- * - *Queueable → *Service
284
- * - *Integration → *Service
285
- */
286
- static inferFromNamingConventions(component, components) {
287
- if (component.type !== 'ApexClass') {
288
- return [];
289
- }
290
- const inferred = [];
291
- const className = component.name;
292
- // Selector → Service pattern
293
- if (className.endsWith('Selector')) {
294
- const baseName = className.slice(0, -8);
295
- const serviceNodeId = `ApexClass:${baseName}Service`;
296
- if (components.has(serviceNodeId)) {
297
- inferred.push({
298
- from: `ApexClass:${className}`,
299
- to: serviceNodeId,
300
- reason: 'Selector may be used by service layer',
301
- confidence: 'medium',
302
- pattern: 'selector-service',
303
- score: 70,
304
- });
305
- }
306
- }
307
- // Batch → Service pattern
308
- if (className.endsWith('Batch')) {
309
- const baseName = className.slice(0, -5);
310
- const serviceNames = [`${baseName}Service`, `${baseName}`];
311
- for (const serviceName of serviceNames) {
312
- const serviceNodeId = `ApexClass:${serviceName}`;
313
- if (components.has(serviceNodeId)) {
314
- inferred.push({
315
- from: `ApexClass:${className}`,
316
- to: serviceNodeId,
317
- reason: 'Batch class typically uses service layer',
318
- confidence: 'medium',
319
- pattern: 'batch-service',
320
- score: 75,
321
- });
322
- break;
323
- }
324
- }
325
- }
326
- // Queueable → Service pattern
327
- if (className.endsWith('Queueable') || className.includes('Queueable')) {
328
- const baseName = className.replace(/Queueable$/, '').replace(/_Queueable/, '');
329
- const serviceNodeId = `ApexClass:${baseName}Service`;
330
- if (components.has(serviceNodeId)) {
331
- inferred.push({
332
- from: `ApexClass:${className}`,
333
- to: serviceNodeId,
334
- reason: 'Queueable typically uses service layer',
335
- confidence: 'medium',
336
- pattern: 'queueable-service',
337
- score: 75,
338
- });
339
- }
340
- }
341
- // Integration → Service pattern
342
- if (className.includes('Integration')) {
343
- const baseName = className
344
- .replace(/Integration$/, '')
345
- .replace(/_Integration/, '')
346
- .replace(/^Integration/, '');
347
- if (baseName) {
348
- const serviceNodeId = `ApexClass:${baseName}Service`;
349
- if (components.has(serviceNodeId)) {
350
- inferred.push({
351
- from: `ApexClass:${className}`,
352
- to: serviceNodeId,
353
- reason: 'Integration class may use service layer',
354
- confidence: 'low',
355
- pattern: 'integration-service',
356
- score: 65,
357
- });
358
- }
359
- }
360
- }
361
- return inferred;
51
+ return calculateConfidence(pattern, existingDeps, nameSimilarity);
362
52
  }
363
53
  /**
364
54
  * Infer dependencies for all components
@@ -402,29 +92,30 @@ export class HeuristicInference {
402
92
  {
403
93
  name: 'test-class-inference',
404
94
  enabled: this.options.enableTestInference,
405
- test: (component, components) => HeuristicInference.inferTestClassDependencies(component, components),
95
+ test: inferTestClassDependencies,
406
96
  },
407
97
  {
408
98
  name: 'handler-service-pattern',
409
99
  enabled: this.options.enableHandlerPattern,
410
- test: (component, components) => HeuristicInference.inferHandlerServicePattern(component, components),
100
+ test: inferHandlerServicePattern,
411
101
  },
412
102
  {
413
103
  name: 'trigger-handler-pattern',
414
104
  enabled: this.options.enableTriggerPattern,
415
- test: (component, components) => HeuristicInference.inferTriggerHandlerPattern(component, components),
105
+ test: inferTriggerHandlerPattern,
416
106
  },
417
107
  {
418
108
  name: 'controller-service-pattern',
419
109
  enabled: this.options.enableControllerPattern,
420
- test: (component, components) => HeuristicInference.inferControllerServicePattern(component, components),
110
+ test: inferControllerServicePattern,
421
111
  },
422
112
  {
423
113
  name: 'naming-conventions',
424
114
  enabled: this.options.enableNamingConventions,
425
- test: (component, components) => HeuristicInference.inferFromNamingConventions(component, components),
115
+ test: inferFromNamingConventions,
426
116
  },
427
117
  ];
428
118
  }
429
119
  }
120
+ export { calculateConfidence };
430
121
  //# sourceMappingURL=heuristic-inference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heuristic-inference.js","sourceRoot":"","sources":["../../src/dependencies/heuristic-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heuristic-inference.js","sourceRoot":"","sources":["../../src/dependencies/heuristic-inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { MetadataComponent } from '../types/metadata.js';
2
+ import type { NodeId } from '../types/dependency.js';
3
+ import type { ConfidenceLevel, InferredDependency } from './heuristic-inference.js';
4
+ type HeuristicPatternScore = {
5
+ confidence: ConfidenceLevel;
6
+ score: number;
7
+ };
8
+ export declare function calculateConfidence(pattern: string, existingDeps: number, nameSimilarity: number): HeuristicPatternScore;
9
+ export declare function inferTestClassDependencies(component: MetadataComponent, components: Map<NodeId, MetadataComponent>): InferredDependency[];
10
+ export declare function inferHandlerServicePattern(component: MetadataComponent, components: Map<NodeId, MetadataComponent>): InferredDependency[];
11
+ export declare function inferTriggerHandlerPattern(component: MetadataComponent, components: Map<NodeId, MetadataComponent>): InferredDependency[];
12
+ export declare function inferControllerServicePattern(component: MetadataComponent, components: Map<NodeId, MetadataComponent>): InferredDependency[];
13
+ export declare function inferFromNamingConventions(component: MetadataComponent, components: Map<NodeId, MetadataComponent>): InferredDependency[];
14
+ export {};