cwj_monitoring 0.0.22 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/url-alphabet/index.js","../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/index.browser.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/constant.ts","../src/core/deviceInfo.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":["export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n","/* @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","/* 将时间戳转为年月日 */\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\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_LONG_TASK_THRESHOLD = 100;\r\n\r\n/**\r\n * 默认资源加载阈值 (ms)\r\n */\r\nexport const DEFAULT_RESOURCE_THRESHOLD = 1000;\r\n\r\n/**\r\n * 默认 INP 阈值 (ms)\r\n */\r\nexport const DEFAULT_INP_THRESHOLD = 200;\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","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\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\n\r\nimport { DEFAULT_INP_THRESHOLD, DEFAULT_LONG_TASK_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}\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 inpObserver: PerformanceObserver | null = null;\r\n let longTaskObserver: PerformanceObserver | null = null;\r\n let resourceObserver: PerformanceObserver | null = null;\r\n // 存储交互事件的 Map: interactionId -> { entry, timeoutId }\r\n const interactionMap = new Map<number, { entry: any; timeoutId: any }>();\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 monitorINP = () => {\r\n const entryHandler = (list: { getEntries: () => any }) => {\r\n for (const entry of list.getEntries()) {\r\n // 仅处理有 interactionId 的交互事件\r\n if (!entry.interactionId) continue;\r\n\r\n // 获取该 interactionId 已有的记录\r\n const existing = interactionMap.get(entry.interactionId);\r\n if (existing) {\r\n clearTimeout(existing.timeoutId);\r\n }\r\n\r\n // 取耗时最长的事件作为该次交互的代表\r\n const maxEntry = existing && existing.entry.duration > entry.duration ? existing.entry : entry;\r\n\r\n // 防抖:200ms 内无新事件则上报\r\n const timeoutId = setTimeout(() => {\r\n interactionMap.delete(maxEntry.interactionId);\r\n\r\n if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_INP, maxEntry)) {\r\n return;\r\n }\r\n\r\n // 只上报耗时超过阈值的事件\r\n const threshold = options.inpThreshold ?? DEFAULT_INP_THRESHOLD;\r\n if (maxEntry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_INP, {\r\n value: maxEntry.duration,\r\n startTime: maxEntry.startTime,\r\n name: maxEntry.name,\r\n interactionId: maxEntry.interactionId,\r\n });\r\n }\r\n }, 200);\r\n\r\n interactionMap.set(entry.interactionId, { entry: maxEntry, timeoutId });\r\n }\r\n };\r\n\r\n // 观察 'event' 类型,durationThreshold 默认为 40ms\r\n try {\r\n inpObserver = new PerformanceObserver(entryHandler);\r\n inpObserver.observe({ type: 'event', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] INP observation not supported:', e);\r\n }\r\n };\r\n\r\n const monitorLongTask = () => {\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_LONGTASK, entry)) {\r\n continue;\r\n }\r\n // 长任务默认时间为50ms,这里提高阀值,减少日志噪音\r\n const threshold = options.longTaskThreshold ?? DEFAULT_LONG_TASK_THRESHOLD;\r\n if (entry.duration > threshold) {\r\n context?.emit(EMIT_TYPE.PERFORMANCE_LONGTASK, {\r\n startTime: entry.startTime,\r\n duration: entry.duration,\r\n name: entry.name,\r\n attribution: entry.attribution,\r\n });\r\n }\r\n }\r\n };\r\n\r\n try {\r\n longTaskObserver = new PerformanceObserver(entryHandler);\r\n longTaskObserver.observe({ type: 'longtask', buffered: true });\r\n } catch (e) {\r\n console.warn('[CWJ Monitor] Long Task 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 monitorINP();\r\n monitorLongTask();\r\n monitorResource();\r\n },\r\n uninstall: () => {\r\n paintObserver?.disconnect();\r\n lcpObserver?.disconnect();\r\n inpObserver?.disconnect();\r\n longTaskObserver?.disconnect();\r\n resourceObserver?.disconnect();\r\n // 清理所有待处理的 INP 定时器\r\n interactionMap.forEach((value) => clearTimeout(value.timeoutId));\r\n interactionMap.clear();\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":["scopedUrlAlphabet","date","this","__publicField","TYPES","EMIT_TYPE"],"mappings":"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","x_google_ignoreList":[0,1,3]}
@@ -0,0 +1,2 @@
1
+ let e=(e=21)=>{let t="",r=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&r[e]];return t};const t=(e=Date.now())=>{const t=new Date(e),r=t.getFullYear(),n=t.getMonth()+1,i=t.getDate(),o=t.getHours(),s=t.getMinutes(),a=t.getSeconds(),u=e=>{let t="";return t=e<10?"0"+e:e.toString(),t};return r+"-"+u(n)+"-"+u(i)+" "+u(o)+":"+u(s)+":"+u(a)};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var n={exports:{}},i=r(n.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},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 n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},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){t.__esModule=!0,t.default=void 0;var n=r(18),i=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":case"NT 5.1":return"XP";case"NT 5.0":return"2000";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],n=t[1];if(10===r)switch(n){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,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),o=e.getVersionPrecision(r),s=Math.max(i,o),a=0,u=e.map([t,r],function(t){var r=s-e.getVersionPrecision(t),n=t+new Array(r+1).join(".0");return e.map(n.split("."),function(e){return new Array(20-e.length).join("0")+e}).reverse()});for(n&&(a=s-Math.min(i,o)),s-=1;s>=a;){if(u[0][s]>u[1][s])return 1;if(u[0][s]===u[1][s]){if(s===a)return 0;s-=1}else if(u[0][s]<u[1][s])return-1}},e.map=function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n},e.find=function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}},e.assign=function(e){for(var t,r,n=e,i=arguments.length,o=new Array(i>1?i-1:0),s=1;s<i;s++)o[s-1]=arguments[s];if(Object.assign)return Object.assign.apply(Object,[e].concat(o));var a=function(){var e=o[t];"object"==typeof e&&null!==e&&Object.keys(e).forEach(function(t){n[t]=e[t]})};for(t=0,r=o.length;t<r;t+=1)a();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||""},e}();t.default=i,e.exports=t.default},18:function(e,t,r){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){t.__esModule=!0,t.default=void 0;var n,i=(n=r(91))&&n.__esModule?n:{default:n},o=r(18);function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var a=function(){function e(){}var t,r,n;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 i.default(e,t)},e.parse=function(e){return new i.default(e).getResult()},t=e,n=[{key:"BROWSER_MAP",get:function(){return o.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return o.ENGINE_MAP}},{key:"OS_MAP",get:function(){return o.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return o.PLATFORMS_MAP}}],(r=null)&&s(t.prototype,r),n&&s(t,n),e}();t.default=a,e.exports=t.default},91:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=u(r(92)),i=u(r(93)),o=u(r(94)),s=u(r(95)),a=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=a.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.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=a.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.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=a.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.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=a.default.find(s.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 a.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},n=0,i={},o=0;if(Object.keys(e).forEach(function(t){var s=e[t];"string"==typeof s?(i[t]=s,o+=1):"object"==typeof s&&(r[t]=s,n+=1)}),n>0){var s=Object.keys(r),u=a.default.find(s,function(e){return t.isOS(e)});if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=a.default.find(s,function(e){return t.isPlatform(e)});if(c){var l=this.satisfies(r[c]);if(void 0!==l)return l}}if(o>0){var f=Object.keys(i),h=a.default.find(f,function(e){return t.isBrowser(e,!0)});if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=a.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(a.default.compareVersions(i,r,n))>-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){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},o=/version\/(\d+(\.?_?\d+)+)/i,s=[{test:[/gptbot/i],describe:function(e){var t={name:"GPTBot"},r=i.default.getFirstMatch(/gptbot\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/chatgpt-user/i],describe:function(e){var t={name:"ChatGPT-User"},r=i.default.getFirstMatch(/chatgpt-user\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/oai-searchbot/i],describe:function(e){var t={name:"OAI-SearchBot"},r=i.default.getFirstMatch(/oai-searchbot\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,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=i.default.getFirstMatch(/(?:claudebot|claude-web|claude-user|claude-searchbot)\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(e){var t={name:"Omgilibot"},r=i.default.getFirstMatch(/(?:omgilibot|webzio-extended)\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/diffbot/i],describe:function(e){var t={name:"Diffbot"},r=i.default.getFirstMatch(/diffbot\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/perplexitybot/i],describe:function(e){var t={name:"PerplexityBot"},r=i.default.getFirstMatch(/perplexitybot\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/perplexity-user/i],describe:function(e){var t={name:"Perplexity-User"},r=i.default.getFirstMatch(/perplexity-user\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/youbot/i],describe:function(e){var t={name:"YouBot"},r=i.default.getFirstMatch(/youbot\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/meta-webindexer/i],describe:function(e){var t={name:"Meta-WebIndexer"},r=i.default.getFirstMatch(/meta-webindexer\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/meta-externalads/i],describe:function(e){var t={name:"Meta-ExternalAds"},r=i.default.getFirstMatch(/meta-externalads\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/meta-externalagent/i],describe:function(e){var t={name:"Meta-ExternalAgent"},r=i.default.getFirstMatch(/meta-externalagent\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/meta-externalfetcher/i],describe:function(e){var t={name:"Meta-ExternalFetcher"},r=i.default.getFirstMatch(/meta-externalfetcher\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/amazonbot/i],describe:function(e){var t={name:"AmazonBot"},r=i.default.getFirstMatch(/amazonbot\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/bingbot/i],describe:function(e){var t={name:"BingCrawler"},r=i.default.getFirstMatch(/bingbot\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/baiduspider/i],describe:function(e){var t={name:"BaiduSpider"},r=i.default.getFirstMatch(/baiduspider\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/duckduckbot/i],describe:function(e){var t={name:"DuckDuckBot"},r=i.default.getFirstMatch(/duckduckbot\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/ia_archiver/i],describe:function(e){var t={name:"InternetArchiveCrawler"},r=i.default.getFirstMatch(/ia_archiver\/(\d+(\.\d+)+)/i,e)||i.default.getFirstMatch(o,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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,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=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=i.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=i.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=i.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=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=i.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=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(o,e)||i.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=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/librewolf/i],describe:function(e){var t={name:"LibreWolf"},r=i.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=i.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=i.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=i.default.getFirstMatch(/(?:sogoumobilebrowser)[\s/](\d+(\.?_?\d+)+)/i,e),n=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e),o=i.default.getFirstMatch(/se ([\d.]+)x/i,e),s=r||n||o;return s&&(t.version=s),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=i.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=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=i.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=i.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=i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=s,e.exports=t.default},93:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},o=r(18),s=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:o.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:o.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:o.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=i.default.getMacOSVersionName(t),n={name:o.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:o.OS_MAP.iOS,version:t}}},{test:[/OpenHarmony/i],describe:function(e){var t=i.default.getFirstMatch(/OpenHarmony\s+(\d+(\.\d+)*)/i,e);return{name:o.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=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:o.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:o.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:o.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:o.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:o.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.PlayStation4,version:t}}}];t.default=s,e.exports=t.default},94:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},o=r(18),s=[{test:[/googlebot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Google"}}},{test:[/amazonbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Amazon"}}},{test:[/gptbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/chatgpt-user/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/oai-searchbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"OpenAI"}}},{test:[/baiduspider/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Baidu"}}},{test:[/bingbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Bing"}}},{test:[/duckduckbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"DuckDuckGo"}}},{test:[/claudebot/i,/claude-web/i,/claude-user/i,/claude-searchbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Anthropic"}}},{test:[/omgilibot/i,/webzio-extended/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Webz.io"}}},{test:[/diffbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Diffbot"}}},{test:[/perplexitybot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Perplexity AI"}}},{test:[/perplexity-user/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Perplexity AI"}}},{test:[/youbot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"You.com"}}},{test:[/ia_archiver/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Internet Archive"}}},{test:[/meta-webindexer/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalads/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalagent/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/meta-externalfetcher/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/facebookexternalhit/i,/facebookcatalog/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Meta"}}},{test:[/yahoo/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Yahoo"}}},{test:[/yandexbot/i,/yandexmobilebot/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Yandex"}}},{test:[/pingdom/i],describe:function(){return{type:o.PLATFORMS_MAP.bot,vendor:"Pingdom"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:o.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:o.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=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:o.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/Nokia/i],describe:function(e){var t=i.default.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i,e),r={type:o.PLATFORMS_MAP.mobile,vendor:"Nokia"};return t&&(r.model=t),r}},{test:[/[^-]mobi/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:o.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:o.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}}];t.default=s,e.exports=t.default},95:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},o=r(18),s=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:o.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:o.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:o.ENGINE_MAP.Trident},r=i.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:o.ENGINE_MAP.Presto},r=i.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:o.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:o.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:o.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=s,e.exports=t.default}}));function o(){let e=0;const t=window.screen,r=navigator.userAgent.toLowerCase();return void 0!==window.devicePixelRatio?e=window.devicePixelRatio:~r.indexOf("msie")?t.deviceXDPI&&t.logicalXDPI&&(e=t.deviceXDPI/t.logicalXDPI):void 0!==window.outerWidth&&void 0!==window.innerWidth&&(e=window.outerWidth/window.innerWidth),e&&(e=Math.round(100*e)),e}const s=window.requestIdleCallback||window.requestAnimationFrame||(e=>window.setTimeout(e,1e3/60));var a=Object.defineProperty,u=(e,t,r)=>(((e,t,r)=>{t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class d{constructor(e="track_uuid"){u(this,"device"),u(this,"uuid",""),this.device=function(){const{browser:e,os:t,platform:r}=i.parse(window.navigator.userAgent);return{browser:e,os:t,platform:r,ratio:o(),wh:{width:window.screen.width,height:window.screen.height}}}(),this.getUUid(e)}getUUid(t){try{const r=localStorage.getItem(t);r?this.uuid=r:(this.uuid=e(),localStorage.setItem(t,this.uuid))}catch(t){this.uuid=e(),console.warn("[CWJ Monitor] localStorage access failed, UUID will not be persisted:",t)}}}var c=Object.defineProperty,l=(e,t,r)=>(((e,t,r)=>{t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class f{constructor(e,t){l(this,"deviceInfo"),l(this,"reporter"),l(this,"data"),this.deviceInfo=new d(e.uuidKey),this.reporter=t,this.data=e.data}formatter(e,r){const n=Date.now();return{device:this.deviceInfo.device,uuid:this.deviceInfo.uuid,type:e,data:r,date:t(n),userData:this.data}}emit(e,t){const r=this.formatter(e,t);this.reporter.send(r)}getReporter(){return this.reporter}}var h=Object.defineProperty,p=(e,t,r)=>(((e,t,r)=>{t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class m{constructor(e,t){var r;p(this,"url"),p(this,"transportConfig"),p(this,"events",[]),p(this,"isSending",!1),p(this,"timer",null),this.url=e,this.transportConfig={maxBatchSize:t?.maxBatchSize??5,maxWaitTime:t?.maxWaitTime??3e4},r=()=>this.flush(),window.addEventListener("beforeunload",()=>{r()})}send(e){this.events.push(e),this.events.length>=this.transportConfig.maxBatchSize?(this.clearTimer(),this.triggerSend()):this.timer||(this.timer=setTimeout(()=>{this.timer=null,this.triggerSend()},this.transportConfig.maxWaitTime))}flush(){return this.triggerSend(!0)}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=null)}async triggerSend(e=!1){if(!this.isSending&&this.events.length){this.isSending=!0;try{const t=e?this.events.length:this.transportConfig.maxBatchSize,r=this.events.slice(0,t);this.events=this.events.slice(t),await this.safeSend(r),this.events.length&&s(()=>this.triggerSend())}catch(e){}finally{this.isSending=!1}}}safeSend(e){return new Promise((t,r)=>{if(!e.length)return void t();const n=JSON.stringify(e);if("function"==typeof navigator.sendBeacon){const e=new Blob([n],{type:"application/json"});navigator.sendBeacon(this.url,e)?t():this.sendViaXHR(n,t,r)}else this.sendViaXHR(n,t,r)})}sendViaXHR(e,t,r){const n=new XMLHttpRequest;n.open("POST",this.url,!0),n.setRequestHeader("Content-Type","application/json"),n.onload=()=>{n.status>=200&&n.status<300?t():r(new Error(`HTTP ${n.status}: ${n.statusText}`))},n.onerror=()=>r(new Error("Network error")),n.ontimeout=()=>r(new Error("Request timeout")),n.timeout=1e4,n.send(e)}}var g=(e=>(e.ERROR="error",e.CLICK="click",e.PERFORMANCE="performance",e.ROUTER="router",e.XHR="xhr",e.FETCH="fetch",e))(g||{}),b=(e=>(e.ERROR="error",e.BEHAVIOR_CLICK="click",e.ROUTE_CHANGE="route_change",e.PERFORMANCE_FP="performance_fp",e.PERFORMANCE_FCP="performance_fcp",e.PERFORMANCE_LCP="performance_lcp",e.PERFORMANCE_INP="performance_inp",e.PERFORMANCE_LONGTASK="performance_longtask",e.PERFORMANCE_RESOURCE="performance_resource",e.XHR="xhr",e.FETCH="fetch",e.CUSTOM="custom",e))(b||{}),v=Object.defineProperty,M=(e,t,r)=>(((e,t,r)=>{t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class w extends f{constructor(e){super(e,new m(e.url,e.transport)),M(this,"pluginMap",new Map),M(this,"options"),this.options=e}use(e){return this.pluginMap.has(e.name)||this.pluginMap.set(e.name,e),this}log(e,t=b.CUSTOM){this.emit(t,e)}run(){const e={emit:this.emit.bind(this),url:this.options.url};this.pluginMap.forEach(t=>{t.install(e)}),this.mount()}stop(){this.pluginMap.forEach(e=>{e.uninstall?.()}),this.pluginMap.clear(),this.unmount()}mount(){const{globalKey:e="$track"}=this.options;"undefined"!=typeof window&&(window[e]=this)}unmount(){const{globalKey:e="$track"}=this.options;"undefined"!=typeof window&&window[e]===this&&delete window[e]}}function y(e){return new w(e)}const P=(e={})=>{let t,r;const n=e=>{if(!e)return;return e.split("\n").slice(0,11).join("\n")},i=(...e)=>(e=>{let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t&=t;return Math.abs(t).toString(36)})(e.filter(Boolean).join("|")),o=e=>e.reason instanceof Error?{errorType:"promise",message:e.reason.message,stack:n(e.reason.stack),name:e.reason.name,fingerprint:i(e.reason.message,e.reason.stack)}:{errorType:"promise",message:String(e.reason)},s=e=>{const{error:t,target:r,filename:o,message:s}=e;if(t instanceof Error)return{errorType:"js",name:t.name,message:t.message,stack:n(t.stack),filename:o,colno:e.colno,lineno:e.lineno,fingerprint:i(t.message,t.stack)};if((e=>e&&["LINK","SCRIPT","IMG","AUDIO","VIDEO","IFRAME"].includes(e.tagName))(r)){const e=r,t="src"in e?e.src:e.href;return{errorType:"resource",message:`Resource load failed: ${t}`,url:t,tagName:e.tagName,fingerprint:i(`resource:${t}`)}}return{errorType:"unknown",message:s,filename:o}},a=t=>{const n={type:"sync",...s(t)};e.filter&&!e.filter(n)||r?.emit(b.ERROR,n)},u=t=>{const n={type:"async",...o(t)};e.filter&&!e.filter(n)||r?.emit(b.ERROR,n)};return{name:g.ERROR,install:n=>{r=n,t=console.error,console.error=(...n)=>{t?.apply(console,n);const i={type:"console",message:n.map(e=>String(e)).join(" "),stack:(new Error).stack};e.filter&&!e.filter(i)||r?.emit(b.ERROR,i)},window.addEventListener("error",a,!0),window.addEventListener("unhandledrejection",u,!0)},uninstall:()=>{t&&(console.error=t),window.removeEventListener("error",a,!0),window.removeEventListener("unhandledrejection",u,!0)}}},S=(e={})=>{let t,r,n,i=Date.now();const o=r=>{const n=Date.now(),o=window.location.href,s=document.referrer;var a,u;e.filter&&!e.filter(o,s)||(t?.emit(b.ROUTE_CHANGE,{from:s,to:o,type:r,duration:(a=n,u=i,a<u&&([a,u]=[u,a]),Math.floor((a-u)/1e3))}),i=n)},s=()=>o("hashchange"),a=()=>o("popstate");return{name:g.ROUTER,install:e=>{t=e,i=Date.now(),window.addEventListener("hashchange",s),window.addEventListener("popstate",a),r=window.history.pushState,n=window.history.replaceState,window.history.pushState=(...e)=>{r.apply(window.history,e),o("pushState")},window.history.replaceState=(...e)=>{n.apply(window.history,e),o("replaceState")}},uninstall:()=>{window.removeEventListener("hashchange",s),window.removeEventListener("popstate",a),r&&(window.history.pushState=r),n&&(window.history.replaceState=n)}}},A=(e={})=>{const{throttleDelay:t=500}=e;let r;const n=e=>{if(!e||1!==e.nodeType)return"";if(e.id)return`//*[@id="${e.id}"]`;const t=Array.from(e.parentNode?.children||[]).filter(t=>t.tagName===e.tagName).indexOf(e)+1;return`${n(e.parentNode)}/${e.tagName.toLowerCase()}[${t}]`},i=function(e,t){let r=0;return function(...n){const i=Date.now();i-r>=t&&(e.apply(this,n),r=i)}}(t=>{const i=t.target;if(!i)return;if(e.filter&&!e.filter(i))return;const o={tagName:i.tagName,id:i.id,className:i.className,text:i.textContent?.trim(),xPath:n(i)};r?.emit(b.BEHAVIOR_CLICK,o)},t);return{name:g.CLICK,install:e=>{r=e,document.addEventListener(b.BEHAVIOR_CLICK,i,!0)},uninstall:()=>{document.removeEventListener(b.BEHAVIOR_CLICK,i,!0)}}},_=(e={})=>{let t,r=null,n=null,i=null,o=null,s=null;const a=new Map;return{name:g.PERFORMANCE,install:u=>{t=u,(()=>{const n=n=>{for(const r of n.getEntries())if("first-paint"===r.name){if(e.filter&&!e.filter(b.PERFORMANCE_FP,r.startTime))continue;t?.emit(b.PERFORMANCE_FP,r.startTime)}else if("first-contentful-paint"===r.name){if(e.filter&&!e.filter(b.PERFORMANCE_FCP,r.startTime))continue;t?.emit(b.PERFORMANCE_FCP,r.startTime)}r?.disconnect()};try{r=new PerformanceObserver(n),r.observe({type:"paint",buffered:!0})}catch(e){console.warn("[CWJ Monitor] Paint observation not supported:",e)}})(),(()=>{const r=r=>{n&&n.disconnect();for(const n of r.getEntries())e.filter&&!e.filter(b.PERFORMANCE_LCP,n.startTime)||t?.emit(b.PERFORMANCE_LCP,n.startTime)};try{n=new PerformanceObserver(r),n.observe({type:"largest-contentful-paint",buffered:!0})}catch(e){console.warn("[CWJ Monitor] LCP observation not supported:",e)}})(),(()=>{const r=r=>{for(const n of r.getEntries()){if(!n.interactionId)continue;const r=a.get(n.interactionId);r&&clearTimeout(r.timeoutId);const i=r&&r.entry.duration>n.duration?r.entry:n,o=setTimeout(()=>{if(a.delete(i.interactionId),e.filter&&!e.filter(b.PERFORMANCE_INP,i))return;const r=e.inpThreshold??200;i.duration>r&&t?.emit(b.PERFORMANCE_INP,{value:i.duration,startTime:i.startTime,name:i.name,interactionId:i.interactionId})},200);a.set(n.interactionId,{entry:i,timeoutId:o})}};try{i=new PerformanceObserver(r),i.observe({type:"event",buffered:!0})}catch(e){console.warn("[CWJ Monitor] INP observation not supported:",e)}})(),(()=>{const r=r=>{for(const n of r.getEntries()){if(e.filter&&!e.filter(b.PERFORMANCE_LONGTASK,n))continue;const r=e.longTaskThreshold??100;n.duration>r&&t?.emit(b.PERFORMANCE_LONGTASK,{startTime:n.startTime,duration:n.duration,name:n.name,attribution:n.attribution})}};try{o=new PerformanceObserver(r),o.observe({type:"longtask",buffered:!0})}catch(e){console.warn("[CWJ Monitor] Long Task observation not supported:",e)}})(),(()=>{const r=r=>{for(const n of r.getEntries()){if("fetch"!==n.initiatorType&&"xmlhttprequest"!==n.initiatorType)continue;if(e.filter&&!e.filter(b.PERFORMANCE_RESOURCE,n))continue;const r=e.resourceThreshold??1e3;n.duration>r&&t?.emit(b.PERFORMANCE_RESOURCE,{name:n.name,initiatorType:n.initiatorType,duration:n.duration,startTime:n.startTime,transferSize:n.transferSize,encodedBodySize:n.encodedBodySize,decodedBodySize:n.decodedBodySize})}};try{s=new PerformanceObserver(r),s.observe({type:"resource",buffered:!0})}catch(e){console.warn("[CWJ Monitor] Resource observation not supported:",e)}})()},uninstall:()=>{r?.disconnect(),n?.disconnect(),i?.disconnect(),o?.disconnect(),s?.disconnect(),a.forEach(e=>clearTimeout(e.timeoutId)),a.clear()}}},F=(e={})=>{let t,r,n;const i=()=>{const i=window.XMLHttpRequest;i&&(r=i.prototype.open,n=i.prototype.send,i.prototype.open=function(...e){return this._xhr_info={method:e[0].toUpperCase(),url:String(e[1]),startTime:0},r.apply(this,e)},i.prototype.send=function(...r){this._xhr_info&&(this._xhr_info.startTime=Date.now());return this.addEventListener("loadend",()=>{if(this._xhr_info){const r=t?.url,{url:n,method:i,startTime:o}=this._xhr_info;if(r&&n.includes(r))return;if(e.filter&&!e.filter(i,n))return;const s=Date.now()-o,a=this.status;if(!(a>=200&&a<300)){const e={method:i,url:n,status:a,duration:s,response:this.response?String(this.response).slice(0,200):""};t?.emit(b.XHR,e)}}}),n.apply(this,r)})};return{name:g.XHR,install:e=>{t=e,i()},uninstall:()=>{(()=>{const e=window.XMLHttpRequest;e&&(r&&(e.prototype.open=r),n&&(e.prototype.send=n))})()}}},O=(e={})=>{let t,r;const n=()=>{r=window.fetch,r&&(window.fetch=function(n,i){const o=Date.now(),s=(i?.method||"GET").toUpperCase(),a=n instanceof Request?n.url:String(n);return r.apply(this,[n,i]).then(r=>{const n=t?.url;if(n&&a.includes(n))return r;if(e.filter&&!e.filter(s,a))return r;if(!r.ok){const e=Date.now()-o,n={method:s,url:a,status:r.status,duration:e,success:!1};t?.emit(b.FETCH,n)}return r},r=>{const n=t?.url;if(n&&a.includes(n))throw r;if(e.filter&&!e.filter(s,a))throw r;const i=Date.now()-o,u={method:s,url:a,status:0,duration:i,success:!1,message:r.message};throw t?.emit(b.FETCH,u),r})})};return{name:g.FETCH,install:e=>{t=e,n()},uninstall:()=>{r&&(window.fetch=r)}}};export{A as BehaviorPlugin,w as Core,b as EMIT_TYPE,P as ErrorPlugin,O as FetchPlugin,S as PVPlugin,_ as PerformancePlugin,F as XHRPlugin,y as createMonitor};
2
+ //# sourceMappingURL=index.min.js.map