UNPKG

recoder-code

Version:

🚀 AI-powered development platform - Chat with 32+ models, build projects, automate workflows. Free models included!

71 lines (70 loc) • 2.17 kB
/** * SecurityService * Handles security scanning, vulnerability detection, and threat analysis */ /// <reference types="node" /> /// <reference types="node" /> import { Config } from '../config'; import { PackageVersion } from '../entities/PackageVersion'; export interface SecurityScanResult { status: 'clean' | 'warning' | 'critical'; vulnerabilities: Vulnerability[]; threats: Threat[]; malware_detected: boolean; risk_score: number; scan_duration: number; scanner_version: string; } export interface Vulnerability { id: string; severity: 'low' | 'medium' | 'high' | 'critical'; title: string; description: string; cve?: string; cwe?: string; affected_versions: string[]; patched_versions: string[]; recommendation: string; references: string[]; } export interface Threat { type: 'malware' | 'backdoor' | 'typosquatting' | 'suspicious_code' | 'data_exfiltration'; severity: 'low' | 'medium' | 'high' | 'critical'; description: string; evidence: string[]; confidence: number; } export interface ScanOptions { deep_scan?: boolean; check_dependencies?: boolean; malware_detection?: boolean; license_check?: boolean; timeout?: number; } export declare class SecurityService { private config?; private readonly scannerVersion; private readonly logger; constructor(config?: Config); scanTarball(tarballBuffer: Buffer): Promise<{ passed: boolean; issues: string[]; }>; scanPackage(packageBuffer: Buffer, packageVersion: PackageVersion, options?: ScanOptions): Promise<SecurityScanResult>; private extractPackage; private scanForVulnerabilities; private scanForMalware; private scanForSuspiciousPatterns; private scanDependencies; private scanLicenses; private checkDependencyVulnerabilities; private scanCodeForVulnerabilities; private readPackageJson; private getAllFiles; private isLikelyTyposquat; private isSuspiciousScript; private hasDataExfiltrationPatterns; private levenshteinDistance; private calculateRiskScore; private determineStatus; }