@jterrats/smart-deployment 1.0.3

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 (395) hide show
  1. package/README.md +193 -0
  2. package/lib/ai/agentforce-error-handler.d.ts +81 -0
  3. package/lib/ai/agentforce-error-handler.js +196 -0
  4. package/lib/ai/agentforce-error-handler.js.map +1 -0
  5. package/lib/ai/agentforce-priority-service.d.ts +82 -0
  6. package/lib/ai/agentforce-priority-service.js +257 -0
  7. package/lib/ai/agentforce-priority-service.js.map +1 -0
  8. package/lib/ai/agentforce-service.d.ts +99 -0
  9. package/lib/ai/agentforce-service.js +300 -0
  10. package/lib/ai/agentforce-service.js.map +1 -0
  11. package/lib/ai/circuit-breaker.d.ts +115 -0
  12. package/lib/ai/circuit-breaker.js +277 -0
  13. package/lib/ai/circuit-breaker.js.map +1 -0
  14. package/lib/ai/dependency-inference-service.d.ts +76 -0
  15. package/lib/ai/dependency-inference-service.js +220 -0
  16. package/lib/ai/dependency-inference-service.js.map +1 -0
  17. package/lib/ai/llm-provider-factory.d.ts +15 -0
  18. package/lib/ai/llm-provider-factory.js +36 -0
  19. package/lib/ai/llm-provider-factory.js.map +1 -0
  20. package/lib/ai/llm-provider.d.ts +27 -0
  21. package/lib/ai/llm-provider.js +2 -0
  22. package/lib/ai/llm-provider.js.map +1 -0
  23. package/lib/ai/openai-service.d.ts +20 -0
  24. package/lib/ai/openai-service.js +89 -0
  25. package/lib/ai/openai-service.js.map +1 -0
  26. package/lib/ai/prompt-builder.d.ts +79 -0
  27. package/lib/ai/prompt-builder.js +180 -0
  28. package/lib/ai/prompt-builder.js.map +1 -0
  29. package/lib/ai/response-parser.d.ts +67 -0
  30. package/lib/ai/response-parser.js +234 -0
  31. package/lib/ai/response-parser.js.map +1 -0
  32. package/lib/ai/wave-validation-service.d.ts +111 -0
  33. package/lib/ai/wave-validation-service.js +381 -0
  34. package/lib/ai/wave-validation-service.js.map +1 -0
  35. package/lib/analysis/analysis-reporter.d.ts +56 -0
  36. package/lib/analysis/analysis-reporter.js +170 -0
  37. package/lib/analysis/analysis-reporter.js.map +1 -0
  38. package/lib/analytics/error-analytics.d.ts +80 -0
  39. package/lib/analytics/error-analytics.js +162 -0
  40. package/lib/analytics/error-analytics.js.map +1 -0
  41. package/lib/commands/analyze.d.ts +49 -0
  42. package/lib/commands/analyze.js +232 -0
  43. package/lib/commands/analyze.js.map +1 -0
  44. package/lib/commands/config.d.ts +42 -0
  45. package/lib/commands/config.js +219 -0
  46. package/lib/commands/config.js.map +1 -0
  47. package/lib/commands/resume.d.ts +26 -0
  48. package/lib/commands/resume.js +69 -0
  49. package/lib/commands/resume.js.map +1 -0
  50. package/lib/commands/start.d.ts +70 -0
  51. package/lib/commands/start.js +659 -0
  52. package/lib/commands/start.js.map +1 -0
  53. package/lib/commands/status.d.ts +37 -0
  54. package/lib/commands/status.js +69 -0
  55. package/lib/commands/status.js.map +1 -0
  56. package/lib/commands/validate.d.ts +33 -0
  57. package/lib/commands/validate.js +66 -0
  58. package/lib/commands/validate.js.map +1 -0
  59. package/lib/config/repo-config.d.ts +22 -0
  60. package/lib/config/repo-config.js +31 -0
  61. package/lib/config/repo-config.js.map +1 -0
  62. package/lib/constants/agentforce-limits.d.ts +174 -0
  63. package/lib/constants/agentforce-limits.js +262 -0
  64. package/lib/constants/agentforce-limits.js.map +1 -0
  65. package/lib/constants/api-version.d.ts +70 -0
  66. package/lib/constants/api-version.js +122 -0
  67. package/lib/constants/api-version.js.map +1 -0
  68. package/lib/constants/deployment-order.d.ts +68 -0
  69. package/lib/constants/deployment-order.js +162 -0
  70. package/lib/constants/deployment-order.js.map +1 -0
  71. package/lib/constants/salesforce-limits.d.ts +107 -0
  72. package/lib/constants/salesforce-limits.js +104 -0
  73. package/lib/constants/salesforce-limits.js.map +1 -0
  74. package/lib/dependencies/circular-dependency-detector.d.ts +137 -0
  75. package/lib/dependencies/circular-dependency-detector.js +329 -0
  76. package/lib/dependencies/circular-dependency-detector.js.map +1 -0
  77. package/lib/dependencies/cycle-remediation-planner.d.ts +50 -0
  78. package/lib/dependencies/cycle-remediation-planner.js +192 -0
  79. package/lib/dependencies/cycle-remediation-planner.js.map +1 -0
  80. package/lib/dependencies/dependency-cache.d.ts +134 -0
  81. package/lib/dependencies/dependency-cache.js +303 -0
  82. package/lib/dependencies/dependency-cache.js.map +1 -0
  83. package/lib/dependencies/dependency-depth-calculator.d.ts +145 -0
  84. package/lib/dependencies/dependency-depth-calculator.js +368 -0
  85. package/lib/dependencies/dependency-depth-calculator.js.map +1 -0
  86. package/lib/dependencies/dependency-graph-builder.d.ts +151 -0
  87. package/lib/dependencies/dependency-graph-builder.js +411 -0
  88. package/lib/dependencies/dependency-graph-builder.js.map +1 -0
  89. package/lib/dependencies/dependency-impact-analyzer.d.ts +145 -0
  90. package/lib/dependencies/dependency-impact-analyzer.js +330 -0
  91. package/lib/dependencies/dependency-impact-analyzer.js.map +1 -0
  92. package/lib/dependencies/dependency-merger.d.ts +122 -0
  93. package/lib/dependencies/dependency-merger.js +245 -0
  94. package/lib/dependencies/dependency-merger.js.map +1 -0
  95. package/lib/dependencies/dependency-resolver.d.ts +157 -0
  96. package/lib/dependencies/dependency-resolver.js +298 -0
  97. package/lib/dependencies/dependency-resolver.js.map +1 -0
  98. package/lib/dependencies/dependency-validator.d.ts +123 -0
  99. package/lib/dependencies/dependency-validator.js +291 -0
  100. package/lib/dependencies/dependency-validator.js.map +1 -0
  101. package/lib/dependencies/graph-visualizer.d.ts +110 -0
  102. package/lib/dependencies/graph-visualizer.js +262 -0
  103. package/lib/dependencies/graph-visualizer.js.map +1 -0
  104. package/lib/dependencies/heuristic-inference.d.ts +136 -0
  105. package/lib/dependencies/heuristic-inference.js +430 -0
  106. package/lib/dependencies/heuristic-inference.js.map +1 -0
  107. package/lib/deployment/cycle-source-editor.d.ts +34 -0
  108. package/lib/deployment/cycle-source-editor.js +121 -0
  109. package/lib/deployment/cycle-source-editor.js.map +1 -0
  110. package/lib/deployment/deployment-error-handler.d.ts +38 -0
  111. package/lib/deployment/deployment-error-handler.js +79 -0
  112. package/lib/deployment/deployment-error-handler.js.map +1 -0
  113. package/lib/deployment/deployment-reporter.d.ts +63 -0
  114. package/lib/deployment/deployment-reporter.js +150 -0
  115. package/lib/deployment/deployment-reporter.js.map +1 -0
  116. package/lib/deployment/deployment-state-summary.d.ts +38 -0
  117. package/lib/deployment/deployment-state-summary.js +209 -0
  118. package/lib/deployment/deployment-state-summary.js.map +1 -0
  119. package/lib/deployment/deployment-status-service.d.ts +36 -0
  120. package/lib/deployment/deployment-status-service.js +128 -0
  121. package/lib/deployment/deployment-status-service.js.map +1 -0
  122. package/lib/deployment/deployment-tracker.d.ts +42 -0
  123. package/lib/deployment/deployment-tracker.js +79 -0
  124. package/lib/deployment/deployment-tracker.js.map +1 -0
  125. package/lib/deployment/deployment-validation-service.d.ts +28 -0
  126. package/lib/deployment/deployment-validation-service.js +161 -0
  127. package/lib/deployment/deployment-validation-service.js.map +1 -0
  128. package/lib/deployment/retry-handler.d.ts +37 -0
  129. package/lib/deployment/retry-handler.js +86 -0
  130. package/lib/deployment/retry-handler.js.map +1 -0
  131. package/lib/deployment/sf-cli-integration.d.ts +42 -0
  132. package/lib/deployment/sf-cli-integration.js +105 -0
  133. package/lib/deployment/sf-cli-integration.js.map +1 -0
  134. package/lib/deployment/state-manager.d.ts +61 -0
  135. package/lib/deployment/state-manager.js +83 -0
  136. package/lib/deployment/state-manager.js.map +1 -0
  137. package/lib/deployment/test-executor.d.ts +41 -0
  138. package/lib/deployment/test-executor.js +87 -0
  139. package/lib/deployment/test-executor.js.map +1 -0
  140. package/lib/errors/base-error.d.ts +24 -0
  141. package/lib/errors/base-error.js +66 -0
  142. package/lib/errors/base-error.js.map +1 -0
  143. package/lib/errors/dependency-error.d.ts +37 -0
  144. package/lib/errors/dependency-error.js +76 -0
  145. package/lib/errors/dependency-error.js.map +1 -0
  146. package/lib/errors/deployment-error.d.ts +55 -0
  147. package/lib/errors/deployment-error.js +132 -0
  148. package/lib/errors/deployment-error.js.map +1 -0
  149. package/lib/errors/index.d.ts +45 -0
  150. package/lib/errors/index.js +71 -0
  151. package/lib/errors/index.js.map +1 -0
  152. package/lib/errors/network-error.d.ts +53 -0
  153. package/lib/errors/network-error.js +111 -0
  154. package/lib/errors/network-error.js.map +1 -0
  155. package/lib/errors/parsing-error.d.ts +41 -0
  156. package/lib/errors/parsing-error.js +69 -0
  157. package/lib/errors/parsing-error.js.map +1 -0
  158. package/lib/errors/validation-error-reporter.d.ts +34 -0
  159. package/lib/errors/validation-error-reporter.js +99 -0
  160. package/lib/errors/validation-error-reporter.js.map +1 -0
  161. package/lib/errors/validation-error.d.ts +58 -0
  162. package/lib/errors/validation-error.js +131 -0
  163. package/lib/errors/validation-error.js.map +1 -0
  164. package/lib/index.d.ts +2 -0
  165. package/lib/index.js +2 -0
  166. package/lib/index.js.map +1 -0
  167. package/lib/monitoring/performance-monitor.d.ts +98 -0
  168. package/lib/monitoring/performance-monitor.js +260 -0
  169. package/lib/monitoring/performance-monitor.js.map +1 -0
  170. package/lib/parsers/apex-class-parser.d.ts +47 -0
  171. package/lib/parsers/apex-class-parser.js +368 -0
  172. package/lib/parsers/apex-class-parser.js.map +1 -0
  173. package/lib/parsers/apex-trigger-parser.d.ts +48 -0
  174. package/lib/parsers/apex-trigger-parser.js +229 -0
  175. package/lib/parsers/apex-trigger-parser.js.map +1 -0
  176. package/lib/parsers/aura-parser.d.ts +55 -0
  177. package/lib/parsers/aura-parser.js +229 -0
  178. package/lib/parsers/aura-parser.js.map +1 -0
  179. package/lib/parsers/bot-parser.d.ts +65 -0
  180. package/lib/parsers/bot-parser.js +225 -0
  181. package/lib/parsers/bot-parser.js.map +1 -0
  182. package/lib/parsers/custom-metadata-parser.d.ts +94 -0
  183. package/lib/parsers/custom-metadata-parser.js +199 -0
  184. package/lib/parsers/custom-metadata-parser.js.map +1 -0
  185. package/lib/parsers/custom-object-parser.d.ts +62 -0
  186. package/lib/parsers/custom-object-parser.js +297 -0
  187. package/lib/parsers/custom-object-parser.js.map +1 -0
  188. package/lib/parsers/email-template-parser.d.ts +64 -0
  189. package/lib/parsers/email-template-parser.js +238 -0
  190. package/lib/parsers/email-template-parser.js.map +1 -0
  191. package/lib/parsers/error-resilient-parser.d.ts +110 -0
  192. package/lib/parsers/error-resilient-parser.js +277 -0
  193. package/lib/parsers/error-resilient-parser.js.map +1 -0
  194. package/lib/parsers/flexipage-parser.d.ts +64 -0
  195. package/lib/parsers/flexipage-parser.js +196 -0
  196. package/lib/parsers/flexipage-parser.js.map +1 -0
  197. package/lib/parsers/flow-parser.d.ts +54 -0
  198. package/lib/parsers/flow-parser.js +287 -0
  199. package/lib/parsers/flow-parser.js.map +1 -0
  200. package/lib/parsers/genai-prompt-parser.d.ts +67 -0
  201. package/lib/parsers/genai-prompt-parser.js +160 -0
  202. package/lib/parsers/genai-prompt-parser.js.map +1 -0
  203. package/lib/parsers/layout-parser.d.ts +64 -0
  204. package/lib/parsers/layout-parser.js +267 -0
  205. package/lib/parsers/layout-parser.js.map +1 -0
  206. package/lib/parsers/lwc-parser.d.ts +60 -0
  207. package/lib/parsers/lwc-parser.js +264 -0
  208. package/lib/parsers/lwc-parser.js.map +1 -0
  209. package/lib/parsers/permission-set-parser.d.ts +86 -0
  210. package/lib/parsers/permission-set-parser.js +152 -0
  211. package/lib/parsers/permission-set-parser.js.map +1 -0
  212. package/lib/parsers/profile-parser.d.ts +81 -0
  213. package/lib/parsers/profile-parser.js +141 -0
  214. package/lib/parsers/profile-parser.js.map +1 -0
  215. package/lib/parsers/visualforce-parser.d.ts +47 -0
  216. package/lib/parsers/visualforce-parser.js +180 -0
  217. package/lib/parsers/visualforce-parser.js.map +1 -0
  218. package/lib/provisioning/data-provisioner.d.ts +88 -0
  219. package/lib/provisioning/data-provisioner.js +257 -0
  220. package/lib/provisioning/data-provisioner.js.map +1 -0
  221. package/lib/scanner/custom-structure-scanner.d.ts +66 -0
  222. package/lib/scanner/custom-structure-scanner.js +229 -0
  223. package/lib/scanner/custom-structure-scanner.js.map +1 -0
  224. package/lib/scanner/forceignore-parser.d.ts +69 -0
  225. package/lib/scanner/forceignore-parser.js +195 -0
  226. package/lib/scanner/forceignore-parser.js.map +1 -0
  227. package/lib/scanner/metadata-format-scanner.d.ts +77 -0
  228. package/lib/scanner/metadata-format-scanner.js +282 -0
  229. package/lib/scanner/metadata-format-scanner.js.map +1 -0
  230. package/lib/scanner/monorepo-scanner.d.ts +71 -0
  231. package/lib/scanner/monorepo-scanner.js +225 -0
  232. package/lib/scanner/monorepo-scanner.js.map +1 -0
  233. package/lib/scanner/project-validator.d.ts +55 -0
  234. package/lib/scanner/project-validator.js +235 -0
  235. package/lib/scanner/project-validator.js.map +1 -0
  236. package/lib/scanner/sfdx-project-detector.d.ts +86 -0
  237. package/lib/scanner/sfdx-project-detector.js +240 -0
  238. package/lib/scanner/sfdx-project-detector.js.map +1 -0
  239. package/lib/scanner/structure-validator.d.ts +64 -0
  240. package/lib/scanner/structure-validator.js +296 -0
  241. package/lib/scanner/structure-validator.js.map +1 -0
  242. package/lib/services/metadata-scanner-service.d.ts +64 -0
  243. package/lib/services/metadata-scanner-service.js +651 -0
  244. package/lib/services/metadata-scanner-service.js.map +1 -0
  245. package/lib/types/agentforce.d.ts +157 -0
  246. package/lib/types/agentforce.js +2 -0
  247. package/lib/types/agentforce.js.map +1 -0
  248. package/lib/types/dependency.d.ts +98 -0
  249. package/lib/types/dependency.js +5 -0
  250. package/lib/types/dependency.js.map +1 -0
  251. package/lib/types/deployment-plan.d.ts +81 -0
  252. package/lib/types/deployment-plan.js +6 -0
  253. package/lib/types/deployment-plan.js.map +1 -0
  254. package/lib/types/deployment.d.ts +88 -0
  255. package/lib/types/deployment.js +5 -0
  256. package/lib/types/deployment.js.map +1 -0
  257. package/lib/types/graph.d.ts +35 -0
  258. package/lib/types/graph.js +5 -0
  259. package/lib/types/graph.js.map +1 -0
  260. package/lib/types/index.d.ts +12 -0
  261. package/lib/types/index.js +17 -0
  262. package/lib/types/index.js.map +1 -0
  263. package/lib/types/metadata.d.ts +101 -0
  264. package/lib/types/metadata.js +13 -0
  265. package/lib/types/metadata.js.map +1 -0
  266. package/lib/types/project.d.ts +156 -0
  267. package/lib/types/project.js +56 -0
  268. package/lib/types/project.js.map +1 -0
  269. package/lib/types/salesforce/apex.d.ts +94 -0
  270. package/lib/types/salesforce/apex.js +6 -0
  271. package/lib/types/salesforce/apex.js.map +1 -0
  272. package/lib/types/salesforce/aura.d.ts +150 -0
  273. package/lib/types/salesforce/aura.js +6 -0
  274. package/lib/types/salesforce/aura.js.map +1 -0
  275. package/lib/types/salesforce/bot.d.ts +293 -0
  276. package/lib/types/salesforce/bot.js +6 -0
  277. package/lib/types/salesforce/bot.js.map +1 -0
  278. package/lib/types/salesforce/common.d.ts +15 -0
  279. package/lib/types/salesforce/common.js +5 -0
  280. package/lib/types/salesforce/common.js.map +1 -0
  281. package/lib/types/salesforce/custom-metadata.d.ts +92 -0
  282. package/lib/types/salesforce/custom-metadata.js +6 -0
  283. package/lib/types/salesforce/custom-metadata.js.map +1 -0
  284. package/lib/types/salesforce/email.d.ts +56 -0
  285. package/lib/types/salesforce/email.js +6 -0
  286. package/lib/types/salesforce/email.js.map +1 -0
  287. package/lib/types/salesforce/flexipage.d.ts +149 -0
  288. package/lib/types/salesforce/flexipage.js +6 -0
  289. package/lib/types/salesforce/flexipage.js.map +1 -0
  290. package/lib/types/salesforce/flow.d.ts +516 -0
  291. package/lib/types/salesforce/flow.js +6 -0
  292. package/lib/types/salesforce/flow.js.map +1 -0
  293. package/lib/types/salesforce/genai.d.ts +67 -0
  294. package/lib/types/salesforce/genai.js +6 -0
  295. package/lib/types/salesforce/genai.js.map +1 -0
  296. package/lib/types/salesforce/index.d.ts +27 -0
  297. package/lib/types/salesforce/index.js +43 -0
  298. package/lib/types/salesforce/index.js.map +1 -0
  299. package/lib/types/salesforce/layout.d.ts +236 -0
  300. package/lib/types/salesforce/layout.js +6 -0
  301. package/lib/types/salesforce/layout.js.map +1 -0
  302. package/lib/types/salesforce/lwc.d.ts +123 -0
  303. package/lib/types/salesforce/lwc.js +6 -0
  304. package/lib/types/salesforce/lwc.js.map +1 -0
  305. package/lib/types/salesforce/object.d.ts +427 -0
  306. package/lib/types/salesforce/object.js +6 -0
  307. package/lib/types/salesforce/object.js.map +1 -0
  308. package/lib/types/salesforce/parser-types.d.ts +79 -0
  309. package/lib/types/salesforce/parser-types.js +80 -0
  310. package/lib/types/salesforce/parser-types.js.map +1 -0
  311. package/lib/types/salesforce/permission.d.ts +289 -0
  312. package/lib/types/salesforce/permission.js +6 -0
  313. package/lib/types/salesforce/permission.js.map +1 -0
  314. package/lib/types/salesforce/resource.d.ts +93 -0
  315. package/lib/types/salesforce/resource.js +6 -0
  316. package/lib/types/salesforce/resource.js.map +1 -0
  317. package/lib/types/salesforce/visualforce.d.ts +70 -0
  318. package/lib/types/salesforce/visualforce.js +6 -0
  319. package/lib/types/salesforce/visualforce.js.map +1 -0
  320. package/lib/utils/cache-manager.d.ts +158 -0
  321. package/lib/utils/cache-manager.js +429 -0
  322. package/lib/utils/cache-manager.js.map +1 -0
  323. package/lib/utils/deployment-plan-manager.d.ts +40 -0
  324. package/lib/utils/deployment-plan-manager.js +183 -0
  325. package/lib/utils/deployment-plan-manager.js.map +1 -0
  326. package/lib/utils/error-aggregator.d.ts +117 -0
  327. package/lib/utils/error-aggregator.js +268 -0
  328. package/lib/utils/error-aggregator.js.map +1 -0
  329. package/lib/utils/file-system.d.ts +62 -0
  330. package/lib/utils/file-system.js +167 -0
  331. package/lib/utils/file-system.js.map +1 -0
  332. package/lib/utils/functional.d.ts +52 -0
  333. package/lib/utils/functional.js +61 -0
  334. package/lib/utils/functional.js.map +1 -0
  335. package/lib/utils/graph-algorithms.d.ts +53 -0
  336. package/lib/utils/graph-algorithms.js +177 -0
  337. package/lib/utils/graph-algorithms.js.map +1 -0
  338. package/lib/utils/logger.d.ts +154 -0
  339. package/lib/utils/logger.js +327 -0
  340. package/lib/utils/logger.js.map +1 -0
  341. package/lib/utils/network-handler.d.ts +64 -0
  342. package/lib/utils/network-handler.js +147 -0
  343. package/lib/utils/network-handler.js.map +1 -0
  344. package/lib/utils/performance.d.ts +148 -0
  345. package/lib/utils/performance.js +294 -0
  346. package/lib/utils/performance.js.map +1 -0
  347. package/lib/utils/string.d.ts +197 -0
  348. package/lib/utils/string.js +331 -0
  349. package/lib/utils/string.js.map +1 -0
  350. package/lib/utils/xml.d.ts +97 -0
  351. package/lib/utils/xml.js +227 -0
  352. package/lib/utils/xml.js.map +1 -0
  353. package/lib/validators/xml-metadata-validator.d.ts +106 -0
  354. package/lib/validators/xml-metadata-validator.js +509 -0
  355. package/lib/validators/xml-metadata-validator.js.map +1 -0
  356. package/lib/waves/priority-wave-generator-ai.d.ts +85 -0
  357. package/lib/waves/priority-wave-generator-ai.js +191 -0
  358. package/lib/waves/priority-wave-generator-ai.js.map +1 -0
  359. package/lib/waves/priority-wave-generator.d.ts +47 -0
  360. package/lib/waves/priority-wave-generator.js +88 -0
  361. package/lib/waves/priority-wave-generator.js.map +1 -0
  362. package/lib/waves/test-optimizer.d.ts +155 -0
  363. package/lib/waves/test-optimizer.js +290 -0
  364. package/lib/waves/test-optimizer.js.map +1 -0
  365. package/lib/waves/wave-builder.d.ts +147 -0
  366. package/lib/waves/wave-builder.js +286 -0
  367. package/lib/waves/wave-builder.js.map +1 -0
  368. package/lib/waves/wave-diff-generator.d.ts +17 -0
  369. package/lib/waves/wave-diff-generator.js +6 -0
  370. package/lib/waves/wave-diff-generator.js.map +1 -0
  371. package/lib/waves/wave-executor.d.ts +33 -0
  372. package/lib/waves/wave-executor.js +50 -0
  373. package/lib/waves/wave-executor.js.map +1 -0
  374. package/lib/waves/wave-merger.d.ts +96 -0
  375. package/lib/waves/wave-merger.js +181 -0
  376. package/lib/waves/wave-merger.js.map +1 -0
  377. package/lib/waves/wave-metadata-generator.d.ts +13 -0
  378. package/lib/waves/wave-metadata-generator.js +12 -0
  379. package/lib/waves/wave-metadata-generator.js.map +1 -0
  380. package/lib/waves/wave-splitter.d.ts +154 -0
  381. package/lib/waves/wave-splitter.js +307 -0
  382. package/lib/waves/wave-splitter.js.map +1 -0
  383. package/lib/waves/wave-validator.d.ts +17 -0
  384. package/lib/waves/wave-validator.js +15 -0
  385. package/lib/waves/wave-validator.js.map +1 -0
  386. package/messages/analyze.json +18 -0
  387. package/messages/config.json +29 -0
  388. package/messages/resume.json +9 -0
  389. package/messages/start.json +24 -0
  390. package/messages/status.json +8 -0
  391. package/messages/validate.json +9 -0
  392. package/npm-shrinkwrap.json +25676 -0
  393. package/oclif.lock +11988 -0
  394. package/oclif.manifest.json +589 -0
  395. package/package.json +224 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-visualizer.js","sourceRoot":"","sources":["../../src/dependencies/graph-visualizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Heuristic Dependency Inference
