@springmusk/who-is
Version:
Professional WHOIS data scraping module with structured parsing and batch processing capabilities
83 lines (71 loc) • 1.76 kB
TypeScript
export interface HttpClientConfig {
timeout?: number;
userAgent?: string;
maxRetries?: number;
retryDelay?: number;
}
export interface WhoisConfig {
outputFormat?: 'json' | 'raw';
http?: HttpClientConfig;
baseUrl?: string;
}
export interface ScrapingOptions {
concurrent?: number;
continueOnError?: boolean;
}
export interface WhoisResult {
domain: string;
scrapedAt: string;
pageTitle: string;
registry: any;
registrar: any;
}
export interface BatchResult {
results: WhoisResult[];
errors?: Array<{
domain: string;
error: string;
timestamp: string;
}>;
summary: {
total: number;
successful: number;
failed: number;
};
}
export class WhoisScrapingError extends Error {
cause?: Error;
constructor(message: string, cause?: Error);
}
export class WhoisParsingError extends Error {
cause?: Error;
constructor(message: string, cause?: Error);
}
export class HttpClient {
constructor(config?: HttpClientConfig);
get(url: string, params?: Record<string, any>, retryCount?: number): Promise<string>;
}
export class WhoisParser {
static parseRawWhoisToJson(rawData: string): Record<string, any>;
}
export class WhoisExtractor {
static extractWhoisData(htmlContent: string): {
registryData: string | null;
registrarData: string | null;
pageTitle: string;
};
}
export class Whois {
constructor(config?: WhoisConfig);
scrape(domain: string): Promise<WhoisResult>;
scrapeMultiple(domains: string[], options?: ScrapingOptions): Promise<BatchResult>;
}
export {
Whois as default,
Whois,
WhoisParser,
WhoisExtractor,
HttpClient,
WhoisScrapingError,
WhoisParsingError,
};