@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,54 @@
|
|
|
1
|
+
import type { UpgradeManifest, ManifestLoadOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Load a single manifest file from disk.
|
|
4
|
+
*
|
|
5
|
+
* @param filePath - Absolute path to the manifest file (YAML or JSON)
|
|
6
|
+
* @returns The parsed and validated upgrade manifest
|
|
7
|
+
* @throws Error if file doesn't exist, has an unsupported format, or fails validation
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadManifest(filePath: string): Promise<UpgradeManifest>;
|
|
10
|
+
/**
|
|
11
|
+
* Get list of available manifest versions from a source.
|
|
12
|
+
* Returns versions sorted in ascending semver order.
|
|
13
|
+
*
|
|
14
|
+
* @param options - Options specifying the manifest source (local, bundled, or url)
|
|
15
|
+
* @returns Array of available version strings in semver order
|
|
16
|
+
* @throws Error if required options are missing or source directory not found
|
|
17
|
+
*/
|
|
18
|
+
export declare function getAvailableVersions(options: ManifestLoadOptions): Promise<string[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Load all manifests needed for an upgrade from one version to another.
|
|
21
|
+
* Returns manifests in ascending version order (oldest first).
|
|
22
|
+
*
|
|
23
|
+
* @param fromVersion - The current version to upgrade from
|
|
24
|
+
* @param toVersion - The target version to upgrade to
|
|
25
|
+
* @param options - Manifest load options specifying the source
|
|
26
|
+
* @returns Array of upgrade manifests in version order
|
|
27
|
+
* @throws Error if versions are invalid, target not found, or downgrade attempted
|
|
28
|
+
*/
|
|
29
|
+
export declare function loadManifestsForUpgrade(fromVersion: string, toVersion: string, options: ManifestLoadOptions): Promise<UpgradeManifest[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Count total entries across all manifests.
|
|
32
|
+
*
|
|
33
|
+
* @param manifests - Array of upgrade manifests to count entries for
|
|
34
|
+
* @returns Total number of entries across all manifests
|
|
35
|
+
*/
|
|
36
|
+
export declare function countManifestEntries(manifests: UpgradeManifest[]): number;
|
|
37
|
+
/**
|
|
38
|
+
* Load the unreleased manifest from a file path or the bundled default.
|
|
39
|
+
*
|
|
40
|
+
* @param filePath - Optional path to a custom unreleased manifest file.
|
|
41
|
+
* If omitted, loads the bundled `unreleased.yaml` from the manifests directory.
|
|
42
|
+
* @returns The parsed unreleased manifest, or a default empty manifest if the file does not exist
|
|
43
|
+
*/
|
|
44
|
+
export declare function loadUnreleasedManifest(filePath?: string): Promise<UpgradeManifest>;
|
|
45
|
+
/**
|
|
46
|
+
* Save an upgrade manifest to a YAML file.
|
|
47
|
+
*
|
|
48
|
+
* Creates parent directories if they do not exist.
|
|
49
|
+
*
|
|
50
|
+
* @param filePath - Absolute path where the manifest should be written
|
|
51
|
+
* @param manifest - The upgrade manifest to serialize
|
|
52
|
+
*/
|
|
53
|
+
export declare function saveManifest(filePath: string, manifest: UpgradeManifest): Promise<void>;
|
|
54
|
+
//# sourceMappingURL=manifest-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../../src/planning/manifest-loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAevE;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAmB7E;AAsBD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnB;AA0CD;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC,CA0D5B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAEzE;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAQxF;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7F"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { readFile, readdir, writeFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { join, basename, extname, dirname } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import yaml from 'js-yaml';
|
|
5
|
+
import semver from 'semver';
|
|
6
|
+
import { validateManifest } from './manifest-schema.js';
|
|
7
|
+
import { pathExists } from '../utils/index.js';
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = dirname(__filename);
|
|
10
|
+
/**
|
|
11
|
+
* Get the path to the bundled manifests directory.
|
|
12
|
+
* At runtime __dirname is dist/planning/, so we go up one level to dist/manifests/.
|
|
13
|
+
* The build step copies src/manifests/ into dist/manifests/.
|
|
14
|
+
*/
|
|
15
|
+
function getManifestsDir() {
|
|
16
|
+
return join(__dirname, '..', 'manifests');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Load a single manifest file from disk.
|
|
20
|
+
*
|
|
21
|
+
* @param filePath - Absolute path to the manifest file (YAML or JSON)
|
|
22
|
+
* @returns The parsed and validated upgrade manifest
|
|
23
|
+
* @throws Error if file doesn't exist, has an unsupported format, or fails validation
|
|
24
|
+
*/
|
|
25
|
+
export async function loadManifest(filePath) {
|
|
26
|
+
if (!(await pathExists(filePath))) {
|
|
27
|
+
throw new Error(`Manifest file not found: ${filePath}`);
|
|
28
|
+
}
|
|
29
|
+
const content = await readFile(filePath, 'utf-8');
|
|
30
|
+
const ext = extname(filePath).toLowerCase();
|
|
31
|
+
let manifest;
|
|
32
|
+
if (ext === '.yaml' || ext === '.yml') {
|
|
33
|
+
manifest = yaml.load(content);
|
|
34
|
+
}
|
|
35
|
+
else if (ext === '.json') {
|
|
36
|
+
manifest = JSON.parse(content);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
throw new Error(`Unsupported manifest format: ${ext}`);
|
|
40
|
+
}
|
|
41
|
+
validateManifest(manifest);
|
|
42
|
+
return manifest;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extract valid semver version names from a list of filenames.
|
|
46
|
+
*
|
|
47
|
+
* @param files - Array of filenames to extract versions from
|
|
48
|
+
* @returns Array of valid semver version strings
|
|
49
|
+
*/
|
|
50
|
+
function extractVersionsFromFiles(files) {
|
|
51
|
+
const versions = [];
|
|
52
|
+
for (const file of files) {
|
|
53
|
+
const ext = extname(file).toLowerCase();
|
|
54
|
+
if (ext === '.yaml' || ext === '.yml' || ext === '.json') {
|
|
55
|
+
const name = basename(file, ext);
|
|
56
|
+
if (semver.valid(name)) {
|
|
57
|
+
versions.push(name);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return versions;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get list of available manifest versions from a source.
|
|
65
|
+
* Returns versions sorted in ascending semver order.
|
|
66
|
+
*
|
|
67
|
+
* @param options - Options specifying the manifest source (local, bundled, or url)
|
|
68
|
+
* @returns Array of available version strings in semver order
|
|
69
|
+
* @throws Error if required options are missing or source directory not found
|
|
70
|
+
*/
|
|
71
|
+
export async function getAvailableVersions(options) {
|
|
72
|
+
let versions = [];
|
|
73
|
+
if (options.source === 'local') {
|
|
74
|
+
if (!options.localPath) {
|
|
75
|
+
throw new Error('localPath required for local manifest source');
|
|
76
|
+
}
|
|
77
|
+
if (!(await pathExists(options.localPath))) {
|
|
78
|
+
throw new Error(`Manifest directory not found: ${options.localPath}`);
|
|
79
|
+
}
|
|
80
|
+
const files = await readdir(options.localPath);
|
|
81
|
+
versions = extractVersionsFromFiles(files);
|
|
82
|
+
}
|
|
83
|
+
else if (options.source === 'bundled') {
|
|
84
|
+
const bundledPath = join(getManifestsDir(), 'released');
|
|
85
|
+
if (await pathExists(bundledPath)) {
|
|
86
|
+
const files = await readdir(bundledPath);
|
|
87
|
+
versions = extractVersionsFromFiles(files);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return versions.sort((a, b) => semver.compare(a, b));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get the path to a manifest file for a specific version.
|
|
94
|
+
*
|
|
95
|
+
* @param version - The semver version string
|
|
96
|
+
* @param options - Manifest load options specifying the source
|
|
97
|
+
* @returns Absolute path to the manifest file
|
|
98
|
+
* @throws Error if required options are missing or source type is unsupported
|
|
99
|
+
*/
|
|
100
|
+
/**
|
|
101
|
+
* Supported manifest file extensions, checked in priority order.
|
|
102
|
+
*/
|
|
103
|
+
const MANIFEST_EXTENSIONS = ['.yaml', '.yml', '.json'];
|
|
104
|
+
/**
|
|
105
|
+
* Find the manifest file for a version by probing supported extensions.
|
|
106
|
+
* Falls back to `.yaml` if no file is found (so the caller gets a clear "not found" error).
|
|
107
|
+
*/
|
|
108
|
+
async function resolveManifestFile(dir, version) {
|
|
109
|
+
for (const ext of MANIFEST_EXTENSIONS) {
|
|
110
|
+
const candidate = join(dir, `${version}${ext}`);
|
|
111
|
+
if (await pathExists(candidate)) {
|
|
112
|
+
return candidate;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return join(dir, `${version}.yaml`);
|
|
116
|
+
}
|
|
117
|
+
async function getManifestPath(version, options) {
|
|
118
|
+
if (options.source === 'local') {
|
|
119
|
+
if (!options.localPath) {
|
|
120
|
+
throw new Error('localPath required for local manifest source');
|
|
121
|
+
}
|
|
122
|
+
return resolveManifestFile(options.localPath, version);
|
|
123
|
+
}
|
|
124
|
+
else if (options.source === 'bundled') {
|
|
125
|
+
return resolveManifestFile(join(getManifestsDir(), 'released'), version);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
throw new Error(`Unsupported manifest source: ${String(options.source)}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Load all manifests needed for an upgrade from one version to another.
|
|
133
|
+
* Returns manifests in ascending version order (oldest first).
|
|
134
|
+
*
|
|
135
|
+
* @param fromVersion - The current version to upgrade from
|
|
136
|
+
* @param toVersion - The target version to upgrade to
|
|
137
|
+
* @param options - Manifest load options specifying the source
|
|
138
|
+
* @returns Array of upgrade manifests in version order
|
|
139
|
+
* @throws Error if versions are invalid, target not found, or downgrade attempted
|
|
140
|
+
*/
|
|
141
|
+
export async function loadManifestsForUpgrade(fromVersion, toVersion, options) {
|
|
142
|
+
if (!semver.valid(fromVersion)) {
|
|
143
|
+
throw new Error(`Invalid source version: ${fromVersion}`);
|
|
144
|
+
}
|
|
145
|
+
if (!semver.valid(toVersion)) {
|
|
146
|
+
throw new Error(`Invalid target version: ${toVersion}`);
|
|
147
|
+
}
|
|
148
|
+
if (semver.eq(fromVersion, toVersion)) {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
if (semver.gt(fromVersion, toVersion)) {
|
|
152
|
+
throw new Error(`Cannot downgrade from ${fromVersion} to ${toVersion}. Downgrades are not supported.`);
|
|
153
|
+
}
|
|
154
|
+
const availableVersions = await getAvailableVersions(options);
|
|
155
|
+
const upgradePathVersions = availableVersions.filter((v) => semver.gt(v, fromVersion) && semver.lte(v, toVersion));
|
|
156
|
+
if (!upgradePathVersions.includes(toVersion)) {
|
|
157
|
+
const hasAnyManifests = availableVersions.length > 0;
|
|
158
|
+
if (!hasAnyManifests) {
|
|
159
|
+
throw new Error(`No upgrade manifests found.\n\n` +
|
|
160
|
+
` Manifests are distributed separately. To set them up:\n\n` +
|
|
161
|
+
` brxm-upgrade setup-manifests\n\n` +
|
|
162
|
+
` Or manually:\n` +
|
|
163
|
+
` mvn dependency:copy \\\n` +
|
|
164
|
+
` -Dartifact=com.bloomreach.xm:brxm-upgrade-manifests:RELEASE:zip \\\n` +
|
|
165
|
+
` -DoutputDirectory=.brxm-upgrade/ \\\n` +
|
|
166
|
+
` -Dtransitive=false -q\n` +
|
|
167
|
+
` unzip .brxm-upgrade/brxm-upgrade-manifests-*.zip \\\n` +
|
|
168
|
+
` -d .brxm-upgrade/manifests/\n\n` +
|
|
169
|
+
` Then add to .brxmrc:\n` +
|
|
170
|
+
` upgrade:\n` +
|
|
171
|
+
` source: local\n` +
|
|
172
|
+
` localPath: .brxm-upgrade/manifests`);
|
|
173
|
+
}
|
|
174
|
+
throw new Error(`Target version ${toVersion} not found in available manifests. ` +
|
|
175
|
+
`Available versions: ${availableVersions.join(', ')}`);
|
|
176
|
+
}
|
|
177
|
+
const manifests = [];
|
|
178
|
+
for (const version of upgradePathVersions) {
|
|
179
|
+
const manifestPath = await getManifestPath(version, options);
|
|
180
|
+
const manifest = await loadManifest(manifestPath);
|
|
181
|
+
manifests.push(manifest);
|
|
182
|
+
}
|
|
183
|
+
return manifests;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Count total entries across all manifests.
|
|
187
|
+
*
|
|
188
|
+
* @param manifests - Array of upgrade manifests to count entries for
|
|
189
|
+
* @returns Total number of entries across all manifests
|
|
190
|
+
*/
|
|
191
|
+
export function countManifestEntries(manifests) {
|
|
192
|
+
return manifests.reduce((sum, m) => sum + m.entries.length, 0);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Load the unreleased manifest from a file path or the bundled default.
|
|
196
|
+
*
|
|
197
|
+
* @param filePath - Optional path to a custom unreleased manifest file.
|
|
198
|
+
* If omitted, loads the bundled `unreleased.yaml` from the manifests directory.
|
|
199
|
+
* @returns The parsed unreleased manifest, or a default empty manifest if the file does not exist
|
|
200
|
+
*/
|
|
201
|
+
export async function loadUnreleasedManifest(filePath) {
|
|
202
|
+
const resolvedPath = filePath ?? join(getManifestsDir(), 'unreleased.yaml');
|
|
203
|
+
if (!(await pathExists(resolvedPath))) {
|
|
204
|
+
return { schema_version: '1.0', version: 'unreleased', entries: [] };
|
|
205
|
+
}
|
|
206
|
+
return loadManifest(resolvedPath);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Save an upgrade manifest to a YAML file.
|
|
210
|
+
*
|
|
211
|
+
* Creates parent directories if they do not exist.
|
|
212
|
+
*
|
|
213
|
+
* @param filePath - Absolute path where the manifest should be written
|
|
214
|
+
* @param manifest - The upgrade manifest to serialize
|
|
215
|
+
*/
|
|
216
|
+
export async function saveManifest(filePath, manifest) {
|
|
217
|
+
try {
|
|
218
|
+
validateManifest(manifest);
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
throw new Error(`Cannot save invalid manifest: ${error instanceof Error ? error.message : String(error)}`);
|
|
222
|
+
}
|
|
223
|
+
const dir = dirname(filePath);
|
|
224
|
+
await mkdir(dir, { recursive: true });
|
|
225
|
+
const content = yaml.dump(manifest, {
|
|
226
|
+
lineWidth: 120,
|
|
227
|
+
noRefs: true,
|
|
228
|
+
quotingType: '"',
|
|
229
|
+
forceQuotes: false,
|
|
230
|
+
});
|
|
231
|
+
await writeFile(filePath, content, 'utf-8');
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=manifest-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-loader.js","sourceRoot":"","sources":["../../src/planning/manifest-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ErrorObject } from 'ajv';
|
|
2
|
+
import type { UpgradeManifest } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Custom error class for manifest validation errors.
|
|
5
|
+
* Includes detailed error information from the JSON schema validation.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ManifestValidationError extends Error {
|
|
8
|
+
readonly errors: ErrorObject[] | null | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new ManifestValidationError.
|
|
11
|
+
* @param message - Human-readable error message
|
|
12
|
+
* @param errors - Array of validation errors from Ajv
|
|
13
|
+
*/
|
|
14
|
+
constructor(message: string, errors: ErrorObject[] | null | undefined);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Validates a manifest object against the schema.
|
|
18
|
+
* Uses JSON Schema validation to ensure all required fields are present
|
|
19
|
+
* and values conform to expected types and constraints.
|
|
20
|
+
*
|
|
21
|
+
* @param manifest - The manifest object to validate
|
|
22
|
+
* @throws ManifestValidationError if validation fails
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateManifest(manifest: unknown): asserts manifest is UpgradeManifest;
|
|
25
|
+
/**
|
|
26
|
+
* Checks if a value is a valid manifest object.
|
|
27
|
+
* Non-throwing version of validateManifest for conditional checks.
|
|
28
|
+
*
|
|
29
|
+
* @param manifest - The value to check
|
|
30
|
+
* @returns True if the value is a valid UpgradeManifest, false otherwise
|
|
31
|
+
*/
|
|
32
|
+
export declare function isValidManifest(manifest: unknown): manifest is UpgradeManifest;
|
|
33
|
+
/**
|
|
34
|
+
* Get detailed validation errors for a manifest.
|
|
35
|
+
* Returns an empty array if the manifest is valid.
|
|
36
|
+
*
|
|
37
|
+
* @param manifest - The manifest object to validate
|
|
38
|
+
* @returns Array of error message strings, empty if valid
|
|
39
|
+
*/
|
|
40
|
+
export declare function getManifestValidationErrors(manifest: unknown): string[];
|
|
41
|
+
//# sourceMappingURL=manifest-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema.d.ts","sourceRoot":"","sources":["../../src/planning/manifest-schema.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,KAAK,WAAW,EAAyB,MAAM,KAAK,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYlD;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;aAQ9B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS;IAP1D;;;;OAIG;gBAED,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS;CAK3D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,eAAe,CAWvF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,eAAe,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CASvE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import AjvModule from 'ajv';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
// Handle both ESM default export and CommonJS compatibility
|
|
4
|
+
const Ajv = AjvModule.default ?? AjvModule;
|
|
5
|
+
// Load schema from bundled JSON file using createRequire for ESM compatibility
|
|
6
|
+
const esmRequire = createRequire(import.meta.url);
|
|
7
|
+
const manifestSchema = esmRequire('../manifests/schema.json');
|
|
8
|
+
const ajv = new Ajv({ allErrors: true, verbose: true });
|
|
9
|
+
const validate = ajv.compile(manifestSchema);
|
|
10
|
+
/**
|
|
11
|
+
* Custom error class for manifest validation errors.
|
|
12
|
+
* Includes detailed error information from the JSON schema validation.
|
|
13
|
+
*/
|
|
14
|
+
export class ManifestValidationError extends Error {
|
|
15
|
+
errors;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new ManifestValidationError.
|
|
18
|
+
* @param message - Human-readable error message
|
|
19
|
+
* @param errors - Array of validation errors from Ajv
|
|
20
|
+
*/
|
|
21
|
+
constructor(message, errors) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.errors = errors;
|
|
24
|
+
this.name = 'ManifestValidationError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validates a manifest object against the schema.
|
|
29
|
+
* Uses JSON Schema validation to ensure all required fields are present
|
|
30
|
+
* and values conform to expected types and constraints.
|
|
31
|
+
*
|
|
32
|
+
* @param manifest - The manifest object to validate
|
|
33
|
+
* @throws ManifestValidationError if validation fails
|
|
34
|
+
*/
|
|
35
|
+
export function validateManifest(manifest) {
|
|
36
|
+
const valid = validate(manifest);
|
|
37
|
+
if (!valid) {
|
|
38
|
+
const errorMessages = validate.errors
|
|
39
|
+
?.map((e) => `${e.instancePath || 'manifest'} ${e.message ?? 'validation failed'}`)
|
|
40
|
+
.join('; ');
|
|
41
|
+
throw new ManifestValidationError(`Invalid manifest: ${errorMessages}`, validate.errors);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Checks if a value is a valid manifest object.
|
|
46
|
+
* Non-throwing version of validateManifest for conditional checks.
|
|
47
|
+
*
|
|
48
|
+
* @param manifest - The value to check
|
|
49
|
+
* @returns True if the value is a valid UpgradeManifest, false otherwise
|
|
50
|
+
*/
|
|
51
|
+
export function isValidManifest(manifest) {
|
|
52
|
+
return validate(manifest);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get detailed validation errors for a manifest.
|
|
56
|
+
* Returns an empty array if the manifest is valid.
|
|
57
|
+
*
|
|
58
|
+
* @param manifest - The manifest object to validate
|
|
59
|
+
* @returns Array of error message strings, empty if valid
|
|
60
|
+
*/
|
|
61
|
+
export function getManifestValidationErrors(manifest) {
|
|
62
|
+
validate(manifest);
|
|
63
|
+
if (!validate.errors) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
return validate.errors.map((e) => {
|
|
67
|
+
const path = e.instancePath || 'manifest';
|
|
68
|
+
return `${path}: ${e.message ?? 'validation failed'}`;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=manifest-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema.js","sourceRoot":"","sources":["../../src/planning/manifest-schema.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsD,MAAM,KAAK,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,4DAA4D;AAC5D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC;AAE3C,+EAA+E;AAC/E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,cAAc,GAAG,UAAU,CAAC,0BAA0B,CAA4B,CAAC;AAEzF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAsC,GAAG,CAAC,OAAO,CAAkB,cAAc,CAAC,CAAC;AAEjG;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAQ9B;IAPlB;;;;OAIG;IACH,YACE,OAAe,EACC,MAAwC;QAExD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAAkC;QAGxD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;YACnC,EAAE,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;aAC/F,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,uBAAuB,CAC/B,qBAAqB,aAAa,EAAE,EACpC,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAiB;IAC3D,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC;QAC1C,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { VersionOverride } from '../discovery/types.js';
|
|
2
|
+
import type { OverrideClassification } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Classify customer version overrides against the target version's managed properties.
|
|
5
|
+
*
|
|
6
|
+
* @param overrides - Version overrides detected in the customer's project
|
|
7
|
+
* @param managedProperties - Properties managed by the target brXM parent POM
|
|
8
|
+
* @param targetVersion - The target brXM version (for display in messages)
|
|
9
|
+
* @returns Classified overrides with category and recommended action
|
|
10
|
+
*/
|
|
11
|
+
export declare function classifyOverrides(overrides: VersionOverride[], managedProperties: Record<string, string>, targetVersion: string): OverrideClassification[];
|
|
12
|
+
//# sourceMappingURL=override-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-analyzer.d.ts","sourceRoot":"","sources":["../../src/planning/override-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,eAAe,EAAE,EAC5B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,aAAa,EAAE,MAAM,GACpB,sBAAsB,EAAE,CAoC1B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classify customer version overrides against the target version's managed properties.
|
|
3
|
+
*
|
|
4
|
+
* @param overrides - Version overrides detected in the customer's project
|
|
5
|
+
* @param managedProperties - Properties managed by the target brXM parent POM
|
|
6
|
+
* @param targetVersion - The target brXM version (for display in messages)
|
|
7
|
+
* @returns Classified overrides with category and recommended action
|
|
8
|
+
*/
|
|
9
|
+
export function classifyOverrides(overrides, managedProperties, targetVersion) {
|
|
10
|
+
return overrides.map((override) => {
|
|
11
|
+
const managedVersion = managedProperties[override.property];
|
|
12
|
+
if (managedVersion === undefined) {
|
|
13
|
+
return {
|
|
14
|
+
property: override.property,
|
|
15
|
+
customerVersion: override.version,
|
|
16
|
+
file: override.file,
|
|
17
|
+
category: 'unmanaged',
|
|
18
|
+
action: `Keep — not managed by brXM ${targetVersion}`,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (override.version === managedVersion) {
|
|
22
|
+
return {
|
|
23
|
+
property: override.property,
|
|
24
|
+
customerVersion: override.version,
|
|
25
|
+
managedVersion,
|
|
26
|
+
file: override.file,
|
|
27
|
+
category: 'redundant',
|
|
28
|
+
action: `Remove — redundant, brXM ${targetVersion} manages the same value`,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
property: override.property,
|
|
33
|
+
customerVersion: override.version,
|
|
34
|
+
managedVersion,
|
|
35
|
+
file: override.file,
|
|
36
|
+
category: 'conflict',
|
|
37
|
+
action: `Remove — conflicts with brXM ${targetVersion} managed value ${managedVersion}. ` +
|
|
38
|
+
`If this override was added intentionally (e.g. as a hotfix), verify the fix is included in ${targetVersion} before removing.`,
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=override-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-analyzer.js","sourceRoot":"","sources":["../../src/planning/override-analyzer.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAA4B,EAC5B,iBAAyC,EACzC,aAAqB;IAErB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChC,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,eAAe,EAAE,QAAQ,CAAC,OAAO;gBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,WAAoB;gBAC9B,MAAM,EAAE,8BAA8B,aAAa,EAAE;aACtD,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACxC,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,eAAe,EAAE,QAAQ,CAAC,OAAO;gBACjC,cAAc;gBACd,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,WAAoB;gBAC9B,MAAM,EAAE,4BAA4B,aAAa,yBAAyB;aAC3E,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,eAAe,EAAE,QAAQ,CAAC,OAAO;YACjC,cAAc;YACd,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,UAAmB;YAC7B,MAAM,EACJ,gCAAgC,aAAa,kBAAkB,cAAc,IAAI;gBACjF,8FAA8F,aAAa,mBAAmB;SACjI,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { EntryMatch, UpgradePlan, OverrideClassification } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Topologically sort matches by their dependencies.
|
|
4
|
+
* Uses Kahn's algorithm for topological sorting.
|
|
5
|
+
* Deduplicates entries by ID before sorting.
|
|
6
|
+
*/
|
|
7
|
+
export declare function orderStepsByDependency(matches: EntryMatch[]): EntryMatch[];
|
|
8
|
+
/**
|
|
9
|
+
* Generate a complete upgrade plan from matched entries.
|
|
10
|
+
*/
|
|
11
|
+
export declare function generatePlan(matches: EntryMatch[], fromVersion: string, toVersion: string, upgradePathVersions: string[], discoveryFile: string, options?: {
|
|
12
|
+
includeNonApplicable?: boolean;
|
|
13
|
+
overrideClassifications?: OverrideClassification[];
|
|
14
|
+
}): UpgradePlan;
|
|
15
|
+
//# sourceMappingURL=plan-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-generator.d.ts","sourceRoot":"","sources":["../../src/planning/plan-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAGV,WAAW,EACX,sBAAsB,EACvB,MAAM,YAAY,CAAC;AA6BpB;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAkF1E;AA0DD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,UAAU,EAAE,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAAC,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAA;CAAE,GAC/F,WAAW,CA2Gb"}
|