@2l/ewa-analytics-web-sdk
Version:
A lightweight TypeScript SDK for tracking user events and analytics data in web applications. Provides real-time event tracking with support for both WebSocket and HTTP transport methods.
46 lines • 1.62 kB
TypeScript
import { EwaAnalyticsConfig } from '../sdk/types';
import { EwaAnalyticsEvent, Session } from './types';
export type EventType = 'session' | 'event';
export interface EventTrackerConfig {
sessionId: number;
connection?: any;
apiInstance?: any;
globalConfig: EwaAnalyticsConfig;
}
export interface EwaAnalyticsContext {
[key: string]: any;
}
export declare class EventTracker {
private config;
private userAgent;
private sessionLocated;
private initialEventSent;
constructor(config: EventTrackerConfig);
private createMergedPayload;
private updateSessionState;
private canTrackAnalyticsEvents;
trackEvent(eventType: EventType, payload: Record<string, any>, context?: EwaAnalyticsContext): Promise<void>;
private trackSession;
private trackAnalyticsEvent;
private sendToTransport;
private postToHttp;
private publishToWebSocket;
trackSessionTyped(sessionData: Session, context?: EwaAnalyticsContext): Promise<void>;
trackEventTyped(eventData: EwaAnalyticsEvent, context?: EwaAnalyticsContext): Promise<void>;
getTransport(): 'http' | 'websocket';
getApiUrl(): string;
isWebSocketTransport(): boolean;
isHttpTransport(): boolean;
isSessionLocated(): boolean;
areInitialEventsSent(): boolean;
getSessionState(): {
located: boolean;
initialEventSent: boolean;
};
setSessionLocated(located?: boolean): void;
setInitialEventsSent(sent?: boolean): void;
resetSessionState(): void;
private validateEventType;
private validatePayload;
}
//# sourceMappingURL=tracker.d.ts.map