UNPKG

@coralogix/browser

Version:

Official Coralogix SDK for browsers

67 lines (66 loc) 2.17 kB
import { eventWithTime } from '../cx-rrweb/rrweb-types'; import { SlimDOMOptions } from '../cx-rrweb/rrweb-snapshot'; import { CoralogixEventType } from '../types'; import { recordOptions } from '../cx-rrweb/rrweb'; import type { ExcludableInstrumentation } from './session.consts'; 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; immediateFlush?: boolean; } 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; excludeFromSampling?: ExcludableInstrumentation[]; } 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; }