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