Repository: matomo-org/device-detector (language: php)

Issue:
Add detect LeafOS 
current parse result:

```
user_agent: Mozilla/5.0 (Linux; Android 14; LeafOS on ARM64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36
os:
  name: Android
  version: "14"
  platform: ARM
os_family: Android
```


expected result
```
user_agent: Mozilla/5.0 (Linux; Android 14; LeafOS on ARM64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36
os:
  name: LeafOS
  version: ""
  platform: ARM
os_family: Android
```

site https://leafos.org/


Discussion / hints:
```yml
original UA: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36
client hints:
  brands:
    - brand: Not/A)Brand
      version: '8'
    - brand: Chromium
      version: '126'
  fullVersionList:
    - brand: Not/A)Brand
      version: 8.0.0.0
    - brand: Chromium
      version: 126.0.6478.71
  mobile: '1'
  model: LeafOS on ARM64
  platform: Android
  platformVersion: 14.0.0
  uaFullVersion: 126.0.6478.71
  wow64: '0'
```

Fix patch:
diff --git a/Parser/OperatingSystem.php b/Parser/OperatingSystem.php
index 0f6c952160..5a8e80cdef 100644
--- a/Parser/OperatingSystem.php
+++ b/Parser/OperatingSystem.php
@@ -112,6 +112,7 @@ class OperatingSystem extends AbstractParser
         'KTV' => 'KreaTV',
         'KBT' => 'Kubuntu',
         'LIN' => 'GNU/Linux',
+        'LEA' => 'LeafOS',
         'LND' => 'LindowsOS',
         'LNS' => 'Linspire',
         'LEN' => 'Lineage OS',
@@ -233,7 +234,7 @@ class OperatingSystem extends AbstractParser
         'Android'               => [
             'AND', 'CYN', 'FIR', 'REM', 'RZD', 'MLD', 'MCD', 'YNS', 'GRI', 'HAR',
             'ADR', 'CLR', 'BOS', 'REV', 'LEN', 'SIR', 'RRS', 'WER', 'PIC', 'ARM',
-            'HEL', 'BYI', 'RIS', 'PUF',
+            'HEL', 'BYI', 'RIS', 'PUF', 'LEA',
         ],
         'AmigaOS'               => ['AMG', 'MOR', 'ARO'],
         'BlackBerry'            => ['BLB', 'QNX'],
diff --git a/Tests/Parser/fixtures/oss.yml b/Tests/Parser/fixtures/oss.yml
index 5cb6861e85..c8fe8e4bdc 100644
--- a/Tests/Parser/fixtures/oss.yml
+++ b/Tests/Parser/fixtures/oss.yml
@@ -5238,3 +5238,11 @@
     version: 15633.72.0
     platform: ""
     family: Chrome OS
+-
+  user_agent: Mozilla/5.0 (Linux; Android 14; LeafOS on ARM64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36
+  os:
+    name: LeafOS
+    short_name: LEA
+    version: ""
+    platform: ARM
+    family: Android
diff --git a/regexes/oss.yml b/regexes/oss.yml
index 611e380ced..5f3ad068a6 100644
--- a/regexes/oss.yml
+++ b/regexes/oss.yml
@@ -5,6 +5,13 @@
 # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
 ###############
 
+##########
+# LeafOS (https://www.leafos.org/)
+##########
+- regex: 'LeafOS'
+  name: 'LeafOS'
+  version: ''
+
 ##########
 # Puffin OS (https://www.puffin.com/os/help/faq/)
 ##########


Test patch: