Skip to content

Types

All types are exported from the neoprint package.

ts
import type {
  Fingerprint,
  NeoprintOptions,
  CompareResult,
  SpoofingResult,
  BotResult,
  EnvironmentResult,
  BenchmarkResult,
  PluginCollector,
  SessionLink,
  BehaviorProfile,
  CollectorResult,
  Collector,
  FingerprintComponents,
  NoiseReport,
  ServerHints,
  ConfidenceBreakdown,
  EntropyBreakdown,
  AntiDetectResult,
  LifecycleLink,
} from '@neoprintjs/core'

Core Types

Fingerprint

ts
interface Fingerprint {
  id: string
  stableId: string
  weightedId: string
  crossBrowserId: string
  confidence: number
  spoofingScore: number
  entropy: number
  components: FingerprintComponents
  timestamp: number
}

NeoprintOptions

ts
interface NeoprintOptions {
  collectors?: string[]
  timeout?: number
  mode?: 'full' | 'privacy' | 'incognito-resistant'
  debug?: boolean
}

CollectorResult

ts
interface CollectorResult {
  value: unknown
  duration: number
  entropy: number
  stability: number
}

Analysis Types

CompareResult

ts
interface CompareResult {
  score: number     // 0–1
  diff: string[]    // collectors that differ
  matching: string[] // collectors that match
}

SpoofingResult

ts
interface SpoofingResult {
  isLikely: boolean
  score: number
  signals: string[]
}

BotResult

ts
interface BotResult {
  isBot: boolean
  score: number
  signals: string[]
}

AntiDetectResult

ts
interface AntiDetectResult {
  detected: boolean
  tool: 'multilogin' | 'gologin' | 'dolphin-anty' | 'linken-sphere'
       | 'incogniton' | 'vmlogin' | 'adspower' | 'unknown' | null
  confidence: number
  signals: string[]
}

EnvironmentResult

ts
interface EnvironmentResult {
  type: 'desktop' | 'mobile' | 'tablet' | 'bot' | 'vm' | 'emulator' | 'unknown'
  os: { name: string; version: string; spoofed: boolean }
  browser: { name: string; version: string; spoofed: boolean }
  vm: { detected: boolean; type?: string }
  privacy: {
    adBlocker: boolean
    trackingProtection: boolean
    resistFingerprinting: boolean
    tor: boolean
    vpn: 'likely' | 'unlikely' | 'unknown'
  }
}

ServerHints

ts
interface ServerHints {
  fingerprintId: string
  stableId: string
  timestamp: number
  protocol: string
  expectedRanges: Record<string, { type: string; checksum: number }>
  collectorChecksums: Record<string, number>
  environment: {
    platform: string
    languages: string[]
    timezone: string
    cores: number
    memory: number | null
    touchPoints: number
  }
}
ts
interface LifecycleLink {
  linkedTo: string | null
  probability: number
  driftedSignals: string[]
  stableSignals: string[]
  predictedNextDrift: string[]
  decayRate: number
  history: HistoryEntry[]
}

BehaviorProfile

ts
interface BehaviorProfile {
  typing: { avgDelay: number; rhythm: number[] }
  mouse: { avgSpeed: number; curvature: number; jitter: number }
  scroll: { speed: number; direction: 'up' | 'down' | 'mixed' }
  touch: { pressure: number[]; size: number[] }
}

Released under the MIT License.