SYMBOL INDEX (165 symbols across 74 files) FILE: bin/cli.js function loadEnvFile (line 10) | function loadEnvFile(filePath) { function resolveKey (line 43) | function resolveKey(args, cwd) { function printHelp (line 76) | function printHelp() { FILE: examples/nodejs/demo-server.js constant PORT (line 12) | const PORT = 3000; constant ENCRYPTION_KEY (line 16) | const ENCRYPTION_KEY = process.env.FINGERPRINT_KEY || 'dev-key'; function decryptString (line 21) | function decryptString(ciphertext, key) { function decryptFingerprint (line 41) | function decryptFingerprint(encryptedFingerprint) { constant MIME_TYPES (line 52) | const MIME_TYPES = { FILE: examples/python/demo-server.py function xor_decrypt (line 22) | def xor_decrypt(ciphertext_b64: str, key: str) -> str: function decrypt_fingerprint (line 45) | def decrypt_fingerprint(encrypted_fingerprint: str) -> dict: class FingerprintHandler (line 63) | class FingerprintHandler(SimpleHTTPRequestHandler): method __init__ (line 66) | def __init__(self, *args, **kwargs): method do_POST (line 70) | def do_POST(self): method do_GET (line 117) | def do_GET(self): method _send_json (line 148) | def _send_json(self, status: int, data: dict): method log_message (line 155) | def log_message(self, format, *args): function main (line 162) | def main(): FILE: scripts/build-custom.js function deleteMapFiles (line 249) | function deleteMapFiles(dir, prefix = '') { FILE: scripts/safe-publish.js constant ROOT_DIR (line 14) | const ROOT_DIR = path.resolve(__dirname, '..'); constant DIST_DIR (line 15) | const DIST_DIR = path.join(ROOT_DIR, 'dist'); function run (line 17) | function run(command, description) { function checkGitStatus (line 28) | function checkGitStatus() { function getPackageVersion (line 45) | function getPackageVersion() { FILE: src/crypto-helpers.ts function encryptString (line 12) | async function encryptString(plaintext: string, key: string): Promise any) { method generateFingerprintScannerId (line 294) | private generateFingerprintScannerId(): string { method encryptFingerprint (line 486) | private async encryptFingerprint(fingerprint: string) { method getDetectionRules (line 509) | private getDetectionRules(): DetectionRule[] { method runDetectionRules (line 535) | private runDetectionRules(): FastBotDetectionDetails { method collectFingerprint (line 573) | async collectFingerprint(options: CollectFingerprintOptions = { encryp... FILE: src/signals/browserExtensions.ts function browserExtensions (line 3) | function browserExtensions() { FILE: src/signals/browserFeatures.ts function safeCheck (line 3) | function safeCheck(check: () => boolean): boolean { function browserFeatures (line 11) | function browserFeatures() { FILE: src/signals/canvas.ts function hasModifiedCanvas (line 4) | async function hasModifiedCanvas(): Promise> { function getCanvasFingerprint (line 26) | function getCanvasFingerprint(): SignalValue { function canvas (line 73) | async function canvas() { FILE: src/signals/cdp.ts function cdp (line 3) | function cdp() { FILE: src/signals/cpuCount.ts function cpuCount (line 3) | function cpuCount() { FILE: src/signals/etsl.ts function etsl (line 1) | function etsl() { FILE: src/signals/highEntropyValues.ts function highEntropyValues (line 3) | async function highEntropyValues() { FILE: src/signals/iframe.ts function iframe (line 3) | function iframe() { FILE: src/signals/internationalization.ts function internationalization (line 3) | function internationalization() { FILE: src/signals/languages.ts function languages (line 1) | function languages() { FILE: src/signals/maths.ts function maths (line 3) | function maths() { FILE: src/signals/mediaCodecs.ts constant AUDIO_CODECS (line 4) | const AUDIO_CODECS = [ constant VIDEO_CODECS (line 15) | const VIDEO_CODECS = [ function getCanPlayTypeSupport (line 31) | function getCanPlayTypeSupport(codecs: string[], mediaType: 'audio' | 'v... function getMediaSourceSupport (line 50) | function getMediaSourceSupport(codecs: string[]): Record = T | typeof ERROR | typeof INIT | typeof NA | typeo... type WebGLSignal (line 5) | interface WebGLSignal { type InternationalizationSignal (line 10) | interface InternationalizationSignal { type ScreenResolutionSignal (line 15) | interface ScreenResolutionSignal { type LanguagesSignal (line 27) | interface LanguagesSignal { type WebGPUSignal (line 32) | interface WebGPUSignal { type IframeSignal (line 39) | interface IframeSignal { type WebWorkerSignal (line 48) | interface WebWorkerSignal { type BrowserExtensionsSignal (line 59) | interface BrowserExtensionsSignal { type BrowserFeaturesSignal (line 64) | interface BrowserFeaturesSignal { type MediaQueriesSignal (line 96) | interface MediaQueriesSignal { type ToSourceErrorSignal (line 108) | interface ToSourceErrorSignal { type CanvasSignal (line 113) | interface CanvasSignal { type HighEntropyValuesSignal (line 118) | interface HighEntropyValuesSignal { type PluginsSignal (line 129) | interface PluginsSignal { type MultimediaDevicesSignal (line 137) | interface MultimediaDevicesSignal { type MediaCodecsSignal (line 143) | interface MediaCodecsSignal { type AutomationSignals (line 154) | interface AutomationSignals { type DeviceSignals (line 163) | interface DeviceSignals { type BrowserSignals (line 172) | interface BrowserSignals { type GraphicsSignals (line 183) | interface GraphicsSignals { type LocaleSignals (line 189) | interface LocaleSignals { type ContextsSignals (line 194) | interface ContextsSignals { type FingerprintSignals (line 199) | interface FingerprintSignals { type FastBotDetectionDetails (line 209) | interface FastBotDetectionDetails { type Fingerprint (line 232) | interface Fingerprint { type DetectionSeverity (line 242) | type DetectionSeverity = 'low' | 'medium' | 'high'; type DetectionRuleResult (line 244) | interface DetectionRuleResult { type DetectionRule (line 249) | interface DetectionRule { type CollectFingerprintOptions (line 255) | interface CollectFingerprintOptions { FILE: test/decrypt.js constant TEST_KEY (line 6) | const TEST_KEY = 'dev-key'; function decryptString (line 14) | function decryptString(ciphertext, key = TEST_KEY) { function decryptFingerprint (line 39) | function decryptFingerprint(encryptedFingerprint, key = TEST_KEY) { FILE: test/detection/nodejs/playwright-android-headless.js constant DEVICE (line 18) | const DEVICE = devices['Pixel 7']; constant TARGET_URL (line 19) | const TARGET_URL = 'http://localhost:3000/test/dev-source.html'; constant WAIT_TIMEOUT_MS (line 20) | const WAIT_TIMEOUT_MS = 15000; FILE: test/detection/nodejs/playwright-chromium-headless.js constant TARGET_URL (line 15) | const TARGET_URL = 'http://localhost:3000/test/dev-source.html'; constant WAIT_TIMEOUT_MS (line 16) | const WAIT_TIMEOUT_MS = 15000; FILE: test/detection/nodejs/playwright-firefox-headless.js constant TARGET_URL (line 15) | const TARGET_URL = 'http://localhost:3000/test/dev-source.html'; constant WAIT_TIMEOUT_MS (line 16) | const WAIT_TIMEOUT_MS = 15000; FILE: test/detection/nodejs/playwright-iphone-headless.js constant DEVICE (line 18) | const DEVICE = devices['iPhone 15']; constant TARGET_URL (line 19) | const TARGET_URL = 'http://localhost:3000/test/dev-source.html'; constant WAIT_TIMEOUT_MS (line 20) | const WAIT_TIMEOUT_MS = 15000; FILE: test/detection/nodejs/playwright-webkit-headless.js constant TARGET_URL (line 15) | const TARGET_URL = 'http://localhost:3000/test/dev-source.html'; constant WAIT_TIMEOUT_MS (line 16) | const WAIT_TIMEOUT_MS = 15000; FILE: test/detection/nodejs/puppeteer-headless.js constant TARGET_URL (line 14) | const TARGET_URL = 'http://localhost:3000/test/dev-source.html'; constant WAIT_TIMEOUT_MS (line 15) | const WAIT_TIMEOUT_MS = 15000; FILE: test/detection/nodejs/puppeteer-stealth.js constant TARGET_URL (line 20) | const TARGET_URL = 'http://localhost:3000/test/dev-source.html'; constant WAIT_TIMEOUT_MS (line 21) | const WAIT_TIMEOUT_MS = 15000; FILE: test/detection/python/camoufox_test.py function main (line 24) | def main(): FILE: test/detection/python/selenium_headless_test.py function wait_for_result (line 26) | def wait_for_result(driver, timeout=WAIT_TIMEOUT_SECONDS): function main (line 40) | def main(): FILE: test/detection/python/undetected_chromedriver_test.py function wait_for_result (line 41) | def wait_for_result(driver, timeout=WAIT_TIMEOUT_SECONDS): function main (line 55) | def main(): FILE: test/server.js constant PORT (line 5) | const PORT = 3333; constant ROOT (line 6) | const ROOT = path.resolve(__dirname, '..'); constant MIME_TYPES (line 8) | const MIME_TYPES = {