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,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drift Licensing System - Types
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Defines the license tiers and feature flags for OSS vs Enterprise.
|
|
7
|
+
*/
|
|
8
|
+
export type LicenseTier = 'community' | 'team' | 'enterprise';
|
|
9
|
+
export interface License {
|
|
10
|
+
/** License key (JWT or simple key) */
|
|
11
|
+
key: string;
|
|
12
|
+
/** License tier */
|
|
13
|
+
tier: LicenseTier;
|
|
14
|
+
/** Organization name */
|
|
15
|
+
organization: string;
|
|
16
|
+
/** Licensed seats (0 = unlimited for enterprise) */
|
|
17
|
+
seats: number;
|
|
18
|
+
/** Expiration date (ISO string) */
|
|
19
|
+
expiresAt: string;
|
|
20
|
+
/** Features explicitly enabled */
|
|
21
|
+
features: EnterpriseFeature[];
|
|
22
|
+
/** License metadata */
|
|
23
|
+
metadata: {
|
|
24
|
+
issuedAt: string;
|
|
25
|
+
issuer: string;
|
|
26
|
+
version: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* All gated features in Drift.
|
|
31
|
+
*
|
|
32
|
+
* PHILOSOPHY: Solo devs and small teams can use Drift completely free.
|
|
33
|
+
* Enterprise pays for managing patterns across teams at scale.
|
|
34
|
+
*
|
|
35
|
+
* FREE (Community):
|
|
36
|
+
* - All scanning, pattern detection, analysis
|
|
37
|
+
* - drift check --ci with all output formats (json, github, gitlab, sarif)
|
|
38
|
+
* - Basic thresholds and fail conditions
|
|
39
|
+
* - Single-repo usage with full functionality
|
|
40
|
+
*
|
|
41
|
+
* TEAM/ENTERPRISE: Scale and governance features only.
|
|
42
|
+
*/
|
|
43
|
+
export type EnterpriseFeature = 'gate:policy-engine' | 'gate:regression-detection' | 'gate:custom-rules' | 'gate:impact-simulation' | 'gate:security-boundary' | 'governance:multi-repo' | 'governance:team-analytics' | 'governance:audit-trail' | 'integration:webhooks' | 'integration:jira' | 'integration:slack' | 'advanced:self-hosted-models' | 'advanced:custom-detectors' | 'advanced:api-access' | 'dashboard:team-view' | 'dashboard:trends' | 'dashboard:export';
|
|
44
|
+
/**
|
|
45
|
+
* Feature tier mapping - which tier unlocks which features
|
|
46
|
+
*
|
|
47
|
+
* NOTE: Basic CI features are NOT gated:
|
|
48
|
+
* - drift check --ci
|
|
49
|
+
* - --format json/github/gitlab/sarif
|
|
50
|
+
* - --fail-on thresholds
|
|
51
|
+
*
|
|
52
|
+
* These are all FREE for everyone. We only gate scale/governance features.
|
|
53
|
+
*/
|
|
54
|
+
export declare const FEATURE_TIERS: Record<EnterpriseFeature, LicenseTier>;
|
|
55
|
+
/**
|
|
56
|
+
* Tier hierarchy for comparison
|
|
57
|
+
*/
|
|
58
|
+
export declare const TIER_HIERARCHY: Record<LicenseTier, number>;
|
|
59
|
+
export interface LicenseValidationResult {
|
|
60
|
+
valid: boolean;
|
|
61
|
+
tier: LicenseTier;
|
|
62
|
+
features: EnterpriseFeature[];
|
|
63
|
+
expiresAt: string | null;
|
|
64
|
+
error?: string | undefined;
|
|
65
|
+
warnings?: string[] | undefined;
|
|
66
|
+
}
|
|
67
|
+
export interface FeatureCheckResult {
|
|
68
|
+
allowed: boolean;
|
|
69
|
+
feature: EnterpriseFeature;
|
|
70
|
+
requiredTier: LicenseTier;
|
|
71
|
+
currentTier: LicenseTier;
|
|
72
|
+
message: string;
|
|
73
|
+
upgradeUrl?: string | undefined;
|
|
74
|
+
}
|
|
75
|
+
export type LicenseSource = 'environment' | 'file' | 'config' | 'none';
|
|
76
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/licensing/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,YAAY,CAAC;AAE9D,MAAM,WAAW,OAAO;IACtB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;IAElB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IAErB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IAEd,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAElB,kCAAkC;IAClC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAE9B,uBAAuB;IACvB,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAEzB,oBAAoB,GACpB,2BAA2B,GAC3B,mBAAmB,GAGnB,wBAAwB,GACxB,wBAAwB,GAGxB,uBAAuB,GACvB,2BAA2B,GAC3B,wBAAwB,GAGxB,sBAAsB,GACtB,kBAAkB,GAClB,mBAAmB,GAGnB,6BAA6B,GAC7B,2BAA2B,GAC3B,qBAAqB,GAGrB,qBAAqB,GACrB,kBAAkB,GAClB,kBAAkB,CACrB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CA6BhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAItD,CAAC;AAMF,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAMD,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,MAAM,GACN,QAAQ,GACR,MAAM,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drift Licensing System - Types
|
|
3
|
+
*
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Defines the license tiers and feature flags for OSS vs Enterprise.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Feature tier mapping - which tier unlocks which features
|
|
10
|
+
*
|
|
11
|
+
* NOTE: Basic CI features are NOT gated:
|
|
12
|
+
* - drift check --ci
|
|
13
|
+
* - --format json/github/gitlab/sarif
|
|
14
|
+
* - --fail-on thresholds
|
|
15
|
+
*
|
|
16
|
+
* These are all FREE for everyone. We only gate scale/governance features.
|
|
17
|
+
*/
|
|
18
|
+
export const FEATURE_TIERS = {
|
|
19
|
+
// Team tier features - Advanced policy management
|
|
20
|
+
'gate:policy-engine': 'team',
|
|
21
|
+
'gate:regression-detection': 'team',
|
|
22
|
+
'gate:custom-rules': 'team',
|
|
23
|
+
'dashboard:trends': 'team',
|
|
24
|
+
'dashboard:export': 'team',
|
|
25
|
+
// Enterprise tier features - Deep analysis
|
|
26
|
+
'gate:impact-simulation': 'enterprise',
|
|
27
|
+
'gate:security-boundary': 'enterprise',
|
|
28
|
+
// Enterprise tier features - Multi-team governance
|
|
29
|
+
'governance:multi-repo': 'enterprise',
|
|
30
|
+
'governance:team-analytics': 'enterprise',
|
|
31
|
+
'governance:audit-trail': 'enterprise',
|
|
32
|
+
// Enterprise tier features - External integrations
|
|
33
|
+
'integration:webhooks': 'enterprise',
|
|
34
|
+
'integration:jira': 'enterprise',
|
|
35
|
+
'integration:slack': 'enterprise',
|
|
36
|
+
// Enterprise tier features - Customization at scale
|
|
37
|
+
'advanced:self-hosted-models': 'enterprise',
|
|
38
|
+
'advanced:custom-detectors': 'enterprise',
|
|
39
|
+
'advanced:api-access': 'enterprise',
|
|
40
|
+
// Enterprise tier features - Team dashboard
|
|
41
|
+
'dashboard:team-view': 'enterprise',
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Tier hierarchy for comparison
|
|
45
|
+
*/
|
|
46
|
+
export const TIER_HIERARCHY = {
|
|
47
|
+
community: 0,
|
|
48
|
+
team: 1,
|
|
49
|
+
enterprise: 2,
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/licensing/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoFH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,kDAAkD;IAClD,oBAAoB,EAAE,MAAM;IAC5B,2BAA2B,EAAE,MAAM;IACnC,mBAAmB,EAAE,MAAM;IAC3B,kBAAkB,EAAE,MAAM;IAC1B,kBAAkB,EAAE,MAAM;IAE1B,2CAA2C;IAC3C,wBAAwB,EAAE,YAAY;IACtC,wBAAwB,EAAE,YAAY;IAEtC,mDAAmD;IACnD,uBAAuB,EAAE,YAAY;IACrC,2BAA2B,EAAE,YAAY;IACzC,wBAAwB,EAAE,YAAY;IAEtC,mDAAmD;IACnD,sBAAsB,EAAE,YAAY;IACpC,kBAAkB,EAAE,YAAY;IAChC,mBAAmB,EAAE,YAAY;IAEjC,oDAAoD;IACpD,6BAA6B,EAAE,YAAY;IAC3C,2BAA2B,EAAE,YAAY;IACzC,qBAAqB,EAAE,YAAY;IAEnC,4CAA4C;IAC5C,qBAAqB,EAAE,YAAY;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC;IACzD,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,UAAU,EAAE,CAAC;CACd,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-sitter C++ Loader
|
|
3
|
+
*
|
|
4
|
+
* Handles loading tree-sitter and tree-sitter-cpp with graceful fallback.
|
|
5
|
+
* Provides functions to check availability and access the parser/language.
|
|
6
|
+
*
|
|
7
|
+
* @requirements C++ Language Support
|
|
8
|
+
* @license Apache-2.0
|
|
9
|
+
*/
|
|
10
|
+
import type { TreeSitterParser, TreeSitterLanguage } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Check if tree-sitter-cpp is available.
|
|
13
|
+
*
|
|
14
|
+
* This function attempts to load tree-sitter and tree-sitter-cpp
|
|
15
|
+
* on first call and caches the result.
|
|
16
|
+
*
|
|
17
|
+
* @returns true if tree-sitter-cpp is available and working
|
|
18
|
+
*/
|
|
19
|
+
export declare function isCppTreeSitterAvailable(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Get the C++ language for tree-sitter.
|
|
22
|
+
*
|
|
23
|
+
* @returns TreeSitter C++ language
|
|
24
|
+
* @throws Error if tree-sitter-cpp is not available
|
|
25
|
+
*/
|
|
26
|
+
export declare function getCppLanguage(): TreeSitterLanguage;
|
|
27
|
+
/**
|
|
28
|
+
* Get the tree-sitter Parser constructor for C++.
|
|
29
|
+
*
|
|
30
|
+
* @returns TreeSitter Parser constructor
|
|
31
|
+
* @throws Error if tree-sitter is not available
|
|
32
|
+
*/
|
|
33
|
+
export declare function getCppTreeSitter(): new () => TreeSitterParser;
|
|
34
|
+
/**
|
|
35
|
+
* Create a new tree-sitter parser instance configured for C++.
|
|
36
|
+
*
|
|
37
|
+
* @returns Configured TreeSitter parser
|
|
38
|
+
* @throws Error if tree-sitter-cpp is not available
|
|
39
|
+
*/
|
|
40
|
+
export declare function createCppParser(): TreeSitterParser;
|
|
41
|
+
/**
|
|
42
|
+
* Get the loading error message if tree-sitter-cpp failed to load.
|
|
43
|
+
*
|
|
44
|
+
* @returns Error message or null if no error
|
|
45
|
+
*/
|
|
46
|
+
export declare function getCppLoadingError(): string | null;
|
|
47
|
+
/**
|
|
48
|
+
* Reset the loader state (useful for testing).
|
|
49
|
+
*/
|
|
50
|
+
export declare function resetCppLoader(): void;
|
|
51
|
+
//# sourceMappingURL=cpp-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpp-loader.d.ts","sourceRoot":"","sources":["../../../src/parsers/tree-sitter/cpp-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAyBvE;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAelD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,kBAAkB,CAUnD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,gBAAgB,CAU7D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,CAgBlD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-sitter C++ Loader
|
|
3
|
+
*
|
|
4
|
+
* Handles loading tree-sitter and tree-sitter-cpp with graceful fallback.
|
|
5
|
+
* Provides functions to check availability and access the parser/language.
|
|
6
|
+
*
|
|
7
|
+
* @requirements C++ Language Support
|
|
8
|
+
* @license Apache-2.0
|
|
9
|
+
*/
|
|
10
|
+
import { createRequire } from 'node:module';
|
|
11
|
+
// Create require function for ESM compatibility
|
|
12
|
+
const require = createRequire(import.meta.url);
|
|
13
|
+
// ============================================
|
|
14
|
+
// Module State
|
|
15
|
+
// ============================================
|
|
16
|
+
/** Whether tree-sitter-cpp is available */
|
|
17
|
+
let cppAvailable = null;
|
|
18
|
+
/** Cached tree-sitter module */
|
|
19
|
+
let cachedTreeSitter = null;
|
|
20
|
+
/** Cached C++ language */
|
|
21
|
+
let cachedCppLanguage = null;
|
|
22
|
+
/** Loading error message if any */
|
|
23
|
+
let loadingError = null;
|
|
24
|
+
// ============================================
|
|
25
|
+
// Public API
|
|
26
|
+
// ============================================
|
|
27
|
+
/**
|
|
28
|
+
* Check if tree-sitter-cpp is available.
|
|
29
|
+
*
|
|
30
|
+
* This function attempts to load tree-sitter and tree-sitter-cpp
|
|
31
|
+
* on first call and caches the result.
|
|
32
|
+
*
|
|
33
|
+
* @returns true if tree-sitter-cpp is available and working
|
|
34
|
+
*/
|
|
35
|
+
export function isCppTreeSitterAvailable() {
|
|
36
|
+
if (cppAvailable !== null) {
|
|
37
|
+
return cppAvailable;
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
loadCppTreeSitter();
|
|
41
|
+
cppAvailable = true;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
cppAvailable = false;
|
|
45
|
+
loadingError = error instanceof Error ? error.message : 'Unknown error loading tree-sitter-cpp';
|
|
46
|
+
logDebug(`tree-sitter-cpp not available: ${loadingError}`);
|
|
47
|
+
}
|
|
48
|
+
return cppAvailable;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the C++ language for tree-sitter.
|
|
52
|
+
*
|
|
53
|
+
* @returns TreeSitter C++ language
|
|
54
|
+
* @throws Error if tree-sitter-cpp is not available
|
|
55
|
+
*/
|
|
56
|
+
export function getCppLanguage() {
|
|
57
|
+
if (!isCppTreeSitterAvailable()) {
|
|
58
|
+
throw new Error(`tree-sitter-cpp is not available: ${loadingError ?? 'unknown error'}`);
|
|
59
|
+
}
|
|
60
|
+
if (!cachedCppLanguage) {
|
|
61
|
+
throw new Error('tree-sitter-cpp language not loaded');
|
|
62
|
+
}
|
|
63
|
+
return cachedCppLanguage;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get the tree-sitter Parser constructor for C++.
|
|
67
|
+
*
|
|
68
|
+
* @returns TreeSitter Parser constructor
|
|
69
|
+
* @throws Error if tree-sitter is not available
|
|
70
|
+
*/
|
|
71
|
+
export function getCppTreeSitter() {
|
|
72
|
+
if (!isCppTreeSitterAvailable()) {
|
|
73
|
+
throw new Error(`tree-sitter-cpp is not available: ${loadingError ?? 'unknown error'}`);
|
|
74
|
+
}
|
|
75
|
+
if (!cachedTreeSitter) {
|
|
76
|
+
throw new Error('tree-sitter module not loaded');
|
|
77
|
+
}
|
|
78
|
+
return cachedTreeSitter;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create a new tree-sitter parser instance configured for C++.
|
|
82
|
+
*
|
|
83
|
+
* @returns Configured TreeSitter parser
|
|
84
|
+
* @throws Error if tree-sitter-cpp is not available
|
|
85
|
+
*/
|
|
86
|
+
export function createCppParser() {
|
|
87
|
+
if (!isCppTreeSitterAvailable()) {
|
|
88
|
+
throw new Error(`tree-sitter-cpp is not available: ${loadingError ?? 'unknown error'}`);
|
|
89
|
+
}
|
|
90
|
+
if (!cachedTreeSitter) {
|
|
91
|
+
throw new Error('tree-sitter module not loaded');
|
|
92
|
+
}
|
|
93
|
+
const Parser = cachedTreeSitter;
|
|
94
|
+
const language = getCppLanguage();
|
|
95
|
+
const parser = new Parser();
|
|
96
|
+
parser.setLanguage(language);
|
|
97
|
+
return parser;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get the loading error message if tree-sitter-cpp failed to load.
|
|
101
|
+
*
|
|
102
|
+
* @returns Error message or null if no error
|
|
103
|
+
*/
|
|
104
|
+
export function getCppLoadingError() {
|
|
105
|
+
// Ensure we've attempted to load
|
|
106
|
+
isCppTreeSitterAvailable();
|
|
107
|
+
return loadingError;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Reset the loader state (useful for testing).
|
|
111
|
+
*/
|
|
112
|
+
export function resetCppLoader() {
|
|
113
|
+
cppAvailable = null;
|
|
114
|
+
cachedTreeSitter = null;
|
|
115
|
+
cachedCppLanguage = null;
|
|
116
|
+
loadingError = null;
|
|
117
|
+
}
|
|
118
|
+
// ============================================
|
|
119
|
+
// Internal Functions
|
|
120
|
+
// ============================================
|
|
121
|
+
/**
|
|
122
|
+
* Attempt to load tree-sitter and tree-sitter-cpp.
|
|
123
|
+
*
|
|
124
|
+
* @throws Error if loading fails
|
|
125
|
+
*/
|
|
126
|
+
function loadCppTreeSitter() {
|
|
127
|
+
// Skip if already loaded
|
|
128
|
+
if (cachedTreeSitter && cachedCppLanguage) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
// Dynamic require for optional dependencies
|
|
133
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
134
|
+
cachedTreeSitter = require('tree-sitter');
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
throw new Error(`Failed to load tree-sitter: ${error instanceof Error ? error.message : 'unknown error'}. ` +
|
|
138
|
+
'Install with: pnpm add tree-sitter tree-sitter-cpp');
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
142
|
+
cachedCppLanguage = require('tree-sitter-cpp');
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
// Clear tree-sitter cache since we can't use it without C++
|
|
146
|
+
cachedTreeSitter = null;
|
|
147
|
+
throw new Error(`Failed to load tree-sitter-cpp: ${error instanceof Error ? error.message : 'unknown error'}. ` +
|
|
148
|
+
'Install with: pnpm add tree-sitter-cpp');
|
|
149
|
+
}
|
|
150
|
+
logDebug('tree-sitter and tree-sitter-cpp loaded successfully');
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Log debug message if debug mode is enabled.
|
|
154
|
+
*
|
|
155
|
+
* @param message - Message to log
|
|
156
|
+
*/
|
|
157
|
+
function logDebug(message) {
|
|
158
|
+
if (process.env['DRIFT_PARSER_DEBUG'] === 'true') {
|
|
159
|
+
console.debug(`[cpp-loader] ${message}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=cpp-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpp-loader.js","sourceRoot":"","sources":["../../../src/parsers/tree-sitter/cpp-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,12 @@ export { isPhpTreeSitterAvailable, getPhpLanguage, getPhpTreeSitter, createPhpPa
|
|
|
20
20
|
export { isTypeScriptTreeSitterAvailable, isJavaScriptTreeSitterAvailable, getTypeScriptLanguage, getTsxLanguage, getJavaScriptLanguage, getTypeScriptTreeSitter, createTypeScriptParser, createTsxParser, createJavaScriptParser, createParserForFile, getTypeScriptLoadingError, resetTypeScriptLoader, } from './typescript-loader.js';
|
|
21
21
|
export type { PythonParserConfig } from './config.js';
|
|
22
22
|
export { DEFAULT_PYTHON_PARSER_CONFIG, validateConfig, mergeConfig, configFromEnv, } from './config.js';
|
|
23
|
+
export { isGoTreeSitterAvailable, getGoLanguage, getGoTreeSitter, createGoParser, getGoLoadingError, resetGoLoader, } from './go-loader.js';
|
|
24
|
+
export { TreeSitterGoParser } from './tree-sitter-go-parser.js';
|
|
25
|
+
export type { GoParseResult, GoPackageInfo, GoImportInfo, GoParameterInfo, GoReturnInfo, GoFunctionInfo, GoMethodInfo, GoReceiverInfo, GoFieldInfo, GoStructInfo, GoInterfaceMethodInfo, GoInterfaceInfo, GoTypeAliasInfo, } from './tree-sitter-go-parser.js';
|
|
26
|
+
export { isRustTreeSitterAvailable, getRustLanguage, getRustTreeSitter, createRustParser, getRustLoadingError, resetRustLoader, } from './rust-loader.js';
|
|
27
|
+
export { RustTreeSitterParser, createRustTreeSitterParser } from './tree-sitter-rust-parser.js';
|
|
28
|
+
export type { RustParseResult, RustFunction, RustParameter, RustGeneric, RustStruct, RustField, RustEnum, RustEnumVariant, RustTrait, RustTraitMethod, RustImpl, RustUse, RustMacroCall, } from './tree-sitter-rust-parser.js';
|
|
23
29
|
export type { TreeSitterNode, TreeSitterTree, TreeSitterParser, TreeSitterLanguage, TreeSitterPoint, TreeSitterQuery, TreeSitterQueryMatch, TreeSitterQueryCapture, PydanticModelInfo, PydanticFieldInfo, PydanticValidatorInfo, PydanticConfigInfo, TypeInfo, FieldConstraints, } from './types.js';
|
|
24
30
|
export { PythonASTConverter, convertPoint, convertNodeType } from './python-ast-converter.js';
|
|
25
31
|
export type { ConversionOptions } from './python-ast-converter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/parsers/tree-sitter/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/parsers/tree-sitter/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,22 @@ export { isPhpTreeSitterAvailable, getPhpLanguage, getPhpTreeSitter, createPhpPa
|
|
|
44
44
|
export { isTypeScriptTreeSitterAvailable, isJavaScriptTreeSitterAvailable, getTypeScriptLanguage, getTsxLanguage, getJavaScriptLanguage, getTypeScriptTreeSitter, createTypeScriptParser, createTsxParser, createJavaScriptParser, createParserForFile, getTypeScriptLoadingError, resetTypeScriptLoader, } from './typescript-loader.js';
|
|
45
45
|
export { DEFAULT_PYTHON_PARSER_CONFIG, validateConfig, mergeConfig, configFromEnv, } from './config.js';
|
|
46
46
|
// ============================================
|
|
47
|
+
// Go Loader Exports
|
|
48
|
+
// ============================================
|
|
49
|
+
export { isGoTreeSitterAvailable, getGoLanguage, getGoTreeSitter, createGoParser, getGoLoadingError, resetGoLoader, } from './go-loader.js';
|
|
50
|
+
// ============================================
|
|
51
|
+
// Go Parser Exports
|
|
52
|
+
// ============================================
|
|
53
|
+
export { TreeSitterGoParser } from './tree-sitter-go-parser.js';
|
|
54
|
+
// ============================================
|
|
55
|
+
// Rust Loader Exports
|
|
56
|
+
// ============================================
|
|
57
|
+
export { isRustTreeSitterAvailable, getRustLanguage, getRustTreeSitter, createRustParser, getRustLoadingError, resetRustLoader, } from './rust-loader.js';
|
|
58
|
+
// ============================================
|
|
59
|
+
// Rust Parser Exports
|
|
60
|
+
// ============================================
|
|
61
|
+
export { RustTreeSitterParser, createRustTreeSitterParser } from './tree-sitter-rust-parser.js';
|
|
62
|
+
// ============================================
|
|
47
63
|
// AST Converter Exports
|
|
48
64
|
// ============================================
|
|
49
65
|
export { PythonASTConverter, convertPoint, convertNodeType } from './python-ast-converter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parsers/tree-sitter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAkBxE,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAelE,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAE/C,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,+CAA+C;AAC/C,uCAAuC;AACvC,+CAA+C;AAE/C,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parsers/tree-sitter/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-sitter Rust Loader
|
|
3
|
+
*
|
|
4
|
+
* Handles loading tree-sitter and tree-sitter-rust with graceful fallback.
|
|
5
|
+
* Provides functions to check availability and access the parser/language.
|
|
6
|
+
*
|
|
7
|
+
* @requirements Rust Language Support
|
|
8
|
+
*/
|
|
9
|
+
import type { TreeSitterParser, TreeSitterLanguage } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Check if tree-sitter-rust is available.
|
|
12
|
+
*
|
|
13
|
+
* This function attempts to load tree-sitter and tree-sitter-rust
|
|
14
|
+
* on first call and caches the result.
|
|
15
|
+
*
|
|
16
|
+
* @returns true if tree-sitter-rust is available and working
|
|
17
|
+
*/
|
|
18
|
+
export declare function isRustTreeSitterAvailable(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Get the Rust language for tree-sitter.
|
|
21
|
+
*
|
|
22
|
+
* @returns TreeSitter Rust language
|
|
23
|
+
* @throws Error if tree-sitter-rust is not available
|
|
24
|
+
*/
|
|
25
|
+
export declare function getRustLanguage(): TreeSitterLanguage;
|
|
26
|
+
/**
|
|
27
|
+
* Get the tree-sitter Parser constructor for Rust.
|
|
28
|
+
*
|
|
29
|
+
* @returns TreeSitter Parser constructor
|
|
30
|
+
* @throws Error if tree-sitter is not available
|
|
31
|
+
*/
|
|
32
|
+
export declare function getRustTreeSitter(): new () => TreeSitterParser;
|
|
33
|
+
/**
|
|
34
|
+
* Create a new tree-sitter parser instance configured for Rust.
|
|
35
|
+
*
|
|
36
|
+
* @returns Configured TreeSitter parser
|
|
37
|
+
* @throws Error if tree-sitter-rust is not available
|
|
38
|
+
*/
|
|
39
|
+
export declare function createRustParser(): TreeSitterParser;
|
|
40
|
+
/**
|
|
41
|
+
* Get the loading error message if tree-sitter-rust failed to load.
|
|
42
|
+
*
|
|
43
|
+
* @returns Error message or null if no error
|
|
44
|
+
*/
|
|
45
|
+
export declare function getRustLoadingError(): string | null;
|
|
46
|
+
/**
|
|
47
|
+
* Reset the loader state (useful for testing).
|
|
48
|
+
*/
|
|
49
|
+
export declare function resetRustLoader(): void;
|
|
50
|
+
//# sourceMappingURL=rust-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rust-loader.d.ts","sourceRoot":"","sources":["../../../src/parsers/tree-sitter/rust-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAyBvE;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAenD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,kBAAkB,CAUpD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,gBAAgB,CAU9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAgBnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAInD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-sitter Rust Loader
|
|
3
|
+
*
|
|
4
|
+
* Handles loading tree-sitter and tree-sitter-rust with graceful fallback.
|
|
5
|
+
* Provides functions to check availability and access the parser/language.
|
|
6
|
+
*
|
|
7
|
+
* @requirements Rust Language Support
|
|
8
|
+
*/
|
|
9
|
+
import { createRequire } from 'node:module';
|
|
10
|
+
// Create require function for ESM compatibility
|
|
11
|
+
const require = createRequire(import.meta.url);
|
|
12
|
+
// ============================================
|
|
13
|
+
// Module State
|
|
14
|
+
// ============================================
|
|
15
|
+
/** Whether tree-sitter-rust is available */
|
|
16
|
+
let rustAvailable = null;
|
|
17
|
+
/** Cached tree-sitter module */
|
|
18
|
+
let cachedTreeSitter = null;
|
|
19
|
+
/** Cached Rust language */
|
|
20
|
+
let cachedRustLanguage = null;
|
|
21
|
+
/** Loading error message if any */
|
|
22
|
+
let loadingError = null;
|
|
23
|
+
// ============================================
|
|
24
|
+
// Public API
|
|
25
|
+
// ============================================
|
|
26
|
+
/**
|
|
27
|
+
* Check if tree-sitter-rust is available.
|
|
28
|
+
*
|
|
29
|
+
* This function attempts to load tree-sitter and tree-sitter-rust
|
|
30
|
+
* on first call and caches the result.
|
|
31
|
+
*
|
|
32
|
+
* @returns true if tree-sitter-rust is available and working
|
|
33
|
+
*/
|
|
34
|
+
export function isRustTreeSitterAvailable() {
|
|
35
|
+
if (rustAvailable !== null) {
|
|
36
|
+
return rustAvailable;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
loadRustTreeSitter();
|
|
40
|
+
rustAvailable = true;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
rustAvailable = false;
|
|
44
|
+
loadingError = error instanceof Error ? error.message : 'Unknown error loading tree-sitter-rust';
|
|
45
|
+
logDebug(`tree-sitter-rust not available: ${loadingError}`);
|
|
46
|
+
}
|
|
47
|
+
return rustAvailable;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the Rust language for tree-sitter.
|
|
51
|
+
*
|
|
52
|
+
* @returns TreeSitter Rust language
|
|
53
|
+
* @throws Error if tree-sitter-rust is not available
|
|
54
|
+
*/
|
|
55
|
+
export function getRustLanguage() {
|
|
56
|
+
if (!isRustTreeSitterAvailable()) {
|
|
57
|
+
throw new Error(`tree-sitter-rust is not available: ${loadingError ?? 'unknown error'}`);
|
|
58
|
+
}
|
|
59
|
+
if (!cachedRustLanguage) {
|
|
60
|
+
throw new Error('tree-sitter-rust language not loaded');
|
|
61
|
+
}
|
|
62
|
+
return cachedRustLanguage;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get the tree-sitter Parser constructor for Rust.
|
|
66
|
+
*
|
|
67
|
+
* @returns TreeSitter Parser constructor
|
|
68
|
+
* @throws Error if tree-sitter is not available
|
|
69
|
+
*/
|
|
70
|
+
export function getRustTreeSitter() {
|
|
71
|
+
if (!isRustTreeSitterAvailable()) {
|
|
72
|
+
throw new Error(`tree-sitter-rust is not available: ${loadingError ?? 'unknown error'}`);
|
|
73
|
+
}
|
|
74
|
+
if (!cachedTreeSitter) {
|
|
75
|
+
throw new Error('tree-sitter module not loaded');
|
|
76
|
+
}
|
|
77
|
+
return cachedTreeSitter;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create a new tree-sitter parser instance configured for Rust.
|
|
81
|
+
*
|
|
82
|
+
* @returns Configured TreeSitter parser
|
|
83
|
+
* @throws Error if tree-sitter-rust is not available
|
|
84
|
+
*/
|
|
85
|
+
export function createRustParser() {
|
|
86
|
+
if (!isRustTreeSitterAvailable()) {
|
|
87
|
+
throw new Error(`tree-sitter-rust is not available: ${loadingError ?? 'unknown error'}`);
|
|
88
|
+
}
|
|
89
|
+
if (!cachedTreeSitter) {
|
|
90
|
+
throw new Error('tree-sitter module not loaded');
|
|
91
|
+
}
|
|
92
|
+
const Parser = cachedTreeSitter;
|
|
93
|
+
const language = getRustLanguage();
|
|
94
|
+
const parser = new Parser();
|
|
95
|
+
parser.setLanguage(language);
|
|
96
|
+
return parser;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get the loading error message if tree-sitter-rust failed to load.
|
|
100
|
+
*
|
|
101
|
+
* @returns Error message or null if no error
|
|
102
|
+
*/
|
|
103
|
+
export function getRustLoadingError() {
|
|
104
|
+
// Ensure we've attempted to load
|
|
105
|
+
isRustTreeSitterAvailable();
|
|
106
|
+
return loadingError;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Reset the loader state (useful for testing).
|
|
110
|
+
*/
|
|
111
|
+
export function resetRustLoader() {
|
|
112
|
+
rustAvailable = null;
|
|
113
|
+
cachedTreeSitter = null;
|
|
114
|
+
cachedRustLanguage = null;
|
|
115
|
+
loadingError = null;
|
|
116
|
+
}
|
|
117
|
+
// ============================================
|
|
118
|
+
// Internal Functions
|
|
119
|
+
// ============================================
|
|
120
|
+
/**
|
|
121
|
+
* Attempt to load tree-sitter and tree-sitter-rust.
|
|
122
|
+
*
|
|
123
|
+
* @throws Error if loading fails
|
|
124
|
+
*/
|
|
125
|
+
function loadRustTreeSitter() {
|
|
126
|
+
// Skip if already loaded
|
|
127
|
+
if (cachedTreeSitter && cachedRustLanguage) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
// Dynamic require for optional dependencies
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
133
|
+
cachedTreeSitter = require('tree-sitter');
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
throw new Error(`Failed to load tree-sitter: ${error instanceof Error ? error.message : 'unknown error'}. ` +
|
|
137
|
+
'Install with: pnpm add tree-sitter tree-sitter-rust');
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
141
|
+
cachedRustLanguage = require('tree-sitter-rust');
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
// Clear tree-sitter cache since we can't use it without Rust
|
|
145
|
+
cachedTreeSitter = null;
|
|
146
|
+
throw new Error(`Failed to load tree-sitter-rust: ${error instanceof Error ? error.message : 'unknown error'}. ` +
|
|
147
|
+
'Install with: pnpm add tree-sitter-rust');
|
|
148
|
+
}
|
|
149
|
+
logDebug('tree-sitter and tree-sitter-rust loaded successfully');
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Log debug message if debug mode is enabled.
|
|
153
|
+
*
|
|
154
|
+
* @param message - Message to log
|
|
155
|
+
*/
|
|
156
|
+
function logDebug(message) {
|
|
157
|
+
if (process.env['DRIFT_PARSER_DEBUG'] === 'true') {
|
|
158
|
+
console.debug(`[rust-loader] ${message}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=rust-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rust-loader.js","sourceRoot":"","sources":["../../../src/parsers/tree-sitter/rust-loader.ts"],"names":[],"mappings":"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"}
|