ua-parser-js 1.0.37 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/LICENSE.md +616 -0
  2. package/README.md +251 -0
  3. package/dist/icons/color/LICENSE.md +3 -0
  4. package/dist/icons/color/browser/android-browser.svg +1 -0
  5. package/dist/icons/color/browser/avant.png +0 -0
  6. package/dist/icons/color/browser/basilisk.png +0 -0
  7. package/dist/icons/color/browser/basilisk.svg +1 -0
  8. package/dist/icons/color/browser/brave.png +0 -0
  9. package/dist/icons/color/browser/brave.svg +1 -0
  10. package/dist/icons/color/browser/chrome.png +0 -0
  11. package/dist/icons/color/browser/chrome.svg +1 -0
  12. package/dist/icons/color/browser/chromium.png +0 -0
  13. package/dist/icons/color/browser/chromium.svg +1 -0
  14. package/dist/icons/color/browser/coc-coc.png +0 -0
  15. package/dist/icons/color/browser/default.png +0 -0
  16. package/dist/icons/color/browser/default.svg +1 -0
  17. package/dist/icons/color/browser/dolphin.png +0 -0
  18. package/dist/icons/color/browser/edge.png +0 -0
  19. package/dist/icons/color/browser/edge.svg +1 -0
  20. package/dist/icons/color/browser/electron.png +0 -0
  21. package/dist/icons/color/browser/electron.svg +1 -0
  22. package/dist/icons/color/browser/falkon.png +0 -0
  23. package/dist/icons/color/browser/falkon.svg +1 -0
  24. package/dist/icons/color/browser/firefox-reality.png +0 -0
  25. package/dist/icons/color/browser/firefox-reality.svg +1 -0
  26. package/dist/icons/color/browser/firefox.png +0 -0
  27. package/dist/icons/color/browser/firefox.svg +1 -0
  28. package/dist/icons/color/browser/gsa.svg +9 -0
  29. package/dist/icons/color/browser/icecat.png +0 -0
  30. package/dist/icons/color/browser/ie.svg +6 -0
  31. package/dist/icons/color/browser/konqueror.png +0 -0
  32. package/dist/icons/color/browser/konqueror.svg +1 -0
  33. package/dist/icons/color/browser/maxthon.png +0 -0
  34. package/dist/icons/color/browser/midori.png +0 -0
  35. package/dist/icons/color/browser/midori.svg +1 -0
  36. package/dist/icons/color/browser/netsurf.png +0 -0
  37. package/dist/icons/color/browser/netsurf.svg +1 -0
  38. package/dist/icons/color/browser/opera-gx.png +0 -0
  39. package/dist/icons/color/browser/opera-gx.svg +1 -0
  40. package/dist/icons/color/browser/opera-mini.png +0 -0
  41. package/dist/icons/color/browser/opera-touch.png +0 -0
  42. package/dist/icons/color/browser/opera.png +0 -0
  43. package/dist/icons/color/browser/opera.svg +1 -0
  44. package/dist/icons/color/browser/palemoon.png +0 -0
  45. package/dist/icons/color/browser/puffin.png +0 -0
  46. package/dist/icons/color/browser/safari.png +0 -0
  47. package/dist/icons/color/browser/safari.svg +1 -0
  48. package/dist/icons/color/browser/samsung-internet.png +0 -0
  49. package/dist/icons/color/browser/samsung-internet.svg +1 -0
  50. package/dist/icons/color/browser/seamonkey.png +0 -0
  51. package/dist/icons/color/browser/silk.png +0 -0
  52. package/dist/icons/color/browser/sogou-mobile.png +0 -0
  53. package/dist/icons/color/browser/ucbrowser.png +0 -0
  54. package/dist/icons/color/browser/ucbrowser.svg +1 -0
  55. package/dist/icons/color/browser/vivaldi.png +0 -0
  56. package/dist/icons/color/browser/vivaldi.svg +1 -0
  57. package/dist/icons/color/browser/webkit.png +0 -0
  58. package/dist/icons/color/browser/webkit.svg +1 -0
  59. package/dist/icons/color/browser/yandex.png +0 -0
  60. package/dist/icons/color/os/centos.svg +1 -0
  61. package/dist/icons/mono/LICENSE.md +3 -0
  62. package/dist/icons/mono/browser/alipay.svg +1 -0
  63. package/dist/icons/mono/browser/android-browser.svg +1 -0
  64. package/dist/icons/mono/browser/avast-secure-browser.svg +1 -0
  65. package/dist/icons/mono/browser/baidu-browser.svg +1 -0
  66. package/dist/icons/mono/browser/brave.svg +1 -0
  67. package/dist/icons/mono/browser/chrome-headless.svg +1 -0
  68. package/dist/icons/mono/browser/chrome-webview.svg +1 -0
  69. package/dist/icons/mono/browser/chrome.svg +1 -0
  70. package/dist/icons/mono/browser/chromium.svg +1 -0
  71. package/dist/icons/mono/browser/duckduckgo.svg +1 -0
  72. package/dist/icons/mono/browser/edge.svg +1 -0
  73. package/dist/icons/mono/browser/electron.svg +1 -0
  74. package/dist/icons/mono/browser/facebook.svg +1 -0
  75. package/dist/icons/mono/browser/firefox-focus.svg +1 -0
  76. package/dist/icons/mono/browser/firefox-reality.svg +1 -0
  77. package/dist/icons/mono/browser/firefox.svg +1 -0
  78. package/dist/icons/mono/browser/gsa.svg +1 -0
  79. package/dist/icons/mono/browser/huawei-browser.svg +1 -0
  80. package/dist/icons/mono/browser/icecat.svg +1 -0
  81. package/dist/icons/mono/browser/ie.svg +1 -0
  82. package/dist/icons/mono/browser/instagram.svg +1 -0
  83. package/dist/icons/mono/browser/jasmine.svg +1 -0
  84. package/dist/icons/mono/browser/kakaotalk.svg +1 -0
  85. package/dist/icons/mono/browser/klarna.svg +1 -0
  86. package/dist/icons/mono/browser/line.svg +1 -0
  87. package/dist/icons/mono/browser/linkedin.svg +1 -0
  88. package/dist/icons/mono/browser/miui-browser.svg +1 -0
  89. package/dist/icons/mono/browser/mobile-chrome.svg +1 -0
  90. package/dist/icons/mono/browser/mobile-firefox.svg +1 -0
  91. package/dist/icons/mono/browser/mobile-safari.svg +1 -0
  92. package/dist/icons/mono/browser/mozilla.svg +1 -0
  93. package/dist/icons/mono/browser/naver.svg +1 -0
  94. package/dist/icons/mono/browser/nokia-browser.svg +1 -0
  95. package/dist/icons/mono/browser/oculus-browser.svg +1 -0
  96. package/dist/icons/mono/browser/opera-coast.svg +1 -0
  97. package/dist/icons/mono/browser/opera-gx.svg +1 -0
  98. package/dist/icons/mono/browser/opera-mini.svg +1 -0
  99. package/dist/icons/mono/browser/opera-mobi.svg +1 -0
  100. package/dist/icons/mono/browser/opera-tablet.svg +1 -0
  101. package/dist/icons/mono/browser/opera-touch.svg +1 -0
  102. package/dist/icons/mono/browser/opera.svg +1 -0
  103. package/dist/icons/mono/browser/qqbrowser.svg +1 -0
  104. package/dist/icons/mono/browser/qqbrowserlite.svg +1 -0
  105. package/dist/icons/mono/browser/safari.svg +1 -0
  106. package/dist/icons/mono/browser/sailfish-browser.svg +1 -0
  107. package/dist/icons/mono/browser/samsung-internet.svg +1 -0
  108. package/dist/icons/mono/browser/smart-lenovo-browser.svg +1 -0
  109. package/dist/icons/mono/browser/snapchat.svg +1 -0
  110. package/dist/icons/mono/browser/sogou-explorer.svg +1 -0
  111. package/dist/icons/mono/browser/sogou-mobile.svg +1 -0
  112. package/dist/icons/mono/browser/tesla.svg +1 -0
  113. package/dist/icons/mono/browser/tiktok.svg +1 -0
  114. package/dist/icons/mono/browser/twitter.svg +1 -0
  115. package/dist/icons/mono/browser/vivaldi.svg +1 -0
  116. package/dist/icons/mono/browser/vivo-browser.svg +1 -0
  117. package/dist/icons/mono/browser/wechat.svg +1 -0
  118. package/dist/icons/mono/browser/weibo.svg +1 -0
  119. package/dist/icons/mono/browser/yandex.svg +1 -0
  120. package/dist/icons/mono/device/acer.svg +1 -0
  121. package/dist/icons/mono/device/amazon.svg +1 -0
  122. package/dist/icons/mono/device/apple.svg +1 -0
  123. package/dist/icons/mono/device/asus.svg +1 -0
  124. package/dist/icons/mono/device/att.svg +1 -0
  125. package/dist/icons/mono/device/blackberry.svg +1 -0
  126. package/dist/icons/mono/device/dell.svg +1 -0
  127. package/dist/icons/mono/device/facebook.svg +1 -0
  128. package/dist/icons/mono/device/fairphone.svg +1 -0
  129. package/dist/icons/mono/device/google.svg +1 -0
  130. package/dist/icons/mono/device/hp.svg +1 -0
  131. package/dist/icons/mono/device/huawei.svg +1 -0
  132. package/dist/icons/mono/device/lenovo.svg +1 -0
  133. package/dist/icons/mono/device/lg.svg +1 -0
  134. package/dist/icons/mono/device/meizu.svg +1 -0
  135. package/dist/icons/mono/device/microsoft.svg +1 -0
  136. package/dist/icons/mono/device/motorola.svg +1 -0
  137. package/dist/icons/mono/device/nintendo.svg +1 -0
  138. package/dist/icons/mono/device/nokia.svg +1 -0
  139. package/dist/icons/mono/device/nvidia.svg +1 -0
  140. package/dist/icons/mono/device/oneplus.svg +1 -0
  141. package/dist/icons/mono/device/oppo.svg +1 -0
  142. package/dist/icons/mono/device/panasonic.svg +1 -0
  143. package/dist/icons/mono/device/roku.svg +1 -0
  144. package/dist/icons/mono/device/samsung.svg +1 -0
  145. package/dist/icons/mono/device/siemens.svg +1 -0
  146. package/dist/icons/mono/device/sony.svg +1 -0
  147. package/dist/icons/mono/device/tesla.svg +1 -0
  148. package/dist/icons/mono/device/vivo.svg +1 -0
  149. package/dist/icons/mono/device/vodafone.svg +1 -0
  150. package/dist/icons/mono/device/xiaomi.svg +1 -0
  151. package/dist/icons/mono/device/zebra.svg +1 -0
  152. package/dist/icons/mono/os/android.svg +1 -0
  153. package/dist/icons/mono/os/arch.svg +1 -0
  154. package/dist/icons/mono/os/blackberry.svg +1 -0
  155. package/dist/icons/mono/os/centos.svg +1 -0
  156. package/dist/icons/mono/os/chrome-os.svg +1 -0
  157. package/dist/icons/mono/os/chromecast.svg +1 -0
  158. package/dist/icons/mono/os/debian.svg +1 -0
  159. package/dist/icons/mono/os/deepin.svg +1 -0
  160. package/dist/icons/mono/os/elementary-os.svg +1 -0
  161. package/dist/icons/mono/os/fedora.svg +1 -0
  162. package/dist/icons/mono/os/firefox.svg +1 -0
  163. package/dist/icons/mono/os/freebsd.svg +1 -0
  164. package/dist/icons/mono/os/gentoo.svg +1 -0
  165. package/dist/icons/mono/os/gnu.svg +1 -0
  166. package/dist/icons/mono/os/harmonyos.svg +1 -0
  167. package/dist/icons/mono/os/ios.svg +1 -0
  168. package/dist/icons/mono/os/kaios.svg +1 -0
  169. package/dist/icons/mono/os/linux.svg +1 -0
  170. package/dist/icons/mono/os/macos.svg +1 -0
  171. package/dist/icons/mono/os/manjaro.svg +1 -0
  172. package/dist/icons/mono/os/mint.svg +1 -0
  173. package/dist/icons/mono/os/netbsd.svg +1 -0
  174. package/dist/icons/mono/os/nintendo.svg +1 -0
  175. package/dist/icons/mono/os/openbsd.svg +1 -0
  176. package/dist/icons/mono/os/playstation.svg +1 -0
  177. package/dist/icons/mono/os/raspbian.svg +1 -0
  178. package/dist/icons/mono/os/redhat.svg +1 -0
  179. package/dist/icons/mono/os/sailfish.svg +1 -0
  180. package/dist/icons/mono/os/slackware.svg +1 -0
  181. package/dist/icons/mono/os/suse.svg +1 -0
  182. package/dist/icons/mono/os/ubuntu.svg +1 -0
  183. package/dist/icons/mono/os/windows.svg +1 -0
  184. package/dist/icons/mono/os/xbox.svg +1 -0
  185. package/dist/ua-parser.min.js +4 -4
  186. package/dist/ua-parser.min.mjs +4 -0
  187. package/dist/ua-parser.pack.js +4 -4
  188. package/dist/ua-parser.pack.mjs +4 -0
  189. package/package.json +86 -36
  190. package/script/cli.js +4 -0
  191. package/src/enums/ua-parser-enums.d.ts +366 -0
  192. package/src/enums/ua-parser-enums.js +393 -0
  193. package/src/enums/ua-parser-enums.mjs +397 -0
  194. package/src/extensions/ua-parser-extensions.d.ts +16 -0
  195. package/src/extensions/ua-parser-extensions.js +366 -0
  196. package/src/extensions/ua-parser-extensions.mjs +370 -0
  197. package/src/helpers/ua-parser-helpers.d.ts +27 -0
  198. package/src/helpers/ua-parser-helpers.js +137 -0
  199. package/src/helpers/ua-parser-helpers.mjs +141 -0
  200. package/src/main/ua-parser.d.ts +113 -0
  201. package/src/main/ua-parser.js +1439 -0
  202. package/src/main/ua-parser.mjs +1397 -0
  203. package/license.md +0 -21
  204. package/readme.md +0 -385
  205. package/src/ua-parser.js +0 -946
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "title": "UAParser.js",
3
3
  "name": "ua-parser-js",
