restricted-input
Advanced tools
Comparing version 1.0.11 to 1.1.0
# Restricted Input - Release Notes | ||
## 1.1.0 (2017-04-04) | ||
* Provide specific strategy for Android KitKat Chromium based webviews. Fixes issue where only 4 characters could be input | ||
* Provide helper method for determining if the browser supports formatting | ||
## 1.0.11 (2017-02-22) | ||
@@ -4,0 +9,0 @@ |
@@ -5,22 +5,19 @@ 'use strict'; | ||
var ANDROID_REGEX = /android/i; | ||
var CHROME_REGEX = /Chrome/; | ||
var IE9_REGEX = /MSIE 9/; | ||
var isAndroid = require('browser-detection/is-android'); | ||
var isChrome = require('browser-detection/is-chrome'); | ||
var isIos = require('browser-detection/is-ios'); | ||
var isIE9 = require('browser-detection/is-ie9'); | ||
function _isAndroid(ua) { | ||
return ANDROID_REGEX.test(ua || UA); | ||
} | ||
// Old Android Webviews used specific versions of Chrome with 0.0.0 as their version suffix | ||
// https://developer.chrome.com/multidevice/user-agent#webview_user_agent | ||
var KITKAT_WEBVIEW_REGEX = /Version\/\d\.\d* Chrome\/\d*\.0\.0\.0/; | ||
function _isChrome(ua) { | ||
return CHROME_REGEX.test(ua || UA); | ||
} | ||
function _isOldSamsungBrowserOrSamsungWebview(ua) { | ||
return !_isChrome(ua) && ua.indexOf('Samsung') > -1; | ||
return !isChrome(ua) && ua.indexOf('Samsung') > -1; | ||
} | ||
function isIE9(ua) { | ||
ua = ua || UA; | ||
function isKitKatWebview(uaArg) { | ||
var ua = uaArg || UA; | ||
return IE9_REGEX.test(ua); | ||
return isAndroid(ua) && KITKAT_WEBVIEW_REGEX.test(ua); | ||
} | ||
@@ -31,10 +28,5 @@ | ||
return _isAndroid(ua) && _isChrome(ua); | ||
return isAndroid(ua) && isChrome(ua); | ||
} | ||
function isIos(ua) { | ||
ua = ua || UA; | ||
return /iPhone|iPod|iPad/.test(ua); | ||
} | ||
function isSamsungBrowser(ua) { | ||
@@ -49,3 +41,4 @@ ua = ua || UA; | ||
isIos: isIos, | ||
isKitKatWebview: isKitKatWebview, | ||
isSamsungBrowser: isSamsungBrowser | ||
}; |
@@ -8,2 +8,3 @@ 'use strict'; | ||
var AndroidChromeStrategy = require('./strategies/android-chrome'); | ||
var KitKatChromiumBasedWebViewStrategy = require('./strategies/kitkat-chromium-based-webview'); | ||
var IE9Strategy = require('./strategies/ie9'); | ||
@@ -31,8 +32,8 @@ var BaseStrategy = require('./strategies/base'); | ||
// SamsungBrowser contains 'Chrome' in userAgent, so check it first | ||
if (device.isSamsungBrowser()) { | ||
// Disable formatting due to various digits being dropped | ||
if (!RestrictedInput.supportsFormatting()) { | ||
this.strategy = new NoopStrategy(options); | ||
} else if (device.isIos()) { | ||
this.strategy = new IosStrategy(options); | ||
} else if (device.isKitKatWebview()) { | ||
this.strategy = new KitKatChromiumBasedWebViewStrategy(options); | ||
} else if (device.isAndroidChrome()) { | ||
@@ -64,2 +65,7 @@ this.strategy = new AndroidChromeStrategy(options); | ||
RestrictedInput.supportsFormatting = function () { | ||
// Digits get dropped in samsung browser | ||
return !device.isSamsungBrowser(); | ||
}; | ||
module.exports = RestrictedInput; |
{ | ||
"name": "restricted-input", | ||
"version": "1.0.11", | ||
"version": "1.1.0", | ||
"description": "Restrict inputs to certain valid characters (e.g. formatting phone or card numbers)", | ||
@@ -36,2 +36,5 @@ "author": "Braintree <code@getbraintree.com> (https://www.braintreepayments.com/)", | ||
}, | ||
"dependencies": { | ||
"browser-detection": "braintree/browser-detection#1.1.0" | ||
}, | ||
"devDependencies": { | ||
@@ -38,0 +41,0 @@ "browserify": "13.0.1", |
GitHub dependency
Supply chain riskContains a dependency which resolves to a GitHub URL. Dependencies fetched from GitHub specifiers are not immutable can be used to inject untrusted code or reduce the likelihood of a reproducible install.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
23
0
33487
1
707
1
1