UNPKG

@perceptr/web-sdk

Version:

Perceptr Web SDK for recording and monitoring user sessions

44 lines (43 loc) 1.49 kB
import type { BufferConfig, EventType, SnapshotBuffer, UserIdentity } from "./types"; export declare class EventBuffer { private buffer; private bufferSize; private lastFlushTime; private flushTimer?; private readonly internalConfig; private sessionId; private startTime; private readonly onFlush; private userIdentity?; private isFlushInProgress; private flushFailures; private backoffUntil; private unloadHandlerAttached; private lastBatchEndTime?; constructor(config: BufferConfig, onFlush: (data: SnapshotBuffer) => Promise<void>); private startNewSession; /** * Handles session resumption logic: checks persisted buffers and determines if a new session is needed. * If the most recent buffer is >1 hour old, generates a new sessionId and resets buffer state. */ private handleSessionResume; private setupUnloadHandler; private flushStoredBuffers; private persistBufferData; addEvent(event: EventType): void; addEvents(events: EventType[]): void; /** * Set the user identity for this buffer */ setUserIdentity(identity: UserIdentity): void; flush(isSessionEnded?: boolean): Promise<void>; private recalculateBufferSize; private compressSnapshot; destroy(): void; private startFlushTimer; private resetFlushTimer; /** * Check if an event is an internal SDK log that should be filtered out */ private isInternalSdkLog; }