ua-parser-js 2.0.0-alpha.3 → 2.0.0-beta.2

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "title": "UAParser.js",
3
3
  "name": "ua-parser-js",
4
- "version": "2.0.0-alpha.3",
4
+ "version": "2.0.0-beta.2",
5
5
  "author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
6
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": [
@@ -14,7 +14,11 @@
14
14
  "device",
15
15
  "cpu",
16
16
  "jquery-plugin",
17
- "ecosystem:jquery"
17
+ "ecosystem:jquery",
18
+ "ua-parser-js",
19
+ "browser-detection",
20
+ "device-detection",
21
+ "os-detection"
18
22
  ],
19
23
  "homepage": "https://github.com/faisalman/ua-parser-js",
20
24
  "contributors": [
@@ -35,8 +39,11 @@
35
39
  "Carl C Von Lewin <carlchristianlewin@gmail.com>",
36
40
  "CESAR RAMOS <c@imagenproactiva.com>",
37
41
  "Chad Killingsworth <ckillingsworth@jackhenry.com>",
42
+ "chenhui9279 <chenhui9279@autohome.com.cn>",
43
+ "chenyuan-new <53860479+chenyuan-new@users.noreply.github.com>",
38
44
  "Christopher De Cairos <chris.decairos@gmail.com>",
39
45
  "Cyrille David <cyrille@qonto.eu>",
46
+ "Dante <duanjl.china@gmail.com>",
40
47
  "Dario Vladovic <d.vladimyr@gmail.com>",
41
48
  "David Annez <david.annez@gmail.com>",
42
49
  "Davit Barbakadze <jayarjo@gmail.com>",
@@ -59,10 +66,12 @@
59
66
  "Faisal Salman <f@faisalman.com>",
60
67
  "Frédéric Camblor <fcamblor@gmail.com>",
61
68
  "Frederik Ring <frederik.ring@gmail.com>",
69
+ "Garrit Franke <garrit@slashdev.space>",
62
70
  "Gerald Host <me@jacobford.co.uk>",
63
71
  "Germán M. Bravo <german.mb@gmail.com>",
64
72
  "Grigory Dmitrenko <grigory@snsk.ru>",
65
73
  "gulpin <gulping.gulpin@gmail.com>",
74
+ "Hans Ott <hansott@hotmail.be>",
66
75
  "Hendrik Helwich <h.helwich@iplabs.de>",
67
76
  "Hermann Ebert <ebbmo@HE.local>",
68
77
  "hr6r <hedian@gmail.com>",
@@ -70,6 +79,7 @@
70
79
  "Ildar Kamalov <i.kamalov@adguard.com>",
71
80
  "insanehong <insane.hong@navercorp.com>",
72
81
  "jackpoll <jackpoll123456@gmail.com>",
82
+ "Jacky Choo <jackychoo@adly-macbook.local>",
73
83
  "Jake Mc <startswithaj@users.noreply.github.com>",
74
84
  "JBYoshi <12983479+JBYoshi@users.noreply.github.com>",
75
85
  "Joey Parrish <joeyparrish@google.com>",
@@ -79,11 +89,14 @@
79
89
  "Josh Goldberg <joshuakgoldberg@outlook.com>",
80
90
  "Junki-Ishida <junki_ishida@dwango.co.jp>",
81
91
  "Kendall Buchanan <kendall@kendagriff.com>",
92
+ "KnifeLemon <role___play@naver.com>",
93
+ "kNoAPP <alldoneb@gmail.com>",
82
94
  "Lee Treveil <leetreveil@gmail.com>",
83
95
  "leonardo <leofiore@libero.it>",
84
96
  "Levente Balogh <balogh.levente.hu@gmail.com>",
85
97
  "Liam Quinn <lquinn@blackberry.com>",
86
98
  "Lithin <lithin@webklipper.com>",
99
+ "liujunlve <liujunlve@henhaoji.com>",
87
100
  "ll-syber <670159357@qq.com>",
88
101
  "Loris Guignard <loris.guignard@gmail.com>",
89
102
  "Lukas Drgon <lukas.drgon@gmail.com>",
@@ -98,6 +111,8 @@
98
111
  "Max Nordlund <max.nordlund@gmail.com>",
99
112
  "Michael Hess <mhess@connectify.me>",
100
113
  "MimyyK <michele.marais@hakisa.com>",
114
+ "Mok <mok@moekm.com>",
115
+ "nabetama <mao.nabeta@gmail.com>",
101
116
  "naoh <naoh.cs03g@nctu.edu.tw>",
102
117
  "Nicholas Ionata <nionata@ufl.edu>",
103
118
  "Nikhil Motiani <nikhil.motiani@outlook.com>",
@@ -106,7 +121,9 @@
106
121
  "niris <nirisix@gmail.com>",
107
122
  "Nobuo Okada <nookada@yahoo-corp.jp>",
108
123
  "o.drapeza <o.drapeza@tinkoff.ru>",
124
+ "Oscar Becerra <oscarbecerra@google.com>",
109
125
  "otakuSiD <otakusid@gmail.com>",
126
+ "Paris Morgan <paris@8thwall.com>",
110
127
  "patrick-nurt <github@pereira.dk>",
111
128
  "Pavel Studeny <studeny@avast.com>",
112
129
  "Peter Dave Hello <PeterDaveHello@users.noreply.github.com>",
@@ -116,19 +133,24 @@
116
133
  "Queen Vinyl Darkscratch <vinyldarkscratch@gmail.com>",
117
134
  "Raine Makelainen <raine.makelainen@jolla.com>",
118
135
  "Raman Savaryn <homeneartheocean@gmail.com>",
136
+ "Riley Shaw <rileyjshaw@users.noreply.github.com>",
119
137
  "Robert Tod <robert@qubit.com>",
120
138
  "roman.savarin <roman.savarin@skywindgroup.com>",
121
139
  "Ron Korland <ron@testim.io>",
122
140
  "Ross Noble <rosshnoble@gmail.com>",
123
141
  "ruicong <466403866@qq.com>",
142
+ "Runar Heggset <rukki093@gmail.com>",
143
+ "Ryohei Shima <shima01dev@gmail.com>",
124
144
  "Sandro Sonntag <sandro.sonntag@adorsys.de>",
125
145
  "sgautrea <shanegautreau@gmail.com>",
146
+ "shaharmor <shahar@peer5.com>",
126
147
  "Shane Gautreau <sgautrea@opentext.com>",
127
148
  "Shane Thacker <shane@steadymade.com>",
128
149
  "Shreedhar <shreedhar@uber.com>",
129
150
  "Simon Eisenmann <simon@longsleep.org>",
130
151
  "Simon Lang <me@simonlang.org>",
131
152
  "Stiekel <histkc@gmail.com>",
153
+ "sunny-mwx <30586210+sunny-mwx@users.noreply.github.com>",
132
154
  "sUP <dani3l@gmail.com>",
133
155
  "Sylvain Gizard <sylvain.gizard@gmail.com>",
134
156
  "szchenghuang <szchenghuang@gmail.com>",
@@ -136,19 +158,24 @@
136
158
  "Tony Tomarchio <tony@tomarchio.cc>",
137
159
  "Ulrich Schmidt <u.schmidt@velian.de>",
138
160
  "Vadim Kurachevsky <vadim@hmvs.org>",
161
+ "Varun Sharma <varunsh@stepsecurity.io>",
162
+ "XhmikosR <xhmikosr@gmail.com>",
139
163
  "Yılmaz <yilmazdemir36@gmail.com>",
140
164
  "yuanyang <work_yuanyang@163.com>",
141
165
  "Yun Young-jin <yupmin@yupmin-office-macmini.local>",
142
- "Zach Bjornson <zbbjornson@gmail.com>"
166
+ "Zach Bjornson <zbbjornson@gmail.com>",
167
+ "Ziding Zhang <zidingz@gmail.com>"
143
168
  ],
