{"id":18140847,"url":"https://github.com/gui/uas-parser","last_synced_at":"2025-04-19T20:43:22.431Z","repository":{"id":8982249,"uuid":"10728171","full_name":"GUI/uas-parser","owner":"GUI","description":"A user agent string parser for Node.js. Uses data from user-agent-string.info.","archived":false,"fork":false,"pushed_at":"2018-03-04T22:12:54.000Z","size":166,"stargazers_count":22,"open_issues_count":2,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-12T23:32:59.726Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GUI.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-17T01:36:57.000Z","updated_at":"2020-12-07T14:21:58.000Z","dependencies_parsed_at":"2022-09-10T05:40:10.045Z","dependency_job_id":null,"html_url":"https://github.com/GUI/uas-parser","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GUI%2Fuas-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GUI%2Fuas-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GUI%2Fuas-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GUI%2Fuas-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GUI","download_url":"https://codeload.github.com/GUI/uas-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246187241,"owners_count":20737462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-01T16:07:06.888Z","updated_at":"2025-03-31T01:32:10.410Z","avatar_url":"https://github.com/GUI.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# uas-parser\n\n[![Build Status](https://travis-ci.org/GUI/uas-parser.png)](https://travis-ci.org/GUI/uas-parser)\n\nA user agent string parser for Node.js. Returns detailed user agent information from the [user-agent-string.info](http://user-agent-string.info) project.\n\nThe internal data used for parsing is automatically updated on weekly basis from [user-agent-string.info's](http://user-agent-string.info) latest downloads.\n\n## Usage\n\n### parse(userAgent)\n\nParse the given user agent string. Returns an object containing browser details and operating system information.\n\n#### Examples\n\n```js\nvar uaParser = require('uas-parser');\n\nuaParser.parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/536.26.17 (KHTML, like Gecko) Version/6.0.2 Safari/536.26.17');\n// { type: 'Browser',\n//   uaFamily: 'Safari',\n//   uaName: 'Safari 6.0.2',\n//   uaUrl: 'http://en.wikipedia.org/wiki/Safari_%28web_browser%29',\n//   uaCompany: 'Apple Inc.',\n//   uaCompanyUrl: 'http://www.apple.com/',\n//   uaIcon: 'http://user-agent-string.info/pub/img/ua/safari.png',\n//   uaInfoUrl: 'http://user-agent-string.info/list-of-ua/browser-detail?browser=Safari',\n//   osFamily: 'OS X',\n//   osName: 'OS X 10.7 Lion',\n//   osUrl: 'http://www.apple.com/osx/',\n//   osCompany: 'Apple Computer, Inc.',\n//   osCompanyUrl: 'http://www.apple.com/',\n//   osIcon: 'http://user-agent-string.info/pub/img/os/macosx.png',\n//   deviceType: 'Personal computer',\n//   deviceIcon: 'http://user-agent-string.info/pub/img/device/desktop.png',\n//   deviceInfoUrl: 'http://user-agent-string.info/list-of-ua/device-detail?device=Personal computer' }\n\nuaParser.parse('Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)');\n// { type: 'Robot',\n//   uaFamily: 'bingbot',\n//   uaName: 'bingbot/2.0',\n//   uaUrl: 'http://www.bing.com/webmaster/help/which-crawlers-does-bing-use-8c184ec0',\n//   uaCompany: 'Microsoft Corporation',\n//   uaCompanyUrl: 'http://www.microsoft.com/',\n//   uaIcon: 'http://user-agent-string.info/pub/img/ua/bot_msnbot.png',\n//   uaInfoUrl: 'http://user-agent-string.info/list-of-ua/bot-detail?bot=bingbot',\n//   osFamily: 'unknown',\n//   osName: 'unknown',\n//   osUrl: 'unknown',\n//   osCompany: 'unknown',\n//   osCompanyUrl: 'unknown',\n//   osIcon: 'http://user-agent-string.info/pub/img/os/unknown.png',\n//   deviceType: 'Other',\n//   deviceIcon: 'http://user-agent-string.info/pub/img/device/other.png',\n//   deviceInfoUrl: 'http://user-agent-string.info/list-of-ua/device-detail?device=Other' }\n\nuaParser.parse('EventMachine HttpClient');\n// { type: 'Library',\n//   uaFamily: 'EventMachine',\n//   uaName: 'EventMachine',\n//   uaUrl: 'http://rubyeventmachine.com/',\n//   uaCompany: '',\n//   uaCompanyUrl: '',\n//   uaIcon: 'http://user-agent-string.info/pub/img/ua/DLLicon.png',\n//   uaInfoUrl: 'http://user-agent-string.info/list-of-ua/browser-detail?browser=EventMachine',\n//   osFamily: 'unknown',\n//   osName: 'unknown',\n//   osUrl: 'unknown',\n//   osCompany: 'unknown',\n//   osCompanyUrl: 'unknown',\n//   osIcon: 'http://user-agent-string.info/pub/img/os/unknown.png',\n//   deviceType: 'Other',\n//   deviceIcon: 'http://user-agent-string.info/pub/img/device/other.png',\n//   deviceInfoUrl: 'http://user-agent-string.info/list-of-ua/device-detail?device=Other' }\n```\n\n### lookup(userAgent)\n\nProvides the same functionality as `parse(userAgent)`, but caches the results for the given user agent string in memory. This can provide faster lookups when repeatedly parsing identical user agent strings.\n\nThe last 5,000 user agent strings seen will be cached. Cached results will remain valid for up to 1 week.\n\n## Other User Agent Parsers\n\n- [useragent](https://npmjs.org/package/useragent): Derived from [browserscope.org's](http://www.browserscope.org/) user agent parser. An excellent user agent parser for web browsers, but I found user-agent-string.info's data better at categorizing and dealing with robots, software libraries, and other more esoteric user agents (at least for my use case).\n\n## Credits\n\nAll user agent data is from [user-agent-string.info](http://user-agent-string.info). Data is licensed under a [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/deed.en_US).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgui%2Fuas-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgui%2Fuas-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgui%2Fuas-parser/lists"}