@tinkoff/user-agent 0.4.261 → 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.
@@ -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 uaParser = new UAParser('', { browser: uaParserExtensions });
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 uaParser = new uaParserJs.UAParser('', { browser: uaParserExtensions });
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
- case browserName === 'safari':
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
- case engineName === 'webkit' || engineName === 'blink' || engineName === 'chromium':
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
- case browserName === 'safari':
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
- case engineName === 'webkit' || engineName === 'blink' || engineName === 'chromium':
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.261",
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.24",
31
+ "@tramvai/cli": "2.94.25",
32
32
  "@types/ua-parser-js": "^0.7.33"
33
33
  },
34
34
  "license": "Apache-2.0"