@lark-sentry/utils 1.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/base64.ts","../src/data-structures.ts","../src/debounce.ts","../src/decorate-prop.ts","../src/dom2str.ts","../src/event2breadcrumb.ts","../src/get-css-selectors.ts","../src/get-time.ts","../../../node_modules/.pnpm/ua-parser-js@2.0.7/node_modules/ua-parser-js/src/main/ua-parser.mjs","../src/sentry.ts","../src/is-excluded-api.ts","../src/is-type.ts","../src/metric2perf-data.ts","../src/throttle.ts","../src/transform-http-data.ts"],"sourcesContent":["function base64(raw: string) {\n return btoa(encodeURIComponent(raw));\n}\n\nfunction base64v2(str: string): string {\n const bytes = new TextEncoder().encode(str);\n let binary = \"\";\n for (const b of bytes) {\n binary += String.fromCharCode(b);\n }\n const base64 = btoa(binary);\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\n\nexport { base64, base64v2 };\n","import { MAX_BREADCRUMBS } from \"@lark-sentry/constants\";\n\nexport class MinHeap<T extends { timestamp: number }> {\n public capacity = MAX_BREADCRUMBS;\n private heap: T[] = [];\n\n get size() {\n return this.heap.length;\n }\n\n constructor(capacity = MAX_BREADCRUMBS, itemArray: T[] = []) {\n this.capacity = capacity;\n this.heap = itemArray.slice(0, capacity);\n this.buildHeap();\n if (itemArray.length > capacity) {\n const rest = itemArray.slice(capacity);\n for (const item of rest) {\n if (item.timestamp >= this.heap[0].timestamp) {\n this.heap[0] = item;\n this.heapifyDown(0);\n }\n }\n }\n }\n\n push(item: T): boolean {\n if (this.size < this.capacity) {\n this.heap.push(item);\n this.heapifyUp(this.size - 1);\n return true;\n }\n if (item.timestamp >= this.heap[0].timestamp) {\n this.heap[0] = item;\n this.heapifyDown(0);\n return true;\n }\n return false;\n }\n\n peek(): T | undefined {\n return this.heap[0];\n }\n\n private heapifyUp(idx: number) {\n while (idx > 0) {\n const parentIdx = Math.floor((idx - 1) / 2);\n if (this.heap[parentIdx].timestamp <= this.heap[idx].timestamp) {\n break;\n }\n [this.heap[idx], this.heap[parentIdx]] = [\n this.heap[parentIdx],\n this.heap[idx],\n ];\n idx = parentIdx;\n }\n }\n\n private heapifyDown(idx: number) {\n while (true) {\n let childIdx = idx;\n const left = idx * 2 + 1;\n const right = idx * 2 + 2;\n if (\n left < this.size &&\n this.heap[left].timestamp < this.heap[childIdx].timestamp\n ) {\n childIdx = left;\n }\n if (\n right < this.size &&\n this.heap[right].timestamp < this.heap[childIdx].timestamp\n ) {\n childIdx = right;\n }\n if (childIdx === idx) {\n break;\n }\n [this.heap[idx], this.heap[childIdx]] = [\n this.heap[childIdx],\n this.heap[idx],\n ];\n idx = childIdx;\n }\n }\n\n private buildHeap() {\n const lastLeafIdx = this.size - 1;\n const lastNonLeafIdx = Math.floor((lastLeafIdx - 1) / 2);\n for (let i = lastNonLeafIdx; i >= 0; i--) {\n this.heapifyDown(i);\n }\n }\n\n dump(): T[] {\n return this.heap;\n }\n\n clear() {\n this.heap = [];\n }\n\n pop(): T | undefined {\n if (this.size === 0) {\n return undefined;\n }\n const peek = this.heap[0];\n this.heap[0] = this.heap[this.size - 1];\n this.heap.pop();\n if (this.size > 0) {\n this.heapifyDown(0);\n }\n return peek;\n }\n}\n\nexport class CallbackQueue {\n private cbList: VoidFunction[] = [];\n\n push(cb: VoidFunction, ctx?: unknown, ...args: unknown[]) {\n if (typeof cb !== \"function\") {\n return;\n }\n this.callByRequestIdleCallback(cb, ctx, ...args);\n }\n\n private callByRequestIdleCallback(\n cb: VoidFunction,\n ctx?: unknown,\n ...args: unknown[]\n ) {\n if (typeof requestIdleCallback !== \"function\") {\n this.callByPromise(cb, ctx, ...args);\n return;\n }\n this.cbList.push(cb.bind(ctx, ...args));\n requestIdleCallback(() => {\n this.flushFuncList();\n });\n }\n\n private callByPromise(cb: VoidFunction, ctx?: unknown, ...args: unknown[]) {\n this.cbList.push(cb.bind(ctx, ...args));\n Promise.resolve().then(() => {\n this.flushFuncList();\n });\n }\n\n clear() {\n this.cbList = [];\n }\n\n private flushFuncList() {\n const oldFuncList = this.cbList;\n this.cbList = [];\n oldFuncList.forEach((func) => {\n func();\n });\n }\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default function debounce<T extends (...args: any[]) => any>(\n fn: T,\n delay = 300,\n): (...args: Parameters<T>) => void {\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n return function (this: ThisParameterType<T>, ...args: Parameters<T>) {\n if (timer !== null) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n fn.apply(this, args);\n\n // Wrong Answer\n // if (timer !== null) {\n // clearTimeout(timer);\n // }\n timer = null;\n }, delay);\n };\n}\n","function decorateProp<T extends object, K extends keyof T>(\n obj: T,\n propKey: K,\n decorator: (oldPropVal: T[K]) => T[K],\n) {\n const oldPropVal = obj[propKey];\n const propVal = decorator(oldPropVal);\n obj[propKey] = propVal;\n}\n\nexport default decorateProp;\n","function dom2str(target: HTMLElement, maxDepth = 10): string {\n if (maxDepth <= 0) {\n return \"...\";\n }\n const tagName = target.tagName.toLowerCase();\n\n const attrs = Array.from(target.attributes)\n .map((attr) => ` ${attr.name}=\"${attr.value}\"`)\n .join(\"\");\n\n const children = Array.from(target.children)\n .map((child) => dom2str(child as HTMLElement, maxDepth - 1))\n .join(\"\");\n\n return `<${tagName}${attrs}>${children}</${tagName}>`;\n}\n\nexport default dom2str;\n","import { BreadcrumbType, EventType } from \"@lark-sentry/types\";\n\nfunction event2breadcrumb(type: EventType) {\n switch (type) {\n case EventType.Xhr:\n case EventType.Fetch: {\n return BreadcrumbType.Http;\n }\n\n case EventType.Click: {\n return BreadcrumbType.Click;\n }\n\n case EventType.HashChange:\n case EventType.History: {\n return BreadcrumbType.Route;\n }\n\n case EventType.Resource: {\n return BreadcrumbType.Resource;\n }\n\n case EventType.UnhandledRejection: {\n return BreadcrumbType.CodeError;\n }\n\n case EventType.Error:\n case EventType.Vue:\n case EventType.React:\n case EventType.Performance:\n case EventType.ScreenRecord:\n case EventType.WhiteScreen:\n case EventType.Custom: {\n return BreadcrumbType.Custom;\n }\n\n default: {\n return BreadcrumbType.Custom;\n }\n }\n}\n\nexport default event2breadcrumb;\n","export function getCssSelectors(\n elem: Element,\n): [idSelector: string, classAttrSelector: string, elemSelector: string] {\n if (!elem || elem.nodeType !== 1) {\n return [\"\", \"\", \"\"];\n }\n const excludedAttrs = [\"id\", \"class\", \"style\"];\n const idSelector = elem.id ? `#${elem.id}` : \"\";\n const classSelector = Array.from(elem.classList)\n .map((c) => `.${c}`)\n .join(\"\");\n const attrSelector = Array.from(elem.attributes)\n .filter((attr) => !excludedAttrs.includes(attr.name))\n .map((attr) => `[${attr.name}=\"${attr.value}\"]`)\n .join(\"\");\n const elemSelector = elem.tagName.toLowerCase();\n return [idSelector, classSelector + attrSelector, elemSelector];\n}\n\nexport default getCssSelectors;\n","import type { IBaseData } from \"@lark-sentry/types\";\n\nfunction getTime(): Pick<IBaseData, \"time\" | \"timestamp\"> {\n return {\n time: new Date().toISOString(),\n timestamp: Date.now(),\n };\n}\n\nexport default getTime;\n","// Generated ESM version of ua-parser-js\n// DO NOT EDIT THIS FILE!\n// Source: /src/main/ua-parser.js\n\n/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v2.0.7\n Copyright © 2012-2025 Faisal Salman <f@faisalman.com>\n AGPLv3 License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://uaparser.dev\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n/* jshint esversion: 6 */ \n/* globals window */\n\n\n \n //////////////\n // Constants\n /////////////\n\n var LIBVERSION = '2.0.7',\n UA_MAX_LENGTH = 500,\n USER_AGENT = 'user-agent',\n EMPTY = '',\n UNKNOWN = '?',\n TYPEOF = {\n FUNCTION : 'function',\n OBJECT : 'object',\n STRING : 'string',\n UNDEFINED : 'undefined'\n },\n\n // properties\n BROWSER = 'browser',\n CPU = 'cpu',\n DEVICE = 'device',\n ENGINE = 'engine',\n OS = 'os',\n RESULT = 'result',\n\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n MAJOR = 'major',\n MODEL = 'model',\n\n // device types\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n XR = 'xr',\n EMBEDDED = 'embedded',\n\n // browser types\n INAPP = 'inapp',\n\n // client hints\n BRANDS = 'brands',\n FORMFACTORS = 'formFactors',\n FULLVERLIST = 'fullVersionList',\n PLATFORM = 'platform',\n PLATFORMVER = 'platformVersion',\n BITNESS = 'bitness',\n CH = 'sec-ch-ua',\n CH_FULL_VER_LIST= CH + '-full-version-list',\n CH_ARCH = CH + '-arch',\n CH_BITNESS = CH + '-' + BITNESS,\n CH_FORM_FACTORS = CH + '-form-factors',\n CH_MOBILE = CH + '-' + MOBILE,\n CH_MODEL = CH + '-' + MODEL,\n CH_PLATFORM = CH + '-' + PLATFORM,\n CH_PLATFORM_VER = CH_PLATFORM + '-version',\n CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS],\n\n // device vendors\n AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LENOVO = 'Lenovo',\n HONOR = 'Honor',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n NVIDIA = 'Nvidia',\n ONEPLUS = 'OnePlus',\n OPPO = 'OPPO',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n\n // browsers\n CHROME = 'Chrome',\n CHROMIUM = 'Chromium',\n CHROMECAST = 'Chromecast',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n OPERA = 'Opera',\n FACEBOOK = 'Facebook',\n SOGOU = 'Sogou',\n\n PREFIX_MOBILE = 'Mobile ',\n SUFFIX_BROWSER = ' Browser',\n\n // os\n WINDOWS = 'Windows';\n \n var isWindow = typeof window !== TYPEOF.UNDEFINED,\n NAVIGATOR = (isWindow && window.navigator) ? \n window.navigator : \n undefined,\n NAVIGATOR_UADATA = (NAVIGATOR && NAVIGATOR.userAgentData) ? \n NAVIGATOR.userAgentData : \n undefined;\n\n ///////////\n // Helper\n //////////\n\n var extend = function (defaultRgx, extensions) {\n var mergedRgx = {};\n var extraRgx = extensions;\n if (!isExtensions(extensions)) {\n extraRgx = {};\n for (var i in extensions) {\n for (var j in extensions[i]) {\n extraRgx[j] = extensions[i][j].concat(extraRgx[j] ? extraRgx[j] : []);\n }\n }\n }\n for (var k in defaultRgx) {\n mergedRgx[k] = extraRgx[k] && extraRgx[k].length % 2 === 0 ? extraRgx[k].concat(defaultRgx[k]) : defaultRgx[k];\n }\n return mergedRgx;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n if (typeof str1 === TYPEOF.OBJECT && str1.length > 0) {\n for (var i in str1) {\n if (lowerize(str2) == lowerize(str1[i])) return true;\n }\n return false;\n }\n return isString(str1) ? lowerize(str2) == lowerize(str1) : false;\n },\n isExtensions = function (obj, deep) {\n for (var prop in obj) {\n return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);\n }\n },\n isString = function (val) {\n return typeof val === TYPEOF.STRING;\n },\n itemListToArray = function (header) {\n if (!header) return undefined;\n var arr = [];\n var tokens = strip(/\\\\?\\\"/g, header).split(',');\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].indexOf(';') > -1) {\n var token = trim(tokens[i]).split(';v=');\n arr[i] = { brand : token[0], version : token[1] };\n } else {\n arr[i] = trim(tokens[i]);\n }\n }\n return arr;\n },\n lowerize = function (str) {\n return isString(str) ? str.toLowerCase() : str;\n },\n majorize = function (version) {\n return isString(version) ? strip(/[^\\d\\.]/g, version).split('.')[0] : undefined;\n },\n setProps = function (arr) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n var propName = arr[i];\n if (typeof propName == TYPEOF.OBJECT && propName.length == 2) {\n this[propName[0]] = propName[1];\n } else {\n this[propName] = undefined;\n }\n }\n return this;\n },\n strip = function (pattern, str) {\n return isString(str) ? str.replace(pattern, EMPTY) : str;\n },\n stripQuotes = function (str) {\n return strip(/\\\\?\\\"/g, str); \n },\n trim = function (str, len) {\n str = strip(/^\\s\\s*/, String(str));\n return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n if(!ua || !arrays) return;\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === TYPEOF.OBJECT && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == TYPEOF.FUNCTION) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length >= 3) {\n // Check whether q[1] FUNCTION or REGEX\n if (typeof q[1] === TYPEOF.FUNCTION && !(q[1].exec && q[1].test)) {\n if (q.length > 3) {\n this[q[0]] = match ? q[1].apply(this, q.slice(2)) : undefined;\n } else {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n }\n } else {\n if (q.length == 3) {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n } else if (q.length == 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n } else if (q.length > 4) {\n this[q[0]] = match ? q[3].apply(this, [match.replace(q[1], q[2])].concat(q.slice(4))) : undefined;\n }\n }\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n var windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.51': '3.51',\n 'NT 4.0': '4.0',\n '2000' : ['5.0', '5.01'],\n 'XP' : ['5.1', '5.2'],\n 'Vista' : '6.0',\n '7' : '6.1',\n '8' : '6.2',\n '8.1' : '6.3',\n '10' : ['6.4', '10.0'],\n 'NT' : ''\n },\n \n formFactorsMap = {\n 'embedded' : 'Automotive',\n 'mobile' : 'Mobile',\n 'tablet' : ['Tablet', 'EInk'],\n 'smarttv' : 'TV',\n 'wearable' : 'Watch',\n 'xr' : ['VR', 'XR'],\n '?' : ['Desktop', 'Unknown'],\n '*' : undefined\n },\n\n browserHintsMap = {\n 'Chrome' : 'Google Chrome',\n 'Edge' : 'Microsoft Edge',\n 'Edge WebView2' : 'Microsoft Edge WebView2',\n 'Chrome WebView': 'Android WebView',\n 'Chrome Headless':'HeadlessChrome',\n 'Huawei Browser': 'HuaweiBrowser',\n 'MIUI Browser' : 'Miui Browser',\n 'Opera Mobi' : 'OperaMobile',\n 'Yandex' : 'YaBrowser'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var defaultRegexes = {\n\n browser : [[\n\n // Most common regardless engine\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n /webview.+edge\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, EDGE+' WebView']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i \n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /\\b(?:mxbrowser|mxios|myie2)\\/?([-\\w\\.]*)\\b/i // Maxthon\n ], [VERSION, [NAME, 'Maxthon']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim(?:browser|boat|jet))[\\/ ]?([\\d\\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon/LG Browser/Otter/qutebrowser/Dooble/Palemoon\n /(atlas|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\\/([-\\w\\.]+)/i,\n // Atlas/Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(heytap|ovi|115|surf|qwant)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi/115/Surf\n /(qwant)(?:ios|mobile)\\/([\\d\\.]+)/i, // Qwant\n /(ecosia|weibo)(?:__| \\w+@)([\\d\\.]+)/i // Ecosia/Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UCBrowser']], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart ' + LENOVO + SUFFIX_BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + FIREFOX]], [\n /\\bqihoobrowser\\/?([\\w\\.]*)/i // 360\n ], [VERSION, [NAME, '360']], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, SOGOU + ' Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, SOGOU + ' Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345(?=browser|chrome|explorer))\\w*[\\/ ]?v?([\\w\\.]+)/i // QQ/2345\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq|steam(?= (clie|tenf|gameo)))/i // LieBao Browser/Rekonq/Steam\n ], [NAME], [\n /ome\\/([\\w\\.]+) \\w* ?(iron) saf/i, // Iron\n /ome\\/([\\w\\.]+).+qihu (360)[es]e/i // 360\n ], [VERSION, NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]], [\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /(daum)apps[\\/ ]([\\w\\.]+)/i, // Daum App\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(bing)(?:web|sapphire)\\/([\\w\\.]+)/i, // Bing\n /(instagram|snapchat|klarna)[\\/ ]([-\\w\\.]+)/i // Instagram/Snapchat/Klarna\n ], [NAME, VERSION, [TYPE, INAPP]], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME, [TYPE, INAPP]], [\n /(zalo(?:app)?)[\\/\\sa-z]*([\\w\\.-]+)/i // Zalo \n ], [[NAME, /(.+)/, 'Zalo'], VERSION, [TYPE, INAPP]], [\n\n /(chromium)[\\/ ]([-\\w\\.]+)/i // Chromium\n ], [NAME, VERSION], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n /wv\\).+chrome\\/([\\w\\.]+).+edgw\\//i // Edge WebView2\n ], [VERSION, [NAME, EDGE+' WebView2']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [\n\n /chrome\\/([\\w\\.]+) mobile/i // Chrome Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile(?:\\/\\w+ | ?)safari/i // Safari Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Safari']], [\n /iphone .*mobile(?:\\/\\w+ | ?)safari/i\n ], [[NAME, PREFIX_MOBILE + 'Safari']], [\n /version\\/([\\w\\.\\,]+) .*(safari)/i // Safari\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, '1']], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i // Firefox Mobile\n ], [[NAME, PREFIX_MOBILE + FIREFOX], VERSION], [\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic|librewolf)\\/([\\w\\.]+)/i // Wolvic/LibreWolf\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+(?= .+rv\\:.+gecko\\/\\d+)|[0-4][\\w\\.]+(?!.+compatible))/i, // Mozilla\n\n // Other\n /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird\n /\\b(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /[^\\d\\.]+./, EMPTY]]\n ],\n\n cpu : [[\n\n /\\b((amd|x|x86[-_]?|wow|win)64)\\b/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i, // IA32 (quicktime)\n /\\b((i[346]|x)86)(pc)?\\b/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?[89]e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /( (ce|mobile); ppc;|\\/[\\w\\.]+arm\\b)/i\n ], [[ARCHITECTURE, 'arm']], [\n\n / sun4\\w[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n /\\b(avr32|ia64(?=;)|68k(?=\\))|\\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\\b|pa-risc)/i,\n /((ppc|powerpc)(64)?)( mac|;|\\))/i, // PowerPC\n /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i // Alpha\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n /mc680.0/i\n ], [[ARCHITECTURE, '68k']], [\n /winnt.+\\[axp/i\n ], [[ARCHITECTURE, 'alpha']]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr]|browser)[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)[\\/\\);]/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\b(?:ios|apple\\w+)\\/.+[\\(\\/](ipad)/i, // iPad\n /\\b(ipad)[\\d,]*[;\\] ].+(mac |i(pad)?)os/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Honor\n /\\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\\)|;)/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, TABLET]], [\n /honor([-\\w ]+)[;\\)]/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\\w\\. ]*(?= bui|\\)))\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei) ?([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][\\dc][adnt]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /oid[^\\)]+; (2[\\dbc]{4}(182|283|rp\\w{2})[cgl]|m2105k81a?c)(?: bui|\\))/i,\n /\\b(?:xiao)?((?:red)?mi[-_ ]?pad[\\w- ]*)(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n // Xiaomi Redmi / POCO / Black Shark / Qin\n /oid[^\\)]+; (redmi[\\-_ ]?(?:note|k)?[\\w_ ]+|m?[12]\\d[01]\\d\\w{3,6}|poco[\\w ]+|(shark )?\\w{3}-[ah]0|qin ?[1-3](s\\+|ultra| pro)?)( bui|; wv|\\))/i,\n // Xiaomi Mi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\\d{0,2}\\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\\))/i,\n / ([\\w ]+) miui\\/v?\\d/i\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n\n // OnePlus\n /droid.+; (cph2[3-6]\\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\\d|p[g-k]\\w[1m]10)\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [\n /\\b(opd2(\\d{3}a?))(?: bui|\\))/i\n ], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['203', '304', '403', '404', '413', '415'], '*' : OPPO }], [TYPE, TABLET]], [\n\n // BLU\n /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\\w\\+ ]*)(?: bui|\\))/i // Vivo series\n ], [MODEL, [VENDOR, 'BLU'], [TYPE, MOBILE]], [ \n\n // Vivo\n /; vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\\d{3,4}(?:f[cu]|xu|[av])|yt\\d?-[jx]?\\d+[lfmx])( bui|;|\\)|\\/)/i,\n /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\\w- ]+?)|tb[\\w-]{6,7})( bui|;|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [ \n /lenovo[-_ ]?([-\\w ]+?)(?: bui|\\)|\\/)/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ]([\\w\\s]+)(\\)| bui)/i,\n /((?:moto(?! 360)[-\\w\\(\\) ]+|xt\\d{3,4}[cgkosw\\+]?[-\\d]*|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Nokia\n /(nokia) (t[12][01])/i\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n /(?:maemo|nokia).*(n900|lumia \\d+|rm-\\d+)/i,\n /nokia[-_ ]?(([-\\w\\. ]*?))( bui|\\)|;|\\/)/i\n ], [[MODEL, /_/g, ' '], [TYPE, MOBILE], [VENDOR, 'Nokia']], [\n\n // Google\n /(pixel (c|tablet))\\b/i // Google Pixel C/Tablet\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n // Google Pixel\n /droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\\d ]*a?( pro)?( xl)?( fold)?( \\(5g\\))?)( bui|\\))/i\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n /(google) (pixelbook( go)?)/i\n ], [VENDOR, MODEL], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-\\w\\w\\d\\d)(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /(?:blackberry|\\(bb10;) (\\w+)/i\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /tcl (xess p17aa)/i,\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n /droid [\\w\\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, MOBILE]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Energizer\n /; (energy ?\\w+)(?: bui|\\))/i,\n /; energizer ([\\w ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [\n\n // Cat\n /; cat (b35);/i,\n /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [\n\n // Smartfren\n /((?:new )?andromax[\\w- ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // Archos\n /; (x67 5g|tikeasy \\w+|ac[1789]\\d\\w+)( b|\\))/i,\n /archos ?(5|gamepad2?|([\\w ]*[t1789]|hello) ?\\d+[\\w ]*)( b|\\))/i\n ], [MODEL, [VENDOR, 'Archos'], [TYPE, TABLET]], [\n /archos ([\\w ]+)( b|\\))/i,\n /; (ac[3-6]\\d\\w{2,8})( b|\\))/i \n ], [MODEL, [VENDOR, 'Archos'], [TYPE, MOBILE]], [\n\n // HMD\n /; (n159v)/i\n ], [MODEL, [VENDOR, 'HMD'], [TYPE, MOBILE]], [\n\n // MIXED\n /(imo) (tab \\w+)/i, // IMO\n /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i // Infinix XPad / Tecno\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan\n // BLU/HMD/IMO/Infinix/Lava/OnePlus/TCL/Wiko\n /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\\w\\+ ]+?)(?: bui|\\)|; r)/i,\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(oppo) ?([\\w ]+) bui/i, // OPPO\n /(hisense) ([ehv][\\w ]+)\\)/i, // Hisense\n /droid[^;]+; (philips)[_ ]([sv-x][\\d]{3,4}[xz]?)/i // Philips\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i // Kindle\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /((?:tegranote|shield t(?!.+d tv))[\\w- ]*?)(?: b|\\))/i // Nvidia Tablets\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /(philips)[\\w ]+tv/i, // Philips\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(vizio)(?: |.+model\\/)(\\w+-\\w+)/i, // Vizio\n /tcast.+(lg)e?. ([-\\w]+)/i // LG SmartTV\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/chromecast/i // Google Chromecast Third Generation\n ], [[MODEL, CHROMECAST+' Third Generation'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/([^/]*)/i // Google Chromecast with specific device type\n ], [[MODEL, /^/, 'Chromecast '], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /fuchsia.*crkey/i // Google Chromecast Nest Hub\n ], [[MODEL, CHROMECAST+' Nest Hub'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast, Linux-based or unknown\n ], [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /(portaltv)/i // Facebook Portal TV\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /(shield \\w+ tv)/i // Nvidia Shield TV\n ], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mi(tv|box)-?\\w+) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, /.+\\/(\\w+)/, '$1', strMapper, {'LG':'lge'}], [MODEL, trim], [TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(playstation \\w+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n /(ouya)/i, // Ouya\n /(nintendo) (\\w+)/i, // Nintendo\n /(retroid) (pocket ([^\\)]+))/i, // Retroid Pocket\n /(valve).+(steam deck)/i,\n /droid.+; ((shield|rgcube|gr0006))( bui|\\))/i // Nvidia Portable/Anbernic/Logitech\n ], [[VENDOR, strMapper, { 'Nvidia': 'Shield', 'Anbernic': 'RGCUBE', 'Logitech': 'GR0006' }], MODEL, [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[0156][fnuw]?s?|gear live)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i, // Pebble\n /(asus|google|lg|oppo|xiaomi) ((pixel |zen)?watch[\\w ]*)( bui|\\))/i // Asus ZenWatch / LG Watch / Pixel Watch / Xiaomi Watch\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(ow(?:19|20)?we?[1-3]{1,3})/i // Oppo Watch\n ], [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /(opwwe\\d{3})/i // OnePlus Watch\n ], [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]], [\n /(moto 360)/i // Motorola 360\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]], [\n /(smartwatch 3)/i // Sony SmartWatch\n ], [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]], [\n /(g watch r)/i // LG G Watch R\n ], [MODEL, [VENDOR, LG], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\n ///////////////////\n // XR\n ///////////////////\n\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, XR]], [\n /(pico) ([\\w ]+) os\\d/i // Pico\n ], [VENDOR, MODEL, [TYPE, XR]], [\n /(quest( \\d| pro)?s?).+vr/i // Meta Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]], [\n /mobile vr; rv.+firefox/i // Unidentifiable VR device using Firefox Reality / Wolvic\n ], [[TYPE, XR]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n /(homepod).+mac os/i // Apple HomePod\n ], [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]], [\n /windows iot/i // Unidentifiable embedded device using Windows IoT\n ], [[TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid.+; ([\\w- ]+) (4k|android|smart|google)[- ]?tv/i // Unidentifiable SmartTV\n ], [MODEL, [TYPE, SMARTTV]], [\n /\\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\\w ]+safari)\\b/i\n ], [[TYPE, SMARTTV]], [\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew|; hmsc).+?(mobile|vr|\\d) safari/i\n ], [MODEL, [TYPE, strMapper, { 'mobile' : 'Mobile', 'xr' : 'VR', '*' : TABLET }]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /droid .+?; ([\\w\\. -]+)( bui|\\))/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /(arkweb)\\/([\\w\\.]+)/i // ArkWeb\n ], [NAME, VERSION], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n\n /\\b(libweb)/i // LibWeb\n ], [NAME, VERSION], [\n /ladybird\\//i\n ], [[NAME, 'LibWeb']], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /(windows nt) (6\\.[23]); arm/i // Windows RT\n ], [[NAME, /N/, 'R'], [VERSION, strMapper, windowsVersionMap]], [\n /(windows (?:phone|mobile|iot))(?: os)?[\\/ ]?([\\d\\.]*( se)?)/i, // Windows IoT/Mobile/Phone\n // Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11\n /(windows)[\\/ ](1[01]|2000|3\\.1|7|8(\\.1)?|9[58]|me|server 20\\d\\d( r2)?|vista|xp)/i\n ], [NAME, VERSION], [\n /windows nt ?([\\d\\.\\)]*)(?!.+xbox)/i,\n /\\bwin(?=3| ?9|n)(?:nt| 9x )?([\\d\\.;]*)/i\n ], [[VERSION, /(;|\\))/g, '', strMapper, windowsVersionMap], [NAME, WINDOWS]], [\n /(windows ce)\\/?([\\d\\.]*)/i // Windows CE\n ], [NAME, VERSION], [\n\n // iOS/macOS\n /[adehimnop]{4,7}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv|ios(?=.+ip(?:ad|hone)|.+apple ?tv)|ip(?:ad|hone)(?: |.+i(?:pad)?)os|apple ?tv.+ios)[\\/ ]([\\w\\.]+)/i,\n /\\btvos ?([\\w\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+(haiku|morphos))/i // Mac OS\n ], [[NAME, 'macOS'], [VERSION, /_/g, '.']], [\n\n // Google Chromecast\n /android ([\\d\\.]+).*crkey/i // Google Chromecast, Android-based\n ], [VERSION, [NAME, CHROMECAST + ' Android']], [\n /fuchsia.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Fuchsia-based\n ], [VERSION, [NAME, CHROMECAST + ' Fuchsia']], [\n /crkey\\/([\\d\\.]+).*devicetype\\/smartspeaker/i // Google Chromecast, Linux-based Smart Speaker\n ], [VERSION, [NAME, CHROMECAST + ' SmartSpeaker']], [\n /linux.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Legacy Linux-based\n ], [VERSION, [NAME, CHROMECAST + ' Linux']], [\n /crkey\\/([\\d\\.]+)/i // Google Chromecast, unknown\n ], [VERSION, [NAME, CHROMECAST]], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86)/i // Android-x86\n ], [VERSION, NAME], [ \n /(ubuntu) ([\\w\\.]+) like android/i // Ubuntu Touch\n ], [[NAME, /(.+)/, '$1 Touch'], VERSION], [\n /(harmonyos)[\\/ ]?([\\d\\.]*)/i, // HarmonyOS\n // Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen\n /(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\\w*[-\\/\\.; ]?([\\d\\.]*)/i\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i, // WebOS\n /webos(?:[ \\/]?|\\.tv-20(?=2[2-9]))(\\d[\\d\\.]*)/i\n ], [VERSION, [NAME, 'webOS']], [\n /web0s;.+?(?:chr[o0]me|safari)\\/(\\d+)/i\n // https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine\n ], [[VERSION, strMapper, {'25':'120','24':'108','23':'94','22':'87','6':'79','5':'68','4':'53','3':'38','2':'538','1':'537','*':'TV'}], [NAME, 'webOS']], [ \n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google ChromeOS\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, \"Chrome OS\"], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) (\\w+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n /(pico) .+os([\\w\\.]+)/i, // Pico\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /linux.+(mint)[\\/\\(\\) ]?([\\w\\.]*)/i, // Mint\n /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\\d\\.]*)/i, // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /\\b(aix)[; ]([1-9\\.]{0,4})/i, // AIX\n /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\\w*| ?)([\\w\\.]*)/i, // Hurd/Linux/MorphOS\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) ?(r\\d)?/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\d\\.]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /\\b(beos|os\\/2|amigaos|openvms|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Factories\n ////////////////\n\n var defaultProps = (function () {\n var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};\n setProps.call(props.init, [\n [BROWSER, [NAME, VERSION, MAJOR, TYPE]],\n [CPU, [ARCHITECTURE]],\n [DEVICE, [TYPE, MODEL, VENDOR]],\n [ENGINE, [NAME, VERSION]],\n [OS, [NAME, VERSION]]\n ]);\n setProps.call(props.isIgnore, [\n [BROWSER, [VERSION, MAJOR]],\n [ENGINE, [VERSION]],\n [OS, [VERSION]]\n ]);\n setProps.call(props.isIgnoreRgx, [\n [BROWSER, / ?browser$/i],\n [OS, / ?os$/i]\n ]);\n setProps.call(props.toString, [\n [BROWSER, [NAME, VERSION]],\n [CPU, [ARCHITECTURE]],\n [DEVICE, [VENDOR, MODEL]],\n [ENGINE, [NAME, VERSION]],\n [OS, [NAME, VERSION]]\n ]);\n return props;\n })();\n\n var createIData = function (item, itemType) {\n\n var init_props = defaultProps.init[itemType],\n is_ignoreProps = defaultProps.isIgnore[itemType] || 0,\n is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0,\n toString_props = defaultProps.toString[itemType] || 0;\n\n function IData () {\n setProps.call(this, init_props);\n }\n\n IData.prototype.getItem = function () {\n return item;\n };\n\n IData.prototype.withClientHints = function () {\n\n // nodejs / non-client-hints browsers\n if (!NAVIGATOR_UADATA) {\n return item\n .parseCH()\n .get();\n }\n\n // browsers based on chromium 85+\n return NAVIGATOR_UADATA\n .getHighEntropyValues(CH_ALL_VALUES)\n .then(function (res) {\n return item\n .setCH(new UACHData(res, false))\n .parseCH()\n .get();\n });\n };\n\n IData.prototype.withFeatureCheck = function () {\n return item.detectFeature().get();\n };\n\n if (itemType != RESULT) {\n IData.prototype.is = function (strToCheck) {\n var is = false;\n for (var i in this) {\n if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {\n is = true;\n if (strToCheck != TYPEOF.UNDEFINED) break;\n } else if (strToCheck == TYPEOF.UNDEFINED && is) {\n is = !is;\n break;\n }\n }\n return is;\n };\n IData.prototype.toString = function () {\n var str = EMPTY;\n for (var i in toString_props) {\n if (typeof(this[toString_props[i]]) !== TYPEOF.UNDEFINED) {\n str += (str ? ' ' : EMPTY) + this[toString_props[i]];\n }\n }\n return str || TYPEOF.UNDEFINED;\n };\n }\n\n IData.prototype.then = function (cb) { \n var that = this;\n var IDataResolve = function () {\n for (var prop in that) {\n if (that.hasOwnProperty(prop)) {\n this[prop] = that[prop];\n }\n }\n };\n IDataResolve.prototype = {\n is : IData.prototype.is,\n toString : IData.prototype.toString,\n withClientHints : IData.prototype.withClientHints,\n withFeatureCheck : IData.prototype.withFeatureCheck\n };\n var resolveData = new IDataResolve();\n cb(resolveData);\n return resolveData;\n };\n\n return new IData();\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n function UACHData (uach, isHttpUACH) {\n uach = uach || {};\n setProps.call(this, CH_ALL_VALUES);\n if (isHttpUACH) {\n setProps.call(this, [\n [BRANDS, itemListToArray(uach[CH])],\n [FULLVERLIST, itemListToArray(uach[CH_FULL_VER_LIST])],\n [MOBILE, /\\?1/.test(uach[CH_MOBILE])],\n [MODEL, stripQuotes(uach[CH_MODEL])],\n [PLATFORM, stripQuotes(uach[CH_PLATFORM])],\n [PLATFORMVER, stripQuotes(uach[CH_PLATFORM_VER])],\n [ARCHITECTURE, stripQuotes(uach[CH_ARCH])],\n [FORMFACTORS, itemListToArray(uach[CH_FORM_FACTORS])],\n [BITNESS, stripQuotes(uach[CH_BITNESS])]\n ]);\n } else {\n for (var prop in uach) {\n if(this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED) this[prop] = uach[prop];\n }\n }\n }\n\n function UAItem (itemType, ua, rgxMap, uaCH) {\n setProps.call(this, [\n ['itemType', itemType],\n ['ua', ua],\n ['uaCH', uaCH],\n ['rgxMap', rgxMap],\n ['data', createIData(this, itemType)]\n ]);\n return this;\n }\n\n UAItem.prototype.get = function (prop) {\n if (!prop) return this.data;\n return this.data.hasOwnProperty(prop) ? this.data[prop] : undefined;\n };\n\n UAItem.prototype.set = function (prop, val) {\n this.data[prop] = val;\n return this;\n };\n\n UAItem.prototype.setCH = function (ch) {\n this.uaCH = ch;\n return this;\n };\n\n UAItem.prototype.detectFeature = function () {\n if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {\n switch (this.itemType) {\n case BROWSER:\n // Brave-specific detection\n if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == TYPEOF.FUNCTION) {\n this.set(NAME, 'Brave');\n }\n break;\n case DEVICE:\n // Chrome-specific detection: check for 'mobile' value of navigator.userAgentData\n if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (this.get(MODEL) == 'Macintosh' && NAVIGATOR && typeof NAVIGATOR.standalone !== TYPEOF.UNDEFINED && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {\n this.set(MODEL, 'iPad')\n .set(TYPE, TABLET);\n }\n break;\n case OS:\n // Chrome-specific detection: check for 'platform' value of navigator.userAgentData\n if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {\n this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);\n }\n break;\n case RESULT:\n var data = this.data;\n var detect = function (itemType) {\n return data[itemType]\n .getItem()\n .detectFeature()\n .get();\n };\n this.set(BROWSER, detect(BROWSER))\n .set(CPU, detect(CPU))\n .set(DEVICE, detect(DEVICE))\n .set(ENGINE, detect(ENGINE))\n .set(OS, detect(OS));\n }\n }\n return this;\n };\n\n UAItem.prototype.parseUA = function () {\n if (this.itemType != RESULT) {\n rgxMapper.call(this.data, this.ua, this.rgxMap);\n }\n switch (this.itemType) {\n case BROWSER:\n this.set(MAJOR, majorize(this.get(VERSION)));\n break;\n case OS:\n if (this.get(NAME) == 'iOS' && this.get(VERSION) == '18.6') {\n // Based on the assumption that iOS version is tightly coupled with Safari version\n var realVersion = /\\) Version\\/([\\d\\.]+)/.exec(this.ua); // Get Safari version\n if (realVersion && parseInt(realVersion[1].substring(0,2), 10) >= 26) {\n this.set(VERSION, realVersion[1]); // Set as iOS version\n }\n }\n break;\n }\n return this;\n };\n\n UAItem.prototype.parseCH = function () {\n var uaCH = this.uaCH,\n rgxMap = this.rgxMap;\n\n switch (this.itemType) {\n case BROWSER:\n case ENGINE:\n var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;\n if (brands) {\n for (var i=0; i<brands.length; i++) {\n var brandName = brands[i].brand || brands[i],\n brandVersion = brands[i].version;\n if (this.itemType == BROWSER && \n !/not.a.brand/i.test(brandName) && \n (!prevName || \n (/Chrom/.test(prevName) && brandName != CHROMIUM) || \n (prevName == EDGE && /WebView2/.test(brandName))\n )) {\n brandName = strMapper(brandName, browserHintsMap);\n prevName = this.get(NAME);\n if (!(prevName && !/Chrom/.test(prevName) && /Chrom/.test(brandName))) {\n this.set(NAME, brandName)\n .set(VERSION, brandVersion)\n .set(MAJOR, majorize(brandVersion));\n }\n prevName = brandName;\n }\n if (this.itemType == ENGINE && brandName == CHROMIUM) {\n this.set(VERSION, brandVersion);\n }\n }\n }\n break;\n case CPU:\n var archName = uaCH[ARCHITECTURE];\n if (archName) {\n if (archName && uaCH[BITNESS] == '64') archName += '64';\n rgxMapper.call(this.data, archName + ';', rgxMap);\n }\n break;\n case DEVICE:\n if (uaCH[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n if (uaCH[MODEL]) {\n this.set(MODEL, uaCH[MODEL]);\n if (!this.get(TYPE) || !this.get(VENDOR)) {\n var reParse = {};\n rgxMapper.call(reParse, 'droid 9; ' + uaCH[MODEL] + ')', rgxMap);\n if (!this.get(TYPE) && !!reParse.type) {\n this.set(TYPE, reParse.type);\n }\n if (!this.get(VENDOR) && !!reParse.vendor) {\n this.set(VENDOR, reParse.vendor);\n }\n }\n }\n if (uaCH[FORMFACTORS]) {\n var ff;\n if (typeof uaCH[FORMFACTORS] !== 'string') {\n var idx = 0;\n while (!ff && idx < uaCH[FORMFACTORS].length) {\n ff = strMapper(uaCH[FORMFACTORS][idx++], formFactorsMap);\n }\n } else {\n ff = strMapper(uaCH[FORMFACTORS], formFactorsMap);\n }\n this.set(TYPE, ff);\n }\n break;\n case OS:\n var osName = uaCH[PLATFORM];\n if(osName) {\n var osVersion = uaCH[PLATFORMVER];\n if (osName == WINDOWS) osVersion = (parseInt(majorize(osVersion), 10) >= 13 ? '11' : '10');\n this.set(NAME, osName)\n .set(VERSION, osVersion);\n }\n // Xbox-Specific Detection\n if (this.get(NAME) == WINDOWS && uaCH[MODEL] == 'Xbox') {\n this.set(NAME, 'Xbox')\n .set(VERSION, undefined);\n } \n break;\n case RESULT:\n var data = this.data;\n var parse = function (itemType) {\n return data[itemType]\n .getItem()\n .setCH(uaCH)\n .parseCH()\n .get();\n };\n this.set(BROWSER, parse(BROWSER))\n .set(CPU, parse(CPU))\n .set(DEVICE, parse(DEVICE))\n .set(ENGINE, parse(ENGINE))\n .set(OS, parse(OS));\n }\n return this;\n };\n\n function UAParser (ua, extensions, headers) {\n\n if (typeof ua === TYPEOF.OBJECT) {\n if (isExtensions(ua, true)) {\n if (typeof extensions === TYPEOF.OBJECT) {\n headers = extensions; // case UAParser(extensions, headers) \n }\n extensions = ua; // case UAParser(extensions)\n } else {\n headers = ua; // case UAParser(headers)\n extensions = undefined;\n }\n ua = undefined;\n } else if (typeof ua === TYPEOF.STRING && !isExtensions(extensions, true)) {\n headers = extensions; // case UAParser(ua, headers)\n extensions = undefined;\n }\n\n if (headers) {\n if (typeof headers.append === TYPEOF.FUNCTION) {\n // Convert Headers object into a plain object\n var kv = {};\n headers.forEach(function (v, k) { kv[String(k).toLowerCase()] = v; });\n headers = kv;\n } else {\n // Normalize headers field name into lowercase\n var normalized = {};\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n normalized[String(header).toLowerCase()] = headers[header];\n }\n }\n headers = normalized;\n }\n }\n \n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions, headers).getResult();\n }\n\n var userAgent = typeof ua === TYPEOF.STRING ? ua : // Passed user-agent string\n (headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers\n ((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent\n EMPTY)), // empty string\n\n httpUACH = new UACHData(headers, true),\n regexMap = extensions ? \n extend(defaultRegexes, extensions) : \n defaultRegexes,\n\n createItemFunc = function (itemType) {\n if (itemType == RESULT) {\n return function () {\n return new UAItem(itemType, userAgent, regexMap, httpUACH)\n .set('ua', userAgent)\n .set(BROWSER, this.getBrowser())\n .set(CPU, this.getCPU())\n .set(DEVICE, this.getDevice())\n .set(ENGINE, this.getEngine())\n .set(OS, this.getOS())\n .get();\n };\n } else {\n return function () {\n return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)\n .parseUA()\n .get();\n };\n }\n };\n \n // public methods\n setProps.call(this, [\n ['getBrowser', createItemFunc(BROWSER)],\n ['getCPU', createItemFunc(CPU)],\n ['getDevice', createItemFunc(DEVICE)],\n ['getEngine', createItemFunc(ENGINE)],\n ['getOS', createItemFunc(OS)],\n ['getResult', createItemFunc(RESULT)],\n ['getUA', function () { return userAgent; }],\n ['setUA', function (ua) {\n if (isString(ua)) userAgent = trim(ua, UA_MAX_LENGTH);\n return this;\n }]\n ])\n .setUA(userAgent);\n\n return this;\n }\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n export {UAParser};","import type { IDeviceInfo, IOptions, ISentry } from \"@lark-sentry/types\";\n\nimport { DEFAULT_OPTIONS, UNKNOWN } from \"@lark-sentry/constants\";\n\nimport { UAParser } from \"ua-parser-js\";\n\ndeclare global {\n var __sentry__: ISentry | undefined;\n}\n\nclass Sentry implements ISentry {\n static #instance: Sentry;\n\n static get instance() {\n if (!this.#instance) {\n this.#instance = new Sentry();\n globalThis.__sentry__ = this.#instance;\n }\n return this.#instance;\n }\n\n codeErrors = new Set<string>();\n\n whiteScreenTimer: number | null = null;\n\n options: IOptions = DEFAULT_OPTIONS;\n\n deviceInfo: IDeviceInfo;\n\n shouldRecordScreen = false;\n\n constructor() {\n const res = new UAParser().getResult();\n this.deviceInfo = {\n browserName: res.browser.name ?? UNKNOWN,\n browserVersion: res.browser.version ?? UNKNOWN,\n osName: res.os.name ?? UNKNOWN,\n osVersion: res.os.version ?? UNKNOWN,\n userAgent: res.ua,\n deviceModel: res.device.model ?? UNKNOWN,\n deviceType: res.device.type ?? UNKNOWN,\n };\n }\n\n setOptions(newOptions: Partial<IOptions>) {\n Sentry.#instance.options = {\n ...this.options,\n ...newOptions,\n };\n }\n}\n\nexport default Sentry.instance;\n","import sentry from \"./sentry.js\";\n\nfunction isExcludedApi(api: string) {\n for (const excludedApi of sentry.options.excludeApis) {\n if (typeof excludedApi === \"string\") {\n if (api === excludedApi) {\n return true;\n }\n } else {\n if (excludedApi.test(api)) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport default isExcludedApi;\n","import type { IExtendedErrorEvent, TUnknownError } from \"@lark-sentry/types\";\n\nfunction isHTMLElement(node: Node): node is HTMLElement {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nfunction isError(err: TUnknownError): err is Error {\n return err instanceof Error;\n}\n\nfunction isErrorEvent(err: TUnknownError): err is ErrorEvent {\n return err instanceof ErrorEvent;\n}\n\nfunction isIExtendedErrorEvent(err: TUnknownError): err is IExtendedErrorEvent {\n return (\n err instanceof ErrorEvent &&\n err.target !== null &&\n \"src\" in err.target &&\n typeof err.target.src === \"string\" &&\n \"href\" in err.target &&\n typeof err.target.href === \"string\" &&\n \"localName\" in err.target &&\n typeof err.target.localName === \"string\"\n );\n}\n\nexport { isHTMLElement, isError, isErrorEvent, isIExtendedErrorEvent };\n","import { EventType, Status, type IPerformanceData } from \"@lark-sentry/types\";\n\nimport getTime from \"./get-time.js\";\n\nimport type { Metric } from \"web-vitals\";\n\nfunction metric2perfData(\n metric: Omit<Metric, \"name\"> & { name: string },\n): IPerformanceData {\n const { id, name, value, rating } = metric;\n return {\n id,\n name,\n value,\n rating,\n message: \"\",\n ...getTime(),\n type: EventType.Performance,\n status: Status.OK,\n };\n}\n\nexport default metric2perfData;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function throttle<T extends (...args: any[]) => any>(\n fn: T,\n delay = 300,\n): (...args: Parameters<T>) => void {\n let latestTimestamp = 0;\n\n return function (this: ThisParameterType<T>, ...args: Parameters<T>) {\n const now = Date.now();\n if (now - latestTimestamp > delay) {\n latestTimestamp = Date.now();\n fn.apply(this, args);\n return;\n }\n };\n}\n\nexport function throttleV2<T extends (...args: any[]) => any>(\n fn: T,\n delay = 300,\n): (...args: Parameters<T>) => void {\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n return function (this: ThisParameterType<T>, ...args: Parameters<T>) {\n if (timer) {\n return;\n }\n timer = setTimeout(() => {\n fn.apply(this, args);\n timer = null;\n }, delay);\n };\n}\n","import type { IHttpData } from \"@lark-sentry/types\";\n\nfunction transformHttpData(data: IHttpData): IHttpData {\n const { statusCode } = data;\n if (statusCode >= 100 && statusCode < 200) {\n data.message = \"Informational response\";\n } else if (statusCode >= 200 && statusCode < 300) {\n data.message = \"Successful responses\";\n } else if (statusCode >= 300 && statusCode < 400) {\n data.message = \"Redirection messages\";\n } else if (statusCode >= 400 && statusCode < 500) {\n data.message = \"Client error responses\";\n } else if (statusCode >= 500 && statusCode < 600) {\n data.message = \"Server error responses\";\n } else {\n data.message = \"Invalid status code\";\n }\n return data;\n}\n\nexport default transformHttpData;\n"],"names":["base64","__publicField","UNKNOWN"],"mappings":"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","x_google_ignoreList":[8]}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("@lark-sentry/constants"),i=require("@lark-sentry/types");var t=Object.defineProperty,r=(e,i,r)=>((e,i,r)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r)(e,"symbol"!=typeof i?i+"":i,r);function o(){return{time:(new Date).toISOString(),timestamp:Date.now()}}var s,a="user-agent",n="",c="function",p="object",l="string",h="undefined",d="browser",w="cpu",b="device",u="engine",m="os",f="result",g="name",v="type",y="vendor",k="version",x="architecture",C="major",E="model",T="console",S="mobile",_="tablet",O="smarttv",N="wearable",q="xr",z="embedded",A="inapp",H="brands",M="formFactors",B="fullVersionList",I="platform",R="platformVersion",U="bitness",L="sec-ch-ua",P=L+"-full-version-list",j=L+"-arch",V=L+"-"+U,D=L+"-form-factors",W=L+"-"+S,$=L+"-"+E,F=L+"-"+I,G=F+"-version",X=[H,B,S,E,I,R,x,M,U],K="Amazon",Y="Apple",Q="ASUS",Z="BlackBerry",J="Google",ee="Huawei",ie="Lenovo",te="Honor",re="LG",oe="Microsoft",se="Motorola",ae="Nvidia",ne="OnePlus",ce="OPPO",pe="Samsung",le="Sharp",he="Sony",de="Xiaomi",we="Zebra",be="Chrome",ue="Chromium",me="Chromecast",fe="Edge",ge="Firefox",ve="Opera",ye="Facebook",ke="Sogou",xe="Mobile ",Ce=" Browser",Ee="Windows",Te=typeof window!==h&&window.navigator?window.navigator:void 0,Se=Te&&Te.userAgentData?Te.userAgentData:void 0,_e=function(e){for(var i={},t=0;t<e.length;t++)i[e[t].toUpperCase()]=e[t];return i},Oe=function(e,i){if(typeof e===p&&e.length>0){for(var t in e)if(Ae(i)==Ae(e[t]))return!0;return!1}return!!qe(e)&&Ae(i)==Ae(e)},Ne=function(e,i){for(var t in e)return/^(browser|cpu|device|engine|os)$/.test(t)||!!i&&Ne(e[t])},qe=function(e){return typeof e===l},ze=function(e){if(e){for(var i=[],t=Be(/\\?\"/g,e).split(","),r=0;r<t.length;r++)if(t[r].indexOf(";")>-1){var o=Re(t[r]).split(";v=");i[r]={brand:o[0],version:o[1]}}else i[r]=Re(t[r]);return i}},Ae=function(e){return qe(e)?e.toLowerCase():e},He=function(e){return qe(e)?Be(/[^\d\.]/g,e).split(".")[0]:void 0},Me=function(e){for(var i in e)if(e.hasOwnProperty(i)){var t=e[i];typeof t==p&&2==t.length?this[t[0]]=t[1]:this[t]=void 0}return this},Be=function(e,i){return qe(i)?i.replace(e,n):i},Ie=function(e){return Be(/\\?\"/g,e)},Re=function(e,i){return e=Be(/^\s\s*/,String(e)),typeof i===h?e:e.substring(0,i)},Ue=function(e,i){if(e&&i)for(var t,r,o,s,a,n,l=0;l<i.length&&!a;){var h=i[l],d=i[l+1];for(t=r=0;t<h.length&&!a&&h[t];)if(a=h[t++].exec(e))for(o=0;o<d.length;o++)n=a[++r],typeof(s=d[o])===p&&s.length>0?2===s.length?typeof s[1]==c?this[s[0]]=s[1].call(this,n):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]!==c||s[1].exec&&s[1].test?3==s.length?this[s[0]]=n?n.replace(s[1],s[2]):void 0:4==s.length?this[s[0]]=n?s[3].call(this,n.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=n?s[3].apply(this,[n.replace(s[1],s[2])].concat(s.slice(4))):void 0):s.length>3?this[s[0]]=n?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=n?s[1].call(this,n,s[2]):void 0):this[s]=n||void 0;l+=2}},Le=function(e,i){for(var t in i)if(typeof i[t]===p&&i[t].length>0){for(var r=0;r<i[t].length;r++)if(Oe(i[t][r],e))return"?"===t?void 0:t}else if(Oe(i[t],e))return"?"===t?void 0:t;return i.hasOwnProperty("*")?i["*"]:e},Pe={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2",8.1:"6.3",10:["6.4","10.0"],NT:""},je={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Ve={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},De={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[k,[g,xe+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[k,[g,fe+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[k,[g,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[g,k],[/opios[\/ ]+([\w\.]+)/i],[k,[g,ve+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[k,[g,ve+" GX"]],[/\bopr\/([\w\.]+)/i],[k,[g,ve]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[k,[g,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[k,[g,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(atlas|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,/(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[g,k],[/quark(?:pc)?\/([-\w\.]+)/i],[k,[g,"Quark"]],[/\bddg\/([\w\.]+)/i],[k,[g,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[k,[g,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[k,[g,"WeChat"]],[/konqueror\/([\w\.]+)/i],[k,[g,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[k,[g,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[k,[g,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[k,[g,"Smart "+ie+Ce]],[/(avast|avg)\/([\w\.]+)/i],[[g,/(.+)/,"$1 Secure"+Ce],k],[/\bfocus\/([\w\.]+)/i],[k,[g,ge+" Focus"]],[/\bopt\/([\w\.]+)/i],[k,[g,ve+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[k,[g,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[k,[g,"Dolphin"]],[/coast\/([\w\.]+)/i],[k,[g,ve+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[k,[g,"MIUI"+Ce]],[/fxios\/([\w\.-]+)/i],[k,[g,xe+ge]],[/\bqihoobrowser\/?([\w\.]*)/i],[k,[g,"360"]],[/\b(qq)\/([\w\.]+)/i],[[g,/(.+)/,"$1Browser"],k],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[g,/(.+)/,"$1"+Ce],k],[/samsungbrowser\/([\w\.]+)/i],[k,[g,pe+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[k,[g,ke+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[g,ke+" Mobile"],k],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[g,k],[/(lbbrowser|rekonq|steam(?= (clie|tenf|gameo)))/i],[g],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[k,g],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[g,ye],k,[v,A]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[g,k,[v,A]],[/\bgsa\/([\w\.]+) .*safari\//i],[k,[g,"GSA"],[v,A]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[k,[g,"TikTok"],[v,A]],[/\[(linkedin)app\]/i],[g,[v,A]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[g,/(.+)/,"Zalo"],k,[v,A]],[/(chromium)[\/ ]([-\w\.]+)/i],[g,k],[/headlesschrome(?:\/([\w\.]+)| )/i],[k,[g,be+" Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[k,[g,fe+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[g,be+" WebView"],k],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[k,[g,"Android"+Ce]],[/chrome\/([\w\.]+) mobile/i],[k,[g,xe+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[g,k],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[k,[g,xe+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[g,xe+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[k,g],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[g,[k,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[g,k],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[g,xe+ge],k],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[g,"Netscape"],k],[/(wolvic|librewolf)\/([\w\.]+)/i],[g,k],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[k,[g,ge+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[g,[k,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[g,[k,/[^\d\.]+./,n]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[x,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[x,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[x,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[x,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[x,"arm"]],[/ sun4\w[;\)]/i],[[x,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[x,/ower/,n,Ae]],[/mc680.0/i],[[x,"68k"]],[/winnt.+\[axp/i],[[x,"alpha"]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[E,[y,pe],[v,_]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[E,[y,pe],[v,S]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[E,[y,Y],[v,S]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[E,[y,Y],[v,_]],[/(macintosh);/i],[E,[y,Y]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[E,[y,le],[v,S]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[E,[y,te],[v,_]],[/honor([-\w ]+)[;\)]/i],[E,[y,te],[v,S]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[E,[y,ee],[v,_]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[E,[y,ee],[v,S]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[E,/_/g," "],[y,de],[v,_]],[/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/oid[^\)]+; (redmi[\-_ ]?(?:note|k)?[\w_ ]+|m?[12]\d[01]\d\w{3,6}|poco[\w ]+|(shark )?\w{3}-[ah]0|qin ?[1-3](s\+|ultra| pro)?)( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[E,/_/g," "],[y,de],[v,S]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[E,[y,ne],[v,S]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[E,[y,ce],[v,S]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[E,[y,Le,{OnePlus:["203","304","403","404","413","415"],"*":ce}],[v,_]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[E,[y,"BLU"],[v,S]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[E,[y,"Vivo"],[v,S]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[E,[y,"Realme"],[v,S]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[E,[y,ie],[v,_]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[E,[y,ie],[v,S]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[E,[y,se],[v,S]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[E,[y,se],[v,_]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[E,[y,re],[v,_]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[E,[y,re],[v,S]],[/(nokia) (t[12][01])/i],[y,E,[v,_]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[E,/_/g," "],[v,S],[y,"Nokia"]],[/(pixel (c|tablet))\b/i],[E,[y,J],[v,_]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[E,[y,J],[v,S]],[/(google) (pixelbook( go)?)/i],[y,E],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[E,[y,he],[v,S]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[E,"Xperia Tablet"],[y,he],[v,_]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[E,[y,K],[v,_]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[E,/(.+)/g,"Fire Phone $1"],[y,K],[v,S]],[/(playbook);[-\w\),; ]+(rim)/i],[E,y,[v,_]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[E,[y,Z],[v,S]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[E,[y,Q],[v,_]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[E,[y,Q],[v,S]],[/(nexus 9)/i],[E,[y,"HTC"],[v,_]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[y,[E,/_/g," "],[v,S]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[E,[y,"TCL"],[v,_]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[E,[y,"TCL"],[v,S]],[/(itel) ((\w+))/i],[[y,Ae],E,[v,Le,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[E,[y,"Acer"],[v,_]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[E,[y,"Meizu"],[v,S]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[E,[y,"Ulefone"],[v,S]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[E,[y,"Energizer"],[v,S]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[E,[y,"Cat"],[v,S]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[E,[y,"Smartfren"],[v,S]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[E,[y,"Nothing"],[v,S]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[E,[y,"Archos"],[v,_]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[E,[y,"Archos"],[v,S]],[/; (n159v)/i],[E,[y,"HMD"],[v,S]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[y,E,[v,_]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i,/(hisense) ([ehv][\w ]+)\)/i,/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i],[y,E,[v,S]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[y,E,[v,_]],[/(surface duo)/i],[E,[y,oe],[v,_]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[E,[y,"Fairphone"],[v,S]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[E,[y,ae],[v,_]],[/(sprint) (\w+)/i],[y,E,[v,S]],[/(kin\.[onetw]{3})/i],[[E,/\./g," "],[y,oe],[v,S]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[E,[y,we],[v,_]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[E,[y,we],[v,S]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[y,[v,O]],[/hbbtv.+maple;(\d+)/i],[[E,/^/,"SmartTV"],[y,pe],[v,O]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[y,E,[v,O]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[y,re],[v,O]],[/(apple) ?tv/i],[y,[E,Y+" TV"],[v,O]],[/crkey.*devicetype\/chromecast/i],[[E,me+" Third Generation"],[y,J],[v,O]],[/crkey.*devicetype\/([^/]*)/i],[[E,/^/,"Chromecast "],[y,J],[v,O]],[/fuchsia.*crkey/i],[[E,me+" Nest Hub"],[y,J],[v,O]],[/crkey/i],[[E,me],[y,J],[v,O]],[/(portaltv)/i],[E,[y,ye],[v,O]],[/droid.+aft(\w+)( bui|\))/i],[E,[y,K],[v,O]],[/(shield \w+ tv)/i],[E,[y,ae],[v,O]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[E,[y,le],[v,O]],[/(bravia[\w ]+)( bui|\))/i],[E,[y,he],[v,O]],[/(mi(tv|box)-?\w+) bui/i],[E,[y,de],[v,O]],[/Hbbtv.*(technisat) (.*);/i],[y,E,[v,O]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[y,/.+\/(\w+)/,"$1",Le,{LG:"lge"}],[E,Re],[v,O]],[/(playstation \w+)/i],[E,[y,he],[v,T]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[E,[y,oe],[v,T]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i,/(valve).+(steam deck)/i,/droid.+; ((shield|rgcube|gr0006))( bui|\))/i],[[y,Le,{Nvidia:"Shield",Anbernic:"RGCUBE",Logitech:"GR0006"}],E,[v,T]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[E,[y,pe],[v,N]],[/((pebble))app/i,/(asus|google|lg|oppo|xiaomi) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[y,E,[v,N]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[E,[y,ce],[v,N]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[E,[y,Y],[v,N]],[/(opwwe\d{3})/i],[E,[y,ne],[v,N]],[/(moto 360)/i],[E,[y,se],[v,N]],[/(smartwatch 3)/i],[E,[y,he],[v,N]],[/(g watch r)/i],[E,[y,re],[v,N]],[/droid.+; (wt63?0{2,3})\)/i],[E,[y,we],[v,N]],[/droid.+; (glass) \d/i],[E,[y,J],[v,q]],[/(pico) ([\w ]+) os\d/i],[y,E,[v,q]],[/(quest( \d| pro)?s?).+vr/i],[E,[y,ye],[v,q]],[/mobile vr; rv.+firefox/i],[[v,q]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[y,[v,z]],[/(aeobc)\b/i],[E,[y,K],[v,z]],[/(homepod).+mac os/i],[E,[y,Y],[v,z]],[/windows iot/i],[[v,z]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[E,[v,O]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[v,O]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[E,[v,Le,{mobile:"Mobile",xr:"VR","*":_}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[v,_]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[v,S]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[E,[y,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[k,[g,fe+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[g,k],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[k,[g,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[g,k],[/ladybird\//i],[[g,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[k,g]],os:[[/(windows nt) (6\.[23]); arm/i],[[g,/N/,"R"],[k,Le,Pe]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[g,k],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[k,/(;|\))/g,"",Le,Pe],[g,Ee]],[/(windows ce)\/?([\d\.]*)/i],[g,k],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv|ios(?=.+ip(?:ad|hone)|.+apple ?tv)|ip(?:ad|hone)(?: |.+i(?:pad)?)os|apple ?tv.+ios)[\/ ]([\w\.]+)/i,/\btvos ?([\w\.]+)/i,/cfnetwork\/.+darwin/i],[[k,/_/g,"."],[g,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[g,"macOS"],[k,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[k,[g,me+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[k,[g,me+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[k,[g,me+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[k,[g,me+" Linux"]],[/crkey\/([\d\.]+)/i],[k,[g,me]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[k,g],[/(ubuntu) ([\w\.]+) like android/i],[[g,/(.+)/,"$1 Touch"],k],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[g,k],[/\(bb(10);/i],[k,[g,Z]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[k,[g,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[k,[g,ge+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[k,[g,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[k,Le,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[g,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[k,[g,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[g,"Chrome OS"],k],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[g,k],[/(sunos) ?([\d\.]*)/i],[[g,"Solaris"],k],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[g,k]]},We=(Me.call((s={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}}).init,[[d,[g,k,C,v]],[w,[x]],[b,[v,E,y]],[u,[g,k]],[m,[g,k]]]),Me.call(s.isIgnore,[[d,[k,C]],[u,[k]],[m,[k]]]),Me.call(s.isIgnoreRgx,[[d,/ ?browser$/i],[m,/ ?os$/i]]),Me.call(s.toString,[[d,[g,k]],[w,[x]],[b,[y,E]],[u,[g,k]],[m,[g,k]]]),s),$e=function(e,i){var t=We.init[i],r=We.isIgnore[i]||0,o=We.isIgnoreRgx[i]||0,s=We.toString[i]||0;function a(){Me.call(this,t)}return a.prototype.getItem=function(){return e},a.prototype.withClientHints=function(){return Se?Se.getHighEntropyValues(X).then(function(i){return e.setCH(new Fe(i,!1)).parseCH().get()}):e.parseCH().get()},a.prototype.withFeatureCheck=function(){return e.detectFeature().get()},i!=f&&(a.prototype.is=function(e){var i=!1;for(var t in this)if(this.hasOwnProperty(t)&&!Oe(r,t)&&Ae(o?Be(o,this[t]):this[t])==Ae(o?Be(o,e):e)){if(i=!0,e!=h)break}else if(e==h&&i){i=!i;break}return i},a.prototype.toString=function(){var e=n;for(var i in s)typeof this[s[i]]!==h&&(e+=(e?" ":n)+this[s[i]]);return e||h}),a.prototype.then=function(e){var i=this,t=function(){for(var e in i)i.hasOwnProperty(e)&&(this[e]=i[e])};t.prototype={is:a.prototype.is,toString:a.prototype.toString,withClientHints:a.prototype.withClientHints,withFeatureCheck:a.prototype.withFeatureCheck};var r=new t;return e(r),r},new a};function Fe(e,i){if(e=e||{},Me.call(this,X),i)Me.call(this,[[H,ze(e[L])],[B,ze(e[P])],[S,/\?1/.test(e[W])],[E,Ie(e[$])],[I,Ie(e[F])],[R,Ie(e[G])],[x,Ie(e[j])],[M,ze(e[D])],[U,Ie(e[V])]]);else for(var t in e)this.hasOwnProperty(t)&&typeof e[t]!==h&&(this[t]=e[t])}function Ge(e,i,t,r){return Me.call(this,[["itemType",e],["ua",i],["uaCH",r],["rgxMap",t],["data",$e(this,e)]]),this}function Xe(e,i,t){if(typeof e===p?(Ne(e,!0)?(typeof i===p&&(t=i),i=e):(t=e,i=void 0),e=void 0):typeof e!==l||Ne(i,!0)||(t=i,i=void 0),t)if(typeof t.append===c){var r={};t.forEach(function(e,i){r[String(i).toLowerCase()]=e}),t=r}else{var o={};for(var s in t)t.hasOwnProperty(s)&&(o[String(s).toLowerCase()]=t[s]);t=o}if(!(this instanceof Xe))return new Xe(e,i,t).getResult();var h=typeof e===l?e:t&&t[a]?t[a]:Te&&Te.userAgent?Te.userAgent:n,g=new Fe(t,!0),v=i?function(e,i){var t={},r=i;if(!Ne(i))for(var o in r={},i)for(var s in i[o])r[s]=i[o][s].concat(r[s]?r[s]:[]);for(var a in e)t[a]=r[a]&&r[a].length%2==0?r[a].concat(e[a]):e[a];return t}(De,i):De,y=function(e){return e==f?function(){return new Ge(e,h,v,g).set("ua",h).set(d,this.getBrowser()).set(w,this.getCPU()).set(b,this.getDevice()).set(u,this.getEngine()).set(m,this.getOS()).get()}:function(){return new Ge(e,h,v[e],g).parseUA().get()}};return Me.call(this,[["getBrowser",y(d)],["getCPU",y(w)],["getDevice",y(b)],["getEngine",y(u)],["getOS",y(m)],["getResult",y(f)],["getUA",function(){return h}],["setUA",function(e){return qe(e)&&(h=Re(e,500)),this}]]).setUA(h),this}Ge.prototype.get=function(e){return e?this.data.hasOwnProperty(e)?this.data[e]:void 0:this.data},Ge.prototype.set=function(e,i){return this.data[e]=i,this},Ge.prototype.setCH=function(e){return this.uaCH=e,this},Ge.prototype.detectFeature=function(){if(Te&&Te.userAgent==this.ua)switch(this.itemType){case d:Te.brave&&typeof Te.brave.isBrave==c&&this.set(g,"Brave");break;case b:!this.get(v)&&Se&&Se[S]&&this.set(v,S),"Macintosh"==this.get(E)&&Te&&typeof Te.standalone!==h&&Te.maxTouchPoints&&Te.maxTouchPoints>2&&this.set(E,"iPad").set(v,_);break;case m:!this.get(g)&&Se&&Se[I]&&this.set(g,Se[I]);break;case f:var e=this.data,i=function(i){return e[i].getItem().detectFeature().get()};this.set(d,i(d)).set(w,i(w)).set(b,i(b)).set(u,i(u)).set(m,i(m))}return this},Ge.prototype.parseUA=function(){switch(this.itemType!=f&&Ue.call(this.data,this.ua,this.rgxMap),this.itemType){case d:this.set(C,He(this.get(k)));break;case m:if("iOS"==this.get(g)&&"18.6"==this.get(k)){var e=/\) Version\/([\d\.]+)/.exec(this.ua);e&&parseInt(e[1].substring(0,2),10)>=26&&this.set(k,e[1])}}return this},Ge.prototype.parseCH=function(){var e=this.uaCH,i=this.rgxMap;switch(this.itemType){case d:case u:var t,r=e[B]||e[H];if(r)for(var o=0;o<r.length;o++){var s=r[o].brand||r[o],a=r[o].version;this.itemType==d&&!/not.a.brand/i.test(s)&&(!t||/Chrom/.test(t)&&s!=ue||t==fe&&/WebView2/.test(s))&&(s=Le(s,Ve),(t=this.get(g))&&!/Chrom/.test(t)&&/Chrom/.test(s)||this.set(g,s).set(k,a).set(C,He(a)),t=s),this.itemType==u&&s==ue&&this.set(k,a)}break;case w:var n=e[x];n&&(n&&"64"==e[U]&&(n+="64"),Ue.call(this.data,n+";",i));break;case b:if(e[S]&&this.set(v,S),e[E]&&(this.set(E,e[E]),!this.get(v)||!this.get(y))){var c={};Ue.call(c,"droid 9; "+e[E]+")",i),!this.get(v)&&c.type&&this.set(v,c.type),!this.get(y)&&c.vendor&&this.set(y,c.vendor)}if(e[M]){var p;if("string"!=typeof e[M])for(var l=0;!p&&l<e[M].length;)p=Le(e[M][l++],je);else p=Le(e[M],je);this.set(v,p)}break;case m:var h=e[I];if(h){var T=e[R];h==Ee&&(T=parseInt(He(T),10)>=13?"11":"10"),this.set(g,h).set(k,T)}this.get(g)==Ee&&"Xbox"==e[E]&&this.set(g,"Xbox").set(k,void 0);break;case f:var _=this.data,O=function(i){return _[i].getItem().setCH(e).parseCH().get()};this.set(d,O(d)).set(w,O(w)).set(b,O(b)).set(u,O(u)).set(m,O(m))}return this},Xe.VERSION="2.0.7",Xe.BROWSER=_e([g,k,C,v]),Xe.CPU=_e([x]),Xe.DEVICE=_e([E,y,v,T,S,O,_,N,z]),Xe.ENGINE=Xe.OS=_e([g,k]);var Ke,Ye=Object.defineProperty,Qe=e=>{throw TypeError(e)},Ze=(e,i,t)=>((e,i,t)=>i in e?Ye(e,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[i]=t)(e,"symbol"!=typeof i?i+"":i,t),Je=(e,i,t)=>i.has(e)||Qe("Cannot "+t),ei=(e,i,t)=>(Je(e,i,"read from private field"),t?t.call(e):i.get(e));const ii=class i{constructor(){Ze(this,"codeErrors",new Set),Ze(this,"whiteScreenTimer",null),Ze(this,"options",e.DEFAULT_OPTIONS),Ze(this,"deviceInfo"),Ze(this,"shouldRecordScreen",!1);const i=(new Xe).getResult();this.deviceInfo={browserName:i.browser.name??e.UNKNOWN,browserVersion:i.browser.version??e.UNKNOWN,osName:i.os.name??e.UNKNOWN,osVersion:i.os.version??e.UNKNOWN,userAgent:i.ua,deviceModel:i.device.model??e.UNKNOWN,deviceType:i.device.type??e.UNKNOWN}}static get instance(){var e,t,r;return ei(this,Ke)||(e=this,t=Ke,r=new i,Je(e,t,"write to private field"),t.set(e,r),globalThis.__sentry__=ei(this,Ke)),ei(this,Ke)}setOptions(e){ei(i,Ke).options={...this.options,...e}}};var ti,ri,oi;Ke=new WeakMap,ti=ii,(ri=Ke).has(ti)?Qe("Cannot add the same private member more than once"):ri instanceof WeakSet?ri.add(ti):ri.set(ti,oi);var si=ii.instance;exports.CallbackQueue=class{constructor(){r(this,"cbList",[])}push(e,i,...t){"function"==typeof e&&this.callByRequestIdleCallback(e,i,...t)}callByRequestIdleCallback(e,i,...t){"function"==typeof requestIdleCallback?(this.cbList.push(e.bind(i,...t)),requestIdleCallback(()=>{this.flushFuncList()})):this.callByPromise(e,i,...t)}callByPromise(e,i,...t){this.cbList.push(e.bind(i,...t)),Promise.resolve().then(()=>{this.flushFuncList()})}clear(){this.cbList=[]}flushFuncList(){const e=this.cbList;this.cbList=[],e.forEach(e=>{e()})}},exports.MinHeap=class{constructor(i=e.MAX_BREADCRUMBS,t=[]){if(r(this,"capacity",e.MAX_BREADCRUMBS),r(this,"heap",[]),this.capacity=i,this.heap=t.slice(0,i),this.buildHeap(),t.length>i){const e=t.slice(i);for(const i of e)i.timestamp>=this.heap[0].timestamp&&(this.heap[0]=i,this.heapifyDown(0))}}get size(){return this.heap.length}push(e){return this.size<this.capacity?(this.heap.push(e),this.heapifyUp(this.size-1),!0):e.timestamp>=this.heap[0].timestamp&&(this.heap[0]=e,this.heapifyDown(0),!0)}peek(){return this.heap[0]}heapifyUp(e){for(;e>0;){const i=Math.floor((e-1)/2);if(this.heap[i].timestamp<=this.heap[e].timestamp)break;[this.heap[e],this.heap[i]]=[this.heap[i],this.heap[e]],e=i}}heapifyDown(e){for(;;){let i=e;const t=2*e+1,r=2*e+2;if(t<this.size&&this.heap[t].timestamp<this.heap[i].timestamp&&(i=t),r<this.size&&this.heap[r].timestamp<this.heap[i].timestamp&&(i=r),i===e)break;[this.heap[e],this.heap[i]]=[this.heap[i],this.heap[e]],e=i}}buildHeap(){const e=this.size-1;for(let i=Math.floor((e-1)/2);i>=0;i--)this.heapifyDown(i)}dump(){return this.heap}clear(){this.heap=[]}pop(){if(0===this.size)return;const e=this.heap[0];return this.heap[0]=this.heap[this.size-1],this.heap.pop(),this.size>0&&this.heapifyDown(0),e}},exports.base64=function(e){return btoa(encodeURIComponent(e))},exports.base64v2=function(e){const i=(new TextEncoder).encode(e);let t="";for(const e of i)t+=String.fromCharCode(e);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},exports.debounce=function(e,i=300){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{e.apply(this,r),t=null},i)}},exports.decorateProp=function(e,i,t){const r=t(e[i]);e[i]=r},exports.dom2str=function e(i,t=10){if(t<=0)return"...";const r=i.tagName.toLowerCase();return`<${r}${Array.from(i.attributes).map(e=>` ${e.name}="${e.value}"`).join("")}>${Array.from(i.children).map(i=>e(i,t-1)).join("")}</${r}>`},exports.event2breadcrumb=function(e){switch(e){case i.EventType.Xhr:case i.EventType.Fetch:return i.BreadcrumbType.Http;case i.EventType.Click:return i.BreadcrumbType.Click;case i.EventType.HashChange:case i.EventType.History:return i.BreadcrumbType.Route;case i.EventType.Resource:return i.BreadcrumbType.Resource;case i.EventType.UnhandledRejection:return i.BreadcrumbType.CodeError;case i.EventType.Error:case i.EventType.Vue:case i.EventType.React:case i.EventType.Performance:case i.EventType.ScreenRecord:case i.EventType.WhiteScreen:case i.EventType.Custom:default:return i.BreadcrumbType.Custom}},exports.getCssSelectors=function(e){if(!e||1!==e.nodeType)return["","",""];const i=["id","class","style"];return[e.id?`#${e.id}`:"",Array.from(e.classList).map(e=>`.${e}`).join("")+Array.from(e.attributes).filter(e=>!i.includes(e.name)).map(e=>`[${e.name}="${e.value}"]`).join(""),e.tagName.toLowerCase()]},exports.getTime=o,exports.isError=function(e){return e instanceof Error},exports.isErrorEvent=function(e){return e instanceof ErrorEvent},exports.isExcludedApi=function(e){for(const i of si.options.excludeApis)if("string"==typeof i){if(e===i)return!0}else if(i.test(e))return!0;return!1},exports.isHTMLElement=function(e){return e.nodeType===Node.ELEMENT_NODE},exports.isIExtendedErrorEvent=function(e){return e instanceof ErrorEvent&&null!==e.target&&"src"in e.target&&"string"==typeof e.target.src&&"href"in e.target&&"string"==typeof e.target.href&&"localName"in e.target&&"string"==typeof e.target.localName},exports.metric2perfData=function(e){const{id:t,name:r,value:s,rating:a}=e;return{id:t,name:r,value:s,rating:a,message:"",...o(),type:i.EventType.Performance,status:i.Status.OK}},exports.sentry=si,exports.throttle=function(e,i=300){let t=0;return function(...r){if(Date.now()-t>i)return t=Date.now(),void e.apply(this,r)}},exports.throttleV2=function(e,i=300){let t=null;return function(...r){t||(t=setTimeout(()=>{e.apply(this,r),t=null},i))}},exports.transformHttpData=function(e){const{statusCode:i}=e;return e.message=i>=100&&i<200?"Informational response":i>=200&&i<300?"Successful responses":i>=300&&i<400?"Redirection messages":i>=400&&i<500?"Client error responses":i>=500&&i<600?"Server error responses":"Invalid status code",e};
2
+ //# sourceMappingURL=index.min.cjs.map