device_detector 1.0.7 → 1.1.1

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.
data/regexes/oss.yml CHANGED
@@ -5,6 +5,94 @@
5
5
  # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
6
  ###############
7
7
 
8
+ ##########
9
+ # RedOS (https://redos.red-soft.ru/)
10
+ ##########
11
+ - regex: 'RED OS; Linux'
12
+ name: 'RedOS'
13
+ version: ''
14
+
15
+ ##########
16
+ # RouterOS (https://help.mikrotik.com/docs/display/ROS/RouterOS)
17
+ ##########
18
+ - regex: 'Mikrotik/(\d).x'
19
+ name: 'RouterOS'
20
+ version: '$1'
21
+
22
+ ##########
23
+ # Sirin OS (https://sirinlabs.com/sirin-os/)
24
+ ##########
25
+ - regex: 'FINNEY U1'
26
+ name: 'Sirin OS'
27
+ version: ''
28
+
29
+ ##########
30
+ # Nova (https://www.nova.cu/)
31
+ ##########
32
+ - regex: 'Nova; Linux'
33
+ name: 'Nova'
34
+ version: ''
35
+
36
+ ##########
37
+ # Bliss OS (https://blissos.org/)
38
+ ##########
39
+ - regex: 'Android 10.+bliss_maple'
40
+ name: 'Bliss OS'
41
+ version: '12'
42
+
43
+ ##########
44
+ # TencentOS (https://github.com/Tencent/TencentOS-kernel)
45
+ ##########
46
+ - regex: 'Linux/(\d+[\.\d]*).+tlinux'
47
+ name: 'TencentOS'
48
+ version: '$1'
49
+
50
+ ##########
51
+ # Amazon Linux (https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)
52
+ ##########
53
+ - regex: '.+.amzn(\d).x86_64'
54
+ name: 'Amazon Linux'
55
+ version: '$1'
56
+
57
+ ##########
58
+ # COS (China Operating System - https://web.archive.org/web/20170825001023/http://www.china-cos.com/)
59
+ ##########
60
+ - regex: ' COS like Android'
61
+ name: 'China OS'
62
+ version: ''
63
+
64
+ ##########
65
+ # ClearOS Mobile (https://www.clearos.com/products/clearos-editions/clearos-mobile)
66
+ ##########
67
+ - regex: 'Android (\d+[\.\d]*); ClearPHONE'
68
+ name: 'ClearOS Mobile'
69
+ version: '$1'
70
+
71
+ ##########
72
+ # Plasma Mobile (https://plasma-mobile.org/)
73
+ ##########
74
+ - regex: 'Plasma Mobile'
75
+ name: 'Plasma Mobile'
76
+ version: ''
77
+
78
+ ##########
79
+ # KreaTV
80
+ ##########
81
+ - regex: 'KreaTV/0.0.0.0'
82
+ name: 'KreaTV'
83
+ version: ''
84
+
85
+ - regex: 'KreaTV/(\d+[\.\d]+)'
86
+ name: 'KreaTV'
87
+ version: '$1'
88
+
89
+ ##########
90
+ # Opera TV (https://blogs.opera.com/news/2016/01/ces-2016-meet-opera-tv/)
91
+ ##########
92
+ - regex: 'Linux (?:[^;]+); Opera TV(?: Store)?/|^Opera/\d+\.\d+ \(Linux mips'
93
+ name: 'Opera TV'
94
+ version: ''
95
+
8
96
  ##########
9
97
  # GridOS (https://web.archive.org/web/20111123141630/http://fusiongarage.com/grid-os/about)
10
98
  ##########
@@ -99,6 +187,9 @@
99
187
  - regex: 'HarmonyOS(?:[/ ](\d+[\.\d]+))?'
100
188
  name: 'HarmonyOS'
101
189
  version: '$1'
190
+ - regex: 'Hmos/1'
191
+ name: 'HarmonyOS'
192
+ version: '1.0.0'
102
193
 
