@skillsmith/core 0.5.5 → 0.5.6
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/CHANGELOG.md +4 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/errors.test.d.ts +5 -0
- package/dist/__tests__/errors.test.d.ts.map +1 -0
- package/dist/__tests__/errors.test.js +115 -0
- package/dist/__tests__/errors.test.js.map +1 -0
- package/dist/activation/ActivationManager.d.ts +148 -0
- package/dist/activation/ActivationManager.d.ts.map +1 -0
- package/dist/activation/ActivationManager.js +291 -0
- package/dist/activation/ActivationManager.js.map +1 -0
- package/dist/activation/ZeroConfigActivator.d.ts +126 -0
- package/dist/activation/ZeroConfigActivator.d.ts.map +1 -0
- package/dist/activation/ZeroConfigActivator.js +259 -0
- package/dist/activation/ZeroConfigActivator.js.map +1 -0
- package/dist/activation/index.d.ts +8 -0
- package/dist/activation/index.d.ts.map +1 -0
- package/dist/activation/index.js +8 -0
- package/dist/activation/index.js.map +1 -0
- package/dist/analysis/CodebaseAnalyzer.d.ts +45 -0
- package/dist/analysis/CodebaseAnalyzer.d.ts.map +1 -0
- package/dist/analysis/CodebaseAnalyzer.js +187 -0
- package/dist/analysis/CodebaseAnalyzer.js.map +1 -0
- package/dist/analysis/DependencyMerger.d.ts +39 -0
- package/dist/analysis/DependencyMerger.d.ts.map +1 -0
- package/dist/analysis/DependencyMerger.js +191 -0
- package/dist/analysis/DependencyMerger.js.map +1 -0
- package/dist/analysis/DependencyMerger.test.d.ts +2 -0
- package/dist/analysis/DependencyMerger.test.d.ts.map +1 -0
- package/dist/analysis/DependencyMerger.test.js +258 -0
- package/dist/analysis/DependencyMerger.test.js.map +1 -0
- package/dist/analysis/McpReferenceExtractor.d.ts +42 -0
- package/dist/analysis/McpReferenceExtractor.d.ts.map +1 -0
- package/dist/analysis/McpReferenceExtractor.js +92 -0
- package/dist/analysis/McpReferenceExtractor.js.map +1 -0
- package/dist/analysis/McpReferenceExtractor.test.d.ts +2 -0
- package/dist/analysis/McpReferenceExtractor.test.d.ts.map +1 -0
- package/dist/analysis/McpReferenceExtractor.test.js +262 -0
- package/dist/analysis/McpReferenceExtractor.test.js.map +1 -0
- package/dist/analysis/__tests__/incremental.test.d.ts +13 -0
- package/dist/analysis/__tests__/incremental.test.d.ts.map +1 -0
- package/dist/analysis/__tests__/incremental.test.js +515 -0
- package/dist/analysis/__tests__/incremental.test.js.map +1 -0
- package/dist/analysis/__tests__/integration.test.d.ts +14 -0
- package/dist/analysis/__tests__/integration.test.d.ts.map +1 -0
- package/dist/analysis/__tests__/integration.test.js +1059 -0
- package/dist/analysis/__tests__/integration.test.js.map +1 -0
- package/dist/analysis/__tests__/metrics.test.d.ts +9 -0
- package/dist/analysis/__tests__/metrics.test.d.ts.map +1 -0
- package/dist/analysis/__tests__/metrics.test.js +369 -0
- package/dist/analysis/__tests__/metrics.test.js.map +1 -0
- package/dist/analysis/__tests__/performance.test.d.ts +15 -0
- package/dist/analysis/__tests__/performance.test.d.ts.map +1 -0
- package/dist/analysis/__tests__/performance.test.js +402 -0
- package/dist/analysis/__tests__/performance.test.js.map +1 -0
- package/dist/analysis/adapters/__tests__/go.test.d.ts +12 -0
- package/dist/analysis/adapters/__tests__/go.test.d.ts.map +1 -0
- package/dist/analysis/adapters/__tests__/go.test.js +561 -0
- package/dist/analysis/adapters/__tests__/go.test.js.map +1 -0
- package/dist/analysis/adapters/__tests__/python.test.d.ts +11 -0
- package/dist/analysis/adapters/__tests__/python.test.d.ts.map +1 -0
- package/dist/analysis/adapters/__tests__/python.test.js +669 -0
- package/dist/analysis/adapters/__tests__/python.test.js.map +1 -0
- package/dist/analysis/adapters/__tests__/rust.test.d.ts +12 -0
- package/dist/analysis/adapters/__tests__/rust.test.d.ts.map +1 -0
- package/dist/analysis/adapters/__tests__/rust.test.js +676 -0
- package/dist/analysis/adapters/__tests__/rust.test.js.map +1 -0
- package/dist/analysis/adapters/__tests__/typescript.test.d.ts +14 -0
- package/dist/analysis/adapters/__tests__/typescript.test.d.ts.map +1 -0
- package/dist/analysis/adapters/__tests__/typescript.test.js +381 -0
- package/dist/analysis/adapters/__tests__/typescript.test.js.map +1 -0
- package/dist/analysis/adapters/base.d.ts +83 -0
- package/dist/analysis/adapters/base.d.ts.map +1 -0
- package/dist/analysis/adapters/base.js +40 -0
- package/dist/analysis/adapters/base.js.map +1 -0
- package/dist/analysis/adapters/factory.d.ts +150 -0
- package/dist/analysis/adapters/factory.d.ts.map +1 -0
- package/dist/analysis/adapters/factory.js +244 -0
- package/dist/analysis/adapters/factory.js.map +1 -0
- package/dist/analysis/adapters/go.d.ts +131 -0
- package/dist/analysis/adapters/go.d.ts.map +1 -0
- package/dist/analysis/adapters/go.js +414 -0
- package/dist/analysis/adapters/go.js.map +1 -0
- package/dist/analysis/adapters/index.d.ts +20 -0
- package/dist/analysis/adapters/index.d.ts.map +1 -0
- package/dist/analysis/adapters/index.js +23 -0
- package/dist/analysis/adapters/index.js.map +1 -0
- package/dist/analysis/adapters/java-parsers.d.ts +64 -0
- package/dist/analysis/adapters/java-parsers.d.ts.map +1 -0
- package/dist/analysis/adapters/java-parsers.js +121 -0
- package/dist/analysis/adapters/java-parsers.js.map +1 -0
- package/dist/analysis/adapters/java.d.ts +104 -0
- package/dist/analysis/adapters/java.d.ts.map +1 -0
- package/dist/analysis/adapters/java.js +296 -0
- package/dist/analysis/adapters/java.js.map +1 -0
- package/dist/analysis/adapters/python-frameworks.d.ts +21 -0
- package/dist/analysis/adapters/python-frameworks.d.ts.map +1 -0
- package/dist/analysis/adapters/python-frameworks.js +86 -0
- package/dist/analysis/adapters/python-frameworks.js.map +1 -0
- package/dist/analysis/adapters/python.d.ts +120 -0
- package/dist/analysis/adapters/python.d.ts.map +1 -0
- package/dist/analysis/adapters/python.js +345 -0
- package/dist/analysis/adapters/python.js.map +1 -0
- package/dist/analysis/adapters/rust-parsers.d.ts +33 -0
- package/dist/analysis/adapters/rust-parsers.d.ts.map +1 -0
- package/dist/analysis/adapters/rust-parsers.js +94 -0
- package/dist/analysis/adapters/rust-parsers.js.map +1 -0
- package/dist/analysis/adapters/rust.d.ts +74 -0
- package/dist/analysis/adapters/rust.d.ts.map +1 -0
- package/dist/analysis/adapters/rust.js +377 -0
- package/dist/analysis/adapters/rust.js.map +1 -0
- package/dist/analysis/adapters/typescript.d.ts +68 -0
- package/dist/analysis/adapters/typescript.d.ts.map +1 -0
- package/dist/analysis/adapters/typescript.js +79 -0
- package/dist/analysis/adapters/typescript.js.map +1 -0
- package/dist/analysis/aggregator.d.ts +193 -0
- package/dist/analysis/aggregator.d.ts.map +1 -0
- package/dist/analysis/aggregator.js +283 -0
- package/dist/analysis/aggregator.js.map +1 -0
- package/dist/analysis/cache.d.ts +180 -0
- package/dist/analysis/cache.d.ts.map +1 -0
- package/dist/analysis/cache.js +279 -0
- package/dist/analysis/cache.js.map +1 -0
- package/dist/analysis/file-streamer.d.ts +136 -0
- package/dist/analysis/file-streamer.d.ts.map +1 -0
- package/dist/analysis/file-streamer.js +291 -0
- package/dist/analysis/file-streamer.js.map +1 -0
- package/dist/analysis/framework-detector.d.ts +47 -0
- package/dist/analysis/framework-detector.d.ts.map +1 -0
- package/dist/analysis/framework-detector.js +151 -0
- package/dist/analysis/framework-detector.js.map +1 -0
- package/dist/analysis/incremental-parser.d.ts +186 -0
- package/dist/analysis/incremental-parser.d.ts.map +1 -0
- package/dist/analysis/incremental-parser.js +291 -0
- package/dist/analysis/incremental-parser.js.map +1 -0
- package/dist/analysis/incremental.d.ts +186 -0
- package/dist/analysis/incremental.d.ts.map +1 -0
- package/dist/analysis/incremental.js +247 -0
- package/dist/analysis/incremental.js.map +1 -0
- package/dist/analysis/index.d.ts +37 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +61 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/analysis/language-detector.d.ts +76 -0
- package/dist/analysis/language-detector.d.ts.map +1 -0
- package/dist/analysis/language-detector.js +205 -0
- package/dist/analysis/language-detector.js.map +1 -0
- package/dist/analysis/language-detector.patterns.d.ts +17 -0
- package/dist/analysis/language-detector.patterns.d.ts.map +1 -0
- package/dist/analysis/language-detector.patterns.js +413 -0
- package/dist/analysis/language-detector.patterns.js.map +1 -0
- package/dist/analysis/language-detector.types.d.ts +48 -0
- package/dist/analysis/language-detector.types.d.ts.map +1 -0
- package/dist/analysis/language-detector.types.js +6 -0
- package/dist/analysis/language-detector.types.js.map +1 -0
- package/dist/analysis/memory-monitor.d.ts +199 -0
- package/dist/analysis/memory-monitor.d.ts.map +1 -0
- package/dist/analysis/memory-monitor.js +271 -0
- package/dist/analysis/memory-monitor.js.map +1 -0
- package/dist/analysis/metrics.d.ts +103 -0
- package/dist/analysis/metrics.d.ts.map +1 -0
- package/dist/analysis/metrics.implementations.d.ts +39 -0
- package/dist/analysis/metrics.implementations.d.ts.map +1 -0
- package/dist/analysis/metrics.implementations.js +114 -0
- package/dist/analysis/metrics.implementations.js.map +1 -0
- package/dist/analysis/metrics.js +334 -0
- package/dist/analysis/metrics.js.map +1 -0
- package/dist/analysis/metrics.types.d.ts +79 -0
- package/dist/analysis/metrics.types.d.ts.map +1 -0
- package/dist/analysis/metrics.types.js +6 -0
- package/dist/analysis/metrics.types.js.map +1 -0
- package/dist/analysis/parsers.d.ts +43 -0
- package/dist/analysis/parsers.d.ts.map +1 -0
- package/dist/analysis/parsers.js +219 -0
- package/dist/analysis/parsers.js.map +1 -0
- package/dist/analysis/router.d.ts +264 -0
- package/dist/analysis/router.d.ts.map +1 -0
- package/dist/analysis/router.js +398 -0
- package/dist/analysis/router.js.map +1 -0
- package/dist/analysis/router.test.d.ts +2 -0
- package/dist/analysis/router.test.d.ts.map +1 -0
- package/dist/analysis/router.test.js +411 -0
- package/dist/analysis/router.test.js.map +1 -0
- package/dist/analysis/tree-cache.d.ts +208 -0
- package/dist/analysis/tree-cache.d.ts.map +1 -0
- package/dist/analysis/tree-cache.js +288 -0
- package/dist/analysis/tree-cache.js.map +1 -0
- package/dist/analysis/tree-sitter/manager.d.ts +141 -0
- package/dist/analysis/tree-sitter/manager.d.ts.map +1 -0
- package/dist/analysis/tree-sitter/manager.js +246 -0
- package/dist/analysis/tree-sitter/manager.js.map +1 -0
- package/dist/analysis/tree-sitter/pythonExtractor.d.ts +45 -0
- package/dist/analysis/tree-sitter/pythonExtractor.d.ts.map +1 -0
- package/dist/analysis/tree-sitter/pythonExtractor.js +264 -0
- package/dist/analysis/tree-sitter/pythonExtractor.js.map +1 -0
- package/dist/analysis/tree-sitter/pythonExtractor.test.d.ts +12 -0
- package/dist/analysis/tree-sitter/pythonExtractor.test.d.ts.map +1 -0
- package/dist/analysis/tree-sitter/pythonExtractor.test.js +74 -0
- package/dist/analysis/tree-sitter/pythonExtractor.test.js.map +1 -0
- package/dist/analysis/tree-sitter/pythonIncremental.d.ts +93 -0
- package/dist/analysis/tree-sitter/pythonIncremental.d.ts.map +1 -0
- package/dist/analysis/tree-sitter/pythonIncremental.hardening.test.d.ts +22 -0
- package/dist/analysis/tree-sitter/pythonIncremental.hardening.test.d.ts.map +1 -0
- package/dist/analysis/tree-sitter/pythonIncremental.hardening.test.js +229 -0
- package/dist/analysis/tree-sitter/pythonIncremental.hardening.test.js.map +1 -0
- package/dist/analysis/tree-sitter/pythonIncremental.js +287 -0
- package/dist/analysis/tree-sitter/pythonIncremental.js.map +1 -0
- package/dist/analysis/tree-sitter/pythonIncremental.test.d.ts +17 -0
- package/dist/analysis/tree-sitter/pythonIncremental.test.d.ts.map +1 -0
- package/dist/analysis/tree-sitter/pythonIncremental.test.js +142 -0
- package/dist/analysis/tree-sitter/pythonIncremental.test.js.map +1 -0
- package/dist/analysis/tree-sitter/queries/python.d.ts +43 -0
- package/dist/analysis/tree-sitter/queries/python.d.ts.map +1 -0
- package/dist/analysis/tree-sitter/queries/python.js +88 -0
- package/dist/analysis/tree-sitter/queries/python.js.map +1 -0
- package/dist/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.d.ts +13 -0
- package/dist/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.d.ts.map +1 -0
- package/dist/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.js +174 -0
- package/dist/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.js.map +1 -0
- package/dist/analysis/types.d.ts +203 -0
- package/dist/analysis/types.d.ts.map +1 -0
- package/dist/analysis/types.js +58 -0
- package/dist/analysis/types.js.map +1 -0
- package/dist/analysis/worker-pool.d.ts +114 -0
- package/dist/analysis/worker-pool.d.ts.map +1 -0
- package/dist/analysis/worker-pool.js +266 -0
- package/dist/analysis/worker-pool.js.map +1 -0
- package/dist/analysis/worker-types.d.ts +64 -0
- package/dist/analysis/worker-types.d.ts.map +1 -0
- package/dist/analysis/worker-types.js +11 -0
- package/dist/analysis/worker-types.js.map +1 -0
- package/dist/analysis/worker-utils.d.ts +49 -0
- package/dist/analysis/worker-utils.d.ts.map +1 -0
- package/dist/analysis/worker-utils.js +206 -0
- package/dist/analysis/worker-utils.js.map +1 -0
- package/dist/analytics/AnalyticsRepository.d.ts +97 -0
- package/dist/analytics/AnalyticsRepository.d.ts.map +1 -0
- package/dist/analytics/AnalyticsRepository.helpers.d.ts +28 -0
- package/dist/analytics/AnalyticsRepository.helpers.d.ts.map +1 -0
- package/dist/analytics/AnalyticsRepository.helpers.js +90 -0
- package/dist/analytics/AnalyticsRepository.helpers.js.map +1 -0
- package/dist/analytics/AnalyticsRepository.js +245 -0
- package/dist/analytics/AnalyticsRepository.js.map +1 -0
- package/dist/analytics/AnalyticsRepository.types.d.ts +82 -0
- package/dist/analytics/AnalyticsRepository.types.d.ts.map +1 -0
- package/dist/analytics/AnalyticsRepository.types.js +8 -0
- package/dist/analytics/AnalyticsRepository.types.js.map +1 -0
- package/dist/analytics/ExperimentService.d.ts +70 -0
- package/dist/analytics/ExperimentService.d.ts.map +1 -0
- package/dist/analytics/ExperimentService.js +251 -0
- package/dist/analytics/ExperimentService.js.map +1 -0
- package/dist/analytics/ROIDashboardService.csv.d.ts +11 -0
- package/dist/analytics/ROIDashboardService.csv.d.ts.map +1 -0
- package/dist/analytics/ROIDashboardService.csv.js +43 -0
- package/dist/analytics/ROIDashboardService.csv.js.map +1 -0
- package/dist/analytics/ROIDashboardService.d.ts +116 -0
- package/dist/analytics/ROIDashboardService.d.ts.map +1 -0
- package/dist/analytics/ROIDashboardService.js +377 -0
- package/dist/analytics/ROIDashboardService.js.map +1 -0
- package/dist/analytics/UsageAnalyticsService.d.ts +55 -0
- package/dist/analytics/UsageAnalyticsService.d.ts.map +1 -0
- package/dist/analytics/UsageAnalyticsService.js +180 -0
- package/dist/analytics/UsageAnalyticsService.js.map +1 -0
- package/dist/analytics/anonymizer.d.ts +53 -0
- package/dist/analytics/anonymizer.d.ts.map +1 -0
- package/dist/analytics/anonymizer.js +107 -0
- package/dist/analytics/anonymizer.js.map +1 -0
- package/dist/analytics/constants.d.ts +19 -0
- package/dist/analytics/constants.d.ts.map +1 -0
- package/dist/analytics/constants.js +19 -0
- package/dist/analytics/constants.js.map +1 -0
- package/dist/analytics/index.d.ts +23 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +23 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/metrics-aggregator.d.ts +98 -0
- package/dist/analytics/metrics-aggregator.d.ts.map +1 -0
- package/dist/analytics/metrics-aggregator.js +176 -0
- package/dist/analytics/metrics-aggregator.js.map +1 -0
- package/dist/analytics/metrics-exporter.d.ts +148 -0
- package/dist/analytics/metrics-exporter.d.ts.map +1 -0
- package/dist/analytics/metrics-exporter.js +244 -0
- package/dist/analytics/metrics-exporter.js.map +1 -0
- package/dist/analytics/schema.d.ts +20 -0
- package/dist/analytics/schema.d.ts.map +1 -0
- package/dist/analytics/schema.js +265 -0
- package/dist/analytics/schema.js.map +1 -0
- package/dist/analytics/storage.d.ts +82 -0
- package/dist/analytics/storage.d.ts.map +1 -0
- package/dist/analytics/storage.js +191 -0
- package/dist/analytics/storage.js.map +1 -0
- package/dist/analytics/types.d.ts +277 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +10 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/analytics/usage-tracker.d.ts +138 -0
- package/dist/analytics/usage-tracker.d.ts.map +1 -0
- package/dist/analytics/usage-tracker.js +226 -0
- package/dist/analytics/usage-tracker.js.map +1 -0
- package/dist/api/cache.d.ts +131 -0
- package/dist/api/cache.d.ts.map +1 -0
- package/dist/api/cache.js +264 -0
- package/dist/api/cache.js.map +1 -0
- package/dist/api/client.cache.d.ts +34 -0
- package/dist/api/client.cache.d.ts.map +1 -0
- package/dist/api/client.cache.js +37 -0
- package/dist/api/client.cache.js.map +1 -0
- package/dist/api/client.d.ts +55 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.events.d.ts +39 -0
- package/dist/api/client.events.d.ts.map +1 -0
- package/dist/api/client.events.js +86 -0
- package/dist/api/client.events.js.map +1 -0
- package/dist/api/client.health.d.ts +26 -0
- package/dist/api/client.health.d.ts.map +1 -0
- package/dist/api/client.health.js +74 -0
- package/dist/api/client.health.js.map +1 -0
- package/dist/api/client.js +297 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/client.token-refresh.d.ts +3 -0
- package/dist/api/client.token-refresh.d.ts.map +1 -0
- package/dist/api/client.token-refresh.js +19 -0
- package/dist/api/client.token-refresh.js.map +1 -0
- package/dist/api/client.token-refresh.test.d.ts +2 -0
- package/dist/api/client.token-refresh.test.d.ts.map +1 -0
- package/dist/api/client.token-refresh.test.js +73 -0
- package/dist/api/client.token-refresh.test.js.map +1 -0
- package/dist/api/client.types.d.ts +111 -0
- package/dist/api/client.types.d.ts.map +1 -0
- package/dist/api/client.types.js +22 -0
- package/dist/api/client.types.js.map +1 -0
- package/dist/api/event-batcher.d.ts +81 -0
- package/dist/api/event-batcher.d.ts.map +1 -0
- package/dist/api/event-batcher.js +191 -0
- package/dist/api/event-batcher.js.map +1 -0
- package/dist/api/index.d.ts +13 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +19 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/schemas.d.ts +451 -0
- package/dist/api/schemas.d.ts.map +1 -0
- package/dist/api/schemas.js +131 -0
- package/dist/api/schemas.js.map +1 -0
- package/dist/api/types.d.ts +264 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +9 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/utils.d.ts +54 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/api/utils.js +104 -0
- package/dist/api/utils.js.map +1 -0
- package/dist/audit/remote-audit.d.ts +28 -0
- package/dist/audit/remote-audit.d.ts.map +1 -0
- package/dist/audit/remote-audit.js +90 -0
- package/dist/audit/remote-audit.js.map +1 -0
- package/dist/audit/remote-audit.test.d.ts +2 -0
- package/dist/audit/remote-audit.test.d.ts.map +1 -0
- package/dist/audit/remote-audit.test.js +81 -0
- package/dist/audit/remote-audit.test.js.map +1 -0
- package/dist/benchmarks/BenchmarkRunner.d.ts +89 -0
- package/dist/benchmarks/BenchmarkRunner.d.ts.map +1 -0
- package/dist/benchmarks/BenchmarkRunner.js +336 -0
- package/dist/benchmarks/BenchmarkRunner.js.map +1 -0
- package/dist/benchmarks/IndexBenchmark.d.ts +101 -0
- package/dist/benchmarks/IndexBenchmark.d.ts.map +1 -0
- package/dist/benchmarks/IndexBenchmark.js +314 -0
- package/dist/benchmarks/IndexBenchmark.js.map +1 -0
- package/dist/benchmarks/MemoryProfiler.d.ts +8 -0
- package/dist/benchmarks/MemoryProfiler.d.ts.map +1 -0
- package/dist/benchmarks/MemoryProfiler.js +8 -0
- package/dist/benchmarks/MemoryProfiler.js.map +1 -0
- package/dist/benchmarks/SearchBenchmark.d.ts +71 -0
- package/dist/benchmarks/SearchBenchmark.d.ts.map +1 -0
- package/dist/benchmarks/SearchBenchmark.js +321 -0
- package/dist/benchmarks/SearchBenchmark.js.map +1 -0
- package/dist/benchmarks/cacheBenchmark.d.ts +75 -0
- package/dist/benchmarks/cacheBenchmark.d.ts.map +1 -0
- package/dist/benchmarks/cacheBenchmark.js +325 -0
- package/dist/benchmarks/cacheBenchmark.js.map +1 -0
- package/dist/benchmarks/cli.d.ts +17 -0
- package/dist/benchmarks/cli.d.ts.map +1 -0
- package/dist/benchmarks/cli.js +140 -0
- package/dist/benchmarks/cli.js.map +1 -0
- package/dist/benchmarks/comparator.d.ts +38 -0
- package/dist/benchmarks/comparator.d.ts.map +1 -0
- package/dist/benchmarks/comparator.js +81 -0
- package/dist/benchmarks/comparator.js.map +1 -0
- package/dist/benchmarks/embeddingBenchmark.d.ts +86 -0
- package/dist/benchmarks/embeddingBenchmark.d.ts.map +1 -0
- package/dist/benchmarks/embeddingBenchmark.js +329 -0
- package/dist/benchmarks/embeddingBenchmark.js.map +1 -0
- package/dist/benchmarks/formatters.d.ts +30 -0
- package/dist/benchmarks/formatters.d.ts.map +1 -0
- package/dist/benchmarks/formatters.js +88 -0
- package/dist/benchmarks/formatters.js.map +1 -0
- package/dist/benchmarks/incrementalParseBenchmark.d.ts +18 -0
- package/dist/benchmarks/incrementalParseBenchmark.d.ts.map +1 -0
- package/dist/benchmarks/incrementalParseBenchmark.js +121 -0
- package/dist/benchmarks/incrementalParseBenchmark.js.map +1 -0
- package/dist/benchmarks/index.d.ts +55 -0
- package/dist/benchmarks/index.d.ts.map +1 -0
- package/dist/benchmarks/index.js +208 -0
- package/dist/benchmarks/index.js.map +1 -0
- package/dist/benchmarks/memory/MemoryProfiler.d.ts +165 -0
- package/dist/benchmarks/memory/MemoryProfiler.d.ts.map +1 -0
- package/dist/benchmarks/memory/MemoryProfiler.js +312 -0
- package/dist/benchmarks/memory/MemoryProfiler.js.map +1 -0
- package/dist/benchmarks/memory/baseline-manager.d.ts +64 -0
- package/dist/benchmarks/memory/baseline-manager.d.ts.map +1 -0
- package/dist/benchmarks/memory/baseline-manager.js +95 -0
- package/dist/benchmarks/memory/baseline-manager.js.map +1 -0
- package/dist/benchmarks/memory/index.d.ts +12 -0
- package/dist/benchmarks/memory/index.d.ts.map +1 -0
- package/dist/benchmarks/memory/index.js +12 -0
- package/dist/benchmarks/memory/index.js.map +1 -0
- package/dist/benchmarks/memory/leak-detector.d.ts +23 -0
- package/dist/benchmarks/memory/leak-detector.d.ts.map +1 -0
- package/dist/benchmarks/memory/leak-detector.js +46 -0
- package/dist/benchmarks/memory/leak-detector.js.map +1 -0
- package/dist/benchmarks/memory/regression-detector.d.ts +17 -0
- package/dist/benchmarks/memory/regression-detector.d.ts.map +1 -0
- package/dist/benchmarks/memory/regression-detector.js +56 -0
- package/dist/benchmarks/memory/regression-detector.js.map +1 -0
- package/dist/benchmarks/memory/types.d.ts +111 -0
- package/dist/benchmarks/memory/types.d.ts.map +1 -0
- package/dist/benchmarks/memory/types.js +7 -0
- package/dist/benchmarks/memory/types.js.map +1 -0
- package/dist/benchmarks/memory/utils.d.ts +17 -0
- package/dist/benchmarks/memory/utils.d.ts.map +1 -0
- package/dist/benchmarks/memory/utils.js +29 -0
- package/dist/benchmarks/memory/utils.js.map +1 -0
- package/dist/benchmarks/stats.d.ts +56 -0
- package/dist/benchmarks/stats.d.ts.map +1 -0
- package/dist/benchmarks/stats.js +86 -0
- package/dist/benchmarks/stats.js.map +1 -0
- package/dist/benchmarks/types.d.ts +175 -0
- package/dist/benchmarks/types.d.ts.map +1 -0
- package/dist/benchmarks/types.js +20 -0
- package/dist/benchmarks/types.js.map +1 -0
- package/dist/billing/BillingService.d.ts +101 -0
- package/dist/billing/BillingService.d.ts.map +1 -0
- package/dist/billing/BillingService.helpers.d.ts +15 -0
- package/dist/billing/BillingService.helpers.d.ts.map +1 -0
- package/dist/billing/BillingService.helpers.js +45 -0
- package/dist/billing/BillingService.helpers.js.map +1 -0
- package/dist/billing/BillingService.js +263 -0
- package/dist/billing/BillingService.js.map +1 -0
- package/dist/billing/BillingService.types.d.ts +52 -0
- package/dist/billing/BillingService.types.d.ts.map +1 -0
- package/dist/billing/BillingService.types.js +6 -0
- package/dist/billing/BillingService.types.js.map +1 -0
- package/dist/billing/GDPRComplianceService.d.ts +81 -0
- package/dist/billing/GDPRComplianceService.d.ts.map +1 -0
- package/dist/billing/GDPRComplianceService.js +361 -0
- package/dist/billing/GDPRComplianceService.js.map +1 -0
- package/dist/billing/StripeClient.d.ts +119 -0
- package/dist/billing/StripeClient.d.ts.map +1 -0
- package/dist/billing/StripeClient.js +405 -0
- package/dist/billing/StripeClient.js.map +1 -0
- package/dist/billing/StripeReconciliationJob.d.ts +50 -0
- package/dist/billing/StripeReconciliationJob.d.ts.map +1 -0
- package/dist/billing/StripeReconciliationJob.js +365 -0
- package/dist/billing/StripeReconciliationJob.js.map +1 -0
- package/dist/billing/StripeWebhookHandler.d.ts +49 -0
- package/dist/billing/StripeWebhookHandler.d.ts.map +1 -0
- package/dist/billing/StripeWebhookHandler.js +162 -0
- package/dist/billing/StripeWebhookHandler.js.map +1 -0
- package/dist/billing/gdpr-types.d.ts +103 -0
- package/dist/billing/gdpr-types.d.ts.map +1 -0
- package/dist/billing/gdpr-types.js +7 -0
- package/dist/billing/gdpr-types.js.map +1 -0
- package/dist/billing/index.d.ts +18 -0
- package/dist/billing/index.d.ts.map +1 -0
- package/dist/billing/index.js +19 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/billing/reconciliation-helpers.d.ts +16 -0
- package/dist/billing/reconciliation-helpers.d.ts.map +1 -0
- package/dist/billing/reconciliation-helpers.js +53 -0
- package/dist/billing/reconciliation-helpers.js.map +1 -0
- package/dist/billing/reconciliation-types.d.ts +71 -0
- package/dist/billing/reconciliation-types.d.ts.map +1 -0
- package/dist/billing/reconciliation-types.js +7 -0
- package/dist/billing/reconciliation-types.js.map +1 -0
- package/dist/billing/stripe-client-types.d.ts +45 -0
- package/dist/billing/stripe-client-types.d.ts.map +1 -0
- package/dist/billing/stripe-client-types.js +7 -0
- package/dist/billing/stripe-client-types.js.map +1 -0
- package/dist/billing/stripe-helpers.d.ts +17 -0
- package/dist/billing/stripe-helpers.d.ts.map +1 -0
- package/dist/billing/stripe-helpers.js +50 -0
- package/dist/billing/stripe-helpers.js.map +1 -0
- package/dist/billing/types.d.ts +266 -0
- package/dist/billing/types.d.ts.map +1 -0
- package/dist/billing/types.js +23 -0
- package/dist/billing/types.js.map +1 -0
- package/dist/billing/webhook-handlers.d.ts +56 -0
- package/dist/billing/webhook-handlers.d.ts.map +1 -0
- package/dist/billing/webhook-handlers.js +303 -0
- package/dist/billing/webhook-handlers.js.map +1 -0
- package/dist/billing/webhook-types.d.ts +42 -0
- package/dist/billing/webhook-types.d.ts.map +1 -0
- package/dist/billing/webhook-types.js +7 -0
- package/dist/billing/webhook-types.js.map +1 -0
- package/dist/cache/CacheEntry.d.ts +101 -0
- package/dist/cache/CacheEntry.d.ts.map +1 -0
- package/dist/cache/CacheEntry.js +238 -0
- package/dist/cache/CacheEntry.js.map +1 -0
- package/dist/cache/CacheManager.d.ts +178 -0
- package/dist/cache/CacheManager.d.ts.map +1 -0
- package/dist/cache/CacheManager.js +367 -0
- package/dist/cache/CacheManager.js.map +1 -0
- package/dist/cache/TieredCache.d.ts +110 -0
- package/dist/cache/TieredCache.d.ts.map +1 -0
- package/dist/cache/TieredCache.js +334 -0
- package/dist/cache/TieredCache.js.map +1 -0
- package/dist/cache/index.d.ts +75 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +110 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/lru.d.ts +68 -0
- package/dist/cache/lru.d.ts.map +1 -0
- package/dist/cache/lru.js +105 -0
- package/dist/cache/lru.js.map +1 -0
- package/dist/cache/sqlite.d.ts +73 -0
- package/dist/cache/sqlite.d.ts.map +1 -0
- package/dist/cache/sqlite.js +178 -0
- package/dist/cache/sqlite.js.map +1 -0
- package/dist/config/index.d.ts +170 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +341 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/index.test.d.ts +11 -0
- package/dist/config/index.test.d.ts.map +1 -0
- package/dist/config/index.test.js +288 -0
- package/dist/config/index.test.js.map +1 -0
- package/dist/config/token-credentials.d.ts +13 -0
- package/dist/config/token-credentials.d.ts.map +1 -0
- package/dist/config/token-credentials.js +126 -0
- package/dist/config/token-credentials.js.map +1 -0
- package/dist/config/token-credentials.test.d.ts +10 -0
- package/dist/config/token-credentials.test.d.ts.map +1 -0
- package/dist/config/token-credentials.test.js +91 -0
- package/dist/config/token-credentials.test.js.map +1 -0
- package/dist/data/generic-triggers.d.ts +24 -0
- package/dist/data/generic-triggers.d.ts.map +1 -0
- package/dist/data/generic-triggers.js +19 -0
- package/dist/data/generic-triggers.js.map +1 -0
- package/dist/data/generic-triggers.json +35 -0
- package/dist/db/createDatabase.d.ts +94 -0
- package/dist/db/createDatabase.d.ts.map +1 -0
- package/dist/db/createDatabase.js +159 -0
- package/dist/db/createDatabase.js.map +1 -0
- package/dist/db/database-interface.d.ts +141 -0
- package/dist/db/database-interface.d.ts.map +1 -0
- package/dist/db/database-interface.js +14 -0
- package/dist/db/database-interface.js.map +1 -0
- package/dist/db/drivers/betterSqlite3Driver.d.ts +48 -0
- package/dist/db/drivers/betterSqlite3Driver.d.ts.map +1 -0
- package/dist/db/drivers/betterSqlite3Driver.js +138 -0
- package/dist/db/drivers/betterSqlite3Driver.js.map +1 -0
- package/dist/db/drivers/index.d.ts +8 -0
- package/dist/db/drivers/index.d.ts.map +1 -0
- package/dist/db/drivers/index.js +8 -0
- package/dist/db/drivers/index.js.map +1 -0
- package/dist/db/drivers/sqljsDriver.d.ts +91 -0
- package/dist/db/drivers/sqljsDriver.d.ts.map +1 -0
- package/dist/db/drivers/sqljsDriver.js +334 -0
- package/dist/db/drivers/sqljsDriver.js.map +1 -0
- package/dist/db/migration-runner.d.ts +44 -0
- package/dist/db/migration-runner.d.ts.map +1 -0
- package/dist/db/migration-runner.js +175 -0
- package/dist/db/migration-runner.js.map +1 -0
- package/dist/db/migration-types.d.ts +101 -0
- package/dist/db/migration-types.d.ts.map +1 -0
- package/dist/db/migration-types.js +6 -0
- package/dist/db/migration-types.js.map +1 -0
- package/dist/db/migration.d.ts +32 -0
- package/dist/db/migration.d.ts.map +1 -0
- package/dist/db/migration.js +240 -0
- package/dist/db/migration.js.map +1 -0
- package/dist/db/migrations/v10-dependencies.d.ts +18 -0
- package/dist/db/migrations/v10-dependencies.d.ts.map +1 -0
- package/dist/db/migrations/v10-dependencies.js +50 -0
- package/dist/db/migrations/v10-dependencies.js.map +1 -0
- package/dist/db/migrations/v12-risk-score-history.d.ts +10 -0
- package/dist/db/migrations/v12-risk-score-history.d.ts.map +1 -0
- package/dist/db/migrations/v12-risk-score-history.js +25 -0
- package/dist/db/migrations/v12-risk-score-history.js.map +1 -0
- package/dist/db/migrations/v13-team-tables.d.ts +11 -0
- package/dist/db/migrations/v13-team-tables.d.ts.map +1 -0
- package/dist/db/migrations/v13-team-tables.js +14 -0
- package/dist/db/migrations/v13-team-tables.js.map +1 -0
- package/dist/db/migrations/v2-phase5-columns.d.ts +7 -0
- package/dist/db/migrations/v2-phase5-columns.d.ts.map +1 -0
- package/dist/db/migrations/v2-phase5-columns.js +16 -0
- package/dist/db/migrations/v2-phase5-columns.js.map +1 -0
- package/dist/db/migrations/v3-sync-tables.d.ts +6 -0
- package/dist/db/migrations/v3-sync-tables.d.ts.map +1 -0
- package/dist/db/migrations/v3-sync-tables.js +41 -0
- package/dist/db/migrations/v3-sync-tables.js.map +1 -0
- package/dist/db/migrations/v4-security-columns.d.ts +7 -0
- package/dist/db/migrations/v4-security-columns.d.ts.map +1 -0
- package/dist/db/migrations/v4-security-columns.js +17 -0
- package/dist/db/migrations/v4-security-columns.js.map +1 -0
- package/dist/db/migrations/v5-skill-versions.d.ts +30 -0
- package/dist/db/migrations/v5-skill-versions.d.ts.map +1 -0
- package/dist/db/migrations/v5-skill-versions.js +45 -0
- package/dist/db/migrations/v5-skill-versions.js.map +1 -0
- package/dist/db/migrations/v5b-change-type.d.ts +19 -0
- package/dist/db/migrations/v5b-change-type.d.ts.map +1 -0
- package/dist/db/migrations/v5b-change-type.js +22 -0
- package/dist/db/migrations/v5b-change-type.js.map +1 -0
- package/dist/db/migrations/v6-advisories.d.ts +32 -0
- package/dist/db/migrations/v6-advisories.d.ts.map +1 -0
- package/dist/db/migrations/v6-advisories.js +53 -0
- package/dist/db/migrations/v6-advisories.js.map +1 -0
- package/dist/db/migrations/v7-compatibility.d.ts +21 -0
- package/dist/db/migrations/v7-compatibility.d.ts.map +1 -0
- package/dist/db/migrations/v7-compatibility.js +23 -0
- package/dist/db/migrations/v7-compatibility.js.map +1 -0
- package/dist/db/migrations/v8-co-installs.d.ts +21 -0
- package/dist/db/migrations/v8-co-installs.d.ts.map +1 -0
- package/dist/db/migrations/v8-co-installs.js +33 -0
- package/dist/db/migrations/v8-co-installs.js.map +1 -0
- package/dist/db/quarantine-approvals-schema.d.ts +37 -0
- package/dist/db/quarantine-approvals-schema.d.ts.map +1 -0
- package/dist/db/quarantine-approvals-schema.js +71 -0
- package/dist/db/quarantine-approvals-schema.js.map +1 -0
- package/dist/db/quarantine-schema.d.ts +81 -0
- package/dist/db/quarantine-schema.d.ts.map +1 -0
- package/dist/db/quarantine-schema.js +110 -0
- package/dist/db/quarantine-schema.js.map +1 -0
- package/dist/db/schema-sql.d.ts +16 -0
- package/dist/db/schema-sql.d.ts.map +1 -0
- package/dist/db/schema-sql.js +161 -0
- package/dist/db/schema-sql.js.map +1 -0
- package/dist/db/schema.d.ts +62 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +131 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/embeddings/embedding-types.d.ts +44 -0
- package/dist/embeddings/embedding-types.d.ts.map +1 -0
- package/dist/embeddings/embedding-types.js +6 -0
- package/dist/embeddings/embedding-types.js.map +1 -0
- package/dist/embeddings/embedding-utils.d.ts +42 -0
- package/dist/embeddings/embedding-utils.d.ts.map +1 -0
- package/dist/embeddings/embedding-utils.js +121 -0
- package/dist/embeddings/embedding-utils.js.map +1 -0
- package/dist/embeddings/hnsw-store.d.ts +72 -0
- package/dist/embeddings/hnsw-store.d.ts.map +1 -0
- package/dist/embeddings/hnsw-store.helpers.d.ts +83 -0
- package/dist/embeddings/hnsw-store.helpers.d.ts.map +1 -0
- package/dist/embeddings/hnsw-store.helpers.js +147 -0
- package/dist/embeddings/hnsw-store.helpers.js.map +1 -0
- package/dist/embeddings/hnsw-store.js +352 -0
- package/dist/embeddings/hnsw-store.js.map +1 -0
- package/dist/embeddings/hnsw-store.types.d.ts +172 -0
- package/dist/embeddings/hnsw-store.types.d.ts.map +1 -0
- package/dist/embeddings/hnsw-store.types.js +26 -0
- package/dist/embeddings/hnsw-store.types.js.map +1 -0
- package/dist/embeddings/index.d.ts +98 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +246 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/errors/SkillsmithError.d.ts +118 -0
- package/dist/errors/SkillsmithError.d.ts.map +1 -0
- package/dist/errors/SkillsmithError.js +194 -0
- package/dist/errors/SkillsmithError.js.map +1 -0
- package/dist/errors/index.d.ts +36 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +36 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors.d.ts +73 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +124 -0
- package/dist/errors.js.map +1 -0
- package/dist/exports/repositories.d.ts +28 -0
- package/dist/exports/repositories.d.ts.map +1 -0
- package/dist/exports/repositories.js +61 -0
- package/dist/exports/repositories.js.map +1 -0
- package/dist/exports/services.d.ts +37 -0
- package/dist/exports/services.d.ts.map +1 -0
- package/dist/exports/services.js +86 -0
- package/dist/exports/services.js.map +1 -0
- package/dist/exports/types.d.ts +22 -0
- package/dist/exports/types.d.ts.map +1 -0
- package/dist/exports/types.js +12 -0
- package/dist/exports/types.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +35 -0
- package/dist/index.test.js.map +1 -0
- package/dist/indexer/GitHubIndexer.d.ts +109 -0
- package/dist/indexer/GitHubIndexer.d.ts.map +1 -0
- package/dist/indexer/GitHubIndexer.js +215 -0
- package/dist/indexer/GitHubIndexer.js.map +1 -0
- package/dist/indexer/PartitionStrategy.d.ts +115 -0
- package/dist/indexer/PartitionStrategy.d.ts.map +1 -0
- package/dist/indexer/PartitionStrategy.js +207 -0
- package/dist/indexer/PartitionStrategy.js.map +1 -0
- package/dist/indexer/SkillParser.coverage.test.d.ts +10 -0
- package/dist/indexer/SkillParser.coverage.test.d.ts.map +1 -0
- package/dist/indexer/SkillParser.coverage.test.js +76 -0
- package/dist/indexer/SkillParser.coverage.test.js.map +1 -0
- package/dist/indexer/SkillParser.d.ts +145 -0
- package/dist/indexer/SkillParser.d.ts.map +1 -0
- package/dist/indexer/SkillParser.js +346 -0
- package/dist/indexer/SkillParser.js.map +1 -0
- package/dist/indexer/SkillParser.test.d.ts +2 -0
- package/dist/indexer/SkillParser.test.d.ts.map +1 -0
- package/dist/indexer/SkillParser.test.js +375 -0
- package/dist/indexer/SkillParser.test.js.map +1 -0
- package/dist/indexer/SwarmIndexer.d.ts +163 -0
- package/dist/indexer/SwarmIndexer.d.ts.map +1 -0
- package/dist/indexer/SwarmIndexer.js +300 -0
- package/dist/indexer/SwarmIndexer.js.map +1 -0
- package/dist/indexer/index.d.ts +12 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +16 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/learning/PatternStore.d.ts +43 -0
- package/dist/learning/PatternStore.d.ts.map +1 -0
- package/dist/learning/PatternStore.helpers.d.ts +106 -0
- package/dist/learning/PatternStore.helpers.d.ts.map +1 -0
- package/dist/learning/PatternStore.helpers.js +337 -0
- package/dist/learning/PatternStore.helpers.js.map +1 -0
- package/dist/learning/PatternStore.js +315 -0
- package/dist/learning/PatternStore.js.map +1 -0
- package/dist/learning/PatternStore.queries.d.ts +83 -0
- package/dist/learning/PatternStore.queries.d.ts.map +1 -0
- package/dist/learning/PatternStore.queries.js +189 -0
- package/dist/learning/PatternStore.queries.js.map +1 -0
- package/dist/learning/PatternStore.types.d.ts +308 -0
- package/dist/learning/PatternStore.types.d.ts.map +1 -0
- package/dist/learning/PatternStore.types.js +44 -0
- package/dist/learning/PatternStore.types.js.map +1 -0
- package/dist/learning/ReasoningBankIntegration.d.ts +63 -0
- package/dist/learning/ReasoningBankIntegration.d.ts.map +1 -0
- package/dist/learning/ReasoningBankIntegration.helpers.d.ts +49 -0
- package/dist/learning/ReasoningBankIntegration.helpers.d.ts.map +1 -0
- package/dist/learning/ReasoningBankIntegration.helpers.js +180 -0
- package/dist/learning/ReasoningBankIntegration.helpers.js.map +1 -0
- package/dist/learning/ReasoningBankIntegration.js +258 -0
- package/dist/learning/ReasoningBankIntegration.js.map +1 -0
- package/dist/learning/ReasoningBankIntegration.types.d.ts +167 -0
- package/dist/learning/ReasoningBankIntegration.types.d.ts.map +1 -0
- package/dist/learning/ReasoningBankIntegration.types.js +51 -0
- package/dist/learning/ReasoningBankIntegration.types.js.map +1 -0
- package/dist/learning/index.d.ts +15 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +15 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/interfaces.d.ts +338 -0
- package/dist/learning/interfaces.d.ts.map +1 -0
- package/dist/learning/interfaces.js +13 -0
- package/dist/learning/interfaces.js.map +1 -0
- package/dist/learning/types.d.ts +284 -0
- package/dist/learning/types.d.ts.map +1 -0
- package/dist/learning/types.js +112 -0
- package/dist/learning/types.js.map +1 -0
- package/dist/matching/OverlapDetector.d.ts +152 -0
- package/dist/matching/OverlapDetector.d.ts.map +1 -0
- package/dist/matching/OverlapDetector.js +218 -0
- package/dist/matching/OverlapDetector.js.map +1 -0
- package/dist/matching/SkillMatcher.d.ts +125 -0
- package/dist/matching/SkillMatcher.d.ts.map +1 -0
- package/dist/matching/SkillMatcher.js +206 -0
- package/dist/matching/SkillMatcher.js.map +1 -0
- package/dist/matching/index.d.ts +14 -0
- package/dist/matching/index.d.ts.map +1 -0
- package/dist/matching/index.js +12 -0
- package/dist/matching/index.js.map +1 -0
- package/dist/pipeline/DailyIndexPipeline.d.ts +48 -0
- package/dist/pipeline/DailyIndexPipeline.d.ts.map +1 -0
- package/dist/pipeline/DailyIndexPipeline.js +246 -0
- package/dist/pipeline/DailyIndexPipeline.js.map +1 -0
- package/dist/pipeline/index.d.ts +9 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +9 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/pipeline-types.d.ts +132 -0
- package/dist/pipeline/pipeline-types.d.ts.map +1 -0
- package/dist/pipeline/pipeline-types.js +6 -0
- package/dist/pipeline/pipeline-types.js.map +1 -0
- package/dist/repositories/AdvisoryRepository.d.ts +80 -0
- package/dist/repositories/AdvisoryRepository.d.ts.map +1 -0
- package/dist/repositories/AdvisoryRepository.js +128 -0
- package/dist/repositories/AdvisoryRepository.js.map +1 -0
- package/dist/repositories/AdvisoryRepository.test.d.ts +6 -0
- package/dist/repositories/AdvisoryRepository.test.d.ts.map +1 -0
- package/dist/repositories/AdvisoryRepository.test.js +149 -0
- package/dist/repositories/AdvisoryRepository.test.js.map +1 -0
- package/dist/repositories/CacheRepository.d.ts +60 -0
- package/dist/repositories/CacheRepository.d.ts.map +1 -0
- package/dist/repositories/CacheRepository.js +148 -0
- package/dist/repositories/CacheRepository.js.map +1 -0
- package/dist/repositories/CoInstallRepository.d.ts +68 -0
- package/dist/repositories/CoInstallRepository.d.ts.map +1 -0
- package/dist/repositories/CoInstallRepository.js +122 -0
- package/dist/repositories/CoInstallRepository.js.map +1 -0
- package/dist/repositories/IndexerRepository.d.ts +127 -0
- package/dist/repositories/IndexerRepository.d.ts.map +1 -0
- package/dist/repositories/IndexerRepository.js +281 -0
- package/dist/repositories/IndexerRepository.js.map +1 -0
- package/dist/repositories/QuarantineRepository.d.ts +8 -0
- package/dist/repositories/QuarantineRepository.d.ts.map +1 -0
- package/dist/repositories/QuarantineRepository.js +8 -0
- package/dist/repositories/QuarantineRepository.js.map +1 -0
- package/dist/repositories/RiskScoreHistoryRepository.d.ts +37 -0
- package/dist/repositories/RiskScoreHistoryRepository.d.ts.map +1 -0
- package/dist/repositories/RiskScoreHistoryRepository.js +66 -0
- package/dist/repositories/RiskScoreHistoryRepository.js.map +1 -0
- package/dist/repositories/SkillDependencyRepository.d.ts +73 -0
- package/dist/repositories/SkillDependencyRepository.d.ts.map +1 -0
- package/dist/repositories/SkillDependencyRepository.js +199 -0
- package/dist/repositories/SkillDependencyRepository.js.map +1 -0
- package/dist/repositories/SkillRepository.d.ts +78 -0
- package/dist/repositories/SkillRepository.d.ts.map +1 -0
- package/dist/repositories/SkillRepository.js +235 -0
- package/dist/repositories/SkillRepository.js.map +1 -0
- package/dist/repositories/SkillVersionRepository.d.ts +82 -0
- package/dist/repositories/SkillVersionRepository.d.ts.map +1 -0
- package/dist/repositories/SkillVersionRepository.js +118 -0
- package/dist/repositories/SkillVersionRepository.js.map +1 -0
- package/dist/repositories/SyncConfigRepository.d.ts +91 -0
- package/dist/repositories/SyncConfigRepository.d.ts.map +1 -0
- package/dist/repositories/SyncConfigRepository.js +202 -0
- package/dist/repositories/SyncConfigRepository.js.map +1 -0
- package/dist/repositories/SyncHistoryRepository.d.ts +104 -0
- package/dist/repositories/SyncHistoryRepository.d.ts.map +1 -0
- package/dist/repositories/SyncHistoryRepository.js +235 -0
- package/dist/repositories/SyncHistoryRepository.js.map +1 -0
- package/dist/repositories/quarantine/ApprovalRepository.d.ts +148 -0
- package/dist/repositories/quarantine/ApprovalRepository.d.ts.map +1 -0
- package/dist/repositories/quarantine/ApprovalRepository.js +212 -0
- package/dist/repositories/quarantine/ApprovalRepository.js.map +1 -0
- package/dist/repositories/quarantine/QuarantineRepository.d.ts +168 -0
- package/dist/repositories/quarantine/QuarantineRepository.d.ts.map +1 -0
- package/dist/repositories/quarantine/QuarantineRepository.js +344 -0
- package/dist/repositories/quarantine/QuarantineRepository.js.map +1 -0
- package/dist/repositories/quarantine/index.d.ts +12 -0
- package/dist/repositories/quarantine/index.d.ts.map +1 -0
- package/dist/repositories/quarantine/index.js +11 -0
- package/dist/repositories/quarantine/index.js.map +1 -0
- package/dist/repositories/quarantine/queries.d.ts +58 -0
- package/dist/repositories/quarantine/queries.d.ts.map +1 -0
- package/dist/repositories/quarantine/queries.js +88 -0
- package/dist/repositories/quarantine/queries.js.map +1 -0
- package/dist/repositories/quarantine/query-builder.d.ts +44 -0
- package/dist/repositories/quarantine/query-builder.d.ts.map +1 -0
- package/dist/repositories/quarantine/query-builder.js +87 -0
- package/dist/repositories/quarantine/query-builder.js.map +1 -0
- package/dist/repositories/quarantine/types.d.ts +155 -0
- package/dist/repositories/quarantine/types.d.ts.map +1 -0
- package/dist/repositories/quarantine/types.js +13 -0
- package/dist/repositories/quarantine/types.js.map +1 -0
- package/dist/routing/SONARouter.d.ts +56 -0
- package/dist/routing/SONARouter.d.ts.map +1 -0
- package/dist/routing/SONARouter.helpers.d.ts +112 -0
- package/dist/routing/SONARouter.helpers.d.ts.map +1 -0
- package/dist/routing/SONARouter.helpers.js +184 -0
- package/dist/routing/SONARouter.helpers.js.map +1 -0
- package/dist/routing/SONARouter.js +366 -0
- package/dist/routing/SONARouter.js.map +1 -0
- package/dist/routing/expert-types.d.ts +109 -0
- package/dist/routing/expert-types.d.ts.map +1 -0
- package/dist/routing/expert-types.js +162 -0
- package/dist/routing/expert-types.js.map +1 -0
- package/dist/routing/index.d.ts +9 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +10 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/request-types.d.ts +113 -0
- package/dist/routing/request-types.d.ts.map +1 -0
- package/dist/routing/request-types.js +9 -0
- package/dist/routing/request-types.js.map +1 -0
- package/dist/routing/types.d.ts +129 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/routing/types.js +53 -0
- package/dist/routing/types.js.map +1 -0
- package/dist/scoring/QualityScorer.d.ts +188 -0
- package/dist/scoring/QualityScorer.d.ts.map +1 -0
- package/dist/scoring/QualityScorer.js +342 -0
- package/dist/scoring/QualityScorer.js.map +1 -0
- package/dist/scoring/index.d.ts +10 -0
- package/dist/scoring/index.d.ts.map +1 -0
- package/dist/scoring/index.js +10 -0
- package/dist/scoring/index.js.map +1 -0
- package/dist/scoring/quality-score.d.ts +49 -0
- package/dist/scoring/quality-score.d.ts.map +1 -0
- package/dist/scoring/quality-score.js +73 -0
- package/dist/scoring/quality-score.js.map +1 -0
- package/dist/scripts/__tests__/scan-imported-skills.test.d.ts +6 -0
- package/dist/scripts/__tests__/scan-imported-skills.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/scan-imported-skills.test.js +373 -0
- package/dist/scripts/__tests__/scan-imported-skills.test.js.map +1 -0
- package/dist/scripts/github-import/blocklist.d.ts +65 -0
- package/dist/scripts/github-import/blocklist.d.ts.map +1 -0
- package/dist/scripts/github-import/blocklist.js +124 -0
- package/dist/scripts/github-import/blocklist.js.map +1 -0
- package/dist/scripts/github-import/checkpoint.d.ts +21 -0
- package/dist/scripts/github-import/checkpoint.d.ts.map +1 -0
- package/dist/scripts/github-import/checkpoint.js +52 -0
- package/dist/scripts/github-import/checkpoint.js.map +1 -0
- package/dist/scripts/github-import/deduplication.d.ts +15 -0
- package/dist/scripts/github-import/deduplication.d.ts.map +1 -0
- package/dist/scripts/github-import/deduplication.js +33 -0
- package/dist/scripts/github-import/deduplication.js.map +1 -0
- package/dist/scripts/github-import/github-auth.d.ts +17 -0
- package/dist/scripts/github-import/github-auth.d.ts.map +1 -0
- package/dist/scripts/github-import/github-auth.js +201 -0
- package/dist/scripts/github-import/github-auth.js.map +1 -0
- package/dist/scripts/github-import/github-client.d.ts +57 -0
- package/dist/scripts/github-import/github-client.d.ts.map +1 -0
- package/dist/scripts/github-import/github-client.js +274 -0
- package/dist/scripts/github-import/github-client.js.map +1 -0
- package/dist/scripts/github-import/index.d.ts +30 -0
- package/dist/scripts/github-import/index.d.ts.map +1 -0
- package/dist/scripts/github-import/index.js +194 -0
- package/dist/scripts/github-import/index.js.map +1 -0
- package/dist/scripts/github-import/output.d.ts +12 -0
- package/dist/scripts/github-import/output.d.ts.map +1 -0
- package/dist/scripts/github-import/output.js +34 -0
- package/dist/scripts/github-import/output.js.map +1 -0
- package/dist/scripts/github-import/signal-of-intent.d.ts +87 -0
- package/dist/scripts/github-import/signal-of-intent.d.ts.map +1 -0
- package/dist/scripts/github-import/signal-of-intent.js +213 -0
- package/dist/scripts/github-import/signal-of-intent.js.map +1 -0
- package/dist/scripts/github-import/types.d.ts +136 -0
- package/dist/scripts/github-import/types.d.ts.map +1 -0
- package/dist/scripts/github-import/types.js +47 -0
- package/dist/scripts/github-import/types.js.map +1 -0
- package/dist/scripts/github-import/utils.d.ts +13 -0
- package/dist/scripts/github-import/utils.d.ts.map +1 -0
- package/dist/scripts/github-import/utils.js +28 -0
- package/dist/scripts/github-import/utils.js.map +1 -0
- package/dist/scripts/import-github-skills.d.ts +15 -0
- package/dist/scripts/import-github-skills.d.ts.map +1 -0
- package/dist/scripts/import-github-skills.js +240 -0
- package/dist/scripts/import-github-skills.js.map +1 -0
- package/dist/scripts/import-to-database.d.ts +60 -0
- package/dist/scripts/import-to-database.d.ts.map +1 -0
- package/dist/scripts/import-to-database.js +307 -0
- package/dist/scripts/import-to-database.js.map +1 -0
- package/dist/scripts/ingest-lenny-skills.d.ts +40 -0
- package/dist/scripts/ingest-lenny-skills.d.ts.map +1 -0
- package/dist/scripts/ingest-lenny-skills.js +346 -0
- package/dist/scripts/ingest-lenny-skills.js.map +1 -0
- package/dist/scripts/merge-skills.d.ts +34 -0
- package/dist/scripts/merge-skills.d.ts.map +1 -0
- package/dist/scripts/merge-skills.js +271 -0
- package/dist/scripts/merge-skills.js.map +1 -0
- package/dist/scripts/merge-types.d.ts +72 -0
- package/dist/scripts/merge-types.d.ts.map +1 -0
- package/dist/scripts/merge-types.js +7 -0
- package/dist/scripts/merge-types.js.map +1 -0
- package/dist/scripts/merge-utils.d.ts +23 -0
- package/dist/scripts/merge-utils.d.ts.map +1 -0
- package/dist/scripts/merge-utils.js +150 -0
- package/dist/scripts/merge-utils.js.map +1 -0
- package/dist/scripts/review-categories.d.ts +41 -0
- package/dist/scripts/review-categories.d.ts.map +1 -0
- package/dist/scripts/review-categories.js +316 -0
- package/dist/scripts/review-categories.js.map +1 -0
- package/dist/scripts/review-lenny-skills.d.ts +26 -0
- package/dist/scripts/review-lenny-skills.d.ts.map +1 -0
- package/dist/scripts/review-lenny-skills.js +215 -0
- package/dist/scripts/review-lenny-skills.js.map +1 -0
- package/dist/scripts/scan-imported-skills.d.ts +15 -0
- package/dist/scripts/scan-imported-skills.d.ts.map +1 -0
- package/dist/scripts/scan-imported-skills.js +16 -0
- package/dist/scripts/scan-imported-skills.js.map +1 -0
- package/dist/scripts/skill-scanner/allowlist.d.ts +38 -0
- package/dist/scripts/skill-scanner/allowlist.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/allowlist.js +178 -0
- package/dist/scripts/skill-scanner/allowlist.js.map +1 -0
- package/dist/scripts/skill-scanner/categorizer.d.ts +43 -0
- package/dist/scripts/skill-scanner/categorizer.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/categorizer.js +61 -0
- package/dist/scripts/skill-scanner/categorizer.js.map +1 -0
- package/dist/scripts/skill-scanner/file-scanner.d.ts +43 -0
- package/dist/scripts/skill-scanner/file-scanner.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/file-scanner.js +90 -0
- package/dist/scripts/skill-scanner/file-scanner.js.map +1 -0
- package/dist/scripts/skill-scanner/index.d.ts +29 -0
- package/dist/scripts/skill-scanner/index.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/index.js +134 -0
- package/dist/scripts/skill-scanner/index.js.map +1 -0
- package/dist/scripts/skill-scanner/logger.d.ts +110 -0
- package/dist/scripts/skill-scanner/logger.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/logger.js +358 -0
- package/dist/scripts/skill-scanner/logger.js.map +1 -0
- package/dist/scripts/skill-scanner/reporter.d.ts +56 -0
- package/dist/scripts/skill-scanner/reporter.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/reporter.js +218 -0
- package/dist/scripts/skill-scanner/reporter.js.map +1 -0
- package/dist/scripts/skill-scanner/scanner.d.ts +55 -0
- package/dist/scripts/skill-scanner/scanner.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/scanner.js +269 -0
- package/dist/scripts/skill-scanner/scanner.js.map +1 -0
- package/dist/scripts/skill-scanner/trust-scorer.d.ts +73 -0
- package/dist/scripts/skill-scanner/trust-scorer.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/trust-scorer.js +81 -0
- package/dist/scripts/skill-scanner/trust-scorer.js.map +1 -0
- package/dist/scripts/skill-scanner/types.d.ts +192 -0
- package/dist/scripts/skill-scanner/types.d.ts.map +1 -0
- package/dist/scripts/skill-scanner/types.js +7 -0
- package/dist/scripts/skill-scanner/types.js.map +1 -0
- package/dist/scripts/sync-to-supabase.d.ts +10 -0
- package/dist/scripts/sync-to-supabase.d.ts.map +1 -0
- package/dist/scripts/sync-to-supabase.js +93 -0
- package/dist/scripts/sync-to-supabase.js.map +1 -0
- package/dist/scripts/validate-skills.d.ts +11 -0
- package/dist/scripts/validate-skills.d.ts.map +1 -0
- package/dist/scripts/validate-skills.js +59 -0
- package/dist/scripts/validate-skills.js.map +1 -0
- package/dist/scripts/validation/deduplication.d.ts +23 -0
- package/dist/scripts/validation/deduplication.d.ts.map +1 -0
- package/dist/scripts/validation/deduplication.js +127 -0
- package/dist/scripts/validation/deduplication.js.map +1 -0
- package/dist/scripts/validation/field-validators.d.ts +9 -0
- package/dist/scripts/validation/field-validators.d.ts.map +1 -0
- package/dist/scripts/validation/field-validators.js +135 -0
- package/dist/scripts/validation/field-validators.js.map +1 -0
- package/dist/scripts/validation/index.d.ts +29 -0
- package/dist/scripts/validation/index.d.ts.map +1 -0
- package/dist/scripts/validation/index.js +83 -0
- package/dist/scripts/validation/index.js.map +1 -0
- package/dist/scripts/validation/normalizers.d.ts +29 -0
- package/dist/scripts/validation/normalizers.d.ts.map +1 -0
- package/dist/scripts/validation/normalizers.js +79 -0
- package/dist/scripts/validation/normalizers.js.map +1 -0
- package/dist/scripts/validation/pipeline.d.ts +13 -0
- package/dist/scripts/validation/pipeline.d.ts.map +1 -0
- package/dist/scripts/validation/pipeline.js +126 -0
- package/dist/scripts/validation/pipeline.js.map +1 -0
- package/dist/scripts/validation/types.d.ts +138 -0
- package/dist/scripts/validation/types.d.ts.map +1 -0
- package/dist/scripts/validation/types.js +43 -0
- package/dist/scripts/validation/types.js.map +1 -0
- package/dist/search/hybrid.d.ts +96 -0
- package/dist/search/hybrid.d.ts.map +1 -0
- package/dist/search/hybrid.js +307 -0
- package/dist/search/hybrid.js.map +1 -0
- package/dist/search/index.d.ts +6 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +5 -0
- package/dist/search/index.js.map +1 -0
- package/dist/security/AuditLogger.d.ts +126 -0
- package/dist/security/AuditLogger.d.ts.map +1 -0
- package/dist/security/AuditLogger.js +389 -0
- package/dist/security/AuditLogger.js.map +1 -0
- package/dist/security/SkillSandbox.d.ts +156 -0
- package/dist/security/SkillSandbox.d.ts.map +1 -0
- package/dist/security/SkillSandbox.js +303 -0
- package/dist/security/SkillSandbox.js.map +1 -0
- package/dist/security/__tests__/pathValidation.test.d.ts +8 -0
- package/dist/security/__tests__/pathValidation.test.d.ts.map +1 -0
- package/dist/security/__tests__/pathValidation.test.js +249 -0
- package/dist/security/__tests__/pathValidation.test.js.map +1 -0
- package/dist/security/audit-types.d.ts +96 -0
- package/dist/security/audit-types.d.ts.map +1 -0
- package/dist/security/audit-types.js +15 -0
- package/dist/security/audit-types.js.map +1 -0
- package/dist/security/index.d.ts +23 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +26 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/pathValidation.d.ts +95 -0
- package/dist/security/pathValidation.d.ts.map +1 -0
- package/dist/security/pathValidation.js +216 -0
- package/dist/security/pathValidation.js.map +1 -0
- package/dist/security/rate-limiter/RateLimiter.d.ts +86 -0
- package/dist/security/rate-limiter/RateLimiter.d.ts.map +1 -0
- package/dist/security/rate-limiter/RateLimiter.js +260 -0
- package/dist/security/rate-limiter/RateLimiter.js.map +1 -0
- package/dist/security/rate-limiter/constants.d.ts +15 -0
- package/dist/security/rate-limiter/constants.d.ts.map +1 -0
- package/dist/security/rate-limiter/constants.js +15 -0
- package/dist/security/rate-limiter/constants.js.map +1 -0
- package/dist/security/rate-limiter/errors.d.ts +22 -0
- package/dist/security/rate-limiter/errors.d.ts.map +1 -0
- package/dist/security/rate-limiter/errors.js +32 -0
- package/dist/security/rate-limiter/errors.js.map +1 -0
- package/dist/security/rate-limiter/index.d.ts +12 -0
- package/dist/security/rate-limiter/index.d.ts.map +1 -0
- package/dist/security/rate-limiter/index.js +16 -0
- package/dist/security/rate-limiter/index.js.map +1 -0
- package/dist/security/rate-limiter/metrics-manager.d.ts +55 -0
- package/dist/security/rate-limiter/metrics-manager.d.ts.map +1 -0
- package/dist/security/rate-limiter/metrics-manager.js +144 -0
- package/dist/security/rate-limiter/metrics-manager.js.map +1 -0
- package/dist/security/rate-limiter/presets.d.ts +64 -0
- package/dist/security/rate-limiter/presets.d.ts.map +1 -0
- package/dist/security/rate-limiter/presets.js +65 -0
- package/dist/security/rate-limiter/presets.js.map +1 -0
- package/dist/security/rate-limiter/queue-manager.d.ts +59 -0
- package/dist/security/rate-limiter/queue-manager.d.ts.map +1 -0
- package/dist/security/rate-limiter/queue-manager.js +189 -0
- package/dist/security/rate-limiter/queue-manager.js.map +1 -0
- package/dist/security/rate-limiter/storage.d.ts +34 -0
- package/dist/security/rate-limiter/storage.d.ts.map +1 -0
- package/dist/security/rate-limiter/storage.js +80 -0
- package/dist/security/rate-limiter/storage.js.map +1 -0
- package/dist/security/rate-limiter/token-bucket.d.ts +44 -0
- package/dist/security/rate-limiter/token-bucket.d.ts.map +1 -0
- package/dist/security/rate-limiter/token-bucket.js +99 -0
- package/dist/security/rate-limiter/token-bucket.js.map +1 -0
- package/dist/security/rate-limiter/types.d.ts +104 -0
- package/dist/security/rate-limiter/types.d.ts.map +1 -0
- package/dist/security/rate-limiter/types.js +7 -0
- package/dist/security/rate-limiter/types.js.map +1 -0
- package/dist/security/risk-trend.d.ts +21 -0
- package/dist/security/risk-trend.d.ts.map +1 -0
- package/dist/security/risk-trend.js +81 -0
- package/dist/security/risk-trend.js.map +1 -0
- package/dist/security/sanitization.d.ts +124 -0
- package/dist/security/sanitization.d.ts.map +1 -0
- package/dist/security/sanitization.js +388 -0
- package/dist/security/sanitization.js.map +1 -0
- package/dist/security/scanner/SecurityScanner.d.ts +45 -0
- package/dist/security/scanner/SecurityScanner.d.ts.map +1 -0
- package/dist/security/scanner/SecurityScanner.formatters.d.ts +49 -0
- package/dist/security/scanner/SecurityScanner.formatters.d.ts.map +1 -0
- package/dist/security/scanner/SecurityScanner.formatters.js +139 -0
- package/dist/security/scanner/SecurityScanner.formatters.js.map +1 -0
- package/dist/security/scanner/SecurityScanner.helpers.d.ts +80 -0
- package/dist/security/scanner/SecurityScanner.helpers.d.ts.map +1 -0
- package/dist/security/scanner/SecurityScanner.helpers.js +292 -0
- package/dist/security/scanner/SecurityScanner.helpers.js.map +1 -0
- package/dist/security/scanner/SecurityScanner.js +371 -0
- package/dist/security/scanner/SecurityScanner.js.map +1 -0
- package/dist/security/scanner/SecurityScanner.ssrf.d.ts +15 -0
- package/dist/security/scanner/SecurityScanner.ssrf.d.ts.map +1 -0
- package/dist/security/scanner/SecurityScanner.ssrf.js +76 -0
- package/dist/security/scanner/SecurityScanner.ssrf.js.map +1 -0
- package/dist/security/scanner/index.d.ts +11 -0
- package/dist/security/scanner/index.d.ts.map +1 -0
- package/dist/security/scanner/index.js +14 -0
- package/dist/security/scanner/index.js.map +1 -0
- package/dist/security/scanner/patterns.d.ts +39 -0
- package/dist/security/scanner/patterns.d.ts.map +1 -0
- package/dist/security/scanner/patterns.js +295 -0
- package/dist/security/scanner/patterns.js.map +1 -0
- package/dist/security/scanner/regex-utils.d.ts +33 -0
- package/dist/security/scanner/regex-utils.d.ts.map +1 -0
- package/dist/security/scanner/regex-utils.js +41 -0
- package/dist/security/scanner/regex-utils.js.map +1 -0
- package/dist/security/scanner/types.d.ts +77 -0
- package/dist/security/scanner/types.d.ts.map +1 -0
- package/dist/security/scanner/types.js +7 -0
- package/dist/security/scanner/types.js.map +1 -0
- package/dist/security/scanner/weights.d.ts +15 -0
- package/dist/security/scanner/weights.d.ts.map +1 -0
- package/dist/security/scanner/weights.js +31 -0
- package/dist/security/scanner/weights.js.map +1 -0
- package/dist/security/stripe-validators.d.ts +92 -0
- package/dist/security/stripe-validators.d.ts.map +1 -0
- package/dist/security/stripe-validators.js +139 -0
- package/dist/security/stripe-validators.js.map +1 -0
- package/dist/services/SearchService.d.ts +64 -0
- package/dist/services/SearchService.d.ts.map +1 -0
- package/dist/services/SearchService.helpers.d.ts +42 -0
- package/dist/services/SearchService.helpers.d.ts.map +1 -0
- package/dist/services/SearchService.helpers.js +132 -0
- package/dist/services/SearchService.helpers.js.map +1 -0
- package/dist/services/SearchService.js +320 -0
- package/dist/services/SearchService.js.map +1 -0
- package/dist/services/SearchService.types.d.ts +54 -0
- package/dist/services/SearchService.types.d.ts.map +1 -0
- package/dist/services/SearchService.types.js +7 -0
- package/dist/services/SearchService.types.js.map +1 -0
- package/dist/services/SkillAnalyzer.d.ts +37 -0
- package/dist/services/SkillAnalyzer.d.ts.map +1 -0
- package/dist/services/SkillAnalyzer.helpers.d.ts +103 -0
- package/dist/services/SkillAnalyzer.helpers.d.ts.map +1 -0
- package/dist/services/SkillAnalyzer.helpers.js +237 -0
- package/dist/services/SkillAnalyzer.helpers.js.map +1 -0
- package/dist/services/SkillAnalyzer.js +270 -0
- package/dist/services/SkillAnalyzer.js.map +1 -0
- package/dist/services/SkillAnalyzer.types.d.ts +110 -0
- package/dist/services/SkillAnalyzer.types.d.ts.map +1 -0
- package/dist/services/SkillAnalyzer.types.js +9 -0
- package/dist/services/SkillAnalyzer.types.js.map +1 -0
- package/dist/services/SkillDecomposer.d.ts +37 -0
- package/dist/services/SkillDecomposer.d.ts.map +1 -0
- package/dist/services/SkillDecomposer.helpers.d.ts +75 -0
- package/dist/services/SkillDecomposer.helpers.d.ts.map +1 -0
- package/dist/services/SkillDecomposer.helpers.js +277 -0
- package/dist/services/SkillDecomposer.helpers.js.map +1 -0
- package/dist/services/SkillDecomposer.js +116 -0
- package/dist/services/SkillDecomposer.js.map +1 -0
- package/dist/services/SkillDecomposer.types.d.ts +104 -0
- package/dist/services/SkillDecomposer.types.d.ts.map +1 -0
- package/dist/services/SkillDecomposer.types.js +9 -0
- package/dist/services/SkillDecomposer.types.js.map +1 -0
- package/dist/services/SubagentGenerator.d.ts +77 -0
- package/dist/services/SubagentGenerator.d.ts.map +1 -0
- package/dist/services/SubagentGenerator.js +352 -0
- package/dist/services/SubagentGenerator.js.map +1 -0
- package/dist/services/TaskRunner.d.ts +151 -0
- package/dist/services/TaskRunner.d.ts.map +1 -0
- package/dist/services/TaskRunner.js +362 -0
- package/dist/services/TaskRunner.js.map +1 -0
- package/dist/services/TaskRunner.process.d.ts +33 -0
- package/dist/services/TaskRunner.process.d.ts.map +1 -0
- package/dist/services/TaskRunner.process.js +70 -0
- package/dist/services/TaskRunner.process.js.map +1 -0
- package/dist/services/TaskRunner.types.d.ts +76 -0
- package/dist/services/TaskRunner.types.d.ts.map +1 -0
- package/dist/services/TaskRunner.types.js +22 -0
- package/dist/services/TaskRunner.types.js.map +1 -0
- package/dist/services/TransformationService.d.ts +167 -0
- package/dist/services/TransformationService.d.ts.map +1 -0
- package/dist/services/TransformationService.js +315 -0
- package/dist/services/TransformationService.js.map +1 -0
- package/dist/services/__tests__/SkillAnalyzer.test.d.ts +6 -0
- package/dist/services/__tests__/SkillAnalyzer.test.d.ts.map +1 -0
- package/dist/services/__tests__/SkillAnalyzer.test.js +177 -0
- package/dist/services/__tests__/SkillAnalyzer.test.js.map +1 -0
- package/dist/services/__tests__/SkillDecomposer.test.d.ts +6 -0
- package/dist/services/__tests__/SkillDecomposer.test.d.ts.map +1 -0
- package/dist/services/__tests__/SkillDecomposer.test.js +235 -0
- package/dist/services/__tests__/SkillDecomposer.test.js.map +1 -0
- package/dist/services/__tests__/SubagentGenerator.test.d.ts +6 -0
- package/dist/services/__tests__/SubagentGenerator.test.d.ts.map +1 -0
- package/dist/services/__tests__/SubagentGenerator.test.js +174 -0
- package/dist/services/__tests__/SubagentGenerator.test.js.map +1 -0
- package/dist/services/__tests__/TaskRunner.process.test.d.ts +13 -0
- package/dist/services/__tests__/TaskRunner.process.test.d.ts.map +1 -0
- package/dist/services/__tests__/TaskRunner.process.test.js +91 -0
- package/dist/services/__tests__/TaskRunner.process.test.js.map +1 -0
- package/dist/services/__tests__/TaskRunner.test.d.ts +7 -0
- package/dist/services/__tests__/TaskRunner.test.d.ts.map +1 -0
- package/dist/services/__tests__/TaskRunner.test.js +316 -0
- package/dist/services/__tests__/TaskRunner.test.js.map +1 -0
- package/dist/services/__tests__/TransformationService.test.d.ts +6 -0
- package/dist/services/__tests__/TransformationService.test.d.ts.map +1 -0
- package/dist/services/__tests__/TransformationService.test.js +244 -0
- package/dist/services/__tests__/TransformationService.test.js.map +1 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +10 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/quarantine/QuarantineService.d.ts +136 -0
- package/dist/services/quarantine/QuarantineService.d.ts.map +1 -0
- package/dist/services/quarantine/QuarantineService.js +267 -0
- package/dist/services/quarantine/QuarantineService.js.map +1 -0
- package/dist/services/quarantine/QuarantineService.multiapproval.d.ts +57 -0
- package/dist/services/quarantine/QuarantineService.multiapproval.d.ts.map +1 -0
- package/dist/services/quarantine/QuarantineService.multiapproval.js +211 -0
- package/dist/services/quarantine/QuarantineService.multiapproval.js.map +1 -0
- package/dist/services/quarantine/index.d.ts +10 -0
- package/dist/services/quarantine/index.d.ts.map +1 -0
- package/dist/services/quarantine/index.js +14 -0
- package/dist/services/quarantine/index.js.map +1 -0
- package/dist/services/quarantine/types.d.ts +127 -0
- package/dist/services/quarantine/types.d.ts.map +1 -0
- package/dist/services/quarantine/types.js +59 -0
- package/dist/services/quarantine/types.js.map +1 -0
- package/dist/services/skill-config-schema.d.ts +68 -0
- package/dist/services/skill-config-schema.d.ts.map +1 -0
- package/dist/services/skill-config-schema.js +76 -0
- package/dist/services/skill-config-schema.js.map +1 -0
- package/dist/services/skill-installation.feedback.d.ts +24 -0
- package/dist/services/skill-installation.feedback.d.ts.map +1 -0
- package/dist/services/skill-installation.feedback.js +37 -0
- package/dist/services/skill-installation.feedback.js.map +1 -0
- package/dist/services/skill-installation.helpers.d.ts +88 -0
- package/dist/services/skill-installation.helpers.d.ts.map +1 -0
- package/dist/services/skill-installation.helpers.js +377 -0
- package/dist/services/skill-installation.helpers.js.map +1 -0
- package/dist/services/skill-installation.service.d.ts +37 -0
- package/dist/services/skill-installation.service.d.ts.map +1 -0
- package/dist/services/skill-installation.service.js +432 -0
- package/dist/services/skill-installation.service.js.map +1 -0
- package/dist/services/skill-installation.types.d.ts +166 -0
- package/dist/services/skill-installation.types.d.ts.map +1 -0
- package/dist/services/skill-installation.types.js +38 -0
- package/dist/services/skill-installation.types.js.map +1 -0
- package/dist/services/skill-manifest.d.ts +20 -0
- package/dist/services/skill-manifest.d.ts.map +1 -0
- package/dist/services/skill-manifest.js +84 -0
- package/dist/services/skill-manifest.js.map +1 -0
- package/dist/session/SessionContext.d.ts +116 -0
- package/dist/session/SessionContext.d.ts.map +1 -0
- package/dist/session/SessionContext.js +134 -0
- package/dist/session/SessionContext.js.map +1 -0
- package/dist/session/SessionHealthMonitor.d.ts +86 -0
- package/dist/session/SessionHealthMonitor.d.ts.map +1 -0
- package/dist/session/SessionHealthMonitor.js +233 -0
- package/dist/session/SessionHealthMonitor.js.map +1 -0
- package/dist/session/SessionManager.d.ts +91 -0
- package/dist/session/SessionManager.d.ts.map +1 -0
- package/dist/session/SessionManager.helpers.d.ts +42 -0
- package/dist/session/SessionManager.helpers.d.ts.map +1 -0
- package/dist/session/SessionManager.helpers.js +88 -0
- package/dist/session/SessionManager.helpers.js.map +1 -0
- package/dist/session/SessionManager.js +229 -0
- package/dist/session/SessionManager.js.map +1 -0
- package/dist/session/SessionManager.memory.d.ts +68 -0
- package/dist/session/SessionManager.memory.d.ts.map +1 -0
- package/dist/session/SessionManager.memory.js +170 -0
- package/dist/session/SessionManager.memory.js.map +1 -0
- package/dist/session/SessionManager.types.d.ts +51 -0
- package/dist/session/SessionManager.types.d.ts.map +1 -0
- package/dist/session/SessionManager.types.js +27 -0
- package/dist/session/SessionManager.types.js.map +1 -0
- package/dist/session/SessionRecovery.d.ts +84 -0
- package/dist/session/SessionRecovery.d.ts.map +1 -0
- package/dist/session/SessionRecovery.js +258 -0
- package/dist/session/SessionRecovery.js.map +1 -0
- package/dist/session/health-checks.d.ts +37 -0
- package/dist/session/health-checks.d.ts.map +1 -0
- package/dist/session/health-checks.js +64 -0
- package/dist/session/health-checks.js.map +1 -0
- package/dist/session/health-types.d.ts +78 -0
- package/dist/session/health-types.d.ts.map +1 -0
- package/dist/session/health-types.js +16 -0
- package/dist/session/health-types.js.map +1 -0
- package/dist/session/index.d.ts +44 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +53 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/metrics-collector.d.ts +23 -0
- package/dist/session/metrics-collector.d.ts.map +1 -0
- package/dist/session/metrics-collector.js +44 -0
- package/dist/session/metrics-collector.js.map +1 -0
- package/dist/session/typed-event-emitter.d.ts +70 -0
- package/dist/session/typed-event-emitter.d.ts.map +1 -0
- package/dist/session/typed-event-emitter.js +79 -0
- package/dist/session/typed-event-emitter.js.map +1 -0
- package/dist/sources/BaseSourceAdapter.d.ts +144 -0
- package/dist/sources/BaseSourceAdapter.d.ts.map +1 -0
- package/dist/sources/BaseSourceAdapter.js +287 -0
- package/dist/sources/BaseSourceAdapter.js.map +1 -0
- package/dist/sources/GitHubSourceAdapter.d.ts +98 -0
- package/dist/sources/GitHubSourceAdapter.d.ts.map +1 -0
- package/dist/sources/GitHubSourceAdapter.js +269 -0
- package/dist/sources/GitHubSourceAdapter.js.map +1 -0
- package/dist/sources/GitLabSourceAdapter.d.ts +102 -0
- package/dist/sources/GitLabSourceAdapter.d.ts.map +1 -0
- package/dist/sources/GitLabSourceAdapter.js +310 -0
- package/dist/sources/GitLabSourceAdapter.js.map +1 -0
- package/dist/sources/ISourceAdapter.d.ts +110 -0
- package/dist/sources/ISourceAdapter.d.ts.map +1 -0
- package/dist/sources/ISourceAdapter.js +19 -0
- package/dist/sources/ISourceAdapter.js.map +1 -0
- package/dist/sources/LocalFilesystemAdapter.d.ts +206 -0
- package/dist/sources/LocalFilesystemAdapter.d.ts.map +1 -0
- package/dist/sources/LocalFilesystemAdapter.helpers.d.ts +92 -0
- package/dist/sources/LocalFilesystemAdapter.helpers.d.ts.map +1 -0
- package/dist/sources/LocalFilesystemAdapter.helpers.js +157 -0
- package/dist/sources/LocalFilesystemAdapter.helpers.js.map +1 -0
- package/dist/sources/LocalFilesystemAdapter.js +399 -0
- package/dist/sources/LocalFilesystemAdapter.js.map +1 -0
- package/dist/sources/LocalFilesystemAdapter.scan.d.ts +78 -0
- package/dist/sources/LocalFilesystemAdapter.scan.d.ts.map +1 -0
- package/dist/sources/LocalFilesystemAdapter.scan.js +118 -0
- package/dist/sources/LocalFilesystemAdapter.scan.js.map +1 -0
- package/dist/sources/RawUrlSourceAdapter.d.ts +128 -0
- package/dist/sources/RawUrlSourceAdapter.d.ts.map +1 -0
- package/dist/sources/RawUrlSourceAdapter.js +282 -0
- package/dist/sources/RawUrlSourceAdapter.js.map +1 -0
- package/dist/sources/SourceAdapterRegistry.d.ts +156 -0
- package/dist/sources/SourceAdapterRegistry.d.ts.map +1 -0
- package/dist/sources/SourceAdapterRegistry.js +242 -0
- package/dist/sources/SourceAdapterRegistry.js.map +1 -0
- package/dist/sources/SourceIndexer.d.ts +121 -0
- package/dist/sources/SourceIndexer.d.ts.map +1 -0
- package/dist/sources/SourceIndexer.js +285 -0
- package/dist/sources/SourceIndexer.js.map +1 -0
- package/dist/sources/index.d.ts +45 -0
- package/dist/sources/index.d.ts.map +1 -0
- package/dist/sources/index.js +51 -0
- package/dist/sources/index.js.map +1 -0
- package/dist/sources/shared.d.ts +125 -0
- package/dist/sources/shared.d.ts.map +1 -0
- package/dist/sources/shared.js +191 -0
- package/dist/sources/shared.js.map +1 -0
- package/dist/sources/types.d.ts +232 -0
- package/dist/sources/types.d.ts.map +1 -0
- package/dist/sources/types.js +6 -0
- package/dist/sources/types.js.map +1 -0
- package/dist/src/api/schemas.d.ts +88 -88
- package/dist/src/api/schemas.d.ts.map +1 -1
- package/dist/src/db/schema.d.ts +8 -1
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +12 -6
- package/dist/src/db/schema.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/scripts/validation/types.d.ts +24 -14
- package/dist/src/scripts/validation/types.d.ts.map +1 -1
- package/dist/src/services/skill-config-schema.d.ts +36 -4
- package/dist/src/services/skill-config-schema.d.ts.map +1 -1
- package/dist/src/webhooks/webhook-schemas.d.ts +1213 -118
- package/dist/src/webhooks/webhook-schemas.d.ts.map +1 -1
- package/dist/sync/BackgroundSyncService.d.ts +90 -0
- package/dist/sync/BackgroundSyncService.d.ts.map +1 -0
- package/dist/sync/BackgroundSyncService.js +214 -0
- package/dist/sync/BackgroundSyncService.js.map +1 -0
- package/dist/sync/SyncEngine.d.ts +88 -0
- package/dist/sync/SyncEngine.d.ts.map +1 -0
- package/dist/sync/SyncEngine.js +341 -0
- package/dist/sync/SyncEngine.js.map +1 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +14 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/telemetry/index.d.ts +26 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +34 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/metric-helpers.d.ts +47 -0
- package/dist/telemetry/metric-helpers.d.ts.map +1 -0
- package/dist/telemetry/metric-helpers.js +96 -0
- package/dist/telemetry/metric-helpers.js.map +1 -0
- package/dist/telemetry/metric-types.d.ts +73 -0
- package/dist/telemetry/metric-types.d.ts.map +1 -0
- package/dist/telemetry/metric-types.js +9 -0
- package/dist/telemetry/metric-types.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +60 -0
- package/dist/telemetry/metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics.js +228 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/telemetry/posthog.d.ts +147 -0
- package/dist/telemetry/posthog.d.ts.map +1 -0
- package/dist/telemetry/posthog.js +213 -0
- package/dist/telemetry/posthog.js.map +1 -0
- package/dist/telemetry/prometheus.d.ts +81 -0
- package/dist/telemetry/prometheus.d.ts.map +1 -0
- package/dist/telemetry/prometheus.js +252 -0
- package/dist/telemetry/prometheus.js.map +1 -0
- package/dist/telemetry/span-utils.d.ts +30 -0
- package/dist/telemetry/span-utils.d.ts.map +1 -0
- package/dist/telemetry/span-utils.js +62 -0
- package/dist/telemetry/span-utils.js.map +1 -0
- package/dist/telemetry/tracer-imports.d.ts +13 -0
- package/dist/telemetry/tracer-imports.d.ts.map +1 -0
- package/dist/telemetry/tracer-imports.js +26 -0
- package/dist/telemetry/tracer-imports.js.map +1 -0
- package/dist/telemetry/tracer-types.d.ts +91 -0
- package/dist/telemetry/tracer-types.d.ts.map +1 -0
- package/dist/telemetry/tracer-types.js +6 -0
- package/dist/telemetry/tracer-types.js.map +1 -0
- package/dist/telemetry/tracer.d.ts +34 -0
- package/dist/telemetry/tracer.d.ts.map +1 -0
- package/dist/telemetry/tracer.js +242 -0
- package/dist/telemetry/tracer.js.map +1 -0
- package/dist/testing/MultiLLMProvider.d.ts +97 -0
- package/dist/testing/MultiLLMProvider.d.ts.map +1 -0
- package/dist/testing/MultiLLMProvider.helpers.d.ts +54 -0
- package/dist/testing/MultiLLMProvider.helpers.d.ts.map +1 -0
- package/dist/testing/MultiLLMProvider.helpers.js +126 -0
- package/dist/testing/MultiLLMProvider.helpers.js.map +1 -0
- package/dist/testing/MultiLLMProvider.js +321 -0
- package/dist/testing/MultiLLMProvider.js.map +1 -0
- package/dist/testing/MultiLLMProvider.metrics.d.ts +33 -0
- package/dist/testing/MultiLLMProvider.metrics.d.ts.map +1 -0
- package/dist/testing/MultiLLMProvider.metrics.js +87 -0
- package/dist/testing/MultiLLMProvider.metrics.js.map +1 -0
- package/dist/testing/MultiLLMProvider.selection.d.ts +77 -0
- package/dist/testing/MultiLLMProvider.selection.d.ts.map +1 -0
- package/dist/testing/MultiLLMProvider.selection.js +151 -0
- package/dist/testing/MultiLLMProvider.selection.js.map +1 -0
- package/dist/testing/MultiLLMProvider.types.d.ts +253 -0
- package/dist/testing/MultiLLMProvider.types.d.ts.map +1 -0
- package/dist/testing/MultiLLMProvider.types.js +111 -0
- package/dist/testing/MultiLLMProvider.types.js.map +1 -0
- package/dist/testing/index.d.ts +8 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +9 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/tests/db/migration.test.js +8 -6
- package/dist/tests/db/migration.test.js.map +1 -1
- package/dist/triggers/ContextScorer.d.ts +118 -0
- package/dist/triggers/ContextScorer.d.ts.map +1 -0
- package/dist/triggers/ContextScorer.js +265 -0
- package/dist/triggers/ContextScorer.js.map +1 -0
- package/dist/triggers/TriggerDetector.d.ts +42 -0
- package/dist/triggers/TriggerDetector.d.ts.map +1 -0
- package/dist/triggers/TriggerDetector.js +158 -0
- package/dist/triggers/TriggerDetector.js.map +1 -0
- package/dist/triggers/__tests__/ContextScorer.test.d.ts +6 -0
- package/dist/triggers/__tests__/ContextScorer.test.d.ts.map +1 -0
- package/dist/triggers/__tests__/ContextScorer.test.js +307 -0
- package/dist/triggers/__tests__/ContextScorer.test.js.map +1 -0
- package/dist/triggers/__tests__/TriggerDetector.test.d.ts +6 -0
- package/dist/triggers/__tests__/TriggerDetector.test.d.ts.map +1 -0
- package/dist/triggers/__tests__/TriggerDetector.test.js +249 -0
- package/dist/triggers/__tests__/TriggerDetector.test.js.map +1 -0
- package/dist/triggers/index.d.ts +8 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +8 -0
- package/dist/triggers/index.js.map +1 -0
- package/dist/triggers/trigger-constants.d.ts +22 -0
- package/dist/triggers/trigger-constants.d.ts.map +1 -0
- package/dist/triggers/trigger-constants.js +185 -0
- package/dist/triggers/trigger-constants.js.map +1 -0
- package/dist/triggers/trigger-types.d.ts +90 -0
- package/dist/triggers/trigger-types.d.ts.map +1 -0
- package/dist/triggers/trigger-types.js +6 -0
- package/dist/triggers/trigger-types.js.map +1 -0
- package/dist/types/dependencies.d.ts +85 -0
- package/dist/types/dependencies.d.ts.map +1 -0
- package/dist/types/dependencies.js +11 -0
- package/dist/types/dependencies.js.map +1 -0
- package/dist/types/skill.d.ts +133 -0
- package/dist/types/skill.d.ts.map +1 -0
- package/dist/types/skill.js +15 -0
- package/dist/types/skill.js.map +1 -0
- package/dist/types.d.ts +156 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +14 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/github-url.d.ts +57 -0
- package/dist/utils/github-url.d.ts.map +1 -0
- package/dist/utils/github-url.js +88 -0
- package/dist/utils/github-url.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +172 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +291 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/rate-limit.d.ts +39 -0
- package/dist/utils/rate-limit.d.ts.map +1 -0
- package/dist/utils/rate-limit.js +48 -0
- package/dist/utils/rate-limit.js.map +1 -0
- package/dist/utils/rate-limit.test.d.ts +11 -0
- package/dist/utils/rate-limit.test.d.ts.map +1 -0
- package/dist/utils/rate-limit.test.js +86 -0
- package/dist/utils/rate-limit.test.js.map +1 -0
- package/dist/utils/retry.d.ts +97 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +267 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/safe-fs.d.ts +63 -0
- package/dist/utils/safe-fs.d.ts.map +1 -0
- package/dist/utils/safe-fs.js +119 -0
- package/dist/utils/safe-fs.js.map +1 -0
- package/dist/utils/version-check.d.ts +41 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +60 -0
- package/dist/utils/version-check.js.map +1 -0
- package/dist/utils/version-check.test.d.ts +2 -0
- package/dist/utils/version-check.test.d.ts.map +1 -0
- package/dist/utils/version-check.test.js +113 -0
- package/dist/utils/version-check.test.js.map +1 -0
- package/dist/validation/index.d.ts +18 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +22 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/input-validators.d.ts +68 -0
- package/dist/validation/input-validators.d.ts.map +1 -0
- package/dist/validation/input-validators.js +133 -0
- package/dist/validation/input-validators.js.map +1 -0
- package/dist/validation/path-validators.d.ts +23 -0
- package/dist/validation/path-validators.d.ts.map +1 -0
- package/dist/validation/path-validators.js +47 -0
- package/dist/validation/path-validators.js.map +1 -0
- package/dist/validation/url-validators.d.ts +55 -0
- package/dist/validation/url-validators.d.ts.map +1 -0
- package/dist/validation/url-validators.js +267 -0
- package/dist/validation/url-validators.js.map +1 -0
- package/dist/validation/validation-error.d.ts +14 -0
- package/dist/validation/validation-error.d.ts.map +1 -0
- package/dist/validation/validation-error.js +19 -0
- package/dist/validation/validation-error.js.map +1 -0
- package/dist/versioning/change-classifier.d.ts +38 -0
- package/dist/versioning/change-classifier.d.ts.map +1 -0
- package/dist/versioning/change-classifier.js +187 -0
- package/dist/versioning/change-classifier.js.map +1 -0
- package/dist/versioning/change-classifier.test.d.ts +6 -0
- package/dist/versioning/change-classifier.test.d.ts.map +1 -0
- package/dist/versioning/change-classifier.test.js +275 -0
- package/dist/versioning/change-classifier.test.js.map +1 -0
- package/dist/versioning/update-risk.d.ts +50 -0
- package/dist/versioning/update-risk.d.ts.map +1 -0
- package/dist/versioning/update-risk.js +80 -0
- package/dist/versioning/update-risk.js.map +1 -0
- package/dist/versioning/update-risk.test.d.ts +6 -0
- package/dist/versioning/update-risk.test.d.ts.map +1 -0
- package/dist/versioning/update-risk.test.js +200 -0
- package/dist/versioning/update-risk.test.js.map +1 -0
- package/dist/webhooks/WebhookDeadLetterRepository.d.ts +178 -0
- package/dist/webhooks/WebhookDeadLetterRepository.d.ts.map +1 -0
- package/dist/webhooks/WebhookDeadLetterRepository.js +196 -0
- package/dist/webhooks/WebhookDeadLetterRepository.js.map +1 -0
- package/dist/webhooks/WebhookHandler.d.ts +117 -0
- package/dist/webhooks/WebhookHandler.d.ts.map +1 -0
- package/dist/webhooks/WebhookHandler.js +349 -0
- package/dist/webhooks/WebhookHandler.js.map +1 -0
- package/dist/webhooks/WebhookPayload.d.ts +27 -0
- package/dist/webhooks/WebhookPayload.d.ts.map +1 -0
- package/dist/webhooks/WebhookPayload.js +123 -0
- package/dist/webhooks/WebhookPayload.js.map +1 -0
- package/dist/webhooks/WebhookQueue.d.ts +90 -0
- package/dist/webhooks/WebhookQueue.d.ts.map +1 -0
- package/dist/webhooks/WebhookQueue.js +340 -0
- package/dist/webhooks/WebhookQueue.js.map +1 -0
- package/dist/webhooks/WebhookQueue.types.d.ts +160 -0
- package/dist/webhooks/WebhookQueue.types.d.ts.map +1 -0
- package/dist/webhooks/WebhookQueue.types.js +10 -0
- package/dist/webhooks/WebhookQueue.types.js.map +1 -0
- package/dist/webhooks/WebhookQueue.utils.d.ts +44 -0
- package/dist/webhooks/WebhookQueue.utils.d.ts.map +1 -0
- package/dist/webhooks/WebhookQueue.utils.js +58 -0
- package/dist/webhooks/WebhookQueue.utils.js.map +1 -0
- package/dist/webhooks/index.d.ts +13 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +17 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/webhook-schemas.d.ts +1308 -0
- package/dist/webhooks/webhook-schemas.d.ts.map +1 -0
- package/dist/webhooks/webhook-schemas.js +132 -0
- package/dist/webhooks/webhook-schemas.js.map +1 -0
- package/dist/webhooks/webhook-types.d.ts +222 -0
- package/dist/webhooks/webhook-types.d.ts.map +1 -0
- package/dist/webhooks/webhook-types.js +10 -0
- package/dist/webhooks/webhook-types.js.map +1 -0
- package/package.json +2 -2
- package/dist/src/billing/GDPRComplianceService.test.d.ts +0 -2
- package/dist/src/billing/GDPRComplianceService.test.d.ts.map +0 -1
- package/dist/src/billing/GDPRComplianceService.test.js +0 -405
- package/dist/src/billing/GDPRComplianceService.test.js.map +0 -1
|
@@ -0,0 +1,1059 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1336: Multi-Language Analysis Integration Tests
|
|
3
|
+
*
|
|
4
|
+
* Integration tests for the complete multi-language analysis system,
|
|
5
|
+
* testing interactions between:
|
|
6
|
+
* - LanguageRouter with all adapters
|
|
7
|
+
* - ParseCache across languages
|
|
8
|
+
* - ParserWorkerPool with mixed language batches
|
|
9
|
+
* - ResultAggregator combining results from multiple languages
|
|
10
|
+
*
|
|
11
|
+
* @see docs/internal/architecture/multi-language-analysis.md
|
|
12
|
+
*/
|
|
13
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
14
|
+
import { LanguageRouter } from '../router.js';
|
|
15
|
+
import { ParseCache } from '../cache.js';
|
|
16
|
+
import { ParserWorkerPool } from '../worker-pool.js';
|
|
17
|
+
import { ResultAggregator } from '../aggregator.js';
|
|
18
|
+
import { TypeScriptAdapter } from '../adapters/typescript.js';
|
|
19
|
+
import { PythonAdapter } from '../adapters/python.js';
|
|
20
|
+
import { GoAdapter } from '../adapters/go.js';
|
|
21
|
+
import { RustAdapter } from '../adapters/rust.js';
|
|
22
|
+
import { JavaAdapter } from '../adapters/java.js';
|
|
23
|
+
// ============================================================
|
|
24
|
+
// Test Fixtures: Multi-Language Project Files
|
|
25
|
+
// ============================================================
|
|
26
|
+
const fixtures = {
|
|
27
|
+
typescript: {
|
|
28
|
+
path: 'src/api/handler.ts',
|
|
29
|
+
content: `
|
|
30
|
+
import { Request, Response } from 'express'
|
|
31
|
+
import type { User } from '../types'
|
|
32
|
+
import { validateUser } from '../validators'
|
|
33
|
+
|
|
34
|
+
export interface HandlerConfig {
|
|
35
|
+
timeout: number
|
|
36
|
+
maxRetries: number
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export async function handleUserRequest(req: Request, res: Response): Promise<void> {
|
|
40
|
+
const user = req.body as User
|
|
41
|
+
if (validateUser(user)) {
|
|
42
|
+
res.json({ success: true, user })
|
|
43
|
+
} else {
|
|
44
|
+
res.status(400).json({ error: 'Invalid user' })
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const DEFAULT_CONFIG: HandlerConfig = {
|
|
49
|
+
timeout: 5000,
|
|
50
|
+
maxRetries: 3
|
|
51
|
+
}
|
|
52
|
+
`.trim(),
|
|
53
|
+
},
|
|
54
|
+
python: {
|
|
55
|
+
path: 'src/services/data_processor.py',
|
|
56
|
+
content: `
|
|
57
|
+
from typing import List, Dict, Optional
|
|
58
|
+
from dataclasses import dataclass
|
|
59
|
+
import pandas as pd
|
|
60
|
+
import numpy as np
|
|
61
|
+
from .utils import sanitize_input
|
|
62
|
+
|
|
63
|
+
@dataclass
|
|
64
|
+
class DataConfig:
|
|
65
|
+
batch_size: int
|
|
66
|
+
max_workers: int
|
|
67
|
+
|
|
68
|
+
class DataProcessor:
|
|
69
|
+
def __init__(self, config: DataConfig):
|
|
70
|
+
self.config = config
|
|
71
|
+
self._cache: Dict[str, pd.DataFrame] = {}
|
|
72
|
+
|
|
73
|
+
async def process_batch(self, data: List[Dict]) -> pd.DataFrame:
|
|
74
|
+
df = pd.DataFrame(data)
|
|
75
|
+
return self._apply_transformations(df)
|
|
76
|
+
|
|
77
|
+
def _apply_transformations(self, df: pd.DataFrame) -> pd.DataFrame:
|
|
78
|
+
return df.dropna().reset_index(drop=True)
|
|
79
|
+
|
|
80
|
+
def create_processor(batch_size: int = 100) -> DataProcessor:
|
|
81
|
+
config = DataConfig(batch_size=batch_size, max_workers=4)
|
|
82
|
+
return DataProcessor(config)
|
|
83
|
+
`.trim(),
|
|
84
|
+
},
|
|
85
|
+
go: {
|
|
86
|
+
path: 'src/server/main.go',
|
|
87
|
+
content: `
|
|
88
|
+
package server
|
|
89
|
+
|
|
90
|
+
import (
|
|
91
|
+
"context"
|
|
92
|
+
"encoding/json"
|
|
93
|
+
"net/http"
|
|
94
|
+
|
|
95
|
+
"github.com/gin-gonic/gin"
|
|
96
|
+
"gorm.io/gorm"
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
type Server struct {
|
|
100
|
+
router *gin.Engine
|
|
101
|
+
db *gorm.DB
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
type UserRequest struct {
|
|
105
|
+
Name string \`json:"name"\`
|
|
106
|
+
Email string \`json:"email"\`
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
func NewServer(db *gorm.DB) *Server {
|
|
110
|
+
router := gin.Default()
|
|
111
|
+
return &Server{router: router, db: db}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
func (s *Server) Start(addr string) error {
|
|
115
|
+
return s.router.Run(addr)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
func (s *Server) handleGetUser(c *gin.Context) {
|
|
119
|
+
id := c.Param("id")
|
|
120
|
+
c.JSON(http.StatusOK, gin.H{"id": id})
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
func parseJSON(data []byte) (UserRequest, error) {
|
|
124
|
+
var req UserRequest
|
|
125
|
+
err := json.Unmarshal(data, &req)
|
|
126
|
+
return req, err
|
|
127
|
+
}
|
|
128
|
+
`.trim(),
|
|
129
|
+
},
|
|
130
|
+
rust: {
|
|
131
|
+
path: 'src/lib.rs',
|
|
132
|
+
content: `
|
|
133
|
+
use std::collections::HashMap;
|
|
134
|
+
use serde::{Deserialize, Serialize};
|
|
135
|
+
use tokio::sync::RwLock;
|
|
136
|
+
|
|
137
|
+
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
138
|
+
pub struct Config {
|
|
139
|
+
pub host: String,
|
|
140
|
+
pub port: u16,
|
|
141
|
+
pub max_connections: usize,
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
pub trait Handler: Send + Sync {
|
|
145
|
+
fn handle(&self, request: &Request) -> Response;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
pub struct Server {
|
|
149
|
+
config: Config,
|
|
150
|
+
handlers: HashMap<String, Box<dyn Handler>>,
|
|
151
|
+
connections: RwLock<Vec<Connection>>,
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
impl Server {
|
|
155
|
+
pub fn new(config: Config) -> Self {
|
|
156
|
+
Server {
|
|
157
|
+
config,
|
|
158
|
+
handlers: HashMap::new(),
|
|
159
|
+
connections: RwLock::new(Vec::new()),
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
pub async fn start(&self) -> Result<(), ServerError> {
|
|
164
|
+
println!("Starting server on {}:{}", self.config.host, self.config.port);
|
|
165
|
+
Ok(())
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
fn register_handler(&mut self, path: String, handler: Box<dyn Handler>) {
|
|
169
|
+
self.handlers.insert(path, handler);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
pub fn create_default_config() -> Config {
|
|
174
|
+
Config {
|
|
175
|
+
host: "127.0.0.1".to_string(),
|
|
176
|
+
port: 8080,
|
|
177
|
+
max_connections: 100,
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
`.trim(),
|
|
181
|
+
},
|
|
182
|
+
java: {
|
|
183
|
+
path: 'src/main/java/com/example/UserService.java',
|
|
184
|
+
content: `
|
|
185
|
+
package com.example;
|
|
186
|
+
|
|
187
|
+
import java.util.List;
|
|
188
|
+
import java.util.Optional;
|
|
189
|
+
import java.util.stream.Collectors;
|
|
190
|
+
|
|
191
|
+
import org.springframework.stereotype.Service;
|
|
192
|
+
import org.springframework.transaction.annotation.Transactional;
|
|
193
|
+
|
|
194
|
+
@Service
|
|
195
|
+
public class UserService {
|
|
196
|
+
private final UserRepository userRepository;
|
|
197
|
+
private final CacheService cacheService;
|
|
198
|
+
|
|
199
|
+
public UserService(UserRepository userRepository, CacheService cacheService) {
|
|
200
|
+
this.userRepository = userRepository;
|
|
201
|
+
this.cacheService = cacheService;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
@Transactional(readOnly = true)
|
|
205
|
+
public Optional<User> findById(Long id) {
|
|
206
|
+
return userRepository.findById(id);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
@Transactional
|
|
210
|
+
public User createUser(CreateUserRequest request) {
|
|
211
|
+
User user = new User(request.getName(), request.getEmail());
|
|
212
|
+
return userRepository.save(user);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
public List<UserDTO> getAllUsers() {
|
|
216
|
+
return userRepository.findAll()
|
|
217
|
+
.stream()
|
|
218
|
+
.map(this::toDTO)
|
|
219
|
+
.collect(Collectors.toList());
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
private UserDTO toDTO(User user) {
|
|
223
|
+
return new UserDTO(user.getId(), user.getName());
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
`.trim(),
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
// ============================================================
|
|
230
|
+
// LanguageRouter Integration Tests
|
|
231
|
+
// ============================================================
|
|
232
|
+
describe('SMI-1336: Multi-Language Integration Tests', () => {
|
|
233
|
+
describe('LanguageRouter with all adapters', () => {
|
|
234
|
+
let router;
|
|
235
|
+
beforeEach(() => {
|
|
236
|
+
router = new LanguageRouter();
|
|
237
|
+
router.registerAdapter(new TypeScriptAdapter());
|
|
238
|
+
router.registerAdapter(new PythonAdapter());
|
|
239
|
+
router.registerAdapter(new GoAdapter());
|
|
240
|
+
router.registerAdapter(new RustAdapter());
|
|
241
|
+
router.registerAdapter(new JavaAdapter());
|
|
242
|
+
});
|
|
243
|
+
afterEach(() => {
|
|
244
|
+
router.dispose();
|
|
245
|
+
});
|
|
246
|
+
it('registers all five language adapters', () => {
|
|
247
|
+
expect(router.adapterCount).toBe(5);
|
|
248
|
+
const languages = router.getSupportedLanguages();
|
|
249
|
+
expect(languages).toContain('typescript');
|
|
250
|
+
expect(languages).toContain('python');
|
|
251
|
+
expect(languages).toContain('go');
|
|
252
|
+
expect(languages).toContain('rust');
|
|
253
|
+
expect(languages).toContain('java');
|
|
254
|
+
});
|
|
255
|
+
it('routes files to correct adapters based on extension', () => {
|
|
256
|
+
// TypeScript/JavaScript
|
|
257
|
+
expect(router.getLanguage('file.ts')).toBe('typescript');
|
|
258
|
+
expect(router.getLanguage('file.tsx')).toBe('typescript');
|
|
259
|
+
expect(router.getLanguage('file.js')).toBe('typescript');
|
|
260
|
+
expect(router.getLanguage('file.jsx')).toBe('typescript');
|
|
261
|
+
// Python
|
|
262
|
+
expect(router.getLanguage('file.py')).toBe('python');
|
|
263
|
+
expect(router.getLanguage('file.pyi')).toBe('python');
|
|
264
|
+
// Go
|
|
265
|
+
expect(router.getLanguage('file.go')).toBe('go');
|
|
266
|
+
// Rust
|
|
267
|
+
expect(router.getLanguage('file.rs')).toBe('rust');
|
|
268
|
+
// Java
|
|
269
|
+
expect(router.getLanguage('file.java')).toBe('java');
|
|
270
|
+
});
|
|
271
|
+
it('returns null for unsupported extensions', () => {
|
|
272
|
+
expect(router.getLanguage('file.cpp')).toBeNull();
|
|
273
|
+
expect(router.getLanguage('file.rb')).toBeNull();
|
|
274
|
+
expect(router.getLanguage('file.php')).toBeNull();
|
|
275
|
+
});
|
|
276
|
+
it('canHandle returns correct values for all languages', () => {
|
|
277
|
+
expect(router.canHandle('src/main.ts')).toBe(true);
|
|
278
|
+
expect(router.canHandle('src/main.py')).toBe(true);
|
|
279
|
+
expect(router.canHandle('src/main.go')).toBe(true);
|
|
280
|
+
expect(router.canHandle('src/lib.rs')).toBe(true);
|
|
281
|
+
expect(router.canHandle('src/App.java')).toBe(true);
|
|
282
|
+
expect(router.canHandle('src/main.cpp')).toBe(false);
|
|
283
|
+
});
|
|
284
|
+
it('parses TypeScript files correctly', () => {
|
|
285
|
+
const result = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
286
|
+
expect(result.imports.length).toBeGreaterThan(0);
|
|
287
|
+
expect(result.imports.some((i) => i.module === 'express')).toBe(true);
|
|
288
|
+
expect(result.functions.length).toBeGreaterThan(0);
|
|
289
|
+
expect(result.functions.some((f) => f.name === 'handleUserRequest')).toBe(true);
|
|
290
|
+
expect(result.exports.length).toBeGreaterThan(0);
|
|
291
|
+
expect(result.exports.some((e) => e.name === 'HandlerConfig')).toBe(true);
|
|
292
|
+
});
|
|
293
|
+
it('parses Python files correctly', () => {
|
|
294
|
+
const result = router.parseFile(fixtures.python.content, fixtures.python.path);
|
|
295
|
+
expect(result.imports.length).toBeGreaterThan(0);
|
|
296
|
+
expect(result.imports.some((i) => i.module === 'pandas')).toBe(true);
|
|
297
|
+
expect(result.imports.some((i) => i.module === 'numpy')).toBe(true);
|
|
298
|
+
expect(result.functions.length).toBeGreaterThan(0);
|
|
299
|
+
expect(result.functions.some((f) => f.name === 'create_processor')).toBe(true);
|
|
300
|
+
expect(result.exports.length).toBeGreaterThan(0);
|
|
301
|
+
expect(result.exports.some((e) => e.name === 'DataProcessor')).toBe(true);
|
|
302
|
+
});
|
|
303
|
+
it('parses Go files correctly', () => {
|
|
304
|
+
const result = router.parseFile(fixtures.go.content, fixtures.go.path);
|
|
305
|
+
expect(result.imports.length).toBeGreaterThan(0);
|
|
306
|
+
expect(result.imports.some((i) => i.module === 'github.com/gin-gonic/gin')).toBe(true);
|
|
307
|
+
expect(result.functions.length).toBeGreaterThan(0);
|
|
308
|
+
expect(result.functions.some((f) => f.name === 'NewServer')).toBe(true);
|
|
309
|
+
expect(result.exports.length).toBeGreaterThan(0);
|
|
310
|
+
expect(result.exports.some((e) => e.name === 'Server')).toBe(true);
|
|
311
|
+
});
|
|
312
|
+
it('parses Rust files correctly', () => {
|
|
313
|
+
const result = router.parseFile(fixtures.rust.content, fixtures.rust.path);
|
|
314
|
+
expect(result.imports.length).toBeGreaterThan(0);
|
|
315
|
+
expect(result.imports.some((i) => i.module.includes('serde'))).toBe(true);
|
|
316
|
+
expect(result.functions.length).toBeGreaterThan(0);
|
|
317
|
+
expect(result.functions.some((f) => f.name === 'new')).toBe(true);
|
|
318
|
+
expect(result.exports.length).toBeGreaterThan(0);
|
|
319
|
+
expect(result.exports.some((e) => e.name === 'Config')).toBe(true);
|
|
320
|
+
});
|
|
321
|
+
it('parses Java files correctly', () => {
|
|
322
|
+
const result = router.parseFile(fixtures.java.content, fixtures.java.path);
|
|
323
|
+
expect(result.imports.length).toBeGreaterThan(0);
|
|
324
|
+
expect(result.imports.some((i) => i.module.includes('springframework'))).toBe(true);
|
|
325
|
+
expect(result.functions.length).toBeGreaterThan(0);
|
|
326
|
+
expect(result.functions.some((f) => f.name === 'findById')).toBe(true);
|
|
327
|
+
expect(result.exports.length).toBeGreaterThan(0);
|
|
328
|
+
expect(result.exports.some((e) => e.name === 'UserService')).toBe(true);
|
|
329
|
+
});
|
|
330
|
+
it('aggregates framework rules from all adapters', () => {
|
|
331
|
+
const rules = router.getAllFrameworkRules();
|
|
332
|
+
// Should have rules from all languages
|
|
333
|
+
expect(rules.length).toBeGreaterThan(10);
|
|
334
|
+
// TypeScript frameworks
|
|
335
|
+
expect(rules.some((r) => r.name === 'React')).toBe(true);
|
|
336
|
+
expect(rules.some((r) => r.name === 'Express')).toBe(true);
|
|
337
|
+
// Python frameworks
|
|
338
|
+
expect(rules.some((r) => r.name === 'Django')).toBe(true);
|
|
339
|
+
expect(rules.some((r) => r.name === 'FastAPI')).toBe(true);
|
|
340
|
+
// Go frameworks
|
|
341
|
+
expect(rules.some((r) => r.name === 'Gin')).toBe(true);
|
|
342
|
+
// Rust frameworks
|
|
343
|
+
expect(rules.some((r) => r.name === 'Actix')).toBe(true);
|
|
344
|
+
// Java frameworks
|
|
345
|
+
expect(rules.some((r) => r.name === 'Spring')).toBe(true);
|
|
346
|
+
});
|
|
347
|
+
it('throws error for unsupported file when adapter not found', () => {
|
|
348
|
+
expect(() => router.parseFile('content', 'file.xyz')).toThrow(/No adapter registered/);
|
|
349
|
+
});
|
|
350
|
+
});
|
|
351
|
+
// ============================================================
|
|
352
|
+
// ParseCache Integration Tests
|
|
353
|
+
// ============================================================
|
|
354
|
+
describe('ParseCache integration with adapters', () => {
|
|
355
|
+
let cache;
|
|
356
|
+
let router;
|
|
357
|
+
beforeEach(() => {
|
|
358
|
+
cache = new ParseCache({ maxMemoryMB: 50 });
|
|
359
|
+
router = new LanguageRouter();
|
|
360
|
+
router.registerAdapter(new TypeScriptAdapter());
|
|
361
|
+
router.registerAdapter(new PythonAdapter());
|
|
362
|
+
router.registerAdapter(new GoAdapter());
|
|
363
|
+
});
|
|
364
|
+
afterEach(() => {
|
|
365
|
+
cache.clear();
|
|
366
|
+
router.dispose();
|
|
367
|
+
});
|
|
368
|
+
it('caches parse results across different languages', () => {
|
|
369
|
+
// Parse and cache TypeScript
|
|
370
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
371
|
+
cache.set(fixtures.typescript.path, fixtures.typescript.content, tsResult);
|
|
372
|
+
// Parse and cache Python
|
|
373
|
+
const pyResult = router.parseFile(fixtures.python.content, fixtures.python.path);
|
|
374
|
+
cache.set(fixtures.python.path, fixtures.python.content, pyResult);
|
|
375
|
+
// Parse and cache Go
|
|
376
|
+
const goResult = router.parseFile(fixtures.go.content, fixtures.go.path);
|
|
377
|
+
cache.set(fixtures.go.path, fixtures.go.content, goResult);
|
|
378
|
+
// Verify all cached
|
|
379
|
+
expect(cache.size).toBe(3);
|
|
380
|
+
expect(cache.has(fixtures.typescript.path)).toBe(true);
|
|
381
|
+
expect(cache.has(fixtures.python.path)).toBe(true);
|
|
382
|
+
expect(cache.has(fixtures.go.path)).toBe(true);
|
|
383
|
+
});
|
|
384
|
+
it('returns cached results on cache hit', () => {
|
|
385
|
+
const result = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
386
|
+
cache.set(fixtures.typescript.path, fixtures.typescript.content, result);
|
|
387
|
+
const cached = cache.get(fixtures.typescript.path, fixtures.typescript.content);
|
|
388
|
+
expect(cached).not.toBeNull();
|
|
389
|
+
expect(cached).toEqual(result);
|
|
390
|
+
});
|
|
391
|
+
it('invalidates cache on content change', () => {
|
|
392
|
+
const result = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
393
|
+
cache.set(fixtures.typescript.path, fixtures.typescript.content, result);
|
|
394
|
+
const modifiedContent = fixtures.typescript.content + '\n// new comment';
|
|
395
|
+
const cached = cache.get(fixtures.typescript.path, modifiedContent);
|
|
396
|
+
expect(cached).toBeNull();
|
|
397
|
+
});
|
|
398
|
+
it('tracks hit/miss statistics correctly', () => {
|
|
399
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
400
|
+
cache.set(fixtures.typescript.path, fixtures.typescript.content, tsResult);
|
|
401
|
+
// First access - hit
|
|
402
|
+
cache.get(fixtures.typescript.path, fixtures.typescript.content);
|
|
403
|
+
// Second access - hit
|
|
404
|
+
cache.get(fixtures.typescript.path, fixtures.typescript.content);
|
|
405
|
+
// Miss - file not cached
|
|
406
|
+
cache.get('not-cached.ts', 'content');
|
|
407
|
+
const stats = cache.getStats();
|
|
408
|
+
expect(stats.hitRate).toBeCloseTo(2 / 3, 2);
|
|
409
|
+
});
|
|
410
|
+
it('manages cache entries with add and invalidate', () => {
|
|
411
|
+
// Test cache management behavior with add and invalidate operations
|
|
412
|
+
const testCache = new ParseCache({ maxMemoryMB: 1 });
|
|
413
|
+
// Add multiple entries
|
|
414
|
+
for (let i = 0; i < 10; i++) {
|
|
415
|
+
const content = `export const x${i} = ${i}`;
|
|
416
|
+
const result = router.parseFile(content, `file${i}.ts`);
|
|
417
|
+
testCache.set(`file${i}.ts`, content, result);
|
|
418
|
+
}
|
|
419
|
+
// Verify entries were added
|
|
420
|
+
expect(testCache.size).toBe(10);
|
|
421
|
+
// Test that invalidation works (key cache behavior)
|
|
422
|
+
testCache.invalidate(['file0.ts', 'file1.ts', 'file2.ts']);
|
|
423
|
+
expect(testCache.size).toBe(7);
|
|
424
|
+
testCache.clear();
|
|
425
|
+
});
|
|
426
|
+
it('invalidates by pattern across languages', () => {
|
|
427
|
+
// Cache multiple files
|
|
428
|
+
const tsResult = router.parseFile(fixtures.typescript.content, 'src/api/handler.ts');
|
|
429
|
+
cache.set('src/api/handler.ts', fixtures.typescript.content, tsResult);
|
|
430
|
+
const pyResult = router.parseFile(fixtures.python.content, 'src/services/processor.py');
|
|
431
|
+
cache.set('src/services/processor.py', fixtures.python.content, pyResult);
|
|
432
|
+
const goResult = router.parseFile(fixtures.go.content, 'src/server/main.go');
|
|
433
|
+
cache.set('src/server/main.go', fixtures.go.content, goResult);
|
|
434
|
+
// Invalidate by pattern
|
|
435
|
+
cache.invalidatePattern('src/*.ts');
|
|
436
|
+
cache.invalidatePattern('src/*.py');
|
|
437
|
+
// Only Go file should remain
|
|
438
|
+
expect(cache.has('src/server/main.go')).toBe(true);
|
|
439
|
+
});
|
|
440
|
+
});
|
|
441
|
+
// ============================================================
|
|
442
|
+
// ParserWorkerPool Integration Tests
|
|
443
|
+
// ============================================================
|
|
444
|
+
describe('ParserWorkerPool with mixed language batches', () => {
|
|
445
|
+
let pool;
|
|
446
|
+
beforeEach(() => {
|
|
447
|
+
pool = new ParserWorkerPool({
|
|
448
|
+
poolSize: 2,
|
|
449
|
+
minBatchForWorkers: 5, // Lower threshold for testing
|
|
450
|
+
});
|
|
451
|
+
});
|
|
452
|
+
afterEach(() => {
|
|
453
|
+
pool.dispose();
|
|
454
|
+
});
|
|
455
|
+
it('processes single-language batch', async () => {
|
|
456
|
+
const tasks = [
|
|
457
|
+
{
|
|
458
|
+
filePath: 'a.ts',
|
|
459
|
+
content: 'export const a = 1',
|
|
460
|
+
language: 'typescript',
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
filePath: 'b.ts',
|
|
464
|
+
content: 'export const b = 2',
|
|
465
|
+
language: 'typescript',
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
filePath: 'c.ts',
|
|
469
|
+
content: 'export function c() {}',
|
|
470
|
+
language: 'typescript',
|
|
471
|
+
},
|
|
472
|
+
];
|
|
473
|
+
const results = await pool.parseFiles(tasks);
|
|
474
|
+
expect(results).toHaveLength(3);
|
|
475
|
+
expect(results.every((r) => r.result !== undefined)).toBe(true);
|
|
476
|
+
expect(results.every((r) => r.error === undefined)).toBe(true);
|
|
477
|
+
});
|
|
478
|
+
it('processes mixed-language batch', async () => {
|
|
479
|
+
const tasks = [
|
|
480
|
+
{
|
|
481
|
+
filePath: 'handler.ts',
|
|
482
|
+
content: 'export function handle() {}',
|
|
483
|
+
language: 'typescript',
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
filePath: 'processor.py',
|
|
487
|
+
content: 'def process(): pass',
|
|
488
|
+
language: 'python',
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
filePath: 'main.go',
|
|
492
|
+
content: 'package main\nfunc main() {}',
|
|
493
|
+
language: 'go',
|
|
494
|
+
},
|
|
495
|
+
];
|
|
496
|
+
const results = await pool.parseFiles(tasks);
|
|
497
|
+
expect(results).toHaveLength(3);
|
|
498
|
+
const tsResult = results.find((r) => r.filePath === 'handler.ts');
|
|
499
|
+
const pyResult = results.find((r) => r.filePath === 'processor.py');
|
|
500
|
+
const goResult = results.find((r) => r.filePath === 'main.go');
|
|
501
|
+
expect(tsResult?.result.functions.length).toBeGreaterThan(0);
|
|
502
|
+
expect(pyResult?.result.functions.length).toBeGreaterThan(0);
|
|
503
|
+
expect(goResult?.result.functions.length).toBeGreaterThan(0);
|
|
504
|
+
});
|
|
505
|
+
it('handles large mixed batch with workers', async () => {
|
|
506
|
+
// Create a batch large enough to use workers
|
|
507
|
+
const tasks = [];
|
|
508
|
+
// Add TypeScript files
|
|
509
|
+
for (let i = 0; i < 5; i++) {
|
|
510
|
+
tasks.push({
|
|
511
|
+
filePath: `src/ts/file${i}.ts`,
|
|
512
|
+
content: `export const value${i} = ${i}\nexport function fn${i}() { return ${i} }`,
|
|
513
|
+
language: 'typescript',
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
// Add Python files
|
|
517
|
+
for (let i = 0; i < 5; i++) {
|
|
518
|
+
tasks.push({
|
|
519
|
+
filePath: `src/py/file${i}.py`,
|
|
520
|
+
content: `def func${i}(): return ${i}\nclass Class${i}: pass`,
|
|
521
|
+
language: 'python',
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
// Add Go files
|
|
525
|
+
for (let i = 0; i < 5; i++) {
|
|
526
|
+
tasks.push({
|
|
527
|
+
filePath: `src/go/file${i}.go`,
|
|
528
|
+
content: `package main\nfunc Func${i}() int { return ${i} }`,
|
|
529
|
+
language: 'go',
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
const results = await pool.parseFiles(tasks);
|
|
533
|
+
expect(results).toHaveLength(15);
|
|
534
|
+
expect(results.filter((r) => r.filePath.endsWith('.ts'))).toHaveLength(5);
|
|
535
|
+
expect(results.filter((r) => r.filePath.endsWith('.py'))).toHaveLength(5);
|
|
536
|
+
expect(results.filter((r) => r.filePath.endsWith('.go'))).toHaveLength(5);
|
|
537
|
+
});
|
|
538
|
+
it('handles empty batch gracefully', async () => {
|
|
539
|
+
const results = await pool.parseFiles([]);
|
|
540
|
+
expect(results).toHaveLength(0);
|
|
541
|
+
});
|
|
542
|
+
it('handles parse errors gracefully', async () => {
|
|
543
|
+
const tasks = [
|
|
544
|
+
{
|
|
545
|
+
filePath: 'valid.ts',
|
|
546
|
+
content: 'export const x = 1',
|
|
547
|
+
language: 'typescript',
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
filePath: 'unknown.xyz',
|
|
551
|
+
content: 'invalid content',
|
|
552
|
+
language: 'unknown',
|
|
553
|
+
},
|
|
554
|
+
];
|
|
555
|
+
const results = await pool.parseFiles(tasks);
|
|
556
|
+
expect(results).toHaveLength(2);
|
|
557
|
+
const validResult = results.find((r) => r.filePath === 'valid.ts');
|
|
558
|
+
expect(validResult?.error).toBeUndefined();
|
|
559
|
+
const invalidResult = results.find((r) => r.filePath === 'unknown.xyz');
|
|
560
|
+
expect(invalidResult?.error).toBeDefined();
|
|
561
|
+
});
|
|
562
|
+
it('reports timing information', async () => {
|
|
563
|
+
const tasks = [
|
|
564
|
+
{
|
|
565
|
+
filePath: 'test.ts',
|
|
566
|
+
content: fixtures.typescript.content,
|
|
567
|
+
language: 'typescript',
|
|
568
|
+
},
|
|
569
|
+
];
|
|
570
|
+
const results = await pool.parseFiles(tasks);
|
|
571
|
+
expect(results[0].durationMs).toBeGreaterThanOrEqual(0);
|
|
572
|
+
});
|
|
573
|
+
it('provides pool statistics', () => {
|
|
574
|
+
const stats = pool.getStats();
|
|
575
|
+
expect(stats.poolSize).toBe(2);
|
|
576
|
+
expect(stats.activeWorkers).toBe(0);
|
|
577
|
+
expect(stats.queuedTasks).toBe(0);
|
|
578
|
+
});
|
|
579
|
+
});
|
|
580
|
+
// ============================================================
|
|
581
|
+
// ResultAggregator Integration Tests
|
|
582
|
+
// ============================================================
|
|
583
|
+
describe('ResultAggregator combining results from multiple languages', () => {
|
|
584
|
+
let aggregator;
|
|
585
|
+
let router;
|
|
586
|
+
beforeEach(() => {
|
|
587
|
+
aggregator = new ResultAggregator();
|
|
588
|
+
router = new LanguageRouter();
|
|
589
|
+
router.registerAdapter(new TypeScriptAdapter());
|
|
590
|
+
router.registerAdapter(new PythonAdapter());
|
|
591
|
+
router.registerAdapter(new GoAdapter());
|
|
592
|
+
router.registerAdapter(new RustAdapter());
|
|
593
|
+
router.registerAdapter(new JavaAdapter());
|
|
594
|
+
});
|
|
595
|
+
afterEach(() => {
|
|
596
|
+
aggregator.reset();
|
|
597
|
+
router.dispose();
|
|
598
|
+
});
|
|
599
|
+
it('aggregates results from all supported languages', () => {
|
|
600
|
+
// Parse and aggregate TypeScript
|
|
601
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
602
|
+
aggregator.add({
|
|
603
|
+
filePath: fixtures.typescript.path,
|
|
604
|
+
language: 'typescript',
|
|
605
|
+
result: tsResult,
|
|
606
|
+
});
|
|
607
|
+
// Parse and aggregate Python
|
|
608
|
+
const pyResult = router.parseFile(fixtures.python.content, fixtures.python.path);
|
|
609
|
+
aggregator.add({
|
|
610
|
+
filePath: fixtures.python.path,
|
|
611
|
+
language: 'python',
|
|
612
|
+
result: pyResult,
|
|
613
|
+
});
|
|
614
|
+
// Parse and aggregate Go
|
|
615
|
+
const goResult = router.parseFile(fixtures.go.content, fixtures.go.path);
|
|
616
|
+
aggregator.add({
|
|
617
|
+
filePath: fixtures.go.path,
|
|
618
|
+
language: 'go',
|
|
619
|
+
result: goResult,
|
|
620
|
+
});
|
|
621
|
+
// Parse and aggregate Rust
|
|
622
|
+
const rustResult = router.parseFile(fixtures.rust.content, fixtures.rust.path);
|
|
623
|
+
aggregator.add({
|
|
624
|
+
filePath: fixtures.rust.path,
|
|
625
|
+
language: 'rust',
|
|
626
|
+
result: rustResult,
|
|
627
|
+
});
|
|
628
|
+
// Parse and aggregate Java
|
|
629
|
+
const javaResult = router.parseFile(fixtures.java.content, fixtures.java.path);
|
|
630
|
+
aggregator.add({
|
|
631
|
+
filePath: fixtures.java.path,
|
|
632
|
+
language: 'java',
|
|
633
|
+
result: javaResult,
|
|
634
|
+
});
|
|
635
|
+
expect(aggregator.getFileCount()).toBe(5);
|
|
636
|
+
expect(aggregator.getLanguages()).toContain('typescript');
|
|
637
|
+
expect(aggregator.getLanguages()).toContain('python');
|
|
638
|
+
expect(aggregator.getLanguages()).toContain('go');
|
|
639
|
+
expect(aggregator.getLanguages()).toContain('rust');
|
|
640
|
+
expect(aggregator.getLanguages()).toContain('java');
|
|
641
|
+
});
|
|
642
|
+
it('aggregates imports from all languages with correct annotation', () => {
|
|
643
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
644
|
+
aggregator.add({
|
|
645
|
+
filePath: fixtures.typescript.path,
|
|
646
|
+
language: 'typescript',
|
|
647
|
+
result: tsResult,
|
|
648
|
+
});
|
|
649
|
+
const pyResult = router.parseFile(fixtures.python.content, fixtures.python.path);
|
|
650
|
+
aggregator.add({
|
|
651
|
+
filePath: fixtures.python.path,
|
|
652
|
+
language: 'python',
|
|
653
|
+
result: pyResult,
|
|
654
|
+
});
|
|
655
|
+
const imports = aggregator.getImports();
|
|
656
|
+
// Should have imports from both languages
|
|
657
|
+
const tsImports = imports.filter((i) => i.language === 'typescript');
|
|
658
|
+
const pyImports = imports.filter((i) => i.language === 'python');
|
|
659
|
+
expect(tsImports.length).toBeGreaterThan(0);
|
|
660
|
+
expect(pyImports.length).toBeGreaterThan(0);
|
|
661
|
+
// Verify source file annotation
|
|
662
|
+
expect(tsImports.every((i) => i.sourceFile === fixtures.typescript.path)).toBe(true);
|
|
663
|
+
expect(pyImports.every((i) => i.sourceFile === fixtures.python.path)).toBe(true);
|
|
664
|
+
});
|
|
665
|
+
it('aggregates exports from all languages with correct kind', () => {
|
|
666
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
667
|
+
aggregator.add({
|
|
668
|
+
filePath: fixtures.typescript.path,
|
|
669
|
+
language: 'typescript',
|
|
670
|
+
result: tsResult,
|
|
671
|
+
});
|
|
672
|
+
const goResult = router.parseFile(fixtures.go.content, fixtures.go.path);
|
|
673
|
+
aggregator.add({
|
|
674
|
+
filePath: fixtures.go.path,
|
|
675
|
+
language: 'go',
|
|
676
|
+
result: goResult,
|
|
677
|
+
});
|
|
678
|
+
const exports = aggregator.getExports();
|
|
679
|
+
// TypeScript exports
|
|
680
|
+
expect(exports.some((e) => e.name === 'HandlerConfig' && e.kind === 'interface')).toBe(true);
|
|
681
|
+
// Go exports (structs)
|
|
682
|
+
expect(exports.some((e) => e.name === 'Server' && e.kind === 'struct')).toBe(true);
|
|
683
|
+
});
|
|
684
|
+
it('aggregates functions from all languages with async detection', () => {
|
|
685
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
686
|
+
aggregator.add({
|
|
687
|
+
filePath: fixtures.typescript.path,
|
|
688
|
+
language: 'typescript',
|
|
689
|
+
result: tsResult,
|
|
690
|
+
});
|
|
691
|
+
const pyResult = router.parseFile(fixtures.python.content, fixtures.python.path);
|
|
692
|
+
aggregator.add({
|
|
693
|
+
filePath: fixtures.python.path,
|
|
694
|
+
language: 'python',
|
|
695
|
+
result: pyResult,
|
|
696
|
+
});
|
|
697
|
+
const functions = aggregator.getFunctions();
|
|
698
|
+
// TypeScript async function
|
|
699
|
+
const tsAsyncFunc = functions.find((f) => f.name === 'handleUserRequest');
|
|
700
|
+
expect(tsAsyncFunc?.isAsync).toBe(true);
|
|
701
|
+
expect(tsAsyncFunc?.language).toBe('typescript');
|
|
702
|
+
// Python async function
|
|
703
|
+
const pyAsyncFunc = functions.find((f) => f.name === 'process_batch');
|
|
704
|
+
expect(pyAsyncFunc?.isAsync).toBe(true);
|
|
705
|
+
expect(pyAsyncFunc?.language).toBe('python');
|
|
706
|
+
});
|
|
707
|
+
it('builds complete CodebaseContext from multi-language project', () => {
|
|
708
|
+
// Add all fixture files
|
|
709
|
+
const files = [
|
|
710
|
+
{ ...fixtures.typescript, language: 'typescript' },
|
|
711
|
+
{ ...fixtures.python, language: 'python' },
|
|
712
|
+
{ ...fixtures.go, language: 'go' },
|
|
713
|
+
{ ...fixtures.rust, language: 'rust' },
|
|
714
|
+
{ ...fixtures.java, language: 'java' },
|
|
715
|
+
];
|
|
716
|
+
for (const file of files) {
|
|
717
|
+
const result = router.parseFile(file.content, file.path);
|
|
718
|
+
aggregator.add({
|
|
719
|
+
filePath: file.path,
|
|
720
|
+
language: file.language,
|
|
721
|
+
result,
|
|
722
|
+
});
|
|
723
|
+
aggregator.addLines(file.content.split('\n').length);
|
|
724
|
+
}
|
|
725
|
+
const context = aggregator.build('/project', [
|
|
726
|
+
{ name: 'express', version: '^4.18.0', isDev: false },
|
|
727
|
+
{ name: 'pandas', version: '>=2.0', isDev: false },
|
|
728
|
+
], [
|
|
729
|
+
{ name: 'Express', confidence: 0.9, evidence: ['import express'] },
|
|
730
|
+
{ name: 'Gin', confidence: 0.9, evidence: ['import gin'] },
|
|
731
|
+
], { durationMs: 500, version: '2.0.0', cacheHitRate: 0.8 });
|
|
732
|
+
expect(context.rootPath).toBe('/project');
|
|
733
|
+
expect(context.imports.length).toBeGreaterThan(0);
|
|
734
|
+
expect(context.exports.length).toBeGreaterThan(0);
|
|
735
|
+
expect(context.functions.length).toBeGreaterThan(0);
|
|
736
|
+
expect(context.frameworks).toHaveLength(2);
|
|
737
|
+
expect(context.dependencies).toHaveLength(2);
|
|
738
|
+
expect(context.stats.totalFiles).toBe(5);
|
|
739
|
+
expect(context.stats.totalLines).toBeGreaterThan(0);
|
|
740
|
+
expect(context.metadata.languages).toHaveLength(5);
|
|
741
|
+
expect(context.metadata.cacheHitRate).toBe(0.8);
|
|
742
|
+
});
|
|
743
|
+
it('provides accurate summary statistics', () => {
|
|
744
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
745
|
+
aggregator.add({
|
|
746
|
+
filePath: fixtures.typescript.path,
|
|
747
|
+
language: 'typescript',
|
|
748
|
+
result: tsResult,
|
|
749
|
+
});
|
|
750
|
+
aggregator.addLines(fixtures.typescript.content.split('\n').length);
|
|
751
|
+
const pyResult = router.parseFile(fixtures.python.content, fixtures.python.path);
|
|
752
|
+
aggregator.add({
|
|
753
|
+
filePath: fixtures.python.path,
|
|
754
|
+
language: 'python',
|
|
755
|
+
result: pyResult,
|
|
756
|
+
});
|
|
757
|
+
aggregator.addLines(fixtures.python.content.split('\n').length);
|
|
758
|
+
const summary = aggregator.getSummary();
|
|
759
|
+
expect(summary.files).toBe(2);
|
|
760
|
+
expect(summary.imports).toBeGreaterThan(0);
|
|
761
|
+
expect(summary.exports).toBeGreaterThan(0);
|
|
762
|
+
expect(summary.functions).toBeGreaterThan(0);
|
|
763
|
+
expect(summary.lines).toBeGreaterThan(0);
|
|
764
|
+
expect(summary.languages).toContain('typescript');
|
|
765
|
+
expect(summary.languages).toContain('python');
|
|
766
|
+
});
|
|
767
|
+
it('merges two aggregators correctly', () => {
|
|
768
|
+
const aggregator1 = new ResultAggregator();
|
|
769
|
+
const aggregator2 = new ResultAggregator();
|
|
770
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
771
|
+
aggregator1.add({
|
|
772
|
+
filePath: fixtures.typescript.path,
|
|
773
|
+
language: 'typescript',
|
|
774
|
+
result: tsResult,
|
|
775
|
+
});
|
|
776
|
+
const pyResult = router.parseFile(fixtures.python.content, fixtures.python.path);
|
|
777
|
+
aggregator2.add({
|
|
778
|
+
filePath: fixtures.python.path,
|
|
779
|
+
language: 'python',
|
|
780
|
+
result: pyResult,
|
|
781
|
+
});
|
|
782
|
+
aggregator1.merge(aggregator2);
|
|
783
|
+
expect(aggregator1.getFileCount()).toBe(2);
|
|
784
|
+
expect(aggregator1.getLanguages()).toContain('typescript');
|
|
785
|
+
expect(aggregator1.getLanguages()).toContain('python');
|
|
786
|
+
});
|
|
787
|
+
it('resets state completely', () => {
|
|
788
|
+
const tsResult = router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
789
|
+
aggregator.add({
|
|
790
|
+
filePath: fixtures.typescript.path,
|
|
791
|
+
language: 'typescript',
|
|
792
|
+
result: tsResult,
|
|
793
|
+
});
|
|
794
|
+
aggregator.reset();
|
|
795
|
+
expect(aggregator.getFileCount()).toBe(0);
|
|
796
|
+
expect(aggregator.getImports()).toHaveLength(0);
|
|
797
|
+
expect(aggregator.getExports()).toHaveLength(0);
|
|
798
|
+
expect(aggregator.getFunctions()).toHaveLength(0);
|
|
799
|
+
expect(aggregator.getLanguages()).toHaveLength(0);
|
|
800
|
+
});
|
|
801
|
+
});
|
|
802
|
+
// ============================================================
|
|
803
|
+
// End-to-End Multi-Language Project Scenario
|
|
804
|
+
// ============================================================
|
|
805
|
+
describe('End-to-end multi-language project analysis', () => {
|
|
806
|
+
let router;
|
|
807
|
+
let cache;
|
|
808
|
+
let aggregator;
|
|
809
|
+
beforeEach(() => {
|
|
810
|
+
router = new LanguageRouter();
|
|
811
|
+
router.registerAdapter(new TypeScriptAdapter());
|
|
812
|
+
router.registerAdapter(new PythonAdapter());
|
|
813
|
+
router.registerAdapter(new GoAdapter());
|
|
814
|
+
cache = new ParseCache({ maxMemoryMB: 50 });
|
|
815
|
+
aggregator = new ResultAggregator();
|
|
816
|
+
});
|
|
817
|
+
afterEach(() => {
|
|
818
|
+
router.dispose();
|
|
819
|
+
cache.clear();
|
|
820
|
+
aggregator.reset();
|
|
821
|
+
});
|
|
822
|
+
it('analyzes a realistic mixed-language microservices project', () => {
|
|
823
|
+
// Simulate a microservices project with multiple languages
|
|
824
|
+
const projectFiles = [
|
|
825
|
+
{
|
|
826
|
+
path: 'api-gateway/src/server.ts',
|
|
827
|
+
content: `
|
|
828
|
+
import express from 'express'
|
|
829
|
+
import { createProxyMiddleware } from 'http-proxy-middleware'
|
|
830
|
+
|
|
831
|
+
export function createGateway(config: GatewayConfig) {
|
|
832
|
+
const app = express()
|
|
833
|
+
app.use('/users', createProxyMiddleware({ target: config.userServiceUrl }))
|
|
834
|
+
return app
|
|
835
|
+
}
|
|
836
|
+
`.trim(),
|
|
837
|
+
language: 'typescript',
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
path: 'user-service/app/main.py',
|
|
841
|
+
content: `
|
|
842
|
+
from fastapi import FastAPI, Depends
|
|
843
|
+
from sqlalchemy.orm import Session
|
|
844
|
+
from .database import get_db
|
|
845
|
+
from .models import User
|
|
846
|
+
|
|
847
|
+
app = FastAPI()
|
|
848
|
+
|
|
849
|
+
@app.get("/users/{user_id}")
|
|
850
|
+
async def get_user(user_id: int, db: Session = Depends(get_db)):
|
|
851
|
+
return db.query(User).filter(User.id == user_id).first()
|
|
852
|
+
`.trim(),
|
|
853
|
+
language: 'python',
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
path: 'notification-service/main.go',
|
|
857
|
+
content: `
|
|
858
|
+
package main
|
|
859
|
+
|
|
860
|
+
import (
|
|
861
|
+
"github.com/gin-gonic/gin"
|
|
862
|
+
"github.com/go-redis/redis/v8"
|
|
863
|
+
)
|
|
864
|
+
|
|
865
|
+
func main() {
|
|
866
|
+
router := gin.Default()
|
|
867
|
+
router.POST("/notify", HandleNotify)
|
|
868
|
+
router.Run(":8082")
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
func HandleNotify(c *gin.Context) {
|
|
872
|
+
c.JSON(200, gin.H{"status": "sent"})
|
|
873
|
+
}
|
|
874
|
+
`.trim(),
|
|
875
|
+
language: 'go',
|
|
876
|
+
},
|
|
877
|
+
];
|
|
878
|
+
// Parse each file with caching
|
|
879
|
+
for (const file of projectFiles) {
|
|
880
|
+
// Check cache first
|
|
881
|
+
let result = cache.get(file.path, file.content);
|
|
882
|
+
if (!result) {
|
|
883
|
+
// Parse if not cached
|
|
884
|
+
result = router.parseFile(file.content, file.path);
|
|
885
|
+
cache.set(file.path, file.content, result);
|
|
886
|
+
}
|
|
887
|
+
// Aggregate
|
|
888
|
+
aggregator.add({
|
|
889
|
+
filePath: file.path,
|
|
890
|
+
language: file.language,
|
|
891
|
+
result,
|
|
892
|
+
});
|
|
893
|
+
aggregator.addLines(file.content.split('\n').length);
|
|
894
|
+
}
|
|
895
|
+
// Verify comprehensive analysis
|
|
896
|
+
const context = aggregator.build('/microservices-project', [], [], {
|
|
897
|
+
durationMs: 100,
|
|
898
|
+
version: '2.0.0',
|
|
899
|
+
cacheHitRate: 0,
|
|
900
|
+
});
|
|
901
|
+
// File counts
|
|
902
|
+
expect(context.stats.totalFiles).toBe(3);
|
|
903
|
+
expect(context.metadata.languages).toHaveLength(3);
|
|
904
|
+
// Cross-language imports
|
|
905
|
+
const imports = context.imports;
|
|
906
|
+
expect(imports.some((i) => i.module === 'express' && i.language === 'typescript')).toBe(true);
|
|
907
|
+
expect(imports.some((i) => i.module === 'fastapi' && i.language === 'python')).toBe(true);
|
|
908
|
+
expect(imports.some((i) => i.module === 'github.com/gin-gonic/gin' && i.language === 'go')).toBe(true);
|
|
909
|
+
// Cross-language functions
|
|
910
|
+
const functions = context.functions;
|
|
911
|
+
expect(functions.some((f) => f.name === 'createGateway' && f.language === 'typescript')).toBe(true);
|
|
912
|
+
expect(functions.some((f) => f.name === 'get_user' && f.language === 'python')).toBe(true);
|
|
913
|
+
expect(functions.some((f) => f.name === 'HandleNotify' && f.language === 'go')).toBe(true);
|
|
914
|
+
});
|
|
915
|
+
it('verifies cross-adapter output format consistency', () => {
|
|
916
|
+
// All adapters should produce consistent ParseResult structure
|
|
917
|
+
const testCases = [
|
|
918
|
+
{ path: 'test.ts', content: 'export function test() {}' },
|
|
919
|
+
{ path: 'test.py', content: 'def test(): pass' },
|
|
920
|
+
{ path: 'test.go', content: 'package main\nfunc Test() {}' },
|
|
921
|
+
];
|
|
922
|
+
for (const { path, content } of testCases) {
|
|
923
|
+
const result = router.parseFile(content, path);
|
|
924
|
+
// All results should have the required arrays
|
|
925
|
+
expect(Array.isArray(result.imports)).toBe(true);
|
|
926
|
+
expect(Array.isArray(result.exports)).toBe(true);
|
|
927
|
+
expect(Array.isArray(result.functions)).toBe(true);
|
|
928
|
+
// Functions should have consistent shape
|
|
929
|
+
for (const func of result.functions) {
|
|
930
|
+
expect(typeof func.name).toBe('string');
|
|
931
|
+
expect(typeof func.parameterCount).toBe('number');
|
|
932
|
+
expect(typeof func.isAsync).toBe('boolean');
|
|
933
|
+
expect(typeof func.isExported).toBe('boolean');
|
|
934
|
+
expect(typeof func.sourceFile).toBe('string');
|
|
935
|
+
expect(typeof func.line).toBe('number');
|
|
936
|
+
}
|
|
937
|
+
// Imports should have consistent shape
|
|
938
|
+
for (const imp of result.imports) {
|
|
939
|
+
expect(typeof imp.module).toBe('string');
|
|
940
|
+
expect(Array.isArray(imp.namedImports)).toBe(true);
|
|
941
|
+
expect(typeof imp.isTypeOnly).toBe('boolean');
|
|
942
|
+
expect(typeof imp.sourceFile).toBe('string');
|
|
943
|
+
}
|
|
944
|
+
// Exports should have consistent shape
|
|
945
|
+
for (const exp of result.exports) {
|
|
946
|
+
expect(typeof exp.name).toBe('string');
|
|
947
|
+
expect(typeof exp.kind).toBe('string');
|
|
948
|
+
expect(typeof exp.isDefault).toBe('boolean');
|
|
949
|
+
expect(typeof exp.sourceFile).toBe('string');
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
});
|
|
953
|
+
it('tests cache hit/miss behavior across languages', () => {
|
|
954
|
+
const files = [
|
|
955
|
+
{ path: 'a.ts', content: 'export const a = 1' },
|
|
956
|
+
{ path: 'b.py', content: 'a = 1' },
|
|
957
|
+
{ path: 'c.go', content: 'package main\nvar a = 1' },
|
|
958
|
+
];
|
|
959
|
+
// First pass - all misses
|
|
960
|
+
for (const file of files) {
|
|
961
|
+
const cached = cache.get(file.path, file.content);
|
|
962
|
+
expect(cached).toBeNull();
|
|
963
|
+
const result = router.parseFile(file.content, file.path);
|
|
964
|
+
cache.set(file.path, file.content, result);
|
|
965
|
+
}
|
|
966
|
+
// Second pass - all hits
|
|
967
|
+
for (const file of files) {
|
|
968
|
+
const cached = cache.get(file.path, file.content);
|
|
969
|
+
expect(cached).not.toBeNull();
|
|
970
|
+
}
|
|
971
|
+
const stats = cache.getStats();
|
|
972
|
+
// 3 misses + 3 hits = 50% hit rate
|
|
973
|
+
expect(stats.hitRate).toBeCloseTo(0.5, 2);
|
|
974
|
+
// Third pass with modified content - misses
|
|
975
|
+
for (const file of files) {
|
|
976
|
+
const modifiedContent = file.content + '\n// modified';
|
|
977
|
+
const cached = cache.get(file.path, modifiedContent);
|
|
978
|
+
expect(cached).toBeNull();
|
|
979
|
+
}
|
|
980
|
+
});
|
|
981
|
+
});
|
|
982
|
+
// ============================================================
|
|
983
|
+
// Performance Tests
|
|
984
|
+
// ============================================================
|
|
985
|
+
describe('Performance benchmarks', () => {
|
|
986
|
+
let router;
|
|
987
|
+
let pool;
|
|
988
|
+
beforeEach(() => {
|
|
989
|
+
router = new LanguageRouter();
|
|
990
|
+
router.registerAdapter(new TypeScriptAdapter());
|
|
991
|
+
router.registerAdapter(new PythonAdapter());
|
|
992
|
+
router.registerAdapter(new GoAdapter());
|
|
993
|
+
pool = new ParserWorkerPool({ poolSize: 4, minBatchForWorkers: 5 });
|
|
994
|
+
});
|
|
995
|
+
afterEach(() => {
|
|
996
|
+
router.dispose();
|
|
997
|
+
pool.dispose();
|
|
998
|
+
});
|
|
999
|
+
it('parses mixed-language batch under 500ms', async () => {
|
|
1000
|
+
const tasks = [];
|
|
1001
|
+
// Generate test files
|
|
1002
|
+
for (let i = 0; i < 10; i++) {
|
|
1003
|
+
tasks.push({
|
|
1004
|
+
filePath: `file${i}.ts`,
|
|
1005
|
+
content: fixtures.typescript.content,
|
|
1006
|
+
language: 'typescript',
|
|
1007
|
+
});
|
|
1008
|
+
tasks.push({
|
|
1009
|
+
filePath: `file${i}.py`,
|
|
1010
|
+
content: fixtures.python.content,
|
|
1011
|
+
language: 'python',
|
|
1012
|
+
});
|
|
1013
|
+
tasks.push({
|
|
1014
|
+
filePath: `file${i}.go`,
|
|
1015
|
+
content: fixtures.go.content,
|
|
1016
|
+
language: 'go',
|
|
1017
|
+
});
|
|
1018
|
+
}
|
|
1019
|
+
const start = performance.now();
|
|
1020
|
+
const results = await pool.parseFiles(tasks);
|
|
1021
|
+
const duration = performance.now() - start;
|
|
1022
|
+
expect(results).toHaveLength(30);
|
|
1023
|
+
expect(duration).toBeLessThan(500);
|
|
1024
|
+
});
|
|
1025
|
+
it('maintains consistent parsing speed across languages', () => {
|
|
1026
|
+
const iterations = 10;
|
|
1027
|
+
const times = {
|
|
1028
|
+
typescript: [],
|
|
1029
|
+
python: [],
|
|
1030
|
+
go: [],
|
|
1031
|
+
};
|
|
1032
|
+
for (let i = 0; i < iterations; i++) {
|
|
1033
|
+
// TypeScript
|
|
1034
|
+
let start = performance.now();
|
|
1035
|
+
router.parseFile(fixtures.typescript.content, fixtures.typescript.path);
|
|
1036
|
+
times.typescript.push(performance.now() - start);
|
|
1037
|
+
// Python
|
|
1038
|
+
start = performance.now();
|
|
1039
|
+
router.parseFile(fixtures.python.content, fixtures.python.path);
|
|
1040
|
+
times.python.push(performance.now() - start);
|
|
1041
|
+
// Go
|
|
1042
|
+
start = performance.now();
|
|
1043
|
+
router.parseFile(fixtures.go.content, fixtures.go.path);
|
|
1044
|
+
times.go.push(performance.now() - start);
|
|
1045
|
+
}
|
|
1046
|
+
// Calculate averages
|
|
1047
|
+
const avgTimes = {
|
|
1048
|
+
typescript: times.typescript.reduce((a, b) => a + b, 0) / iterations,
|
|
1049
|
+
python: times.python.reduce((a, b) => a + b, 0) / iterations,
|
|
1050
|
+
go: times.go.reduce((a, b) => a + b, 0) / iterations,
|
|
1051
|
+
};
|
|
1052
|
+
// All languages should parse in under 50ms average
|
|
1053
|
+
expect(avgTimes.typescript).toBeLessThan(50);
|
|
1054
|
+
expect(avgTimes.python).toBeLessThan(50);
|
|
1055
|
+
expect(avgTimes.go).toBeLessThan(50);
|
|
1056
|
+
});
|
|
1057
|
+
});
|
|
1058
|
+
});
|
|
1059
|
+
//# sourceMappingURL=integration.test.js.map
|