device_detector 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +5 -5
  4. data/lib/device_detector/device.rb +82 -3
  5. data/lib/device_detector/os.rb +4 -2
  6. data/lib/device_detector/parser.rb +1 -1
  7. data/lib/device_detector/version.rb +1 -1
  8. data/lib/device_detector/version_extractor.rb +20 -1
  9. data/regexes/bots.yml +49 -6
  10. data/regexes/client/browsers.yml +170 -16
  11. data/regexes/client/libraries.yml +20 -1
  12. data/regexes/client/mediaplayers.yml +2 -2
  13. data/regexes/client/mobile_apps.yml +447 -13
  14. data/regexes/client/pim.yml +16 -1
  15. data/regexes/device/consoles.yml +7 -1
  16. data/regexes/device/mobiles.yml +3169 -912
  17. data/regexes/device/portable_media_player.yml +16 -6
  18. data/regexes/oss.yml +380 -467
  19. metadata +3 -164
  20. data/.gitignore +0 -14
  21. data/.rubocop.yml +0 -49
  22. data/.ruby-version +0 -1
  23. data/.travis.yml +0 -14
  24. data/Gemfile +0 -8
  25. data/Rakefile +0 -86
  26. data/device_detector.gemspec +0 -27
  27. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  28. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  29. data/spec/device_detector/concrete_user_agent_spec.rb +0 -123
  30. data/spec/device_detector/detector_fixtures_spec.rb +0 -99
  31. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  32. data/spec/device_detector/device_spec.rb +0 -147
  33. data/spec/device_detector/memory_cache_spec.rb +0 -148
  34. data/spec/device_detector/model_extractor_spec.rb +0 -63
  35. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  36. data/spec/device_detector/version_extractor_spec.rb +0 -79
  37. data/spec/device_detector_spec.rb +0 -189
  38. data/spec/fixtures/client/browser.yml +0 -3935
  39. data/spec/fixtures/client/feed_reader.yml +0 -187
  40. data/spec/fixtures/client/library.yml +0 -253
  41. data/spec/fixtures/client/mediaplayer.yml +0 -193
  42. data/spec/fixtures/client/mobile_app.yml +0 -703
  43. data/spec/fixtures/client/pim.yml +0 -175
  44. data/spec/fixtures/detector/bots.yml +0 -4434
  45. data/spec/fixtures/detector/camera.yml +0 -127
  46. data/spec/fixtures/detector/car_browser.yml +0 -217
  47. data/spec/fixtures/detector/console.yml +0 -343
  48. data/spec/fixtures/detector/desktop.yml +0 -7580
  49. data/spec/fixtures/detector/feature_phone.yml +0 -1597
  50. data/spec/fixtures/detector/feed_reader.yml +0 -524
  51. data/spec/fixtures/detector/mediaplayer.yml +0 -306
  52. data/spec/fixtures/detector/mobile_apps.yml +0 -1233
  53. data/spec/fixtures/detector/peripheral.yml +0 -271
  54. data/spec/fixtures/detector/phablet.yml +0 -7366
  55. data/spec/fixtures/detector/portable_media_player.yml +0 -527
  56. data/spec/fixtures/detector/smart_display.yml +0 -235
  57. data/spec/fixtures/detector/smart_speaker.yml +0 -60
  58. data/spec/fixtures/detector/smartphone-1.yml +0 -9622
  59. data/spec/fixtures/detector/smartphone-10.yml +0 -8981
  60. data/spec/fixtures/detector/smartphone-11.yml +0 -8938
  61. data/spec/fixtures/detector/smartphone-12.yml +0 -8989
  62. data/spec/fixtures/detector/smartphone-13.yml +0 -9412
  63. data/spec/fixtures/detector/smartphone-14.yml +0 -9477
  64. data/spec/fixtures/detector/smartphone-15.yml +0 -9281
  65. data/spec/fixtures/detector/smartphone-16.yml +0 -9678
  66. data/spec/fixtures/detector/smartphone-17.yml +0 -9965
  67. data/spec/fixtures/detector/smartphone-18.yml +0 -9806
  68. data/spec/fixtures/detector/smartphone-19.yml +0 -9965
  69. data/spec/fixtures/detector/smartphone-2.yml +0 -12242
  70. data/spec/fixtures/detector/smartphone-20.yml +0 -9710
  71. data/spec/fixtures/detector/smartphone-21.yml +0 -8693
  72. data/spec/fixtures/detector/smartphone-22.yml +0 -10178
  73. data/spec/fixtures/detector/smartphone-23.yml +0 -9453
  74. data/spec/fixtures/detector/smartphone-24.yml +0 -9843
  75. data/spec/fixtures/detector/smartphone-25.yml +0 -9703
  76. data/spec/fixtures/detector/smartphone-26.yml +0 -10007
  77. data/spec/fixtures/detector/smartphone-27.yml +0 -4927
  78. data/spec/fixtures/detector/smartphone-3.yml +0 -9909
  79. data/spec/fixtures/detector/smartphone-4.yml +0 -8954
  80. data/spec/fixtures/detector/smartphone-5.yml +0 -8981
  81. data/spec/fixtures/detector/smartphone-6.yml +0 -8948
  82. data/spec/fixtures/detector/smartphone-7.yml +0 -8975
  83. data/spec/fixtures/detector/smartphone-8.yml +0 -9810
  84. data/spec/fixtures/detector/smartphone-9.yml +0 -8925
  85. data/spec/fixtures/detector/smartphone.yml +0 -9001
  86. data/spec/fixtures/detector/tablet-1.yml +0 -10155
  87. data/spec/fixtures/detector/tablet-2.yml +0 -9064
  88. data/spec/fixtures/detector/tablet-3.yml +0 -9035
  89. data/spec/fixtures/detector/tablet-4.yml +0 -9062
  90. data/spec/fixtures/detector/tablet-5.yml +0 -9273
  91. data/spec/fixtures/detector/tablet-6.yml +0 -4588
  92. data/spec/fixtures/detector/tablet.yml +0 -8979
  93. data/spec/fixtures/detector/tv-1.yml +0 -2501
  94. data/spec/fixtures/detector/tv.yml +0 -10045
  95. data/spec/fixtures/detector/unknown.yml +0 -3071
  96. data/spec/fixtures/detector/wearable.yml +0 -915
  97. data/spec/fixtures/device/camera.yml +0 -19
  98. data/spec/fixtures/device/car_browser.yml +0 -13
  99. data/spec/fixtures/device/console.yml +0 -79
  100. data/spec/fixtures/device/notebook.yml +0 -7
  101. data/spec/fixtures/parser/oss.yml +0 -2418
  102. data/spec/fixtures/parser/vendorfragments.yml +0 -168
  103. data/spec/spec_helper.rb +0 -9
