UNPKG

@ahmedelsharkawycs/browser-fingerprinting

Version:

A powerful, privacy-focused browser fingerprinting library that generates unique identifiers based on browser and device characteristics. Perfect for fraud prevention, analytics, and user identification without cookies.

118 lines (117 loc) 3.07 kB
export type ScreenInfo = { width: number; height: number; availWidth: number; availHeight: number; colorDepth: number; pixelDepth: number; devicePixelRatio: number; }; export type WebGLInfo = { vendor: string; renderer: string; }; export type FontCheck = { [key: string]: boolean; }; export type PluginInfo = { name: string; filename: string; description: string; }; export type MimeTypeInfo = { type: string; description: string; }; export type TouchSupport = { maxTouchPoints: number; touchEvent: boolean; pointerEvent: boolean; }; export type NetworkInfo = { effectiveType?: string; downlink?: number; rtt?: number; }; export type StorageInfo = { localStorage: boolean; sessionStorage: boolean; indexedDB: boolean; cookies: boolean; }; export type PerformanceBenchmark = { timing: number; mathRandom: number; mathSin: number; }; export type QuirksInfo = { chrome: boolean; edge: boolean; brave: boolean; vivaldi: boolean; opera: boolean; mobile: boolean; tablet: boolean; desktop: boolean; mac: boolean; windows: boolean; linux: boolean; android: boolean; ios: boolean; firefox: boolean; safari: boolean; ie: boolean; }; export type BrowserFingerprint = { userAgent: string; platform: string; vendor: string; screen: ScreenInfo; timezone: string; language: string; languages: string[]; hardwareConcurrency: number | "unknown"; deviceMemory: number | "unknown"; webgl: WebGLInfo; canvasFingerprint: string; fontCheck: FontCheck; plugins: PluginInfo[]; mimeTypes: MimeTypeInfo[]; touchSupport: TouchSupport; networkInfo: NetworkInfo; storage: StorageInfo; performanceBenchmark: PerformanceBenchmark; localIPs: string[]; doNotTrack?: string | null; quirks: QuirksInfo; }; export type NormalizedBrowserFingerprint = { userAgent: string; platform: string; screen: Pick<ScreenInfo, "height" | "width" | "devicePixelRatio">; timezone: string; language: string; hardwareConcurrency: number | "unknown"; deviceMemory: number | "unknown"; webglVendor: string; webglRenderer: string; fonts: FontCheck; touchSupport: TouchSupport; plugins: string[]; mimeTypes: string[]; }; export type ExtendedNavigator = Navigator & { deviceMemory?: number; hardwareConcurrency?: number; connection?: { effectiveType?: string; downlink?: number; rtt?: number; }; mozConnection?: any; webkitConnection?: any; msDoNotTrack?: string; getUserMedia?: (constraints: MediaStreamConstraints) => Promise<MediaStream>; webkitGetUserMedia?: (constraints: MediaStreamConstraints, successCallback: (stream: MediaStream) => void, errorCallback: (error: any) => void) => void; mozGetUserMedia?: (constraints: MediaStreamConstraints, successCallback: (stream: MediaStream) => void, errorCallback: (error: any) => void) => void; };