UNPKG

node-device-detector

Version:

Nodejs device detector (port matomo-org/device-detector)

763 lines (762 loc) 16.7 kB
module.exports = [ { "regex": "PhantomJS(?:/(\\d+[.\\d]+))?", "name": "PhantomJS", "version": "$1", "url": "https://phantomjs.org/" }, { "regex": "IPinfoClient/.*/(\\d+[.\\d]+)", "name": "IPinfo", "version": "$1", "url": "https://github.com/ipinfo" }, { "regex": "kiwi-tcms/(\\d+[.\\d]+)", "name": "Kiwi TCMS", "version": "$1", "url": "https://kiwitcms.org" }, { "regex": "tcms-api/(\\d+[.\\d]+)", "name": "Kiwi TCMS API", "version": "$1", "url": "https://kiwitcms.org" }, { "regex": "Fuzz Faster U Fool v(\\d+[.\\d]+)", "name": "FFUF", "version": "$1", "url": "https://github.com/ffuf/ffuf" }, { "regex": "Slim Framework", "name": "Slim Framework", "version": "", "url": "https://www.slimframework.com/" }, { "regex": "msray-plus", "name": "Msray-Plus", "version": "", "url": "https://github.com/super-l/msray" }, { "regex": "HTMLParser(?:/(\\d+[.\\d]+))?", "name": "HTML Parser", "version": "$1", "url": "https://htmlparser.sourceforge.net/" }, { "regex": "^got(?:/(\\d+\\.[.\\d]+))? \\(", "name": "got", "version": "$1", "url": "https://github.com/sindresorhus/got" }, { "regex": "Typhoeus", "name": "Typhoeus", "version": "", "url": "https://github.com/typhoeus/typhoeus" }, { "regex": "req/v([.\\d]+)", "name": "req", "version": "$1", "url": "https://github.com/imroc/req" }, { "regex": "quic-go[ -]HTTP/3", "name": "quic-go", "version": "", "url": "https://github.com/lucas-clemente/quic-go" }, { "regex": "azure-data-factory(?:/(\\d+[.\\d]+))?", "name": "Azure Data Factory", "version": "$1", "url": "https://azure.microsoft.com/en-us/products/data-factory/" }, { "regex": "Dart/(\\d+[.\\d]+)", "name": "Dart", "version": "$1", "url": "https://dart.dev/" }, { "regex": "r-curl(?:/(\\d+[.\\d]+))?", "name": "r-curl", "version": "$1", "url": "https://github.com/jeroen/curl" }, { "regex": "python-httpx(?:/(\\d+[.\\d]+))?", "name": "HTTPX", "version": "$1", "url": "https://www.python-httpx.org/" }, { "regex": "fasthttp(?:/(\\d+[.\\d]+))?", "name": "fasthttp", "version": "$1", "url": "https://github.com/valyala/fasthttp" }, { "regex": "geoipupdate(?:/(\\d+[.\\d]+))?", "name": "GeoIP Update", "version": "$1", "url": "https://github.com/maxmind/geoipupdate" }, { "regex": "PHP-Curl-Class(?:/(\\d+[.\\d]+))?", "name": "PHP cURL Class", "version": "$1", "url": "https://github.com/php-curl-class/php-curl-class" }, { "regex": "Cpanel-HTTP-Client(?:/(\\d+[.\\d]+))?", "name": "cPanel HTTP Client", "version": "$1", "url": "https://www.cpanel.net/" }, { "regex": "AnyEvent-HTTP(?:/(\\d+[.\\d]+))?", "name": "AnyEvent HTTP", "version": "$1", "url": "http://software.schmorp.de/pkg/AnyEvent" }, { "regex": "SlimerJS/(\\d+[.\\d]+)", "name": "SlimerJS", "version": "$1", "url": "https://www.slimerjs.org/" }, { "regex": "Jaunt/(\\d+[.\\d]+)", "name": "Jaunt", "version": "$1", "url": "https://jaunt-api.com/" }, { "regex": "Cypress/(\\d+[.\\d]+)", "name": "Cypress", "version": "$1", "url": "https://github.com/cypress-io/cypress" }, { "regex": "Wget(?:/(\\d+[.\\d]+))?", "name": "Wget", "version": "$1" }, { "regex": "Guzzle(?:Http)?(?:/(\\d+[.\\d]+))?", "name": "Guzzle (PHP HTTP Client)", "version": "$1" }, { "regex": "^Symfony HttpClient/", "name": "Symfony", "version": "$1" }, { "regex": "(?:lib)?curl(?:/(\\d+[.\\d]+))?", "name": "curl", "version": "$1" }, { "regex": "python-requests(?:/(\\d+[.\\d]+))?", "name": "Python Requests", "version": "$1" }, { "regex": "Python-httplib2(?:/(\\d+[.\\d]+))?", "name": "httplib2", "version": "$1", "url": "https://pypi.org/project/httplib2/" }, { "regex": "Python-urllib3?(?:/?(\\d+[.\\d]+))?", "name": "Python urllib", "version": "$1" }, { "regex": "Apache-HttpClient(?:/?(\\d+[.\\d]+))?", "name": "Apache HTTP Client", "version": "$1" }, { "regex": "Java-http-client(?:/?(\\d+[.\\d]+))?", "name": "Java HTTP Client", "version": "$1" }, { "regex": "Java/?(\\d+[.\\d]+)", "name": "Java", "version": "$1" }, { "regex": "(?:perlclient|libwww-perl)(?:/?(\\d+[.\\d]+))?", "name": "Perl", "version": "$1" }, { "regex": "grpc-java-okhttp/([\\d.]+)", "name": "gRPC-Java", "version": "$1", "url": "https://github.com/grpc/grpc-java" }, { "regex": "(?:okhttp|network-okhttp3)/([\\d.]+)", "name": "OkHttp", "version": "$1" }, { "regex": "okhttp3-([\\d.]+)", "name": "OkHttp", "version": "$1" }, { "regex": "HTTP_Request2(?:/(\\d+[.\\d]+))?", "name": "HTTP_Request2", "version": "$1", "url": "https://pear.php.net/package/http_request2" }, { "regex": "Mechanize(?:/(\\d+[.\\d]+))?", "name": "Mechanize", "version": "$1", "url": "https://github.com/sparklemotion/mechanize" }, { "regex": "aiohttp(?:/(\\d+[.\\d]+))?", "name": "aiohttp", "version": "$1" }, { "regex": "Google-HTTP-Java-Client(?:/(\\d+[\\.\\w-]+))?", "name": "Google HTTP Java Client", "version": "$1" }, { "regex": "WWW-Mechanize(?:/(\\d+[.\\d]+))?", "name": "WWW-Mechanize", "version": "$1" }, { "regex": "Faraday(?: v(\\d+[.\\d]+))?", "name": "Faraday", "version": "$1", "url": "https://github.com/lostisland/faraday" }, { "regex": "(?:Go-http-client|^Go )/?(?:(\\d+[.\\d]+))?(?: package http)?", "name": "Go-http-client", "version": "$1" }, { "regex": "urlgrabber(?:/(\\d+[.\\d]+))?", "name": "urlgrabber (yum)", "version": "$1" }, { "regex": "libdnf(?:/(\\d+[.\\d]+))?", "name": "libdnf", "version": "$1" }, { "regex": "HTTPie(?:/(\\d+[.\\d]+))?", "name": "HTTPie", "version": "$1" }, { "regex": "rest-client/(\\d+\\.[.\\d]+) .*ruby", "name": "REST Client for Ruby", "version": "$1" }, { "regex": "RestSharp/(\\d+[.\\d]+)", "name": "RestSharp", "version": "$1", "url": "https://github.com/restsharp/RestSharp" }, { "regex": "scalaj-http/(\\d+[.\\d]+)", "name": "ScalaJ HTTP", "version": "$1", "url": "https://github.com/scalaj/scalaj-http" }, { "regex": "REST::Client/(\\d+)", "name": "Perl REST::Client", "version": "$1", "url": "https://metacpan.org/pod/REST::Client" }, { "regex": "node-fetch/?(\\d+[.\\d]+)?", "name": "Node Fetch", "version": "$1", "url": "https://github.com/node-fetch/node-fetch" }, { "regex": "electron-fetch/?(\\d+[.\\d]+)?", "name": "Electron Fetch", "version": "$1", "url": "https://github.com/arantes555/electron-fetch" }, { "regex": "ReactorNetty/(\\d+[.\\d]+)", "name": "ReactorNetty", "version": "$1", "url": "https://github.com/reactor/reactor-netty" }, { "regex": "PostmanRuntime(?:/(\\d+[.\\d]+))?", "name": "Postman Desktop", "version": "$1", "url": "https://github.com/postmanlabs/postman-runtime" }, { "regex": "insomnia(?:/(\\d+[.\\d]+))?", "name": "Insomnia REST Client", "version": "$1", "url": "https://insomnia.rest" }, { "regex": "Jakarta Commons-HttpClient/([.\\d]+)", "name": "Jakarta Commons HttpClient", "version": "$1", "url": "https://hc.apache.org/httpclient-3.x" }, { "regex": "WinHttp\\.WinHttpRequest.+([.\\d]+)", "name": "WinHttp WinHttpRequest", "version": "$1" }, { "regex": "WinHTTP", "name": "Windows HTTP", "version": "" }, { "regex": "Embarcadero URI Client/([.\\d]+)", "name": "Embarcadero URI Client", "version": "$1" }, { "regex": "Mikrotik/([.\\d]+)", "name": "Mikrotik Fetch", "version": "$1" }, { "regex": "GRequests(?:/(\\d+[.\\d]+))?", "name": "GRequests", "version": "$1" }, { "regex": "akka-http/([.\\d]+)", "name": "Akka HTTP", "version": "$1" }, { "regex": "aria2(?:/(\\d+[.\\d]+))?", "name": "Aria2", "version": "$1" }, { "regex": "(?:BTWebClient/|^uTorrent/)", "name": "uTorrent", "version": "" }, { "regex": "gvfs/(?:(\\d+[.\\d]+))?", "name": "gvfs", "version": "$1" }, { "regex": "uclient-fetch", "name": "uclient-fetch", "version": "" }, { "regex": "cpprestsdk/([.\\d]+)", "name": "C++ REST SDK", "version": "$1" }, { "regex": "lua-resty-http/([.\\d]+).+ngx_", "name": "LUA OpenResty NGINX", "version": "$1" }, { "regex": "unirest-java/([.\\d]+)", "name": "Unirest for Java", "version": "$1" }, { "regex": "jsdom/([.\\d]+)", "name": "jsdom", "version": "$1" }, { "regex": "hackney/([.\\d]+)", "name": "hackney", "version": "$1" }, { "regex": "go-resty/([.\\d]+)", "name": "Resty", "version": "$1" }, { "regex": "pa11y/([.\\d]+)", "name": "Pa11y", "version": "$1" }, { "regex": "ultimate_sitemap_parser/([.\\d]+)", "name": "Ultimate Sitemap Parser", "version": "$1" }, { "regex": "Artifactory/([.\\d]+)", "name": "Artifactory", "version": "$1" }, { "regex": "BSRPC ([.\\d]+)", "name": "Open Build Service", "version": "$1" }, { "regex": "Buildah/([.\\d]+)", "name": "Buildah", "version": "$1" }, { "regex": "buildkit/v?([.\\d]+)", "name": "BuildKit", "version": "$1" }, { "regex": "containerd/v?([.\\d]+)", "name": "Containerd", "version": "$1" }, { "regex": "containers/([.\\d]+)", "name": "containers", "version": "$1" }, { "regex": "cri-o/([.\\d]+)", "name": "cri-o", "version": "$1" }, { "regex": "docker/([.\\d]+)", "name": "docker", "version": "$1" }, { "regex": "go-containerregistry/v([.\\d]+)", "name": "go-container registry", "version": "$1" }, { "regex": "libpod/([.\\d]+)", "name": "libpod", "version": "$1" }, { "regex": "skopeo/([.\\d]+)", "name": "Skopeo", "version": "$1" }, { "regex": "Helm/([.\\d]+)", "name": "Helm", "version": "$1" }, { "regex": "harbor-registry-client", "name": "Harbor registry client", "version": "" }, { "regex": "axios(?:/?(\\d+[.\\d]+))?", "name": "Axios", "version": "$1" }, { "regex": "^CarrierWave/(\\d+\\.[.\\d]+)", "name": "CarrierWave", "version": "$1" }, { "regex": "^Deno/(\\d+\\.[.\\d]+)", "name": "Deno", "version": "$1" }, { "regex": "^Down/(\\d+\\.[.\\d]+)", "name": "Down", "version": "$1" }, { "regex": "^Lavf/", "name": "ffmpeg", "version": "$1" }, { "regex": "^FileDownloader/(\\d+\\.[.\\d]+)", "name": "FileDownloader", "version": "$1" }, { "regex": "^git-annex/(\\d+\\.[.\\d]+)", "name": "git-annex", "version": "$1" }, { "regex": "^GStreamer(?: souphttpsrc)[ /](\\d+\\.[.\\d]+)?", "name": "GStreamer", "version": "$1" }, { "regex": "^HTTP-Tiny/(\\d+\\.[.\\d]+)", "name": "HTTP:Tiny", "version": "$1" }, { "regex": "KaiOS Downloader", "name": "KaiOS Downloader", "version": "" }, { "regex": "^libsoup/(\\d+\\.[.\\d]+)", "name": "libsoup", "version": "$1" }, { "regex": "^Android\\.LVLDM$", "name": "Android License Verification Library", "version": "$1" }, { "regex": "^PRDownloader$", "name": "PRDownloader", "version": "" }, { "regex": "^reqwest/(\\d+\\.[.\\d]+)", "name": "reqwest", "version": "$1" }, { "regex": "^resty-requests", "name": "resty-requests", "version": "" }, { "regex": "^Ruby", "name": "ruby", "version": "" }, { "regex": "^SafariViewService/(\\d+\\.[.\\d]+)", "name": "Safari View Service", "version": "$1" }, { "regex": "^undici$", "name": "undici", "version": "" }, { "regex": "^URL/Emacs Emacs/(\\d+\\.[.\\d]+)", "name": "Emacs", "version": "$1" }, { "regex": "^FDM[ /]([\\d.]+)", "name": "Free Download Manager", "version": "$1" }, { "regex": "OkDownload/([\\d.]+)", "name": "OKDownload Library", "version": "$1" }, { "regex": "^Libsyn4-?(?:peek|download)$", "name": "Libsyn", "version": "" }, { "regex": "AppleCoreMedia/1\\.0\\.0", "name": "iOS Application", "version": "" }, { "regex": "cpp-httplib(?:/(\\d+[.\\d]+))?", "name": "cpp-httplib", "version": "$1", "url": "https://github.com/yhirose/cpp-httplib" }, { "regex": "Definitely-Not-Requests", "name": "Requests", "version": "", "url": "https://github.com/psf/requests" }, { "regex": "Stealer ([\\d.]+)", "name": "Stealer", "version": "$1", "url": "https://github.com/hotrush/stealer/" }, { "regex": "Mandrill-PHP(?:/(\\d+[.\\d]+))?", "name": "Mandrill PHP", "version": "$1", "url": "https://bitbucket.org/mailchimp/mandrill-api-php/src/master/" }, { "regex": "^Podgrab", "name": "Podgrab", "version": "", "url": "https://github.com/akhilrex/podgrab" }, { "regex": "^Podcast Provider.*?Radio Downloader ([\\d.]+)", "name": "Radio Downloader", "version": "$1", "url": "https://nerdoftheherd.com/tools/radiodld/" }, { "regex": "^ESP32 HTTP Client/([\\d.]+)", "name": "ESP32 HTTP Client", "version": "$1", "url": "https://github.com/espressif/arduino-esp32" }, { "regex": "babashka\\.http-client(?:/(\\d+[.\\d]+))?", "name": "Babashka HTTP Client", "version": "$1", "url": "https://github.com/babashka/http-client" }, { "regex": "http\\.rb(?:/(\\d+[.\\d]+))?", "name": "http.rb", "version": "$1", "url": "https://github.com/httprb/http" }, { "regex": "node-superagent(?:/(\\d+[.\\d]+))?", "name": "superagent", "version": "$1", "url": "https://github.com/ladjs/superagent" }, { "regex": "CakePHP", "name": "CakePHP", "version": "", "url": "https://www.cakephp.org/" }, { "regex": "request\\.js", "name": "request", "version": "", "url": "https://github.com/request/request" }, { "regex": "qbhttp(?:/(\\d+[.\\d]+))?", "name": "QbHttp", "version": "$1", "url": "https://github.com/OpenQb/QbHttp" }, { "regex": "httprs(?:/(\\d+[.\\d]+))?", "name": "httprs", "version": "$1", "url": "https://github.com/http-server-rs/http-server" }, { "regex": "Boto3(?:/(\\d+[.\\d]+))?", "name": "Boto3", "version": "$1", "url": "https://github.com/boto/boto3" }, { "regex": "Python-xmlrpc(?:/(\\d+[.\\d]+))?", "name": "XML-RPC", "version": "$1", "url": "https://docs.python.org/3/library/xmlrpc.html" }, { "regex": "ICAP-Client-Library(?:/(\\d+[.\\d]+))?", "name": "ICAP Client", "version": "$1", "url": "https://github.com/Peoplecantfly/icapserver" }, { "regex": "Cygwin-Setup(?:/(\\d+[.\\d]+))?", "name": "Cygwin", "version": "$1", "url": "https://www.cygwin.com/" }, { "regex": "azsdk-python-storage-blob(?:/(\\d+[.\\d]+))?", "name": "Azure Blob Storage", "version": "$1", "url": "https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python" }, { "regex": "trafilatura(?:/(\\d+[.\\d]+))?", "name": "trafilatura", "version": "$1", "url": "https://github.com/adbar/trafilatura" }, { "regex": "sqlmap(?:/(\\d+[.\\d]+))?", "name": "sqlmap", "version": "$1", "url": "https://sqlmap.org/" }, { "regex": "vimeo\\.php(?: (\\d+[.\\d]+))?", "name": "vimeo.php", "version": "$1", "url": "https://github.com/vimeo/vimeo.php" }, { "regex": "^PHP/?(\\d+[.\\d]+)", "name": "PHP", "version": "$1", "url": "" }, { "regex": "go-network-v(\\d+[.\\d]+)", "name": "go-network", "version": "$1", "url": "" }, { "regex": "Bun/(\\d+\\.[.\\d]+)", "name": "Bun", "version": "$1", "url": "https://bun.sh/" }, { "regex": "Apidog/(\\d+\\.[.\\d]+)", "name": "Apidog", "version": "$1", "url": "https://apidog.com/" }, { "regex": "webchk v(\\d+\\.[.\\d]+)", "name": "webchk", "version": "$1", "url": "https://github.com/amgedr/webchk" } ];