data/regexes/oss.yml CHANGED
@@ -120,6 +120,10 @@
120
120
  name: 'Fire OS'
121
121
  version: '$1'
122
122
 
123
+ - regex: '.+FIRETVSTICK2018'
124
+ name: 'Fire OS'
125
+ version: '6'
126
+
123
127
  - regex: 'AFTSO001'
124
128
  name: 'Fire OS'
125
129
  version: '7'
@@ -131,11 +135,19 @@
131
135
  ##########
132
136
  # Android
133
137
  ##########
134
- - regex: '(?:Podbean|Podimo)(?:.+)?/Android'
138
+ - regex: 'Android Marshmallow'
139
+ name: 'Android'
140
+ version: '6'
141
+
142
+ - regex: '(?:Podbean|Podimo)(?:.*)/Android'
135
143
  name: 'Android'
136
144
  version: ''
137
145
 
138
- - regex: 'Pinterest for Android/.+; (\d(?:[\d\.]+)?)\)$'
146
+ - regex: 'Android OS/(\d+[\.\d]*)'
147
+ name: 'Android'
148
+ version: '$1'
149
+
150
+ - regex: 'Pinterest for Android/.*; (\d(?:[\d\.]*))\)$'
139
151
  name: 'Android'
140
152
  version: '$1'
141
153
 
@@ -184,6 +196,10 @@
184
196
  name: 'Android'
185
197
  version: '$1'
186
198
 
199
+ - regex: '^A/(\d+[\.\d]*)/'
200
+ name: 'Android'
201
+ version: '$1'
202
+
187
203
  ##########
188
204
  ## Sailfish OS
189
205
  ###########
@@ -229,6 +245,24 @@
229
245
  ##########
230
246
  # Linux
231
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
+
232
266
  # DVKBuntu (https://www.dvkbuntu.org/)
233
267
  - regex: 'dvkbuntu'
234
268
  name: 'DVKBuntu'
@@ -295,29 +329,22 @@
295
329
  ##########
296
330
  # webOS
297
331
  ##########
