mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +03:00
242 lines
9.2 KiB
Markdown
242 lines
9.2 KiB
Markdown
# UAParser.js Changelog
|
|
|
|
## Migrating from v1 to v2
|
|
|
|
### What's Breaking:
|
|
|
|
- **Licensing Changes:**
|
|
- UAParser.js is now licensed under AGPLv3 for open-source use, with PRO Licenses available for commercial/proprietary use
|
|
|
|
- **Browser Detection on Mobile Devices:**
|
|
- `"Chrome"` => `"Mobile Chrome"`
|
|
- `"Firefox"` => `"Mobile Firefox"`
|
|
|
|
- **OS Detection:**
|
|
- `"Mac OS"` => `"macOS"`
|
|
- `"Chromium OS"` => `"Chrome OS"`
|
|
|
|
### What's New:
|
|
|
|
- **Support for ES Modules & TypeScript:**
|
|
- Import directly as an ES module with TypeScript support: `import { UAParser } from 'ua-parser-js'`
|
|
|
|
- **Support for Custom/Predefined Extensions:**
|
|
- Pass custom regexes or predefined extensions as a list to `UAParser()`
|
|
|
|
- **Support for CLI Parsing:**
|
|
- Parse a user-agent directly from the command line using `npx ua-parser-js "[User-Agent]"`
|
|
|
|
- **Enhanced Detection with Client Hints:**
|
|
- `withClientHints()`: Improves detection accuracy by leveraging client hints
|
|
|
|
- **Enhanced Detection with Feature Detection:**
|
|
- `withFeatureCheck()`: Refines detection results using feature detection
|
|
|
|
- **Simple Comparison for Detection Results:**
|
|
- `is()`: Enables easy comparison checks against the detection result
|
|
|
|
- **Detailed Result Output:**
|
|
- `toString()`: Returns the detection result in form of a full-name string
|
|
|
|
- **New Device Type:**
|
|
- Added `xr` to identify AR/VR devices
|
|
|
|
- **New Browser Property:**
|
|
- Added `browser.type` to identify additional browser types:
|
|
- `crawler`, `cli`, `email`, `fetcher`, `inapp`, `library`, `mediaplayer`
|
|
|
|
- **New Submodules:**
|
|
- **`'ua-parser-js/enums'`**: Provides constants for these specific properties:
|
|
- `browser.name`, `browser.type`, `cpu.architecture`, `device.type`, `device.vendor`, `engine.name`, `os.name`
|
|
|
|
- **`'ua-parser-js/extensions'`**: Predefined extensions for various use cases:
|
|
- `Bots`, `Crawlers`, `CLIs`, `Emails`, `ExtraDevices`, `Fetchers`, `InApps`, `Libraries`, `Mediaplayers`
|
|
|
|
- **`'ua-parser-js/helpers'`**: Provides utility methods to extend detection functionality:
|
|
- `getDeviceVendor()`: Guesses the device vendor based on its model name
|
|
- `isAppleSilicon()`: Detects Apple Silicon device properties
|
|
- `isBot()`: Checks if the browser is a bot
|
|
- `isChromeFamily()`: Checks if the browser is Chrome-based (uses Blink engine) — e.g., New Opera, New Edge, Vivaldi, Brave, Arc, etc.
|
|
- `isElectron()`: Detects if current window is running within Electron
|
|
- `isFromEU()`: Detects if current browser's timezone is from an EU country
|
|
- `isFrozenUA()`: Checks if the user-agent matches a frozen/reduced user-agent pattern
|
|
- `isStandalonePWA()`: Detects if current window is a standalone PWA
|
|
|
|
---
|
|
|
|
## Version 2.0.0-rc.3
|
|
|
|
- Add support for Headers object
|
|
- Add new device: Advan, Cat, Energizer, Honor, IMO, Micromax, Smartfren
|
|
- Add new engine: Servo
|
|
- `ua-parser-js/extensions` submodule:
|
|
- Breaking change: rename `module` to `library`
|
|
- Add new email clients: Evolution, KMail, Kontact
|
|
- Add new bots: 360Spider, Archive.org Bots, CCBot, DataForSeoBot, DuckAssistBot, Exabot, Google Bots, Meta Bots, MojeekBot, PerplexityBot, PetalBot, TurnitinBot, Yeti, YisouSpider
|
|
|
|
## Version 2.0.0-rc.2
|
|
|
|
- Fix incorrect import path in ESM files
|
|
- Add new browser: 115, SlimBoat, Slimjet, LibreWolf
|
|
- Improve browser detection: 2345, 360, Dragon, Iron, Maxthon
|
|
- `ua-parser-js/enums` submodule:
|
|
- Add Chromecast OS variants: Android/Fuchsia/Linux/SmartSpeaker
|
|
- `ua-parser-js/helpers` submodule:
|
|
- Add new method: `isBot()` to check if the browser is identified as a bot
|
|
|
|
## Version 2.0.0-rc.1
|
|
|
|
- Fix Python Request mistakenly identified as Meta Quest
|
|
- Add new browser: Helio
|
|
- Add new device: itel, Nothing, Pico, TCL
|
|
- Add new engine: ArkWeb
|
|
- Add new OS: OpenHarmony, Pico
|
|
- Improve browser detection: Quark
|
|
- Improve device detection: Xiaomi, Amazon Echo Show, Google Chromecast, Samsung Galaxy Watch
|
|
- `ua-parser-js/helpers` submodule:
|
|
- Add new method:
|
|
- `getDeviceVendor()` to guess for a device vendor based on its model name
|
|
- `isElectron()` to check if current window is running inside Electron
|
|
- `isFromEU()` to check if current window is from an EU (European Union) country
|
|
- `isStandalonePWA()` to check if current window is a standalone PWA
|
|
- Rename `isChromiumBased()` to `isChromeFamily()`
|
|
- Update `isAppleSilicon()` to also checks for WebGL renderer info
|
|
- `ua-parser-js/extensions` submodule:
|
|
- Restore `Bots` as a compilation of all these browser types: `cli`, `crawler`, `fetcher`, and `library`
|
|
|
|
## Version 2.0.0-beta.3
|
|
|
|
- Breaking:
|
|
- AR/VR devices moved to new device type: `xr`
|
|
- New property in `browser`: `type`
|
|
- New features:
|
|
- Parse directly from command line using `npx ua-parser-js`
|
|
- Extensions can be passed as a list to `UAParser()`
|
|
- Add new browser: Pico Browser, Twitter, Wolvic
|
|
- Improve browser detection: DuckDuckGo, ICEBrowser, Klar, QQ, Sleipnir
|
|
- Improve device detection: Oculus Quest & Oppo Pad
|
|
- Update latest client hints spec: `formFactor` -> `formFactors`
|
|
- In `ua-parser-js/extensions` submodule, `bots` divided into `crawler` / `fetcher`
|
|
|
|
## Version 2.0.0-beta.2
|
|
|
|
- Increase UA_MAX_LENGTH to 500
|
|
- Add TypeScript declaration file in `ua-parser-js/extensions` submodule
|
|
- Improve TypeScript module resolution
|
|
- Add new methods in `ua-parser-js/helpers` submodule: `isAppleSilicon()` & `isChromiumBased()`
|
|
- Fix misidentified WebView token as device model
|
|
- Add new browser: Alipay, Klarna, Opera GX, Smart Lenovo Browser, Vivo Browser
|
|
- Rename browser: Avant, Baidu, Samsung Internet, Sogou Explorer, Sogou Mobile, WeChat
|
|
- Improve client-hints detection: Edge, Xbox
|
|
|
|
## Version 2.0.0-beta.1
|
|
|
|
- Update Client Hints Form-Factor
|
|
- Provide in-package type definitions
|
|
- Add new device: Ulefone
|
|
- Improve device detection: Realme, Xiaomi Redmi
|
|
|
|
## Version 2.0.0-alpha.3
|
|
|
|
- Add `withFeatureCheck()` method
|
|
- Add `isFrozenUA()` method in `ua-parser-js/helpers` submodule
|
|
- Add `MediaPlayers` & `Modules` in `ua-parser-js/extensions` submodule
|
|
- Fix issue with ESM import
|
|
|
|
## Version 2.0.0-alpha.2
|
|
|
|
- Fix browser result always returning Chromium when using withClientHints()
|
|
- Fix infinite-loop when await-ing withClientHints() in non-client-hints browser
|
|
|
|
## Version 2.0.0-alpha.1
|
|
|
|
- Initial work on new major version
|
|
|
|
---
|
|
|
|
## Version 0.7.38 / 1.0.38
|
|
- Fix error on getOS() when userAgentData.platform is undefined
|
|
- Add new browser: Opera GX, Twitter
|
|
- Improve browser detection: DuckDuckGo
|
|
- Improve device detection: OPPO Pad, Oculus Quest
|
|
|
|
## Version 0.7.37 / 1.0.37
|
|
- Fix misidentified WebView token as device model
|
|
- Increase UA_MAX_LENGTH to 500
|
|
- Add new browser: Alipay, Klarna, Smart Lenovo Browser, Vivo Browser
|
|
- Add new device: Ulefone
|
|
- Improve device detection: Realme, Xiaomi Redmi
|
|
- Rename browser: Avant, Baidu, Samsung Internet, Sogou Explorer, Sogou Mobile, WeChat
|
|
|
|
## Version 0.7.36 / 1.0.36
|
|
- Add new browser: Snapchat
|
|
- Add new devices: Infinix, Tecno
|
|
- Improve device detection: Amazon Fire TV, Xiaomi POCO
|
|
- Improve OS detection: iOS
|
|
|
|
## Version 0.7.35 / 1.0.35
|
|
- Fix result from user-supplied user-agent being altered
|
|
- Add new browser: Heytap, TikTok
|
|
- Add new engine: LibWeb
|
|
- Add new OS: SerenityOS
|
|
- Improve browser detection: Yandex
|
|
- Improve device detection: iPhone, Amazon Echo
|
|
- Improve OS detection: iOS
|
|
|
|
## Version 0.7.34 / 1.0.34
|
|
- Fix Sharp Mobile detected as Huawei Tablet
|
|
- Fix IE8 bug
|
|
- Add new devices : Kobo e-Reader, Apple Watch, and some new SmartTV devices
|
|
- Add new OS : watchOS
|
|
- Improve browser detection : Kakao, Naver, Brave
|
|
- Improve device detection : Oculus, iPad
|
|
- Improve OS detection : Chrome OS
|
|
- Using navigator.userAgentData as fallback for device.type & os.name
|
|
|
|
## Version 0.7.33 / 1.0.33
|
|
|
|
- Add new browser : Cobalt
|
|
- Identify Macintosh as an Apple device
|
|
- Fix ReDoS vulnerability
|
|
|
|
## Version 0.7.32 / 1.0.32
|
|
|
|
- Add new browser : DuckDuckGo, Huawei Browser, LinkedIn
|
|
- Add new OS : HarmonyOS
|
|
- Add some Huawei models
|
|
- Add Sharp Aquos TV
|
|
- Improve detection Xiaomi Mi CC9
|
|
- Fix Sony Xperia 1 III misidentified as Acer tablet
|
|
- Fix Detect Sony BRAVIA as SmartTV
|
|
- Fix Detect Xiaomi Mi TV as SmartTV
|
|
- Fix Detect Galaxy Tab S8 as tablet
|
|
- Fix WeGame mistakenly identified as WeChat
|
|
- Fix included commas in Safari / Mobile Safari version
|
|
- Increase UA_MAX_LENGTH to 350
|
|
|
|
## Version 0.7.31 / 1.0.2
|
|
|
|
- Fix OPPO Reno A5 incorrect detection
|
|
- Fix TypeError Bug
|
|
- Use AST to extract regexes and verify them with safe-regex
|
|
|
|
## Version 0.7.30 / 1.0.1
|
|
|
|
- Add new browser : Obigo, UP.Browser, Klar
|
|
- Add new device : Oculus, Roku
|
|
- Add new OS: Maemo, HP-UX, Android-x86, Deepin, elementary OS, GhostBSD, Linspire, Manjaro, Sabayon
|
|
- Improve detection for Sony Xperia 1ii, LG Android TV, and some more devices
|
|
- Improve detection for ARM64 CPU
|
|
- Improve detection for Windows Mobile, Netscape, Mac on PowerPC
|
|
- Categorize PDA as mobile
|
|
- Fix Sharp devices misjudged as Huawei
|
|
- Fix trailing comma for ES3 compatibility
|
|
- Some code refactor
|
|
|
|
## Version 0.7 / 1.0
|
|
|
|
Version 1.0.x is basically the equivalent of version 0.7.x (mirror/duplicate). See [#536](https://github.com/faisalman/ua-parser-js/issues/536) for the reason behind this confusion.
|
|
|
|
## Version 0.8
|
|
|
|
Version 0.8 was created by accident. This version is now deprecated and no longer maintained, please update to version 0.7 / 1.0. |