103
194
  - regex: 'RazoDroiD(?: v(\d+[\.\d]*))?'
104
195
  name: 'RazoDroiD'
@@ -132,6 +223,109 @@
132
223
  name: 'FydeOS'
133
224
  version: ''
134
225
 
226
+ ##########
227
+ # Revenge OS
228
+ ##########
229
+ - regex: 'revengeos_x2'
230
+ name: 'Revenge OS'
231
+ version: '2'
232
+
233
+ ##########
234
+ # Lineage OS
235
+ ##########
236
+ - regex: 'lineage_\w+'
237
+ name: 'Lineage OS'
238
+ version: ''
239
+
240
+ #########
241
+ # Resurrection Remix OS (https://resurrectionremix.com/)
242
+ ##########
243
+ - regex: 'Android 8(?:[\d.]*);(?: [\w-]+;)? rr_fortuna3g'
244
+ name: 'Resurrection Remix OS'
245
+ version: '6'
246
+
247
+ ##########
248
+ # Remix OS
249
+ ##########
250
+ - regex: 'RemixOS|Remix (?:Pro|Mini)'
251
+ name: 'Remix OS'
252
+ versions:
253
+ - regex: 'RemixOS 5'
254
+ version: '1'
255
+ - regex: 'RemixOS 6|Remix Mini'
256
+ version: '2'
257
+ - regex: 'Remix Pro'
258
+ version: '3'
259
+
260
+ ##########
261
+ # FreeBSD
262
+ ##########
263
+ - regex: 'FreeBSD.+Android'
264
+ name: 'FreeBSD'
265
+ version: ''
266
+
267
+ ##########
268
+ # Android TV (https://android.com/tv/)
269
+ ##########
270
+ - regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
271
+ name: 'Android TV'
272
+ version: '$1'
273
+
274
+ - regex: 'Android[; ](\d+[\.\d]*).+(?:(?:Android|AT&T) TV|AOSP on r33a0)'
275
+ name: 'Android TV'
276
+ version: '$1'
277
+
278
+ - regex: 'Windows.+Andr0id TV|.+K_?Android_?TV_'
279
+ name: 'Android TV'
280
+ version: ''
281
+
282
+ ##########
283
+ # Android SDK Level Api
284
+ ##########
285
+ - regex: '(?:Android API \d+|\d+/tclwebkit(?:\d+[\.\d]*))'
286
+ name: 'Android'
287
+ versions:
288
+ - regex: '(?:Android API 34|34/tclwebkit)'
289
+ version: '14'
290
+ - regex: '(?:Android API 33|33/tclwebkit)'
291
+ version: '13'
292
+ - regex: '(?:Android API 32|32/tclwebkit)'
293
+ version: '12.1'
294
+ - regex: '(?:Android API 31|31/tclwebkit)'
295
+ version: '12'
296
+ - regex: '(?:Android API 30|30/tclwebkit)'
297
+ version: '11'
298
+ - regex: '(?:Android API 29|29/tclwebkit)'
299
+ version: '10'
300
+ - regex: '(?:Android API 28|28/tclwebkit)'
301
+ version: '9'
302
+ - regex: '(?:Android API 27|27/tclwebkit)'
303
+ version: '8.1'
304
+ - regex: '(?:Android API 26|26/tclwebkit)'
305
+ version: '8'
306
+ - regex: '(?:Android API 25|25/tclwebkit)'
307
+ version: '7.1'
308
+ - regex: '(?:Android API 24|24/tclwebkit)'
309
+ version: '7'
310
+ - regex: '(?:Android API 23|23/tclwebkit)'
311
+ version: '6'
312
+ - regex: '(?:Android API 22|22/tclwebkit)'
313
+ version: '5.1'
314
+ - regex: '21/tclwebkit'
315
+ version: '5'
316
+ - regex: '(?:20|19)/tclwebkit'
317
+ version: '4.4'
318
+ - regex: '18/tclwebkit'
319
+ version: '4.3'
320
+ - regex: '17/tclwebkit'
321
+ version: '4.2'
322
+ - regex: '16/tclwebkit'
323
+ version: '4.2'
324
+ - regex: '15/tclwebkit'
325
+ version: '4.0.3'
326
+ - regex: '15/tclwebkit'
327
+ version: '4.0.1'
328
+
135
329
  ##########
