diff options
Diffstat (limited to 'node_modules/fbjs/lib/UserAgent.js')
-rw-r--r-- | node_modules/fbjs/lib/UserAgent.js | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/node_modules/fbjs/lib/UserAgent.js b/node_modules/fbjs/lib/UserAgent.js deleted file mode 100644 index 240307816..000000000 --- a/node_modules/fbjs/lib/UserAgent.js +++ /dev/null @@ -1,239 +0,0 @@ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ - -'use strict'; - -var UserAgentData = require('./UserAgentData'); -var VersionRange = require('./VersionRange'); - -var mapObject = require('./mapObject'); -var memoizeStringOnly = require('./memoizeStringOnly'); - -/** - * Checks to see whether `name` and `version` satisfy `query`. - * - * @param {string} name Name of the browser, device, engine or platform - * @param {?string} version Version of the browser, engine or platform - * @param {string} query Query of form "Name [range expression]" - * @param {?function} normalizer Optional pre-processor for range expression - * @return {boolean} - */ -function compare(name, version, query, normalizer) { - // check for exact match with no version - if (name === query) { - return true; - } - - // check for non-matching names - if (!query.startsWith(name)) { - return false; - } - - // full comparison with version - var range = query.slice(name.length); - if (version) { - range = normalizer ? normalizer(range) : range; - return VersionRange.contains(range, version); - } - - return false; -} - -/** - * Normalizes `version` by stripping any "NT" prefix, but only on the Windows - * platform. - * - * Mimics the stripping performed by the `UserAgentWindowsPlatform` PHP class. - * - * @param {string} version - * @return {string} - */ -function normalizePlatformVersion(version) { - if (UserAgentData.platformName === 'Windows') { - return version.replace(/^\s*NT/, ''); - } - - return version; -} - -/** - * Provides client-side access to the authoritative PHP-generated User Agent - * information supplied by the server. - */ -var UserAgent = { - /** - * Check if the User Agent browser matches `query`. - * - * `query` should be a string like "Chrome" or "Chrome > 33". - * - * Valid browser names include: - * - * - ACCESS NetFront - * - AOL - * - Amazon Silk - * - Android - * - BlackBerry - * - BlackBerry PlayBook - * - Chrome - * - Chrome for iOS - * - Chrome frame - * - Facebook PHP SDK - * - Facebook for iOS - * - Firefox - * - IE - * - IE Mobile - * - Mobile Safari - * - Motorola Internet Browser - * - Nokia - * - Openwave Mobile Browser - * - Opera - * - Opera Mini - * - Opera Mobile - * - Safari - * - UIWebView - * - Unknown - * - webOS - * - etc... - * - * An authoritative list can be found in the PHP `BrowserDetector` class and - * related classes in the same file (see calls to `new UserAgentBrowser` here: - * https://fburl.com/50728104). - * - * @note Function results are memoized - * - * @param {string} query Query of the form "Name [range expression]" - * @return {boolean} - */ - isBrowser: function isBrowser(query) { - return compare(UserAgentData.browserName, UserAgentData.browserFullVersion, query); - }, - - - /** - * Check if the User Agent browser uses a 32 or 64 bit architecture. - * - * @note Function results are memoized - * - * @param {string} query Query of the form "32" or "64". - * @return {boolean} - */ - isBrowserArchitecture: function isBrowserArchitecture(query) { - return compare(UserAgentData.browserArchitecture, null, query); - }, - - - /** - * Check if the User Agent device matches `query`. - * - * `query` should be a string like "iPhone" or "iPad". - * - * Valid device names include: - * - * - Kindle - * - Kindle Fire - * - Unknown - * - iPad - * - iPhone - * - iPod - * - etc... - * - * An authoritative list can be found in the PHP `DeviceDetector` class and - * related classes in the same file (see calls to `new UserAgentDevice` here: - * https://fburl.com/50728332). - * - * @note Function results are memoized - * - * @param {string} query Query of the form "Name" - * @return {boolean} - */ - isDevice: function isDevice(query) { - return compare(UserAgentData.deviceName, null, query); - }, - - - /** - * Check if the User Agent rendering engine matches `query`. - * - * `query` should be a string like "WebKit" or "WebKit >= 537". - * - * Valid engine names include: - * - * - Gecko - * - Presto - * - Trident - * - WebKit - * - etc... - * - * An authoritative list can be found in the PHP `RenderingEngineDetector` - * class related classes in the same file (see calls to `new - * UserAgentRenderingEngine` here: https://fburl.com/50728617). - * - * @note Function results are memoized - * - * @param {string} query Query of the form "Name [range expression]" - * @return {boolean} - */ - isEngine: function isEngine(query) { - return compare(UserAgentData.engineName, UserAgentData.engineVersion, query); - }, - - - /** - * Check if the User Agent platform matches `query`. - * - * `query` should be a string like "Windows" or "iOS 5 - 6". - * - * Valid platform names include: - * - * - Android - * - BlackBerry OS - * - Java ME - * - Linux - * - Mac OS X - * - Mac OS X Calendar - * - Mac OS X Internet Account - * - Symbian - * - SymbianOS - * - Windows - * - Windows Mobile - * - Windows Phone - * - iOS - * - iOS Facebook Integration Account - * - iOS Facebook Social Sharing UI - * - webOS - * - Chrome OS - * - etc... - * - * An authoritative list can be found in the PHP `PlatformDetector` class and - * related classes in the same file (see calls to `new UserAgentPlatform` - * here: https://fburl.com/50729226). - * - * @note Function results are memoized - * - * @param {string} query Query of the form "Name [range expression]" - * @return {boolean} - */ - isPlatform: function isPlatform(query) { - return compare(UserAgentData.platformName, UserAgentData.platformFullVersion, query, normalizePlatformVersion); - }, - - - /** - * Check if the User Agent platform is a 32 or 64 bit architecture. - * - * @note Function results are memoized - * - * @param {string} query Query of the form "32" or "64". - * @return {boolean} - */ - isPlatformArchitecture: function isPlatformArchitecture(query) { - return compare(UserAgentData.platformArchitecture, null, query); - } -}; - -module.exports = mapObject(UserAgent, memoizeStringOnly);
\ No newline at end of file |