@perceptr/web-sdk
Version:
Perceptr Web SDK for recording and monitoring user sessions
44 lines (43 loc) • 1.49 kB
TypeScript
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;
}