136
330
  # Android
137
331
  ##########
@@ -139,11 +333,11 @@
139
333
  name: 'Android'
140
334
  version: '6'
141
335
 
142
- - regex: '(?:Podbean|Podimo)(?:.*)/Android'
336
+ - regex: '(?:Podbean|Podimo)(?:.*)/Android|Rutube(?:TV)?BlackAndroid'
143
337
  name: 'Android'
144
338
  version: ''
145
339
 
146
- - regex: 'Android OS/(\d+[\.\d]*)'
340
+ - regex: '(?:Android OS|OMDroid)[ /](\d+[\.\d]*)'
147
341
  name: 'Android'
148
342
  version: '$1'
149
343
 
@@ -159,7 +353,7 @@
159
353
  name: 'Android'
160
354
  version: '$1'
161
355
 
162
- - regex: '(?:(?:Orca-)?Android|Adr)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
356
+ - regex: '(?:(?:Orca-)?(?<!like )Android|Adr|AOSP)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
163
357
  name: 'Android'
164
358
  version: '$1'
165
359
 
@@ -175,7 +369,7 @@
175
369
  name: 'Android'
176
370
  version: '$1'
177
371
 
178
- - regex: ' Adr |Android|Silk-Accelerated=[a-z]{4,5}'
372
+ - regex: ' Adr |DDG-Android|(?<!like )Android|Silk-Accelerated=[a-z]{4,5}'
179
373
  name: 'Android'
180
374
  version: ''
181
375
 
@@ -183,14 +377,10 @@
183
377
  name: 'Android'
184
378
  version: '$1'
185
379
 