4
- "version": "1.0.37",
4
+ "version": "2.0.2",
5
5
  "author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
6
- "description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data. Supports browser & node.js environment",
6
+ "description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment",
7
7
  "keywords": [
8
8
  "user-agent",
9
+ "client-hints",
9
10
  "parser",
10
11
  "browser",
11
12
  "engine",
@@ -15,15 +16,12 @@
15
16
  "jquery-plugin",
16
17
  "ecosystem:jquery",
17
18
  "ua-parser-js",
18
- "client-hints",
19
- "user-agent-detection",
20
- "device-detection",
21
- "platform-detection",
22
- "mobile-detection",
23
19
  "browser-detection",
24
- "architecture-detection"
20
+ "device-detection",
21
+ "os-detection",
22
+ "bot-detection"
25
23
  ],
26
- "homepage": "https://github.com/faisalman/ua-parser-js",
24
+ "homepage": "https://uaparser.dev",
27
25
  "contributors": [
28
26
  "Aamir Poonawalla <aamir@urx.com>",
29
27
  "Admas <mollases@users.noreply.github.com>",
@@ -42,8 +40,11 @@
42
40
  "Carl C Von Lewin <carlchristianlewin@gmail.com>",
43
41
  "CESAR RAMOS <c@imagenproactiva.com>",
44
42
  "Chad Killingsworth <ckillingsworth@jackhenry.com>",
43
+ "chenhui9279 <chenhui9279@autohome.com.cn>",
44
+ "chenyuan-new <53860479+chenyuan-new@users.noreply.github.com>",
45
45
  "Christopher De Cairos <chris.decairos@gmail.com>",
46
46
  "Cyrille David <cyrille@qonto.eu>",
47
+ "Dante <duanjl.china@gmail.com>",
47
48
  "Dario Vladovic <d.vladimyr@gmail.com>",
48
49
  "David Annez <david.annez@gmail.com>",
49
50
  "Davit Barbakadze <jayarjo@gmail.com>",
@@ -66,10 +67,12 @@
66
67
  "Faisal Salman <f@faisalman.com>",
67
68
  "Frédéric Camblor <fcamblor@gmail.com>",
68
69
  "Frederik Ring <frederik.ring@gmail.com>",
70
+ "Garrit Franke <garrit@slashdev.space>",
69
71
  "Gerald Host <me@jacobford.co.uk>",
70
72
  "Germán M. Bravo <german.mb@gmail.com>",
71
73
  "Grigory Dmitrenko <grigory@snsk.ru>",
72
74
  "gulpin <gulping.gulpin@gmail.com>",
75
+ "Hans Ott <hansott@hotmail.be>",
73
76
  "Hendrik Helwich <h.helwich@iplabs.de>",
74
77
  "Hermann Ebert <ebbmo@HE.local>",
75
78
  "hr6r <hedian@gmail.com>",
@@ -77,6 +80,7 @@
77
80
  "Ildar Kamalov <i.kamalov@adguard.com>",
78
81
  "insanehong <insane.hong@navercorp.com>",
79
82
  "jackpoll <jackpoll123456@gmail.com>",
83
+ "Jacky Choo <jackychoo@adly-macbook.local>",
80
84
  "Jake Mc <startswithaj@users.noreply.github.com>",
81
85
  "JBYoshi <12983479+JBYoshi@users.noreply.github.com>",
82
86
  "Joey Parrish <joeyparrish@google.com>",
@@ -86,11 +90,14 @@
86
90
  "Josh Goldberg <joshuakgoldberg@outlook.com>",
87
91
  "Junki-Ishida <junki_ishida@dwango.co.jp>",
88
92
  "Kendall Buchanan <kendall@kendagriff.com>",
93
+ "KnifeLemon <role___play@naver.com>",
94
+ "kNoAPP <alldoneb@gmail.com>",
89
95
  "Lee Treveil <leetreveil@gmail.com>",
90
96
  "leonardo <leofiore@libero.it>",
91
97
  "Levente Balogh <balogh.levente.hu@gmail.com>",
92
98
  "Liam Quinn <lquinn@blackberry.com>",
93
99
  "Lithin <lithin@webklipper.com>",
100
+ "liujunlve <liujunlve@henhaoji.com>",
94
101
  "ll-syber <670159357@qq.com>",
95
102
  "Loris Guignard <loris.guignard@gmail.com>",
96
103
  "Lukas Drgon <lukas.drgon@gmail.com>",
@@ -105,6 +112,8 @@
105
112
  "Max Nordlund <max.nordlund@gmail.com>",
106
113
  "Michael Hess <mhess@connectify.me>",
107
114
  "MimyyK <michele.marais@hakisa.com>",
115
+ "Mok <mok@moekm.com>",
116
+ "nabetama <mao.nabeta@gmail.com>",
108
117
  "naoh <naoh.cs03g@nctu.edu.tw>",
109
118
  "Nicholas Ionata <nionata@ufl.edu>",
110
119
  "Nikhil Motiani <nikhil.motiani@outlook.com>",
@@ -113,7 +122,9 @@
113
122
  "niris <nirisix@gmail.com>",
114
123
  "Nobuo Okada <nookada@yahoo-corp.jp>",
115
124
  "o.drapeza <o.drapeza@tinkoff.ru>",
125
+ "Oscar Becerra <oscarbecerra@google.com>",
116
126
  "otakuSiD <otakusid@gmail.com>",
127
+ "Paris Morgan <paris@8thwall.com>",
117
128
  "patrick-nurt <github@pereira.dk>",
118
129
  "Pavel Studeny <studeny@avast.com>",
119
130
  "Peter Dave Hello <PeterDaveHello@users.noreply.github.com>",
@@ -123,19 +134,24 @@
123
134
  "Queen Vinyl Darkscratch <vinyldarkscratch@gmail.com>",
124
135
  "Raine Makelainen <raine.makelainen@jolla.com>",
125
136
  "Raman Savaryn <homeneartheocean@gmail.com>",
137
+ "Riley Shaw <rileyjshaw@users.noreply.github.com>",
126
138
  "Robert Tod <robert@qubit.com>",
127
139
  "roman.savarin <roman.savarin@skywindgroup.com>",
128
140
  "Ron Korland <ron@testim.io>",
129
141
  "Ross Noble <rosshnoble@gmail.com>",
130
142
  "ruicong <466403866@qq.com>",
143
+ "Runar Heggset <rukki093@gmail.com>",
144
+ "Ryohei Shima <shima01dev@gmail.com>",
131
145
  "Sandro Sonntag <sandro.sonntag@adorsys.de>",
132
146
  "sgautrea <shanegautreau@gmail.com>",
147
+ "shaharmor <shahar@peer5.com>",
133
148
  "Shane Gautreau <sgautrea@opentext.com>",
134
149
  "Shane Thacker <shane@steadymade.com>",
135
150
  "Shreedhar <shreedhar@uber.com>",
136
151
  "Simon Eisenmann <simon@longsleep.org>",
137
152
  "Simon Lang <me@simonlang.org>",
138
153
  "Stiekel <histkc@gmail.com>",
154
+ "sunny-mwx <30586210+sunny-mwx@users.noreply.github.com>",
139
155
  "sUP <dani3l@gmail.com>",
140
156
  "Sylvain Gizard <sylvain.gizard@gmail.com>",
141
157
  "szchenghuang <szchenghuang@gmail.com>",
@@ -143,60 +159,94 @@
143
159
  "Tony Tomarchio <tony@tomarchio.cc>",
144
160
  "Ulrich Schmidt <u.schmidt@velian.de>",
145
161
  "Vadim Kurachevsky <vadim@hmvs.org>",
162
+ "Varun Sharma <varunsh@stepsecurity.io>",
163
+ "XhmikosR <xhmikosr@gmail.com>",
146
164
  "Yılmaz <yilmazdemir36@gmail.com>",
147
165
  "yuanyang <work_yuanyang@163.com>",
148
166
  "Yun Young-jin <yupmin@yupmin-office-macmini.local>",
149
- "Zach Bjornson <zbbjornson@gmail.com>"
167
+ "Zach Bjornson <zbbjornson@gmail.com>",
168
+ "Ziding Zhang <zidingz@gmail.com>"
150
169
  ],
