From da753216421173d80b8421892357fba56cb1e955 Mon Sep 17 00:00:00 2001
From: Faisal Salman
Date: Sat, 30 Sep 2023 10:59:21 +0700
Subject: [PATCH] Update to latest development
---
index.html | 235 ++++++++++++++++++++++++++++++++++++++++++------
js/ua-parser.js | 6 +-
2 files changed, 210 insertions(+), 31 deletions(-)
diff --git a/index.html b/index.html
index b1c2905..3efeee3 100644
--- a/index.html
+++ b/index.html
@@ -23,6 +23,7 @@
+
@@ -38,10 +39,9 @@
in browser (client-side) or node.js (server-side).
@@ -82,7 +82,7 @@
- {UAParser.js} will transforms it into a well-structured format:
+ In addition with some browser-supplied data, {UAParser.js} will transforms it into a well-structured format:
@@ -232,13 +232,13 @@
Relatively Small Footprint
-
{UAParser.js} is optimized to be used within browser.
+
{UAParser.js} starts from and is optimized to be used within browser.
While it covers a vast range of detection, the size
always kept to be as light as possible.
For extra cache performance, {UAParser.js} also
- available in popular CDN services: jsDelivr / jsDelivr / CDNJS
@@ -250,8 +250,8 @@
Zero-deps Vanilla JS
- No bloated framework. No transpiler required. No unnecessary boilerplate. No
- dependencies.
+ No
+ dependencies. No bloated framework. No transpiler needed. No unnecessary boilerplate. No large-sized files required.
Just a good ol' ES3-compatible syntax that is able to
run on relatively old browsers while also performs
on most modern devices.
@@ -267,13 +267,13 @@
100% Free & Open Source
- Licensed under an extremely permissive MIT license,
- {UAParser.js} is free to use & modify at no charge.
- Contribute back either by submitting a Licensed under open-source terms,
+ {UAParser.js} is free to use & modify at no charge. PRO licenses also available for non-open-source purpose.
+ Contribute back in form of a PR or consider to PR, or donate if you find it
- helpful for your business or company.
+ helpful for your business.
@@ -289,7 +289,7 @@
Also, for TypeScript user, there is a
community-maintained types: @types/ua-parser-js
+ class="ui code">@types/ua-parser-js
@@ -1025,10 +1025,196 @@
+
+ DOWNLOADS : CHOOSE YOUR PACKAGE
+
+
+
+
+
+
+
+ |
+ Version 1.0 |
+ Version 2.0 |
+
+
+
+
+ License |
+ MIT |
+ AGPLv3 |
+ PRO Personal |
+ PRO Business |
+ PRO Enterprise |
+
+
+ Browser detection |
+ |
+ |
+ |
+ |
+ |
+
+
+ CPU detection |
+ |
+ |
+ |
+ |
+ |
+
+
+ Device detection |
+ |
+ |
+ |
+ |
+ |
+
+
+ Engine detection |
+ |
+ |
+ |
+ |
+ |
+
+
+ OS detection |
+ |
+ |
+ |
+ |
+ |
+
+
+ Enhanced detection |
+ |
+ |
+ |
+ |
+ |
+
+
+ Client Hints support |
+ |
+ |
+ |
+ |
+ |
+
+
+ Extras (Apps, Bots, Libs, Emails, Media Players, etc) |
+ |
+ |
+ |
+ |
+ |
+
+
+ CommonJS support |
+ |
+ |
+ |
+ |
+ |
+
+
+ ES modules support |
+ |
+ |
+ |
+ |
+ |
+
+
+ npm module available |
+ |
+ |
+ |
+ |
+ |
+
+
+ TypeScript declarations available |
+ |
+ |
+ |
+ |
+ |
+
+
+ Allowed for commercial use |
+ |
+ |
+ |
+ |
+ |
+
+
+ Permissive license |
+ |
+ |
+ |
+ |
+ |
+
+
+ Unlimited use per 1 license |
+ |
+ |
+ |
+ |
+ |
+
+
+ 1-year support |
+ |
+ |
+ |
+ |
+ |
+
+
+ Lifetime updates |
+ |
+ |
+ |
+ |
+ |
+
+
+ Price |
+ FREE |
+ FREE |
+ $12 |
+ $25 |
+ $500 |
+
+
+
+
+
+ GET THE PACKAGE
+ |
+
+
+
+
+
CONTRIBUTORS : SUPPORTED BY THE AMAZING OPEN-SOURCE COMMUNITIES
-
+
-
-
-