298
- - regex: 'WEBOS(\d+[\.\d]+)'
299
- name: 'webOS'
300
- version: '$1'
301
-
302
- - regex: 'Web0S; Linux/SmartTV.+Chrome/68'
303
- name: 'webOS'
304
- version: '5'
305
- - regex: 'Web0S; Linux/SmartTV.+Chrome/53'
306
- name: 'webOS'
307
- version: '4'
308
- - regex: 'Web0S; Linux/SmartTV.+Chrome/38'
309
- name: 'webOS'
310
- version: '3'
311
- - regex: 'Web0S; Linux/SmartTV.+Safari/538'
312
- name: 'webOS'
313
- version: '2'
314
- - regex: 'Web0S; Linux/SmartTV.+Safari/537'
315
- name: 'webOS'
316
- version: '1'
317
-
318
332
  - regex: '(?:Web0S; .*WEBOS|webOS|web0S|Palm webOS|hpwOS)(?:[/]?(\d+[\.\d]+))?'
319
333
  name: 'webOS'
320
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'
321
348
 
322
349
  - regex: '(?:PalmOS|Palm OS)(?:[/ ](\d+[\.\d]+))?|Palm'
323
350
  name: 'palmOS'
@@ -339,11 +366,19 @@
339
366
  name: 'Windows'
340
367
  version: '$1'
341
368
 
342
- - regex: 'mingw32'
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'
343
378
  name: 'Windows'
344
379
  version: ''
345
380
 
346
- - regex: 'Windows/(\d+\.\d+)'
381
+ - regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS))/(\d+\.\d+)'
347
382
  name: 'Windows'
348
383
  version: '$1'
349
384
 
@@ -363,7 +398,7 @@
363
398
  name: 'Windows'
364
399
  version: '8'
365
400
 
366
- - regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7|win7'
401
+ - regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7|win7|Windows \(6.1'
367
402
  name: 'Windows'
368
403
  version: '7'
369
404
 
@@ -403,7 +438,7 @@
403
438
  name: 'Windows'
404
439
  version: '3.1'
405
440
 
406
- - regex: 'Windows'
441
+ - regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS'
407
442
  name: 'Windows'
408
443
  version: ''
409
444
 
@@ -417,7 +452,7 @@
417
452
  ##########
418
453
  # tvOS (https://developer.apple.com/tvos/)
419
454
  ##########
420
- - regex: 'Apple TV.*CPU (?:iPhone )?OS ((?:9|1[0-5])_\d+(?:[_\.]\d+)*)'
455
+ - regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-5])[_\.]\d+(?:[_.]\d+)*)'
421
456
  name: 'tvOS'
422
457
  version: '$1'
423
458
 
@@ -443,7 +478,11 @@
443
478
  name: 'iPadOS'
444
479
  version: '$1.$2'
445
480
 
446
- - regex: 'iPad.+CPU OS ((1[345])+(?:[_\.]\d+)*)'
481
+ - regex: '^iPad(?:\d+[\,\d]*)/(1[345]).(\d+[\.\d]*)'
482
+ name: 'iPadOS'
483
+ version: '$1.$2'
484
+
485
+ - regex: 'iPad(?:; iOS|.+CPU OS) ((1[345])+(?:[_\.]\d+)*)'
447
486
  name: 'iPadOS'
448
487
  version: '$1'
449
488
 
@@ -451,6 +490,10 @@
451
490
  name: 'iPadOS'
452
491
  version: '$1.$2'
453
492
 
493
+ - regex: 'iPhone OS,(1[345]).(\d+[\.\d]*).+iPad'
494
+ name: 'iPadOS'
495
+ version: '$1.$2'
496
+
454
497
  ##########
455
498
  # iOS
456
499
  ##########
@@ -458,239 +501,183 @@
458
501
  name: 'iOS'
459
502
  version: '$1.$2'
460
503
 
461
- - regex: 'Pinterest for iOS/.+; (\d(?:[\d\.]+)?)\)$'
504
+ - regex: '^(?:iPad|iPhone)(?:\d+[\,\d]*)[/_](\d+[\.\d]+)'
505
+ name: 'iOS'
506
+ version: '$1'
507
+
508
+ - regex: 'Pinterest for iOS/.*; (\d(?:[\d\.]*))[)]$'
509
+ name: 'iOS'
510
+ version: '$1'
511
+
512
+ - regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[\.\d]+)'
513
+ name: 'iOS'
514
+ version: '$1'
515
+
516
+ - regex: 'CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac))'
517
+ name: 'iOS'
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/'
462
637
  name: 'iOS'
463
638
  version: '$1'
464
639
 