151
- "main": "src/ua-parser.js",
170
+ "type": "commonjs",
171
+ "types": "src/main/ua-parser.d.ts",
172
+ "main": "src/main/ua-parser.js",
173
+ "module": "src/main/ua-parser.mjs",
174
+ "browser": "dist/ua-parser.pack.js",
175
+ "exports": {
176
+ ".": {
177
+ "require": "./src/main/ua-parser.js",
178
+ "import": "./src/main/ua-parser.mjs",
179
+ "types": "./src/main/ua-parser.d.ts"
180
+ },
181
+ "./enums": {
182
+ "require": "./src/enums/ua-parser-enums.js",
183
+ "import": "./src/enums/ua-parser-enums.mjs",
184
+ "types": "./src/enums/ua-parser-enums.d.ts"
185
+ },
186
+ "./extensions": {
187
+ "require": "./src/extensions/ua-parser-extensions.js",
188
+ "import": "./src/extensions/ua-parser-extensions.mjs",
189
+ "types": "./src/extensions/ua-parser-extensions.d.ts"
190
+ },
191
+ "./helpers": {
192
+ "require": "./src/helpers/ua-parser-helpers.js",
193
+ "import": "./src/helpers/ua-parser-helpers.mjs",
194
+ "types": "./src/helpers/ua-parser-helpers.d.ts"
195
+ }
196
+ },
152
197
  "files": [
153
198
  "dist",
154
199
  "src"
155
200
  ],
