driftdetect-core 0.7.1 → 0.8.1
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/dist/boundaries/types.d.ts +1 -1
- package/dist/boundaries/types.d.ts.map +1 -1
- package/dist/call-graph/analysis/graph-builder.d.ts.map +1 -1
- package/dist/call-graph/analysis/graph-builder.js +2 -0
- package/dist/call-graph/analysis/graph-builder.js.map +1 -1
- package/dist/call-graph/extractors/cpp-data-access-extractor.d.ts +37 -0
- package/dist/call-graph/extractors/cpp-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/cpp-data-access-extractor.js +467 -0
- package/dist/call-graph/extractors/cpp-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/cpp-hybrid-extractor.d.ts +89 -0
- package/dist/call-graph/extractors/cpp-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/cpp-hybrid-extractor.js +541 -0
- package/dist/call-graph/extractors/cpp-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/extractors/index.d.ts +8 -1
- package/dist/call-graph/extractors/index.d.ts.map +1 -1
- package/dist/call-graph/extractors/index.js +9 -1
- package/dist/call-graph/extractors/index.js.map +1 -1
- package/dist/call-graph/extractors/regex/cpp-regex.d.ts +46 -0
- package/dist/call-graph/extractors/regex/cpp-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/cpp-regex.js +325 -0
- package/dist/call-graph/extractors/regex/cpp-regex.js.map +1 -0
- package/dist/call-graph/extractors/regex/index.d.ts +2 -0
- package/dist/call-graph/extractors/regex/index.d.ts.map +1 -1
- package/dist/call-graph/extractors/regex/index.js +16 -0
- package/dist/call-graph/extractors/regex/index.js.map +1 -1
- package/dist/call-graph/extractors/regex/rust-regex.d.ts +45 -0
- package/dist/call-graph/extractors/regex/rust-regex.d.ts.map +1 -0
- package/dist/call-graph/extractors/regex/rust-regex.js +517 -0
- package/dist/call-graph/extractors/regex/rust-regex.js.map +1 -0
- package/dist/call-graph/extractors/rust-data-access-extractor.d.ts +35 -0
- package/dist/call-graph/extractors/rust-data-access-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/rust-data-access-extractor.js +349 -0
- package/dist/call-graph/extractors/rust-data-access-extractor.js.map +1 -0
- package/dist/call-graph/extractors/rust-extractor.d.ts +125 -0
- package/dist/call-graph/extractors/rust-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/rust-extractor.js +604 -0
- package/dist/call-graph/extractors/rust-extractor.js.map +1 -0
- package/dist/call-graph/extractors/rust-hybrid-extractor.d.ts +119 -0
- package/dist/call-graph/extractors/rust-hybrid-extractor.d.ts.map +1 -0
- package/dist/call-graph/extractors/rust-hybrid-extractor.js +548 -0
- package/dist/call-graph/extractors/rust-hybrid-extractor.js.map +1 -0
- package/dist/call-graph/index.d.ts +2 -0
- package/dist/call-graph/index.d.ts.map +1 -1
- package/dist/call-graph/index.js +4 -0
- package/dist/call-graph/index.js.map +1 -1
- package/dist/call-graph/streaming-builder.d.ts +60 -0
- package/dist/call-graph/streaming-builder.d.ts.map +1 -0
- package/dist/call-graph/streaming-builder.js +204 -0
- package/dist/call-graph/streaming-builder.js.map +1 -0
- package/dist/call-graph/types.d.ts +1 -1
- package/dist/call-graph/types.d.ts.map +1 -1
- package/dist/call-graph/unified-provider.d.ts +72 -0
- package/dist/call-graph/unified-provider.d.ts.map +1 -0
- package/dist/call-graph/unified-provider.js +502 -0
- package/dist/call-graph/unified-provider.js.map +1 -0
- package/dist/constants/extractors/regex/rust-regex.d.ts +43 -0
- package/dist/constants/extractors/regex/rust-regex.d.ts.map +1 -0
- package/dist/constants/extractors/regex/rust-regex.js +370 -0
- package/dist/constants/extractors/regex/rust-regex.js.map +1 -0
- package/dist/constants/types.d.ts +1 -1
- package/dist/constants/types.d.ts.map +1 -1
- package/dist/constants/types.js.map +1 -1
- package/dist/constraints/store/constraint-store.d.ts.map +1 -1
- package/dist/constraints/store/constraint-store.js +2 -0
- package/dist/constraints/store/constraint-store.js.map +1 -1
- package/dist/constraints/types.d.ts +1 -1
- package/dist/constraints/types.d.ts.map +1 -1
- package/dist/constraints/types.js +2 -0
- package/dist/constraints/types.js.map +1 -1
- package/dist/context/context-generator.d.ts +38 -0
- package/dist/context/context-generator.d.ts.map +1 -0
- package/dist/context/context-generator.js +392 -0
- package/dist/context/context-generator.js.map +1 -0
- package/dist/context/index.d.ts +13 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +14 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/package-detector.d.ts +53 -0
- package/dist/context/package-detector.d.ts.map +1 -0
- package/dist/context/package-detector.js +672 -0
- package/dist/context/package-detector.js.map +1 -0
- package/dist/context/types.d.ts +258 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +10 -0
- package/dist/context/types.js.map +1 -0
- package/dist/cpp/cpp-analyzer.d.ts +179 -0
- package/dist/cpp/cpp-analyzer.d.ts.map +1 -0
- package/dist/cpp/cpp-analyzer.js +532 -0
- package/dist/cpp/cpp-analyzer.js.map +1 -0
- package/dist/cpp/index.d.ts +9 -0
- package/dist/cpp/index.d.ts.map +1 -0
- package/dist/cpp/index.js +9 -0
- package/dist/cpp/index.js.map +1 -0
- package/dist/decisions/analyzer/decision-mining-analyzer.d.ts.map +1 -1
- package/dist/decisions/analyzer/decision-mining-analyzer.js +4 -0
- package/dist/decisions/analyzer/decision-mining-analyzer.js.map +1 -1
- package/dist/decisions/types.d.ts +1 -1
- package/dist/decisions/types.d.ts.map +1 -1
- package/dist/environment/extractors/cpp-env-extractor.d.ts +58 -0
- package/dist/environment/extractors/cpp-env-extractor.d.ts.map +1 -0
- package/dist/environment/extractors/cpp-env-extractor.js +298 -0
- package/dist/environment/extractors/cpp-env-extractor.js.map +1 -0
- package/dist/environment/extractors/index.d.ts +2 -0
- package/dist/environment/extractors/index.d.ts.map +1 -1
- package/dist/environment/extractors/index.js +2 -0
- package/dist/environment/extractors/index.js.map +1 -1
- package/dist/environment/extractors/rust-env-extractor.d.ts +58 -0
- package/dist/environment/extractors/rust-env-extractor.d.ts.map +1 -0
- package/dist/environment/extractors/rust-env-extractor.js +297 -0
- package/dist/environment/extractors/rust-env-extractor.js.map +1 -0
- package/dist/environment/index.d.ts +1 -1
- package/dist/environment/index.d.ts.map +1 -1
- package/dist/environment/index.js +1 -1
- package/dist/environment/index.js.map +1 -1
- package/dist/environment/types.d.ts +2 -2
- package/dist/environment/types.d.ts.map +1 -1
- package/dist/environment/types.js.map +1 -1
- package/dist/index.d.ts +15 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -2
- package/dist/index.js.map +1 -1
- package/dist/licensing/feature-guard.d.ts +103 -0
- package/dist/licensing/feature-guard.d.ts.map +1 -0
- package/dist/licensing/feature-guard.js +195 -0
- package/dist/licensing/feature-guard.js.map +1 -0
- package/dist/licensing/index.d.ts +46 -0
- package/dist/licensing/index.d.ts.map +1 -0
- package/dist/licensing/index.js +47 -0
- package/dist/licensing/index.js.map +1 -0
- package/dist/licensing/license-manager.d.ts +88 -0
- package/dist/licensing/license-manager.d.ts.map +1 -0
- package/dist/licensing/license-manager.js +251 -0
- package/dist/licensing/license-manager.js.map +1 -0
- package/dist/licensing/license-validator.d.ts +60 -0
- package/dist/licensing/license-validator.d.ts.map +1 -0
- package/dist/licensing/license-validator.js +300 -0
- package/dist/licensing/license-validator.js.map +1 -0
- package/dist/licensing/types.d.ts +76 -0
- package/dist/licensing/types.d.ts.map +1 -0
- package/dist/licensing/types.js +51 -0
- package/dist/licensing/types.js.map +1 -0
- package/dist/parsers/tree-sitter/cpp-loader.d.ts +51 -0
- package/dist/parsers/tree-sitter/cpp-loader.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/cpp-loader.js +162 -0
- package/dist/parsers/tree-sitter/cpp-loader.js.map +1 -0
- package/dist/parsers/tree-sitter/index.d.ts +6 -0
- package/dist/parsers/tree-sitter/index.d.ts.map +1 -1
- package/dist/parsers/tree-sitter/index.js +16 -0
- package/dist/parsers/tree-sitter/index.js.map +1 -1
- package/dist/parsers/tree-sitter/rust-loader.d.ts +50 -0
- package/dist/parsers/tree-sitter/rust-loader.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/rust-loader.js +161 -0
- package/dist/parsers/tree-sitter/rust-loader.js.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.d.ts +198 -0
- package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.js +671 -0
- package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.js.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-rust-parser.d.ts +180 -0
- package/dist/parsers/tree-sitter/tree-sitter-rust-parser.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-rust-parser.js +478 -0
- package/dist/parsers/tree-sitter/tree-sitter-rust-parser.js.map +1 -0
- package/dist/parsers/types.d.ts +1 -1
- package/dist/parsers/types.d.ts.map +1 -1
- package/dist/patterns/adapters/pattern-store-adapter.d.ts.map +1 -1
- package/dist/patterns/adapters/pattern-store-adapter.js +35 -10
- package/dist/patterns/adapters/pattern-store-adapter.js.map +1 -1
- package/dist/quality-gates/gates/base-gate.d.ts +71 -0
- package/dist/quality-gates/gates/base-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/base-gate.js +178 -0
- package/dist/quality-gates/gates/base-gate.js.map +1 -0
- package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.d.ts +62 -0
- package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.js +255 -0
- package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.js.map +1 -0
- package/dist/quality-gates/gates/constraint-verification/index.d.ts +7 -0
- package/dist/quality-gates/gates/constraint-verification/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/constraint-verification/index.js +7 -0
- package/dist/quality-gates/gates/constraint-verification/index.js.map +1 -0
- package/dist/quality-gates/gates/custom-rules/custom-rules-gate.d.ts +73 -0
- package/dist/quality-gates/gates/custom-rules/custom-rules-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/custom-rules/custom-rules-gate.js +351 -0
- package/dist/quality-gates/gates/custom-rules/custom-rules-gate.js.map +1 -0
- package/dist/quality-gates/gates/custom-rules/index.d.ts +7 -0
- package/dist/quality-gates/gates/custom-rules/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/custom-rules/index.js +7 -0
- package/dist/quality-gates/gates/custom-rules/index.js.map +1 -0
- package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.d.ts +61 -0
- package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.js +318 -0
- package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.js.map +1 -0
- package/dist/quality-gates/gates/impact-simulation/index.d.ts +7 -0
- package/dist/quality-gates/gates/impact-simulation/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/impact-simulation/index.js +7 -0
- package/dist/quality-gates/gates/impact-simulation/index.js.map +1 -0
- package/dist/quality-gates/gates/index.d.ts +13 -0
- package/dist/quality-gates/gates/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/index.js +13 -0
- package/dist/quality-gates/gates/index.js.map +1 -0
- package/dist/quality-gates/gates/pattern-compliance/index.d.ts +7 -0
- package/dist/quality-gates/gates/pattern-compliance/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/pattern-compliance/index.js +7 -0
- package/dist/quality-gates/gates/pattern-compliance/index.js.map +1 -0
- package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.d.ts +61 -0
- package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.js +261 -0
- package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.js.map +1 -0
- package/dist/quality-gates/gates/regression-detection/index.d.ts +7 -0
- package/dist/quality-gates/gates/regression-detection/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/regression-detection/index.js +7 -0
- package/dist/quality-gates/gates/regression-detection/index.js.map +1 -0
- package/dist/quality-gates/gates/regression-detection/regression-detection-gate.d.ts +69 -0
- package/dist/quality-gates/gates/regression-detection/regression-detection-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/regression-detection/regression-detection-gate.js +330 -0
- package/dist/quality-gates/gates/regression-detection/regression-detection-gate.js.map +1 -0
- package/dist/quality-gates/gates/security-boundary/index.d.ts +7 -0
- package/dist/quality-gates/gates/security-boundary/index.d.ts.map +1 -0
- package/dist/quality-gates/gates/security-boundary/index.js +7 -0
- package/dist/quality-gates/gates/security-boundary/index.js.map +1 -0
- package/dist/quality-gates/gates/security-boundary/security-boundary-gate.d.ts +65 -0
- package/dist/quality-gates/gates/security-boundary/security-boundary-gate.d.ts.map +1 -0
- package/dist/quality-gates/gates/security-boundary/security-boundary-gate.js +307 -0
- package/dist/quality-gates/gates/security-boundary/security-boundary-gate.js.map +1 -0
- package/dist/quality-gates/index.d.ts +35 -0
- package/dist/quality-gates/index.d.ts.map +1 -0
- package/dist/quality-gates/index.js +43 -0
- package/dist/quality-gates/index.js.map +1 -0
- package/dist/quality-gates/orchestrator/gate-orchestrator.d.ts +79 -0
- package/dist/quality-gates/orchestrator/gate-orchestrator.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/gate-orchestrator.js +314 -0
- package/dist/quality-gates/orchestrator/gate-orchestrator.js.map +1 -0
- package/dist/quality-gates/orchestrator/gate-registry.d.ts +53 -0
- package/dist/quality-gates/orchestrator/gate-registry.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/gate-registry.js +141 -0
- package/dist/quality-gates/orchestrator/gate-registry.js.map +1 -0
- package/dist/quality-gates/orchestrator/index.d.ts +10 -0
- package/dist/quality-gates/orchestrator/index.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/index.js +10 -0
- package/dist/quality-gates/orchestrator/index.js.map +1 -0
- package/dist/quality-gates/orchestrator/parallel-executor.d.ts +35 -0
- package/dist/quality-gates/orchestrator/parallel-executor.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/parallel-executor.js +70 -0
- package/dist/quality-gates/orchestrator/parallel-executor.js.map +1 -0
- package/dist/quality-gates/orchestrator/result-aggregator.d.ts +27 -0
- package/dist/quality-gates/orchestrator/result-aggregator.d.ts.map +1 -0
- package/dist/quality-gates/orchestrator/result-aggregator.js +70 -0
- package/dist/quality-gates/orchestrator/result-aggregator.js.map +1 -0
- package/dist/quality-gates/policy/default-policies.d.ts +14 -0
- package/dist/quality-gates/policy/default-policies.d.ts.map +1 -0
- package/dist/quality-gates/policy/default-policies.js +266 -0
- package/dist/quality-gates/policy/default-policies.js.map +1 -0
- package/dist/quality-gates/policy/index.d.ts +9 -0
- package/dist/quality-gates/policy/index.d.ts.map +1 -0
- package/dist/quality-gates/policy/index.js +9 -0
- package/dist/quality-gates/policy/index.js.map +1 -0
- package/dist/quality-gates/policy/policy-evaluator.d.ts +43 -0
- package/dist/quality-gates/policy/policy-evaluator.d.ts.map +1 -0
- package/dist/quality-gates/policy/policy-evaluator.js +136 -0
- package/dist/quality-gates/policy/policy-evaluator.js.map +1 -0
- package/dist/quality-gates/policy/policy-loader.d.ts +72 -0
- package/dist/quality-gates/policy/policy-loader.d.ts.map +1 -0
- package/dist/quality-gates/policy/policy-loader.js +228 -0
- package/dist/quality-gates/policy/policy-loader.js.map +1 -0
- package/dist/quality-gates/reporters/github-reporter.d.ts +19 -0
- package/dist/quality-gates/reporters/github-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/github-reporter.js +49 -0
- package/dist/quality-gates/reporters/github-reporter.js.map +1 -0
- package/dist/quality-gates/reporters/gitlab-reporter.d.ts +20 -0
- package/dist/quality-gates/reporters/gitlab-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/gitlab-reporter.js +42 -0
- package/dist/quality-gates/reporters/gitlab-reporter.js.map +1 -0
- package/dist/quality-gates/reporters/index.d.ts +12 -0
- package/dist/quality-gates/reporters/index.d.ts.map +1 -0
- package/dist/quality-gates/reporters/index.js +12 -0
- package/dist/quality-gates/reporters/index.js.map +1 -0
- package/dist/quality-gates/reporters/json-reporter.d.ts +18 -0
- package/dist/quality-gates/reporters/json-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/json-reporter.js +51 -0
- package/dist/quality-gates/reporters/json-reporter.js.map +1 -0
- package/dist/quality-gates/reporters/reporter-interface.d.ts +35 -0
- package/dist/quality-gates/reporters/reporter-interface.d.ts.map +1 -0
- package/dist/quality-gates/reporters/reporter-interface.js +22 -0
- package/dist/quality-gates/reporters/reporter-interface.js.map +1 -0
- package/dist/quality-gates/reporters/sarif-reporter.d.ts +22 -0
- package/dist/quality-gates/reporters/sarif-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/sarif-reporter.js +85 -0
- package/dist/quality-gates/reporters/sarif-reporter.js.map +1 -0
- package/dist/quality-gates/reporters/text-reporter.d.ts +18 -0
- package/dist/quality-gates/reporters/text-reporter.d.ts.map +1 -0
- package/dist/quality-gates/reporters/text-reporter.js +92 -0
- package/dist/quality-gates/reporters/text-reporter.js.map +1 -0
- package/dist/quality-gates/store/gate-run-store.d.ts +37 -0
- package/dist/quality-gates/store/gate-run-store.d.ts.map +1 -0
- package/dist/quality-gates/store/gate-run-store.js +104 -0
- package/dist/quality-gates/store/gate-run-store.js.map +1 -0
- package/dist/quality-gates/store/index.d.ts +8 -0
- package/dist/quality-gates/store/index.d.ts.map +1 -0
- package/dist/quality-gates/store/index.js +8 -0
- package/dist/quality-gates/store/index.js.map +1 -0
- package/dist/quality-gates/store/snapshot-store.d.ts +41 -0
- package/dist/quality-gates/store/snapshot-store.d.ts.map +1 -0
- package/dist/quality-gates/store/snapshot-store.js +117 -0
- package/dist/quality-gates/store/snapshot-store.js.map +1 -0
- package/dist/quality-gates/types.d.ts +992 -0
- package/dist/quality-gates/types.d.ts.map +1 -0
- package/dist/quality-gates/types.js +14 -0
- package/dist/quality-gates/types.js.map +1 -0
- package/dist/rust/index.d.ts +7 -0
- package/dist/rust/index.d.ts.map +1 -0
- package/dist/rust/index.js +8 -0
- package/dist/rust/index.js.map +1 -0
- package/dist/rust/rust-analyzer.d.ts +185 -0
- package/dist/rust/rust-analyzer.d.ts.map +1 -0
- package/dist/rust/rust-analyzer.js +538 -0
- package/dist/rust/rust-analyzer.js.map +1 -0
- package/dist/scanner/file-walker.d.ts.map +1 -1
- package/dist/scanner/file-walker.js +11 -0
- package/dist/scanner/file-walker.js.map +1 -1
- package/dist/simulation/simulation-engine.d.ts +6 -0
- package/dist/simulation/simulation-engine.d.ts.map +1 -1
- package/dist/simulation/simulation-engine.js +6 -0
- package/dist/simulation/simulation-engine.js.map +1 -1
- package/dist/speculative/types.d.ts +1 -1
- package/dist/speculative/types.d.ts.map +1 -1
- package/dist/speculative/types.js +2 -0
- package/dist/speculative/types.js.map +1 -1
- package/dist/store/project-config.d.ts +19 -0
- package/dist/store/project-config.d.ts.map +1 -1
- package/dist/store/project-config.js.map +1 -1
- package/dist/telemetry/index.d.ts +10 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +11 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/telemetry-client.d.ts +127 -0
- package/dist/telemetry/telemetry-client.d.ts.map +1 -0
- package/dist/telemetry/telemetry-client.js +373 -0
- package/dist/telemetry/telemetry-client.js.map +1 -0
- package/dist/telemetry/types.d.ts +160 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +27 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/test-topology/extractors/cpp-test-extractor.d.ts +38 -0
- package/dist/test-topology/extractors/cpp-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/cpp-test-extractor.js +507 -0
- package/dist/test-topology/extractors/cpp-test-extractor.js.map +1 -0
- package/dist/test-topology/extractors/index.d.ts +2 -0
- package/dist/test-topology/extractors/index.d.ts.map +1 -1
- package/dist/test-topology/extractors/index.js +2 -0
- package/dist/test-topology/extractors/index.js.map +1 -1
- package/dist/test-topology/extractors/regex/index.d.ts +1 -0
- package/dist/test-topology/extractors/regex/index.d.ts.map +1 -1
- package/dist/test-topology/extractors/regex/index.js +4 -0
- package/dist/test-topology/extractors/regex/index.js.map +1 -1
- package/dist/test-topology/extractors/regex/rust-test-regex.d.ts +66 -0
- package/dist/test-topology/extractors/regex/rust-test-regex.d.ts.map +1 -0
- package/dist/test-topology/extractors/regex/rust-test-regex.js +565 -0
- package/dist/test-topology/extractors/regex/rust-test-regex.js.map +1 -0
- package/dist/test-topology/extractors/rust-test-extractor.d.ts +49 -0
- package/dist/test-topology/extractors/rust-test-extractor.d.ts.map +1 -0
- package/dist/test-topology/extractors/rust-test-extractor.js +422 -0
- package/dist/test-topology/extractors/rust-test-extractor.js.map +1 -0
- package/dist/test-topology/hybrid-test-topology-analyzer.d.ts.map +1 -1
- package/dist/test-topology/hybrid-test-topology-analyzer.js +2 -0
- package/dist/test-topology/hybrid-test-topology-analyzer.js.map +1 -1
- package/dist/test-topology/test-topology-analyzer.d.ts.map +1 -1
- package/dist/test-topology/test-topology-analyzer.js +2 -0
- package/dist/test-topology/test-topology-analyzer.js.map +1 -1
- package/dist/test-topology/types.d.ts +2 -2
- package/dist/test-topology/types.d.ts.map +1 -1
- package/dist/unified-provider/integration/unified-scanner.d.ts.map +1 -1
- package/dist/unified-provider/integration/unified-scanner.js +3 -0
- package/dist/unified-provider/integration/unified-scanner.js.map +1 -1
- package/dist/unified-provider/matching/diesel-matcher.d.ts +33 -0
- package/dist/unified-provider/matching/diesel-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/diesel-matcher.js +210 -0
- package/dist/unified-provider/matching/diesel-matcher.js.map +1 -0
- package/dist/unified-provider/matching/index.d.ts +3 -1
- package/dist/unified-provider/matching/index.d.ts.map +1 -1
- package/dist/unified-provider/matching/index.js +4 -1
- package/dist/unified-provider/matching/index.js.map +1 -1
- package/dist/unified-provider/matching/matcher-registry.d.ts.map +1 -1
- package/dist/unified-provider/matching/matcher-registry.js +7 -2
- package/dist/unified-provider/matching/matcher-registry.js.map +1 -1
- package/dist/unified-provider/matching/seaorm-matcher.d.ts +35 -0
- package/dist/unified-provider/matching/seaorm-matcher.d.ts.map +1 -0
- package/dist/unified-provider/matching/seaorm-matcher.js +200 -0
- package/dist/unified-provider/matching/seaorm-matcher.js.map +1 -0
- package/dist/unified-provider/matching/sqlx-matcher.d.ts +19 -24
- package/dist/unified-provider/matching/sqlx-matcher.d.ts.map +1 -1
- package/dist/unified-provider/matching/sqlx-matcher.js +171 -149
- package/dist/unified-provider/matching/sqlx-matcher.js.map +1 -1
- package/dist/unified-provider/normalization/cpp-normalizer.d.ts +62 -0
- package/dist/unified-provider/normalization/cpp-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/cpp-normalizer.js +581 -0
- package/dist/unified-provider/normalization/cpp-normalizer.js.map +1 -0
- package/dist/unified-provider/normalization/index.d.ts +2 -0
- package/dist/unified-provider/normalization/index.d.ts.map +1 -1
- package/dist/unified-provider/normalization/index.js +11 -1
- package/dist/unified-provider/normalization/index.js.map +1 -1
- package/dist/unified-provider/normalization/rust-normalizer.d.ts +71 -0
- package/dist/unified-provider/normalization/rust-normalizer.d.ts.map +1 -0
- package/dist/unified-provider/normalization/rust-normalizer.js +670 -0
- package/dist/unified-provider/normalization/rust-normalizer.js.map +1 -0
- package/dist/unified-provider/parsing/parser-registry.d.ts.map +1 -1
- package/dist/unified-provider/parsing/parser-registry.js +62 -1
- package/dist/unified-provider/parsing/parser-registry.js.map +1 -1
- package/dist/unified-provider/provider/unified-language-provider.js +1 -1
- package/dist/unified-provider/provider/unified-language-provider.js.map +1 -1
- package/dist/unified-provider/types.d.ts +1 -1
- package/dist/unified-provider/types.d.ts.map +1 -1
- package/dist/wrappers/index.d.ts.map +1 -1
- package/dist/wrappers/index.js +2 -0
- package/dist/wrappers/index.js.map +1 -1
- package/dist/wrappers/integration/adapter.d.ts.map +1 -1
- package/dist/wrappers/integration/adapter.js +2 -0
- package/dist/wrappers/integration/adapter.js.map +1 -1
- package/dist/wrappers/integration/scanner.d.ts.map +1 -1
- package/dist/wrappers/integration/scanner.js +2 -0
- package/dist/wrappers/integration/scanner.js.map +1 -1
- package/dist/wrappers/primitives/registry.d.ts +18 -0
- package/dist/wrappers/primitives/registry.d.ts.map +1 -1
- package/dist/wrappers/primitives/registry.js +190 -0
- package/dist/wrappers/primitives/registry.js.map +1 -1
- package/dist/wrappers/types.d.ts +1 -1
- package/dist/wrappers/types.d.ts.map +1 -1
- package/package.json +5 -2
- package/LICENSE +0 -21
- package/dist/lake/lake.bak/index-store.d.ts +0 -82
- package/dist/lake/lake.bak/index-store.d.ts.map +0 -1
- package/dist/lake/lake.bak/index-store.js +0 -357
- package/dist/lake/lake.bak/index-store.js.map +0 -1
- package/dist/lake/lake.bak/index.d.ts +0 -81
- package/dist/lake/lake.bak/index.d.ts.map +0 -1
- package/dist/lake/lake.bak/index.js +0 -114
- package/dist/lake/lake.bak/index.js.map +0 -1
- package/dist/lake/lake.bak/manifest-store.d.ts +0 -51
- package/dist/lake/lake.bak/manifest-store.d.ts.map +0 -1
- package/dist/lake/lake.bak/manifest-store.js +0 -347
- package/dist/lake/lake.bak/manifest-store.js.map +0 -1
- package/dist/lake/lake.bak/query-engine.d.ts +0 -112
- package/dist/lake/lake.bak/query-engine.d.ts.map +0 -1
- package/dist/lake/lake.bak/query-engine.js +0 -370
- package/dist/lake/lake.bak/query-engine.js.map +0 -1
- package/dist/lake/lake.bak/types.d.ts +0 -428
- package/dist/lake/lake.bak/types.d.ts.map +0 -1
- package/dist/lake/lake.bak/types.js +0 -46
- package/dist/lake/lake.bak/types.js.map +0 -1
- package/dist/lake/lake.bak/view-materializer.d.ts +0 -70
- package/dist/lake/lake.bak/view-materializer.d.ts.map +0 -1
- package/dist/lake/lake.bak/view-materializer.js +0 -314
- package/dist/lake/lake.bak/view-materializer.js.map +0 -1
- package/dist/lake/lake.bak/view-store.d.ts +0 -57
- package/dist/lake/lake.bak/view-store.d.ts.map +0 -1
- package/dist/lake/lake.bak/view-store.js +0 -348
- package/dist/lake/lake.bak/view-store.js.map +0 -1
- package/dist/unified-provider/migration/deprecated-extractors.d.ts +0 -104
- package/dist/unified-provider/migration/deprecated-extractors.d.ts.map +0 -1
- package/dist/unified-provider/migration/deprecated-extractors.js +0 -129
- package/dist/unified-provider/migration/deprecated-extractors.js.map +0 -1
- package/dist/unified-provider/migration/deprecated-scanner.d.ts +0 -40
- package/dist/unified-provider/migration/deprecated-scanner.d.ts.map +0 -1
- package/dist/unified-provider/migration/deprecated-scanner.js +0 -49
- package/dist/unified-provider/migration/deprecated-scanner.js.map +0 -1
- package/dist/unified-provider/migration/index.d.ts +0 -41
- package/dist/unified-provider/migration/index.d.ts.map +0 -1
- package/dist/unified-provider/migration/index.js +0 -43
- package/dist/unified-provider/migration/index.js.map +0 -1
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gate Orchestrator
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Main orchestrator for quality gates.
|
|
7
|
+
* Coordinates gate execution and aggregates results.
|
|
8
|
+
*/
|
|
9
|
+
import { GateRegistry, getGateRegistry } from './gate-registry.js';
|
|
10
|
+
import { ParallelExecutor } from './parallel-executor.js';
|
|
11
|
+
import { ResultAggregator } from './result-aggregator.js';
|
|
12
|
+
import { PolicyLoader } from '../policy/policy-loader.js';
|
|
13
|
+
import { PolicyEvaluator } from '../policy/policy-evaluator.js';
|
|
14
|
+
/**
|
|
15
|
+
* Main orchestrator for quality gates.
|
|
16
|
+
* Coordinates gate execution and aggregates results.
|
|
17
|
+
*/
|
|
18
|
+
export class GateOrchestrator {
|
|
19
|
+
registry;
|
|
20
|
+
executor;
|
|
21
|
+
aggregator;
|
|
22
|
+
policyLoader;
|
|
23
|
+
policyEvaluator;
|
|
24
|
+
// projectRoot is stored for future use when integrating with data stores
|
|
25
|
+
projectRoot;
|
|
26
|
+
constructor(projectRoot) {
|
|
27
|
+
this.projectRoot = projectRoot;
|
|
28
|
+
this.registry = getGateRegistry();
|
|
29
|
+
this.executor = new ParallelExecutor();
|
|
30
|
+
this.aggregator = new ResultAggregator();
|
|
31
|
+
this.policyLoader = new PolicyLoader(projectRoot);
|
|
32
|
+
this.policyEvaluator = new PolicyEvaluator();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Run quality gates with the given options.
|
|
36
|
+
*/
|
|
37
|
+
async run(options) {
|
|
38
|
+
const startTime = Date.now();
|
|
39
|
+
// Ensure registry is initialized before proceeding
|
|
40
|
+
await this.registry.list();
|
|
41
|
+
// Load policy first (needed for empty result too)
|
|
42
|
+
const policy = await this.loadPolicy(options);
|
|
43
|
+
// Resolve files to check
|
|
44
|
+
const files = await this.resolveFiles(options);
|
|
45
|
+
// Determine which gates to run
|
|
46
|
+
const gatesToRun = this.determineGates(options, policy);
|
|
47
|
+
if (files.length === 0) {
|
|
48
|
+
return this.createEmptyResult(options, startTime, policy, gatesToRun);
|
|
49
|
+
}
|
|
50
|
+
if (gatesToRun.length === 0) {
|
|
51
|
+
return this.createEmptyResult(options, startTime, policy, [], 'No gates enabled in policy');
|
|
52
|
+
}
|
|
53
|
+
// Build shared context
|
|
54
|
+
const context = await this.buildContext(options, policy);
|
|
55
|
+
// Execute gates
|
|
56
|
+
const gateResults = await this.executeGates(gatesToRun, files, options, policy, context);
|
|
57
|
+
// Evaluate policy
|
|
58
|
+
const evaluation = this.policyEvaluator.evaluate(gateResults, policy);
|
|
59
|
+
// Aggregate results
|
|
60
|
+
const result = this.aggregator.aggregate(gateResults, evaluation, policy, {
|
|
61
|
+
files,
|
|
62
|
+
startTime,
|
|
63
|
+
options,
|
|
64
|
+
});
|
|
65
|
+
// Save to history if configured
|
|
66
|
+
if (options.saveHistory !== false) {
|
|
67
|
+
await this.saveToHistory(result, options);
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Resolve files to check.
|
|
73
|
+
*/
|
|
74
|
+
async resolveFiles(options) {
|
|
75
|
+
if (options.files && options.files.length > 0) {
|
|
76
|
+
return options.files;
|
|
77
|
+
}
|
|
78
|
+
// Default to all files if none specified
|
|
79
|
+
// In a real implementation, this would use git to get staged/changed files
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Load the appropriate policy.
|
|
84
|
+
*/
|
|
85
|
+
async loadPolicy(options) {
|
|
86
|
+
if (typeof options.policy === 'object') {
|
|
87
|
+
return options.policy;
|
|
88
|
+
}
|
|
89
|
+
if (typeof options.policy === 'string') {
|
|
90
|
+
return this.policyLoader.load(options.policy);
|
|
91
|
+
}
|
|
92
|
+
// Auto-detect based on context
|
|
93
|
+
return this.policyLoader.loadForContext({
|
|
94
|
+
branch: options.branch ?? 'main',
|
|
95
|
+
paths: options.files ?? [],
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Determine which gates to run.
|
|
100
|
+
*/
|
|
101
|
+
determineGates(options, policy) {
|
|
102
|
+
// If specific gates requested, use those
|
|
103
|
+
if (options.gates && options.gates.length > 0) {
|
|
104
|
+
return options.gates;
|
|
105
|
+
}
|
|
106
|
+
// Otherwise, use gates from policy
|
|
107
|
+
const gates = [];
|
|
108
|
+
for (const [gateId, config] of Object.entries(policy.gates)) {
|
|
109
|
+
if (config !== 'skip' && config.enabled) {
|
|
110
|
+
gates.push(gateId);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return gates;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Build shared context for gates.
|
|
117
|
+
*/
|
|
118
|
+
async buildContext(options, policy) {
|
|
119
|
+
const context = {};
|
|
120
|
+
// Load patterns if any gate needs them
|
|
121
|
+
const needsPatterns = this.gatesNeed(policy, ['pattern-compliance', 'regression-detection']);
|
|
122
|
+
if (needsPatterns) {
|
|
123
|
+
context.patterns = await this.loadPatterns();
|
|
124
|
+
}
|
|
125
|
+
// Load constraints if needed
|
|
126
|
+
const needsConstraints = this.gatesNeed(policy, ['constraint-verification']);
|
|
127
|
+
if (needsConstraints) {
|
|
128
|
+
context.constraints = await this.loadConstraints();
|
|
129
|
+
}
|
|
130
|
+
// Load call graph if needed
|
|
131
|
+
const needsCallGraph = this.gatesNeed(policy, ['impact-simulation', 'security-boundary']);
|
|
132
|
+
if (needsCallGraph) {
|
|
133
|
+
const callGraph = await this.loadCallGraph();
|
|
134
|
+
if (callGraph) {
|
|
135
|
+
context.callGraph = callGraph;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Load previous snapshot if needed
|
|
139
|
+
const needsSnapshot = this.gatesNeed(policy, ['regression-detection']);
|
|
140
|
+
if (needsSnapshot) {
|
|
141
|
+
const snapshot = await this.loadPreviousSnapshot(options);
|
|
142
|
+
if (snapshot) {
|
|
143
|
+
context.previousSnapshot = snapshot;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Load custom rules if needed
|
|
147
|
+
const needsRules = this.gatesNeed(policy, ['custom-rules']);
|
|
148
|
+
if (needsRules) {
|
|
149
|
+
context.customRules = await this.loadCustomRules(policy);
|
|
150
|
+
}
|
|
151
|
+
return context;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Check if any of the specified gates are enabled.
|
|
155
|
+
*/
|
|
156
|
+
gatesNeed(policy, gateIds) {
|
|
157
|
+
for (const gateId of gateIds) {
|
|
158
|
+
const config = policy.gates[gateId];
|
|
159
|
+
if (config !== 'skip' && config.enabled) {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Execute gates in parallel where possible.
|
|
167
|
+
*/
|
|
168
|
+
async executeGates(gatesToRun, files, options, policy, context) {
|
|
169
|
+
const results = {};
|
|
170
|
+
// Build inputs for each gate
|
|
171
|
+
const inputs = [];
|
|
172
|
+
for (const gateId of gatesToRun) {
|
|
173
|
+
const config = policy.gates[gateId];
|
|
174
|
+
if (config === 'skip')
|
|
175
|
+
continue;
|
|
176
|
+
inputs.push({
|
|
177
|
+
gateId,
|
|
178
|
+
input: {
|
|
179
|
+
files,
|
|
180
|
+
projectRoot: options.projectRoot,
|
|
181
|
+
branch: options.branch ?? 'main',
|
|
182
|
+
baseBranch: options.baseBranch,
|
|
183
|
+
commitSha: options.commitSha,
|
|
184
|
+
isCI: options.ci ?? false,
|
|
185
|
+
config,
|
|
186
|
+
context,
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
// Execute in parallel
|
|
191
|
+
const gateResults = await this.executor.execute(inputs, this.registry);
|
|
192
|
+
// Map results
|
|
193
|
+
for (const { gateId, result } of gateResults) {
|
|
194
|
+
results[gateId] = result;
|
|
195
|
+
}
|
|
196
|
+
return results;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Create result for empty file list or no gates.
|
|
200
|
+
*/
|
|
201
|
+
createEmptyResult(options, startTime, policy, gatesToRun = [], reason = 'No files to check') {
|
|
202
|
+
const result = {
|
|
203
|
+
passed: true,
|
|
204
|
+
status: 'passed',
|
|
205
|
+
score: 100,
|
|
206
|
+
summary: reason,
|
|
207
|
+
gates: {},
|
|
208
|
+
violations: [],
|
|
209
|
+
warnings: [reason],
|
|
210
|
+
policy: { id: policy.id, name: policy.name },
|
|
211
|
+
metadata: {
|
|
212
|
+
executionTimeMs: Date.now() - startTime,
|
|
213
|
+
filesChecked: 0,
|
|
214
|
+
gatesRun: gatesToRun,
|
|
215
|
+
gatesSkipped: [],
|
|
216
|
+
timestamp: new Date().toISOString(),
|
|
217
|
+
branch: options.branch ?? 'main',
|
|
218
|
+
ci: options.ci ?? false,
|
|
219
|
+
},
|
|
220
|
+
exitCode: 0,
|
|
221
|
+
};
|
|
222
|
+
if (options.commitSha) {
|
|
223
|
+
result.metadata.commitSha = options.commitSha;
|
|
224
|
+
}
|
|
225
|
+
return result;
|
|
226
|
+
}
|
|
227
|
+
// =========================================================================
|
|
228
|
+
// Data Loading Methods
|
|
229
|
+
// These integrate with existing Drift services when available
|
|
230
|
+
// =========================================================================
|
|
231
|
+
/**
|
|
232
|
+
* Load patterns from the pattern store.
|
|
233
|
+
*/
|
|
234
|
+
async loadPatterns() {
|
|
235
|
+
try {
|
|
236
|
+
// Dynamically import to avoid circular dependencies
|
|
237
|
+
const { PatternStore } = await import('../../store/pattern-store.js');
|
|
238
|
+
const { createPatternServiceFromStore } = await import('../../patterns/adapters/service-factory.js');
|
|
239
|
+
const store = new PatternStore({ rootDir: this.projectRoot });
|
|
240
|
+
const service = createPatternServiceFromStore(store, this.projectRoot);
|
|
241
|
+
// Get approved patterns (summaries first)
|
|
242
|
+
const result = await service.listByStatus('approved', { limit: 1000 });
|
|
243
|
+
// Fetch full pattern data for each pattern (needed for locations/outliers)
|
|
244
|
+
const patterns = [];
|
|
245
|
+
for (const summary of result.items) {
|
|
246
|
+
const full = await service.getPattern(summary.id);
|
|
247
|
+
if (full) {
|
|
248
|
+
patterns.push({
|
|
249
|
+
id: full.id,
|
|
250
|
+
name: full.name,
|
|
251
|
+
category: full.category,
|
|
252
|
+
status: full.status,
|
|
253
|
+
confidence: full.confidence,
|
|
254
|
+
locations: full.locations ?? [],
|
|
255
|
+
outliers: full.outliers ?? [],
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return patterns;
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
// Pattern service not available, return empty array
|
|
263
|
+
return [];
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Load constraints from the constraint store.
|
|
268
|
+
*/
|
|
269
|
+
async loadConstraints() {
|
|
270
|
+
// Constraints will be loaded by the orchestrator when constraint store is available
|
|
271
|
+
// For now, return empty array - constraints can be passed via context
|
|
272
|
+
return [];
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Load call graph from the call graph analyzer.
|
|
276
|
+
*/
|
|
277
|
+
async loadCallGraph() {
|
|
278
|
+
// Call graph will be loaded by the orchestrator when call graph store is available
|
|
279
|
+
// For now, return undefined - call graph can be passed via context
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Load previous snapshot for regression detection.
|
|
284
|
+
*/
|
|
285
|
+
async loadPreviousSnapshot(_options) {
|
|
286
|
+
// Snapshots will be loaded by the orchestrator when snapshot store is available
|
|
287
|
+
// For now, return undefined - snapshot can be passed via context
|
|
288
|
+
return undefined;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Load custom rules from policy configuration.
|
|
292
|
+
*/
|
|
293
|
+
async loadCustomRules(policy) {
|
|
294
|
+
const rulesConfig = policy.gates['custom-rules'];
|
|
295
|
+
if (rulesConfig === 'skip' || !rulesConfig.enabled) {
|
|
296
|
+
return [];
|
|
297
|
+
}
|
|
298
|
+
const rules = [];
|
|
299
|
+
// Add inline rules
|
|
300
|
+
if (rulesConfig.inlineRules) {
|
|
301
|
+
rules.push(...rulesConfig.inlineRules);
|
|
302
|
+
}
|
|
303
|
+
// Load rules from files would be implemented in the custom rules gate
|
|
304
|
+
return rules;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Save result to history.
|
|
308
|
+
*/
|
|
309
|
+
async saveToHistory(_result, _options) {
|
|
310
|
+
// History saving will be implemented when gate run store is integrated
|
|
311
|
+
// For now, this is a no-op
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=gate-orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-orchestrator.js","sourceRoot":"","sources":["../../../src/quality-gates/orchestrator/gate-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAe;IACvB,QAAQ,CAAmB;IAC3B,UAAU,CAAmB;IAC7B,YAAY,CAAe;IAC3B,eAAe,CAAkB;IACzC,yEAAyE;IAChE,WAAW,CAAS;IAE7B,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,eAAe,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAA2B;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,mDAAmD;QACnD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE3B,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE9C,yBAAyB;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE/C,+BAA+B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,4BAA4B,CAAC,CAAC;QAC9F,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEzD,gBAAgB;QAChB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CACzC,UAAU,EACV,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,CACR,CAAC;QAEF,kBAAkB;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEtE,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CACtC,WAAW,EACX,UAAU,EACV,MAAM,EACN;YACE,KAAK;YACL,SAAS;YACT,OAAO;SACR,CACF,CAAC;QAEF,gCAAgC;QAChC,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,OAA2B;QACpD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,KAAK,CAAC;QACvB,CAAC;QAED,yCAAyC;QACzC,2EAA2E;QAC3E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,OAA2B;QAClD,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,OAAO,CAAC,MAAM,CAAC;QACxB,CAAC;QAED,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,+BAA+B;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,OAA2B,EAC3B,MAAqB;QAErB,yCAAyC;QACzC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,KAAK,CAAC;QACvB,CAAC;QAED,mCAAmC;QACnC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,OAA2B,EAC3B,MAAqB;QAErB,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,uCAAuC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAC7F,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/C,CAAC;QAED,6BAA6B;QAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC7E,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACrD,CAAC;QAED,4BAA4B;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC1F,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAChC,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACvE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC;YACtC,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,MAAqB,EAAE,OAAiB;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,UAAoB,EACpB,KAAe,EACf,OAA2B,EAC3B,MAAqB,EACrB,OAAoB;QAEpB,MAAM,OAAO,GAA+B,EAAgC,CAAC;QAE7E,6BAA6B;QAC7B,MAAM,MAAM,GAAgD,EAAE,CAAC;QAC/D,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,MAAM;gBAAE,SAAS;YAEhC,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM;gBACN,KAAK,EAAE;oBACL,KAAK;oBACL,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK;oBACzB,MAAM;oBACN,OAAO;iBACK;aACf,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvE,cAAc;QACd,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,OAA2B,EAC3B,SAAiB,EACjB,MAAqB,EACrB,aAAuB,EAAE,EACzB,MAAM,GAAG,mBAAmB;QAE5B,MAAM,MAAM,GAAsB;YAChC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,EAAgC;YACvC,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YAC5C,QAAQ,EAAE;gBACR,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACvC,YAAY,EAAE,CAAC;gBACf,QAAQ,EAAE,UAAU;gBACpB,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM;gBAChC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK;aACxB;YACD,QAAQ,EAAE,CAAC;SACZ,CAAC;QAEF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,4EAA4E;IAC5E,uBAAuB;IACvB,8DAA8D;IAC9D,4EAA4E;IAE5E;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;YACtE,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;YAErG,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAEvE,0CAA0C;YAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvE,2EAA2E;YAC3E,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAClD,IAAI,IAAI,EAAE,CAAC;oBACT,QAAQ,CAAC,IAAI,CAAC;wBACZ,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;wBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;YACpD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,oFAAoF;QACpF,sEAAsE;QACtE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,mFAAmF;QACnF,mEAAmE;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,QAA4B;QAC7D,gFAAgF;QAChF,iEAAiE;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,MAAqB;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAiB,EAAE,CAAC;QAE/B,mBAAmB;QACnB,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAED,sEAAsE;QAEtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,OAA0B,EAAE,QAA4B;QAClF,uEAAuE;QACvE,2BAA2B;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gate Registry
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Manages gate registration and instantiation.
|
|
7
|
+
* Supports both built-in gates and custom gate registration.
|
|
8
|
+
*/
|
|
9
|
+
import type { Gate, GateId, GateFactory, GateFactoryContext } from '../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Registry for quality gates.
|
|
12
|
+
* Manages gate registration and instantiation.
|
|
13
|
+
*/
|
|
14
|
+
export declare class GateRegistry {
|
|
15
|
+
private gates;
|
|
16
|
+
private factories;
|
|
17
|
+
private initialized;
|
|
18
|
+
constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Initialize with built-in gates.
|
|
21
|
+
* Called lazily on first access.
|
|
22
|
+
*/
|
|
23
|
+
private initializeBuiltInGates;
|
|
24
|
+
/**
|
|
25
|
+
* Register a gate factory.
|
|
26
|
+
*/
|
|
27
|
+
register(gateId: GateId, factory: GateFactory): void;
|
|
28
|
+
/**
|
|
29
|
+
* Get a gate instance.
|
|
30
|
+
*/
|
|
31
|
+
get(gateId: GateId, context?: GateFactoryContext): Promise<Gate>;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a gate is registered.
|
|
34
|
+
*/
|
|
35
|
+
has(gateId: GateId): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* List all registered gate IDs.
|
|
38
|
+
*/
|
|
39
|
+
list(): Promise<GateId[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Clear cached gate instances.
|
|
42
|
+
*/
|
|
43
|
+
clear(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Reset the registry (for testing).
|
|
46
|
+
*/
|
|
47
|
+
reset(): void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the global gate registry.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getGateRegistry(): GateRegistry;
|
|
53
|
+
//# sourceMappingURL=gate-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-registry.d.ts","sourceRoot":"","sources":["../../../src/quality-gates/orchestrator/gate-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjF;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,WAAW,CAAS;;IAM5B;;;OAGG;YACW,sBAAsB;IAgDpC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAMpD;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtE;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAK/B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAOD;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gate Registry
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Manages gate registration and instantiation.
|
|
7
|
+
* Supports both built-in gates and custom gate registration.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Registry for quality gates.
|
|
11
|
+
* Manages gate registration and instantiation.
|
|
12
|
+
*/
|
|
13
|
+
export class GateRegistry {
|
|
14
|
+
gates = new Map();
|
|
15
|
+
factories = new Map();
|
|
16
|
+
initialized = false;
|
|
17
|
+
constructor() {
|
|
18
|
+
// Built-in gates are registered lazily to avoid circular imports
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Initialize with built-in gates.
|
|
22
|
+
* Called lazily on first access.
|
|
23
|
+
*/
|
|
24
|
+
async initializeBuiltInGates() {
|
|
25
|
+
if (this.initialized)
|
|
26
|
+
return;
|
|
27
|
+
this.initialized = true;
|
|
28
|
+
// Import gates dynamically to avoid circular dependencies
|
|
29
|
+
try {
|
|
30
|
+
const { PatternComplianceGate } = await import('../gates/pattern-compliance/index.js');
|
|
31
|
+
this.register('pattern-compliance', () => new PatternComplianceGate());
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
console.error('Failed to load PatternComplianceGate:', e);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const { ConstraintVerificationGate } = await import('../gates/constraint-verification/index.js');
|
|
38
|
+
this.register('constraint-verification', () => new ConstraintVerificationGate());
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
console.error('Failed to load ConstraintVerificationGate:', e);
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
const { RegressionDetectionGate } = await import('../gates/regression-detection/index.js');
|
|
45
|
+
this.register('regression-detection', () => new RegressionDetectionGate());
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
console.error('Failed to load RegressionDetectionGate:', e);
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const { ImpactSimulationGate } = await import('../gates/impact-simulation/index.js');
|
|
52
|
+
this.register('impact-simulation', () => new ImpactSimulationGate());
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.error('Failed to load ImpactSimulationGate:', e);
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const { SecurityBoundaryGate } = await import('../gates/security-boundary/index.js');
|
|
59
|
+
this.register('security-boundary', () => new SecurityBoundaryGate());
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
console.error('Failed to load SecurityBoundaryGate:', e);
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const { CustomRulesGate } = await import('../gates/custom-rules/index.js');
|
|
66
|
+
this.register('custom-rules', () => new CustomRulesGate());
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
console.error('Failed to load CustomRulesGate:', e);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Register a gate factory.
|
|
74
|
+
*/
|
|
75
|
+
register(gateId, factory) {
|
|
76
|
+
this.factories.set(gateId, factory);
|
|
77
|
+
// Clear cached instance if re-registering
|
|
78
|
+
this.gates.delete(gateId);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get a gate instance.
|
|
82
|
+
*/
|
|
83
|
+
async get(gateId, context) {
|
|
84
|
+
await this.initializeBuiltInGates();
|
|
85
|
+
// Check if already instantiated
|
|
86
|
+
let gate = this.gates.get(gateId);
|
|
87
|
+
if (gate)
|
|
88
|
+
return gate;
|
|
89
|
+
// Get factory
|
|
90
|
+
const factory = this.factories.get(gateId);
|
|
91
|
+
if (!factory) {
|
|
92
|
+
throw new Error(`Unknown gate: ${gateId}`);
|
|
93
|
+
}
|
|
94
|
+
// Create instance
|
|
95
|
+
gate = factory(context ?? { projectRoot: process.cwd() });
|
|
96
|
+
this.gates.set(gateId, gate);
|
|
97
|
+
return gate;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Check if a gate is registered.
|
|
101
|
+
*/
|
|
102
|
+
async has(gateId) {
|
|
103
|
+
await this.initializeBuiltInGates();
|
|
104
|
+
return this.factories.has(gateId);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* List all registered gate IDs.
|
|
108
|
+
*/
|
|
109
|
+
async list() {
|
|
110
|
+
await this.initializeBuiltInGates();
|
|
111
|
+
return Array.from(this.factories.keys());
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Clear cached gate instances.
|
|
115
|
+
*/
|
|
116
|
+
clear() {
|
|
117
|
+
this.gates.clear();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Reset the registry (for testing).
|
|
121
|
+
*/
|
|
122
|
+
reset() {
|
|
123
|
+
this.gates.clear();
|
|
124
|
+
this.factories.clear();
|
|
125
|
+
this.initialized = false;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Singleton registry instance.
|
|
130
|
+
*/
|
|
131
|
+
let registryInstance = null;
|
|
132
|
+
/**
|
|
133
|
+
* Get the global gate registry.
|
|
134
|
+
*/
|
|
135
|
+
export function getGateRegistry() {
|
|
136
|
+
if (!registryInstance) {
|
|
137
|
+
registryInstance = new GateRegistry();
|
|
138
|
+
}
|
|
139
|
+
return registryInstance;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=gate-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-registry.js","sourceRoot":"","sources":["../../../src/quality-gates/orchestrator/gate-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Module - Exports
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export { GateOrchestrator } from './gate-orchestrator.js';
|
|
7
|
+
export { GateRegistry, getGateRegistry } from './gate-registry.js';
|
|
8
|
+
export { ParallelExecutor } from './parallel-executor.js';
|
|
9
|
+
export { ResultAggregator } from './result-aggregator.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/quality-gates/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator Module - Exports
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export { GateOrchestrator } from './gate-orchestrator.js';
|
|
7
|
+
export { GateRegistry, getGateRegistry } from './gate-registry.js';
|
|
8
|
+
export { ParallelExecutor } from './parallel-executor.js';
|
|
9
|
+
export { ResultAggregator } from './result-aggregator.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/quality-gates/orchestrator/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parallel Executor
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Executes gates in parallel where possible.
|
|
7
|
+
* Gates without dependencies can run concurrently.
|
|
8
|
+
*/
|
|
9
|
+
import type { GateId, GateInput, GateResult } from '../types.js';
|
|
10
|
+
import type { GateRegistry } from './gate-registry.js';
|
|
11
|
+
/**
|
|
12
|
+
* Executes gates in parallel where possible.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ParallelExecutor {
|
|
15
|
+
/**
|
|
16
|
+
* Execute gates in parallel.
|
|
17
|
+
*/
|
|
18
|
+
execute(inputs: Array<{
|
|
19
|
+
gateId: GateId;
|
|
20
|
+
input: GateInput;
|
|
21
|
+
}>, registry: GateRegistry): Promise<Array<{
|
|
22
|
+
gateId: GateId;
|
|
23
|
+
result: GateResult;
|
|
24
|
+
}>>;
|
|
25
|
+
/**
|
|
26
|
+
* Group gates by dependencies.
|
|
27
|
+
* Gates without dependencies can run in parallel.
|
|
28
|
+
*
|
|
29
|
+
* Current dependency model:
|
|
30
|
+
* - All gates are independent and can run in parallel
|
|
31
|
+
* - Future: Add dependency tracking for gates that need results from others
|
|
32
|
+
*/
|
|
33
|
+
private groupByDependencies;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=parallel-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parallel-executor.d.ts","sourceRoot":"","sources":["../../../src/quality-gates/orchestrator/parallel-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACG,OAAO,CACX,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC,EACnD,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IAyCzD;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;CAW5B"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parallel Executor
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Executes gates in parallel where possible.
|
|
7
|
+
* Gates without dependencies can run concurrently.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Executes gates in parallel where possible.
|
|
11
|
+
*/
|
|
12
|
+
export class ParallelExecutor {
|
|
13
|
+
/**
|
|
14
|
+
* Execute gates in parallel.
|
|
15
|
+
*/
|
|
16
|
+
async execute(inputs, registry) {
|
|
17
|
+
// Group gates by dependencies
|
|
18
|
+
const groups = this.groupByDependencies(inputs);
|
|
19
|
+
const results = [];
|
|
20
|
+
// Execute each group in sequence, gates within group in parallel
|
|
21
|
+
for (const group of groups) {
|
|
22
|
+
const groupResults = await Promise.all(group.map(async ({ gateId, input }) => {
|
|
23
|
+
try {
|
|
24
|
+
const gate = await registry.get(gateId);
|
|
25
|
+
const result = await gate.execute(input);
|
|
26
|
+
return { gateId, result };
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
// Return error result if gate fails to load
|
|
30
|
+
return {
|
|
31
|
+
gateId,
|
|
32
|
+
result: {
|
|
33
|
+
gateId,
|
|
34
|
+
gateName: gateId,
|
|
35
|
+
status: 'errored',
|
|
36
|
+
passed: true, // Errors don't block by default
|
|
37
|
+
score: 0,
|
|
38
|
+
summary: `Gate failed to execute: ${error instanceof Error ? error.message : String(error)}`,
|
|
39
|
+
violations: [],
|
|
40
|
+
warnings: [`Gate ${gateId} failed to execute`],
|
|
41
|
+
executionTimeMs: 0,
|
|
42
|
+
details: {},
|
|
43
|
+
error: error instanceof Error ? error.message : String(error),
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
results.push(...groupResults);
|
|
49
|
+
}
|
|
50
|
+
return results;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Group gates by dependencies.
|
|
54
|
+
* Gates without dependencies can run in parallel.
|
|
55
|
+
*
|
|
56
|
+
* Current dependency model:
|
|
57
|
+
* - All gates are independent and can run in parallel
|
|
58
|
+
* - Future: Add dependency tracking for gates that need results from others
|
|
59
|
+
*/
|
|
60
|
+
groupByDependencies(inputs) {
|
|
61
|
+
// For now, all gates are independent and can run in parallel
|
|
62
|
+
// This returns a single group containing all gates
|
|
63
|
+
//
|
|
64
|
+
// Future enhancement: Implement dependency graph
|
|
65
|
+
// - regression-detection might depend on pattern-compliance results
|
|
66
|
+
// - security-boundary might depend on impact-simulation results
|
|
67
|
+
return [inputs];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=parallel-executor.js.map
|