465
- - regex: 'CFNetwork/.+ Darwin/21.0.0(?!.*x86_64)'
466
- name: 'iOS'
467
- version: '15.0'
468
-
469
- - regex: 'CFNetwork/.+ Darwin/20.6.0(?!.*x86_64)'
470
- name: 'iOS'
471
- version: '14.7'
472
-
473
- - regex: 'CFNetwork/.+ Darwin/20.5.0(?!.*x86_64)'
474
- name: 'iOS'
475
- version: '14.6'
476
-
477
- - regex: 'CFNetwork/.+ Darwin/20.4.0(?!.*x86_64)'
478
- name: 'iOS'
479
- version: '14.5'
480
-
481
- - regex: 'CFNetwork/.+ Darwin/20.3.0(?!.*x86_64)'
482
- name: 'iOS'
483
- version: '14.4'
484
-
485
- - regex: 'CFNetwork/.+ Darwin/20.2.0(?!.*x86_64)'
486
- name: 'iOS'
487
- version: '14.3'
488
-
489
- - regex: 'CFNetwork/.+ Darwin/20.1.0(?!.*x86_64)'
490
- name: 'iOS'
491
- version: '14.2'
492
-
493
- - regex: 'CFNetwork/.+ Darwin/20.0.0(?!.*x86_64)'
494
- name: 'iOS'
495
- version: '14.0'
496
-
497
- - regex: 'CFNetwork/.+ Darwin/19.6.0(?!.*x86_64)'
498
- name: 'iOS'
499
- version: '13.6'
500
-
501
- - regex: 'CFNetwork/.+ Darwin/19.5.0(?!.*x86_64)'
502
- name: 'iOS'
503
- version: '13.5'
504
-
505
- - regex: 'CFNetwork/.+ Darwin/19.4.0(?!.*x86_64)'
506
- name: 'iOS'
507
- version: '13.4'
508
-
509
- - regex: 'CFNetwork/.+ Darwin/19.3.0(?!.*x86_64)'
510
- name: 'iOS'
511
- version: '13.3.1'
512
-
513
- - regex: 'CFNetwork/.+ Darwin/19.2.0(?!.*x86_64)'
514
- name: 'iOS'
515
- version: '13.3'
516
-
517
- - regex: 'CFNetwork/.+ Darwin/19.0.0(?!.*x86_64)'
518
- name: 'iOS'
519
- version: '13.0'
520
-
521
- - regex: 'CFNetwork/.+ Darwin/18.7.0(?!.*x86_64)'
522
- name: 'iOS'
523
- version: '12.4'
524
-
525
- - regex: 'CFNetwork/.+ Darwin/18.6.0(?!.*x86_64)'
526
- name: 'iOS'
527
- version: '12.3'
528
-
529
- - regex: 'CFNetwork/.+ Darwin/18.5.0(?!.*x86_64)'
530
- name: 'iOS'
531
- version: '12.2'
532
-
533
- - regex: 'CFNetwork/.+ Darwin/18.2.0(?!.*x86_64)'
534
- name: 'iOS'
535
- version: '12.1'
536
-
537
- - regex: 'CFNetwork/.+ Darwin/18.0.0(?!.*x86_64)'
538
- name: 'iOS'
539
- version: '12.0'
540
-
541
- - regex: 'CFNetwork/.+ Darwin/17.7.0(?!.*x86_64)'
542
- name: 'iOS'
543
- version: '11.4.1'
544
-
545
- - regex: 'CFNetwork/.+ Darwin/17.6.0(?!.*x86_64)'
546
- name: 'iOS'
547
- version: '11.4'
548
-
549
- - regex: 'CFNetwork/889(?!.*x86_64)'
550
- name: 'iOS'
551
- version: '11.1'
552
-
553
- - regex: 'CFNetwork/887(?!.*x86_64)'
554
- name: 'iOS'
555
- version: '11.0'
556
-
557
- - regex: 'CFNetwork/811(?!.*x86_64)'
558
- name: 'iOS'
559
- version: '10.3'
560
-
561
- - regex: 'CFNetwork/808\.3'
562
- name: 'iOS'
563
- version: '10.3'
564
-
565
- - regex: 'CFNetwork/808\.2'
566
- name: 'iOS'
567
- version: '10.2'
568
-
569
- - regex: 'CFNetwork/808\.1'
570
- name: 'iOS'
571
- version: '10.1'
572
-
573
- - regex: 'CFNetwork/808\.0'
574
- name: 'iOS'
575
- version: '10.0'
576
-
577
- - regex: 'CFNetwork/808'
578
- name: 'iOS'
579
- version: '10'
580
-
581
- - regex: 'CFNetwork/758\.4\.3'
582
- name: 'iOS'
583
- version: '9.3.2'
584
-
585
- - regex: 'CFNetwork/758\.3\.15'
586
- name: 'iOS'
587
- version: '9.3'
588
-
589
- - regex: 'CFNetwork/758\.2\.[78]'
590
- name: 'iOS'
591
- version: '9.2'
592
-
593
- - regex: 'CFNetwork/758\.1\.6'
594
- name: 'iOS'
595
- version: '9.1'
596
-
597
- - regex: 'CFNetwork/758\.0\.2'
598
- name: 'iOS'
599
- version: '9.0'
600
-
601
- - regex: 'CFNetwork/711\.5\.6'
602
- name: 'iOS'
603
- version: '8.4.1'
604
-
605
- - regex: 'CFNetwork/711\.4\.6'
606
- name: 'iOS'
607
- version: '8.4'
608
-
609
- - regex: 'CFNetwork/711\.3\.18'
610
- name: 'iOS'
611
- version: '8.3'
612
-
613
- - regex: 'CFNetwork/711\.2\.23'
614
- name: 'iOS'
615
- version: '8.2'
616
-
617
- - regex: 'CFNetwork/711\.1\.1[26]'
618
- name: 'iOS'
619
- version: '8.1'
620
-
621
- - regex: 'CFNetwork/711\.0\.6'
622
- name: 'iOS'
623
- version: '8.0'
624
-
625
- - regex: 'CFNetwork/672\.1'
626
- name: 'iOS'
627
- version: '7.1'
628
-
629
- - regex: 'CFNetwork/672\.0'
630
- name: 'iOS'
631
- version: '7.0'
632
-
633
- - regex: 'CFNetwork/609\.1'
634
- name: 'iOS'
635
- version: '6.1'
636
-
637
- - regex: 'CFNetwork/60[29]'
638
- name: 'iOS'
639
- version: '6.0'
640
-
641
- - regex: 'CFNetwork/548\.1'
642
- name: 'iOS'
643
- version: '5.1'
644
-
645
- - regex: 'CFNetwork/548\.0'
646
- name: 'iOS'
647
- version: '5.0'
648
-
649
- - regex: 'CFNetwork/485\.13'
650
- name: 'iOS'
651
- version: '4.3'
652
-
653
- - regex: 'CFNetwork/485\.12'
640
+ - regex: 'iOS(\d+\.\d+\.\d+)'
654
641
  name: 'iOS'