186
- - regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe|.+K_?Android_?TV_|Sonos/.+\(ACR_'
380
+ - regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe|Sonos/.+\(ACR_|Linux x86_64; Quest'
187
381
  name: 'Android'
188
382
  version: ''
189
383
 
190
- - regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
191
- name: 'Android'
192
- version: '$1'
193
-
194
384
  # Inverted Android
195
385
  - regex: 'Linux; diordnA[; ](\d+[\.\d]*)'
196
386
  name: 'Android'
@@ -245,6 +435,46 @@
245
435
  ##########
246
436
  # Linux
247
437
  ##########
438
+ # Linspire (https://www.linspirelinux.com/)
439
+ - regex: 'Linspire'
440
+ name: 'Linspire'
441
+ version: ''
442
+
443
+ # LindowsOS (https://web.archive.org/web/20040304161245/http://www.lindows.com/)
444
+ - regex: 'LindowsOS'
445
+ name: 'LindowsOS'
446
+ version: ''
447
+
448
+ # Zenwalk (http://www.zenwalk.org/)
449
+ - regex: 'Zenwalk GNU Linux'
450
+ name: 'Zenwalk'
451
+ version: ''
452
+
453
+ # Kanotix (http://www.kanotix.com/)
454
+ - regex: 'Linux.+kanotix'
455
+ name: 'Kanotix'
456
+ version: ''
457
+
458
+ # moonOS (https://www.moonos.org/)
459
+ - regex: 'moonOS/(\d+.[\d.]+)'
460
+ name: 'moonOS'
461
+ version: '$1'
462
+
463
+ # Foresight Linux (https://www.foresightlinux.org/)
464
+ - regex: 'Foresight Linux'
465
+ name: 'Foresight Linux'
466
+ version: ''
467
+
468
+ # Pardus (https://www.pardus.org.tr/)
469
+ - regex: 'Pardus/(\d+.[\d.]+)'
470
+ name: 'Pardus'
471
+ version: '$1'
472
+
473
+ # Pure OS (https://pureos.net/)
474
+ - regex: 'Librem 5'
475
+ name: 'PureOS'
476
+ version: ''
477
+
248
478
  # OpenWrt (https://openwrt.org/)
249
479
  - regex: 'uclient-fetch'
250
480
  name: 'OpenWrt'
@@ -255,7 +485,7 @@
255
485
  name: 'Roku OS'
256
486
  version: '$1'
257
487
 
258
- - regex: 'Roku(?:OS)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)'
488
+ - regex: 'Roku(?:OS|4640X)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)?'
259
489
  name: 'Roku OS'
260
490
  version: '$1'
261
491
 
@@ -308,6 +538,34 @@
308
538
  name: 'VectorLinux'
309
539
  version: '$1'
310
540
 
541
+ - regex: 'CentOS Stream (\d)'
542
+ name: 'CentOS Stream'
543
+ version: '$1'
544
+
545
+ - regex: '.+.el(\d+(?:[_\.]\d+)*).(?:centos|x86_64)'
546
+ name: 'CentOS'
547
+ version: '$1'
548
+
549
+ - regex: 'CentOS Linux (\d)'
550
+ name: 'CentOS'
551
+ version: '$1'
552
+
553
+ - regex: 'Fedora/.+.fc(\d+)'
554
+ name: 'Fedora'
555
+ version: '$1'
556
+
557
+ - regex: 'Mandriva(?: Linux)?/.+mdv(\d+[\.\d]+)'
558
+ name: 'Mandriva'
559
+ version: '$1'
560
+
561
+ - regex: 'Linux Mint/(\d)'
562
+ name: 'Mint'
563
+ version: '$1'
564
+
565
+ - regex: 'Zorin OS (\d+)'
566
+ name: 'ZorinOS'
567
+ version: '$1'
568
+
311
569
  - regex: 'Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\d+[\.\d]+)'
312
570
  name: '$1'
313
571
  version: '$2'
@@ -320,12 +578,14 @@
320
578
  name: '$1'
321
579
  version: '$2'
322
580
 
581
+ - regex: '.+redhat-linux-gnu'
582
+ name: 'Red Hat'
583
+ version: ''
584
+
323
585
  - regex: 'OS ROSA; Linux'
324
586
  name: 'Rosa'
325
587
  version: ''
326
588
 
327
- # generic linux match -> end of file
328
-
329
589
  ##########
330
590
  # webOS
331
591
  ##########
@@ -335,12 +595,16 @@
335
595
  versions:
336
596
  - regex: 'WEBOS(\d+[\.\d]+)'
337
597
  version: '$1'
338
- - regex: 'Web0S; Linux/SmartTV.+Chrome/68'
598
+ - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/79'
599
+ version: '6'
600
+ - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/68'
339
601
  version: '5'
340
- - regex: 'Web0S; Linux/SmartTV.+Chrome/53'
602
+ - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/53'
341
603
  version: '4'
342
- - regex: 'Web0S; Linux/SmartTV.+Chrome/38'
604
+ - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/38'
343
605
  version: '3'
606
+ - regex: 'WEBOS1'
607
+ version: '1'
344
608
  - regex: 'Web0S; Linux/SmartTV.+Safari/538'
345
609
  version: '2'
346
610
  - regex: 'Web0S; Linux/SmartTV.+Safari/537'
@@ -358,7 +622,6 @@
358
622
  name: 'MorphOS'
359
623
  version: '$1'
360
624
 
361
-
362
625
  ##########
363
626
  # Windows
364
627
  ##########
@@ -378,7 +641,7 @@
378
641
  name: 'Windows'
379
642
  version: ''
380
643
 
381
- - regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS))/(\d+\.\d+)'
644
+ - regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS)|WINDOWS_64)/(\d+\.\d+)'
382
645
  name: 'Windows'
383
646
  version: '$1'
384
647
 
@@ -438,10 +701,14 @@
438
701
  name: 'Windows'
439
702
  version: '3.1'
440
703
 
