@tinkoff/user-agent 0.7.26 → 0.7.46

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.
@@ -16,19 +16,17 @@ const BACKWARD_COMPATIBILITY_OS_NAME = {
16
16
  macOS: 'Mac OS',
17
17
  };
18
18
  const parseQuotedString = (str) => {
19
- var _a;
20
19
  if (!str) {
21
20
  return str;
22
21
  }
23
22
  try {
24
- return (_a = JSON.parse(str)) === null || _a === void 0 ? void 0 : _a.trim();
23
+ return JSON.parse(str)?.trim();
25
24
  }
26
25
  catch (err) {
27
26
  return str;
28
27
  }
29
28
  };
30
29
  const parseBrowserFromString = (brandsList) => {
31
- var _a, _b;
32
30
  const browser = {
33
31
  name: undefined,
34
32
  version: undefined,
@@ -40,15 +38,14 @@ const parseBrowserFromString = (brandsList) => {
40
38
  version: undefined,
41
39
  };
42
40
  brandsList.split(',').forEach((entry) => {
43
- var _a, _b;
44
41
  const [name, version] = entry.split(/;\s*v=/).map(parseQuotedString);
45
42
  if (name && KNOWN_VENDORS.has(name)) {
46
- browser.name = (_a = BACKWARD_COMPATIBILITY_BROWSER_NAME[name]) !== null && _a !== void 0 ? _a : name.toLowerCase();
43
+ browser.name = BACKWARD_COMPATIBILITY_BROWSER_NAME[name] ?? name.toLowerCase();
47
44
  browser.version = version;
48
45
  browser.major = version;
49
46
  }
50
47
  if (name && KNOWN_ENGINES.has(name)) {
51
- engine.name = (_b = BACKWARD_COMPATIBILITY_ENGINE_NAME[name]) !== null && _b !== void 0 ? _b : name.toLowerCase();
48
+ engine.name = BACKWARD_COMPATIBILITY_ENGINE_NAME[name] ?? name.toLowerCase();
52
49
  engine.version = version;
53
50
  }
54
51
  });
@@ -56,11 +53,10 @@ const parseBrowserFromString = (brandsList) => {
56
53
  browser.name = engine.name;
57
54
  browser.version = engine.version;
58
55
  }
59
- browser.browserEngine = getBrowserEngine((_a = browser.name) === null || _a === void 0 ? void 0 : _a.toLowerCase(), (_b = engine.name) === null || _b === void 0 ? void 0 : _b.toLowerCase());
56
+ browser.browserEngine = getBrowserEngine(browser.name?.toLowerCase(), engine.name?.toLowerCase());
60
57
  return { browser, engine };
61
58
  };
62
59
  const parseBrowserFromUserAgentData = (brands) => {
63
- var _a, _b;
64
60
  const browser = {
65
61
  name: undefined,
66
62
  version: undefined,
@@ -72,14 +68,13 @@ const parseBrowserFromUserAgentData = (brands) => {
72
68
  version: undefined,
73
69
  };
74
70
  brands.forEach(({ brand, version }) => {
75
- var _a, _b;
76
71
  if (KNOWN_VENDORS.has(brand)) {
77
- browser.name = (_a = BACKWARD_COMPATIBILITY_BROWSER_NAME[brand]) !== null && _a !== void 0 ? _a : brand.toLowerCase();
72
+ browser.name = BACKWARD_COMPATIBILITY_BROWSER_NAME[brand] ?? brand.toLowerCase();
78
73
  browser.version = version;
79
74
  [browser.major] = version.split('.');
80
75
  }
81
76
  if (KNOWN_ENGINES.has(brand)) {
82
- engine.name = (_b = BACKWARD_COMPATIBILITY_ENGINE_NAME[brand]) !== null && _b !== void 0 ? _b : brand.toLowerCase();
77
+ engine.name = BACKWARD_COMPATIBILITY_ENGINE_NAME[brand] ?? brand.toLowerCase();
83
78
  engine.version = version;
84
79
  }
85
80
  });
@@ -87,15 +82,14 @@ const parseBrowserFromUserAgentData = (brands) => {
87
82
  browser.name = engine.name;
88
83
  browser.version = engine.version;
89
84
  }
90
- browser.browserEngine = getBrowserEngine((_a = browser.name) === null || _a === void 0 ? void 0 : _a.toLowerCase(), (_b = engine.name) === null || _b === void 0 ? void 0 : _b.toLowerCase());
85
+ browser.browserEngine = getBrowserEngine(browser.name?.toLowerCase(), engine.name?.toLowerCase());
91
86
  return { browser, engine };
92
87
  };
93
88
  const getBackwardCompatibleOsName = (payload) => {
94
- var _a;
95
89
  if (payload === undefined) {
96
90
  return undefined;
97
91
  }
98
- return (_a = BACKWARD_COMPATIBILITY_OS_NAME[payload]) !== null && _a !== void 0 ? _a : payload;
92
+ return BACKWARD_COMPATIBILITY_OS_NAME[payload] ?? payload;
99
93
  };
100
94
  /**
101
95
  *
@@ -113,7 +107,6 @@ const getBackwardCompatibleOsName = (payload) => {
113
107
  * @returns
114
108
  */
115
109
  const parseClientHintsHeaders = (headers) => {
116
- var _a;
117
110
  const { browser, engine } = parseBrowserFromString(headers['sec-ch-ua-full-version-list'] || headers['sec-ch-ua']);
118
111
  const osName = parseQuotedString(headers['sec-ch-ua-platform']);
119
112
  const mobileOS = getMobileOs(osName);
@@ -127,7 +120,7 @@ const parseClientHintsHeaders = (headers) => {
127
120
  },
128
121
  cpu: {
129
122
  architecture: architecture
130
- ? (_a = BACKWARD_COMPATIBILITY_ARCH[architecture]) !== null && _a !== void 0 ? _a : architecture
123
+ ? BACKWARD_COMPATIBILITY_ARCH[architecture] ?? architecture
131
124
  : architecture,
132
125
  },
133
126
  mobileOS,
@@ -156,7 +149,6 @@ const parseClientHintsHeaders = (headers) => {
156
149
  * const clientHints = parseClientHintsUserAgentData(window.navigator.userAgentData)
157
150
  */
158
151
  const parseClientHintsUserAgentData = (payload) => {
159
- var _a;
160
152
  const { browser, engine } = parseBrowserFromUserAgentData(payload.fullVersionList || payload.brands || []);
161
153
  return {
162
154
  browser,
@@ -167,7 +159,7 @@ const parseClientHintsUserAgentData = (payload) => {
167
159
  },
168
160
  cpu: {
169
161
  architecture: payload.architecture
170
- ? (_a = BACKWARD_COMPATIBILITY_ARCH[payload.architecture]) !== null && _a !== void 0 ? _a : payload.architecture
162
+ ? BACKWARD_COMPATIBILITY_ARCH[payload.architecture] ?? payload.architecture
171
163
  : payload.architecture,
172
164
  },
173
165
  mobileOS: getMobileOs(payload.platform),
@@ -20,19 +20,17 @@ const BACKWARD_COMPATIBILITY_OS_NAME = {
20
20
  macOS: 'Mac OS',
21
21
  };
22
22
  const parseQuotedString = (str) => {
23
- var _a;
24
23
  if (!str) {
25
24
  return str;
26
25
  }
27
26
  try {
28
- return (_a = JSON.parse(str)) === null || _a === void 0 ? void 0 : _a.trim();
27
+ return JSON.parse(str)?.trim();
29
28
  }
30
29
  catch (err) {
31
30
  return str;
32
31
  }
33
32
  };
34
33
  const parseBrowserFromString = (brandsList) => {
35
- var _a, _b;
36
34
  const browser = {
37
35
  name: undefined,
38
36
  version: undefined,
@@ -44,15 +42,14 @@ const parseBrowserFromString = (brandsList) => {
44
42
  version: undefined,
45
43
  };
46
44
  brandsList.split(',').forEach((entry) => {
47
- var _a, _b;
48
45
  const [name, version] = entry.split(/;\s*v=/).map(parseQuotedString);
49
46
  if (name && KNOWN_VENDORS.has(name)) {
50
- browser.name = (_a = BACKWARD_COMPATIBILITY_BROWSER_NAME[name]) !== null && _a !== void 0 ? _a : name.toLowerCase();
47
+ browser.name = BACKWARD_COMPATIBILITY_BROWSER_NAME[name] ?? name.toLowerCase();
51
48
  browser.version = version;
52
49
  browser.major = version;
53
50
  }
54
51
  if (name && KNOWN_ENGINES.has(name)) {
55
- engine.name = (_b = BACKWARD_COMPATIBILITY_ENGINE_NAME[name]) !== null && _b !== void 0 ? _b : name.toLowerCase();
52
+ engine.name = BACKWARD_COMPATIBILITY_ENGINE_NAME[name] ?? name.toLowerCase();
56
53
  engine.version = version;
57
54
  }
58
55
  });
@@ -60,11 +57,10 @@ const parseBrowserFromString = (brandsList) => {
60
57
  browser.name = engine.name;
61
58
  browser.version = engine.version;
62
59
  }
63
- browser.browserEngine = utils.getBrowserEngine((_a = browser.name) === null || _a === void 0 ? void 0 : _a.toLowerCase(), (_b = engine.name) === null || _b === void 0 ? void 0 : _b.toLowerCase());
60
+ browser.browserEngine = utils.getBrowserEngine(browser.name?.toLowerCase(), engine.name?.toLowerCase());
64
61
  return { browser, engine };
65
62
  };
66
63
  const parseBrowserFromUserAgentData = (brands) => {
67
- var _a, _b;
68
64
  const browser = {
69
65
  name: undefined,
70
66
  version: undefined,
@@ -76,14 +72,13 @@ const parseBrowserFromUserAgentData = (brands) => {
76
72
  version: undefined,
77
73
  };
78
74
  brands.forEach(({ brand, version }) => {
79
- var _a, _b;
80
75
  if (KNOWN_VENDORS.has(brand)) {
81
- browser.name = (_a = BACKWARD_COMPATIBILITY_BROWSER_NAME[brand]) !== null && _a !== void 0 ? _a : brand.toLowerCase();
76
+ browser.name = BACKWARD_COMPATIBILITY_BROWSER_NAME[brand] ?? brand.toLowerCase();
82
77
  browser.version = version;
83
78
  [browser.major] = version.split('.');
84
79
  }
85
80
  if (KNOWN_ENGINES.has(brand)) {
86
- engine.name = (_b = BACKWARD_COMPATIBILITY_ENGINE_NAME[brand]) !== null && _b !== void 0 ? _b : brand.toLowerCase();
81
+ engine.name = BACKWARD_COMPATIBILITY_ENGINE_NAME[brand] ?? brand.toLowerCase();
87
82
  engine.version = version;
88
83
  }
89
84
  });
@@ -91,15 +86,14 @@ const parseBrowserFromUserAgentData = (brands) => {
91
86
  browser.name = engine.name;
92
87
  browser.version = engine.version;
93
88
  }
94
- browser.browserEngine = utils.getBrowserEngine((_a = browser.name) === null || _a === void 0 ? void 0 : _a.toLowerCase(), (_b = engine.name) === null || _b === void 0 ? void 0 : _b.toLowerCase());
89
+ browser.browserEngine = utils.getBrowserEngine(browser.name?.toLowerCase(), engine.name?.toLowerCase());
95
90
  return { browser, engine };
96
91
  };
97
92
  const getBackwardCompatibleOsName = (payload) => {
98
- var _a;
99
93
  if (payload === undefined) {
100
94
  return undefined;
101
95
  }
102
- return (_a = BACKWARD_COMPATIBILITY_OS_NAME[payload]) !== null && _a !== void 0 ? _a : payload;
96
+ return BACKWARD_COMPATIBILITY_OS_NAME[payload] ?? payload;
103
97
  };
104
98
  /**
105
99
  *
@@ -117,7 +111,6 @@ const getBackwardCompatibleOsName = (payload) => {
117
111
  * @returns
118
112
  */
119
113
  const parseClientHintsHeaders = (headers) => {
120
- var _a;
121
114
  const { browser, engine } = parseBrowserFromString(headers['sec-ch-ua-full-version-list'] || headers['sec-ch-ua']);
122
115
  const osName = parseQuotedString(headers['sec-ch-ua-platform']);
123
116
  const mobileOS = utils.getMobileOs(osName);
@@ -131,7 +124,7 @@ const parseClientHintsHeaders = (headers) => {
131
124
  },
132
125
  cpu: {
133
126
  architecture: architecture
134
- ? (_a = BACKWARD_COMPATIBILITY_ARCH[architecture]) !== null && _a !== void 0 ? _a : architecture
127
+ ? BACKWARD_COMPATIBILITY_ARCH[architecture] ?? architecture
135
128
  : architecture,
136
129
  },
137
130
  mobileOS,
@@ -160,7 +153,6 @@ const parseClientHintsHeaders = (headers) => {
160
153
  * const clientHints = parseClientHintsUserAgentData(window.navigator.userAgentData)
161
154
  */
162
155
  const parseClientHintsUserAgentData = (payload) => {
163
- var _a;
164
156
  const { browser, engine } = parseBrowserFromUserAgentData(payload.fullVersionList || payload.brands || []);
165
157
  return {
166
158
  browser,
@@ -171,7 +163,7 @@ const parseClientHintsUserAgentData = (payload) => {
171
163
  },
172
164
  cpu: {
173
165
  architecture: payload.architecture
174
- ? (_a = BACKWARD_COMPATIBILITY_ARCH[payload.architecture]) !== null && _a !== void 0 ? _a : payload.architecture
166
+ ? BACKWARD_COMPATIBILITY_ARCH[payload.architecture] ?? payload.architecture
175
167
  : payload.architecture,
176
168
  },
177
169
  mobileOS: utils.getMobileOs(payload.platform),
@@ -50,7 +50,6 @@ const normalizedBrowserslist = (query) => {
50
50
  return result;
51
51
  };
52
52
  const satisfies = (userAgent, browserslistConfig, { env = 'defaults', forceMinimumUnknownVersions = false } = {}) => {
53
- var _a, _b;
54
53
  const ua = isString(userAgent) ? parseUserAgentHeader(userAgent) : userAgent;
55
54
  const { engine: { name: engineName = '', version: engineVersion }, device: { type = '' } = {}, } = ua;
56
55
  let { browser: { name: browserName = '', version: browserVersion = '' } = {} } = ua;
@@ -69,7 +68,7 @@ const satisfies = (userAgent, browserslistConfig, { env = 'defaults', forceMinim
69
68
  if (!browserName) {
70
69
  return null;
71
70
  }
72
- const targets = (_a = browserslistConfig !== null && browserslistConfig !== void 0 ? browserslistConfig : browserslistFileConfig[env]) !== null && _a !== void 0 ? _a : browserslistTinkoffConfig[env];
71
+ const targets = browserslistConfig ?? browserslistFileConfig[env] ?? browserslistTinkoffConfig[env];
73
72
  const browsers = normalizedBrowserslist(targets);
74
73
  // Browsers from query may not be present in https://caniuse.com/usage-table, and browserslist will return higher versions than requested.
75
74
  // Example of this problem - https://github.com/babel/babel/issues/8545
@@ -95,7 +94,7 @@ const satisfies = (userAgent, browserslistConfig, { env = 'defaults', forceMinim
95
94
  let hasEntry = false;
96
95
  if (browserName in browsers) {
97
96
  const browserInfo = browsers[browserName];
98
- const browserInfoVersion = (_b = browserInfo.any) !== null && _b !== void 0 ? _b : browserInfo[deviceType];
97
+ const browserInfoVersion = browserInfo.any ?? browserInfo[deviceType];
99
98
  hasEntry = !!browserInfoVersion;
100
99
  if (checkVersion >= browserInfoVersion) {
101
100
  return true;
package/lib/satisfies.js CHANGED
@@ -61,7 +61,6 @@ const normalizedBrowserslist = (query) => {
61
61
  return result;
62
62
  };
63
63
  const satisfies = (userAgent$1, browserslistConfig, { env = 'defaults', forceMinimumUnknownVersions = false } = {}) => {
64
- var _a, _b;
65
64
  const ua = isString__default["default"](userAgent$1) ? userAgent.parseUserAgentHeader(userAgent$1) : userAgent$1;
66
65
  const { engine: { name: engineName = '', version: engineVersion }, device: { type = '' } = {}, } = ua;
67
66
  let { browser: { name: browserName = '', version: browserVersion = '' } = {} } = ua;
@@ -80,7 +79,7 @@ const satisfies = (userAgent$1, browserslistConfig, { env = 'defaults', forceMin
80
79
  if (!browserName) {
81
80
  return null;
82
81
  }
83
- const targets = (_a = browserslistConfig !== null && browserslistConfig !== void 0 ? browserslistConfig : browserslistFileConfig__default["default"][env]) !== null && _a !== void 0 ? _a : browserslistTinkoffConfig__default["default"][env];
82
+ const targets = browserslistConfig ?? browserslistFileConfig__default["default"][env] ?? browserslistTinkoffConfig__default["default"][env];
84
83
  const browsers = normalizedBrowserslist(targets);
85
84
  // Browsers from query may not be present in https://caniuse.com/usage-table, and browserslist will return higher versions than requested.
86
85
  // Example of this problem - https://github.com/babel/babel/issues/8545
@@ -106,7 +105,7 @@ const satisfies = (userAgent$1, browserslistConfig, { env = 'defaults', forceMin
106
105
  let hasEntry = false;
107
106
  if (browserName in browsers) {
108
107
  const browserInfo = browsers[browserName];
109
- const browserInfoVersion = (_b = browserInfo.any) !== null && _b !== void 0 ? _b : browserInfo[deviceType];
108
+ const browserInfoVersion = browserInfo.any ?? browserInfo[deviceType];
110
109
  hasEntry = !!browserInfoVersion;
111
110
  if (checkVersion >= browserInfoVersion) {
112
111
  return true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinkoff/user-agent",
3
- "version": "0.7.26",
3
+ "version": "0.7.46",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.es.js",
@@ -18,7 +18,7 @@
18
18
  "watch": "tsc -w"
19
19
  },
20
20
  "dependencies": {
21
- "@tinkoff/browserslist-config": "0.5.2",
21
+ "@tinkoff/browserslist-config": "0.5.3",
22
22
  "@tinkoff/utils": "^2.1.2",
23
23
  "browserslist": "^4.16.7",
24
24
  "tslib": "^2.4.0",
@@ -29,7 +29,7 @@
29
29
  "user-agent-data-types": "^0.3.1"
30
30
  },
31
31
  "peerDependencies": {
32
- "@tramvai/cli": "5.9.2",
32
+ "@tramvai/cli": "5.14.9",
33
33
  "@types/ua-parser-js": "^0.7.33"
34
34
  },
35
35
  "license": "Apache-2.0"