@manojkmfsi/monodog 1.0.19 → 1.0.21
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/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +12 -0
- package/dist/config-loader.js +5 -6
- package/dist/get-db-url.js +0 -1
- package/dist/index.js +219 -80
- package/dist/serve.js +7 -91
- package/dist/services/commitService.js +1 -1
- package/dist/{gitService.js → services/gitService.js} +0 -101
- package/dist/setup.js +0 -0
- package/dist/utils/utilities.js +92 -14
- package/{monodog-conf.json → monodog-config.json} +2 -4
- package/monodog-dashboard/README.md +58 -0
- package/monodog-dashboard/dist/assets/{index-dadb5f0d.js → index-1a6836e4.js} +2 -2
- package/monodog-dashboard/dist/index.html +1 -1
- package/package.json +19 -19
- package/src/config-loader.ts +5 -7
- package/src/get-db-url.ts +0 -2
- package/src/index.ts +227 -72
- package/src/serve.ts +6 -68
- package/src/services/commitService.ts +1 -1
- package/src/services/gitService.ts +165 -0
- package/src/utils/utilities.ts +105 -14
- package/.turbo/turbo-lint.log +0 -4
- package/.turbo/turbo-test.log +0 -828
- package/coverage/clover.xml +0 -2661
- package/coverage/coverage-final.json +0 -99
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/ci-status.ts.html +0 -2002
- package/coverage/lcov-report/components/configuration/Configuration.tsx.html +0 -358
- package/coverage/lcov-report/components/configuration/components/BrandingSettings.tsx.html +0 -472
- package/coverage/lcov-report/components/configuration/components/ConfigurationHeader.tsx.html +0 -199
- package/coverage/lcov-report/components/configuration/components/ConfigurationModal.tsx.html +0 -157
- package/coverage/lcov-report/components/configuration/components/ConfigurationTabs.tsx.html +0 -175
- package/coverage/lcov-report/components/configuration/components/FeatureToggles.tsx.html +0 -283
- package/coverage/lcov-report/components/configuration/components/GeneralSettings.tsx.html +0 -316
- package/coverage/lcov-report/components/configuration/components/MonorepoSettings.tsx.html +0 -625
- package/coverage/lcov-report/components/configuration/components/index.html +0 -221
- package/coverage/lcov-report/components/configuration/components/index.ts.html +0 -109
- package/coverage/lcov-report/components/configuration/index.html +0 -116
- package/coverage/lcov-report/components/configuration/utils/config.utils.ts.html +0 -427
- package/coverage/lcov-report/components/configuration/utils/index.html +0 -116
- package/coverage/lcov-report/components/main-dashboard/Dashboard.tsx.html +0 -769
- package/coverage/lcov-report/components/main-dashboard/components/Header.tsx.html +0 -226
- package/coverage/lcov-report/components/main-dashboard/components/PackageDistribution.tsx.html +0 -187
- package/coverage/lcov-report/components/main-dashboard/components/PackageSearchFilter.tsx.html +0 -226
- package/coverage/lcov-report/components/main-dashboard/components/PackageTable.tsx.html +0 -343
- package/coverage/lcov-report/components/main-dashboard/components/QuickActions.tsx.html +0 -265
- package/coverage/lcov-report/components/main-dashboard/components/StatsCards.tsx.html +0 -289
- package/coverage/lcov-report/components/main-dashboard/components/index.html +0 -206
- package/coverage/lcov-report/components/main-dashboard/components/index.ts.html +0 -106
- package/coverage/lcov-report/components/main-dashboard/index.html +0 -116
- package/coverage/lcov-report/components/main-dashboard/utils/dashboard.utils.ts.html +0 -292
- package/coverage/lcov-report/components/main-dashboard/utils/index.html +0 -116
- package/coverage/lcov-report/components/modules/ci-integration/CIIntegration.tsx.html +0 -913
- package/coverage/lcov-report/components/modules/ci-integration/components/BuildDetails.tsx.html +0 -769
- package/coverage/lcov-report/components/modules/ci-integration/components/BuildList.tsx.html +0 -721
- package/coverage/lcov-report/components/modules/ci-integration/components/BuildOverview.tsx.html +0 -559
- package/coverage/lcov-report/components/modules/ci-integration/components/CIIntegrationHeader.tsx.html +0 -199
- package/coverage/lcov-report/components/modules/ci-integration/components/ErrorState.tsx.html +0 -160
- package/coverage/lcov-report/components/modules/ci-integration/components/LoadingState.tsx.html +0 -139
- package/coverage/lcov-report/components/modules/ci-integration/components/PipelineStatus.tsx.html +0 -754
- package/coverage/lcov-report/components/modules/ci-integration/components/index.html +0 -221
- package/coverage/lcov-report/components/modules/ci-integration/components/index.ts.html +0 -109
- package/coverage/lcov-report/components/modules/ci-integration/index.html +0 -116
- package/coverage/lcov-report/components/modules/ci-integration/utils/ci.utils.ts.html +0 -871
- package/coverage/lcov-report/components/modules/ci-integration/utils/index.html +0 -116
- package/coverage/lcov-report/components/modules/config-inspector/ConfigInspector.tsx.html +0 -1054
- package/coverage/lcov-report/components/modules/config-inspector/components/ConfigEditor.tsx.html +0 -361
- package/coverage/lcov-report/components/modules/config-inspector/components/ConfigInspectorHeader.tsx.html +0 -193
- package/coverage/lcov-report/components/modules/config-inspector/components/ConfigPreview.tsx.html +0 -352
- package/coverage/lcov-report/components/modules/config-inspector/components/ConfigSidebar.tsx.html +0 -505
- package/coverage/lcov-report/components/modules/config-inspector/components/ConfigToolbar.tsx.html +0 -637
- package/coverage/lcov-report/components/modules/config-inspector/components/ErrorState.tsx.html +0 -160
- package/coverage/lcov-report/components/modules/config-inspector/components/LoadingState.tsx.html +0 -139
- package/coverage/lcov-report/components/modules/config-inspector/components/ValidationPanel.tsx.html +0 -550
- package/coverage/lcov-report/components/modules/config-inspector/components/index.html +0 -236
- package/coverage/lcov-report/components/modules/config-inspector/components/index.ts.html +0 -112
- package/coverage/lcov-report/components/modules/config-inspector/index.html +0 -116
- package/coverage/lcov-report/components/modules/config-inspector/utils/config.utils.ts.html +0 -2242
- package/coverage/lcov-report/components/modules/config-inspector/utils/index.html +0 -116
- package/coverage/lcov-report/components/modules/dependency-graph/DependencyGraph.tsx.html +0 -754
- package/coverage/lcov-report/components/modules/dependency-graph/components/CircularDependencies.tsx.html +0 -613
- package/coverage/lcov-report/components/modules/dependency-graph/components/DependencyDetails.tsx.html +0 -661
- package/coverage/lcov-report/components/modules/dependency-graph/components/DependencyGraphHeader.tsx.html +0 -187
- package/coverage/lcov-report/components/modules/dependency-graph/components/DependencyList.tsx.html +0 -613
- package/coverage/lcov-report/components/modules/dependency-graph/components/ErrorState.tsx.html +0 -160
- package/coverage/lcov-report/components/modules/dependency-graph/components/GraphLegend.tsx.html +0 -430
- package/coverage/lcov-report/components/modules/dependency-graph/components/GraphStats.tsx.html +0 -493
- package/coverage/lcov-report/components/modules/dependency-graph/components/GraphToolbar.tsx.html +0 -406
- package/coverage/lcov-report/components/modules/dependency-graph/components/GraphVisualization.tsx.html +0 -619
- package/coverage/lcov-report/components/modules/dependency-graph/components/LoadingState.tsx.html +0 -139
- package/coverage/lcov-report/components/modules/dependency-graph/components/index.html +0 -266
- package/coverage/lcov-report/components/modules/dependency-graph/components/index.ts.html +0 -118
- package/coverage/lcov-report/components/modules/dependency-graph/index.html +0 -116
- package/coverage/lcov-report/components/modules/dependency-graph/utils/dependency.utils.ts.html +0 -1393
- package/coverage/lcov-report/components/modules/dependency-graph/utils/index.html +0 -116
- package/coverage/lcov-report/components/modules/health-status/HealthStatus.tsx.html +0 -2305
- package/coverage/lcov-report/components/modules/health-status/index.html +0 -116
- package/coverage/lcov-report/components/modules/packages/PackageDetail.tsx.html +0 -850
- package/coverage/lcov-report/components/modules/packages/PackagesOverview.tsx.html +0 -580
- package/coverage/lcov-report/components/modules/packages/components/ConfigurationTab.tsx.html +0 -1027
- package/coverage/lcov-report/components/modules/packages/components/DependenciesTab.tsx.html +0 -556
- package/coverage/lcov-report/components/modules/packages/components/ErrorState.tsx.html +0 -148
- package/coverage/lcov-report/components/modules/packages/components/HealthMetricsTab.tsx.html +0 -910
- package/coverage/lcov-report/components/modules/packages/components/LoadingState.tsx.html +0 -127
- package/coverage/lcov-report/components/modules/packages/components/PackageDetailHeader.tsx.html +0 -592
- package/coverage/lcov-report/components/modules/packages/components/PackageDetailTabs.tsx.html +0 -232
- package/coverage/lcov-report/components/modules/packages/components/PackageStats.tsx.html +0 -301
- package/coverage/lcov-report/components/modules/packages/components/PackagesTable.tsx.html +0 -589
- package/coverage/lcov-report/components/modules/packages/components/RecentCommitsTab.tsx.html +0 -364
- package/coverage/lcov-report/components/modules/packages/components/SearchAndFilter.tsx.html +0 -301
- package/coverage/lcov-report/components/modules/packages/components/index.html +0 -281
- package/coverage/lcov-report/components/modules/packages/components/index.ts.html +0 -121
- package/coverage/lcov-report/components/modules/packages/index.html +0 -131
- package/coverage/lcov-report/components/modules/packages/utils/index.html +0 -116
- package/coverage/lcov-report/components/modules/packages/utils/packages.utils.ts.html +0 -613
- package/coverage/lcov-report/components/publish-control/PublishControl.tsx.html +0 -769
- package/coverage/lcov-report/components/publish-control/components/ChangelogViewer.tsx.html +0 -394
- package/coverage/lcov-report/components/publish-control/components/ErrorState.tsx.html +0 -154
- package/coverage/lcov-report/components/publish-control/components/LoadingState.tsx.html +0 -121
- package/coverage/lcov-report/components/publish-control/components/PackageReleaseTable.tsx.html +0 -505
- package/coverage/lcov-report/components/publish-control/components/PublishHeader.tsx.html +0 -175
- package/coverage/lcov-report/components/publish-control/components/QuickActionCards.tsx.html +0 -253
- package/coverage/lcov-report/components/publish-control/components/ReleaseSchedule.tsx.html +0 -397
- package/coverage/lcov-report/components/publish-control/components/index.html +0 -221
- package/coverage/lcov-report/components/publish-control/components/index.ts.html +0 -109
- package/coverage/lcov-report/components/publish-control/index.html +0 -116
- package/coverage/lcov-report/components/publish-control/utils/index.html +0 -116
- package/coverage/lcov-report/components/publish-control/utils/publish.utils.ts.html +0 -262
- package/coverage/lcov-report/components/setup-guide/SetupGuide.tsx.html +0 -373
- package/coverage/lcov-report/components/setup-guide/components/SetupHeader.tsx.html +0 -157
- package/coverage/lcov-report/components/setup-guide/components/SetupModal.tsx.html +0 -163
- package/coverage/lcov-report/components/setup-guide/components/SetupProgress.tsx.html +0 -172
- package/coverage/lcov-report/components/setup-guide/components/StepContent.tsx.html +0 -901
- package/coverage/lcov-report/components/setup-guide/components/StepNavigation.tsx.html +0 -271
- package/coverage/lcov-report/components/setup-guide/components/index.html +0 -191
- package/coverage/lcov-report/components/setup-guide/components/index.ts.html +0 -103
- package/coverage/lcov-report/components/setup-guide/index.html +0 -116
- package/coverage/lcov-report/components/setup-guide/utils/index.html +0 -116
- package/coverage/lcov-report/components/setup-guide/utils/setup.utils.ts.html +0 -322
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -536
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/Configuration.tsx.html +0 -358
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/BrandingSettings.tsx.html +0 -472
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/ConfigurationHeader.tsx.html +0 -199
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/ConfigurationModal.tsx.html +0 -157
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/ConfigurationTabs.tsx.html +0 -175
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/FeatureToggles.tsx.html +0 -283
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/GeneralSettings.tsx.html +0 -316
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/MonorepoSettings.tsx.html +0 -625
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/index.html +0 -221
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/components/index.ts.html +0 -109
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/utils/config.utils.ts.html +0 -427
- package/coverage/lcov-report/monodog-dashboard/src/components/configuration/utils/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/Dashboard.tsx.html +0 -769
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/Header.tsx.html +0 -226
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/PackageDistribution.tsx.html +0 -187
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/PackageSearchFilter.tsx.html +0 -226
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/PackageTable.tsx.html +0 -343
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/QuickActions.tsx.html +0 -265
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/StatsCards.tsx.html +0 -289
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/index.html +0 -206
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/components/index.ts.html +0 -106
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/utils/dashboard.utils.ts.html +0 -292
- package/coverage/lcov-report/monodog-dashboard/src/components/main-dashboard/utils/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/CIIntegration.tsx.html +0 -913
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/BuildDetails.tsx.html +0 -769
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/BuildList.tsx.html +0 -721
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/BuildOverview.tsx.html +0 -559
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/CIIntegrationHeader.tsx.html +0 -199
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/ErrorState.tsx.html +0 -160
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/LoadingState.tsx.html +0 -139
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/PipelineStatus.tsx.html +0 -754
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/index.html +0 -221
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/components/index.ts.html +0 -109
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/utils/ci.utils.ts.html +0 -871
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/ci-integration/utils/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/ConfigInspector.tsx.html +0 -1054
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigEditor.tsx.html +0 -361
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigInspectorHeader.tsx.html +0 -193
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigPreview.tsx.html +0 -352
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigSidebar.tsx.html +0 -505
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ConfigToolbar.tsx.html +0 -637
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ErrorState.tsx.html +0 -160
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/LoadingState.tsx.html +0 -139
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/ValidationPanel.tsx.html +0 -550
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/index.html +0 -236
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/components/index.ts.html +0 -112
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/utils/config.utils.ts.html +0 -2242
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/config-inspector/utils/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/DependencyGraph.tsx.html +0 -754
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/CircularDependencies.tsx.html +0 -613
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyDetails.tsx.html +0 -661
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyGraphHeader.tsx.html +0 -187
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/DependencyList.tsx.html +0 -613
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/ErrorState.tsx.html +0 -160
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/GraphLegend.tsx.html +0 -430
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/GraphStats.tsx.html +0 -493
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/GraphToolbar.tsx.html +0 -406
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/GraphVisualization.tsx.html +0 -619
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/LoadingState.tsx.html +0 -139
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/index.html +0 -266
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/components/index.ts.html +0 -118
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/utils/dependency.utils.ts.html +0 -1393
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/dependency-graph/utils/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/health-status/HealthStatus.tsx.html +0 -2296
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/health-status/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/PackageDetail.tsx.html +0 -850
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/PackagesOverview.tsx.html +0 -580
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/ConfigurationTab.tsx.html +0 -1027
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/DependenciesTab.tsx.html +0 -556
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/ErrorState.tsx.html +0 -148
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/HealthMetricsTab.tsx.html +0 -910
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/LoadingState.tsx.html +0 -127
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/PackageDetailHeader.tsx.html +0 -592
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/PackageDetailTabs.tsx.html +0 -232
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/PackageStats.tsx.html +0 -301
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/PackagesTable.tsx.html +0 -589
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/RecentCommitsTab.tsx.html +0 -364
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/SearchAndFilter.tsx.html +0 -301
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/index.html +0 -281
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/components/index.ts.html +0 -121
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/index.html +0 -131
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/utils/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/modules/packages/utils/packages.utils.ts.html +0 -613
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/PublishControl.tsx.html +0 -769
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/ChangelogViewer.tsx.html +0 -394
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/ErrorState.tsx.html +0 -154
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/LoadingState.tsx.html +0 -121
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/PackageReleaseTable.tsx.html +0 -505
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/PublishHeader.tsx.html +0 -175
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/QuickActionCards.tsx.html +0 -253
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/ReleaseSchedule.tsx.html +0 -397
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/index.html +0 -221
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/components/index.ts.html +0 -109
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/utils/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/publish-control/utils/publish.utils.ts.html +0 -262
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/SetupGuide.tsx.html +0 -373
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/SetupHeader.tsx.html +0 -157
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/SetupModal.tsx.html +0 -163
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/SetupProgress.tsx.html +0 -172
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/StepContent.tsx.html +0 -901
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/StepNavigation.tsx.html +0 -271
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/index.html +0 -191
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/components/index.ts.html +0 -103
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/utils/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/components/setup-guide/utils/setup.utils.ts.html +0 -322
- package/coverage/lcov-report/monodog-dashboard/src/pages/CIPage.tsx.html +0 -103
- package/coverage/lcov-report/monodog-dashboard/src/pages/ConfigPage.tsx.html +0 -103
- package/coverage/lcov-report/monodog-dashboard/src/pages/DashboardPage.tsx.html +0 -103
- package/coverage/lcov-report/monodog-dashboard/src/pages/HealthPage.tsx.html +0 -103
- package/coverage/lcov-report/monodog-dashboard/src/pages/PackageDetailPage.tsx.html +0 -103
- package/coverage/lcov-report/monodog-dashboard/src/pages/PackagesPage.tsx.html +0 -103
- package/coverage/lcov-report/monodog-dashboard/src/pages/PublishPage.tsx.html +0 -103
- package/coverage/lcov-report/monodog-dashboard/src/pages/index.html +0 -206
- package/coverage/lcov-report/monodog-dashboard/src/services/index.html +0 -116
- package/coverage/lcov-report/monodog-dashboard/src/services/monorepoService.ts.html +0 -3010
- package/coverage/lcov-report/pages/CIPage.tsx.html +0 -103
- package/coverage/lcov-report/pages/ConfigPage.tsx.html +0 -103
- package/coverage/lcov-report/pages/DashboardPage.tsx.html +0 -103
- package/coverage/lcov-report/pages/HealthPage.tsx.html +0 -103
- package/coverage/lcov-report/pages/PackageDetailPage.tsx.html +0 -103
- package/coverage/lcov-report/pages/PackagesPage.tsx.html +0 -103
- package/coverage/lcov-report/pages/PublishPage.tsx.html +0 -103
- package/coverage/lcov-report/pages/index.html +0 -206
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/services/index.html +0 -116
- package/coverage/lcov-report/services/monorepoService.ts.html +0 -3010
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/src/config-loader.ts.html +0 -442
- package/coverage/lcov-report/src/index.html +0 -116
- package/coverage/lcov-report/src/utils/ci-status.ts.html +0 -2002
- package/coverage/lcov-report/src/utils/index.html +0 -131
- package/coverage/lcov-report/src/utils/utilities.ts.html +0 -1534
- package/coverage/lcov-report/utilities.ts.html +0 -1516
- package/coverage/lcov.info +0 -5870
- package/src/gitService.ts +0 -276
- /package/{monodog-conf.example.json → monodog-config.example.json} +0 -0
package/coverage/lcov-report/components/modules/dependency-graph/utils/dependency.utils.ts.html
DELETED
|
@@ -1,1393 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for components/modules/dependency-graph/utils/dependency.utils.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../../index.html">All files</a> / <a href="index.html">components/modules/dependency-graph/utils</a> dependency.utils.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">46.19% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>97/210</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">25% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>20/80</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">34.14% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>14/41</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">43.64% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>79/181</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line low'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
-
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
-
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
-
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
-
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
-
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
-
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
-
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
-
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
-
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
-
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
-
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
-
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
-
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
-
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
-
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
-
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
-
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
-
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
-
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
-
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
-
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
-
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
-
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
-
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
-
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
-
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
-
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
-
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
-
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
-
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
-
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
-
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
-
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
-
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
-
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
-
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
-
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
-
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
-
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
-
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
-
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
-
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
-
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
-
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
-
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
-
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
-
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
-
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
-
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
-
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
-
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
-
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
-
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
-
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
-
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
-
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
-
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
-
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
-
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
-
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
-
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
-
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
-
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
-
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
-
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
-
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
-
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
-
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
-
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
-
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
-
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
-
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
-
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
-
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
-
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
-
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
-
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
-
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
-
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
-
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
-
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
-
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
-
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
-
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
-
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
-
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
-
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
-
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
-
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
-
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
-
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
-
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
-
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
-
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
-
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
-
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
-
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
-
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
-
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
-
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
-
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
-
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
-
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
-
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
-
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
-
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
-
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
-
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
-
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
-
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
-
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
-
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
-
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
-
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
-
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
-
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
-
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
-
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
-
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
-
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
-
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
-
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
-
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
-
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
-
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
-
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
-
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
-
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
-
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
-
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
-
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
-
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
-
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
-
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
-
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
-
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
-
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
-
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
-
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
-
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
-
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
-
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
-
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
-
<a name='L437'></a><a href='#L437'>437</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
503
|
-
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
509
|
-
<span class="cline-any cline-yes">2x</span>
|
|
510
|
-
<span class="cline-any cline-yes">4x</span>
|
|
511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
512
|
-
<span class="cline-any cline-yes">1x</span>
|
|
513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-yes">1x</span>
|
|
515
|
-
<span class="cline-any cline-neutral"> </span>
|
|
516
|
-
<span class="cline-any cline-yes">1x</span>
|
|
517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
518
|
-
<span class="cline-any cline-yes">1x</span>
|
|
519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-yes">2x</span>
|
|
524
|
-
<span class="cline-any cline-yes">4x</span>
|
|
525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-yes">1x</span>
|
|
527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
528
|
-
<span class="cline-any cline-yes">1x</span>
|
|
529
|
-
<span class="cline-any cline-neutral"> </span>
|
|
530
|
-
<span class="cline-any cline-yes">1x</span>
|
|
531
|
-
<span class="cline-any cline-neutral"> </span>
|
|
532
|
-
<span class="cline-any cline-yes">1x</span>
|
|
533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
534
|
-
<span class="cline-any cline-neutral"> </span>
|
|
535
|
-
<span class="cline-any cline-neutral"> </span>
|
|
536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-yes">2x</span>
|
|
538
|
-
<span class="cline-any cline-neutral"> </span>
|
|
539
|
-
<span class="cline-any cline-neutral"> </span>
|
|
540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
541
|
-
<span class="cline-any cline-yes">4x</span>
|
|
542
|
-
<span class="cline-any cline-yes">4x</span>
|
|
543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
544
|
-
<span class="cline-any cline-yes">3x</span>
|
|
545
|
-
<span class="cline-any cline-neutral"> </span>
|
|
546
|
-
<span class="cline-any cline-yes">1x</span>
|
|
547
|
-
<span class="cline-any cline-neutral"> </span>
|
|
548
|
-
<span class="cline-any cline-yes">1x</span>
|
|
549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-yes">1x</span>
|
|
551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
552
|
-
<span class="cline-any cline-no"> </span>
|
|
553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
554
|
-
<span class="cline-any cline-neutral"> </span>
|
|
555
|
-
<span class="cline-any cline-neutral"> </span>
|
|
556
|
-
<span class="cline-any cline-neutral"> </span>
|
|
557
|
-
<span class="cline-any cline-yes">2x</span>
|
|
558
|
-
<span class="cline-any cline-yes">3x</span>
|
|
559
|
-
<span class="cline-any cline-yes">3x</span>
|
|
560
|
-
<span class="cline-any cline-yes">5x</span>
|
|
561
|
-
<span class="cline-any cline-neutral"> </span>
|
|
562
|
-
<span class="cline-any cline-neutral"> </span>
|
|
563
|
-
<span class="cline-any cline-neutral"> </span>
|
|
564
|
-
<span class="cline-any cline-neutral"> </span>
|
|
565
|
-
<span class="cline-any cline-yes">3x</span>
|
|
566
|
-
<span class="cline-any cline-yes">5x</span>
|
|
567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
570
|
-
<span class="cline-any cline-yes">3x</span>
|
|
571
|
-
<span class="cline-any cline-yes">5x</span>
|
|
572
|
-
<span class="cline-any cline-neutral"> </span>
|
|
573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
574
|
-
<span class="cline-any cline-neutral"> </span>
|
|
575
|
-
<span class="cline-any cline-yes">3x</span>
|
|
576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
577
|
-
<span class="cline-any cline-yes">3x</span>
|
|
578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-neutral"> </span>
|
|
580
|
-
<span class="cline-any cline-yes">3x</span>
|
|
581
|
-
<span class="cline-any cline-neutral"> </span>
|
|
582
|
-
<span class="cline-any cline-yes">3x</span>
|
|
583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-neutral"> </span>
|
|
586
|
-
<span class="cline-any cline-neutral"> </span>
|
|
587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
590
|
-
<span class="cline-any cline-neutral"> </span>
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-yes">2x</span>
|
|
595
|
-
<span class="cline-any cline-yes">3x</span>
|
|
596
|
-
<span class="cline-any cline-yes">3x</span>
|
|
597
|
-
<span class="cline-any cline-neutral"> </span>
|
|
598
|
-
<span class="cline-any cline-yes">3x</span>
|
|
599
|
-
<span class="cline-any cline-yes">11x</span>
|
|
600
|
-
<span class="cline-any cline-yes">10x</span>
|
|
601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
602
|
-
<span class="cline-any cline-yes">21x</span>
|
|
603
|
-
<span class="cline-any cline-yes">10x</span>
|
|
604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
605
|
-
<span class="cline-any cline-yes">5x</span>
|
|
606
|
-
<span class="cline-any cline-yes">5x</span>
|
|
607
|
-
<span class="cline-any cline-yes">6x</span>
|
|
608
|
-
<span class="cline-any cline-yes">6x</span>
|
|
609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-yes">5x</span>
|
|
612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-neutral"> </span>
|
|
614
|
-
<span class="cline-any cline-yes">3x</span>
|
|
615
|
-
<span class="cline-any cline-yes">5x</span>
|
|
616
|
-
<span class="cline-any cline-yes">5x</span>
|
|
617
|
-
<span class="cline-any cline-yes">5x</span>
|
|
618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-yes">3x</span>
|
|
622
|
-
<span class="cline-any cline-neutral"> </span>
|
|
623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-yes">2x</span>
|
|
626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
628
|
-
<span class="cline-any cline-yes">3x</span>
|
|
629
|
-
<span class="cline-any cline-yes">3x</span>
|
|
630
|
-
<span class="cline-any cline-yes">3x</span>
|
|
631
|
-
<span class="cline-any cline-yes">3x</span>
|
|
632
|
-
<span class="cline-any cline-neutral"> </span>
|
|
633
|
-
<span class="cline-any cline-yes">3x</span>
|
|
634
|
-
<span class="cline-any cline-yes">11x</span>
|
|
635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
636
|
-
<span class="cline-any cline-no"> </span>
|
|
637
|
-
<span class="cline-any cline-no"> </span>
|
|
638
|
-
<span class="cline-any cline-neutral"> </span>
|
|
639
|
-
<span class="cline-any cline-no"> </span>
|
|
640
|
-
<span class="cline-any cline-neutral"> </span>
|
|
641
|
-
<span class="cline-any cline-neutral"> </span>
|
|
642
|
-
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-neutral"> </span>
|
|
644
|
-
<span class="cline-any cline-neutral"> </span>
|
|
645
|
-
<span class="cline-any cline-no"> </span>
|
|
646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-neutral"> </span>
|
|
648
|
-
<span class="cline-any cline-yes">11x</span>
|
|
649
|
-
<span class="cline-any cline-neutral"> </span>
|
|
650
|
-
<span class="cline-any cline-yes">10x</span>
|
|
651
|
-
<span class="cline-any cline-yes">10x</span>
|
|
652
|
-
<span class="cline-any cline-yes">10x</span>
|
|
653
|
-
<span class="cline-any cline-neutral"> </span>
|
|
654
|
-
<span class="cline-any cline-yes">21x</span>
|
|
655
|
-
<span class="cline-any cline-yes">10x</span>
|
|
656
|
-
<span class="cline-any cline-yes">5x</span>
|
|
657
|
-
<span class="cline-any cline-yes">6x</span>
|
|
658
|
-
<span class="cline-any cline-neutral"> </span>
|
|
659
|
-
<span class="cline-any cline-neutral"> </span>
|
|
660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
661
|
-
<span class="cline-any cline-yes">10x</span>
|
|
662
|
-
<span class="cline-any cline-yes">10x</span>
|
|
663
|
-
<span class="cline-any cline-yes">10x</span>
|
|
664
|
-
<span class="cline-any cline-neutral"> </span>
|
|
665
|
-
<span class="cline-any cline-neutral"> </span>
|
|
666
|
-
<span class="cline-any cline-yes">3x</span>
|
|
667
|
-
<span class="cline-any cline-yes">5x</span>
|
|
668
|
-
<span class="cline-any cline-yes">5x</span>
|
|
669
|
-
<span class="cline-any cline-neutral"> </span>
|
|
670
|
-
<span class="cline-any cline-neutral"> </span>
|
|
671
|
-
<span class="cline-any cline-neutral"> </span>
|
|
672
|
-
<span class="cline-any cline-yes">3x</span>
|
|
673
|
-
<span class="cline-any cline-neutral"> </span>
|
|
674
|
-
<span class="cline-any cline-neutral"> </span>
|
|
675
|
-
<span class="cline-any cline-neutral"> </span>
|
|
676
|
-
<span class="cline-any cline-yes">2x</span>
|
|
677
|
-
<span class="cline-any cline-neutral"> </span>
|
|
678
|
-
<span class="cline-any cline-neutral"> </span>
|
|
679
|
-
<span class="cline-any cline-neutral"> </span>
|
|
680
|
-
<span class="cline-any cline-neutral"> </span>
|
|
681
|
-
<span class="cline-any cline-no"> </span>
|
|
682
|
-
<span class="cline-any cline-neutral"> </span>
|
|
683
|
-
<span class="cline-any cline-neutral"> </span>
|
|
684
|
-
<span class="cline-any cline-neutral"> </span>
|
|
685
|
-
<span class="cline-any cline-no"> </span>
|
|
686
|
-
<span class="cline-any cline-neutral"> </span>
|
|
687
|
-
<span class="cline-any cline-no"> </span>
|
|
688
|
-
<span class="cline-any cline-no"> </span>
|
|
689
|
-
<span class="cline-any cline-no"> </span>
|
|
690
|
-
<span class="cline-any cline-neutral"> </span>
|
|
691
|
-
<span class="cline-any cline-no"> </span>
|
|
692
|
-
<span class="cline-any cline-no"> </span>
|
|
693
|
-
<span class="cline-any cline-no"> </span>
|
|
694
|
-
<span class="cline-any cline-neutral"> </span>
|
|
695
|
-
<span class="cline-any cline-no"> </span>
|
|
696
|
-
<span class="cline-any cline-no"> </span>
|
|
697
|
-
<span class="cline-any cline-no"> </span>
|
|
698
|
-
<span class="cline-any cline-neutral"> </span>
|
|
699
|
-
<span class="cline-any cline-no"> </span>
|
|
700
|
-
<span class="cline-any cline-no"> </span>
|
|
701
|
-
<span class="cline-any cline-no"> </span>
|
|
702
|
-
<span class="cline-any cline-no"> </span>
|
|
703
|
-
<span class="cline-any cline-neutral"> </span>
|
|
704
|
-
<span class="cline-any cline-neutral"> </span>
|
|
705
|
-
<span class="cline-any cline-no"> </span>
|
|
706
|
-
<span class="cline-any cline-neutral"> </span>
|
|
707
|
-
<span class="cline-any cline-neutral"> </span>
|
|
708
|
-
<span class="cline-any cline-no"> </span>
|
|
709
|
-
<span class="cline-any cline-no"> </span>
|
|
710
|
-
<span class="cline-any cline-no"> </span>
|
|
711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
712
|
-
<span class="cline-any cline-neutral"> </span>
|
|
713
|
-
<span class="cline-any cline-neutral"> </span>
|
|
714
|
-
<span class="cline-any cline-neutral"> </span>
|
|
715
|
-
<span class="cline-any cline-yes">2x</span>
|
|
716
|
-
<span class="cline-any cline-neutral"> </span>
|
|
717
|
-
<span class="cline-any cline-neutral"> </span>
|
|
718
|
-
<span class="cline-any cline-neutral"> </span>
|
|
719
|
-
<span class="cline-any cline-neutral"> </span>
|
|
720
|
-
<span class="cline-any cline-neutral"> </span>
|
|
721
|
-
<span class="cline-any cline-no"> </span>
|
|
722
|
-
<span class="cline-any cline-neutral"> </span>
|
|
723
|
-
<span class="cline-any cline-no"> </span>
|
|
724
|
-
<span class="cline-any cline-neutral"> </span>
|
|
725
|
-
<span class="cline-any cline-no"> </span>
|
|
726
|
-
<span class="cline-any cline-neutral"> </span>
|
|
727
|
-
<span class="cline-any cline-no"> </span>
|
|
728
|
-
<span class="cline-any cline-neutral"> </span>
|
|
729
|
-
<span class="cline-any cline-no"> </span>
|
|
730
|
-
<span class="cline-any cline-neutral"> </span>
|
|
731
|
-
<span class="cline-any cline-neutral"> </span>
|
|
732
|
-
<span class="cline-any cline-neutral"> </span>
|
|
733
|
-
<span class="cline-any cline-neutral"> </span>
|
|
734
|
-
<span class="cline-any cline-yes">2x</span>
|
|
735
|
-
<span class="cline-any cline-neutral"> </span>
|
|
736
|
-
<span class="cline-any cline-neutral"> </span>
|
|
737
|
-
<span class="cline-any cline-neutral"> </span>
|
|
738
|
-
<span class="cline-any cline-neutral"> </span>
|
|
739
|
-
<span class="cline-any cline-no"> </span>
|
|
740
|
-
<span class="cline-any cline-no"> </span>
|
|
741
|
-
<span class="cline-any cline-neutral"> </span>
|
|
742
|
-
<span class="cline-any cline-neutral"> </span>
|
|
743
|
-
<span class="cline-any cline-no"> </span>
|
|
744
|
-
<span class="cline-any cline-no"> </span>
|
|
745
|
-
<span class="cline-any cline-no"> </span>
|
|
746
|
-
<span class="cline-any cline-neutral"> </span>
|
|
747
|
-
<span class="cline-any cline-no"> </span>
|
|
748
|
-
<span class="cline-any cline-no"> </span>
|
|
749
|
-
<span class="cline-any cline-neutral"> </span>
|
|
750
|
-
<span class="cline-any cline-no"> </span>
|
|
751
|
-
<span class="cline-any cline-no"> </span>
|
|
752
|
-
<span class="cline-any cline-no"> </span>
|
|
753
|
-
<span class="cline-any cline-neutral"> </span>
|
|
754
|
-
<span class="cline-any cline-neutral"> </span>
|
|
755
|
-
<span class="cline-any cline-neutral"> </span>
|
|
756
|
-
<span class="cline-any cline-no"> </span>
|
|
757
|
-
<span class="cline-any cline-neutral"> </span>
|
|
758
|
-
<span class="cline-any cline-neutral"> </span>
|
|
759
|
-
<span class="cline-any cline-no"> </span>
|
|
760
|
-
<span class="cline-any cline-neutral"> </span>
|
|
761
|
-
<span class="cline-any cline-neutral"> </span>
|
|
762
|
-
<span class="cline-any cline-no"> </span>
|
|
763
|
-
<span class="cline-any cline-neutral"> </span>
|
|
764
|
-
<span class="cline-any cline-no"> </span>
|
|
765
|
-
<span class="cline-any cline-neutral"> </span>
|
|
766
|
-
<span class="cline-any cline-no"> </span>
|
|
767
|
-
<span class="cline-any cline-neutral"> </span>
|
|
768
|
-
<span class="cline-any cline-neutral"> </span>
|
|
769
|
-
<span class="cline-any cline-no"> </span>
|
|
770
|
-
<span class="cline-any cline-neutral"> </span>
|
|
771
|
-
<span class="cline-any cline-neutral"> </span>
|
|
772
|
-
<span class="cline-any cline-no"> </span>
|
|
773
|
-
<span class="cline-any cline-neutral"> </span>
|
|
774
|
-
<span class="cline-any cline-neutral"> </span>
|
|
775
|
-
<span class="cline-any cline-neutral"> </span>
|
|
776
|
-
<span class="cline-any cline-neutral"> </span>
|
|
777
|
-
<span class="cline-any cline-no"> </span>
|
|
778
|
-
<span class="cline-any cline-no"> </span>
|
|
779
|
-
<span class="cline-any cline-no"> </span>
|
|
780
|
-
<span class="cline-any cline-no"> </span>
|
|
781
|
-
<span class="cline-any cline-neutral"> </span>
|
|
782
|
-
<span class="cline-any cline-no"> </span>
|
|
783
|
-
<span class="cline-any cline-neutral"> </span>
|
|
784
|
-
<span class="cline-any cline-neutral"> </span>
|
|
785
|
-
<span class="cline-any cline-neutral"> </span>
|
|
786
|
-
<span class="cline-any cline-neutral"> </span>
|
|
787
|
-
<span class="cline-any cline-neutral"> </span>
|
|
788
|
-
<span class="cline-any cline-neutral"> </span>
|
|
789
|
-
<span class="cline-any cline-neutral"> </span>
|
|
790
|
-
<span class="cline-any cline-neutral"> </span>
|
|
791
|
-
<span class="cline-any cline-yes">2x</span>
|
|
792
|
-
<span class="cline-any cline-neutral"> </span>
|
|
793
|
-
<span class="cline-any cline-neutral"> </span>
|
|
794
|
-
<span class="cline-any cline-neutral"> </span>
|
|
795
|
-
<span class="cline-any cline-neutral"> </span>
|
|
796
|
-
<span class="cline-any cline-no"> </span>
|
|
797
|
-
<span class="cline-any cline-no"> </span>
|
|
798
|
-
<span class="cline-any cline-no"> </span>
|
|
799
|
-
<span class="cline-any cline-neutral"> </span>
|
|
800
|
-
<span class="cline-any cline-no"> </span>
|
|
801
|
-
<span class="cline-any cline-no"> </span>
|
|
802
|
-
<span class="cline-any cline-no"> </span>
|
|
803
|
-
<span class="cline-any cline-neutral"> </span>
|
|
804
|
-
<span class="cline-any cline-neutral"> </span>
|
|
805
|
-
<span class="cline-any cline-neutral"> </span>
|
|
806
|
-
<span class="cline-any cline-neutral"> </span>
|
|
807
|
-
<span class="cline-any cline-neutral"> </span>
|
|
808
|
-
<span class="cline-any cline-neutral"> </span>
|
|
809
|
-
<span class="cline-any cline-neutral"> </span>
|
|
810
|
-
<span class="cline-any cline-neutral"> </span>
|
|
811
|
-
<span class="cline-any cline-yes">2x</span>
|
|
812
|
-
<span class="cline-any cline-neutral"> </span>
|
|
813
|
-
<span class="cline-any cline-neutral"> </span>
|
|
814
|
-
<span class="cline-any cline-neutral"> </span>
|
|
815
|
-
<span class="cline-any cline-neutral"> </span>
|
|
816
|
-
<span class="cline-any cline-neutral"> </span>
|
|
817
|
-
<span class="cline-any cline-no"> </span>
|
|
818
|
-
<span class="cline-any cline-neutral"> </span>
|
|
819
|
-
<span class="cline-any cline-neutral"> </span>
|
|
820
|
-
<span class="cline-any cline-neutral"> </span>
|
|
821
|
-
<span class="cline-any cline-neutral"> </span>
|
|
822
|
-
<span class="cline-any cline-neutral"> </span>
|
|
823
|
-
<span class="cline-any cline-neutral"> </span>
|
|
824
|
-
<span class="cline-any cline-no"> </span>
|
|
825
|
-
<span class="cline-any cline-no"> </span>
|
|
826
|
-
<span class="cline-any cline-no"> </span>
|
|
827
|
-
<span class="cline-any cline-no"> </span>
|
|
828
|
-
<span class="cline-any cline-neutral"> </span>
|
|
829
|
-
<span class="cline-any cline-neutral"> </span>
|
|
830
|
-
<span class="cline-any cline-no"> </span>
|
|
831
|
-
<span class="cline-any cline-no"> </span>
|
|
832
|
-
<span class="cline-any cline-no"> </span>
|
|
833
|
-
<span class="cline-any cline-no"> </span>
|
|
834
|
-
<span class="cline-any cline-no"> </span>
|
|
835
|
-
<span class="cline-any cline-no"> </span>
|
|
836
|
-
<span class="cline-any cline-no"> </span>
|
|
837
|
-
<span class="cline-any cline-no"> </span>
|
|
838
|
-
<span class="cline-any cline-neutral"> </span>
|
|
839
|
-
<span class="cline-any cline-neutral"> </span>
|
|
840
|
-
<span class="cline-any cline-neutral"> </span>
|
|
841
|
-
<span class="cline-any cline-neutral"> </span>
|
|
842
|
-
<span class="cline-any cline-no"> </span>
|
|
843
|
-
<span class="cline-any cline-no"> </span>
|
|
844
|
-
<span class="cline-any cline-no"> </span>
|
|
845
|
-
<span class="cline-any cline-no"> </span>
|
|
846
|
-
<span class="cline-any cline-no"> </span>
|
|
847
|
-
<span class="cline-any cline-no"> </span>
|
|
848
|
-
<span class="cline-any cline-no"> </span>
|
|
849
|
-
<span class="cline-any cline-no"> </span>
|
|
850
|
-
<span class="cline-any cline-no"> </span>
|
|
851
|
-
<span class="cline-any cline-neutral"> </span>
|
|
852
|
-
<span class="cline-any cline-neutral"> </span>
|
|
853
|
-
<span class="cline-any cline-neutral"> </span>
|
|
854
|
-
<span class="cline-any cline-neutral"> </span>
|
|
855
|
-
<span class="cline-any cline-no"> </span>
|
|
856
|
-
<span class="cline-any cline-no"> </span>
|
|
857
|
-
<span class="cline-any cline-neutral"> </span>
|
|
858
|
-
<span class="cline-any cline-neutral"> </span>
|
|
859
|
-
<span class="cline-any cline-no"> </span>
|
|
860
|
-
<span class="cline-any cline-no"> </span>
|
|
861
|
-
<span class="cline-any cline-neutral"> </span>
|
|
862
|
-
<span class="cline-any cline-neutral"> </span>
|
|
863
|
-
<span class="cline-any cline-neutral"> </span>
|
|
864
|
-
<span class="cline-any cline-no"> </span>
|
|
865
|
-
<span class="cline-any cline-neutral"> </span>
|
|
866
|
-
<span class="cline-any cline-neutral"> </span>
|
|
867
|
-
<span class="cline-any cline-neutral"> </span>
|
|
868
|
-
<span class="cline-any cline-yes">2x</span>
|
|
869
|
-
<span class="cline-any cline-no"> </span>
|
|
870
|
-
<span class="cline-any cline-neutral"> </span>
|
|
871
|
-
<span class="cline-any cline-no"> </span>
|
|
872
|
-
<span class="cline-any cline-neutral"> </span>
|
|
873
|
-
<span class="cline-any cline-no"> </span>
|
|
874
|
-
<span class="cline-any cline-neutral"> </span>
|
|
875
|
-
<span class="cline-any cline-no"> </span>
|
|
876
|
-
<span class="cline-any cline-neutral"> </span>
|
|
877
|
-
<span class="cline-any cline-no"> </span>
|
|
878
|
-
<span class="cline-any cline-neutral"> </span>
|
|
879
|
-
<span class="cline-any cline-neutral"> </span>
|
|
880
|
-
<span class="cline-any cline-neutral"> </span>
|
|
881
|
-
<span class="cline-any cline-neutral"> </span>
|
|
882
|
-
<span class="cline-any cline-yes">2x</span>
|
|
883
|
-
<span class="cline-any cline-no"> </span>
|
|
884
|
-
<span class="cline-any cline-neutral"> </span>
|
|
885
|
-
<span class="cline-any cline-neutral"> </span>
|
|
886
|
-
<span class="cline-any cline-neutral"> </span>
|
|
887
|
-
<span class="cline-any cline-neutral"> </span>
|
|
888
|
-
<span class="cline-any cline-neutral"> </span>
|
|
889
|
-
<span class="cline-any cline-neutral"> </span>
|
|
890
|
-
<span class="cline-any cline-neutral"> </span>
|
|
891
|
-
<span class="cline-any cline-neutral"> </span>
|
|
892
|
-
<span class="cline-any cline-neutral"> </span>
|
|
893
|
-
<span class="cline-any cline-neutral"> </span>
|
|
894
|
-
<span class="cline-any cline-neutral"> </span>
|
|
895
|
-
<span class="cline-any cline-neutral"> </span>
|
|
896
|
-
<span class="cline-any cline-neutral"> </span>
|
|
897
|
-
<span class="cline-any cline-neutral"> </span>
|
|
898
|
-
<span class="cline-any cline-neutral"> </span>
|
|
899
|
-
<span class="cline-any cline-neutral"> </span>
|
|
900
|
-
<span class="cline-any cline-neutral"> </span>
|
|
901
|
-
<span class="cline-any cline-yes">2x</span>
|
|
902
|
-
<span class="cline-any cline-neutral"> </span>
|
|
903
|
-
<span class="cline-any cline-no"> </span>
|
|
904
|
-
<span class="cline-any cline-neutral"> </span>
|
|
905
|
-
<span class="cline-any cline-neutral"> </span>
|
|
906
|
-
<span class="cline-any cline-neutral"> </span>
|
|
907
|
-
<span class="cline-any cline-no"> </span>
|
|
908
|
-
<span class="cline-any cline-no"> </span>
|
|
909
|
-
<span class="cline-any cline-neutral"> </span>
|
|
910
|
-
<span class="cline-any cline-neutral"> </span>
|
|
911
|
-
<span class="cline-any cline-neutral"> </span>
|
|
912
|
-
<span class="cline-any cline-no"> </span>
|
|
913
|
-
<span class="cline-any cline-no"> </span>
|
|
914
|
-
<span class="cline-any cline-neutral"> </span>
|
|
915
|
-
<span class="cline-any cline-neutral"> </span>
|
|
916
|
-
<span class="cline-any cline-no"> </span>
|
|
917
|
-
<span class="cline-any cline-neutral"> </span>
|
|
918
|
-
<span class="cline-any cline-neutral"> </span>
|
|
919
|
-
<span class="cline-any cline-neutral"> </span>
|
|
920
|
-
<span class="cline-any cline-neutral"> </span>
|
|
921
|
-
<span class="cline-any cline-neutral"> </span>
|
|
922
|
-
<span class="cline-any cline-no"> </span>
|
|
923
|
-
<span class="cline-any cline-neutral"> </span>
|
|
924
|
-
<span class="cline-any cline-no"> </span>
|
|
925
|
-
<span class="cline-any cline-no"> </span>
|
|
926
|
-
<span class="cline-any cline-neutral"> </span>
|
|
927
|
-
<span class="cline-any cline-neutral"> </span>
|
|
928
|
-
<span class="cline-any cline-neutral"> </span>
|
|
929
|
-
<span class="cline-any cline-neutral"> </span>
|
|
930
|
-
<span class="cline-any cline-no"> </span>
|
|
931
|
-
<span class="cline-any cline-no"> </span>
|
|
932
|
-
<span class="cline-any cline-neutral"> </span>
|
|
933
|
-
<span class="cline-any cline-neutral"> </span>
|
|
934
|
-
<span class="cline-any cline-neutral"> </span>
|
|
935
|
-
<span class="cline-any cline-neutral"> </span>
|
|
936
|
-
<span class="cline-any cline-no"> </span>
|
|
937
|
-
<span class="cline-any cline-neutral"> </span>
|
|
938
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
939
|
-
PackageNode,
|
|
940
|
-
CircularDependency,
|
|
941
|
-
GraphStats,
|
|
942
|
-
} from '../types/dependency.types';
|
|
943
|
-
|
|
944
|
-
// Get status color classes
|
|
945
|
-
export const getStatusColor = (status: string): string => {
|
|
946
|
-
switch (status) {
|
|
947
|
-
case 'healthy':
|
|
948
|
-
return 'text-green-600 bg-green-100';
|
|
949
|
-
case 'warning':
|
|
950
|
-
return 'text-yellow-600 bg-yellow-100';
|
|
951
|
-
case 'error':
|
|
952
|
-
return 'text-red-600 bg-red-100';
|
|
953
|
-
default:
|
|
954
|
-
return 'text-gray-600 bg-gray-100';
|
|
955
|
-
}
|
|
956
|
-
};
|
|
957
|
-
|
|
958
|
-
// Get type color classes
|
|
959
|
-
export const getTypeColor = (type: string): string => {
|
|
960
|
-
switch (type) {
|
|
961
|
-
case 'app':
|
|
962
|
-
return 'text-blue-600 bg-blue-100';
|
|
963
|
-
case 'lib':
|
|
964
|
-
return 'text-purple-600 bg-purple-100';
|
|
965
|
-
case 'tool':
|
|
966
|
-
return 'text-orange-600 bg-orange-100';
|
|
967
|
-
default:
|
|
968
|
-
return 'text-gray-600 bg-gray-100';
|
|
969
|
-
}
|
|
970
|
-
};
|
|
971
|
-
|
|
972
|
-
// Get dependency status color for visualization
|
|
973
|
-
export const getDependencyStatusColor = (
|
|
974
|
-
depName: string,
|
|
975
|
-
packages: PackageNode[]
|
|
976
|
-
): string => {
|
|
977
|
-
const dep = packages.find(pkg => pkg.name === depName);
|
|
978
|
-
if (!dep) return 'text-gray-400';
|
|
979
|
-
|
|
980
|
-
switch (dep.status) {
|
|
981
|
-
case 'healthy':
|
|
982
|
-
return 'text-green-500';
|
|
983
|
-
case 'warning':
|
|
984
|
-
return 'text-yellow-500';
|
|
985
|
-
case 'error':
|
|
986
|
-
return 'text-red-500';
|
|
987
|
-
<span class="branch-3 cbranch-no" title="branch not covered" > default:</span>
|
|
988
|
-
<span class="cstat-no" title="statement not covered" > return 'text-gray-400';</span>
|
|
989
|
-
}
|
|
990
|
-
};
|
|
991
|
-
|
|
992
|
-
// Calculate graph statistics
|
|
993
|
-
export const calculateGraphStats = (packages: PackageNode[]): GraphStats => {
|
|
994
|
-
const totalPackages = packages.length;
|
|
995
|
-
const totalDependencies = packages.reduce(
|
|
996
|
-
(sum, pkg) => sum + Object.keys(pkg.dependencies).length,
|
|
997
|
-
0
|
|
998
|
-
);
|
|
999
|
-
|
|
1000
|
-
// Find packages with no dependencies (leaf packages)
|
|
1001
|
-
const leafPackages = packages.filter(
|
|
1002
|
-
pkg => Object.keys(pkg.dependencies).length === 0
|
|
1003
|
-
).length;
|
|
1004
|
-
|
|
1005
|
-
// Find packages with no dependents (root packages)
|
|
1006
|
-
const rootPackages = packages.filter(
|
|
1007
|
-
pkg => pkg.dependents.length === 0
|
|
1008
|
-
).length;
|
|
1009
|
-
|
|
1010
|
-
// Calculate max depth and average dependencies
|
|
1011
|
-
const maxDepth = calculateMaxDepth(packages);
|
|
1012
|
-
const avgDependencies =
|
|
1013
|
-
totalPackages > 0 ? totalDependencies / totalPackages : 0;
|
|
1014
|
-
|
|
1015
|
-
// Detect circular dependencies
|
|
1016
|
-
const cycles = detectCircularDependencies(packages);
|
|
1017
|
-
|
|
1018
|
-
return {
|
|
1019
|
-
totalPackages,
|
|
1020
|
-
totalDependencies,
|
|
1021
|
-
circularDependencies: cycles.length,
|
|
1022
|
-
leafPackages,
|
|
1023
|
-
rootPackages,
|
|
1024
|
-
maxDepth,
|
|
1025
|
-
avgDependencies: Math.round(avgDependencies * 10) / 10,
|
|
1026
|
-
};
|
|
1027
|
-
};
|
|
1028
|
-
|
|
1029
|
-
// Calculate maximum dependency depth
|
|
1030
|
-
export const calculateMaxDepth = (packages: PackageNode[]): number => {
|
|
1031
|
-
const visited = new Set<string>();
|
|
1032
|
-
let maxDepth = 0;
|
|
1033
|
-
|
|
1034
|
-
const dfs = (packageName: string, depth: number): number => {
|
|
1035
|
-
if (visited.has(packageName)) return depth;
|
|
1036
|
-
visited.add(packageName);
|
|
1037
|
-
|
|
1038
|
-
const pkg = packages.find(p => p.name === packageName);
|
|
1039
|
-
if (!pkg) return depth;
|
|
1040
|
-
|
|
1041
|
-
let currentMaxDepth = depth;
|
|
1042
|
-
for (const depId of Object.keys(pkg.dependencies)) {
|
|
1043
|
-
const depDepth = dfs(depId, depth + 1);
|
|
1044
|
-
currentMaxDepth = Math.max(currentMaxDepth, depDepth);
|
|
1045
|
-
}
|
|
1046
|
-
|
|
1047
|
-
return currentMaxDepth;
|
|
1048
|
-
};
|
|
1049
|
-
|
|
1050
|
-
for (const pkg of packages) {
|
|
1051
|
-
if (!visited.has(pkg.name)) {
|
|
1052
|
-
const depth = dfs(pkg.name, 0);
|
|
1053
|
-
maxDepth = Math.max(maxDepth, depth);
|
|
1054
|
-
}
|
|
1055
|
-
}
|
|
1056
|
-
|
|
1057
|
-
return maxDepth;
|
|
1058
|
-
};
|
|
1059
|
-
|
|
1060
|
-
// Detect circular dependencies
|
|
1061
|
-
export const detectCircularDependencies = (
|
|
1062
|
-
packages: PackageNode[]
|
|
1063
|
-
): CircularDependency[] => {
|
|
1064
|
-
const cycles: CircularDependency[] = [];
|
|
1065
|
-
const visited = new Set<string>();
|
|
1066
|
-
const recursionStack = new Set<string>();
|
|
1067
|
-
const currentPath: string[] = [];
|
|
1068
|
-
|
|
1069
|
-
const dfs = (packageName: string): boolean => {
|
|
1070
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (recursionStack.has(packageName)) {
|
|
1071
|
-
// Found a cycle
|
|
1072
|
-
const cycleStart = <span class="cstat-no" title="statement not covered" >currentPath.indexOf(packageName);</span>
|
|
1073
|
-
const cycle = <span class="cstat-no" title="statement not covered" >currentPath.slice(cycleStart).concat(packageName);</span>
|
|
1074
|
-
|
|
1075
|
-
<span class="cstat-no" title="statement not covered" > cycles.push({</span>
|
|
1076
|
-
cycle,
|
|
1077
|
-
severity:
|
|
1078
|
-
cycle.length > 5 ? 'high' : cycle.length > 3 ? 'medium' : 'low',
|
|
1079
|
-
impact: `Circular dependency involving ${cycle.length} packages`,
|
|
1080
|
-
});
|
|
1081
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1082
|
-
}
|
|
1083
|
-
|
|
1084
|
-
if (visited.has(packageName)) return false;
|
|
1085
|
-
|
|
1086
|
-
visited.add(packageName);
|
|
1087
|
-
recursionStack.add(packageName);
|
|
1088
|
-
currentPath.push(packageName);
|
|
1089
|
-
|
|
1090
|
-
const pkg = packages.find(p => p.name === packageName);
|
|
1091
|
-
if (pkg) {
|
|
1092
|
-
for (const depId of Object.keys(pkg.dependencies)) {
|
|
1093
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (dfs(depId)) <span class="cstat-no" title="statement not covered" >return true;</span>
|
|
1094
|
-
}
|
|
1095
|
-
}
|
|
1096
|
-
|
|
1097
|
-
recursionStack.delete(packageName);
|
|
1098
|
-
currentPath.pop();
|
|
1099
|
-
return false;
|
|
1100
|
-
};
|
|
1101
|
-
|
|
1102
|
-
for (const pkg of packages) {
|
|
1103
|
-
if (!visited.has(pkg.name)) {
|
|
1104
|
-
dfs(pkg.name);
|
|
1105
|
-
}
|
|
1106
|
-
}
|
|
1107
|
-
|
|
1108
|
-
return cycles;
|
|
1109
|
-
};
|
|
1110
|
-
|
|
1111
|
-
// Sort packages by different criteria
|
|
1112
|
-
export const sortPackages = <span class="fstat-no" title="function not covered" >(</span>
|
|
1113
|
-
packages: PackageNode[],
|
|
1114
|
-
sortBy: 'name' | 'dependencies' | 'dependents' | 'status',
|
|
1115
|
-
order: 'asc' | 'desc'
|
|
1116
|
-
): PackageNode[] => {
|
|
1117
|
-
<span class="cstat-no" title="statement not covered" > return [...packages].sort(<span class="fstat-no" title="function not covered" >(a</span>, b) => {</span>
|
|
1118
|
-
let aValue: any;
|
|
1119
|
-
let bValue: any;
|
|
1120
|
-
|
|
1121
|
-
<span class="cstat-no" title="statement not covered" > switch (sortBy) {</span>
|
|
1122
|
-
case 'name':
|
|
1123
|
-
<span class="cstat-no" title="statement not covered" > aValue = a.name.toLowerCase();</span>
|
|
1124
|
-
<span class="cstat-no" title="statement not covered" > bValue = b.name.toLowerCase();</span>
|
|
1125
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1126
|
-
case 'dependencies':
|
|
1127
|
-
<span class="cstat-no" title="statement not covered" > aValue = Object.keys(a.dependencies).length;</span>
|
|
1128
|
-
<span class="cstat-no" title="statement not covered" > bValue = Object.keys(b.dependencies).length;</span>
|
|
1129
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1130
|
-
case 'dependents':
|
|
1131
|
-
<span class="cstat-no" title="statement not covered" > aValue = a.dependents.length;</span>
|
|
1132
|
-
<span class="cstat-no" title="statement not covered" > bValue = b.dependents.length;</span>
|
|
1133
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1134
|
-
case 'status': {
|
|
1135
|
-
const statusOrder = <span class="cstat-no" title="statement not covered" >{ error: 0, warning: 1, healthy: 2 };</span>
|
|
1136
|
-
<span class="cstat-no" title="statement not covered" > aValue = statusOrder[a.status] || 3;</span>
|
|
1137
|
-
<span class="cstat-no" title="statement not covered" > bValue = statusOrder[b.status] || 3;</span>
|
|
1138
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1139
|
-
}
|
|
1140
|
-
default:
|
|
1141
|
-
<span class="cstat-no" title="statement not covered" > return 0;</span>
|
|
1142
|
-
}
|
|
1143
|
-
|
|
1144
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (aValue < bValue) <span class="cstat-no" title="statement not covered" >return order === 'asc' ? -1 : 1;</span></span>
|
|
1145
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (aValue > bValue) <span class="cstat-no" title="statement not covered" >return order === 'asc' ? 1 : -1;</span></span>
|
|
1146
|
-
<span class="cstat-no" title="statement not covered" > return 0;</span>
|
|
1147
|
-
});
|
|
1148
|
-
};
|
|
1149
|
-
|
|
1150
|
-
// Calculate layout positions for different algorithms
|
|
1151
|
-
export const calculateLayout = <span class="fstat-no" title="function not covered" >(</span>
|
|
1152
|
-
packages: PackageNode[],
|
|
1153
|
-
layout: 'hierarchical' | 'circular' | 'force',
|
|
1154
|
-
width: number = <span class="branch-0 cbranch-no" title="branch not covered" >800,</span>
|
|
1155
|
-
height: number = <span class="branch-0 cbranch-no" title="branch not covered" >600</span>
|
|
1156
|
-
): PackageNode[] => {
|
|
1157
|
-
<span class="cstat-no" title="statement not covered" > switch (layout) {</span>
|
|
1158
|
-
case 'hierarchical':
|
|
1159
|
-
<span class="cstat-no" title="statement not covered" > return calculateHierarchicalLayout(packages, width, height);</span>
|
|
1160
|
-
case 'circular':
|
|
1161
|
-
<span class="cstat-no" title="statement not covered" > return calculateCircularLayout(packages, width, height);</span>
|
|
1162
|
-
case 'force':
|
|
1163
|
-
<span class="cstat-no" title="statement not covered" > return calculateForceLayout(packages, width, height);</span>
|
|
1164
|
-
default:
|
|
1165
|
-
<span class="cstat-no" title="statement not covered" > return packages;</span>
|
|
1166
|
-
}
|
|
1167
|
-
};
|
|
1168
|
-
|
|
1169
|
-
// Hierarchical layout algorithm
|
|
1170
|
-
const calculateHierarchicalLayout = <span class="fstat-no" title="function not covered" >(</span>
|
|
1171
|
-
packages: PackageNode[],
|
|
1172
|
-
width: number,
|
|
1173
|
-
height: number
|
|
1174
|
-
): PackageNode[] => {
|
|
1175
|
-
const layers: string[][] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
1176
|
-
const visited = <span class="cstat-no" title="statement not covered" >new Set<string>();</span>
|
|
1177
|
-
|
|
1178
|
-
// Group packages by dependency level
|
|
1179
|
-
const assignLayers = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>ackageName: string, layer: number) => {</span>
|
|
1180
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (visited.has(packageName)) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
1181
|
-
<span class="cstat-no" title="statement not covered" > visited.add(packageName);</span>
|
|
1182
|
-
|
|
1183
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!layers[layer]) <span class="cstat-no" title="statement not covered" >layers[layer] = [];</span></span>
|
|
1184
|
-
<span class="cstat-no" title="statement not covered" > layers[layer].push(packageName);</span>
|
|
1185
|
-
|
|
1186
|
-
const pkg = <span class="cstat-no" title="statement not covered" >packages.find(<span class="fstat-no" title="function not covered" >p </span>=> <span class="cstat-no" title="statement not covered" >p.name === packageName)</span>;</span>
|
|
1187
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (pkg) {</span>
|
|
1188
|
-
<span class="cstat-no" title="statement not covered" > pkg.dependents.forEach(<span class="fstat-no" title="function not covered" >depName </span>=> <span class="cstat-no" title="statement not covered" >assignLayers(depName, layer + 1))</span>;</span>
|
|
1189
|
-
}
|
|
1190
|
-
};
|
|
1191
|
-
// Start with packages that have no dependencies and build downwards with their dependents
|
|
1192
|
-
<span class="cstat-no" title="statement not covered" > packages</span>
|
|
1193
|
-
.filter(
|
|
1194
|
-
<span class="fstat-no" title="function not covered" > pkg </span>=>
|
|
1195
|
-
<span class="cstat-no" title="statement not covered" > Object.keys(pkg.dependencies).length === 0 && pkg.dependents.length > 0</span>
|
|
1196
|
-
)
|
|
1197
|
-
.forEach(<span class="fstat-no" title="function not covered" >pkg </span>=> {
|
|
1198
|
-
<span class="cstat-no" title="statement not covered" > assignLayers(pkg.name, 0);</span>
|
|
1199
|
-
});
|
|
1200
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (layers.length === 0) {</span>
|
|
1201
|
-
// In case there are no root packages with dependents, start with others
|
|
1202
|
-
<span class="cstat-no" title="statement not covered" > packages</span>
|
|
1203
|
-
.filter(
|
|
1204
|
-
<span class="fstat-no" title="function not covered" > pkg </span>=>
|
|
1205
|
-
<span class="cstat-no" title="statement not covered" > Object.keys(pkg.dependencies).length > 0 && pkg.dependents.length > 0</span>
|
|
1206
|
-
)
|
|
1207
|
-
.forEach(<span class="fstat-no" title="function not covered" >pkg </span>=> {
|
|
1208
|
-
<span class="cstat-no" title="statement not covered" > assignLayers(pkg.name, 0);</span>
|
|
1209
|
-
});
|
|
1210
|
-
}
|
|
1211
|
-
|
|
1212
|
-
// Position packages
|
|
1213
|
-
<span class="cstat-no" title="statement not covered" > return packages.map(<span class="fstat-no" title="function not covered" >pkg </span>=> {</span>
|
|
1214
|
-
const layer = <span class="cstat-no" title="statement not covered" >layers.findIndex(<span class="fstat-no" title="function not covered" >l </span>=> <span class="cstat-no" title="statement not covered" >l.includes(pkg.name))</span>;</span>
|
|
1215
|
-
const positionInLayer = <span class="cstat-no" title="statement not covered" >layers[layer]?.indexOf(pkg.name) || 0;</span>
|
|
1216
|
-
const layerSize = <span class="cstat-no" title="statement not covered" >layers[layer]?.length || 1;</span>
|
|
1217
|
-
|
|
1218
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
1219
|
-
...pkg,
|
|
1220
|
-
x: (width / (layers.length + 1)) * (layer + 1) - 50,
|
|
1221
|
-
y: (height / (layerSize + 1)) * (positionInLayer + 1) - 25,
|
|
1222
|
-
};
|
|
1223
|
-
});
|
|
1224
|
-
};
|
|
1225
|
-
|
|
1226
|
-
// Circular layout algorithm
|
|
1227
|
-
const calculateCircularLayout = <span class="fstat-no" title="function not covered" >(</span>
|
|
1228
|
-
packages: PackageNode[],
|
|
1229
|
-
width: number,
|
|
1230
|
-
height: number
|
|
1231
|
-
): PackageNode[] => {
|
|
1232
|
-
const centerX = <span class="cstat-no" title="statement not covered" >width / 2;</span>
|
|
1233
|
-
const centerY = <span class="cstat-no" title="statement not covered" >height / 2;</span>
|
|
1234
|
-
const radius = <span class="cstat-no" title="statement not covered" >Math.min(width, height) / 3;</span>
|
|
1235
|
-
|
|
1236
|
-
<span class="cstat-no" title="statement not covered" > return packages.map(<span class="fstat-no" title="function not covered" >(p</span>kg, index) => {</span>
|
|
1237
|
-
const angle = <span class="cstat-no" title="statement not covered" >(2 * Math.PI * index) / packages.length;</span>
|
|
1238
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
1239
|
-
...pkg,
|
|
1240
|
-
x: centerX + radius * Math.cos(angle) - 50,
|
|
1241
|
-
y: centerY + radius * Math.sin(angle) - 25,
|
|
1242
|
-
};
|
|
1243
|
-
});
|
|
1244
|
-
};
|
|
1245
|
-
|
|
1246
|
-
// Force-directed layout algorithm (simplified)
|
|
1247
|
-
const calculateForceLayout = <span class="fstat-no" title="function not covered" >(</span>
|
|
1248
|
-
packages: PackageNode[],
|
|
1249
|
-
width: number,
|
|
1250
|
-
height: number
|
|
1251
|
-
): PackageNode[] => {
|
|
1252
|
-
// This is a simplified version - in a real implementation you'd use a proper force simulation
|
|
1253
|
-
const positioned = <span class="cstat-no" title="statement not covered" >packages.map(<span class="fstat-no" title="function not covered" >(p</span>kg, index) => (<span class="cstat-no" title="statement not covered" >{</span></span>
|
|
1254
|
-
...pkg,
|
|
1255
|
-
x: Math.random() * (width - 100),
|
|
1256
|
-
y: Math.random() * (height - 50),
|
|
1257
|
-
}));
|
|
1258
|
-
|
|
1259
|
-
// Apply simple force-based positioning
|
|
1260
|
-
<span class="cstat-no" title="statement not covered" > for (let iteration = <span class="cstat-no" title="statement not covered" >0;</span> iteration < 50; iteration++) {</span>
|
|
1261
|
-
<span class="cstat-no" title="statement not covered" > positioned.forEach(<span class="fstat-no" title="function not covered" >pkg </span>=> {</span>
|
|
1262
|
-
let forceX = <span class="cstat-no" title="statement not covered" >0;</span>
|
|
1263
|
-
let forceY = <span class="cstat-no" title="statement not covered" >0;</span>
|
|
1264
|
-
|
|
1265
|
-
// Repulsion from other nodes
|
|
1266
|
-
<span class="cstat-no" title="statement not covered" > positioned.forEach(<span class="fstat-no" title="function not covered" >other </span>=> {</span>
|
|
1267
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (other.name !== pkg.name) {</span>
|
|
1268
|
-
const dx = <span class="cstat-no" title="statement not covered" >pkg.x - other.x;</span>
|
|
1269
|
-
const dy = <span class="cstat-no" title="statement not covered" >pkg.y - other.y;</span>
|
|
1270
|
-
const distance = <span class="cstat-no" title="statement not covered" >Math.sqrt(dx * dx + dy * dy) || 1;</span>
|
|
1271
|
-
const force = <span class="cstat-no" title="statement not covered" >1000 / (distance * distance);</span>
|
|
1272
|
-
<span class="cstat-no" title="statement not covered" > forceX += (dx / distance) * force;</span>
|
|
1273
|
-
<span class="cstat-no" title="statement not covered" > forceY += (dy / distance) * force;</span>
|
|
1274
|
-
}
|
|
1275
|
-
});
|
|
1276
|
-
|
|
1277
|
-
// Attraction to connected nodes
|
|
1278
|
-
<span class="cstat-no" title="statement not covered" > Object.keys(pkg.dependencies).forEach(<span class="fstat-no" title="function not covered" >depId </span>=> {</span>
|
|
1279
|
-
const dep = <span class="cstat-no" title="statement not covered" >positioned.find(<span class="fstat-no" title="function not covered" >p </span>=> <span class="cstat-no" title="statement not covered" >p.name === depId)</span>;</span>
|
|
1280
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (dep) {</span>
|
|
1281
|
-
const dx = <span class="cstat-no" title="statement not covered" >dep.x - pkg.x;</span>
|
|
1282
|
-
const dy = <span class="cstat-no" title="statement not covered" >dep.y - pkg.y;</span>
|
|
1283
|
-
const distance = <span class="cstat-no" title="statement not covered" >Math.sqrt(dx * dx + dy * dy) || 1;</span>
|
|
1284
|
-
const force = <span class="cstat-no" title="statement not covered" >distance * 0.01;</span>
|
|
1285
|
-
<span class="cstat-no" title="statement not covered" > forceX += (dx / distance) * force;</span>
|
|
1286
|
-
<span class="cstat-no" title="statement not covered" > forceY += (dy / distance) * force;</span>
|
|
1287
|
-
}
|
|
1288
|
-
});
|
|
1289
|
-
|
|
1290
|
-
// Apply forces with damping
|
|
1291
|
-
<span class="cstat-no" title="statement not covered" > pkg.x += forceX * 0.1;</span>
|
|
1292
|
-
<span class="cstat-no" title="statement not covered" > pkg.y += forceY * 0.1;</span>
|
|
1293
|
-
|
|
1294
|
-
// Keep within bounds
|
|
1295
|
-
<span class="cstat-no" title="statement not covered" > pkg.x = Math.max(50, Math.min(width - 100, pkg.x));</span>
|
|
1296
|
-
<span class="cstat-no" title="statement not covered" > pkg.y = Math.max(25, Math.min(height - 50, pkg.y));</span>
|
|
1297
|
-
});
|
|
1298
|
-
}
|
|
1299
|
-
|
|
1300
|
-
<span class="cstat-no" title="statement not covered" > return positioned;</span>
|
|
1301
|
-
};
|
|
1302
|
-
|
|
1303
|
-
// Get package type icon
|
|
1304
|
-
export const getPackageTypeIcon = <span class="fstat-no" title="function not covered" >(t</span>ype: string): string => {
|
|
1305
|
-
<span class="cstat-no" title="statement not covered" > switch (type) {</span>
|
|
1306
|
-
case 'app':
|
|
1307
|
-
<span class="cstat-no" title="statement not covered" > return '🚀';</span>
|
|
1308
|
-
case 'lib':
|
|
1309
|
-
<span class="cstat-no" title="statement not covered" > return '📚';</span>
|
|
1310
|
-
case 'tool':
|
|
1311
|
-
<span class="cstat-no" title="statement not covered" > return '🔧';</span>
|
|
1312
|
-
default:
|
|
1313
|
-
<span class="cstat-no" title="statement not covered" > return '📦';</span>
|
|
1314
|
-
}
|
|
1315
|
-
};
|
|
1316
|
-
|
|
1317
|
-
// Format package name for display
|
|
1318
|
-
export const formatPackageName = <span class="fstat-no" title="function not covered" >(n</span>ame: string): string => {
|
|
1319
|
-
<span class="cstat-no" title="statement not covered" > return name.length > 12 ? `${name.substring(0, 12)}...` : name;</span>
|
|
1320
|
-
};
|
|
1321
|
-
|
|
1322
|
-
// --- DATA TRANSFORMATION UTILITY ---
|
|
1323
|
-
|
|
1324
|
-
/**
|
|
1325
|
-
* Type definition for the final output map.
|
|
1326
|
-
* Key: Dependency Name (e.g., 'react', '@monodog/backend')
|
|
1327
|
-
* Value: Array of Package Names that depend on the key (e.g., ['@monodog/dashboard'])
|
|
1328
|
-
*/
|
|
1329
|
-
type DependentsMap = Record<string, string[]>;
|
|
1330
|
-
|
|
1331
|
-
/**
|
|
1332
|
-
* Calculates and returns a map of all packages that depend on every other package
|
|
1333
|
-
* and third-party library in the monorepo.
|
|
1334
|
-
* * @param packages The array of packages, where dependency lists are already parsed into string arrays.
|
|
1335
|
-
* @returns A map where keys are dependencies and values are arrays of dependents.
|
|
1336
|
-
*/
|
|
1337
|
-
export const mapAllDependents = <span class="fstat-no" title="function not covered" >(p</span>ackages: PackageNode[]): DependentsMap => {
|
|
1338
|
-
// Use a Record to build the map efficiently.
|
|
1339
|
-
const allDependentsMap: DependentsMap = <span class="cstat-no" title="statement not covered" >{};</span>
|
|
1340
|
-
|
|
1341
|
-
// 1. First, ensure every package itself is registered as a dependency, even if nothing
|
|
1342
|
-
// currently depends on it (it will start with an empty array).
|
|
1343
|
-
<span class="cstat-no" title="statement not covered" > packages.forEach(<span class="fstat-no" title="function not covered" >pkg </span>=> {</span>
|
|
1344
|
-
<span class="cstat-no" title="statement not covered" > allDependentsMap[pkg.name] = [];</span>
|
|
1345
|
-
});
|
|
1346
|
-
|
|
1347
|
-
// 2. Iterate through every package to find out what depends on them.
|
|
1348
|
-
<span class="cstat-no" title="statement not covered" > packages.forEach(<span class="fstat-no" title="function not covered" >dependentPkg </span>=> {</span>
|
|
1349
|
-
const dependentName = <span class="cstat-no" title="statement not covered" >dependentPkg.name;</span>
|
|
1350
|
-
|
|
1351
|
-
// Combine runtime and dev dependencies into a single set for efficient iteration
|
|
1352
|
-
const allDependencies = <span class="cstat-no" title="statement not covered" >[</span>
|
|
1353
|
-
...Object.keys(dependentPkg.dependencies ?? {}),
|
|
1354
|
-
...Object.keys(dependentPkg.devDependencies ?? {}),
|
|
1355
|
-
...Object.keys(dependentPkg.peerDependencies ?? {}),
|
|
1356
|
-
];
|
|
1357
|
-
|
|
1358
|
-
<span class="cstat-no" title="statement not covered" > allDependencies.forEach(<span class="fstat-no" title="function not covered" >dependencyName </span>=> {</span>
|
|
1359
|
-
// Initialize the array for the dependency if it doesn't exist yet (for external libraries)
|
|
1360
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!allDependentsMap[dependencyName]) {</span>
|
|
1361
|
-
<span class="cstat-no" title="statement not covered" > allDependentsMap[dependencyName] = [];</span>
|
|
1362
|
-
}
|
|
1363
|
-
|
|
1364
|
-
// Add the current package (the dependent) to the dependency's list
|
|
1365
|
-
// Check to prevent duplicates, although it's rare in this context
|
|
1366
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!allDependentsMap[dependencyName].includes(dependentName)) {</span>
|
|
1367
|
-
<span class="cstat-no" title="statement not covered" > allDependentsMap[dependencyName].push(dependentName);</span>
|
|
1368
|
-
}
|
|
1369
|
-
});
|
|
1370
|
-
});
|
|
1371
|
-
|
|
1372
|
-
<span class="cstat-no" title="statement not covered" > return allDependentsMap;</span>
|
|
1373
|
-
};
|
|
1374
|
-
</pre></td></tr></table></pre>
|
|
1375
|
-
|
|
1376
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
1377
|
-
</div><!-- /wrapper -->
|
|
1378
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
1379
|
-
Code coverage generated by
|
|
1380
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1381
|
-
at 2025-12-02T06:35:57.081Z
|
|
1382
|
-
</div>
|
|
1383
|
-
<script src="../../../../prettify.js"></script>
|
|
1384
|
-
<script>
|
|
1385
|
-
window.onload = function () {
|
|
1386
|
-
prettyPrint();
|
|
1387
|
-
};
|
|
1388
|
-
</script>
|
|
1389
|
-
<script src="../../../../sorter.js"></script>
|
|
1390
|
-
<script src="../../../../block-navigation.js"></script>
|
|
1391
|
-
</body>
|
|
1392
|
-
</html>
|
|
1393
|
-
|