201
+ "bin": "./script/cli.js",
156
202
  "scripts": {
157
- "build": "uglifyjs src/ua-parser.js -o dist/ua-parser.min.js --comments '/^ UA/' && uglifyjs src/ua-parser.js -o dist/ua-parser.pack.js --comments '/^ UA/' --compress --mangle",
158
- "test": "jshint src/ua-parser.js && mocha -R nyan test/test.js",
159
- "test-ci": "jshint src/ua-parser.js && mocha -R spec test/test.js",
160
- "verup": "node ./node_modules/verup",
161
- "version": "node ./node_modules/verup 0"
203
+ "build": "./script/build-dist.sh && ./script/build-esm.js",
204
+ "build+test": "npm run build && npm run test",
205
+ "fuzz": "jazzer ./test/fuzz/redos.js --sync",
206
+ "test": "./script/test-all.sh",
207
+ "test:dts-lint": "tsd --typings src/main/ua-parser.d.ts --files test/static/dts-lint.ts",
208
+ "test:eslint": "eslint src && eslint script",
209
+ "test:jshint": "jshint src/main",
210
+ "test:lockfile-lint": "npx lockfile-lint -p package-lock.json",
211
+ "test:mocha": "mocha test/unit",
212
+ "test:playwright": "playwright test test/e2e --browser all"
162
213
  },
