UNPKG

@agility/cli

Version:

Agility CLI for working with your content. (Public Beta)

202 lines (155 loc) 7.14 kB
# Cross-Service Dependencies Analysis - Phase 19.2 ## 🔄 **SERVICE DEPENDENCY MATRIX** ### **🎯 KEY FINDINGS:** 1. **Heavy Cross-Service Usage**: Many services depend on AssetReferenceExtractor, ContainerReferenceExtractor, and DependencyFinder 2. **Utility Services are Heavily Used**: Extractor services are used by multiple analyzer services 3. **ComprehensiveAnalysisRunner Methods**: Only `runComprehensiveAnalysis()` is called externally 4. **Dependency Injection Pattern**: Services initialize their dependencies properly --- ## 📊 **Cross-Service Method Usage** ### **1. AssetReferenceExtractor** (Heavily Used Utility Service) ``` USED BY: 📦 ContainerChainAnalyzer: - this.assetExtractor.showContentAssetDependencies() - Line 197 - this.assetExtractor.extractAssetReferences() - Line 170 🔍 DependencyFinder: - this.assetExtractor.findMissingAssetsForContent() - Lines 112, 158, 211 📊 NonChainedItemsAnalyzer: - this.assetExtractor.extractAssetReferences() - Lines 226, 273 📄 PageChainAnalyzer: - this.assetExtractor.showContentAssetDependencies() - Line 172 CROSS-SERVICE USAGE: HIGH (4 services depend on it) REMOVAL IMPACT: CANNOT REMOVE - Critical utility service ``` ### **2. ContainerReferenceExtractor** (Heavily Used Utility Service) ``` USED BY: 📐 ModelChainAnalyzer: - this.containerExtractor.collectContainersFromPageZones() - Line 105 - this.containerExtractor.extractNestedContainerReferences() - Line 141 🔍 DependencyFinder: - this.containerExtractor.extractNestedContainerReferences() - Lines 148, 201 📦 ContainerChainAnalyzer: - this.containerExtractor.collectContainersFromPageZones() - Line 60 - this.containerExtractor.extractNestedContainerReferences() - Line 131 🔴 BrokenChainDetector: - this.containerExtractor.collectContainersFromPageZones() - Line 59 🔍 ReconciliationReporter: - this.containerExtractor.collectContainersFromPageZones() - Line 151 📊 NonChainedItemsAnalyzer: - this.containerExtractor.collectContainersFromPageZones() - Line 244 METHODS CALLED CROSS-SERVICE: collectContainersFromPageZones() - called by 5 services extractNestedContainerReferences() - called by 3 services 🗑️ getContainerIdsFromPageZones() - UNUSED across all services 🗑️ findMissingContainerDependencies() - UNUSED across all services CROSS-SERVICE USAGE: VERY HIGH (6 services depend on it) REMOVAL IMPACT: Only 2 unused methods can be removed ``` ### **3. DependencyFinder** (Heavily Used Utility Service) ``` USED BY: 📦 ContainerChainAnalyzer: - this.dependencyFinder.findMissingDependenciesForContainer() - Line 77 🔴 BrokenChainDetector: - this.dependencyFinder.findMissingDependenciesForContainer() - Line 68 - this.dependencyFinder.findMissingDependenciesForModel() - Line 82 🔍 ReconciliationReporter: - this.dependencyFinder.findMissingDependenciesForPage() - Line 139 - this.dependencyFinder.findMissingDependenciesForContainer() - Line 160 - this.dependencyFinder.findMissingDependenciesForModel() - Line 174 📄 PageChainAnalyzer: - this.dependencyFinder.findMissingDependenciesForPage() - Line 187 CROSS-SERVICE USAGE: HIGH (4 services depend on it) REMOVAL IMPACT: CANNOT REMOVE - Critical dependency validation service ``` ### **4. ModelChainAnalyzer** (Used by Other Analyzers) ``` USED BY: 🔴 BrokenChainDetector: - this.modelAnalyzer.findModelToModelChains() - Line 80 - this.modelAnalyzer.collectModelsFromPageChains() - Line 151 🔍 ReconciliationReporter: - this.modelAnalyzer.findModelToModelChains() - Line 172 - this.modelAnalyzer.collectModelsFromPageChains() - Line 191 📊 NonChainedItemsAnalyzer: - this.modelAnalyzer.findModelToModelChains() - Line 287 - this.modelAnalyzer.collectModelsFromPageChains() - Line 310 CROSS-SERVICE USAGE: MEDIUM (3 services depend on it) REMOVAL IMPACT: CANNOT REMOVE - Core analyzer service ``` ### **5. NonChainedItemsAnalyzer** (Used by ReconciliationReporter) ``` USED BY: 🔍 ReconciliationReporter: - this.nonChainedAnalyzer.collectAllEntitiesInChains() - Line 77 CROSS-SERVICE USAGE: LOW (1 service depends on it) REMOVAL IMPACT: CANNOT REMOVE - Method is used ``` --- ## 🏃 **ComprehensiveAnalysisRunner Method Usage** ### **External Usage Analysis:** ``` runComprehensiveAnalysis() - called by TwoPassSync.syncInstance() 🗑️ runStep() - NEVER called externally 🗑️ runSteps() - NEVER called externally 🗑️ getCoordinator() - NEVER called externally ADDITIONAL REMOVAL CANDIDATES: 🗑️ ComprehensiveAnalysisRunner.runStep() 🗑️ ComprehensiveAnalysisRunner.runSteps() 🗑️ ComprehensiveAnalysisRunner.getCoordinator() ``` ### **AnalysisStepCoordinator Method Usage:** ``` executeStep() - called by ComprehensiveAnalysisRunner registerService() - called by ComprehensiveAnalysisRunner initialize() - called by ComprehensiveAnalysisRunner 🗑️ executeSteps() - NEVER called 🗑️ getRegisteredSteps() - NEVER called 🗑️ hasStep() - NEVER called 🗑️ executeAllSteps() - NEVER called ADDITIONAL REMOVAL CANDIDATES: 🗑️ AnalysisStepCoordinator.executeSteps() 🗑️ AnalysisStepCoordinator.getRegisteredSteps() 🗑️ AnalysisStepCoordinator.hasStep() 🗑️ AnalysisStepCoordinator.executeAllSteps() ``` --- ## 🗑️ **UPDATED REMOVAL TARGET LIST** ### **Service Methods (Previously Identified):** 1. `PageChainAnalyzer.isPageBroken()` 2. `PageChainAnalyzer.showPageDependencyHierarchy()` 3. `ContainerReferenceExtractor.getContainerIdsFromPageZones()` 4. `ContainerReferenceExtractor.findMissingContainerDependencies()` 5. `SourceDataLoader.loadSourceData()` 6. `SourceDataLoader.hasNoContent()` 7. `SourceDataLoader.validateRequiredEntities()` ### **Coordinator/Runner Methods (Newly Identified):** 8. `ComprehensiveAnalysisRunner.runStep()` 9. `ComprehensiveAnalysisRunner.runSteps()` 10. `ComprehensiveAnalysisRunner.getCoordinator()` 11. `AnalysisStepCoordinator.executeSteps()` 12. `AnalysisStepCoordinator.getRegisteredSteps()` 13. `AnalysisStepCoordinator.hasStep()` 14. `AnalysisStepCoordinator.executeAllSteps()` ### **🎯 TOTAL REMOVAL TARGETS: 14 methods** --- ## ⚠️ **SERVICES THAT CANNOT BE REMOVED** ### **Critical Utility Services:** - **AssetReferenceExtractor**: Used by 4 services - **ContainerReferenceExtractor**: Used by 6 services - **DependencyFinder**: Used by 4 services - **ModelChainAnalyzer**: Used by 3 services - **NonChainedItemsAnalyzer**: Used by 1 service (ReconciliationReporter) ### **Chain Analysis Services:** All chain analysis services are registered with the coordinator and cannot be removed. --- ## 📈 **REVISED CLEANUP IMPACT** ### **Total Methods for Removal: 14** - **Service utility methods**: 7 methods - **Coordinator/Runner methods**: 7 methods - **Estimated line reduction**: 300-500 lines - **SourceDataLoader**: Entire service still removable (153 lines) ### **Cross-Service Dependencies Preserved:** All critical utility services and their used methods will be preserved to maintain service coordination.