trojanhorse-js
Version:
A comprehensive JavaScript library for fetching, managing, and analyzing global threat intelligence from multiple open-source feeds and security news sources. Unlike its mythological namesake, this Trojan protects your digital fortress.
77 lines • 2.19 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { ThreatIndicator } from '../types';
export interface ProcessingConfig {
maxWorkers: number;
minWorkers: number;
queueSize: number;
taskTimeout: number;
retryAttempts: number;
scalingStrategy: 'fixed' | 'dynamic' | 'adaptive';
}
export interface Task {
id: string;
type: 'threat_analysis' | 'data_processing' | 'correlation' | 'enrichment';
priority: 'low' | 'medium' | 'high' | 'critical';
data: any;
createdAt: Date;
timeout?: number;
retries?: number;
}
export interface TaskResult {
taskId: string;
success: boolean;
result?: any;
error?: string;
processingTime: number;
workerId: string;
completedAt: Date;
}
export interface WorkerPoolConfig {
maxWorkers: number;
minWorkers: number;
workerScript: string;
taskTimeout: number;
idleTimeout: number;
autoScale: boolean;
}
declare class WorkerPool extends EventEmitter {
private config;
private workers;
private taskQueue;
private activeTasks;
private workerStats;
constructor(config: WorkerPoolConfig);
private initializeWorkers;
private createWorker;
private handleWorkerMessage;
private handleTaskCompletion;
private handleTaskError;
private handleWorkerError;
private handleWorkerExit;
private removeWorker;
addTask(task: Task): void;
private processNextTask;
private findAvailableWorker;
private shouldScaleUp;
private scaleUp;
private assignTaskToWorker;
private handleTaskTimeout;
getStats(): any;
shutdown(): Promise<void>;
}
declare class DistributedProcessor extends EventEmitter {
private config;
private workerPool;
private taskCounter;
constructor(config: ProcessingConfig);
private setupEventHandlers;
processThreatData(threats: ThreatIndicator[]): Promise<TaskResult[]>;
processCorrelation(data: any): Promise<TaskResult>;
private processTasks;
private createTask;
getStats(): any;
shutdown(): Promise<void>;
}
export { DistributedProcessor, WorkerPool };
//# sourceMappingURL=DistributedProcessor.d.ts.map