655
- version: '4.2'
642
+ version: '$1'
656
643
 
657
- - regex: 'CFNetwork/485\.10'
644
+ - regex: 'iOS(\d+)\.(\d+)0'
658
645
  name: 'iOS'
659
- version: '4.1'
646
+ version: '$1.$2'
660
647
 
661
- - regex: 'CFNetwork/485\.2'
648
+ - regex: 'iPhone OS ([0-9]{1})([0-9]{1})([0-9]{1})'
662
649
  name: 'iOS'
663
- version: '4.0'
650
+ version: '$1.$2.$3'
664
651
 
665
- - regex: 'CFNetwork/467\.12'
652
+ - regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
666
653
  name: 'iOS'
667
- version: '3.2'
654
+ version: '$1'
668
655
 
669
- - regex: 'CFNetwork/459'
656
+ - regex: 'FBMD/iPhone;.*FBSV/ ?(\d+[\.\d]+);'
670
657
  name: 'iOS'
671
- version: '3.1'
658
+ version: '$1'
672
659
 
673
- - regex: 'iPhone/(\d+[\.\d]*) hw/'
660
+ - regex: '(?:FBIOS|Messenger(?:Lite)?ForiOS).*FBSV/ ?(\d+[\.\d]*);'
674
661
  name: 'iOS'
675
662
  version: '$1'
676
663
 
677
- - regex: 'iOS(\d+\.\d+\.\d+)'
664
+ - regex: 'iPhone OS,([\d\.]+).+(?:iPhone|iPod)'
678
665
  name: 'iOS'
679
666
  version: '$1'
680
667
 
681
- - regex: 'iOS(\d+)\.(\d+)0'
668
+ - regex: 'iPad.+; (\d+[\.\d]+);'
682
669
  name: 'iOS'
683
- version: '$1.$2'
670
+ version: '$1'
684
671
 
685
- - regex: 'iPhone OS ([0-9]{1})([0-9]{1})([0-9]{1})'
672
+ - regex: 'iPhone.+; Version (\d+[\.\d]+)'
686
673
  name: 'iOS'
687
- version: '$1.$2.$3'
674
+ version: '$1'
688
675
 
689
- - regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
676
+ - regex: 'OS=iOS;OSVer=(\d+[\.\d]+);'
690
677
  name: 'iOS'
691
678
  version: '$1'
692
679
 
693
- - regex: '(?:FBIOS|Messenger(?:Lite)?ForiOS).*FBSV/ ?(\d+[\.\d]*);'
680
+ - regex: 'os=Apple-iOS.+osversion=(\d+[\.\d]+)/'
694
681
  name: 'iOS'
