UNPKG

@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.

44 lines 1.84 kB
import { ClientEvents, Options } from 'centrifuge'; import { EventType } from '../events/tracker'; import { EwaAnalyticsEvent, Session } from '../events/types'; export interface EwaAnalyticsContext { [key: string]: any; } export interface EwaAnalyticsSdk { init: (config: EwaAnalyticsConfig) => Promise<void>; sendInternalEvents: (initData: EwaAnalyticsInitData, context?: EwaAnalyticsContext) => Promise<void>; trackEvent: (eventType: EventType, payload: Record<string, any>, context?: EwaAnalyticsContext) => Promise<void>; trackSession: (sessionData: Session, context?: EwaAnalyticsContext) => Promise<void>; trackEventTyped: (eventData: EwaAnalyticsEvent, context?: EwaAnalyticsContext) => Promise<void>; getConnection: () => EwaCentrifugoConnection | null; isInitialized: () => boolean; getConfig: () => EwaAnalyticsConfig | null; updateContext: (newContext: EwaAnalyticsContext) => void; clearContext: () => void; sendSessionAttributed: (web_uuid: string, context?: EwaAnalyticsContext) => Promise<void>; areInternalEventsSent: () => boolean; } export interface EwaCentrifugoConnection { connect: () => void; disconnect: () => void; publish: (channel: string, data: unknown) => void; isConnected: () => boolean; once: (event: keyof ClientEvents, callback: (ctx: any) => void) => void; } export interface EwaAnalyticsConfig extends Partial<Options> { initData: EwaAnalyticsInitData; apiUrl: string; transport: 'websocket' | 'http'; autoSendInternalEvents?: boolean; context?: EwaAnalyticsContext; } export interface EwaAnalyticsInitData { randomUserId: string; ip_address: string; userAgent: string; appId?: string; platform?: string; country?: string; appVersion?: string; } //# sourceMappingURL=types.d.ts.map