144
169
  "type": "commonjs",
170
+ "types": "src/main/ua-parser.d.ts",
145
171
  "main": "src/main/ua-parser.js",
146
172
  "module": "src/main/ua-parser.mjs",
147
173
  "browser": "dist/ua-parser.pack.js",
148
174
  "exports": {
149
175
  ".": {
150
176
  "require": "./src/main/ua-parser.js",
151
- "import": "./src/main/ua-parser.mjs"
177
+ "import": "./src/main/ua-parser.mjs",
178
+ "types": "./src/main/ua-parser.d.ts"
152
179
  },
153
180
  "./enums": {
154
181
  "require": "./src/enums/ua-parser-enums.js",
@@ -156,11 +183,13 @@
156
183
  },
157
184
  "./extensions": {
158
185
  "require": "./src/extensions/ua-parser-extensions.js",
159
- "import": "./src/extensions/ua-parser-extensions.mjs"
186
+ "import": "./src/extensions/ua-parser-extensions.mjs",
187
+ "types": "./src/extensions/ua-parser-extensions.d.ts"
160
188
  },
161
189
  "./helpers": {
162
190
  "require": "./src/helpers/ua-parser-helpers.js",
163
- "import": "./src/helpers/ua-parser-helpers.mjs"
191
+ "import": "./src/helpers/ua-parser-helpers.mjs",
192
+ "types": "./src/helpers/ua-parser-helpers.d.ts"
164
193
  }
165
194
  },
