@bloomreach/brxm-upgrade 0.1.1

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 (420) hide show
  1. package/README.md +217 -0
  2. package/dist/ai/index.d.ts +3 -0
  3. package/dist/ai/index.d.ts.map +1 -0
  4. package/dist/ai/index.js +2 -0
  5. package/dist/ai/index.js.map +1 -0
  6. package/dist/ai/providers.d.ts +27 -0
  7. package/dist/ai/providers.d.ts.map +1 -0
  8. package/dist/ai/providers.js +105 -0
  9. package/dist/ai/providers.js.map +1 -0
  10. package/dist/ai/types.d.ts +47 -0
  11. package/dist/ai/types.d.ts.map +1 -0
  12. package/dist/ai/types.js +2 -0
  13. package/dist/ai/types.js.map +1 -0
  14. package/dist/capture/change-scanner.d.ts +20 -0
  15. package/dist/capture/change-scanner.d.ts.map +1 -0
  16. package/dist/capture/change-scanner.js +71 -0
  17. package/dist/capture/change-scanner.js.map +1 -0
  18. package/dist/capture/conflict-resolver.d.ts +21 -0
  19. package/dist/capture/conflict-resolver.d.ts.map +1 -0
  20. package/dist/capture/conflict-resolver.js +45 -0
  21. package/dist/capture/conflict-resolver.js.map +1 -0
  22. package/dist/capture/critique-types.d.ts +60 -0
  23. package/dist/capture/critique-types.d.ts.map +1 -0
  24. package/dist/capture/critique-types.js +2 -0
  25. package/dist/capture/critique-types.js.map +1 -0
  26. package/dist/capture/entry-critique.d.ts +30 -0
  27. package/dist/capture/entry-critique.d.ts.map +1 -0
  28. package/dist/capture/entry-critique.js +137 -0
  29. package/dist/capture/entry-critique.js.map +1 -0
  30. package/dist/capture/entry-generator.d.ts +32 -0
  31. package/dist/capture/entry-generator.d.ts.map +1 -0
  32. package/dist/capture/entry-generator.js +209 -0
  33. package/dist/capture/entry-generator.js.map +1 -0
  34. package/dist/capture/entry-qa.d.ts +28 -0
  35. package/dist/capture/entry-qa.d.ts.map +1 -0
  36. package/dist/capture/entry-qa.js +84 -0
  37. package/dist/capture/entry-qa.js.map +1 -0
  38. package/dist/capture/entry-regeneration.d.ts +29 -0
  39. package/dist/capture/entry-regeneration.d.ts.map +1 -0
  40. package/dist/capture/entry-regeneration.js +164 -0
  41. package/dist/capture/entry-regeneration.js.map +1 -0
  42. package/dist/capture/entry-validator.d.ts +18 -0
  43. package/dist/capture/entry-validator.d.ts.map +1 -0
  44. package/dist/capture/entry-validator.js +47 -0
  45. package/dist/capture/entry-validator.js.map +1 -0
  46. package/dist/capture/heuristics.d.ts +30 -0
  47. package/dist/capture/heuristics.d.ts.map +1 -0
  48. package/dist/capture/heuristics.js +223 -0
  49. package/dist/capture/heuristics.js.map +1 -0
  50. package/dist/capture/index.d.ts +7 -0
  51. package/dist/capture/index.d.ts.map +1 -0
  52. package/dist/capture/index.js +11 -0
  53. package/dist/capture/index.js.map +1 -0
  54. package/dist/capture/quality-report.d.ts +19 -0
  55. package/dist/capture/quality-report.d.ts.map +1 -0
  56. package/dist/capture/quality-report.js +161 -0
  57. package/dist/capture/quality-report.js.map +1 -0
  58. package/dist/capture/review-flow.d.ts +37 -0
  59. package/dist/capture/review-flow.d.ts.map +1 -0
  60. package/dist/capture/review-flow.js +212 -0
  61. package/dist/capture/review-flow.js.map +1 -0
  62. package/dist/capture/types.d.ts +114 -0
  63. package/dist/capture/types.d.ts.map +1 -0
  64. package/dist/capture/types.js +2 -0
  65. package/dist/capture/types.js.map +1 -0
  66. package/dist/commands/discover.d.ts +6 -0
  67. package/dist/commands/discover.d.ts.map +1 -0
  68. package/dist/commands/discover.js +147 -0
  69. package/dist/commands/discover.js.map +1 -0
  70. package/dist/commands/execute.d.ts +12 -0
  71. package/dist/commands/execute.d.ts.map +1 -0
  72. package/dist/commands/execute.js +113 -0
  73. package/dist/commands/execute.js.map +1 -0
  74. package/dist/commands/export.d.ts +26 -0
  75. package/dist/commands/export.d.ts.map +1 -0
  76. package/dist/commands/export.js +291 -0
  77. package/dist/commands/export.js.map +1 -0
  78. package/dist/commands/finalize.d.ts +12 -0
  79. package/dist/commands/finalize.d.ts.map +1 -0
  80. package/dist/commands/finalize.js +225 -0
  81. package/dist/commands/finalize.js.map +1 -0
  82. package/dist/commands/guide.d.ts +12 -0
  83. package/dist/commands/guide.d.ts.map +1 -0
  84. package/dist/commands/guide.js +28 -0
  85. package/dist/commands/guide.js.map +1 -0
  86. package/dist/commands/index.d.ts +6 -0
  87. package/dist/commands/index.d.ts.map +1 -0
  88. package/dist/commands/index.js +22 -0
  89. package/dist/commands/index.js.map +1 -0
  90. package/dist/commands/log-change.d.ts +14 -0
  91. package/dist/commands/log-change.d.ts.map +1 -0
  92. package/dist/commands/log-change.js +243 -0
  93. package/dist/commands/log-change.js.map +1 -0
  94. package/dist/commands/plan.d.ts +12 -0
  95. package/dist/commands/plan.d.ts.map +1 -0
  96. package/dist/commands/plan.js +162 -0
  97. package/dist/commands/plan.js.map +1 -0
  98. package/dist/commands/review-manifest.d.ts +39 -0
  99. package/dist/commands/review-manifest.d.ts.map +1 -0
  100. package/dist/commands/review-manifest.js +178 -0
  101. package/dist/commands/review-manifest.js.map +1 -0
  102. package/dist/commands/setup-manifests.d.ts +12 -0
  103. package/dist/commands/setup-manifests.d.ts.map +1 -0
  104. package/dist/commands/setup-manifests.js +229 -0
  105. package/dist/commands/setup-manifests.js.map +1 -0
  106. package/dist/config/defaults.d.ts +15 -0
  107. package/dist/config/defaults.d.ts.map +1 -0
  108. package/dist/config/defaults.js +36 -0
  109. package/dist/config/defaults.js.map +1 -0
  110. package/dist/config/index.d.ts +17 -0
  111. package/dist/config/index.d.ts.map +1 -0
  112. package/dist/config/index.js +104 -0
  113. package/dist/config/index.js.map +1 -0
  114. package/dist/config/schema.d.ts +33 -0
  115. package/dist/config/schema.d.ts.map +1 -0
  116. package/dist/config/schema.js +110 -0
  117. package/dist/config/schema.js.map +1 -0
  118. package/dist/core/index.d.ts +12 -0
  119. package/dist/core/index.d.ts.map +1 -0
  120. package/dist/core/index.js +16 -0
  121. package/dist/core/index.js.map +1 -0
  122. package/dist/core/phase-manager.d.ts +53 -0
  123. package/dist/core/phase-manager.d.ts.map +1 -0
  124. package/dist/core/phase-manager.js +124 -0
  125. package/dist/core/phase-manager.js.map +1 -0
  126. package/dist/core/upgrade-state.d.ts +24 -0
  127. package/dist/core/upgrade-state.d.ts.map +1 -0
  128. package/dist/core/upgrade-state.js +32 -0
  129. package/dist/core/upgrade-state.js.map +1 -0
  130. package/dist/discovery/index.d.ts +5 -0
  131. package/dist/discovery/index.d.ts.map +1 -0
  132. package/dist/discovery/index.js +4 -0
  133. package/dist/discovery/index.js.map +1 -0
  134. package/dist/discovery/orchestrator.d.ts +46 -0
  135. package/dist/discovery/orchestrator.d.ts.map +1 -0
  136. package/dist/discovery/orchestrator.js +124 -0
  137. package/dist/discovery/orchestrator.js.map +1 -0
  138. package/dist/discovery/scanners/config-detector.d.ts +24 -0
  139. package/dist/discovery/scanners/config-detector.d.ts.map +1 -0
  140. package/dist/discovery/scanners/config-detector.js +82 -0
  141. package/dist/discovery/scanners/config-detector.js.map +1 -0
  142. package/dist/discovery/scanners/cv-scanner.d.ts +30 -0
  143. package/dist/discovery/scanners/cv-scanner.d.ts.map +1 -0
  144. package/dist/discovery/scanners/cv-scanner.js +85 -0
  145. package/dist/discovery/scanners/cv-scanner.js.map +1 -0
  146. package/dist/discovery/scanners/index.d.ts +6 -0
  147. package/dist/discovery/scanners/index.d.ts.map +1 -0
  148. package/dist/discovery/scanners/index.js +6 -0
  149. package/dist/discovery/scanners/index.js.map +1 -0
  150. package/dist/discovery/scanners/maven-scanner.d.ts +33 -0
  151. package/dist/discovery/scanners/maven-scanner.d.ts.map +1 -0
  152. package/dist/discovery/scanners/maven-scanner.js +96 -0
  153. package/dist/discovery/scanners/maven-scanner.js.map +1 -0
  154. package/dist/discovery/scanners/repo-scanner.d.ts +9 -0
  155. package/dist/discovery/scanners/repo-scanner.d.ts.map +1 -0
  156. package/dist/discovery/scanners/repo-scanner.js +80 -0
  157. package/dist/discovery/scanners/repo-scanner.js.map +1 -0
  158. package/dist/discovery/scanners/version-resolver.d.ts +45 -0
  159. package/dist/discovery/scanners/version-resolver.d.ts.map +1 -0
  160. package/dist/discovery/scanners/version-resolver.js +119 -0
  161. package/dist/discovery/scanners/version-resolver.js.map +1 -0
  162. package/dist/discovery/types.d.ts +156 -0
  163. package/dist/discovery/types.d.ts.map +1 -0
  164. package/dist/discovery/types.js +2 -0
  165. package/dist/discovery/types.js.map +1 -0
  166. package/dist/discovery/validators/index.d.ts +2 -0
  167. package/dist/discovery/validators/index.d.ts.map +1 -0
  168. package/dist/discovery/validators/index.js +2 -0
  169. package/dist/discovery/validators/index.js.map +1 -0
  170. package/dist/discovery/validators/upgrade-validator.d.ts +34 -0
  171. package/dist/discovery/validators/upgrade-validator.d.ts.map +1 -0
  172. package/dist/discovery/validators/upgrade-validator.js +135 -0
  173. package/dist/discovery/validators/upgrade-validator.js.map +1 -0
  174. package/dist/docs/docs-client.d.ts +44 -0
  175. package/dist/docs/docs-client.d.ts.map +1 -0
  176. package/dist/docs/docs-client.js +161 -0
  177. package/dist/docs/docs-client.js.map +1 -0
  178. package/dist/docs/docs-context.d.ts +23 -0
  179. package/dist/docs/docs-context.d.ts.map +1 -0
  180. package/dist/docs/docs-context.js +41 -0
  181. package/dist/docs/docs-context.js.map +1 -0
  182. package/dist/docs/index.d.ts +4 -0
  183. package/dist/docs/index.d.ts.map +1 -0
  184. package/dist/docs/index.js +3 -0
  185. package/dist/docs/index.js.map +1 -0
  186. package/dist/docs/types.d.ts +27 -0
  187. package/dist/docs/types.d.ts.map +1 -0
  188. package/dist/docs/types.js +2 -0
  189. package/dist/docs/types.js.map +1 -0
  190. package/dist/execution/diff-presenter.d.ts +52 -0
  191. package/dist/execution/diff-presenter.d.ts.map +1 -0
  192. package/dist/execution/diff-presenter.js +148 -0
  193. package/dist/execution/diff-presenter.js.map +1 -0
  194. package/dist/execution/executors/ai-assisted.d.ts +28 -0
  195. package/dist/execution/executors/ai-assisted.d.ts.map +1 -0
  196. package/dist/execution/executors/ai-assisted.js +226 -0
  197. package/dist/execution/executors/ai-assisted.js.map +1 -0
  198. package/dist/execution/executors/automated.d.ts +15 -0
  199. package/dist/execution/executors/automated.d.ts.map +1 -0
  200. package/dist/execution/executors/automated.js +37 -0
  201. package/dist/execution/executors/automated.js.map +1 -0
  202. package/dist/execution/executors/cv-gate.d.ts +23 -0
  203. package/dist/execution/executors/cv-gate.d.ts.map +1 -0
  204. package/dist/execution/executors/cv-gate.js +63 -0
  205. package/dist/execution/executors/cv-gate.js.map +1 -0
  206. package/dist/execution/executors/index.d.ts +7 -0
  207. package/dist/execution/executors/index.d.ts.map +1 -0
  208. package/dist/execution/executors/index.js +7 -0
  209. package/dist/execution/executors/index.js.map +1 -0
  210. package/dist/execution/executors/manual.d.ts +18 -0
  211. package/dist/execution/executors/manual.d.ts.map +1 -0
  212. package/dist/execution/executors/manual.js +31 -0
  213. package/dist/execution/executors/manual.js.map +1 -0
  214. package/dist/execution/executors/override-resolution.d.ts +27 -0
  215. package/dist/execution/executors/override-resolution.d.ts.map +1 -0
  216. package/dist/execution/executors/override-resolution.js +79 -0
  217. package/dist/execution/executors/override-resolution.js.map +1 -0
  218. package/dist/execution/executors/version-bump.d.ts +20 -0
  219. package/dist/execution/executors/version-bump.d.ts.map +1 -0
  220. package/dist/execution/executors/version-bump.js +65 -0
  221. package/dist/execution/executors/version-bump.js.map +1 -0
  222. package/dist/execution/file-transformer.d.ts +25 -0
  223. package/dist/execution/file-transformer.d.ts.map +1 -0
  224. package/dist/execution/file-transformer.js +74 -0
  225. package/dist/execution/file-transformer.js.map +1 -0
  226. package/dist/execution/index.d.ts +7 -0
  227. package/dist/execution/index.d.ts.map +1 -0
  228. package/dist/execution/index.js +9 -0
  229. package/dist/execution/index.js.map +1 -0
  230. package/dist/execution/state-manager.d.ts +27 -0
  231. package/dist/execution/state-manager.d.ts.map +1 -0
  232. package/dist/execution/state-manager.js +48 -0
  233. package/dist/execution/state-manager.js.map +1 -0
  234. package/dist/execution/step-executor.d.ts +68 -0
  235. package/dist/execution/step-executor.d.ts.map +1 -0
  236. package/dist/execution/step-executor.js +243 -0
  237. package/dist/execution/step-executor.js.map +1 -0
  238. package/dist/execution/types.d.ts +92 -0
  239. package/dist/execution/types.d.ts.map +1 -0
  240. package/dist/execution/types.js +2 -0
  241. package/dist/execution/types.js.map +1 -0
  242. package/dist/guide/GuideRunner.d.ts +62 -0
  243. package/dist/guide/GuideRunner.d.ts.map +1 -0
  244. package/dist/guide/GuideRunner.js +390 -0
  245. package/dist/guide/GuideRunner.js.map +1 -0
  246. package/dist/guide/chat/ChatContextBuilder.d.ts +44 -0
  247. package/dist/guide/chat/ChatContextBuilder.d.ts.map +1 -0
  248. package/dist/guide/chat/ChatContextBuilder.js +121 -0
  249. package/dist/guide/chat/ChatContextBuilder.js.map +1 -0
  250. package/dist/guide/chat/ChatLoop.d.ts +18 -0
  251. package/dist/guide/chat/ChatLoop.d.ts.map +1 -0
  252. package/dist/guide/chat/ChatLoop.js +59 -0
  253. package/dist/guide/chat/ChatLoop.js.map +1 -0
  254. package/dist/guide/chat/StepCoach.d.ts +22 -0
  255. package/dist/guide/chat/StepCoach.d.ts.map +1 -0
  256. package/dist/guide/chat/StepCoach.js +39 -0
  257. package/dist/guide/chat/StepCoach.js.map +1 -0
  258. package/dist/guide/chat/index.d.ts +4 -0
  259. package/dist/guide/chat/index.d.ts.map +1 -0
  260. package/dist/guide/chat/index.js +4 -0
  261. package/dist/guide/chat/index.js.map +1 -0
  262. package/dist/guide/index.d.ts +3 -0
  263. package/dist/guide/index.d.ts.map +1 -0
  264. package/dist/guide/index.js +2 -0
  265. package/dist/guide/index.js.map +1 -0
  266. package/dist/guide/phases/DiscoveryPhase.d.ts +30 -0
  267. package/dist/guide/phases/DiscoveryPhase.d.ts.map +1 -0
  268. package/dist/guide/phases/DiscoveryPhase.js +238 -0
  269. package/dist/guide/phases/DiscoveryPhase.js.map +1 -0
  270. package/dist/guide/phases/ExecutionPhase.d.ts +80 -0
  271. package/dist/guide/phases/ExecutionPhase.d.ts.map +1 -0
  272. package/dist/guide/phases/ExecutionPhase.js +574 -0
  273. package/dist/guide/phases/ExecutionPhase.js.map +1 -0
  274. package/dist/guide/phases/PlanPhase.d.ts +22 -0
  275. package/dist/guide/phases/PlanPhase.d.ts.map +1 -0
  276. package/dist/guide/phases/PlanPhase.js +200 -0
  277. package/dist/guide/phases/PlanPhase.js.map +1 -0
  278. package/dist/guide/phases/index.d.ts +4 -0
  279. package/dist/guide/phases/index.d.ts.map +1 -0
  280. package/dist/guide/phases/index.js +4 -0
  281. package/dist/guide/phases/index.js.map +1 -0
  282. package/dist/guide/rendering/formatters.d.ts +126 -0
  283. package/dist/guide/rendering/formatters.d.ts.map +1 -0
  284. package/dist/guide/rendering/formatters.js +340 -0
  285. package/dist/guide/rendering/formatters.js.map +1 -0
  286. package/dist/guide/rendering/index.d.ts +2 -0
  287. package/dist/guide/rendering/index.d.ts.map +1 -0
  288. package/dist/guide/rendering/index.js +2 -0
  289. package/dist/guide/rendering/index.js.map +1 -0
  290. package/dist/guide/rendering/platform-changes.d.ts +18 -0
  291. package/dist/guide/rendering/platform-changes.d.ts.map +1 -0
  292. package/dist/guide/rendering/platform-changes.js +86 -0
  293. package/dist/guide/rendering/platform-changes.js.map +1 -0
  294. package/dist/guide/types.d.ts +100 -0
  295. package/dist/guide/types.d.ts.map +1 -0
  296. package/dist/guide/types.js +2 -0
  297. package/dist/guide/types.js.map +1 -0
  298. package/dist/index.d.ts +3 -0
  299. package/dist/index.d.ts.map +1 -0
  300. package/dist/index.js +138 -0
  301. package/dist/index.js.map +1 -0
  302. package/dist/manifests/maven-settings.d.ts +7 -0
  303. package/dist/manifests/maven-settings.d.ts.map +1 -0
  304. package/dist/manifests/maven-settings.js +33 -0
  305. package/dist/manifests/maven-settings.js.map +1 -0
  306. package/dist/manifests/parent-properties.d.ts +12 -0
  307. package/dist/manifests/parent-properties.d.ts.map +1 -0
  308. package/dist/manifests/parent-properties.js +28 -0
  309. package/dist/manifests/parent-properties.js.map +1 -0
  310. package/dist/manifests/schema.json +198 -0
  311. package/dist/manifests/unreleased.yaml +3 -0
  312. package/dist/mcp/index.d.ts +3 -0
  313. package/dist/mcp/index.d.ts.map +1 -0
  314. package/dist/mcp/index.js +13 -0
  315. package/dist/mcp/index.js.map +1 -0
  316. package/dist/mcp/resources/index.d.ts +32 -0
  317. package/dist/mcp/resources/index.d.ts.map +1 -0
  318. package/dist/mcp/resources/index.js +55 -0
  319. package/dist/mcp/resources/index.js.map +1 -0
  320. package/dist/mcp/server.d.ts +9 -0
  321. package/dist/mcp/server.d.ts.map +1 -0
  322. package/dist/mcp/server.js +162 -0
  323. package/dist/mcp/server.js.map +1 -0
  324. package/dist/mcp/tools/complete-step.d.ts +26 -0
  325. package/dist/mcp/tools/complete-step.d.ts.map +1 -0
  326. package/dist/mcp/tools/complete-step.js +73 -0
  327. package/dist/mcp/tools/complete-step.js.map +1 -0
  328. package/dist/mcp/tools/create-upgrade-plan.d.ts +36 -0
  329. package/dist/mcp/tools/create-upgrade-plan.d.ts.map +1 -0
  330. package/dist/mcp/tools/create-upgrade-plan.js +143 -0
  331. package/dist/mcp/tools/create-upgrade-plan.js.map +1 -0
  332. package/dist/mcp/tools/discover-project.d.ts +33 -0
  333. package/dist/mcp/tools/discover-project.d.ts.map +1 -0
  334. package/dist/mcp/tools/discover-project.js +96 -0
  335. package/dist/mcp/tools/discover-project.js.map +1 -0
  336. package/dist/mcp/tools/get-next-step.d.ts +54 -0
  337. package/dist/mcp/tools/get-next-step.d.ts.map +1 -0
  338. package/dist/mcp/tools/get-next-step.js +110 -0
  339. package/dist/mcp/tools/get-next-step.js.map +1 -0
  340. package/dist/mcp/tools/get-upgrade-status.d.ts +25 -0
  341. package/dist/mcp/tools/get-upgrade-status.d.ts.map +1 -0
  342. package/dist/mcp/tools/get-upgrade-status.js +79 -0
  343. package/dist/mcp/tools/get-upgrade-status.js.map +1 -0
  344. package/dist/mcp/tools/upgrade-targets.d.ts +19 -0
  345. package/dist/mcp/tools/upgrade-targets.d.ts.map +1 -0
  346. package/dist/mcp/tools/upgrade-targets.js +132 -0
  347. package/dist/mcp/tools/upgrade-targets.js.map +1 -0
  348. package/dist/planning/ai-analyzer.d.ts +20 -0
  349. package/dist/planning/ai-analyzer.d.ts.map +1 -0
  350. package/dist/planning/ai-analyzer.js +97 -0
  351. package/dist/planning/ai-analyzer.js.map +1 -0
  352. package/dist/planning/index.d.ts +8 -0
  353. package/dist/planning/index.d.ts.map +1 -0
  354. package/dist/planning/index.js +13 -0
  355. package/dist/planning/index.js.map +1 -0
  356. package/dist/planning/manifest-loader.d.ts +54 -0
  357. package/dist/planning/manifest-loader.d.ts.map +1 -0
  358. package/dist/planning/manifest-loader.js +233 -0
  359. package/dist/planning/manifest-loader.js.map +1 -0
  360. package/dist/planning/manifest-schema.d.ts +41 -0
  361. package/dist/planning/manifest-schema.d.ts.map +1 -0
  362. package/dist/planning/manifest-schema.js +71 -0
  363. package/dist/planning/manifest-schema.js.map +1 -0
  364. package/dist/planning/override-analyzer.d.ts +12 -0
  365. package/dist/planning/override-analyzer.d.ts.map +1 -0
  366. package/dist/planning/override-analyzer.js +42 -0
  367. package/dist/planning/override-analyzer.js.map +1 -0
  368. package/dist/planning/plan-generator.d.ts +15 -0
  369. package/dist/planning/plan-generator.d.ts.map +1 -0
  370. package/dist/planning/plan-generator.js +250 -0
  371. package/dist/planning/plan-generator.js.map +1 -0
  372. package/dist/planning/project-matcher.d.ts +65 -0
  373. package/dist/planning/project-matcher.d.ts.map +1 -0
  374. package/dist/planning/project-matcher.js +265 -0
  375. package/dist/planning/project-matcher.js.map +1 -0
  376. package/dist/planning/types.d.ts +237 -0
  377. package/dist/planning/types.d.ts.map +1 -0
  378. package/dist/planning/types.js +2 -0
  379. package/dist/planning/types.js.map +1 -0
  380. package/dist/types/index.d.ts +90 -0
  381. package/dist/types/index.d.ts.map +1 -0
  382. package/dist/types/index.js +2 -0
  383. package/dist/types/index.js.map +1 -0
  384. package/dist/utils/command-helpers.d.ts +14 -0
  385. package/dist/utils/command-helpers.d.ts.map +1 -0
  386. package/dist/utils/command-helpers.js +18 -0
  387. package/dist/utils/command-helpers.js.map +1 -0
  388. package/dist/utils/diff.d.ts +42 -0
  389. package/dist/utils/diff.d.ts.map +1 -0
  390. package/dist/utils/diff.js +80 -0
  391. package/dist/utils/diff.js.map +1 -0
  392. package/dist/utils/error.d.ts +5 -0
  393. package/dist/utils/error.d.ts.map +1 -0
  394. package/dist/utils/error.js +8 -0
  395. package/dist/utils/error.js.map +1 -0
  396. package/dist/utils/fs.d.ts +50 -0
  397. package/dist/utils/fs.d.ts.map +1 -0
  398. package/dist/utils/fs.js +117 -0
  399. package/dist/utils/fs.js.map +1 -0
  400. package/dist/utils/index.d.ts +9 -0
  401. package/dist/utils/index.d.ts.map +1 -0
  402. package/dist/utils/index.js +9 -0
  403. package/dist/utils/index.js.map +1 -0
  404. package/dist/utils/logger.d.ts +31 -0
  405. package/dist/utils/logger.d.ts.map +1 -0
  406. package/dist/utils/logger.js +62 -0
  407. package/dist/utils/logger.js.map +1 -0
  408. package/dist/utils/output-writer.d.ts +26 -0
  409. package/dist/utils/output-writer.d.ts.map +1 -0
  410. package/dist/utils/output-writer.js +62 -0
  411. package/dist/utils/output-writer.js.map +1 -0
  412. package/dist/utils/pom-parser.d.ts +94 -0
  413. package/dist/utils/pom-parser.d.ts.map +1 -0
  414. package/dist/utils/pom-parser.js +120 -0
  415. package/dist/utils/pom-parser.js.map +1 -0
  416. package/dist/utils/spinner.d.ts +35 -0
  417. package/dist/utils/spinner.d.ts.map +1 -0
  418. package/dist/utils/spinner.js +46 -0
  419. package/dist/utils/spinner.js.map +1 -0
  420. package/package.json +75 -0
