cwj_monitoring 0.0.2 → 0.0.4
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/README.md +43 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +1 -1
- package/package.json +50 -36
package/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# monitor
|
|
2
|
+
|
|
3
|
+
一个简易的前端监控 SDK DEMO,仅供学习,请勿在生产环境中使用。
|
|
4
|
+
|
|
5
|
+
## DEMO
|
|
6
|
+
|
|
7
|
+
克隆项目后,执行命令打开服务器。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
npm run server
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
然后用 vscode 的 `live server` 插件访问 index.html 文件,即可尝试体验监控 SDK 的效果。同时打开开发者工具,点击 network 标签,可以看到上报数据的发送请求。
|
|
14
|
+
|
|
15
|
+
## 目前已实现的功能
|
|
16
|
+
|
|
17
|
+
1. 行为监控:点击监控,页面跳转监控,页面停留时间监控
|
|
18
|
+
2. 错误监控:js错误,资源加载错误,手动console.error抛出的错误,promise未捕获的错误
|
|
19
|
+
3. 性能监控:FP、DCL、Load、FPS
|
|
20
|
+
|
|
21
|
+
## 通过 npm 使用
|
|
22
|
+
|
|
23
|
+
安装
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
npm i cwj_monitoring
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
引入
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
import { init, emit } from "cwj_monitoring";
|
|
33
|
+
|
|
34
|
+
//使用 init 全局进行初始化
|
|
35
|
+
init({
|
|
36
|
+
url: "http://localhost:8080", //数据上传服务器地址
|
|
37
|
+
max: 10, //可选参数,最大缓存数,即超过缓存数立即上传,默认为5
|
|
38
|
+
time: 60000, //可选参数,最大缓存时间,即超过最大缓存时间立即上传,默认30s
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
//无论vue的全局错误捕获,还是react的错误边界,都可使用emit手动上传错误
|
|
42
|
+
emit(type,data)
|
|
43
|
+
```
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type Options = {
|
|
2
|
+
url: string;
|
|
3
|
+
max?: number;
|
|
4
|
+
time?: number;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
declare function emit(type: string, data?: any): void;
|
|
8
|
+
|
|
9
|
+
declare const init: (options: Options) => void;
|
|
10
|
+
|
|
11
|
+
declare const _default: {
|
|
12
|
+
init: (options: Options) => void;
|
|
13
|
+
emit: typeof emit;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { _default as default, emit, init };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(){var e;window.onerror=function(e,t,r,n,i){Q("js_error",{msg:e,url:t,line:r,column:n,error:i})},window.addEventListener("error",(function(e){var t=e.target;t&&(t.src||t.href)&&Q("resource_error",t.src||t.href)}),!0),e=window.console.error,window.console.error=function(t){Q("console_error",t),e.apply(window.console,arguments)},window.addEventListener("unhandledrejection",(function(e){Q("promise_error",e.error.stack)}))}function t(){var e,t;window.addEventListener("hashchange",(function(){Q("hashchange")})),e=window.history.pushState,t=window.history.replaceState,window.history.pushState=function(){e.apply(window.history,arguments),Q("historychange")},window.history.replaceState=function(){t.apply(window.history,arguments),Q("historychange")},window.addEventListener("popstate",(function(){Q("historychange")}))}function r(){window.addEventListener("click",(function(e){Q("click",e.target.innerHTML)}))}function n(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,s=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw s}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function o(){var e;(e=new PerformanceObserver((function(t){var r,i=n(t.getEntries());try{for(i.s();!(r=i.n()).done;){var o=r.value;"first-paint"===o.name&&(e.disconnect(),Q("fp",o.startTime))}}catch(e){i.e(e)}finally{i.f()}}))).observe({type:"paint",buffered:!0}),window.addEventListener("DOMContentLoaded",(function(e){Q("DOMContentLoaded",e.timeStamp)})),window.addEventListener("load",(function(e){Q("load",e.timeStamp)}))}var s,a=0,u=0,c=performance.now();function d(e){u++;var t=e-c;t>=1e3&&(Math.round(u/(t/1e3))<20?++a>=3&&(Q("fps","卡顿"),a=0):--a<0&&(a=0),u=0,c=e);requestAnimationFrame(d)}function f(e){return f="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},f(e)}function l(e){var t=function(e,t){if("object"!==f(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==f(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===f(t)?t:String(t)}function h(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,l(n.key),n)}}function g(e,t,r){return t&&h(e.prototype,t),r&&h(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var m=new Uint8Array(16);function p(){if(!s&&!(s="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 s(m)}for(var b=[],y=0;y<256;++y)b.push((y+256).toString(16).slice(1));var w={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function M(e,t,r){if(w.randomUUID&&!t&&!e)return w.randomUUID();var n=(e=e||{}).random||(e.rng||p)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var i=0;i<16;++i)t[r+i]=n[i];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(b[e[t+0]]+b[e[t+1]]+b[e[t+2]]+b[e[t+3]]+"-"+b[e[t+4]]+b[e[t+5]]+"-"+b[e[t+6]]+b[e[t+7]]+"-"+b[e[t+8]]+b[e[t+9]]+"-"+b[e[t+10]]+b[e[t+11]]+b[e[t+12]]+b[e[t+13]]+b[e[t+14]]+b[e[t+15]]).toLowerCase()}(n)}var S,k,F,B,O={"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"},_={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"},A={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},E={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"},P={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"},N=function(){function e(){v(this,e)}return g(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 n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=e.getVersionPrecision(t),o=e.getVersionPrecision(r),s=Math.max(i,o),a=0,u=e.map([t,r],(function(t){var r=s-e.getVersionPrecision(t),n=t+new Array(r+1).join(".0");return e.map(n.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(n&&(a=s-Math.min(i,o)),s-=1;s>=a;){if(u[0][s]>u[1][s])return 1;if(u[0][s]===u[1][s]){if(s===a)return 0;s-=1}else if(u[0][s]<u[1][s])return-1}}},{key:"map",value:function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n}},{key:"find",value:function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}}},{key:"assign",value:function(e){for(var t,r,n=e,i=arguments.length,o=new Array(i>1?i-1:0),s=1;s<i;s++)o[s-1]=arguments[s];if(Object.assign)return Object.assign.apply(Object,[e].concat(o));var a=function(){var e=o[t];"object"===f(e)&&null!==e&&Object.keys(e).forEach((function(t){n[t]=e[t]}))};for(t=0,r=o.length;t<r;t+=1)a();return e}},{key:"getBrowserAlias",value:function(e){return O[e]}},{key:"getBrowserTypeByAlias",value:function(e){return _[e]||""}}]),e}(),x=/version\/(\d+(\.?_?\d+)+)/i,R=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=N.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=N.getFirstMatch(x,e)||N.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.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=N.getFirstMatch(x,e)||N.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.getFirstMatch(x,e)||N.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=N.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=N.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=N.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=N.getFirstMatch(x,e)||N.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.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=N.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=N.getFirstMatch(x,e)||N.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.getFirstMatch(x,e)||N.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.getFirstMatch(x,e)||N.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.getFirstMatch(x,e)||N.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.getFirstMatch(x,e)||N.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.getFirstMatch(x,e)||N.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.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||N.getFirstMatch(x,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.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=N.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.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.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.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=N.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=N.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.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=N.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=N.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.getFirstMatch(x,e)||N.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.getFirstMatch(x,e)||N.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.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=N.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=N.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=N.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.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=N.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.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=N.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.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.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=N.getFirstMatch(x,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:N.getFirstMatch(t,e),version:N.getSecondMatch(t,e)}}}],C=[{test:[/Roku\/DVP/],describe:function(e){var t=N.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:E.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=N.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:E.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=N.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=N.getWindowsVersionName(t);return{name:E.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:E.iOS},r=N.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=N.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=N.getMacOSVersionName(t),n={name:E.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=N.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:E.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=N.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=N.getAndroidVersionName(t),n={name:E.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=N.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:E.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=N.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||N.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||N.getFirstMatch(/\bbb(\d+)/i,e);return{name:E.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=N.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:E.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=N.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:E.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:E.Linux}}},{test:[/CrOS/],describe:function(){return{name:E.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=N.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:E.PlayStation4,version:t}}}],L=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=N.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:A.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:A.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:A.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:A.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:A.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:A.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:A.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.getFirstMatch(/(ipod|iphone)/i,e);return{type:A.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:A.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:A.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:A.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:A.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:A.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.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:A.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:A.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:A.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:A.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:A.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:A.tv}}}],T=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:P.Blink};var t=N.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:P.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:P.Trident},r=N.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:P.Presto},r=N.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:P.Gecko},r=N.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:P.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:P.WebKit},r=N.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}],V=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(v(this,e),null==t||""===t)throw new Error("UserAgent parameter can't be empty");this._ua=t,this.parsedResult={},!0!==r&&this.parse()}return g(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=N.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=N.find(C,(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=N.find(L,(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=N.find(T,(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 N.assign({},this.parsedResult)}},{key:"satisfies",value:function(e){var t=this,r={},n=0,i={},o=0;if(Object.keys(e).forEach((function(t){var s=e[t];"string"==typeof s?(i[t]=s,o+=1):"object"===f(s)&&(r[t]=s,n+=1)})),n>0){var s=Object.keys(r),a=N.find(s,(function(e){return t.isOS(e)}));if(a){var u=this.satisfies(r[a]);if(void 0!==u)return u}var c=N.find(s,(function(e){return t.isPlatform(e)}));if(c){var d=this.satisfies(r[c]);if(void 0!==d)return d}}if(o>0){var l=Object.keys(i),h=N.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}}},{key:"isBrowser",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=N.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r}},{key:"compareVersion",value:function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(N.compareVersions(i,r,n))>-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}(),j=function(){function e(){v(this,e)}return g(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 V(e,t)}},{key:"parse",value:function(e){return new V(e).getResult()}},{key:"BROWSER_MAP",get:function(){return _}},{key:"ENGINE_MAP",get:function(){return P}},{key:"OS_MAP",get:function(){return E}},{key:"PLATFORMS_MAP",get:function(){return A}}]),e}(),W="uuid",z=new(g((function e(){v(this,e),this.device=j.parse(window.navigator.userAgent),localStorage.getItem(W)?this.uuid=localStorage.getItem(W):(this.uuid=M(),localStorage.setItem(W,this.uuid))}))),q=navigator.sendBeacon?function(e,t){navigator.sendBeacon(e,JSON.stringify(t))}:function(e,t){var r=new XMLHttpRequest;r.open("POST",e),r.send(JSON.stringify(t))},I=[],U=Date.now();function G(){I.length&&(q(S,I),I.splice(0,I.length))}function Q(e,t){var r=Date.now(),n=Object.assign({},z,{type:e,data:t,date:r,url:window.location.href,referrer:document.referrer,uuid:localStorage.getItem(W)});"hashchange"!==e&&"historychange"!==e||(Object.assign(n,{duration:r-U}),U=r),I.push(n),clearTimeout(B),I.length>=k?G():B=setTimeout((function(){G()}),F)}function D(n){n.url?(S=n.url,k=n.max||5,F=n.time||3e4,o(),d(),e(),t(),r(),window.addEventListener("beforeunload",G,!0)):console.log("@web-tracing: ","缺少参数url")}var H,K=(H=null,function(e){H||(D(e),H=!0)}),Z={init:K,emit:Q};export{Z as default,Q as emit,K as init};
|
|
1
|
+
function e(){var e;window.onerror=(e,t,r,n,i)=>{I("js_error",{msg:e,url:t,line:r,column:n,error:i})},window.addEventListener("error",(function(e){const t=e.target;t&&(t.src||t.href)&&I("resource_error",t.src||t.href)}),!0),e=window.console.error,window.console.error=function(t){I("console_error",t),e.apply(window.console,arguments)},window.addEventListener("unhandledrejection",(function(e){I("promise_error",e.error.stack)}))}function t(){window.addEventListener("hashchange",(function(){I("hashchange")})),function(){const e=window.history.pushState,t=window.history.replaceState;window.history.pushState=function(){e.apply(window.history,arguments),I("historychange")},window.history.replaceState=function(){t.apply(window.history,arguments),I("historychange")},window.addEventListener("popstate",(function(){I("historychange")}))}()}function r(){!function(){let e;window.addEventListener("click",(t=>{console.log("e",t),clearTimeout(e),e=setTimeout((()=>{console.log(t),I("click",t.target.innerHTML)}),500)}))}()}function n(){!function(){const e=new PerformanceObserver((t=>{for(const r of t.getEntries())"first-paint"===r.name&&(e.disconnect(),I("fp",r.startTime))}));e.observe({type:"paint",buffered:!0})}(),window.addEventListener("DOMContentLoaded",(function(e){I("DOMContentLoaded",e.timeStamp)})),window.addEventListener("load",(function(e){I("load",e.timeStamp)}))}let i=0,s=0,o=performance.now();function a(e){s++;const t=e-o;if(t>=1e3){Math.round(s/(t/1e3))<20?(i++,i>=3&&(I("fps","卡顿"),i=0)):(i--,i<0&&(i=0)),s=0,o=e}requestAnimationFrame(a)}var u,c=new Uint8Array(16);function d(){if(!u&&!(u="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 u(c)}for(var f=[],l=0;l<256;++l)f.push((l+256).toString(16).slice(1));var h={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function g(e,t,r){if(h.randomUUID&&!t&&!e)return h.randomUUID();var n=(e=e||{}).random||(e.rng||d)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(var i=0;i<16;++i)t[r+i]=n[i];return t}return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(f[e[t+0]]+f[e[t+1]]+f[e[t+2]]+f[e[t+3]]+"-"+f[e[t+4]]+f[e[t+5]]+"-"+f[e[t+6]]+f[e[t+7]]+"-"+f[e[t+8]]+f[e[t+9]]+"-"+f[e[t+10]]+f[e[t+11]]+f[e[t+12]]+f[e[t+13]]+f[e[t+14]]+f[e[t+15]]).toLowerCase()}(n)}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e){return m="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},m(e)}function p(e){var t=function(e,t){if("object"!==m(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===m(t)?t:String(t)}function b(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,p(n.key),n)}}function w(e,t,r){return t&&b(e.prototype,t),r&&b(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}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"},S={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},k={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"},F={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"},B=function(){function e(){v(this,e)}return w(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 n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),o=Math.max(i,s),a=0,u=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),n=t+new Array(r+1).join(".0");return e.map(n.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(n&&(a=o-Math.min(i,s)),o-=1;o>=a;){if(u[0][o]>u[1][o])return 1;if(u[0][o]===u[1][o]){if(o===a)return 0;o-=1}else if(u[0][o]<u[1][o])return-1}}},{key:"map",value:function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n}},{key:"find",value:function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}}},{key:"assign",value:function(e){for(var t,r,n=e,i=arguments.length,s=new Array(i>1?i-1:0),o=1;o<i;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"===m(e)&&null!==e&&Object.keys(e).forEach((function(t){n[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,_=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=B.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=B.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=B.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=B.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(O,e)||B.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=B.getFirstMatch(O,e)||B.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||B.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=B.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=B.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=B.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=B.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=B.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=B.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=B.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=B.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=B.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=B.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=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(O,e)||B.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=B.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=B.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=B.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=B.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=B.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=B.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=B.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=B.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=B.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=B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=B.getFirstMatch(O,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:B.getFirstMatch(t,e),version:B.getSecondMatch(t,e)}}}],A=[{test:[/Roku\/DVP/],describe:function(e){var t=B.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:k.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=B.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:k.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=B.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=B.getWindowsVersionName(t);return{name:k.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:k.iOS},r=B.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=B.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=B.getMacOSVersionName(t),n={name:k.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=B.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:k.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=B.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=B.getAndroidVersionName(t),n={name:k.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=B.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:k.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=B.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||B.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||B.getFirstMatch(/\bbb(\d+)/i,e);return{name:k.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=B.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:k.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=B.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:k.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:k.Linux}}},{test:[/CrOS/],describe:function(){return{name:k.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=B.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:k.PlayStation4,version:t}}}],E=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=B.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:S.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:S.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:S.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:S.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:S.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:S.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:S.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=B.getFirstMatch(/(ipod|iphone)/i,e);return{type:S.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:S.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:S.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:S.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:S.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:S.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:S.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:S.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:S.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:S.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:S.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:S.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:S.tv}}}],P=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:F.Blink};var t=B.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:F.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:F.Trident},r=B.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:F.Presto},r=B.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:F.Gecko},r=B.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:F.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:F.WebKit},r=B.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}],N=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(v(this,e),null==t||""===t)throw new Error("UserAgent parameter can't be empty");this._ua=t,this.parsedResult={},!0!==r&&this.parse()}return w(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=B.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.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=B.find(A,(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=B.find(E,(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=B.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.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 B.assign({},this.parsedResult)}},{key:"satisfies",value:function(e){var t=this,r={},n=0,i={},s=0;if(Object.keys(e).forEach((function(t){var o=e[t];"string"==typeof o?(i[t]=o,s+=1):"object"===m(o)&&(r[t]=o,n+=1)})),n>0){var o=Object.keys(r),a=B.find(o,(function(e){return t.isOS(e)}));if(a){var u=this.satisfies(r[a]);if(void 0!==u)return u}var c=B.find(o,(function(e){return t.isPlatform(e)}));if(c){var d=this.satisfies(r[c]);if(void 0!==d)return d}}if(s>0){var f=Object.keys(i),l=B.find(f,(function(e){return t.isBrowser(e,!0)}));if(void 0!==l)return this.compareVersion(i[l])}}},{key:"isBrowser",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=B.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r}},{key:"compareVersion",value:function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(B.compareVersions(i,r,n))>-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}(),x=function(){function e(){v(this,e)}return w(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 N(e,t)}},{key:"parse",value:function(e){return new N(e).getResult()}},{key:"BROWSER_MAP",get:function(){return M}},{key:"ENGINE_MAP",get:function(){return F}},{key:"OS_MAP",get:function(){return k}},{key:"PLATFORMS_MAP",get:function(){return S}}]),e}();const R="uuid";var C=new class{device;uuid;constructor(){this.device=x.parse(window.navigator.userAgent),localStorage.getItem(R)?this.uuid=localStorage.getItem(R):(this.uuid=g(),localStorage.setItem(R,this.uuid))}};const L=navigator.sendBeacon?(e,t)=>{navigator.sendBeacon(e,JSON.stringify(t))}:(e,t)=>{let r=new XMLHttpRequest;r.open("POST",e),r.send(JSON.stringify(t))};let T,V="",j=0,W=0,z=[],q=Date.now();function U(){z.length&&(L(V,z),z.splice(0,z.length))}function I(e,t){const r=Date.now(),n=Object.assign({},C,{type:e,data:t,date:r,url:window.location.href,referrer:document.referrer,uuid:localStorage.getItem(R)});"hashchange"!==e&&"historychange"!==e||(Object.assign(n,{duration:r-q}),q=r),z.push(n),clearTimeout(T),z.length>=j?U():T=setTimeout((()=>{U()}),W)}function G(i){i.url?(V=i.url,j=i.max||5,W=i.time||3e4,n(),a(),e(),t(),r(),window.addEventListener("beforeunload",U,!0)):console.log("@web-tracing: ","缺少参数url")}const Q=function(){let e=!1;return function(t){e||(G(t),e=!0)}}();var D={init:Q,emit:I};export{D as default,I as emit,Q as init};
|
package/package.json
CHANGED
|
@@ -1,36 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "cwj_monitoring",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"rollup
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "cwj_monitoring",
|
|
3
|
+
"version": "0.0.4",
|
|
4
|
+
"description": "基于 JS 适用Web端的插件,为前端项目提供【 行为、性能、异常 】监控手段",
|
|
5
|
+
"main": "dist",
|
|
6
|
+
"module": "dist",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "rollup -c",
|
|
9
|
+
"serve": "rollup -c -w"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist/*"
|
|
13
|
+
],
|
|
14
|
+
"keywords": [
|
|
15
|
+
"埋点",
|
|
16
|
+
"性能",
|
|
17
|
+
"异常",
|
|
18
|
+
"性能采集",
|
|
19
|
+
"异常采集",
|
|
20
|
+
"前端埋点",
|
|
21
|
+
"前端性能采集"
|
|
22
|
+
],
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@babel/core": "^7.22.10",
|
|
26
|
+
"@babel/plugin-transform-runtime": "^7.22.10",
|
|
27
|
+
"@babel/preset-env": "^7.22.10",
|
|
28
|
+
"@rollup/plugin-alias": "^5.0.0",
|
|
29
|
+
"@rollup/plugin-babel": "^6.0.3",
|
|
30
|
+
"@rollup/plugin-commonjs": "^25.0.3",
|
|
31
|
+
"@rollup/plugin-json": "^6.0.0",
|
|
32
|
+
"@rollup/plugin-node-resolve": "^15.1.0",
|
|
33
|
+
"@rollup/plugin-terser": "^0.4.3",
|
|
34
|
+
"@types/node": "^20.5.6",
|
|
35
|
+
"@types/uuid": "^9.0.2",
|
|
36
|
+
"esbuild": "^0.19.2",
|
|
37
|
+
"rimraf": "^5.0.1",
|
|
38
|
+
"rollup": "^3.27.2",
|
|
39
|
+
"rollup-plugin-delete": "^2.0.0",
|
|
40
|
+
"rollup-plugin-dts": "^6.0.0",
|
|
41
|
+
"rollup-plugin-esbuild": "^5.0.0",
|
|
42
|
+
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
43
|
+
"tslib": "^2.6.1",
|
|
44
|
+
"typescript": "^5.1.6"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"bowser": "^2.11.0",
|
|
48
|
+
"uuid": "^9.0.0"
|
|
49
|
+
}
|
|
50
|
+
}
|