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.
package/dist/index.js CHANGED
@@ -1 +1,915 @@
1
- var e,t=new Uint8Array(16);function r(){if(!e&&!(e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(t)}for(var i=[],n=0;n<256;++n)i.push((n+256).toString(16).slice(1));var s={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function o(e,t,n){if(s.randomUUID&&!t&&!e)return s.randomUUID();var o=(e=e||{}).random||(e.rng||r)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(var a=0;a<16;++a)t[n+a]=o[a];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(o)}const a="track_uuid",c=e=>{const t=new Date(e),r=t.getFullYear(),i=t.getMonth()+1,n=t.getDate(),s=t.getHours(),o=t.getMinutes(),a=t.getSeconds(),c=e=>{let t="";return t=e<10?"0"+e:e.toString(),t};return r+"-"+c(i)+"-"+c(n)+" "+c(s)+":"+c(o)+":"+c(a)};function u(e){return/^\d+$/.test(e.toString())}const d=window.requestIdleCallback||window.requestAnimationFrame||(e=>window.setTimeout(e,1e3/60));class l{nextValidator;constructor(){this.nextValidator=null}}const h=new class extends l{constructor(){super()}setNext(e){this.nextValidator=e}validate(e){return t=e.url,new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i").test(t)?!this.nextValidator||this.nextValidator.validate(e):(console.error("请输入符合规范的url"),!1);var t}},f=new class extends l{constructor(){super()}setNext(e){this.nextValidator=e}validate(e){return e.max&&!u(e.max)?(console.error("max请输入正整数"),!1):!this.nextValidator||this.nextValidator.validate(e)}},m=new class extends l{constructor(){super()}setNext(e){this.nextValidator=e}validate(e){return e.time&&!u(e.time)?(console.error("time请输入正整数"),!1):!this.nextValidator||this.nextValidator.validate(e)}};function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function v(e){var t=function(e,t){if("object"!=p(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=p(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==p(t)?t:t+""}function w(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,v(i.key),i)}}function b(e,t,r){return t&&w(e.prototype,t),r&&w(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}h.setNext(f),f.setNext(m);var y={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},M={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},k={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},S={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},E={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"},F=function(){function e(){g(this,e)}return b(e,null,[{key:"getFirstMatch",value:function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""}},{key:"getSecondMatch",value:function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""}},{key:"matchAndReturnConst",value:function(e,t,r){if(e.test(t))return r}},{key:"getWindowsVersionName",value: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}}},{key:"getMacOSVersionName",value:function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){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}}},{key:"getAndroidVersionName",value: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}},{key:"getVersionPrecision",value:function(e){return e.split(".").length}},{key:"compareVersions",value:function(t,r){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e.getVersionPrecision(t),s=e.getVersionPrecision(r),o=Math.max(n,s),a=0,c=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&&(a=o-Math.min(n,s)),o-=1;o>=a;){if(c[0][o]>c[1][o])return 1;if(c[0][o]===c[1][o]){if(o===a)return 0;o-=1}else if(c[0][o]<c[1][o])return-1}}},{key:"map",value: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}},{key:"find",value: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}}},{key:"assign",value:function(e){for(var t,r,i=e,n=arguments.length,s=new Array(n>1?n-1:0),o=1;o<n;o++)s[o-1]=arguments[o];if(Object.assign)return Object.assign.apply(Object,[e].concat(s));var a=function(){var e=s[t];"object"===p(e)&&null!==e&&Object.keys(e).forEach((function(t){i[t]=e[t]}))};for(t=0,r=s.length;t<r;t+=1)a();return e}},{key:"getBrowserAlias",value:function(e){return y[e]}},{key:"getBrowserTypeByAlias",value:function(e){return M[e]||""}}]),e}(),O=/version\/(\d+(\.?_?\d+)+)/i,R=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=F.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(O,e)||F.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=F.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=F.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=F.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=F.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(O,e)||F.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=F.getFirstMatch(O,e)||F.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||F.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=F.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=F.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=F.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=F.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=F.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=F.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=F.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=F.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=F.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=F.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=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(O,e)||F.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=F.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=F.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=F.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=F.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=F.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=F.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=F.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=F.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=F.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=F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=F.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:F.getFirstMatch(t,e),version:F.getSecondMatch(t,e)}}}],P=[{test:[/Roku\/DVP/],describe:function(e){var t=F.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:S.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=F.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:S.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=F.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=F.getWindowsVersionName(t);return{name:S.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:S.iOS},r=F.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=F.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=F.getMacOSVersionName(t),i={name:S.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=F.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:S.iOS,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=F.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=F.getAndroidVersionName(t),i={name:S.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=F.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:S.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=F.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||F.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||F.getFirstMatch(/\bbb(\d+)/i,e);return{name:S.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=F.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:S.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=F.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:S.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:S.Linux}}},{test:[/CrOS/],describe:function(){return{name:S.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=F.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:S.PlayStation4,version:t}}}],_=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=F.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:k.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:k.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:k.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:k.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:k.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:k.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:k.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=F.getFirstMatch(/(ipod|iphone)/i,e);return{type:k.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:k.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:k.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:k.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:k.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:k.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:k.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:k.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:k.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:k.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:k.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:k.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:k.tv}}}],B=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:E.Blink};var t=F.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:E.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:E.Trident},r=F.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:E.Presto},r=F.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:E.Gecko},r=F.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:E.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:E.WebKit},r=F.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}],x=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(g(this,e),null==t||""===t)throw new Error("UserAgent parameter can't be empty");this._ua=t,this.parsedResult={},!0!==r&&this.parse()}return b(e,[{key:"getUA",value:function(){return this._ua}},{key:"test",value:function(e){return e.test(this._ua)}},{key:"parseBrowser",value:function(){var e=this;this.parsedResult.browser={};var t=F.find(R,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)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}},{key:"getBrowser",value:function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}},{key:"getBrowserName",value:function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}},{key:"getBrowserVersion",value:function(){return this.getBrowser().version}},{key:"getOS",value:function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}},{key:"parseOS",value:function(){var e=this;this.parsedResult.os={};var t=F.find(P,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)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}},{key:"getOSName",value:function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||"":t||""}},{key:"getOSVersion",value:function(){return this.getOS().version}},{key:"getPlatform",value:function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}},{key:"getPlatformType",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getPlatform().type;return e?String(t).toLowerCase()||"":t||""}},{key:"parsePlatform",value:function(){var e=this;this.parsedResult.platform={};var t=F.find(_,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)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}},{key:"getEngine",value:function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}},{key:"getEngineName",value:function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}},{key:"parseEngine",value:function(){var e=this;this.parsedResult.engine={};var t=F.find(B,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)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}},{key:"parse",value:function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}},{key:"getResult",value:function(){return F.assign({},this.parsedResult)}},{key:"satisfies",value:function(e){var t=this,r={},i=0,n={},s=0;if(Object.keys(e).forEach((function(t){var o=e[t];"string"==typeof o?(n[t]=o,s+=1):"object"===p(o)&&(r[t]=o,i+=1)})),i>0){var o=Object.keys(r),a=F.find(o,(function(e){return t.isOS(e)}));if(a){var c=this.satisfies(r[a]);if(void 0!==c)return c}var u=F.find(o,(function(e){return t.isPlatform(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}}if(s>0){var l=Object.keys(n),h=F.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(n[h])}}},{key:"isBrowser",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),n=F.getBrowserTypeByAlias(i);return t&&n&&(i=n.toLowerCase()),i===r}},{key:"compareVersion",value: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(F.compareVersions(n,r,i))>-1}},{key:"isOS",value:function(e){return this.getOSName(!0)===String(e).toLowerCase()}},{key:"isPlatform",value:function(e){return this.getPlatformType(!0)===String(e).toLowerCase()}},{key:"isEngine",value:function(e){return this.getEngineName(!0)===String(e).toLowerCase()}},{key:"is",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}},{key:"some",value:function(){var e=this;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).some((function(t){return e.is(t)}))}}]),e}(),A=function(){function e(){g(this,e)}return b(e,null,[{key:"getParser",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("string"!=typeof e)throw new Error("UserAgent should be a string");return new x(e,t)}},{key:"parse",value:function(e){return new x(e).getResult()}},{key:"BROWSER_MAP",get:function(){return M}},{key:"ENGINE_MAP",get:function(){return E}},{key:"OS_MAP",get:function(){return S}},{key:"PLATFORMS_MAP",get:function(){return k}}]),e}();function C(){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}class N{device;uuid;constructor(){this.device=function(){const{browser:e,os:t,platform:r}=A.parse(window.navigator.userAgent);return{browser:e,os:t,platform:r,ratio:C(),wh:{width:window.screen.width,height:window.screen.height}}}(),localStorage.getItem(a)?this.uuid=localStorage.getItem(a):(this.uuid=o(),localStorage.setItem(a,this.uuid))}}class T extends N{url;max;time;timer;visitTime;data;events;constructor(e){var t;super(),this.url=e.url,this.max=e.max||5,this.time=e.time||3e4,this.timer,this.visitTime=Date.now(),this.data=e.data,this.events=[],t=this.send.bind(this,!0),window.addEventListener("beforeunload",(()=>{t()}))}formatter(e,t){const r=Date.now(),i=Object.assign({},{device:this.device,uuid:this.uuid},{type:e,data:t,date:c(r),url:window.location.href,referrer:document.referrer,uuid:localStorage.getItem(a),duration:(n=r,s=this.visitTime,n<s&&([n,s]=[s,n]),Math.floor((n-s)/1e3)),userData:this.data});var n,s;return this.visitTime=r,i}send(e){if(this.events.length){const t=e?this.events.length:this.max,r=this.events.slice(0,t);this.events=this.events.slice(t),this.safeSend(r),this.events.length&&d(this.send.bind(this,!1))}}emit(e,t){const r=this.formatter(e,t);this.events.push(r),this.timer&&clearTimeout(this.timer),this.events.length>=this.max?this.send(!1):this.timer=setTimeout((()=>{this.send(!1)}),this.time)}safeSend(e){if(e.length)if(window.navigator.sendBeacon instanceof Function)window.navigator.sendBeacon(this.url,JSON.stringify(e));else{const t=new XMLHttpRequest;t.open("POST",this.url,!0),t.send(JSON.stringify(e))}}}class L extends T{pluginMap=new Map;constructor(e){super(e)}use(e){return this.pluginMap.has(e.name)||this.pluginMap.set(e.name,e),this}run(){this.pluginMap.forEach((e=>{e.install(this)}))}}class V{static instance;static plugins=new Map;static registerPlugin(e){this.plugins.set(e.name,e)}static start(e){h.validate(e)&&(this.instance=new L(e),window.$track=this.instance,this.loadPlugins(e))}static loadPlugins(e){const{plugin:t=[]}=e;(t.length>0?t:Array.from(this.plugins.keys())).forEach((e=>{const t=this.plugins.get(e);t&&this.instance.use(t)})),this.instance.run()}}class I{name;track;constructor(e){this.name=e}}var D=(e=>(e.ERROR="error",e.CLICK="click",e.PERFORMANCE="performance",e.ROUTER="router",e))(D||{}),z=(e=>(e.ERROR="error",e.ROUTER_HASH="hashchange",e.ROUTER_HISTORY="historychange",e.PERFORMANCE_FP="performance_fp",e.PERFORMANCE_FCP="performance_fcp",e.PERFORMANCE_LCP="performance_lcp",e.PERFORMANCE_DOMCONTENTLOADED="performance_DOMContentLoaded",e.PERFORMANCE_LOAD="performance_load",e.BEHAVIOR_CLICK="click",e))(z||{});var U=new class extends I{originalConsoleError;constructor(){super(D.ERROR)}install(e){this.track=e,this.overrideConsoleError(),this.setupErrorListeners()}overrideConsoleError(){this.originalConsoleError=console.error,console.error=(...e)=>{this.originalConsoleError?.apply(console,e);const t={type:"console",message:e.map((e=>String(e))).join(" "),stack:(new Error).stack};this.track?.emit(z.ERROR,t)}}setupErrorListeners(){window.addEventListener("error",(e=>{this.handleSyncError(e,this.track)}),!0),window.addEventListener("unhandledrejection",(e=>{this.handleAsyncError(e,this.track)}),!0)}handleSyncError(e,t){const r={type:"sync",...this.getErrorDetails(e)};t?.emit(z.ERROR,r)}handleAsyncError(e,t){const r={type:"async",...this.getPromiseErrorDetails(e)};t?.emit(z.ERROR,r)}getPromiseErrorDetails(e){return e.reason instanceof Error?{errorType:"promise",message:e.reason.message,stack:e.reason.stack}:{errorType:"promise",message:String(e.reason)}}getErrorDetails(e){const{error:t,target:r,filename:i,message:n}=e;if(t instanceof Error)return{errorType:"js",message:t.message,stack:t.stack,filename:i,colno:e.colno,lineno:e.lineno};if(this.isResourceError(r)){const e=r.src||r.href;return{errorType:"resource",message:`Resource load failed: ${e}`,url:e}}return{errorType:"unknown",message:n,filename:i}}isResourceError(e){return e&&["LINK","SCRIPT","IMG","AUDIO","VIDEO","IFRAME"].includes(e.tagName)}};var W=new class extends I{constructor(){super(D.ROUTER)}install(e){this.track=e,this.setupHashListener(),this.setupHistoryListener()}setupHashListener(){window.addEventListener("hashchange",(()=>{this.track?.emit(z.ROUTER_HASH)}))}setupHistoryListener(){const e=window.history.pushState,t=window.history.replaceState;window.history.pushState=(...t)=>{e.apply(window.history,t),this.track?.emit(z.ROUTER_HISTORY)},window.history.replaceState=(...e)=>{t.apply(window.history,e),this.track?.emit(z.ROUTER_HISTORY)},window.addEventListener("popstate",(()=>{this.track?.emit(z.ROUTER_HISTORY)}))}};var j=new class extends I{constructor(){super(D.CLICK)}install(e){this.track=e,this.setupClickListeners()}setupClickListeners(){const e=e=>{const t=e.target;if(!t)return;const r={tagName:t.tagName,id:t.id,className:t.className,text:t.textContent?.trim(),xPath:this.getElementXPath(t)};this.track?.emit(z.BEHAVIOR_CLICK,r)};document.addEventListener(z.BEHAVIOR_CLICK,(t=>{setTimeout((()=>e(t)),300)}),!0)}getElementXPath(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`${this.getElementXPath(e.parentNode)}/${e.tagName.toLowerCase()}[${t}]`}};var H=new class extends I{constructor(){super(D.PERFORMANCE)}install(e){this.track=e,this.setupPerformanceMonitoring()}setupPerformanceMonitoring(){this.monitorPaintMetrics(),this.monitorLCP(),this.monitorDCL(),this.monitorLoad()}monitorPaintMetrics(){const e=new PerformanceObserver((t=>{for(const e of t.getEntries())"first-paint"===e.name?this.track?.emit(z.PERFORMANCE_FP,e.startTime):"first-contentful-paint"===e.name&&this.track?.emit(z.PERFORMANCE_FCP,e.startTime);e.disconnect()}));e.observe({type:"paint",buffered:!0})}monitorLCP(){const e=new PerformanceObserver((t=>{e&&e.disconnect();for(const e of t.getEntries())this.track?.emit(z.PERFORMANCE_LCP,e.startTime)}));e.observe({type:"largest-contentful-paint",buffered:!0})}monitorDCL(){window.addEventListener("DOMContentLoaded",(e=>{this.track?.emit(z.PERFORMANCE_DOMCONTENTLOADED,e.timeStamp)}))}monitorLoad(){window.addEventListener("load",(e=>{this.track?.emit(z.PERFORMANCE_LOAD,e.timeStamp)}))}};V.registerPlugin(j),V.registerPlugin(U),V.registerPlugin(H),V.registerPlugin(W);const q=function(){let e=!1;return function(t){e||(V.start(t),e=!0)}}();var G={init:q};export{D as TYPES,G as default,q as init};
1
+ const urlAlphabet =
2
+ 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
3
+
4
+ /* @ts-self-types="./index.d.ts" */
5
+ let nanoid = (size = 21) => {
6
+ let id = '';
7
+ let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)));
8
+ while (size--) {
9
+ id += urlAlphabet[bytes[size] & 63];
10
+ }
11
+ return id
12
+ };
13
+
14
+ const getDate = (time = Date.now()) => {
15
+ const date = new Date(time);
16
+ const year = date.getFullYear();
17
+ const month = date.getMonth() + 1;
18
+ const day = date.getDate();
19
+ const hour = date.getHours();
20
+ const minute = date.getMinutes();
21
+ const second = date.getSeconds();
22
+ const formatter = (date2) => {
23
+ let res = "";
24
+ if (date2 < 10) {
25
+ res = "0" + date2;
26
+ } else {
27
+ res = date2.toString();
28
+ }
29
+ return res;
30
+ };
31
+ return year + "-" + formatter(month) + "-" + formatter(day) + " " + formatter(hour) + ":" + formatter(minute) + ":" + formatter(second);
32
+ };
33
+ const getSeconds = (timestamp1, timestamp2) => {
34
+ if (timestamp1 < timestamp2) {
35
+ [timestamp1, timestamp2] = [timestamp2, timestamp1];
36
+ }
37
+ return Math.floor((timestamp1 - timestamp2) / 1e3);
38
+ };
39
+
40
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
41
+
42
+ function getDefaultExportFromCjs (x) {
43
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
44
+ }
45
+
46
+ var es5 = {exports: {}};
47
+
48
+ (function (module, exports) {
49
+ !function(e,t){module.exports=t();}(commonjsGlobal,(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){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){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 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){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){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){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){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){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;}})}));
50
+ } (es5));
51
+
52
+ var es5Exports = es5.exports;
53
+ var Bowser = /*@__PURE__*/getDefaultExportFromCjs(es5Exports);
54
+
55
+ function getBrowserNameVersion() {
56
+ const { browser, os, platform } = Bowser.parse(window.navigator.userAgent);
57
+ return {
58
+ browser,
59
+ os,
60
+ platform,
61
+ ratio: getRatio(),
62
+ wh: getWH()
63
+ };
64
+ }
65
+ function getRatio() {
66
+ let ratio = 0;
67
+ const screen = window.screen;
68
+ const ua = navigator.userAgent.toLowerCase();
69
+ if (window.devicePixelRatio !== void 0) {
70
+ ratio = window.devicePixelRatio;
71
+ } else if (~ua.indexOf("msie")) {
72
+ if (screen.deviceXDPI && screen.logicalXDPI) {
73
+ ratio = screen.deviceXDPI / screen.logicalXDPI;
74
+ }
75
+ } else if (window.outerWidth !== void 0 && window.innerWidth !== void 0) {
76
+ ratio = window.outerWidth / window.innerWidth;
77
+ }
78
+ if (ratio) {
79
+ ratio = Math.round(ratio * 100);
80
+ }
81
+ return ratio;
82
+ }
83
+ function getWH() {
84
+ return {
85
+ width: window.screen.width,
86
+ height: window.screen.height
87
+ };
88
+ }
89
+ const nextTime = window.requestIdleCallback || window.requestAnimationFrame || ((callback) => window.setTimeout(callback, 1e3 / 60));
90
+ const beforeUnload = (callback) => {
91
+ window.addEventListener("beforeunload", () => {
92
+ callback();
93
+ });
94
+ };
95
+
96
+ function throttle(fn, delay) {
97
+ let lastTime = 0;
98
+ return function(...args) {
99
+ const now = Date.now();
100
+ if (now - lastTime >= delay) {
101
+ fn.apply(this, args);
102
+ lastTime = now;
103
+ }
104
+ };
105
+ }
106
+
107
+ const MAX_CACHE_LEN = 5;
108
+ const MAX_WAITING_TIME = 3e4;
109
+ const UUID = "track_uuid";
110
+ const DEFAULT_LONG_TASK_THRESHOLD = 100;
111
+ const DEFAULT_RESOURCE_THRESHOLD = 1e3;
112
+ const DEFAULT_INP_THRESHOLD = 200;
113
+
114
+ var __defProp$3 = Object.defineProperty;
115
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
116
+ var __publicField$3 = (obj, key, value) => {
117
+ __defNormalProp$3(obj, typeof key !== "symbol" ? key + "" : key, value);
118
+ return value;
119
+ };
120
+ class DeviceInfo {
121
+ constructor(uuidKey = UUID) {
122
+ __publicField$3(this, "device");
123
+ __publicField$3(this, "uuid", "");
124
+ this.device = getBrowserNameVersion();
125
+ this.getUUid(uuidKey);
126
+ }
127
+ getUUid(key) {
128
+ try {
129
+ const uuid = localStorage.getItem(key);
130
+ if (uuid) {
131
+ this.uuid = uuid;
132
+ } else {
133
+ this.uuid = nanoid();
134
+ localStorage.setItem(key, this.uuid);
135
+ }
136
+ } catch (e) {
137
+ this.uuid = nanoid();
138
+ console.warn("[CWJ Monitor] localStorage access failed, UUID will not be persisted:", e);
139
+ }
140
+ }
141
+ }
142
+
143
+ var __defProp$2 = Object.defineProperty;
144
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
145
+ var __publicField$2 = (obj, key, value) => {
146
+ __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
147
+ return value;
148
+ };
149
+ class EventTrack {
150
+ constructor(options, reporter) {
151
+ __publicField$2(this, "deviceInfo");
152
+ __publicField$2(this, "reporter");
153
+ __publicField$2(this, "data");
154
+ this.deviceInfo = new DeviceInfo(options.uuidKey);
155
+ this.reporter = reporter;
156
+ this.data = options.data;
157
+ }
158
+ /**
159
+ * 格式化事件数据用于传输
160
+ */
161
+ formatter(type, data) {
162
+ const timestamp = Date.now();
163
+ return {
164
+ device: this.deviceInfo.device,
165
+ uuid: this.deviceInfo.uuid,
166
+ type,
167
+ data,
168
+ date: getDate(timestamp),
169
+ userData: this.data
170
+ };
171
+ }
172
+ /**
173
+ * 公共方法:发送事件
174
+ * 将事件格式化后交给 reporter 处理
175
+ */
176
+ emit(type, data) {
177
+ const payload = this.formatter(type, data);
178
+ this.reporter.send(payload);
179
+ }
180
+ /**
181
+ * 获取上报器实例 (供 Core 使用)
182
+ */
183
+ getReporter() {
184
+ return this.reporter;
185
+ }
186
+ }
187
+
188
+ var __defProp$1 = Object.defineProperty;
189
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
190
+ var __publicField$1 = (obj, key, value) => {
191
+ __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
192
+ return value;
193
+ };
194
+ class Reporter {
195
+ constructor(url, config) {
196
+ __publicField$1(this, "url");
197
+ __publicField$1(this, "transportConfig");
198
+ __publicField$1(this, "events", []);
199
+ __publicField$1(this, "isSending", false);
200
+ __publicField$1(this, "timer", null);
201
+ this.url = url;
202
+ this.transportConfig = {
203
+ maxBatchSize: config?.maxBatchSize ?? MAX_CACHE_LEN,
204
+ maxWaitTime: config?.maxWaitTime ?? MAX_WAITING_TIME
205
+ };
206
+ beforeUnload(() => this.flush());
207
+ }
208
+ /**
209
+ * 将事件加入队列
210
+ */
211
+ send(payload) {
212
+ this.events.push(payload);
213
+ if (this.events.length >= this.transportConfig.maxBatchSize) {
214
+ this.clearTimer();
215
+ this.triggerSend();
216
+ } else if (!this.timer) {
217
+ this.timer = setTimeout(() => {
218
+ this.timer = null;
219
+ this.triggerSend();
220
+ }, this.transportConfig.maxWaitTime);
221
+ }
222
+ }
223
+ /**
224
+ * 立即刷新所有待发送事件
225
+ */
226
+ flush() {
227
+ return this.triggerSend(true);
228
+ }
229
+ clearTimer() {
230
+ if (this.timer) {
231
+ clearTimeout(this.timer);
232
+ this.timer = null;
233
+ }
234
+ }
235
+ /**
236
+ * 触发发送逻辑
237
+ */
238
+ async triggerSend(isFlush = false) {
239
+ if (this.isSending || !this.events.length)
240
+ return;
241
+ this.isSending = true;
242
+ try {
243
+ const maxLen = isFlush ? this.events.length : this.transportConfig.maxBatchSize;
244
+ const sendEvents = this.events.slice(0, maxLen);
245
+ this.events = this.events.slice(maxLen);
246
+ await this.safeSend(sendEvents);
247
+ if (this.events.length) {
248
+ nextTime(() => this.triggerSend());
249
+ }
250
+ } catch (error) {
251
+ } finally {
252
+ this.isSending = false;
253
+ }
254
+ }
255
+ /**
256
+ * 使用 navigator.sendBeacon 或 XMLHttpRequest 安全发送事件
257
+ */
258
+ safeSend(events) {
259
+ return new Promise((resolve, reject) => {
260
+ if (!events.length) {
261
+ resolve();
262
+ return;
263
+ }
264
+ const data = JSON.stringify(events);
265
+ if (typeof navigator.sendBeacon === "function") {
266
+ const blob = new Blob([data], { type: "application/json" });
267
+ const success = navigator.sendBeacon(this.url, blob);
268
+ if (success) {
269
+ resolve();
270
+ } else {
271
+ this.sendViaXHR(data, resolve, reject);
272
+ }
273
+ } else {
274
+ this.sendViaXHR(data, resolve, reject);
275
+ }
276
+ });
277
+ }
278
+ /**
279
+ * 通过 XMLHttpRequest 发送
280
+ */
281
+ sendViaXHR(data, resolve, reject) {
282
+ const xhr = new XMLHttpRequest();
283
+ xhr.open("POST", this.url, true);
284
+ xhr.setRequestHeader("Content-Type", "application/json");
285
+ xhr.onload = () => {
286
+ if (xhr.status >= 200 && xhr.status < 300) {
287
+ resolve();
288
+ } else {
289
+ reject(new Error(`HTTP ${xhr.status}: ${xhr.statusText}`));
290
+ }
291
+ };
292
+ xhr.onerror = () => reject(new Error("Network error"));
293
+ xhr.ontimeout = () => reject(new Error("Request timeout"));
294
+ xhr.timeout = 1e4;
295
+ xhr.send(data);
296
+ }
297
+ }
298
+
299
+ var TYPES = /* @__PURE__ */ ((TYPES2) => {
300
+ TYPES2["ERROR"] = "error";
301
+ TYPES2["CLICK"] = "click";
302
+ TYPES2["PERFORMANCE"] = "performance";
303
+ TYPES2["ROUTER"] = "router";
304
+ TYPES2["XHR"] = "xhr";
305
+ TYPES2["FETCH"] = "fetch";
306
+ return TYPES2;
307
+ })(TYPES || {});
308
+ var EMIT_TYPE = /* @__PURE__ */ ((EMIT_TYPE2) => {
309
+ EMIT_TYPE2["ERROR"] = "error";
310
+ EMIT_TYPE2["BEHAVIOR_CLICK"] = "click";
311
+ EMIT_TYPE2["ROUTE_CHANGE"] = "route_change";
312
+ EMIT_TYPE2["PERFORMANCE_FP"] = "performance_fp";
313
+ EMIT_TYPE2["PERFORMANCE_FCP"] = "performance_fcp";
314
+ EMIT_TYPE2["PERFORMANCE_LCP"] = "performance_lcp";
315
+ EMIT_TYPE2["PERFORMANCE_INP"] = "performance_inp";
316
+ EMIT_TYPE2["PERFORMANCE_LONGTASK"] = "performance_longtask";
317
+ EMIT_TYPE2["PERFORMANCE_RESOURCE"] = "performance_resource";
318
+ EMIT_TYPE2["XHR"] = "xhr";
319
+ EMIT_TYPE2["FETCH"] = "fetch";
320
+ EMIT_TYPE2["CUSTOM"] = "custom";
321
+ return EMIT_TYPE2;
322
+ })(EMIT_TYPE || {});
323
+
324
+ var __defProp = Object.defineProperty;
325
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
326
+ var __publicField = (obj, key, value) => {
327
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
328
+ return value;
329
+ };
330
+ class Core extends EventTrack {
331
+ constructor(options) {
332
+ const reporter = new Reporter(options.url, options.transport);
333
+ super(options, reporter);
334
+ __publicField(this, "pluginMap", /* @__PURE__ */ new Map());
335
+ __publicField(this, "options");
336
+ this.options = options;
337
+ }
338
+ use(plugin) {
339
+ if (!this.pluginMap.has(plugin.name)) {
340
+ this.pluginMap.set(plugin.name, plugin);
341
+ }
342
+ return this;
343
+ }
344
+ /**
345
+ * 自定义事件上报
346
+ * @param data 上报的数据
347
+ * @param type 事件类型,默认为 'custom'
348
+ */
349
+ log(data, type = EMIT_TYPE.CUSTOM) {
350
+ this.emit(type, data);
351
+ }
352
+ // 启动插件
353
+ run() {
354
+ const context = {
355
+ emit: this.emit.bind(this),
356
+ url: this.options.url
357
+ };
358
+ this.pluginMap.forEach((plugin) => {
359
+ plugin.install(context);
360
+ });
361
+ this.mount();
362
+ }
363
+ // 停止并卸载所有插件
364
+ stop() {
365
+ this.pluginMap.forEach((plugin) => {
366
+ plugin.uninstall?.();
367
+ });
368
+ this.pluginMap.clear();
369
+ this.unmount();
370
+ }
371
+ mount() {
372
+ const { globalKey = "$track" } = this.options;
373
+ if (typeof window !== "undefined") {
374
+ window[globalKey] = this;
375
+ }
376
+ }
377
+ unmount() {
378
+ const { globalKey = "$track" } = this.options;
379
+ if (typeof window !== "undefined" && window[globalKey] === this) {
380
+ delete window[globalKey];
381
+ }
382
+ }
383
+ }
384
+ function createMonitor(options) {
385
+ return new Core(options);
386
+ }
387
+
388
+ const ErrorPlugin = (options = {}) => {
389
+ let originalConsoleError;
390
+ let context;
391
+ const overrideConsoleError = () => {
392
+ originalConsoleError = console.error;
393
+ console.error = (...args) => {
394
+ originalConsoleError?.apply(console, args);
395
+ const errorData = {
396
+ type: "console",
397
+ message: args.map((arg) => String(arg)).join(" "),
398
+ stack: new Error().stack
399
+ };
400
+ if (options.filter && !options.filter(errorData)) {
401
+ return;
402
+ }
403
+ context?.emit(EMIT_TYPE.ERROR, errorData);
404
+ };
405
+ };
406
+ const restoreConsoleError = () => {
407
+ if (originalConsoleError) {
408
+ console.error = originalConsoleError;
409
+ }
410
+ };
411
+ const cleanStack = (stack) => {
412
+ if (!stack)
413
+ return void 0;
414
+ const lines = stack.split("\n").slice(0, 11);
415
+ return lines.join("\n");
416
+ };
417
+ const simpleHash = (str) => {
418
+ let hash = 0;
419
+ for (let i = 0; i < str.length; i++) {
420
+ const char = str.charCodeAt(i);
421
+ hash = (hash << 5) - hash + char;
422
+ hash = hash & hash;
423
+ }
424
+ return Math.abs(hash).toString(36);
425
+ };
426
+ const generateFingerprint = (...parts) => {
427
+ const combined = parts.filter(Boolean).join("|");
428
+ return simpleHash(combined);
429
+ };
430
+ const isResourceError = (target) => {
431
+ const resourceTags = ["LINK", "SCRIPT", "IMG", "AUDIO", "VIDEO", "IFRAME"];
432
+ return target && resourceTags.includes(target.tagName);
433
+ };
434
+ const getPromiseErrorDetails = (e) => {
435
+ if (e.reason instanceof Error) {
436
+ return {
437
+ errorType: "promise",
438
+ message: e.reason.message,
439
+ stack: cleanStack(e.reason.stack),
440
+ name: e.reason.name,
441
+ fingerprint: generateFingerprint(e.reason.message, e.reason.stack)
442
+ };
443
+ }
444
+ return {
445
+ errorType: "promise",
446
+ message: String(e.reason)
447
+ };
448
+ };
449
+ const getErrorDetails = (e) => {
450
+ const { error, target, filename, message } = e;
451
+ if (error instanceof Error) {
452
+ return {
453
+ errorType: "js",
454
+ name: error.name,
455
+ message: error.message,
456
+ stack: cleanStack(error.stack),
457
+ filename,
458
+ colno: e.colno,
459
+ lineno: e.lineno,
460
+ fingerprint: generateFingerprint(error.message, error.stack)
461
+ };
462
+ }
463
+ if (isResourceError(target)) {
464
+ const element = target;
465
+ const url = "src" in element ? element.src : element.href;
466
+ return {
467
+ errorType: "resource",
468
+ message: `Resource load failed: ${url}`,
469
+ url,
470
+ tagName: element.tagName,
471
+ fingerprint: generateFingerprint(`resource:${url}`)
472
+ };
473
+ }
474
+ return {
475
+ errorType: "unknown",
476
+ message,
477
+ filename
478
+ };
479
+ };
480
+ const errorHandler = (e) => {
481
+ const errorData = { type: "sync", ...getErrorDetails(e) };
482
+ if (options.filter && !options.filter(errorData))
483
+ return;
484
+ context?.emit(EMIT_TYPE.ERROR, errorData);
485
+ };
486
+ const rejectionHandler = (e) => {
487
+ const errorData = { type: "async", ...getPromiseErrorDetails(e) };
488
+ if (options.filter && !options.filter(errorData))
489
+ return;
490
+ context?.emit(EMIT_TYPE.ERROR, errorData);
491
+ };
492
+ return {
493
+ name: TYPES.ERROR,
494
+ install: (ctx) => {
495
+ context = ctx;
496
+ overrideConsoleError();
497
+ window.addEventListener("error", errorHandler, true);
498
+ window.addEventListener("unhandledrejection", rejectionHandler, true);
499
+ },
500
+ uninstall: () => {
501
+ restoreConsoleError();
502
+ window.removeEventListener("error", errorHandler, true);
503
+ window.removeEventListener("unhandledrejection", rejectionHandler, true);
504
+ }
505
+ };
506
+ };
507
+
508
+ const PVPlugin = (options = {}) => {
509
+ let lastRouteTime = Date.now();
510
+ let context;
511
+ let originPushState;
512
+ let originReplaceState;
513
+ const emitRouteChange = (type) => {
514
+ const now = Date.now();
515
+ const to = window.location.href;
516
+ const from = document.referrer;
517
+ if (options.filter && !options.filter(to, from)) {
518
+ return;
519
+ }
520
+ context?.emit(EMIT_TYPE.ROUTE_CHANGE, {
521
+ from,
522
+ to,
523
+ type,
524
+ duration: getSeconds(now, lastRouteTime)
525
+ });
526
+ lastRouteTime = now;
527
+ };
528
+ const handleHashChange = () => emitRouteChange("hashchange");
529
+ const handlePopState = () => emitRouteChange("popstate");
530
+ const setupHistoryListener = () => {
531
+ originPushState = window.history.pushState;
532
+ originReplaceState = window.history.replaceState;
533
+ window.history.pushState = (...args) => {
534
+ originPushState.apply(window.history, args);
535
+ emitRouteChange("pushState");
536
+ };
537
+ window.history.replaceState = (...args) => {
538
+ originReplaceState.apply(window.history, args);
539
+ emitRouteChange("replaceState");
540
+ };
541
+ };
542
+ const restoreHistoryListener = () => {
543
+ if (originPushState)
544
+ window.history.pushState = originPushState;
545
+ if (originReplaceState)
546
+ window.history.replaceState = originReplaceState;
547
+ };
548
+ return {
549
+ name: TYPES.ROUTER,
550
+ install: (ctx) => {
551
+ context = ctx;
552
+ lastRouteTime = Date.now();
553
+ window.addEventListener("hashchange", handleHashChange);
554
+ window.addEventListener("popstate", handlePopState);
555
+ setupHistoryListener();
556
+ },
557
+ uninstall: () => {
558
+ window.removeEventListener("hashchange", handleHashChange);
559
+ window.removeEventListener("popstate", handlePopState);
560
+ restoreHistoryListener();
561
+ }
562
+ };
563
+ };
564
+
565
+ const BehaviorPlugin = (options = {}) => {
566
+ const { throttleDelay = 500 } = options;
567
+ let context;
568
+ const getElementXPath = (element) => {
569
+ if (!element || element.nodeType !== 1)
570
+ return "";
571
+ if (element.id)
572
+ return `//*[@id="${element.id}"]`;
573
+ const sameTagSiblings = Array.from(element.parentNode?.children || []).filter(
574
+ (el) => el.tagName === element.tagName
575
+ );
576
+ const idx = sameTagSiblings.indexOf(element) + 1;
577
+ return `${getElementXPath(element.parentNode)}/${element.tagName.toLowerCase()}[${idx}]`;
578
+ };
579
+ const handleClick = throttle((e) => {
580
+ const target = e.target;
581
+ if (!target)
582
+ return;
583
+ if (options.filter && !options.filter(target)) {
584
+ return;
585
+ }
586
+ const clickData = {
587
+ tagName: target.tagName,
588
+ id: target.id,
589
+ className: target.className,
590
+ text: target.textContent?.trim(),
591
+ xPath: getElementXPath(target)
592
+ };
593
+ context?.emit(EMIT_TYPE.BEHAVIOR_CLICK, clickData);
594
+ }, throttleDelay);
595
+ return {
596
+ name: TYPES.CLICK,
597
+ install: (ctx) => {
598
+ context = ctx;
599
+ document.addEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);
600
+ },
601
+ uninstall: () => {
602
+ document.removeEventListener(EMIT_TYPE.BEHAVIOR_CLICK, handleClick, true);
603
+ }
604
+ };
605
+ };
606
+
607
+ const PerformancePlugin = (options = {}) => {
608
+ let context;
609
+ let paintObserver = null;
610
+ let lcpObserver = null;
611
+ let inpObserver = null;
612
+ let longTaskObserver = null;
613
+ let resourceObserver = null;
614
+ const interactionMap = /* @__PURE__ */ new Map();
615
+ const monitorPaintMetrics = () => {
616
+ const entryHandler = (list) => {
617
+ for (const entry of list.getEntries()) {
618
+ if (entry.name === "first-paint") {
619
+ if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FP, entry.startTime)) {
620
+ continue;
621
+ }
622
+ context?.emit(EMIT_TYPE.PERFORMANCE_FP, entry.startTime);
623
+ } else if (entry.name === "first-contentful-paint") {
624
+ if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime)) {
625
+ continue;
626
+ }
627
+ context?.emit(EMIT_TYPE.PERFORMANCE_FCP, entry.startTime);
628
+ }
629
+ }
630
+ paintObserver?.disconnect();
631
+ };
632
+ try {
633
+ paintObserver = new PerformanceObserver(entryHandler);
634
+ paintObserver.observe({ type: "paint", buffered: true });
635
+ } catch (e) {
636
+ console.warn("[CWJ Monitor] Paint observation not supported:", e);
637
+ }
638
+ };
639
+ const monitorLCP = () => {
640
+ const entryHandler = (list) => {
641
+ if (lcpObserver) {
642
+ lcpObserver.disconnect();
643
+ }
644
+ for (const entry of list.getEntries()) {
645
+ if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime)) {
646
+ continue;
647
+ }
648
+ context?.emit(EMIT_TYPE.PERFORMANCE_LCP, entry.startTime);
649
+ }
650
+ };
651
+ try {
652
+ lcpObserver = new PerformanceObserver(entryHandler);
653
+ lcpObserver.observe({ type: "largest-contentful-paint", buffered: true });
654
+ } catch (e) {
655
+ console.warn("[CWJ Monitor] LCP observation not supported:", e);
656
+ }
657
+ };
658
+ const monitorINP = () => {
659
+ const entryHandler = (list) => {
660
+ for (const entry of list.getEntries()) {
661
+ if (!entry.interactionId)
662
+ continue;
663
+ const existing = interactionMap.get(entry.interactionId);
664
+ if (existing) {
665
+ clearTimeout(existing.timeoutId);
666
+ }
667
+ const maxEntry = existing && existing.entry.duration > entry.duration ? existing.entry : entry;
668
+ const timeoutId = setTimeout(() => {
669
+ interactionMap.delete(maxEntry.interactionId);
670
+ if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_INP, maxEntry)) {
671
+ return;
672
+ }
673
+ const threshold = options.inpThreshold ?? DEFAULT_INP_THRESHOLD;
674
+ if (maxEntry.duration > threshold) {
675
+ context?.emit(EMIT_TYPE.PERFORMANCE_INP, {
676
+ value: maxEntry.duration,
677
+ startTime: maxEntry.startTime,
678
+ name: maxEntry.name,
679
+ interactionId: maxEntry.interactionId
680
+ });
681
+ }
682
+ }, 200);
683
+ interactionMap.set(entry.interactionId, { entry: maxEntry, timeoutId });
684
+ }
685
+ };
686
+ try {
687
+ inpObserver = new PerformanceObserver(entryHandler);
688
+ inpObserver.observe({ type: "event", buffered: true });
689
+ } catch (e) {
690
+ console.warn("[CWJ Monitor] INP observation not supported:", e);
691
+ }
692
+ };
693
+ const monitorLongTask = () => {
694
+ const entryHandler = (list) => {
695
+ for (const entry of list.getEntries()) {
696
+ if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_LONGTASK, entry)) {
697
+ continue;
698
+ }
699
+ const threshold = options.longTaskThreshold ?? DEFAULT_LONG_TASK_THRESHOLD;
700
+ if (entry.duration > threshold) {
701
+ context?.emit(EMIT_TYPE.PERFORMANCE_LONGTASK, {
702
+ startTime: entry.startTime,
703
+ duration: entry.duration,
704
+ name: entry.name,
705
+ attribution: entry.attribution
706
+ });
707
+ }
708
+ }
709
+ };
710
+ try {
711
+ longTaskObserver = new PerformanceObserver(entryHandler);
712
+ longTaskObserver.observe({ type: "longtask", buffered: true });
713
+ } catch (e) {
714
+ console.warn("[CWJ Monitor] Long Task observation not supported:", e);
715
+ }
716
+ };
717
+ const monitorResource = () => {
718
+ const entryHandler = (list) => {
719
+ for (const entry of list.getEntries()) {
720
+ if (entry.initiatorType !== "fetch" && entry.initiatorType !== "xmlhttprequest") {
721
+ continue;
722
+ }
723
+ if (options.filter && !options.filter(EMIT_TYPE.PERFORMANCE_RESOURCE, entry)) {
724
+ continue;
725
+ }
726
+ const threshold = options.resourceThreshold ?? DEFAULT_RESOURCE_THRESHOLD;
727
+ if (entry.duration > threshold) {
728
+ context?.emit(EMIT_TYPE.PERFORMANCE_RESOURCE, {
729
+ name: entry.name,
730
+ // 资源 URL
731
+ initiatorType: entry.initiatorType,
732
+ duration: entry.duration,
733
+ startTime: entry.startTime,
734
+ transferSize: entry.transferSize,
735
+ encodedBodySize: entry.encodedBodySize,
736
+ decodedBodySize: entry.decodedBodySize
737
+ });
738
+ }
739
+ }
740
+ };
741
+ try {
742
+ resourceObserver = new PerformanceObserver(entryHandler);
743
+ resourceObserver.observe({ type: "resource", buffered: true });
744
+ } catch (e) {
745
+ console.warn("[CWJ Monitor] Resource observation not supported:", e);
746
+ }
747
+ };
748
+ return {
749
+ name: TYPES.PERFORMANCE,
750
+ install: (ctx) => {
751
+ context = ctx;
752
+ monitorPaintMetrics();
753
+ monitorLCP();
754
+ monitorINP();
755
+ monitorLongTask();
756
+ monitorResource();
757
+ },
758
+ uninstall: () => {
759
+ paintObserver?.disconnect();
760
+ lcpObserver?.disconnect();
761
+ inpObserver?.disconnect();
762
+ longTaskObserver?.disconnect();
763
+ resourceObserver?.disconnect();
764
+ interactionMap.forEach((value) => clearTimeout(value.timeoutId));
765
+ interactionMap.clear();
766
+ }
767
+ };
768
+ };
769
+
770
+ const XHRPlugin = (options = {}) => {
771
+ let context;
772
+ let originOpen;
773
+ let originSend;
774
+ const setupXHRListeners = () => {
775
+ const originXhr = window.XMLHttpRequest;
776
+ if (!originXhr)
777
+ return;
778
+ originOpen = originXhr.prototype.open;
779
+ originSend = originXhr.prototype.send;
780
+ originXhr.prototype.open = function(...args) {
781
+ this._xhr_info = {
782
+ method: args[0].toUpperCase(),
783
+ url: String(args[1]),
784
+ startTime: 0
785
+ };
786
+ return originOpen.apply(this, args);
787
+ };
788
+ originXhr.prototype.send = function(...args) {
789
+ if (this._xhr_info) {
790
+ this._xhr_info.startTime = Date.now();
791
+ }
792
+ const onLoadend = () => {
793
+ if (this._xhr_info) {
794
+ const trackerUrl = context?.url;
795
+ const { url, method, startTime } = this._xhr_info;
796
+ if (trackerUrl && url.includes(trackerUrl)) {
797
+ return;
798
+ }
799
+ if (options.filter && !options.filter(method, url)) {
800
+ return;
801
+ }
802
+ const duration = Date.now() - startTime;
803
+ const status = this.status;
804
+ if (!(status >= 200 && status < 300)) {
805
+ const data = {
806
+ method,
807
+ url,
808
+ status,
809
+ duration,
810
+ // 限制响应体大小,避免数据过大
811
+ response: this.response ? String(this.response).slice(0, 200) : ""
812
+ };
813
+ context?.emit(EMIT_TYPE.XHR, data);
814
+ }
815
+ }
816
+ };
817
+ this.addEventListener("loadend", onLoadend);
818
+ return originSend.apply(this, args);
819
+ };
820
+ };
821
+ const restoreXHR = () => {
822
+ const originXhr = window.XMLHttpRequest;
823
+ if (!originXhr)
824
+ return;
825
+ if (originOpen)
826
+ originXhr.prototype.open = originOpen;
827
+ if (originSend)
828
+ originXhr.prototype.send = originSend;
829
+ };
830
+ return {
831
+ name: TYPES.XHR,
832
+ install: (ctx) => {
833
+ context = ctx;
834
+ setupXHRListeners();
835
+ },
836
+ uninstall: () => {
837
+ restoreXHR();
838
+ }
839
+ };
840
+ };
841
+
842
+ const FetchPlugin = (options = {}) => {
843
+ let context;
844
+ let originFetch;
845
+ const setupFetchListeners = () => {
846
+ originFetch = window.fetch;
847
+ if (!originFetch)
848
+ return;
849
+ window.fetch = function(input, init) {
850
+ const startTime = Date.now();
851
+ const method = (init?.method || "GET").toUpperCase();
852
+ const url = input instanceof Request ? input.url : String(input);
853
+ return originFetch.apply(this, [input, init]).then(
854
+ (response) => {
855
+ const trackerUrl = context?.url;
856
+ if (trackerUrl && url.includes(trackerUrl)) {
857
+ return response;
858
+ }
859
+ if (options.filter && !options.filter(method, url)) {
860
+ return response;
861
+ }
862
+ if (!response.ok) {
863
+ const duration = Date.now() - startTime;
864
+ const data = {
865
+ method,
866
+ url,
867
+ status: response.status,
868
+ duration,
869
+ success: false
870
+ };
871
+ context?.emit(EMIT_TYPE.FETCH, data);
872
+ }
873
+ return response;
874
+ },
875
+ (error) => {
876
+ const trackerUrl = context?.url;
877
+ if (trackerUrl && url.includes(trackerUrl)) {
878
+ throw error;
879
+ }
880
+ if (options.filter && !options.filter(method, url)) {
881
+ throw error;
882
+ }
883
+ const duration = Date.now() - startTime;
884
+ const data = {
885
+ method,
886
+ url,
887
+ status: 0,
888
+ duration,
889
+ success: false,
890
+ message: error.message
891
+ };
892
+ context?.emit(EMIT_TYPE.FETCH, data);
893
+ throw error;
894
+ }
895
+ );
896
+ };
897
+ };
898
+ const restoreFetch = () => {
899
+ if (originFetch)
900
+ window.fetch = originFetch;
901
+ };
902
+ return {
903
+ name: TYPES.FETCH,
904
+ install: (ctx) => {
905
+ context = ctx;
906
+ setupFetchListeners();
907
+ },
908
+ uninstall: () => {
909
+ restoreFetch();
910
+ }
911
+ };
912
+ };
913
+
914
+ export { BehaviorPlugin, Core, EMIT_TYPE, ErrorPlugin, FetchPlugin, PVPlugin, PerformancePlugin, XHRPlugin, createMonitor };
915
+ //# sourceMappingURL=index.js.map