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