3
+ * Infers non-obvious dependencies using intelligent heuristics
4
+ *
5
+ * @ac US-029-AC-1: Test class → Production class inference
6
+ * @ac US-029-AC-2: Handler → Service pattern detection
7
+ * @ac US-029-AC-3: Trigger → Handler pattern detection
8
+ * @ac US-029-AC-4: Controller → Service pattern detection
9
+ * @ac US-029-AC-5: Naming convention analysis
10
+ * @ac US-029-AC-6: Confidence scoring for inferences
11
+ *
12
+ * @issue #29
13
+ */
14
+ import type { MetadataComponent } from '../types/metadata.js';
15
+ import type { NodeId } from '../types/dependency.js';
16
+ /**
17
+ * Confidence level for inferred dependencies
18
+ */
19
+ export type ConfidenceLevel = 'high' | 'medium' | 'low';
20
+ /**
21
+ * Inferred dependency with confidence score
22
+ */
23
+ export type InferredDependency = {
24
+ from: NodeId;
25
+ to: NodeId;
26
+ reason: string;
27
+ confidence: ConfidenceLevel;
28
+ pattern: string;
29
+ score: number;
30
+ };
31
+ /**
32
+ * Options for heuristic inference
33
+ */
34
+ export type HeuristicInferenceOptions = {
35
+ /** Minimum confidence score (0-100) */
36
+ minConfidence?: number;
37
+ /** Enable test class inference */
38
+ enableTestInference?: boolean;
39
+ /** Enable handler pattern detection */
40
+ enableHandlerPattern?: boolean;
41
+ /** Enable trigger pattern detection */
42
+ enableTriggerPattern?: boolean;
43
+ /** Enable controller pattern detection */
44
+ enableControllerPattern?: boolean;
45
+ /** Enable naming convention analysis */
46
+ enableNamingConventions?: boolean;
47
+ };
48
+ /**
49
+ * Heuristic Dependency Inference
50
+ *
51
+ * Uses intelligent heuristics to infer dependencies that are not explicit in code:
52
+ * - Test classes typically depend on the production class they test
53
+ * - Handlers typically call service classes
54
+ * - Triggers typically call handler classes
55
+ * - Controllers typically call service classes
56
+ * - Naming conventions reveal architectural patterns
57
+ *
58
+ * @example
59
+ * const inferencer = new HeuristicInference();
60
+ * const inferred = inferencer.inferDependencies(components);
61
+ * console.log(`Found ${inferred.length} inferred dependencies`);
62
+ */
63
+ export declare class HeuristicInference {
64
+ private options;
65
+ private patterns;
66
+ constructor(options?: HeuristicInferenceOptions);
67
+ /**
68
+ * @ac US-029-AC-6: Confidence scoring
69
+ *
70
+ * Calculate confidence score for an inferred dependency
71
+ */
72
+ static calculateConfidence(pattern: string, existingDeps: number, nameSimilarity: number): {
73
+ confidence: ConfidenceLevel;
74
+ score: number;
75
+ };
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
+ /**
125
+ * Infer dependencies for all components
126
+ */
127
+ inferDependencies(components: Map<NodeId, MetadataComponent>): InferredDependency[];
128
+ /**
129
+ * Infer dependencies for a single component
130
+ */
131
+ inferForComponent(component: MetadataComponent, allComponents: Map<NodeId, MetadataComponent>): InferredDependency[];
132
+ /**
133
+ * Initialize heuristic patterns
134
+ */
135
+ private initializePatterns;
136
+ }
@@ -0,0 +1,430 @@
1
+ /**
2
+ * Heuristic Dependency Inference
3
+ * Infers non-obvious dependencies using intelligent heuristics
4
+ *
5
+ * @ac US-029-AC-1: Test class → Production class inference
6
+ * @ac US-029-AC-2: Handler → Service pattern detection
7
+ * @ac US-029-AC-3: Trigger → Handler pattern detection
8
+ * @ac US-029-AC-4: Controller → Service pattern detection
9
+ * @ac US-029-AC-5: Naming convention analysis
10
+ * @ac US-029-AC-6: Confidence scoring for inferences
11
+ *
12
+ * @issue #29
13
+ */
14
+ import { getLogger } from '../utils/logger.js';
15
+ const logger = getLogger('HeuristicInference');
16
+ /**
17
+ * Heuristic Dependency Inference
18
+ *
19
+ * Uses intelligent heuristics to infer dependencies that are not explicit in code:
20
+ * - Test classes typically depend on the production class they test
21
+ * - Handlers typically call service classes
22
+ * - Triggers typically call handler classes
23
+ * - Controllers typically call service classes
24
+ * - Naming conventions reveal architectural patterns
25
+ *
26
+ * @example
27
+ * const inferencer = new HeuristicInference();
28
+ * const inferred = inferencer.inferDependencies(components);
29
+ * console.log(`Found ${inferred.length} inferred dependencies`);
30
+ */
31
+ export class HeuristicInference {
32
+ options;
33
+ patterns;
34
+ constructor(options = {}) {
35
+ this.options = {
36
+ minConfidence: options.minConfidence ?? 60,
37
+ enableTestInference: options.enableTestInference ?? true,
38
+ enableHandlerPattern: options.enableHandlerPattern ?? true,
39
+ enableTriggerPattern: options.enableTriggerPattern ?? true,
40
+ enableControllerPattern: options.enableControllerPattern ?? true,
41
+ enableNamingConventions: options.enableNamingConventions ?? true,
42
+ };
43
+ this.patterns = this.initializePatterns();
44
+ logger.debug('Initialized HeuristicInference', {
45
+ options: this.options,
46
+ patterns: this.patterns.filter((p) => p.enabled).map((p) => p.name),
47
+ });
48
+ }
49
+ /**
50
+ * @ac US-029-AC-6: Confidence scoring
51
+ *
52
+ * Calculate confidence score for an inferred dependency
53
+ */
54
+ 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;
362
+ }
363
+ /**
364
+ * Infer dependencies for all components
365
+ */
366
+ inferDependencies(components) {
367
+ const startTime = Date.now();
368
+ const allInferred = [];
369
+ for (const component of components.values()) {
370
+ const inferred = this.inferForComponent(component, components);
371
+ allInferred.push(...inferred);
372
+ }
373
+ // Filter by confidence threshold
374
+ const filtered = allInferred.filter((dep) => dep.score >= this.options.minConfidence);
375
+ const duration = Date.now() - startTime;
376
+ logger.info('Inferred dependencies completed', {
377
+ total: allInferred.length,
378
+ filtered: filtered.length,
379
+ minConfidence: this.options.minConfidence,
380
+ durationMs: duration,
381
+ });
382
+ return filtered;
383
+ }
384
+ /**
385
+ * Infer dependencies for a single component
386
+ */
387
+ inferForComponent(component, allComponents) {
388
+ const inferred = [];
389
+ for (const pattern of this.patterns) {
390
+ if (pattern.enabled) {
391
+ const results = pattern.test(component, allComponents);
392
+ inferred.push(...results);
393
+ }
394
+ }
395
+ return inferred;
396
+ }
397
+ /**
398
+ * Initialize heuristic patterns
399
+ */
400
+ initializePatterns() {
401
+ return [
402
+ {
403
+ name: 'test-class-inference',
404
+ enabled: this.options.enableTestInference,
405
+ test: (component, components) => HeuristicInference.inferTestClassDependencies(component, components),
406
+ },
407
+ {
408
+ name: 'handler-service-pattern',
409
+ enabled: this.options.enableHandlerPattern,
410
+ test: (component, components) => HeuristicInference.inferHandlerServicePattern(component, components),
411
+ },
412
+ {
413
+ name: 'trigger-handler-pattern',
414
+ enabled: this.options.enableTriggerPattern,
415
+ test: (component, components) => HeuristicInference.inferTriggerHandlerPattern(component, components),
416
+ },
417
+ {
418
+ name: 'controller-service-pattern',
419
+ enabled: this.options.enableControllerPattern,
420
+ test: (component, components) => HeuristicInference.inferControllerServicePattern(component, components),
421
+ },
422
+ {
423
+ name: 'naming-conventions',
424
+ enabled: this.options.enableNamingConventions,
425
+ test: (component, components) => HeuristicInference.inferFromNamingConventions(component, components),
426
+ },
427
+ ];
428
+ }
429
+ }
430
+ //# sourceMappingURL=heuristic-inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heuristic-inference.js","sourceRoot":"","sources":["../../src/dependencies/heuristic-inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export type CycleSourceEditRequest = {
2
+ filePath: string;
3
+ targetDescription: string;
4
+ targetDependency: string;
5
+ sourceSnippet: string;
6
+ };
7
+ export type CycleSourceBackupRecord = {
8
+ filePath: string;
9
+ backupPath: string;
10
+ originalHash: string;
11
+ created: boolean;
12
+ };
13
+ export type CycleSourceEditRecord = {
14
+ operation: 'comment-reference';
15
+ filePath: string;
16
+ backupPath: string;
17
+ targetDescription: string;
18
+ targetDependency: string;
19
+ sourceSnippet: string;
20
+ replacementSnippet: string;
21
+ originalHash: string;
22
+ editedHash: string;
23
+ };
24
+ export type CycleSourceRestoreResult = {
25
+ restored: boolean;
26
+ reason?: 'backup-missing' | 'hash-mismatch';
27
+ restoredHash?: string;
28
+ currentHash?: string;
29
+ };
30
+ export declare class CycleSourceEditor {
31
+ createBackup(filePath: string): Promise<CycleSourceBackupRecord>;
32
+ applyEdit(request: CycleSourceEditRequest): Promise<CycleSourceEditRecord>;
33
+ restoreEdit(record: CycleSourceEditRecord): Promise<CycleSourceRestoreResult>;
34
+ }