mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2026-01-16 08:27:12 +03:00
Bump version 2.0.8
This commit is contained in:
15
CHANGELOG.md
15
CHANGELOG.md
@@ -76,6 +76,21 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Version 2.0.8
|
||||||
|
|
||||||
|
- Resolve syntax error related to import renaming in ESM build
|
||||||
|
- Add new browser: HiBrowser, Opera Neon
|
||||||
|
- Add new engine: Dillo
|
||||||
|
- Improve browser detection: Brave, TikTok
|
||||||
|
- Improve device detection: OnePlus
|
||||||
|
- Improve OS detection: Firefox OS
|
||||||
|
- `extensions` submodule:
|
||||||
|
- Add new CLI: PowerShell
|
||||||
|
- Add new email: Alpine, Android, AquaMail, Balsa, Barca, Canary, Claws Mail, eM Client, Eudora, FairEmail, Geary, Gnus, Horde::IMP, Lotus-Notes, IncrediMail, K-9 Mail, Mailbird, MailMate, Mailspring, Mutt, Newton, Nine, NylasMail, Outlook-Express, Pegasus Mail, PocoMail, Postbox, ProtonMail Bridge, Quala, R2Mail2, Rainloop, Roundcube Webmail, SamsungEmail, Spicebird, SquirrelMail, Sylpheed, The Bat!, Trojita, Turnpike, tutanota-desktop, Wanderlust, Windows-Live-Mail
|
||||||
|
- Add new library: http.rb, Jetty, ocaml-cohttp
|
||||||
|
- `helpers` submodule:
|
||||||
|
- Add new method: `getOutlookEdition()` to map Outlook versions to their marketing editions
|
||||||
|
|
||||||
## Version 2.0.7
|
## Version 2.0.7
|
||||||
|
|
||||||
- Add support for chaining `withClientHints()` & `withFeatureCheck()`
|
- Add support for chaining `withClientHints()` & `withFeatureCheck()`
|
||||||
|
|||||||
4
dist/ua-parser.min.js
vendored
4
dist/ua-parser.min.js
vendored
File diff suppressed because one or more lines are too long
4
dist/ua-parser.min.mjs
vendored
4
dist/ua-parser.min.mjs
vendored
File diff suppressed because one or more lines are too long
4
dist/ua-parser.pack.js
vendored
4
dist/ua-parser.pack.js
vendored
File diff suppressed because one or more lines are too long
4
dist/ua-parser.pack.mjs
vendored
4
dist/ua-parser.pack.mjs
vendored
File diff suppressed because one or more lines are too long
1001
package-lock.json
generated
1001
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "UAParser.js",
|
"title": "UAParser.js",
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "2.0.7",
|
"version": "2.0.8",
|
||||||
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
||||||
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment",
|
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
2
src/bot-detection/bot-detection.d.ts
vendored
2
src/bot-detection/bot-detection.d.ts
vendored
@@ -1,4 +1,4 @@
|
|||||||
// Type definitions for bot-detection submodule of UAParser.js v2.0.7
|
// Type definitions for bot-detection submodule of UAParser.js v2.0.8
|
||||||
// Project: https://github.com/faisalman/ua-parser-js
|
// Project: https://github.com/faisalman/ua-parser-js
|
||||||
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
/* bot-detection submodule of UAParser.js v2.0.7
|
/* bot-detection submodule of UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Source: /src/bot-detection/bot-detection.js
|
// Source: /src/bot-detection/bot-detection.js
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
/* bot-detection submodule of UAParser.js v2.0.7
|
/* bot-detection submodule of UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
|
|||||||
2
src/browser-detection/browser-detection.d.ts
vendored
2
src/browser-detection/browser-detection.d.ts
vendored
@@ -1,4 +1,4 @@
|
|||||||
// Type definitions for browser-detection submodule of UAParser.js v2.0.7
|
// Type definitions for browser-detection submodule of UAParser.js v2.0.8
|
||||||
// Project: https://github.com/faisalman/ua-parser-js
|
// Project: https://github.com/faisalman/ua-parser-js
|
||||||
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////
|
||||||
/* browser-detection submodule of UAParser.js v2.0.7
|
/* browser-detection submodule of UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Source: /src/browser-detection/browser-detection.js
|
// Source: /src/browser-detection/browser-detection.js
|
||||||
|
|
||||||
//////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////
|
||||||
/* browser-detection submodule of UAParser.js v2.0.7
|
/* browser-detection submodule of UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
|
|||||||
2
src/device-detection/device-detection.d.ts
vendored
2
src/device-detection/device-detection.d.ts
vendored
@@ -1,4 +1,4 @@
|
|||||||
// Type definitions for device-detection submodule of UAParser.js v2.0.7
|
// Type definitions for device-detection submodule of UAParser.js v2.0.8
|
||||||
// Project: https://github.com/faisalman/ua-parser-js
|
// Project: https://github.com/faisalman/ua-parser-js
|
||||||
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
/* device-detection submodule of UAParser.js v2.0.7
|
/* device-detection submodule of UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Source: /src/device-detection/device-detection.js
|
// Source: /src/device-detection/device-detection.js
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
/* device-detection submodule of UAParser.js v2.0.7
|
/* device-detection submodule of UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
|
|||||||
9
src/enums/ua-parser-enums.d.ts
vendored
9
src/enums/ua-parser-enums.d.ts
vendored
@@ -3,7 +3,7 @@
|
|||||||
// Source: /src/enums/ua-parser-enums.js
|
// Source: /src/enums/ua-parser-enums.js
|
||||||
|
|
||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Enums for UAParser.js v2.0.7
|
/* Enums for UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
@@ -66,6 +66,7 @@ export const BrowserName: Readonly<{
|
|||||||
GOOGLE_SEARCH: 'GSA',
|
GOOGLE_SEARCH: 'GSA',
|
||||||
HELIO: 'Helio',
|
HELIO: 'Helio',
|
||||||
HEYTAP: 'HeyTap',
|
HEYTAP: 'HeyTap',
|
||||||
|
HIBROWSER: 'HiBrowser',
|
||||||
HONOR: 'Honor',
|
HONOR: 'Honor',
|
||||||
HUAWEI: 'Huawei Browser',
|
HUAWEI: 'Huawei Browser',
|
||||||
ICAB: 'iCab',
|
ICAB: 'iCab',
|
||||||
@@ -116,6 +117,7 @@ export const BrowserName: Readonly<{
|
|||||||
OPERA_GX: 'Opera GX',
|
OPERA_GX: 'Opera GX',
|
||||||
OPERA_MINI: 'Opera Mini',
|
OPERA_MINI: 'Opera Mini',
|
||||||
OPERA_MOBI: 'Opera Mobi',
|
OPERA_MOBI: 'Opera Mobi',
|
||||||
|
OPERA_NEON: 'Opera Neon',
|
||||||
OPERA_TABLET: 'Opera Tablet',
|
OPERA_TABLET: 'Opera Tablet',
|
||||||
OPERA_TOUCH: 'Opera Touch',
|
OPERA_TOUCH: 'Opera Touch',
|
||||||
OTTER: 'Otter',
|
OTTER: 'Otter',
|
||||||
@@ -316,6 +318,7 @@ export const EngineName: Readonly<{
|
|||||||
AMAYA: 'Amaya',
|
AMAYA: 'Amaya',
|
||||||
ARKWEB: 'ArkWeb',
|
ARKWEB: 'ArkWeb',
|
||||||
BLINK: 'Blink',
|
BLINK: 'Blink',
|
||||||
|
DILLO: 'Dillo',
|
||||||
EDGEHTML: 'EdgeHTML',
|
EDGEHTML: 'EdgeHTML',
|
||||||
FLOW: 'Flow',
|
FLOW: 'Flow',
|
||||||
GECKO: 'Gecko',
|
GECKO: 'Gecko',
|
||||||
@@ -451,6 +454,7 @@ export const Extension: Readonly<{
|
|||||||
ELINKS: 'ELinks',
|
ELINKS: 'ELinks',
|
||||||
HTTPIE: 'HTTPie',
|
HTTPIE: 'HTTPie',
|
||||||
LYNX: 'Lynx',
|
LYNX: 'Lynx',
|
||||||
|
POWERSHELL: 'PowerShell',
|
||||||
WGET: 'Wget'
|
WGET: 'Wget'
|
||||||
},
|
},
|
||||||
Crawler: {
|
Crawler: {
|
||||||
@@ -763,8 +767,10 @@ export const Extension: Readonly<{
|
|||||||
GOT: 'got',
|
GOT: 'got',
|
||||||
GUZZLEHTTP: 'GuzzleHttp',
|
GUZZLEHTTP: 'GuzzleHttp',
|
||||||
HACKNEY: 'hackney',
|
HACKNEY: 'hackney',
|
||||||
|
HTTP_RB: 'http.rb',
|
||||||
JAVA: 'Java',
|
JAVA: 'Java',
|
||||||
JAVA_HTTPCLIENT: 'Java-http-client',
|
JAVA_HTTPCLIENT: 'Java-http-client',
|
||||||
|
JETTY: 'Jetty',
|
||||||
JSDOM: 'jsdom',
|
JSDOM: 'jsdom',
|
||||||
LIBWWW_PERL: 'libwww-perl',
|
LIBWWW_PERL: 'libwww-perl',
|
||||||
LUA_RESTY_HTTP: 'lua-resty-http',
|
LUA_RESTY_HTTP: 'lua-resty-http',
|
||||||
@@ -774,6 +780,7 @@ export const Extension: Readonly<{
|
|||||||
NODE_JS: 'Node.js',
|
NODE_JS: 'Node.js',
|
||||||
NODE_SUPERAGENT: 'node-superagent',
|
NODE_SUPERAGENT: 'node-superagent',
|
||||||
OKHTTP: 'OkHttp',
|
OKHTTP: 'OkHttp',
|
||||||
|
OCAML_COHTTP: 'ocaml-cohttp',
|
||||||
PHP_SOAP: 'PHP-SOAP',
|
PHP_SOAP: 'PHP-SOAP',
|
||||||
POSTMAN_RUNTIME: 'PostmanRuntime',
|
POSTMAN_RUNTIME: 'PostmanRuntime',
|
||||||
PYTHON_HTTPX: 'python-httpx',
|
PYTHON_HTTPX: 'python-httpx',
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Enums for UAParser.js v2.0.7
|
/* Enums for UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Source: /src/enums/ua-parser-enums.js
|
// Source: /src/enums/ua-parser-enums.js
|
||||||
|
|
||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Enums for UAParser.js v2.0.7
|
/* Enums for UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
@@ -66,6 +66,7 @@ const BrowserName = Object.freeze({
|
|||||||
GOOGLE_SEARCH: 'GSA',
|
GOOGLE_SEARCH: 'GSA',
|
||||||
HELIO: 'Helio',
|
HELIO: 'Helio',
|
||||||
HEYTAP: 'HeyTap',
|
HEYTAP: 'HeyTap',
|
||||||
|
HIBROWSER: 'HiBrowser',
|
||||||
HONOR: 'Honor',
|
HONOR: 'Honor',
|
||||||
HUAWEI: 'Huawei Browser',
|
HUAWEI: 'Huawei Browser',
|
||||||
ICAB: 'iCab',
|
ICAB: 'iCab',
|
||||||
@@ -116,6 +117,7 @@ const BrowserName = Object.freeze({
|
|||||||
OPERA_GX: 'Opera GX',
|
OPERA_GX: 'Opera GX',
|
||||||
OPERA_MINI: 'Opera Mini',
|
OPERA_MINI: 'Opera Mini',
|
||||||
OPERA_MOBI: 'Opera Mobi',
|
OPERA_MOBI: 'Opera Mobi',
|
||||||
|
OPERA_NEON: 'Opera Neon',
|
||||||
OPERA_TABLET: 'Opera Tablet',
|
OPERA_TABLET: 'Opera Tablet',
|
||||||
OPERA_TOUCH: 'Opera Touch',
|
OPERA_TOUCH: 'Opera Touch',
|
||||||
OTTER: 'Otter',
|
OTTER: 'Otter',
|
||||||
@@ -316,6 +318,7 @@ const EngineName = Object.freeze({
|
|||||||
AMAYA: 'Amaya',
|
AMAYA: 'Amaya',
|
||||||
ARKWEB: 'ArkWeb',
|
ARKWEB: 'ArkWeb',
|
||||||
BLINK: 'Blink',
|
BLINK: 'Blink',
|
||||||
|
DILLO: 'Dillo',
|
||||||
EDGEHTML: 'EdgeHTML',
|
EDGEHTML: 'EdgeHTML',
|
||||||
FLOW: 'Flow',
|
FLOW: 'Flow',
|
||||||
GECKO: 'Gecko',
|
GECKO: 'Gecko',
|
||||||
@@ -451,6 +454,7 @@ const Extension = Object.freeze({
|
|||||||
ELINKS: 'ELinks',
|
ELINKS: 'ELinks',
|
||||||
HTTPIE: 'HTTPie',
|
HTTPIE: 'HTTPie',
|
||||||
LYNX: 'Lynx',
|
LYNX: 'Lynx',
|
||||||
|
POWERSHELL: 'PowerShell',
|
||||||
WGET: 'Wget'
|
WGET: 'Wget'
|
||||||
},
|
},
|
||||||
Crawler: {
|
Crawler: {
|
||||||
@@ -763,8 +767,10 @@ const Extension = Object.freeze({
|
|||||||
GOT: 'got',
|
GOT: 'got',
|
||||||
GUZZLEHTTP: 'GuzzleHttp',
|
GUZZLEHTTP: 'GuzzleHttp',
|
||||||
HACKNEY: 'hackney',
|
HACKNEY: 'hackney',
|
||||||
|
HTTP_RB: 'http.rb',
|
||||||
JAVA: 'Java',
|
JAVA: 'Java',
|
||||||
JAVA_HTTPCLIENT: 'Java-http-client',
|
JAVA_HTTPCLIENT: 'Java-http-client',
|
||||||
|
JETTY: 'Jetty',
|
||||||
JSDOM: 'jsdom',
|
JSDOM: 'jsdom',
|
||||||
LIBWWW_PERL: 'libwww-perl',
|
LIBWWW_PERL: 'libwww-perl',
|
||||||
LUA_RESTY_HTTP: 'lua-resty-http',
|
LUA_RESTY_HTTP: 'lua-resty-http',
|
||||||
@@ -774,6 +780,7 @@ const Extension = Object.freeze({
|
|||||||
NODE_JS: 'Node.js',
|
NODE_JS: 'Node.js',
|
||||||
NODE_SUPERAGENT: 'node-superagent',
|
NODE_SUPERAGENT: 'node-superagent',
|
||||||
OKHTTP: 'OkHttp',
|
OKHTTP: 'OkHttp',
|
||||||
|
OCAML_COHTTP: 'ocaml-cohttp',
|
||||||
PHP_SOAP: 'PHP-SOAP',
|
PHP_SOAP: 'PHP-SOAP',
|
||||||
POSTMAN_RUNTIME: 'PostmanRuntime',
|
POSTMAN_RUNTIME: 'PostmanRuntime',
|
||||||
PYTHON_HTTPX: 'python-httpx',
|
PYTHON_HTTPX: 'python-httpx',
|
||||||
|
|||||||
2
src/extensions/ua-parser-extensions.d.ts
vendored
2
src/extensions/ua-parser-extensions.d.ts
vendored
@@ -1,4 +1,4 @@
|
|||||||
// Type definitions for Helpers submodule of UAParser.js v2.0.5
|
// Type definitions for Helpers submodule of UAParser.js v2.0.8
|
||||||
// Project: https://github.com/faisalman/ua-parser-js
|
// Project: https://github.com/faisalman/ua-parser-js
|
||||||
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Extensions for UAParser.js v2.0.7
|
/* Extensions for UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Source: /src/extensions/ua-parser-extensions.js
|
// Source: /src/extensions/ua-parser-extensions.js
|
||||||
|
|
||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Extensions for UAParser.js v2.0.7
|
/* Extensions for UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
@@ -45,8 +45,8 @@ const normalizeEmailName = function (str) {
|
|||||||
|
|
||||||
const CLIs = Object.freeze({
|
const CLIs = Object.freeze({
|
||||||
browser : [
|
browser : [
|
||||||
// wget / curl / Lynx / ELinks / HTTPie
|
// wget / curl / Lynx / ELinks / HTTPie / PowerShell
|
||||||
[/(wget|curl|lynx|elinks|httpie)[\/ ]\(?([\w\.-]+)/i], [NAME, VERSION, [TYPE, CLI]]
|
[/(wget|curl|lynx|elinks|httpie|powershell)[\/ ]\(?([\w\.-]+)/i], [NAME, VERSION, [TYPE, CLI]]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -437,8 +437,8 @@ const MediaPlayers = Object.freeze({
|
|||||||
const Libraries = Object.freeze({
|
const Libraries = Object.freeze({
|
||||||
browser : [
|
browser : [
|
||||||
[
|
[
|
||||||
// Apache-HttpClient/Axios/Bun/Dart/go-http-client/got/GuzzleHttp/hackney/Java[-HttpClient]/jsdom/libwww-perl/lua-resty-http/Needle/Node.js/node-fetch/OkHttp/PHP-SOAP/PostmanRuntime/python-urllib/python-requests/rest-client/Scrapy/superagent
|
// Apache-HttpClient/Axios/Bun/Dart/go-http-client/got/GuzzleHttp/hackney/http.rb/Java[-HttpClient]/Jetty/jsdom/libwww-perl/lua-resty-http/Needle/Node.js/node-fetch/ocaml-cohttp/OkHttp/PHP-SOAP/PostmanRuntime/python-urllib/python-requests/rest-client/Scrapy/superagent
|
||||||
/^(apache-httpclient|axios|bun|dart|deno|(?:go|java)-http-client|got|guzzlehttp|hackney|java|libwww-perl|lua-resty-http|needle|node(?:\.js|-fetch|-superagent)|okhttp|php-soap|postmanruntime|python-(?:httpx|urllib[23]?|requests)|rest-client|scrapy)\/([\w\.]+)/i,
|
/^((?:apache|go|java)-http-?client|axios|bun|dart|deno|got|(?:guzzle|lua-resty-|ocaml-co|ok)http|hackney|http\.rb|java|jetty|libwww-perl|needle|node(?:\.js|-fetch|-superagent)|php-soap|postmanruntime|python-(?:httpx|urllib[23]?|requests)|rest-client|scrapy)\/([\w\.]+)/i,
|
||||||
/(adobeair|aiohttp|jsdom)\/([\w\.]+)/i,
|
/(adobeair|aiohttp|jsdom)\/([\w\.]+)/i,
|
||||||
/(nutch)-([\w\.-]+)(\(|$)/i,
|
/(nutch)-([\w\.-]+)(\(|$)/i,
|
||||||
/\((java)\/([\w\.]+)/i
|
/\((java)\/([\w\.]+)/i
|
||||||
|
|||||||
3
src/helpers/ua-parser-helpers.d.ts
vendored
3
src/helpers/ua-parser-helpers.d.ts
vendored
@@ -1,9 +1,10 @@
|
|||||||
// Type definitions for Helpers submodule of UAParser.js v2.0.5
|
// Type definitions for Helpers submodule of UAParser.js v2.0.8
|
||||||
// Project: https://github.com/faisalman/ua-parser-js
|
// Project: https://github.com/faisalman/ua-parser-js
|
||||||
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
||||||
|
|
||||||
import type { IResult } from "../main/ua-parser";
|
import type { IResult } from "../main/ua-parser";
|
||||||
|
|
||||||
|
export function getOutlookEdition(name: string, version: string): string;
|
||||||
export function isFrozenUA(ua: string): boolean;
|
export function isFrozenUA(ua: string): boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Helpers for UAParser.js v2.0.7
|
/* Helpers for UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
@@ -7,8 +7,6 @@
|
|||||||
|
|
||||||
/*jshint esversion: 6 */
|
/*jshint esversion: 6 */
|
||||||
|
|
||||||
const { UAParser } = require('../main/ua-parser');
|
|
||||||
const { EngineName } = require('../enums/ua-parser-enums');
|
|
||||||
const { getDeviceVendor: _getDeviceVendor, isAppleSilicon: _isAppleSilicon } = require('../device-detection/device-detection');
|
const { getDeviceVendor: _getDeviceVendor, isAppleSilicon: _isAppleSilicon } = require('../device-detection/device-detection');
|
||||||
const { isBot: _isBot, isAICrawler } = require('../bot-detection/bot-detection');
|
const { isBot: _isBot, isAICrawler } = require('../bot-detection/bot-detection');
|
||||||
const { isChromeFamily: _isChromeFamily, isElectron: _isElectron, isStandalonePWA: _isStandalonePWA } = require('../browser-detection/browser-detection');
|
const { isChromeFamily: _isChromeFamily, isElectron: _isElectron, isStandalonePWA: _isStandalonePWA } = require('../browser-detection/browser-detection');
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Source: /src/helpers/ua-parser-helpers.js
|
// Source: /src/helpers/ua-parser-helpers.js
|
||||||
|
|
||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Helpers for UAParser.js v2.0.7
|
/* Helpers for UAParser.js v2.0.8
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License */
|
AGPLv3 License */
|
||||||
@@ -11,12 +11,10 @@
|
|||||||
|
|
||||||
/*jshint esversion: 6 */
|
/*jshint esversion: 6 */
|
||||||
|
|
||||||
import { UAParser } from '../main/ua-parser.mjs';
|
import { getDeviceVendor as _getDeviceVendor, isAppleSilicon as _isAppleSilicon } from '../device-detection/device-detection.mjs';
|
||||||
import { EngineName } from '../enums/ua-parser-enums.mjs';
|
import { isBot as _isBot, isAICrawler } from '../bot-detection/bot-detection.mjs';
|
||||||
import { getDeviceVendor: _getDeviceVendor, isAppleSilicon: _isAppleSilicon } from '../device-detection/device-detection.mjs';
|
import { isChromeFamily as _isChromeFamily, isElectron as _isElectron, isStandalonePWA as _isStandalonePWA } from '../browser-detection/browser-detection.mjs';
|
||||||
import { isBot: _isBot, isAICrawler } from '../bot-detection/bot-detection.mjs';
|
import { isFromEU as _isFromEU } from '../browser-detection/browser-detection.mjs';
|
||||||
import { isChromeFamily: _isChromeFamily, isElectron: _isElectron, isStandalonePWA: _isStandalonePWA } from '../browser-detection/browser-detection.mjs';
|
|
||||||
import { isFromEU: _isFromEU } from '../browser-detection/browser-detection.mjs';
|
|
||||||
import { isFrozenUA } from 'ua-is-frozen';
|
import { isFrozenUA } from 'ua-is-frozen';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
2
src/main/ua-parser.d.ts
vendored
2
src/main/ua-parser.d.ts
vendored
@@ -1,4 +1,4 @@
|
|||||||
// Type definitions for UAParser.js v2.0.7
|
// Type definitions for UAParser.js v2.0.8
|
||||||
// Project: https://github.com/faisalman/ua-parser-js
|
// Project: https://github.com/faisalman/ua-parser-js
|
||||||
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
/* UAParser.js v2.0.7
|
/* UAParser.js v2.0.8
|
||||||
Copyright © 2012-2025 Faisal Salman <f@faisalman.com>
|
Copyright © 2012-2025 Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License *//*
|
AGPLv3 License *//*
|
||||||
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
// Constants
|
// Constants
|
||||||
/////////////
|
/////////////
|
||||||
|
|
||||||
var LIBVERSION = '2.0.7',
|
var LIBVERSION = '2.0.8',
|
||||||
UA_MAX_LENGTH = 500,
|
UA_MAX_LENGTH = 500,
|
||||||
USER_AGENT = 'user-agent',
|
USER_AGENT = 'user-agent',
|
||||||
EMPTY = '',
|
EMPTY = '',
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// Source: /src/main/ua-parser.js
|
// Source: /src/main/ua-parser.js
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
/* UAParser.js v2.0.7
|
/* UAParser.js v2.0.8
|
||||||
Copyright © 2012-2025 Faisal Salman <f@faisalman.com>
|
Copyright © 2012-2025 Faisal Salman <f@faisalman.com>
|
||||||
AGPLv3 License *//*
|
AGPLv3 License *//*
|
||||||
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
// Constants
|
// Constants
|
||||||
/////////////
|
/////////////
|
||||||
|
|
||||||
var LIBVERSION = '2.0.7',
|
var LIBVERSION = '2.0.8',
|
||||||
UA_MAX_LENGTH = 500,
|
UA_MAX_LENGTH = 500,
|
||||||
USER_AGENT = 'user-agent',
|
USER_AGENT = 'user-agent',
|
||||||
EMPTY = '',
|
EMPTY = '',
|
||||||
@@ -377,9 +377,10 @@
|
|||||||
/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet
|
/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet
|
||||||
/(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer
|
/(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer
|
||||||
|
|
||||||
// Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble/Palemoon
|
// Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble/Palemoon/HiBrowser
|
||||||
/(atlas|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,
|
/(atlas|flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:hi|lg |ovi|qute)browser|palemoon)\/v?([-\w\.]+)/i,
|
||||||
// Atlas/Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon
|
// Atlas/Rekonq/Puffin/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon
|
||||||
|
/(brave)(?: chrome)?\/([\d\.]+)/i, // Brave
|
||||||
/(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i, // HeyTap/Ovi/115/Surf
|
/(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i, // HeyTap/Ovi/115/Surf
|
||||||
/(qwant)(?:ios|mobile)\/([\d\.]+)/i, // Qwant
|
/(qwant)(?:ios|mobile)\/([\d\.]+)/i, // Qwant
|
||||||
/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i // Ecosia/Weibo
|
/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i // Ecosia/Weibo
|
||||||
@@ -406,7 +407,9 @@
|
|||||||
], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [
|
], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [
|
||||||
/\bfocus\/([\w\.]+)/i // Firefox Focus
|
/\bfocus\/([\w\.]+)/i // Firefox Focus
|
||||||
], [VERSION, [NAME, FIREFOX+' Focus']], [
|
], [VERSION, [NAME, FIREFOX+' Focus']], [
|
||||||
/\bopt\/([\w\.]+)/i // Opera Touch
|
/ mms\/([\w\.]+)$/i // Opera Neon
|
||||||
|
], [VERSION, [NAME, OPERA+' Neon']], [
|
||||||
|
/ opt\/([\w\.]+)$/i // Opera Touch
|
||||||
], [VERSION, [NAME, OPERA+' Touch']], [
|
], [VERSION, [NAME, OPERA+' Touch']], [
|
||||||
/coc_coc\w+\/([\w\.]+)/i // Coc Coc Browser
|
/coc_coc\w+\/([\w\.]+)/i // Coc Coc Browser
|
||||||
], [VERSION, [NAME, 'Coc Coc']], [
|
], [VERSION, [NAME, 'Coc Coc']], [
|
||||||
@@ -455,7 +458,7 @@
|
|||||||
], [NAME, VERSION, [TYPE, INAPP]], [
|
], [NAME, VERSION, [TYPE, INAPP]], [
|
||||||
/\bgsa\/([\w\.]+) .*safari\//i // Google Search Appliance on iOS
|
/\bgsa\/([\w\.]+) .*safari\//i // Google Search Appliance on iOS
|
||||||
], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [
|
], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [
|
||||||
/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i // TikTok
|
/(?:musical_ly|trill)(?:.+app_?version\/|_)([\w\.]+)/i // TikTok
|
||||||
], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [
|
], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [
|
||||||
/\[(linkedin)app\]/i // LinkedIn App for iOS & Android
|
/\[(linkedin)app\]/i // LinkedIn App for iOS & Android
|
||||||
], [NAME, [TYPE, INAPP]], [
|
], [NAME, [TYPE, INAPP]], [
|
||||||
@@ -610,7 +613,7 @@
|
|||||||
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [
|
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// OnePlus
|
// OnePlus
|
||||||
/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,
|
/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-l]\w[1m]10)\b/i,
|
||||||
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
||||||
], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
@@ -650,7 +653,7 @@
|
|||||||
], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [
|
||||||
|
|
||||||
// LG
|
// LG
|
||||||
/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
|
/\b(?:lg)?([vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
|
||||||
], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [
|
||||||
/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
|
/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
|
||||||
/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,
|
/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,
|
||||||
@@ -941,7 +944,7 @@
|
|||||||
/(presto)\/([\w\.]+)/i, // Presto
|
/(presto)\/([\w\.]+)/i, // Presto
|
||||||
/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo
|
/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo
|
||||||
/ekioh(flow)\/([\w\.]+)/i, // Flow
|
/ekioh(flow)\/([\w\.]+)/i, // Flow
|
||||||
/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, // KHTML/Tasman/Links
|
/(khtml|tasman|links|dillo)[\/ ]\(?([\w\.]+)/i, // KHTML/Tasman/Links/Dillo
|
||||||
/(icab)[\/ ]([23]\.[\d\.]+)/i, // iCab
|
/(icab)[\/ ]([23]\.[\d\.]+)/i, // iCab
|
||||||
|
|
||||||
/\b(libweb)/i // LibWeb
|
/\b(libweb)/i // LibWeb
|
||||||
@@ -1003,7 +1006,7 @@
|
|||||||
], [VERSION, [NAME, BLACKBERRY]], [
|
], [VERSION, [NAME, BLACKBERRY]], [
|
||||||
/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i // Symbian
|
/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i // Symbian
|
||||||
], [VERSION, [NAME, 'Symbian']], [
|
], [VERSION, [NAME, 'Symbian']], [
|
||||||
/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i // Firefox OS
|
/mozilla\/[\d\.]+ \((?:mobile[;\w ]*|tablet|tv|[^\)]*(?:viera|lg(?:l25|-d300)|alcatel ?o.+|y300-f1)); rv:([\w\.]+)\).+gecko\//i // Firefox OS
|
||||||
], [VERSION, [NAME, FIREFOX+' OS']], [
|
], [VERSION, [NAME, FIREFOX+' OS']], [
|
||||||
/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i, // WebOS
|
/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i, // WebOS
|
||||||
/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i
|
/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i
|
||||||
@@ -1019,7 +1022,6 @@
|
|||||||
], [[NAME, "Chrome OS"], VERSION],[
|
], [[NAME, "Chrome OS"], VERSION],[
|
||||||
|
|
||||||
// Smart TVs
|
// Smart TVs
|
||||||
/panasonic;(viera)/i, // Panasonic Viera
|
|
||||||
/(netrange)mmh/i, // Netrange
|
/(netrange)mmh/i, // Netrange
|
||||||
/(nettv)\/(\d+\.[\w\.]+)/i, // NetTV
|
/(nettv)\/(\d+\.[\w\.]+)/i, // NetTV
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user