UNPKG

@trlogic/tracker-web

Version:
69 lines (68 loc) 2.31 kB
import { CachedDataCollector } from "src/core/base/CachedDataCollector"; import { TrackerVariableType } from "src/core/model/TrackerVariableType"; export interface SuspiciousFlags { unnaturalMouseMoves: boolean; bigClipboardPaste: boolean; lowFPSDetected: boolean; delayedClickDetected: boolean; } /** * Collects security & risk metrics. * Mirrors Android SecurityCollector + merges tracker-web_current risk-metrics + remote control detection. * * Responsibilities: * 1. Remote control suspicion monitoring (mouse, clipboard, FPS, delayed clicks) * 2. Risk metrics aggregation (mouse movement, click patterns, form fill, navigation, paste ratio) * 3. Environment baseline tracking (language, timezone, OS, browser) * 4. Composite remote access score calculation */ export declare class SecurityCollector extends CachedDataCollector { private suspiciousFlags; private lastMouseMoveTs; private mouseMoveCounterWindow; private clickCounterWindow; private pageViewTimestamps; private pasteCharCount; private typedCharCount; private lastPageViewTs; private lastFormInteractionStart; private lastFormFieldCount; private lastFormDurationMs; private formFillAnomaly; private fastPageTransition; private redirectSource; private lastUrl; private lastMouseX; private lastMouseY; private unnaturalMoveCount; private lowFPSCount; private lastFrameTs; private fpsRafId; private listenersAttached; private baseline; private envChangeFlags; private envChangeScore; private tenant; private deviceId; collect(): Map<TrackerVariableType, unknown>; /** * Start monitoring. Called once during SDK initialization. */ init(tenant: string, deviceId: string): void; registerPageView(): void; getRemoteAccessScore(): number; resetRollingWindow(): void; updateEnvironmentDiff(): void; private getAggregates; private computePasteRatio; private calcRemoteAccessScore; private attachListeners; private detectFormAnomaly; private detectRedirect; private ensureBaseline; private getCurrentEnvironment; private diffEnvironment; private calcEnvironmentChangeScore; /** Cleanup FPS monitor on termination. */ destroy(): void; }