@braintree/browser-detection 1.11.1 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/browser-detection.d.ts +5 -1
- package/dist/browser-detection.js +9 -1
- package/dist/is-android.js +1 -1
- package/dist/is-chrome.js +7 -1
- package/dist/is-duckduckgo.d.ts +2 -0
- package/dist/is-duckduckgo.js +5 -0
- package/dist/is-ios-google-search-app.d.ts +2 -0
- package/dist/is-ios-google-search-app.js +9 -0
- package/dist/is-ios-safari.js +11 -1
- package/dist/is-ios-webview.js +9 -6
- package/dist/is-opera.d.ts +2 -0
- package/dist/is-opera.js +7 -0
- package/dist/is-silk.d.ts +2 -0
- package/dist/is-silk.js +5 -0
- package/dist/supports-popups.js +3 -2
- package/is-duckduckgo.js +1 -0
- package/is-ios-google-search-app.js +1 -0
- package/is-opera.js +1 -0
- package/is-silk.js +1 -0
- package/package.json +12 -10
- package/CHANGELOG.md +0 -71
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ const browserDetection = require("browser-detection");
|
|
|
10
10
|
browserDetection.isAndroid();
|
|
11
11
|
browserDetection.isChromeOS();
|
|
12
12
|
browserDetection.isChrome();
|
|
13
|
+
browserDetection.isDuckDuckGo();
|
|
13
14
|
browserDetection.isEdge();
|
|
14
15
|
browserDetection.isFirefox();
|
|
15
16
|
browserDetection.isIe();
|
|
@@ -18,12 +19,15 @@ browserDetection.isIe10();
|
|
|
18
19
|
browserDetection.isIe11();
|
|
19
20
|
browserDetection.isIos();
|
|
20
21
|
browserDetection.isIosFirefox();
|
|
22
|
+
browserDetection.isIosGoogleSearchApp();
|
|
21
23
|
browserDetection.isIosSafari();
|
|
22
24
|
browserDetection.isIosWebview();
|
|
23
25
|
browserDetection.isIosUIWebview();
|
|
24
26
|
browserDetection.isIosWKWebview();
|
|
25
27
|
browserDetection.isMobileFirefox();
|
|
28
|
+
browserDetection.isOpera();
|
|
26
29
|
browserDetection.isSamsungBrowser();
|
|
30
|
+
browserDetection.isSilk();
|
|
27
31
|
browserDetection.hasSoftwareKeyboard();
|
|
28
32
|
browserDetection.supportsPaymentRequestApi();
|
|
29
33
|
browserDetection.supportsPopups();
|
|
@@ -35,6 +39,7 @@ To reduce build sizes, you can require just the modules you need:
|
|
|
35
39
|
const isAndroid = require("browser-detection/is-android");
|
|
36
40
|
const isChromeOS = require("browser-detection/is-chrome-os");
|
|
37
41
|
const isChrome = require("browser-detection/is-chrome");
|
|
42
|
+
const isDuckDuckGo = require("browser-detection/is-duckduckgo");
|
|
38
43
|
const isEdge = require("browser-detection/is-edge");
|
|
39
44
|
const isFirefox = require("browser-detection/is-firefox");
|
|
40
45
|
const isIe = require("browser-detection/is-ie");
|
|
@@ -43,12 +48,15 @@ const isIe10 = require("browser-detection/is-ie10");
|
|
|
43
48
|
const isIe11 = require("browser-detection/is-ie11");
|
|
44
49
|
const isIos = require("browser-detection/is-ios");
|
|
45
50
|
const isIosFirefox = require("browser-detection/is-ios-firefox");
|
|
51
|
+
const isIosGoogleSearchApp = require("browser-detection/is-ios-google-search-app");
|
|
46
52
|
const isIosSafari = require("browser-detection/is-ios-safari");
|
|
47
53
|
const isIosWebview = require("browser-detection/is-ios-webview");
|
|
48
54
|
const isIosUIWebview = require("browser-detection/is-ios-uiwebview");
|
|
49
55
|
const isIosWKWebview = require("browser-detection/is-ios-wkwebview");
|
|
50
56
|
const isMobileFirefox = require("browser-detection/is-mobile-firefox");
|
|
57
|
+
const isOpera = require("browser-detection/is-opera");
|
|
51
58
|
const isSamsungBrowser = require("browser-detection/is-samsung");
|
|
59
|
+
const isSilk = require("browser-detection/is-silk");
|
|
52
60
|
const hasSoftwareKeyboard = require("browser-detection/has-software-keyboard");
|
|
53
61
|
const suportsPaymentRequestApi = require("browser-detection/supports-payment-request-api");
|
|
54
62
|
const supportsPopups = require("browser-detection/supports-popups");
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import isAndroid = require("./is-android");
|
|
2
2
|
import isChromeOS = require("./is-chrome-os");
|
|
3
3
|
import isChrome = require("./is-chrome");
|
|
4
|
+
import isDuckDuckGo = require("./is-duckduckgo");
|
|
4
5
|
import isIe = require("./is-ie");
|
|
5
6
|
import isIe9 = require("./is-ie9");
|
|
6
7
|
import isIe10 = require("./is-ie10");
|
|
@@ -9,13 +10,16 @@ import isEdge = require("./is-edge");
|
|
|
9
10
|
import isFirefox = require("./is-firefox");
|
|
10
11
|
import isIos = require("./is-ios");
|
|
11
12
|
import isIosFirefox = require("./is-ios-firefox");
|
|
13
|
+
import isIosGoogleSearchApp = require("./is-ios-google-search-app");
|
|
12
14
|
import isIosSafari = require("./is-ios-safari");
|
|
13
15
|
import isIosUIWebview = require("./is-ios-uiwebview");
|
|
14
16
|
import isIosWebview = require("./is-ios-webview");
|
|
15
17
|
import isIosWKWebview = require("./is-ios-wkwebview");
|
|
16
18
|
import isMobileFirefox = require("./is-mobile-firefox");
|
|
19
|
+
import isOpera = require("./is-opera");
|
|
17
20
|
import isSamsungBrowser = require("./is-samsung");
|
|
21
|
+
import isSilk = require("./is-silk");
|
|
18
22
|
import hasSoftwareKeyboard = require("./has-software-keyboard");
|
|
19
23
|
import supportsPopups = require("./supports-popups");
|
|
20
24
|
import supportsPaymentRequestApi = require("./supports-payment-request-api");
|
|
21
|
-
export { isAndroid, isChromeOS, isChrome, isIe, isIe9, isIe10, isIe11, isEdge, isFirefox, isIos, isIosFirefox, isIosSafari, isIosUIWebview, isIosWebview, isIosWKWebview, isMobileFirefox, isSamsungBrowser, hasSoftwareKeyboard, supportsPopups, supportsPaymentRequestApi, };
|
|
25
|
+
export { isAndroid, isChromeOS, isChrome, isDuckDuckGo, isIe, isIe9, isIe10, isIe11, isEdge, isFirefox, isIos, isIosFirefox, isIosGoogleSearchApp, isIosSafari, isIosUIWebview, isIosWebview, isIosWKWebview, isMobileFirefox, isOpera, isSamsungBrowser, isSilk, hasSoftwareKeyboard, supportsPopups, supportsPaymentRequestApi, };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.supportsPaymentRequestApi = exports.supportsPopups = exports.hasSoftwareKeyboard = exports.isSamsungBrowser = exports.isMobileFirefox = exports.isIosWKWebview = exports.isIosWebview = exports.isIosUIWebview = exports.isIosSafari = exports.isIosFirefox = exports.isIos = exports.isFirefox = exports.isEdge = exports.isIe11 = exports.isIe10 = exports.isIe9 = exports.isIe = exports.isChrome = exports.isChromeOS = exports.isAndroid = void 0;
|
|
3
|
+
exports.supportsPaymentRequestApi = exports.supportsPopups = exports.hasSoftwareKeyboard = exports.isSilk = exports.isSamsungBrowser = exports.isOpera = exports.isMobileFirefox = exports.isIosWKWebview = exports.isIosWebview = exports.isIosUIWebview = exports.isIosSafari = exports.isIosGoogleSearchApp = exports.isIosFirefox = exports.isIos = exports.isFirefox = exports.isEdge = exports.isIe11 = exports.isIe10 = exports.isIe9 = exports.isIe = exports.isDuckDuckGo = exports.isChrome = exports.isChromeOS = exports.isAndroid = void 0;
|
|
4
4
|
var isAndroid = require("./is-android");
|
|
5
5
|
exports.isAndroid = isAndroid;
|
|
6
6
|
var isChromeOS = require("./is-chrome-os");
|
|
7
7
|
exports.isChromeOS = isChromeOS;
|
|
8
8
|
var isChrome = require("./is-chrome");
|
|
9
9
|
exports.isChrome = isChrome;
|
|
10
|
+
var isDuckDuckGo = require("./is-duckduckgo");
|
|
11
|
+
exports.isDuckDuckGo = isDuckDuckGo;
|
|
10
12
|
var isIe = require("./is-ie");
|
|
11
13
|
exports.isIe = isIe;
|
|
12
14
|
var isIe9 = require("./is-ie9");
|
|
@@ -23,6 +25,8 @@ var isIos = require("./is-ios");
|
|
|
23
25
|
exports.isIos = isIos;
|
|
24
26
|
var isIosFirefox = require("./is-ios-firefox");
|
|
25
27
|
exports.isIosFirefox = isIosFirefox;
|
|
28
|
+
var isIosGoogleSearchApp = require("./is-ios-google-search-app");
|
|
29
|
+
exports.isIosGoogleSearchApp = isIosGoogleSearchApp;
|
|
26
30
|
var isIosSafari = require("./is-ios-safari");
|
|
27
31
|
exports.isIosSafari = isIosSafari;
|
|
28
32
|
var isIosUIWebview = require("./is-ios-uiwebview");
|
|
@@ -33,8 +37,12 @@ var isIosWKWebview = require("./is-ios-wkwebview");
|
|
|
33
37
|
exports.isIosWKWebview = isIosWKWebview;
|
|
34
38
|
var isMobileFirefox = require("./is-mobile-firefox");
|
|
35
39
|
exports.isMobileFirefox = isMobileFirefox;
|
|
40
|
+
var isOpera = require("./is-opera");
|
|
41
|
+
exports.isOpera = isOpera;
|
|
36
42
|
var isSamsungBrowser = require("./is-samsung");
|
|
37
43
|
exports.isSamsungBrowser = isSamsungBrowser;
|
|
44
|
+
var isSilk = require("./is-silk");
|
|
45
|
+
exports.isSilk = isSilk;
|
|
38
46
|
var hasSoftwareKeyboard = require("./has-software-keyboard");
|
|
39
47
|
exports.hasSoftwareKeyboard = hasSoftwareKeyboard;
|
|
40
48
|
var supportsPopups = require("./supports-popups");
|
package/dist/is-android.js
CHANGED
package/dist/is-chrome.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var isEdge = require("./is-edge");
|
|
3
3
|
var isSamsung = require("./is-samsung");
|
|
4
|
+
var isDuckDuckGo = require("./is-duckduckgo");
|
|
5
|
+
var isOpera = require("./is-opera");
|
|
6
|
+
var isSilk = require("./is-silk");
|
|
4
7
|
module.exports = function isChrome(ua) {
|
|
5
8
|
ua = ua || window.navigator.userAgent;
|
|
6
9
|
return ((ua.indexOf("Chrome") !== -1 || ua.indexOf("CriOS") !== -1) &&
|
|
7
10
|
!isEdge(ua) &&
|
|
8
|
-
!isSamsung(ua)
|
|
11
|
+
!isSamsung(ua) &&
|
|
12
|
+
!isDuckDuckGo(ua) &&
|
|
13
|
+
!isOpera(ua) &&
|
|
14
|
+
!isSilk(ua));
|
|
9
15
|
};
|
package/dist/is-ios-safari.js
CHANGED
|
@@ -5,7 +5,17 @@ var webkitRegexp = /webkit/i;
|
|
|
5
5
|
function isWebkit(ua) {
|
|
6
6
|
return webkitRegexp.test(ua);
|
|
7
7
|
}
|
|
8
|
+
function isIosChrome(ua) {
|
|
9
|
+
return ua.indexOf("CriOS") > -1;
|
|
10
|
+
}
|
|
11
|
+
function isFacebook(ua) {
|
|
12
|
+
return ua.indexOf("FBAN") > -1;
|
|
13
|
+
}
|
|
8
14
|
module.exports = function isIosSafari(ua) {
|
|
9
15
|
ua = ua || window.navigator.userAgent;
|
|
10
|
-
return (isIos(ua) &&
|
|
16
|
+
return (isIos(ua) &&
|
|
17
|
+
isWebkit(ua) &&
|
|
18
|
+
!isIosChrome(ua) &&
|
|
19
|
+
!isIosFirefox(ua) &&
|
|
20
|
+
!isFacebook(ua));
|
|
11
21
|
};
|
package/dist/is-ios-webview.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var isIos = require("./is-ios");
|
|
3
|
-
|
|
4
|
-
function isGoogleSearchApp(ua) {
|
|
5
|
-
return /\bGSA\b/.test(ua);
|
|
6
|
-
}
|
|
3
|
+
var isIosGoogleSearchApp = require("./is-ios-google-search-app");
|
|
7
4
|
module.exports = function isIosWebview(ua) {
|
|
8
5
|
ua = ua || window.navigator.userAgent;
|
|
9
6
|
if (isIos(ua)) {
|
|
10
|
-
|
|
7
|
+
// The Google Search iOS app is technically a webview and doesn't support popups.
|
|
8
|
+
if (isIosGoogleSearchApp(ua)) {
|
|
11
9
|
return true;
|
|
12
10
|
}
|
|
13
|
-
return
|
|
11
|
+
return (
|
|
12
|
+
// Historically, a webview could be identified by the presence of AppleWebKit and _no_ presence of Safari after.
|
|
13
|
+
/.+AppleWebKit(?!.*Safari)/i.test(ua) ||
|
|
14
|
+
// A webview can now have 'Safari', but if it does, then we want to check the `safari` window prop as webviews won't have it.
|
|
15
|
+
(ua.indexOf("Safari") > -1 &&
|
|
16
|
+
(!window.safari || !window.safari.pushNotification)));
|
|
14
17
|
}
|
|
15
18
|
return false;
|
|
16
19
|
};
|
package/dist/is-opera.js
ADDED
package/dist/is-silk.js
ADDED
package/dist/supports-popups.js
CHANGED
|
@@ -5,6 +5,7 @@ var isIosFirefox = require("./is-ios-firefox");
|
|
|
5
5
|
var isIosWebview = require("./is-ios-webview");
|
|
6
6
|
var isChrome = require("./is-chrome");
|
|
7
7
|
var isSamsungBrowser = require("./is-samsung");
|
|
8
|
+
var isDuckDuckGo = require("./is-duckduckgo");
|
|
8
9
|
function isUnsupportedIosChrome(ua) {
|
|
9
10
|
ua = ua || window.navigator.userAgent;
|
|
10
11
|
var match = ua.match(/CriOS\/(\d+)\./);
|
|
@@ -19,10 +20,10 @@ function isOperaMini(ua) {
|
|
|
19
20
|
return ua.indexOf("Opera Mini") > -1;
|
|
20
21
|
}
|
|
21
22
|
function isAndroidWebview(ua) {
|
|
22
|
-
var androidWebviewRegExp = /Version\/[\d.]
|
|
23
|
+
var androidWebviewRegExp = /Version\/[\d.]+/i;
|
|
23
24
|
ua = ua || window.navigator.userAgent;
|
|
24
25
|
if (isAndroid(ua)) {
|
|
25
|
-
return androidWebviewRegExp.test(ua) && !isOperaMini(ua);
|
|
26
|
+
return (androidWebviewRegExp.test(ua) && !isOperaMini(ua) && !isDuckDuckGo(ua));
|
|
26
27
|
}
|
|
27
28
|
return false;
|
|
28
29
|
}
|
package/is-duckduckgo.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("./dist/is-duckduckgo");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("./dist/is-ios-google-search-app");
|
package/is-opera.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("./dist/is-opera");
|
package/is-silk.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("./dist/is-silk");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@braintree/browser-detection",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.0",
|
|
4
4
|
"description": "A small lib to detect browser compatibility for braintree products",
|
|
5
5
|
"main": "dist/browser-detection.js",
|
|
6
6
|
"types": "dist/browser-detection.d.ts",
|
|
@@ -8,16 +8,17 @@
|
|
|
8
8
|
"dist",
|
|
9
9
|
"*.js"
|
|
10
10
|
],
|
|
11
|
-
"dependencies": {},
|
|
12
11
|
"devDependencies": {
|
|
13
|
-
"@types/jest": "^
|
|
14
|
-
"@types/node": "^
|
|
15
|
-
"eslint": "^
|
|
16
|
-
"eslint
|
|
17
|
-
"
|
|
18
|
-
"prettier": "^
|
|
19
|
-
"
|
|
20
|
-
"
|
|
12
|
+
"@types/jest": "^27.4.1",
|
|
13
|
+
"@types/node": "^17.0.23",
|
|
14
|
+
"@typescript-eslint/eslint-plugin": "^5.19.0",
|
|
15
|
+
"eslint": "^8.13.0",
|
|
16
|
+
"eslint-config-braintree": "^6.0.0-typescript-prep-rc.2",
|
|
17
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
18
|
+
"jest": "^27.5.1",
|
|
19
|
+
"prettier": "^2.6.2",
|
|
20
|
+
"ts-jest": "^27.1.4",
|
|
21
|
+
"typescript": "^4.6.3"
|
|
21
22
|
},
|
|
22
23
|
"scripts": {
|
|
23
24
|
"prepublishOnly": "npm run build",
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
},
|
|
42
43
|
"homepage": "https://github.com/braintree/browser-detection#readme",
|
|
43
44
|
"jest": {
|
|
45
|
+
"testEnvironment": "jsdom",
|
|
44
46
|
"preset": "ts-jest",
|
|
45
47
|
"restoreMocks": true,
|
|
46
48
|
"resetMocks": true
|
package/CHANGELOG.md
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# Browser Detection - Release Notes
|
|
2
|
-
|
|
3
|
-
# 1.11.1 (2021-04-07)
|
|
4
|
-
|
|
5
|
-
- Fix issue where `is-ios-safari` was returning `true` for iOS Firefox browsers
|
|
6
|
-
|
|
7
|
-
# 1.11.0 (2020-10-27)
|
|
8
|
-
|
|
9
|
-
- Add `has-software-keyboard` method
|
|
10
|
-
|
|
11
|
-
# 1.10.1 (2020-10-19)
|
|
12
|
-
|
|
13
|
-
- Fix issue where typescript declarations did not get published
|
|
14
|
-
|
|
15
|
-
# 1.10.0 (2020-07-10)
|
|
16
|
-
|
|
17
|
-
- Add typescript types
|
|
18
|
-
|
|
19
|
-
## v1.9.0 (2019-09-18)
|
|
20
|
-
|
|
21
|
-
- Add `is-firefox` method
|
|
22
|
-
|
|
23
|
-
## v1.8.0 (2019-08-07)
|
|
24
|
-
|
|
25
|
-
- Add `is-chrome-os` method
|
|
26
|
-
- Fix README typo for iOS
|
|
27
|
-
- Update README code samples to use `const`
|
|
28
|
-
|
|
29
|
-
## 1.7.0 (2017-10-18)
|
|
30
|
-
|
|
31
|
-
- Add `supports-payment-request-api` method
|
|
32
|
-
|
|
33
|
-
## 1.6.0 (2017-07-25)
|
|
34
|
-
|
|
35
|
-
- Correct is-chrome to not return true on edge browser
|
|
36
|
-
- Correct supports-popups to not return true on iOS Firefox
|
|
37
|
-
- Add `is-samsung-browser` method
|
|
38
|
-
- Add `is-mobile-firefox` method
|
|
39
|
-
- Add `is-ios-firefox` method
|
|
40
|
-
|
|
41
|
-
## 1.5.0 (2017-07-03)
|
|
42
|
-
|
|
43
|
-
- Add `is-ie` method
|
|
44
|
-
- Add `is-ie11` method
|
|
45
|
-
- Add `is-edge` method
|
|
46
|
-
|
|
47
|
-
## 1.4.1 (2017-06-01)
|
|
48
|
-
|
|
49
|
-
- publish to npm as scoped package `@braintree/browser-detection`
|
|
50
|
-
|
|
51
|
-
## 1.4.0 (2017-05-22)
|
|
52
|
-
|
|
53
|
-
- Add `is-ios-uiwebview` method
|
|
54
|
-
- Add `is-ios-wkwebview` method
|
|
55
|
-
|
|
56
|
-
## 1.3.0 (2017-04-11)
|
|
57
|
-
|
|
58
|
-
- Add `is-ios-webview` method
|
|
59
|
-
- Add `is-ios-safari` method
|
|
60
|
-
|
|
61
|
-
## 1.2.0 (2017-04-10)
|
|
62
|
-
|
|
63
|
-
- Add `is-ie10` method
|
|
64
|
-
|
|
65
|
-
## 1.1.0 (2017-04-07)
|
|
66
|
-
|
|
67
|
-
- Add `is-chrome` method
|
|
68
|
-
|
|
69
|
-
## 1.0.0 (2017-04-05)
|
|
70
|
-
|
|
71
|
-
- Initial public release of browser-detection
|