695
682
  version: '$1'
696
683
 
@@ -714,254 +701,180 @@
714
701
  name: 'iOS'
715
702
  version: ''
716
703
 
704
+ - regex: 'CaptiveNetworkSupport|AirPlay'
705
+ name: 'iOS'
706
+ version: ''
707
+
717
708
  ##########
718
709
  # Mac
719
710
  ##########
720
- - regex: 'CFNetwork/.+ Darwin/20.2.0.*(x86_64)|(x86_64-apple-)?darwin20.2.0'
721
- name: 'Mac'
722
- version: '11.1'
723
-
724
- - regex: 'CFNetwork/.+ Darwin/20.[01].0.*(x86_64)|(x86_64-apple-)?darwin20.[01].0'
725
- name: 'Mac'
726
- version: '11.0'
727
-
728
- - regex: 'CFNetwork/.+ Darwin/19.6.0.*(x86_64)|(x86_64-apple-)?darwin19.6.0'
729
- name: 'Mac'
730
- version: '10.15.6'
731
-
732
- - regex: 'CFNetwork/.+ Darwin/19.5.0.*(x86_64)|(x86_64-apple-)?darwin19.5.0'
733
- name: 'Mac'
734
- version: '10.15.5'
735
-
736
- - regex: 'CFNetwork/.+ Darwin/19.4.0.*(x86_64)|(x86_64-apple-)?darwin19.4.0'
737
- name: 'Mac'
738
- version: '10.15.4'
739
-
740
- - regex: 'CFNetwork/.+ Darwin/19.3.0.*(x86_64)|(x86_64-apple-)?darwin19.3.0'
741
- name: 'Mac'
742
- version: '10.15.3'
743
-
744
- - regex: 'CFNetwork/.+ Darwin/19.2.0.*(x86_64)|(x86_64-apple-)?darwin19.2.0'
745
- name: 'Mac'
746
- version: '10.15.2'
747
-
748
- - regex: 'CFNetwork/(?:108[258]|109[18]|1103).*(x86_64)'
749
- name: 'Mac'
750
- version: '10.15'
751
-
752
- - regex: 'CFNetwork/.+ Darwin/18.2.0.*(x86_64)|(x86_64-apple-)?darwin18.2.0'
753
- name: 'Mac'
754
- version: '10.14.1'
755
-
756
- - regex: 'CFNetwork/(?:96[29]|97[14568]).*(x86_64)'
757
- name: 'Mac'
758
- version: '10.14'
759
-
760
- - regex: 'CFNetwork/.+ Darwin/17.7.0.*(x86_64)|(x86_64-apple-)?darwin17.7.0'
761
- name: 'Mac'
762
- version: '10.13.6'
763
-
764
- - regex: 'CFNetwork/.+ Darwin/17.6.0.*(x86_64)|(x86_64-apple-)?darwin17.6.0'
765
- name: 'Mac'
766
- version: '10.13.5'
767
-
768
- - regex: 'CFNetwork/.+ Darwin/17.5.0.*(x86_64)|(x86_64-apple-)?darwin17.5.0'
769
- name: 'Mac'
770
- version: '10.13.4'
771
-
772
- - regex: 'CFNetwork/.+ Darwin/17.4.0.*(x86_64)|(x86_64-apple-)?darwin17.4.0'
773
- name: 'Mac'
774
- version: '10.13.3'
775
-
776
- - regex: 'CFNetwork/.+ Darwin/17.3.0.*(x86_64)|(x86_64-apple-)?darwin17.3.0'
777
- name: 'Mac'
778
- version: '10.13.2'
779
-
780
- - regex: 'CFNetwork/.+ Darwin/17.2.0.*(x86_64)|(x86_64-apple-)?darwin17.2.0'
781
- name: 'Mac'
782
- version: '10.13.1'
783
-
784
- - regex: 'CFNetwork/(?:887|889|893|897|901|902).*(x86_64)'
785
- name: 'Mac'
786
- version: '10.13'
787
-
788
- - regex: 'CFNetwork/.+ Darwin/16.7.0.*(x86_64)|(x86_64-apple-)?darwin16.7.0'
789
- name: 'Mac'
790
- version: '10.12.6'
791
-
792
- - regex: 'CFNetwork/.+ Darwin/16.6.0.*(x86_64)|(x86_64-apple-)?darwin16.6.0'
793
- name: 'Mac'
794
- version: '10.12.5'
795
-
796
- - regex: 'CFNetwork/.+ Darwin/16.5.0.*(x86_64)|(x86_64-apple-)?darwin16.5.0'
797
- name: 'Mac'
798
- version: '10.12.4'
799
-
800
- - regex: 'CFNetwork/.+ Darwin/16.3.0.*(x86_64)|(x86_64-apple-)?darwin16.3.0'
801
- name: 'Mac'
802
- version: '10.12.3'
803
-
804
- - regex: 'CFNetwork/.+ Darwin/16.2.0.*(x86_64)|(x86_64-apple-)?darwin16.2.0'
805
- name: 'Mac'
806
- version: '10.12.2'
807
-
808
- - regex: 'CFNetwork/.+ Darwin/16.1.0.*(x86_64)|(x86_64-apple-)?darwin16.1.0'
809
- name: 'Mac'
810
- version: '10.12.1'
811
-
812
- - regex: 'CFNetwork/811.*(x86_64)'
813
- name: 'Mac'
814
- version: '10.12'
815
-
816
- - regex: 'CFNetwork/807'
817
- name: 'Mac'
818
- version: '10.12'
819
-
820
- - regex: 'CFNetwork/.+ Darwin/15.6.0.*(x86_64)|(x86_64-apple-)?darwin15.6.0'
821
- name: 'Mac'
822
- version: '10.11.6'
823
-
824
- - regex: 'CFNetwork/.+ Darwin/15.5.0.*(x86_64)|(x86_64-apple-)?darwin15.5.0'
825
- name: 'Mac'
826
- version: '10.11.5'
827
-
828
- - regex: 'CFNetwork/.+ Darwin/15.4.0.*(x86_64)|(x86_64-apple-)?darwin15.4.0'
829
- name: 'Mac'
830
- version: '10.11.4'
831
-
832
- - regex: 'CFNetwork/.+ Darwin/15.3.0.*(x86_64)|(x86_64-apple-)?darwin15.3.0'
711
+ - regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac'
833
712
  name: 'Mac'
