@braintree/browser-detection 1.14.0 → 1.17.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 +22 -0
- package/dist/browser-detection.d.ts +27 -25
- package/dist/browser-detection.js +53 -49
- package/dist/has-software-keyboard.d.ts +2 -2
- package/dist/has-software-keyboard.js +8 -6
- package/dist/is-android.d.ts +2 -2
- package/dist/is-android.js +4 -2
- package/dist/is-chrome-os.d.ts +2 -2
- package/dist/is-chrome-os.js +4 -2
- package/dist/is-chrome.d.ts +2 -2
- package/dist/is-chrome.js +14 -12
- package/dist/is-duckduckgo.d.ts +2 -2
- package/dist/is-duckduckgo.js +4 -2
- package/dist/is-edge.d.ts +2 -2
- package/dist/is-edge.js +4 -2
- package/dist/is-firefox.d.ts +2 -2
- package/dist/is-firefox.js +4 -2
- package/dist/is-ie.d.ts +2 -2
- package/dist/is-ie.js +6 -4
- package/dist/is-ie10.d.ts +2 -2
- package/dist/is-ie10.js +4 -2
- package/dist/is-ie11.d.ts +2 -2
- package/dist/is-ie11.js +4 -2
- package/dist/is-ie9.d.ts +2 -2
- package/dist/is-ie9.js +4 -2
- package/dist/is-ios-firefox.d.ts +2 -2
- package/dist/is-ios-firefox.js +4 -2
- package/dist/is-ios-google-search-app.d.ts +2 -2
- package/dist/is-ios-google-search-app.js +6 -4
- package/dist/is-ios-safari.d.ts +2 -2
- package/dist/is-ios-safari.js +8 -6
- package/dist/is-ios-uiwebview.d.ts +2 -2
- package/dist/is-ios-uiwebview.js +6 -4
- package/dist/is-ios-webview.d.ts +2 -2
- package/dist/is-ios-webview.js +8 -6
- package/dist/is-ios-wkwebview.d.ts +2 -2
- package/dist/is-ios-wkwebview.js +6 -4
- package/dist/is-ios.d.ts +2 -2
- package/dist/is-ios.js +8 -3
- package/dist/is-ipados.d.ts +2 -0
- package/dist/is-ipados.js +10 -0
- package/dist/is-mobile-firefox.d.ts +2 -2
- package/dist/is-mobile-firefox.js +8 -6
- package/dist/is-opera.d.ts +2 -2
- package/dist/is-opera.js +4 -2
- package/dist/is-safari.d.ts +2 -0
- package/dist/is-safari.js +9 -0
- package/dist/is-samsung.d.ts +2 -2
- package/dist/is-samsung.js +4 -2
- package/dist/is-silk.d.ts +2 -2
- package/dist/is-silk.js +4 -2
- package/dist/supports-payment-request-api.d.ts +2 -2
- package/dist/supports-payment-request-api.js +6 -4
- package/dist/supports-popups.d.ts +2 -2
- package/dist/supports-popups.js +15 -13
- package/is-ipados.js +1 -0
- package/is-safari.js +1 -0
- package/package.json +14 -18
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ browserDetection.isChrome();
|
|
|
13
13
|
browserDetection.isDuckDuckGo();
|
|
14
14
|
browserDetection.isEdge();
|
|
15
15
|
browserDetection.isFirefox();
|
|
16
|
+
browserDetection.isSafari();
|
|
16
17
|
browserDetection.isIe();
|
|
17
18
|
browserDetection.isIe9();
|
|
18
19
|
browserDetection.isIe10();
|
|
@@ -24,6 +25,7 @@ browserDetection.isIosSafari();
|
|
|
24
25
|
browserDetection.isIosWebview();
|
|
25
26
|
browserDetection.isIosUIWebview();
|
|
26
27
|
browserDetection.isIosWKWebview();
|
|
28
|
+
browserDetection.isIpadOS();
|
|
27
29
|
browserDetection.isMobileFirefox();
|
|
28
30
|
browserDetection.isOpera();
|
|
29
31
|
browserDetection.isSamsungBrowser();
|
|
@@ -42,6 +44,7 @@ const isChrome = require("browser-detection/is-chrome");
|
|
|
42
44
|
const isDuckDuckGo = require("browser-detection/is-duckduckgo");
|
|
43
45
|
const isEdge = require("browser-detection/is-edge");
|
|
44
46
|
const isFirefox = require("browser-detection/is-firefox");
|
|
47
|
+
const isSafari = require("browser-detection/is-safari");
|
|
45
48
|
const isIe = require("browser-detection/is-ie");
|
|
46
49
|
const isIe9 = require("browser-detection/is-ie9");
|
|
47
50
|
const isIe10 = require("browser-detection/is-ie10");
|
|
@@ -53,6 +56,7 @@ const isIosSafari = require("browser-detection/is-ios-safari");
|
|
|
53
56
|
const isIosWebview = require("browser-detection/is-ios-webview");
|
|
54
57
|
const isIosUIWebview = require("browser-detection/is-ios-uiwebview");
|
|
55
58
|
const isIosWKWebview = require("browser-detection/is-ios-wkwebview");
|
|
59
|
+
const isIpadOS = require("browser-detection/is-ipados");
|
|
56
60
|
const isMobileFirefox = require("browser-detection/is-mobile-firefox");
|
|
57
61
|
const isOpera = require("browser-detection/is-opera");
|
|
58
62
|
const isSamsungBrowser = require("browser-detection/is-samsung");
|
|
@@ -67,3 +71,21 @@ const supportsPopups = require("browser-detection/supports-popups");
|
|
|
67
71
|
```sh
|
|
68
72
|
npm test
|
|
69
73
|
```
|
|
74
|
+
|
|
75
|
+
### Notes on isIpadOs
|
|
76
|
+
|
|
77
|
+
`isIpadOS` is a new option for browser detection, and is also included in isIos. isIos defaults to checking for iPads to maintain consistent behavior with how it acted in the past. If `checkIpadOS` is set to false, then it will only check for older gen iPads and current iOS
|
|
78
|
+
|
|
79
|
+
```js
|
|
80
|
+
const browserDetection = require("browser-detection");
|
|
81
|
+
const ua = window.navigator.userAgent;
|
|
82
|
+
// assume ua is from iPadOs 13 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15"
|
|
83
|
+
browserDetection.isIos(ua);
|
|
84
|
+
// will return true
|
|
85
|
+
browserDetection.isIos(ua, false);
|
|
86
|
+
// will return false
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Notes on Safari
|
|
90
|
+
|
|
91
|
+
`is-safari` is used for _desktop_ Safari detection, if you are trying to detect an iOS version of Safari, use `is-ios-safari`.
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import isAndroid
|
|
2
|
-
import isChromeOS
|
|
3
|
-
import isChrome
|
|
4
|
-
import isDuckDuckGo
|
|
5
|
-
import isIe
|
|
6
|
-
import isIe9
|
|
7
|
-
import isIe10
|
|
8
|
-
import isIe11
|
|
9
|
-
import isEdge
|
|
10
|
-
import isFirefox
|
|
11
|
-
import isIos
|
|
12
|
-
import isIosFirefox
|
|
13
|
-
import isIosGoogleSearchApp
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
|
|
1
|
+
import isAndroid from "./is-android";
|
|
2
|
+
import isChromeOS from "./is-chrome-os";
|
|
3
|
+
import isChrome from "./is-chrome";
|
|
4
|
+
import isDuckDuckGo from "./is-duckduckgo";
|
|
5
|
+
import isIe from "./is-ie";
|
|
6
|
+
import isIe9 from "./is-ie9";
|
|
7
|
+
import isIe10 from "./is-ie10";
|
|
8
|
+
import isIe11 from "./is-ie11";
|
|
9
|
+
import isEdge from "./is-edge";
|
|
10
|
+
import isFirefox from "./is-firefox";
|
|
11
|
+
import isIos from "./is-ios";
|
|
12
|
+
import isIosFirefox from "./is-ios-firefox";
|
|
13
|
+
import isIosGoogleSearchApp from "./is-ios-google-search-app";
|
|
14
|
+
import isSafari from "./is-safari";
|
|
15
|
+
import isIosSafari from "./is-ios-safari";
|
|
16
|
+
import isIosUIWebview from "./is-ios-uiwebview";
|
|
17
|
+
import isIosWebview from "./is-ios-webview";
|
|
18
|
+
import isIosWKWebview from "./is-ios-wkwebview";
|
|
19
|
+
import isIpadOS from "./is-ipados";
|
|
20
|
+
import isMobileFirefox from "./is-mobile-firefox";
|
|
21
|
+
import isOpera from "./is-opera";
|
|
22
|
+
import isSamsungBrowser from "./is-samsung";
|
|
23
|
+
import isSilk from "./is-silk";
|
|
24
|
+
import hasSoftwareKeyboard from "./has-software-keyboard";
|
|
25
|
+
import supportsPopups from "./supports-popups";
|
|
26
|
+
import supportsPaymentRequestApi from "./supports-payment-request-api";
|
|
27
|
+
export { isAndroid, isChromeOS, isChrome, isDuckDuckGo, isIe, isIe9, isIe10, isIe11, isEdge, isFirefox, isIos, isIosFirefox, isIosGoogleSearchApp, isSafari, isIosSafari, isIosUIWebview, isIosWebview, isIosWKWebview, isIpadOS, isMobileFirefox, isOpera, isSamsungBrowser, isSilk, hasSoftwareKeyboard, supportsPopups, supportsPaymentRequestApi, };
|
|
@@ -1,51 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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
|
-
var
|
|
5
|
-
exports.isAndroid =
|
|
6
|
-
var
|
|
7
|
-
exports.isChromeOS =
|
|
8
|
-
var
|
|
9
|
-
exports.isChrome =
|
|
10
|
-
var
|
|
11
|
-
exports.isDuckDuckGo =
|
|
12
|
-
var
|
|
13
|
-
exports.isIe =
|
|
14
|
-
var
|
|
15
|
-
exports.isIe9 =
|
|
16
|
-
var
|
|
17
|
-
exports.isIe10 =
|
|
18
|
-
var
|
|
19
|
-
exports.isIe11 =
|
|
20
|
-
var
|
|
21
|
-
exports.isEdge =
|
|
22
|
-
var
|
|
23
|
-
exports.isFirefox =
|
|
24
|
-
var
|
|
25
|
-
exports.isIos =
|
|
26
|
-
var
|
|
27
|
-
exports.isIosFirefox =
|
|
28
|
-
var
|
|
29
|
-
exports.isIosGoogleSearchApp =
|
|
30
|
-
var
|
|
31
|
-
exports.
|
|
32
|
-
var
|
|
33
|
-
exports.
|
|
34
|
-
var
|
|
35
|
-
exports.
|
|
36
|
-
var
|
|
37
|
-
exports.
|
|
38
|
-
var
|
|
39
|
-
exports.
|
|
40
|
-
var
|
|
41
|
-
exports.
|
|
42
|
-
var
|
|
43
|
-
exports.
|
|
44
|
-
var
|
|
45
|
-
exports.
|
|
46
|
-
var
|
|
47
|
-
exports.
|
|
48
|
-
var
|
|
49
|
-
exports.
|
|
50
|
-
var
|
|
51
|
-
exports.
|
|
3
|
+
exports.supportsPaymentRequestApi = exports.supportsPopups = exports.hasSoftwareKeyboard = exports.isSilk = exports.isSamsungBrowser = exports.isOpera = exports.isMobileFirefox = exports.isIpadOS = exports.isIosWKWebview = exports.isIosWebview = exports.isIosUIWebview = exports.isIosSafari = exports.isSafari = 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
|
+
var is_android_1 = require("./is-android");
|
|
5
|
+
exports.isAndroid = is_android_1.default;
|
|
6
|
+
var is_chrome_os_1 = require("./is-chrome-os");
|
|
7
|
+
exports.isChromeOS = is_chrome_os_1.default;
|
|
8
|
+
var is_chrome_1 = require("./is-chrome");
|
|
9
|
+
exports.isChrome = is_chrome_1.default;
|
|
10
|
+
var is_duckduckgo_1 = require("./is-duckduckgo");
|
|
11
|
+
exports.isDuckDuckGo = is_duckduckgo_1.default;
|
|
12
|
+
var is_ie_1 = require("./is-ie");
|
|
13
|
+
exports.isIe = is_ie_1.default;
|
|
14
|
+
var is_ie9_1 = require("./is-ie9");
|
|
15
|
+
exports.isIe9 = is_ie9_1.default;
|
|
16
|
+
var is_ie10_1 = require("./is-ie10");
|
|
17
|
+
exports.isIe10 = is_ie10_1.default;
|
|
18
|
+
var is_ie11_1 = require("./is-ie11");
|
|
19
|
+
exports.isIe11 = is_ie11_1.default;
|
|
20
|
+
var is_edge_1 = require("./is-edge");
|
|
21
|
+
exports.isEdge = is_edge_1.default;
|
|
22
|
+
var is_firefox_1 = require("./is-firefox");
|
|
23
|
+
exports.isFirefox = is_firefox_1.default;
|
|
24
|
+
var is_ios_1 = require("./is-ios");
|
|
25
|
+
exports.isIos = is_ios_1.default;
|
|
26
|
+
var is_ios_firefox_1 = require("./is-ios-firefox");
|
|
27
|
+
exports.isIosFirefox = is_ios_firefox_1.default;
|
|
28
|
+
var is_ios_google_search_app_1 = require("./is-ios-google-search-app");
|
|
29
|
+
exports.isIosGoogleSearchApp = is_ios_google_search_app_1.default;
|
|
30
|
+
var is_safari_1 = require("./is-safari");
|
|
31
|
+
exports.isSafari = is_safari_1.default;
|
|
32
|
+
var is_ios_safari_1 = require("./is-ios-safari");
|
|
33
|
+
exports.isIosSafari = is_ios_safari_1.default;
|
|
34
|
+
var is_ios_uiwebview_1 = require("./is-ios-uiwebview");
|
|
35
|
+
exports.isIosUIWebview = is_ios_uiwebview_1.default;
|
|
36
|
+
var is_ios_webview_1 = require("./is-ios-webview");
|
|
37
|
+
exports.isIosWebview = is_ios_webview_1.default;
|
|
38
|
+
var is_ios_wkwebview_1 = require("./is-ios-wkwebview");
|
|
39
|
+
exports.isIosWKWebview = is_ios_wkwebview_1.default;
|
|
40
|
+
var is_ipados_1 = require("./is-ipados");
|
|
41
|
+
exports.isIpadOS = is_ipados_1.default;
|
|
42
|
+
var is_mobile_firefox_1 = require("./is-mobile-firefox");
|
|
43
|
+
exports.isMobileFirefox = is_mobile_firefox_1.default;
|
|
44
|
+
var is_opera_1 = require("./is-opera");
|
|
45
|
+
exports.isOpera = is_opera_1.default;
|
|
46
|
+
var is_samsung_1 = require("./is-samsung");
|
|
47
|
+
exports.isSamsungBrowser = is_samsung_1.default;
|
|
48
|
+
var is_silk_1 = require("./is-silk");
|
|
49
|
+
exports.isSilk = is_silk_1.default;
|
|
50
|
+
var has_software_keyboard_1 = require("./has-software-keyboard");
|
|
51
|
+
exports.hasSoftwareKeyboard = has_software_keyboard_1.default;
|
|
52
|
+
var supports_popups_1 = require("./supports-popups");
|
|
53
|
+
exports.supportsPopups = supports_popups_1.default;
|
|
54
|
+
var supports_payment_request_api_1 = require("./supports-payment-request-api");
|
|
55
|
+
exports.supportsPaymentRequestApi = supports_payment_request_api_1.default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function hasSoftwareKeyboard(): boolean;
|
|
2
|
+
export default hasSoftwareKeyboard;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_android_1 = require("./is-android");
|
|
4
|
+
var is_chrome_os_1 = require("./is-chrome-os");
|
|
5
|
+
var is_ios_1 = require("./is-ios");
|
|
6
|
+
function hasSoftwareKeyboard() {
|
|
7
|
+
return (0, is_android_1.default)() || (0, is_chrome_os_1.default)() || (0, is_ios_1.default)();
|
|
8
|
+
}
|
|
9
|
+
exports.default = hasSoftwareKeyboard;
|
package/dist/is-android.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isAndroid(ua?: string): boolean;
|
|
2
|
+
export default isAndroid;
|
package/dist/is-android.js
CHANGED
package/dist/is-chrome-os.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isChromeOS(ua?: string): boolean;
|
|
2
|
+
export default isChromeOS;
|
package/dist/is-chrome-os.js
CHANGED
package/dist/is-chrome.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isChrome(ua?: string): boolean;
|
|
2
|
+
export default isChrome;
|
package/dist/is-chrome.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_edge_1 = require("./is-edge");
|
|
4
|
+
var is_samsung_1 = require("./is-samsung");
|
|
5
|
+
var is_duckduckgo_1 = require("./is-duckduckgo");
|
|
6
|
+
var is_opera_1 = require("./is-opera");
|
|
7
|
+
var is_silk_1 = require("./is-silk");
|
|
8
|
+
function isChrome(ua) {
|
|
8
9
|
ua = ua || window.navigator.userAgent;
|
|
9
10
|
return ((ua.indexOf("Chrome") !== -1 || ua.indexOf("CriOS") !== -1) &&
|
|
10
|
-
!
|
|
11
|
-
!
|
|
12
|
-
!
|
|
13
|
-
!
|
|
14
|
-
!
|
|
15
|
-
}
|
|
11
|
+
!(0, is_edge_1.default)(ua) &&
|
|
12
|
+
!(0, is_samsung_1.default)(ua) &&
|
|
13
|
+
!(0, is_duckduckgo_1.default)(ua) &&
|
|
14
|
+
!(0, is_opera_1.default)(ua) &&
|
|
15
|
+
!(0, is_silk_1.default)(ua));
|
|
16
|
+
}
|
|
17
|
+
exports.default = isChrome;
|
package/dist/is-duckduckgo.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isDuckDuckGo(ua?: string): boolean;
|
|
2
|
+
export default isDuckDuckGo;
|
package/dist/is-duckduckgo.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isDuckDuckGo(ua) {
|
|
3
4
|
ua = ua || window.navigator.userAgent;
|
|
4
5
|
return ua.indexOf("DuckDuckGo/") !== -1;
|
|
5
|
-
}
|
|
6
|
+
}
|
|
7
|
+
exports.default = isDuckDuckGo;
|
package/dist/is-edge.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isEdge(ua?: string): boolean;
|
|
2
|
+
export default isEdge;
|
package/dist/is-edge.js
CHANGED
package/dist/is-firefox.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isFirefox(ua?: string): boolean;
|
|
2
|
+
export default isFirefox;
|
package/dist/is-firefox.js
CHANGED
package/dist/is-ie.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIE(ua?: string): boolean;
|
|
2
|
+
export default isIE;
|
package/dist/is-ie.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_ie11_1 = require("./is-ie11");
|
|
4
|
+
function isIE(ua) {
|
|
4
5
|
ua = ua || window.navigator.userAgent;
|
|
5
|
-
return ua.indexOf("MSIE") !== -1 ||
|
|
6
|
-
}
|
|
6
|
+
return ua.indexOf("MSIE") !== -1 || (0, is_ie11_1.default)(ua);
|
|
7
|
+
}
|
|
8
|
+
exports.default = isIE;
|
package/dist/is-ie10.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIe10(ua?: string): boolean;
|
|
2
|
+
export default isIe10;
|
package/dist/is-ie10.js
CHANGED
package/dist/is-ie11.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIe11(ua?: string): boolean;
|
|
2
|
+
export default isIe11;
|
package/dist/is-ie11.js
CHANGED
package/dist/is-ie9.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIe9(ua?: string): boolean;
|
|
2
|
+
export default isIe9;
|
package/dist/is-ie9.js
CHANGED
package/dist/is-ios-firefox.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIosFirefox(ua?: string): boolean;
|
|
2
|
+
export default isIosFirefox;
|
package/dist/is-ios-firefox.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isIosFirefox(ua) {
|
|
3
4
|
ua = ua || window.navigator.userAgent;
|
|
4
5
|
return /FxiOS/i.test(ua);
|
|
5
|
-
}
|
|
6
|
+
}
|
|
7
|
+
exports.default = isIosFirefox;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIosGoogleSearchApp(ua?: string): boolean;
|
|
2
|
+
export default isIosGoogleSearchApp;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_ios_1 = require("./is-ios");
|
|
3
4
|
function isGoogleSearchApp(ua) {
|
|
4
5
|
return /\bGSA\b/.test(ua);
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
function isIosGoogleSearchApp(ua) {
|
|
7
8
|
ua = ua || window.navigator.userAgent;
|
|
8
|
-
return
|
|
9
|
-
}
|
|
9
|
+
return (0, is_ios_1.default)(ua) && isGoogleSearchApp(ua);
|
|
10
|
+
}
|
|
11
|
+
exports.default = isIosGoogleSearchApp;
|
package/dist/is-ios-safari.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIosSafari(ua?: string): boolean;
|
|
2
|
+
export default isIosSafari;
|
package/dist/is-ios-safari.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_ios_1 = require("./is-ios");
|
|
4
|
+
var is_ios_firefox_1 = require("./is-ios-firefox");
|
|
4
5
|
var webkitRegexp = /webkit/i;
|
|
5
6
|
function isWebkit(ua) {
|
|
6
7
|
return webkitRegexp.test(ua);
|
|
@@ -11,11 +12,12 @@ function isIosChrome(ua) {
|
|
|
11
12
|
function isFacebook(ua) {
|
|
12
13
|
return ua.indexOf("FBAN") > -1;
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
function isIosSafari(ua) {
|
|
15
16
|
ua = ua || window.navigator.userAgent;
|
|
16
|
-
return (
|
|
17
|
+
return ((0, is_ios_1.default)(ua) &&
|
|
17
18
|
isWebkit(ua) &&
|
|
18
19
|
!isIosChrome(ua) &&
|
|
19
|
-
!
|
|
20
|
+
!(0, is_ios_firefox_1.default)(ua) &&
|
|
20
21
|
!isFacebook(ua));
|
|
21
|
-
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = isIosSafari;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIosUIWebview(ua?: string, statusBarVisible?: boolean): boolean;
|
|
2
|
+
export default isIosUIWebview;
|
package/dist/is-ios-uiwebview.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_ios_webview_1 = require("./is-ios-webview");
|
|
4
|
+
function isIosUIWebview(ua, statusBarVisible) {
|
|
4
5
|
statusBarVisible =
|
|
5
6
|
typeof statusBarVisible !== "undefined"
|
|
6
7
|
? statusBarVisible
|
|
7
8
|
: window.statusbar.visible;
|
|
8
|
-
return
|
|
9
|
-
}
|
|
9
|
+
return (0, is_ios_webview_1.default)(ua) && !statusBarVisible;
|
|
10
|
+
}
|
|
11
|
+
exports.default = isIosUIWebview;
|
package/dist/is-ios-webview.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIosWebview(ua?: string): boolean;
|
|
2
|
+
export default isIosWebview;
|
package/dist/is-ios-webview.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_ios_1 = require("./is-ios");
|
|
4
|
+
var is_ios_google_search_app_1 = require("./is-ios-google-search-app");
|
|
5
|
+
function isIosWebview(ua) {
|
|
5
6
|
ua = ua || window.navigator.userAgent;
|
|
6
|
-
if (
|
|
7
|
+
if ((0, is_ios_1.default)(ua)) {
|
|
7
8
|
// The Google Search iOS app is technically a webview and doesn't support popups.
|
|
8
|
-
if (
|
|
9
|
+
if ((0, is_ios_google_search_app_1.default)(ua)) {
|
|
9
10
|
return true;
|
|
10
11
|
}
|
|
11
12
|
// Historically, a webview could be identified by the presence of AppleWebKit and _no_ presence of Safari after.
|
|
12
13
|
return /.+AppleWebKit(?!.*Safari)/i.test(ua);
|
|
13
14
|
}
|
|
14
15
|
return false;
|
|
15
|
-
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = isIosWebview;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIosWKWebview(ua?: string, statusBarVisible?: boolean): boolean;
|
|
2
|
+
export default isIosWKWebview;
|
package/dist/is-ios-wkwebview.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_ios_webview_1 = require("./is-ios-webview");
|
|
4
|
+
function isIosWKWebview(ua, statusBarVisible) {
|
|
4
5
|
statusBarVisible =
|
|
5
6
|
typeof statusBarVisible !== "undefined"
|
|
6
7
|
? statusBarVisible
|
|
7
8
|
: window.statusbar.visible;
|
|
8
|
-
return
|
|
9
|
-
}
|
|
9
|
+
return (0, is_ios_webview_1.default)(ua) && statusBarVisible;
|
|
10
|
+
}
|
|
11
|
+
exports.default = isIosWKWebview;
|
package/dist/is-ios.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isIos(ua?: string, checkIpadOS?: boolean, document?: object): boolean;
|
|
2
|
+
export default isIos;
|
package/dist/is-ios.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_ipados_1 = require("./is-ipados");
|
|
4
|
+
function isIos(ua, checkIpadOS, document) {
|
|
5
|
+
if (checkIpadOS === void 0) { checkIpadOS = true; }
|
|
3
6
|
ua = ua || window.navigator.userAgent;
|
|
4
|
-
|
|
5
|
-
|
|
7
|
+
var iOsTest = /iPhone|iPod|iPad/i.test(ua);
|
|
8
|
+
return checkIpadOS ? iOsTest || (0, is_ipados_1.default)(ua, document) : iOsTest;
|
|
9
|
+
}
|
|
10
|
+
exports.default = isIos;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isIpadOS(ua, document) {
|
|
4
|
+
ua = ua || window.navigator.userAgent;
|
|
5
|
+
document = document || window.document;
|
|
6
|
+
// "ontouchend" is used to determine if a browser is on an iPad, otherwise
|
|
7
|
+
// user-agents for iPadOS behave/identify as a desktop browser
|
|
8
|
+
return /Mac|iPad/i.test(ua) && "ontouchend" in document;
|
|
9
|
+
}
|
|
10
|
+
exports.default = isIpadOS;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isMobileFirefox(ua?: string): boolean;
|
|
2
|
+
export default isMobileFirefox;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_ios_firefox_1 = require("./is-ios-firefox");
|
|
4
|
+
var is_firefox_1 = require("./is-firefox");
|
|
5
|
+
function isMobileFirefox(ua) {
|
|
5
6
|
ua = ua || window.navigator.userAgent;
|
|
6
|
-
return (
|
|
7
|
-
(/iPhone|iPod|iPad|Mobile|Tablet/i.test(ua) &&
|
|
8
|
-
}
|
|
7
|
+
return ((0, is_ios_firefox_1.default)(ua) ||
|
|
8
|
+
(/iPhone|iPod|iPad|Mobile|Tablet/i.test(ua) && (0, is_firefox_1.default)(ua)));
|
|
9
|
+
}
|
|
10
|
+
exports.default = isMobileFirefox;
|
package/dist/is-opera.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isOpera(ua?: string): boolean;
|
|
2
|
+
export default isOpera;
|
package/dist/is-opera.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isOpera(ua) {
|
|
3
4
|
ua = ua || window.navigator.userAgent;
|
|
4
5
|
return (ua.indexOf("OPR/") !== -1 ||
|
|
5
6
|
ua.indexOf("Opera/") !== -1 ||
|
|
6
7
|
ua.indexOf("OPT/") !== -1);
|
|
7
|
-
}
|
|
8
|
+
}
|
|
9
|
+
exports.default = isOpera;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isSafari(ua) {
|
|
4
|
+
ua = ua || window.navigator.userAgent;
|
|
5
|
+
return (/^Mozilla\/5\.0.*Safari\//.test(ua) &&
|
|
6
|
+
!/(iPhone|iPad|iPod|Android|SM-)/i.test(ua) &&
|
|
7
|
+
!/Chrome|CriOS|FxiOS|OPiOS|mercury/i.test(ua));
|
|
8
|
+
}
|
|
9
|
+
exports.default = isSafari;
|
package/dist/is-samsung.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isSamsungBrowser(ua?: string): boolean;
|
|
2
|
+
export default isSamsungBrowser;
|
package/dist/is-samsung.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isSamsungBrowser(ua) {
|
|
3
4
|
ua = ua || window.navigator.userAgent;
|
|
4
5
|
return /SamsungBrowser/i.test(ua);
|
|
5
|
-
}
|
|
6
|
+
}
|
|
7
|
+
exports.default = isSamsungBrowser;
|
package/dist/is-silk.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function isSilk(ua?: string): boolean;
|
|
2
|
+
export default isSilk;
|
package/dist/is-silk.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function supportsPaymentRequestApi(ua?: string): boolean;
|
|
2
|
+
export default supportsPaymentRequestApi;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var is_chrome_1 = require("./is-chrome");
|
|
3
4
|
var MINIMUM_SUPPORTED_CHROME_VERSION = 61;
|
|
4
5
|
function isSupportedChromeVersion(ua) {
|
|
5
6
|
var match = ua.match(/Chrome\/(\d+)\./);
|
|
@@ -9,12 +10,12 @@ function isSupportedChromeVersion(ua) {
|
|
|
9
10
|
var version = parseInt(match[1], 10);
|
|
10
11
|
return version >= MINIMUM_SUPPORTED_CHROME_VERSION;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
function supportsPaymentRequestApi(ua) {
|
|
13
14
|
ua = ua || window.navigator.userAgent;
|
|
14
15
|
if (!window.PaymentRequest) {
|
|
15
16
|
return false;
|
|
16
17
|
}
|
|
17
|
-
if (!
|
|
18
|
+
if (!(0, is_chrome_1.default)(ua)) {
|
|
18
19
|
// if browser is not chrome based, but has Payment Request API
|
|
19
20
|
// this means that it implemented the API after it was finalized
|
|
20
21
|
return true;
|
|
@@ -23,4 +24,5 @@ module.exports = function supportsPaymentRequestApi(ua) {
|
|
|
23
24
|
// Android Chrome as early as Chrome v53, but it was not
|
|
24
25
|
// finalized until v61
|
|
25
26
|
return isSupportedChromeVersion(ua);
|
|
26
|
-
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = supportsPaymentRequestApi;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
export
|
|
1
|
+
declare function supportsPopups(ua?: string): boolean;
|
|
2
|
+
export default supportsPopups;
|
package/dist/supports-popups.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
3
|
var MINIMUM_SUPPORTED_CHROME_IOS_VERSION = 48;
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
4
|
+
var is_android_1 = require("./is-android");
|
|
5
|
+
var is_ios_firefox_1 = require("./is-ios-firefox");
|
|
6
|
+
var is_ios_webview_1 = require("./is-ios-webview");
|
|
7
|
+
var is_chrome_1 = require("./is-chrome");
|
|
8
|
+
var is_samsung_1 = require("./is-samsung");
|
|
9
|
+
var is_duckduckgo_1 = require("./is-duckduckgo");
|
|
9
10
|
function isUnsupportedIosChrome(ua) {
|
|
10
11
|
ua = ua || window.navigator.userAgent;
|
|
11
12
|
var match = ua.match(/CriOS\/(\d+)\./);
|
|
@@ -22,20 +23,21 @@ function isOperaMini(ua) {
|
|
|
22
23
|
function isAndroidWebview(ua) {
|
|
23
24
|
var androidWebviewRegExp = /Version\/[\d.]+/i;
|
|
24
25
|
ua = ua || window.navigator.userAgent;
|
|
25
|
-
if (
|
|
26
|
-
return (androidWebviewRegExp.test(ua) && !isOperaMini(ua) && !
|
|
26
|
+
if ((0, is_android_1.default)(ua)) {
|
|
27
|
+
return (androidWebviewRegExp.test(ua) && !isOperaMini(ua) && !(0, is_duckduckgo_1.default)(ua));
|
|
27
28
|
}
|
|
28
29
|
return false;
|
|
29
30
|
}
|
|
30
31
|
function isOldSamsungBrowserOrSamsungWebview(ua) {
|
|
31
|
-
return !
|
|
32
|
+
return !(0, is_chrome_1.default)(ua) && !(0, is_samsung_1.default)(ua) && /samsung/i.test(ua);
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
+
function supportsPopups(ua) {
|
|
34
35
|
ua = ua || window.navigator.userAgent;
|
|
35
|
-
return !(
|
|
36
|
-
|
|
36
|
+
return !((0, is_ios_webview_1.default)(ua) ||
|
|
37
|
+
(0, is_ios_firefox_1.default)(ua) ||
|
|
37
38
|
isAndroidWebview(ua) ||
|
|
38
39
|
isOperaMini(ua) ||
|
|
39
40
|
isUnsupportedIosChrome(ua) ||
|
|
40
41
|
isOldSamsungBrowserOrSamsungWebview(ua));
|
|
41
|
-
}
|
|
42
|
+
}
|
|
43
|
+
exports.default = supportsPopups;
|
package/is-ipados.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("./dist/is-ipados");
|
package/is-safari.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("./dist/is-safari");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@braintree/browser-detection",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.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",
|
|
@@ -9,16 +9,17 @@
|
|
|
9
9
|
"*.js"
|
|
10
10
|
],
|
|
11
11
|
"devDependencies": {
|
|
12
|
-
"@types/jest": "^
|
|
13
|
-
"@types/node": "^
|
|
14
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
15
|
-
"
|
|
12
|
+
"@types/jest": "^29.4.0",
|
|
13
|
+
"@types/node": "^18.14.6",
|
|
14
|
+
"@typescript-eslint/eslint-plugin": "^5.54.1",
|
|
15
|
+
"@vitest/coverage-v8": "^0.33.0",
|
|
16
|
+
"eslint": "^8.35.0",
|
|
16
17
|
"eslint-config-braintree": "^6.0.0-typescript-prep-rc.2",
|
|
17
|
-
"eslint-plugin-prettier": "^4.
|
|
18
|
-
"
|
|
19
|
-
"prettier": "^2.
|
|
20
|
-
"
|
|
21
|
-
"
|
|
18
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
19
|
+
"happy-dom": "^10.3.2",
|
|
20
|
+
"prettier": "^2.8.4",
|
|
21
|
+
"typescript": "^4.9.5",
|
|
22
|
+
"vitest": "^0.33.0"
|
|
22
23
|
},
|
|
23
24
|
"scripts": {
|
|
24
25
|
"prepublishOnly": "npm run build",
|
|
@@ -27,7 +28,8 @@
|
|
|
27
28
|
"lint": "eslint --ext js,ts .",
|
|
28
29
|
"posttest": "npm run lint",
|
|
29
30
|
"pretest": "npm run build",
|
|
30
|
-
"test": "
|
|
31
|
+
"test": "vitest",
|
|
32
|
+
"coverage": "vitest run --coverage",
|
|
31
33
|
"version": "./version"
|
|
32
34
|
},
|
|
33
35
|
"repository": {
|
|
@@ -40,11 +42,5 @@
|
|
|
40
42
|
"bugs": {
|
|
41
43
|
"url": "https://github.com/braintree/browser-detection/issues"
|
|
42
44
|
},
|
|
43
|
-
"homepage": "https://github.com/braintree/browser-detection#readme"
|
|
44
|
-
"jest": {
|
|
45
|
-
"testEnvironment": "jsdom",
|
|
46
|
-
"preset": "ts-jest",
|
|
47
|
-
"restoreMocks": true,
|
|
48
|
-
"resetMocks": true
|
|
49
|
-
}
|
|
45
|
+
"homepage": "https://github.com/braintree/browser-detection#readme"
|
|
50
46
|
}
|