166
195
  "files": [
@@ -169,29 +198,33 @@
169
198
  ],
170
199
  "scripts": {
171
200
  "build": "./script/build-dist.sh && ./script/build-module.js",
201
+ "build+test": "npm run build && npm run test",
172
202
  "fuzz": "jazzer ./test/jazzer-fuzz-test.js --sync",
173
203
  "test": "./script/test-all.sh",
174
- "test:jshint": "jshint src && jshint script",
204
+ "test:dts-lint": "tsd --typings src/main/ua-parser.d.ts --files test/dts-test.ts",
205
+ "test:eslint": "eslint src && eslint script",
206
+ "test:jshint": "jshint src/main",
175
207
  "test:lockfile-lint": "npx lockfile-lint -p package-lock.json",
176
208
  "test:mocha": "mocha -R list test/mocha*js",
177
209
  "test:playwright": "playwright test"
178
210
  },
179
211
  "devDependencies": {
180
212
  "@babel/parser": "7.15.8",
181
- "@babel/traverse": "7.15.4",
213
+ "@babel/traverse": "7.23.2",
182
214
  "@jazzer.js/core": "^1.4.0",
183
215
  "@playwright/test": "~1.32.2",
184
216
  "jshint": "~2.13.6",
185
217
  "mocha": "~8.2.0",
186
218
  "requirejs": "2.3.2",
187
219
  "safe-regex": "^2.1.1",
220
+ "tsd": "^0.29.0",
188
221
  "uglify-js": "~3.12.0"
189
222
  },
190
223
  "repository": {
191
224
  "type": "git",
192
225
  "url": "https://github.com/faisalman/ua-parser-js.git"
193
226
  },
194
- "license": "MIT",
227
+ "license": "AGPL-3.0-or-later",
195
228
  "engines": {
196
229
  "node": "*"
197
230
  },
@@ -202,8 +235,8 @@
202
235
  "test": "test"
203
236
  },
204
237
  "bugs": "https://github.com/faisalman/ua-parser-js/issues",
