@tinkoff/user-agent 0.4.260 → 0.4.262
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/lib/userAgent.es.js +3 -6
- package/lib/userAgent.js +3 -6
- package/lib/utils.es.js +8 -2
- package/lib/utils.js +8 -2
- package/package.json +2 -2
package/lib/userAgent.es.js
CHANGED
|
@@ -23,24 +23,21 @@ const uaParserExtensions = [
|
|
|
23
23
|
[[UAParser.BROWSER.NAME, 'Firefox Focus'], UAParser.BROWSER.VERSION],
|
|
24
24
|
];
|
|
25
25
|
const parseUserAgentHeader = (userAgent) => {
|
|
26
|
-
const
|
|
27
|
-
const { ua, ...result } = uaParser.setUA(userAgent).getResult();
|
|
26
|
+
const { ua, ...result } = new UAParser(userAgent, { browser: uaParserExtensions }).getResult();
|
|
28
27
|
const { browser, os, engine } = result;
|
|
29
28
|
const browserName = toLowerName(browser);
|
|
30
29
|
const engineName = toLowerName(engine);
|
|
31
30
|
const sameSiteNoneCompatible = isSameSiteNoneCompatible(result);
|
|
32
|
-
const mobileOS = getMobileOs(os.name);
|
|
33
31
|
if (browserName === 'opera mobi') {
|
|
34
32
|
result.device.type = 'mobile';
|
|
35
33
|
}
|
|
36
|
-
const browserEngine = getBrowserEngine(browserName, engineName);
|
|
37
34
|
return {
|
|
38
35
|
...result,
|
|
39
|
-
mobileOS,
|
|
36
|
+
mobileOS: getMobileOs(os.name),
|
|
40
37
|
sameSiteNoneCompatible,
|
|
41
38
|
browser: {
|
|
42
39
|
...browser,
|
|
43
|
-
browserEngine,
|
|
40
|
+
browserEngine: getBrowserEngine(browserName, engineName),
|
|
44
41
|
name: browserName,
|
|
45
42
|
},
|
|
46
43
|
};
|
package/lib/userAgent.js
CHANGED
|
@@ -33,24 +33,21 @@ const uaParserExtensions = [
|
|
|
33
33
|
[[uaParserJs.UAParser.BROWSER.NAME, 'Firefox Focus'], uaParserJs.UAParser.BROWSER.VERSION],
|
|
34
34
|
];
|
|
35
35
|
const parseUserAgentHeader = (userAgent) => {
|
|
36
|
-
const
|
|
37
|
-
const { ua, ...result } = uaParser.setUA(userAgent).getResult();
|
|
36
|
+
const { ua, ...result } = new uaParserJs.UAParser(userAgent, { browser: uaParserExtensions }).getResult();
|
|
38
37
|
const { browser, os, engine } = result;
|
|
39
38
|
const browserName = toLowerName(browser);
|
|
40
39
|
const engineName = toLowerName(engine);
|
|
41
40
|
const sameSiteNoneCompatible = isSameSiteNoneCompatible.isSameSiteNoneCompatible(result);
|
|
42
|
-
const mobileOS = utils.getMobileOs(os.name);
|
|
43
41
|
if (browserName === 'opera mobi') {
|
|
44
42
|
result.device.type = 'mobile';
|
|
45
43
|
}
|
|
46
|
-
const browserEngine = utils.getBrowserEngine(browserName, engineName);
|
|
47
44
|
return {
|
|
48
45
|
...result,
|
|
49
|
-
mobileOS,
|
|
46
|
+
mobileOS: utils.getMobileOs(os.name),
|
|
50
47
|
sameSiteNoneCompatible,
|
|
51
48
|
browser: {
|
|
52
49
|
...browser,
|
|
53
|
-
browserEngine,
|
|
50
|
+
browserEngine: utils.getBrowserEngine(browserName, engineName),
|
|
54
51
|
name: browserName,
|
|
55
52
|
},
|
|
56
53
|
};
|
package/lib/utils.es.js
CHANGED
|
@@ -15,9 +15,15 @@ const getBrowserEngine = (browserName, engineName) => {
|
|
|
15
15
|
switch (true) {
|
|
16
16
|
case browserName === 'firefox':
|
|
17
17
|
return 'firefox';
|
|
18
|
-
|
|
18
|
+
// If an `engineName` is webkit, and it's not Safari,
|
|
19
|
+
// then define the `browserName` as `safari`, because all browsers
|
|
20
|
+
// on iOS use webkit. Also, we are not handling mobile Safari separately,
|
|
21
|
+
// as it webkit too. See https://en.wikipedia.org/wiki/WebKit
|
|
22
|
+
case browserName === 'safari' || engineName === 'webkit':
|
|
19
23
|
return 'safari';
|
|
20
|
-
|
|
24
|
+
// We aren't using something like `browserName === 'chrome'` here,
|
|
25
|
+
// because there are a lot of browsers based on chromium.
|
|
26
|
+
case engineName === 'blink' || engineName === 'chromium':
|
|
21
27
|
return 'chrome';
|
|
22
28
|
}
|
|
23
29
|
return 'other';
|
package/lib/utils.js
CHANGED
|
@@ -19,9 +19,15 @@ const getBrowserEngine = (browserName, engineName) => {
|
|
|
19
19
|
switch (true) {
|
|
20
20
|
case browserName === 'firefox':
|
|
21
21
|
return 'firefox';
|
|
22
|
-
|
|
22
|
+
// If an `engineName` is webkit, and it's not Safari,
|
|
23
|
+
// then define the `browserName` as `safari`, because all browsers
|
|
24
|
+
// on iOS use webkit. Also, we are not handling mobile Safari separately,
|
|
25
|
+
// as it webkit too. See https://en.wikipedia.org/wiki/WebKit
|
|
26
|
+
case browserName === 'safari' || engineName === 'webkit':
|
|
23
27
|
return 'safari';
|
|
24
|
-
|
|
28
|
+
// We aren't using something like `browserName === 'chrome'` here,
|
|
29
|
+
// because there are a lot of browsers based on chromium.
|
|
30
|
+
case engineName === 'blink' || engineName === 'chromium':
|
|
25
31
|
return 'chrome';
|
|
26
32
|
}
|
|
27
33
|
return 'other';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinkoff/user-agent",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.262",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/index.es.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@types/ua-parser-js": "^0.7.33"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
|
-
"@tramvai/cli": "2.94.
|
|
31
|
+
"@tramvai/cli": "2.94.25",
|
|
32
32
|
"@types/ua-parser-js": "^0.7.33"
|
|
33
33
|
},
|
|
34
34
|
"license": "Apache-2.0"
|