@tramvai/module-client-hints 6.59.0 → 6.63.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/lib/browser.js +1 -1
- package/lib/server/parseUserAgentWithCache.d.ts +2 -2
- package/lib/server/parseUserAgentWithCache.es.js +2 -2
- package/lib/server/parseUserAgentWithCache.js +2 -2
- package/lib/server/userAgent.es.js +4 -3
- package/lib/server/userAgent.js +3 -2
- package/lib/server.es.js +1 -1
- package/lib/server.js +1 -0
- package/lib/tokens.browser.js +2 -1
- package/lib/tokens.d.ts +4 -1
- package/lib/tokens.es.js +2 -1
- package/lib/tokens.js +2 -0
- package/package.json +9 -9
package/lib/browser.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { declareModule } from '@tramvai/core';
|
|
2
2
|
import { browserProviders } from './shared/providers.browser.browser.js';
|
|
3
|
-
export { PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_TOKEN } from './tokens.browser.js';
|
|
3
|
+
export { PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_PARSER_EXTENSIONS_TOKEN, USER_AGENT_TOKEN } from './tokens.browser.js';
|
|
4
4
|
export { displayMode, fromClientHints, isRetina, isSupposed } from './shared/stores/mediaCheckers.browser.js';
|
|
5
5
|
export { useDisplayMode, useFromClientHints, useIsRetina, useIsSupposed, useMedia } from './shared/stores/mediaSelectors.browser.js';
|
|
6
6
|
export { MediaStore, setMedia } from './shared/stores/media.browser.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Cache } from '@tramvai/tokens-common';
|
|
2
|
-
import type { UserAgent } from '@tinkoff/user-agent';
|
|
2
|
+
import type { UAParserExtensionsTypes, UserAgent } from '@tinkoff/user-agent';
|
|
3
3
|
export declare const parseUserAgentWithCache: (cache: Cache, userAgent: string, metrics: {
|
|
4
4
|
hit: Function;
|
|
5
5
|
miss: Function;
|
|
6
|
-
}) => UserAgent;
|
|
6
|
+
}, extensions?: UAParserExtensionsTypes[] | null) => UserAgent;
|
|
7
7
|
//# sourceMappingURL=parseUserAgentWithCache.d.ts.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { parse } from '@tinkoff/user-agent';
|
|
2
2
|
|
|
3
|
-
const parseUserAgentWithCache = (cache, userAgent, metrics) => {
|
|
3
|
+
const parseUserAgentWithCache = (cache, userAgent, metrics, extensions) => {
|
|
4
4
|
if (cache.has(userAgent)) {
|
|
5
5
|
metrics.hit();
|
|
6
6
|
return cache.get(userAgent);
|
|
7
7
|
}
|
|
8
8
|
metrics.miss();
|
|
9
|
-
const result = parse(userAgent);
|
|
9
|
+
const result = parse(userAgent, extensions);
|
|
10
10
|
cache.set(userAgent, result);
|
|
11
11
|
return result;
|
|
12
12
|
};
|
|
@@ -4,13 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var userAgent = require('@tinkoff/user-agent');
|
|
6
6
|
|
|
7
|
-
const parseUserAgentWithCache = (cache, userAgent$1, metrics) => {
|
|
7
|
+
const parseUserAgentWithCache = (cache, userAgent$1, metrics, extensions) => {
|
|
8
8
|
if (cache.has(userAgent$1)) {
|
|
9
9
|
metrics.hit();
|
|
10
10
|
return cache.get(userAgent$1);
|
|
11
11
|
}
|
|
12
12
|
metrics.miss();
|
|
13
|
-
const result = userAgent.parse(userAgent$1);
|
|
13
|
+
const result = userAgent.parse(userAgent$1, extensions);
|
|
14
14
|
cache.set(userAgent$1, result);
|
|
15
15
|
return result;
|
|
16
16
|
};
|
|
@@ -4,7 +4,7 @@ import { METRICS_MODULE_TOKEN } from '@tramvai/module-metrics';
|
|
|
4
4
|
import { parseClientHints } from '@tinkoff/user-agent';
|
|
5
5
|
import noop from '@tinkoff/utils/function/noop';
|
|
6
6
|
import { isNumber } from '@tinkoff/env-validators';
|
|
7
|
-
import { USER_AGENT_TOKEN, PARSER_CLIENT_HINTS_ENABLED } from '../tokens.es.js';
|
|
7
|
+
import { USER_AGENT_TOKEN, PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_PARSER_EXTENSIONS_TOKEN } from '../tokens.es.js';
|
|
8
8
|
import { setUserAgent } from '../shared/stores/userAgent.es.js';
|
|
9
9
|
import { parseUserAgentWithCache } from './parseUserAgentWithCache.es.js';
|
|
10
10
|
|
|
@@ -53,10 +53,10 @@ const serverUserAgentProviders = [
|
|
|
53
53
|
}),
|
|
54
54
|
provide({
|
|
55
55
|
provide: USER_AGENT_TOKEN,
|
|
56
|
-
useFactory: ({ requestManager, cache, parserClientHintsEnabled, store, metrics }) => {
|
|
56
|
+
useFactory: ({ requestManager, cache, parserClientHintsEnabled, store, metrics, extensions, }) => {
|
|
57
57
|
const userAgent = parserClientHintsEnabled && requestManager.getHeader('sec-ch-ua')
|
|
58
58
|
? parseClientHints(requestManager.getHeaders())
|
|
59
|
-
: parseUserAgentWithCache(cache, requestManager.getHeader('user-agent'), metrics);
|
|
59
|
+
: parseUserAgentWithCache(cache, requestManager.getHeader('user-agent'), metrics, extensions);
|
|
60
60
|
store.dispatch(setUserAgent(userAgent));
|
|
61
61
|
return userAgent;
|
|
62
62
|
},
|
|
@@ -64,6 +64,7 @@ const serverUserAgentProviders = [
|
|
|
64
64
|
requestManager: REQUEST_MANAGER_TOKEN,
|
|
65
65
|
parserClientHintsEnabled: PARSER_CLIENT_HINTS_ENABLED,
|
|
66
66
|
store: STORE_TOKEN,
|
|
67
|
+
extensions: { token: USER_AGENT_PARSER_EXTENSIONS_TOKEN, optional: true },
|
|
67
68
|
cache: 'userAgentMemoryCache',
|
|
68
69
|
metrics: 'userAgentCacheMetrics',
|
|
69
70
|
},
|
package/lib/server/userAgent.js
CHANGED
|
@@ -61,10 +61,10 @@ const serverUserAgentProviders = [
|
|
|
61
61
|
}),
|
|
62
62
|
core.provide({
|
|
63
63
|
provide: tokens.USER_AGENT_TOKEN,
|
|
64
|
-
useFactory: ({ requestManager, cache, parserClientHintsEnabled, store, metrics }) => {
|
|
64
|
+
useFactory: ({ requestManager, cache, parserClientHintsEnabled, store, metrics, extensions, }) => {
|
|
65
65
|
const userAgent$2 = parserClientHintsEnabled && requestManager.getHeader('sec-ch-ua')
|
|
66
66
|
? userAgent.parseClientHints(requestManager.getHeaders())
|
|
67
|
-
: parseUserAgentWithCache.parseUserAgentWithCache(cache, requestManager.getHeader('user-agent'), metrics);
|
|
67
|
+
: parseUserAgentWithCache.parseUserAgentWithCache(cache, requestManager.getHeader('user-agent'), metrics, extensions);
|
|
68
68
|
store.dispatch(userAgent$1.setUserAgent(userAgent$2));
|
|
69
69
|
return userAgent$2;
|
|
70
70
|
},
|
|
@@ -72,6 +72,7 @@ const serverUserAgentProviders = [
|
|
|
72
72
|
requestManager: tokensCommon.REQUEST_MANAGER_TOKEN,
|
|
73
73
|
parserClientHintsEnabled: tokens.PARSER_CLIENT_HINTS_ENABLED,
|
|
74
74
|
store: tokensCommon.STORE_TOKEN,
|
|
75
|
+
extensions: { token: tokens.USER_AGENT_PARSER_EXTENSIONS_TOKEN, optional: true },
|
|
75
76
|
cache: 'userAgentMemoryCache',
|
|
76
77
|
metrics: 'userAgentCacheMetrics',
|
|
77
78
|
},
|
package/lib/server.es.js
CHANGED
|
@@ -2,7 +2,7 @@ import { declareModule, provide } from '@tramvai/core';
|
|
|
2
2
|
import { serverProviders } from './shared/providers.server.es.js';
|
|
3
3
|
import { serverUserAgentProviders } from './server/userAgent.es.js';
|
|
4
4
|
import { PARSER_CLIENT_HINTS_ENABLED } from './tokens.es.js';
|
|
5
|
-
export { PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_TOKEN } from './tokens.es.js';
|
|
5
|
+
export { PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_PARSER_EXTENSIONS_TOKEN, USER_AGENT_TOKEN } from './tokens.es.js';
|
|
6
6
|
export { displayMode, fromClientHints, isRetina, isSupposed } from './shared/stores/mediaCheckers.es.js';
|
|
7
7
|
export { useDisplayMode, useFromClientHints, useIsRetina, useIsSupposed, useMedia } from './shared/stores/mediaSelectors.es.js';
|
|
8
8
|
export { MediaStore, setMedia } from './shared/stores/media.es.js';
|
package/lib/server.js
CHANGED
|
@@ -26,6 +26,7 @@ const ClientHintsModule = /* @__PURE__ */ core.declareModule({
|
|
|
26
26
|
});
|
|
27
27
|
|
|
28
28
|
exports.PARSER_CLIENT_HINTS_ENABLED = tokens.PARSER_CLIENT_HINTS_ENABLED;
|
|
29
|
+
exports.USER_AGENT_PARSER_EXTENSIONS_TOKEN = tokens.USER_AGENT_PARSER_EXTENSIONS_TOKEN;
|
|
29
30
|
exports.USER_AGENT_TOKEN = tokens.USER_AGENT_TOKEN;
|
|
30
31
|
exports.displayMode = mediaCheckers.displayMode;
|
|
31
32
|
exports.fromClientHints = mediaCheckers.fromClientHints;
|
package/lib/tokens.browser.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createToken } from '@tinkoff/dippy';
|
|
2
2
|
|
|
3
3
|
const USER_AGENT_TOKEN = createToken('userAgent');
|
|
4
|
+
const USER_AGENT_PARSER_EXTENSIONS_TOKEN = createToken('userAgentParserExtensions', { multi: true });
|
|
4
5
|
const PARSER_CLIENT_HINTS_ENABLED = createToken('client-hints parserClientHints enabled');
|
|
5
6
|
|
|
6
|
-
export { PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_TOKEN };
|
|
7
|
+
export { PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_PARSER_EXTENSIONS_TOKEN, USER_AGENT_TOKEN };
|
package/lib/tokens.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type { UserAgent } from '@tinkoff/user-agent';
|
|
1
|
+
import type { UAParserExtensionsTypes, UserAgent } from '@tinkoff/user-agent';
|
|
2
2
|
export declare const USER_AGENT_TOKEN: UserAgent & {
|
|
3
3
|
__type?: "base token" | undefined;
|
|
4
4
|
};
|
|
5
|
+
export declare const USER_AGENT_PARSER_EXTENSIONS_TOKEN: UAParserExtensionsTypes & {
|
|
6
|
+
__type?: "multi token" | undefined;
|
|
7
|
+
};
|
|
5
8
|
export declare const PARSER_CLIENT_HINTS_ENABLED: (false & {
|
|
6
9
|
__type?: "base token" | undefined;
|
|
7
10
|
}) | (true & {
|
package/lib/tokens.es.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createToken } from '@tinkoff/dippy';
|
|
2
2
|
|
|
3
3
|
const USER_AGENT_TOKEN = createToken('userAgent');
|
|
4
|
+
const USER_AGENT_PARSER_EXTENSIONS_TOKEN = createToken('userAgentParserExtensions', { multi: true });
|
|
4
5
|
const PARSER_CLIENT_HINTS_ENABLED = createToken('client-hints parserClientHints enabled');
|
|
5
6
|
|
|
6
|
-
export { PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_TOKEN };
|
|
7
|
+
export { PARSER_CLIENT_HINTS_ENABLED, USER_AGENT_PARSER_EXTENSIONS_TOKEN, USER_AGENT_TOKEN };
|
package/lib/tokens.js
CHANGED
|
@@ -5,7 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var dippy = require('@tinkoff/dippy');
|
|
6
6
|
|
|
7
7
|
const USER_AGENT_TOKEN = dippy.createToken('userAgent');
|
|
8
|
+
const USER_AGENT_PARSER_EXTENSIONS_TOKEN = dippy.createToken('userAgentParserExtensions', { multi: true });
|
|
8
9
|
const PARSER_CLIENT_HINTS_ENABLED = dippy.createToken('client-hints parserClientHints enabled');
|
|
9
10
|
|
|
10
11
|
exports.PARSER_CLIENT_HINTS_ENABLED = PARSER_CLIENT_HINTS_ENABLED;
|
|
12
|
+
exports.USER_AGENT_PARSER_EXTENSIONS_TOKEN = USER_AGENT_PARSER_EXTENSIONS_TOKEN;
|
|
11
13
|
exports.USER_AGENT_TOKEN = USER_AGENT_TOKEN;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-client-hints",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.63.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/server.js",
|
|
6
6
|
"module": "lib/server.es.js",
|
|
@@ -20,21 +20,21 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@tinkoff/env-validators": "0.5.0",
|
|
23
|
-
"@tinkoff/user-agent": "0.8.
|
|
23
|
+
"@tinkoff/user-agent": "0.8.106",
|
|
24
24
|
"@tinkoff/utils": "^2.1.2",
|
|
25
|
-
"@tramvai/module-metrics": "6.
|
|
25
|
+
"@tramvai/module-metrics": "6.63.0",
|
|
26
26
|
"@tramvai/safe-strings": "0.9.0",
|
|
27
|
-
"@tramvai/tokens-child-app": "6.
|
|
28
|
-
"@tramvai/tokens-common": "6.
|
|
29
|
-
"@tramvai/tokens-cookie": "6.
|
|
30
|
-
"@tramvai/tokens-render": "6.
|
|
27
|
+
"@tramvai/tokens-child-app": "6.63.0",
|
|
28
|
+
"@tramvai/tokens-common": "6.63.0",
|
|
29
|
+
"@tramvai/tokens-cookie": "6.63.0",
|
|
30
|
+
"@tramvai/tokens-render": "6.63.0",
|
|
31
31
|
"user-agent-data-types": "^0.3.1"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@tinkoff/dippy": "0.12.3",
|
|
35
35
|
"@tinkoff/logger": "^0.10.507",
|
|
36
|
-
"@tramvai/core": "6.
|
|
37
|
-
"@tramvai/state": "6.
|
|
36
|
+
"@tramvai/core": "6.63.0",
|
|
37
|
+
"@tramvai/state": "6.63.0",
|
|
38
38
|
"react": ">=16.14.0",
|
|
39
39
|
"react-dom": ">=16.14.0",
|
|
40
40
|
"tslib": "^2.4.0"
|