441
- - regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS'
704
+ - regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS|ms-office; MSOffice'
442
705
  name: 'Windows'
443
706
  version: ''
444
707
 
708
+ - regex: 'OS/Microsoft_Windows_NT_(\d+\.\d+)'
709
+ name: 'Windows'
710
+ version: '$1'
711
+
445
712
  ##########
446
713
  # Haiku OS
447
714
  ##########
@@ -452,11 +719,15 @@
452
719
  ##########
453
720
  # tvOS (https://developer.apple.com/tvos/)
454
721
  ##########
455
- - regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-5])[_\.]\d+(?:[_.]\d+)*)'
722
+ - regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-7])[_\.]\d+(?:[_.]\d+)*)'
723
+ name: 'tvOS'
724
+ version: '$1'
725
+
726
+ - regex: 'iOS(?:; |/)((?:9|1[0-7]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
456
727
  name: 'tvOS'
457
728
  version: '$1'
458
729
 
459
- - regex: 'iOS(?:; |/)((?:9|1[0-5]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
730
+ - regex: 'tvOS((?:9|1[0-7]).\d+(?:[_\.]\d+)*);'
460
731
  name: 'tvOS'
461
732
  version: '$1'
462
733
 
@@ -466,31 +737,34 @@
466
737
  - regex: '(?:Watch1,[12]/|Watch OS,|watchOS[ /])(\d+[\.\d]*)'
467
738
  name: 'watchOS'
468
739
  version: '$1'
740
+ - regex: 'Apple Watch(?!;)'
741
+ name: 'watchOS'
742
+ version: ''
469
743
 
470
744
  ##########
471
745
  # iPadOS (https://www.apple.com/ipados/)
472
746
  ##########
473
- - regex: 'FBMD/iPad;.*FBSV/ ?(1[345]).(\d+[\.\d]*);'
747
+ - regex: 'FBMD/iPad;.*FBSV/ ?(1[3-6]).(\d+[\.\d]*);'
474
748
  name: 'iPadOS'
475
749
  version: '$1.$2'
476
750
 
477
- - regex: 'iPad/(1[345]).(\d+[\.\d]*)'
751
+ - regex: 'iPad(?:OS)?/(1[3-6]).(\d+[\.\d]*)'
478
752
  name: 'iPadOS'
479
753
  version: '$1.$2'
480
754
 
481
- - regex: '^iPad(?:\d+[\,\d]*)/(1[345]).(\d+[\.\d]*)'
755
+ - regex: '^iPad(?:\d+[\,\d]*)/(1[3-6]).(\d+[\.\d]*)'
482
756
  name: 'iPadOS'
483
757
  version: '$1.$2'
484
758
 
485
- - regex: 'iPad(?:; iOS|.+CPU OS) ((1[345])+(?:[_\.]\d+)*)'
759
+ - regex: 'iPad(?:; (?:iOS|iPadOS|iPhone OS)|.+CPU OS) ((1[3-6])+(?:[_\.]\d+)*)'
486
760
  name: 'iPadOS'
487
761
  version: '$1'
488
762
 
489
- - regex: 'iOS/(1[345]).(\d+[\.\d]*).+Apple/iPad'
763
+ - regex: 'iOS/(1[3-6]).(\d+[\.\d]*).+Apple/iPad'
490
764
  name: 'iPadOS'
491
765
  version: '$1.$2'
492
766
 
493
- - regex: 'iPhone OS,(1[345]).(\d+[\.\d]*).+iPad'
767
+ - regex: 'iPhone OS,(1[3-6]).(\d+[\.\d]*).+iPad'
494
768
  name: 'iPadOS'
495
769
  version: '$1.$2'
496
770
 
@@ -509,13 +783,41 @@
509
783
  name: 'iOS'
510
784
  version: '$1'
511
785
 
786
+ - regex: 'iOS (\d+[\.\d]+)\)'
787
+ name: 'iOS'
788
+ version: '$1'
789
+
512
790
  - regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[\.\d]+)'
