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.
83 lines • 3.46 kB
TypeScript
/// <reference types="node" />
import { CryptoEngine, RealEncryptionResult } from './security/CryptoEngine';
import { KeyVault } from './security/KeyVault';
import { URLhausFeed } from './feeds/URLhausFeed';
import { TrojanHorseConfig, ThreatIndicator, ThreatFeedResult, ApiKeyConfig, SecurityConfig, EncryptedVault, TrojanHorseError, SecurityError, AuthenticationError, RateLimitError, TrojanHorseEvents, SecureVaultOptions } from './types';
export declare class TrojanHorse {
private readonly cryptoEngine;
private readonly keyVault;
private readonly feeds;
private readonly circuitBreakers;
readonly config: Required<TrojanHorseConfig>;
private readonly eventListeners;
private static readonly DEFAULT_CONFIG;
constructor(config?: Partial<TrojanHorseConfig>);
private validateConfiguration;
private validateApiKeysFormat;
createVault(password: string, apiKeys: ApiKeyConfig): Promise<RealEncryptionResult>;
loadVault(vault: RealEncryptionResult): void;
unlock(password: string): Promise<void>;
lock(): void;
scout(target?: string, options?: {
sources?: string[];
enrichment?: boolean;
minimumConfidence?: number;
}): Promise<ThreatFeedResult>;
plunder(format?: 'json' | 'csv' | 'xml', options?: {
encrypt?: boolean;
classification?: string;
}): Promise<string | ArrayBuffer>;
rotateKey(provider: string, newKey: string, options?: {
gracePeriod?: number;
password?: string;
}): Promise<void>;
setupKeyRotation(config: {
providers: string[];
rotationInterval: number;
keyGenerator: (provider: string) => Promise<string>;
password: string;
}): NodeJS.Timeout;
on<T extends keyof TrojanHorseEvents>(event: T, listener: TrojanHorseEvents[T]): void;
off<T extends keyof TrojanHorseEvents>(event: T, listener: TrojanHorseEvents[T]): void;
private emit;
destroy(): Promise<void>;
getStatus(): {
vault: {
isLocked: boolean;
keyCount: number;
autoLockEnabled: boolean;
};
feeds: Array<{
name: string;
available: boolean;
lastFetch?: Date;
}>;
crypto: {
implementation: string;
secureContext: boolean;
};
security: {
secureContext: boolean;
httpsOnly: boolean;
};
};
private getAsciiArt;
private mergeConfig;
private extractApiKey;
private initializeFeeds;
private validateSecureEnvironment;
private fetchFromFeed;
getCircuitBreakerState(feedName?: string): string | Record<string, string>;
private convertToCSV;
private handleError;
private auditLog;
static createVault(password: string, apiKeys: ApiKeyConfig, options?: Partial<SecureVaultOptions>): Promise<any>;
static loadVault(encryptedVault: any, password: string, config?: Partial<TrojanHorseConfig>): Promise<TrojanHorse>;
}
export declare function createVault(password: string, apiKeys: ApiKeyConfig, options?: Partial<TrojanHorseConfig>): Promise<{
vault: RealEncryptionResult;
trojan: TrojanHorse;
}>;
export type { TrojanHorseConfig, ThreatIndicator, ThreatFeedResult, ApiKeyConfig, SecurityConfig, EncryptedVault, TrojanHorseError, SecurityError, AuthenticationError, RateLimitError };
export { CryptoEngine, KeyVault, URLhausFeed };
//# sourceMappingURL=index.d.ts.map