834
- version: '10.11.3'
835
-
836
- - regex: 'CFNetwork/.+ Darwin/15.2.0.*(x86_64)|(x86_64-apple-)?darwin15.2.0'
837
- name: 'Mac'
838
- version: '10.11.2'
839
-
840
- - regex: 'CFNetwork/760'
841
- name: 'Mac'
842
- version: '10.11'
843
-
844
- - regex: 'CFNetwork/.+ Darwin/14.5.0.*(x86_64)|(x86_64-apple-)?darwin14.5.0'
845
- name: 'Mac'
846
- version: '10.10.5'
847
-
848
- - regex: 'CFNetwork/.+ Darwin/14.4.0.*(x86_64)|(x86_64-apple-)?darwin14.4.0'
849
- name: 'Mac'
850
- version: '10.10.4'
851
-
852
- - regex: 'CFNetwork/.+ Darwin/14.3.0.*(x86_64)|(x86_64-apple-)?darwin14.3.0'
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]+)\);'
853
858
  name: 'Mac'
854
- version: '10.10.3'
855
-
856
- - regex: 'CFNetwork/.+ Darwin/14.1.0.*(x86_64)|(x86_64-apple-)?darwin14.1.0'
857
- name: 'Mac'
858
- version: '10.10.2'
859
-
860
- - regex: 'CFNetwork/720'
861
- name: 'Mac'
862
- version: '10.10'
863
-
864
- - regex: 'CFNetwork/.+ Darwin/13.4.0.*(x86_64)|(x86_64-apple-)?darwin13.4.0'
865
- name: 'Mac'
866
- version: '10.9.5'
867
-
868
- - regex: 'CFNetwork/.+ Darwin/13.3.0.*(x86_64)|(x86_64-apple-)?darwin13.3.0'
869
- name: 'Mac'
870
- version: '10.9.4'
871
-
872
- - regex: 'CFNetwork/.+ Darwin/13.2.0.*(x86_64)|(x86_64-apple-)?darwin13.2.0'
873
- name: 'Mac'
874
- version: '10.9.3'
875
-
876
- - regex: 'CFNetwork/.+ Darwin/13.1.0.*(x86_64)|(x86_64-apple-)?darwin13.1.0'
877
- name: 'Mac'
878
- version: '10.9.2'
879
-
880
- - regex: 'CFNetwork/673'
881
- name: 'Mac'
882
- version: '10.9'
883
-
884
- - regex: 'CFNetwork/.+ Darwin/12.5.0.*(x86_64)|(x86_64-apple-)?darwin12.5.0'
885
- name: 'Mac'
886
- version: '10.8.5'
887
-
888
- - regex: 'CFNetwork/.+ Darwin/12.4.0.*(x86_64)|(x86_64-apple-)?darwin12.4.0'
889
- name: 'Mac'
890
- version: '10.8.4'
891
-
892
- - regex: 'CFNetwork/.+ Darwin/12.3.0.*(x86_64)|(x86_64-apple-)?darwin12.3.0'
893
- name: 'Mac'
894
- version: '10.8.3'
895
-
896
- - regex: 'CFNetwork/.+ Darwin/12.2.0.*(x86_64)|(x86_64-apple-)?darwin12.2.0'
897
- name: 'Mac'
898
- version: '10.8.2'
899
-
900
- - regex: 'CFNetwork/.+ Darwin/12.1.0.*(x86_64)|(x86_64-apple-)?darwin12.1.0'
901
- name: 'Mac'
902
- version: '10.8.1'
903
-
904
- - regex: 'CFNetwork/596'
905
- name: 'Mac'
906
- version: '10.8'
907
-
908
- - regex: 'CFNetwork/.+ Darwin/11.5.0.*(x86_64)|(x86_64-apple-)?darwin11.5.0'
909
- name: 'Mac'
910
- version: '10.7.5'
911
-
912
- - regex: 'CFNetwork/.+ Darwin/11.4.0.*(x86_64)|(x86_64-apple-)?darwin11.4.0'
913
- name: 'Mac'
914
- version: '10.7.4'
915
-
916
- - regex: 'CFNetwork/.+ Darwin/11.3.0.*(x86_64)|(x86_64-apple-)?darwin11.3.0'
917
- name: 'Mac'
918
- version: '10.7.3'
919
-
920
- - regex: 'CFNetwork/.+ Darwin/11.2.0.*(x86_64)|(x86_64-apple-)?darwin11.2.0'
921
- name: 'Mac'
922
- version: '10.7.2'
923
-
924
- - regex: 'CFNetwork/.+ Darwin/11.1.0.*(x86_64)|(x86_64-apple-)?darwin11.1.0'
925
- name: 'Mac'
926
- version: '10.7.1'
927
-
928
- - regex: 'CFNetwork/520'
929
- name: 'Mac'
930
- version: '10.7'
931
-
932
- - regex: 'CFNetwork/454'
933
- name: 'Mac'
934
- version: '10.6'
935
-
936
- - regex: 'CFNetwork/(?:438|422|339|330|221|220|217)'
937
- name: 'Mac'
938
- version: '10.5'
939
-
940
- - regex: 'CFNetwork/12[89]'
941
- name: 'Mac'
942
- version: '10.4'
943
-
944
- - regex: 'CFNetwork/1\.2'
945
- name: 'Mac'
946
- version: '10.3'
859
+ version: '$1'
947
860
 
