@casoon/auditmysite
Version:
Professional website analysis suite with robust accessibility testing, Core Web Vitals performance monitoring, SEO analysis, and content optimization insights. Features isolated browser contexts, retry mechanisms, and comprehensive API endpoints for profe
130 lines • 3.32 kB
TypeScript
/**
* Webhook Management System for API notifications
*/
export interface WebhookConfig {
url: string;
secret?: string;
events: WebhookEvent[];
headers?: Record<string, string>;
retries?: number;
timeout?: number;
active: boolean;
}
export type WebhookEvent = 'audit.started' | 'audit.completed' | 'audit.failed' | 'report.generated' | 'analysis.progress';
export interface WebhookPayload {
event: WebhookEvent;
timestamp: number;
data: any;
signature?: string;
}
export interface WebhookDelivery {
id: string;
webhook_id: string;
event: WebhookEvent;
payload: WebhookPayload;
status: 'pending' | 'delivered' | 'failed' | 'retrying';
attempts: number;
last_attempt: number;
response_code?: number;
response_body?: string;
error?: string;
}
export declare class WebhookManager {
private webhooks;
private deliveries;
private retryQueue;
private retryInterval;
constructor();
/**
* Register a new webhook
*/
register(id: string, config: WebhookConfig): void;
/**
* Unregister a webhook
*/
unregister(id: string): boolean;
/**
* Update webhook configuration
*/
update(id: string, config: Partial<WebhookConfig>): boolean;
/**
* Get webhook configuration
*/
getWebhook(id: string): WebhookConfig | undefined;
/**
* List all webhooks
*/
listWebhooks(): Map<string, WebhookConfig>;
/**
* Trigger webhook for a specific event
*/
trigger(event: WebhookEvent, data: any): Promise<WebhookDelivery[]>;
/**
* Deliver webhook to a specific endpoint
*/
private deliver;
/**
* Attempt to deliver a webhook
*/
private attemptDelivery;
/**
* Generate HMAC signature for webhook payload
*/
private generateSignature;
/**
* Verify webhook signature
*/
static verifySignature(payload: string, signature: string, secret: string): boolean;
/**
* Start retry processor for failed deliveries
*/
private startRetryProcessor;
/**
* Process retry queue
*/
private processRetries;
/**
* Get delivery information
*/
getDelivery(deliveryId: string): WebhookDelivery | undefined;
/**
* Get deliveries for a webhook
*/
getWebhookDeliveries(webhookId: string, limit?: number): WebhookDelivery[];
/**
* Get delivery statistics
*/
getDeliveryStats(webhookId?: string): {
total: number;
delivered: number;
failed: number;
pending: number;
retrying: number;
successRate: number;
};
/**
* Clean up old deliveries
*/
cleanup(olderThanMs?: number): number;
/**
* Shutdown webhook manager
*/
shutdown(): void;
/**
* Export webhook configuration and deliveries
*/
export(): {
webhooks: Record<string, WebhookConfig>;
deliveries: WebhookDelivery[];
stats: {
total: number;
delivered: number;
failed: number;
pending: number;
retrying: number;
successRate: number;
};
};
}
export declare const webhookManager: WebhookManager;
//# sourceMappingURL=webhook-manager.d.ts.map