-
@@ -1102,7 +1281,7 @@
-
Licensed under MIT license. Copyright (c) 2012-2023 Faisal Salman.
+
Licensed under AGPLv3 license. Copyright (c) 2012-2023 Faisal Salman.
diff --git a/js/ua-parser.js b/js/ua-parser.js
index bc8c73a..8013a06 100644
--- a/js/ua-parser.js
+++ b/js/ua-parser.js
@@ -1,4 +1,4 @@
-/* UAParser.js v2.0.0-alpha.2
+/* UAParser.js v2.0.0-beta.1
Copyright © 2012-2023 Faisal Salman
- MIT License */
- (function(window,undefined){"use strict";var LIBVERSION="2.0.0-alpha.2",EMPTY="",UNKNOWN="?",FUNC_TYPE="function",UNDEF_TYPE="undefined",OBJ_TYPE="object",STR_TYPE="string",MAJOR="major",MODEL="model",NAME="name",TYPE="type",VENDOR="vendor",VERSION="version",ARCHITECTURE="architecture",CONSOLE="console",MOBILE="mobile",TABLET="tablet",SMARTTV="smarttv",WEARABLE="wearable",EMBEDDED="embedded",USER_AGENT="user-agent",UA_MAX_LENGTH=350,BRANDS="brands",FULLVERLIST="fullVersionList",PLATFORM="platform",PLATFORMVER="platformVersion",BITNESS="bitness",CH_HEADER="sec-ch-ua",CH_HEADER_FULL_VER_LIST=CH_HEADER+"-full-version-list",CH_HEADER_ARCH=CH_HEADER+"-arch",CH_HEADER_BITNESS=CH_HEADER+"-bitness",CH_HEADER_MOBILE=CH_HEADER+"-mobile",CH_HEADER_MODEL=CH_HEADER+"-model",CH_HEADER_PLATFORM=CH_HEADER+"-platform",CH_HEADER_PLATFORM_VER=CH_HEADER_PLATFORM+"-version",CH_ALL_VALUES=["brands","fullVersionList",MOBILE,MODEL,"platform","platformVersion",ARCHITECTURE,"bitness"],UA_BROWSER="browser",UA_CPU="cpu",UA_DEVICE="device",UA_ENGINE="engine",UA_OS="os",UA_RESULT="result",AMAZON="Amazon",APPLE="Apple",ASUS="ASUS",BLACKBERRY="BlackBerry",GOOGLE="Google",HUAWEI="Huawei",LG="LG",MICROSOFT="Microsoft",MOTOROLA="Motorola",SAMSUNG="Samsung",SHARP="Sharp",SONY="Sony",XIAOMI="Xiaomi",ZEBRA="Zebra",PREFIX_MOBILE="Mobile ",SUFFIX_BROWSER=" Browser",CHROME="Chrome",EDGE="Edge",FIREFOX="Firefox",OPERA="Opera",FACEBOOK="Facebook",WINDOWS="Windows";var NAVIGATOR=typeof window!==UNDEF_TYPE&&window.navigator?window.navigator:undefined,NAVIGATOR_UADATA=NAVIGATOR&&NAVIGATOR.userAgentData?NAVIGATOR.userAgentData:undefined;var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){mergedRegexes[i]=extensions[i]&&extensions[i].length%2===0?extensions[i].concat(regexes[i]):regexes[i]}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){for(var i in str1){if(lowerize(str1[i])==lowerize(str2))return true}return false}return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},isExtensions=function(obj){for(var prop in obj){return/^(browser|cpu|device|engine|os)$/.test(prop)}},itemListToArray=function(header){if(!header)return undefined;var arr=[];var tokens=strip(/\\?\"/g,header).split(", ");for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j