web-client-js
Version:
Client-side JavaScript exception and tracing library
2 lines • 182 kB
JavaScript
(()=>{"use strict";function e(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}var t,r,n;!function(e){e.AJAX_ERROR="ajax",e.RESOURCE_ERROR="resource",e.VUE_ERROR="vue",e.PROMISE_ERROR="promise",e.JS_ERROR="js",e.UNKNOWN_ERROR="unknown"}(t||(t={})),function(e){e.INFO="Info",e.WARNING="Warning",e.ERROR="Error"}(r||(r={})),function(e){e.ERROR="/browser/errorLog",e.ERRORS="/browser/errorLogs",e.PERF="/browser/perfData",e.SEGMENT="/v3/segment",e.SEGMENTS="/v3/segments",e.BLANKSCREEN="/browser/blankScreen"}(n||(n={}));var o,i="Http",a="Exit";!function(e){e[e.OPENED=1]="OPENED",e[e.DONE=4]="DONE"}(o||(o={}));var s=10001;const c=function(){function e(e,t){this.url="","ERROR"===e?this.url=t+n.ERROR:"ERRORS"===e?this.url=t+n.ERRORS:"SEGMENT"===e?this.url=t+n.SEGMENT:"SEGMENTS"===e?this.url=t+n.SEGMENTS:"PERF"===e?this.url=t+n.PERF:"BLANKSCREEN"===e&&(this.url=t+n.BLANKSCREEN)}return e.prototype.sendByFetch=function(e){if(delete e.collector,this.url){var t=new Request(this.url,{method:"POST",body:JSON.stringify(e)});fetch(t).then((function(e){if(e.status>=400||0===e.status)throw new Error("Something went wrong on api server!")})).catch((function(e){console.error(e)}))}},e.prototype.sendByXhr=function(e){if(this.url){var t=new XMLHttpRequest;t.open("post",this.url,!0),t.setRequestHeader("Content-Type","application/json"),t.onreadystatechange=function(){4===t.readyState&&t.status<400&&console.log("Report successfully")},t.send(JSON.stringify(e))}},e.prototype.sendByBeacon=function(e){this.url&&("function"!=typeof navigator.sendBeacon?this.sendByXhr(e):navigator.sendBeacon(this.url,JSON.stringify(e)))},e}(),u=new(function(){function e(){this.queues=[],this.collector=""}return e.prototype.addTask=function(e,t){this.queues.push(e),this.collector=t},e.prototype.fireTasks=function(){this.queues&&this.queues.length&&(new c("ERRORS",this.collector).sendByXhr(this.queues),this.queues=[])},e.prototype.finallyFireTasks=function(){var e=this;window.addEventListener("beforeunload",(function(){e.queues.length&&new c("ERRORS",e.collector).sendByBeacon(e.queues)}))},e}());var l,f={};const p=function(){function e(){this.logInfo={uniqueId:"",service:"",serviceVersion:"",pagePath:"",category:t.UNKNOWN_ERROR,grade:r.INFO,errorUrl:"",line:0,col:0,message:"",firstReportedError:!1,collector:""}}return e.prototype.traceInfo=function(e){var r;this.logInfo=e||this.logInfo;var n=[t.AJAX_ERROR,t.RESOURCE_ERROR,t.UNKNOWN_ERROR];f[location.href]||n.includes(this.logInfo.category)||((r={})[location.href]=!0,f=r,this.logInfo.firstReportedError=!0);var o=this.logInfo.collector;delete this.logInfo.collector,u.addTask(this.logInfo,o),u.finallyFireTasks(),l||(l=setInterval((function(){u.fireTasks()}),6e4))},e}();const h=function(){function e(){this.domScore=0,this.domDepth=0;var e=document.documentElement;this.domDepth=this.getDepth(e),this.domScore=this.getScores(this.domDepth)}return e.prototype.getDepth=function(e){var t=this,r=e.childNodes;if(!r||0===r.length)return 1;var n=function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var i=arguments[t],a=0,s=i.length;a<s;a++,o++)n[o]=i[a];return n}(r).map((function(e){return t.getDepth(e)}));return 1+Math.max.apply(Math,n)},e.prototype.getScores=function(e){for(var t=0,r=1;r<=e;r++)t+=this.score(r);return t},e.prototype.score=function(e){return 1/Math.pow(2,e-1)},e}();var g=function(){return g=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},g.apply(this,arguments)};const d=new(function(){function e(){this.blankScreenErrorInfo={service:"",serviceVersion:"",pagePath:null,system:"",errorCategory:t.UNKNOWN_ERROR,errorMessage:"",collector:""}}return e.prototype.reportBlankScreen=function(){return e=this,t=void 0,n=function(){var e,t,r,n;return function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(o){switch(o.label){case 0:return e=this.blankScreenErrorInfo.collector,[4,new h];case 1:return t=o.sent(),r={domScore:t.domScore,domDepth:t.domDepth,time:(new Date).getTime()},n=g(g({},this.blankScreenErrorInfo),r),new c("BLANKSCREEN",e).sendByXhr(n),[2]}}))},new((r=void 0)||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e){i(e)}}function s(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}));var e,t,r,n},e}());var v,m=(v=function(e,t){return v=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},v(e,t)},function(e,t){function r(){this.constructor=e}v(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),y=function(){return y=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},y.apply(this,arguments)};const w=new(function(n){function o(){var e=null!==n&&n.apply(this,arguments)||this;return e.infoOpt={service:"",pagePath:"",serviceVersion:""},e}return m(o,n),o.prototype.handleErrors=function(n){var o=this;this.infoOpt=n,window.onerror=function(i,a,s,c,u){o.logInfo=y(y({},o.infoOpt),{uniqueId:e(),category:t.JS_ERROR,grade:r.ERROR,errorUrl:a,line:s,col:c,message:i,collector:n.collector,stack:u?u.stack:""}),o.traceInfo(),n.blankScreen&&(d.blankScreenErrorInfo=y(y({},o.infoOpt),{pagePath:n.pagePath,system:n.baseInfo.system,errorCategory:t.JS_ERROR,errorUrl:a,line:s,col:c,errorMessage:i,collector:n.collector,stack:u?u.stack:""}),d.reportBlankScreen())}},o.prototype.setOptions=function(e){this.infoOpt=e},o}(p));var O=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},e(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),E=function(){return E=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},E.apply(this,arguments)};const R=new(function(n){function o(){var e=null!==n&&n.apply(this,arguments)||this;return e.infoOpt={service:"",pagePath:"",serviceVersion:""},e}return O(o,n),o.prototype.handleErrors=function(n){var o=this;this.infoOpt=n,window.addEventListener("unhandledrejection",(function(i){try{var a="";if(!i||!i.reason)return;i.reason.config&&i.reason.config.url&&(a=i.reason.config.url),o.logInfo=E(E({},o.infoOpt),{uniqueId:e(),category:t.PROMISE_ERROR,grade:r.ERROR,errorUrl:a||location.href,message:i.reason.message,stack:i.reason.stack,collector:n.collector}),o.traceInfo(),n.blankScreen&&(d.blankScreenErrorInfo=E(E({},o.infoOpt),{pagePath:n.pagePath,system:n.baseInfo.system,errorCategory:t.PROMISE_ERROR,errorUrl:a||location.href,errorMessage:i.reason.message,collector:n.collector,stack:i.reason.stack}),d.reportBlankScreen())}catch(e){console.log(e)}}))},o.prototype.setOptions=function(e){this.infoOpt=e},o}(p));var b=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},e(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),S=function(){return S=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},S.apply(this,arguments)};const I=new(function(o){function i(){var e=null!==o&&o.apply(this,arguments)||this;return e.infoOpt={service:"",pagePath:"",serviceVersion:""},e}return b(i,o),i.prototype.handleError=function(o){var i=this;window.XMLHttpRequest&&(this.infoOpt=o,window.addEventListener("xhrReadyStateChange",(function(a){var s=a.detail;4===s.readyState&&s.getRequestConfig[1]!==o.collector+n.ERRORS&&s.getRequestConfig[1]!==o.collector+n.BLANKSCREEN&&(0!==s.status&&s.status<400||(i.logInfo=S(S({},i.infoOpt),{uniqueId:e(),category:t.AJAX_ERROR,grade:r.ERROR,errorUrl:s.getRequestConfig[1],message:"status: "+s.status+"; statusText: "+s.statusText+";",collector:o.collector,stack:s.responseText}),i.traceInfo(),o.blankScreen&&(d.blankScreenErrorInfo=S(S({},i.infoOpt),{pagePath:o.pagePath,system:o.baseInfo.system,errorCategory:t.AJAX_ERROR,errorUrl:s.getRequestConfig[1],errorMessage:"status: "+s.status+"; statusText: "+s.statusText+";",collector:o.collector,stack:s.responseText}),d.reportBlankScreen())))})))},i.prototype.setOptions=function(e){this.infoOpt=e},i}(p));var T=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},e(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),P=function(){return P=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},P.apply(this,arguments)};const x=new(function(n){function o(){var e=null!==n&&n.apply(this,arguments)||this;return e.infoOpt={service:"",pagePath:"",serviceVersion:""},e}return T(o,n),o.prototype.handleErrors=function(n){var o=this;this.infoOpt=n,window.addEventListener("error",(function(i){try{if(!i)return;var a=i.target;if(!(a instanceof HTMLScriptElement||a instanceof HTMLLinkElement||a instanceof HTMLImageElement))return;o.logInfo=P(P({},o.infoOpt),{uniqueId:e(),category:t.RESOURCE_ERROR,grade:"IMG"===a.tagName?r.WARNING:r.ERROR,errorUrl:a.src||a.href||location.href,message:"load "+a.tagName+" resource error",collector:n.collector,stack:"load "+a.tagName+" resource error"}),o.traceInfo(),n.blankScreen&&(d.blankScreenErrorInfo=P(P({},o.infoOpt),{pagePath:n.pagePath,system:n.baseInfo.system,errorCategory:t.JS_ERROR,errorUrl:a.src||a.href||location.href,errorMessage:"load "+a.tagName+" resource error",collector:n.collector,stack:"load "+a.tagName+" resource error"}),d.reportBlankScreen())}catch(e){throw e}}))},o.prototype.setOptions=function(e){this.infoOpt=e},o}(p));var k=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},e(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),_=function(){return _=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},_.apply(this,arguments)};const C=new(function(n){function o(){var e=null!==n&&n.apply(this,arguments)||this;return e.infoOpt={service:"",pagePath:"",serviceVersion:""},e}return k(o,n),o.prototype.handleErrors=function(n,o){var i=this;this.infoOpt=n,o.config.errorHandler=function(o,a,s){console.log(o,"Vue.config.errorHandler");try{i.logInfo=_(_({},i.infoOpt),{uniqueId:e(),category:t.VUE_ERROR,grade:r.ERROR,errorUrl:location.href,message:s,collector:n.collector,stack:o.stack}),i.traceInfo(),n.blankScreen&&(d.blankScreenErrorInfo=_(_({},i.infoOpt),{pagePath:n.pagePath,system:n.baseInfo.system,errorCategory:t.VUE_ERROR,errorUrl:location.href,errorMessage:s,collector:n.collector,stack:o?o.stack:""}),d.reportBlankScreen())}catch(o){throw o}}},o.prototype.setOptions=function(e){this.infoOpt=e},o}(p));var N=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},e(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),A=function(){return A=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},A.apply(this,arguments)};const M=new(function(n){function o(){var e=null!==n&&n.apply(this,arguments)||this;return e.infoOpt={service:"",pagePath:"",serviceVersion:""},e}return N(o,n),o.prototype.handleErrors=function(n,o){this.infoOpt=n,this.logInfo=A(A({},this.infoOpt),{uniqueId:e(),category:t.JS_ERROR,grade:r.ERROR,errorUrl:o.name||location.href,message:o.message,collector:n.collector||location.origin,stack:o.stack}),this.traceInfo()},o}(p)),L=function(){function e(){}return e.prototype.getPerfTiming=function(){try{var e=window.performance.timing;if("function"==typeof window.PerformanceNavigationTiming){var t=performance.getEntriesByType("navigation")[0];t&&(e=t)}return{redirectTime:void 0!==e.navigationStart?parseInt(String(e.fetchStart-e.navigationStart),10):void 0!==e.redirectEnd?parseInt(String(e.redirectEnd-e.redirectStart),10):0,dnsTime:parseInt(String(e.domainLookupEnd-e.domainLookupStart),10),ttfbTime:parseInt(String(e.responseStart-e.requestStart),10),tcpTime:parseInt(String(e.connectEnd-e.connectStart),10),transTime:parseInt(String(e.responseEnd-e.responseStart),10),domAnalysisTime:parseInt(String(e.domInteractive-e.responseEnd),10),fptTime:parseInt(String(e.responseEnd-e.fetchStart),10),domReadyTime:parseInt(String(e.domContentLoadedEventEnd-e.fetchStart),10),loadPageTime:parseInt(String(e.loadEventStart-e.fetchStart),10),resTime:parseInt(String(e.loadEventStart-e.domContentLoadedEventEnd),10),sslTime:"https:"===location.protocol&&e.secureConnectionStart>0?parseInt(String(e.connectEnd-e.secureConnectionStart),10):void 0,ttlTime:parseInt(String(e.domInteractive-e.fetchStart),10),firstPackTime:parseInt(String(e.responseStart-e.domainLookupStart),10),fmpTime:0}}catch(e){throw e}},e}();var j,V=function(e,t){return window.getComputedStyle?window.getComputedStyle(e,null)[t]:e.currentStyle[t]};!function(e){e[e.SVG=2]="SVG",e[e.IMG=2]="IMG",e[e.CANVAS=4]="CANVAS",e[e.OBJECT=4]="OBJECT",e[e.EMBED=4]="EMBED",e[e.VIDEO=4]="VIDEO"}(j||(j={}));var D=performance.now(),B=["SCRIPT","STYLE","META","HEAD","LINK"],U=window.innerWidth,W=window.innerHeight;const q=function(){function e(){this.fmpTime=0,this.statusCollector=[],this.flag=!0,this.observer=null,this.callbackCount=0,this.entries={},performance&&performance.getEntries?this.initObserver():console.log("your browser do not support performance.getEntries")}return e.prototype.getFirstSnapShot=function(){var e=performance.now(),t=document.body;t&&this.setTag(t,this.callbackCount),this.statusCollector.push({time:e})},e.prototype.initObserver=function(){var e=this;this.getFirstSnapShot(),this.observer=new MutationObserver((function(t){e.callbackCount+=1;var r=performance.now(),n=document.body;n&&e.setTag(n,e.callbackCount),e.statusCollector.push({time:r})})),this.observer.observe(document,{childList:!0,subtree:!0}),this.calculateFinalScore()},e.prototype.calculateFinalScore=function(){var e=this;if(this.flag&&MutationObserver)if(this.checkNeedCancel(D)){this.observer.disconnect(),this.flag=!1;for(var t=null,r=0,n=this.getTreeScore(document.body).dpss;r<n.length;r++){var o=n[r];t&&t.st?t.st<o.st&&(t=o):t=o}if(performance.getEntries().forEach((function(t){e.entries[t.name]=t.responseEnd})),!t)return!1;var i=this.filterResult(t.els),a=this.getFmpTime(i);this.fmpTime=a}else setTimeout((function(){e.calculateFinalScore()}),2e3)},e.prototype.getFmpTime=function(e){for(var t=0,r=0,n=e;r<n.length;r++){var o=n[r],i=0;if(1===o.weight){var a=parseInt(o.ele.getAttribute("fmp_c"),10);i=this.statusCollector[a]&&this.statusCollector[a].time}else if(2===o.weight)if("IMG"===o.ele.tagName)i=this.entries[o.ele.src];else if("SVG"===o.ele.tagName)a=parseInt(o.ele.getAttribute("fmp_c"),10),i=this.statusCollector[a]&&this.statusCollector[a].time;else{var s=V(o.ele,"background-image").match(/url\(\"(.*?)\"\)/),c="";s&&s[1]&&(c=s[1]),c.includes("http")||(c=location.protocol+s[1]),i=this.entries[c]}else 4===o.weight&&("CANVAS"===o.ele.tagName?(a=parseInt(o.ele.getAttribute("fmp_c"),10),i=this.statusCollector[a]&&this.statusCollector[a].time):"VIDEO"===o.ele.tagName&&((i=this.entries[o.ele.src])||(i=this.entries[o.ele.poster])));"number"!=typeof i&&(i=0),t<i&&(t=i)}return t},e.prototype.filterResult=function(e){if(1===e.length)return e;var t=0;e.forEach((function(e){t+=e.st}));var r=t/e.length;return e.filter((function(e){return e.st>r}))},e.prototype.checkNeedCancel=function(e){var t=performance.now()-e,r=this.statusCollector.length>0?this.statusCollector[this.statusCollector.length-1].time:0;return t>3e3||t-r>1e3},e.prototype.getTreeScore=function(e){if(!e)return{};for(var t=[],r=0,n=e.children;r<n.length;r++){var o=n[r];if(o.getAttribute("fmp_c")){var i=this.getTreeScore(o);i.st&&t.push(i)}}return this.calcaulteGrades(e,t)},e.prototype.calcaulteGrades=function(e,t){var r=e.getBoundingClientRect(),n=r.width,o=r.height,i=r.left,a=r.top,s=!0;(W<a||U<i)&&(s=!1);var c=0;t.forEach((function(e){c+=e.st}));var u=Number(j[e.tagName])||1;1===u&&V(e,"background-image")&&"initial"!==V(e,"background-image")&&"none"!==V(e,"background-image")&&(u=j.IMG);var l=s?n*o*u:0,f=[{ele:e,st:l,weight:u}],p=e,h=this.calculateAreaParent(e);if(c>l*h||0===h){l=c,f=[];for(var g=0,d=t;g<d.length;g++){var v=d[g];f=f.concat(v.els)}}return{dpss:t,st:l,els:f,root:p}},e.prototype.calculateAreaParent=function(e){var t=e.getBoundingClientRect(),r=t.left,n=t.right,o=t.top,i=t.bottom,a=t.width,s=t.height,c=U,u=W,l=n-r+(c-0)-(Math.max(n,c)-Math.min(r,0)),f=i-o+(u-0)-(Math.max(i,u)-Math.min(o,0));return l<=0||f<=0?0:l*f/(a*s)},e.prototype.setTag=function(e,t){var r=e.tagName;if(-1===B.indexOf(r)){var n=e.children;if(n&&n.length>0)for(var o=n.length-1;o>=0;o--){var i=n[o];if(null===i.getAttribute("fmp_c")){var a=i.getBoundingClientRect(),s=a.left,c=a.top,u=a.width,l=a.height;if(W<c||U<s||0===u||0===l)continue;i.setAttribute("fmp_c",""+t)}this.setTag(i,t)}}},e}();var F=function(){return F=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},F.apply(this,arguments)};const G=new(function(){function e(){this.perfConfig={perfDetail:{}}}return e.prototype.getPerf=function(e){var t=this;this.recordPerf(e),e.enableSPA&&window.addEventListener("hashchange",(function(){t.recordPerf(e)}),!1)},e.prototype.recordPerf=function(e){return t=this,r=void 0,o=function(){var t,r=this;return function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(n){switch(n.label){case 0:return t={fmpTime:void 0},e.autoTracePerf&&e.useFmp?[4,new q]:[3,2];case 1:t=n.sent(),n.label=2;case 2:return setTimeout((function(){e.autoTracePerf&&(r.perfConfig.perfDetail=(new L).getPerfTiming());var n=e.autoTracePerf?F(F({},r.perfConfig.perfDetail),{fmpTime:e.useFmp?parseInt(String(t.fmpTime),10):void 0}):void 0,o=F(F({},n),{pagePath:e.pagePath,serviceVersion:e.serviceVersion,service:e.service,baseInfo:e.baseInfo,custom:e.custom});new c("PERF",e.collector).sendByXhr(o),r.clearPerf()}),6e3),[2]}}))},new((n=void 0)||(n=Promise))((function(e,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(t){var r;t.done?e(t.value):(r=t.value,r instanceof n?r:new n((function(e){e(r)}))).then(a,s)}c((o=o.apply(t,r||[])).next())}));var t,r,n,o},e.prototype.clearPerf=function(){window.performance&&window.performance.clearResourceTimings&&(window.performance.clearResourceTimings(),this.perfConfig={perfDetail:{}})},e}()),X="function"==typeof btoa,H="function"==typeof Buffer,J=("function"==typeof TextDecoder&&new TextDecoder,"function"==typeof TextEncoder?new TextEncoder:void 0),K=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),Y=((e=>{let t={};e.forEach(((e,r)=>t[e]=r))})(K),String.fromCharCode.bind(String)),z=("function"==typeof Uint8Array.from&&Uint8Array.from.bind(Uint8Array),e=>e.replace(/=/g,"").replace(/[+\/]/g,(e=>"+"==e?"-":"_"))),Q=X?e=>btoa(e):H?e=>Buffer.from(e,"binary").toString("base64"):e=>{let t,r,n,o,i="";const a=e.length%3;for(let a=0;a<e.length;){if((r=e.charCodeAt(a++))>255||(n=e.charCodeAt(a++))>255||(o=e.charCodeAt(a++))>255)throw new TypeError("invalid character found");t=r<<16|n<<8|o,i+=K[t>>18&63]+K[t>>12&63]+K[t>>6&63]+K[63&t]}return a?i.slice(0,a-3)+"===".substring(a):i},Z=H?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let r=0,n=e.length;r<n;r+=4096)t.push(Y.apply(null,e.subarray(r,r+4096)));return Q(t.join(""))},$=e=>{if(e.length<2)return(t=e.charCodeAt(0))<128?e:t<2048?Y(192|t>>>6)+Y(128|63&t):Y(224|t>>>12&15)+Y(128|t>>>6&63)+Y(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return Y(240|t>>>18&7)+Y(128|t>>>12&63)+Y(128|t>>>6&63)+Y(128|63&t)},ee=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,te=H?e=>Buffer.from(e,"utf8").toString("base64"):J?e=>Z(J.encode(e)):e=>Q(e.replace(ee,$)),re=(e,t=!1)=>t?z(te(e)):te(e);var ne=function(){return ne=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ne.apply(this,arguments)},oe={};function ie(t,r){ae(t);var c=window.XMLHttpRequest,u=XMLHttpRequest.prototype.send,l=XMLHttpRequest.prototype.open;if(u&&l){c.getRequestConfig=[],window.XMLHttpRequest=function(){var e=new c;return e.addEventListener("readystatechange",(function(){p.call(this,"xhrReadyStateChange")}),!1),e.open=function(e,t,r,n,o){return this.getRequestConfig=arguments,l.apply(this,arguments)},e.send=function(e){return u.apply(this,arguments)},e};var f=[];window.addEventListener("xhrReadyStateChange",(function(t){var c={traceId:"",service:oe.service,spans:[],serviceInstance:oe.serviceVersion,traceSegmentId:""},u=t.detail.readyState,l=t.detail.getRequestConfig,p={};if(l[1].startsWith("http://")||l[1].startsWith("https://")?p=new URL(l[1]):l[1].startsWith("//")?p=new URL(""+window.location.protocol+l[1]):(p=new URL(window.location.href)).pathname=l[1],!oe.noTraceOrigins.some((function(e){if("string"==typeof e){if(e===p.origin)return!0}else if(e instanceof RegExp&&e.test(p.origin))return!0}))){var h=new URL(oe.collector),g="/"===h.pathname?p.pathname:p.pathname.replace(new RegExp("^"+h.pathname),"");if(![n.ERROR,n.ERRORS,n.PERF,n.SEGMENTS].includes(g)||oe.traceSDKInternal){if(u===o.OPENED){var d=e(),v=e();f.push({event:t.detail,startTime:(new Date).getTime(),traceId:d,traceSegmentId:v});var m=String(re(d)),y=String(re(v)),w=String(re(c.service)),O=String(re(c.serviceInstance)),E=String(re(oe.pagePath)),R=String(re(p.host)),b="1-"+m+"-"+y+"-"+c.spans.length+"-"+w+"-"+O+"-"+E+"-"+R;t.detail.setRequestHeader("sw8",b)}if(u===o.DONE){for(var S=(new Date).getTime(),I=0;I<f.length;I++)if(f[I].event.readyState===o.DONE){var T={};f[I].event.status&&(T=new URL(f[I].event.responseURL));var P={operationName:oe.pagePath,startTime:f[I].startTime,endTime:S,spanId:c.spans.length,spanLayer:i,spanType:a,isError:0===t.detail.status||t.detail.status>=400,parentSpanId:c.spans.length-1,componentId:s,peer:T.host,tags:oe.detailMode?[{key:"http.method",value:l[0]},{key:"url",value:f[I].event.responseURL||p.protocol+"//"+p.host+p.pathname}]:void 0};(c=ne(ne({},c),{traceId:f[I].traceId,traceSegmentId:f[I].traceSegmentId})).spans.push(P),f.splice(I,1)}r.push(c)}}}}))}else console.error("Tracing is not supported");function p(e){var t=new CustomEvent(e,{detail:this});window.dispatchEvent(t)}}function ae(e){oe=ne(ne({},oe),e)}var se=function(){return se=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},se.apply(this,arguments)},ce=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e){i(e)}}function s(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}))},ue=function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},le={};function fe(e){le=se(se({},le),e)}const pe=function(){var e=navigator.userAgent,t="Win32"==navigator.platform||"Windows"==navigator.platform,r="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(r)return"Mac";if("X11"==navigator.platform&&!t&&!r)return"Unix";if(String(navigator.platform).indexOf("Linux")>-1)return"Linux";if(t){if(e.indexOf("Windows NT 5.0")>-1||e.indexOf("Windows 2000")>-1)return"Win2000";if(e.indexOf("Windows NT 5.1")>-1||e.indexOf("Windows XP")>-1)return"WinXP";if(e.indexOf("Windows NT 5.2")>-1||e.indexOf("Windows 2003")>-1)return"Win2003";if(e.indexOf("Windows NT 6.0")>-1||e.indexOf("Windows Vista")>-1)return"WinVista";if(e.indexOf("Windows NT 6.1")>-1||e.indexOf("Windows 7")>-1)return"Win7";if(e.indexOf("Windows NT 10")>-1||e.indexOf("Windows 10")>-1)return"Win10"}return"other"};var he=function(){return he=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},he.apply(this,arguments)},ge=function(){var e,t={},r=navigator.userAgent.toLowerCase();return(e=r.match(/edge\/([\d.]+)/))?t.edge=e[1]:(e=r.match(/rv:([\d.]+)\) like gecko/))||(e=r.match(/msie ([\d.]+)/))?t.ie=e[1]:(e=r.match(/firefox\/([\d.]+)/))?t.firefox=e[1]:(e=r.match(/chrome\/([\d.]+)/))?t.chrome=e[1]:(e=r.match(/opera.([\d.]+)/))?t.opera=e[1]:(e=r.match(/version\/([\d.]+).*safari/))&&(t.safari=e[1]),t.edge?{broswer:"Edge",version:t.edge}:t.ie?{broswer:"IE",version:t.ie}:t.firefox?{broswer:"Firefox",version:t.firefox}:t.chrome?{broswer:"Chrome",version:t.chrome}:t.opera?{broswer:"Opera",version:t.opera}:t.safari?{broswer:"Safari",version:t.safari}:{broswer:"",version:"0"}}(),de={system:pe(),browserType:ge.broswer,browserVersion:ge.version};const ve={customOptions:{collector:location.origin,jsErrors:!0,apiErrors:!0,resourceErrors:!0,autoTracePerf:!0,useFmp:!1,enableSPA:!1,traceSDKInternal:!1,detailMode:!0,noTraceOrigins:[],traceTimeInterval:6e4,baseInfo:de,blankScreen:!1},register:function(o){var u,l;this.customOptions=he(he({},this.customOptions),o),this.catchErrors(this.customOptions),this.customOptions.enableSPA||this.performance(this.customOptions),ie(u=this.customOptions,l=[]),function(o,c){var u=this,l=window.fetch;fe(o),window.fetch=function(){for(var o=[],f=0;f<arguments.length;f++)o[f]=arguments[f];return ce(u,void 0,void 0,(function(){var u,f,h,g,d,v,m,y,w,O,E,R,b,S,I,T,P,x,k,_,C,N,A;return ue(this,(function(M){switch(M.label){case 0:return u=(new Date).getTime(),f=e(),h=e(),g={traceId:"",service:le.service,spans:[],serviceInstance:le.serviceVersion,traceSegmentId:""},d={},o[0].startsWith("http://")||o[0].startsWith("https://")?d=new URL(o[0]):o[0].startsWith("//")?d=new URL(""+window.location.protocol+o[0]):(d=new URL(window.location.href)).pathname=o[0],v=le.noTraceOrigins.some((function(e){if("string"==typeof e){if(e===d.origin)return!0}else if(e instanceof RegExp&&e.test(d.origin))return!0})),m=new URL(le.collector),y="/"===m.pathname?d.pathname:d.pathname.replace(new RegExp("^"+m.pathname),""),w=[n.ERROR,n.ERRORS,n.PERF,n.SEGMENTS],O=w.includes(y),(E=!v||O&&le.traceSDKInternal)&&(R=String(re(f)),b=String(re(h)),S=String(re(g.service)),I=String(re(g.serviceInstance)),T=String(re(le.pagePath)),P=String(re(d.host)),x=g.spans.length,k="1-"+R+"-"+b+"-"+x+"-"+S+"-"+I+"-"+T+"-"+P,o[1]||(o[1]={}),o[1].headers||(o[1].headers={}),o[1].headers.sw8=k),[4,l.apply(void 0,o)];case 1:_=M.sent();try{_&&(0===_.status||_.status>=400)&&(C={uniqueId:e(),service:le.service,serviceVersion:le.serviceVersion,pagePath:le.pagePath,category:t.AJAX_ERROR,grade:r.ERROR,errorUrl:_&&_.url||d.protocol+"//"+d.host+d.pathname,message:"status: "+(_?_.status:0)+"; statusText: "+(_&&_.statusText)+";",collector:le.collector,stack:"Fetch: "+_&&_.statusText},(new p).traceInfo(C)),E&&(N=(new Date).getTime(),A={operationName:le.pagePath,startTime:u,endTime:N,spanId:g.spans.length,spanLayer:i,spanType:a,isError:_&&(0===_.status||_.status>=400),parentSpanId:g.spans.length-1,componentId:s,peer:d.host,tags:le.detailMode?[{key:"http.method",value:o[1].method||"GET"},{key:"url",value:_&&_.url||d.protocol+"//"+d.host+d.pathname}]:void 0},(g=se(se({},g),{traceId:f,traceSegmentId:h})).spans.push(A),c.push(g))}catch(e){throw e}return[2,_.clone()]}}))}))}}(u,l),window.addEventListener("beforeunload",(function(){l.length&&new c("SEGMENTS",u.collector).sendByBeacon(l)})),setInterval((function(){l.length&&(new c("SEGMENTS",u.collector).sendByXhr(l),l.splice(0,l.length))}),u.traceTimeInterval)},performance:function(e){"complete"===document.readyState?G.getPerf(e):window.addEventListener("load",(function(){G.getPerf(e)}),!1)},catchErrors:function(e){var t=e.service,r=e.pagePath,n=e.serviceVersion,o=e.collector,i=e.baseInfo,a=e.custom,s=e.blankScreen;e.jsErrors&&(w.handleErrors({service:t,pagePath:r,serviceVersion:n,collector:o,baseInfo:i,custom:a,blankScreen:s}),R.handleErrors({service:t,pagePath:r,serviceVersion:n,collector:o,baseInfo:i,custom:a,blankScreen:s}),e.vue&&C.handleErrors({service:t,pagePath:r,serviceVersion:n,collector:o,baseInfo:i,custom:a,blankScreen:s},e.vue)),e.apiErrors&&I.handleError({service:t,pagePath:r,serviceVersion:n,collector:o,baseInfo:i,custom:a,blankScreen:s}),e.resourceErrors&&x.handleErrors({service:t,pagePath:r,serviceVersion:n,collector:o,baseInfo:i,custom:a,blankScreen:s})},setPerformance:function(e){this.customOptions=he(he(he({},this.customOptions),e),{useFmp:!1}),this.performance(this.customOptions);var t,r=this.customOptions,n=r.service,o=r.pagePath,i=r.serviceVersion,a=r.collector,s=r.baseInfo,c=r.custom,u=r.blankScreen;this.customOptions.jsErrors&&(w.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a,baseInfo:s,custom:c,blankScreen:u}),R.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a,baseInfo:s,custom:c,blankScreen:u}),this.customOptions.vue&&C.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a,baseInfo:s,custom:c,blankScreen:u})),this.customOptions.apiErrors&&I.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a,baseInfo:s,custom:c,blankScreen:u}),this.customOptions.resourceErrors&&x.setOptions({service:n,pagePath:o,serviceVersion:i,collector:a,baseInfo:s,custom:c,blankScreen:u}),ae(t=this.customOptions),fe(t)},reportFrameErrors:function(e,t){var r=he({baseInfo:de},e);M.handleErrors(r,t)}};var me;window.browserClient=function(e,t){"init"===e&&(me=t),"start"===e&&ve.register(me)}})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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