#![warn(missing_docs)]
#![warn(rustdoc::missing_crate_level_docs)]
pub mod error;
pub mod git;
pub mod types;
pub mod validation;
pub mod encoding;
pub mod limits;
pub mod ast;
pub mod fs;
pub mod analysis;
pub mod callgraph;
pub mod cfg;
pub mod metrics;
pub mod search;
pub mod dfg;
pub mod pdg;
pub mod ssa;
pub mod alias;
pub mod dataflow;
#[cfg(feature = "semantic")]
pub mod semantic;
pub mod surface;
pub mod fix;
pub mod wrappers;
pub use error::TldrError;
pub use types::*;
pub use ast::{extract_file, get_code_structure, get_imports};
pub use fs::get_file_tree;
pub use analysis::{
architecture_analysis, change_impact, change_impact_extended, collect_all_functions,
dead_code_analysis, find_importers, impact_analysis, impact_analysis_with_ast_fallback,
ChangeImpactMetadata, ChangeImpactReport, DetectionMethod, TestFunction,
};
pub use callgraph::build_project_call_graph;
pub use cfg::get_cfg_context;
pub use metrics::calculate_complexity;
pub use dfg::get_dfg_context;
pub use pdg::{get_pdg_context, get_slice, get_slice_rich, RichSlice, SliceEdge, SliceNode};
pub use search::{
enriched_search, enriched_search_with_callgraph_cache, enriched_search_with_index,
enriched_search_with_structure_cache, hybrid_search, read_callgraph_cache,
read_structure_cache, search, search_with_inner, write_structure_cache, Bm25Index, Bm25Result,
CallGraphLookup, EmbeddingClient, EnrichedResult, EnrichedSearchOptions, EnrichedSearchReport,
HybridResult, HybridSearchReport, SearchMatch, SearchMode, StructureLookup, Tokenizer,
};
pub type TldrResult<T> = Result<T, TldrError>;
pub use validation::{detect_or_parse_language, validate_file_path};
pub mod context;
pub use context::{get_relevant_context, FunctionContext, RelevantContext};
pub mod quality;
pub mod security;
pub mod patterns;
pub use quality::{
analyze_smells_aggregated, detect_smells, SmellFinding, SmellType, SmellsReport,
ThresholdPreset,
};
pub use quality::{
maintainability_index, FileMI, HalsteadMetrics, MISummary, MaintainabilityReport,
};
pub use security::{
compute_taint, compute_taint_with_tree, TaintFlow, TaintInfo, TaintSink, TaintSinkType,
TaintSource, TaintSourceType,
};
pub use security::{scan_secrets, SecretFinding, SecretsReport, Severity};
pub use security::{scan_vulnerabilities, VulnFinding, VulnReport, VulnType};
pub use patterns::{detect_patterns, detect_patterns_with_config, PatternConfig, PatternMiner};
pub mod inheritance;
pub use inheritance::format::{format_dot, format_text};
pub use inheritance::{extract_inheritance, InheritanceOptions};
pub mod diagnostics;
pub use diagnostics::{
Diagnostic, DiagnosticsReport, DiagnosticsSummary, Severity as DiagnosticSeverity,
};
pub use dataflow::{
compute_abstract_interp,
compute_available_exprs,
compute_available_exprs_with_source_and_lang,
normalize_expression,
AbstractInterpInfo,
AbstractState,
AbstractValue,
AvailableExprsInfo,
ConstantValue,
Expression,
Nullability,
};