cwj_monitoring 0.0.25 → 0.0.26

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.min.js","sources":["../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/index.browser.js","../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/url-alphabet/index.js","../src/utils/date.ts","../node_modules/.pnpm/bowser@2.13.1/node_modules/bowser/es5.js","../src/utils/browser.ts","../src/core/deviceInfo.ts","../src/constant.ts","../src/core/eventTrack.ts","../src/core/reporter.ts","../src/types/event.ts","../src/core/index.ts","../src/plugin/error.ts","../src/plugin/pv.ts","../src/plugin/behavior.ts","../src/utils/common.ts","../src/plugin/performance.ts","../src/plugin/xhr.ts","../src/plugin/fetch.ts"],"sourcesContent":["/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n","/* 将时间戳转为年月日 */\r\nexport const getDate = (time: number = Date.now()) => {\r\n const date = new Date(time);\r\n const year = date.getFullYear();\r\n const month = date.getMonth() + 1; //获取系统月份,由于月份是从0开始计算,所以要加1\r\n const day = date.getDate();\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n const second = date.getSeconds();\r\n\r\n const formatter = (date: number) => {\r\n let res = '';\r\n if (date < 10) {\r\n res = '0' + date;\r\n } else {\r\n res = date.toString();\r\n }\r\n return res;\r\n };\r\n\r\n return (\r\n year +\r\n '-' +\r\n formatter(month) +\r\n '-' +\r\n formatter(day) +\r\n ' ' +\r\n formatter(hour) +\r\n ':' +\r\n formatter(minute) +\r\n ':' +\r\n formatter(second)\r\n );\r\n};\r\n\r\n/* 将两个时间戳转为秒 */\r\nexport const getSeconds = (timestamp1: number, timestamp2: number) => {\r\n if (timestamp1 < timestamp2) {\r\n [timestamp1, timestamp2] = [timestamp2, timestamp1];\r\n }\r\n\r\n return Math.floor((timestamp1 - timestamp2) / 1000);\r\n};\r\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=r(18),n=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));t.push(0);var r=t[0],i=t[1];if(10===r)switch(i){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}switch(r){case 11:return\"Big Sur\";case 12:return\"Monterey\";case 13:return\"Ventura\";case 14:return\"Sonoma\";case 15:return\"Sequoia\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,i){void 0===i&&(i=!1);var n=e.getVersionPrecision(t),a=e.getVersionPrecision(r),o=Math.max(n,a),s=0,u=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),i=t+new Array(r+1).join(\".0\");return e.map(i.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(i&&(s=o-Math.min(n,a)),o-=1;o>=s;){if(u[0][o]>u[1][o])return 1;if(u[0][o]===u[1][o]){if(o===s)return 0;o-=1}else if(u[0][o]<u[1][o])return-1}},e.map=function(e,t){var r,i=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)i.push(t(e[r]));return i},e.find=function(e,t){var r,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,i=e.length;r<i;r+=1){var n=e[r];if(t(n,r))return n}},e.assign=function(e){for(var t,r,i=e,n=arguments.length,a=new Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];if(Object.assign)return Object.assign.apply(Object,[e].concat(a));var s=function(){var e=a[t];\"object\"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){i[t]=e[t]}))};for(t=0,r=a.length;t<r;t+=1)s();return e},e.getBrowserAlias=function(e){return i.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return i.BROWSER_MAP[e]||\"\"},e}();t.default=n,e.exports=t.default},18:function(e,t,r){\"use strict\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={AmazonBot:\"amazonbot\",\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",BaiduSpider:\"baiduspider\",Bada:\"bada\",BingCrawler:\"bingcrawler\",BlackBerry:\"blackberry\",\"ChatGPT-User\":\"chatgpt_user\",Chrome:\"chrome\",ClaudeBot:\"claudebot\",Chromium:\"chromium\",Diffbot:\"diffbot\",DuckDuckBot:\"duckduckbot\",Electron:\"electron\",Epiphany:\"epiphany\",FacebookExternalHit:\"facebookexternalhit\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",GPTBot:\"gptbot\",\"Internet Explorer\":\"ie\",InternetArchiveCrawler:\"internetarchivecrawler\",\"K-Meleon\":\"k_meleon\",LibreWolf:\"librewolf\",Maxthon:\"maxthon\",\"Meta-ExternalAds\":\"meta_externalads\",\"Meta-ExternalAgent\":\"meta_externalagent\",\"Meta-ExternalFetcher\":\"meta_externalfetcher\",\"Meta-WebIndexer\":\"meta_webindexer\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",\"OAI-SearchBot\":\"oai_searchbot\",Omgilibot:\"omgilibot\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",\"Pale Moon\":\"pale_moon\",PerplexityBot:\"perplexitybot\",\"Perplexity-User\":\"perplexity_user\",PhantomJS:\"phantomjs\",PingdomBot:\"pingdombot\",Puffin:\"puffin\",QQ:\"qq\",QQLite:\"qqlite\",QupZilla:\"qupzilla\",Roku:\"roku\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",\"Sogou Browser\":\"sogou\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",YahooSlurp:\"yahooslurp\",\"Yandex Browser\":\"yandex\",YandexBot:\"yandexbot\",YouBot:\"youbot\"};t.BROWSER_MAP={amazonbot:\"AmazonBot\",amazon_silk:\"Amazon Silk\",android:\"Android Browser\",baiduspider:\"BaiduSpider\",bada:\"Bada\",bingcrawler:\"BingCrawler\",blackberry:\"BlackBerry\",chatgpt_user:\"ChatGPT-User\",chrome:\"Chrome\",claudebot:\"ClaudeBot\",chromium:\"Chromium\",diffbot:\"Diffbot\",duckduckbot:\"DuckDuckBot\",edge:\"Microsoft Edge\",electron:\"Electron\",epiphany:\"Epiphany\",facebookexternalhit:\"FacebookExternalHit\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",google_search:\"Google Search\",googlebot:\"Googlebot\",gptbot:\"GPTBot\",ie:\"Internet Explorer\",internetarchivecrawler:\"InternetArchiveCrawler\",k_meleon:\"K-Meleon\",librewolf:\"LibreWolf\",maxthon:\"Maxthon\",meta_externalads:\"Meta-ExternalAds\",meta_externalagent:\"Meta-ExternalAgent\",meta_externalfetcher:\"Meta-ExternalFetcher\",meta_webindexer:\"Meta-WebIndexer\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",oai_searchbot:\"OAI-SearchBot\",omgilibot:\"Omgilibot\",opera:\"Opera\",opera_coast:\"Opera Coast\",pale_moon:\"Pale Moon\",perplexitybot:\"PerplexityBot\",perplexity_user:\"Perplexity-User\",phantomjs:\"PhantomJS\",pingdombot:\"PingdomBot\",puffin:\"Puffin\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",qupzilla:\"QupZilla\",roku:\"Roku\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",sogou:\"Sogou Browser\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yahooslurp:\"YahooSlurp\",yandex:\"Yandex Browser\",yandexbot:\"YandexBot\",youbot:\"YouBot\"};t.PLATFORMS_MAP={bot:\"bot\",desktop:\"desktop\",mobile:\"mobile\",tablet:\"tablet\",tv:\"tv\"};t.OS_MAP={Android:\"Android\",Bada:\"Bada\",BlackBerry:\"BlackBerry\",ChromeOS:\"Chrome OS\",HarmonyOS:\"HarmonyOS\",iOS:\"iOS\",Linux:\"Linux\",MacOS:\"macOS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\",Tizen:\"Tizen\",WebOS:\"WebOS\",Windows:\"Windows\",WindowsPhone:\"Windows Phone\"};t.ENGINE_MAP={Blink:\"Blink\",EdgeHTML:\"EdgeHTML\",Gecko:\"Gecko\",Presto:\"Presto\",Trident:\"Trident\",WebKit:\"WebKit\"}},90:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(91))&&i.__esModule?i:{default:i},a=r(18);function o(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var s=function(){function e(){}var t,r,i;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new n.default(e,t)},e.parse=function(e){return new n.default(e).getResult()},t=e,i=[{key:\"BROWSER_MAP\",get:function(){return a.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return a.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return a.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return a.PLATFORMS_MAP}}],(r=null)&&o(t.prototype,r),i&&o(t,i),e}();t.default=s,e.exports=t.default},91:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=u(r(92)),n=u(r(93)),a=u(r(94)),o=u(r(95)),s=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=s.default.find(i.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=s.default.find(n.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\"\":t||\"\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\"\":t||\"\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=s.default.find(a.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=s.default.find(o.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return s.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},i=0,n={},a=0;if(Object.keys(e).forEach((function(t){var o=e[t];\"string\"==typeof o?(n[t]=o,a+=1):\"object\"==typeof o&&(r[t]=o,i+=1)})),i>0){var o=Object.keys(r),u=s.default.find(o,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=s.default.find(o,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(a>0){var l=Object.keys(n),b=s.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==b)return this.compareVersion(n[b])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),n=s.default.getBrowserTypeByAlias(i);return t&&n&&(i=n.toLowerCase()),i===r},t.compareVersion=function(e){var t=[0],r=e,i=!1,n=this.getBrowserVersion();if(\"string\"==typeof n)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(i=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(s.default.compareVersions(n,r,i))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i};var a=/version\\/(\\d+(\\.?_?\\d+)+)/i,o=[{test:[/gptbot/i],describe:function(e){var t={name:\"GPTBot\"},r=n.default.getFirstMatch(/gptbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/chatgpt-user/i],describe:function(e){var t={name:\"ChatGPT-User\"},r=n.default.getFirstMatch(/chatgpt-user\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/oai-searchbot/i],describe:function(e){var t={name:\"OAI-SearchBot\"},r=n.default.getFirstMatch(/oai-searchbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(e){var t={name:\"ClaudeBot\"},r=n.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(e){var t={name:\"Omgilibot\"},r=n.default.getFirstMatch(/(?:omgilibot|webzio-extended)\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/diffbot/i],describe:function(e){var t={name:\"Diffbot\"},r=n.default.getFirstMatch(/diffbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/perplexitybot/i],describe:function(e){var t={name:\"PerplexityBot\"},r=n.default.getFirstMatch(/perplexitybot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/perplexity-user/i],describe:function(e){var t={name:\"Perplexity-User\"},r=n.default.getFirstMatch(/perplexity-user\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/youbot/i],describe:function(e){var t={name:\"YouBot\"},r=n.default.getFirstMatch(/youbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-webindexer/i],describe:function(e){var t={name:\"Meta-WebIndexer\"},r=n.default.getFirstMatch(/meta-webindexer\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalads/i],describe:function(e){var t={name:\"Meta-ExternalAds\"},r=n.default.getFirstMatch(/meta-externalads\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalagent/i],describe:function(e){var t={name:\"Meta-ExternalAgent\"},r=n.default.getFirstMatch(/meta-externalagent\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalfetcher/i],describe:function(e){var t={name:\"Meta-ExternalFetcher\"},r=n.default.getFirstMatch(/meta-externalfetcher\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=n.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/amazonbot/i],describe:function(e){var t={name:\"AmazonBot\"},r=n.default.getFirstMatch(/amazonbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/bingbot/i],describe:function(e){var t={name:\"BingCrawler\"},r=n.default.getFirstMatch(/bingbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/baiduspider/i],describe:function(e){var t={name:\"BaiduSpider\"},r=n.default.getFirstMatch(/baiduspider\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/duckduckbot/i],describe:function(e){var t={name:\"DuckDuckBot\"},r=n.default.getFirstMatch(/duckduckbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/ia_archiver/i],describe:function(e){var t={name:\"InternetArchiveCrawler\"},r=n.default.getFirstMatch(/ia_archiver\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{name:\"FacebookExternalHit\"}}},{test:[/yahoo!?[\\s/]*slurp/i],describe:function(){return{name:\"YahooSlurp\"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{name:\"YandexBot\"}}},{test:[/pingdom/i],describe:function(){return{name:\"PingdomBot\"}}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/PaleMoon/i],describe:function(e){var t={name:\"Pale Moon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:PaleMoon)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=n.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=n.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=n.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=n.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=n.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=n.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=n.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=n.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=n.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=n.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=n.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=n.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=n.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=n.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=n.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=n.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/librewolf/i],describe:function(e){var t={name:\"LibreWolf\"},r=n.default.getFirstMatch(/(?:librewolf)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=n.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sogoumobilebrowser/i,/metasr/i,/se 2\\.[x]/i],describe:function(e){var t={name:\"Sogou Browser\"},r=n.default.getFirstMatch(/(?:sogoumobilebrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e),i=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e),a=n.default.getFirstMatch(/se ([\\d.]+)x/i,e),o=r||i||a;return o&&(t.version=o),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=n.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=n.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=n.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:n.default.getFirstMatch(t,e),version:n.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:[/Roku\\/DVP/],describe:function(e){var t=n.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:a.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=n.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=n.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=n.default.getWindowsVersionName(t);return{name:a.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:a.OS_MAP.iOS},r=n.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=n.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=n.default.getMacOSVersionName(t),i={name:a.OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=n.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:a.OS_MAP.iOS,version:t}}},{test:[/OpenHarmony/i],describe:function(e){var t=n.default.getFirstMatch(/OpenHarmony\\s+(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.HarmonyOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=n.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=n.default.getAndroidVersionName(t),i={name:a.OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=n.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:a.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=n.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||n.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||n.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:a.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=n.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=n.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:a.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:a.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=n.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:[/googlebot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Google\"}}},{test:[/amazonbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Amazon\"}}},{test:[/gptbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/chatgpt-user/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/oai-searchbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/baiduspider/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Baidu\"}}},{test:[/bingbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Bing\"}}},{test:[/duckduckbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"DuckDuckGo\"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Anthropic\"}}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Webz.io\"}}},{test:[/diffbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Diffbot\"}}},{test:[/perplexitybot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Perplexity AI\"}}},{test:[/perplexity-user/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Perplexity AI\"}}},{test:[/youbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"You.com\"}}},{test:[/ia_archiver/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Internet Archive\"}}},{test:[/meta-webindexer/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalads/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalagent/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalfetcher/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/yahoo/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Yahoo\"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Yandex\"}}},{test:[/pingdom/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Pingdom\"}}},{test:[/huawei/i],describe:function(e){var t=n.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:a.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=n.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:a.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/Nokia/i],describe:function(e){var t=n.default.getFirstMatch(/Nokia\\s+([0-9]+(\\.[0-9]+)?)/i,e),r={type:a.PLATFORMS_MAP.mobile,vendor:\"Nokia\"};return t&&(r.model=t),r}},{test:[/[^-]mobi/i],describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:a.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:a.ENGINE_MAP.Blink};var t=n.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:a.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:a.ENGINE_MAP.Trident},r=n.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:a.ENGINE_MAP.Presto},r=n.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:a.ENGINE_MAP.Gecko},r=n.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:a.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:a.ENGINE_MAP.WebKit},r=n.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}})}));","import Bowser from 'bowser';\r\n\r\n/**\r\n * 获取浏览器名称和版本等设备信息\r\n */\r\nexport function getBrowserNameVersion() {\r\n const { browser, os, platform } = Bowser.parse(window.navigator.userAgent);\r\n return {\r\n browser,\r\n os,\r\n platform,\r\n ratio: getRatio(),\r\n wh: getWH(),\r\n };\r\n}\r\n\r\n/**\r\n * 获取屏幕缩放比例\r\n */\r\nfunction getRatio() {\r\n let ratio = 0;\r\n const screen: any = window.screen;\r\n const ua = navigator.userAgent.toLowerCase();\r\n if (window.devicePixelRatio !== undefined) {\r\n ratio = window.devicePixelRatio;\r\n } else if (~ua.indexOf('msie')) {\r\n if (screen.deviceXDPI && screen.logicalXDPI) {\r\n ratio = screen.deviceXDPI / screen.logicalXDPI;\r\n }\r\n } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {\r\n ratio = window.outerWidth / window.innerWidth;\r\n }\r\n\r\n if (ratio) {\r\n ratio = Math.round(ratio * 100);\r\n }\r\n return ratio;\r\n}\r\n\r\n/**\r\n * 获取浏览器屏幕宽高\r\n */\r\nfunction getWH() {\r\n return {\r\n width: window.screen.width,\r\n height: window.screen.height,\r\n };\r\n}\r\n\r\n/**\r\n * 异步执行 / 空闲时刻 / 每帧回调\r\n */\r\nexport const nextTime =\r\n window.requestIdleCallback || window.requestAnimationFrame || ((callback) => window.setTimeout(callback, 1000 / 60));\r\n\r\n/**\r\n * 页面卸载前的回调\r\n */\r\nexport const beforeUnload = (callback: () => void) => {\r\n window.addEventListener('beforeunload', () => {\r\n callback();\r\n });\r\n};\r\n","import { nanoid } from 'nanoid';\r\nimport { getBrowserNameVersion } from '../utils';\r\nimport type { Device } from '../types/index';\r\nimport { UUID } from '../constant';\r\n\r\n//基本信息\r\nexport default class DeviceInfo {\r\n device: Device;\r\n uuid: string = '';\r\n\r\n constructor(uuidKey: string = UUID) {\r\n //设备信息\r\n this.device = getBrowserNameVersion();\r\n this.getUUid(uuidKey);\r\n }\r\n\r\n private getUUid(key: string) {\r\n try {\r\n const uuid = localStorage.getItem(key);\r\n if (uuid) {\r\n this.uuid = uuid;\r\n } else {\r\n this.uuid = nanoid();\r\n localStorage.setItem(key, this.uuid);\r\n }\r\n } catch (e) {\r\n // 降级处理:如果 localStorage 不可用(如隐身模式),仅在内存中生成 UUID\r\n this.uuid = nanoid();\r\n console.warn('[CWJ Monitor] localStorage access failed, UUID will not be persisted:', e);\r\n }\r\n }\r\n}\r\n","/**\r\n * 事件发送前的最大缓存数\r\n */\r\nexport const MAX_CACHE_LEN = 5;\r\n\r\n/**\r\n * 发送缓存事件前的最大等待时间(毫秒)\r\n */\r\nexport const MAX_WAITING_TIME = 30000;\r\n\r\n/**\r\n * 存储的用户UUID\r\n */\r\nexport const UUID = 'track_uuid';\r\n\r\n/**\r\n * 默认资源加载阈值 (ms)\r\n */\r\nexport const DEFAULT_RESOURCE_THRESHOLD = 1000;\r\n\r\n/**\r\n * 默认 LoAF 阈值 (ms)\r\n */\r\nexport const DEFAULT_LOAF_THRESHOLD = 50;\r\n","import DeviceInfo from './deviceInfo';\r\nimport { getDate } from '../utils';\r\nimport type { Options, MonitoringPayload } from '../types/index';\r\nimport { EMIT_TYPE } from '../types/event';\r\nimport Reporter from './reporter';\r\n\r\n/**\r\n * EventTrack 类处理事件收集和转换\r\n * 职责:\r\n * 1. 管理设备信息 (DeviceInfo)\r\n * 2. 格式化原始数据为 MonitoringPayload\r\n * 3. 将格式化后的数据交给 Reporter 发送\r\n */\r\nexport default class EventTrack {\r\n private deviceInfo: DeviceInfo;\r\n private reporter: Reporter;\r\n private data?: Record<string, any>;\r\n\r\n constructor(options: Options, reporter: Reporter) {\r\n this.deviceInfo = new DeviceInfo(options.uuidKey);\r\n this.reporter = reporter;\r\n this.data = options.data;\r\n }\r\n\r\n /**\r\n * 格式化事件数据用于传输\r\n */\r\n private formatter(type: EMIT_TYPE | string, data: any): MonitoringPayload {\r\n const timestamp = Date.now();\r\n return {\r\n device: this.deviceInfo.device,\r\n uuid: this.deviceInfo.uuid,\r\n type,\r\n data,\r\n date: getDate(timestamp),\r\n userData: this.data,\r\n };\r\n }\r\n\r\n /**\r\n * 公共方法:发送事件\r\n * 将事件格式化后交给 reporter 处理\r\n */\r\n public emit(type: EMIT_TYPE | string, data?: any): void {\r\n const payload = this.formatter(type, data);\r\n this.reporter.send(payload);\r\n }\r\n\r\n /**\r\n * 获取上报器实例 (供 Core 使用)\r\n */\r\n public getReporter(): Reporter {\r\n return this.reporter;\r\n }\r\n}\r\n","import { MAX_CACHE_LEN, MAX_WAITING_TIME } from '../constant';\r\nimport { nextTime, beforeUnload } from '../utils';\r\nimport type { MonitoringPayload, TransportConfig } from '../types/index';\r\n\r\n/**\r\n * Reporter 类负责数据的批量上报、重试和调度\r\n */\r\nexport default class Reporter {\r\n private url: string;\r\n private transportConfig: Required<TransportConfig>;\r\n private events: MonitoringPayload[] = [];\r\n private isSending = false;\r\n private timer: ReturnType<typeof setTimeout> | null = null;\r\n\r\n constructor(url: string, config?: TransportConfig) {\r\n this.url = url;\r\n this.transportConfig = {\r\n maxBatchSize: config?.maxBatchSize ?? MAX_CACHE_LEN,\r\n maxWaitTime: config?.maxWaitTime ?? MAX_WAITING_TIME,\r\n };\r\n\r\n // 页面卸载前刷新事件\r\n beforeUnload(() => this.flush());\r\n }\r\n\r\n /**\r\n * 将事件加入队列\r\n */\r\n public send(payload: MonitoringPayload) {\r\n this.events.push(payload);\r\n\r\n // 达到最大批处理大小时立即发送,否则通过定时器发送\r\n if (this.events.length >= this.transportConfig.maxBatchSize) {\r\n this.clearTimer();\r\n this.triggerSend();\r\n } else if (!this.timer) {\r\n this.timer = setTimeout(() => {\r\n this.timer = null;\r\n this.triggerSend();\r\n }, this.transportConfig.maxWaitTime);\r\n }\r\n }\r\n\r\n /**\r\n * 立即刷新所有待发送事件\r\n */\r\n public flush(): Promise<void> {\r\n return this.triggerSend(true);\r\n }\r\n\r\n private clearTimer() {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n this.timer = null;\r\n }\r\n }\r\n\r\n /**\r\n * 触发发送逻辑\r\n */\r\n private async triggerSend(isFlush = false): Promise<void> {\r\n if (this.isSending || !this.events.length) return;\r\n\r\n this.isSending = true;\r\n\r\n try {\r\n const maxLen = isFlush ? this.events.length : this.transportConfig.maxBatchSize;\r\n const sendEvents = this.events.slice(0, maxLen);\r\n this.events = this.events.slice(maxLen);\r\n\r\n await this.safeSend(sendEvents);\r\n\r\n // 如果还有剩余事件,调度下次发送\r\n if (this.events.length) {\r\n nextTime(() => this.triggerSend());\r\n }\r\n } catch (error) {\r\n // 失败处理逻辑,目前简单忽略\r\n } finally {\r\n this.isSending = false;\r\n }\r\n }\r\n\r\n /**\r\n * 使用 navigator.sendBeacon 或 XMLHttpRequest 安全发送事件\r\n */\r\n private safeSend(events: MonitoringPayload[]): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!events.length) {\r\n resolve();\r\n return;\r\n }\r\n\r\n const data = JSON.stringify(events);\r\n\r\n // 优先尝试 sendBeacon(更适合页面卸载)\r\n if (typeof navigator.sendBeacon === 'function') {\r\n const blob = new Blob([data], { type: 'application/json' });\r\n const success = navigator.sendBeacon(this.url, blob);\r\n\r\n if (success) {\r\n resolve();\r\n } else {\r\n this.sendViaXHR(data, resolve, reject);\r\n }\r\n } else {\r\n // 降级到 XMLHttpRequest\r\n this.sendViaXHR(data, resolve, reject);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 通过 XMLHttpRequest 发送\r\n */\r\n private sendViaXHR(data: string, resolve: () => void, reject: (error: Error) => void): void {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open('POST', this.url, true);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve();\r\n } else {\r\n reject(new Error(`HTTP ${xhr.status}: ${xhr.statusText}`));\r\n }\r\n };\r\n\r\n xhr.onerror = () => reject(new Error('Network error'));\r\n xhr.ontimeout = () => reject(new Error('Request timeout'));\r\n\r\n xhr.timeout = 10000;\r\n xhr.send(data);\r\n }\r\n}\r\n","/**\r\n * 插件类型标识符\r\n * 用于插件注册和配置\r\n */\r\nexport enum TYPES {\r\n ERROR = 'error',\r\n CLICK = 'click',\r\n PERFORMANCE = 'performance',\r\n ROUTER = 'router',\r\n XHR = 'xhr',\r\n FETCH = 'fetch',\r\n}\r\n\r\n/**\r\n * 事件发送类型标识符\r\n * 用于向追踪系统发送事件时使用\r\n */\r\nexport enum EMIT_TYPE {\r\n // 错误事件\r\n ERROR = 'error',\r\n\r\n // 行为事件\r\n BEHAVIOR_CLICK = 'click',\r\n ROUTE_CHANGE = 'route_change',\r\n\r\n // 性能事件 - Core Web Vitals\r\n PERFORMANCE_FP = 'performance_fp',\r\n PERFORMANCE_FCP = 'performance_fcp',\r\n PERFORMANCE_LCP = 'performance_lcp',\r\n PERFORMANCE_INP = 'performance_inp',\r\n PERFORMANCE_LONGTASK = 'performance_longtask',\r\n PERFORMANCE_RESOURCE = 'performance_resource',\r\n PERFORMANCE_LOAF = 'performance_loaf',\r\n\r\n // XHR 事件\r\n XHR = 'xhr',\r\n FETCH = 'fetch',\r\n\r\n // 自定义事件\r\n CUSTOM = 'custom',\r\n}\r\n","import EventTrack from './eventTrack';\r\nimport Reporter from './reporter';\r\nimport type { Options } from '../types/index';\r\nimport type { IPlugin } from '../plugin/definePlugin';\r\nimport { EMIT_TYPE } from '../types/event';\r\n\r\nexport default class Core extends EventTrack {\r\n private pluginMap: Map<string, IPlugin> = new Map();\r\n private options: Options;\r\n\r\n constructor(options: Options) {\r\n const reporter = new Reporter(options.url, options.transport);\r\n super(options, reporter);\r\n this.options = options;\r\n }\r\n\r\n use(plugin: IPlugin): Core {\r\n if (!this.pluginMap.has(plugin.name)) {\r\n this.pluginMap.set(plugin.name, plugin);\r\n }\r\n return this; // 方便链式调用\r\n }\r\n\r\n /**\r\n * 自定义事件上报\r\n * @param data 上报的数据\r\n * @param type 事件类型,默认为 'custom'\r\n */\r\n log(data: any, type: string = EMIT_TYPE.CUSTOM): void {\r\n this.emit(type, data);\r\n }\r\n\r\n // 启动插件\r\n run() {\r\n const context = {\r\n emit: this.emit.bind(this),\r\n url: this.options.url,\r\n };\r\n\r\n this.pluginMap.forEach((plugin) => {\r\n plugin.install(context);\r\n });\r\n\r\n // 挂载全局变量\r\n this.mount();\r\n }\r\n\r\n // 停止并卸载所有插件\r\n stop() {\r\n this.pluginMap.forEach((plugin) => {\r\n plugin.uninstall?.();\r\n });\r\n this.pluginMap.clear();\r\n\r\n // 卸载全局变量\r\n this.unmount();\r\n }\r\n\r\n private mount() {\r\n const { globalKey = '$track' } = this.options;\r\n if (typeof window !== 'undefined') {\r\n (window as any)[globalKey] = this;\r\n }\r\n }\r\n\r\n private unmount() {\r\n const { globalKey = '$track' } = this.options;\r\n if (typeof window !== 'undefined' && (window as any)[globalKey] === this) {\r\n delete (window as any)[globalKey];\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 创建监控实例的工厂函数\r\n * @param options 配置项\r\n */\r\nexport function createMonitor(options: Options): Core {\r\n return new Core(options);\r\n}\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\n\r\nexport interface ErrorOptions {\r\n /** 过滤函数,返回 false 则不记录该错误 */\r\n filter?: (error: any) => boolean;\r\n}\r\n\r\n/**\r\n * 错误监控插件\r\n * 监控并捕获 JavaScript 错误、资源加载错误、Promise 拒绝以及 console.error 调用\r\n */\r\nexport const ErrorPlugin = (options: ErrorOptions = {}): IPlugin => {\r\n let originalConsoleError: (...data: any[]) => void;\r\n let context: PluginContext;\r\n\r\n /**\r\n * 重写 console.error 以捕获错误日志\r\n */\r\n const overrideConsoleError = () => {\r\n originalConsoleError = console.error;\r\n\r\n console.error = (...args: any[]) => {\r\n // 调用原始的 console.error\r\n originalConsoleError?.apply(console, args);\r\n\r\n // 捕获错误信息\r\n const errorData = {\r\n type: 'console',\r\n message: args.map((arg) => String(arg)).join(' '),\r\n stack: new Error().stack,\r\n };\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(errorData)) {\r\n return;\r\n }\r\n\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n };\r\n\r\n /**\r\n * 恢复 console.error\r\n */\r\n const restoreConsoleError = () => {\r\n if (originalConsoleError) {\r\n console.error = originalConsoleError;\r\n }\r\n };\r\n\r\n /**\r\n * 清理并限制堆栈追踪深度\r\n */\r\n const cleanStack = (stack?: string): string | undefined => {\r\n if (!stack) return undefined;\r\n const lines = stack.split('\\n').slice(0, 11);\r\n return lines.join('\\n');\r\n };\r\n\r\n /**\r\n * 用于生成指纹的简单哈希函数\r\n */\r\n const simpleHash = (str: string): string => {\r\n let hash = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const char = str.charCodeAt(i);\r\n hash = (hash << 5) - hash + char;\r\n hash = hash & hash; // 转换为 32 位整数\r\n }\r\n return Math.abs(hash).toString(36);\r\n };\r\n\r\n /**\r\n * 生成错误指纹以对相似错误进行分组\r\n */\r\n const generateFingerprint = (...parts: (string | undefined)[]): string => {\r\n const combined = parts.filter(Boolean).join('|');\r\n return simpleHash(combined);\r\n };\r\n\r\n /**\r\n * 检查错误是否为资源加载错误\r\n */\r\n const isResourceError = (target: any): boolean => {\r\n const resourceTags = ['LINK', 'SCRIPT', 'IMG', 'AUDIO', 'VIDEO', 'IFRAME'];\r\n return target && resourceTags.includes(target.tagName);\r\n };\r\n\r\n /**\r\n * 从 Promise 拒绝中提取错误详情\r\n */\r\n const getPromiseErrorDetails = (e: PromiseRejectionEvent) => {\r\n if (e.reason instanceof Error) {\r\n return {\r\n errorType: 'promise',\r\n message: e.reason.message,\r\n stack: cleanStack(e.reason.stack),\r\n name: e.reason.name,\r\n fingerprint: generateFingerprint(e.reason.message, e.reason.stack),\r\n };\r\n }\r\n return {\r\n errorType: 'promise',\r\n message: String(e.reason),\r\n };\r\n };\r\n\r\n /**\r\n * 从 ErrorEvent 中提取错误详情\r\n */\r\n const getErrorDetails = (e: ErrorEvent) => {\r\n const { error, target, filename, message } = e;\r\n if (error instanceof Error) {\r\n return {\r\n errorType: 'js',\r\n name: error.name,\r\n message: error.message,\r\n stack: cleanStack(error.stack),\r\n filename,\r\n colno: e.colno,\r\n lineno: e.lineno,\r\n fingerprint: generateFingerprint(error.message, error.stack),\r\n };\r\n }\r\n if (isResourceError(target)) {\r\n const element = target as HTMLImageElement | HTMLScriptElement | HTMLLinkElement;\r\n const url = 'src' in element ? element.src : element.href;\r\n return {\r\n errorType: 'resource',\r\n message: `Resource load failed: ${url}`,\r\n url,\r\n tagName: element.tagName,\r\n fingerprint: generateFingerprint(`resource:${url}`),\r\n };\r\n }\r\n return {\r\n errorType: 'unknown',\r\n message,\r\n filename,\r\n };\r\n };\r\n\r\n const errorHandler = (e: ErrorEvent) => {\r\n const errorData = { type: 'sync', ...getErrorDetails(e) };\r\n if (options.filter && !options.filter(errorData)) return;\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n\r\n const rejectionHandler = (e: PromiseRejectionEvent) => {\r\n const errorData = { type: 'async', ...getPromiseErrorDetails(e) };\r\n if (options.filter && !options.filter(errorData)) return;\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n\r\n return {\r\n name: TYPES.ERROR,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n overrideConsoleError();\r\n window.addEventListener('error', errorHandler, true);\r\n window.addEventListener('unhandledrejection', rejectionHandler, true);\r\n },\r\n uninstall: () => {\r\n restoreConsoleError();\r\n window.removeEventListener('error', errorHandler, true);\r\n window.removeEventListener('unhandledrejection', rejectionHandler, true);\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { getSeconds } from '../utils';\r\n\r\nexport interface PVOptions {\r\n /** 过滤函数,返回 false 则不记录该路由变化 */\r\n filter?: (to: string, from: string) => boolean;\r\n}\r\n\r\nexport const PVPlugin = (options: PVOptions = {}): IPlugin => {\r\n let lastRouteTime: number = Date.now();\r\n let context: PluginContext;\r\n\r\n let originPushState: typeof window.history.pushState;\r\n let originReplaceState: typeof window.history.replaceState;\r\n\r\n const emitRouteChange = (type: string) => {\r\n const now = Date.now();\r\n const to = window.location.href;\r\n const from = document.referrer;\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(to, from)) {\r\n return;\r\n }\r\n\r\n context?.emit(EMIT_TYPE.ROUTE_CHANGE, {\r\n from,\r\n to,\r\n type,\r\n duration: getSeconds(now, lastRouteTime),\r\n });\r\n\r\n lastRouteTime = now;\r\n };\r\n\r\n const handleHashChange = () => emitRouteChange('hashchange');\r\n const handlePopState = () => emitRouteChange('popstate');\r\n\r\n const setupHistoryListener = () => {\r\n originPushState = window.history.pushState;\r\n originReplaceState = window.history.replaceState;\r\n\r\n window.history.pushState = (...args) => {\r\n originPushState.apply(window.history, args);\r\n emitRouteChange('pushState');\r\n };\r\n\r\n window.history.replaceState = (...args) => {\r\n originReplaceState.apply(window.history, args);\r\n emitRouteChange('replaceState');\r\n };\r\n };\r\n\r\n const restoreHistoryListener = () => {\r\n if (originPushState) window.history.pushState = originPushState;\r\n if (originReplaceState) window.history.replaceState = originReplaceState;\r\n };\r\n\r\n return {\r\n name: TYPES.ROUTER,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n lastRouteTime = Date.now();\r\n window.addEventListener('hashchange', handleHashChange);\r\n window.addEventListener('popstate', handlePopState);\r\n setupHistoryListener();\r\n },\r\n uninstall: () => {\r\n window.removeEventListener('hashchange', handleHashChange);\r\n window.removeEventListener('popstate', handlePopState);\r\n restoreHistoryListener();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { throttle } from '../utils';\r\n\r\nexport interface BehaviorOptions {\r\n /** 过滤函数,返回 false 则不记录该点击事件 */\r\n filter?: (element: HTMLElement) => boolean;\r\n /** 节流延迟时间(ms),默认 500ms */\r\n throttleDelay?: number;\r\n}\r\n\r\nexport const BehaviorPlugin = (options: BehaviorOptions = {}): IPlugin => {\r\n const { throttleDelay = 500 } = options;\r\n let context: PluginContext;\r\n\r\n // 获取元素的 XPath\r\n const getElementXPath = (element: HTMLElement): string => {\r\n if (!element || element.nodeType !== 1) return '';\r\n if (element.id) return `//*[@id=\"${element.id}\"]`;\r\n\r\n const sameTagSiblings = Array.from(element.parentNode?.children || []).filter(\r\n (el) => el.tagName === element.tagName,\r\n );\r\n\r\n const idx = sameTagSiblings.indexOf(element) + 1;\r\n return `${getElementXPath(element.parentNode as HTMLElement)}/${element.tagName.toLowerCase()}[${idx}]`;\r\n };\r\n\r\n const handleClick = throttle((e: Event) => {\r\n const target = e.target as HTMLElement;\r\n if (!target) return;\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(target)) {\r\n return;\r\n }\r\n\r\n // 收集点击元素信息\r\n const clickData = {\r\n tagName: target.tagName,\r\n id: target.id,\r\n className: target.className,\r\n text: target.textContent?.trim(),\r\n xPath: getElementXPath(target),\r\n };\r\n\r\n context?.emit(EMIT_TYPE.BEHAVIOR_CLICK, clickData);\r\n }, throttleDelay);\r\n\r\n return {\r\n name: TYPES.CLICK,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n document.addEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);\r\n },\r\n uninstall: () => {\r\n document.removeEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);\r\n },\r\n };\r\n};\r\n","/**\r\n * 节流函数\r\n * @param fn 执行函数\r\n * @param delay 延迟时间(ms)\r\n */\r\nexport function throttle<T extends (...args: any[]) => any>(fn: T, delay: number): (...args: Parameters<T>) => void {\r\n let lastTime = 0;\r\n return function (this: any, ...args: Parameters<T>) {\r\n const now = Date.now();\r\n if (now - lastTime >= delay) {\r\n fn.apply(this, args);\r\n lastTime = now;\r\n }\r\n };\r\n}\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\n\r\nimport { DEFAULT_LOAF_THRESHOLD, DEFAULT_RESOURCE_THRESHOLD } from '../constant';\r\n\r\nexport interface PerformanceOptions {\r\n /** 过滤函数,返回 false 则不记录该性能指标 */\r\n filter?: (type: EMIT_TYPE, value: any) => boolean;\r\n /** 长任务阈值 (ms),超过此值则上报,默认 100 */\r\n longTaskThreshold?: number;\r\n /** 资源加载阈值 (ms),超过此值则上报,默认 1000 */\r\n resourceThreshold?: number;\r\n /** INP 阈值 (ms),超过此值则上报,默认 200 */\r\n inpThreshold?: number;\r\n /** LoAF 阈值 (ms),超过此值则上报,默认 100 */\r\n loafThreshold?: number;\r\n}\r\n\r\nexport const PerformancePlugin = (options: PerformanceOptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let paintObserver: PerformanceObserver | null = null;\r\n let lcpObserver: PerformanceObserver | null = null;\r\n let resourceObserver: PerformanceObserver | null = null;\r\n let loafObserver: PerformanceObserver | null = null;\r\n\r\n const monitorPaintMetrics = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n if (entry.name === 'first-paint') {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_FP, entry.startTime);\r\n } else if (entry.name === 'first-contentful-paint') {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime);\r\n }\r\n }\r\n paintObserver?.disconnect();\r\n };\r\n\r\n try {\r\n paintObserver = new PerformanceObserver(entryHandler);\r\n paintObserver.observe({ type: 'paint', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Paint observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLCP = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n if (lcpObserver) {\r\n lcpObserver.disconnect();\r\n }\r\n\r\n for (const entry of list.getEntries()) {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime);\r\n }\r\n };\r\n\r\n try {\r\n lcpObserver = new PerformanceObserver(entryHandler);\r\n lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] LCP observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLoAF = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LOAF, entry)) {\r\n continue;\r\n }\r\n\r\n const threshold = options.loafThreshold ?? DEFAULT_LOAF_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LOAF, {\r\n duration: entry.duration,\r\n startTime: entry.startTime,\r\n renderStart: entry.renderStart,\r\n styleAndLayoutStart: entry.styleAndLayoutStart,\r\n hadRecentInput: entry.hadRecentInput,\r\n scripts: entry.scripts.map((s: any) => ({\r\n duration: s.duration,\r\n invoker: s.invoker,\r\n invokerType: s.invokerType,\r\n sourceURL: s.sourceURL,\r\n functionName: s.functionName,\r\n startTime: s.startTime,\r\n })),\r\n });\r\n }\r\n }\r\n };\r\n\r\n try {\r\n loafObserver = new PerformanceObserver(entryHandler);\r\n loafObserver.observe({ type: 'long-animation-frame', buffered: true } as any);\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] LoAF observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorResource = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n // 只监听 fetch 与 xmlhttprequest\r\n if (entry.initiatorType !== 'fetch' && entry.initiatorType !== 'xmlhttprequest') {\r\n continue;\r\n }\r\n\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_RESOURCE, entry)) {\r\n continue;\r\n }\r\n\r\n // 资源加载时间超过阈值,上报\r\n const threshold = options.resourceThreshold ?? DEFAULT_RESOURCE_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_RESOURCE, {\r\n name: entry.name, // 资源 URL\r\n initiatorType: entry.initiatorType,\r\n duration: entry.duration,\r\n startTime: entry.startTime,\r\n transferSize: entry.transferSize,\r\n encodedBodySize: entry.encodedBodySize,\r\n decodedBodySize: entry.decodedBodySize,\r\n });\r\n }\r\n }\r\n };\r\n\r\n try {\r\n resourceObserver = new PerformanceObserver(entryHandler);\r\n resourceObserver.observe({ type: 'resource', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Resource observation not supported:', e);\r\n }\r\n };\r\n\r\n return {\r\n name: TYPES.PERFORMANCE,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n monitorPaintMetrics();\r\n monitorLCP();\r\n monitorResource();\r\n monitorLoAF();\r\n },\r\n uninstall: () => {\r\n paintObserver?.disconnect();\r\n lcpObserver?.disconnect();\r\n resourceObserver?.disconnect();\r\n loafObserver?.disconnect();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { TYPES, EMIT_TYPE } from '../types/event';\r\n\r\n// 扩展 XMLHttpRequest 接口以包含自定义属性\r\ninterface CustomXMLHttpRequest extends XMLHttpRequest {\r\n _xhr_info?: {\r\n method: string;\r\n url: string;\r\n startTime: number;\r\n };\r\n}\r\n\r\ntype OpenArgs = Parameters<typeof window.XMLHttpRequest.prototype.open>;\r\ntype SendArgs = Parameters<typeof window.XMLHttpRequest.prototype.send>;\r\n\r\nexport interface XHROptions {\r\n /** 过滤函数,返回 false 则不记录该请求 */\r\n filter?: (method: string, url: string) => boolean;\r\n}\r\n\r\n/**\r\n * XHR 监控插件\r\n * 监控 XMLHttpRequest 请求,记录失败的请求(状态码非 2xx)\r\n */\r\nexport const XHRPlugin = (options: XHROptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let originOpen: typeof XMLHttpRequest.prototype.open;\r\n let originSend: typeof XMLHttpRequest.prototype.send;\r\n\r\n const setupXHRListeners = () => {\r\n const originXhr = window.XMLHttpRequest;\r\n if (!originXhr) return;\r\n\r\n originOpen = originXhr.prototype.open;\r\n originSend = originXhr.prototype.send;\r\n\r\n // 重写 open 方法\r\n originXhr.prototype.open = function <T extends OpenArgs>(this: CustomXMLHttpRequest, ...args: T) {\r\n this._xhr_info = {\r\n method: args[0].toUpperCase(),\r\n url: String(args[1]),\r\n startTime: 0,\r\n };\r\n return originOpen.apply(this, args);\r\n };\r\n\r\n // 重写 send 方法\r\n originXhr.prototype.send = function <T extends SendArgs>(this: CustomXMLHttpRequest, ...args: T) {\r\n if (this._xhr_info) {\r\n this._xhr_info.startTime = Date.now();\r\n }\r\n\r\n const onLoadend = () => {\r\n if (this._xhr_info) {\r\n // 防止死循环:忽略发送到监控后台的请求\r\n const trackerUrl = context?.url;\r\n const { url, method, startTime } = this._xhr_info;\r\n\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n return;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n return;\r\n }\r\n\r\n const duration = Date.now() - startTime;\r\n const status = this.status;\r\n\r\n // 监听HTTP层面 状态码不是200~299的错误\r\n if (!(status >= 200 && status < 300)) {\r\n const data = {\r\n method,\r\n url,\r\n status,\r\n duration,\r\n // 限制响应体大小,避免数据过大\r\n response: this.response ? String(this.response).slice(0, 200) : '',\r\n };\r\n\r\n context?.emit(EMIT_TYPE.XHR, data);\r\n }\r\n }\r\n };\r\n\r\n this.addEventListener('loadend', onLoadend);\r\n return originSend.apply(this, args);\r\n };\r\n };\r\n\r\n const restoreXHR = () => {\r\n const originXhr = window.XMLHttpRequest;\r\n if (!originXhr) return;\r\n if (originOpen) originXhr.prototype.open = originOpen;\r\n if (originSend) originXhr.prototype.send = originSend;\r\n };\r\n\r\n return {\r\n name: TYPES.XHR,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n setupXHRListeners();\r\n },\r\n uninstall: () => {\r\n restoreXHR();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { TYPES, EMIT_TYPE } from '../types/event';\r\n\r\nexport interface FetchOptions {\r\n /** 过滤函数,返回 false 则不记录该请求 */\r\n filter?: (method: string, url: string) => boolean;\r\n}\r\n\r\n/**\r\n * Fetch 监控插件\r\n * 监控 fetch 请求,记录失败的请求(状态码非 2xx 或网络错误)\r\n */\r\nexport const FetchPlugin = (options: FetchOptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let originFetch: typeof window.fetch;\r\n\r\n const setupFetchListeners = () => {\r\n originFetch = window.fetch;\r\n if (!originFetch) return;\r\n\r\n window.fetch = function (input: RequestInfo | URL, init?: RequestInit) {\r\n const startTime = Date.now();\r\n const method = (init?.method || 'GET').toUpperCase();\r\n const url = input instanceof Request ? input.url : String(input);\r\n\r\n return originFetch.apply(this, [input, init]).then(\r\n (response) => {\r\n const trackerUrl = context?.url;\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n return response;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n return response;\r\n }\r\n\r\n if (!response.ok) {\r\n const duration = Date.now() - startTime;\r\n const data = {\r\n method,\r\n url,\r\n status: response.status,\r\n duration,\r\n success: false,\r\n };\r\n context?.emit(EMIT_TYPE.FETCH, data);\r\n }\r\n return response;\r\n },\r\n (error) => {\r\n const trackerUrl = context?.url;\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n throw error;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n throw error;\r\n }\r\n\r\n const duration = Date.now() - startTime;\r\n const data = {\r\n method,\r\n url,\r\n status: 0,\r\n duration,\r\n success: false,\r\n message: error.message,\r\n };\r\n context?.emit(EMIT_TYPE.FETCH, data);\r\n throw error;\r\n },\r\n );\r\n };\r\n };\r\n\r\n const restoreFetch = () => {\r\n if (originFetch) window.fetch = originFetch;\r\n };\r\n\r\n return {\r\n name: TYPES.FETCH,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n setupFetchListeners();\r\n },\r\n uninstall: () => {\r\n restoreFetch();\r\n },\r\n };\r\n};\r\n"],"names":["nanoid","size","id","bytes","crypto","getRandomValues","Uint8Array","getDate","time","Date","now","date","year","getFullYear","month","getMonth","day","hour","getHours","minute","getMinutes","second","getSeconds","formatter","res","toString","exports","e","t","r","i","n","l","call","m","c","d","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","getFirstMatch","match","length","getSecondMatch","matchAndReturnConst","test","getWindowsVersionName","getMacOSVersionName","split","splice","map","parseInt","push","getAndroidVersionName","getVersionPrecision","compareVersions","a","Math","max","u","Array","join","reverse","min","find","assign","arguments","apply","concat","keys","forEach","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","AmazonBot","BaiduSpider","Bada","BingCrawler","BlackBerry","Chrome","ClaudeBot","Chromium","Diffbot","DuckDuckBot","Electron","Epiphany","FacebookExternalHit","Firefox","Focus","Generic","Googlebot","GPTBot","InternetArchiveCrawler","LibreWolf","Maxthon","Omgilibot","Opera","PerplexityBot","PhantomJS","PingdomBot","Puffin","QQ","QQLite","QupZilla","Roku","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","YahooSlurp","YandexBot","YouBot","amazonbot","amazon_silk","android","baiduspider","bada","bingcrawler","blackberry","chatgpt_user","chrome","claudebot","chromium","diffbot","duckduckbot","edge","electron","epiphany","facebookexternalhit","firefox","focus","generic","google_search","googlebot","gptbot","ie","internetarchivecrawler","k_meleon","librewolf","maxthon","meta_externalads","meta_externalagent","meta_externalfetcher","meta_webindexer","mz","naver","oai_searchbot","omgilibot","opera","opera_coast","pale_moon","perplexitybot","perplexity_user","phantomjs","pingdombot","puffin","qq","qqlite","qupzilla","roku","safari","sailfish","samsung_internet","seamonkey","sleipnir","sogou","swing","tizen","uc","vivaldi","webos","wechat","yahooslurp","yandex","yandexbot","youbot","bot","desktop","mobile","tablet","tv","Android","ChromeOS","HarmonyOS","iOS","Linux","MacOS","PlayStation4","WebOS","Windows","WindowsPhone","Blink","EdgeHTML","Gecko","Presto","Trident","WebKit","configurable","writable","key","getParser","Error","parse","getResult","this","_ua","parsedResult","getUA","parseBrowser","browser","isArray","some","describe","getBrowser","getBrowserName","String","name","toLowerCase","getBrowserVersion","version","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","platform","parsePlatform","getPlatformType","type","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","f","b","isBrowser","compareVersion","substr","indexOf","isEngine","is","search","versionName","replace","vendor","model","Number","getRatio","ratio","screen","window","ua","navigator","userAgent","devicePixelRatio","deviceXDPI","logicalXDPI","outerWidth","innerWidth","round","nextTime","requestIdleCallback","requestAnimationFrame","callback","setTimeout","DeviceInfo","constructor","uuidKey","__publicField","device","Bowser","wh","width","height","getBrowserNameVersion","getUUid","uuid","localStorage","getItem","setItem","console","warn","EventTrack","options","reporter","deviceInfo","data","timestamp","userData","emit","payload","send","getReporter","Reporter","url","config","transportConfig","maxBatchSize","maxWaitTime","flush","addEventListener","events","clearTimer","triggerSend","timer","clearTimeout","isFlush","isSending","maxLen","sendEvents","slice","safeSend","error","Promise","resolve","reject","JSON","stringify","sendBeacon","blob","Blob","sendViaXHR","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","statusText","onerror","ontimeout","timeout","TYPES","EMIT_TYPE","Core","super","transport","Map","use","plugin","pluginMap","has","set","log","CUSTOM","run","context","install","mount","stop","uninstall","clear","unmount","globalKey","createMonitor","ErrorPlugin","originalConsoleError","cleanStack","stack","generateFingerprint","parts","str","hash","charCodeAt","abs","simpleHash","filter","Boolean","getPromiseErrorDetails","reason","errorType","message","fingerprint","getErrorDetails","target","filename","colno","lineno","includes","tagName","isResourceError","element","src","href","errorHandler","errorData","ERROR","rejectionHandler","ctx","args","arg","removeEventListener","PVPlugin","originPushState","originReplaceState","lastRouteTime","emitRouteChange","to","location","from","document","referrer","timestamp1","timestamp2","ROUTE_CHANGE","duration","floor","handleHashChange","handlePopState","ROUTER","history","pushState","replaceState","BehaviorPlugin","throttleDelay","getElementXPath","nodeType","idx","parentNode","children","el","handleClick","fn","delay","lastTime","throttle","clickData","className","text","textContent","trim","xPath","BEHAVIOR_CLICK","CLICK","PerformancePlugin","paintObserver","lcpObserver","resourceObserver","loafObserver","PERFORMANCE","entryHandler","list","entry","getEntries","PERFORMANCE_FP","startTime","PERFORMANCE_FCP","disconnect","PerformanceObserver","observe","buffered","monitorPaintMetrics","PERFORMANCE_LCP","monitorLCP","initiatorType","PERFORMANCE_RESOURCE","threshold","resourceThreshold","transferSize","encodedBodySize","decodedBodySize","monitorResource","PERFORMANCE_LOAF","loafThreshold","renderStart","styleAndLayoutStart","hadRecentInput","scripts","invoker","invokerType","sourceURL","functionName","monitorLoAF","XHRPlugin","originOpen","originSend","setupXHRListeners","originXhr","_xhr_info","method","toUpperCase","trackerUrl","response","XHR","restoreXHR","FetchPlugin","originFetch","setupFetchListeners","fetch","input","init","Request","then","ok","success","FETCH"],"mappings":"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","x_google_ignoreList":[0,1,3]}
1
+ {"version":3,"file":"index.min.js","sources":["../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/index.browser.js","../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/url-alphabet/index.js","../src/utils/date.ts","../node_modules/.pnpm/bowser@2.13.1/node_modules/bowser/es5.js","../src/utils/browser.ts","../src/utils/common.ts","../src/core/deviceInfo.ts","../src/constant.ts","../src/core/eventTrack.ts","../src/core/reporter.ts","../src/types/event.ts","../src/core/index.ts","../src/plugin/error.ts","../src/plugin/pv.ts","../src/plugin/behavior.ts","../src/plugin/performance.ts","../src/plugin/xhr.ts","../src/plugin/fetch.ts"],"sourcesContent":["/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n","/* 将时间戳转为年月日 */\r\nexport const getDate = (time: number = Date.now()) => {\r\n const date = new Date(time);\r\n const year = date.getFullYear();\r\n const month = date.getMonth() + 1; //获取系统月份,由于月份是从0开始计算,所以要加1\r\n const day = date.getDate();\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n const second = date.getSeconds();\r\n\r\n const formatter = (date: number) => {\r\n let res = '';\r\n if (date < 10) {\r\n res = '0' + date;\r\n } else {\r\n res = date.toString();\r\n }\r\n return res;\r\n };\r\n\r\n return (\r\n year +\r\n '-' +\r\n formatter(month) +\r\n '-' +\r\n formatter(day) +\r\n ' ' +\r\n formatter(hour) +\r\n ':' +\r\n formatter(minute) +\r\n ':' +\r\n formatter(second)\r\n );\r\n};\r\n\r\n/* 将两个时间戳转为秒 */\r\nexport const getSeconds = (timestamp1: number, timestamp2: number) => {\r\n if (timestamp1 < timestamp2) {\r\n [timestamp1, timestamp2] = [timestamp2, timestamp1];\r\n }\r\n\r\n return Math.floor((timestamp1 - timestamp2) / 1000);\r\n};\r\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=r(18),n=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));t.push(0);var r=t[0],i=t[1];if(10===r)switch(i){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}switch(r){case 11:return\"Big Sur\";case 12:return\"Monterey\";case 13:return\"Ventura\";case 14:return\"Sonoma\";case 15:return\"Sequoia\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,i){void 0===i&&(i=!1);var n=e.getVersionPrecision(t),a=e.getVersionPrecision(r),o=Math.max(n,a),s=0,u=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),i=t+new Array(r+1).join(\".0\");return e.map(i.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(i&&(s=o-Math.min(n,a)),o-=1;o>=s;){if(u[0][o]>u[1][o])return 1;if(u[0][o]===u[1][o]){if(o===s)return 0;o-=1}else if(u[0][o]<u[1][o])return-1}},e.map=function(e,t){var r,i=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)i.push(t(e[r]));return i},e.find=function(e,t){var r,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,i=e.length;r<i;r+=1){var n=e[r];if(t(n,r))return n}},e.assign=function(e){for(var t,r,i=e,n=arguments.length,a=new Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];if(Object.assign)return Object.assign.apply(Object,[e].concat(a));var s=function(){var e=a[t];\"object\"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){i[t]=e[t]}))};for(t=0,r=a.length;t<r;t+=1)s();return e},e.getBrowserAlias=function(e){return i.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return i.BROWSER_MAP[e]||\"\"},e}();t.default=n,e.exports=t.default},18:function(e,t,r){\"use strict\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={AmazonBot:\"amazonbot\",\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",BaiduSpider:\"baiduspider\",Bada:\"bada\",BingCrawler:\"bingcrawler\",BlackBerry:\"blackberry\",\"ChatGPT-User\":\"chatgpt_user\",Chrome:\"chrome\",ClaudeBot:\"claudebot\",Chromium:\"chromium\",Diffbot:\"diffbot\",DuckDuckBot:\"duckduckbot\",Electron:\"electron\",Epiphany:\"epiphany\",FacebookExternalHit:\"facebookexternalhit\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",GPTBot:\"gptbot\",\"Internet Explorer\":\"ie\",InternetArchiveCrawler:\"internetarchivecrawler\",\"K-Meleon\":\"k_meleon\",LibreWolf:\"librewolf\",Maxthon:\"maxthon\",\"Meta-ExternalAds\":\"meta_externalads\",\"Meta-ExternalAgent\":\"meta_externalagent\",\"Meta-ExternalFetcher\":\"meta_externalfetcher\",\"Meta-WebIndexer\":\"meta_webindexer\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",\"OAI-SearchBot\":\"oai_searchbot\",Omgilibot:\"omgilibot\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",\"Pale Moon\":\"pale_moon\",PerplexityBot:\"perplexitybot\",\"Perplexity-User\":\"perplexity_user\",PhantomJS:\"phantomjs\",PingdomBot:\"pingdombot\",Puffin:\"puffin\",QQ:\"qq\",QQLite:\"qqlite\",QupZilla:\"qupzilla\",Roku:\"roku\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",\"Sogou Browser\":\"sogou\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",YahooSlurp:\"yahooslurp\",\"Yandex Browser\":\"yandex\",YandexBot:\"yandexbot\",YouBot:\"youbot\"};t.BROWSER_MAP={amazonbot:\"AmazonBot\",amazon_silk:\"Amazon Silk\",android:\"Android Browser\",baiduspider:\"BaiduSpider\",bada:\"Bada\",bingcrawler:\"BingCrawler\",blackberry:\"BlackBerry\",chatgpt_user:\"ChatGPT-User\",chrome:\"Chrome\",claudebot:\"ClaudeBot\",chromium:\"Chromium\",diffbot:\"Diffbot\",duckduckbot:\"DuckDuckBot\",edge:\"Microsoft Edge\",electron:\"Electron\",epiphany:\"Epiphany\",facebookexternalhit:\"FacebookExternalHit\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",google_search:\"Google Search\",googlebot:\"Googlebot\",gptbot:\"GPTBot\",ie:\"Internet Explorer\",internetarchivecrawler:\"InternetArchiveCrawler\",k_meleon:\"K-Meleon\",librewolf:\"LibreWolf\",maxthon:\"Maxthon\",meta_externalads:\"Meta-ExternalAds\",meta_externalagent:\"Meta-ExternalAgent\",meta_externalfetcher:\"Meta-ExternalFetcher\",meta_webindexer:\"Meta-WebIndexer\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",oai_searchbot:\"OAI-SearchBot\",omgilibot:\"Omgilibot\",opera:\"Opera\",opera_coast:\"Opera Coast\",pale_moon:\"Pale Moon\",perplexitybot:\"PerplexityBot\",perplexity_user:\"Perplexity-User\",phantomjs:\"PhantomJS\",pingdombot:\"PingdomBot\",puffin:\"Puffin\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",qupzilla:\"QupZilla\",roku:\"Roku\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",sogou:\"Sogou Browser\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yahooslurp:\"YahooSlurp\",yandex:\"Yandex Browser\",yandexbot:\"YandexBot\",youbot:\"YouBot\"};t.PLATFORMS_MAP={bot:\"bot\",desktop:\"desktop\",mobile:\"mobile\",tablet:\"tablet\",tv:\"tv\"};t.OS_MAP={Android:\"Android\",Bada:\"Bada\",BlackBerry:\"BlackBerry\",ChromeOS:\"Chrome OS\",HarmonyOS:\"HarmonyOS\",iOS:\"iOS\",Linux:\"Linux\",MacOS:\"macOS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\",Tizen:\"Tizen\",WebOS:\"WebOS\",Windows:\"Windows\",WindowsPhone:\"Windows Phone\"};t.ENGINE_MAP={Blink:\"Blink\",EdgeHTML:\"EdgeHTML\",Gecko:\"Gecko\",Presto:\"Presto\",Trident:\"Trident\",WebKit:\"WebKit\"}},90:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(91))&&i.__esModule?i:{default:i},a=r(18);function o(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var s=function(){function e(){}var t,r,i;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new n.default(e,t)},e.parse=function(e){return new n.default(e).getResult()},t=e,i=[{key:\"BROWSER_MAP\",get:function(){return a.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return a.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return a.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return a.PLATFORMS_MAP}}],(r=null)&&o(t.prototype,r),i&&o(t,i),e}();t.default=s,e.exports=t.default},91:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=u(r(92)),n=u(r(93)),a=u(r(94)),o=u(r(95)),s=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=s.default.find(i.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=s.default.find(n.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\"\":t||\"\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\"\":t||\"\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=s.default.find(a.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=s.default.find(o.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(Array.isArray(t.test))return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return s.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},i=0,n={},a=0;if(Object.keys(e).forEach((function(t){var o=e[t];\"string\"==typeof o?(n[t]=o,a+=1):\"object\"==typeof o&&(r[t]=o,i+=1)})),i>0){var o=Object.keys(r),u=s.default.find(o,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=s.default.find(o,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(a>0){var l=Object.keys(n),b=s.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==b)return this.compareVersion(n[b])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),n=s.default.getBrowserTypeByAlias(i);return t&&n&&(i=n.toLowerCase()),i===r},t.compareVersion=function(e){var t=[0],r=e,i=!1,n=this.getBrowserVersion();if(\"string\"==typeof n)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(i=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(s.default.compareVersions(n,r,i))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i};var a=/version\\/(\\d+(\\.?_?\\d+)+)/i,o=[{test:[/gptbot/i],describe:function(e){var t={name:\"GPTBot\"},r=n.default.getFirstMatch(/gptbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/chatgpt-user/i],describe:function(e){var t={name:\"ChatGPT-User\"},r=n.default.getFirstMatch(/chatgpt-user\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/oai-searchbot/i],describe:function(e){var t={name:\"OAI-SearchBot\"},r=n.default.getFirstMatch(/oai-searchbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(e){var t={name:\"ClaudeBot\"},r=n.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(e){var t={name:\"Omgilibot\"},r=n.default.getFirstMatch(/(?:omgilibot|webzio-extended)\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/diffbot/i],describe:function(e){var t={name:\"Diffbot\"},r=n.default.getFirstMatch(/diffbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/perplexitybot/i],describe:function(e){var t={name:\"PerplexityBot\"},r=n.default.getFirstMatch(/perplexitybot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/perplexity-user/i],describe:function(e){var t={name:\"Perplexity-User\"},r=n.default.getFirstMatch(/perplexity-user\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/youbot/i],describe:function(e){var t={name:\"YouBot\"},r=n.default.getFirstMatch(/youbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-webindexer/i],describe:function(e){var t={name:\"Meta-WebIndexer\"},r=n.default.getFirstMatch(/meta-webindexer\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalads/i],describe:function(e){var t={name:\"Meta-ExternalAds\"},r=n.default.getFirstMatch(/meta-externalads\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalagent/i],describe:function(e){var t={name:\"Meta-ExternalAgent\"},r=n.default.getFirstMatch(/meta-externalagent\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/meta-externalfetcher/i],describe:function(e){var t={name:\"Meta-ExternalFetcher\"},r=n.default.getFirstMatch(/meta-externalfetcher\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=n.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/amazonbot/i],describe:function(e){var t={name:\"AmazonBot\"},r=n.default.getFirstMatch(/amazonbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/bingbot/i],describe:function(e){var t={name:\"BingCrawler\"},r=n.default.getFirstMatch(/bingbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/baiduspider/i],describe:function(e){var t={name:\"BaiduSpider\"},r=n.default.getFirstMatch(/baiduspider\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/duckduckbot/i],describe:function(e){var t={name:\"DuckDuckBot\"},r=n.default.getFirstMatch(/duckduckbot\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/ia_archiver/i],describe:function(e){var t={name:\"InternetArchiveCrawler\"},r=n.default.getFirstMatch(/ia_archiver\\/(\\d+(\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{name:\"FacebookExternalHit\"}}},{test:[/yahoo!?[\\s/]*slurp/i],describe:function(){return{name:\"YahooSlurp\"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{name:\"YandexBot\"}}},{test:[/pingdom/i],describe:function(){return{name:\"PingdomBot\"}}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/PaleMoon/i],describe:function(e){var t={name:\"Pale Moon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:PaleMoon)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=n.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=n.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=n.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=n.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=n.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=n.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=n.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=n.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=n.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=n.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=n.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=n.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=n.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=n.default.getFirstMatch(a,e)||n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=n.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=n.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=n.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/librewolf/i],describe:function(e){var t={name:\"LibreWolf\"},r=n.default.getFirstMatch(/(?:librewolf)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=n.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sogoumobilebrowser/i,/metasr/i,/se 2\\.[x]/i],describe:function(e){var t={name:\"Sogou Browser\"},r=n.default.getFirstMatch(/(?:sogoumobilebrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e),i=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e),a=n.default.getFirstMatch(/se ([\\d.]+)x/i,e),o=r||i||a;return o&&(t.version=o),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=n.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=n.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=n.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=n.default.getFirstMatch(a,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:n.default.getFirstMatch(t,e),version:n.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:[/Roku\\/DVP/],describe:function(e){var t=n.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:a.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=n.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=n.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=n.default.getWindowsVersionName(t);return{name:a.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:a.OS_MAP.iOS},r=n.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=n.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=n.default.getMacOSVersionName(t),i={name:a.OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=n.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:a.OS_MAP.iOS,version:t}}},{test:[/OpenHarmony/i],describe:function(e){var t=n.default.getFirstMatch(/OpenHarmony\\s+(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.HarmonyOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=n.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=n.default.getAndroidVersionName(t),i={name:a.OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=n.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:a.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=n.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||n.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||n.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:a.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=n.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=n.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:a.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:a.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=n.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:a.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:[/googlebot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Google\"}}},{test:[/amazonbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Amazon\"}}},{test:[/gptbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/chatgpt-user/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/oai-searchbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"OpenAI\"}}},{test:[/baiduspider/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Baidu\"}}},{test:[/bingbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Bing\"}}},{test:[/duckduckbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"DuckDuckGo\"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Anthropic\"}}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Webz.io\"}}},{test:[/diffbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Diffbot\"}}},{test:[/perplexitybot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Perplexity AI\"}}},{test:[/perplexity-user/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Perplexity AI\"}}},{test:[/youbot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"You.com\"}}},{test:[/ia_archiver/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Internet Archive\"}}},{test:[/meta-webindexer/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalads/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalagent/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/meta-externalfetcher/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Meta\"}}},{test:[/yahoo/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Yahoo\"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Yandex\"}}},{test:[/pingdom/i],describe:function(){return{type:a.PLATFORMS_MAP.bot,vendor:\"Pingdom\"}}},{test:[/huawei/i],describe:function(e){var t=n.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:a.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:a.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=n.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:a.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/Nokia/i],describe:function(e){var t=n.default.getFirstMatch(/Nokia\\s+([0-9]+(\\.[0-9]+)?)/i,e),r={type:a.PLATFORMS_MAP.mobile,vendor:\"Nokia\"};return t&&(r.model=t),r}},{test:[/[^-]mobi/i],describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:a.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:a.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:a.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},a=r(18);var o=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:a.ENGINE_MAP.Blink};var t=n.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:a.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:a.ENGINE_MAP.Trident},r=n.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:a.ENGINE_MAP.Presto},r=n.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:a.ENGINE_MAP.Gecko},r=n.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:a.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:a.ENGINE_MAP.WebKit},r=n.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}})}));","import Bowser from 'bowser';\r\n\r\n/**\r\n * 获取浏览器名称和版本等设备信息\r\n */\r\nexport function getBrowserNameVersion() {\r\n const { browser, os, platform } = Bowser.parse(window.navigator.userAgent);\r\n return {\r\n browser,\r\n os,\r\n platform,\r\n ratio: getRatio(),\r\n wh: getWH(),\r\n };\r\n}\r\n\r\n/**\r\n * 获取屏幕缩放比例\r\n */\r\nfunction getRatio() {\r\n let ratio = 0;\r\n const screen: any = window.screen;\r\n const ua = navigator.userAgent.toLowerCase();\r\n if (window.devicePixelRatio !== undefined) {\r\n ratio = window.devicePixelRatio;\r\n } else if (~ua.indexOf('msie')) {\r\n if (screen.deviceXDPI && screen.logicalXDPI) {\r\n ratio = screen.deviceXDPI / screen.logicalXDPI;\r\n }\r\n } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {\r\n ratio = window.outerWidth / window.innerWidth;\r\n }\r\n\r\n if (ratio) {\r\n ratio = Math.round(ratio * 100);\r\n }\r\n return ratio;\r\n}\r\n\r\n/**\r\n * 获取浏览器屏幕宽高\r\n */\r\nfunction getWH() {\r\n return {\r\n width: window.screen.width,\r\n height: window.screen.height,\r\n };\r\n}\r\n\r\n/**\r\n * 异步执行 / 空闲时刻 / 每帧回调\r\n */\r\nexport const nextTime =\r\n window.requestIdleCallback || window.requestAnimationFrame || ((callback) => window.setTimeout(callback, 1000 / 60));\r\n\r\n/**\r\n * 页面卸载前的回调\r\n */\r\nexport const beforeUnload = (callback: () => void) => {\r\n window.addEventListener('beforeunload', () => {\r\n callback();\r\n });\r\n};\r\n","/**\r\n * 节流函数\r\n * @param fn 执行函数\r\n * @param delay 延迟时间(ms)\r\n */\r\nexport function throttle<T extends (...args: any[]) => any>(fn: T, delay: number): (...args: Parameters<T>) => void {\r\n let lastTime = 0;\r\n return function (this: any, ...args: Parameters<T>) {\r\n const now = Date.now();\r\n if (now - lastTime >= delay) {\r\n fn.apply(this, args);\r\n lastTime = now;\r\n }\r\n };\r\n}\r\n\r\nexport const isIgnoredScriptSource = (sourceURL?: string) => {\r\n if (!sourceURL || typeof sourceURL !== 'string') return false;\r\n if (/node_modules/.test(sourceURL)) return true;\r\n return false;\r\n};\r\n","import { nanoid } from 'nanoid';\r\nimport { getBrowserNameVersion } from '../utils';\r\nimport type { Device } from '../types/index';\r\nimport { UUID } from '../constant';\r\n\r\n//基本信息\r\nexport default class DeviceInfo {\r\n device: Device;\r\n uuid: string = '';\r\n\r\n constructor(uuidKey: string = UUID) {\r\n //设备信息\r\n this.device = getBrowserNameVersion();\r\n this.getUUid(uuidKey);\r\n }\r\n\r\n private getUUid(key: string) {\r\n try {\r\n const uuid = localStorage.getItem(key);\r\n if (uuid) {\r\n this.uuid = uuid;\r\n } else {\r\n this.uuid = nanoid();\r\n localStorage.setItem(key, this.uuid);\r\n }\r\n } catch (e) {\r\n // 降级处理:如果 localStorage 不可用(如隐身模式),仅在内存中生成 UUID\r\n this.uuid = nanoid();\r\n console.warn('[CWJ Monitor] localStorage access failed, UUID will not be persisted:', e);\r\n }\r\n }\r\n}\r\n","/**\r\n * 事件发送前的最大缓存数\r\n */\r\nexport const MAX_CACHE_LEN = 5;\r\n\r\n/**\r\n * 发送缓存事件前的最大等待时间(毫秒)\r\n */\r\nexport const MAX_WAITING_TIME = 30000;\r\n\r\n/**\r\n * 存储的用户UUID\r\n */\r\nexport const UUID = 'track_uuid';\r\n\r\n/**\r\n * 默认资源加载阈值 (ms)\r\n */\r\nexport const DEFAULT_RESOURCE_THRESHOLD = 1000;\r\n\r\n/**\r\n * 默认 LoAF 阈值 (ms)\r\n */\r\nexport const DEFAULT_LOAF_THRESHOLD = 50;\r\n","import DeviceInfo from './deviceInfo';\r\nimport { getDate } from '../utils';\r\nimport type { Options, MonitoringPayload } from '../types/index';\r\nimport { EMIT_TYPE } from '../types/event';\r\nimport Reporter from './reporter';\r\n\r\n/**\r\n * EventTrack 类处理事件收集和转换\r\n * 职责:\r\n * 1. 管理设备信息 (DeviceInfo)\r\n * 2. 格式化原始数据为 MonitoringPayload\r\n * 3. 将格式化后的数据交给 Reporter 发送\r\n */\r\nexport default class EventTrack {\r\n private deviceInfo: DeviceInfo;\r\n private reporter: Reporter;\r\n private data?: Record<string, any>;\r\n\r\n constructor(options: Options, reporter: Reporter) {\r\n this.deviceInfo = new DeviceInfo(options.uuidKey);\r\n this.reporter = reporter;\r\n this.data = options.data;\r\n }\r\n\r\n /**\r\n * 格式化事件数据用于传输\r\n */\r\n private formatter(type: EMIT_TYPE | string, data: any): MonitoringPayload {\r\n const timestamp = Date.now();\r\n return {\r\n device: this.deviceInfo.device,\r\n uuid: this.deviceInfo.uuid,\r\n type,\r\n data,\r\n date: getDate(timestamp),\r\n userData: this.data,\r\n };\r\n }\r\n\r\n /**\r\n * 公共方法:发送事件\r\n * 将事件格式化后交给 reporter 处理\r\n */\r\n public emit(type: EMIT_TYPE | string, data?: any): void {\r\n const payload = this.formatter(type, data);\r\n this.reporter.send(payload);\r\n }\r\n\r\n /**\r\n * 获取上报器实例 (供 Core 使用)\r\n */\r\n public getReporter(): Reporter {\r\n return this.reporter;\r\n }\r\n}\r\n","import { MAX_CACHE_LEN, MAX_WAITING_TIME } from '../constant';\r\nimport { nextTime, beforeUnload } from '../utils';\r\nimport type { MonitoringPayload, TransportConfig } from '../types/index';\r\n\r\n/**\r\n * Reporter 类负责数据的批量上报、重试和调度\r\n */\r\nexport default class Reporter {\r\n private url: string;\r\n private transportConfig: Required<TransportConfig>;\r\n private events: MonitoringPayload[] = [];\r\n private isSending = false;\r\n private timer: ReturnType<typeof setTimeout> | null = null;\r\n\r\n constructor(url: string, config?: TransportConfig) {\r\n this.url = url;\r\n this.transportConfig = {\r\n maxBatchSize: config?.maxBatchSize ?? MAX_CACHE_LEN,\r\n maxWaitTime: config?.maxWaitTime ?? MAX_WAITING_TIME,\r\n };\r\n\r\n // 页面卸载前刷新事件\r\n beforeUnload(() => this.flush());\r\n }\r\n\r\n /**\r\n * 将事件加入队列\r\n */\r\n public send(payload: MonitoringPayload) {\r\n this.events.push(payload);\r\n\r\n // 达到最大批处理大小时立即发送,否则通过定时器发送\r\n if (this.events.length >= this.transportConfig.maxBatchSize) {\r\n this.clearTimer();\r\n this.triggerSend();\r\n } else if (!this.timer) {\r\n this.timer = setTimeout(() => {\r\n this.timer = null;\r\n this.triggerSend();\r\n }, this.transportConfig.maxWaitTime);\r\n }\r\n }\r\n\r\n /**\r\n * 立即刷新所有待发送事件\r\n */\r\n public flush(): Promise<void> {\r\n return this.triggerSend(true);\r\n }\r\n\r\n private clearTimer() {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n this.timer = null;\r\n }\r\n }\r\n\r\n /**\r\n * 触发发送逻辑\r\n */\r\n private async triggerSend(isFlush = false): Promise<void> {\r\n if (this.isSending || !this.events.length) return;\r\n\r\n this.isSending = true;\r\n\r\n try {\r\n const maxLen = isFlush ? this.events.length : this.transportConfig.maxBatchSize;\r\n const sendEvents = this.events.slice(0, maxLen);\r\n this.events = this.events.slice(maxLen);\r\n\r\n await this.safeSend(sendEvents);\r\n\r\n // 如果还有剩余事件,调度下次发送\r\n if (this.events.length) {\r\n nextTime(() => this.triggerSend());\r\n }\r\n } catch (error) {\r\n // 失败处理逻辑,目前简单忽略\r\n } finally {\r\n this.isSending = false;\r\n }\r\n }\r\n\r\n /**\r\n * 使用 navigator.sendBeacon 或 XMLHttpRequest 安全发送事件\r\n */\r\n private safeSend(events: MonitoringPayload[]): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!events.length) {\r\n resolve();\r\n return;\r\n }\r\n\r\n const data = JSON.stringify(events);\r\n\r\n // 优先尝试 sendBeacon(更适合页面卸载)\r\n if (typeof navigator.sendBeacon === 'function') {\r\n const blob = new Blob([data], { type: 'application/json' });\r\n const success = navigator.sendBeacon(this.url, blob);\r\n\r\n if (success) {\r\n resolve();\r\n } else {\r\n this.sendViaXHR(data, resolve, reject);\r\n }\r\n } else {\r\n // 降级到 XMLHttpRequest\r\n this.sendViaXHR(data, resolve, reject);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 通过 XMLHttpRequest 发送\r\n */\r\n private sendViaXHR(data: string, resolve: () => void, reject: (error: Error) => void): void {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open('POST', this.url, true);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve();\r\n } else {\r\n reject(new Error(`HTTP ${xhr.status}: ${xhr.statusText}`));\r\n }\r\n };\r\n\r\n xhr.onerror = () => reject(new Error('Network error'));\r\n xhr.ontimeout = () => reject(new Error('Request timeout'));\r\n\r\n xhr.timeout = 10000;\r\n xhr.send(data);\r\n }\r\n}\r\n","/**\r\n * 插件类型标识符\r\n * 用于插件注册和配置\r\n */\r\nexport enum TYPES {\r\n ERROR = 'error',\r\n CLICK = 'click',\r\n PERFORMANCE = 'performance',\r\n ROUTER = 'router',\r\n XHR = 'xhr',\r\n FETCH = 'fetch',\r\n}\r\n\r\n/**\r\n * 事件发送类型标识符\r\n * 用于向追踪系统发送事件时使用\r\n */\r\nexport enum EMIT_TYPE {\r\n // 错误事件\r\n ERROR = 'error',\r\n\r\n // 行为事件\r\n BEHAVIOR_CLICK = 'click',\r\n ROUTE_CHANGE = 'route_change',\r\n\r\n // 性能事件 - Core Web Vitals\r\n PERFORMANCE_FP = 'performance_fp',\r\n PERFORMANCE_FCP = 'performance_fcp',\r\n PERFORMANCE_LCP = 'performance_lcp',\r\n PERFORMANCE_INP = 'performance_inp',\r\n PERFORMANCE_LONGTASK = 'performance_longtask',\r\n PERFORMANCE_RESOURCE = 'performance_resource',\r\n PERFORMANCE_LOAF = 'performance_loaf',\r\n\r\n // XHR 事件\r\n XHR = 'xhr',\r\n FETCH = 'fetch',\r\n\r\n // 自定义事件\r\n CUSTOM = 'custom',\r\n}\r\n","import EventTrack from './eventTrack';\r\nimport Reporter from './reporter';\r\nimport type { Options } from '../types/index';\r\nimport type { IPlugin } from '../plugin/definePlugin';\r\nimport { EMIT_TYPE } from '../types/event';\r\n\r\nexport default class Core extends EventTrack {\r\n private pluginMap: Map<string, IPlugin> = new Map();\r\n private options: Options;\r\n\r\n constructor(options: Options) {\r\n const reporter = new Reporter(options.url, options.transport);\r\n super(options, reporter);\r\n this.options = options;\r\n }\r\n\r\n use(plugin: IPlugin): Core {\r\n if (!this.pluginMap.has(plugin.name)) {\r\n this.pluginMap.set(plugin.name, plugin);\r\n }\r\n return this; // 方便链式调用\r\n }\r\n\r\n /**\r\n * 自定义事件上报\r\n * @param data 上报的数据\r\n * @param type 事件类型,默认为 'custom'\r\n */\r\n log(data: any, type: string = EMIT_TYPE.CUSTOM): void {\r\n this.emit(type, data);\r\n }\r\n\r\n // 启动插件\r\n run() {\r\n const context = {\r\n emit: this.emit.bind(this),\r\n url: this.options.url,\r\n };\r\n\r\n this.pluginMap.forEach((plugin) => {\r\n plugin.install(context);\r\n });\r\n\r\n // 挂载全局变量\r\n this.mount();\r\n }\r\n\r\n // 停止并卸载所有插件\r\n stop() {\r\n this.pluginMap.forEach((plugin) => {\r\n plugin.uninstall?.();\r\n });\r\n this.pluginMap.clear();\r\n\r\n // 卸载全局变量\r\n this.unmount();\r\n }\r\n\r\n private mount() {\r\n const { globalKey = '$track' } = this.options;\r\n if (typeof window !== 'undefined') {\r\n (window as any)[globalKey] = this;\r\n }\r\n }\r\n\r\n private unmount() {\r\n const { globalKey = '$track' } = this.options;\r\n if (typeof window !== 'undefined' && (window as any)[globalKey] === this) {\r\n delete (window as any)[globalKey];\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 创建监控实例的工厂函数\r\n * @param options 配置项\r\n */\r\nexport function createMonitor(options: Options): Core {\r\n return new Core(options);\r\n}\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\n\r\nexport interface ErrorOptions {\r\n /** 过滤函数,返回 false 则不记录该错误 */\r\n filter?: (error: any) => boolean;\r\n}\r\n\r\n/**\r\n * 错误监控插件\r\n * 监控并捕获 JavaScript 错误、资源加载错误、Promise 拒绝以及 console.error 调用\r\n */\r\nexport const ErrorPlugin = (options: ErrorOptions = {}): IPlugin => {\r\n let originalConsoleError: (...data: any[]) => void;\r\n let context: PluginContext;\r\n\r\n /**\r\n * 重写 console.error 以捕获错误日志\r\n */\r\n const overrideConsoleError = () => {\r\n originalConsoleError = console.error;\r\n\r\n console.error = (...args: any[]) => {\r\n // 调用原始的 console.error\r\n originalConsoleError?.apply(console, args);\r\n\r\n // 捕获错误信息\r\n const errorData = {\r\n type: 'console',\r\n message: args.map((arg) => String(arg)).join(' '),\r\n stack: new Error().stack,\r\n };\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(errorData)) {\r\n return;\r\n }\r\n\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n };\r\n\r\n /**\r\n * 恢复 console.error\r\n */\r\n const restoreConsoleError = () => {\r\n if (originalConsoleError) {\r\n console.error = originalConsoleError;\r\n }\r\n };\r\n\r\n /**\r\n * 清理并限制堆栈追踪深度\r\n */\r\n const cleanStack = (stack?: string): string | undefined => {\r\n if (!stack) return undefined;\r\n const lines = stack.split('\\n').slice(0, 11);\r\n return lines.join('\\n');\r\n };\r\n\r\n /**\r\n * 用于生成指纹的简单哈希函数\r\n */\r\n const simpleHash = (str: string): string => {\r\n let hash = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const char = str.charCodeAt(i);\r\n hash = (hash << 5) - hash + char;\r\n hash = hash & hash; // 转换为 32 位整数\r\n }\r\n return Math.abs(hash).toString(36);\r\n };\r\n\r\n /**\r\n * 生成错误指纹以对相似错误进行分组\r\n */\r\n const generateFingerprint = (...parts: (string | undefined)[]): string => {\r\n const combined = parts.filter(Boolean).join('|');\r\n return simpleHash(combined);\r\n };\r\n\r\n /**\r\n * 检查错误是否为资源加载错误\r\n */\r\n const isResourceError = (target: any): boolean => {\r\n const resourceTags = ['LINK', 'SCRIPT', 'IMG', 'AUDIO', 'VIDEO', 'IFRAME'];\r\n return target && resourceTags.includes(target.tagName);\r\n };\r\n\r\n /**\r\n * 从 Promise 拒绝中提取错误详情\r\n */\r\n const getPromiseErrorDetails = (e: PromiseRejectionEvent) => {\r\n if (e.reason instanceof Error) {\r\n return {\r\n errorType: 'promise',\r\n message: e.reason.message,\r\n stack: cleanStack(e.reason.stack),\r\n name: e.reason.name,\r\n fingerprint: generateFingerprint(e.reason.message, e.reason.stack),\r\n };\r\n }\r\n return {\r\n errorType: 'promise',\r\n message: String(e.reason),\r\n };\r\n };\r\n\r\n /**\r\n * 从 ErrorEvent 中提取错误详情\r\n */\r\n const getErrorDetails = (e: ErrorEvent) => {\r\n const { error, target, filename, message } = e;\r\n if (error instanceof Error) {\r\n return {\r\n errorType: 'js',\r\n name: error.name,\r\n message: error.message,\r\n stack: cleanStack(error.stack),\r\n filename,\r\n colno: e.colno,\r\n lineno: e.lineno,\r\n fingerprint: generateFingerprint(error.message, error.stack),\r\n };\r\n }\r\n if (isResourceError(target)) {\r\n const element = target as HTMLImageElement | HTMLScriptElement | HTMLLinkElement;\r\n const url = 'src' in element ? element.src : element.href;\r\n return {\r\n errorType: 'resource',\r\n message: `Resource load failed: ${url}`,\r\n url,\r\n tagName: element.tagName,\r\n fingerprint: generateFingerprint(`resource:${url}`),\r\n };\r\n }\r\n return {\r\n errorType: 'unknown',\r\n message,\r\n filename,\r\n };\r\n };\r\n\r\n const errorHandler = (e: ErrorEvent) => {\r\n const errorData = { type: 'sync', ...getErrorDetails(e) };\r\n if (options.filter && !options.filter(errorData)) return;\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n\r\n const rejectionHandler = (e: PromiseRejectionEvent) => {\r\n const errorData = { type: 'async', ...getPromiseErrorDetails(e) };\r\n if (options.filter && !options.filter(errorData)) return;\r\n context?.emit(EMIT_TYPE.ERROR, errorData);\r\n };\r\n\r\n return {\r\n name: TYPES.ERROR,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n overrideConsoleError();\r\n window.addEventListener('error', errorHandler, true);\r\n window.addEventListener('unhandledrejection', rejectionHandler, true);\r\n },\r\n uninstall: () => {\r\n restoreConsoleError();\r\n window.removeEventListener('error', errorHandler, true);\r\n window.removeEventListener('unhandledrejection', rejectionHandler, true);\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { getSeconds } from '../utils';\r\n\r\nexport interface PVOptions {\r\n /** 过滤函数,返回 false 则不记录该路由变化 */\r\n filter?: (to: string, from: string) => boolean;\r\n}\r\n\r\nexport const PVPlugin = (options: PVOptions = {}): IPlugin => {\r\n let lastRouteTime: number = Date.now();\r\n let context: PluginContext;\r\n\r\n let originPushState: typeof window.history.pushState;\r\n let originReplaceState: typeof window.history.replaceState;\r\n\r\n const emitRouteChange = (type: string) => {\r\n const now = Date.now();\r\n const to = window.location.href;\r\n const from = document.referrer;\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(to, from)) {\r\n return;\r\n }\r\n\r\n context?.emit(EMIT_TYPE.ROUTE_CHANGE, {\r\n from,\r\n to,\r\n type,\r\n duration: getSeconds(now, lastRouteTime),\r\n });\r\n\r\n lastRouteTime = now;\r\n };\r\n\r\n const handleHashChange = () => emitRouteChange('hashchange');\r\n const handlePopState = () => emitRouteChange('popstate');\r\n\r\n const setupHistoryListener = () => {\r\n originPushState = window.history.pushState;\r\n originReplaceState = window.history.replaceState;\r\n\r\n window.history.pushState = (...args) => {\r\n originPushState.apply(window.history, args);\r\n emitRouteChange('pushState');\r\n };\r\n\r\n window.history.replaceState = (...args) => {\r\n originReplaceState.apply(window.history, args);\r\n emitRouteChange('replaceState');\r\n };\r\n };\r\n\r\n const restoreHistoryListener = () => {\r\n if (originPushState) window.history.pushState = originPushState;\r\n if (originReplaceState) window.history.replaceState = originReplaceState;\r\n };\r\n\r\n return {\r\n name: TYPES.ROUTER,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n lastRouteTime = Date.now();\r\n window.addEventListener('hashchange', handleHashChange);\r\n window.addEventListener('popstate', handlePopState);\r\n setupHistoryListener();\r\n },\r\n uninstall: () => {\r\n window.removeEventListener('hashchange', handleHashChange);\r\n window.removeEventListener('popstate', handlePopState);\r\n restoreHistoryListener();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { throttle } from '../utils';\r\n\r\nexport interface BehaviorOptions {\r\n /** 过滤函数,返回 false 则不记录该点击事件 */\r\n filter?: (element: HTMLElement) => boolean;\r\n /** 节流延迟时间(ms),默认 500ms */\r\n throttleDelay?: number;\r\n}\r\n\r\nexport const BehaviorPlugin = (options: BehaviorOptions = {}): IPlugin => {\r\n const { throttleDelay = 500 } = options;\r\n let context: PluginContext;\r\n\r\n // 获取元素的 XPath\r\n const getElementXPath = (element: HTMLElement): string => {\r\n if (!element || element.nodeType !== 1) return '';\r\n if (element.id) return `//*[@id=\"${element.id}\"]`;\r\n\r\n const sameTagSiblings = Array.from(element.parentNode?.children || []).filter(\r\n (el) => el.tagName === element.tagName,\r\n );\r\n\r\n const idx = sameTagSiblings.indexOf(element) + 1;\r\n return `${getElementXPath(element.parentNode as HTMLElement)}/${element.tagName.toLowerCase()}[${idx}]`;\r\n };\r\n\r\n const handleClick = throttle((e: Event) => {\r\n const target = e.target as HTMLElement;\r\n if (!target) return;\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(target)) {\r\n return;\r\n }\r\n\r\n // 收集点击元素信息\r\n const clickData = {\r\n tagName: target.tagName,\r\n id: target.id,\r\n className: target.className,\r\n text: target.textContent?.trim(),\r\n xPath: getElementXPath(target),\r\n };\r\n\r\n context?.emit(EMIT_TYPE.BEHAVIOR_CLICK, clickData);\r\n }, throttleDelay);\r\n\r\n return {\r\n name: TYPES.CLICK,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n document.addEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);\r\n },\r\n uninstall: () => {\r\n document.removeEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { EMIT_TYPE, TYPES } from '../types/event';\r\nimport { isIgnoredScriptSource } from '../utils/common';\r\n\r\nimport { DEFAULT_LOAF_THRESHOLD, DEFAULT_RESOURCE_THRESHOLD } from '../constant';\r\n\r\nexport interface PerformanceOptions {\r\n /** 过滤函数,返回 false 则不记录该性能指标 */\r\n filter?: (type: EMIT_TYPE, value: any) => boolean;\r\n /** 长任务阈值 (ms),超过此值则上报,默认 100 */\r\n longTaskThreshold?: number;\r\n /** 资源加载阈值 (ms),超过此值则上报,默认 1000 */\r\n resourceThreshold?: number;\r\n /** INP 阈值 (ms),超过此值则上报,默认 200 */\r\n inpThreshold?: number;\r\n /** LoAF 阈值 (ms),超过此值则上报,默认 100 */\r\n loafThreshold?: number;\r\n}\r\n\r\nexport const PerformancePlugin = (options: PerformanceOptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let paintObserver: PerformanceObserver | null = null;\r\n let lcpObserver: PerformanceObserver | null = null;\r\n let resourceObserver: PerformanceObserver | null = null;\r\n let loafObserver: PerformanceObserver | null = null;\r\n\r\n const monitorPaintMetrics = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n if (entry.name === 'first-paint') {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_FP, entry.startTime);\r\n } else if (entry.name === 'first-contentful-paint') {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime);\r\n }\r\n }\r\n paintObserver?.disconnect();\r\n };\r\n\r\n try {\r\n paintObserver = new PerformanceObserver(entryHandler);\r\n paintObserver.observe({ type: 'paint', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Paint observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLCP = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n if (lcpObserver) {\r\n lcpObserver.disconnect();\r\n }\r\n\r\n for (const entry of list.getEntries()) {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime)) {\r\n continue;\r\n }\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime);\r\n }\r\n };\r\n\r\n try {\r\n lcpObserver = new PerformanceObserver(entryHandler);\r\n lcpObserver.observe({ type: 'largest-contentful-paint', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] LCP observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLoAF = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LOAF, entry)) {\r\n continue;\r\n }\r\n\r\n const threshold = options.loafThreshold ?? DEFAULT_LOAF_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n const scripts = Array.isArray(entry.scripts) ? entry.scripts : [];\r\n let isUserTriggered = false;\r\n let allIgnored = true; // 是否所有脚本都属于忽略的来源\r\n\r\n for (let i = 0; i < scripts.length; i++) {\r\n const s = scripts[i];\r\n if (!s) continue;\r\n\r\n if (!isUserTriggered && s.invokerType === 'user-callback') isUserTriggered = true;\r\n\r\n if (allIgnored && !isIgnoredScriptSource(s.sourceURL)) {\r\n allIgnored = false;\r\n }\r\n\r\n // 若已发现用户触发且存在非忽略来源,可提前退出\r\n if (isUserTriggered && !allIgnored) break;\r\n }\r\n\r\n if (isUserTriggered && !allIgnored) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LOAF, {\r\n duration: entry.duration,\r\n startTime: entry.startTime,\r\n renderStart: entry.renderStart,\r\n styleAndLayoutStart: entry.styleAndLayoutStart,\r\n hadRecentInput: entry.hadRecentInput,\r\n scripts: entry.scripts.map((s: any) => ({\r\n duration: s.duration,\r\n invoker: s.invoker,\r\n invokerType: s.invokerType,\r\n sourceURL: s.sourceURL,\r\n functionName: s.functionName,\r\n sourceFunctionName: s.sourceFunctionName,\r\n sourceCharPosition: s.sourceCharPosition,\r\n startTime: s.startTime,\r\n })),\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n try {\r\n loafObserver = new PerformanceObserver(entryHandler);\r\n loafObserver.observe({ type: 'long-animation-frame', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] LoAF observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorResource = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n // 只监听 fetch 与 xmlhttprequest\r\n if (entry.initiatorType !== 'fetch' && entry.initiatorType !== 'xmlhttprequest') {\r\n continue;\r\n }\r\n\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_RESOURCE, entry)) {\r\n continue;\r\n }\r\n\r\n // 资源加载时间超过阈值,上报\r\n const threshold = options.resourceThreshold ?? DEFAULT_RESOURCE_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_RESOURCE, {\r\n name: entry.name, // 资源 URL\r\n initiatorType: entry.initiatorType,\r\n duration: entry.duration,\r\n startTime: entry.startTime,\r\n transferSize: entry.transferSize,\r\n encodedBodySize: entry.encodedBodySize,\r\n decodedBodySize: entry.decodedBodySize,\r\n });\r\n }\r\n }\r\n };\r\n\r\n try {\r\n resourceObserver = new PerformanceObserver(entryHandler);\r\n resourceObserver.observe({ type: 'resource', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Resource observation not supported:', e);\r\n }\r\n };\r\n\r\n return {\r\n name: TYPES.PERFORMANCE,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n monitorPaintMetrics();\r\n monitorLCP();\r\n monitorResource();\r\n monitorLoAF();\r\n },\r\n uninstall: () => {\r\n paintObserver?.disconnect();\r\n lcpObserver?.disconnect();\r\n resourceObserver?.disconnect();\r\n loafObserver?.disconnect();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { TYPES, EMIT_TYPE } from '../types/event';\r\n\r\n// 扩展 XMLHttpRequest 接口以包含自定义属性\r\ninterface CustomXMLHttpRequest extends XMLHttpRequest {\r\n _xhr_info?: {\r\n method: string;\r\n url: string;\r\n startTime: number;\r\n };\r\n}\r\n\r\ntype OpenArgs = Parameters<typeof window.XMLHttpRequest.prototype.open>;\r\ntype SendArgs = Parameters<typeof window.XMLHttpRequest.prototype.send>;\r\n\r\nexport interface XHROptions {\r\n /** 过滤函数,返回 false 则不记录该请求 */\r\n filter?: (method: string, url: string) => boolean;\r\n}\r\n\r\n/**\r\n * XHR 监控插件\r\n * 监控 XMLHttpRequest 请求,记录失败的请求(状态码非 2xx)\r\n */\r\nexport const XHRPlugin = (options: XHROptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let originOpen: typeof XMLHttpRequest.prototype.open;\r\n let originSend: typeof XMLHttpRequest.prototype.send;\r\n\r\n const setupXHRListeners = () => {\r\n const originXhr = window.XMLHttpRequest;\r\n if (!originXhr) return;\r\n\r\n originOpen = originXhr.prototype.open;\r\n originSend = originXhr.prototype.send;\r\n\r\n // 重写 open 方法\r\n originXhr.prototype.open = function <T extends OpenArgs>(this: CustomXMLHttpRequest, ...args: T) {\r\n this._xhr_info = {\r\n method: args[0].toUpperCase(),\r\n url: String(args[1]),\r\n startTime: 0,\r\n };\r\n return originOpen.apply(this, args);\r\n };\r\n\r\n // 重写 send 方法\r\n originXhr.prototype.send = function <T extends SendArgs>(this: CustomXMLHttpRequest, ...args: T) {\r\n if (this._xhr_info) {\r\n this._xhr_info.startTime = Date.now();\r\n }\r\n\r\n const onLoadend = () => {\r\n if (this._xhr_info) {\r\n // 防止死循环:忽略发送到监控后台的请求\r\n const trackerUrl = context?.url;\r\n const { url, method, startTime } = this._xhr_info;\r\n\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n return;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n return;\r\n }\r\n\r\n const duration = Date.now() - startTime;\r\n const status = this.status;\r\n\r\n // 监听HTTP层面 状态码不是200~299的错误\r\n if (!(status >= 200 && status < 300)) {\r\n const data = {\r\n method,\r\n url,\r\n status,\r\n duration,\r\n // 限制响应体大小,避免数据过大\r\n response: this.response ? String(this.response).slice(0, 200) : '',\r\n };\r\n\r\n context?.emit(EMIT_TYPE.XHR, data);\r\n }\r\n }\r\n };\r\n\r\n this.addEventListener('loadend', onLoadend);\r\n return originSend.apply(this, args);\r\n };\r\n };\r\n\r\n const restoreXHR = () => {\r\n const originXhr = window.XMLHttpRequest;\r\n if (!originXhr) return;\r\n if (originOpen) originXhr.prototype.open = originOpen;\r\n if (originSend) originXhr.prototype.send = originSend;\r\n };\r\n\r\n return {\r\n name: TYPES.XHR,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n setupXHRListeners();\r\n },\r\n uninstall: () => {\r\n restoreXHR();\r\n },\r\n };\r\n};\r\n","import { IPlugin, PluginContext } from './definePlugin';\r\nimport { TYPES, EMIT_TYPE } from '../types/event';\r\n\r\nexport interface FetchOptions {\r\n /** 过滤函数,返回 false 则不记录该请求 */\r\n filter?: (method: string, url: string) => boolean;\r\n}\r\n\r\n/**\r\n * Fetch 监控插件\r\n * 监控 fetch 请求,记录失败的请求(状态码非 2xx 或网络错误)\r\n */\r\nexport const FetchPlugin = (options: FetchOptions = {}): IPlugin => {\r\n let context: PluginContext;\r\n let originFetch: typeof window.fetch;\r\n\r\n const setupFetchListeners = () => {\r\n originFetch = window.fetch;\r\n if (!originFetch) return;\r\n\r\n window.fetch = function (input: RequestInfo | URL, init?: RequestInit) {\r\n const startTime = Date.now();\r\n const method = (init?.method || 'GET').toUpperCase();\r\n const url = input instanceof Request ? input.url : String(input);\r\n\r\n return originFetch.apply(this, [input, init]).then(\r\n (response) => {\r\n const trackerUrl = context?.url;\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n return response;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n return response;\r\n }\r\n\r\n if (!response.ok) {\r\n const duration = Date.now() - startTime;\r\n const data = {\r\n method,\r\n url,\r\n status: response.status,\r\n duration,\r\n success: false,\r\n };\r\n context?.emit(EMIT_TYPE.FETCH, data);\r\n }\r\n return response;\r\n },\r\n (error) => {\r\n const trackerUrl = context?.url;\r\n if (trackerUrl && url.includes(trackerUrl)) {\r\n throw error;\r\n }\r\n\r\n // 如果配置了过滤函数且返回 false,则不记录\r\n if (options.filter && !options.filter(method, url)) {\r\n throw error;\r\n }\r\n\r\n const duration = Date.now() - startTime;\r\n const data = {\r\n method,\r\n url,\r\n status: 0,\r\n duration,\r\n success: false,\r\n message: error.message,\r\n };\r\n context?.emit(EMIT_TYPE.FETCH, data);\r\n throw error;\r\n },\r\n );\r\n };\r\n };\r\n\r\n const restoreFetch = () => {\r\n if (originFetch) window.fetch = originFetch;\r\n };\r\n\r\n return {\r\n name: TYPES.FETCH,\r\n install: (ctx: PluginContext) => {\r\n context = ctx;\r\n setupFetchListeners();\r\n },\r\n uninstall: () => {\r\n restoreFetch();\r\n },\r\n };\r\n};\r\n"],"names":["nanoid","size","id","bytes","crypto","getRandomValues","Uint8Array","getDate","time","Date","now","date","year","getFullYear","month","getMonth","day","hour","getHours","minute","getMinutes","second","getSeconds","formatter","res","toString","exports","e","t","r","i","n","l","call","m","c","d","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","getFirstMatch","match","length","getSecondMatch","matchAndReturnConst","test","getWindowsVersionName","getMacOSVersionName","split","splice","map","parseInt","push","getAndroidVersionName","getVersionPrecision","compareVersions","a","Math","max","u","Array","join","reverse","min","find","assign","arguments","apply","concat","keys","forEach","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","AmazonBot","BaiduSpider","Bada","BingCrawler","BlackBerry","Chrome","ClaudeBot","Chromium","Diffbot","DuckDuckBot","Electron","Epiphany","FacebookExternalHit","Firefox","Focus","Generic","Googlebot","GPTBot","InternetArchiveCrawler","LibreWolf","Maxthon","Omgilibot","Opera","PerplexityBot","PhantomJS","PingdomBot","Puffin","QQ","QQLite","QupZilla","Roku","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","YahooSlurp","YandexBot","YouBot","amazonbot","amazon_silk","android","baiduspider","bada","bingcrawler","blackberry","chatgpt_user","chrome","claudebot","chromium","diffbot","duckduckbot","edge","electron","epiphany","facebookexternalhit","firefox","focus","generic","google_search","googlebot","gptbot","ie","internetarchivecrawler","k_meleon","librewolf","maxthon","meta_externalads","meta_externalagent","meta_externalfetcher","meta_webindexer","mz","naver","oai_searchbot","omgilibot","opera","opera_coast","pale_moon","perplexitybot","perplexity_user","phantomjs","pingdombot","puffin","qq","qqlite","qupzilla","roku","safari","sailfish","samsung_internet","seamonkey","sleipnir","sogou","swing","tizen","uc","vivaldi","webos","wechat","yahooslurp","yandex","yandexbot","youbot","bot","desktop","mobile","tablet","tv","Android","ChromeOS","HarmonyOS","iOS","Linux","MacOS","PlayStation4","WebOS","Windows","WindowsPhone","Blink","EdgeHTML","Gecko","Presto","Trident","WebKit","configurable","writable","key","getParser","Error","parse","getResult","this","_ua","parsedResult","getUA","parseBrowser","browser","isArray","some","describe","getBrowser","getBrowserName","String","name","toLowerCase","getBrowserVersion","version","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","platform","parsePlatform","getPlatformType","type","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","f","b","isBrowser","compareVersion","substr","indexOf","isEngine","is","search","versionName","replace","vendor","model","Number","getRatio","ratio","screen","window","ua","navigator","userAgent","devicePixelRatio","deviceXDPI","logicalXDPI","outerWidth","innerWidth","round","nextTime","requestIdleCallback","requestAnimationFrame","callback","setTimeout","isIgnoredScriptSource","sourceURL","DeviceInfo","constructor","uuidKey","__publicField","device","Bowser","wh","width","height","getBrowserNameVersion","getUUid","uuid","localStorage","getItem","setItem","console","warn","EventTrack","options","reporter","deviceInfo","data","timestamp","userData","emit","payload","send","getReporter","Reporter","url","config","transportConfig","maxBatchSize","maxWaitTime","flush","addEventListener","events","clearTimer","triggerSend","timer","clearTimeout","isFlush","isSending","maxLen","sendEvents","slice","safeSend","error","Promise","resolve","reject","JSON","stringify","sendBeacon","blob","Blob","sendViaXHR","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","statusText","onerror","ontimeout","timeout","TYPES","EMIT_TYPE","Core","super","transport","Map","use","plugin","pluginMap","has","set","log","CUSTOM","run","context","install","mount","stop","uninstall","clear","unmount","globalKey","createMonitor","ErrorPlugin","originalConsoleError","cleanStack","stack","generateFingerprint","parts","str","hash","charCodeAt","abs","simpleHash","filter","Boolean","getPromiseErrorDetails","reason","errorType","message","fingerprint","getErrorDetails","target","filename","colno","lineno","includes","tagName","isResourceError","element","src","href","errorHandler","errorData","ERROR","rejectionHandler","ctx","args","arg","removeEventListener","PVPlugin","originPushState","originReplaceState","lastRouteTime","emitRouteChange","to","location","from","document","referrer","timestamp1","timestamp2","ROUTE_CHANGE","duration","floor","handleHashChange","handlePopState","ROUTER","history","pushState","replaceState","BehaviorPlugin","throttleDelay","getElementXPath","nodeType","idx","parentNode","children","el","handleClick","fn","delay","lastTime","throttle","clickData","className","text","textContent","trim","xPath","BEHAVIOR_CLICK","CLICK","PerformancePlugin","paintObserver","lcpObserver","resourceObserver","loafObserver","PERFORMANCE","entryHandler","list","entry","getEntries","PERFORMANCE_FP","startTime","PERFORMANCE_FCP","disconnect","PerformanceObserver","observe","buffered","monitorPaintMetrics","PERFORMANCE_LCP","monitorLCP","initiatorType","PERFORMANCE_RESOURCE","threshold","resourceThreshold","transferSize","encodedBodySize","decodedBodySize","monitorResource","PERFORMANCE_LOAF","loafThreshold","scripts","isUserTriggered","allIgnored","invokerType","renderStart","styleAndLayoutStart","hadRecentInput","invoker","functionName","sourceFunctionName","sourceCharPosition","monitorLoAF","XHRPlugin","originOpen","originSend","setupXHRListeners","originXhr","_xhr_info","method","toUpperCase","trackerUrl","response","XHR","restoreXHR","FetchPlugin","originFetch","setupFetchListeners","fetch","input","init","Request","then","ok","success","FETCH"],"mappings":"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","x_google_ignoreList":[0,1,3]}