UNPKG

@chaseleto/sessions-sdk

Version:

Privacy-conscious session recording SDK for self-hosted session tracking

83 lines 2.35 kB
export interface SessionSDKOptions { /** API endpoint for sending session data */ endpoint?: string; /** Custom attributes to attach to all sessions */ attributes?: Record<string, any>; /** User ID to associate with sessions */ userId?: string; /** Project ID for the session */ projectId?: string; /** Whether to capture console logs */ captureConsole?: boolean; /** Whether to capture network requests */ captureNetwork?: boolean; /** Sampling rate (0-1) for session recording */ samplingRate?: number; /** Maximum session duration in milliseconds */ maxSessionDuration?: number; /** Upload interval in milliseconds */ uploadInterval?: number; /** Whether to respect Do Not Track headers */ respectDNT?: boolean; /** Custom headers to include in requests */ headers?: Record<string, string>; } export interface SessionData { sessionId: string; projectId?: string; userId?: string; attributes: Record<string, any>; metadata: SessionMetadata; events: SessionEvent[]; consoleLogs: ConsoleLog[]; networkRequests: NetworkRequest[]; timestamp: number; duration: number; } export interface SessionMetadata { userAgent: string; url: string; referrer: string; viewport: { width: number; height: number; }; timestamp: number; timezone: string; language: string; } export interface SessionEvent { type: 'rrweb'; data: any; timestamp: number; } export interface ConsoleLog { level: 'log' | 'warn' | 'error' | 'info' | 'debug'; message: string; args: any[]; timestamp: number; stack?: string; } export interface NetworkRequest { method: string; url: string; status?: number; statusText?: string; requestHeaders?: Record<string, string>; responseHeaders?: Record<string, string>; requestBody?: any; responseBody?: any; duration: number; timestamp: number; error?: string; } export interface UploadQueueItem { sessionId: string; data: SessionData; retries: number; timestamp: number; } export type EventCallback = (event: SessionEvent) => void; export type LogCallback = (log: ConsoleLog) => void; export type NetworkCallback = (request: NetworkRequest) => void; //# sourceMappingURL=types.d.ts.map