-
Sync WhichBrowser/Parser-JavaScript to WhichBrowser/Parser-PHP@581d614 [diff]
-
Fixes:
- Hide the macOS version when it is reported as the fingerprinting-mitigation frozen value (
10.15.7for Chrome/Safari,10.15for Firefox) - Recognize macOS versions starting with
2x(e.g. macOS 26 Tahoe) — the OS X version regex previously only matched1x(10 to 19) - Recover the real iOS version from Safari's
Version/token when iOS 26+ freezes the reported OS version at18.x/19.x update-chromepulled its data fromomahaproxy.appspot.com, which has been shut down for years and returned 404, so it silently updated nothing. Chrome versions released after 118 (Nov 2023) had no matching entry in the stable-channel database and were consequently misidentified asChrome Dev. Switched to the Chromium Dash release API
- Hide the macOS version when it is reported as the fingerprinting-mitigation frozen value (
-
Database:
- Adds macOS nicknames
Ventura(13),Sonoma(14),Sequoia(15) andTahoe(26) - Adds Darwin-to-macOS/iOS version mapping up to Darwin 25 (macOS 26 Tahoe / iOS 26)
- Added Chrome stable versions 119 to 153 (desktop) and 119 to 152 (mobile). Firefox and Edge were checked too — both parse the browser version directly from the UA string with no version lookup table, so current releases (Firefox 141, Edge 140) were already detected correctly
- Routine refresh of the applications, models, indices, profiles and regexes databases
- Adds macOS nicknames
-
Operations:
- Removed the deprecated
requestpackage (unmaintained, several vulnerabilities with no fix available) from thebin/update-*scripts in favor of the nativefetch. This also resolved every other outstanding Dependabot alert (js-yaml,handlebars,minimatch,picomatch,path-to-regexp,uuid) by bumpingnyc, and picking up newer transitive dependencies foreslint,lint-stagedandsinon— none of this affects the published package, which has zero runtime dependencies - The
bin/update-*scripts used to swallow fetch failures silently (this is exactly how the deadomahaproxyendpoint above went unnoticed for years); they now log the error and exit with a non-zero status code - Every devDependency bumped to latest:
eslint8→10,husky8→9,lint-staged15→17,sinon17→22,@hapi/lab25→26,prettier,eslint-plugin-prettier,eslint-config-prettier - Migrated
.eslintrc.jsonto flat config (eslint.config.js), required by ESLint 9+. Replacedeslint-config-google— archived by Google in 2025, last released in 2019, and no longer loadable at all under ESLint 10 since it still references core rules (valid-jsdoc,require-jsdoc) that were removed — with the ~20 rules it contributed that weren't already superseded by Prettier, declared directly so the project no longer depends on an abandoned package husky9 dropped the.husky/_/husky.shboilerplate hooks used to source; updated.husky/pre-commitaccordinglynyc18 andlint-staged17 require Node 20+/22+ to run; updated the CI matrix from Node 16-20 (all EOL except the tail of 20.x) to the currently maintained LTS lines (20.x, 22.x, 24.x), and bumpedactions/checkout/actions/setup-nodeto v4update-allnow runsprettier/eslint --fixondata/right after regenerating it (newformat-datascript), so the generated files are committed in their final formatted form instead of relying on the pre-commit hook to reformat them after the fact
- Removed the deprecated
- Database: Added Chrome 101 to 118.
-
Sync WhichBrowser/Parser-JavaScript to WhichBrowser/Parser-PHP@1044880
-
Supports Chrome UA reduction
-
BREAKING:
Plasystationhas been reworded toPlayStationacross the whole codebase. -
Database:
- Adds support for
Huawei Browser - Adds support for
Xbox Series X - Adds support for
PlayStation 5 - Adds support for
HarmonyOS
- Adds support for
- Database: Added Chrome 99 and 100 (a770c30)
- Fixes: Chrome 100+ was being detected as a browser in Camouflage mode. Fixes #61
- Database: Synced the JavaScript version of WhichBrowser with the latest changes happened in WhichBrowser-PHP until WhichBrowser-PHP@d082883 [diff].
- Operations: Migrate from TravisCI to GitHub Actuibs
- Database: Added Chrome 77 and 78.
- Database: Added support for Chromium based Edge. Updated Android and iOS models. Added Chrome 75 and 76. Added Samsung Galaxy Fold and Galaxy A models.
- Fixes: False positive for Obigo browser.
Now TypeScript Types are available thanks to @AnandChowdhary and his PR #36
- Database: Added Chrome 73 and 74 (d2ea800)
- Fix: Issue 96 of WhichBrowser/Parser-PHP,
profiles.jsandmodels-*.jsfiles had some occourrences of spaces replaced by Unicode Character 'EN SPACE' (U+2002). The scripts that download these files are now stripping away that character and replacing it with a normal space. Thanks @koconder for #29 and @Taiwaninja for reporting it. - Tools: WhichBrowser/Parser-Javascript is now tested on all the node versions between 6 and 11 included. Thanks again to @koconder for #30.
- Database: Added Chrome 70, 71 and 72 (34735c2)
- Database: Added new iPhones XS, XS Max, XR (911ae7a)
- Database: Added Chrome 69 (5b8a4fa)
- Fixes: Now is possible to really disable the bot detection with the option
detectBots: false(5e02e9a)
- Database: Added Chrome 68 (0d04c8d & cd5ec81)
- Database: Fixed name of Oculus Browser and added Oculus Go detection, thanks @frankolivier (#23) (b38377c)
- Database: Updated Models, Indices and Profiles (fa4dd85)
- Database: Added Chrome 66 & 67 (a9bce87)
- Database: Added Chrome 65 (c1c9148)
- Fixes: Update dependencies due to vulnerable moment.js version (4ed2fc2)
- Database: Added Czech service, thanks to @pixietrixibell for #90 on Parser-PHP (8a96017)
This update is too big to list all the improvements Just to list some of these:
- Improved XIAOMI and MIUI browser detection
- Added Zen, Ziox, Yuanda and many others
- Added a lot of new models
- Added new browsers
- Fixes:
- Database: Added Chrome 63, new iPhones, MANY new models of various manufacturers and Os (6e6715e)
- Analysis: Better management of Edge, added management of KaiOS (22a2752)
- Database: Added Chrome 62 (3d4a74c)
- Database: Added Chrome 60 (0043804)
- This project: 🎊 is now the official JavaScript version of WhichBrowser 🍾
- readme: updated with new badge due to change of GitHub url (11b18b7)
- changelog: added this changelog
- coverage: removed unused line of code that lowered the coverage, now is 100% 🎉 (36fed88)
- readme: added instructions 📖 on how to use cache (0e2c83e)
- cache: adding a simple cache mechanism (0e2c83e)
- npm: First version of JavaScript porting on npm 🎇