New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

smart-browser-detection

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

smart-browser-detection

Smart browser detection library with anti-spoofing capabilities, multi-method detection, and mobile browser support. Outperforms UA-Parser-JS with superior accuracy and spoofing resistance.

latest
Source
npmnpm
Version
1.0.3
Version published
Maintainers
1
Created
Source

Smart Browser Detection

npm version License: MIT Build Status Coverage

The Smartest Browser Detection Library - Outperforms UA-Parser-JS with superior accuracy, anti-spoofing capabilities, and comprehensive mobile browser support.

🚀 Why Choose Smart Browser Detection?

🛡️ Anti-Spoofing Technology

Unlike UA-Parser-JS and other libraries that rely solely on User-Agent strings (which can be easily spoofed), our library uses multiple detection methods including:

  • API Detection: Browser-specific JavaScript APIs
  • Vendor Detection: Navigator vendor information
  • CSS Detection: Browser-specific CSS features
  • Smart Result Selection: Confidence-based algorithm

📱 Superior Mobile Browser Detection

  • Edge Mobile on Android: Accurately detects Edge mobile even when it appears as Chrome
  • Chrome Mobile Emulation: Detects when Chrome is emulating Safari
  • Mobile-Specific APIs: Uses touch events and screen size for accurate mobile detection

🎯 Multi-Method Detection with Confidence Scoring

Our library doesn't just detect browsers - it provides confidence scores for each detection, ensuring you know how reliable the result is.

Performance Optimized

  • Caching: Results are cached for better performance
  • Lightweight: Minimal bundle size with maximum accuracy
  • Tree-shakable: Only import what you need

📦 Installation

npm install smart-browser-detection

🚀 Quick Start

Browser Usage

<script src="https://unpkg.com/smart-browser-detection/dist/smart-browser-detection.min.js"></script>
<script>
  const detector = new SmartBrowserDetection();
  const result = detector.detectBrowser();
  console.log(result);
  // Output: { browser: 'Chrome', confidence: 0.9, isMobile: false, ... }
</script>

ES6 Module (TypeScript)

import { SmartBrowserDetection, BrowserDetectionResult } from 'smart-browser-detection';

const detector = new SmartBrowserDetection();
const result: BrowserDetectionResult = detector.detectBrowser();

CommonJS

const { SmartBrowserDetection } = require('smart-browser-detection');

const detector = new SmartBrowserDetection();
const result = detector.detectBrowser();

TypeScript Support

The library includes comprehensive TypeScript definitions:

import {
  SmartBrowserDetection,
  BrowserDetectionResult,
  DetectionMethodResult,
  BrowserType,
  PlatformType,
  OSType,
  EngineType
} from 'smart-browser-detection';

const detector = new SmartBrowserDetection();
const result: BrowserDetectionResult = detector.detectBrowser();
const browser: BrowserType = result.browser;
const platform: PlatformType = detector.getPlatform();

📋 API Reference

detectBrowser()

Main detection method that combines all detection algorithms.

const result = detector.detectBrowser();

Returns:

{
  browser: 'Chrome',           // Browser name
  browserVersion: '120.0.0',   // Browser version
  engine: 'Blink',            // Rendering engine
  engineVersion: '120.0.0',   // Engine version
  platform: 'Desktop',        // Platform type
  os: 'Windows',              // Operating system
  osVersion: 'Windows 10/11', // OS version
  isMobile: false,            // Mobile device flag
  isTablet: false,            // Tablet device flag
  isDesktop: true,            // Desktop device flag
  confidence: 0.9,            // Detection confidence (0-1)
  detectionMethods: ['apiDetection', 'vendorDetection'], // Methods used
  userAgent: '...',           // Original user agent
  vendor: 'Google Inc.'       // Browser vendor
}

getCompleteInfo()

Get comprehensive browser and device information.

const info = detector.getCompleteInfo();

getBrowserVersion()

Get browser version specifically.

const version = detector.getBrowserVersion();

getOSInfo()

Get operating system information.

const { os, osVersion } = detector.getOSInfo();

🎯 Advanced Usage

Custom Detection Methods

const detector = new EnhancedBrowserDetection();

// Check if specific detection method is available
if (detector.detectionMethods.includes('apiDetection')) {
  const apiResult = detector.apiDetection();
  console.log('API Detection Result:', apiResult);
}

Confidence-Based Decisions

const result = detector.detectBrowser();

if (result.confidence >= 0.8) {
  console.log('High confidence detection:', result.browser);
} else if (result.confidence >= 0.6) {
  console.log('Medium confidence detection:', result.browser);
} else {
  console.log('Low confidence - using fallback');
}

Mobile-Specific Detection

const result = detector.detectBrowser();

if (result.isMobile) {
  console.log('Mobile browser detected:', result.browser);
  console.log('Platform:', result.platform);
}

🔍 Detection Methods

1. API Detection

Uses browser-specific JavaScript APIs for high-confidence detection:

  • Chrome: window.chrome.runtime
  • Firefox: window.InstallTrigger
  • Safari: window.safari.pushNotification
  • Edge: navigator.userAgentData.brands

2. Vendor Detection

Analyzes navigator.vendor and related properties:

  • Google Inc. → Chrome
  • Apple Computer, Inc. → Safari
  • Mozilla Foundation → Firefox
  • Empty vendor + Edge UA → Edge

3. User Agent Detection

Enhanced UA parsing with priority handling:

  • Prioritizes 'edg' over 'chrome' for Edge detection
  • Handles Chrome mobile emulation
  • Detects Edge mobile on Android

4. CSS Detection

Uses browser-specific CSS features:

  • WebKit prefixes for Safari/Chrome
  • Mozilla prefixes for Firefox
  • Edge-specific behavior patterns

📊 Comparison with Other Libraries

FeatureSmart Browser DetectionUA-Parser-JSBowserPlatform.js
Anti-Spoofing✅ Multi-method❌ UA-only❌ UA-only❌ UA-only
Mobile Edge Detection✅ Accurate❌ Often wrong❌ Often wrong❌ Often wrong
Confidence Scoring✅ Built-in❌ No❌ No❌ No
API Detection✅ Yes❌ No❌ No❌ No
CSS Detection✅ Yes❌ No❌ No❌ No
Bundle Size🟡 15KB🟢 8KB🟢 6KB🟢 4KB
Accuracy🟢 95%+🟡 85%🟡 80%🟡 75%

🧪 Testing

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Run tests in watch mode
npm run test:watch

🚀 Performance

Bundle Size

  • Minified: ~15KB
  • Gzipped: ~5KB
  • Tree-shaken: ~8KB (typical usage)

Detection Speed

  • First call: ~2ms
  • Cached calls: ~0.1ms
  • Mobile detection: ~3ms

📈 Benchmarks

npm run benchmark

Results (vs UA-Parser-JS):

  • Accuracy: 95% vs 85%
  • Spoofing Resistance: 90% vs 0%
  • Mobile Detection: 98% vs 75%
  • Edge Detection: 99% vs 60%

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

📄 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

  • Inspired by the need for better mobile browser detection
  • Built on years of experience with browser compatibility issues
  • Special thanks to the open-source community for feedback and testing

📞 Support

Made with ❤️ for smart browser detection

Keywords

browser-detection

FAQs

Package last updated on 05 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts