device_detector 1.0.3 → 1.0.7
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +15 -0
- data/README.md +8 -7
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/browser.rb +364 -0
- data/lib/device_detector/client.rb +11 -2
- data/lib/device_detector/device.rb +1247 -22
- data/lib/device_detector/memory_cache.rb +5 -5
- data/lib/device_detector/metadata_extractor.rb +7 -8
- data/lib/device_detector/model_extractor.rb +3 -3
- data/lib/device_detector/name_extractor.rb +2 -2
- data/lib/device_detector/os.rb +150 -116
- data/lib/device_detector/parser.rb +23 -10
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector/version_extractor.rb +29 -2
- data/lib/device_detector.rb +73 -40
- data/regexes/bots.yml +868 -62
- data/regexes/client/browser_engine.yml +11 -2
- data/regexes/client/browsers.yml +1132 -112
- data/regexes/client/feed_readers.yml +5 -11
- data/regexes/client/libraries.yml +86 -2
- data/regexes/client/mediaplayers.yml +39 -3
- data/regexes/client/mobile_apps.yml +940 -66
- data/regexes/client/pim.yml +66 -3
- data/regexes/device/cameras.yml +6 -6
- data/regexes/device/car_browsers.yml +23 -3
- data/regexes/device/consoles.yml +15 -3
- data/regexes/device/mobiles.yml +18351 -3566
- data/regexes/device/notebooks.yml +114 -0
- data/regexes/device/portable_media_player.yml +36 -9
- data/regexes/device/shell_tv.yml +117 -0
- data/regexes/device/televisions.yml +440 -35
- data/regexes/oss.yml +635 -284
- data/regexes/vendorfragments.yml +5 -1
- metadata +21 -118
- data/.gitignore +0 -14
- data/.travis.yml +0 -14
- data/Gemfile +0 -8
- data/Rakefile +0 -96
- data/device_detector.gemspec +0 -26
- data/spec/device_detector/bot_fixtures_spec.rb +0 -30
- data/spec/device_detector/client_fixtures_spec.rb +0 -31
- data/spec/device_detector/concrete_user_agent_spec.rb +0 -135
- data/spec/device_detector/detector_fixtures_spec.rb +0 -100
- data/spec/device_detector/device_fixtures_spec.rb +0 -36
- data/spec/device_detector/device_spec.rb +0 -151
- data/spec/device_detector/memory_cache_spec.rb +0 -148
- data/spec/device_detector/model_extractor_spec.rb +0 -63
- data/spec/device_detector/os_fixtures_spec.rb +0 -26
- data/spec/device_detector/version_extractor_spec.rb +0 -79
- data/spec/device_detector_spec.rb +0 -189
- data/spec/fixtures/client/browser.yml +0 -2206
- data/spec/fixtures/client/feed_reader.yml +0 -199
- data/spec/fixtures/client/library.yml +0 -175
- data/spec/fixtures/client/mediaplayer.yml +0 -163
- data/spec/fixtures/client/mobile_app.yml +0 -193
- data/spec/fixtures/client/pim.yml +0 -115
- data/spec/fixtures/detector/bots.yml +0 -3260
- data/spec/fixtures/detector/camera.yml +0 -121
- data/spec/fixtures/detector/car_browser.yml +0 -21
- data/spec/fixtures/detector/console.yml +0 -281
- data/spec/fixtures/detector/desktop.yml +0 -5361
- data/spec/fixtures/detector/feature_phone.yml +0 -891
- data/spec/fixtures/detector/feed_reader.yml +0 -551
- data/spec/fixtures/detector/mediaplayer.yml +0 -210
- data/spec/fixtures/detector/mobile_apps.yml +0 -456
- data/spec/fixtures/detector/phablet.yml +0 -3785
- data/spec/fixtures/detector/portable_media_player.yml +0 -178
- data/spec/fixtures/detector/smart_display.yml +0 -61
- data/spec/fixtures/detector/smartphone-1.yml +0 -9953
- data/spec/fixtures/detector/smartphone-10.yml +0 -9924
- data/spec/fixtures/detector/smartphone-11.yml +0 -9889
- data/spec/fixtures/detector/smartphone-12.yml +0 -8655
- data/spec/fixtures/detector/smartphone-2.yml +0 -9967
- data/spec/fixtures/detector/smartphone-3.yml +0 -9887
- data/spec/fixtures/detector/smartphone-4.yml +0 -9911
- data/spec/fixtures/detector/smartphone-5.yml +0 -9933
- data/spec/fixtures/detector/smartphone-6.yml +0 -9923
- data/spec/fixtures/detector/smartphone-7.yml +0 -9892
- data/spec/fixtures/detector/smartphone-8.yml +0 -9896
- data/spec/fixtures/detector/smartphone-9.yml +0 -9928
- data/spec/fixtures/detector/smartphone.yml +0 -9984
- data/spec/fixtures/detector/tablet-1.yml +0 -10023
- data/spec/fixtures/detector/tablet-2.yml +0 -9968
- data/spec/fixtures/detector/tablet-3.yml +0 -7787
- data/spec/fixtures/detector/tablet.yml +0 -9951
- data/spec/fixtures/detector/tv.yml +0 -3333
- data/spec/fixtures/detector/unknown.yml +0 -3283
- data/spec/fixtures/device/camera.yml +0 -19
- data/spec/fixtures/device/car_browser.yml +0 -7
- data/spec/fixtures/device/console.yml +0 -79
- data/spec/fixtures/parser/oss.yml +0 -1047
- data/spec/fixtures/parser/vendorfragments.yml +0 -162
- data/spec/spec_helper.rb +0 -9
data/regexes/oss.yml
CHANGED
@@ -1,26 +1,46 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
8
8
|
##########
|
9
|
-
#
|
9
|
+
# GridOS (https://web.archive.org/web/20111123141630/http://fusiongarage.com/grid-os/about)
|
10
10
|
##########
|
11
|
-
- regex: '
|
12
|
-
name: '
|
11
|
+
- regex: 'Grid OS (\d+[\.\d]+)'
|
12
|
+
name: 'GridOS'
|
13
13
|
version: '$1'
|
14
14
|
|
15
|
-
|
15
|
+
##########
|
16
|
+
# Caixa Mágica (https://caixamagica.pt/)
|
17
|
+
##########
|
18
|
+
- regex: 'CaixaMagica'
|
19
|
+
name: 'Caixa Mágica'
|
20
|
+
version: ''
|
16
21
|
|
17
22
|
##########
|
18
|
-
|
19
|
-
|
20
|
-
- regex: '
|
21
|
-
name: '
|
23
|
+
# Mageia (https://www.mageia.org/en/)
|
24
|
+
##########
|
25
|
+
- regex: 'Mageia; Linux'
|
26
|
+
name: 'Mageia'
|
22
27
|
version: ''
|
23
28
|
|
29
|
+
##########
|
30
|
+
# Whale OS (https://www.zeasn.com/)
|
31
|
+
##########
|
32
|
+
- regex: '(?:WH|WhaleTV/)(\d+[\.\d]+)'
|
33
|
+
name: 'Whale OS'
|
34
|
+
version: '$1'
|
35
|
+
|
36
|
+
##########
|
37
|
+
# Tizen
|
38
|
+
##########
|
39
|
+
- regex: 'Tizen[ /]?(\d+[\.\d]+)?'
|
40
|
+
name: 'Tizen'
|
41
|
+
version: '$1'
|
42
|
+
|
43
|
+
|
24
44
|
##########
|
25
45
|
# YunOS (Android based)
|
26
46
|
##########
|
@@ -31,11 +51,14 @@
|
|
31
51
|
##########
|
32
52
|
# Windows Mobile
|
33
53
|
##########
|
34
|
-
- regex: '
|
54
|
+
- regex: 'Windows Phone;FBSV/(\d+[\.\d]+)'
|
55
|
+
name: 'Windows Phone'
|
56
|
+
version: '$1'
|
57
|
+
|
58
|
+
- regex: '(?:Windows Phone (?:OS)?|wds)[ /]?(\d+[\.\d]+)'
|
35
59
|
name: 'Windows Phone'
|
36
60
|
version: '$1'
|
37
|
-
|
38
|
-
|
61
|
+
|
39
62
|
- regex: 'XBLWP7|Windows Phone'
|
40
63
|
name: 'Windows Phone'
|
41
64
|
version: ''
|
@@ -43,17 +66,15 @@
|
|
43
66
|
- regex: 'Windows CE(?: (\d+[\.\d]+))?'
|
44
67
|
name: 'Windows CE'
|
45
68
|
version: '$1'
|
46
|
-
|
47
|
-
|
69
|
+
|
48
70
|
- regex: '(?:IEMobile|Windows ?Mobile)(?: (\d+[\.\d]+))?'
|
49
71
|
name: 'Windows Mobile'
|
50
72
|
version: '$1'
|
51
|
-
|
52
|
-
|
73
|
+
|
53
74
|
- regex: 'Windows NT 6.2; ARM;'
|
54
75
|
name: 'Windows RT'
|
55
76
|
version: ''
|
56
|
-
|
77
|
+
|
57
78
|
- regex: 'Windows NT 6.3; ARM;'
|
58
79
|
name: 'Windows RT'
|
59
80
|
version: '8.1'
|
@@ -75,6 +96,10 @@
|
|
75
96
|
##########
|
76
97
|
# Custom Android Roms
|
77
98
|
##########
|
99
|
+
- regex: 'HarmonyOS(?:[/ ](\d+[\.\d]+))?'
|
100
|
+
name: 'HarmonyOS'
|
101
|
+
version: '$1'
|
102
|
+
|
78
103
|
- regex: 'RazoDroiD(?: v(\d+[\.\d]*))?'
|
79
104
|
name: 'RazoDroiD'
|
80
105
|
version: '$1'
|
@@ -95,15 +120,62 @@
|
|
95
120
|
name: 'Fire OS'
|
96
121
|
version: '$1'
|
97
122
|
|
123
|
+
- regex: '.+FIRETVSTICK2018'
|
124
|
+
name: 'Fire OS'
|
125
|
+
version: '6'
|
126
|
+
|
127
|
+
- regex: 'AFTSO001'
|
128
|
+
name: 'Fire OS'
|
129
|
+
version: '7'
|
130
|
+
|
131
|
+
- regex: 'FydeOS'
|
132
|
+
name: 'FydeOS'
|
133
|
+
version: ''
|
134
|
+
|
98
135
|
##########
|
99
136
|
# Android
|
100
137
|
##########
|
101
|
-
- regex: '
|
138
|
+
- regex: 'Android Marshmallow'
|
139
|
+
name: 'Android'
|
140
|
+
version: '6'
|
141
|
+
|
142
|
+
- regex: '(?:Podbean|Podimo)(?:.*)/Android'
|
143
|
+
name: 'Android'
|
144
|
+
version: ''
|
145
|
+
|
146
|
+
- regex: 'Android OS/(\d+[\.\d]*)'
|
102
147
|
name: 'Android'
|
103
148
|
version: '$1'
|
104
|
-
|
105
|
-
|
106
|
-
|
149
|
+
|
150
|
+
- regex: 'Pinterest for Android/.*; (\d(?:[\d\.]*))\)$'
|
151
|
+
name: 'Android'
|
152
|
+
version: '$1'
|
153
|
+
|
154
|
+
- regex: 'Android; (\d+[\.\d]*); Mobile;'
|
155
|
+
name: 'Android'
|
156
|
+
version: '$1'
|
157
|
+
|
158
|
+
- regex: '[ ]([\d\.]+)\) AppleWebKit.*ROBLOX Android App'
|
159
|
+
name: 'Android'
|
160
|
+
version: '$1'
|
161
|
+
|
162
|
+
- regex: '(?:(?:Orca-)?Android|Adr)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
|
163
|
+
name: 'Android'
|
164
|
+
version: '$1'
|
165
|
+
|
166
|
+
- regex: '(?:Allview_TX1_Quasar|Cosmote_My_mini_Tab) (\d+[\.\d]*)'
|
167
|
+
name: 'Android'
|
168
|
+
version: '$1'
|
169
|
+
|
170
|
+
- regex: 'Android ?(?:jelly bean|Kit Kat|S.O. Ginger Bread|The FireCyano|:) (\d+[\.\d]*)'
|
171
|
+
name: 'Android'
|
172
|
+
version: '$1'
|
173
|
+
|
174
|
+
- regex: '(?:Orca-Android|FB4A).*FBSV/(\d+[\.\d]*);'
|
175
|
+
name: 'Android'
|
176
|
+
version: '$1'
|
177
|
+
|
178
|
+
- regex: ' Adr |Android|Silk-Accelerated=[a-z]{4,5}'
|
107
179
|
name: 'Android'
|
108
180
|
version: ''
|
109
181
|
|
@@ -111,11 +183,30 @@
|
|
111
183
|
name: 'Android'
|
112
184
|
version: '$1'
|
113
185
|
|
114
|
-
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe'
|
186
|
+
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe|.+K_?Android_?TV_|Sonos/.+\(ACR_'
|
187
|
+
name: 'Android'
|
188
|
+
version: ''
|
189
|
+
|
190
|
+
- regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
|
191
|
+
name: 'Android'
|
192
|
+
version: '$1'
|
193
|
+
|
194
|
+
# Inverted Android
|
195
|
+
- regex: 'Linux; diordnA[; ](\d+[\.\d]*)'
|
115
196
|
name: 'Android'
|
197
|
+
version: '$1'
|
198
|
+
|
199
|
+
- regex: '^A/(\d+[\.\d]*)/'
|
200
|
+
name: 'Android'
|
201
|
+
version: '$1'
|
202
|
+
|
203
|
+
##########
|
204
|
+
## Sailfish OS
|
205
|
+
###########
|
206
|
+
- regex: 'Sailfish|Jolla'
|
207
|
+
name: 'Sailfish OS'
|
116
208
|
version: ''
|
117
|
-
|
118
|
-
|
209
|
+
|
119
210
|
##########
|
120
211
|
# AmigaOS
|
121
212
|
##########
|
@@ -144,9 +235,67 @@
|
|
144
235
|
name: 'MTK / Nucleus'
|
145
236
|
version: '$1'
|
146
237
|
|
238
|
+
##########
|
239
|
+
# MRE / MAUI Runtime Environment
|
240
|
+
##########
|
241
|
+
- regex: 'MRE/(\d+)\.(\d+).*;MAUI'
|
242
|
+
name: 'MRE'
|
243
|
+
version: '$1.$2'
|
244
|
+
|
147
245
|
##########
|
148
246
|
# Linux
|
149
247
|
##########
|
248
|
+
# OpenWrt (https://openwrt.org/)
|
249
|
+
- regex: 'uclient-fetch'
|
250
|
+
name: 'OpenWrt'
|
251
|
+
version: ''
|
252
|
+
|
253
|
+
# Roku OS (https://www.roku.com/how-it-works/roku-os)
|
254
|
+
- regex: 'RokuOS/.+RokuOS (\d+.[\d.]+)'
|
255
|
+
name: 'Roku OS'
|
256
|
+
version: '$1'
|
257
|
+
|
258
|
+
- regex: 'Roku(?:OS)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)'
|
259
|
+
name: 'Roku OS'
|
260
|
+
version: '$1'
|
261
|
+
|
262
|
+
- regex: 'Roku; (?:AP|UI); (\d+[\.\d]+)'
|
263
|
+
name: 'Roku OS'
|
264
|
+
version: '$1'
|
265
|
+
|
266
|
+
# DVKBuntu (https://www.dvkbuntu.org/)
|
267
|
+
- regex: 'dvkbuntu'
|
268
|
+
name: 'DVKBuntu'
|
269
|
+
version: ''
|
270
|
+
|
271
|
+
# Lumin OS (https://developer.magicleap.com/en-us/learn/guides/lumin-os-release-notes-summary)
|
272
|
+
- regex: 'Helio/(\d+[\.\d]+)'
|
273
|
+
name: 'Lumin OS'
|
274
|
+
version: '$1'
|
275
|
+
|
276
|
+
# HasCodingOS (https://forum.hascoding.com/HasCodingOS)
|
277
|
+
- regex: 'HasCodingOs (\d+[\.\d]+)'
|
278
|
+
name: 'HasCodingOS'
|
279
|
+
version: '$1'
|
280
|
+
|
281
|
+
# PCLinuxOS (https://www.pclinuxos.com/)
|
282
|
+
- regex: 'PCLinuxOS/(\d+[\.\d]+)'
|
283
|
+
name: 'PCLinuxOS'
|
284
|
+
version: '$1'
|
285
|
+
|
286
|
+
- regex: '(Ordissimo|webissimo3)'
|
287
|
+
name: 'Ordissimo'
|
288
|
+
version: ''
|
289
|
+
|
290
|
+
# Fenix (https://fenixlinux.com/)
|
291
|
+
- regex: '(?:Win|Sistema )Fenix'
|
292
|
+
name: 'Fenix'
|
293
|
+
version: ''
|
294
|
+
|
295
|
+
- regex: 'TOS; Linux'
|
296
|
+
name: 'TmaxOS'
|
297
|
+
version: ''
|
298
|
+
|
150
299
|
- regex: 'Maemo'
|
151
300
|
name: 'Maemo'
|
152
301
|
version: ''
|
@@ -163,18 +312,39 @@
|
|
163
312
|
name: '$1'
|
164
313
|
version: '$2'
|
165
314
|
|
166
|
-
- regex: '
|
315
|
+
- regex: 'Deepin[ /](\d+[\.\d]+)'
|
316
|
+
name: 'Deepin'
|
317
|
+
version: '$1'
|
318
|
+
|
319
|
+
- regex: '(Debian|Knoppix|Mint(?! Browser)|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack|Freebox)(?:(?: Enterprise)? Linux)?(?:[ /\-](\d+[\.\d]+))?'
|
167
320
|
name: '$1'
|
168
321
|
version: '$2'
|
169
322
|
|
323
|
+
- regex: 'OS ROSA; Linux'
|
324
|
+
name: 'Rosa'
|
325
|
+
version: ''
|
326
|
+
|
170
327
|
# generic linux match -> end of file
|
171
328
|
|
172
329
|
##########
|
173
330
|
# webOS
|
174
331
|
##########
|
175
|
-
- regex: '(?:webOS|Palm webOS)(
|
332
|
+
- regex: '(?:Web0S; .*WEBOS|webOS|web0S|Palm webOS|hpwOS)(?:[/]?(\d+[\.\d]+))?'
|
176
333
|
name: 'webOS'
|
177
334
|
version: '$1'
|
335
|
+
versions:
|
336
|
+
- regex: 'WEBOS(\d+[\.\d]+)'
|
337
|
+
version: '$1'
|
338
|
+
- regex: 'Web0S; Linux/SmartTV.+Chrome/68'
|
339
|
+
version: '5'
|
340
|
+
- regex: 'Web0S; Linux/SmartTV.+Chrome/53'
|
341
|
+
version: '4'
|
342
|
+
- regex: 'Web0S; Linux/SmartTV.+Chrome/38'
|
343
|
+
version: '3'
|
344
|
+
- regex: 'Web0S; Linux/SmartTV.+Safari/538'
|
345
|
+
version: '2'
|
346
|
+
- regex: 'Web0S; Linux/SmartTV.+Safari/537'
|
347
|
+
version: '1'
|
178
348
|
|
179
349
|
- regex: '(?:PalmOS|Palm OS)(?:[/ ](\d+[\.\d]+))?|Palm'
|
180
350
|
name: 'palmOS'
|
@@ -184,88 +354,94 @@
|
|
184
354
|
name: 'palmOS'
|
185
355
|
version: '$1'
|
186
356
|
|
187
|
-
|
188
357
|
- regex: 'MorphOS(?:[ /](\d+[\.\d]+))?'
|
189
358
|
name: 'MorphOS'
|
190
359
|
version: '$1'
|
191
360
|
|
192
|
-
|
361
|
+
|
193
362
|
##########
|
194
363
|
# Windows
|
195
364
|
##########
|
365
|
+
- regex: 'FBW.+FBSV/(\d+[\.\d]*);'
|
366
|
+
name: 'Windows'
|
367
|
+
version: '$1'
|
368
|
+
|
369
|
+
- regex: 'Windows.+OS: (\d+[\.\d]*)'
|
370
|
+
name: 'Windows'
|
371
|
+
version: '$1'
|
372
|
+
|
373
|
+
- regex: 'Windows;(\d+[\.\d]*);'
|
374
|
+
name: 'Windows'
|
375
|
+
version: '$1'
|
376
|
+
|
377
|
+
- regex: 'mingw32|winhttp'
|
378
|
+
name: 'Windows'
|
379
|
+
version: ''
|
380
|
+
|
381
|
+
- regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS))/(\d+\.\d+)'
|
382
|
+
name: 'Windows'
|
383
|
+
version: '$1'
|
384
|
+
|
196
385
|
- regex: 'CYGWIN_NT-10.0|Windows NT 10.0|Windows 10'
|
197
386
|
name: 'Windows'
|
198
387
|
version: '10'
|
199
388
|
|
200
|
-
- regex: 'CYGWIN_NT-6.4|Windows NT 6.4|Windows 10'
|
389
|
+
- regex: 'CYGWIN_NT-6.4|Windows NT 6.4|Windows 10|win10'
|
201
390
|
name: 'Windows'
|
202
391
|
version: '10'
|
203
|
-
|
392
|
+
|
204
393
|
- regex: 'CYGWIN_NT-6.3|Windows NT 6.3|Windows 8.1'
|
205
394
|
name: 'Windows'
|
206
395
|
version: '8.1'
|
207
396
|
|
208
|
-
|
209
397
|
- regex: 'CYGWIN_NT-6.2|Windows NT 6.2|Windows 8'
|
210
398
|
name: 'Windows'
|
211
399
|
version: '8'
|
212
|
-
|
213
|
-
|
214
|
-
- regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7'
|
400
|
+
|
401
|
+
- regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7|win7|Windows \(6.1'
|
215
402
|
name: 'Windows'
|
216
403
|
version: '7'
|
217
|
-
|
218
|
-
|
404
|
+
|
219
405
|
- regex: 'CYGWIN_NT-6.0|Windows NT 6.0|Windows Vista'
|
220
406
|
name: 'Windows'
|
221
407
|
version: 'Vista'
|
222
|
-
|
223
|
-
|
408
|
+
|
224
409
|
- regex: 'CYGWIN_NT-5.2|Windows NT 5.2|Windows Server 2003 / XP x64'
|
225
410
|
name: 'Windows'
|
226
411
|
version: 'Server 2003'
|
227
|
-
|
228
|
-
|
412
|
+
|
229
413
|
- regex: 'CYGWIN_NT-5.1|Windows NT 5.1|Windows XP'
|
230
414
|
name: 'Windows'
|
231
415
|
version: 'XP'
|
232
|
-
|
233
|
-
|
416
|
+
|
234
417
|
- regex: 'CYGWIN_NT-5.0|Windows NT 5.0|Windows 2000'
|
235
418
|
name: 'Windows'
|
236
419
|
version: '2000'
|
237
|
-
|
238
|
-
|
420
|
+
|
239
421
|
- regex: 'CYGWIN_NT-4.0|Windows NT 4.0|WinNT|Windows NT'
|
240
422
|
name: 'Windows'
|
241
423
|
version: 'NT'
|
242
|
-
|
243
|
-
|
424
|
+
|
244
425
|
- regex: 'CYGWIN_ME-4.90|Win 9x 4.90|Windows ME'
|
245
426
|
name: 'Windows'
|
246
427
|
version: 'ME'
|
247
|
-
|
248
|
-
|
428
|
+
|
249
429
|
- regex: 'CYGWIN_98-4.10|Win98|Windows 98'
|
250
430
|
name: 'Windows'
|
251
431
|
version: '98'
|
252
|
-
|
253
|
-
|
432
|
+
|
254
433
|
- regex: 'CYGWIN_95-4.0|Win32|Win95|Windows 95|Windows_95'
|
255
434
|
name: 'Windows'
|
256
435
|
version: '95'
|
257
|
-
|
258
|
-
|
436
|
+
|
259
437
|
- regex: 'Windows 3.1'
|
260
438
|
name: 'Windows'
|
261
439
|
version: '3.1'
|
262
|
-
|
263
|
-
|
264
|
-
- regex: 'Windows'
|
440
|
+
|
441
|
+
- regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS'
|
265
442
|
name: 'Windows'
|
266
443
|
version: ''
|
267
444
|
|
268
|
-
|
269
445
|
##########
|
270
446
|
# Haiku OS
|
271
447
|
##########
|
@@ -273,257 +449,472 @@
|
|
273
449
|
name: 'Haiku OS'
|
274
450
|
version: ''
|
275
451
|
|
276
|
-
|
277
452
|
##########
|
278
|
-
#
|
453
|
+
# tvOS (https://developer.apple.com/tvos/)
|
279
454
|
##########
|
280
|
-
- regex: '
|
281
|
-
name: '
|
282
|
-
version: '
|
283
|
-
|
284
|
-
- regex: 'CFNetwork/887.*(x86_64)'
|
285
|
-
name: 'Mac'
|
286
|
-
version: '10.13'
|
287
|
-
|
288
|
-
- regex: 'CFNetwork/887'
|
289
|
-
name: 'iOS'
|
290
|
-
version: '11.0'
|
291
|
-
|
292
|
-
- regex: 'CFNetwork/811.*(x86_64)'
|
293
|
-
name: 'Mac'
|
294
|
-
version: '10.12'
|
295
|
-
|
296
|
-
- regex: 'CFNetwork/811'
|
297
|
-
name: 'iOS'
|
298
|
-
version: '10.3'
|
299
|
-
|
300
|
-
- regex: 'CFNetwork/808\.3'
|
301
|
-
name: 'iOS'
|
302
|
-
version: '10.3'
|
455
|
+
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-5])[_\.]\d+(?:[_.]\d+)*)'
|
456
|
+
name: 'tvOS'
|
457
|
+
version: '$1'
|
303
458
|
|
304
|
-
- regex: '
|
305
|
-
name: '
|
306
|
-
version: '
|
459
|
+
- regex: 'iOS(?:; |/)((?:9|1[0-5]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
|
460
|
+
name: 'tvOS'
|
461
|
+
version: '$1'
|
307
462
|
|
308
|
-
|
309
|
-
|
310
|
-
|
463
|
+
##########
|
464
|
+
# watchOS (https://developer.apple.com/watchos/)
|
465
|
+
##########
|
466
|
+
- regex: '(?:Watch1,[12]/|Watch OS,|watchOS[ /])(\d+[\.\d]*)'
|
467
|
+
name: 'watchOS'
|
468
|
+
version: '$1'
|
311
469
|
|
312
|
-
|
313
|
-
|
314
|
-
|
470
|
+
##########
|
471
|
+
# iPadOS (https://www.apple.com/ipados/)
|
472
|
+
##########
|
473
|
+
- regex: 'FBMD/iPad;.*FBSV/ ?(1[345]).(\d+[\.\d]*);'
|
474
|
+
name: 'iPadOS'
|
475
|
+
version: '$1.$2'
|
315
476
|
|
316
|
-
- regex: '
|
317
|
-
name: '
|
318
|
-
version: '
|
477
|
+
- regex: 'iPad/(1[345]).(\d+[\.\d]*)'
|
478
|
+
name: 'iPadOS'
|
479
|
+
version: '$1.$2'
|
319
480
|
|
320
|
-
- regex: '
|
321
|
-
name: '
|
322
|
-
version: '
|
481
|
+
- regex: '^iPad(?:\d+[\,\d]*)/(1[345]).(\d+[\.\d]*)'
|
482
|
+
name: 'iPadOS'
|
483
|
+
version: '$1.$2'
|
323
484
|
|
324
|
-
- regex: '
|
325
|
-
name: '
|
326
|
-
version: '
|
485
|
+
- regex: 'iPad(?:; iOS|.+CPU OS) ((1[345])+(?:[_\.]\d+)*)'
|
486
|
+
name: 'iPadOS'
|
487
|
+
version: '$1'
|
327
488
|
|
328
|
-
- regex: '
|
329
|
-
name: '
|
330
|
-
version: '
|
489
|
+
- regex: 'iOS/(1[345]).(\d+[\.\d]*).+Apple/iPad'
|
490
|
+
name: 'iPadOS'
|
491
|
+
version: '$1.$2'
|
331
492
|
|
332
|
-
- regex: '
|
333
|
-
name: '
|
334
|
-
version: '
|
493
|
+
- regex: 'iPhone OS,(1[345]).(\d+[\.\d]*).+iPad'
|
494
|
+
name: 'iPadOS'
|
495
|
+
version: '$1.$2'
|
335
496
|
|
336
|
-
|
497
|
+
##########
|
498
|
+
# iOS
|
499
|
+
##########
|
500
|
+
- regex: 'iPad/([89]|1[012]).(\d+[\.\d]*)'
|
337
501
|
name: 'iOS'
|
338
|
-
version: '
|
502
|
+
version: '$1.$2'
|
339
503
|
|
340
|
-
- regex: '
|
504
|
+
- regex: '^(?:iPad|iPhone)(?:\d+[\,\d]*)[/_](\d+[\.\d]+)'
|
341
505
|
name: 'iOS'
|
342
|
-
version: '
|
506
|
+
version: '$1'
|
343
507
|
|
344
|
-
- regex: '
|
508
|
+
- regex: 'Pinterest for iOS/.*; (\d(?:[\d\.]*))[)]$'
|
345
509
|
name: 'iOS'
|
346
|
-
version: '
|
510
|
+
version: '$1'
|
347
511
|
|
348
|
-
- regex: '
|
512
|
+
- regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[\.\d]+)'
|
349
513
|
name: 'iOS'
|
350
|
-
version: '
|
514
|
+
version: '$1'
|
351
515
|
|
352
|
-
- regex: 'CFNetwork/
|
516
|
+
- regex: 'CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac))'
|
353
517
|
name: 'iOS'
|
354
|
-
|
355
|
-
|
356
|
-
|
518
|
+
versions:
|
519
|
+
- regex: 'Darwin/21.2.0'
|
520
|
+
version: '15.2'
|
521
|
+
- regex: 'Darwin/21.1.0'
|
522
|
+
version: '15.1'
|
523
|
+
- regex: 'Darwin/21.0.0'
|
524
|
+
version: '15.0'
|
525
|
+
- regex: 'Darwin/20.6.0'
|
526
|
+
version: '14.7'
|
527
|
+
- regex: 'Darwin/20.5.0'
|
528
|
+
version: '14.6'
|
529
|
+
- regex: 'Darwin/20.4.0'
|
530
|
+
version: '14.5'
|
531
|
+
- regex: 'Darwin/20.3.0'
|
532
|
+
version: '14.4'
|
533
|
+
- regex: 'Darwin/20.2.0'
|
534
|
+
version: '14.3'
|
535
|
+
- regex: 'Darwin/20.1.0'
|
536
|
+
version: '14.2'
|
537
|
+
- regex: 'Darwin/20.0.0'
|
538
|
+
version: '14.0'
|
539
|
+
- regex: 'Darwin/19.6.0'
|
540
|
+
version: '13.6'
|
541
|
+
- regex: 'Darwin/19.5.0'
|
542
|
+
version: '13.5'
|
543
|
+
- regex: 'Darwin/19.4.0'
|
544
|
+
version: '13.4'
|
545
|
+
- regex: 'Darwin/19.3.0'
|
546
|
+
version: '13.3.1'
|
547
|
+
- regex: 'Darwin/19.2.0'
|
548
|
+
version: '13.3'
|
549
|
+
- regex: 'Darwin/19.0.0'
|
550
|
+
version: '13.0'
|
551
|
+
- regex: 'Darwin/18.7.0'
|
552
|
+
version: '12.4'
|
553
|
+
- regex: 'Darwin/18.6.0'
|
554
|
+
version: '12.3'
|
555
|
+
- regex: 'Darwin/18.5.0'
|
556
|
+
version: '12.2'
|
557
|
+
- regex: 'Darwin/18.2.0'
|
558
|
+
version: '12.1'
|
559
|
+
- regex: 'Darwin/18.0.0'
|
560
|
+
version: '12.0'
|
561
|
+
- regex: 'Darwin/17.7.0'
|
562
|
+
version: '11.4.1'
|
563
|
+
- regex: 'Darwin/17.6.0'
|
564
|
+
version: '11.4'
|
565
|
+
- regex: 'Darwin/17.5.0'
|
566
|
+
version: '11.3'
|
567
|
+
- regex: 'Darwin/17.4.0'
|
568
|
+
version: '11.2.6'
|
569
|
+
- regex: 'Darwin/17.3.0'
|
570
|
+
version: '11.2'
|
571
|
+
- regex: 'CFNetwork/889'
|
572
|
+
version: '11.1'
|
573
|
+
- regex: 'CFNetwork/887'
|
574
|
+
version: '11.0'
|
575
|
+
- regex: 'CFNetwork/811'
|
576
|
+
version: '10.3'
|
577
|
+
- regex: 'CFNetwork/808\.3'
|
578
|
+
version: '10.3'
|
579
|
+
- regex: 'CFNetwork/808\.2'
|
580
|
+
version: '10.2'
|
581
|
+
- regex: 'CFNetwork/808\.1'
|
582
|
+
version: '10.1'
|
583
|
+
- regex: 'CFNetwork/808\.0'
|
584
|
+
version: '10.0'
|
585
|
+
- regex: 'CFNetwork/808'
|
586
|
+
version: '10'
|
587
|
+
- regex: 'CFNetwork/758\.5\.3'
|
588
|
+
version: '9.3.5'
|
589
|
+
- regex: 'CFNetwork/758\.4\.3'
|
590
|
+
version: '9.3.2'
|
591
|
+
- regex: 'CFNetwork/758\.3\.15'
|
592
|
+
version: '9.3'
|
593
|
+
- regex: 'CFNetwork/758\.2\.[78]'
|
594
|
+
version: '9.2'
|
595
|
+
- regex: 'CFNetwork/758\.1\.6'
|
596
|
+
version: '9.1'
|
597
|
+
- regex: 'CFNetwork/758\.0\.2'
|
598
|
+
version: '9.0'
|
599
|
+
- regex: 'CFNetwork/711\.5\.6'
|
600
|
+
version: '8.4.1'
|
601
|
+
- regex: 'CFNetwork/711\.4\.6'
|
602
|
+
version: '8.4'
|
603
|
+
- regex: 'CFNetwork/711\.3\.18'
|
604
|
+
version: '8.3'
|
605
|
+
- regex: 'CFNetwork/711\.2\.23'
|
606
|
+
version: '8.2'
|
607
|
+
- regex: 'CFNetwork/711\.1\.1[26]'
|
608
|
+
version: '8.1'
|
609
|
+
- regex: 'CFNetwork/711\.0\.6'
|
610
|
+
version: '8.0'
|
611
|
+
- regex: 'CFNetwork/672\.1'
|
612
|
+
version: '7.1'
|
613
|
+
- regex: 'CFNetwork/672\.0'
|
614
|
+
version: '7.0'
|
615
|
+
- regex: 'CFNetwork/609\.1'
|
616
|
+
version: '6.1'
|
617
|
+
- regex: 'CFNetwork/60[29]'
|
618
|
+
version: '6.0'
|
619
|
+
- regex: 'CFNetwork/548\.1'
|
620
|
+
version: '5.1'
|
621
|
+
- regex: 'CFNetwork/548\.0'
|
622
|
+
version: '5.0'
|
623
|
+
- regex: 'CFNetwork/485\.13'
|
624
|
+
version: '4.3'
|
625
|
+
- regex: 'CFNetwork/485\.12'
|
626
|
+
version: '4.2'
|
627
|
+
- regex: 'CFNetwork/485\.10'
|
628
|
+
version: '4.1'
|
629
|
+
- regex: 'CFNetwork/485\.2'
|
630
|
+
version: '4.0'
|
631
|
+
- regex: 'CFNetwork/467\.12'
|
632
|
+
version: '3.2'
|
633
|
+
- regex: 'CFNetwork/459'
|
634
|
+
version: '3.1'
|
635
|
+
|
636
|
+
- regex: '(?:iPhone|iPod_touch)/(\d+[\.\d]*) hw/'
|
357
637
|
name: 'iOS'
|
358
|
-
version: '
|
638
|
+
version: '$1'
|
359
639
|
|
360
|
-
- regex: '
|
640
|
+
- regex: 'iOS(\d+\.\d+\.\d+)'
|
361
641
|
name: 'iOS'
|
362
|
-
version: '
|
642
|
+
version: '$1'
|
363
643
|
|
364
|
-
- regex: '
|
644
|
+
- regex: 'iOS(\d+)\.(\d+)0'
|
365
645
|
name: 'iOS'
|
366
|
-
version: '
|
646
|
+
version: '$1.$2'
|
367
647
|
|
368
|
-
- regex: '
|
648
|
+
- regex: 'iPhone OS ([0-9]{1})([0-9]{1})([0-9]{1})'
|
369
649
|
name: 'iOS'
|
370
|
-
version: '
|
650
|
+
version: '$1.$2.$3'
|
371
651
|
|
372
|
-
- regex: '
|
652
|
+
- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
|
373
653
|
name: 'iOS'
|
374
|
-
version: '
|
654
|
+
version: '$1'
|
375
655
|
|
376
|
-
- regex: '
|
656
|
+
- regex: 'FBMD/iPhone;.*FBSV/ ?(\d+[\.\d]+);'
|
377
657
|
name: 'iOS'
|
378
|
-
version: '
|
658
|
+
version: '$1'
|
379
659
|
|
380
|
-
- regex: '
|
660
|
+
- regex: '(?:FBIOS|Messenger(?:Lite)?ForiOS).*FBSV/ ?(\d+[\.\d]*);'
|
381
661
|
name: 'iOS'
|
382
|
-
version: '
|
662
|
+
version: '$1'
|
383
663
|
|
384
|
-
- regex: '
|
664
|
+
- regex: 'iPhone OS,([\d\.]+).+(?:iPhone|iPod)'
|
385
665
|
name: 'iOS'
|
386
|
-
version: '
|
666
|
+
version: '$1'
|
387
667
|
|
388
|
-
- regex: '
|
668
|
+
- regex: 'iPad.+; (\d+[\.\d]+);'
|
389
669
|
name: 'iOS'
|
390
|
-
version: '
|
670
|
+
version: '$1'
|
391
671
|
|
392
|
-
- regex: '
|
672
|
+
- regex: 'iPhone.+; Version (\d+[\.\d]+)'
|
393
673
|
name: 'iOS'
|
394
|
-
version: '
|
674
|
+
version: '$1'
|
395
675
|
|
396
|
-
- regex: '
|
676
|
+
- regex: 'OS=iOS;OSVer=(\d+[\.\d]+);'
|
397
677
|
name: 'iOS'
|
398
|
-
version: '
|
678
|
+
version: '$1'
|
399
679
|
|
400
|
-
- regex: '
|
680
|
+
- regex: 'os=Apple-iOS.+osversion=(\d+[\.\d]+)/'
|
401
681
|
name: 'iOS'
|
402
|
-
version: '
|
682
|
+
version: '$1'
|
403
683
|
|
404
|
-
- regex: '
|
684
|
+
- regex: '(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
|
405
685
|
name: 'iOS'
|
406
|
-
version: '
|
686
|
+
version: '$1'
|
407
687
|
|
408
|
-
- regex: '
|
688
|
+
- regex: '(?:Podcasts/(?:[\d\.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|\(iOS\)|iOS; Opera|Overcast|Castro|Podcat|iCatcher|RSSRadio/|MobileSafari/)(?!.*x86_64)'
|
409
689
|
name: 'iOS'
|
410
|
-
version: '
|
690
|
+
version: ''
|
411
691
|
|
412
|
-
- regex: '(
|
692
|
+
- regex: 'iTunes-(AppleTV|iPod|iPad|iPhone)/(?:[\d\.]+)'
|
413
693
|
name: 'iOS'
|
414
|
-
version: '
|
694
|
+
version: ''
|
415
695
|
|
416
|
-
- regex: '
|
696
|
+
- regex: 'iOS/Version ([\d\.]+)'
|
417
697
|
name: 'iOS'
|
418
698
|
version: '$1'
|
419
699
|
|
420
|
-
- regex: '
|
700
|
+
- regex: 'Sonos/.+\(ICRU_'
|
421
701
|
name: 'iOS'
|
422
702
|
version: ''
|
423
703
|
|
424
|
-
- regex: '
|
704
|
+
- regex: 'CaptiveNetworkSupport|AirPlay'
|
425
705
|
name: 'iOS'
|
426
706
|
version: ''
|
427
707
|
|
428
|
-
|
429
708
|
##########
|
430
709
|
# Mac
|
431
710
|
##########
|
432
|
-
|
433
|
-
- regex: 'CFNetwork/807'
|
711
|
+
- regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac'
|
434
712
|
name: 'Mac'
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
713
|
+
versions:
|
714
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.2.0'
|
715
|
+
version: '12.1'
|
716
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.1.0'
|
717
|
+
version: '12.0.1'
|
718
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.0.0'
|
719
|
+
version: '12.0'
|
720
|
+
- regex: '(?:x86_64-apple-)?Darwin/?20.6.0'
|
721
|
+
version: '11.5'
|
722
|
+
- regex: '(?:x86_64-apple-)?Darwin/?20.5.0'
|
723
|
+
version: '11.4'
|
724
|
+
- regex: '(?:x86_64-apple-)?Darwin/?20.4.0'
|
725
|
+
version: '11.3'
|
726
|
+
- regex: '(?:x86_64-apple-)?Darwin/?20.3.0'
|
727
|
+
version: '11.2'
|
728
|
+
- regex: '(?:x86_64-apple-)?Darwin/?20.2.0.*'
|
729
|
+
version: '11.1'
|
730
|
+
- regex: '(?:x86_64-apple-)?Darwin/?20.[01].0'
|
731
|
+
version: '11.0'
|
732
|
+
- regex: '(?:x86_64-apple-)?Darwin/?19.6.0'
|
733
|
+
version: '10.15.6'
|
734
|
+
- regex: '(?:x86_64-apple-)?Darwin/?19.5.0'
|
735
|
+
version: '10.15.5'
|
736
|
+
- regex: '(?:x86_64-apple-)?Darwin/?19.4.0'
|
737
|
+
version: '10.15.4'
|
738
|
+
- regex: '(?:x86_64-apple-)?Darwin/?19.3.0'
|
739
|
+
version: '10.15.3'
|
740
|
+
- regex: '(?:x86_64-apple-)?Darwin/?19.2.0'
|
741
|
+
version: '10.15.2'
|
742
|
+
- regex: '(?:x86_64-apple-)?Darwin/?19.0.0'
|
743
|
+
version: '10.15'
|
744
|
+
- regex: '(?:x86_64-apple-)?Darwin/?18.7.0'
|
745
|
+
version: '10.14'
|
746
|
+
- regex: '(?:x86_64-apple-)?Darwin/?18.6.0'
|
747
|
+
version: '10.14.5'
|
748
|
+
- regex: '(?:x86_64-apple-)?Darwin/?18.5.0'
|
749
|
+
version: '10.14.4'
|
750
|
+
- regex: '(?:x86_64-apple-)?Darwin/?18.2.0'
|
751
|
+
version: '10.14.1'
|
752
|
+
- regex: '(?:x86_64-apple-)?Darwin/?18.0.0'
|
753
|
+
version: '10.14'
|
754
|
+
- regex: '(?:x86_64-apple-)?Darwin/?17.7.0'
|
755
|
+
version: '10.13.6'
|
756
|
+
- regex: '(?:x86_64-apple-)?Darwin/?17.6.0'
|
757
|
+
version: '10.13.5'
|
758
|
+
- regex: '(?:x86_64-apple-)?Darwin/?17.5.0'
|
759
|
+
version: '10.13.4'
|
760
|
+
- regex: '(?:x86_64-apple-)?Darwin/?17.4.0'
|
761
|
+
version: '10.13.3'
|
762
|
+
- regex: '(?:x86_64-apple-)?Darwin/?17.3.0'
|
763
|
+
version: '10.13.2'
|
764
|
+
- regex: '(?:x86_64-apple-)?Darwin/?17.2.0'
|
765
|
+
version: '10.13.1'
|
766
|
+
- regex: '(?:x86_64-apple-)?Darwin/?17.0.0'
|
767
|
+
version: '10.13'
|
768
|
+
- regex: '(?:x86_64-apple-)?Darwin/?16.7.0'
|
769
|
+
version: '10.12.6'
|
770
|
+
- regex: '(?:x86_64-apple-)?Darwin/?16.6.0'
|
771
|
+
version: '10.12.5'
|
772
|
+
- regex: '(?:x86_64-apple-)?Darwin/?16.5.0'
|
773
|
+
version: '10.12.4'
|
774
|
+
- regex: '(?:x86_64-apple-)?Darwin/?16.4.0'
|
775
|
+
version: '10.12.3'
|
776
|
+
- regex: '(?:x86_64-apple-)?Darwin/?16.3.0'
|
777
|
+
version: '10.12.2'
|
778
|
+
- regex: '(?:x86_64-apple-)?Darwin/?16.2.0'
|
779
|
+
version: '10.12.2'
|
780
|
+
- regex: '(?:x86_64-apple-)?Darwin/?16.1.0'
|
781
|
+
version: '10.12.1'
|
782
|
+
- regex: '(?:x86_64-apple-)?Darwin/?16.0.0'
|
783
|
+
version: '10.12'
|
784
|
+
- regex: '(?:x86_64-apple-)?Darwin/?15.6.0'
|
785
|
+
version: '10.11.6'
|
786
|
+
- regex: '(?:x86_64-apple-)?Darwin/?15.5.0'
|
787
|
+
version: '10.11.5'
|
788
|
+
- regex: '(?:x86_64-apple-)?Darwin/?15.4.0'
|
789
|
+
version: '10.11.4'
|
790
|
+
- regex: '(?:x86_64-apple-)?Darwin/?15.3.0'
|
791
|
+
version: '10.11.3'
|
792
|
+
- regex: '(?:x86_64-apple-)?Darwin/?15.2.0'
|
793
|
+
version: '10.11.2'
|
794
|
+
- regex: 'CFNetwork/760'
|
795
|
+
version: '10.11'
|
796
|
+
- regex: '(?:x86_64-apple-)?Darwin/?14.5.0'
|
797
|
+
version: '10.10.5'
|
798
|
+
- regex: '(?:x86_64-apple-)?Darwin/?14.4.0'
|
799
|
+
version: '10.10.4'
|
800
|
+
- regex: '(?:x86_64-apple-)?Darwin/?14.3.0'
|
801
|
+
version: '10.10.3'
|
802
|
+
- regex: '(?:x86_64-apple-)?Darwin/?14.1.0'
|
803
|
+
version: '10.10.2'
|
804
|
+
- regex: '(?:x86_64-apple-)?Darwin/?14.0.0'
|
805
|
+
version: '10.10'
|
806
|
+
- regex: '(?:x86_64-apple-)?Darwin/?13.4.0'
|
807
|
+
version: '10.9.5'
|
808
|
+
- regex: '(?:x86_64-apple-)?Darwin/?13.3.0'
|
809
|
+
version: '10.9.4'
|
810
|
+
- regex: '(?:x86_64-apple-)?Darwin/?13.2.0'
|
811
|
+
version: '10.9.3'
|
812
|
+
- regex: '(?:x86_64-apple-)?Darwin/?13.1.0'
|
813
|
+
version: '10.9.2'
|
814
|
+
- regex: '(?:x86_64-apple-)?Darwin/?13.0.0'
|
815
|
+
version: '10.9.0'
|
816
|
+
- regex: '(?:x86_64-apple-)?Darwin/?12.6.0'
|
817
|
+
version: '10.8.5'
|
818
|
+
- regex: '(?:x86_64-apple-)?Darwin/?12.5.0'
|
819
|
+
version: '10.8.5'
|
820
|
+
- regex: '(?:x86_64-apple-)?Darwin/?12.4.0'
|
821
|
+
version: '10.8.4'
|
822
|
+
- regex: '(?:x86_64-apple-)?Darwin/?12.3.0'
|
823
|
+
version: '10.8.3'
|
824
|
+
- regex: '(?:x86_64-apple-)?Darwin/?12.2.0'
|
825
|
+
version: '10.8.2'
|
826
|
+
- regex: '(?:x86_64-apple-)?Darwin/?12.1.0'
|
827
|
+
version: '10.8.1'
|
828
|
+
- regex: '(?:x86_64-apple-)?Darwin/?11.5.0'
|
829
|
+
version: '10.7.5'
|
830
|
+
- regex: '(?:x86_64-apple-)?Darwin/?11.4.2'
|
831
|
+
version: '10.7.5'
|
832
|
+
- regex: '(?:x86_64-apple-)?Darwin/?11.4.0'
|
833
|
+
version: '10.7.4'
|
834
|
+
- regex: '(?:x86_64-apple-)?Darwin/?11.3.0'
|
835
|
+
version: '10.7.3'
|
836
|
+
- regex: '(?:x86_64-apple-)?Darwin/?11.2.0'
|
837
|
+
version: '10.7.2'
|
838
|
+
- regex: '(?:x86_64-apple-)?Darwin/?11.1.0'
|
839
|
+
version: '10.7.1'
|
840
|
+
- regex: '(?:x86_64-apple-)?Darwin/?10.8.0'
|
841
|
+
version: '10.6.8'
|
842
|
+
- regex: '(?:x86_64-apple-)?Darwin/?10.7.[34]'
|
843
|
+
version: '10.6.7'
|
844
|
+
- regex: '(?:x86_64-apple-)?Darwin/?10.3.0'
|
845
|
+
version: '10.6.3'
|
846
|
+
- regex: '(?:x86_64-apple-)?Darwin/?10.0.0'
|
847
|
+
version: '10.6'
|
848
|
+
- regex: '(?:x86_64-apple-)?Darwin/?9.8.0'
|
849
|
+
version: '10.5.8'
|
850
|
+
- regex: '(?:x86_64-apple-)?Darwin/?9.7.1'
|
851
|
+
version: '10.5.7'
|
852
|
+
- regex: '(?:x86_64-apple-)?Darwin/?9.6.2'
|
853
|
+
version: '10.5.6'
|
854
|
+
- regex: '(?:x86_64-apple-)?Darwin/?9.5.[05]'
|
855
|
+
version: '10.5.5'
|
856
|
+
|
857
|
+
- regex: 'Macintosh;Mac OS X \((\d+[\.\d]+)\);'
|
450
858
|
name: 'Mac'
|
451
|
-
version: '
|
452
|
-
|
453
|
-
- regex: 'CFNetwork/520'
|
454
|
-
name: 'Mac'
|
455
|
-
version: '10.7'
|
859
|
+
version: '$1'
|
456
860
|
|
457
|
-
- regex: '
|
861
|
+
- regex: 'Mac[ +]OS[ +]?X(?:[ /,](?:Version )?(\d+(?:[_\.]\d+)+))?'
|
458
862
|
name: 'Mac'
|
459
|
-
version: '
|
863
|
+
version: '$1'
|
460
864
|
|
461
|
-
- regex: '
|
865
|
+
- regex: 'Mac (?:OS/)?(\d+(?:[_\.]\d+)+)'
|
462
866
|
name: 'Mac'
|
463
|
-
version: '
|
867
|
+
version: '$1'
|
464
868
|
|
465
|
-
- regex: '
|
869
|
+
- regex: '(?:macOS[/,]|Mac-)(\d+[\.\d]+)'
|
466
870
|
name: 'Mac'
|
467
|
-
version: '
|
871
|
+
version: '$1'
|
468
872
|
|
469
|
-
- regex: '
|
873
|
+
- regex: 'Macintosh; OS X (\d+[\.\d]+)'
|
470
874
|
name: 'Mac'
|
471
|
-
version: '
|
875
|
+
version: '$1'
|
472
876
|
|
473
|
-
- regex: '
|
877
|
+
- regex: 'Darwin|Macintosh|Mac_PowerPC|PPC|Mac PowerPC|iMac|MacBook|macOS|AppleExchangeWebServices|com.apple.trustd|Sonos/.+\(MDCR_'
|
474
878
|
name: 'Mac'
|
475
|
-
version: '
|
879
|
+
version: ''
|
476
880
|
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
name: 'Mac'
|
881
|
+
##########
|
882
|
+
# SeewoOS
|
883
|
+
##########
|
884
|
+
- regex: 'SeewoOS x86_64 (\d+[\.\d]+)'
|
885
|
+
name: 'SeewoOS'
|
483
886
|
version: '$1'
|
484
887
|
|
485
|
-
- regex: 'Darwin|Macintosh|Mac_PowerPC|PPC|Mac PowerPC|iMac|MacBook'
|
486
|
-
name: 'Mac'
|
487
|
-
version: ''
|
488
|
-
|
489
|
-
|
490
|
-
|
491
888
|
##########
|
492
889
|
# ChromeOS
|
493
890
|
##########
|
494
891
|
- regex: 'CrOS [a-z0-9_]+ .* Chrome/(\d+[\.\d]+)'
|
495
892
|
name: 'Chrome OS'
|
496
893
|
version: '$1'
|
497
|
-
|
498
|
-
|
499
|
-
|
894
|
+
|
500
895
|
##########
|
501
896
|
# BlackBerry
|
502
897
|
##########
|
503
898
|
- regex: '(?:BB10;.+Version|Black[Bb]erry[0-9a-z]+|Black[Bb]erry.+Version)/(\d+[\.\d]+)'
|
504
899
|
name: 'BlackBerry OS'
|
505
900
|
version: '$1'
|
506
|
-
|
507
|
-
|
901
|
+
|
508
902
|
- regex: 'RIM Tablet OS (\d+[\.\d]+)'
|
509
903
|
name: 'BlackBerry Tablet OS'
|
510
904
|
version: '$1'
|
511
|
-
|
512
|
-
|
905
|
+
|
513
906
|
- regex: 'RIM Tablet OS|QNX|Play[Bb]ook'
|
514
907
|
name: 'BlackBerry Tablet OS'
|
515
908
|
version: ''
|
516
|
-
|
517
|
-
|
909
|
+
|
518
910
|
- regex: 'BlackBerry'
|
519
911
|
name: 'BlackBerry OS'
|
520
912
|
version: ''
|
521
|
-
|
913
|
+
|
522
914
|
- regex: 'bPod'
|
523
915
|
name: 'BlackBerry OS'
|
524
916
|
version: ''
|
525
917
|
|
526
|
-
|
527
918
|
##########
|
528
919
|
# BeOS
|
529
920
|
##########
|
@@ -531,9 +922,6 @@
|
|
531
922
|
name: 'BeOS'
|
532
923
|
version: ''
|
533
924
|
|
534
|
-
|
535
|
-
|
536
|
-
|
537
925
|
##########
|
538
926
|
# Symbian
|
539
927
|
##########
|
@@ -541,48 +929,38 @@
|
|
541
929
|
name: 'Symbian^3'
|
542
930
|
version: 'Anna'
|
543
931
|
|
544
|
-
|
545
932
|
- regex: 'Symbian/3.+NokiaBrowser/7\.4'
|
546
933
|
name: 'Symbian^3'
|
547
934
|
version: 'Belle'
|
548
935
|
|
549
|
-
|
550
936
|
- regex: 'Symbian/3'
|
551
937
|
name: 'Symbian^3'
|
552
938
|
version: ''
|
553
939
|
|
554
|
-
|
555
940
|
- regex: '(?:Series ?60|SymbOS|S60)(?:[ /]?(\d+[\.\d]+|V\d+))?'
|
556
941
|
name: 'Symbian OS Series 60'
|
557
942
|
version: '$1'
|
558
943
|
|
559
|
-
|
560
944
|
- regex: 'Series40'
|
561
945
|
name: 'Symbian OS Series 40'
|
562
946
|
version: ''
|
563
947
|
|
564
|
-
|
565
948
|
- regex: 'SymbianOS/(\d+[\.\d]+)'
|
566
949
|
name: 'Symbian OS'
|
567
950
|
version: '$1'
|
568
|
-
|
569
|
-
|
951
|
+
|
570
952
|
- regex: 'MeeGo|WeTab'
|
571
953
|
name: 'MeeGo'
|
572
954
|
version: ''
|
573
|
-
|
574
|
-
|
955
|
+
|
575
956
|
- regex: 'Symbian(?: OS)?|SymbOS'
|
576
957
|
name: 'Symbian OS'
|
577
958
|
version: ''
|
578
|
-
|
579
|
-
|
959
|
+
|
580
960
|
- regex: 'Nokia'
|
581
961
|
name: 'Symbian'
|
582
962
|
version: ''
|
583
963
|
|
584
|
-
|
585
|
-
|
586
964
|
##########
|
587
965
|
# Firefox OS
|
588
966
|
##########
|
@@ -590,7 +968,6 @@
|
|
590
968
|
name: 'Firefox OS'
|
591
969
|
version: ''
|
592
970
|
|
593
|
-
|
594
971
|
##########
|
595
972
|
# RISC OS
|
596
973
|
##########
|
@@ -598,7 +975,6 @@
|
|
598
975
|
name: 'RISC OS'
|
599
976
|
version: '$1'
|
600
977
|
|
601
|
-
|
602
978
|
##########
|
603
979
|
# Inferno
|
604
980
|
##########
|
@@ -606,50 +982,41 @@
|
|
606
982
|
name: 'Inferno'
|
607
983
|
version: '$1'
|
608
984
|
|
609
|
-
|
610
985
|
##########
|
611
986
|
# Bada
|
612
987
|
##########
|
613
|
-
- regex: 'bada(?:[ /](\d+[\.\d]+))'
|
988
|
+
- regex: 'bada(?:[ /](\d+[\.\d]+))?'
|
614
989
|
name: 'Bada'
|
615
990
|
version: '$1'
|
616
|
-
|
617
|
-
|
618
|
-
- regex: 'bada'
|
619
|
-
name: 'Bada'
|
620
|
-
version: ''
|
621
991
|
|
992
|
+
##########
|
993
|
+
# REX
|
994
|
+
##########
|
995
|
+
- regex: 'REX; U;'
|
996
|
+
name: 'REX'
|
997
|
+
version: ''
|
622
998
|
|
623
999
|
##########
|
624
1000
|
# Brew
|
625
1001
|
##########
|
626
|
-
- regex: '(?:Brew MP
|
1002
|
+
- regex: '(?:Brew(?!-Applet)(?: MP)?|BMP)(?:[ /](\d+[\.\d]+))?'
|
627
1003
|
name: 'Brew'
|
628
1004
|
version: '$1'
|
629
1005
|
|
630
|
-
|
631
|
-
- regex: 'Brew MP|BREW|BMP'
|
632
|
-
name: 'Brew'
|
633
|
-
version: ''
|
634
|
-
|
635
|
-
|
636
1006
|
##########
|
637
1007
|
# Web TV
|
638
1008
|
##########
|
639
1009
|
- regex: 'GoogleTV(?:[ /](\d+[\.\d]+))?'
|
640
1010
|
name: 'Google TV'
|
641
1011
|
version: '$1'
|
642
|
-
|
643
|
-
|
1012
|
+
|
644
1013
|
- regex: 'AppleTV(?:/?(\d+[\.\d]+))?'
|
645
|
-
name: '
|
1014
|
+
name: 'tvOS'
|
646
1015
|
version: '$1'
|
647
|
-
|
648
|
-
|
1016
|
+
|
649
1017
|
- regex: 'WebTV/(\d+[\.\d]+)'
|
650
1018
|
name: 'WebTV'
|
651
1019
|
version: '$1'
|
652
|
-
|
653
1020
|
|
654
1021
|
##########
|
655
1022
|
# Remix OS
|
@@ -666,108 +1033,92 @@
|
|
666
1033
|
name: 'Remix OS'
|
667
1034
|
version: ''
|
668
1035
|
|
669
|
-
|
670
1036
|
##########
|
671
1037
|
# Unix
|
672
1038
|
##########
|
673
1039
|
- regex: '(?:SunOS|Solaris)(?:[/ ](\d+[\.\d]+))?'
|
674
1040
|
name: 'Solaris'
|
675
1041
|
version: '$1'
|
676
|
-
|
677
|
-
|
1042
|
+
|
678
1043
|
- regex: 'AIX(?:[/ ]?(\d+[\.\d]+))?'
|
679
1044
|
name: 'AIX'
|
680
1045
|
version: '$1'
|
681
|
-
|
682
|
-
|
1046
|
+
|
683
1047
|
- regex: 'HP-UX(?:[/ ]?(\d+[\.\d]+))?'
|
684
1048
|
name: 'HP-UX'
|
685
1049
|
version: '$1'
|
686
|
-
|
687
|
-
|
1050
|
+
|
688
1051
|
- regex: 'FreeBSD(?:[/ ]?(\d+[\.\d]+))?'
|
689
1052
|
name: 'FreeBSD'
|
690
1053
|
version: '$1'
|
691
|
-
|
692
|
-
|
1054
|
+
|
693
1055
|
- regex: 'NetBSD(?:[/ ]?(\d+[\.\d]+))?'
|
694
1056
|
name: 'NetBSD'
|
695
1057
|
version: '$1'
|
696
|
-
|
697
|
-
|
1058
|
+
|
698
1059
|
- regex: 'OpenBSD(?:[/ ]?(\d+[\.\d]+))?'
|
699
1060
|
name: 'OpenBSD'
|
700
1061
|
version: '$1'
|
701
|
-
|
702
|
-
|
1062
|
+
|
703
1063
|
- regex: 'DragonFly(?:[/ ]?(\d+[\.\d]+))?'
|
704
1064
|
name: 'DragonFly'
|
705
1065
|
version: '$1'
|
706
|
-
|
707
|
-
|
1066
|
+
|
708
1067
|
- regex: 'Syllable(?:[/ ]?(\d+[\.\d]+))?'
|
709
1068
|
name: 'Syllable'
|
710
1069
|
version: '$1'
|
711
|
-
|
712
|
-
|
1070
|
+
|
713
1071
|
- regex: 'IRIX(?:;64)?(?:[/ ]?(\d+[\.\d]+))'
|
714
1072
|
name: 'IRIX'
|
715
1073
|
version: '$1'
|
716
|
-
|
717
|
-
|
1074
|
+
|
718
1075
|
- regex: 'OSF1(?:[/ ]?v?(\d+[\.\d]+))?'
|
719
1076
|
name: 'OSF1'
|
720
1077
|
version: '$1'
|
721
|
-
|
722
|
-
|
723
|
-
|
1078
|
+
|
724
1079
|
##########
|
725
1080
|
# Gaming Console
|
726
1081
|
##########
|
727
|
-
- regex: 'Nintendo Wii'
|
1082
|
+
- regex: 'Nintendo (Wii|Switch)'
|
728
1083
|
name: 'Nintendo'
|
729
|
-
version: '
|
730
|
-
|
731
|
-
|
732
|
-
- regex: 'PlayStation ?([3|4])'
|
1084
|
+
version: '$1'
|
1085
|
+
|
1086
|
+
- regex: 'PlayStation ?([34])'
|
733
1087
|
name: 'PlayStation'
|
734
1088
|
version: '$1'
|
735
|
-
|
736
|
-
|
1089
|
+
|
737
1090
|
- regex: 'Xbox|KIN\.(?:One|Two)'
|
738
1091
|
name: 'Xbox'
|
739
1092
|
version: '360'
|
740
|
-
|
741
|
-
|
742
|
-
|
1093
|
+
|
743
1094
|
##########
|
744
1095
|
# Mobile Gaming Console
|
745
1096
|
##########
|
746
1097
|
- regex: 'Nitro|Nintendo ([3]?DS[i]?)'
|
747
1098
|
name: 'Nintendo Mobile'
|
748
1099
|
version: '$1'
|
749
|
-
|
750
|
-
|
1100
|
+
|
751
1101
|
- regex: 'PlayStation ((?:Portable|Vita))'
|
752
1102
|
name: 'PlayStation Portable'
|
753
1103
|
version: '$1'
|
754
|
-
|
755
|
-
|
756
|
-
|
1104
|
+
|
757
1105
|
##########
|
758
1106
|
# IBM
|
759
1107
|
##########
|
760
1108
|
- regex: 'OS/2'
|
761
1109
|
name: 'OS/2'
|
762
1110
|
version: ''
|
763
|
-
|
764
|
-
|
765
1111
|
|
766
1112
|
###########
|
767
1113
|
# Linux (Generic)
|
768
1114
|
###########
|
769
|
-
- regex: 'Linux(?:OS)?[^a-z]'
|
1115
|
+
- regex: 'Linux(?:OS)?[^a-z]|Cinnamon/(?:\d+[\.\d]+)'
|
770
1116
|
name: 'GNU/Linux'
|
771
1117
|
version: ''
|
772
1118
|
|
773
|
-
|
1119
|
+
##########
|
1120
|
+
# Java ME (Java Platform, Micro Edition)
|
1121
|
+
##########
|
1122
|
+
- regex: 'Java ME|(J2ME|Profile)/MIDP|MIDP-(?:\d+[\.\d]+)/CLDC|Configuration/CLDC|Java; U; MIDP|MMP/\d.\d'
|
1123
|
+
name: 'Java ME'
|
1124
|
+
version: ''
|