163
- "verup": {
164
- "files": [
165
- "bower.json",
166
- "package.js",
167
- "src/ua-parser.js"
168
- ],
169
- "regs": [
170
- "^((?:\\$|(\\s*\\*\\s*@)|(\\s*(?:var|,)?\\s+))(?:LIBVERSION|version)[\\s\\:='\"]+)([0-9]+(?:\\.[0-9]+){2,2})",
171
- "^(\\/?\\s?\\*.*v)([0-9]+(?:\\.[0-9]+){2,2})"
172
- ]
214
+ "dependencies": {
215
+ "detect-europe-js": "^0.1.2",
216
+ "is-standalone-pwa": "^0.1.1",
217
+ "ua-is-frozen": "^0.1.2",
218
+ "node-fetch": "^2.7.0",
219
+ "@types/node-fetch": "^2.6.12"
173
220
  },
174
221
  "devDependencies": {
175
222
  "@babel/parser": "7.15.8",
176
- "@babel/traverse": "7.15.4",
177
- "jshint": "~2.12.0",
223
+ "@babel/traverse": "7.23.2",
224
+ "@jazzer.js/core": "^1.4.0",
225
+ "@playwright/test": "^1.49.0",
226
+ "jshint": "~2.13.6",
178
227
  "mocha": "~8.2.0",
179
- "requirejs": "^2.3.2",
228
+ "requirejs": "2.3.2",
180
229
  "safe-regex": "^2.1.1",
181
- "uglify-js": "~3.12.0",
182
- "verup": "^1.3.x"
230
+ "tsd": "^0.29.0",
231
+ "uglify-js": "~3.19.3"
183
232
  },
184
233
  "repository": {
185
234
  "type": "git",
186
235
  "url": "https://github.com/faisalman/ua-parser-js.git"
187
236
  },
188
- "license": "MIT",
237
+ "license": "AGPL-3.0-or-later",
189
238
  "engines": {
190
239
  "node": "*"
191
240
  },
192
241
  "directories": {
193
242
  "dist": "dist",
243
+ "script": "script",
194
244
  "src": "src",
195
245
  "test": "test"
196
246
  },
197
247
  "bugs": "https://github.com/faisalman/ua-parser-js/issues",
198
- "demo": "https://faisalman.github.io/ua-parser-js",
199
- "download": "https://raw.github.com/faisalman/ua-parser-js/master/dist/ua-parser.min.js",
248
+ "demo": "https://uaparser.dev",
249
+ "download": "https://raw.github.com/faisalman/ua-parser-js/master/dist/ua-parser.pack.js",
200
250
  "funding": [
201
251
  {
202
252
  "type": "opencollective",
@@ -207,8 +257,8 @@
207
257
  "url": "https://paypal.me/faisalman"
208
258
  },
209
259
  {
210
- "type": "github",
211
- "url": "https://github.com/sponsors/faisalman"
260
+ "type": "github",
261
+ "url": "https://github.com/sponsors/faisalman"
212
262
  }
213
263
  ]
214
264
  }