513
791
  name: 'iOS'
514
792
  version: '$1'
515
793
 
516
- - regex: 'CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac))'
794
+ - regex: '^(?!com.apple.Safari.SearchHelper|Safari).*CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))'
517
795
  name: 'iOS'
518
796
  versions:
797
+ - regex: 'Darwin/23.0.0'
798
+ version: '17.0'
799
+ - regex: 'Darwin/22.6.0'
800
+ version: '16.6'
801
+ - regex: 'Darwin/22.5.0'
802
+ version: '16.5'
803
+ - regex: 'Darwin/22.4.0'
804
+ version: '16.4'
805
+ - regex: 'Darwin/22.3.0'
806
+ version: '16.3'
807
+ - regex: 'Darwin/22.2.0'
808
+ version: '16.2'
809
+ - regex: 'Darwin/22.1.0'
810
+ version: '16.1'
811
+ - regex: 'Darwin/22.0.0'
812
+ version: '16.0'
813
+ - regex: 'Darwin/21.6.0'
814
+ version: '15.6'
815
+ - regex: 'Darwin/21.5.0'
816
+ version: '15.5'
817
+ - regex: 'Darwin/21.4.0'
818
+ version: '15.4'
819
+ - regex: 'Darwin/21.3.0'
820
+ version: '15.3'
519
821
  - regex: 'Darwin/21.2.0'
520
822
  version: '15.2'
521
823
  - regex: 'Darwin/21.1.0'
@@ -649,7 +951,7 @@
649
951
  name: 'iOS'
650
952
  version: '$1.$2.$3'
651
953
 
652
- - regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
954
+ - regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
653
955
  name: 'iOS'
654
956
  version: '$1'
655
957
 
@@ -681,7 +983,11 @@
681
983
  name: 'iOS'
682
984
  version: '$1'
683
985
 
684
- - regex: '(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
986
+ - regex: '(?:Apple-)?(?<!like )(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
987
+ name: 'iOS'
988
+ version: '$1'
989
+
990
+ - regex: 'dv\(iPh.+ov\((\d+(?:[_\.]\d+)*)\);'
685
991
  name: 'iOS'
686
992
  version: '$1'
687
993
 
@@ -708,9 +1014,33 @@
708
1014
  ##########
709
1015
  # Mac
710
1016
  ##########
711
- - regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac'
1017
+ - regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac|com.apple.Safari.SearchHelper|^Safari'
712
1018
  name: 'Mac'
713
1019
  versions:
1020
+ - regex: '(?:x86_64-apple-)?Darwin/?23.0.0'
1021
+ version: '14.0'
1022
+ - regex: '(?:x86_64-apple-)?Darwin/?22.6.0'
1023
+ version: '13.5'
1024
+ - regex: '(?:x86_64-apple-)?Darwin/?22.5.0'
1025
+ version: '13.4'
1026
+ - regex: '(?:x86_64-apple-)?Darwin/?22.4.0'
1027
+ version: '13.3'
1028
+ - regex: '(?:x86_64-apple-)?Darwin/?22.3.0'
1029
+ version: '13.2'
1030
+ - regex: '(?:x86_64-apple-)?Darwin/?22.2.0'
1031
+ version: '13.1'
1032
+ - regex: '(?:x86_64-apple-)?Darwin/?22.1.0'
1033
+ version: '13.0.1'
1034
+ - regex: '(?:x86_64-apple-)?Darwin/?22.0.0'
1035
+ version: '13.0'
1036
+ - regex: '(?:x86_64-apple-)?Darwin/?21.6.0'
1037
+ version: '12.5'
1038
+ - regex: '(?:x86_64-apple-)?Darwin/?21.5.0'
1039
+ version: '12.4'
1040
+ - regex: '(?:x86_64-apple-)?Darwin/?21.4.0'
1041
+ version: '12.3'
1042
+ - regex: '(?:x86_64-apple-)?Darwin/?21.3.0'
1043
+ version: '12.2'
714
1044
  - regex: '(?:x86_64-apple-)?Darwin/?21.2.0'
