diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index d3c184b..6bc9564 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -290,6 +290,7 @@ const DeviceVendor = Object.freeze({ TECNO: 'TECNO', TESLA: 'Tesla', ULEFONE: 'Ulefone', + VALVE: 'Valve', VIVO: 'Vivo', VIZIO: 'Vizio', VODAFONE: 'Vodafone', diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index 69dc14e..7191ef8 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -853,6 +853,7 @@ /(ouya)/i, // Ouya /(nintendo) (\w+)/i, // Nintendo /(retroid) (pocket ([^\)]+))/i, // Retroid Pocket + /(valve).+(steam deck)/i, /droid.+; ((shield|rgcube|gr0006))( bui|\))/i // Nvidia Portable/Anbernic/Logitech ], [[VENDOR, strMapper, { 'Nvidia': 'Shield', 'Anbernic': 'RGCUBE', 'Logitech': 'GR0006' }], MODEL, [TYPE, CONSOLE]], [ diff --git a/test/data/ua/device/valve.json b/test/data/ua/device/valve.json new file mode 100644 index 0000000..967679d --- /dev/null +++ b/test/data/ua/device/valve.json @@ -0,0 +1,11 @@ +[ + { + "desc": "Valve", + "ua": "Mozilla/5.0 (X11; Linux x86_64; Valve Steam Client/Steam Deck [Steam Deck Beta]/default/0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.183 Safari/537.36", + "expect": { + "vendor": "Valve", + "model": "Steam Deck", + "type": "console" + } + } +] \ No newline at end of file