205
- "demo": "https://faisalman.github.io/ua-parser-js",
206
- "download": "https://raw.github.com/faisalman/ua-parser-js/master/dist/ua-parser.min.js",
238
+ "demo": "https://uaparser.js.org",
239
+ "download": "https://raw.github.com/faisalman/ua-parser-js/master/dist/ua-parser.pack.js",
207
240
  "funding": [
208
241
  {
209
242
  "type": "opencollective",
@@ -1,103 +1,350 @@
1
1
  ///////////////////////////////////////////////
2
- /* Enums for UAParser.js v2.0.0-alpha.3
2
+ /* Enums for UAParser.js v2.0.0-beta.2
3
3
  https://github.com/faisalman/ua-parser-js
4
4
  Author: Faisal Salman <f@faisalman.com>
5
- MIT License */
5
+ AGPLv3 License */
6
6
  //////////////////////////////////////////////
7
7
 
8
8
  /*jshint esversion: 6 */
9
9
 
10
- const BrowserName = Object.freeze({
11
- CHROME : 'Chrome',
12
- EDGE : 'Edge',
13
- SAFARI : 'Safari',
14
- FIREFOX : 'Firefox',
15
- OPERA : 'Opera',
16
- MOBILE_CHROME : 'Mobile Chrome',
17
- MOBILE_SAFARI : 'Mobile Safari',
18
- MOBILE_FIREFOX : 'Mobile Firefox',
19
- ANDROID_BROWSER : 'Android Browser'
10
+ const Browser = Object.freeze({
11
+ _2345_EXPLORER: '2345Explorer',
12
+ _360: '360 Browser',
13
+ ALIPAY: 'Alipay',
14
+ AMAYA: 'Amaya',
15
+ ANDROID: 'Android Browser',
16
+ ARORA: 'Arora',
17
+ AVANT: 'Avant',
18
+ AVAST: 'Avast Secure Browser',
19
+ AVG: 'AVG Secure Browser',
20
+ BAIDU: 'Baidu Browser',
21
+ BASILISK: 'Basilisk',
22
+ BLAZER: 'Blazer',
23
+ BOLT: 'Bolt',
24
+ BOWSER: 'Bowser',
25
+ BRAVE: 'Brave',
26
+ CAMINO: 'Camino',
27
+ CHIMERA: 'Chimera',
28
+ CHROME: 'Chrome',
29
+ CHROME_HEADLESS: 'Chrome Headless',
30
+ CHROME_MOBILE: 'Mobile Chrome',
31
+ CHROME_WEBVIEW: 'Chrome WebView',
32
+ CHROMIUM: 'Chromium',
33
+ COBALT: 'Cobalt',
34
+ COC_COC: 'Coc Coc',
35
+ COMODO_DRAGON: 'Comodo Dragon',
36
+ CONKEROR: 'Conkeror',
37
+ DILLO: 'Dillo',
38
+ DOLPHIN: 'Dolphin',
39
+ DORIS: 'Doris',
40
+ DUCKDUCKGO: 'DuckDuckGo',
41
+ EDGE: 'Edge',
42
+ EPIPHANY: 'Epiphany',
43
+ FACEBOOK: 'Facebook',
44
+ FALKON: 'Falkon',
45
+ FIREBIRD: 'Firebird',
46
+ FIREFOX: 'Firefox',
47
+ FIREFOX_FOCUS: 'Firefox Focus',
48
+ FIREFOX_MOBILE: 'Mobile Firefox',
49
+ FIREFOX_REALITY: 'Firefox Reality',
50
+ FENNEC: 'Fennec',
51
+ FLOCK: 'Flock',
52
+ FLOW: 'Flow',
53
+ GO: 'Go Browser',
54
+ GOOGLE_SEARCH: 'GSA',
55
+ HEYTAP: 'HeyTap',
56
+ HUAWEI: 'Huawei Browser',
57
+ ICAB: 'iCab',
58
+ ICE: 'ICE Browser',
59
+ ICEAPE: 'IceApe',
60
+ ICECAT: 'IceCat',
61
+ ICEDRAGON: 'IceDragon',
62
+ ICEWEASEL: 'IceWeasel',
63
+ IE: 'IE',
64
+ INSTAGRAM: 'Instagram',
65
+ IRIDIUM: 'Iridium',
66
+ IRON: 'Iron',
67
+ JASMINE: 'Jasmine',
68
+ KONQUEROR: 'Konqueror',
69
+ KAKAO: 'KakaoTalk',
70
+ KHTML: 'KHTML',
71
+ K_MELEON: 'K-Meleon',
72
+ KLAR: 'Klar',
73
+ KLARNA: 'Klarna',
74
+ KINDLE: 'Kindle',
75
+ LENOVO: 'Smart Lenovo Browser',
76
+ LIEBAO: 'LBBROWSER',
77
+ LINE: 'Line',
78
+ LINKEDIN: 'LinkedIn',
79
+ LINKS: 'Links',
80
+ LUNASCAPE: 'Lunascape',
81
+ LYNX: 'Lynx',
82
+ MAEMO: 'Maemo Browser',
83
+ MAXTHON: 'Maxthon',
84
+ MIDORI: 'Midori',
85
+ MINIMO: 'Minimo',
86
+ MIUI: 'MIUI Browser',
87
+ MOZILLA: 'Mozilla',
88
+ MOSAIC: 'Mosaic',
89
+ NAVER: 'Naver',
90
+ NETFRONT: 'NetFront',
91
+ NETSCAPE: 'Netscape',
92
+ NETSURF: 'Netsurf',
93
+ NOKIA: 'Nokia Browser',
94
+ OBIGO: 'Obigo',
95
+ OCULUS: 'Oculus Browser',
96
+ OMNIWEB: 'OmniWeb',
97
+ OPERA: 'Opera',
98
+ OPERA_COAST: 'Opera Coast',
99
+ OPERA_MINI: 'Opera Mini',
100
+ OPERA_MOBI: 'Opera Mobi',
101
+ OPERA_TABLET: 'Opera Tablet',
102
+ OPERA_TOUCH: 'Opera Touch',
103
+ OVI: 'OviBrowser',
104
+ PALEMOON: 'PaleMoon',
105
+ PHANTOMJS: 'PhantomJS',
106
+ PHOENIX: 'Phoenix',
107
+ POLARIS: 'Polaris',
108
+ PUFFIN: 'Puffin',
109
+ QQ: 'QQBrowser',
110
+ QQ_LITE: 'QQBrowserLite',
111
+ QUARK: 'Quark',
112
+ QUPZILLA: 'QupZilla',
113
+ REKONQ: 'rekonq',
114
+ ROCKMELT: 'Rockmelt',
115
+ SAFARI: 'Safari',
116
+ SAFARI_MOBILE: 'Mobile Safari',
117
+ SAILFISH: 'Sailfish Browser',
118
+ SAMSUNG: 'Samsung Internet',
119
+ SEAMONKEY: 'SeaMonkey',
120
+ SILK: 'Silk',
121
+ SKYFIRE: 'Skyfire',
122
+ SLEIPNIR: 'Sleipnir',
123
+ SLIMBROWSER: 'SlimBrowser',
124
+ SNAPCHAT: 'Snapchat',
125
+ SOGOU_EXPLORER: 'Sogou Explorer',
126
+ SOGOU_MOBILE: 'Sogou Mobile',
127
+ SWIFTFOX: 'Swiftfox',
128
+ TESLA: 'Tesla',
129
+ TIKTOK: 'TikTok',
130
+ TIZEN: 'Tizen Browser',
131
+ UC: 'UCBrowser',
132
+ UP: 'UP.Browser',
133
+ VIERA: 'Viera',
134
+ VIVALDI: 'Vivaldi',
135
+ VIVO: 'Vivo Browser',
136
+ W3M: 'w3m',
137
+ WATERFOX: 'Waterfox',
138
+ WEBKIT: 'WebKit',
139
+ WECHAT: 'WeChat',
140
+ WEIBO: 'Weibo',
141
+ WHALE: 'Whale',
142
+ YANDEX: 'Yandex'
20
143
 
21
144
  // TODO : test!
22
145
  });
23
146
 
24
- const CPUArch = Object.freeze({
25
- IA32 : 'ia32',
26
- AMD64 : 'amd64',
27
- IA64 : 'ia64',
28
- ARM : 'arm',
29
- ARM64 : 'arm64',
30
- ARMHF : 'armhf',
31
- _68K : '68k',
32
- AVR : 'avr',
33
- IRIX : 'irix',
34
- IRIX64 : 'irix64',
35
- MIPS : 'mips',
36
- MIPS64 : 'mips64',
37
- PPC : 'ppc',
38
- SPARC : 'sparc',
39
- SPARC64 : 'sparc64'
147
+ const CPU = Object.freeze({
148
+ ARM : 'arm',
149
+ ARM_64: 'arm64',
150
+ ARM_HF: 'armhf',
151
+ AVR: 'avr',
152
+ AVR_32: 'avr32',
153
+ IA64: 'ia64',
154
+ IRIX: 'irix',
155
+ IRIX_64: 'irix64',
156
+ MIPS: 'mips',
157
+ MIPS_64: 'mips64',
158
+ M68K: '68k',
159
+ PA_RISC: 'pa-risc',
160
+ PPC: 'ppc',
161
+ SPARC: 'sparc',
162
+ SPARC_64: 'sparc64',
163
+ X86: 'ia32',
164
+ X86_64: 'amd64'
40
165
  });
41
166
 
42
- const DeviceType = Object.freeze({
43
- MOBILE : 'mobile',
44
- TABLET : 'tablet',
45
- SMARTTV : 'smarttv',
46
- CONSOLE : 'console',
47
- WEARABLE: 'wearable',
48
- EMBEDDED: 'embedded'
167
+ const Device = Object.freeze({
168
+ CONSOLE: 'console',
169
+ DESKTOP: 'desktop',
170
+ EMBEDDED: 'embedded',
171
+ MOBILE: 'mobile',
172
+ SMARTTV: 'smarttv',
173
+ TABLET: 'tablet',
174
+ WEARABLE: 'wearable'
49
175
  });
50
176
 
51
- const DeviceVendor = Object.freeze({
52
- APPLE : 'Apple',
53
- SAMSUNG : 'Samsung',
54
- HUAWEI : 'Huawei',
55
- XIAOMI : 'Xiaomi',
56
- OPPO : 'OPPO',
57
- VIVO : 'Vivo',
58
- REALME : 'Realme',
59
- LENOVO : 'Lenovo',
60
- LG : 'LG'
177
+ const Vendor = Object.freeze({
178
+ ACER: 'Acer',
179
+ ALCATEL: 'Alcatel',
180
+ APPLE: 'Apple',
181
+ AMAZON: 'Amazon',
182
+ ARCHOS: 'Archos',
183
+ ASUS: 'ASUS',
184
+ ATT: 'AT&T',
185
+ BENQ: 'BenQ',
186
+ BLACKBERRY: 'BlackBerry',
187
+ DELL: 'Dell',
188
+ ESSENTIAL: 'Essential',
189
+ FACEBOOK: 'Facebook',
190
+ FAIRPHONE: 'Fairphone',
191
+ GEEKSPHONE: 'GeeksPhone',
192
+ GENERIC: 'Generic',
193
+ GOOGLE: 'Google',
194
+ HP: 'HP',
195
+ HTC: 'HTC',
196
+ HUAWEI: 'Huawei',
197
+ INFINIX: 'Infinix',
198
+ JOLLA: 'Jolla',
199
+ KOBO: 'Kobo',
200
+ LENOVO: 'Lenovo',
201
+ LG: 'LG',
202
+ MEIZU: 'Meizu',
203
+ MICROSOFT: 'Microsoft',
204
+ MOTOROLA: 'Motorola',
205
+ NEXIAN: 'Nexian',
206
+ NINTENDO: 'Nintendo',
207
+ NOKIA: 'Nokia',
208
+ NVIDIA: 'Nvidia',
209
+ ONEPLUS: 'OnePlus',
210
+ OPPO: 'OPPO',
211
+ OUYA: 'Ouya',
212
+ PALM: 'Palm',
213
+ PANASONIC: 'Panasonic',
214
+ PEBBLE: 'Pebble',
215
+ POLYTRON: 'Polytron',
216
+ REALME: 'Realme',
217
+ RIM: 'RIM',
218
+ ROKU: 'Roku',
219
+ SAMSUNG: 'Samsung',
220
+ SHARP: 'Sharp',
221
+ SIEMENS: 'Siemens',
222
+ SONY: 'Sony',
223
+ SPRINT: 'Sprint',
224
+ TECHNISAT: 'TechniSAT',
225
+ TECNO: 'Tecno',
226
+ TESLA: 'Tesla',
227
+ ULEFONE: 'Ulefone',
228
+ VIVO: 'Vivo',
229
+ VODAFONE: 'Vodafone',
230
+ XBOX: 'Xbox',
231
+ XIAOMI: 'Xiaomi',
232
+ ZEBRA: 'Zebra',
233
+ ZTE: 'ZTE',
61
234
 
62
235
  // TODO : test!
63
236
  });
64
237
 
65
- const EngineName = Object.freeze({
66
- AMAYA : 'Amaya',
67
- BLINK : 'Blink',
238
+ const Engine = Object.freeze({
239
+ AMAYA: 'Amaya',
240
+ BLINK: 'Blink',
68
241
  EDGEHTML: 'EdgeHTML',
69
- FLOW : 'Flow',
70
- GECKO : 'Gecko',
71
- GOANNA : 'Goanna',
72
- ICAB : 'iCab',
73
- LIBWEB : 'LibWeb',
74
- KHTML : 'KHTML',
75
- LINKS : 'Links',
76
- LYNX : 'Lynx',
242
+ FLOW: 'Flow',
243
+ GECKO: 'Gecko',
244
+ GOANNA: 'Goanna',
245
+ ICAB: 'iCab',
246
+ KHTML: 'KHTML',
247
+ LIBWEB: 'LibWeb',
248
+ LINKS: 'Links',
249
+ LYNX: 'Lynx',
77
250
  NETFRONT: 'NetFront',
78
- NETSURF : 'NetSurf',
79
- PRESTO : 'Presto',
80
- TASMAN : 'Tasman',
81
- TRIDENT : 'Trident',
82
- W3M : 'w3m',
83
- WEBKIT : 'WebKit'
251
+ NETSURF: 'NetSurf',
252
+ PRESTO: 'Presto',
253
+ TASMAN: 'Tasman',
254
+ TRIDENT: 'Trident',
255
+ W3M: 'w3m',
256
+ WEBKIT: 'WebKit'
84
257
  });
85
258
 
86
- const OSName = Object.freeze({
87
- WINDOWS : 'Windows',
88
- LINUX : 'Linux',
89
- MACOS : 'macOS',
90
- IOS : 'iOS',
91
- ANDROID : 'Android'
259
+ const OS = Object.freeze({
260
+ AIX: 'AIX',
261
+ AMIGA_OS: 'Amiga OS',
262
+ ANDROID: 'Android',
263
+ ANDROID_X86: 'Android-x86',
264
+ ARCH: 'Arch',
265
+ BADA: 'Bada',
266
+ BEOS: 'BeOS',
267
+ BLACKBERRY: 'BlackBerry',
268
+ CENTOS: 'CentOS',
269
+ CHROME_OS: 'Chrome OS',
270
+ CHROMECAST: 'Chromecast',
271
+ CONTIKI: 'Contiki',
272
+ DEBIAN: 'Debian',
273
+ DEEPIN: 'Deepin',
274
+ DRAGONFLY: 'DragonFly',
275
+ ELEMENTARY_OS: 'elementary OS',
276
+ FEDORA: 'Fedora',
277
+ FIREFOX_OS: 'Firefox OS',
278
+ FREEBSD: 'FreeBSD',
279
+ FUCHSIA: 'Fuchsia',
280
+ GENTOO: 'Gentoo',
281
+ GHOSTBSD: 'GhostBSD',
282
+ GNU: 'GNU',
283
+ HAIKU: 'Haiku',
284
+ HARMONYOS: 'HarmonyOS',
285
+ HP_UX: 'HP-UX',
286
+ HURD: 'Hurd',
287
+ IOS: 'iOS',
288
+ JOLI: 'Joli',
289
+ KAIOS: 'KaiOS',
290
+ LINPUS: 'Linpus',
291
+ LINSPIRE: 'Linspire',
292
+ LINUX: 'Linux',
293
+ MACOS: 'macOS',
294
+ MAEMO: 'Maemo',
295
+ MAGEIA: 'Mageia',
296
+ MANDRIVA: 'Mandriva',
297
+ MANJARO: 'Manjaro',
298
+ MEEGO: 'MeeGo',
299
+ MINIX: 'Minix',
300
+ MINT: 'Mint',
301
+ MORPH_OS: 'Morph OS',
302
+ NETBSD: 'NetBSD',
303
+ NETRANGE: 'NetRange',
304
+ NETTV: 'NetTV',
305
+ NINTENDO: 'Nintendo',
306
+ OPENBSD: 'OpenBSD',
307
+ OPENVMS: 'OpenVMS',
308
+ OS2: 'OS/2',
309
+ PALM: 'Palm',
310
+ PC_BSD: 'PC-BSD',
311
+ PCLINUXOS: 'PCLinuxOS',
312
+ PLAN9: 'Plan9',
313
+ PLAYSTATION: 'PlayStation',
314
+ QNX: 'QNX',
315
+ RASPBIAN: 'Raspbian',
316
+ REDHAT: 'RedHat',
317
+ RIM_TABLET_OS: 'RIM Tablet OS',
318
+ RISC_OS: 'RISC OS',
319
+ SABAYON: 'Sabayon',
320
+ SAILFISH: 'Sailfish',
321
+ SERENITYOS: 'SerenityOS',
322
+ SERIES40: 'Series40',
323
+ SLACKWARE: 'Slackware',
324
+ SOLARIS: 'Solaris',
325
+ SUSE: 'SUSE',
326
+ SYMBIAN: 'Symbian',
327
+ TIZEN: 'Tizen',
328
+ UBUNTU: 'Ubuntu',
329
+ UNIX: 'Unix',
330
+ VECTORLINUX: 'VectorLinux',
331
+ VIERA: 'Viera',
332
+ WATCHOS: 'watchOS',
333
+ WEBOS: 'WebOS',
334
+ WINDOWS: 'Windows',
335
+ WINDOWS_MOBILE: 'Windows Mobile',
336
+ WINDOWS_PHONE: 'Windows Phone',
337
+ XBOX: 'Xbox',
338
+ ZENWALK: 'Zenwalk'
92
339
 
93
340
  // TODO : test!
94
341
  });
95
342
 
96
343
  module.exports = {
97
- BrowserName,
98
- CPUArch,
99
- DeviceType,
100
- DeviceVendor,
101
- EngineName,
102
- OSName
344
+ Browser,
345
+ CPU,
346
+ Device,
347
+ Vendor,
348
+ Engine,
349
+ OS
103
350
  };