ua-browser 1.4.0-beta.1 → 1.4.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/dist/index.cjs +209 -108
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +28 -2
- package/dist/index.d.ts +28 -2
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +209 -109
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -3,20 +3,28 @@ type BrowserName = 'Safari' | 'Chrome' | 'Arc' | 'Brave' | 'IE' | 'Edge' | 'Fire
|
|
|
3
3
|
type OsName = 'Windows' | 'Linux' | 'MacOS' | 'Android' | 'HarmonyOS' | 'OpenHarmony' | 'Ubuntu' | 'FreeBSD' | 'Debian' | 'Windows Phone' | 'BlackBerry' | 'MeeGo' | 'Symbian' | 'iOS' | 'visionOS' | 'tvOS' | 'Chrome OS' | 'WebOS' | 'Tizen' | 'KaiOS' | 'unknown';
|
|
4
4
|
type DeviceName = 'Mobile' | 'Tablet' | 'PC' | 'TV' | 'Console' | 'XR' | 'unknown';
|
|
5
5
|
type ArchName$1 = 'x86' | 'x86_64' | 'arm' | 'arm64' | 'unknown';
|
|
6
|
+
type BotCategory = 'search-engine' | 'ai-llm' | 'social' | 'link-preview' | 'seo-tool' | 'monitoring' | 'generic' | 'unknown';
|
|
7
|
+
type BrowserType = 'browser' | 'brand' | 'app' | 'unknown';
|
|
6
8
|
type BotName$1 = 'Googlebot' | 'Bingbot' | 'Baiduspider' | 'Bytespider' | 'YandexBot' | 'DuckDuckBot' | 'Slurp' | 'Sogou' | '360Spider' | 'Applebot-Extended' | 'Applebot' | 'Facebookbot' | 'Twitterbot' | 'LinkedInBot' | 'PinterestBot' | 'Slackbot' | 'Discordbot' | 'TelegramBot' | 'WhatsApp' | 'SemrushBot' | 'AhrefsBot' | 'MJ12bot' | 'PetalBot' | 'ScreamingFrog' | 'DataForSeoBot' | 'GPTBot' | 'OAI-SearchBot' | 'ChatGPT-User' | 'ClaudeBot' | 'PerplexityBot' | 'CCBot' | 'AdsBot' | 'Google-Extended' | 'Meta-ExternalAgent' | 'Amazonbot' | 'Diffbot' | 'cohere-ai' | 'YouBot' | 'UptimeRobot' | 'ia_archiver' | 'GenericBot' | 'unknown';
|
|
7
9
|
interface EnvOption {
|
|
8
10
|
browser: BrowserName;
|
|
9
11
|
version: string;
|
|
10
12
|
versionMajor: number;
|
|
13
|
+
browserType: BrowserType;
|
|
11
14
|
engine: EngineName;
|
|
15
|
+
engineVersion: string;
|
|
12
16
|
os: OsName;
|
|
13
17
|
osVersion: string;
|
|
18
|
+
osVersionName: string;
|
|
14
19
|
device: DeviceName;
|
|
20
|
+
vendor: string;
|
|
21
|
+
model: string;
|
|
15
22
|
arch: ArchName$1;
|
|
16
23
|
isWebview: boolean;
|
|
17
24
|
isHeadless: boolean;
|
|
18
25
|
isBot: boolean;
|
|
19
26
|
botName: BotName$1;
|
|
27
|
+
botCategory: BotCategory;
|
|
20
28
|
language: string;
|
|
21
29
|
platform: string;
|
|
22
30
|
connectionType: '4g' | '3g' | '2g' | 'slow-2g' | 'unknown';
|
|
@@ -45,11 +53,13 @@ type BotName = 'Googlebot' | 'Bingbot' | 'Baiduspider' | 'Bytespider' | 'YandexB
|
|
|
45
53
|
interface BotDef {
|
|
46
54
|
name: BotName;
|
|
47
55
|
detect: RegExp;
|
|
56
|
+
category: BotCategory;
|
|
48
57
|
}
|
|
49
58
|
|
|
50
59
|
interface BotResult {
|
|
51
60
|
isBot: boolean;
|
|
52
61
|
botName: BotName;
|
|
62
|
+
botCategory: BotCategory;
|
|
53
63
|
}
|
|
54
64
|
/**
|
|
55
65
|
* Detect whether the UA belongs to a bot, crawler, or spider.
|
|
@@ -169,6 +179,8 @@ declare function getWindowsVersion(nav: NavContext): Promise<string | null>;
|
|
|
169
179
|
interface BrowserResult {
|
|
170
180
|
browser: BrowserName;
|
|
171
181
|
version: string;
|
|
182
|
+
browserType: BrowserType;
|
|
183
|
+
priority: number;
|
|
172
184
|
}
|
|
173
185
|
/**
|
|
174
186
|
* Detect the browser name and version from a user agent string.
|
|
@@ -181,6 +193,7 @@ declare function detectBrowser(ua: string): BrowserResult;
|
|
|
181
193
|
interface OsResult {
|
|
182
194
|
os: OsName;
|
|
183
195
|
osVersion: string;
|
|
196
|
+
osVersionName: string;
|
|
184
197
|
}
|
|
185
198
|
/**
|
|
186
199
|
* Detect the operating system and its version from a user agent string.
|
|
@@ -203,6 +216,10 @@ type ArchName = 'x86' | 'x86_64' | 'arm' | 'arm64' | 'unknown';
|
|
|
203
216
|
*/
|
|
204
217
|
declare function detectArch(ua: string, ctx?: EnvContext): ArchName;
|
|
205
218
|
|
|
219
|
+
interface EngineResult {
|
|
220
|
+
engine: EngineName;
|
|
221
|
+
engineVersion: string;
|
|
222
|
+
}
|
|
206
223
|
/**
|
|
207
224
|
* Detect the rendering engine from a user agent string.
|
|
208
225
|
*
|
|
@@ -210,7 +227,7 @@ declare function detectArch(ua: string, ctx?: EnvContext): ArchName;
|
|
|
210
227
|
* @param browser - Pre-detected browser name; auto-detected when omitted
|
|
211
228
|
* @param version - Pre-detected browser version; auto-detected when omitted
|
|
212
229
|
*/
|
|
213
|
-
declare function detectEngine(ua: string, browser?: string, version?: string):
|
|
230
|
+
declare function detectEngine(ua: string, browser?: string, version?: string): EngineResult;
|
|
214
231
|
|
|
215
232
|
type DeviceNav = Pick<NavContext, 'platform' | 'maxTouchPoints'> & {
|
|
216
233
|
pointerType?: 'coarse' | 'fine' | 'none';
|
|
@@ -240,6 +257,15 @@ type DeviceNav = Pick<NavContext, 'platform' | 'maxTouchPoints'> & {
|
|
|
240
257
|
* @param nav - Optional nav context; hardware signals take precedence over UA when available
|
|
241
258
|
*/
|
|
242
259
|
declare function detectDevice(ua: string, nav?: DeviceNav): DeviceName;
|
|
260
|
+
interface VendorModelResult {
|
|
261
|
+
vendor: string;
|
|
262
|
+
model: string;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Extract device vendor and model from a user agent string.
|
|
266
|
+
* Returns 'unknown' for both when the UA does not carry recognisable device info.
|
|
267
|
+
*/
|
|
268
|
+
declare function detectVendorModel(ua: string): VendorModelResult;
|
|
243
269
|
|
|
244
270
|
/**
|
|
245
271
|
* Detect whether the UA belongs to a headless or automation-driven browser.
|
|
@@ -300,4 +326,4 @@ declare namespace uaBrowser {
|
|
|
300
326
|
var VERSION: string;
|
|
301
327
|
}
|
|
302
328
|
|
|
303
|
-
export { ACCEPT_CH, type ArchName$1 as ArchName, type BotDef, type BotName$1 as BotName, type BrowserName, type DeviceName, type EngineName, type EnvContext, type EnvOption, type OsName, type UAHighEntropyValues, VERSION, uaBrowser as default, detectArch, detectBot, detectBrowser, detectDevice, detectEngine, detectHeadless, detectOs as detectOS, getEnvContext, getLanguage, getNavContext, getWindowsVersion, isWebview, parseHeaders, parseUA, satisfies };
|
|
329
|
+
export { ACCEPT_CH, type ArchName$1 as ArchName, type BotCategory, type BotDef, type BotName$1 as BotName, type BrowserName, type BrowserType, type DeviceName, type EngineName, type EnvContext, type EnvOption, type OsName, type UAHighEntropyValues, VERSION, type VendorModelResult, uaBrowser as default, detectArch, detectBot, detectBrowser, detectDevice, detectEngine, detectHeadless, detectOs as detectOS, detectVendorModel, getEnvContext, getLanguage, getNavContext, getWindowsVersion, isWebview, parseHeaders, parseUA, satisfies };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,20 +3,28 @@ type BrowserName = 'Safari' | 'Chrome' | 'Arc' | 'Brave' | 'IE' | 'Edge' | 'Fire
|
|
|
3
3
|
type OsName = 'Windows' | 'Linux' | 'MacOS' | 'Android' | 'HarmonyOS' | 'OpenHarmony' | 'Ubuntu' | 'FreeBSD' | 'Debian' | 'Windows Phone' | 'BlackBerry' | 'MeeGo' | 'Symbian' | 'iOS' | 'visionOS' | 'tvOS' | 'Chrome OS' | 'WebOS' | 'Tizen' | 'KaiOS' | 'unknown';
|
|
4
4
|
type DeviceName = 'Mobile' | 'Tablet' | 'PC' | 'TV' | 'Console' | 'XR' | 'unknown';
|
|
5
5
|
type ArchName$1 = 'x86' | 'x86_64' | 'arm' | 'arm64' | 'unknown';
|
|
6
|
+
type BotCategory = 'search-engine' | 'ai-llm' | 'social' | 'link-preview' | 'seo-tool' | 'monitoring' | 'generic' | 'unknown';
|
|
7
|
+
type BrowserType = 'browser' | 'brand' | 'app' | 'unknown';
|
|
6
8
|
type BotName$1 = 'Googlebot' | 'Bingbot' | 'Baiduspider' | 'Bytespider' | 'YandexBot' | 'DuckDuckBot' | 'Slurp' | 'Sogou' | '360Spider' | 'Applebot-Extended' | 'Applebot' | 'Facebookbot' | 'Twitterbot' | 'LinkedInBot' | 'PinterestBot' | 'Slackbot' | 'Discordbot' | 'TelegramBot' | 'WhatsApp' | 'SemrushBot' | 'AhrefsBot' | 'MJ12bot' | 'PetalBot' | 'ScreamingFrog' | 'DataForSeoBot' | 'GPTBot' | 'OAI-SearchBot' | 'ChatGPT-User' | 'ClaudeBot' | 'PerplexityBot' | 'CCBot' | 'AdsBot' | 'Google-Extended' | 'Meta-ExternalAgent' | 'Amazonbot' | 'Diffbot' | 'cohere-ai' | 'YouBot' | 'UptimeRobot' | 'ia_archiver' | 'GenericBot' | 'unknown';
|
|
7
9
|
interface EnvOption {
|
|
8
10
|
browser: BrowserName;
|
|
9
11
|
version: string;
|
|
10
12
|
versionMajor: number;
|
|
13
|
+
browserType: BrowserType;
|
|
11
14
|
engine: EngineName;
|
|
15
|
+
engineVersion: string;
|
|
12
16
|
os: OsName;
|
|
13
17
|
osVersion: string;
|
|
18
|
+
osVersionName: string;
|
|
14
19
|
device: DeviceName;
|
|
20
|
+
vendor: string;
|
|
21
|
+
model: string;
|
|
15
22
|
arch: ArchName$1;
|
|
16
23
|
isWebview: boolean;
|
|
17
24
|
isHeadless: boolean;
|
|
18
25
|
isBot: boolean;
|
|
19
26
|
botName: BotName$1;
|
|
27
|
+
botCategory: BotCategory;
|
|
20
28
|
language: string;
|
|
21
29
|
platform: string;
|
|
22
30
|
connectionType: '4g' | '3g' | '2g' | 'slow-2g' | 'unknown';
|
|
@@ -45,11 +53,13 @@ type BotName = 'Googlebot' | 'Bingbot' | 'Baiduspider' | 'Bytespider' | 'YandexB
|
|
|
45
53
|
interface BotDef {
|
|
46
54
|
name: BotName;
|
|
47
55
|
detect: RegExp;
|
|
56
|
+
category: BotCategory;
|
|
48
57
|
}
|
|
49
58
|
|
|
50
59
|
interface BotResult {
|
|
51
60
|
isBot: boolean;
|
|
52
61
|
botName: BotName;
|
|
62
|
+
botCategory: BotCategory;
|
|
53
63
|
}
|
|
54
64
|
/**
|
|
55
65
|
* Detect whether the UA belongs to a bot, crawler, or spider.
|
|
@@ -169,6 +179,8 @@ declare function getWindowsVersion(nav: NavContext): Promise<string | null>;
|
|
|
169
179
|
interface BrowserResult {
|
|
170
180
|
browser: BrowserName;
|
|
171
181
|
version: string;
|
|
182
|
+
browserType: BrowserType;
|
|
183
|
+
priority: number;
|
|
172
184
|
}
|
|
173
185
|
/**
|
|
174
186
|
* Detect the browser name and version from a user agent string.
|
|
@@ -181,6 +193,7 @@ declare function detectBrowser(ua: string): BrowserResult;
|
|
|
181
193
|
interface OsResult {
|
|
182
194
|
os: OsName;
|
|
183
195
|
osVersion: string;
|
|
196
|
+
osVersionName: string;
|
|
184
197
|
}
|
|
185
198
|
/**
|
|
186
199
|
* Detect the operating system and its version from a user agent string.
|
|
@@ -203,6 +216,10 @@ type ArchName = 'x86' | 'x86_64' | 'arm' | 'arm64' | 'unknown';
|
|
|
203
216
|
*/
|
|
204
217
|
declare function detectArch(ua: string, ctx?: EnvContext): ArchName;
|
|
205
218
|
|
|
219
|
+
interface EngineResult {
|
|
220
|
+
engine: EngineName;
|
|
221
|
+
engineVersion: string;
|
|
222
|
+
}
|
|
206
223
|
/**
|
|
207
224
|
* Detect the rendering engine from a user agent string.
|
|
208
225
|
*
|
|
@@ -210,7 +227,7 @@ declare function detectArch(ua: string, ctx?: EnvContext): ArchName;
|
|
|
210
227
|
* @param browser - Pre-detected browser name; auto-detected when omitted
|
|
211
228
|
* @param version - Pre-detected browser version; auto-detected when omitted
|
|
212
229
|
*/
|
|
213
|
-
declare function detectEngine(ua: string, browser?: string, version?: string):
|
|
230
|
+
declare function detectEngine(ua: string, browser?: string, version?: string): EngineResult;
|
|
214
231
|
|
|
215
232
|
type DeviceNav = Pick<NavContext, 'platform' | 'maxTouchPoints'> & {
|
|
216
233
|
pointerType?: 'coarse' | 'fine' | 'none';
|
|
@@ -240,6 +257,15 @@ type DeviceNav = Pick<NavContext, 'platform' | 'maxTouchPoints'> & {
|
|
|
240
257
|
* @param nav - Optional nav context; hardware signals take precedence over UA when available
|
|
241
258
|
*/
|
|
242
259
|
declare function detectDevice(ua: string, nav?: DeviceNav): DeviceName;
|
|
260
|
+
interface VendorModelResult {
|
|
261
|
+
vendor: string;
|
|
262
|
+
model: string;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Extract device vendor and model from a user agent string.
|
|
266
|
+
* Returns 'unknown' for both when the UA does not carry recognisable device info.
|
|
267
|
+
*/
|
|
268
|
+
declare function detectVendorModel(ua: string): VendorModelResult;
|
|
243
269
|
|
|
244
270
|
/**
|
|
245
271
|
* Detect whether the UA belongs to a headless or automation-driven browser.
|
|
@@ -300,4 +326,4 @@ declare namespace uaBrowser {
|
|
|
300
326
|
var VERSION: string;
|
|
301
327
|
}
|
|
302
328
|
|
|
303
|
-
export { ACCEPT_CH, type ArchName$1 as ArchName, type BotDef, type BotName$1 as BotName, type BrowserName, type DeviceName, type EngineName, type EnvContext, type EnvOption, type OsName, type UAHighEntropyValues, VERSION, uaBrowser as default, detectArch, detectBot, detectBrowser, detectDevice, detectEngine, detectHeadless, detectOs as detectOS, getEnvContext, getLanguage, getNavContext, getWindowsVersion, isWebview, parseHeaders, parseUA, satisfies };
|
|
329
|
+
export { ACCEPT_CH, type ArchName$1 as ArchName, type BotCategory, type BotDef, type BotName$1 as BotName, type BrowserName, type BrowserType, type DeviceName, type EngineName, type EnvContext, type EnvOption, type OsName, type UAHighEntropyValues, VERSION, type VendorModelResult, uaBrowser as default, detectArch, detectBot, detectBrowser, detectDevice, detectEngine, detectHeadless, detectOs as detectOS, detectVendorModel, getEnvContext, getLanguage, getNavContext, getWindowsVersion, isWebview, parseHeaders, parseUA, satisfies };
|
package/dist/index.min.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var uaBrowser=(function(){'use strict';var ee={version:"1.4.0-beta.1"};var te=[{name:"Safari",priority:10,detect:/Safari/,versionPattern:/Version\/([\d.]+)/},{name:"Chrome",priority:20,detect:/(Chrome|CriOS)/,versionPattern:[/Chrome\/([\d.]+)/,/CriOS\/([\d.]+)/]},{name:"Arc",priority:35,detect:/Arc\//,versionPattern:/Arc\/([\d.]+)/},{name:"IE",priority:30,detect:/(MSIE|Trident)/,versionPattern:[/MSIE ([\d.]+)/,/rv:([\d.]+)/]},{name:"Edge",priority:40,detect:/(Edge|Edg\/|EdgA|EdgiOS)/,versionPattern:[/Edge\/([\d.]+)/,/Edg\/([\d.]+)/,/EdgA\/([\d.]+)/,/EdgiOS\/([\d.]+)/]},{name:"Firefox",priority:50,detect:/(Firefox|FxiOS)/,versionPattern:[/Firefox\/([\d.]+)/,/FxiOS\/([\d.]+)/]},{name:"Firefox Focus",priority:55,detect:/Focus/,versionPattern:/Focus\/([\d.]+)/},{name:"Chromium",priority:60,detect:/Chromium/,versionPattern:/Chromium\/([\d.]+)/},{name:"Opera",priority:70,detect:/(Opera|OPR|OPT)/,versionPattern:[/Opera\/([\d.]+)/,/OPR\/([\d.]+)/,/OPT\/([\d.]+)/]},{name:"Vivaldi",priority:80,detect:/Vivaldi/,versionPattern:/Vivaldi\/([\d.]+)/},{name:"Yandex",priority:90,detect:/YaBrowser/,versionPattern:/YaBrowser\/([\d.]+)/},{name:"Samsung Internet",priority:92,detect:/SamsungBrowser/,versionPattern:/SamsungBrowser\/([\d.]+)/},{name:"DuckDuckGo",priority:94,detect:/(DuckDuckGo|Ddg)\//,versionPattern:[/DuckDuckGo\/([\d.]+)/,/Ddg\/([\d.]+)/]},{name:"Puffin",priority:96,detect:/Puffin\//,versionPattern:/Puffin\/([\d.]+)/},{name:"Coc Coc",priority:130,detect:/coc_coc_browser/,versionPattern:/coc_coc_browser\/([\d.]+)/},{name:"Kindle",priority:140,detect:/(Kindle|Silk\/)/,versionPattern:/Version\/([\d.]+)/},{name:"Konqueror",priority:160,detect:/Konqueror/,versionPattern:/Konqueror\/([\d.]+)/},{name:"SeaMonkey",priority:180,detect:/SeaMonkey/,versionPattern:/SeaMonkey\/([\d.]+)/},{name:"Epiphany",priority:190,detect:/Epiphany/,versionPattern:/Epiphany\/([\d.]+)/},{name:"Maxthon",priority:200,detect:/Maxthon/,versionPattern:/Maxthon\/([\d.]+)/},{name:"360",priority:300,detect:/(QihooBrowser|QHBrowser)/,versionPattern:/QihooBrowser\/([\d.]+)/},{name:"360SE",priority:310,detect:/360SE/,versionPattern:null,chromeLookup:{108:"14.0",86:"13.0",78:"12.0",69:"11.0",63:"10.0",55:"9.1",45:"8.1",42:"8.0",31:"7.0",21:"6.3"}},{name:"360EE",priority:320,detect:/360EE/,versionPattern:null,chromeLookup:{86:"13.0",78:"12.0",69:"11.0",63:"9.5",55:"9.0",50:"8.7",30:"7.5"}},{name:"UC",priority:330,detect:/(UCBrowser|UBrowser|UCWEB)/,versionPattern:/UC?Browser\/([\d.]+)/},{name:"QQBrowser",priority:340,detect:/(MQQBrowser|QQBrowser)/,versionPattern:[/MQQBrowser\/([\d.]+)/,/QQBrowser\/([\d.]+)/]},{name:"QQ",priority:345,detect:/QQ\//,versionPattern:/QQ\/([\d.]+)/},{name:"Baidu",priority:350,detect:/(Baidu|BIDUBrowser|baidubrowser|baiduboxapp|BaiduHD)/,versionPattern:[/BIDUBrowser[\s/]([\d.]+)/,/baiduboxapp\/([\d.]+)/]},{name:"Sogou",priority:360,detect:/(MetaSr|Sogou)/,versionPattern:[/SE ([\d.X]+)/,/SogouMobileBrowser\/([\d.]+)/]},{name:"Liebao",priority:370,detect:/(LBBROWSER|LieBaoFast)/,versionPattern:/LieBaoFast\/([\d.]+)/,chromeLookup:{57:"6.5",49:"6.0",46:"5.9",42:"5.3",39:"5.2",34:"5.0",29:"4.5",21:"4.0"}},{name:"2345Explorer",priority:380,detect:/2345Explorer/,versionPattern:[/2345Explorer\/([\d.]+)/,/Mb2345Browser\/([\d.]+)/],chromeLookup:{69:"10.0",55:"9.9"}},{name:"115Browser",priority:390,detect:/115Browser/,versionPattern:/115Browser\/([\d.]+)/},{name:"TheWorld",priority:400,detect:/TheWorld/,versionPattern:/TheWorld ([\d.]+)/},{name:"XiaoMi",priority:410,detect:/MiuiBrowser/,versionPattern:/MiuiBrowser\/([\d.]+)/},{name:"Vivo",priority:420,detect:/VivoBrowser/,versionPattern:/VivoBrowser\/([\d.]+)/},{name:"Huawei",priority:430,detect:/HuaweiBrowser/,versionPattern:[/HuaweiBrowser\/([\d.]+)/,/Version\/([\d.]+)/]},{name:"OPPO",priority:440,detect:/HeyTapBrowser/,versionPattern:/HeyTapBrowser\/([\d.]+)/},{name:"Quark",priority:450,detect:/Quark/,versionPattern:/Quark\/([\d.]+)/},{name:"Qiyu",priority:460,detect:/Qiyu/,versionPattern:/Qiyu\/([\d.]+)/},{name:"WechatWork",priority:500,detect:/wxwork\//,versionPattern:/wxwork\/([\d.]+)/},{name:"Wechat",priority:510,detect:/MicroMessenger/,versionPattern:/MicroMessenger\/([\d.]+)/},{name:"Taobao",priority:520,detect:/AliApp\(TB/,versionPattern:/AliApp\(TB\/([\d.]+)/},{name:"Alipay",priority:530,detect:/AliApp\(AP/,versionPattern:/AliApp\(AP\/([\d.]+)/},{name:"Weibo",priority:540,detect:/Weibo/,versionPattern:/weibo__([\d.]+)/},{name:"Douban",priority:550,detect:/com\.douban\.frodo/,versionPattern:/com\.douban\.frodo\/([\d.]+)/},{name:"Suning",priority:560,detect:/SNEBUY-APP/,versionPattern:/SNEBUY-APP([\d.]+)/},{name:"iQiYi",priority:570,detect:/IqiyiApp/,versionPattern:/IqiyiVersion\/([\d.]+)/},{name:"DingTalk",priority:580,detect:/DingTalk/,versionPattern:/DingTalk\/([\d.]+)/},{name:"Douyin",priority:590,detect:/aweme/,versionPattern:/app_version\/([\d.]+)/},{name:"Bilibili",priority:592,detect:/BiliBili\//,versionPattern:/BiliBili\/([\d.]+)/},{name:"Kuaishou",priority:594,detect:/Kwai\//,versionPattern:/Kwai\/([\d.]+)/},{name:"Xiaohongshu",priority:596,detect:/Xiaohongshu\//,versionPattern:/Xiaohongshu\/([\d.]+)/},{name:"Feishu",priority:597,detect:/(Lark|Feishu)\//,versionPattern:[/Lark\/([\d.]+)/,/Feishu\/([\d.]+)/]},{name:"Toutiao",priority:598,detect:/NewsArticle\//,versionPattern:/NewsArticle\/([\d.]+)/},{name:"JD",priority:599,detect:/jdpingou\//,versionPattern:/jdpingou\/([\d.]+)/},{name:"Meituan",priority:600,detect:/MeituanHybrid\//,versionPattern:/MeituanHybrid\/([\d.]+)/}];function V(t,e){let r=e.exec(t);if(!r)return null;let n=r[1];return n!=null&&n!==""?n:null}function k(t,e){for(let r of e){let n=V(t,r);if(n!==null)return n}return null}function re(t,e){let r=/Chrome\/([\d]+)/.exec(t);if(!r)return null;let n=r[1];return Object.prototype.hasOwnProperty.call(e,n)?e[n]:null}function N(t){let e=null;for(let n of te)n.detect.test(t)&&(e===null||n.priority>=e.priority)&&(e=n);if(!e)return {browser:"unknown",version:"unknown"};let r=null;if(e.chromeLookup&&(r=re(t,e.chromeLookup)),r===null&&e.versionPattern!==null){let n=Array.isArray(e.versionPattern)?e.versionPattern:[e.versionPattern];r=k(t,n);}return {browser:e.name,version:r!=null?r:"unknown"}}var ne=[{name:"KHTML",detect:/KHTML\//},{name:"Trident",detect:/(Trident|NET CLR)/},{name:"Presto",detect:/Presto/},{name:"Gecko",detect:/Gecko\//},{name:"WebKit",detect:/AppleWebKit/},{name:"ArkWeb",detect:/ArkWeb/}];function oe(t,e,r){var o,i;if(e===void 0||r===void 0){let d=N(t);e=e!=null?e:d.browser,r=r!=null?r:d.version;}let n="unknown";for(let d of ne)d.detect.test(t)&&(n=d.name);return (n==="WebKit"&&/(Chrome|CriOS)/.test(t)&&parseInt((i=((o=/Chrome\/([\d]+)/.exec(t))!=null?o:[])[1])!=null?i:"0",10)>27||e==="Opera"&&parseInt(r,10)>12||e==="Yandex")&&(n="Blink"),e==="Edge"&&(n=parseInt(r,10)>75?"Blink":"EdgeHTML"),n}var ie=[{name:"WebOS",detect:/hpwOS/,versionPattern:/hpwOS\/([\d.]+)/},{name:"Symbian",detect:/Symbian/,versionPattern:null},{name:"MeeGo",detect:/MeeGo/,versionPattern:null},{name:"BlackBerry",detect:/(BlackBerry|RIM)/,versionPattern:null},{name:"FreeBSD",detect:/FreeBSD/,versionPattern:null},{name:"Debian",detect:/Debian/,versionPattern:/Debian\/([\d.]+)/},{name:"Ubuntu",detect:/Ubuntu/,versionPattern:null},{name:"Linux",detect:/(Linux|X11)/,versionPattern:null},{name:"Chrome OS",detect:/CrOS/,versionPattern:null},{name:"Tizen",detect:/Tizen/,versionPattern:/Tizen ([\d.]+)/},{name:"iOS",detect:/like Mac OS X/,versionPattern:/OS ([\d_]+) like/},{name:"MacOS",detect:/Macintosh/,versionPattern:/Mac OS X -?([\d_.]+)/},{name:"visionOS",detect:/visionOS/,versionPattern:/visionOS ([\d_]+)/},{name:"tvOS",detect:/Apple TV/,versionPattern:/OS ([\d_]+) like/},{name:"Android",detect:/(Android|Adr)/,versionPattern:/(?:Android|Adr) ([\d.]+)/},{name:"HarmonyOS",detect:/HarmonyOS/,versionPattern:[/HarmonyOS[\s/]([\d.]+)/,/Android ([\d.]+)[;)]/],versionLookup:{10:"2",11:"3",12:"3",13:"4"}},{name:"OpenHarmony",detect:/OpenHarmony/,versionPattern:/OpenHarmony[\s/]([\d.]+)/},{name:"KaiOS",detect:/KAIOS/,versionPattern:/KAIOS\/([\d.]+)/},{name:"Windows",detect:/Windows/,versionPattern:/Windows NT ([\d.]+)/,versionLookup:{10:"10","6.4":"10","6.3":"8.1","6.2":"8","6.1":"7","6.0":"Vista","5.2":"XP","5.1":"XP","5.0":"2000"}},{name:"Windows Phone",detect:/(IEMobile|Windows Phone)/,versionPattern:/Windows Phone(?: OS)? ([\d.]+)/}];function ae(t,e){let r=null;for(let o of ie)o.detect.test(t)&&(r=o);if(!r)return {os:"unknown",osVersion:"unknown"};let n="unknown";if(r.versionPattern){let o=Array.isArray(r.versionPattern)?k(t,r.versionPattern):V(t,r.versionPattern);if(o!==null){let i=o.replace(/_/g,".");if(r.versionLookup){let d=Object.prototype.hasOwnProperty.call(r.versionLookup,i)?r.versionLookup[i]:null;if(d!==null)n=d;else if(r.name==="Windows"){let c=parseInt(i,10);n=isNaN(c)?"unknown":c.toString();}else n=i;}else n=i;}}return r.name==="Windows"&&e&&(n=e),{os:r.name,osVersion:n}}var se=[{name:"Mobile",detect:/(Mobi|iPh)/},{name:"Tablet",detect:/(Tablet|Pad)/}];function de(t,e){var o,i;function r(){if(/PlayStation|Xbox|Nintendo/.test(t))return "Console";if(/visionOS|Quest/.test(t))return "XR";if(/(SMART-TV|HbbTV|SmartTV|TV Safari|Android TV|GoogleTV)/.test(t))return "TV";if(/iPad/.test(t)||/Android/.test(t)&&!/Mobile/.test(t))return "Tablet";for(let d of se)if(d.detect.test(t))return d.name;return null}function n(){var d,c,l,p,g,b,a,w,S,A,O,C,m,f,T,D;if(!e)return null;if(e.webglRenderer){if(/^ANGLE\b/.test(e.webglRenderer))return "PC";if(/Adreno/i.test(e.webglRenderer)||/Mali[-\s]/i.test(e.webglRenderer))return ((d=e.screenWidth)!=null?d:0)>=768?"Tablet":"Mobile";if(/Apple GPU/i.test(e.webglRenderer)){let M=(c=e.screenWidth)!=null?c:0;return M<=1366?M>=768?"Tablet":"Mobile":"PC"}}return e.platform==="MacIntel"&&((l=e.maxTouchPoints)!=null?l:0)>1?e.screenWidth!==void 0&&e.screenWidth<768?"Mobile":"Tablet":e.webglMaxTextureSize!==void 0&&e.webglMaxTextureSize<=8192&&((p=e.maxTouchPoints)!=null?p:0)>1&&((g=e.screenWidth)!=null?g:9999)<1367?((b=e.screenWidth)!=null?b:0)>=768?"Tablet":"Mobile":(a=e.webglCompressedFormats)!=null&&a.pvrtc&&!e.webglCompressedFormats.s3tc?((w=e.screenWidth)!=null?w:0)>=768?"Tablet":"Mobile":e.safeAreaInsetTop!==void 0&&e.safeAreaInsetTop>0?((S=e.screenWidth)!=null?S:0)>=768?"Tablet":"Mobile":e.hasVibration||e.hasDeviceMotion?((A=e.screenWidth)!=null?A:0)>=768?"Tablet":"Mobile":(O=e.connection)!=null&&O.effectiveType&&["2g","3g","slow-2g"].includes(e.connection.effectiveType)?((C=e.screenWidth)!=null?C:0)>=768?"Tablet":"Mobile":((m=e.devicePixelRatio)!=null?m:0)>2&&((f=e.maxTouchPoints)!=null?f:0)>1?((T=e.screenWidth)!=null?T:0)>=768?"Tablet":"Mobile":e.pointerType==="coarse"&&e.hoverCapability===false?((D=e.screenWidth)!=null?D:0)>=768?"Tablet":"Mobile":null}return (i=(o=n())!=null?o:r())!=null?i:"PC"}var P=[{name:"Googlebot",detect:/Googlebot/},{name:"Bingbot",detect:/(bingbot|BingPreview)/},{name:"Baiduspider",detect:/(Baiduspider|BaiduMobaider)/},{name:"Bytespider",detect:/Bytespider/},{name:"YandexBot",detect:/YandexBot/},{name:"DuckDuckBot",detect:/DuckDuckBot/},{name:"Slurp",detect:/Slurp/},{name:"Sogou",detect:/(Sogou|sogou).*[Ss]pider/},{name:"360Spider",detect:/360Spider/},{name:"PetalBot",detect:/PetalBot/},{name:"Applebot-Extended",detect:/Applebot-Extended/},{name:"Applebot",detect:/Applebot/},{name:"Facebookbot",detect:/(facebookexternalhit|FacebookBot)/},{name:"Twitterbot",detect:/Twitterbot/},{name:"LinkedInBot",detect:/LinkedInBot/},{name:"PinterestBot",detect:/Pinterest/},{name:"Slackbot",detect:/Slackbot/},{name:"Discordbot",detect:/Discordbot/},{name:"TelegramBot",detect:/TelegramBot/},{name:"WhatsApp",detect:/WhatsApp/},{name:"SemrushBot",detect:/SemrushBot/},{name:"AhrefsBot",detect:/AhrefsBot/},{name:"MJ12bot",detect:/MJ12bot/},{name:"ScreamingFrog",detect:/Screaming Frog/},{name:"DataForSeoBot",detect:/DataForSeoBot/},{name:"GPTBot",detect:/GPTBot/},{name:"OAI-SearchBot",detect:/OAI-SearchBot/},{name:"ChatGPT-User",detect:/ChatGPT-User/},{name:"ClaudeBot",detect:/ClaudeBot/},{name:"PerplexityBot",detect:/PerplexityBot/},{name:"CCBot",detect:/CCBot/},{name:"AdsBot",detect:/AdsBot-Google/},{name:"Google-Extended",detect:/Google-Extended/},{name:"Meta-ExternalAgent",detect:/meta-externalagent/i},{name:"Amazonbot",detect:/Amazonbot/},{name:"Diffbot",detect:/Diffbot/},{name:"cohere-ai",detect:/cohere-ai/},{name:"YouBot",detect:/YouBot/},{name:"UptimeRobot",detect:/UptimeRobot/},{name:"ia_archiver",detect:/ia_archiver/},{name:"GenericBot",detect:/(bot|crawler|spider|crawling|scraper)/i}];function ce(t,e){let r=e?[...P.slice(0,-1),...e,P[P.length-1]]:P;for(let n of r)if(n.detect.test(t))return {isBot:true,botName:n.name};return {isBot:false,botName:"unknown"}}var me=[{name:"arm64",detect:/(aarch64|arm64|ARM64|iPhone|iPad|iPod)/},{name:"arm",detect:/\bARM\b/},{name:"x86_64",detect:/(x86_64|Win64|WOW64|x64;|amd64)/i},{name:"x86",detect:/(i[36]86|i686|x86;)/}];function pe(t,e){if(e!=null&&e.highEntropyData){let{architecture:o,bitness:i}=e.highEntropyData;if(o==="arm")return i==="64"?"arm64":"arm";if(o==="x86")return i==="64"?"x86_64":"x86"}let r=e==null?void 0:e.webglRenderer;if(r){if(/Apple\s+(M\d|A\d{1,2}[A-Z]?)\b/i.test(r)||/APPLE M\d/i.test(r)||/^Apple GPU$/i.test(r))return "arm64";if(/\b(Intel|AMD|NVIDIA|Radeon)\b/i.test(r))return "x86_64"}let n=e==null?void 0:e.platform;if(n){if(/iPhone|iPad|iPod/.test(n)||/arm64|aarch64/i.test(n))return "arm64";if(/arm/i.test(n))return "arm";if(/Win64|WOW64|x86_64/i.test(n))return "x86_64";if(/Win32|i686/i.test(n))return "x86"}for(let o of me)if(o.detect.test(t))return o.name;return "unknown"}var he=/(HeadlessChrome|Headless|PhantomJS|Electron\/|Playwright|jsdom\/|Selenium)/;function le(t){return he.test(t)}function R(t){return !!(/; wv/.test(t)||/like Mac OS X/.test(t)&&!/Version\//.test(t)&&!/Safari\//.test(t))}function B(){return typeof navigator=="undefined"?{userAgent:"",platform:"",language:"",maxTouchPoints:0}:navigator}function x(t,e){var r;try{return !!((r=t.mimeTypes)!=null&&r.namedItem(e))}catch(n){return false}}function W(t){var n,o;return ((o=(n=t.browserLanguage)!=null?n:t.language)!=null?o:"").replace(/-\w+/g,i=>i.toUpperCase())||"unknown"}var we=[["Microsoft Edge","Edge"],["Opera","Opera"],["Vivaldi","Vivaldi"],["Google Chrome","Chrome"],["Chromium","Chromium"]];function xe(t){var i,d,c,l,p,g,b;let e=((i=t.platform)!=null?i:"").toLowerCase(),r=(d=t.userAgentData)==null?void 0:d.platform,n=(c=t.highEntropyData)==null?void 0:c.platformVersion,o=!!(n&&n!=="0.0.0");if((l=t.webglCompressedFormats)!=null&&l.pvrtc&&!t.webglCompressedFormats.s3tc)return "iOS";if(t.webglRenderer&&/^ANGLE\b/.test(t.webglRenderer))return e.startsWith("mac")||r==="macOS"?"MacOS":e.startsWith("win")||r==="Windows"?"Windows":r==="Chrome OS"?"Chrome OS":null;if(t.webglRenderer&&(/Adreno/i.test(t.webglRenderer)||/Mali[-\s]/i.test(t.webglRenderer)))return "Android";if(r&&o){let w={Windows:"Windows",macOS:"MacOS",Android:"Android",iOS:"iOS","Chrome OS":"Chrome OS"}[r];if(w)return w}return e.startsWith("mac")?"MacOS":e.startsWith("win")?"Windows":e==="iphone"||e==="ipad"||e==="ipod"||((p=t.safeAreaInsetTop)!=null?p:0)>0?"iOS":r==="Chrome OS"?"Chrome OS":r==="Android"&&(e.includes("android")||/^linux arm/i.test((g=t.platform)!=null?g:""))||e.includes("android")||/^linux arm/i.test((b=t.platform)!=null?b:"")?"Android":null}function ve(t){return /iPhone/.test(t)?"iPhone":/iPad/.test(t)?"iPad":/iPod/.test(t)?"iPod":/Macintosh/.test(t)?"MacIntel":/Windows NT/.test(t)?/Win64|WOW64/i.test(t)?"Win64":"Win32":/CrOS/.test(t)?"Linux x86_64":/Android/.test(t)?/aarch64|arm64/i.test(t)?"Linux aarch64":"Linux armv8l":/Linux/.test(t)?/x86_64/i.test(t)?"Linux x86_64":/aarch64|arm64/i.test(t)?"Linux aarch64":"Linux":"unknown"}function ue(t){return t.replace(/_/g,"-").split("-").map((r,n)=>n===0?r.toLowerCase():r.length===4?r[0].toUpperCase()+r.slice(1).toLowerCase():r.toUpperCase()).join("-")}function ye(t){let e=/\bLanguage\/([a-zA-Z]{2,3}(?:[-_][a-zA-Z]{2,4}){1,2})\b/i.exec(t);if(e)return ue(e[1]);let r=/[;(]\s*([a-z]{2,3}(?:[-_][A-Za-z]{2,4})+)\s*[;)]/g,n;for(;(n=r.exec(t))!==null;)if(n[1].replace(/_/g,"-").split("-").length>=2)return ue(n[1]);return "unknown"}function _(t,e={}){var L,F,I,G,H,U,j,Q,z,K,X,Y,q,Z,J,$;let r=(L=e.ctx)!=null?L:e.nav,n=(I=(F=e.ctx)==null?void 0:F.windowsVersion)!=null?I:e.windowsVersion,{browser:o,version:i}=N(t),{os:d,osVersion:c}=ae(t,n),l=d,p=c,g=de(t,r),b=pe(t,(G=e.ctx)!=null?G:r),a=r,{isBot:w,botName:S}=ce(t,e.customBotDefs),A=le(t),O=e.language||(a!=null&&a.language||a!=null&&a.browserLanguage?W(a):"")||ye(t),C=(a==null?void 0:a.platform)||ve(t),m=o,f=i;if((H=e.ctx)!=null&&H.hasBrave&&(m="Brave"),a){let s=typeof chrome!="undefined"?chrome:void 0,y=/Chrome\/([\d]+)/.exec(t),h=y?parseInt(y[1],10):0;if(s)if(s.adblock2345||s.common2345)m="2345Explorer",f="unknown";else {let u=false;if(x(a,"application/360softmgrplugin")||x(a,"application/mozilla-npqihooquicklogin")||h>36&&typeof showModalDialog!="undefined"?u=true:h>45&&(u=x(a,"application/vnd.chromium.remoting-viewer"),!u&&h>=69&&(u=x(a,"application/hwepass2001.installepass2001")||x(a,"application/asx"))),u){let v=((U=a.connection)==null?void 0:U.saveData)===true;x(a,"application/gameplugin")||!v?m="360SE":m="360EE",f="unknown";}}}if(m==="Baidu"&&/(Opera|OPR|OPT)/.test(t)){m="Opera";let s=(Q=(j=/OPR\/([\d.]+)/.exec(t))!=null?j:/OPT\/([\d.]+)/.exec(t))!=null?Q:/Opera\/([\d.]+)/.exec(t);f=(z=s==null?void 0:s[1])!=null?z:"unknown";}if(m==="Chrome"&&/\S+Browser\//.test(t)){let s=/(\S+Browser)\/([\d.]+)/.exec(t);s&&(m=s[1],f=s[2]);}if(m==="Firefox"&&a)try{(typeof clientInformation!="undefined"||typeof u2f=="undefined")&&(m="Firefox Nightly");}catch(s){}if(l==="iOS"&&m==="Safari"){let s=/Version\/([\d.]+)/.exec(t);s&&parseInt(s[1],10)>parseInt(p,10)&&(p=s[1]);}if(l==="MacOS"&&m==="Safari"){let s=/Version\/([\d.]+)/.exec(t);s&&parseInt(s[1],10)>=26&&(p=s[1]);}if(e.ctx){let s=xe(e.ctx);if(s!==null&&(s!==d&&(l=s,p="unknown"),l!=="Windows")){let h=(K=e.ctx.highEntropyData)==null?void 0:K.platformVersion;if(h&&h!=="0.0.0"){let u=h.split(".").map(Number);for(;u.length>1&&u[u.length-1]===0;)u.pop();u[0]&&(p=u.join("."));}}let y=(X=e.ctx.highEntropyData)==null?void 0:X.fullVersionList;if(y)for(let[h,u]of we){let v=y.find(ge=>ge.brand===h);if(v!=null&&v.version){m=u,f=v.version;break}}}let T=oe(t,m,f),D=parseInt((Y=f.split(".")[0])!=null?Y:"0",10)||0,M=($=(J=(Z=(q=e.ctx)!=null?q:e.nav)==null?void 0:Z.connection)==null?void 0:J.effectiveType)!=null?$:"unknown";return {browser:m,version:f,versionMajor:D,engine:T,os:l,osVersion:p,device:g,arch:b,isWebview:R(t),isHeadless:A,isBot:w,botName:S,language:O,platform:C,connectionType:M}}var Pe=[".AppleSystemUIFont","Segoe UI","Noto Color Emoji","Ubuntu","HarmonyOS Sans"];function Be(){try{let e=document.createElement("canvas").getContext("2d");if(!e)return {};let r="mmmmmmmmmmlli";e.font="72px monospace";let n=e.measureText(r).width,o={};for(let i of Pe)e.font=`72px '${i}', monospace`,o[i]=e.measureText(r).width!==n;return o}catch(t){return {}}}function Ee(){var t,e;try{let r=document.createElement("canvas"),n=(t=r.getContext("webgl"))!=null?t:r.getContext("experimental-webgl");if(!n)return {};let o=n.getExtension("WEBGL_debug_renderer_info"),i={maxTextureSize:n.getParameter(n.MAX_TEXTURE_SIZE),fragPrecision:(e=n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT))==null?void 0:e.rangeMax,compressedFormats:{s3tc:!!n.getExtension("WEBGL_compressed_texture_s3tc"),pvrtc:!!n.getExtension("WEBGL_compressed_texture_pvrtc"),etc2:!!n.getExtension("WEBGL_compressed_texture_etc"),astc:!!n.getExtension("WEBGL_compressed_texture_astc_ldr")}};return o&&(i.renderer=n.getParameter(o.UNMASKED_RENDERER_WEBGL),i.vendor=n.getParameter(o.UNMASKED_VENDOR_WEBGL)),i}catch(r){return {}}}function Se(){try{let t=document.createElement("div");t.style.cssText="position:fixed;top:env(safe-area-inset-top,0px);visibility:hidden;pointer-events:none",document.body.appendChild(t);let e=parseFloat(getComputedStyle(t).top);return document.body.removeChild(t),isNaN(e)?0:e}catch(t){return 0}}function Ae(){var t;try{let e=(t=window.AudioContext)!=null?t:window.webkitAudioContext;if(!e)return;let r=new e,n=r.sampleRate;return r.close(),n}catch(e){return}}function Oe(){try{if(window.matchMedia("(pointer: coarse)").matches)return "coarse";if(window.matchMedia("(pointer: fine)").matches)return "fine";if(window.matchMedia("(pointer: none)").matches)return "none"}catch(t){}}function Ce(){try{return window.matchMedia("(hover: hover)").matches}catch(t){return}}function Te(t){var r;if(!t)return null;let e=parseInt((r=t.split(".")[0])!=null?r:"0",10);return isNaN(e)?null:e>=13?"11":"10"}async function fe(){var r,n,o,i,d;let t=B(),e={userAgent:t.userAgent,platform:t.platform,language:t.language,maxTouchPoints:t.maxTouchPoints};if(t.browserLanguage!==void 0&&(e.browserLanguage=t.browserLanguage),t.mimeTypes!==void 0&&(e.mimeTypes=t.mimeTypes),t.connection!==void 0&&(e.connection=t.connection),t.userAgentData!==void 0&&(e.userAgentData=t.userAgentData),typeof navigator!="undefined"&&(e.hardwareConcurrency=navigator.hardwareConcurrency,e.deviceMemory=navigator.deviceMemory),typeof window!="undefined"){e.devicePixelRatio=window.devicePixelRatio,e.screenWidth=(r=window.screen)==null?void 0:r.width,e.screenHeight=(n=window.screen)==null?void 0:n.height,e.safeAreaInsetTop=Se(),e.pointerType=Oe(),e.hoverCapability=Ce(),e.fontProbes=Be(),e.audioSampleRate=Ae(),e.hasVibration="vibrate"in navigator,e.hasDeviceMotion="DeviceMotionEvent"in window;try{e.hasBrave=(d=await((i=(o=navigator.brave)==null?void 0:o.isBrave)==null?void 0:i.call(o)))!=null?d:!1;}catch(a){e.hasBrave=false;}let{renderer:c,vendor:l,maxTextureSize:p,fragPrecision:g,compressedFormats:b}=Ee();c!==void 0&&(e.webglRenderer=c),l!==void 0&&(e.webglVendor=l),p!==void 0&&(e.webglMaxTextureSize=p),g!==void 0&&(e.webglFragPrecision=g),b!==void 0&&(e.webglCompressedFormats=b);}if(t.userAgentData)try{let c=await t.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]);e.highEntropyData={architecture:c.architecture,bitness:c.bitness,model:c.model,platformVersion:c.platformVersion,fullVersionList:c.fullVersionList},t.userAgentData.platform==="Windows"&&(e.windowsVersion=Te(c.platformVersion));}catch(c){}return e}var{version:De}=ee;function E(){let t=B();return _(t.userAgent,{nav:t})}E.detect=async t=>{let e=await fe();return _(t!=null?t:e.userAgent,{ctx:e})};E.isWebview=R;E.getLanguage=()=>W(B());E.VERSION=De;var Me=E;
|
|
2
|
-
return
|
|
1
|
+
var uaBrowser=(function(){'use strict';var ne={version:"1.4.0"};var R=[{name:"WebOS",detect:/hpwOS/,versionPattern:/hpwOS\/([\d.]+)/},{name:"Symbian",detect:/Symbian/,versionPattern:null},{name:"MeeGo",detect:/MeeGo/,versionPattern:null},{name:"BlackBerry",detect:/(BlackBerry|RIM)/,versionPattern:null},{name:"FreeBSD",detect:/FreeBSD/,versionPattern:null},{name:"Debian",detect:/Debian/,versionPattern:/Debian\/([\d.]+)/},{name:"Ubuntu",detect:/Ubuntu/,versionPattern:null},{name:"Linux",detect:/(Linux|X11)/,versionPattern:null},{name:"Chrome OS",detect:/CrOS/,versionPattern:null},{name:"Tizen",detect:/Tizen/,versionPattern:/Tizen ([\d.]+)/},{name:"iOS",detect:/like Mac OS X/,versionPattern:/OS ([\d_]+) like/},{name:"MacOS",detect:/Macintosh/,versionPattern:/Mac OS X -?([\d_.]+)/,versionNames:{"10.9":"Mavericks","10.10":"Yosemite","10.11":"El Capitan","10.12":"Sierra","10.13":"High Sierra","10.14":"Mojave","10.15":"Catalina",11:"Big Sur",12:"Monterey",13:"Ventura",14:"Sonoma",15:"Sequoia"}},{name:"visionOS",detect:/visionOS/,versionPattern:/visionOS ([\d_]+)/},{name:"tvOS",detect:/Apple TV/,versionPattern:/OS ([\d_]+) like/},{name:"Android",detect:/(Android|Adr)/,versionPattern:/(?:Android|Adr) ([\d.]+)/},{name:"HarmonyOS",detect:/HarmonyOS/,versionPattern:[/HarmonyOS[\s/]([\d.]+)/,/Android ([\d.]+)[;)]/],versionLookup:{10:"2",11:"3",12:"3",13:"4"}},{name:"OpenHarmony",detect:/OpenHarmony/,versionPattern:/OpenHarmony[\s/]([\d.]+)/},{name:"KaiOS",detect:/KAIOS/,versionPattern:/KAIOS\/([\d.]+)/},{name:"Windows",detect:/Windows/,versionPattern:/Windows NT ([\d.]+)/,versionLookup:{10:"10","6.4":"10","6.3":"8.1","6.2":"8","6.1":"7","6.0":"Vista","5.2":"XP","5.1":"XP","5.0":"2000"},versionNames:{7:"Windows 7",8:"Windows 8","8.1":"Windows 8.1",10:"Windows 10",11:"Windows 11"}},{name:"Windows Phone",detect:/(IEMobile|Windows Phone)/,versionPattern:/Windows Phone(?: OS)? ([\d.]+)/}];var oe=[{name:"Safari",priority:10,detect:/Safari/,versionPattern:/Version\/([\d.]+)/},{name:"Chrome",priority:20,detect:/(Chrome|CriOS)/,versionPattern:[/Chrome\/([\d.]+)/,/CriOS\/([\d.]+)/]},{name:"Arc",priority:35,detect:/Arc\//,versionPattern:/Arc\/([\d.]+)/},{name:"IE",priority:30,detect:/(MSIE|Trident)/,versionPattern:[/MSIE ([\d.]+)/,/rv:([\d.]+)/]},{name:"Edge",priority:40,detect:/(Edge|Edg\/|EdgA|EdgiOS)/,versionPattern:[/Edge\/([\d.]+)/,/Edg\/([\d.]+)/,/EdgA\/([\d.]+)/,/EdgiOS\/([\d.]+)/]},{name:"Firefox",priority:50,detect:/(Firefox|FxiOS)/,versionPattern:[/Firefox\/([\d.]+)/,/FxiOS\/([\d.]+)/]},{name:"Firefox Focus",priority:55,detect:/Focus/,versionPattern:/Focus\/([\d.]+)/},{name:"Chromium",priority:60,detect:/Chromium/,versionPattern:/Chromium\/([\d.]+)/},{name:"Opera",priority:70,detect:/(Opera|OPR|OPT)/,versionPattern:[/Opera\/([\d.]+)/,/OPR\/([\d.]+)/,/OPT\/([\d.]+)/]},{name:"Vivaldi",priority:80,detect:/Vivaldi/,versionPattern:/Vivaldi\/([\d.]+)/},{name:"Yandex",priority:90,detect:/YaBrowser/,versionPattern:/YaBrowser\/([\d.]+)/},{name:"Samsung Internet",priority:92,detect:/SamsungBrowser/,versionPattern:/SamsungBrowser\/([\d.]+)/},{name:"DuckDuckGo",priority:94,detect:/(DuckDuckGo|Ddg)\//,versionPattern:[/DuckDuckGo\/([\d.]+)/,/Ddg\/([\d.]+)/]},{name:"Puffin",priority:96,detect:/Puffin\//,versionPattern:/Puffin\/([\d.]+)/},{name:"Coc Coc",priority:130,detect:/coc_coc_browser/,versionPattern:/coc_coc_browser\/([\d.]+)/},{name:"Kindle",priority:140,detect:/(Kindle|Silk\/)/,versionPattern:/Version\/([\d.]+)/},{name:"Konqueror",priority:160,detect:/Konqueror/,versionPattern:/Konqueror\/([\d.]+)/},{name:"SeaMonkey",priority:180,detect:/SeaMonkey/,versionPattern:/SeaMonkey\/([\d.]+)/},{name:"Epiphany",priority:190,detect:/Epiphany/,versionPattern:/Epiphany\/([\d.]+)/},{name:"Maxthon",priority:200,detect:/Maxthon/,versionPattern:/Maxthon\/([\d.]+)/},{name:"360",priority:300,detect:/(QihooBrowser|QHBrowser)/,versionPattern:/QihooBrowser\/([\d.]+)/},{name:"360SE",priority:310,detect:/360SE/,versionPattern:null,chromeLookup:{108:"14.0",86:"13.0",78:"12.0",69:"11.0",63:"10.0",55:"9.1",45:"8.1",42:"8.0",31:"7.0",21:"6.3"}},{name:"360EE",priority:320,detect:/360EE/,versionPattern:null,chromeLookup:{86:"13.0",78:"12.0",69:"11.0",63:"9.5",55:"9.0",50:"8.7",30:"7.5"}},{name:"UC",priority:330,detect:/(UCBrowser|UBrowser|UCWEB)/,versionPattern:/UC?Browser\/([\d.]+)/},{name:"QQBrowser",priority:340,detect:/(MQQBrowser|QQBrowser)/,versionPattern:[/MQQBrowser\/([\d.]+)/,/QQBrowser\/([\d.]+)/]},{name:"QQ",priority:345,detect:/QQ\//,versionPattern:/QQ\/([\d.]+)/},{name:"Baidu",priority:350,detect:/(Baidu|BIDUBrowser|baidubrowser|baiduboxapp|BaiduHD)/,versionPattern:[/BIDUBrowser[\s/]([\d.]+)/,/baiduboxapp\/([\d.]+)/]},{name:"Sogou",priority:360,detect:/(MetaSr|Sogou)/,versionPattern:[/SE ([\d.X]+)/,/SogouMobileBrowser\/([\d.]+)/]},{name:"Liebao",priority:370,detect:/(LBBROWSER|LieBaoFast)/,versionPattern:/LieBaoFast\/([\d.]+)/,chromeLookup:{57:"6.5",49:"6.0",46:"5.9",42:"5.3",39:"5.2",34:"5.0",29:"4.5",21:"4.0"}},{name:"2345Explorer",priority:380,detect:/2345Explorer/,versionPattern:[/2345Explorer\/([\d.]+)/,/Mb2345Browser\/([\d.]+)/],chromeLookup:{69:"10.0",55:"9.9"}},{name:"115Browser",priority:390,detect:/115Browser/,versionPattern:/115Browser\/([\d.]+)/},{name:"TheWorld",priority:400,detect:/TheWorld/,versionPattern:/TheWorld ([\d.]+)/},{name:"XiaoMi",priority:410,detect:/MiuiBrowser/,versionPattern:/MiuiBrowser\/([\d.]+)/},{name:"Vivo",priority:420,detect:/VivoBrowser/,versionPattern:/VivoBrowser\/([\d.]+)/},{name:"Huawei",priority:430,detect:/HuaweiBrowser/,versionPattern:[/HuaweiBrowser\/([\d.]+)/,/Version\/([\d.]+)/]},{name:"OPPO",priority:440,detect:/HeyTapBrowser/,versionPattern:/HeyTapBrowser\/([\d.]+)/},{name:"Quark",priority:450,detect:/Quark/,versionPattern:/Quark\/([\d.]+)/},{name:"Qiyu",priority:460,detect:/Qiyu/,versionPattern:/Qiyu\/([\d.]+)/},{name:"WechatWork",priority:500,detect:/wxwork\//,versionPattern:/wxwork\/([\d.]+)/},{name:"Wechat",priority:510,detect:/MicroMessenger/,versionPattern:/MicroMessenger\/([\d.]+)/},{name:"Taobao",priority:520,detect:/AliApp\(TB/,versionPattern:/AliApp\(TB\/([\d.]+)/},{name:"Alipay",priority:530,detect:/AliApp\(AP/,versionPattern:/AliApp\(AP\/([\d.]+)/},{name:"Weibo",priority:540,detect:/Weibo/,versionPattern:/weibo__([\d.]+)/},{name:"Douban",priority:550,detect:/com\.douban\.frodo/,versionPattern:/com\.douban\.frodo\/([\d.]+)/},{name:"Suning",priority:560,detect:/SNEBUY-APP/,versionPattern:/SNEBUY-APP([\d.]+)/},{name:"iQiYi",priority:570,detect:/IqiyiApp/,versionPattern:/IqiyiVersion\/([\d.]+)/},{name:"DingTalk",priority:580,detect:/DingTalk/,versionPattern:/DingTalk\/([\d.]+)/},{name:"Douyin",priority:590,detect:/aweme/,versionPattern:/app_version\/([\d.]+)/},{name:"Bilibili",priority:592,detect:/BiliBili\//,versionPattern:/BiliBili\/([\d.]+)/},{name:"Kuaishou",priority:594,detect:/Kwai\//,versionPattern:/Kwai\/([\d.]+)/},{name:"Xiaohongshu",priority:596,detect:/Xiaohongshu\//,versionPattern:/Xiaohongshu\/([\d.]+)/},{name:"Feishu",priority:597,detect:/(Lark|Feishu)\//,versionPattern:[/Lark\/([\d.]+)/,/Feishu\/([\d.]+)/]},{name:"Toutiao",priority:598,detect:/NewsArticle\//,versionPattern:/NewsArticle\/([\d.]+)/},{name:"JD",priority:599,detect:/jdpingou\//,versionPattern:/jdpingou\/([\d.]+)/},{name:"Meituan",priority:600,detect:/MeituanHybrid\//,versionPattern:/MeituanHybrid\/([\d.]+)/}];function F(t,e){let r=e.exec(t);if(!r)return null;let n=r[1];return n!=null&&n!==""?n:null}function W(t,e){for(let r of e){let n=F(t,r);if(n!==null)return n}return null}function ie(t,e){let r=/Chrome\/([\d]+)/.exec(t);if(!r)return null;let n=r[1];return Object.prototype.hasOwnProperty.call(e,n)?e[n]:null}function V(t){let e=null;for(let i of oe)i.detect.test(t)&&(e===null||i.priority>=e.priority)&&(e=i);if(!e)return {browser:"unknown",version:"unknown",browserType:"unknown",priority:0};let r=null;if(e.chromeLookup&&(r=ie(t,e.chromeLookup)),r===null&&e.versionPattern!==null){let i=Array.isArray(e.versionPattern)?e.versionPattern:[e.versionPattern];r=W(t,i);}let n=e.priority,o=n>=500?"app":n>=300?"brand":"browser";return {browser:e.name,version:r!=null?r:"unknown",browserType:o,priority:n}}var ae=[{name:"KHTML",detect:/KHTML\//},{name:"Trident",detect:/(Trident|NET CLR)/},{name:"Presto",detect:/Presto/},{name:"Gecko",detect:/Gecko\//},{name:"WebKit",detect:/AppleWebKit/},{name:"ArkWeb",detect:/ArkWeb/}];var se={WebKit:/AppleWebKit\/([\d.]+)/,Blink:/AppleWebKit\/([\d.]+)/,ArkWeb:/AppleWebKit\/([\d.]+)/,Gecko:/Gecko\/([\d.]+)/,Trident:/Trident\/([\d.]+)/,Presto:/Presto\/([\d.]+)/,KHTML:/KHTML\/([\d.]+)/};function ce(t,e,r){var i,c,s,l;if(e===void 0||r===void 0){let u=V(t);e=e!=null?e:u.browser,r=r!=null?r:u.version;}let n="unknown";for(let u of ae)u.detect.test(t)&&(n=u.name);(n==="WebKit"&&/(Chrome|CriOS)/.test(t)&&parseInt((c=((i=/Chrome\/([\d]+)/.exec(t))!=null?i:[])[1])!=null?c:"0",10)>27||e==="Opera"&&parseInt(r,10)>12||e==="Yandex")&&(n="Blink"),e==="Edge"&&(n=parseInt(r,10)>75?"Blink":"EdgeHTML");let o=se[n]&&(l=(s=se[n].exec(t))==null?void 0:s[1])!=null?l:"unknown";return {engine:n,engineVersion:o}}function Ae(t,e){let r=e.split(".");for(let n=r.length;n>=1;n--){let o=r.slice(0,n).join(".");if(Object.prototype.hasOwnProperty.call(t,o))return t[o]}return "unknown"}function de(t,e){let r=null;for(let i of R)i.detect.test(t)&&(r=i);if(!r)return {os:"unknown",osVersion:"unknown",osVersionName:"unknown"};let n="unknown";if(r.versionPattern){let i=Array.isArray(r.versionPattern)?W(t,r.versionPattern):F(t,r.versionPattern);if(i!==null){let c=i.replace(/_/g,".");if(r.versionLookup){let s=Object.prototype.hasOwnProperty.call(r.versionLookup,c)?r.versionLookup[c]:null;if(s!==null)n=s;else if(r.name==="Windows"){let l=parseInt(c,10);n=isNaN(l)?"unknown":l.toString();}else n=c;}else n=c;}}r.name==="Windows"&&e&&(n=e);let o=r.versionNames?Ae(r.versionNames,n):"unknown";return {os:r.name,osVersion:n,osVersionName:o}}var me=[{name:"Mobile",detect:/(Mobi|iPh)/},{name:"Tablet",detect:/(Tablet|Pad)/}];function pe(t,e){var o,i;function r(){if(/PlayStation|Xbox|Nintendo/.test(t))return "Console";if(/visionOS|Quest/.test(t))return "XR";if(/(SMART-TV|HbbTV|SmartTV|TV Safari|Android TV|GoogleTV)/.test(t))return "TV";if(/iPad/.test(t)||/Android/.test(t)&&!/Mobile/.test(t))return "Tablet";for(let c of me)if(c.detect.test(t))return c.name;return null}function n(){var c,s,l,u,p,g,P,v,A,O,d,C,T,D,M,k;if(!e)return null;if(e.webglRenderer){if(/^ANGLE\b/.test(e.webglRenderer))return "PC";if(/Adreno/i.test(e.webglRenderer)||/Mali[-\s]/i.test(e.webglRenderer))return ((c=e.screenWidth)!=null?c:0)>=768?"Tablet":"Mobile";if(/Apple GPU/i.test(e.webglRenderer)){let N=(s=e.screenWidth)!=null?s:0;return N<=1366?N>=768?"Tablet":"Mobile":"PC"}}return e.platform==="MacIntel"&&((l=e.maxTouchPoints)!=null?l:0)>1?e.screenWidth!==void 0&&e.screenWidth<768?"Mobile":"Tablet":e.webglMaxTextureSize!==void 0&&e.webglMaxTextureSize<=8192&&((u=e.maxTouchPoints)!=null?u:0)>1&&((p=e.screenWidth)!=null?p:9999)<1367?((g=e.screenWidth)!=null?g:0)>=768?"Tablet":"Mobile":(P=e.webglCompressedFormats)!=null&&P.pvrtc&&!e.webglCompressedFormats.s3tc?((v=e.screenWidth)!=null?v:0)>=768?"Tablet":"Mobile":e.safeAreaInsetTop!==void 0&&e.safeAreaInsetTop>0?((A=e.screenWidth)!=null?A:0)>=768?"Tablet":"Mobile":e.hasVibration||e.hasDeviceMotion?((O=e.screenWidth)!=null?O:0)>=768?"Tablet":"Mobile":(d=e.connection)!=null&&d.effectiveType&&["2g","3g","slow-2g"].includes(e.connection.effectiveType)?((C=e.screenWidth)!=null?C:0)>=768?"Tablet":"Mobile":((T=e.devicePixelRatio)!=null?T:0)>2&&((D=e.maxTouchPoints)!=null?D:0)>1?((M=e.screenWidth)!=null?M:0)>=768?"Tablet":"Mobile":e.pointerType==="coarse"&&e.hoverCapability===false?((k=e.screenWidth)!=null?k:0)>=768?"Tablet":"Mobile":null}return (i=(o=n())!=null?o:r())!=null?i:"PC"}var Oe=[[/^SM-|^GT-|^SGH-|^SCH-|^SHW-|^SPH-|^SAMSUNG /i,"Samsung"],[/^Pixel |^Nexus /,"Google"],[/^moto |^motorola /i,"Motorola"],[/^HONOR /i,"Honor"],[/^ELS-|^LYA-|^HMA-|^VOG-|^ANA-|^CLT-|^JNY-|^NOH-|^PLK-|^BAH-|^BKL-|^COL-|^DUB-|^FIG-|^KIW-|^MAR-|^VTR-|^WAS-/i,"Huawei"],[/^CPH/,"OPPO"],[/^RMX/,"Realme"],[/^V\d{4}[A-Z]|^vivo /i,"Vivo"],[/^iqoo/i,"Vivo"],[/^Redmi |^POCO |^Mi /,"Xiaomi"],[/^2\d{9}|^2\d{3}[A-Z]/,"Xiaomi"],[/^OnePlus |^IN2|^KB2|^LE2/i,"OnePlus"],[/^LM-|^LGE |^LG-/i,"LG"],[/^HTC/i,"HTC"],[/^Nokia/i,"Nokia"],[/^XQ-/,"Sony"],[/^ASUS_|^ZB6|^ZS6|^ZE[56]/i,"Asus"],[/^Quest /i,"Meta"]],Ce=/Android [0-9.]+;(?:\s*U;)?(?:\s*[a-z]{2}[-_][a-zA-Z]{2,4};)?\s*([^;)]+?)(?:\s+Build\/|[;)])/;function le(t){if(/visionOS/.test(t))return {vendor:"Apple",model:"Apple Vision Pro"};if(/iPhone/.test(t))return {vendor:"Apple",model:"iPhone"};if(/iPad/.test(t))return {vendor:"Apple",model:"iPad"};if(/iPod/.test(t))return {vendor:"Apple",model:"iPod touch"};let e=Ce.exec(t);if(e){let r=e[1].trim();for(let[n,o]of Oe)if(n.test(r))return {vendor:o,model:r};return {vendor:"unknown",model:r}}return {vendor:"unknown",model:"unknown"}}var B=[{name:"Googlebot",detect:/Googlebot/,category:"search-engine"},{name:"Bingbot",detect:/(bingbot|BingPreview)/,category:"search-engine"},{name:"Baiduspider",detect:/(Baiduspider|BaiduMobaider)/,category:"search-engine"},{name:"Bytespider",detect:/Bytespider/,category:"search-engine"},{name:"YandexBot",detect:/YandexBot/,category:"search-engine"},{name:"DuckDuckBot",detect:/DuckDuckBot/,category:"search-engine"},{name:"Slurp",detect:/Slurp/,category:"search-engine"},{name:"Sogou",detect:/(Sogou|sogou).*[Ss]pider/,category:"search-engine"},{name:"360Spider",detect:/360Spider/,category:"search-engine"},{name:"PetalBot",detect:/PetalBot/,category:"search-engine"},{name:"Applebot-Extended",detect:/Applebot-Extended/,category:"search-engine"},{name:"Applebot",detect:/Applebot/,category:"search-engine"},{name:"Facebookbot",detect:/(facebookexternalhit|FacebookBot)/,category:"social"},{name:"Twitterbot",detect:/Twitterbot/,category:"social"},{name:"LinkedInBot",detect:/LinkedInBot/,category:"social"},{name:"PinterestBot",detect:/Pinterest/,category:"social"},{name:"Slackbot",detect:/Slackbot/,category:"link-preview"},{name:"Discordbot",detect:/Discordbot/,category:"link-preview"},{name:"TelegramBot",detect:/TelegramBot/,category:"link-preview"},{name:"WhatsApp",detect:/WhatsApp/,category:"link-preview"},{name:"SemrushBot",detect:/SemrushBot/,category:"seo-tool"},{name:"AhrefsBot",detect:/AhrefsBot/,category:"seo-tool"},{name:"MJ12bot",detect:/MJ12bot/,category:"seo-tool"},{name:"ScreamingFrog",detect:/Screaming Frog/,category:"seo-tool"},{name:"DataForSeoBot",detect:/DataForSeoBot/,category:"seo-tool"},{name:"GPTBot",detect:/GPTBot/,category:"ai-llm"},{name:"OAI-SearchBot",detect:/OAI-SearchBot/,category:"ai-llm"},{name:"ChatGPT-User",detect:/ChatGPT-User/,category:"ai-llm"},{name:"ClaudeBot",detect:/ClaudeBot/,category:"ai-llm"},{name:"PerplexityBot",detect:/PerplexityBot/,category:"ai-llm"},{name:"CCBot",detect:/CCBot/,category:"ai-llm"},{name:"AdsBot",detect:/AdsBot-Google/,category:"ai-llm"},{name:"Google-Extended",detect:/Google-Extended/,category:"ai-llm"},{name:"Meta-ExternalAgent",detect:/meta-externalagent/i,category:"ai-llm"},{name:"Amazonbot",detect:/Amazonbot/,category:"ai-llm"},{name:"Diffbot",detect:/Diffbot/,category:"ai-llm"},{name:"cohere-ai",detect:/cohere-ai/,category:"ai-llm"},{name:"YouBot",detect:/YouBot/,category:"ai-llm"},{name:"UptimeRobot",detect:/UptimeRobot/,category:"monitoring"},{name:"ia_archiver",detect:/ia_archiver/,category:"monitoring"},{name:"GenericBot",detect:/(bot|crawler|spider|crawling|scraper)/i,category:"generic"}];function ue(t,e){let r=e?[...B.slice(0,-1),...e,B[B.length-1]]:B;for(let n of r)if(n.detect.test(t))return {isBot:true,botName:n.name,botCategory:n.category};return {isBot:false,botName:"unknown",botCategory:"unknown"}}var ge=[{name:"arm64",detect:/(aarch64|arm64|ARM64|iPhone|iPad|iPod)/},{name:"arm",detect:/\bARM\b/},{name:"x86_64",detect:/(x86_64|Win64|WOW64|x64;|amd64)/i},{name:"x86",detect:/(i[36]86|i686|x86;)/}];function fe(t,e){if(e!=null&&e.highEntropyData){let{architecture:o,bitness:i}=e.highEntropyData;if(o==="arm")return i==="64"?"arm64":"arm";if(o==="x86")return i==="64"?"x86_64":"x86"}let r=e==null?void 0:e.webglRenderer;if(r){if(/Apple\s+(M\d|A\d{1,2}[A-Z]?)\b/i.test(r)||/APPLE M\d/i.test(r)||/^Apple GPU$/i.test(r))return "arm64";if(/\b(Intel|AMD|NVIDIA|Radeon)\b/i.test(r))return "x86_64"}let n=e==null?void 0:e.platform;if(n){if(/iPhone|iPad|iPod/.test(n)||/arm64|aarch64/i.test(n))return "arm64";if(/arm/i.test(n))return "arm";if(/Win64|WOW64|x86_64/i.test(n))return "x86_64";if(/Win32|i686/i.test(n))return "x86"}for(let o of ge)if(o.detect.test(t))return o.name;return "unknown"}var Te=/(HeadlessChrome|Headless|PhantomJS|Electron\/|Playwright|jsdom\/|Selenium)/;function ye(t){return Te.test(t)}function L(t){return !!(/; wv/.test(t)||/like Mac OS X/.test(t)&&!/Version\//.test(t)&&!/Safari\//.test(t))}function S(){return typeof navigator=="undefined"?{userAgent:"",platform:"",language:"",maxTouchPoints:0}:navigator}function x(t,e){var r;try{return !!((r=t.mimeTypes)!=null&&r.namedItem(e))}catch(n){return false}}function _(t){var n,o;return ((o=(n=t.browserLanguage)!=null?n:t.language)!=null?o:"").replace(/-\w+/g,i=>i.toUpperCase())||"unknown"}var De=[["Microsoft Edge","Edge"],["Opera","Opera"],["Vivaldi","Vivaldi"],["Google Chrome","Chrome"],["Chromium","Chromium"]];function Me(t){var i,c,s,l,u,p,g;let e=((i=t.platform)!=null?i:"").toLowerCase(),r=(c=t.userAgentData)==null?void 0:c.platform,n=(s=t.highEntropyData)==null?void 0:s.platformVersion,o=!!(n&&n!=="0.0.0");if((l=t.webglCompressedFormats)!=null&&l.pvrtc&&!t.webglCompressedFormats.s3tc)return "iOS";if(t.webglRenderer&&/^ANGLE\b/.test(t.webglRenderer))return e.startsWith("mac")||r==="macOS"?"MacOS":e.startsWith("win")||r==="Windows"?"Windows":r==="Chrome OS"?"Chrome OS":null;if(t.webglRenderer&&(/Adreno/i.test(t.webglRenderer)||/Mali[-\s]/i.test(t.webglRenderer)))return "Android";if(r&&o){let v={Windows:"Windows",macOS:"MacOS",Android:"Android",iOS:"iOS","Chrome OS":"Chrome OS"}[r];if(v)return v}return e.startsWith("mac")?"MacOS":e.startsWith("win")?"Windows":e==="iphone"||e==="ipad"||e==="ipod"||((u=t.safeAreaInsetTop)!=null?u:0)>0?"iOS":r==="Chrome OS"?"Chrome OS":r==="Android"&&(e.includes("android")||/^linux arm/i.test((p=t.platform)!=null?p:""))||e.includes("android")||/^linux arm/i.test((g=t.platform)!=null?g:"")?"Android":null}function ke(t){return /iPhone/.test(t)?"iPhone":/iPad/.test(t)?"iPad":/iPod/.test(t)?"iPod":/Macintosh/.test(t)?"MacIntel":/Windows NT/.test(t)?/Win64|WOW64/i.test(t)?"Win64":"Win32":/CrOS/.test(t)?"Linux x86_64":/Android/.test(t)?/aarch64|arm64/i.test(t)?"Linux aarch64":"Linux armv8l":/Linux/.test(t)?/x86_64/i.test(t)?"Linux x86_64":/aarch64|arm64/i.test(t)?"Linux aarch64":"Linux":"unknown"}function be(t){return t.replace(/_/g,"-").split("-").map((r,n)=>n===0?r.toLowerCase():r.length===4?r[0].toUpperCase()+r.slice(1).toLowerCase():r.toUpperCase()).join("-")}function Ne(t){let e=/\bLanguage\/([a-zA-Z]{2,3}(?:[-_][a-zA-Z]{2,4}){1,2})\b/i.exec(t);if(e)return be(e[1]);let r=/[;(]\s*([a-z]{2,3}(?:[-_][A-Za-z]{2,4})+)\s*[;)]/g,n;for(;(n=r.exec(t))!==null;)if(n[1].replace(/_/g,"-").split("-").length>=2)return be(n[1]);return "unknown"}function I(t,e={}){var H,G,j,U,Q,K,z,X,Y,Z,q,J,$,ee,te,re;let r=(H=e.ctx)!=null?H:e.nav,n=(j=(G=e.ctx)==null?void 0:G.windowsVersion)!=null?j:e.windowsVersion,{browser:o,version:i,browserType:c}=V(t),{os:s,osVersion:l,osVersionName:u}=de(t,n),p=s,g=l,P=pe(t,r),{vendor:v,model:A}=le(t),O=fe(t,(U=e.ctx)!=null?U:r),d=r,{isBot:C,botName:T,botCategory:D}=ue(t,e.customBotDefs),M=ye(t),k=e.language||(d!=null&&d.language||d!=null&&d.browserLanguage?_(d):"")||Ne(t),N=(d==null?void 0:d.platform)||ke(t),f=o,w=i;if((Q=e.ctx)!=null&&Q.hasBrave&&(f="Brave"),d){let a=typeof chrome!="undefined"?chrome:void 0,h=/Chrome\/([\d]+)/.exec(t),y=h?parseInt(h[1],10):0;if(a)if(a.adblock2345||a.common2345)f="2345Explorer",w="unknown";else {let m=false;if(x(d,"application/360softmgrplugin")||x(d,"application/mozilla-npqihooquicklogin")||y>36&&typeof showModalDialog!="undefined"?m=true:y>45&&(m=x(d,"application/vnd.chromium.remoting-viewer"),!m&&y>=69&&(m=x(d,"application/hwepass2001.installepass2001")||x(d,"application/asx"))),m){let b=((K=d.connection)==null?void 0:K.saveData)===true;x(d,"application/gameplugin")||!b?f="360SE":f="360EE",w="unknown";}}}if(f==="Baidu"&&/(Opera|OPR|OPT)/.test(t)){f="Opera";let a=(X=(z=/OPR\/([\d.]+)/.exec(t))!=null?z:/OPT\/([\d.]+)/.exec(t))!=null?X:/Opera\/([\d.]+)/.exec(t);w=(Y=a==null?void 0:a[1])!=null?Y:"unknown";}if(f==="Chrome"&&/\S+Browser\//.test(t)){let a=/(\S+Browser)\/([\d.]+)/.exec(t);a&&(f=a[1],w=a[2]);}if(f==="Firefox"&&d)try{(typeof clientInformation!="undefined"||typeof u2f=="undefined")&&(f="Firefox Nightly");}catch(a){}if(p==="iOS"&&f==="Safari"){let a=/Version\/([\d.]+)/.exec(t);a&&parseInt(a[1],10)>parseInt(g,10)&&(g=a[1]);}if(p==="MacOS"&&f==="Safari"){let a=/Version\/([\d.]+)/.exec(t);a&&parseInt(a[1],10)>=26&&(g=a[1]);}if(e.ctx){let a=Me(e.ctx);if(a!==null&&(a!==s&&(p=a,g="unknown"),p!=="Windows")){let y=(Z=e.ctx.highEntropyData)==null?void 0:Z.platformVersion;if(y&&y!=="0.0.0"){let m=y.split(".").map(Number);for(;m.length>1&&m[m.length-1]===0;)m.pop();m[0]&&(g=m.join("."));}}let h=(q=e.ctx.highEntropyData)==null?void 0:q.fullVersionList;if(h)for(let[y,m]of De){let b=h.find(Se=>Se.brand===y);if(b!=null&&b.version){f=m,w=b.version;break}}}let{engine:he,engineVersion:ve}=ce(t,f,w),xe=parseInt((J=w.split(".")[0])!=null?J:"0",10)||0,Pe=(re=(te=(ee=($=e.ctx)!=null?$:e.nav)==null?void 0:ee.connection)==null?void 0:te.effectiveType)!=null?re:"unknown",Be=p==="MacOS"||p==="Windows"?(()=>{var y;let a=(y=R.find(m=>m.name===p))==null?void 0:y.versionNames;if(!a)return "unknown";let h=g.split(".");for(let m=h.length;m>=1;m--){let b=h.slice(0,m).join(".");if(Object.prototype.hasOwnProperty.call(a,b))return a[b]}return "unknown"})():u;return {browser:f,version:w,versionMajor:xe,browserType:f==="Brave"?"browser":c,engine:he,engineVersion:ve,os:p,osVersion:g,osVersionName:Be,device:P,vendor:v,model:A,arch:O,isWebview:L(t),isHeadless:M,isBot:C,botName:T,botCategory:D,language:k,platform:N,connectionType:Pe}}var Re=[".AppleSystemUIFont","Segoe UI","Noto Color Emoji","Ubuntu","HarmonyOS Sans"];function We(){try{let e=document.createElement("canvas").getContext("2d");if(!e)return {};let r="mmmmmmmmmmlli";e.font="72px monospace";let n=e.measureText(r).width,o={};for(let i of Re)e.font=`72px '${i}', monospace`,o[i]=e.measureText(r).width!==n;return o}catch(t){return {}}}function Ve(){var t,e;try{let r=document.createElement("canvas"),n=(t=r.getContext("webgl"))!=null?t:r.getContext("experimental-webgl");if(!n)return {};let o=n.getExtension("WEBGL_debug_renderer_info"),i={maxTextureSize:n.getParameter(n.MAX_TEXTURE_SIZE),fragPrecision:(e=n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT))==null?void 0:e.rangeMax,compressedFormats:{s3tc:!!n.getExtension("WEBGL_compressed_texture_s3tc"),pvrtc:!!n.getExtension("WEBGL_compressed_texture_pvrtc"),etc2:!!n.getExtension("WEBGL_compressed_texture_etc"),astc:!!n.getExtension("WEBGL_compressed_texture_astc_ldr")}};return o&&(i.renderer=n.getParameter(o.UNMASKED_RENDERER_WEBGL),i.vendor=n.getParameter(o.UNMASKED_VENDOR_WEBGL)),i}catch(r){return {}}}function Le(){try{let t=document.createElement("div");t.style.cssText="position:fixed;top:env(safe-area-inset-top,0px);visibility:hidden;pointer-events:none",document.body.appendChild(t);let e=parseFloat(getComputedStyle(t).top);return document.body.removeChild(t),isNaN(e)?0:e}catch(t){return 0}}function _e(){var t;try{let e=(t=window.AudioContext)!=null?t:window.webkitAudioContext;if(!e)return;let r=new e,n=r.sampleRate;return r.close(),n}catch(e){return}}function Fe(){try{if(window.matchMedia("(pointer: coarse)").matches)return "coarse";if(window.matchMedia("(pointer: fine)").matches)return "fine";if(window.matchMedia("(pointer: none)").matches)return "none"}catch(t){}}function Ie(){try{return window.matchMedia("(hover: hover)").matches}catch(t){return}}function He(t){var r;if(!t)return null;let e=parseInt((r=t.split(".")[0])!=null?r:"0",10);return isNaN(e)?null:e>=13?"11":"10"}async function we(){var r,n,o,i,c;let t=S(),e={userAgent:t.userAgent,platform:t.platform,language:t.language,maxTouchPoints:t.maxTouchPoints};if(t.browserLanguage!==void 0&&(e.browserLanguage=t.browserLanguage),t.mimeTypes!==void 0&&(e.mimeTypes=t.mimeTypes),t.connection!==void 0&&(e.connection=t.connection),t.userAgentData!==void 0&&(e.userAgentData=t.userAgentData),typeof navigator!="undefined"&&(e.hardwareConcurrency=navigator.hardwareConcurrency,e.deviceMemory=navigator.deviceMemory),typeof window!="undefined"){e.devicePixelRatio=window.devicePixelRatio,e.screenWidth=(r=window.screen)==null?void 0:r.width,e.screenHeight=(n=window.screen)==null?void 0:n.height,e.safeAreaInsetTop=Le(),e.pointerType=Fe(),e.hoverCapability=Ie(),e.fontProbes=We(),e.audioSampleRate=_e(),e.hasVibration="vibrate"in navigator,e.hasDeviceMotion="DeviceMotionEvent"in window;try{e.hasBrave=(c=await((i=(o=navigator.brave)==null?void 0:o.isBrave)==null?void 0:i.call(o)))!=null?c:!1;}catch(P){e.hasBrave=false;}let{renderer:s,vendor:l,maxTextureSize:u,fragPrecision:p,compressedFormats:g}=Ve();s!==void 0&&(e.webglRenderer=s),l!==void 0&&(e.webglVendor=l),u!==void 0&&(e.webglMaxTextureSize=u),p!==void 0&&(e.webglFragPrecision=p),g!==void 0&&(e.webglCompressedFormats=g);}if(t.userAgentData)try{let s=await t.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]);e.highEntropyData={architecture:s.architecture,bitness:s.bitness,model:s.model,platformVersion:s.platformVersion,fullVersionList:s.fullVersionList},t.userAgentData.platform==="Windows"&&(e.windowsVersion=He(s.platformVersion));}catch(s){}return e}var{version:Ge}=ne;function E(){let t=S();return I(t.userAgent,{nav:t})}E.detect=async t=>{let e=await we();return I(t!=null?t:e.userAgent,{ctx:e})};E.isWebview=L;E.getLanguage=()=>_(S());E.VERSION=Ge;var je=E;
|
|
2
|
+
return je;})();//# sourceMappingURL=index.min.js.map
|
|
3
3
|
//# sourceMappingURL=index.min.js.map
|