UNPKG

@randyd45/web-behavior-tracker

Version:

A framework-agnostic package for tracking user behavior on web forms

99 lines (98 loc) 3.06 kB
import { BehaviorEvent, BehaviorMetrics, BehaviorInsights, TrackingOptions, CustomEventStats } from './types.js'; export declare class BehaviorTracker { private events; private startTime; private options; private formFields; private isTracking; private sessionId; private static readonly STORAGE_KEY; private debounceTimers; private THROTTLE_DELAY; private inputHandler; private formHandler; private mouseHandler; private clipboardHandler; private customHandler; constructor(options?: TrackingOptions); private getOrCreateSessionId; private saveSessionData; private loadSessionData; startTracking(reset?: boolean): void; stopTracking(): void; private setupPageUnloadHandler; private removePageUnloadHandler; private handlePageUnload; getMetrics(): BehaviorMetrics; getInsights(): BehaviorInsights; getEvents(): BehaviorEvent[]; /** * Helper method to handle event creation and storage */ private onEventCreated; /** * Gets browser metadata using the dedicated BrowserMetadataCollector */ getBrowserMetadata(): import("./types.js").BrowserMetadata; /** * Gets additional metadata using the dedicated BrowserMetadataCollector */ getAdditionalMetadata(): Record<string, any>; /** * Gets high-entropy metadata using the dedicated BrowserMetadataCollector */ getHighEntropyMetadata(): Promise<Record<string, any>>; /** * Gets browser fingerprint using the dedicated BrowserMetadataCollector */ getBrowserFingerprint(): string; /** * Gets browser capabilities using the dedicated BrowserMetadataCollector */ getBrowserCapabilities(): Record<string, boolean>; /** * Creates and logs a custom event */ trackCustomEvent(eventName: string, customData?: Record<string, any>, target?: HTMLElement): BehaviorEvent; /** * Gets all custom events */ getCustomEvents(): BehaviorEvent[]; /** * Gets custom events by name */ getCustomEventsByName(eventName: string): BehaviorEvent[]; /** * Gets custom events count */ getCustomEventsCount(): number; /** * Gets custom events count by name */ getCustomEventsCountByName(eventName: string): number; /** * Gets custom events statistics */ getCustomEventStats(): CustomEventStats; /** * Clears all custom events */ clearCustomEvents(): void; /** * Checks if a custom event has been triggered */ hasCustomEvent(eventName: string): boolean; /** * Gets the last occurrence of a custom event */ getLastCustomEvent(eventName?: string): BehaviorEvent | null; private setupEventListeners; private removeEventListeners; private getFieldInteractionOrder; private detectSuspiciousPatterns; private calculateRiskScore; private detectRapidCopyPasteSequence; private calculateCompletionRate; getSessionId(): string; clearSession(): void; }