vibe-guard
Version:
██ Vibe-Guard Security Scanner - 28 essential security rules to catch vulnerabilities before they catch you! Zero dependencies, instant setup, works everywhere, optimized performance. Detects SQL injection, XSS, exposed secrets, CSRF, CORS issues, contain
76 lines • 2.08 kB
TypeScript
export type SeverityLevel = 'critical' | 'high' | 'medium' | 'low';
export interface SecurityIssue {
rule: string;
severity: SeverityLevel;
message: string;
file: string;
line: number;
column: number;
code: string;
suggestion: string;
}
export interface ScanOptions {
target: string;
format: 'table' | 'json' | 'sarif' | 'html';
verbose: boolean;
severity?: SeverityLevel;
config?: string;
parallel?: boolean;
maxFiles?: number;
exclude?: string[];
include?: string[];
}
export interface RuleMatch {
pattern: RegExp;
message: string;
severity: SeverityLevel;
suggestion: string;
}
export interface FileContent {
path: string;
content: string;
lines: string[];
}
export interface ScanResult {
issues: SecurityIssue[];
filesScanned: number;
issuesFound: number;
summary: {
critical: number;
high: number;
medium: number;
low: number;
};
}
export interface RuleConfig {
enabled: boolean;
severity?: SeverityLevel;
patterns?: string[];
excludePatterns?: string[];
}
export interface VibeGuardConfig {
rules?: Record<string, RuleConfig>;
exclude?: string[];
include?: string[];
outputFormat?: 'table' | 'json' | 'sarif' | 'html';
outputFile?: string;
verbose?: boolean;
severity?: SeverityLevel;
maxFileSize?: string;
parallel?: boolean;
maxWorkers?: number;
}
export declare abstract class BaseRule {
abstract readonly name: string;
abstract readonly description: string;
abstract readonly severity: SeverityLevel;
abstract check(fileContent: FileContent): SecurityIssue[];
protected createIssue(file: string, line: number, column: number, code: string, message: string, suggestion: string, severity?: SeverityLevel): SecurityIssue;
protected findMatches(content: string, pattern: RegExp): Array<{
match: RegExpMatchArray;
line: number;
column: number;
lineContent: string;
}>;
}
//# sourceMappingURL=index.d.ts.map