@elhamdev/tracejs
Version:
A modern, privacy-conscious alternative to browser fingerprinting for unique user identification.
49 lines (48 loc) • 1.2 kB
TypeScript
/**
* Types for behavioral fingerprinting
*/
export interface MouseMetrics {
averageSpeed?: number;
curveDeviation?: number;
cornerRounding?: number;
clickPressure?: number;
hesitations?: number;
movementVariance?: number;
directionChanges?: number;
accelerationProfile?: number[];
}
export interface KeyboardMetrics {
typingSpeed?: number;
typingRhythm?: number[];
keyPressTime?: number;
doubleLetterSpeed?: number;
commonErrors?: string[];
deletionRate?: number;
keyPressForce?: number;
}
export interface TouchMetrics {
touchSize?: number;
touchPressure?: number;
multiTouchPatterns?: number[];
swipeCharacteristics?: {
speed?: number;
straightness?: number;
consistency?: number;
};
tapSpeed?: number;
pinchCharacteristics?: {
speed?: number;
symmetry?: number;
};
}
export interface BehaviorProfile {
mouse?: MouseMetrics;
keyboard?: KeyboardMetrics;
touch?: TouchMetrics;
interactionPatterns?: {
timeOfDay?: number[];
sessionDuration?: number;
interactionDensity?: number;
navigationPatterns?: string[];
};
}