@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,117 @@
1
+ import { readFile, writeFile, access, mkdir, copyFile as fsCopyFile, rm } from 'node:fs/promises';
2
+ import { readFileSync } from 'node:fs';
3
+ import { dirname, resolve, join } from 'node:path';
4
+ import { glob } from 'glob';
5
+ /**
6
+ * Check if a file or directory exists.
7
+ */
8
+ export async function pathExists(path) {
9
+ try {
10
+ await access(path);
11
+ return true;
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ }
17
+ /**
18
+ * Read a file as UTF-8 text.
19
+ */
20
+ export async function readTextFile(path) {
21
+ return readFile(path, 'utf-8');
22
+ }
23
+ /**
24
+ * Write text content to a file, creating parent directories if needed.
25
+ */
26
+ export async function writeTextFile(path, content) {
27
+ const dir = dirname(path);
28
+ if (!(await pathExists(dir))) {
29
+ await mkdir(dir, { recursive: true });
30
+ }
31
+ await writeFile(path, content, 'utf-8');
32
+ }
33
+ /**
34
+ * Default directories excluded from file searches to avoid scanning
35
+ * build output, dependencies, and version control internals.
36
+ */
37
+ const DEFAULT_IGNORE = [
38
+ '**/node_modules/**',
39
+ '**/target/**',
40
+ '**/.git/**',
41
+ '**/dist/**',
42
+ '**/build/**',
43
+ '**/.brxm-upgrade/**',
44
+ '**/configuration-verifier-output/**',
45
+ ];
46
+ /**
47
+ * Find files matching a glob pattern.
48
+ *
49
+ * @param pattern - Glob pattern to match
50
+ * @param cwd - Base directory to search from
51
+ * @param ignore - Additional patterns to exclude (merged with defaults)
52
+ */
53
+ export async function findFiles(pattern, cwd, ignore) {
54
+ return glob(pattern, {
55
+ cwd: cwd ?? process.cwd(),
56
+ absolute: true,
57
+ nodir: true,
58
+ ignore: ignore ? [...DEFAULT_IGNORE, ...ignore] : DEFAULT_IGNORE,
59
+ });
60
+ }
61
+ /**
62
+ * Resolve a path relative to the current working directory.
63
+ */
64
+ export function resolvePath(...paths) {
65
+ return resolve(process.cwd(), ...paths);
66
+ }
67
+ /**
68
+ * Join path segments.
69
+ */
70
+ export function joinPaths(...paths) {
71
+ return join(...paths);
72
+ }
73
+ /**
74
+ * Get the output directory for brxm-upgrade files.
75
+ */
76
+ export function getOutputDir(basePath) {
77
+ return basePath
78
+ ? resolve(basePath, '.brxm-upgrade')
79
+ : resolvePath('.brxm-upgrade');
80
+ }
81
+ /**
82
+ * Ensure a directory exists, creating it and parents if needed.
83
+ */
84
+ export async function ensureDir(dirPath) {
85
+ await mkdir(dirPath, { recursive: true });
86
+ }
87
+ /**
88
+ * Copy a file from source to destination.
89
+ */
90
+ export async function copyFile(src, dest) {
91
+ await fsCopyFile(src, dest);
92
+ }
93
+ /**
94
+ * Remove a file or directory recursively.
95
+ */
96
+ export async function removeDir(path) {
97
+ await rm(path, { recursive: true, force: true });
98
+ }
99
+ /**
100
+ * Parse a JSON file with runtime validation.
101
+ * Provides descriptive errors for malformed JSON and invalid data shapes.
102
+ */
103
+ export function parseJsonFile(filePath, validate) {
104
+ const content = readFileSync(filePath, 'utf-8');
105
+ let parsed;
106
+ try {
107
+ parsed = JSON.parse(content);
108
+ }
109
+ catch {
110
+ throw new Error(`Invalid JSON in ${filePath}`);
111
+ }
112
+ if (!validate(parsed)) {
113
+ throw new Error(`Invalid data structure in ${filePath}`);
114
+ }
115
+ return parsed;
116
+ }
117
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { createLogger, logger, type Logger, type LoggerOptions } from './logger.js';
2
+ export { createSpinner, type Spinner, type SpinnerOptions } from './spinner.js';
3
+ export { pathExists, readTextFile, writeTextFile, findFiles, resolvePath, joinPaths, getOutputDir, ensureDir, copyFile, removeDir, parseJsonFile, } from './fs.js';
4
+ export { parsePom, extractVersion, extractModules, extractProperties, extractDependencies, extractManagedDependencies, hasBrxmParent, type ParsedPom, type PomDependency, type PomVersionInfo, } from './pom-parser.js';
5
+ export { generateDiff, formatDiffForTerminal, summarizeDiffs, type DiffResult, } from './diff.js';
6
+ export { OutputWriter, type OutputWriterOptions } from './output-writer.js';
7
+ export { getParentConfig } from './command-helpers.js';
8
+ export { sanitizeError } from './error.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,EACb,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { createLogger, logger } from './logger.js';
2
+ export { createSpinner } from './spinner.js';
3
+ export { pathExists, readTextFile, writeTextFile, findFiles, resolvePath, joinPaths, getOutputDir, ensureDir, copyFile, removeDir, parseJsonFile, } from './fs.js';
4
+ export { parsePom, extractVersion, extractModules, extractProperties, extractDependencies, extractManagedDependencies, hasBrxmParent, } from './pom-parser.js';
5
+ export { generateDiff, formatDiffForTerminal, summarizeDiffs, } from './diff.js';
6
+ export { OutputWriter } from './output-writer.js';
7
+ export { getParentConfig } from './command-helpers.js';
8
+ export { sanitizeError } from './error.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAmC,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,aAAa,EAAqC,MAAM,cAAc,CAAC;AAChF,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,GAId,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,cAAc,GAEf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAA4B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Options for creating a logger instance.
3
+ */
4
+ export interface LoggerOptions {
5
+ /** Enable verbose/debug output */
6
+ verbose?: boolean;
7
+ /** Enable colored output */
8
+ color?: boolean;
9
+ /** Prefix for all log messages */
10
+ prefix?: string;
11
+ }
12
+ /**
13
+ * Logger interface for consistent logging throughout the CLI.
14
+ */
15
+ export interface Logger {
16
+ debug: (message: string, ...args: unknown[]) => void;
17
+ info: (message: string, ...args: unknown[]) => void;
18
+ warn: (message: string, ...args: unknown[]) => void;
19
+ error: (message: string, ...args: unknown[]) => void;
20
+ success: (message: string, ...args: unknown[]) => void;
21
+ }
22
+ /**
23
+ * Creates a new logger instance with the specified options.
24
+ *
25
+ * @param options - Configuration options for the logger
26
+ * @returns A Logger instance with debug, info, warn, error, and success methods
27
+ */
28
+ export declare function createLogger(options?: LoggerOptions): Logger;
29
+ /** Default logger instance */
30
+ export declare const logger: Logger;
31
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACxD;AAUD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAgDhE;AAED,8BAA8B;AAC9B,eAAO,MAAM,MAAM,QAAiB,CAAC"}
@@ -0,0 +1,62 @@
1
+ import chalk from 'chalk';
2
+ const LOG_SYMBOLS = {
3
+ debug: '[DEBUG]',
4
+ info: '[INFO]',
5
+ warn: '[WARN]',
6
+ error: '[ERROR]',
7
+ success: '[OK]',
8
+ };
9
+ /**
10
+ * Creates a new logger instance with the specified options.
11
+ *
12
+ * @param options - Configuration options for the logger
13
+ * @returns A Logger instance with debug, info, warn, error, and success methods
14
+ */
15
+ export function createLogger(options = {}) {
16
+ const { verbose = false, color = true, prefix = '' } = options;
17
+ const formatMessage = (level, message) => {
18
+ const symbol = LOG_SYMBOLS[level];
19
+ const prefixStr = prefix ? `[${prefix}] ` : '';
20
+ if (!color) {
21
+ return `${symbol} ${prefixStr}${message}`;
22
+ }
23
+ switch (level) {
24
+ case 'debug':
25
+ return chalk.gray(`${symbol} ${prefixStr}${message}`);
26
+ case 'info':
27
+ return chalk.blue(`${symbol} ${prefixStr}${message}`);
28
+ case 'warn':
29
+ return chalk.yellow(`${symbol} ${prefixStr}${message}`);
30
+ case 'error':
31
+ return chalk.red(`${symbol} ${prefixStr}${message}`);
32
+ case 'success':
33
+ return chalk.green(`${symbol} ${prefixStr}${message}`);
34
+ default:
35
+ return `${symbol} ${prefixStr}${message}`;
36
+ }
37
+ };
38
+ /* eslint-disable no-console */
39
+ return {
40
+ debug: (message, ...args) => {
41
+ if (verbose) {
42
+ console.debug(formatMessage('debug', message), ...args);
43
+ }
44
+ },
45
+ info: (message, ...args) => {
46
+ console.log(formatMessage('info', message), ...args);
47
+ },
48
+ warn: (message, ...args) => {
49
+ console.warn(formatMessage('warn', message), ...args);
50
+ },
51
+ error: (message, ...args) => {
52
+ console.error(formatMessage('error', message), ...args);
53
+ },
54
+ success: (message, ...args) => {
55
+ console.log(formatMessage('success', message), ...args);
56
+ },
57
+ };
58
+ /* eslint-enable no-console */
59
+ }
60
+ /** Default logger instance */
61
+ export const logger = createLogger();
62
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface OutputWriterOptions {
2
+ color: boolean;
3
+ verbose: boolean;
4
+ }
5
+ /**
6
+ * Structured output utility for CLI display.
7
+ * Centralises all console.log calls so they can be styled via the color flag.
8
+ */
9
+ export declare class OutputWriter {
10
+ private readonly options;
11
+ constructor(options: OutputWriterOptions);
12
+ private c;
13
+ header(text: string): void;
14
+ section(title: string): void;
15
+ table(rows: Record<string, string>[]): void;
16
+ list(items: string[], bullet?: string): void;
17
+ keyValue(key: string, value: string): void;
18
+ blank(): void;
19
+ text(message: string): void;
20
+ success(message: string): void;
21
+ warning(message: string): void;
22
+ error(message: string): void;
23
+ separator(char?: string, length?: number): void;
24
+ dim(message: string): void;
25
+ }
26
+ //# sourceMappingURL=output-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-writer.d.ts","sourceRoot":"","sources":["../../src/utils/output-writer.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAElC,OAAO,EAAE,mBAAmB;IAIxC,OAAO,CAAC,CAAC;IAIT,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5B,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI;IAa3C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAM,GAAG,IAAI;IAMzC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1C,KAAK,IAAI,IAAI;IAIb,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,SAAS,CAAC,IAAI,SAAM,EAAE,MAAM,SAAK,GAAG,IAAI;IAIxC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG3B"}
@@ -0,0 +1,62 @@
1
+ /* eslint-disable no-console */
2
+ import chalk from 'chalk';
3
+ /**
4
+ * Structured output utility for CLI display.
5
+ * Centralises all console.log calls so they can be styled via the color flag.
6
+ */
7
+ export class OutputWriter {
8
+ options;
9
+ constructor(options) {
10
+ this.options = options;
11
+ }
12
+ c(fn, text) {
13
+ return this.options.color ? fn(text) : text;
14
+ }
15
+ header(text) {
16
+ console.log(this.c(chalk.bold, text));
17
+ }
18
+ section(title) {
19
+ console.log(this.c(chalk.underline, title));
20
+ }
21
+ table(rows) {
22
+ if (rows.length === 0)
23
+ return;
24
+ const keys = Object.keys(rows[0]);
25
+ const widths = keys.map((k) => Math.max(k.length, ...rows.map((r) => (r[k] ?? '').length)));
26
+ const header = keys.map((k, i) => k.padEnd(widths[i])).join(' ');
27
+ console.log(this.c(chalk.bold, header));
28
+ for (const row of rows) {
29
+ console.log(keys.map((k, i) => (row[k] ?? '').padEnd(widths[i])).join(' '));
30
+ }
31
+ }
32
+ list(items, bullet = '-') {
33
+ for (const item of items) {
34
+ console.log(` ${bullet} ${item}`);
35
+ }
36
+ }
37
+ keyValue(key, value) {
38
+ console.log(`${this.c(chalk.cyan, key + ':')} ${value}`);
39
+ }
40
+ blank() {
41
+ console.log('');
42
+ }
43
+ text(message) {
44
+ console.log(message);
45
+ }
46
+ success(message) {
47
+ console.log(this.c(chalk.green, `✓ ${message}`));
48
+ }
49
+ warning(message) {
50
+ console.log(this.c(chalk.yellow, `⚠ ${message}`));
51
+ }
52
+ error(message) {
53
+ console.log(this.c(chalk.red, `✗ ${message}`));
54
+ }
55
+ separator(char = '━', length = 60) {
56
+ console.log(this.c(chalk.bold, char.repeat(length)));
57
+ }
58
+ dim(message) {
59
+ console.log(this.c(chalk.dim, message));
60
+ }
61
+ }
62
+ //# sourceMappingURL=output-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-writer.js","sourceRoot":"","sources":["../../src/utils/output-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Parsed POM structure.
3
+ */
4
+ export interface ParsedPom {
5
+ project: {
6
+ modelVersion?: string;
7
+ groupId?: string;
8
+ artifactId?: string;
9
+ version?: string;
10
+ packaging?: string;
11
+ parent?: {
12
+ groupId?: string;
13
+ artifactId?: string;
14
+ version?: string;
15
+ };
16
+ properties?: Record<string, string>;
17
+ modules?: {
18
+ module?: string | string[];
19
+ };
20
+ profiles?: {
21
+ profile?: PomProfile | PomProfile[];
22
+ };
23
+ dependencies?: {
24
+ dependency?: PomDependency | PomDependency[];
25
+ };
26
+ dependencyManagement?: {
27
+ dependencies?: {
28
+ dependency?: PomDependency | PomDependency[];
29
+ };
30
+ };
31
+ };
32
+ }
33
+ /**
34
+ * A Maven build profile, which may declare additional modules.
35
+ */
36
+ export interface PomProfile {
37
+ id?: string;
38
+ modules?: {
39
+ module?: string | string[];
40
+ };
41
+ }
42
+ /**
43
+ * Maven dependency definition.
44
+ */
45
+ export interface PomDependency {
46
+ groupId: string;
47
+ artifactId: string;
48
+ version?: string;
49
+ scope?: string;
50
+ type?: string;
51
+ }
52
+ /**
53
+ * Extracted version information from a POM.
54
+ */
55
+ export interface PomVersionInfo {
56
+ project?: string;
57
+ parent?: string;
58
+ parentGroupId?: string;
59
+ parentArtifactId?: string;
60
+ }
61
+ /**
62
+ * Parse a POM XML string into a structured object.
63
+ * @throws Error if XML is invalid
64
+ */
65
+ export declare function parsePom(xml: string): ParsedPom;
66
+ /**
67
+ * Extract version information from a parsed POM.
68
+ */
69
+ export declare function extractVersion(pom: ParsedPom): PomVersionInfo;
70
+ /**
71
+ * Extract module list from a parsed POM.
72
+ *
73
+ * Collects modules declared both at the top level and inside any
74
+ * {@code <profiles>} blocks (profile-gated modules). Duplicates are
75
+ * removed so each module path appears only once.
76
+ */
77
+ export declare function extractModules(pom: ParsedPom): string[];
78
+ /**
79
+ * Extract properties from a parsed POM.
80
+ */
81
+ export declare function extractProperties(pom: ParsedPom): Record<string, string>;
82
+ /**
83
+ * Extract dependencies from a parsed POM.
84
+ */
85
+ export declare function extractDependencies(pom: ParsedPom): PomDependency[];
86
+ /**
87
+ * Extract managed dependencies from a parsed POM.
88
+ */
89
+ export declare function extractManagedDependencies(pom: ParsedPom): PomDependency[];
90
+ /**
91
+ * Check if a POM has a brXM parent.
92
+ */
93
+ export declare function hasBrxmParent(pom: ParsedPom): boolean;
94
+ //# sourceMappingURL=pom-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pom-parser.d.ts","sourceRoot":"","sources":["../../src/utils/pom-parser.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE;QACP,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;SAC5B,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;SACrC,CAAC;QACF,YAAY,CAAC,EAAE;YACb,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;SAC9C,CAAC;QACF,oBAAoB,CAAC,EAAE;YACrB,YAAY,CAAC,EAAE;gBACb,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;aAC9C,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC5B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAWD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAY/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,cAAc,CAO7D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE,CAoBvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,aAAa,EAAE,CAMnE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,SAAS,GAAG,aAAa,EAAE,CAM1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAqBrD"}
@@ -0,0 +1,120 @@
1
+ import { XMLParser } from 'fast-xml-parser';
2
+ const parser = new XMLParser({
3
+ ignoreAttributes: false,
4
+ attributeNamePrefix: '@_',
5
+ isArray: (name) => {
6
+ // Force these elements to always be arrays for consistent handling
7
+ return ['module', 'dependency', 'profile'].includes(name);
8
+ },
9
+ });
10
+ /**
11
+ * Parse a POM XML string into a structured object.
12
+ * @throws Error if XML is invalid
13
+ */
14
+ export function parsePom(xml) {
15
+ try {
16
+ const result = parser.parse(xml);
17
+ if (!result.project) {
18
+ throw new Error('Invalid POM: missing <project> element');
19
+ }
20
+ return result;
21
+ }
22
+ catch (error) {
23
+ throw new Error(`Failed to parse POM XML: ${error instanceof Error ? error.message : 'Unknown error'}`);
24
+ }
25
+ }
26
+ /**
27
+ * Extract version information from a parsed POM.
28
+ */
29
+ export function extractVersion(pom) {
30
+ return {
31
+ project: pom.project.version != null ? String(pom.project.version) : undefined,
32
+ parent: pom.project.parent?.version != null ? String(pom.project.parent.version) : undefined,
33
+ parentGroupId: pom.project.parent?.groupId,
34
+ parentArtifactId: pom.project.parent?.artifactId,
35
+ };
36
+ }
37
+ /**
38
+ * Extract module list from a parsed POM.
39
+ *
40
+ * Collects modules declared both at the top level and inside any
41
+ * {@code <profiles>} blocks (profile-gated modules). Duplicates are
42
+ * removed so each module path appears only once.
43
+ */
44
+ export function extractModules(pom) {
45
+ const seen = new Set();
46
+ const add = (raw) => {
47
+ if (!raw)
48
+ return;
49
+ for (const m of Array.isArray(raw) ? raw : [raw]) {
50
+ seen.add(m);
51
+ }
52
+ };
53
+ add(pom.project.modules?.module);
54
+ const profiles = pom.project.profiles?.profile;
55
+ if (profiles) {
56
+ for (const profile of Array.isArray(profiles) ? profiles : [profiles]) {
57
+ add(profile.modules?.module);
58
+ }
59
+ }
60
+ return Array.from(seen);
61
+ }
62
+ /**
63
+ * Extract properties from a parsed POM.
64
+ */
65
+ export function extractProperties(pom) {
66
+ const props = pom.project.properties;
67
+ if (!props) {
68
+ return {};
69
+ }
70
+ // Convert all values to strings since fast-xml-parser may parse numbers
71
+ const result = {};
72
+ for (const [key, value] of Object.entries(props)) {
73
+ if (value != null && typeof value !== 'object') {
74
+ result[key] = String(value);
75
+ }
76
+ }
77
+ return result;
78
+ }
79
+ /**
80
+ * Extract dependencies from a parsed POM.
81
+ */
82
+ export function extractDependencies(pom) {
83
+ const deps = pom.project.dependencies?.dependency;
84
+ if (!deps) {
85
+ return [];
86
+ }
87
+ return Array.isArray(deps) ? deps : [deps];
88
+ }
89
+ /**
90
+ * Extract managed dependencies from a parsed POM.
91
+ */
92
+ export function extractManagedDependencies(pom) {
93
+ const deps = pom.project.dependencyManagement?.dependencies?.dependency;
94
+ if (!deps) {
95
+ return [];
96
+ }
97
+ return Array.isArray(deps) ? deps : [deps];
98
+ }
99
+ /**
100
+ * Check if a POM has a brXM parent.
101
+ */
102
+ export function hasBrxmParent(pom) {
103
+ const parentGroupId = pom.project.parent?.groupId;
104
+ const parentArtifactId = pom.project.parent?.artifactId;
105
+ if (!parentGroupId || !parentArtifactId) {
106
+ return false;
107
+ }
108
+ // Check for known brXM parent POMs (community and enterprise variants)
109
+ const brxmGroupIds = new Set([
110
+ 'com.bloomreach.xm',
111
+ 'com.onehippo.cms7',
112
+ 'org.onehippo.cms7',
113
+ ]);
114
+ const brxmArtifactIds = new Set([
115
+ 'hippo-cms7-release',
116
+ 'hippo-cms7-enterprise-release',
117
+ ]);
118
+ return brxmGroupIds.has(parentGroupId) && brxmArtifactIds.has(parentArtifactId);
119
+ }
120
+ //# sourceMappingURL=pom-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pom-parser.js","sourceRoot":"","sources":["../../src/utils/pom-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Options for creating a spinner.
3
+ */
4
+ export interface SpinnerOptions {
5
+ /** Text to display while spinning */
6
+ text?: string;
7
+ /** Spinner style */
8
+ spinner?: 'dots' | 'line' | 'arc';
9
+ /** Color of the spinner */
10
+ color?: 'blue' | 'green' | 'yellow' | 'red' | 'cyan';
11
+ }
12
+ /**
13
+ * Wrapper around ora spinner for consistent progress indication.
14
+ */
15
+ export interface Spinner {
16
+ /** Start the spinner */
17
+ start: (text?: string) => Spinner;
18
+ /** Stop with success */
19
+ succeed: (text?: string) => Spinner;
20
+ /** Stop with failure */
21
+ fail: (text?: string) => Spinner;
22
+ /** Stop with warning */
23
+ warn: (text?: string) => Spinner;
24
+ /** Stop with info */
25
+ info: (text?: string) => Spinner;
26
+ /** Update spinner text */
27
+ text: (text: string) => Spinner;
28
+ /** Stop the spinner */
29
+ stop: () => Spinner;
30
+ }
31
+ /**
32
+ * Creates a new spinner instance.
33
+ */
34
+ export declare function createSpinner(options?: SpinnerOptions): Spinner;
35
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAClC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,wBAAwB;IACxB,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,wBAAwB;IACxB,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,wBAAwB;IACxB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,wBAAwB;IACxB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,qBAAqB;IACrB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,0BAA0B;IAC1B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAChC,uBAAuB;IACvB,IAAI,EAAE,MAAM,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CA0CnE"}