948
- - regex: 'CFNetwork/1\.1'
861
+ - regex: 'Mac[ +]OS[ +]?X(?:[ /,](?:Version )?(\d+(?:[_\.]\d+)+))?'
949
862
  name: 'Mac'
950
- version: '10.2'
863
+ version: '$1'
951
864
 
952
- - regex: 'Mac[ +]OS[ +]?X(?:[ /](?:Version )?(\d+(?:[_\.]\d+)+))?'
865
+ - regex: 'Mac (?:OS/)?(\d+(?:[_\.]\d+)+)'
953
866
  name: 'Mac'
954
867
  version: '$1'
955
868
 
956
- - regex: 'Mac (?:OS/)?(\d+(?:[_\.]\d+)+)'
869
+ - regex: '(?:macOS[/,]|Mac-)(\d+[\.\d]+)'
957
870
  name: 'Mac'
958
871
  version: '$1'
959
872
 
960
- - regex: 'macOS/(\d+[\.\d]+)'
873
+ - regex: 'Macintosh; OS X (\d+[\.\d]+)'
961
874
  name: 'Mac'
962
875
  version: '$1'
963
876
 
964
- - regex: 'Darwin|Macintosh|Mac_PowerPC|PPC|Mac PowerPC|iMac|MacBook|macOS|Sonos/.+\(MDCR_'
877
+ - regex: 'Darwin|Macintosh|Mac_PowerPC|PPC|Mac PowerPC|iMac|MacBook|macOS|AppleExchangeWebServices|com.apple.trustd|Sonos/.+\(MDCR_'
965
878
  name: 'Mac'
966
879
  version: ''
967
880
 
@@ -1098,7 +1011,7 @@
1098
1011
  version: '$1'
1099
1012
 
1100
1013
  - regex: 'AppleTV(?:/?(\d+[\.\d]+))?'
1101
- name: 'Apple TV'
1014
+ name: 'tvOS'
1102
1015
  version: '$1'
1103
1016
 
1104
1017
  - regex: 'WebTV/(\d+[\.\d]+)'