@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.
- package/README.md +217 -0
- package/dist/ai/index.d.ts +3 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +2 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/providers.d.ts +27 -0
- package/dist/ai/providers.d.ts.map +1 -0
- package/dist/ai/providers.js +105 -0
- package/dist/ai/providers.js.map +1 -0
- package/dist/ai/types.d.ts +47 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/capture/change-scanner.d.ts +20 -0
- package/dist/capture/change-scanner.d.ts.map +1 -0
- package/dist/capture/change-scanner.js +71 -0
- package/dist/capture/change-scanner.js.map +1 -0
- package/dist/capture/conflict-resolver.d.ts +21 -0
- package/dist/capture/conflict-resolver.d.ts.map +1 -0
- package/dist/capture/conflict-resolver.js +45 -0
- package/dist/capture/conflict-resolver.js.map +1 -0
- package/dist/capture/critique-types.d.ts +60 -0
- package/dist/capture/critique-types.d.ts.map +1 -0
- package/dist/capture/critique-types.js +2 -0
- package/dist/capture/critique-types.js.map +1 -0
- package/dist/capture/entry-critique.d.ts +30 -0
- package/dist/capture/entry-critique.d.ts.map +1 -0
- package/dist/capture/entry-critique.js +137 -0
- package/dist/capture/entry-critique.js.map +1 -0
- package/dist/capture/entry-generator.d.ts +32 -0
- package/dist/capture/entry-generator.d.ts.map +1 -0
- package/dist/capture/entry-generator.js +209 -0
- package/dist/capture/entry-generator.js.map +1 -0
- package/dist/capture/entry-qa.d.ts +28 -0
- package/dist/capture/entry-qa.d.ts.map +1 -0
- package/dist/capture/entry-qa.js +84 -0
- package/dist/capture/entry-qa.js.map +1 -0
- package/dist/capture/entry-regeneration.d.ts +29 -0
- package/dist/capture/entry-regeneration.d.ts.map +1 -0
- package/dist/capture/entry-regeneration.js +164 -0
- package/dist/capture/entry-regeneration.js.map +1 -0
- package/dist/capture/entry-validator.d.ts +18 -0
- package/dist/capture/entry-validator.d.ts.map +1 -0
- package/dist/capture/entry-validator.js +47 -0
- package/dist/capture/entry-validator.js.map +1 -0
- package/dist/capture/heuristics.d.ts +30 -0
- package/dist/capture/heuristics.d.ts.map +1 -0
- package/dist/capture/heuristics.js +223 -0
- package/dist/capture/heuristics.js.map +1 -0
- package/dist/capture/index.d.ts +7 -0
- package/dist/capture/index.d.ts.map +1 -0
- package/dist/capture/index.js +11 -0
- package/dist/capture/index.js.map +1 -0
- package/dist/capture/quality-report.d.ts +19 -0
- package/dist/capture/quality-report.d.ts.map +1 -0
- package/dist/capture/quality-report.js +161 -0
- package/dist/capture/quality-report.js.map +1 -0
- package/dist/capture/review-flow.d.ts +37 -0
- package/dist/capture/review-flow.d.ts.map +1 -0
- package/dist/capture/review-flow.js +212 -0
- package/dist/capture/review-flow.js.map +1 -0
- package/dist/capture/types.d.ts +114 -0
- package/dist/capture/types.d.ts.map +1 -0
- package/dist/capture/types.js +2 -0
- package/dist/capture/types.js.map +1 -0
- package/dist/commands/discover.d.ts +6 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +147 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/execute.d.ts +12 -0
- package/dist/commands/execute.d.ts.map +1 -0
- package/dist/commands/execute.js +113 -0
- package/dist/commands/execute.js.map +1 -0
- package/dist/commands/export.d.ts +26 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +291 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/finalize.d.ts +12 -0
- package/dist/commands/finalize.d.ts.map +1 -0
- package/dist/commands/finalize.js +225 -0
- package/dist/commands/finalize.js.map +1 -0
- package/dist/commands/guide.d.ts +12 -0
- package/dist/commands/guide.d.ts.map +1 -0
- package/dist/commands/guide.js +28 -0
- package/dist/commands/guide.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +22 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/log-change.d.ts +14 -0
- package/dist/commands/log-change.d.ts.map +1 -0
- package/dist/commands/log-change.js +243 -0
- package/dist/commands/log-change.js.map +1 -0
- package/dist/commands/plan.d.ts +12 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +162 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/review-manifest.d.ts +39 -0
- package/dist/commands/review-manifest.d.ts.map +1 -0
- package/dist/commands/review-manifest.js +178 -0
- package/dist/commands/review-manifest.js.map +1 -0
- package/dist/commands/setup-manifests.d.ts +12 -0
- package/dist/commands/setup-manifests.d.ts.map +1 -0
- package/dist/commands/setup-manifests.js +229 -0
- package/dist/commands/setup-manifests.js.map +1 -0
- package/dist/config/defaults.d.ts +15 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +36 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +17 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +104 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/schema.d.ts +33 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +110 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +16 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/phase-manager.d.ts +53 -0
- package/dist/core/phase-manager.d.ts.map +1 -0
- package/dist/core/phase-manager.js +124 -0
- package/dist/core/phase-manager.js.map +1 -0
- package/dist/core/upgrade-state.d.ts +24 -0
- package/dist/core/upgrade-state.d.ts.map +1 -0
- package/dist/core/upgrade-state.js +32 -0
- package/dist/core/upgrade-state.js.map +1 -0
- package/dist/discovery/index.d.ts +5 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +4 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/orchestrator.d.ts +46 -0
- package/dist/discovery/orchestrator.d.ts.map +1 -0
- package/dist/discovery/orchestrator.js +124 -0
- package/dist/discovery/orchestrator.js.map +1 -0
- package/dist/discovery/scanners/config-detector.d.ts +24 -0
- package/dist/discovery/scanners/config-detector.d.ts.map +1 -0
- package/dist/discovery/scanners/config-detector.js +82 -0
- package/dist/discovery/scanners/config-detector.js.map +1 -0
- package/dist/discovery/scanners/cv-scanner.d.ts +30 -0
- package/dist/discovery/scanners/cv-scanner.d.ts.map +1 -0
- package/dist/discovery/scanners/cv-scanner.js +85 -0
- package/dist/discovery/scanners/cv-scanner.js.map +1 -0
- package/dist/discovery/scanners/index.d.ts +6 -0
- package/dist/discovery/scanners/index.d.ts.map +1 -0
- package/dist/discovery/scanners/index.js +6 -0
- package/dist/discovery/scanners/index.js.map +1 -0
- package/dist/discovery/scanners/maven-scanner.d.ts +33 -0
- package/dist/discovery/scanners/maven-scanner.d.ts.map +1 -0
- package/dist/discovery/scanners/maven-scanner.js +96 -0
- package/dist/discovery/scanners/maven-scanner.js.map +1 -0
- package/dist/discovery/scanners/repo-scanner.d.ts +9 -0
- package/dist/discovery/scanners/repo-scanner.d.ts.map +1 -0
- package/dist/discovery/scanners/repo-scanner.js +80 -0
- package/dist/discovery/scanners/repo-scanner.js.map +1 -0
- package/dist/discovery/scanners/version-resolver.d.ts +45 -0
- package/dist/discovery/scanners/version-resolver.d.ts.map +1 -0
- package/dist/discovery/scanners/version-resolver.js +119 -0
- package/dist/discovery/scanners/version-resolver.js.map +1 -0
- package/dist/discovery/types.d.ts +156 -0
- package/dist/discovery/types.d.ts.map +1 -0
- package/dist/discovery/types.js +2 -0
- package/dist/discovery/types.js.map +1 -0
- package/dist/discovery/validators/index.d.ts +2 -0
- package/dist/discovery/validators/index.d.ts.map +1 -0
- package/dist/discovery/validators/index.js +2 -0
- package/dist/discovery/validators/index.js.map +1 -0
- package/dist/discovery/validators/upgrade-validator.d.ts +34 -0
- package/dist/discovery/validators/upgrade-validator.d.ts.map +1 -0
- package/dist/discovery/validators/upgrade-validator.js +135 -0
- package/dist/discovery/validators/upgrade-validator.js.map +1 -0
- package/dist/docs/docs-client.d.ts +44 -0
- package/dist/docs/docs-client.d.ts.map +1 -0
- package/dist/docs/docs-client.js +161 -0
- package/dist/docs/docs-client.js.map +1 -0
- package/dist/docs/docs-context.d.ts +23 -0
- package/dist/docs/docs-context.d.ts.map +1 -0
- package/dist/docs/docs-context.js +41 -0
- package/dist/docs/docs-context.js.map +1 -0
- package/dist/docs/index.d.ts +4 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +3 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/types.d.ts +27 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/types.js +2 -0
- package/dist/docs/types.js.map +1 -0
- package/dist/execution/diff-presenter.d.ts +52 -0
- package/dist/execution/diff-presenter.d.ts.map +1 -0
- package/dist/execution/diff-presenter.js +148 -0
- package/dist/execution/diff-presenter.js.map +1 -0
- package/dist/execution/executors/ai-assisted.d.ts +28 -0
- package/dist/execution/executors/ai-assisted.d.ts.map +1 -0
- package/dist/execution/executors/ai-assisted.js +226 -0
- package/dist/execution/executors/ai-assisted.js.map +1 -0
- package/dist/execution/executors/automated.d.ts +15 -0
- package/dist/execution/executors/automated.d.ts.map +1 -0
- package/dist/execution/executors/automated.js +37 -0
- package/dist/execution/executors/automated.js.map +1 -0
- package/dist/execution/executors/cv-gate.d.ts +23 -0
- package/dist/execution/executors/cv-gate.d.ts.map +1 -0
- package/dist/execution/executors/cv-gate.js +63 -0
- package/dist/execution/executors/cv-gate.js.map +1 -0
- package/dist/execution/executors/index.d.ts +7 -0
- package/dist/execution/executors/index.d.ts.map +1 -0
- package/dist/execution/executors/index.js +7 -0
- package/dist/execution/executors/index.js.map +1 -0
- package/dist/execution/executors/manual.d.ts +18 -0
- package/dist/execution/executors/manual.d.ts.map +1 -0
- package/dist/execution/executors/manual.js +31 -0
- package/dist/execution/executors/manual.js.map +1 -0
- package/dist/execution/executors/override-resolution.d.ts +27 -0
- package/dist/execution/executors/override-resolution.d.ts.map +1 -0
- package/dist/execution/executors/override-resolution.js +79 -0
- package/dist/execution/executors/override-resolution.js.map +1 -0
- package/dist/execution/executors/version-bump.d.ts +20 -0
- package/dist/execution/executors/version-bump.d.ts.map +1 -0
- package/dist/execution/executors/version-bump.js +65 -0
- package/dist/execution/executors/version-bump.js.map +1 -0
- package/dist/execution/file-transformer.d.ts +25 -0
- package/dist/execution/file-transformer.d.ts.map +1 -0
- package/dist/execution/file-transformer.js +74 -0
- package/dist/execution/file-transformer.js.map +1 -0
- package/dist/execution/index.d.ts +7 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +9 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/state-manager.d.ts +27 -0
- package/dist/execution/state-manager.d.ts.map +1 -0
- package/dist/execution/state-manager.js +48 -0
- package/dist/execution/state-manager.js.map +1 -0
- package/dist/execution/step-executor.d.ts +68 -0
- package/dist/execution/step-executor.d.ts.map +1 -0
- package/dist/execution/step-executor.js +243 -0
- package/dist/execution/step-executor.js.map +1 -0
- package/dist/execution/types.d.ts +92 -0
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/execution/types.js +2 -0
- package/dist/execution/types.js.map +1 -0
- package/dist/guide/GuideRunner.d.ts +62 -0
- package/dist/guide/GuideRunner.d.ts.map +1 -0
- package/dist/guide/GuideRunner.js +390 -0
- package/dist/guide/GuideRunner.js.map +1 -0
- package/dist/guide/chat/ChatContextBuilder.d.ts +44 -0
- package/dist/guide/chat/ChatContextBuilder.d.ts.map +1 -0
- package/dist/guide/chat/ChatContextBuilder.js +121 -0
- package/dist/guide/chat/ChatContextBuilder.js.map +1 -0
- package/dist/guide/chat/ChatLoop.d.ts +18 -0
- package/dist/guide/chat/ChatLoop.d.ts.map +1 -0
- package/dist/guide/chat/ChatLoop.js +59 -0
- package/dist/guide/chat/ChatLoop.js.map +1 -0
- package/dist/guide/chat/StepCoach.d.ts +22 -0
- package/dist/guide/chat/StepCoach.d.ts.map +1 -0
- package/dist/guide/chat/StepCoach.js +39 -0
- package/dist/guide/chat/StepCoach.js.map +1 -0
- package/dist/guide/chat/index.d.ts +4 -0
- package/dist/guide/chat/index.d.ts.map +1 -0
- package/dist/guide/chat/index.js +4 -0
- package/dist/guide/chat/index.js.map +1 -0
- package/dist/guide/index.d.ts +3 -0
- package/dist/guide/index.d.ts.map +1 -0
- package/dist/guide/index.js +2 -0
- package/dist/guide/index.js.map +1 -0
- package/dist/guide/phases/DiscoveryPhase.d.ts +30 -0
- package/dist/guide/phases/DiscoveryPhase.d.ts.map +1 -0
- package/dist/guide/phases/DiscoveryPhase.js +238 -0
- package/dist/guide/phases/DiscoveryPhase.js.map +1 -0
- package/dist/guide/phases/ExecutionPhase.d.ts +80 -0
- package/dist/guide/phases/ExecutionPhase.d.ts.map +1 -0
- package/dist/guide/phases/ExecutionPhase.js +574 -0
- package/dist/guide/phases/ExecutionPhase.js.map +1 -0
- package/dist/guide/phases/PlanPhase.d.ts +22 -0
- package/dist/guide/phases/PlanPhase.d.ts.map +1 -0
- package/dist/guide/phases/PlanPhase.js +200 -0
- package/dist/guide/phases/PlanPhase.js.map +1 -0
- package/dist/guide/phases/index.d.ts +4 -0
- package/dist/guide/phases/index.d.ts.map +1 -0
- package/dist/guide/phases/index.js +4 -0
- package/dist/guide/phases/index.js.map +1 -0
- package/dist/guide/rendering/formatters.d.ts +126 -0
- package/dist/guide/rendering/formatters.d.ts.map +1 -0
- package/dist/guide/rendering/formatters.js +340 -0
- package/dist/guide/rendering/formatters.js.map +1 -0
- package/dist/guide/rendering/index.d.ts +2 -0
- package/dist/guide/rendering/index.d.ts.map +1 -0
- package/dist/guide/rendering/index.js +2 -0
- package/dist/guide/rendering/index.js.map +1 -0
- package/dist/guide/rendering/platform-changes.d.ts +18 -0
- package/dist/guide/rendering/platform-changes.d.ts.map +1 -0
- package/dist/guide/rendering/platform-changes.js +86 -0
- package/dist/guide/rendering/platform-changes.js.map +1 -0
- package/dist/guide/types.d.ts +100 -0
- package/dist/guide/types.d.ts.map +1 -0
- package/dist/guide/types.js +2 -0
- package/dist/guide/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +138 -0
- package/dist/index.js.map +1 -0
- package/dist/manifests/maven-settings.d.ts +7 -0
- package/dist/manifests/maven-settings.d.ts.map +1 -0
- package/dist/manifests/maven-settings.js +33 -0
- package/dist/manifests/maven-settings.js.map +1 -0
- package/dist/manifests/parent-properties.d.ts +12 -0
- package/dist/manifests/parent-properties.d.ts.map +1 -0
- package/dist/manifests/parent-properties.js +28 -0
- package/dist/manifests/parent-properties.js.map +1 -0
- package/dist/manifests/schema.json +198 -0
- package/dist/manifests/unreleased.yaml +3 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +13 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/resources/index.d.ts +32 -0
- package/dist/mcp/resources/index.d.ts.map +1 -0
- package/dist/mcp/resources/index.js +55 -0
- package/dist/mcp/resources/index.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +162 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/complete-step.d.ts +26 -0
- package/dist/mcp/tools/complete-step.d.ts.map +1 -0
- package/dist/mcp/tools/complete-step.js +73 -0
- package/dist/mcp/tools/complete-step.js.map +1 -0
- package/dist/mcp/tools/create-upgrade-plan.d.ts +36 -0
- package/dist/mcp/tools/create-upgrade-plan.d.ts.map +1 -0
- package/dist/mcp/tools/create-upgrade-plan.js +143 -0
- package/dist/mcp/tools/create-upgrade-plan.js.map +1 -0
- package/dist/mcp/tools/discover-project.d.ts +33 -0
- package/dist/mcp/tools/discover-project.d.ts.map +1 -0
- package/dist/mcp/tools/discover-project.js +96 -0
- package/dist/mcp/tools/discover-project.js.map +1 -0
- package/dist/mcp/tools/get-next-step.d.ts +54 -0
- package/dist/mcp/tools/get-next-step.d.ts.map +1 -0
- package/dist/mcp/tools/get-next-step.js +110 -0
- package/dist/mcp/tools/get-next-step.js.map +1 -0
- package/dist/mcp/tools/get-upgrade-status.d.ts +25 -0
- package/dist/mcp/tools/get-upgrade-status.d.ts.map +1 -0
- package/dist/mcp/tools/get-upgrade-status.js +79 -0
- package/dist/mcp/tools/get-upgrade-status.js.map +1 -0
- package/dist/mcp/tools/upgrade-targets.d.ts +19 -0
- package/dist/mcp/tools/upgrade-targets.d.ts.map +1 -0
- package/dist/mcp/tools/upgrade-targets.js +132 -0
- package/dist/mcp/tools/upgrade-targets.js.map +1 -0
- package/dist/planning/ai-analyzer.d.ts +20 -0
- package/dist/planning/ai-analyzer.d.ts.map +1 -0
- package/dist/planning/ai-analyzer.js +97 -0
- package/dist/planning/ai-analyzer.js.map +1 -0
- package/dist/planning/index.d.ts +8 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +13 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/manifest-loader.d.ts +54 -0
- package/dist/planning/manifest-loader.d.ts.map +1 -0
- package/dist/planning/manifest-loader.js +233 -0
- package/dist/planning/manifest-loader.js.map +1 -0
- package/dist/planning/manifest-schema.d.ts +41 -0
- package/dist/planning/manifest-schema.d.ts.map +1 -0
- package/dist/planning/manifest-schema.js +71 -0
- package/dist/planning/manifest-schema.js.map +1 -0
- package/dist/planning/override-analyzer.d.ts +12 -0
- package/dist/planning/override-analyzer.d.ts.map +1 -0
- package/dist/planning/override-analyzer.js +42 -0
- package/dist/planning/override-analyzer.js.map +1 -0
- package/dist/planning/plan-generator.d.ts +15 -0
- package/dist/planning/plan-generator.d.ts.map +1 -0
- package/dist/planning/plan-generator.js +250 -0
- package/dist/planning/plan-generator.js.map +1 -0
- package/dist/planning/project-matcher.d.ts +65 -0
- package/dist/planning/project-matcher.d.ts.map +1 -0
- package/dist/planning/project-matcher.js +265 -0
- package/dist/planning/project-matcher.js.map +1 -0
- package/dist/planning/types.d.ts +237 -0
- package/dist/planning/types.d.ts.map +1 -0
- package/dist/planning/types.js +2 -0
- package/dist/planning/types.js.map +1 -0
- package/dist/types/index.d.ts +90 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/command-helpers.d.ts +14 -0
- package/dist/utils/command-helpers.d.ts.map +1 -0
- package/dist/utils/command-helpers.js +18 -0
- package/dist/utils/command-helpers.js.map +1 -0
- package/dist/utils/diff.d.ts +42 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +80 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/error.d.ts +5 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +8 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/fs.d.ts +50 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +117 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +31 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +62 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/output-writer.d.ts +26 -0
- package/dist/utils/output-writer.d.ts.map +1 -0
- package/dist/utils/output-writer.js +62 -0
- package/dist/utils/output-writer.js.map +1 -0
- package/dist/utils/pom-parser.d.ts +94 -0
- package/dist/utils/pom-parser.d.ts.map +1 -0
- package/dist/utils/pom-parser.js +120 -0
- package/dist/utils/pom-parser.js.map +1 -0
- package/dist/utils/spinner.d.ts +35 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +46 -0
- package/dist/utils/spinner.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maven-scanner.js","sourceRoot":"","sources":["../../../src/discovery/scanners/maven-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ScannerResult, RepoConfig } from '../types.js';
|
|
2
|
+
export declare class RepoScanner {
|
|
3
|
+
scan(projectRoot: string): Promise<ScannerResult<RepoConfig>>;
|
|
4
|
+
private findGroovyScripts;
|
|
5
|
+
private isBootstrapFileName;
|
|
6
|
+
private isBootstrapScript;
|
|
7
|
+
private findBootstrapFiles;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=repo-scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-scanner.d.ts","sourceRoot":"","sources":["../../../src/discovery/scanners/repo-scanner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAU3E,qBAAa,WAAW;IAChB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YA6BrD,iBAAiB;IAyB/B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;YAOX,kBAAkB;CAUjC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { basename } from 'node:path';
|
|
2
|
+
import { findFiles, readTextFile } from '../../utils/fs.js';
|
|
3
|
+
const BOOTSTRAP_INDICATORS = [
|
|
4
|
+
/extends\s+BaseNodeUpdateVisitor/,
|
|
5
|
+
/import\s+org\.onehippo\.repository\.update/,
|
|
6
|
+
/import\s+org\.hippoecm\.repository\.util/,
|
|
7
|
+
/extends\s+.*Bootstrap/i,
|
|
8
|
+
/class\s+.*Bootstrap/i,
|
|
9
|
+
];
|
|
10
|
+
export class RepoScanner {
|
|
11
|
+
async scan(projectRoot) {
|
|
12
|
+
const startTime = Date.now();
|
|
13
|
+
try {
|
|
14
|
+
const [groovyScripts, bootstrapPaths] = await Promise.all([
|
|
15
|
+
this.findGroovyScripts(projectRoot),
|
|
16
|
+
this.findBootstrapFiles(projectRoot),
|
|
17
|
+
]);
|
|
18
|
+
return {
|
|
19
|
+
scanner: 'RepoScanner',
|
|
20
|
+
success: true,
|
|
21
|
+
data: {
|
|
22
|
+
groovyScripts,
|
|
23
|
+
hasBootstrap: bootstrapPaths.length > 0 || groovyScripts.some((s) => s.isBootstrap),
|
|
24
|
+
bootstrapPaths,
|
|
25
|
+
},
|
|
26
|
+
duration: Date.now() - startTime,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return {
|
|
31
|
+
scanner: 'RepoScanner',
|
|
32
|
+
success: false,
|
|
33
|
+
error: `Failed to scan repository: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
34
|
+
duration: Date.now() - startTime,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async findGroovyScripts(projectRoot) {
|
|
39
|
+
const scripts = [];
|
|
40
|
+
const groovyFiles = await findFiles('**/*.groovy', projectRoot);
|
|
41
|
+
for (const filePath of groovyFiles) {
|
|
42
|
+
try {
|
|
43
|
+
const content = await readTextFile(filePath);
|
|
44
|
+
const isBootstrap = this.isBootstrapScript(content, filePath);
|
|
45
|
+
scripts.push({
|
|
46
|
+
path: filePath,
|
|
47
|
+
name: basename(filePath, '.groovy'),
|
|
48
|
+
isBootstrap,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
scripts.push({
|
|
53
|
+
path: filePath,
|
|
54
|
+
name: basename(filePath, '.groovy') || 'unknown',
|
|
55
|
+
isBootstrap: this.isBootstrapFileName(filePath),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return scripts;
|
|
60
|
+
}
|
|
61
|
+
isBootstrapFileName(filePath) {
|
|
62
|
+
return basename(filePath).toLowerCase().includes('bootstrap');
|
|
63
|
+
}
|
|
64
|
+
isBootstrapScript(content, filePath) {
|
|
65
|
+
if (this.isBootstrapFileName(filePath)) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
return BOOTSTRAP_INDICATORS.some((pattern) => pattern.test(content));
|
|
69
|
+
}
|
|
70
|
+
async findBootstrapFiles(projectRoot) {
|
|
71
|
+
const [yamlFiles, ymlFiles, contentYaml, contentYml] = await Promise.all([
|
|
72
|
+
findFiles('**/hcm-config/**/*.yaml', projectRoot),
|
|
73
|
+
findFiles('**/hcm-config/**/*.yml', projectRoot),
|
|
74
|
+
findFiles('**/hcm-content/**/*.yaml', projectRoot),
|
|
75
|
+
findFiles('**/hcm-content/**/*.yml', projectRoot),
|
|
76
|
+
]);
|
|
77
|
+
return [...new Set([...yamlFiles, ...ymlFiles, ...contentYaml, ...contentYml])];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=repo-scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-scanner.js","sourceRoot":"","sources":["../../../src/discovery/scanners/repo-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,oBAAoB,GAAG;IAC3B,iCAAiC;IACjC,4CAA4C;IAC5C,0CAA0C;IAC1C,wBAAwB;IACxB,sBAAsB;CACvB,CAAC;AAEF,MAAM,OAAO,WAAW;IACtB,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxD,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACnC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;aACrC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,aAAa;oBACb,YAAY,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;oBACnF,cAAc;iBACf;gBACD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;gBAC/F,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACjD,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEhE,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;oBACnC,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,SAAS;oBAChD,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,mBAAmB,CAAC,QAAgB;QAC1C,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAEO,iBAAiB,CAAC,OAAe,EAAE,QAAgB;QACzD,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAClD,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACvE,SAAS,CAAC,yBAAyB,EAAE,WAAW,CAAC;YACjD,SAAS,CAAC,wBAAwB,EAAE,WAAW,CAAC;YAChD,SAAS,CAAC,0BAA0B,EAAE,WAAW,CAAC;YAClD,SAAS,CAAC,yBAAyB,EAAE,WAAW,CAAC;SAClD,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ScannerResult, VersionOverride } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Version information extracted from a brXM project's root POM.
|
|
4
|
+
*/
|
|
5
|
+
export interface VersionInfo {
|
|
6
|
+
/** brXM platform version from the parent POM */
|
|
7
|
+
brxmVersion: string;
|
|
8
|
+
/** Parent POM group ID (e.g., com.bloomreach.xm, com.onehippo.cms7) */
|
|
9
|
+
parentGroupId: string;
|
|
10
|
+
/** Parent POM artifact ID (e.g., hippo-cms7-release) */
|
|
11
|
+
parentArtifactId: string;
|
|
12
|
+
/** Project's own version (e.g., 1.0.0-SNAPSHOT) */
|
|
13
|
+
projectVersion?: string;
|
|
14
|
+
/** Version property overrides that differ from the parent POM defaults */
|
|
15
|
+
overrides: VersionOverride[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Scanner that resolves the brXM platform version from a project's root POM.
|
|
19
|
+
*
|
|
20
|
+
* This is the first scanner in the discovery pipeline. It reads the root pom.xml,
|
|
21
|
+
* verifies it has a brXM parent POM, extracts the platform version, and detects
|
|
22
|
+
* any version property overrides that may complicate upgrades.
|
|
23
|
+
*/
|
|
24
|
+
export declare class VersionResolver {
|
|
25
|
+
/**
|
|
26
|
+
* Scan the project root for brXM version information.
|
|
27
|
+
*
|
|
28
|
+
* @param projectRoot - Absolute path to the project root directory
|
|
29
|
+
* @returns Scanner result containing version info or an error
|
|
30
|
+
*/
|
|
31
|
+
scan(projectRoot: string): Promise<ScannerResult<VersionInfo>>;
|
|
32
|
+
/**
|
|
33
|
+
* Detect version property overrides in the POM properties.
|
|
34
|
+
*
|
|
35
|
+
* brXM parent POMs define default versions for all platform components.
|
|
36
|
+
* When a project overrides these in its own properties section, it can
|
|
37
|
+
* create version mismatches that complicate upgrades.
|
|
38
|
+
*/
|
|
39
|
+
private detectOverrides;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a Maven property name matches a known brXM version override pattern.
|
|
42
|
+
*/
|
|
43
|
+
private isVersionOverride;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=version-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-resolver.d.ts","sourceRoot":"","sources":["../../../src/discovery/scanners/version-resolver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAcD;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B;;;;;OAKG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IA0EpE;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { pathExists, readTextFile, joinPaths } from '../../utils/fs.js';
|
|
2
|
+
import { parsePom, extractVersion, extractProperties, hasBrxmParent, } from '../../utils/pom-parser.js';
|
|
3
|
+
/**
|
|
4
|
+
* Patterns that identify brXM version override properties.
|
|
5
|
+
* These are Maven properties that override default versions
|
|
6
|
+
* managed by the brXM parent POM.
|
|
7
|
+
*/
|
|
8
|
+
const VERSION_OVERRIDE_PATTERNS = [
|
|
9
|
+
/^hippo\..+\.version$/,
|
|
10
|
+
/^xm\..+\.version$/,
|
|
11
|
+
/^bloomreach\..+\.version$/,
|
|
12
|
+
/^onehippo\..+\.version$/,
|
|
13
|
+
];
|
|
14
|
+
/**
|
|
15
|
+
* Scanner that resolves the brXM platform version from a project's root POM.
|
|
16
|
+
*
|
|
17
|
+
* This is the first scanner in the discovery pipeline. It reads the root pom.xml,
|
|
18
|
+
* verifies it has a brXM parent POM, extracts the platform version, and detects
|
|
19
|
+
* any version property overrides that may complicate upgrades.
|
|
20
|
+
*/
|
|
21
|
+
export class VersionResolver {
|
|
22
|
+
/**
|
|
23
|
+
* Scan the project root for brXM version information.
|
|
24
|
+
*
|
|
25
|
+
* @param projectRoot - Absolute path to the project root directory
|
|
26
|
+
* @returns Scanner result containing version info or an error
|
|
27
|
+
*/
|
|
28
|
+
async scan(projectRoot) {
|
|
29
|
+
const startTime = Date.now();
|
|
30
|
+
const pomPath = joinPaths(projectRoot, 'pom.xml');
|
|
31
|
+
try {
|
|
32
|
+
if (!(await pathExists(pomPath))) {
|
|
33
|
+
return {
|
|
34
|
+
scanner: 'VersionResolver',
|
|
35
|
+
success: false,
|
|
36
|
+
error: `No pom.xml found at project root: ${pomPath}`,
|
|
37
|
+
duration: Date.now() - startTime,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const pomContent = await readTextFile(pomPath);
|
|
41
|
+
const pom = parsePom(pomContent);
|
|
42
|
+
if (!hasBrxmParent(pom)) {
|
|
43
|
+
return {
|
|
44
|
+
scanner: 'VersionResolver',
|
|
45
|
+
success: false,
|
|
46
|
+
error: 'Project does not have a brXM parent POM. This tool only supports brXM projects.',
|
|
47
|
+
duration: Date.now() - startTime,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const versionInfo = extractVersion(pom);
|
|
51
|
+
if (!versionInfo.parent) {
|
|
52
|
+
return {
|
|
53
|
+
scanner: 'VersionResolver',
|
|
54
|
+
success: false,
|
|
55
|
+
error: 'Could not determine brXM version from parent POM.',
|
|
56
|
+
duration: Date.now() - startTime,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const properties = extractProperties(pom);
|
|
60
|
+
const overrides = this.detectOverrides(properties, pomPath);
|
|
61
|
+
if (!versionInfo.parentGroupId || !versionInfo.parentArtifactId) {
|
|
62
|
+
return {
|
|
63
|
+
scanner: 'VersionResolver',
|
|
64
|
+
success: false,
|
|
65
|
+
error: 'Could not determine parent POM coordinates.',
|
|
66
|
+
duration: Date.now() - startTime,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const data = {
|
|
70
|
+
brxmVersion: versionInfo.parent,
|
|
71
|
+
parentGroupId: versionInfo.parentGroupId,
|
|
72
|
+
parentArtifactId: versionInfo.parentArtifactId,
|
|
73
|
+
projectVersion: versionInfo.project,
|
|
74
|
+
overrides,
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
scanner: 'VersionResolver',
|
|
78
|
+
success: true,
|
|
79
|
+
data,
|
|
80
|
+
duration: Date.now() - startTime,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return {
|
|
85
|
+
scanner: 'VersionResolver',
|
|
86
|
+
success: false,
|
|
87
|
+
error: `Failed to scan version: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
88
|
+
duration: Date.now() - startTime,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Detect version property overrides in the POM properties.
|
|
94
|
+
*
|
|
95
|
+
* brXM parent POMs define default versions for all platform components.
|
|
96
|
+
* When a project overrides these in its own properties section, it can
|
|
97
|
+
* create version mismatches that complicate upgrades.
|
|
98
|
+
*/
|
|
99
|
+
detectOverrides(properties, filePath) {
|
|
100
|
+
const overrides = [];
|
|
101
|
+
for (const [key, value] of Object.entries(properties)) {
|
|
102
|
+
if (this.isVersionOverride(key)) {
|
|
103
|
+
overrides.push({
|
|
104
|
+
property: key,
|
|
105
|
+
version: value,
|
|
106
|
+
file: filePath,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return overrides;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Check if a Maven property name matches a known brXM version override pattern.
|
|
114
|
+
*/
|
|
115
|
+
isVersionOverride(propertyName) {
|
|
116
|
+
return VERSION_OVERRIDE_PATTERNS.some((pattern) => pattern.test(propertyName));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=version-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-resolver.js","sourceRoot":"","sources":["../../../src/discovery/scanners/version-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Severity levels for validation results.
|
|
3
|
+
*/
|
|
4
|
+
export type ValidationSeverity = 'error' | 'warning' | 'info';
|
|
5
|
+
/**
|
|
6
|
+
* A validation issue found during discovery.
|
|
7
|
+
*/
|
|
8
|
+
export interface ValidationIssue {
|
|
9
|
+
/** Unique identifier for the issue type */
|
|
10
|
+
code: string;
|
|
11
|
+
/** Human-readable message */
|
|
12
|
+
message: string;
|
|
13
|
+
/** Severity level */
|
|
14
|
+
severity: ValidationSeverity;
|
|
15
|
+
/** File path where the issue was found (if applicable) */
|
|
16
|
+
file?: string;
|
|
17
|
+
/** Additional context or details */
|
|
18
|
+
details?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Information about a detected version override.
|
|
22
|
+
*/
|
|
23
|
+
export interface VersionOverride {
|
|
24
|
+
/** Property name (e.g., hippo.repository.version) */
|
|
25
|
+
property: string;
|
|
26
|
+
/** Overridden version value */
|
|
27
|
+
version: string;
|
|
28
|
+
/** File where the override was found */
|
|
29
|
+
file: string;
|
|
30
|
+
/** Line number in the file */
|
|
31
|
+
line?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Information about a Maven module.
|
|
35
|
+
*/
|
|
36
|
+
export interface MavenModule {
|
|
37
|
+
/** Module name/path relative to root */
|
|
38
|
+
name: string;
|
|
39
|
+
/** Module artifact ID */
|
|
40
|
+
artifactId: string;
|
|
41
|
+
/** Module group ID (may be inherited) */
|
|
42
|
+
groupId?: string;
|
|
43
|
+
/** Module version (may be inherited) */
|
|
44
|
+
version?: string;
|
|
45
|
+
/** Module packaging type */
|
|
46
|
+
packaging: string;
|
|
47
|
+
/** Absolute path to the module directory */
|
|
48
|
+
path: string;
|
|
49
|
+
/** Path to the module's pom.xml */
|
|
50
|
+
pomPath: string;
|
|
51
|
+
/** Number of Java source files */
|
|
52
|
+
javaFileCount?: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Information about a Configuration Verifier report.
|
|
56
|
+
*/
|
|
57
|
+
export interface CVReport {
|
|
58
|
+
/** Path to the CV report file */
|
|
59
|
+
path: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Information about a Groovy updater script.
|
|
63
|
+
*/
|
|
64
|
+
export interface GroovyScript {
|
|
65
|
+
/** Path to the script file */
|
|
66
|
+
path: string;
|
|
67
|
+
/** Script name */
|
|
68
|
+
name: string;
|
|
69
|
+
/** Whether the script appears to be a bootstrap script */
|
|
70
|
+
isBootstrap: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Build configuration detected in the project.
|
|
74
|
+
*/
|
|
75
|
+
export interface BuildConfig {
|
|
76
|
+
/** brXM parent version from root POM */
|
|
77
|
+
brxmVersion: string;
|
|
78
|
+
/** Parent POM group ID */
|
|
79
|
+
parentGroupId: string;
|
|
80
|
+
/** Parent POM artifact ID */
|
|
81
|
+
parentArtifactId: string;
|
|
82
|
+
/** List of Maven modules */
|
|
83
|
+
modules: MavenModule[];
|
|
84
|
+
/** Total number of modules */
|
|
85
|
+
moduleCount: number;
|
|
86
|
+
/** Detected version overrides */
|
|
87
|
+
overrides: VersionOverride[];
|
|
88
|
+
/** Java source file count across all modules */
|
|
89
|
+
totalJavaFiles: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Repository configuration detected in the project.
|
|
93
|
+
*/
|
|
94
|
+
export interface RepoConfig {
|
|
95
|
+
/** Groovy updater scripts found */
|
|
96
|
+
groovyScripts: GroovyScript[];
|
|
97
|
+
/** Whether bootstrap content was detected */
|
|
98
|
+
hasBootstrap: boolean;
|
|
99
|
+
/** Paths to bootstrap YAML files */
|
|
100
|
+
bootstrapPaths: string[];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Configuration artifacts detected in the project.
|
|
104
|
+
*/
|
|
105
|
+
export interface ConfigArtifacts {
|
|
106
|
+
/** Configuration Verifier reports found */
|
|
107
|
+
cvReports: CVReport[];
|
|
108
|
+
/** Well-known configuration files found */
|
|
109
|
+
configFiles: string[];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Complete project context from discovery.
|
|
113
|
+
*/
|
|
114
|
+
export interface ProjectContext {
|
|
115
|
+
/** Discovery timestamp */
|
|
116
|
+
discoveredAt: string;
|
|
117
|
+
/** Project root directory */
|
|
118
|
+
projectRoot: string;
|
|
119
|
+
/** Build configuration */
|
|
120
|
+
build: BuildConfig;
|
|
121
|
+
/** Repository configuration */
|
|
122
|
+
repo: RepoConfig;
|
|
123
|
+
/** Configuration artifacts */
|
|
124
|
+
config: ConfigArtifacts;
|
|
125
|
+
/** Validation issues found */
|
|
126
|
+
validations: ValidationIssue[];
|
|
127
|
+
/** Whether the project is ready for upgrade */
|
|
128
|
+
isUpgradeReady: boolean;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Options for running discovery.
|
|
132
|
+
*/
|
|
133
|
+
export interface DiscoveryOptions {
|
|
134
|
+
/** Project root directory (defaults to cwd) */
|
|
135
|
+
projectRoot?: string;
|
|
136
|
+
/** Enable verbose output */
|
|
137
|
+
verbose?: boolean;
|
|
138
|
+
/** Skip validation checks */
|
|
139
|
+
skipValidation?: boolean;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Result of a single scanner.
|
|
143
|
+
*/
|
|
144
|
+
export interface ScannerResult<T> {
|
|
145
|
+
/** Scanner name */
|
|
146
|
+
scanner: string;
|
|
147
|
+
/** Whether the scan succeeded */
|
|
148
|
+
success: boolean;
|
|
149
|
+
/** Scan result data */
|
|
150
|
+
data?: T;
|
|
151
|
+
/** Error message if scan failed */
|
|
152
|
+
error?: string;
|
|
153
|
+
/** Duration in milliseconds */
|
|
154
|
+
duration: number;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/discovery/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/discovery/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ValidationIssue, BuildConfig, RepoConfig, ConfigArtifacts } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validates project readiness for a brXM version upgrade.
|
|
4
|
+
*
|
|
5
|
+
* Checks build configuration, repository settings, and configuration artifacts
|
|
6
|
+
* for potential issues that could block or complicate an upgrade.
|
|
7
|
+
*/
|
|
8
|
+
export declare class UpgradeValidator {
|
|
9
|
+
/**
|
|
10
|
+
* Run all validation checks against the discovered project configuration.
|
|
11
|
+
*
|
|
12
|
+
* @param build - Build configuration from Maven scanner
|
|
13
|
+
* @param repo - Repository configuration from repo scanner
|
|
14
|
+
* @param config - Configuration artifacts from config detector
|
|
15
|
+
* @returns Array of validation issues found
|
|
16
|
+
*/
|
|
17
|
+
validate(build: BuildConfig, repo: RepoConfig, config: ConfigArtifacts): ValidationIssue[];
|
|
18
|
+
/**
|
|
19
|
+
* Determine whether the project is ready for upgrade based on validation issues.
|
|
20
|
+
*
|
|
21
|
+
* A project is considered ready if there are no error-severity issues.
|
|
22
|
+
* Warnings and info-level issues do not block the upgrade.
|
|
23
|
+
*
|
|
24
|
+
* @param issues - Validation issues from {@link validate}
|
|
25
|
+
* @returns true if no error-severity issues exist
|
|
26
|
+
*/
|
|
27
|
+
isUpgradeReady(issues: ValidationIssue[]): boolean;
|
|
28
|
+
private validateOverrides;
|
|
29
|
+
private validateCVReports;
|
|
30
|
+
private validateGroovyScripts;
|
|
31
|
+
private validateProjectSize;
|
|
32
|
+
private validateBootstrap;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=upgrade-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-validator.d.ts","sourceRoot":"","sources":["../../../src/discovery/validators/upgrade-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI7F;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B;;;;;;;OAOG;IACH,QAAQ,CACN,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,eAAe,GACtB,eAAe,EAAE;IAYpB;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO;IAIlD,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,qBAAqB;IAuC7B,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,iBAAiB;CAkB1B"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
const LARGE_PROJECT_THRESHOLD = 100;
|
|
2
|
+
/**
|
|
3
|
+
* Validates project readiness for a brXM version upgrade.
|
|
4
|
+
*
|
|
5
|
+
* Checks build configuration, repository settings, and configuration artifacts
|
|
6
|
+
* for potential issues that could block or complicate an upgrade.
|
|
7
|
+
*/
|
|
8
|
+
export class UpgradeValidator {
|
|
9
|
+
/**
|
|
10
|
+
* Run all validation checks against the discovered project configuration.
|
|
11
|
+
*
|
|
12
|
+
* @param build - Build configuration from Maven scanner
|
|
13
|
+
* @param repo - Repository configuration from repo scanner
|
|
14
|
+
* @param config - Configuration artifacts from config detector
|
|
15
|
+
* @returns Array of validation issues found
|
|
16
|
+
*/
|
|
17
|
+
validate(build, repo, config) {
|
|
18
|
+
const issues = [];
|
|
19
|
+
issues.push(...this.validateOverrides(build));
|
|
20
|
+
issues.push(...this.validateCVReports(config));
|
|
21
|
+
issues.push(...this.validateGroovyScripts(repo));
|
|
22
|
+
issues.push(...this.validateProjectSize(build));
|
|
23
|
+
issues.push(...this.validateBootstrap(repo));
|
|
24
|
+
return issues;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Determine whether the project is ready for upgrade based on validation issues.
|
|
28
|
+
*
|
|
29
|
+
* A project is considered ready if there are no error-severity issues.
|
|
30
|
+
* Warnings and info-level issues do not block the upgrade.
|
|
31
|
+
*
|
|
32
|
+
* @param issues - Validation issues from {@link validate}
|
|
33
|
+
* @returns true if no error-severity issues exist
|
|
34
|
+
*/
|
|
35
|
+
isUpgradeReady(issues) {
|
|
36
|
+
return !issues.some((issue) => issue.severity === 'error');
|
|
37
|
+
}
|
|
38
|
+
validateOverrides(build) {
|
|
39
|
+
const issues = [];
|
|
40
|
+
for (const override of build.overrides) {
|
|
41
|
+
issues.push({
|
|
42
|
+
code: 'VERSION_OVERRIDE',
|
|
43
|
+
severity: 'info',
|
|
44
|
+
message: `Version override: ${override.property}=${override.version}`,
|
|
45
|
+
file: override.file,
|
|
46
|
+
details: {
|
|
47
|
+
property: override.property,
|
|
48
|
+
version: override.version,
|
|
49
|
+
suggestion: 'This override will be analyzed against your target version during planning.',
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return issues;
|
|
54
|
+
}
|
|
55
|
+
validateCVReports(config) {
|
|
56
|
+
const issues = [];
|
|
57
|
+
if (config.cvReports.length > 0) {
|
|
58
|
+
issues.push({
|
|
59
|
+
code: 'CV_REPORTS_FOUND',
|
|
60
|
+
severity: 'warning',
|
|
61
|
+
message: `Found ${config.cvReports.length} Configuration Verifier report(s)`,
|
|
62
|
+
details: {
|
|
63
|
+
count: config.cvReports.length,
|
|
64
|
+
paths: config.cvReports.map((r) => r.path),
|
|
65
|
+
suggestion: 'CV reports indicate configuration drift. Review them before upgrading to understand customizations.',
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return issues;
|
|
70
|
+
}
|
|
71
|
+
validateGroovyScripts(repo) {
|
|
72
|
+
const issues = [];
|
|
73
|
+
if (repo.groovyScripts.length > 0) {
|
|
74
|
+
const bootstrapScripts = repo.groovyScripts.filter((s) => s.isBootstrap);
|
|
75
|
+
const regularScripts = repo.groovyScripts.filter((s) => !s.isBootstrap);
|
|
76
|
+
if (regularScripts.length > 0) {
|
|
77
|
+
issues.push({
|
|
78
|
+
code: 'GROOVY_SCRIPTS_FOUND',
|
|
79
|
+
severity: 'warning',
|
|
80
|
+
message: `Found ${regularScripts.length} Groovy updater script(s)`,
|
|
81
|
+
details: {
|
|
82
|
+
count: regularScripts.length,
|
|
83
|
+
scripts: regularScripts.map((s) => s.name),
|
|
84
|
+
suggestion: 'Groovy scripts may need review after upgrade if they depend on APIs that changed.',
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
if (bootstrapScripts.length > 0) {
|
|
89
|
+
issues.push({
|
|
90
|
+
code: 'BOOTSTRAP_SCRIPTS_FOUND',
|
|
91
|
+
severity: 'warning',
|
|
92
|
+
message: `Found ${bootstrapScripts.length} bootstrap Groovy script(s)`,
|
|
93
|
+
details: {
|
|
94
|
+
count: bootstrapScripts.length,
|
|
95
|
+
scripts: bootstrapScripts.map((s) => s.name),
|
|
96
|
+
suggestion: 'Bootstrap scripts run during repository initialization. Ensure they are compatible with the target version.',
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return issues;
|
|
102
|
+
}
|
|
103
|
+
validateProjectSize(build) {
|
|
104
|
+
const issues = [];
|
|
105
|
+
if (build.totalJavaFiles > LARGE_PROJECT_THRESHOLD) {
|
|
106
|
+
issues.push({
|
|
107
|
+
code: 'LARGE_PROJECT',
|
|
108
|
+
severity: 'info',
|
|
109
|
+
message: `Large project detected: ${build.totalJavaFiles} Java files across ${build.moduleCount} modules`,
|
|
110
|
+
details: {
|
|
111
|
+
javaFiles: build.totalJavaFiles,
|
|
112
|
+
modules: build.moduleCount,
|
|
113
|
+
suggestion: 'Large projects may require more time and attention during upgrade. Consider upgrading incrementally.',
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return issues;
|
|
118
|
+
}
|
|
119
|
+
validateBootstrap(repo) {
|
|
120
|
+
const issues = [];
|
|
121
|
+
if (repo.bootstrapPaths.length > 0) {
|
|
122
|
+
issues.push({
|
|
123
|
+
code: 'BOOTSTRAP_CONTENT_FOUND',
|
|
124
|
+
severity: 'info',
|
|
125
|
+
message: `Bootstrap content detected: ${repo.bootstrapPaths.length} HCM configuration file(s)`,
|
|
126
|
+
details: {
|
|
127
|
+
count: repo.bootstrapPaths.length,
|
|
128
|
+
suggestion: 'Bootstrap content defines initial repository state. The upgrade tool will preserve these configurations.',
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return issues;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=upgrade-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-validator.js","sourceRoot":"","sources":["../../../src/discovery/validators/upgrade-validator.ts"],"names":[],"mappings":"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"}
|