package/script/cli.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ const UAParser = require('ua-parser-js');
4
+ console.log(JSON.stringify(process.argv.slice(2).map(ua => UAParser(ua)), null, 4));
@@ -0,0 +1,366 @@
1
+ // Type definitions for Enums submodule of UAParser.js v2.0.2
2
+ // Project: https://github.com/faisalman/ua-parser-js
3
+ // Definitions by: Faisal Salman <https://github.com/faisalman>
4
+
5
+ export const Browser: Readonly<{
6
+ '115': "115";
7
+ '2345': "2345";
8
+ '360': "360";
9
+ ALIPAY: "Alipay";
10
+ AMAYA: "Amaya";
11
+ ANDROID: "Android Browser";
12
+ ARORA: "Arora";
13
+ AVANT: "Avant";
14
+ AVAST: "Avast Secure Browser";
15
+ AVG: "AVG Secure Browser";
16
+ BAIDU: "Baidu Browser";
17
+ BASILISK: "Basilisk";
18
+ BLAZER: "Blazer";
19
+ BOLT: "Bolt";
20
+ BOWSER: "Bowser";
21
+ BRAVE: "Brave";
22
+ CAMINO: "Camino";
23
+ CHIMERA: "Chimera";
24
+ CHROME: "Chrome";
25
+ CHROME_HEADLESS: "Chrome Headless";
26
+ CHROME_MOBILE: "Mobile Chrome";
27
+ CHROME_WEBVIEW: "Chrome WebView";
28
+ CHROMIUM: "Chromium";
29
+ COBALT: "Cobalt";
30
+ COC_COC: "Coc Coc";
31
+ CONKEROR: "Conkeror";
32
+ DAUM: "Daum";
33
+ DILLO: "Dillo";
34
+ DOLPHIN: "Dolphin";
35
+ DORIS: "Doris";
36
+ DRAGON: "Dragon";
37
+ DUCKDUCKGO: "DuckDuckGo";
38
+ EDGE: "Edge";
39
+ EPIPHANY: "Epiphany";
40
+ FACEBOOK: "Facebook";
41
+ FALKON: "Falkon";
42
+ FIREBIRD: "Firebird";
43
+ FIREFOX: "Firefox";
44
+ FIREFOX_FOCUS: "Firefox Focus";
45
+ FIREFOX_MOBILE: "Mobile Firefox";
46
+ FIREFOX_REALITY: "Firefox Reality";
47
+ FENNEC: "Fennec";
48
+ FLOCK: "Flock";
49
+ FLOW: "Flow";
50
+ GO: "GoBrowser";
51
+ GOOGLE_SEARCH: "GSA";
52
+ HELIO: "Helio";
53
+ HEYTAP: "HeyTap";
54
+ HONOR: "Honor";
55
+ HUAWEI: "Huawei Browser";
56
+ ICAB: "iCab";
57
+ ICE: "ICE Browser";
58
+ ICEAPE: "IceApe";
59
+ ICECAT: "IceCat";
60
+ ICEDRAGON: "IceDragon";
61
+ ICEWEASEL: "IceWeasel";
62
+ IE: "IE";
63
+ INSTAGRAM: "Instagram";
64
+ IRIDIUM: "Iridium";
65
+ IRON: "Iron";
66
+ JASMINE: "Jasmine";
67
+ KONQUEROR: "Konqueror";
68
+ KAKAO: "KakaoTalk";
69
+ KHTML: "KHTML";
70
+ K_MELEON: "K-Meleon";
71
+ KLAR: "Klar";
72
+ KLARNA: "Klarna";
73
+ KINDLE: "Kindle";
74
+ LENOVO: "Smart Lenovo Browser";
75
+ LADYBIRD: "Ladybird";
76
+ LIBREWOLF: "LibreWolf";
77
+ LIEBAO: "LBBROWSER";
78
+ LINE: "Line";
79
+ LINKEDIN: "LinkedIn";
80
+ LINKS: "Links";
81
+ LUNASCAPE: "Lunascape";
82
+ LYNX: "Lynx";
83
+ MAEMO: "Maemo Browser";
84
+ MAXTHON: "Maxthon";
85
+ MIDORI: "Midori";
86
+ MINIMO: "Minimo";
87
+ MIUI: "MIUI Browser";
88
+ MOZILLA: "Mozilla";
89
+ MOSAIC: "Mosaic";
90
+ NAVER: "Naver";
91
+ NETFRONT: "NetFront";
92
+ NETSCAPE: "Netscape";
93
+ NETSURF: "Netsurf";
94
+ NOKIA: "Nokia Browser";
95
+ OBIGO: "Obigo";
96
+ OCULUS: "Oculus Browser";
97
+ OMNIWEB: "OmniWeb";
98
+ OPERA: "Opera";
99
+ OPERA_COAST: "Opera Coast";
100
+ OPERA_MINI: "Opera Mini";
101
+ OPERA_MOBI: "Opera Mobi";
102
+ OPERA_TABLET: "Opera Tablet";
103
+ OPERA_TOUCH: "Opera Touch";
104
+ OVI: "OviBrowser";
105
+ PALEMOON: "PaleMoon";
106
+ PHANTOMJS: "PhantomJS";
107
+ PHOENIX: "Phoenix";
108
+ PICOBROWSER: "Pico Browser";
109
+ POLARIS: "Polaris";
110
+ PUFFIN: "Puffin";
111
+ QQ: "QQBrowser";
112
+ QQ_LITE: "QQBrowserLite";
113
+ QUARK: "Quark";
114
+ QUPZILLA: "QupZilla";
115
+ REKONQ: "rekonq";
116
+ ROCKMELT: "Rockmelt";
117
+ SAFARI: "Safari";
118
+ SAFARI_MOBILE: "Mobile Safari";
119
+ SAILFISH: "Sailfish Browser";
120
+ SAMSUNG: "Samsung Internet";
121
+ SEAMONKEY: "SeaMonkey";
122
+ SILK: "Silk";
123
+ SKYFIRE: "Skyfire";
124
+ SLEIPNIR: "Sleipnir";
125
+ SLIMBOAT: "SlimBoat";
126
+ SLIMBROWSER: "SlimBrowser";
127
+ SLIMJET: "Slimjet";
128
+ SNAPCHAT: "Snapchat";
129
+ SOGOU_EXPLORER: "Sogou Explorer";
130
+ SOGOU_MOBILE: "Sogou Mobile";
131
+ SWIFTFOX: "Swiftfox";
132
+ TESLA: "Tesla";
133
+ TIKTOK: "TikTok";
134
+ TIZEN: "Tizen Browser";
135
+ TWITTER: "Twitter";
136
+ UC: "UCBrowser";
137
+ UP: "UP.Browser";
138
+ VIVALDI: "Vivaldi";
139
+ VIVO: "Vivo Browser";
140
+ W3M: "w3m";
141
+ WATERFOX: "Waterfox";
142
+ WEBKIT: "WebKit";
143
+ WECHAT: "WeChat";
144
+ WEIBO: "Weibo";
145
+ WHALE: "Whale";
146
+ WOLVIC: "Wolvic";
147
+ YANDEX: "Yandex";
148
+ }>;
149
+ export const BrowserType: Readonly<{
150
+ CRAWLER: "crawler";
151
+ CLI: "cli";
152
+ EMAIL: "email";
153
+ FETCHER: "fetcher";
154
+ INAPP: "inapp";
155
+ MEDIAPLAYER: "mediaplayer";
156
+ LIBRARY: "library";
157
+ }>;
158
+ export const CPU: Readonly<{
159
+ '68K': "68k";
160
+ ARM: "arm";
161
+ ARM_64: "arm64";
162
+ ARM_HF: "armhf";
163
+ AVR: "avr";
164
+ AVR_32: "avr32";
165
+ IA64: "ia64";
166
+ IRIX: "irix";
167
+ IRIX_64: "irix64";
168
+ MIPS: "mips";
169
+ MIPS_64: "mips64";
170
+ PA_RISC: "pa-risc";
171
+ PPC: "ppc";
172
+ SPARC: "sparc";
173
+ SPARC_64: "sparc64";
174
+ X86: "ia32";
175
+ X86_64: "amd64";
176
+ }>;
177
+ export const Device: Readonly<{
178
+ CONSOLE: "console";
179
+ DESKTOP: "desktop";
180
+ EMBEDDED: "embedded";
181
+ MOBILE: "mobile";
182
+ SMARTTV: "smarttv";
183
+ TABLET: "tablet";
184
+ WEARABLE: "wearable";
185
+ XR: "xr";
186
+ }>;
187
+ export const Vendor: Readonly<{
188
+ ACER: "Acer";
189
+ ADVAN: "Advan";
190
+ ALCATEL: "Alcatel";
191
+ APPLE: "Apple";
192
+ AMAZON: "Amazon";
193
+ ARCHOS: "Archos";
194
+ ASUS: "ASUS";
195
+ ATT: "AT&T";
196
+ BENQ: "BenQ";
197
+ BLACKBERRY: "BlackBerry";
198
+ CAT: "Cat";
199
+ DELL: "Dell";
200
+ ENERGIZER: "Energizer";
201
+ ESSENTIAL: "Essential";
202
+ FACEBOOK: "Facebook";
203
+ FAIRPHONE: "Fairphone";
204
+ GEEKSPHONE: "GeeksPhone";
205
+ GENERIC: "Generic";
206
+ GOOGLE: "Google";
207
+ HMD: "HMD";
208
+ HP: "HP";
209
+ HTC: "HTC";
210
+ HUAWEI: "Huawei";
211
+ IMO: "IMO";
212
+ INFINIX: "Infinix";
213
+ ITEL: "itel";
214
+ JOLLA: "Jolla";
215
+ KOBO: "Kobo";
216
+ LENOVO: "Lenovo";
217
+ LG: "LG";
218
+ MEIZU: "Meizu";
219
+ MICROMAX: "Micromax";
220
+ MICROSOFT: "Microsoft";
221
+ MOTOROLA: "Motorola";
222
+ NEXIAN: "Nexian";
223
+ NINTENDO: "Nintendo";
224
+ NOKIA: "Nokia";
225
+ NOTHING: "Nothing";
226
+ NVIDIA: "Nvidia";
227
+ ONEPLUS: "OnePlus";
228
+ OPPO: "OPPO";
229
+ OUYA: "Ouya";
230
+ PALM: "Palm";
231
+ PANASONIC: "Panasonic";
232
+ PEBBLE: "Pebble";
233
+ PICO: "Pico";
234
+ POLYTRON: "Polytron";
235
+ REALME: "Realme";
236
+ RIM: "RIM";
237
+ ROKU: "Roku";
238
+ SAMSUNG: "Samsung";
239
+ SHARP: "Sharp";
240
+ SIEMENS: "Siemens";
241
+ SMARTFREN: "Smartfren";
242
+ SONY: "Sony";
243
+ SPRINT: "Sprint";
244
+ TCL: "TCL";
245
+ TECHNISAT: "TechniSAT";
246
+ TECNO: "Tecno";
247
+ TESLA: "Tesla";
248
+ ULEFONE: "Ulefone";
249
+ VIVO: "Vivo";
250
+ VODAFONE: "Vodafone";
251
+ XBOX: "Xbox";
252
+ XIAOMI: "Xiaomi";
253
+ ZEBRA: "Zebra";
254
+ ZTE: "ZTE";
255
+ }>;
256
+ export const Engine: Readonly<{
257
+ AMAYA: "Amaya";
258
+ ARKWEB: "ArkWeb";
259
+ BLINK: "Blink";
260
+ EDGEHTML: "EdgeHTML";
261
+ FLOW: "Flow";
262
+ GECKO: "Gecko";
263
+ GOANNA: "Goanna";
264
+ ICAB: "iCab";
265
+ KHTML: "KHTML";
266
+ LIBWEB: "LibWeb";
267
+ LINKS: "Links";
268
+ LYNX: "Lynx";
269
+ NETFRONT: "NetFront";
270
+ NETSURF: "NetSurf";
271
+ PRESTO: "Presto";
272
+ SERVO: "Servo";
273
+ TASMAN: "Tasman";
274
+ TRIDENT: "Trident";
275
+ W3M: "w3m";
276
+ WEBKIT: "WebKit";
277
+ }>;
278
+ export const OS: Readonly<{
279
+ AIX: "AIX";
280
+ AMIGA_OS: "Amiga OS";
281
+ ANDROID: "Android";
282
+ ANDROID_X86: "Android-x86";
283
+ ARCH: "Arch";
284
+ BADA: "Bada";
285
+ BEOS: "BeOS";
286
+ BLACKBERRY: "BlackBerry";
287
+ CENTOS: "CentOS";
288
+ CHROME_OS: "Chrome OS";
289
+ CHROMECAST: "Chromecast";
290
+ CHROMECAST_ANDROID: "Chromecast Android";
291
+ CHROMECAST_FUCHSIA: "Chromecast Fuchsia";
292
+ CHROMECAST_LINUX: "Chromecast Linux";
293
+ CHROMECAST_SMARTSPEAKER: "Chromecast SmartSpeaker";
294
+ CONTIKI: "Contiki";
295
+ DEBIAN: "Debian";
296
+ DEEPIN: "Deepin";
297
+ DRAGONFLY: "DragonFly";
298
+ ELEMENTARY_OS: "elementary OS";
299
+ FEDORA: "Fedora";
300
+ FIREFOX_OS: "Firefox OS";
301
+ FREEBSD: "FreeBSD";
302
+ FUCHSIA: "Fuchsia";
303
+ GENTOO: "Gentoo";
304
+ GHOSTBSD: "GhostBSD";
305
+ GNU: "GNU";
306
+ HAIKU: "Haiku";
307
+ HARMONYOS: "HarmonyOS";
308
+ HP_UX: "HP-UX";
309
+ HURD: "Hurd";
310
+ IOS: "iOS";
311
+ JOLI: "Joli";
312
+ KAIOS: "KaiOS";
313
+ KUBUNTU: "Kubuntu";
314
+ LINPUS: "Linpus";
315
+ LINSPIRE: "Linspire";
316
+ LINUX: "Linux";
317
+ MACOS: "macOS";
318
+ MAEMO: "Maemo";
319
+ MAGEIA: "Mageia";
320
+ MANDRIVA: "Mandriva";
321
+ MANJARO: "Manjaro";
322
+ MEEGO: "MeeGo";
323
+ MINIX: "Minix";
324
+ MINT: "Mint";
325
+ MORPH_OS: "Morph OS";
326
+ NETBSD: "NetBSD";
327
+ NETRANGE: "NetRange";
328
+ NETTV: "NetTV";
329
+ NINTENDO: "Nintendo";
330
+ OPENHARMONY: "OpenHarmony";
331
+ OPENBSD: "OpenBSD";
332
+ OPENVMS: "OpenVMS";
333
+ OS2: "OS/2";
334
+ PALM: "Palm";
335
+ PC_BSD: "PC-BSD";
336
+ PCLINUXOS: "PCLinuxOS";
337
+ PICO: "Pico";
338
+ PLAN9: "Plan9";
339
+ PLAYSTATION: "PlayStation";
340
+ QNX: "QNX";
341
+ RASPBIAN: "Raspbian";
342
+ REDHAT: "RedHat";
343
+ RIM_TABLET_OS: "RIM Tablet OS";
344
+ RISC_OS: "RISC OS";
345
+ SABAYON: "Sabayon";
346
+ SAILFISH: "Sailfish";
347
+ SERENITYOS: "SerenityOS";
348
+ SERIES40: "Series40";
349
+ SLACKWARE: "Slackware";
350
+ SOLARIS: "Solaris";
351
+ SUSE: "SUSE";
352
+ SYMBIAN: "Symbian";
353
+ TIZEN: "Tizen";
354
+ UBUNTU: "Ubuntu";
355
+ UBUNTU_TOUCH: "Ubuntu Touch",
356
+ UNIX: "Unix";
357
+ VECTORLINUX: "VectorLinux";
358
+ WATCHOS: "watchOS";
359
+ WEBOS: "WebOS";
360
+ WINDOWS: "Windows";
361
+ WINDOWS_IOT: "Windows IoT";
362
+ WINDOWS_MOBILE: "Windows Mobile";
363
+ WINDOWS_PHONE: "Windows Phone";
364
+ XBOX: "Xbox";
365
+ ZENWALK: "Zenwalk";
366
+ }>;