@@ -0,0 +1,54 @@
1
+ import type { UpgradeManifest, ManifestLoadOptions } from './types.js';
2
+ /**
3
+ * Load a single manifest file from disk.
4
+ *
5
+ * @param filePath - Absolute path to the manifest file (YAML or JSON)
6
+ * @returns The parsed and validated upgrade manifest
7
+ * @throws Error if file doesn't exist, has an unsupported format, or fails validation
8
+ */
9
+ export declare function loadManifest(filePath: string): Promise<UpgradeManifest>;
10
+ /**
11
+ * Get list of available manifest versions from a source.
12
+ * Returns versions sorted in ascending semver order.
13
+ *
14
+ * @param options - Options specifying the manifest source (local, bundled, or url)
15
+ * @returns Array of available version strings in semver order
16
+ * @throws Error if required options are missing or source directory not found
17
+ */
18
+ export declare function getAvailableVersions(options: ManifestLoadOptions): Promise<string[]>;
19
+ /**
20
+ * Load all manifests needed for an upgrade from one version to another.
21
+ * Returns manifests in ascending version order (oldest first).
22
+ *
23
+ * @param fromVersion - The current version to upgrade from
24
+ * @param toVersion - The target version to upgrade to
25
+ * @param options - Manifest load options specifying the source
26
+ * @returns Array of upgrade manifests in version order
27
+ * @throws Error if versions are invalid, target not found, or downgrade attempted
28
+ */
29
+ export declare function loadManifestsForUpgrade(fromVersion: string, toVersion: string, options: ManifestLoadOptions): Promise<UpgradeManifest[]>;
30
+ /**
31
+ * Count total entries across all manifests.
32
+ *
33
+ * @param manifests - Array of upgrade manifests to count entries for
34
+ * @returns Total number of entries across all manifests
35
+ */
36
+ export declare function countManifestEntries(manifests: UpgradeManifest[]): number;
37
+ /**
38
+ * Load the unreleased manifest from a file path or the bundled default.
39
+ *
40
+ * @param filePath - Optional path to a custom unreleased manifest file.
41
+ * If omitted, loads the bundled `unreleased.yaml` from the manifests directory.
42
+ * @returns The parsed unreleased manifest, or a default empty manifest if the file does not exist
43
+ */
44
+ export declare function loadUnreleasedManifest(filePath?: string): Promise<UpgradeManifest>;
45
+ /**
46
+ * Save an upgrade manifest to a YAML file.
47
+ *
48
+ * Creates parent directories if they do not exist.
49
+ *
50
+ * @param filePath - Absolute path where the manifest should be written
51
+ * @param manifest - The upgrade manifest to serialize
52
+ */
53
+ export declare function saveManifest(filePath: string, manifest: UpgradeManifest): Promise<void>;
54
+ //# sourceMappingURL=manifest-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../../src/planning/manifest-loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAevE;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAmB7E;AAsBD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnB;AA0CD;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC,CA0D5B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAEzE;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAQxF;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7F"}
@@ -0,0 +1,233 @@
1
+ import { readFile, readdir, writeFile, mkdir } from 'node:fs/promises';
2
+ import { join, basename, extname, dirname } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import yaml from 'js-yaml';
5
+ import semver from 'semver';
6
+ import { validateManifest } from './manifest-schema.js';
7
+ import { pathExists } from '../utils/index.js';
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
10
+ /**
11
+ * Get the path to the bundled manifests directory.
12
+ * At runtime __dirname is dist/planning/, so we go up one level to dist/manifests/.
13
+ * The build step copies src/manifests/ into dist/manifests/.
14
+ */
15
+ function getManifestsDir() {
16
+ return join(__dirname, '..', 'manifests');
17
+ }
18
+ /**
19
+ * Load a single manifest file from disk.
20
+ *
21
+ * @param filePath - Absolute path to the manifest file (YAML or JSON)
22
+ * @returns The parsed and validated upgrade manifest
23
+ * @throws Error if file doesn't exist, has an unsupported format, or fails validation
24
+ */
25
+ export async function loadManifest(filePath) {
26
+ if (!(await pathExists(filePath))) {
27
+ throw new Error(`Manifest file not found: ${filePath}`);
28
+ }
29
+ const content = await readFile(filePath, 'utf-8');
30
+ const ext = extname(filePath).toLowerCase();
31
+ let manifest;
32
+ if (ext === '.yaml' || ext === '.yml') {
33
+ manifest = yaml.load(content);
34
+ }
35
+ else if (ext === '.json') {
36
+ manifest = JSON.parse(content);
37
+ }
38
+ else {
39
+ throw new Error(`Unsupported manifest format: ${ext}`);
40
+ }
41
+ validateManifest(manifest);
42
+ return manifest;
43
+ }
44
+ /**
45
+ * Extract valid semver version names from a list of filenames.
46
+ *
47
+ * @param files - Array of filenames to extract versions from
48
+ * @returns Array of valid semver version strings
49
+ */
50
+ function extractVersionsFromFiles(files) {
51
+ const versions = [];
52
+ for (const file of files) {
53
+ const ext = extname(file).toLowerCase();
54
+ if (ext === '.yaml' || ext === '.yml' || ext === '.json') {
55
+ const name = basename(file, ext);
56
+ if (semver.valid(name)) {
57
+ versions.push(name);
58
+ }
59
+ }
60
+ }
61
+ return versions;
62
+ }
63
+ /**
64
+ * Get list of available manifest versions from a source.
65
+ * Returns versions sorted in ascending semver order.
66
+ *
67
+ * @param options - Options specifying the manifest source (local, bundled, or url)
68
+ * @returns Array of available version strings in semver order
69
+ * @throws Error if required options are missing or source directory not found
70
+ */
71
+ export async function getAvailableVersions(options) {
72
+ let versions = [];
73
+ if (options.source === 'local') {
74
+ if (!options.localPath) {
75
+ throw new Error('localPath required for local manifest source');
76
+ }
77
+ if (!(await pathExists(options.localPath))) {
78
+ throw new Error(`Manifest directory not found: ${options.localPath}`);
79
+ }
80
+ const files = await readdir(options.localPath);
81
+ versions = extractVersionsFromFiles(files);
82
+ }
83
+ else if (options.source === 'bundled') {
84
+ const bundledPath = join(getManifestsDir(), 'released');
85
+ if (await pathExists(bundledPath)) {
86
+ const files = await readdir(bundledPath);
87
+ versions = extractVersionsFromFiles(files);
88
+ }
89
+ }
90
+ return versions.sort((a, b) => semver.compare(a, b));
91
+ }
92
+ /**
93
+ * Get the path to a manifest file for a specific version.
94
+ *
95
+ * @param version - The semver version string
96
+ * @param options - Manifest load options specifying the source
97
+ * @returns Absolute path to the manifest file
98
+ * @throws Error if required options are missing or source type is unsupported
99
+ */
100
+ /**
101
+ * Supported manifest file extensions, checked in priority order.
102
+ */
103
+ const MANIFEST_EXTENSIONS = ['.yaml', '.yml', '.json'];
104
+ /**
105
+ * Find the manifest file for a version by probing supported extensions.
106
+ * Falls back to `.yaml` if no file is found (so the caller gets a clear "not found" error).
107
+ */
108
+ async function resolveManifestFile(dir, version) {
109
+ for (const ext of MANIFEST_EXTENSIONS) {
110
+ const candidate = join(dir, `${version}${ext}`);
111
+ if (await pathExists(candidate)) {
112
+ return candidate;
113
+ }
114
+ }
115
+ return join(dir, `${version}.yaml`);
116
+ }
117
+ async function getManifestPath(version, options) {
118
+ if (options.source === 'local') {
119
+ if (!options.localPath) {
120
+ throw new Error('localPath required for local manifest source');
121
+ }
122
+ return resolveManifestFile(options.localPath, version);
123
+ }
124
+ else if (options.source === 'bundled') {
125
+ return resolveManifestFile(join(getManifestsDir(), 'released'), version);
126
+ }
127
+ else {
128
+ throw new Error(`Unsupported manifest source: ${String(options.source)}`);
129
+ }
130
+ }
131
+ /**
132
+ * Load all manifests needed for an upgrade from one version to another.
133
+ * Returns manifests in ascending version order (oldest first).
134
+ *
135
+ * @param fromVersion - The current version to upgrade from
136
+ * @param toVersion - The target version to upgrade to
137
+ * @param options - Manifest load options specifying the source
138
+ * @returns Array of upgrade manifests in version order
139
+ * @throws Error if versions are invalid, target not found, or downgrade attempted
140
+ */
141
+ export async function loadManifestsForUpgrade(fromVersion, toVersion, options) {
142
+ if (!semver.valid(fromVersion)) {
143
+ throw new Error(`Invalid source version: ${fromVersion}`);
144
+ }
145
+ if (!semver.valid(toVersion)) {
146
+ throw new Error(`Invalid target version: ${toVersion}`);
147
+ }
148
+ if (semver.eq(fromVersion, toVersion)) {
149
+ return [];
150
+ }
151
+ if (semver.gt(fromVersion, toVersion)) {
152
+ throw new Error(`Cannot downgrade from ${fromVersion} to ${toVersion}. Downgrades are not supported.`);
153
+ }
154
+ const availableVersions = await getAvailableVersions(options);
155
+ const upgradePathVersions = availableVersions.filter((v) => semver.gt(v, fromVersion) && semver.lte(v, toVersion));
156
+ if (!upgradePathVersions.includes(toVersion)) {
157
+ const hasAnyManifests = availableVersions.length > 0;
158
+ if (!hasAnyManifests) {
159
+ throw new Error(`No upgrade manifests found.\n\n` +
160
+ ` Manifests are distributed separately. To set them up:\n\n` +
161
+ ` brxm-upgrade setup-manifests\n\n` +
162
+ ` Or manually:\n` +
163
+ ` mvn dependency:copy \\\n` +
164
+ ` -Dartifact=com.bloomreach.xm:brxm-upgrade-manifests:RELEASE:zip \\\n` +
165
+ ` -DoutputDirectory=.brxm-upgrade/ \\\n` +
166
+ ` -Dtransitive=false -q\n` +
167
+ ` unzip .brxm-upgrade/brxm-upgrade-manifests-*.zip \\\n` +
168
+ ` -d .brxm-upgrade/manifests/\n\n` +
169
+ ` Then add to .brxmrc:\n` +
170
+ ` upgrade:\n` +
171
+ ` source: local\n` +
172
+ ` localPath: .brxm-upgrade/manifests`);
173
+ }
174
+ throw new Error(`Target version ${toVersion} not found in available manifests. ` +
175
+ `Available versions: ${availableVersions.join(', ')}`);
176
+ }
177
+ const manifests = [];
178
+ for (const version of upgradePathVersions) {
179
+ const manifestPath = await getManifestPath(version, options);
180
+ const manifest = await loadManifest(manifestPath);
181
+ manifests.push(manifest);
182
+ }
183
+ return manifests;
184
+ }
185
+ /**
186
+ * Count total entries across all manifests.
187
+ *
188
+ * @param manifests - Array of upgrade manifests to count entries for
189
+ * @returns Total number of entries across all manifests
190
+ */
191
+ export function countManifestEntries(manifests) {
192
+ return manifests.reduce((sum, m) => sum + m.entries.length, 0);
193
+ }
194
+ /**
195
+ * Load the unreleased manifest from a file path or the bundled default.
196
+ *
197
+ * @param filePath - Optional path to a custom unreleased manifest file.
198
+ * If omitted, loads the bundled `unreleased.yaml` from the manifests directory.
199
+ * @returns The parsed unreleased manifest, or a default empty manifest if the file does not exist
200
+ */
201
+ export async function loadUnreleasedManifest(filePath) {
202
+ const resolvedPath = filePath ?? join(getManifestsDir(), 'unreleased.yaml');
203
+ if (!(await pathExists(resolvedPath))) {
204
+ return { schema_version: '1.0', version: 'unreleased', entries: [] };
205
+ }
206
+ return loadManifest(resolvedPath);
207
+ }
208
+ /**
209
+ * Save an upgrade manifest to a YAML file.
210
+ *
211
+ * Creates parent directories if they do not exist.
212
+ *
213
+ * @param filePath - Absolute path where the manifest should be written
214
+ * @param manifest - The upgrade manifest to serialize
215
+ */
216
+ export async function saveManifest(filePath, manifest) {
217
+ try {
218
+ validateManifest(manifest);
219
+ }
220
+ catch (error) {
221
+ throw new Error(`Cannot save invalid manifest: ${error instanceof Error ? error.message : String(error)}`);
222
+ }
223
+ const dir = dirname(filePath);
224
+ await mkdir(dir, { recursive: true });
225
+ const content = yaml.dump(manifest, {
226
+ lineWidth: 120,
227
+ noRefs: true,
228
+ quotingType: '"',
229
+ forceQuotes: false,
230
+ });
231
+ await writeFile(filePath, content, 'utf-8');
232
+ }
233
+ //# sourceMappingURL=manifest-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-loader.js","sourceRoot":"","sources":["../../src/planning/manifest-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type ErrorObject } from 'ajv';
2
+ import type { UpgradeManifest } from './types.js';
3
+ /**
4
+ * Custom error class for manifest validation errors.
5
+ * Includes detailed error information from the JSON schema validation.
6
+ */
7
+ export declare class ManifestValidationError extends Error {
8
+ readonly errors: ErrorObject[] | null | undefined;
9
+ /**
10
+ * Creates a new ManifestValidationError.
11
+ * @param message - Human-readable error message
12
+ * @param errors - Array of validation errors from Ajv
13
+ */
14
+ constructor(message: string, errors: ErrorObject[] | null | undefined);
15
+ }
16
+ /**
17
+ * Validates a manifest object against the schema.
18
+ * Uses JSON Schema validation to ensure all required fields are present
19
+ * and values conform to expected types and constraints.
20
+ *
21
+ * @param manifest - The manifest object to validate
22
+ * @throws ManifestValidationError if validation fails
23
+ */
24
+ export declare function validateManifest(manifest: unknown): asserts manifest is UpgradeManifest;
25
+ /**
26
+ * Checks if a value is a valid manifest object.
27
+ * Non-throwing version of validateManifest for conditional checks.
28
+ *
29
+ * @param manifest - The value to check
30
+ * @returns True if the value is a valid UpgradeManifest, false otherwise
31
+ */
32
+ export declare function isValidManifest(manifest: unknown): manifest is UpgradeManifest;
33
+ /**
34
+ * Get detailed validation errors for a manifest.
35
+ * Returns an empty array if the manifest is valid.
36
+ *
37
+ * @param manifest - The manifest object to validate
38
+ * @returns Array of error message strings, empty if valid
39
+ */
40
+ export declare function getManifestValidationErrors(manifest: unknown): string[];
41
+ //# sourceMappingURL=manifest-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-schema.d.ts","sourceRoot":"","sources":["../../src/planning/manifest-schema.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,KAAK,WAAW,EAAyB,MAAM,KAAK,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYlD;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;aAQ9B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS;IAP1D;;;;OAIG;gBAED,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS;CAK3D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,eAAe,CAWvF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,eAAe,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CASvE"}
@@ -0,0 +1,71 @@
1
+ import AjvModule from 'ajv';
2
+ import { createRequire } from 'node:module';
3
+ // Handle both ESM default export and CommonJS compatibility
4
+ const Ajv = AjvModule.default ?? AjvModule;
5
+ // Load schema from bundled JSON file using createRequire for ESM compatibility
6
+ const esmRequire = createRequire(import.meta.url);
7
+ const manifestSchema = esmRequire('../manifests/schema.json');
8
+ const ajv = new Ajv({ allErrors: true, verbose: true });
9
+ const validate = ajv.compile(manifestSchema);
10
+ /**
11
+ * Custom error class for manifest validation errors.
12
+ * Includes detailed error information from the JSON schema validation.
13
+ */
14
+ export class ManifestValidationError extends Error {
15
+ errors;
16
+ /**
17
+ * Creates a new ManifestValidationError.
18
+ * @param message - Human-readable error message
19
+ * @param errors - Array of validation errors from Ajv
20
+ */
21
+ constructor(message, errors) {
22
+ super(message);
23
+ this.errors = errors;
24
+ this.name = 'ManifestValidationError';
25
+ }
26
+ }
27
+ /**
28
+ * Validates a manifest object against the schema.
29
+ * Uses JSON Schema validation to ensure all required fields are present
30
+ * and values conform to expected types and constraints.
31
+ *
32
+ * @param manifest - The manifest object to validate
33
+ * @throws ManifestValidationError if validation fails
34
+ */
35
+ export function validateManifest(manifest) {
36
+ const valid = validate(manifest);
37
+ if (!valid) {
38
+ const errorMessages = validate.errors
39
+ ?.map((e) => `${e.instancePath || 'manifest'} ${e.message ?? 'validation failed'}`)
40
+ .join('; ');
41
+ throw new ManifestValidationError(`Invalid manifest: ${errorMessages}`, validate.errors);
42
+ }
43
+ }
44
+ /**
45
+ * Checks if a value is a valid manifest object.
46
+ * Non-throwing version of validateManifest for conditional checks.
47
+ *
48
+ * @param manifest - The value to check
49
+ * @returns True if the value is a valid UpgradeManifest, false otherwise
50
+ */
51
+ export function isValidManifest(manifest) {
52
+ return validate(manifest);
53
+ }
54
+ /**
55
+ * Get detailed validation errors for a manifest.
56
+ * Returns an empty array if the manifest is valid.
57
+ *
58
+ * @param manifest - The manifest object to validate
59
+ * @returns Array of error message strings, empty if valid
60
+ */
61
+ export function getManifestValidationErrors(manifest) {
62
+ validate(manifest);
63
+ if (!validate.errors) {
64
+ return [];
65
+ }
66
+ return validate.errors.map((e) => {
67
+ const path = e.instancePath || 'manifest';
68
+ return `${path}: ${e.message ?? 'validation failed'}`;
69
+ });
70
+ }
71
+ //# sourceMappingURL=manifest-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-schema.js","sourceRoot":"","sources":["../../src/planning/manifest-schema.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsD,MAAM,KAAK,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,4DAA4D;AAC5D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC;AAE3C,+EAA+E;AAC/E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,cAAc,GAAG,UAAU,CAAC,0BAA0B,CAA4B,CAAC;AAEzF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAsC,GAAG,CAAC,OAAO,CAAkB,cAAc,CAAC,CAAC;AAEjG;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAQ9B;IAPlB;;;;OAIG;IACH,YACE,OAAe,EACC,MAAwC;QAExD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAAkC;QAGxD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;YACnC,EAAE,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;aAC/F,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,aAAa,EAAE,EACpC,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAiB;IAC3D,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC;QAC1C,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { VersionOverride } from '../discovery/types.js';
2
+ import type { OverrideClassification } from './types.js';
3
+ /**
4
+ * Classify customer version overrides against the target version's managed properties.
5
+ *
6
+ * @param overrides - Version overrides detected in the customer's project
7
+ * @param managedProperties - Properties managed by the target brXM parent POM
8
+ * @param targetVersion - The target brXM version (for display in messages)
9
+ * @returns Classified overrides with category and recommended action
10
+ */
11
+ export declare function classifyOverrides(overrides: VersionOverride[], managedProperties: Record<string, string>, targetVersion: string): OverrideClassification[];
12
+ //# sourceMappingURL=override-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override-analyzer.d.ts","sourceRoot":"","sources":["../../src/planning/override-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,eAAe,EAAE,EAC5B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,aAAa,EAAE,MAAM,GACpB,sBAAsB,EAAE,CAoC1B"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Classify customer version overrides against the target version's managed properties.
3
+ *
4
+ * @param overrides - Version overrides detected in the customer's project
5
+ * @param managedProperties - Properties managed by the target brXM parent POM
6
+ * @param targetVersion - The target brXM version (for display in messages)
7
+ * @returns Classified overrides with category and recommended action
8
+ */
9
+ export function classifyOverrides(overrides, managedProperties, targetVersion) {
10
+ return overrides.map((override) => {
11
+ const managedVersion = managedProperties[override.property];
12
+ if (managedVersion === undefined) {
13
+ return {
14
+ property: override.property,
15
+ customerVersion: override.version,
16
+ file: override.file,
17
+ category: 'unmanaged',
18
+ action: `Keep — not managed by brXM ${targetVersion}`,
19
+ };
20
+ }
21
+ if (override.version === managedVersion) {
22
+ return {
23
+ property: override.property,
24
+ customerVersion: override.version,
25
+ managedVersion,
26
+ file: override.file,
27
+ category: 'redundant',
28
+ action: `Remove — redundant, brXM ${targetVersion} manages the same value`,
29
+ };
30
+ }
31
+ return {
32
+ property: override.property,
33
+ customerVersion: override.version,
34
+ managedVersion,
35
+ file: override.file,
36
+ category: 'conflict',
37
+ action: `Remove — conflicts with brXM ${targetVersion} managed value ${managedVersion}. ` +
38
+ `If this override was added intentionally (e.g. as a hotfix), verify the fix is included in ${targetVersion} before removing.`,
39
+ };
40
+ });
41
+ }
42
+ //# sourceMappingURL=override-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override-analyzer.js","sourceRoot":"","sources":["../../src/planning/override-analyzer.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAA4B,EAC5B,iBAAyC,EACzC,aAAqB;IAErB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChC,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,eAAe,EAAE,QAAQ,CAAC,OAAO;gBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,WAAoB;gBAC9B,MAAM,EAAE,8BAA8B,aAAa,EAAE;aACtD,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACxC,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,eAAe,EAAE,QAAQ,CAAC,OAAO;gBACjC,cAAc;gBACd,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,WAAoB;gBAC9B,MAAM,EAAE,4BAA4B,aAAa,yBAAyB;aAC3E,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,eAAe,EAAE,QAAQ,CAAC,OAAO;YACjC,cAAc;YACd,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,UAAmB;YAC7B,MAAM,EACJ,gCAAgC,aAAa,kBAAkB,cAAc,IAAI;gBACjF,8FAA8F,aAAa,mBAAmB;SACjI,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { EntryMatch, UpgradePlan, OverrideClassification } from './types.js';
2
+ /**
3
+ * Topologically sort matches by their dependencies.
4
+ * Uses Kahn's algorithm for topological sorting.
5
+ * Deduplicates entries by ID before sorting.
6
+ */
7
+ export declare function orderStepsByDependency(matches: EntryMatch[]): EntryMatch[];
8
+ /**
9
+ * Generate a complete upgrade plan from matched entries.
10
+ */
11
+ export declare function generatePlan(matches: EntryMatch[], fromVersion: string, toVersion: string, upgradePathVersions: string[], discoveryFile: string, options?: {
12
+ includeNonApplicable?: boolean;
13
+ overrideClassifications?: OverrideClassification[];
14
+ }): UpgradePlan;
15
+ //# sourceMappingURL=plan-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-generator.d.ts","sourceRoot":"","sources":["../../src/planning/plan-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAGV,WAAW,EACX,sBAAsB,EACvB,MAAM,YAAY,CAAC;AA6BpB;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAkF1E;AA0DD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,UAAU,EAAE,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAAC,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAA;CAAE,GAC/F,WAAW,CA2Gb"}