715
1045
  version: '12.1'
716
1046
  - regex: '(?:x86_64-apple-)?Darwin/?21.1.0'
@@ -866,7 +1196,7 @@
866
1196
  name: 'Mac'
867
1197
  version: '$1'
868
1198
 
869
- - regex: '(?:macOS[/,]|Mac-)(\d+[\.\d]+)'
1199
+ - regex: '(?:macOS[ /,]|Mac-)(\d+[\.\d]+)'
870
1200
  name: 'Mac'
871
1201
  version: '$1'
872
1202
 
@@ -888,10 +1218,17 @@
888
1218
  ##########
889
1219
  # ChromeOS
890
1220
  ##########
891
- - regex: 'CrOS [a-z0-9_]+ .* Chrome/(\d+[\.\d]+)'
1221
+ - regex: 'CrOS [a-z0-9_]+ (\d+[\.\d]+)'
892
1222
  name: 'Chrome OS'
893
1223
  version: '$1'
894
1224
 
1225
+ ##########
1226
+ # Fuchsia
1227
+ ##########
1228
+ - regex: 'Fuchsia'
1229
+ name: 'Fuchsia'
1230
+ version: ''
1231
+
895
1232
  ##########
896
1233
  # BlackBerry
897
1234
  ##########
@@ -918,9 +1255,9 @@
918
1255
  ##########
919
1256
  # BeOS
920
1257
  ##########
921
- - regex: 'BeOS'
1258
+ - regex: 'BeOS[ +]?(\d[.\d]*)?'
922
1259
  name: 'BeOS'
923
- version: ''
1260
+ version: '$1'
924
1261
 
925
1262
  ##########
926
1263
  # Symbian
@@ -1018,20 +1355,6 @@
1018
1355
  name: 'WebTV'
1019
1356
  version: '$1'
1020
1357
 
1021
- ##########
1022
- # Remix OS
1023
- ##########
1024
- - regex: 'RemixOS 5.1.1'
1025
- name: 'Remix OS'
1026
- version: '1'
1027
-
1028
- - regex: 'RemixOS 6.0'
1029
- name: 'Remix OS'
1030
- version: '2'
1031
-
1032
- - regex: 'RemixOS'
1033
- name: 'Remix OS'
1034
- version: ''
1035
1358
 
1036
1359
  ##########
1037
1360
  # Unix
@@ -1083,10 +1406,14 @@
1083
1406
  name: 'Nintendo'
1084
1407
  version: '$1'
1085
1408
 
1086
- - regex: 'PlayStation ?([34])'
1409
+ - regex: 'PlayStation.+; Linux (\d+[\.\d]+)'
1087
1410
  name: 'PlayStation'
1088
1411
  version: '$1'
1089
1412
 
1413
+ - regex: 'PlayStation ?(\d)(?:[/ ](?:Pro )?(\d+[\.\d]+))?'
1414
+ name: 'PlayStation'
1415
+ version: '$1.$2'
1416
+
1090
1417
  - regex: 'Xbox|KIN\.(?:One|Two)'
1091
1418
  name: 'Xbox'
1092
1419
  version: '360'
@@ -1112,7 +1439,11 @@
1112
1439
  ###########
1113
1440
  # Linux (Generic)
1114
1441
  ###########
1115
- - regex: 'Linux(?:OS)?[^a-z]|Cinnamon/(?:\d+[\.\d]+)'
1442
+ - regex: 'Linux/(\d+[\.\d]+)'
1443
+ name: 'GNU/Linux'
1444
+ version: '$1'
1445
+
1446
+ - regex: 'Linux(?:OS)?[^a-z]|Cinnamon/(?:\d+[\.\d]+)|.+(?:pc|unknown)-linux-gnu'
1116
1447
  name: 'GNU/Linux'
1117
1448
  version: ''
1118
1449