SYMBOL INDEX (587 symbols across 56 files) FILE: Detector.py function intersect (line 43) | def intersect(a, b): function union (line 47) | def union(a, b): function jaccard_sim (line 51) | def jaccard_sim(a, b): function normalize (line 57) | def normalize(string): function removeComment (line 67) | def removeComment(string): function readFile (line 80) | def readFile(path): function readOSSIDX (line 103) | def readOSSIDX(): function readIDX2VER (line 114) | def readIDX2VER(): function readVulHashes (line 123) | def readVulHashes(): function spaceReduction (line 137) | def spaceReduction(tar, vulHashes, ossIDX): function detector (line 198) | def detector(tar): function main (line 530) | def main(target): FILE: Preprocessing.py function intersect (line 49) | def intersect(a, b): function union (line 58) | def union(a, b): function jaccard_sim (line 67) | def jaccard_sim(a, b): function normalize (line 80) | def normalize(string): function normalize_hash (line 93) | def normalize_hash(string): function abstract (line 104) | def abstract(body, ext): function removeComment (line 242) | def removeComment(string): function readFile (line 256) | def readFile(path): function preprocessor (line 282) | def preprocessor(target): function main (line 406) | def main(target): FILE: go/cmd/movery/main.go function main (line 10) | func main() { FILE: go/internal/analyzers/language.go type LanguageAnalyzer (line 11) | type LanguageAnalyzer interface type GoAnalyzer (line 20) | type GoAnalyzer struct method ParseFile (line 32) | func (ga *GoAnalyzer) ParseFile(filename string) (ast.Node, error) { method ExtractFunctions (line 37) | func (ga *GoAnalyzer) ExtractFunctions(node ast.Node) []ast.Node { method ExtractClasses (line 49) | func (ga *GoAnalyzer) ExtractClasses(node ast.Node) []ast.Node { method ExtractImports (line 61) | func (ga *GoAnalyzer) ExtractImports(node ast.Node) []string { method ExtractVariables (line 73) | func (ga *GoAnalyzer) ExtractVariables(node ast.Node) []ast.Node { function NewGoAnalyzer (line 25) | func NewGoAnalyzer() *GoAnalyzer { function GetFileLanguage (line 85) | func GetFileLanguage(filename string) string { FILE: go/internal/api/server.go type Server (line 18) | type Server struct method setupRoutes (line 41) | func (s *Server) setupRoutes() { method Run (line 56) | func (s *Server) Run(host string, port int) error { method scanCodeHandler (line 61) | func (s *Server) scanCodeHandler(c *gin.Context) { method scanFileHandler (line 137) | func (s *Server) scanFileHandler(c *gin.Context) { method scanDirectoryHandler (line 181) | func (s *Server) scanDirectoryHandler(c *gin.Context) { method languagesHandler (line 228) | func (s *Server) languagesHandler(c *gin.Context) { method healthHandler (line 236) | func (s *Server) healthHandler(c *gin.Context) { function NewServer (line 24) | func NewServer() *Server { FILE: go/internal/cmd/generate.go function init (line 67) | func init() { function generateGithubActionFile (line 78) | func generateGithubActionFile(outputPath string) error { function generateGitlabCIFile (line 124) | func generateGitlabCIFile(outputPath string) error { function generateVSCodeExtensionFiles (line 151) | func generateVSCodeExtensionFiles(outputPath string) error { FILE: go/internal/cmd/root.go function Execute (line 23) | func Execute() error { function init (line 27) | func init() { FILE: go/internal/cmd/scan.go function init (line 156) | func init() { FILE: go/internal/cmd/server.go function init (line 42) | func init() { FILE: go/internal/cmd/web.go function init (line 42) | func init() { FILE: go/internal/config/config.go type Config (line 8) | type Config struct type ProcessingConfig (line 16) | type ProcessingConfig struct type DetectorConfig (line 26) | type DetectorConfig struct type LoggingConfig (line 37) | type LoggingConfig struct type SecurityConfig (line 46) | type SecurityConfig struct function LoadConfig (line 55) | func LoadConfig(configFile string) (*Config, error) { function SetDefaults (line 72) | func SetDefaults() { FILE: go/internal/core/config.go type Config (line 15) | type Config struct method ApplyToScanner (line 134) | func (c *Config) ApplyToScanner(scanner *Scanner) { type ScannerConfig (line 22) | type ScannerConfig struct type WebConfig (line 30) | type WebConfig struct type ServerConfig (line 37) | type ServerConfig struct function NewConfig (line 44) | func NewConfig() *Config { function LoadConfig (line 66) | func LoadConfig(configPath string) (*Config, error) { function SaveConfig (line 103) | func SaveConfig(config *Config, configPath string) error { FILE: go/internal/core/config_test.go function TestNewConfig (line 13) | func TestNewConfig(t *testing.T) { function TestLoadConfigJSON (line 30) | func TestLoadConfigJSON(t *testing.T) { function TestLoadConfigYAML (line 79) | func TestLoadConfigYAML(t *testing.T) { function TestSaveConfig (line 126) | func TestSaveConfig(t *testing.T) { function TestApplyToScanner (line 167) | func TestApplyToScanner(t *testing.T) { FILE: go/internal/core/models.go type Signature (line 8) | type Signature struct type Match (line 18) | type Match struct type Summary (line 27) | type Summary struct type ReportData (line 36) | type ReportData struct type Reporter (line 44) | type Reporter interface type Detector (line 49) | type Detector interface function GenerateSummary (line 57) | func GenerateSummary(results map[string][]Match) Summary { FILE: go/internal/core/scanner.go type Scanner (line 12) | type Scanner struct method RegisterDetector (line 33) | func (s *Scanner) RegisterDetector(detector Detector) { method SetParallel (line 38) | func (s *Scanner) SetParallel(parallel bool) { method IsParallel (line 43) | func (s *Scanner) IsParallel() bool { method SetIncremental (line 48) | func (s *Scanner) SetIncremental(incremental bool) { method IsIncremental (line 53) | func (s *Scanner) IsIncremental() bool { method SetConfidenceThreshold (line 58) | func (s *Scanner) SetConfidenceThreshold(threshold float64) { method SupportedLanguages (line 63) | func (s *Scanner) SupportedLanguages() []string { method ScanFile (line 72) | func (s *Scanner) ScanFile(filePath string) ([]Match, error) { method ScanDirectory (line 115) | func (s *Scanner) ScanDirectory(dirPath string, excludePatterns []stri... function NewScanner (line 22) | func NewScanner() *Scanner { FILE: go/internal/core/scanner_test.go function TestNewScanner (line 13) | func TestNewScanner(t *testing.T) { function TestSetParallel (line 21) | func TestSetParallel(t *testing.T) { function TestSetIncremental (line 33) | func TestSetIncremental(t *testing.T) { function TestRegisterDetector (line 45) | func TestRegisterDetector(t *testing.T) { function TestScanFile (line 60) | func TestScanFile(t *testing.T) { function TestScanDirectory (line 85) | func TestScanDirectory(t *testing.T) { function TestGenerateSummary (line 118) | func TestGenerateSummary(t *testing.T) { type mockDetector (line 190) | type mockDetector struct method Name (line 192) | func (d *mockDetector) Name() string { method SupportedLanguages (line 196) | func (d *mockDetector) SupportedLanguages() []string { method DetectFile (line 200) | func (d *mockDetector) DetectFile(filePath string) ([]Match, error) { method DetectCode (line 217) | func (d *mockDetector) DetectCode(code string, filePath string) ([]Mat... FILE: go/internal/detectors/javascript.go type JavaScriptDetector (line 15) | type JavaScriptDetector struct method Name (line 27) | func (d *JavaScriptDetector) Name() string { method SupportedLanguages (line 32) | func (d *JavaScriptDetector) SupportedLanguages() []string { method DetectFile (line 37) | func (d *JavaScriptDetector) DetectFile(filePath string) ([]core.Match... method DetectCode (line 54) | func (d *JavaScriptDetector) DetectCode(code string, filePath string) ... method loadSignatures (line 93) | func (d *JavaScriptDetector) loadSignatures() { method calculateConfidence (line 230) | func (d *JavaScriptDetector) calculateConfidence(matchedCode string, p... method checkJavaScriptSpecificIssues (line 263) | func (d *JavaScriptDetector) checkJavaScriptSpecificIssues(code string... function NewJavaScriptDetector (line 20) | func NewJavaScriptDetector() *JavaScriptDetector { FILE: go/internal/detectors/python.go type PythonDetector (line 15) | type PythonDetector struct method Name (line 27) | func (d *PythonDetector) Name() string { method SupportedLanguages (line 32) | func (d *PythonDetector) SupportedLanguages() []string { method DetectFile (line 37) | func (d *PythonDetector) DetectFile(filePath string) ([]core.Match, er... method DetectCode (line 53) | func (d *PythonDetector) DetectCode(code string, filePath string) ([]c... method loadSignatures (line 92) | func (d *PythonDetector) loadSignatures() { method calculateConfidence (line 229) | func (d *PythonDetector) calculateConfidence(matchedCode string, patte... method checkPythonSpecificIssues (line 262) | func (d *PythonDetector) checkPythonSpecificIssues(code string, filePa... function NewPythonDetector (line 20) | func NewPythonDetector() *PythonDetector { FILE: go/internal/detectors/vulnerability.go type Signature (line 17) | type Signature struct type Match (line 25) | type Match struct type VulnerabilityDetector (line 33) | type VulnerabilityDetector struct method LoadSignatures (line 47) | func (d *VulnerabilityDetector) LoadSignatures(signatureFile string) e... method DetectFile (line 69) | func (d *VulnerabilityDetector) DetectFile(filePath string) ([]Match, ... method AnalyzeAST (line 134) | func (d *VulnerabilityDetector) AnalyzeAST(filePath string) ([]Match, ... method DetectSimilarPatterns (line 181) | func (d *VulnerabilityDetector) DetectSimilarPatterns(filePath string,... method calculateConfidence (line 229) | func (d *VulnerabilityDetector) calculateConfidence(matchedCode, patte... method calculateSimilarity (line 255) | func (d *VulnerabilityDetector) calculateSimilarity(str1, str2 string)... function NewVulnerabilityDetector (line 40) | func NewVulnerabilityDetector() *VulnerabilityDetector { function max (line 282) | func max(a, b int) int { FILE: go/internal/reporters/html.go type HTMLReporter (line 15) | type HTMLReporter struct method GenerateReport (line 23) | func (r *HTMLReporter) GenerateReport(data core.ReportData, outputPath... method processData (line 59) | func (r *HTMLReporter) processData(data core.ReportData) map[string]in... function NewHTMLReporter (line 18) | func NewHTMLReporter() *HTMLReporter { constant htmlTemplate (line 115) | htmlTemplate = ` FILE: go/internal/reporters/json.go type JSONReporter (line 12) | type JSONReporter struct method GenerateReport (line 20) | func (r *JSONReporter) GenerateReport(data core.ReportData, outputPath... function NewJSONReporter (line 15) | func NewJSONReporter() *JSONReporter { FILE: go/internal/reporters/xml.go type XMLReporter (line 12) | type XMLReporter struct method GenerateReport (line 54) | func (r *XMLReporter) GenerateReport(data core.ReportData, outputPath ... method convertToXML (line 85) | func (r *XMLReporter) convertToXML(data core.ReportData) XMLReportData { function NewXMLReporter (line 15) | func NewXMLReporter() *XMLReporter { type XMLReportData (line 20) | type XMLReportData struct type XMLSummary (line 29) | type XMLSummary struct type XMLFileResult (line 37) | type XMLFileResult struct type XMLMatch (line 43) | type XMLMatch struct FILE: go/internal/utils/logging.go function GetLogger (line 17) | func GetLogger() *logrus.Logger { type FileLogger (line 30) | type FileLogger struct method Close (line 53) | func (fl *FileLogger) Close() error { function NewFileLogger (line 36) | func NewFileLogger(filename string) (*FileLogger, error) { function SetVerbosity (line 61) | func SetVerbosity(verbose bool) { FILE: go/internal/utils/memory.go type MemoryMonitor (line 13) | type MemoryMonitor struct method Start (line 29) | func (mm *MemoryMonitor) Start() { method Stop (line 56) | func (mm *MemoryMonitor) Stop() { function NewMemoryMonitor (line 20) | func NewMemoryMonitor(maxMemoryGB float64, interval time.Duration) *Memo... type LRUCache (line 61) | type LRUCache struct method Get (line 83) | func (c *LRUCache) Get(key interface{}) (interface{}, bool) { method Put (line 95) | func (c *LRUCache) Put(key, value interface{}) { type entry (line 68) | type entry struct function NewLRUCache (line 74) | func NewLRUCache(capacity int) *LRUCache { FILE: go/internal/utils/parallel.go type Job (line 8) | type Job interface type WorkerPool (line 13) | type WorkerPool struct method Start (line 32) | func (wp *WorkerPool) Start() { method worker (line 40) | func (wp *WorkerPool) worker() { method Submit (line 58) | func (wp *WorkerPool) Submit(job Job) { method Stop (line 63) | func (wp *WorkerPool) Stop() { method Results (line 71) | func (wp *WorkerPool) Results() <-chan error { function NewWorkerPool (line 22) | func NewWorkerPool(numWorkers int, queueSize int) *WorkerPool { FILE: go/internal/utils/security.go type SecurityChecker (line 18) | type SecurityChecker struct method CheckMemoryUsage (line 56) | func (c *SecurityChecker) CheckMemoryUsage(filePath string) (uint64, e... method CheckExecutionTime (line 81) | func (c *SecurityChecker) CheckExecutionTime(filePath string, timeout ... method CheckFileAccess (line 114) | func (c *SecurityChecker) CheckFileAccess(filePath string) ([]string, ... method CheckNetworkAccess (line 141) | func (c *SecurityChecker) CheckNetworkAccess(filePath string) ([]strin... method CheckInputValidation (line 168) | func (c *SecurityChecker) CheckInputValidation(filePath string) ([]str... method CheckRandomGeneration (line 199) | func (c *SecurityChecker) CheckRandomGeneration(filePath string) ([]st... method CheckSensitiveData (line 228) | func (c *SecurityChecker) CheckSensitiveData(filePath string) ([]strin... method CheckSandboxEscape (line 255) | func (c *SecurityChecker) CheckSandboxEscape(filePath string) ([]strin... method PerformFullCheck (line 286) | func (c *SecurityChecker) PerformFullCheck(filePath string) (map[strin... function NewSecurityChecker (line 24) | func NewSecurityChecker() *SecurityChecker { FILE: go/internal/utils/security_test.go function TestNewSecurityChecker (line 9) | func TestNewSecurityChecker(t *testing.T) { function createTestFile (line 27) | func createTestFile(content string) (string, error) { function TestCheckMemoryUsage (line 46) | func TestCheckMemoryUsage(t *testing.T) { function TestCheckExecutionTime (line 76) | func TestCheckExecutionTime(t *testing.T) { function TestCheckFileAccess (line 105) | func TestCheckFileAccess(t *testing.T) { function TestCheckNetworkAccess (line 135) | func TestCheckNetworkAccess(t *testing.T) { function TestCheckInputValidation (line 165) | func TestCheckInputValidation(t *testing.T) { function TestCheckRandomGeneration (line 197) | func TestCheckRandomGeneration(t *testing.T) { function TestCheckSensitiveData (line 227) | func TestCheckSensitiveData(t *testing.T) { function TestCheckSandboxEscape (line 254) | func TestCheckSandboxEscape(t *testing.T) { function TestPerformFullCheck (line 284) | func TestPerformFullCheck(t *testing.T) { FILE: go/internal/utils/tests/security_test.go function TestSecurityChecker (line 12) | func TestSecurityChecker(t *testing.T) { function TestSecurityCheckerEdgeCases (line 254) | func TestSecurityCheckerEdgeCases(t *testing.T) { FILE: go/internal/web/app.go type App (line 18) | type App struct method setupRoutes (line 41) | func (a *App) setupRoutes() { method Run (line 57) | func (a *App) Run(host string, port int) error { method indexHandler (line 62) | func (a *App) indexHandler(c *gin.Context) { method scanFileHandler (line 69) | func (a *App) scanFileHandler(c *gin.Context) { method scanDirectoryHandler (line 113) | func (a *App) scanDirectoryHandler(c *gin.Context) { method languagesHandler (line 154) | func (a *App) languagesHandler(c *gin.Context) { method healthHandler (line 162) | func (a *App) healthHandler(c *gin.Context) { function NewApp (line 24) | func NewApp() *App { FILE: go/internal/web/static/js/app.js function initCharts (line 22) | function initCharts() { function loadSettings (line 76) | function loadSettings() { function saveSettings (line 89) | function saveSettings() { function bindEvents (line 104) | function bindEvents() { function scanFile (line 130) | function scanFile() { function scanDirectory (line 167) | function scanDirectory() { function updateResults (line 214) | function updateResults(data) { function getSeverityClass (line 317) | function getSeverityClass(severity) { function getSeverityText (line 327) | function getSeverityText(severity) { function escapeHtml (line 337) | function escapeHtml(html) { function showLoading (line 344) | function showLoading(message) { function hideLoading (line 367) | function hideLoading() { FILE: go/tests/integration/workflow_test.go function TestWorkflow (line 18) | func TestWorkflow(t *testing.T) { function createTestProject (line 194) | func createTestProject(dir string) error { function hasIssues (line 317) | func hasIssues(results map[string]utils.SecurityCheckResult) bool { FILE: go/tests/security/security_test.go type TestSecurity (line 19) | type TestSecurity struct method createTestFile (line 26) | func (ts *TestSecurity) createTestFile(content string) (string, error) { function TestMemoryLimit (line 40) | func TestMemoryLimit(t *testing.T) { function TestExecutionTimeout (line 68) | func TestExecutionTimeout(t *testing.T) { function TestFileAccess (line 95) | func TestFileAccess(t *testing.T) { function TestNetworkAccess (line 124) | func TestNetworkAccess(t *testing.T) { function TestCodeInjection (line 153) | func TestCodeInjection(t *testing.T) { function TestInputValidation (line 182) | func TestInputValidation(t *testing.T) { function TestSecureRandom (line 209) | func TestSecureRandom(t *testing.T) { function TestSensitiveData (line 242) | func TestSensitiveData(t *testing.T) { function TestSandboxEscape (line 270) | func TestSandboxEscape(t *testing.T) { FILE: movery/analyzers/code_analyzer.py class CodeAnalyzer (line 15) | class CodeAnalyzer: method __init__ (line 18) | def __init__(self): method analyze_file (line 29) | def analyze_file(self, filename: str) -> Dict: method _calculate_complexity (line 65) | def _calculate_complexity(self, ast_node: any) -> int: FILE: movery/analyzers/language.py class LanguageAnalyzer (line 22) | class LanguageAnalyzer(ABC): method __init__ (line 25) | def __init__(self): method parse_file (line 29) | def parse_file(self, filename: str) -> Any: method get_functions (line 34) | def get_functions(self, ast_node: Any) -> List[Dict]: method get_classes (line 39) | def get_classes(self, ast_node: Any) -> List[Dict]: method get_imports (line 44) | def get_imports(self, ast_node: Any) -> List[Dict]: method get_variables (line 49) | def get_variables(self, ast_node: Any) -> List[Dict]: method supports_file (line 53) | def supports_file(self, filename: str) -> bool: class PythonAnalyzer (line 58) | class PythonAnalyzer(LanguageAnalyzer): method __init__ (line 61) | def __init__(self): method parse_file (line 65) | def parse_file(self, filename: str) -> ast.AST: method get_functions (line 70) | def get_functions(self, ast_node: ast.AST) -> List[Dict]: method get_classes (line 86) | def get_classes(self, ast_node: ast.AST) -> List[Dict]: method get_imports (line 102) | def get_imports(self, ast_node: ast.AST) -> List[Dict]: method get_variables (line 123) | def get_variables(self, ast_node: ast.AST) -> List[Dict]: method _get_return_annotation (line 138) | def _get_return_annotation(self, node: ast.FunctionDef) -> Optional[str]: method _get_decorator_name (line 144) | def _get_decorator_name(self, node: ast.expr) -> str: method _get_name (line 154) | def _get_name(self, node: ast.expr) -> str: method _get_value (line 162) | def _get_value(self, node: ast.expr) -> Any: class JavaAnalyzer (line 175) | class JavaAnalyzer(LanguageAnalyzer): method __init__ (line 178) | def __init__(self): method parse_file (line 182) | def parse_file(self, filename: str) -> Dict: method get_functions (line 188) | def get_functions(self, ast_node: Dict) -> List[Dict]: method get_classes (line 193) | def get_classes(self, ast_node: Dict) -> List[Dict]: method get_imports (line 198) | def get_imports(self, ast_node: Dict) -> List[Dict]: method get_variables (line 203) | def get_variables(self, ast_node: Dict) -> List[Dict]: class CppAnalyzer (line 208) | class CppAnalyzer(LanguageAnalyzer): method __init__ (line 211) | def __init__(self): method parse_file (line 215) | def parse_file(self, filename: str) -> Dict: method get_functions (line 221) | def get_functions(self, ast_node: Dict) -> List[Dict]: method get_classes (line 226) | def get_classes(self, ast_node: Dict) -> List[Dict]: method get_imports (line 231) | def get_imports(self, ast_node: Dict) -> List[Dict]: method get_variables (line 236) | def get_variables(self, ast_node: Dict) -> List[Dict]: class GoAnalyzer (line 241) | class GoAnalyzer(LanguageAnalyzer): method __init__ (line 244) | def __init__(self): method parse_file (line 248) | def parse_file(self, filename: str) -> Dict: method get_functions (line 254) | def get_functions(self, ast_node: Dict) -> List[Dict]: method get_classes (line 259) | def get_classes(self, ast_node: Dict) -> List[Dict]: method get_imports (line 264) | def get_imports(self, ast_node: Dict) -> List[Dict]: method get_variables (line 269) | def get_variables(self, ast_node: Dict) -> List[Dict]: class JavaScriptAnalyzer (line 274) | class JavaScriptAnalyzer(LanguageAnalyzer): method __init__ (line 277) | def __init__(self): method parse_file (line 281) | def parse_file(self, filename: str) -> Dict: method get_functions (line 287) | def get_functions(self, ast_node: Dict) -> List[Dict]: method get_classes (line 292) | def get_classes(self, ast_node: Dict) -> List[Dict]: method get_imports (line 297) | def get_imports(self, ast_node: Dict) -> List[Dict]: method get_variables (line 302) | def get_variables(self, ast_node: Dict) -> List[Dict]: class LanguageAnalyzerFactory (line 307) | class LanguageAnalyzerFactory: method get_analyzer (line 319) | def get_analyzer(cls, filename: str) -> Optional[LanguageAnalyzer]: method register_analyzer (line 328) | def register_analyzer(cls, language: str, analyzer: LanguageAnalyzer): FILE: movery/config/config.py class ProcessingConfig (line 10) | class ProcessingConfig: class DetectorConfig (line 20) | class DetectorConfig: class LoggingConfig (line 34) | class LoggingConfig: class SecurityConfig (line 44) | class SecurityConfig: class Config (line 54) | class Config: function load_config (line 60) | def load_config(config_path: str = None) -> Config: FILE: movery/detectors/vulnerability.py class Signature (line 10) | class Signature: class VulnerabilityMatch (line 18) | class VulnerabilityMatch: class VulnerabilityDetector (line 25) | class VulnerabilityDetector: method __init__ (line 28) | def __init__(self): method load_signatures (line 33) | def load_signatures(self, signature_file: str) -> None: method detect_file (line 51) | def detect_file(self, file_path: str) -> List[VulnerabilityMatch]: method _calculate_confidence (line 82) | def _calculate_confidence(self, matched_code: str, pattern: str) -> fl... method analyze_ast (line 113) | def analyze_ast(self, node: ast.AST) -> List[VulnerabilityMatch]: method detect_similar_patterns (line 182) | def detect_similar_patterns(self, code: str, threshold: float = 0.7) -... method _calculate_similarity (line 266) | def _calculate_similarity(self, str1: str, str2: str) -> float: FILE: movery/main.py function parse_args (line 25) | def parse_args(): function load_config (line 75) | def load_config(config_file: str) -> MoveryConfig: function find_source_files (line 81) | def find_source_files(target: str) -> List[str]: function analyze_file (line 109) | def analyze_file(file: str) -> List[Dict]: function main (line 119) | def main(): FILE: movery/reporters/html.py class HTMLReporter (line 21) | class HTMLReporter: method __init__ (line 24) | def __init__(self, template_dir: str = "templates"): method generate_report (line 28) | def generate_report(self, matches: List[VulnerabilityMatch], method _prepare_report_data (line 53) | def _prepare_report_data(self, matches: List[VulnerabilityMatch]) -> D... method _generate_charts (line 89) | def _generate_charts(self, matches: List[VulnerabilityMatch]) -> Dict[... method _fig_to_base64 (line 139) | def _fig_to_base64(self, fig: go.Figure) -> str: FILE: movery/tests/integration/test_workflow.py class TestWorkflow (line 12) | class TestWorkflow(unittest.TestCase): method setUp (line 13) | def setUp(self): method create_test_project (line 24) | def create_test_project(self): method tearDown (line 157) | def tearDown(self): method test_full_workflow (line 161) | def test_full_workflow(self): method test_parallel_processing (line 222) | def test_parallel_processing(self): method test_error_handling (line 256) | def test_error_handling(self): FILE: movery/tests/security/test_security.py class TestSecurity (line 12) | class TestSecurity(unittest.TestCase): method setUp (line 13) | def setUp(self): method create_test_file (line 19) | def create_test_file(self, content): method test_memory_limit (line 26) | def test_memory_limit(self): method test_execution_timeout (line 39) | def test_execution_timeout(self): method test_file_access (line 52) | def test_file_access(self): method test_network_access (line 68) | def test_network_access(self): method test_code_injection (line 84) | def test_code_injection(self): method test_input_validation (line 97) | def test_input_validation(self): method test_secure_random (line 111) | def test_secure_random(self): method test_sensitive_data (line 126) | def test_sensitive_data(self): method test_sandbox_escape (line 140) | def test_sandbox_escape(self): method tearDown (line 157) | def tearDown(self): FILE: movery/tests/unit/test_analyzer.py class TestCodeAnalyzer (line 8) | class TestCodeAnalyzer(unittest.TestCase): method setUp (line 9) | def setUp(self): method test_parse_python (line 15) | def test_parse_python(self): method test_analyze_function (line 30) | def test_analyze_function(self): method test_data_flow (line 49) | def test_data_flow(self): method test_complexity_analysis (line 65) | def test_complexity_analysis(self): method tearDown (line 87) | def tearDown(self): FILE: movery/tests/unit/test_detector.py class TestVulnerabilityDetector (line 8) | class TestVulnerabilityDetector(unittest.TestCase): method setUp (line 9) | def setUp(self): method test_load_signatures (line 15) | def test_load_signatures(self): method test_detect_vulnerability (line 37) | def test_detect_vulnerability(self): method test_false_positive (line 52) | def test_false_positive(self): method test_similarity_matching (line 65) | def test_similarity_matching(self): method tearDown (line 80) | def tearDown(self): FILE: movery/tests/unit/test_security.py class TestSecurityChecker (line 9) | class TestSecurityChecker(unittest.TestCase): method setUp (line 10) | def setUp(self): method tearDown (line 68) | def tearDown(self): method test_check_memory_usage (line 72) | def test_check_memory_usage(self): method test_check_execution_time (line 79) | def test_check_execution_time(self): method test_check_file_access (line 86) | def test_check_file_access(self): method test_check_network_access (line 93) | def test_check_network_access(self): method test_check_input_validation (line 100) | def test_check_input_validation(self): method test_check_random_generation (line 107) | def test_check_random_generation(self): method test_check_sensitive_data (line 114) | def test_check_sensitive_data(self): method test_check_sandbox_escape (line 121) | def test_check_sandbox_escape(self): method test_perform_full_check (line 128) | def test_perform_full_check(self): method test_concurrent_checks (line 152) | def test_concurrent_checks(self): FILE: movery/tests/unit/test_vulnerability.py class TestVulnerabilityDetector (line 9) | class TestVulnerabilityDetector(unittest.TestCase): method setUp (line 10) | def setUp(self): method tearDown (line 61) | def tearDown(self): method test_load_signatures (line 65) | def test_load_signatures(self): method test_detect_file (line 74) | def test_detect_file(self): method test_analyze_ast (line 85) | def test_analyze_ast(self): method test_detect_similar_patterns (line 97) | def test_detect_similar_patterns(self): method test_calculate_confidence (line 121) | def test_calculate_confidence(self): method test_calculate_similarity (line 134) | def test_calculate_similarity(self): FILE: movery/utils/logging.py class AsyncLogHandler (line 18) | class AsyncLogHandler(logging.Handler): method __init__ (line 21) | def __init__(self, capacity: int = 1000): method emit (line 30) | def emit(self, record: logging.LogRecord): method _process_logs (line 36) | def _process_logs(self): method _write_log (line 46) | def _write_log(self, record: logging.LogRecord): method close (line 54) | def close(self): class ProgressLogger (line 60) | class ProgressLogger: method __init__ (line 63) | def __init__(self, total: int, desc: str = "", interval: float = 0.1): method update (line 71) | def update(self, n: int = 1): method _display_progress (line 78) | def _display_progress(self): method finish (line 88) | def finish(self): class JsonFormatter (line 93) | class JsonFormatter(logging.Formatter): method format (line 96) | def format(self, record: logging.LogRecord) -> str: function setup_logging (line 115) | def setup_logging(log_file: Optional[str] = None, level: str = None): function log_execution_time (line 148) | def log_execution_time(logger: Optional[logging.Logger] = None): function get_logger (line 164) | def get_logger(name: str) -> logging.Logger: FILE: movery/utils/memory.py class MemoryMonitor (line 20) | class MemoryMonitor: method __init__ (line 23) | def __init__(self, max_memory: Optional[int] = None): method get_memory_usage (line 29) | def get_memory_usage(self) -> int: method check_memory (line 33) | def check_memory(self) -> bool: method force_garbage_collection (line 43) | def force_garbage_collection(self): method monitor_operation (line 48) | def monitor_operation(self, operation_name: str): class LRUCache (line 60) | class LRUCache: method __init__ (line 63) | def __init__(self, max_size: Optional[int] = None): method get (line 69) | def get(self, key: str) -> Optional[Any]: method put (line 78) | def put(self, key: str, value: Any, size: Optional[int] = None): method clear (line 99) | def clear(self): class MemoryMappedFile (line 105) | class MemoryMappedFile: method __init__ (line 108) | def __init__(self, filename: str, mode: str = "r"): method __enter__ (line 114) | def __enter__(self): method __exit__ (line 123) | def __exit__(self, exc_type, exc_val, exc_tb): method read (line 129) | def read(self, size: int = -1) -> bytes: method write (line 135) | def write(self, data: bytes): method seek (line 141) | def seek(self, offset: int): function chunk_iterator (line 145) | def chunk_iterator(data: Any, chunk_size: Optional[int] = None) -> Gener... FILE: movery/utils/parallel.py class WorkerPool (line 23) | class WorkerPool: method __init__ (line 26) | def __init__(self, num_workers: Optional[int] = None, method start (line 38) | def start(self): method stop (line 55) | def stop(self): method submit (line 68) | def submit(self, func: Callable, *args, **kwargs) -> Any: method map (line 76) | def map(self, func: Callable, iterable: List[Any]) -> List[Any]: method imap (line 83) | def imap(self, func: Callable, iterable: List[Any]) -> Any: method get_context (line 92) | def get_context(self): class TaskQueue (line 100) | class TaskQueue: method __init__ (line 103) | def __init__(self, maxsize: int = 0): method put (line 112) | def put(self, item: Any, priority: int = 0, block: bool = True, method get (line 137) | def get(self, block: bool = True, timeout: Optional[float] = None) -> ... method task_done (line 160) | def task_done(self): method join (line 170) | def join(self): method qsize (line 176) | def qsize(self) -> int: method empty (line 180) | def empty(self) -> bool: method full (line 184) | def full(self) -> bool: method _qsize (line 188) | def _qsize(self) -> int: class ParallelExecutor (line 192) | class ParallelExecutor: method __init__ (line 195) | def __init__(self, num_workers: Optional[int] = None, method submit (line 203) | def submit(self, task_id: str, func: Callable, *args, method execute (line 208) | def execute(self) -> Tuple[Dict[str, Any], Dict[str, Exception]]: method _handle_result (line 227) | def _handle_result(self, task_id: str, future): function parallel_map (line 238) | def parallel_map(func: Callable, iterable: List[Any], FILE: movery/utils/security.py class SecurityChecker (line 11) | class SecurityChecker: method __init__ (line 14) | def __init__(self): method check_memory_usage (line 45) | def check_memory_usage(self, file_path: str) -> Dict[str, Any]: method check_execution_time (line 92) | def check_execution_time(self, file_path: str, timeout: float = 5.0) -... method check_file_access (line 138) | def check_file_access(self, file_path: str) -> Dict[str, Any]: method check_network_access (line 173) | def check_network_access(self, file_path: str) -> Dict[str, Any]: method check_input_validation (line 208) | def check_input_validation(self, file_path: str) -> Dict[str, Any]: method check_random_generation (line 253) | def check_random_generation(self, file_path: str) -> Dict[str, Any]: method check_sensitive_data (line 289) | def check_sensitive_data(self, file_path: str) -> Dict[str, Any]: method check_sandbox_escape (line 324) | def check_sandbox_escape(self, file_path: str) -> Dict[str, Any]: method perform_full_check (line 367) | def perform_full_check(self, file_path: str) -> Dict[str, Any]: FILE: src/analyzers/language.py class LanguageAnalyzer (line 22) | class LanguageAnalyzer(ABC): method __init__ (line 25) | def __init__(self): method parse_file (line 29) | def parse_file(self, filename: str) -> Any: method get_functions (line 34) | def get_functions(self, ast_node: Any) -> List[Dict]: method get_classes (line 39) | def get_classes(self, ast_node: Any) -> List[Dict]: method get_imports (line 44) | def get_imports(self, ast_node: Any) -> List[Dict]: method get_variables (line 49) | def get_variables(self, ast_node: Any) -> List[Dict]: method supports_file (line 53) | def supports_file(self, filename: str) -> bool: class PythonAnalyzer (line 58) | class PythonAnalyzer(LanguageAnalyzer): method __init__ (line 61) | def __init__(self): method parse_file (line 65) | def parse_file(self, filename: str) -> ast.AST: method get_functions (line 70) | def get_functions(self, ast_node: ast.AST) -> List[Dict]: method get_classes (line 86) | def get_classes(self, ast_node: ast.AST) -> List[Dict]: method get_imports (line 102) | def get_imports(self, ast_node: ast.AST) -> List[Dict]: method get_variables (line 123) | def get_variables(self, ast_node: ast.AST) -> List[Dict]: method _get_return_annotation (line 138) | def _get_return_annotation(self, node: ast.FunctionDef) -> Optional[str]: method _get_decorator_name (line 144) | def _get_decorator_name(self, node: ast.expr) -> str: method _get_name (line 154) | def _get_name(self, node: ast.expr) -> str: method _get_value (line 162) | def _get_value(self, node: ast.expr) -> Any: class JavaAnalyzer (line 175) | class JavaAnalyzer(LanguageAnalyzer): method __init__ (line 178) | def __init__(self): method parse_file (line 182) | def parse_file(self, filename: str) -> Dict: method get_functions (line 188) | def get_functions(self, ast_node: Dict) -> List[Dict]: method get_classes (line 193) | def get_classes(self, ast_node: Dict) -> List[Dict]: method get_imports (line 198) | def get_imports(self, ast_node: Dict) -> List[Dict]: method get_variables (line 203) | def get_variables(self, ast_node: Dict) -> List[Dict]: class CppAnalyzer (line 208) | class CppAnalyzer(LanguageAnalyzer): method __init__ (line 211) | def __init__(self): method parse_file (line 215) | def parse_file(self, filename: str) -> Dict: method get_functions (line 221) | def get_functions(self, ast_node: Dict) -> List[Dict]: method get_classes (line 226) | def get_classes(self, ast_node: Dict) -> List[Dict]: method get_imports (line 231) | def get_imports(self, ast_node: Dict) -> List[Dict]: method get_variables (line 236) | def get_variables(self, ast_node: Dict) -> List[Dict]: class GoAnalyzer (line 241) | class GoAnalyzer(LanguageAnalyzer): method __init__ (line 244) | def __init__(self): method parse_file (line 248) | def parse_file(self, filename: str) -> Dict: method get_functions (line 254) | def get_functions(self, ast_node: Dict) -> List[Dict]: method get_classes (line 259) | def get_classes(self, ast_node: Dict) -> List[Dict]: method get_imports (line 264) | def get_imports(self, ast_node: Dict) -> List[Dict]: method get_variables (line 269) | def get_variables(self, ast_node: Dict) -> List[Dict]: class JavaScriptAnalyzer (line 274) | class JavaScriptAnalyzer(LanguageAnalyzer): method __init__ (line 277) | def __init__(self): method parse_file (line 281) | def parse_file(self, filename: str) -> Dict: method get_functions (line 287) | def get_functions(self, ast_node: Dict) -> List[Dict]: method get_classes (line 292) | def get_classes(self, ast_node: Dict) -> List[Dict]: method get_imports (line 297) | def get_imports(self, ast_node: Dict) -> List[Dict]: method get_variables (line 302) | def get_variables(self, ast_node: Dict) -> List[Dict]: class LanguageAnalyzerFactory (line 307) | class LanguageAnalyzerFactory: method get_analyzer (line 319) | def get_analyzer(cls, filename: str) -> Optional[LanguageAnalyzer]: method register_analyzer (line 328) | def register_analyzer(cls, language: str, analyzer: LanguageAnalyzer): FILE: src/config/config.py class ProcessingConfig (line 9) | class ProcessingConfig: class DetectorConfig (line 34) | class DetectorConfig: class LoggingConfig (line 62) | class LoggingConfig: class SecurityConfig (line 77) | class SecurityConfig: class MoveryConfig (line 92) | class MoveryConfig: method __init__ (line 93) | def __init__(self): method from_file (line 100) | def from_file(cls, config_file: str) -> "MoveryConfig": method to_file (line 105) | def to_file(self, config_file: str): method validate (line 110) | def validate(self) -> bool: FILE: src/detectors/vulnerability.py class VulnerabilitySignature (line 23) | class VulnerabilitySignature: method from_dict (line 37) | def from_dict(cls, data: Dict) -> "VulnerabilitySignature": method to_dict (line 52) | def to_dict(self) -> Dict: class VulnerabilityMatch (line 68) | class VulnerabilityMatch: method to_dict (line 78) | def to_dict(self) -> Dict: class VulnerabilityDetector (line 90) | class VulnerabilityDetector(ABC): method __init__ (line 93) | def __init__(self): method load_signatures (line 97) | def load_signatures(self, signature_file: str): method detect (line 102) | def detect(self, file: str) -> List[VulnerabilityMatch]: method analyze_context (line 107) | def analyze_context(self, match: VulnerabilityMatch) -> Dict: class PatternMatcher (line 111) | class PatternMatcher: method match_pattern (line 115) | def match_pattern(code: str, pattern: str) -> Optional[Tuple[int, int]]: method extract_context (line 129) | def extract_context(code: str, line_start: int, line_end: int, class ASTMatcher (line 137) | class ASTMatcher: method __init__ (line 140) | def __init__(self): method match_ast_pattern (line 143) | def match_ast_pattern(self, ast_node: Any, pattern: Dict) -> bool: class SemanticMatcher (line 183) | class SemanticMatcher: method __init__ (line 186) | def __init__(self): method get_semantic_hash (line 189) | def get_semantic_hash(self, code: str) -> str: method match_semantic (line 221) | def match_semantic(self, code1: str, code2: str, class DefaultVulnerabilityDetector (line 238) | class DefaultVulnerabilityDetector(VulnerabilityDetector): method __init__ (line 241) | def __init__(self): method load_signatures (line 247) | def load_signatures(self, signature_file: str): method detect (line 256) | def detect(self, file: str) -> List[VulnerabilityMatch]: method analyze_context (line 329) | def analyze_context(self, match: VulnerabilityMatch) -> Dict: FILE: src/main.py function parse_args (line 25) | def parse_args(): function load_config (line 75) | def load_config(config_file: str) -> MoveryConfig: function find_source_files (line 81) | def find_source_files(target: str) -> List[str]: function analyze_file (line 109) | def analyze_file(file: str) -> List[Dict]: function main (line 119) | def main(): FILE: src/reporters/html.py class HTMLReporter (line 21) | class HTMLReporter: method __init__ (line 24) | def __init__(self, template_dir: str = "templates"): method generate_report (line 28) | def generate_report(self, matches: List[VulnerabilityMatch], method _prepare_report_data (line 53) | def _prepare_report_data(self, matches: List[VulnerabilityMatch]) -> D... method _generate_charts (line 89) | def _generate_charts(self, matches: List[VulnerabilityMatch]) -> Dict[... method _fig_to_base64 (line 139) | def _fig_to_base64(self, fig: go.Figure) -> str: FILE: src/utils/logging.py class AsyncLogHandler (line 18) | class AsyncLogHandler(logging.Handler): method __init__ (line 21) | def __init__(self, capacity: int = 1000): method emit (line 30) | def emit(self, record: logging.LogRecord): method _process_logs (line 36) | def _process_logs(self): method _write_log (line 46) | def _write_log(self, record: logging.LogRecord): method close (line 54) | def close(self): class ProgressLogger (line 60) | class ProgressLogger: method __init__ (line 63) | def __init__(self, total: int, desc: str = "", interval: float = 0.1): method update (line 71) | def update(self, n: int = 1): method _display_progress (line 78) | def _display_progress(self): method finish (line 88) | def finish(self): class JsonFormatter (line 93) | class JsonFormatter(logging.Formatter): method format (line 96) | def format(self, record: logging.LogRecord) -> str: function setup_logging (line 115) | def setup_logging(log_file: Optional[str] = None): function log_execution_time (line 141) | def log_execution_time(logger: Optional[logging.Logger] = None): function get_logger (line 157) | def get_logger(name: str) -> logging.Logger: FILE: src/utils/memory.py class MemoryMonitor (line 19) | class MemoryMonitor: method __init__ (line 22) | def __init__(self, max_memory: Optional[int] = None): method get_memory_usage (line 28) | def get_memory_usage(self) -> int: method check_memory (line 32) | def check_memory(self) -> bool: method force_garbage_collection (line 42) | def force_garbage_collection(self): method monitor_operation (line 47) | def monitor_operation(self, operation_name: str): class LRUCache (line 59) | class LRUCache: method __init__ (line 62) | def __init__(self, max_size: Optional[int] = None): method get (line 68) | def get(self, key: str) -> Optional[Any]: method put (line 77) | def put(self, key: str, value: Any, size: Optional[int] = None): method clear (line 98) | def clear(self): class MemoryMappedFile (line 104) | class MemoryMappedFile: method __init__ (line 107) | def __init__(self, filename: str, mode: str = "r"): method __enter__ (line 113) | def __enter__(self): method __exit__ (line 122) | def __exit__(self, exc_type, exc_val, exc_tb): method read (line 128) | def read(self, size: int = -1) -> bytes: method write (line 134) | def write(self, data: bytes): method seek (line 140) | def seek(self, offset: int): function chunk_iterator (line 144) | def chunk_iterator(data: Any, chunk_size: Optional[int] = None) -> Gener... FILE: src/utils/parallel.py class WorkerPool (line 22) | class WorkerPool: method __init__ (line 25) | def __init__(self, num_workers: Optional[int] = None, method start (line 37) | def start(self): method stop (line 54) | def stop(self): method submit (line 67) | def submit(self, func: Callable, *args, **kwargs) -> Any: method map (line 75) | def map(self, func: Callable, iterable: List[Any]) -> List[Any]: method imap (line 82) | def imap(self, func: Callable, iterable: List[Any]) -> Any: method get_context (line 91) | def get_context(self): class TaskQueue (line 99) | class TaskQueue: method __init__ (line 102) | def __init__(self, maxsize: int = 0): method put (line 111) | def put(self, item: Any, priority: int = 0, block: bool = True, method get (line 136) | def get(self, block: bool = True, timeout: Optional[float] = None) -> ... method task_done (line 159) | def task_done(self): method join (line 169) | def join(self): method qsize (line 175) | def qsize(self) -> int: method empty (line 179) | def empty(self) -> bool: method full (line 183) | def full(self) -> bool: method _qsize (line 187) | def _qsize(self) -> int: class ParallelExecutor (line 191) | class ParallelExecutor: method __init__ (line 194) | def __init__(self, num_workers: Optional[int] = None, method submit (line 202) | def submit(self, task_id: str, func: Callable, *args, method execute (line 207) | def execute(self) -> Tuple[Dict[str, Any], Dict[str, Exception]]: method _handle_result (line 226) | def _handle_result(self, task_id: str, future): function parallel_map (line 237) | def parallel_map(func: Callable, iterable: List[Any],