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,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swift Parser 型別定義
|
|
3
|
+
* 定義 Swift Parser 專用的資料結構和工具函式
|
|
4
|
+
*/
|
|
5
|
+
import type { AST, Symbol, ASTNode, Position, Range, Location } from '../../shared/types/index.js';
|
|
6
|
+
import { SymbolType } from '../../shared/types/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Swift AST 節點型別
|
|
9
|
+
*/
|
|
10
|
+
export interface SwiftASTNode extends ASTNode {
|
|
11
|
+
/** 原始 tree-sitter 節點 */
|
|
12
|
+
treeNode?: any;
|
|
13
|
+
/** Swift 特定的節點型別 */
|
|
14
|
+
swiftType: SwiftNodeType;
|
|
15
|
+
/** 修飾符 (public, private, static, etc.) */
|
|
16
|
+
modifiers: string[];
|
|
17
|
+
/** 泛型參數 */
|
|
18
|
+
generics: string[];
|
|
19
|
+
/** 協議約束 */
|
|
20
|
+
protocols: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Swift AST 結構
|
|
24
|
+
*/
|
|
25
|
+
export interface SwiftAST extends AST {
|
|
26
|
+
root: SwiftASTNode;
|
|
27
|
+
/** tree-sitter 解析樹 */
|
|
28
|
+
tree?: any;
|
|
29
|
+
/** 解析錯誤列表 */
|
|
30
|
+
errors: SwiftParseErrorInfo[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Swift 符號型別
|
|
34
|
+
*/
|
|
35
|
+
export interface SwiftSymbol extends Symbol {
|
|
36
|
+
/** Swift 特定的符號型別 */
|
|
37
|
+
swiftType: SwiftSymbolType;
|
|
38
|
+
/** 可見性修飾符 */
|
|
39
|
+
visibility: SwiftVisibility;
|
|
40
|
+
/** 是否為靜態 */
|
|
41
|
+
isStatic: boolean;
|
|
42
|
+
/** 泛型參數 */
|
|
43
|
+
generics: string[];
|
|
44
|
+
/** 協議約束 */
|
|
45
|
+
protocols: string[];
|
|
46
|
+
/** 屬性 (@objc, @available, etc.) */
|
|
47
|
+
attributes: string[];
|
|
48
|
+
/** 對應的 AST 節點 */
|
|
49
|
+
astNode: SwiftASTNode;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Swift 節點型別枚舉
|
|
53
|
+
*/
|
|
54
|
+
export declare enum SwiftNodeType {
|
|
55
|
+
ClassDeclaration = "class_declaration",
|
|
56
|
+
StructDeclaration = "struct_declaration",
|
|
57
|
+
EnumDeclaration = "enum_declaration",
|
|
58
|
+
ProtocolDeclaration = "protocol_declaration",
|
|
59
|
+
FunctionDeclaration = "function_declaration",
|
|
60
|
+
InitDeclaration = "init_declaration",
|
|
61
|
+
DeinitDeclaration = "deinit_declaration",
|
|
62
|
+
VariableDeclaration = "variable_declaration",
|
|
63
|
+
ConstantDeclaration = "constant_declaration",
|
|
64
|
+
TypeAliasDeclaration = "typealias_declaration",
|
|
65
|
+
ExtensionDeclaration = "extension_declaration",
|
|
66
|
+
IfStatement = "if_statement",
|
|
67
|
+
GuardStatement = "guard_statement",
|
|
68
|
+
SwitchStatement = "switch_statement",
|
|
69
|
+
ForStatement = "for_statement",
|
|
70
|
+
WhileStatement = "while_statement",
|
|
71
|
+
RepeatStatement = "repeat_statement",
|
|
72
|
+
ReturnStatement = "return_statement",
|
|
73
|
+
BreakStatement = "break_statement",
|
|
74
|
+
ContinueStatement = "continue_statement",
|
|
75
|
+
ThrowStatement = "throw_statement",
|
|
76
|
+
CallExpression = "call_expression",
|
|
77
|
+
PropertyAccess = "property_access",
|
|
78
|
+
SubscriptExpression = "subscript_expression",
|
|
79
|
+
ClosureExpression = "closure_expression",
|
|
80
|
+
LiteralExpression = "literal_expression",
|
|
81
|
+
Identifier = "identifier",
|
|
82
|
+
Parameter = "parameter",
|
|
83
|
+
GenericParameter = "generic_parameter",
|
|
84
|
+
TypeAnnotation = "type_annotation",
|
|
85
|
+
Comment = "comment",
|
|
86
|
+
Import = "import",
|
|
87
|
+
Unknown = "unknown"
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Swift 符號型別枚舉
|
|
91
|
+
*/
|
|
92
|
+
export declare enum SwiftSymbolType {
|
|
93
|
+
Class = "class",
|
|
94
|
+
Struct = "struct",
|
|
95
|
+
Enum = "enum",
|
|
96
|
+
Protocol = "protocol",
|
|
97
|
+
Function = "function",
|
|
98
|
+
Method = "method",
|
|
99
|
+
Initializer = "initializer",
|
|
100
|
+
Deinitializer = "deinitializer",
|
|
101
|
+
Property = "property",
|
|
102
|
+
Variable = "variable",
|
|
103
|
+
Constant = "constant",
|
|
104
|
+
TypeAlias = "typealias",
|
|
105
|
+
Extension = "extension",
|
|
106
|
+
EnumCase = "enum_case",
|
|
107
|
+
Parameter = "parameter",
|
|
108
|
+
Generic = "generic"
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Swift 可見性修飾符
|
|
112
|
+
*/
|
|
113
|
+
export declare enum SwiftVisibility {
|
|
114
|
+
Private = "private",
|
|
115
|
+
FilePrivate = "fileprivate",
|
|
116
|
+
Internal = "internal",
|
|
117
|
+
Public = "public",
|
|
118
|
+
Open = "open"
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Swift 解析錯誤介面
|
|
122
|
+
*/
|
|
123
|
+
export interface SwiftParseErrorInfo {
|
|
124
|
+
message: string;
|
|
125
|
+
location: Location;
|
|
126
|
+
severity: 'error' | 'warning';
|
|
127
|
+
code?: string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Swift 編譯器選項
|
|
131
|
+
*/
|
|
132
|
+
export interface SwiftCompilerOptions {
|
|
133
|
+
/** Swift 版本 */
|
|
134
|
+
swiftVersion: string;
|
|
135
|
+
/** 目標平台 */
|
|
136
|
+
target?: string;
|
|
137
|
+
/** 模組名稱 */
|
|
138
|
+
moduleName?: string;
|
|
139
|
+
/** 是否啟用嚴格模式 */
|
|
140
|
+
strict?: boolean;
|
|
141
|
+
/** 警告等級 */
|
|
142
|
+
warningLevel?: 'none' | 'minimal' | 'all';
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* 預設編譯器選項
|
|
146
|
+
*/
|
|
147
|
+
export declare const DEFAULT_SWIFT_COMPILER_OPTIONS: SwiftCompilerOptions;
|
|
148
|
+
/**
|
|
149
|
+
* Swift 解析錯誤類別
|
|
150
|
+
*/
|
|
151
|
+
export declare class SwiftParseError extends Error {
|
|
152
|
+
readonly location?: Location | undefined;
|
|
153
|
+
readonly code?: string | undefined;
|
|
154
|
+
constructor(message: string, location?: Location | undefined, code?: string | undefined);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* 建立 Swift AST 節點
|
|
158
|
+
*/
|
|
159
|
+
export declare function createSwiftASTNode(type: SwiftNodeType, range: Range, children?: SwiftASTNode[], treeNode?: any): SwiftASTNode;
|
|
160
|
+
/**
|
|
161
|
+
* 建立 Swift 符號
|
|
162
|
+
*/
|
|
163
|
+
export declare function createSwiftSymbol(name: string, type: SwiftSymbolType, location: Location, astNode: SwiftASTNode, visibility?: SwiftVisibility): SwiftSymbol;
|
|
164
|
+
/**
|
|
165
|
+
* 建立 Swift 解析錯誤
|
|
166
|
+
*/
|
|
167
|
+
export declare function createSwiftParseError(message: string, location?: Location, code?: string): SwiftParseError;
|
|
168
|
+
/**
|
|
169
|
+
* 映射 Swift 符號型別到通用符號型別
|
|
170
|
+
*/
|
|
171
|
+
export declare function mapSwiftSymbolTypeToSymbolType(swiftType: SwiftSymbolType): SymbolType;
|
|
172
|
+
/**
|
|
173
|
+
* 檢查節點是否為宣告
|
|
174
|
+
*/
|
|
175
|
+
export declare function isDeclarationNode(node: SwiftASTNode): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* 檢查節點是否為型別宣告
|
|
178
|
+
*/
|
|
179
|
+
export declare function isTypeDeclarationNode(node: SwiftASTNode): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* 檢查是否為有效的 Swift 識別符
|
|
182
|
+
*/
|
|
183
|
+
export declare function isValidSwiftIdentifier(name: string): boolean;
|
|
184
|
+
/**
|
|
185
|
+
* 檢查是否為 Swift 關鍵字
|
|
186
|
+
*/
|
|
187
|
+
export declare function isSwiftKeyword(name: string): boolean;
|
|
188
|
+
/**
|
|
189
|
+
* 從位置資訊轉換為 Range
|
|
190
|
+
*/
|
|
191
|
+
export declare function positionToRange(start: Position, end?: Position): Range;
|
|
192
|
+
/**
|
|
193
|
+
* 建立基本範圍(Swift 專用的便利函式)
|
|
194
|
+
*/
|
|
195
|
+
export declare function createSwiftRange(startLine: number, startColumn: number, endLine: number, endColumn: number): Range;
|
|
196
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/swift/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swift Parser 型別定義
|
|
3
|
+
* 定義 Swift Parser 專用的資料結構和工具函式
|
|
4
|
+
*/
|
|
5
|
+
import { SymbolType, createScope, createPosition, createRange as createCoreRange } from '../../shared/types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Swift 節點型別枚舉
|
|
8
|
+
*/
|
|
9
|
+
export var SwiftNodeType;
|
|
10
|
+
(function (SwiftNodeType) {
|
|
11
|
+
// 宣告
|
|
12
|
+
SwiftNodeType["ClassDeclaration"] = "class_declaration";
|
|
13
|
+
SwiftNodeType["StructDeclaration"] = "struct_declaration";
|
|
14
|
+
SwiftNodeType["EnumDeclaration"] = "enum_declaration";
|
|
15
|
+
SwiftNodeType["ProtocolDeclaration"] = "protocol_declaration";
|
|
16
|
+
SwiftNodeType["FunctionDeclaration"] = "function_declaration";
|
|
17
|
+
SwiftNodeType["InitDeclaration"] = "init_declaration";
|
|
18
|
+
SwiftNodeType["DeinitDeclaration"] = "deinit_declaration";
|
|
19
|
+
SwiftNodeType["VariableDeclaration"] = "variable_declaration";
|
|
20
|
+
SwiftNodeType["ConstantDeclaration"] = "constant_declaration";
|
|
21
|
+
SwiftNodeType["TypeAliasDeclaration"] = "typealias_declaration";
|
|
22
|
+
SwiftNodeType["ExtensionDeclaration"] = "extension_declaration";
|
|
23
|
+
// 語句
|
|
24
|
+
SwiftNodeType["IfStatement"] = "if_statement";
|
|
25
|
+
SwiftNodeType["GuardStatement"] = "guard_statement";
|
|
26
|
+
SwiftNodeType["SwitchStatement"] = "switch_statement";
|
|
27
|
+
SwiftNodeType["ForStatement"] = "for_statement";
|
|
28
|
+
SwiftNodeType["WhileStatement"] = "while_statement";
|
|
29
|
+
SwiftNodeType["RepeatStatement"] = "repeat_statement";
|
|
30
|
+
SwiftNodeType["ReturnStatement"] = "return_statement";
|
|
31
|
+
SwiftNodeType["BreakStatement"] = "break_statement";
|
|
32
|
+
SwiftNodeType["ContinueStatement"] = "continue_statement";
|
|
33
|
+
SwiftNodeType["ThrowStatement"] = "throw_statement";
|
|
34
|
+
// 表達式
|
|
35
|
+
SwiftNodeType["CallExpression"] = "call_expression";
|
|
36
|
+
SwiftNodeType["PropertyAccess"] = "property_access";
|
|
37
|
+
SwiftNodeType["SubscriptExpression"] = "subscript_expression";
|
|
38
|
+
SwiftNodeType["ClosureExpression"] = "closure_expression";
|
|
39
|
+
SwiftNodeType["LiteralExpression"] = "literal_expression";
|
|
40
|
+
SwiftNodeType["Identifier"] = "identifier";
|
|
41
|
+
// 其他
|
|
42
|
+
SwiftNodeType["Parameter"] = "parameter";
|
|
43
|
+
SwiftNodeType["GenericParameter"] = "generic_parameter";
|
|
44
|
+
SwiftNodeType["TypeAnnotation"] = "type_annotation";
|
|
45
|
+
SwiftNodeType["Comment"] = "comment";
|
|
46
|
+
SwiftNodeType["Import"] = "import";
|
|
47
|
+
SwiftNodeType["Unknown"] = "unknown";
|
|
48
|
+
})(SwiftNodeType || (SwiftNodeType = {}));
|
|
49
|
+
/**
|
|
50
|
+
* Swift 符號型別枚舉
|
|
51
|
+
*/
|
|
52
|
+
export var SwiftSymbolType;
|
|
53
|
+
(function (SwiftSymbolType) {
|
|
54
|
+
SwiftSymbolType["Class"] = "class";
|
|
55
|
+
SwiftSymbolType["Struct"] = "struct";
|
|
56
|
+
SwiftSymbolType["Enum"] = "enum";
|
|
57
|
+
SwiftSymbolType["Protocol"] = "protocol";
|
|
58
|
+
SwiftSymbolType["Function"] = "function";
|
|
59
|
+
SwiftSymbolType["Method"] = "method";
|
|
60
|
+
SwiftSymbolType["Initializer"] = "initializer";
|
|
61
|
+
SwiftSymbolType["Deinitializer"] = "deinitializer";
|
|
62
|
+
SwiftSymbolType["Property"] = "property";
|
|
63
|
+
SwiftSymbolType["Variable"] = "variable";
|
|
64
|
+
SwiftSymbolType["Constant"] = "constant";
|
|
65
|
+
SwiftSymbolType["TypeAlias"] = "typealias";
|
|
66
|
+
SwiftSymbolType["Extension"] = "extension";
|
|
67
|
+
SwiftSymbolType["EnumCase"] = "enum_case";
|
|
68
|
+
SwiftSymbolType["Parameter"] = "parameter";
|
|
69
|
+
SwiftSymbolType["Generic"] = "generic";
|
|
70
|
+
})(SwiftSymbolType || (SwiftSymbolType = {}));
|
|
71
|
+
/**
|
|
72
|
+
* Swift 可見性修飾符
|
|
73
|
+
*/
|
|
74
|
+
export var SwiftVisibility;
|
|
75
|
+
(function (SwiftVisibility) {
|
|
76
|
+
SwiftVisibility["Private"] = "private";
|
|
77
|
+
SwiftVisibility["FilePrivate"] = "fileprivate";
|
|
78
|
+
SwiftVisibility["Internal"] = "internal";
|
|
79
|
+
SwiftVisibility["Public"] = "public";
|
|
80
|
+
SwiftVisibility["Open"] = "open";
|
|
81
|
+
})(SwiftVisibility || (SwiftVisibility = {}));
|
|
82
|
+
/**
|
|
83
|
+
* 預設編譯器選項
|
|
84
|
+
*/
|
|
85
|
+
export const DEFAULT_SWIFT_COMPILER_OPTIONS = {
|
|
86
|
+
swiftVersion: '5.0',
|
|
87
|
+
target: 'x86_64-apple-macosx10.15',
|
|
88
|
+
strict: true,
|
|
89
|
+
warningLevel: 'all'
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Swift 解析錯誤類別
|
|
93
|
+
*/
|
|
94
|
+
export class SwiftParseError extends Error {
|
|
95
|
+
location;
|
|
96
|
+
code;
|
|
97
|
+
constructor(message, location, code) {
|
|
98
|
+
super(message);
|
|
99
|
+
this.location = location;
|
|
100
|
+
this.code = code;
|
|
101
|
+
this.name = 'SwiftParseError';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// 工具函式
|
|
105
|
+
/**
|
|
106
|
+
* 建立 Swift AST 節點
|
|
107
|
+
*/
|
|
108
|
+
export function createSwiftASTNode(type, range, children = [], treeNode) {
|
|
109
|
+
return {
|
|
110
|
+
type: type,
|
|
111
|
+
range,
|
|
112
|
+
properties: {},
|
|
113
|
+
children,
|
|
114
|
+
parent: undefined,
|
|
115
|
+
treeNode,
|
|
116
|
+
swiftType: type,
|
|
117
|
+
modifiers: [],
|
|
118
|
+
generics: [],
|
|
119
|
+
protocols: []
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* 建立 Swift 符號
|
|
124
|
+
*/
|
|
125
|
+
export function createSwiftSymbol(name, type, location, astNode, visibility = SwiftVisibility.Internal) {
|
|
126
|
+
const scope = createScope('global'); // 預設 global scope
|
|
127
|
+
const modifiers = [visibility];
|
|
128
|
+
return {
|
|
129
|
+
name,
|
|
130
|
+
type: mapSwiftSymbolTypeToSymbolType(type),
|
|
131
|
+
location,
|
|
132
|
+
scope,
|
|
133
|
+
modifiers,
|
|
134
|
+
swiftType: type,
|
|
135
|
+
visibility,
|
|
136
|
+
isStatic: false,
|
|
137
|
+
generics: [],
|
|
138
|
+
protocols: [],
|
|
139
|
+
attributes: [],
|
|
140
|
+
astNode
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 建立 Swift 解析錯誤
|
|
145
|
+
*/
|
|
146
|
+
export function createSwiftParseError(message, location, code) {
|
|
147
|
+
return new SwiftParseError(message, location, code);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* 映射 Swift 符號型別到通用符號型別
|
|
151
|
+
*/
|
|
152
|
+
export function mapSwiftSymbolTypeToSymbolType(swiftType) {
|
|
153
|
+
switch (swiftType) {
|
|
154
|
+
case SwiftSymbolType.Class:
|
|
155
|
+
return SymbolType.Class;
|
|
156
|
+
case SwiftSymbolType.Struct:
|
|
157
|
+
return SymbolType.Class; // Swift struct 對應到 Class
|
|
158
|
+
case SwiftSymbolType.Enum:
|
|
159
|
+
return SymbolType.Enum;
|
|
160
|
+
case SwiftSymbolType.Protocol:
|
|
161
|
+
return SymbolType.Interface;
|
|
162
|
+
case SwiftSymbolType.Function:
|
|
163
|
+
case SwiftSymbolType.Method:
|
|
164
|
+
case SwiftSymbolType.Initializer:
|
|
165
|
+
case SwiftSymbolType.Deinitializer:
|
|
166
|
+
return SymbolType.Function;
|
|
167
|
+
case SwiftSymbolType.Property:
|
|
168
|
+
case SwiftSymbolType.Variable:
|
|
169
|
+
return SymbolType.Variable;
|
|
170
|
+
case SwiftSymbolType.Constant:
|
|
171
|
+
return SymbolType.Constant;
|
|
172
|
+
case SwiftSymbolType.TypeAlias:
|
|
173
|
+
return SymbolType.Type;
|
|
174
|
+
case SwiftSymbolType.Extension:
|
|
175
|
+
return SymbolType.Class;
|
|
176
|
+
case SwiftSymbolType.EnumCase:
|
|
177
|
+
return SymbolType.Constant;
|
|
178
|
+
case SwiftSymbolType.Parameter:
|
|
179
|
+
return SymbolType.Variable;
|
|
180
|
+
case SwiftSymbolType.Generic:
|
|
181
|
+
return SymbolType.Type;
|
|
182
|
+
default:
|
|
183
|
+
return SymbolType.Variable;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* 檢查節點是否為宣告
|
|
188
|
+
*/
|
|
189
|
+
export function isDeclarationNode(node) {
|
|
190
|
+
return [
|
|
191
|
+
SwiftNodeType.ClassDeclaration,
|
|
192
|
+
SwiftNodeType.StructDeclaration,
|
|
193
|
+
SwiftNodeType.EnumDeclaration,
|
|
194
|
+
SwiftNodeType.ProtocolDeclaration,
|
|
195
|
+
SwiftNodeType.FunctionDeclaration,
|
|
196
|
+
SwiftNodeType.InitDeclaration,
|
|
197
|
+
SwiftNodeType.DeinitDeclaration,
|
|
198
|
+
SwiftNodeType.VariableDeclaration,
|
|
199
|
+
SwiftNodeType.ConstantDeclaration,
|
|
200
|
+
SwiftNodeType.TypeAliasDeclaration,
|
|
201
|
+
SwiftNodeType.ExtensionDeclaration
|
|
202
|
+
].includes(node.swiftType);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* 檢查節點是否為型別宣告
|
|
206
|
+
*/
|
|
207
|
+
export function isTypeDeclarationNode(node) {
|
|
208
|
+
return [
|
|
209
|
+
SwiftNodeType.ClassDeclaration,
|
|
210
|
+
SwiftNodeType.StructDeclaration,
|
|
211
|
+
SwiftNodeType.EnumDeclaration,
|
|
212
|
+
SwiftNodeType.ProtocolDeclaration,
|
|
213
|
+
SwiftNodeType.TypeAliasDeclaration
|
|
214
|
+
].includes(node.swiftType);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* 檢查是否為有效的 Swift 識別符
|
|
218
|
+
*/
|
|
219
|
+
export function isValidSwiftIdentifier(name) {
|
|
220
|
+
// Swift 識別符規則:
|
|
221
|
+
// - 以字母或底線開頭
|
|
222
|
+
// - 後續可包含字母、數字、底線
|
|
223
|
+
// - 支援 Unicode 字符
|
|
224
|
+
const identifierRegex = /^[a-zA-Z_\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF\u1E00-\u1FFF\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793\u2C00-\u2DFF\u2E80-\u2FFF\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44\uFE47-\uFFFD][a-zA-Z0-9_\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF\u1E00-\u1FFF\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793\u2C00-\u2DFF\u2E80-\u2FFF\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44\uFE47-\uFFFD]*$/;
|
|
225
|
+
return identifierRegex.test(name) && !isSwiftKeyword(name);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* 檢查是否為 Swift 關鍵字
|
|
229
|
+
*/
|
|
230
|
+
export function isSwiftKeyword(name) {
|
|
231
|
+
const keywords = new Set([
|
|
232
|
+
// 宣告關鍵字
|
|
233
|
+
'class', 'struct', 'enum', 'protocol', 'func', 'var', 'let', 'init', 'deinit',
|
|
234
|
+
'extension', 'typealias', 'import', 'subscript', 'operator',
|
|
235
|
+
// 語句關鍵字
|
|
236
|
+
'if', 'else', 'switch', 'case', 'default', 'for', 'in', 'while', 'repeat',
|
|
237
|
+
'break', 'continue', 'return', 'throw', 'throws', 'rethrows', 'try',
|
|
238
|
+
'catch', 'finally', 'defer', 'guard', 'where',
|
|
239
|
+
// 表達式關鍵字
|
|
240
|
+
'as', 'is', 'super', 'self', 'Self', 'new', 'nil', 'true', 'false',
|
|
241
|
+
// 型別關鍵字
|
|
242
|
+
'Any', 'AnyObject', 'Type', 'Protocol',
|
|
243
|
+
// 修飾符
|
|
244
|
+
'public', 'private', 'fileprivate', 'internal', 'open',
|
|
245
|
+
'static', 'class', 'final', 'lazy', 'weak', 'unowned',
|
|
246
|
+
'optional', 'required', 'override', 'mutating', 'nonmutating',
|
|
247
|
+
'dynamic', '@objc', '@nonobjc', '@available', '@discardableResult',
|
|
248
|
+
// 其他
|
|
249
|
+
'associatedtype', 'precedencegroup', 'infix', 'prefix', 'postfix',
|
|
250
|
+
'left', 'right', 'none', 'assignment', 'higherThan', 'lowerThan'
|
|
251
|
+
]);
|
|
252
|
+
return keywords.has(name);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* 從位置資訊轉換為 Range
|
|
256
|
+
*/
|
|
257
|
+
export function positionToRange(start, end) {
|
|
258
|
+
return createCoreRange(start, end || start);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* 建立基本範圍(Swift 專用的便利函式)
|
|
262
|
+
*/
|
|
263
|
+
export function createSwiftRange(startLine, startColumn, endLine, endColumn) {
|
|
264
|
+
const start = createPosition(startLine, startColumn);
|
|
265
|
+
const end = createPosition(endLine, endColumn);
|
|
266
|
+
return createCoreRange(start, end);
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/swift/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript Dependency Analyzer
|
|
3
|
+
* 分析 TypeScript 程式碼中的依賴關係
|
|
4
|
+
*/
|
|
5
|
+
import type { Dependency } from '../../shared/types/index.js';
|
|
6
|
+
import { TypeScriptAST } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* TypeScript 依賴分析器類別
|
|
9
|
+
*/
|
|
10
|
+
export declare class TypeScriptDependencyAnalyzer {
|
|
11
|
+
private dependencies;
|
|
12
|
+
private sourceFile;
|
|
13
|
+
/**
|
|
14
|
+
* 從 AST 中提取所有依賴關係
|
|
15
|
+
*/
|
|
16
|
+
extractDependencies(ast: TypeScriptAST): Promise<Dependency[]>;
|
|
17
|
+
/**
|
|
18
|
+
* 遞歸訪問 AST 節點
|
|
19
|
+
*/
|
|
20
|
+
private visitNode;
|
|
21
|
+
/**
|
|
22
|
+
* 從節點提取依賴資訊
|
|
23
|
+
*/
|
|
24
|
+
private extractDependencyFromNode;
|
|
25
|
+
/**
|
|
26
|
+
* 從 import 宣告提取依賴
|
|
27
|
+
*/
|
|
28
|
+
private extractFromImportDeclaration;
|
|
29
|
+
/**
|
|
30
|
+
* 從 export 宣告提取依賴(重新匯出的情況)
|
|
31
|
+
*/
|
|
32
|
+
private extractFromExportDeclaration;
|
|
33
|
+
/**
|
|
34
|
+
* 從 import = 宣告提取依賴
|
|
35
|
+
*/
|
|
36
|
+
private extractFromImportEquals;
|
|
37
|
+
/**
|
|
38
|
+
* 從函式呼叫提取依賴(require, import())
|
|
39
|
+
*/
|
|
40
|
+
private extractFromCallExpression;
|
|
41
|
+
/**
|
|
42
|
+
* 從 require() 呼叫提取依賴
|
|
43
|
+
*/
|
|
44
|
+
private extractFromRequireCall;
|
|
45
|
+
/**
|
|
46
|
+
* 從動態 import() 提取依賴
|
|
47
|
+
*/
|
|
48
|
+
private extractFromDynamicImport;
|
|
49
|
+
/**
|
|
50
|
+
* 獲取 export 宣告的符號
|
|
51
|
+
*/
|
|
52
|
+
private getExportedSymbols;
|
|
53
|
+
/**
|
|
54
|
+
* 獲取 require 導入的符號
|
|
55
|
+
*/
|
|
56
|
+
private getRequireImportedSymbols;
|
|
57
|
+
/**
|
|
58
|
+
* 提取三斜線指令依賴
|
|
59
|
+
*/
|
|
60
|
+
private extractTripleSlashDirectives;
|
|
61
|
+
/**
|
|
62
|
+
* 檢查模組解析結果並標準化路徑
|
|
63
|
+
*/
|
|
64
|
+
private normalizePath;
|
|
65
|
+
/**
|
|
66
|
+
* 獲取依賴的型別(開發依賴還是執行時依賴)
|
|
67
|
+
*/
|
|
68
|
+
private getDependencyCategory;
|
|
69
|
+
/**
|
|
70
|
+
* 分析循環依賴
|
|
71
|
+
*/
|
|
72
|
+
analyzeCyclicDependencies(dependencies: Dependency[]): Promise<string[][]>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 創建依賴分析器實例
|
|
76
|
+
*/
|
|
77
|
+
export declare function createDependencyAnalyzer(): TypeScriptDependencyAnalyzer;
|
|
78
|
+
//# sourceMappingURL=dependency-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-analyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/typescript/dependency-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,UAAU,EACX,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EACL,aAAa,EAMd,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAiB;IAEnC;;OAEG;IACG,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAapE;;OAEG;IACH,OAAO,CAAC,SAAS;IAiBjB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAoBjC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAgBpC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAgBpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAuBjC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAsCpC;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;IACG,yBAAyB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CA+CjF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,4BAA4B,CAEvE"}
|