agent-ide 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +678 -0
- package/bin/agent-ide.js +19 -0
- package/bin/mcp-server.js +20 -0
- package/dist/application/events/event-bus.d.ts +107 -0
- package/dist/application/events/event-bus.d.ts.map +1 -0
- package/dist/application/events/event-bus.js +364 -0
- package/dist/application/events/event-bus.js.map +1 -0
- package/dist/application/events/event-types.d.ts +195 -0
- package/dist/application/events/event-types.d.ts.map +1 -0
- package/dist/application/events/event-types.js +36 -0
- package/dist/application/events/event-types.js.map +1 -0
- package/dist/application/events/index.d.ts +6 -0
- package/dist/application/events/index.d.ts.map +1 -0
- package/dist/application/events/index.js +6 -0
- package/dist/application/events/index.js.map +1 -0
- package/dist/application/index.d.ts +85 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +138 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/services/cache-coordinator.service.d.ts +69 -0
- package/dist/application/services/cache-coordinator.service.d.ts.map +1 -0
- package/dist/application/services/cache-coordinator.service.js +251 -0
- package/dist/application/services/cache-coordinator.service.js.map +1 -0
- package/dist/application/services/error-handler.service.d.ts +56 -0
- package/dist/application/services/error-handler.service.d.ts.map +1 -0
- package/dist/application/services/error-handler.service.js +273 -0
- package/dist/application/services/error-handler.service.js.map +1 -0
- package/dist/application/services/index.d.ts +8 -0
- package/dist/application/services/index.d.ts.map +1 -0
- package/dist/application/services/index.js +8 -0
- package/dist/application/services/index.js.map +1 -0
- package/dist/application/services/module-coordinator.service.d.ts +70 -0
- package/dist/application/services/module-coordinator.service.d.ts.map +1 -0
- package/dist/application/services/module-coordinator.service.js +418 -0
- package/dist/application/services/module-coordinator.service.js.map +1 -0
- package/dist/application/services/session-manager.service.d.ts +86 -0
- package/dist/application/services/session-manager.service.d.ts.map +1 -0
- package/dist/application/services/session-manager.service.js +318 -0
- package/dist/application/services/session-manager.service.js.map +1 -0
- package/dist/application/services/workflow-engine.service.d.ts +76 -0
- package/dist/application/services/workflow-engine.service.d.ts.map +1 -0
- package/dist/application/services/workflow-engine.service.js +405 -0
- package/dist/application/services/workflow-engine.service.js.map +1 -0
- package/dist/application/state/application-state.d.ts +164 -0
- package/dist/application/state/application-state.d.ts.map +1 -0
- package/dist/application/state/application-state.js +290 -0
- package/dist/application/state/application-state.js.map +1 -0
- package/dist/application/state/index.d.ts +15 -0
- package/dist/application/state/index.d.ts.map +1 -0
- package/dist/application/state/index.js +15 -0
- package/dist/application/state/index.js.map +1 -0
- package/dist/application/state/session-state.d.ts +114 -0
- package/dist/application/state/session-state.d.ts.map +1 -0
- package/dist/application/state/session-state.js +188 -0
- package/dist/application/state/session-state.js.map +1 -0
- package/dist/application/state/state-manager.d.ts +122 -0
- package/dist/application/state/state-manager.d.ts.map +1 -0
- package/dist/application/state/state-manager.js +234 -0
- package/dist/application/state/state-manager.js.map +1 -0
- package/dist/application/types.d.ts +280 -0
- package/dist/application/types.d.ts.map +1 -0
- package/dist/application/types.js +13 -0
- package/dist/application/types.js.map +1 -0
- package/dist/application/workflows/analysis-workflow.d.ts +239 -0
- package/dist/application/workflows/analysis-workflow.d.ts.map +1 -0
- package/dist/application/workflows/analysis-workflow.js +395 -0
- package/dist/application/workflows/analysis-workflow.js.map +1 -0
- package/dist/application/workflows/base-workflow.d.ts +108 -0
- package/dist/application/workflows/base-workflow.d.ts.map +1 -0
- package/dist/application/workflows/base-workflow.js +236 -0
- package/dist/application/workflows/base-workflow.js.map +1 -0
- package/dist/application/workflows/index.d.ts +115 -0
- package/dist/application/workflows/index.d.ts.map +1 -0
- package/dist/application/workflows/index.js +218 -0
- package/dist/application/workflows/index.js.map +1 -0
- package/dist/application/workflows/refactor-workflow.d.ts +107 -0
- package/dist/application/workflows/refactor-workflow.d.ts.map +1 -0
- package/dist/application/workflows/refactor-workflow.js +310 -0
- package/dist/application/workflows/refactor-workflow.js.map +1 -0
- package/dist/core/analysis/complexity-analyzer.d.ts +81 -0
- package/dist/core/analysis/complexity-analyzer.d.ts.map +1 -0
- package/dist/core/analysis/complexity-analyzer.js +254 -0
- package/dist/core/analysis/complexity-analyzer.js.map +1 -0
- package/dist/core/analysis/dead-code-detector.d.ts +123 -0
- package/dist/core/analysis/dead-code-detector.d.ts.map +1 -0
- package/dist/core/analysis/dead-code-detector.js +275 -0
- package/dist/core/analysis/dead-code-detector.js.map +1 -0
- package/dist/core/analysis/duplication-detector.d.ts +150 -0
- package/dist/core/analysis/duplication-detector.d.ts.map +1 -0
- package/dist/core/analysis/duplication-detector.js +433 -0
- package/dist/core/analysis/duplication-detector.js.map +1 -0
- package/dist/core/analysis/index.d.ts +9 -0
- package/dist/core/analysis/index.d.ts.map +1 -0
- package/dist/core/analysis/index.js +13 -0
- package/dist/core/analysis/index.js.map +1 -0
- package/dist/core/analysis/quality-metrics.d.ts +158 -0
- package/dist/core/analysis/quality-metrics.d.ts.map +1 -0
- package/dist/core/analysis/quality-metrics.js +442 -0
- package/dist/core/analysis/quality-metrics.js.map +1 -0
- package/dist/core/dependency/cycle-detector.d.ts +81 -0
- package/dist/core/dependency/cycle-detector.d.ts.map +1 -0
- package/dist/core/dependency/cycle-detector.js +300 -0
- package/dist/core/dependency/cycle-detector.js.map +1 -0
- package/dist/core/dependency/dependency-analyzer.d.ts +152 -0
- package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -0
- package/dist/core/dependency/dependency-analyzer.js +458 -0
- package/dist/core/dependency/dependency-analyzer.js.map +1 -0
- package/dist/core/dependency/dependency-graph.d.ts +156 -0
- package/dist/core/dependency/dependency-graph.d.ts.map +1 -0
- package/dist/core/dependency/dependency-graph.js +371 -0
- package/dist/core/dependency/dependency-graph.js.map +1 -0
- package/dist/core/dependency/index.d.ts +27 -0
- package/dist/core/dependency/index.d.ts.map +1 -0
- package/dist/core/dependency/index.js +36 -0
- package/dist/core/dependency/index.js.map +1 -0
- package/dist/core/dependency/types.d.ts +168 -0
- package/dist/core/dependency/types.d.ts.map +1 -0
- package/dist/core/dependency/types.js +103 -0
- package/dist/core/dependency/types.js.map +1 -0
- package/dist/core/indexing/file-index.d.ts +117 -0
- package/dist/core/indexing/file-index.d.ts.map +1 -0
- package/dist/core/indexing/file-index.js +302 -0
- package/dist/core/indexing/file-index.js.map +1 -0
- package/dist/core/indexing/file-watcher.d.ts +110 -0
- package/dist/core/indexing/file-watcher.d.ts.map +1 -0
- package/dist/core/indexing/file-watcher.js +280 -0
- package/dist/core/indexing/file-watcher.js.map +1 -0
- package/dist/core/indexing/index-engine.d.ts +120 -0
- package/dist/core/indexing/index-engine.d.ts.map +1 -0
- package/dist/core/indexing/index-engine.js +445 -0
- package/dist/core/indexing/index-engine.js.map +1 -0
- package/dist/core/indexing/index.d.ts +25 -0
- package/dist/core/indexing/index.d.ts.map +1 -0
- package/dist/core/indexing/index.js +36 -0
- package/dist/core/indexing/index.js.map +1 -0
- package/dist/core/indexing/symbol-index.d.ts +107 -0
- package/dist/core/indexing/symbol-index.d.ts.map +1 -0
- package/dist/core/indexing/symbol-index.js +352 -0
- package/dist/core/indexing/symbol-index.js.map +1 -0
- package/dist/core/indexing/types.d.ts +222 -0
- package/dist/core/indexing/types.d.ts.map +1 -0
- package/dist/core/indexing/types.js +143 -0
- package/dist/core/indexing/types.js.map +1 -0
- package/dist/core/move/import-resolver.d.ts +54 -0
- package/dist/core/move/import-resolver.d.ts.map +1 -0
- package/dist/core/move/import-resolver.js +268 -0
- package/dist/core/move/import-resolver.js.map +1 -0
- package/dist/core/move/index.d.ts +10 -0
- package/dist/core/move/index.d.ts.map +1 -0
- package/dist/core/move/index.js +12 -0
- package/dist/core/move/index.js.map +1 -0
- package/dist/core/move/move-service.d.ts +67 -0
- package/dist/core/move/move-service.d.ts.map +1 -0
- package/dist/core/move/move-service.js +400 -0
- package/dist/core/move/move-service.js.map +1 -0
- package/dist/core/move/types.d.ts +266 -0
- package/dist/core/move/types.d.ts.map +1 -0
- package/dist/core/move/types.js +101 -0
- package/dist/core/move/types.js.map +1 -0
- package/dist/core/performance/analyzer.d.ts +62 -0
- package/dist/core/performance/analyzer.d.ts.map +1 -0
- package/dist/core/performance/analyzer.js +378 -0
- package/dist/core/performance/analyzer.js.map +1 -0
- package/dist/core/performance/cache-manager.d.ts +161 -0
- package/dist/core/performance/cache-manager.d.ts.map +1 -0
- package/dist/core/performance/cache-manager.js +375 -0
- package/dist/core/performance/cache-manager.js.map +1 -0
- package/dist/core/performance/index.d.ts +14 -0
- package/dist/core/performance/index.d.ts.map +1 -0
- package/dist/core/performance/index.js +17 -0
- package/dist/core/performance/index.js.map +1 -0
- package/dist/core/performance/interfaces.d.ts +188 -0
- package/dist/core/performance/interfaces.d.ts.map +1 -0
- package/dist/core/performance/interfaces.js +17 -0
- package/dist/core/performance/interfaces.js.map +1 -0
- package/dist/core/performance/memory-manager.d.ts +176 -0
- package/dist/core/performance/memory-manager.d.ts.map +1 -0
- package/dist/core/performance/memory-manager.js +364 -0
- package/dist/core/performance/memory-manager.js.map +1 -0
- package/dist/core/performance/monitor.d.ts +92 -0
- package/dist/core/performance/monitor.d.ts.map +1 -0
- package/dist/core/performance/monitor.js +228 -0
- package/dist/core/performance/monitor.js.map +1 -0
- package/dist/core/refactor/design-patterns.d.ts +178 -0
- package/dist/core/refactor/design-patterns.d.ts.map +1 -0
- package/dist/core/refactor/design-patterns.js +656 -0
- package/dist/core/refactor/design-patterns.js.map +1 -0
- package/dist/core/refactor/extract-function.d.ts +175 -0
- package/dist/core/refactor/extract-function.d.ts.map +1 -0
- package/dist/core/refactor/extract-function.js +478 -0
- package/dist/core/refactor/extract-function.js.map +1 -0
- package/dist/core/refactor/index.d.ts +8 -0
- package/dist/core/refactor/index.d.ts.map +1 -0
- package/dist/core/refactor/index.js +11 -0
- package/dist/core/refactor/index.js.map +1 -0
- package/dist/core/refactor/inline-function.d.ts +175 -0
- package/dist/core/refactor/inline-function.d.ts.map +1 -0
- package/dist/core/refactor/inline-function.js +425 -0
- package/dist/core/refactor/inline-function.js.map +1 -0
- package/dist/core/rename/index.d.ts +9 -0
- package/dist/core/rename/index.d.ts.map +1 -0
- package/dist/core/rename/index.js +13 -0
- package/dist/core/rename/index.js.map +1 -0
- package/dist/core/rename/reference-updater.d.ts +77 -0
- package/dist/core/rename/reference-updater.d.ts.map +1 -0
- package/dist/core/rename/reference-updater.js +400 -0
- package/dist/core/rename/reference-updater.js.map +1 -0
- package/dist/core/rename/rename-engine.d.ts +69 -0
- package/dist/core/rename/rename-engine.d.ts.map +1 -0
- package/dist/core/rename/rename-engine.js +350 -0
- package/dist/core/rename/rename-engine.js.map +1 -0
- package/dist/core/rename/scope-analyzer.d.ts +75 -0
- package/dist/core/rename/scope-analyzer.d.ts.map +1 -0
- package/dist/core/rename/scope-analyzer.js +269 -0
- package/dist/core/rename/scope-analyzer.js.map +1 -0
- package/dist/core/rename/types.d.ts +163 -0
- package/dist/core/rename/types.d.ts.map +1 -0
- package/dist/core/rename/types.js +80 -0
- package/dist/core/rename/types.js.map +1 -0
- package/dist/core/search/engines/text-engine.d.ts +52 -0
- package/dist/core/search/engines/text-engine.d.ts.map +1 -0
- package/dist/core/search/engines/text-engine.js +376 -0
- package/dist/core/search/engines/text-engine.js.map +1 -0
- package/dist/core/search/index.d.ts +10 -0
- package/dist/core/search/index.d.ts.map +1 -0
- package/dist/core/search/index.js +11 -0
- package/dist/core/search/index.js.map +1 -0
- package/dist/core/search/service.d.ts +105 -0
- package/dist/core/search/service.d.ts.map +1 -0
- package/dist/core/search/service.js +384 -0
- package/dist/core/search/service.js.map +1 -0
- package/dist/core/search/types.d.ts +357 -0
- package/dist/core/search/types.d.ts.map +1 -0
- package/dist/core/search/types.js +47 -0
- package/dist/core/search/types.js.map +1 -0
- package/dist/infrastructure/cache/cache-manager.d.ts +113 -0
- package/dist/infrastructure/cache/cache-manager.d.ts.map +1 -0
- package/dist/infrastructure/cache/cache-manager.js +279 -0
- package/dist/infrastructure/cache/cache-manager.js.map +1 -0
- package/dist/infrastructure/cache/index.d.ts +138 -0
- package/dist/infrastructure/cache/index.d.ts.map +1 -0
- package/dist/infrastructure/cache/index.js +266 -0
- package/dist/infrastructure/cache/index.js.map +1 -0
- package/dist/infrastructure/cache/memory-cache.d.ts +94 -0
- package/dist/infrastructure/cache/memory-cache.d.ts.map +1 -0
- package/dist/infrastructure/cache/memory-cache.js +327 -0
- package/dist/infrastructure/cache/memory-cache.js.map +1 -0
- package/dist/infrastructure/cache/strategies.d.ts +99 -0
- package/dist/infrastructure/cache/strategies.d.ts.map +1 -0
- package/dist/infrastructure/cache/strategies.js +230 -0
- package/dist/infrastructure/cache/strategies.js.map +1 -0
- package/dist/infrastructure/cache/types.d.ts +220 -0
- package/dist/infrastructure/cache/types.d.ts.map +1 -0
- package/dist/infrastructure/cache/types.js +42 -0
- package/dist/infrastructure/cache/types.js.map +1 -0
- package/dist/infrastructure/parser/base.d.ts +126 -0
- package/dist/infrastructure/parser/base.d.ts.map +1 -0
- package/dist/infrastructure/parser/base.js +269 -0
- package/dist/infrastructure/parser/base.js.map +1 -0
- package/dist/infrastructure/parser/factory.d.ts +141 -0
- package/dist/infrastructure/parser/factory.d.ts.map +1 -0
- package/dist/infrastructure/parser/factory.js +306 -0
- package/dist/infrastructure/parser/factory.js.map +1 -0
- package/dist/infrastructure/parser/index.d.ts +12 -0
- package/dist/infrastructure/parser/index.d.ts.map +1 -0
- package/dist/infrastructure/parser/index.js +12 -0
- package/dist/infrastructure/parser/index.js.map +1 -0
- package/dist/infrastructure/parser/interface.d.ts +108 -0
- package/dist/infrastructure/parser/interface.d.ts.map +1 -0
- package/dist/infrastructure/parser/interface.js +72 -0
- package/dist/infrastructure/parser/interface.js.map +1 -0
- package/dist/infrastructure/parser/registry.d.ts +141 -0
- package/dist/infrastructure/parser/registry.d.ts.map +1 -0
- package/dist/infrastructure/parser/registry.js +289 -0
- package/dist/infrastructure/parser/registry.js.map +1 -0
- package/dist/infrastructure/parser/types.d.ts +172 -0
- package/dist/infrastructure/parser/types.d.ts.map +1 -0
- package/dist/infrastructure/parser/types.js +147 -0
- package/dist/infrastructure/parser/types.js.map +1 -0
- package/dist/infrastructure/storage/file-system.d.ts +74 -0
- package/dist/infrastructure/storage/file-system.d.ts.map +1 -0
- package/dist/infrastructure/storage/file-system.js +334 -0
- package/dist/infrastructure/storage/file-system.js.map +1 -0
- package/dist/infrastructure/storage/file-watcher.d.ts +84 -0
- package/dist/infrastructure/storage/file-watcher.d.ts.map +1 -0
- package/dist/infrastructure/storage/file-watcher.js +249 -0
- package/dist/infrastructure/storage/file-watcher.js.map +1 -0
- package/dist/infrastructure/storage/index.d.ts +11 -0
- package/dist/infrastructure/storage/index.d.ts.map +1 -0
- package/dist/infrastructure/storage/index.js +16 -0
- package/dist/infrastructure/storage/index.js.map +1 -0
- package/dist/infrastructure/storage/path-utils.d.ts +96 -0
- package/dist/infrastructure/storage/path-utils.d.ts.map +1 -0
- package/dist/infrastructure/storage/path-utils.js +272 -0
- package/dist/infrastructure/storage/path-utils.js.map +1 -0
- package/dist/infrastructure/storage/types.d.ts +106 -0
- package/dist/infrastructure/storage/types.d.ts.map +1 -0
- package/dist/infrastructure/storage/types.js +53 -0
- package/dist/infrastructure/storage/types.js.map +1 -0
- package/dist/interfaces/cli/cli.d.ts +70 -0
- package/dist/interfaces/cli/cli.d.ts.map +1 -0
- package/dist/interfaces/cli/cli.js +1054 -0
- package/dist/interfaces/cli/cli.js.map +1 -0
- package/dist/interfaces/cli/index.d.ts +7 -0
- package/dist/interfaces/cli/index.d.ts.map +1 -0
- package/dist/interfaces/cli/index.js +22 -0
- package/dist/interfaces/cli/index.js.map +1 -0
- package/dist/interfaces/mcp/index.d.ts +7 -0
- package/dist/interfaces/mcp/index.d.ts.map +1 -0
- package/dist/interfaces/mcp/index.js +6 -0
- package/dist/interfaces/mcp/index.js.map +1 -0
- package/dist/interfaces/mcp/mcp-server.d.ts +34 -0
- package/dist/interfaces/mcp/mcp-server.d.ts.map +1 -0
- package/dist/interfaces/mcp/mcp-server.js +154 -0
- package/dist/interfaces/mcp/mcp-server.js.map +1 -0
- package/dist/interfaces/mcp/mcp.d.ts +44 -0
- package/dist/interfaces/mcp/mcp.d.ts.map +1 -0
- package/dist/interfaces/mcp/mcp.js +559 -0
- package/dist/interfaces/mcp/mcp.js.map +1 -0
- package/dist/plugins/javascript/index.d.ts +12 -0
- package/dist/plugins/javascript/index.d.ts.map +1 -0
- package/dist/plugins/javascript/index.js +16 -0
- package/dist/plugins/javascript/index.js.map +1 -0
- package/dist/plugins/javascript/parser.d.ts +81 -0
- package/dist/plugins/javascript/parser.d.ts.map +1 -0
- package/dist/plugins/javascript/parser.js +457 -0
- package/dist/plugins/javascript/parser.js.map +1 -0
- package/dist/plugins/javascript/types.d.ts +131 -0
- package/dist/plugins/javascript/types.d.ts.map +1 -0
- package/dist/plugins/javascript/types.js +366 -0
- package/dist/plugins/javascript/types.js.map +1 -0
- package/dist/plugins/swift/index.d.ts +11 -0
- package/dist/plugins/swift/index.d.ts.map +1 -0
- package/dist/plugins/swift/index.js +15 -0
- package/dist/plugins/swift/index.js.map +1 -0
- package/dist/plugins/swift/parser.d.ts +98 -0
- package/dist/plugins/swift/parser.d.ts.map +1 -0
- package/dist/plugins/swift/parser.js +612 -0
- package/dist/plugins/swift/parser.js.map +1 -0
- package/dist/plugins/swift/types.d.ts +196 -0
- package/dist/plugins/swift/types.d.ts.map +1 -0
- package/dist/plugins/swift/types.js +268 -0
- package/dist/plugins/swift/types.js.map +1 -0
- package/dist/plugins/typescript/dependency-analyzer.d.ts +78 -0
- package/dist/plugins/typescript/dependency-analyzer.d.ts.map +1 -0
- package/dist/plugins/typescript/dependency-analyzer.js +305 -0
- package/dist/plugins/typescript/dependency-analyzer.js.map +1 -0
- package/dist/plugins/typescript/index.d.ts +9 -0
- package/dist/plugins/typescript/index.d.ts.map +1 -0
- package/dist/plugins/typescript/index.js +8 -0
- package/dist/plugins/typescript/index.js.map +1 -0
- package/dist/plugins/typescript/parser.d.ts +117 -0
- package/dist/plugins/typescript/parser.d.ts.map +1 -0
- package/dist/plugins/typescript/parser.js +888 -0
- package/dist/plugins/typescript/parser.js.map +1 -0
- package/dist/plugins/typescript/symbol-extractor.d.ts +76 -0
- package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -0
- package/dist/plugins/typescript/symbol-extractor.js +339 -0
- package/dist/plugins/typescript/symbol-extractor.js.map +1 -0
- package/dist/plugins/typescript/types.d.ts +131 -0
- package/dist/plugins/typescript/types.d.ts.map +1 -0
- package/dist/plugins/typescript/types.js +331 -0
- package/dist/plugins/typescript/types.js.map +1 -0
- package/dist/shared/errors/base-error.d.ts +27 -0
- package/dist/shared/errors/base-error.d.ts.map +1 -0
- package/dist/shared/errors/base-error.js +58 -0
- package/dist/shared/errors/base-error.js.map +1 -0
- package/dist/shared/errors/config-error.d.ts +21 -0
- package/dist/shared/errors/config-error.d.ts.map +1 -0
- package/dist/shared/errors/config-error.js +34 -0
- package/dist/shared/errors/config-error.js.map +1 -0
- package/dist/shared/errors/file-error.d.ts +21 -0
- package/dist/shared/errors/file-error.d.ts.map +1 -0
- package/dist/shared/errors/file-error.js +34 -0
- package/dist/shared/errors/file-error.js.map +1 -0
- package/dist/shared/errors/index.d.ts +59 -0
- package/dist/shared/errors/index.d.ts.map +1 -0
- package/dist/shared/errors/index.js +114 -0
- package/dist/shared/errors/index.js.map +1 -0
- package/dist/shared/errors/parser-error.d.ts +72 -0
- package/dist/shared/errors/parser-error.d.ts.map +1 -0
- package/dist/shared/errors/parser-error.js +104 -0
- package/dist/shared/errors/parser-error.js.map +1 -0
- package/dist/shared/errors/validation-error.d.ts +21 -0
- package/dist/shared/errors/validation-error.d.ts.map +1 -0
- package/dist/shared/errors/validation-error.js +34 -0
- package/dist/shared/errors/validation-error.js.map +1 -0
- package/dist/shared/index.d.ts +11 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +22 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/types/ast.d.ts +78 -0
- package/dist/shared/types/ast.d.ts.map +1 -0
- package/dist/shared/types/ast.js +215 -0
- package/dist/shared/types/ast.js.map +1 -0
- package/dist/shared/types/core.d.ts +65 -0
- package/dist/shared/types/core.d.ts.map +1 -0
- package/dist/shared/types/core.js +114 -0
- package/dist/shared/types/core.js.map +1 -0
- package/dist/shared/types/index.d.ts +11 -0
- package/dist/shared/types/index.d.ts.map +1 -0
- package/dist/shared/types/index.js +12 -0
- package/dist/shared/types/index.js.map +1 -0
- package/dist/shared/types/symbol.d.ts +119 -0
- package/dist/shared/types/symbol.d.ts.map +1 -0
- package/dist/shared/types/symbol.js +197 -0
- package/dist/shared/types/symbol.js.map +1 -0
- package/dist/shared/utils/array.d.ts +68 -0
- package/dist/shared/utils/array.d.ts.map +1 -0
- package/dist/shared/utils/array.js +165 -0
- package/dist/shared/utils/array.js.map +1 -0
- package/dist/shared/utils/async.d.ts +87 -0
- package/dist/shared/utils/async.d.ts.map +1 -0
- package/dist/shared/utils/async.js +185 -0
- package/dist/shared/utils/async.js.map +1 -0
- package/dist/shared/utils/index.d.ts +32 -0
- package/dist/shared/utils/index.d.ts.map +1 -0
- package/dist/shared/utils/index.js +37 -0
- package/dist/shared/utils/index.js.map +1 -0
- package/dist/shared/utils/memory-monitor.d.ts +83 -0
- package/dist/shared/utils/memory-monitor.d.ts.map +1 -0
- package/dist/shared/utils/memory-monitor.js +168 -0
- package/dist/shared/utils/memory-monitor.js.map +1 -0
- package/dist/shared/utils/object.d.ts +71 -0
- package/dist/shared/utils/object.d.ts.map +1 -0
- package/dist/shared/utils/object.js +284 -0
- package/dist/shared/utils/object.js.map +1 -0
- package/dist/shared/utils/path.d.ts +59 -0
- package/dist/shared/utils/path.d.ts.map +1 -0
- package/dist/shared/utils/path.js +201 -0
- package/dist/shared/utils/path.js.map +1 -0
- package/dist/shared/utils/string.d.ts +74 -0
- package/dist/shared/utils/string.d.ts.map +1 -0
- package/dist/shared/utils/string.js +201 -0
- package/dist/shared/utils/string.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 依賴圖實作
|
|
3
|
+
* 提供有向圖資料結構來表示檔案間的依賴關係
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 依賴圖類別
|
|
7
|
+
* 使用鄰接列表實作有向圖
|
|
8
|
+
*/
|
|
9
|
+
export class DependencyGraph {
|
|
10
|
+
adjacencyList = new Map();
|
|
11
|
+
reverseAdjacencyList = new Map();
|
|
12
|
+
nodes = new Set();
|
|
13
|
+
/**
|
|
14
|
+
* 建立空的依賴圖
|
|
15
|
+
*/
|
|
16
|
+
constructor() {
|
|
17
|
+
this.clear();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 新增節點到圖中
|
|
21
|
+
* @param filePath 檔案路徑
|
|
22
|
+
*/
|
|
23
|
+
addNode(filePath) {
|
|
24
|
+
if (!filePath || !filePath.trim()) {
|
|
25
|
+
throw new Error('檔案路徑不能為空');
|
|
26
|
+
}
|
|
27
|
+
if (!this.nodes.has(filePath)) {
|
|
28
|
+
this.nodes.add(filePath);
|
|
29
|
+
this.adjacencyList.set(filePath, new Set());
|
|
30
|
+
this.reverseAdjacencyList.set(filePath, new Set());
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 移除節點及其所有相關邊
|
|
35
|
+
* @param filePath 檔案路徑
|
|
36
|
+
*/
|
|
37
|
+
removeNode(filePath) {
|
|
38
|
+
if (!this.nodes.has(filePath)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// 移除所有指向該節點的邊
|
|
42
|
+
const dependents = this.reverseAdjacencyList.get(filePath) || new Set();
|
|
43
|
+
for (const dependent of dependents) {
|
|
44
|
+
this.adjacencyList.get(dependent)?.delete(filePath);
|
|
45
|
+
}
|
|
46
|
+
// 移除該節點指向其他節點的邊
|
|
47
|
+
const dependencies = this.adjacencyList.get(filePath) || new Set();
|
|
48
|
+
for (const dependency of dependencies) {
|
|
49
|
+
this.reverseAdjacencyList.get(dependency)?.delete(filePath);
|
|
50
|
+
}
|
|
51
|
+
// 移除節點
|
|
52
|
+
this.nodes.delete(filePath);
|
|
53
|
+
this.adjacencyList.delete(filePath);
|
|
54
|
+
this.reverseAdjacencyList.delete(filePath);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 新增依賴關係(邊)
|
|
58
|
+
* @param from 依賴源檔案
|
|
59
|
+
* @param to 被依賴檔案
|
|
60
|
+
*/
|
|
61
|
+
addDependency(from, to) {
|
|
62
|
+
// 自動新增不存在的節點
|
|
63
|
+
this.addNode(from);
|
|
64
|
+
this.addNode(to);
|
|
65
|
+
this.adjacencyList.get(from).add(to);
|
|
66
|
+
this.reverseAdjacencyList.get(to).add(from);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 移除依賴關係
|
|
70
|
+
* @param from 依賴源檔案
|
|
71
|
+
* @param to 被依賴檔案
|
|
72
|
+
*/
|
|
73
|
+
removeDependency(from, to) {
|
|
74
|
+
this.adjacencyList.get(from)?.delete(to);
|
|
75
|
+
this.reverseAdjacencyList.get(to)?.delete(from);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 檢查是否存在節點
|
|
79
|
+
* @param filePath 檔案路徑
|
|
80
|
+
* @returns 是否存在該節點
|
|
81
|
+
*/
|
|
82
|
+
hasNode(filePath) {
|
|
83
|
+
return this.nodes.has(filePath);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 檢查是否存在依賴關係
|
|
87
|
+
* @param from 依賴源檔案
|
|
88
|
+
* @param to 被依賴檔案
|
|
89
|
+
* @returns 是否存在該依賴關係
|
|
90
|
+
*/
|
|
91
|
+
hasDependency(from, to) {
|
|
92
|
+
return this.adjacencyList.get(from)?.has(to) || false;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 取得節點數量
|
|
96
|
+
* @returns 節點總數
|
|
97
|
+
*/
|
|
98
|
+
getNodeCount() {
|
|
99
|
+
return this.nodes.size;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 取得邊數量
|
|
103
|
+
* @returns 邊總數
|
|
104
|
+
*/
|
|
105
|
+
getEdgeCount() {
|
|
106
|
+
let count = 0;
|
|
107
|
+
for (const adjacencySet of this.adjacencyList.values()) {
|
|
108
|
+
count += adjacencySet.size;
|
|
109
|
+
}
|
|
110
|
+
return count;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 檢查圖是否為空
|
|
114
|
+
* @returns 是否為空圖
|
|
115
|
+
*/
|
|
116
|
+
isEmpty() {
|
|
117
|
+
return this.nodes.size === 0;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* 取得節點的直接依賴
|
|
121
|
+
* @param filePath 檔案路徑
|
|
122
|
+
* @returns 直接依賴列表
|
|
123
|
+
*/
|
|
124
|
+
getDependencies(filePath) {
|
|
125
|
+
const dependencies = this.adjacencyList.get(filePath);
|
|
126
|
+
return dependencies ? Array.from(dependencies) : [];
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* 取得節點的直接依賴者
|
|
130
|
+
* @param filePath 檔案路徑
|
|
131
|
+
* @returns 直接依賴者列表
|
|
132
|
+
*/
|
|
133
|
+
getDependents(filePath) {
|
|
134
|
+
const dependents = this.reverseAdjacencyList.get(filePath);
|
|
135
|
+
return dependents ? Array.from(dependents) : [];
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* 取得節點的傳遞依賴
|
|
139
|
+
* @param filePath 檔案路徑
|
|
140
|
+
* @returns 傳遞依賴列表
|
|
141
|
+
*/
|
|
142
|
+
getTransitiveDependencies(filePath) {
|
|
143
|
+
const visited = new Set();
|
|
144
|
+
const result = [];
|
|
145
|
+
const dfs = (currentPath) => {
|
|
146
|
+
const dependencies = this.getDependencies(currentPath);
|
|
147
|
+
for (const dep of dependencies) {
|
|
148
|
+
if (!visited.has(dep)) {
|
|
149
|
+
visited.add(dep);
|
|
150
|
+
result.push(dep);
|
|
151
|
+
dfs(dep);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
dfs(filePath);
|
|
156
|
+
return result;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 取得節點的傳遞依賴者
|
|
160
|
+
* @param filePath 檔案路徑
|
|
161
|
+
* @returns 傳遞依賴者列表
|
|
162
|
+
*/
|
|
163
|
+
getTransitiveDependents(filePath) {
|
|
164
|
+
const visited = new Set();
|
|
165
|
+
const result = [];
|
|
166
|
+
const dfs = (currentPath) => {
|
|
167
|
+
const dependents = this.getDependents(currentPath);
|
|
168
|
+
for (const dependent of dependents) {
|
|
169
|
+
if (!visited.has(dependent)) {
|
|
170
|
+
visited.add(dependent);
|
|
171
|
+
result.push(dependent);
|
|
172
|
+
dfs(dependent);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
dfs(filePath);
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* 取得節點資訊
|
|
181
|
+
* @param filePath 檔案路徑
|
|
182
|
+
* @returns 節點資訊或 undefined
|
|
183
|
+
*/
|
|
184
|
+
getNodeInfo(filePath) {
|
|
185
|
+
if (!this.hasNode(filePath)) {
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
const dependencies = this.getDependencies(filePath);
|
|
189
|
+
const dependents = this.getDependents(filePath);
|
|
190
|
+
return {
|
|
191
|
+
filePath,
|
|
192
|
+
inDegree: dependents.length,
|
|
193
|
+
outDegree: dependencies.length,
|
|
194
|
+
dependencies,
|
|
195
|
+
dependents
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* 拓撲排序
|
|
200
|
+
* @returns 排序結果,包含是否有循環
|
|
201
|
+
*/
|
|
202
|
+
topologicalSort() {
|
|
203
|
+
const inDegree = new Map();
|
|
204
|
+
const queue = [];
|
|
205
|
+
const result = [];
|
|
206
|
+
// 初始化入度
|
|
207
|
+
for (const node of this.nodes) {
|
|
208
|
+
inDegree.set(node, this.getDependents(node).length);
|
|
209
|
+
if (inDegree.get(node) === 0) {
|
|
210
|
+
queue.push(node);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// Kahn's 算法
|
|
214
|
+
while (queue.length > 0) {
|
|
215
|
+
const current = queue.shift();
|
|
216
|
+
result.push(current);
|
|
217
|
+
const dependencies = this.getDependencies(current);
|
|
218
|
+
for (const dep of dependencies) {
|
|
219
|
+
const newInDegree = inDegree.get(dep) - 1;
|
|
220
|
+
inDegree.set(dep, newInDegree);
|
|
221
|
+
if (newInDegree === 0) {
|
|
222
|
+
queue.push(dep);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// 檢查是否有循環
|
|
227
|
+
const hasCycle = result.length !== this.nodes.size;
|
|
228
|
+
let cycleFiles;
|
|
229
|
+
if (hasCycle) {
|
|
230
|
+
cycleFiles = Array.from(this.nodes).filter(node => !result.includes(node));
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
sortedFiles: result,
|
|
234
|
+
hasCycle,
|
|
235
|
+
cycleFiles
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* 取得所有節點
|
|
240
|
+
* @returns 節點列表
|
|
241
|
+
*/
|
|
242
|
+
getAllNodes() {
|
|
243
|
+
return Array.from(this.nodes);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* 取得所有邊
|
|
247
|
+
* @returns 邊列表
|
|
248
|
+
*/
|
|
249
|
+
getAllEdges() {
|
|
250
|
+
const edges = [];
|
|
251
|
+
for (const [from, dependencies] of this.adjacencyList) {
|
|
252
|
+
for (const to of dependencies) {
|
|
253
|
+
edges.push({
|
|
254
|
+
from,
|
|
255
|
+
to,
|
|
256
|
+
weight: 1, // 預設權重
|
|
257
|
+
dependencyType: 'import' // 預設類型
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return edges;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* 檢查圖是否連通(弱連通)
|
|
265
|
+
* @returns 是否連通
|
|
266
|
+
*/
|
|
267
|
+
isConnected() {
|
|
268
|
+
if (this.nodes.size === 0) {
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
const visited = new Set();
|
|
272
|
+
const queue = [];
|
|
273
|
+
// 從第一個節點開始 BFS
|
|
274
|
+
const startNode = this.nodes.values().next().value;
|
|
275
|
+
if (!startNode) {
|
|
276
|
+
return true;
|
|
277
|
+
} // 空圖被認為是連通的
|
|
278
|
+
queue.push(startNode);
|
|
279
|
+
visited.add(startNode);
|
|
280
|
+
while (queue.length > 0) {
|
|
281
|
+
const current = queue.shift();
|
|
282
|
+
// 檢查所有相鄰節點(雙向)
|
|
283
|
+
const dependencies = this.getDependencies(current);
|
|
284
|
+
const dependents = this.getDependents(current);
|
|
285
|
+
const neighbors = [...dependencies, ...dependents];
|
|
286
|
+
for (const neighbor of neighbors) {
|
|
287
|
+
if (!visited.has(neighbor)) {
|
|
288
|
+
visited.add(neighbor);
|
|
289
|
+
queue.push(neighbor);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return visited.size === this.nodes.size;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* 找出孤立節點(沒有任何依賴關係的節點)
|
|
297
|
+
* @returns 孤立節點列表
|
|
298
|
+
*/
|
|
299
|
+
getOrphanedNodes() {
|
|
300
|
+
const orphaned = [];
|
|
301
|
+
for (const node of this.nodes) {
|
|
302
|
+
const inDegree = this.getDependents(node).length;
|
|
303
|
+
const outDegree = this.getDependencies(node).length;
|
|
304
|
+
if (inDegree === 0 && outDegree === 0) {
|
|
305
|
+
// 完全孤立的節點
|
|
306
|
+
orphaned.push(node);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return orphaned;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* 序列化圖為 JSON 格式
|
|
313
|
+
* @returns 序列化後的圖資料
|
|
314
|
+
*/
|
|
315
|
+
serialize() {
|
|
316
|
+
return {
|
|
317
|
+
nodes: this.getAllNodes(),
|
|
318
|
+
edges: this.getAllEdges().map(edge => ({
|
|
319
|
+
from: edge.from,
|
|
320
|
+
to: edge.to,
|
|
321
|
+
weight: edge.weight
|
|
322
|
+
})),
|
|
323
|
+
metadata: {
|
|
324
|
+
nodeCount: this.getNodeCount(),
|
|
325
|
+
edgeCount: this.getEdgeCount(),
|
|
326
|
+
serializedAt: new Date().toISOString()
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* 從序列化資料重建圖
|
|
332
|
+
* @param data 序列化的圖資料
|
|
333
|
+
* @returns 重建的圖實例
|
|
334
|
+
*/
|
|
335
|
+
static deserialize(data) {
|
|
336
|
+
if (!data.nodes || !Array.isArray(data.nodes) ||
|
|
337
|
+
!data.edges || !Array.isArray(data.edges)) {
|
|
338
|
+
throw new Error('無效的序列化資料格式');
|
|
339
|
+
}
|
|
340
|
+
const graph = new DependencyGraph();
|
|
341
|
+
// 新增所有節點
|
|
342
|
+
for (const node of data.nodes) {
|
|
343
|
+
graph.addNode(node);
|
|
344
|
+
}
|
|
345
|
+
// 新增所有邊
|
|
346
|
+
for (const edge of data.edges) {
|
|
347
|
+
if (!edge.from || !edge.to) {
|
|
348
|
+
throw new Error('邊資料格式無效');
|
|
349
|
+
}
|
|
350
|
+
graph.addDependency(edge.from, edge.to);
|
|
351
|
+
}
|
|
352
|
+
return graph;
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* 清空圖
|
|
356
|
+
*/
|
|
357
|
+
clear() {
|
|
358
|
+
this.nodes.clear();
|
|
359
|
+
this.adjacencyList.clear();
|
|
360
|
+
this.reverseAdjacencyList.clear();
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* 複製圖
|
|
364
|
+
* @returns 圖的深拷貝
|
|
365
|
+
*/
|
|
366
|
+
clone() {
|
|
367
|
+
const serialized = this.serialize();
|
|
368
|
+
return DependencyGraph.deserialize(serialized);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=dependency-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../../src/core/dependency/dependency-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 依賴關係分析模組統一匯出
|
|
3
|
+
*/
|
|
4
|
+
export { DependencyAnalyzer } from './dependency-analyzer.js';
|
|
5
|
+
export { DependencyGraph } from './dependency-graph.js';
|
|
6
|
+
export { CycleDetector } from './cycle-detector.js';
|
|
7
|
+
export type { FileDependencies, ProjectDependencies, DependencyStats, CircularDependency, StronglyConnectedComponent, DependencyEdge, DependencyNode, ImpactAnalysisResult, TopologicalSortResult, DependencyAnalysisOptions, DependencyQueryOptions, CycleDetectionOptions, PathResolutionResult, DependencyAnalyzerConfig } from './types.js';
|
|
8
|
+
export { createDefaultAnalysisOptions, createDefaultQueryOptions, createDefaultCycleDetectionOptions, createDefaultAnalyzerConfig, calculateCycleSeverity, isFileDependencies, isProjectDependencies, isCircularDependency } from './types.js';
|
|
9
|
+
export type { Dependency } from '../../shared/types/index.js';
|
|
10
|
+
export { DependencyType } from '../../shared/types/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* 建立依賴分析器的便利函式
|
|
13
|
+
* @param options 分析選項
|
|
14
|
+
* @returns 配置好的依賴分析器實例
|
|
15
|
+
*/
|
|
16
|
+
export declare function createDependencyAnalyzer(options?: any): any;
|
|
17
|
+
/**
|
|
18
|
+
* 建立循環檢測器的便利函式
|
|
19
|
+
* @returns 循環檢測器實例
|
|
20
|
+
*/
|
|
21
|
+
export declare function createCycleDetector(): any;
|
|
22
|
+
/**
|
|
23
|
+
* 建立依賴圖的便利函式
|
|
24
|
+
* @returns 空的依賴圖實例
|
|
25
|
+
*/
|
|
26
|
+
export declare function createDependencyGraph(): any;
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/dependency/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kCAAkC,EAClC,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,GAAG,OAId;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,QAGlC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,QAGpC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 依賴關係分析模組統一匯出
|
|
3
|
+
*/
|
|
4
|
+
// 核心類別
|
|
5
|
+
export { DependencyAnalyzer } from './dependency-analyzer.js';
|
|
6
|
+
export { DependencyGraph } from './dependency-graph.js';
|
|
7
|
+
export { CycleDetector } from './cycle-detector.js';
|
|
8
|
+
// 工廠函式和工具函式
|
|
9
|
+
export { createDefaultAnalysisOptions, createDefaultQueryOptions, createDefaultCycleDetectionOptions, createDefaultAnalyzerConfig, calculateCycleSeverity, isFileDependencies, isProjectDependencies, isCircularDependency } from './types.js';
|
|
10
|
+
export { DependencyType } from '../../shared/types/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* 建立依賴分析器的便利函式
|
|
13
|
+
* @param options 分析選項
|
|
14
|
+
* @returns 配置好的依賴分析器實例
|
|
15
|
+
*/
|
|
16
|
+
export function createDependencyAnalyzer(options) {
|
|
17
|
+
const { DependencyAnalyzer } = require('./dependency-analyzer');
|
|
18
|
+
return new DependencyAnalyzer(options);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 建立循環檢測器的便利函式
|
|
22
|
+
* @returns 循環檢測器實例
|
|
23
|
+
*/
|
|
24
|
+
export function createCycleDetector() {
|
|
25
|
+
const { CycleDetector } = require('./cycle-detector');
|
|
26
|
+
return new CycleDetector();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 建立依賴圖的便利函式
|
|
30
|
+
* @returns 空的依賴圖實例
|
|
31
|
+
*/
|
|
32
|
+
export function createDependencyGraph() {
|
|
33
|
+
const { DependencyGraph } = require('./dependency-graph');
|
|
34
|
+
return new DependencyGraph();
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/dependency/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO;AACP,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAoBpD,YAAY;AACZ,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kCAAkC,EAClC,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAa;IAEb,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAChE,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtD,OAAO,IAAI,aAAa,EAAE,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1D,OAAO,IAAI,eAAe,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 依賴關係分析相關型別定義
|
|
3
|
+
*/
|
|
4
|
+
import { Dependency } from '../../shared/types/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* 檔案依賴資訊
|
|
7
|
+
*/
|
|
8
|
+
export interface FileDependencies {
|
|
9
|
+
readonly filePath: string;
|
|
10
|
+
readonly dependencies: readonly Dependency[];
|
|
11
|
+
readonly lastModified: Date;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 專案依賴資訊
|
|
15
|
+
*/
|
|
16
|
+
export interface ProjectDependencies {
|
|
17
|
+
readonly projectPath: string;
|
|
18
|
+
readonly fileDependencies: readonly FileDependencies[];
|
|
19
|
+
readonly analyzedAt: Date;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 依賴統計資訊
|
|
23
|
+
*/
|
|
24
|
+
export interface DependencyStats {
|
|
25
|
+
readonly totalFiles: number;
|
|
26
|
+
readonly totalDependencies: number;
|
|
27
|
+
readonly averageDependenciesPerFile: number;
|
|
28
|
+
readonly maxDependenciesInFile: number;
|
|
29
|
+
readonly circularDependencies: number;
|
|
30
|
+
readonly orphanedFiles: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 循環依賴資訊
|
|
34
|
+
*/
|
|
35
|
+
export interface CircularDependency {
|
|
36
|
+
readonly cycle: readonly string[];
|
|
37
|
+
readonly length: number;
|
|
38
|
+
readonly severity: 'low' | 'medium' | 'high';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 強連通分量
|
|
42
|
+
*/
|
|
43
|
+
export interface StronglyConnectedComponent {
|
|
44
|
+
readonly nodes: readonly string[];
|
|
45
|
+
readonly size: number;
|
|
46
|
+
readonly cycleComplexity: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 依賴圖邊
|
|
50
|
+
*/
|
|
51
|
+
export interface DependencyEdge {
|
|
52
|
+
readonly from: string;
|
|
53
|
+
readonly to: string;
|
|
54
|
+
readonly weight: number;
|
|
55
|
+
readonly dependencyType: 'import' | 'require' | 'include';
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 依賴圖節點
|
|
59
|
+
*/
|
|
60
|
+
export interface DependencyNode {
|
|
61
|
+
readonly filePath: string;
|
|
62
|
+
readonly inDegree: number;
|
|
63
|
+
readonly outDegree: number;
|
|
64
|
+
readonly dependencies: readonly string[];
|
|
65
|
+
readonly dependents: readonly string[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 影響分析結果
|
|
69
|
+
*/
|
|
70
|
+
export interface ImpactAnalysisResult {
|
|
71
|
+
readonly targetFile: string;
|
|
72
|
+
readonly directlyAffected: readonly string[];
|
|
73
|
+
readonly transitivelyAffected: readonly string[];
|
|
74
|
+
readonly affectedTests: readonly string[];
|
|
75
|
+
readonly impactScore: number;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 拓撲排序結果
|
|
79
|
+
*/
|
|
80
|
+
export interface TopologicalSortResult {
|
|
81
|
+
readonly sortedFiles: readonly string[];
|
|
82
|
+
readonly hasCycle: boolean;
|
|
83
|
+
readonly cycleFiles?: readonly string[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 依賴分析選項
|
|
87
|
+
*/
|
|
88
|
+
export interface DependencyAnalysisOptions {
|
|
89
|
+
readonly includeNodeModules: boolean;
|
|
90
|
+
readonly followSymlinks: boolean;
|
|
91
|
+
readonly maxDepth: number;
|
|
92
|
+
readonly excludePatterns: readonly string[];
|
|
93
|
+
readonly includePatterns: readonly string[];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 依賴查詢選項
|
|
97
|
+
*/
|
|
98
|
+
export interface DependencyQueryOptions {
|
|
99
|
+
readonly includeTransitive: boolean;
|
|
100
|
+
readonly maxDepth: number;
|
|
101
|
+
readonly direction: 'dependencies' | 'dependents' | 'both';
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* 循環檢測選項
|
|
105
|
+
*/
|
|
106
|
+
export interface CycleDetectionOptions {
|
|
107
|
+
readonly maxCycleLength: number;
|
|
108
|
+
readonly reportAllCycles: boolean;
|
|
109
|
+
readonly ignoreSelfLoops: boolean;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* 路徑解析結果
|
|
113
|
+
*/
|
|
114
|
+
export interface PathResolutionResult {
|
|
115
|
+
readonly resolvedPath: string;
|
|
116
|
+
readonly isRelative: boolean;
|
|
117
|
+
readonly exists: boolean;
|
|
118
|
+
readonly extension: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* 依賴分析器配置
|
|
122
|
+
*/
|
|
123
|
+
export interface DependencyAnalyzerConfig {
|
|
124
|
+
readonly analysisOptions: DependencyAnalysisOptions;
|
|
125
|
+
readonly queryOptions: DependencyQueryOptions;
|
|
126
|
+
readonly cycleDetectionOptions: CycleDetectionOptions;
|
|
127
|
+
readonly cacheEnabled: boolean;
|
|
128
|
+
readonly concurrency: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* 擴展的依賴分析選項(包含 concurrency)
|
|
132
|
+
*/
|
|
133
|
+
export interface ExtendedDependencyAnalysisOptions extends DependencyAnalysisOptions {
|
|
134
|
+
readonly concurrency?: number;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* 建立預設依賴分析選項
|
|
138
|
+
*/
|
|
139
|
+
export declare function createDefaultAnalysisOptions(): DependencyAnalysisOptions;
|
|
140
|
+
/**
|
|
141
|
+
* 建立預設查詢選項
|
|
142
|
+
*/
|
|
143
|
+
export declare function createDefaultQueryOptions(): DependencyQueryOptions;
|
|
144
|
+
/**
|
|
145
|
+
* 建立預設循環檢測選項
|
|
146
|
+
*/
|
|
147
|
+
export declare function createDefaultCycleDetectionOptions(): CycleDetectionOptions;
|
|
148
|
+
/**
|
|
149
|
+
* 建立預設分析器配置
|
|
150
|
+
*/
|
|
151
|
+
export declare function createDefaultAnalyzerConfig(): DependencyAnalyzerConfig;
|
|
152
|
+
/**
|
|
153
|
+
* 計算循環依賴嚴重程度
|
|
154
|
+
*/
|
|
155
|
+
export declare function calculateCycleSeverity(cycleLength: number): 'low' | 'medium' | 'high';
|
|
156
|
+
/**
|
|
157
|
+
* FileDependencies 型別守衛
|
|
158
|
+
*/
|
|
159
|
+
export declare function isFileDependencies(value: unknown): value is FileDependencies;
|
|
160
|
+
/**
|
|
161
|
+
* ProjectDependencies 型別守衛
|
|
162
|
+
*/
|
|
163
|
+
export declare function isProjectDependencies(value: unknown): value is ProjectDependencies;
|
|
164
|
+
/**
|
|
165
|
+
* CircularDependency 型別守衛
|
|
166
|
+
*/
|
|
167
|
+
export declare function isCircularDependency(value: unknown): value is CircularDependency;
|
|
168
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/dependency/types.ts"],"names":[],"mappings":"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"}
|