UNPKG

@coralogix/browser

Version:

Official Coralogix SDK for browsers

64 lines (63 loc) 1.99 kB
import { eventWithTime } from '@rrweb/types'; import { SlimDOMOptions } from 'rrweb-snapshot'; import { CoralogixEventType } from '../types'; import { recordOptions } from 'rrweb'; export interface SessionRecordingConfig extends Omit<recordOptions<eventWithTime>, 'emit' | 'packFn' | 'plugins' | 'hooks' | 'slimDOMOptions'> { enable: boolean; autoStartSessionRecording: boolean; recordConsoleEvents?: boolean; maxMutations?: number; excludeDOMOptions?: SlimDOMOptions; sessionRecordingSampleRate?: number; workerUrl?: string; } export interface SessionWithErrorConfig { enable: boolean; maxRumEvents?: number; maxRecordTime?: number; instrumentationsToSend?: Partial<Record<CoralogixEventType, boolean>>; } export interface SessionConfig { sessionSampleRate?: number; alwaysTrackSessionsWithErrors?: boolean; onlyWithErrorConfig?: SessionWithErrorConfig; keepSessionAfterReload?: boolean; } export type RecordEvent = eventWithTime; export type RecordPluginEvent<T = any> = { type: SessionRecordingEventType.Plugin; data: { plugin: string; payload: T; }; timestamp: number; }; export declare enum SessionRecordingEventType { DomContentLoaded = 0, Load = 1, FullSnapshot = 2, IncrementalSnapshot = 3, Meta = 4, Custom = 5, Plugin = 6 } export interface SessionRecordingMetadata { segmentIndex: number; segmentSize: number; segmentTimestamp: number; sessionId: string; sessionCreationDate: number; application: string; subIndex: number | undefined; snapshotId?: string; } export type SessionRecordingWorkerEvent = 'compressRecordData' | 'splitRecordData' | 'sendRecordData' | 'stopRecording'; export interface SessionRecordingWorkerData { sessionId: string; sessionCreationDate: number; gzipBlob?: Blob; chunkIndex?: number; totalChunks?: number; event: SessionRecordingWorkerEvent; screenshotId?: string; }