@apmplus/integrations
Advanced tools
Comparing version
@@ -403,3 +403,10 @@ declare type BatchSender<E> = EventSender<E> & { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -406,0 +413,0 @@ /** 错误名称 */ |
@@ -403,3 +403,10 @@ declare type BatchSender<E> = EventSender<E> & { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -406,0 +413,0 @@ /** 错误名称 */ |
@@ -403,3 +403,10 @@ declare type BatchSender<E> = EventSender<E> & { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -406,0 +413,0 @@ /** 错误名称 */ |
@@ -403,3 +403,10 @@ declare type BatchSender<E> = EventSender<E> & { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -406,0 +413,0 @@ /** 错误名称 */ |
@@ -403,3 +403,10 @@ declare type BatchSender<E> = EventSender<E> & { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -406,0 +413,0 @@ /** 错误名称 */ |
@@ -69,2 +69,4 @@ /*! ***************************************************************************** | ||
var noop = function () { return ({}); }; | ||
// eslint-disable-next-line @typescript-eslint/ban-types | ||
@@ -210,3 +212,59 @@ function isObject(o) { | ||
// eslint-disable-next-line @typescript-eslint/ban-types | ||
/** | ||
* You can feel free to restore when you hook a function. | ||
* But you ought to restore 「in order」 if you hooked a value reference or a real obj reference.Because we not store the last value referent for now. | ||
* eg: obj.a = 1; | ||
* const r_1 = hookObjectProperty(obj, 'a',() =>2)() | ||
* const r_2 = hookObjectProperty(obj, 'a',() =>3)() | ||
* r_2() // obj.a === 2 | ||
* r_1() // obj.a === 1 | ||
* | ||
* @template T | ||
* @template K | ||
* @template P | ||
* @param {T} obj | ||
* @param {K} key | ||
* @param {(origin: T[K], ...params: P) => T[K]} hookFunc | ||
* @param {boolean} isCatchError When an error occurs after calling a hooked function, we want to suppress the errors and try to call the original function by default. | ||
* @return {*} | ||
*/ | ||
var hookObjectProperty = function (obj, key, hookFunc, isCatchError) { | ||
if (isCatchError === void 0) { isCatchError = true; } | ||
return function () { | ||
var params = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
params[_i] = arguments[_i]; | ||
} | ||
if (!obj) { | ||
return noop; | ||
} | ||
var origin = obj[key]; | ||
var hookedUnsafe = hookFunc.apply(void 0, __spreadArray([origin], __read(params), false)); | ||
var hooked = hookedUnsafe; | ||
// 给所有 hook 之后的方法包一层 try catch | ||
if (isFunction(hooked) && isCatchError) { | ||
hooked = function () { | ||
var args = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
args[_i] = arguments[_i]; | ||
} | ||
try { | ||
return hookedUnsafe.apply(this, args); | ||
} | ||
catch (_a) { | ||
return isFunction(origin) && origin.apply(this, args); | ||
} | ||
}; | ||
} | ||
obj[key] = hooked; | ||
// strict: is break | ||
return function (strict) { | ||
if (!strict) { | ||
hooked === obj[key] ? (obj[key] = origin) : (hookedUnsafe = origin); | ||
} | ||
}; | ||
}; | ||
}; | ||
/** | ||
* 劫持对象方法 | ||
@@ -476,12 +534,24 @@ * 必须记得给 hookFunc 劫持的方法包 try catch ! | ||
]; | ||
var DEFAULT_TIME_FUNCTION = ['setTimeout', 'setInterval', 'requestAnimationFrame', 'requestIdleCallback']; | ||
var DEFAULT_TIME_FUNCTION = [ | ||
'setTimeout', | ||
'setInterval', | ||
'requestAnimationFrame', | ||
'requestIdleCallback', | ||
]; | ||
var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange']; | ||
var ADD_EVENT_LISTENER = 'addEventListener'; | ||
var REMOVE_EVENT_LISTENER = 'removeEventListener'; | ||
var hookeGlobalAsync = function (report) { | ||
var enabled = true; | ||
var wrap = function (fn) { | ||
var DEFAULT_SOURCE_TYPE = 'capture-global'; | ||
var hookGlobalAsync = function (report, window, xhr) { | ||
if (window === void 0) { window = getDefaultBrowser(); } | ||
if (xhr === void 0) { xhr = getDefaultXMLHttpRequest(); } | ||
var restoreFns = []; | ||
var wrap = function (fn, sourceData) { | ||
if (!isFunction(fn)) | ||
return fn; | ||
return (fn._w_ || (fn._w_ = function () { | ||
var source = { | ||
type: DEFAULT_SOURCE_TYPE, | ||
data: __assign({}, sourceData), | ||
}; | ||
var hookFn = (fn._w_ || (fn._w_ = function () { | ||
try { | ||
@@ -491,33 +561,51 @@ // NOTE: If you are a Slardar user, and you are seeing this stack frame, it | ||
// is expected behavior and NOT indicative of a bug with Slardar SDK. | ||
return (fn.handleEvent || fn).apply(this, [].map.call(arguments, wrap)); | ||
return (fn.handleEvent && isFunction(fn.handleEvent) ? fn.handleEvent : fn).apply(this, [].map.call(arguments, function (arg) { return wrap(arg, sourceData); })); | ||
} | ||
catch (e) { | ||
enabled && report(normalize(e)); | ||
var error = normalize(e); | ||
error && report({ error: error, source: source }); | ||
throw e; | ||
} | ||
})); | ||
hookFn._hook_ = true; | ||
return hookFn; | ||
}; | ||
DEFAULT_TIME_FUNCTION.forEach(function (timeFunc) { | ||
return window[timeFunc] && | ||
hookMethodDangerously(window, timeFunc, function (origin) { | ||
return function (handler) { | ||
var params = []; | ||
for (var _i = 1; _i < arguments.length; _i++) { | ||
params[_i - 1] = arguments[_i]; | ||
} | ||
return origin && origin.call.apply(origin, __spreadArray([this, wrap(handler)], __read(params), false)); | ||
}; | ||
})(); | ||
}); | ||
hookMethodDangerously(XMLHttpRequest.prototype, 'send', function (origin) { | ||
return function () { | ||
var _this = this; | ||
var params = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
params[_i] = arguments[_i]; | ||
} | ||
xmlHttpRequestProps.forEach(function (prop) { return _this[prop] && hookMethodDangerously(_this, prop, wrap)(); }); | ||
return origin.apply(this, params); | ||
}; | ||
})(); | ||
window && restoreFns.push.apply(restoreFns, __spreadArray([], __read(DEFAULT_TIME_FUNCTION.filter(function (timeFunc) { return window[timeFunc]; }).map(function (timeFunc) { | ||
return hookObjectProperty(window, timeFunc, function (origin) { | ||
return function (handler) { | ||
var params = []; | ||
for (var _i = 1; _i < arguments.length; _i++) { | ||
params[_i - 1] = arguments[_i]; | ||
} | ||
return (origin && origin.call.apply(origin, __spreadArray([this, | ||
wrap(handler, { | ||
function: timeFunc, | ||
})], __read(params), false))); | ||
}; | ||
}, false)(); | ||
})), false)); | ||
xhr && | ||
xhr.prototype && | ||
restoreFns.push(hookObjectProperty(xhr.prototype, 'send', function (origin) { | ||
return function () { | ||
var _this = this; | ||
var params = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
params[_i] = arguments[_i]; | ||
} | ||
restoreFns.push.apply(restoreFns, __spreadArray([], __read(xmlHttpRequestProps | ||
.filter(function (prop) { return _this[prop] && !_this[prop]._hook_; }) | ||
.map(function (prop) { | ||
var hookRestoreFn = hookObjectProperty(_this, prop, function (origin) { | ||
return wrap(origin, { function: prop }); | ||
}, false)(); | ||
return function () { | ||
// restore hook function | ||
hookRestoreFn(); | ||
_this[prop]._hook_ = undefined; | ||
}; | ||
})), false)); | ||
return origin.apply(this, params); | ||
}; | ||
}, false)()); | ||
DEFAULT_EVENT_TARGET.forEach(function (target) { | ||
@@ -528,3 +616,3 @@ var proto = window[target] && window[target].prototype; | ||
} | ||
hookMethodDangerously(proto, ADD_EVENT_LISTENER, function (origin) { | ||
restoreFns.push(hookObjectProperty(proto, ADD_EVENT_LISTENER, function (origin) { | ||
return function (evName, fn, options) { | ||
@@ -534,3 +622,3 @@ try { | ||
if (isFunction(handleEventFn)) { | ||
fn.handleEvent = wrap(handleEventFn); | ||
fn.handleEvent = wrap(handleEventFn, { function: 'handleEvent', target: target }); | ||
} | ||
@@ -541,6 +629,6 @@ } | ||
} | ||
return origin && origin.call(this, evName, wrap(fn), options); | ||
return origin && origin.call(this, evName, wrap(fn, { function: ADD_EVENT_LISTENER, target: target }), options); | ||
}; | ||
})(); | ||
hookMethodDangerously(proto, REMOVE_EVENT_LISTENER, function (origin) { | ||
}, false)()); | ||
restoreFns.push(hookObjectProperty(proto, REMOVE_EVENT_LISTENER, function (origin) { | ||
return function (eventName, fn, options) { | ||
@@ -552,5 +640,5 @@ if (fn === null || fn === void 0 ? void 0 : fn._w_) { | ||
}; | ||
})(); | ||
}, false)()); | ||
}); | ||
return function () { return (enabled = false); }; | ||
return restoreFns; | ||
}; | ||
@@ -589,3 +677,2 @@ | ||
/* eslint-disable @typescript-eslint/ban-types */ | ||
var JS_ERROR_EV_TYPE$1 = 'js_error'; | ||
@@ -602,3 +689,4 @@ var JsErrorMonitor = function (window) { | ||
var dedupeFn = dedupe(); | ||
var report = function (error, extra, react) { | ||
var report = function (_a) { | ||
var error = _a.error, extra = _a.extra, react = _a.react, source = _a.source; | ||
var err = dedupeFlag ? dedupeFn(error) : error; | ||
@@ -616,2 +704,3 @@ if (cb && err) { | ||
react: react, | ||
source: source, | ||
}, | ||
@@ -622,3 +711,3 @@ }); | ||
if (onerror) { | ||
var handleError_1 = function (ev) { return report(normalizeError(ev)); }; | ||
var handleError_1 = function (ev) { return report({ error: normalizeError(ev), source: { type: 'onerror' } }); }; | ||
window.addEventListener('error', handleError_1); | ||
@@ -628,3 +717,5 @@ restoreFns.push(function () { return window.removeEventListener('error', handleError_1); }); | ||
if (onunhandledrejection) { | ||
var handleRejection_1 = function (ev) { return report(normalizeException(ev)); }; | ||
var handleRejection_1 = function (ev) { | ||
return report({ error: normalizeException(ev), source: { type: 'onunhandledrejection' } }); | ||
}; | ||
window.addEventListener('unhandledrejection', handleRejection_1); | ||
@@ -634,3 +725,3 @@ restoreFns.push(function () { return window.removeEventListener('unhandledrejection', handleRejection_1); }); | ||
if (captureGlobalAsync) { | ||
restoreFns.push(hookeGlobalAsync(report)); | ||
restoreFns.push.apply(restoreFns, __spreadArray([], __read(hookGlobalAsync(report)), false)); | ||
} | ||
@@ -640,3 +731,6 @@ var tearDown = function () { | ||
}; | ||
return [function (err, extra, react) { return report(normalizeUnknownError(err), extra, react); }, tearDown]; | ||
return [ | ||
function (err, extra, react) { return report({ error: normalizeUnknownError(err), extra: extra, react: react, source: { type: 'manual' } }); }, | ||
tearDown, | ||
]; | ||
}; | ||
@@ -643,0 +737,0 @@ }; |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var __assign=function(){return(__assign=Object.assign||function(r){for(var e,t=1,n=arguments.length;t<n;t++)for(var o in e=arguments[t])Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}).apply(this,arguments)};function __read(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var n,o,i=t.call(r),a=[];try{for(;(void 0===e||0<e--)&&!(n=i.next()).done;)a.push(n.value)}catch(r){o={error:r}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}function __spreadArray(r,e,t){if(t||2===arguments.length)for(var n,o=0,i=e.length;o<i;o++)!n&&o in e||((n=n||Array.prototype.slice.call(e,0,o))[o]=e[o]);return r.concat(n||Array.prototype.slice.call(e))}var refreshPreStartContext=function(){return{name:"refreshPreStartContext",setup:function(n){n.on("start",function(){var t=n.getPreStartQueue();t.forEach(function(r,e){t[e]=__assign(__assign({},r),{overrides:__assign(__assign({},null!==(r=r.overrides)&&void 0!==r?r:{}),{context:(null===(r=n.context)||void 0===r?void 0:r.toString())||{}})})})})}}};function isObject(r){return"object"==typeof r&&null!==r}function isInstanceOf(r,e){try{return r instanceof e}catch(r){return!1}}var objProto=Object.prototype;function isPlainObject(r){if(isObject(r)){if("function"!=typeof Object.getPrototypeOf)return"[object Object]"===objProto.toString.call(r);r=Object.getPrototypeOf(r);return r===objProto||null===r}return!1}function isArray(r){return"[object Array]"===objProto.toString.call(r)}function isFunction(r){return"function"==typeof r}function isString(r){return"string"==typeof r}function isError(r){switch(Object.prototype.toString.call(r)){case"[object Error]":case"[object Exception]":case"[object DOMError]":case"[object DOMException]":return!0;default:return r instanceof Error}}function isEvent(r){return"undefined"!=typeof Event&&isInstanceOf(r,Event)}function isErrorEvent(r){return"[object ErrorEvent]"===Object.prototype.toString.call(r)}function isPromiseRejectionEvent(r){return"[object PromiseRejectionEvent]"===Object.prototype.toString.call(r)}function arrayIncludes(r,e){if(!isArray(r))return!1;if(0===r.length)return!1;for(var t=0;t<r.length;){if(r[t]===e)return!0;t++}return!1}var applyRecord=function(){var t={};return[t,function(r,e){return t[r]=e},function(r){return delete t[r]}]},pick=function(t,r){return t&&isObject(t)?r.reduce(function(r,e){return r[e]=t[e],r},{}):t};function getRegexp(r){return isArray(r)&&r.length?joinRegExp(r):null}function joinRegExp(r){for(var e=[],t=r.length,n=0;n<t;n++){var o=r[n];isString(o)?e.push(o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")):o&&o.source&&e.push(o.source)}return new RegExp(e.join("|"),"i")}function safeStringify(r){try{return isString(r)?r:JSON.stringify(r)}catch(r){return"[FAILED_TO_STRINGIFY]:"+String(r)}}function safeJoin(r,e){if(!isArray(r))return"";for(var t=[],n=0;n<r.length;n++)try{t.push(String(r[n]))}catch(r){t.push("[value cannot be serialized]")}return t.join(e)}var hookMethodDangerously=function(t,n,o){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];t[n]=o.apply(void 0,__spreadArray([t[n]],__read(r),!1))}};function mathRNG(){for(var r=new Array(16),e=0,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),r[t]=e>>>((3&t)<<3)&255;return r}function bytesToUuid(r){for(var e=[],t=0;t<256;++t)e[t]=(t+256).toString(16).substr(1);var n=0,o=e;return[o[r[n++]],o[r[n++]],o[r[n++]],o[r[n++]],"-",o[r[n++]],o[r[n++]],"-",o[r[n++]],o[r[n++]],"-",o[r[n++]],o[r[n++]],"-",o[r[n++]],o[r[n++]],o[r[n++]],o[r[n++]],o[r[+n]],o[r[15]]].join("")}function uuid(){var r=mathRNG();return r[6]=15&r[6]|64,r[8]=63&r[8]|128,bytesToUuid(r)}function getDefaultBrowser(){if("object"==typeof window&&isObject(window))return window}function getDefaultDocument(){if("object"==typeof document&&isObject(document))return document}function getDefaultPerformance(){if(getDefaultBrowser()&&isObject(window.performance))return window.performance}function getDefaultXMLHttpRequest(){if("function"==typeof XMLHttpRequest&&isFunction(XMLHttpRequest))return XMLHttpRequest}function getDefaultMutationObserver(){if(getDefaultBrowser()&&isFunction(window.MutationObserver))return window.MutationObserver}var getGlobalRegistry=function(r){if(r)return r.__SLARDAR_REGISTRY__||(r.__SLARDAR_REGISTRY__={Slardar:{plugins:[],errors:[]}}),r.__SLARDAR_REGISTRY__.Slardar},reportSelfError=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=getGlobalRegistry(getDefaultBrowser());t&&(t.errors||(t.errors=[]),t.errors.push(r))},applyMutationObserver=function(r,e){var t=r&&new r(e);return[function(r,e){t&&r&&t.observe(r,e)},function(){return t&&t.disconnect()}]},applyPerformance=function(t){var r=t&&t.timing||void 0;return[r,function(){return t&&t.now?t.now():(Date.now?Date.now():+new Date)-(r&&r.navigationStart||0)},function(r){var e=(t||{}).getEntriesByType;return isFunction(e)&&e.call(t,r)||[]},function(){var r=(t||{}).clearResourceTimings;isFunction(r)&&r.call(t)},function(r){var e=(t||{}).getEntriesByName;return isFunction(e)&&e.call(t,r)||[]}]},applyMonitor=function(r,e,t,n){void 0===e&&(e={}),void 0===n&&(n=[]);try{var o=r.apply(void 0,__spreadArray([],__read(n),!1));return o&&o(e,t)||[]}catch(r){return reportSelfError(r),[]}},getConfig=function(r,e){return isObject(r)?__assign(__assign({},e),r):!!r&&e};function getPluginConfig(r,e,t){e=null===(r=r.config())||void 0===r?void 0:r.plugins[e];return getConfig(e,t)}var ERROR_FIELDS=["name","message","stack","filename","lineno","colno"],normalize=function(r){var e;return isError(r)?e=pick(r,ERROR_FIELDS):(isPlainObject(r)||isEvent(r)||isString(r))&&(e={message:safeStringify(r)}),e},normalizeError=function(r){return normalize(r.error)},normalizeException=function(r){var e;try{var t=void 0;if("reason"in r?t=r.reason:"detail"in r&&"reason"in r.detail&&(t=r.detail.reason),t){var n=normalize(t);return __assign(__assign({},n),{name:null!==(e=n&&n.name)&&void 0!==e?e:"UnhandledRejection"})}}catch(r){}},normalizeUnknownError=function(r){return(isErrorEvent(r)?normalizeError:isPromiseRejectionEvent(r)?normalizeException:normalize)(r)},DEFAULT_EVENT_TARGET=["EventTarget","Window","Node","ApplicationCache","ChannelMergerNode","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","MessagePort","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],DEFAULT_TIME_FUNCTION=["setTimeout","setInterval","requestAnimationFrame","requestIdleCallback"],xmlHttpRequestProps=["onload","onerror","onprogress","onreadystatechange"],ADD_EVENT_LISTENER="addEventListener",REMOVE_EVENT_LISTENER="removeEventListener",hookeGlobalAsync=function(e){function i(r){return isFunction(r)?r._w_||(r._w_=function(){try{return(r.handleEvent||r).apply(this,[].map.call(arguments,i))}catch(r){throw t&&e(normalize(r)),r}}):r}var t=!0;return DEFAULT_TIME_FUNCTION.forEach(function(r){return window[r]&&hookMethodDangerously(window,r,function(n){return function(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return n&&n.call.apply(n,__spreadArray([this,i(r)],__read(e),!1))}})()}),hookMethodDangerously(XMLHttpRequest.prototype,"send",function(n){return function(){for(var e=this,r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return xmlHttpRequestProps.forEach(function(r){return e[r]&&hookMethodDangerously(e,r,i)()}),n.apply(this,r)}})(),DEFAULT_EVENT_TARGET.forEach(function(r){r=window[r]&&window[r].prototype;r&&r[ADD_EVENT_LISTENER]&&(hookMethodDangerously(r,ADD_EVENT_LISTENER,function(o){return function(r,e,t){try{var n=e.handleEvent;isFunction(n)&&(e.handleEvent=i(n))}catch(r){}return o&&o.call(this,r,i(e),t)}})(),hookMethodDangerously(r,REMOVE_EVENT_LISTENER,function(n){return function(r,e,t){return null!=e&&e._w_&&n.call(this,r,e._w_,t),n.call(this,r,e,t)}})())}),function(){return t=!1}},isSameErrorString=function(r,e){return r&&e&&r===e},shouldDropEvent=function(r,e){return!(!r||!e)&&!(!isSameErrorString(r.message,e.message)||!isSameErrorString(r.stack,e.stack))},dedupe=function(){var e;return function(r){try{if(shouldDropEvent(r,e))return void(e=r)}catch(r){reportSelfError(r)}return e=r}},JS_ERROR_EV_TYPE$1="js_error",JsErrorMonitor=function(_){if(_=void 0===_?getDefaultBrowser():_)return function(r,n){var e,t,o=r.ignoreErrors,i=r.onerror,a=r.onunhandledrejection,u=r.dedupe,r=r.captureGlobalAsync,c=getRegexp(o),s=[],l=dedupe(),f=function(r,e,t){r=u?l(r):r;n&&r&&(c&&c.test(r.message)||n({ev_type:JS_ERROR_EV_TYPE$1,payload:{error:r,breadcrumbs:[],extra:e,react:t}}))};i&&(_.addEventListener("error",e=function(r){return f(normalizeError(r))}),s.push(function(){return _.removeEventListener("error",e)})),a&&(_.addEventListener("unhandledrejection",t=function(r){return f(normalizeException(r))}),s.push(function(){return _.removeEventListener("unhandledrejection",t)})),r&&s.push(hookeGlobalAsync(f));return[function(r,e,t){return f(normalizeUnknownError(r),e,t)},function(){s.forEach(function(r){return r()})}]}},JS_ERROR_MONITOR_PLUGIN_NAME="jsError",defaultConfig$1={ignoreErrors:[],onerror:!0,onunhandledrejection:!0,captureGlobalAsync:!1,dedupe:!0};function JsErrorMonitorPlugin(t){t.on("init",function(){window.removeEventListener("error",t.pcErr,!0),window.removeEventListener("unhandledrejection",t.pcRej,!0);var r,e=getPluginConfig(t,JS_ERROR_MONITOR_PLUGIN_NAME,defaultConfig$1);e&&(e=(r=__read(applyMonitor(JsErrorMonitor,e,function(r){t.getBreadcrumbs&&(r.payload.breadcrumbs=t.getBreadcrumbs()),t.report(r)}),2))[0],r=r[1],t.on("beforeDestroy",r),t.provide("captureException",e))})}var PAGE_ACTIVITY_DELAY=100,MAX_PAGE_ACTIVITY_DELAY=1e4,hookXHRSend=function(t,o,i){var a=0;return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var n=a+=2;return o(n,Date.now()),hookMethodDangerously(this,"onreadystatechange",function(t){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return 4===this.readyState&&i(n),t&&t.apply(this,r)}})(),t.apply(this,r)}},hookFetch=function(o,i,a){var u=1;return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=o.apply(void 0,__spreadArray([],__read(r),!1)),n=u+=2;i(n,Date.now());return t.then(function(){a(n)},function(){a(n)}),t}},applyIncompleteReq=function(r,e){var t=__read(applyRecord(),3),n=t[0],o=t[1],t=t[2];return e&&hookMethodDangerously(e.prototype,"send",hookXHRSend)(o,t),r&&hookMethodDangerously(r,"fetch",hookFetch)(o,t),[n]},waitActionComplete=function(r,e,t){var n,o;return[function(){t.clearTimeout(o),o=t.setTimeout(function(){r(),e()},MAX_PAGE_ACTIVITY_DELAY)},function(){t.clearTimeout(n),n=t.setTimeout(function(){r()},PAGE_ACTIVITY_DELAY)},function(){t.clearTimeout(n),t.clearTimeout(o)}]},getDomPath=function(r){var e=r,t=[];try{for(;null!==e.parentNode;){for(var n=0,o=0,i=0;i<e.parentNode.childNodes.length;i++){var a=e.parentNode.childNodes[i];a.nodeName===e.nodeName&&(a===e&&(o=n),n++)}e.hasAttribute("id")&&""!==e.id?t.unshift(e.nodeName+"#"+e.id):1<n?t.unshift(e.nodeName+":eq("+o+")"):t.unshift(e.nodeName),e=e.parentNode}return t.slice(1).join(">")}catch(r){return}},ACTION_EV_TYPE="action",HTTP_EV_TYPE="http",LONGTASK_RV_TYPE="performance_longtask",JS_ERROR_EV_TYPE="js_error",RESOURCE_EV_TYPE="resource",RELATED_EV_TYPES=[LONGTASK_RV_TYPE,HTTP_EV_TYPE,JS_ERROR_EV_TYPE,RESOURCE_EV_TYPE],SUPPORT_TYPES=["click"],EVENT_LISTENER_OPTIONS={capture:!0},ActionMonitor=function(y,h,T,m,R){if(void 0===y&&(y=getDefaultBrowser()),void 0===h&&(h=getDefaultDocument()),void 0===T&&(T=getDefaultXMLHttpRequest()),void 0===m&&(m=getDefaultMutationObserver()),void 0===R&&(R=getDefaultPerformance()),h&&y)return function(r,t){var e=r.types,n=[],o=null,i=[],a=0,u=__read(applyPerformance(R),2)[1],c=__read(applyIncompleteReq(y,T),1)[0],s=function(){var r,e;o&&Object.keys(o.metrics).length&&!Object.keys(c).length&&(o.metrics[LONGTASK_RV_TYPE]&&(o.metrics[LONGTASK_RV_TYPE].duration=a),r=0<i.length?Math.max.apply(Math,__spreadArray([],__read(i),!1))-Math.min.apply(Math,__spreadArray([],__read(i),!1)):0,o.metrics[HTTP_EV_TYPE]&&(o.metrics[HTTP_EV_TYPE].duration=r),e=u()-o.start_time,t&&t({ev_type:ACTION_EV_TYPE,payload:__assign(__assign({},o),{duration:e,frontend_time:e-r})}),l())},l=function(){E(),o=null,i=[],a=0},f=__read(waitActionComplete(s,l,y),3),_=f[0],p=f[1],E=f[2],r=__read(applyMutationObserver(m,p),2),f=r[0],d=r[1];f();function g(r){var e;s(),l(),r.target instanceof HTMLElement&&((e=r.target.innerText)&&(v({name:e,path:getDomPath(r.target)},r.type),_()))}var v=function(r,e){var t=uuid(),n=__read(applyPerformance(R),2)[1];o={start_time:n(),id:t,type:e,target:r,metrics:{}}};e&&e.forEach(function(r){arrayIncludes(SUPPORT_TYPES,r)&&(h.addEventListener(r,g,EVENT_LISTENER_OPTIONS),n.push(function(){return h.removeEventListener(r,g,EVENT_LISTENER_OPTIONS)}))});return[function(){n.forEach(function(r){return r()}),d()},function(r){if(o&&arrayIncludes(RELATED_EV_TYPES,r.ev_type)){if(p(),r.ev_type===HTTP_EV_TYPE){if(!r.payload.response.timing)return;var e=r.payload.response.timing,t=e.startTime,e=e.duration;if(t<o.start_time)return;i.push(t,t+e)}else if(r.ev_type===LONGTASK_RV_TYPE){if(!r.payload.longtasks.length||r.payload.longtasks[0].startTime<o.start_time)return;r.payload.longtasks.forEach(function(r){a+=r.duration})}else if(r.ev_type===RESOURCE_EV_TYPE&&r.payload.startTime<o.start_time)return;return o.metrics[r.ev_type]={count:(null!==(r=null===(r=o.metrics[r.ev_type])||void 0===r?void 0:r.count)&&void 0!==r?r:0)+1},o.id}},function(r,e){s(),l(),v({name:r},e),_()}]}},ACTION_MONITOR_PLUGIN_NAME="action",defaultConfig={types:["click"]};function ActionMonitorBasePlugin(r,e){function t(r){var e=o(r);return e&&r.extra&&(r.extra.action_id=e),r}var e=__read(applyMonitor(ActionMonitor,e=void 0===e?defaultConfig:e,r.report.bind(r)),3),n=e[0],o=e[1],e=e[2];r.on("report",t),r.provide("startAction",e),r.on("beforeDestroy",function(){n(),r.off("report",t)})}var captureConsole=function(r){var r=r.levels,e=void 0===r?["log","info","warn","error","debug","assert"]:r;return{name:"captureConsole",setup:function(n){var o=getDefaultBrowser();o&&o.console&&e.forEach(function(r){r in o.console&&hookMethodDangerously(o.console,r,function(t){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];try{t&&t.call.apply(t,__spreadArray([o.console],__read(r),!1))}finally{n("captureException",safeJoin(r," "))}}})()})}}},jsErrorPlugin=function(){return{name:JS_ERROR_MONITOR_PLUGIN_NAME,setup:function(r){JsErrorMonitorPlugin(r)}}},actionPlugin=function(e){return{name:ACTION_MONITOR_PLUGIN_NAME,setup:function(r){ActionMonitorBasePlugin(r,e)}}};exports.actionPlugin=actionPlugin,exports.captureConsole=captureConsole,exports.jsErrorPlugin=jsErrorPlugin,exports.refreshPreStartContext=refreshPreStartContext; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var __assign=function(){return(__assign=Object.assign||function(r){for(var e,t=1,n=arguments.length;t<n;t++)for(var o in e=arguments[t])Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}).apply(this,arguments)};function __read(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var n,o,i=t.call(r),a=[];try{for(;(void 0===e||0<e--)&&!(n=i.next()).done;)a.push(n.value)}catch(r){o={error:r}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}function __spreadArray(r,e,t){if(t||2===arguments.length)for(var n,o=0,i=e.length;o<i;o++)!n&&o in e||((n=n||Array.prototype.slice.call(e,0,o))[o]=e[o]);return r.concat(n||Array.prototype.slice.call(e))}var refreshPreStartContext=function(){return{name:"refreshPreStartContext",setup:function(n){n.on("start",function(){var t=n.getPreStartQueue();t.forEach(function(r,e){t[e]=__assign(__assign({},r),{overrides:__assign(__assign({},null!==(r=r.overrides)&&void 0!==r?r:{}),{context:(null===(r=n.context)||void 0===r?void 0:r.toString())||{}})})})})}}},noop=function(){return{}};function isObject(r){return"object"==typeof r&&null!==r}function isInstanceOf(r,e){try{return r instanceof e}catch(r){return!1}}var objProto=Object.prototype;function isPlainObject(r){if(isObject(r)){if("function"!=typeof Object.getPrototypeOf)return"[object Object]"===objProto.toString.call(r);r=Object.getPrototypeOf(r);return r===objProto||null===r}return!1}function isArray(r){return"[object Array]"===objProto.toString.call(r)}function isFunction(r){return"function"==typeof r}function isString(r){return"string"==typeof r}function isError(r){switch(Object.prototype.toString.call(r)){case"[object Error]":case"[object Exception]":case"[object DOMError]":case"[object DOMException]":return!0;default:return r instanceof Error}}function isEvent(r){return"undefined"!=typeof Event&&isInstanceOf(r,Event)}function isErrorEvent(r){return"[object ErrorEvent]"===Object.prototype.toString.call(r)}function isPromiseRejectionEvent(r){return"[object PromiseRejectionEvent]"===Object.prototype.toString.call(r)}function arrayIncludes(r,e){if(!isArray(r))return!1;if(0===r.length)return!1;for(var t=0;t<r.length;){if(r[t]===e)return!0;t++}return!1}var applyRecord=function(){var t={};return[t,function(r,e){return t[r]=e},function(r){return delete t[r]}]},pick=function(t,r){return t&&isObject(t)?r.reduce(function(r,e){return r[e]=t[e],r},{}):t};function getRegexp(r){return isArray(r)&&r.length?joinRegExp(r):null}function joinRegExp(r){for(var e=[],t=r.length,n=0;n<t;n++){var o=r[n];isString(o)?e.push(o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")):o&&o.source&&e.push(o.source)}return new RegExp(e.join("|"),"i")}function safeStringify(r){try{return isString(r)?r:JSON.stringify(r)}catch(r){return"[FAILED_TO_STRINGIFY]:"+String(r)}}function safeJoin(r,e){if(!isArray(r))return"";for(var t=[],n=0;n<r.length;n++)try{t.push(String(r[n]))}catch(r){t.push("[value cannot be serialized]")}return t.join(e)}var hookObjectProperty=function(i,a,u,c){return void 0===c&&(c=!0),function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];if(!i)return noop;var t=i[a],n=u.apply(void 0,__spreadArray([t],__read(r),!1)),o=n;return isFunction(o)&&c&&(o=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];try{return n.apply(this,e)}catch(r){return isFunction(t)&&t.apply(this,e)}}),i[a]=o,function(r){r||(o===i[a]?i[a]=t:n=t)}}},hookMethodDangerously=function(t,n,o){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];t[n]=o.apply(void 0,__spreadArray([t[n]],__read(r),!1))}};function mathRNG(){for(var r=new Array(16),e=0,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),r[t]=e>>>((3&t)<<3)&255;return r}function bytesToUuid(r){for(var e=[],t=0;t<256;++t)e[t]=(t+256).toString(16).substr(1);var n=0,o=e;return[o[r[n++]],o[r[n++]],o[r[n++]],o[r[n++]],"-",o[r[n++]],o[r[n++]],"-",o[r[n++]],o[r[n++]],"-",o[r[n++]],o[r[n++]],"-",o[r[n++]],o[r[n++]],o[r[n++]],o[r[n++]],o[r[+n]],o[r[15]]].join("")}function uuid(){var r=mathRNG();return r[6]=15&r[6]|64,r[8]=63&r[8]|128,bytesToUuid(r)}function getDefaultBrowser(){if("object"==typeof window&&isObject(window))return window}function getDefaultDocument(){if("object"==typeof document&&isObject(document))return document}function getDefaultPerformance(){if(getDefaultBrowser()&&isObject(window.performance))return window.performance}function getDefaultXMLHttpRequest(){if("function"==typeof XMLHttpRequest&&isFunction(XMLHttpRequest))return XMLHttpRequest}function getDefaultMutationObserver(){if(getDefaultBrowser()&&isFunction(window.MutationObserver))return window.MutationObserver}var getGlobalRegistry=function(r){if(r)return r.__SLARDAR_REGISTRY__||(r.__SLARDAR_REGISTRY__={Slardar:{plugins:[],errors:[]}}),r.__SLARDAR_REGISTRY__.Slardar},reportSelfError=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=getGlobalRegistry(getDefaultBrowser());t&&(t.errors||(t.errors=[]),t.errors.push(r))},applyMutationObserver=function(r,e){var t=r&&new r(e);return[function(r,e){t&&r&&t.observe(r,e)},function(){return t&&t.disconnect()}]},applyPerformance=function(t){var r=t&&t.timing||void 0;return[r,function(){return t&&t.now?t.now():(Date.now?Date.now():+new Date)-(r&&r.navigationStart||0)},function(r){var e=(t||{}).getEntriesByType;return isFunction(e)&&e.call(t,r)||[]},function(){var r=(t||{}).clearResourceTimings;isFunction(r)&&r.call(t)},function(r){var e=(t||{}).getEntriesByName;return isFunction(e)&&e.call(t,r)||[]}]},applyMonitor=function(r,e,t,n){void 0===e&&(e={}),void 0===n&&(n=[]);try{var o=r.apply(void 0,__spreadArray([],__read(n),!1));return o&&o(e,t)||[]}catch(r){return reportSelfError(r),[]}},getConfig=function(r,e){return isObject(r)?__assign(__assign({},e),r):!!r&&e};function getPluginConfig(r,e,t){e=null===(r=r.config())||void 0===r?void 0:r.plugins[e];return getConfig(e,t)}var ERROR_FIELDS=["name","message","stack","filename","lineno","colno"],normalize=function(r){var e;return isError(r)?e=pick(r,ERROR_FIELDS):(isPlainObject(r)||isEvent(r)||isString(r))&&(e={message:safeStringify(r)}),e},normalizeError=function(r){return normalize(r.error)},normalizeException=function(r){var e;try{var t=void 0;if("reason"in r?t=r.reason:"detail"in r&&"reason"in r.detail&&(t=r.detail.reason),t){var n=normalize(t);return __assign(__assign({},n),{name:null!==(e=n&&n.name)&&void 0!==e?e:"UnhandledRejection"})}}catch(r){}},normalizeUnknownError=function(r){return(isErrorEvent(r)?normalizeError:isPromiseRejectionEvent(r)?normalizeException:normalize)(r)},DEFAULT_EVENT_TARGET=["EventTarget","Window","Node","ApplicationCache","ChannelMergerNode","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","MessagePort","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],DEFAULT_TIME_FUNCTION=["setTimeout","setInterval","requestAnimationFrame","requestIdleCallback"],xmlHttpRequestProps=["onload","onerror","onprogress","onreadystatechange"],ADD_EVENT_LISTENER="addEventListener",REMOVE_EVENT_LISTENER="removeEventListener",DEFAULT_SOURCE_TYPE="capture-global",hookGlobalAsync=function(o,e,r){void 0===e&&(e=getDefaultBrowser()),void 0===r&&(r=getDefaultXMLHttpRequest());function a(r,t){if(!isFunction(r))return r;var n={type:DEFAULT_SOURCE_TYPE,data:__assign({},t)},e=r._w_||(r._w_=function(){try{return(r.handleEvent&&isFunction(r.handleEvent)?r.handleEvent:r).apply(this,[].map.call(arguments,function(r){return a(r,t)}))}catch(r){var e=normalize(r);throw e&&o({error:e,source:n}),r}});return e._hook_=!0,e}var u=[];return e&&u.push.apply(u,__spreadArray([],__read(DEFAULT_TIME_FUNCTION.filter(function(r){return e[r]}).map(function(o){return hookObjectProperty(e,o,function(n){return function(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return n&&n.call.apply(n,__spreadArray([this,a(r,{function:o})],__read(e),!1))}},!1)()})),!1)),r&&r.prototype&&u.push(hookObjectProperty(r.prototype,"send",function(n){return function(){for(var t=this,r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return u.push.apply(u,__spreadArray([],__read(xmlHttpRequestProps.filter(function(r){return t[r]&&!t[r]._hook_}).map(function(e){var r=hookObjectProperty(t,e,function(r){return a(r,{function:e})},!1)();return function(){r(),t[e]._hook_=void 0}})),!1)),n.apply(this,r)}},!1)()),DEFAULT_EVENT_TARGET.forEach(function(i){var r=e[i]&&e[i].prototype;r&&r[ADD_EVENT_LISTENER]&&(u.push(hookObjectProperty(r,ADD_EVENT_LISTENER,function(o){return function(r,e,t){try{var n=e.handleEvent;isFunction(n)&&(e.handleEvent=a(n,{function:"handleEvent",target:i}))}catch(r){}return o&&o.call(this,r,a(e,{function:ADD_EVENT_LISTENER,target:i}),t)}},!1)()),u.push(hookObjectProperty(r,REMOVE_EVENT_LISTENER,function(n){return function(r,e,t){return null!=e&&e._w_&&n.call(this,r,e._w_,t),n.call(this,r,e,t)}},!1)()))}),u},isSameErrorString=function(r,e){return r&&e&&r===e},shouldDropEvent=function(r,e){return!(!r||!e)&&!(!isSameErrorString(r.message,e.message)||!isSameErrorString(r.stack,e.stack))},dedupe=function(){var e;return function(r){try{if(shouldDropEvent(r,e))return void(e=r)}catch(r){reportSelfError(r)}return e=r}},JS_ERROR_EV_TYPE$1="js_error",JsErrorMonitor=function(_){if(_=void 0===_?getDefaultBrowser():_)return function(r,o){var e,t,n=r.ignoreErrors,i=r.onerror,a=r.onunhandledrejection,u=r.dedupe,r=r.captureGlobalAsync,c=getRegexp(n),s=[],l=dedupe(),f=function(r){var e=r.error,t=r.extra,n=r.react,r=r.source,e=u?l(e):e;o&&e&&(c&&c.test(e.message)||o({ev_type:JS_ERROR_EV_TYPE$1,payload:{error:e,breadcrumbs:[],extra:t,react:n,source:r}}))};i&&(_.addEventListener("error",e=function(r){return f({error:normalizeError(r),source:{type:"onerror"}})}),s.push(function(){return _.removeEventListener("error",e)})),a&&(_.addEventListener("unhandledrejection",t=function(r){return f({error:normalizeException(r),source:{type:"onunhandledrejection"}})}),s.push(function(){return _.removeEventListener("unhandledrejection",t)})),r&&s.push.apply(s,__spreadArray([],__read(hookGlobalAsync(f)),!1));return[function(r,e,t){return f({error:normalizeUnknownError(r),extra:e,react:t,source:{type:"manual"}})},function(){s.forEach(function(r){return r()})}]}},JS_ERROR_MONITOR_PLUGIN_NAME="jsError",defaultConfig$1={ignoreErrors:[],onerror:!0,onunhandledrejection:!0,captureGlobalAsync:!1,dedupe:!0};function JsErrorMonitorPlugin(t){t.on("init",function(){window.removeEventListener("error",t.pcErr,!0),window.removeEventListener("unhandledrejection",t.pcRej,!0);var r,e=getPluginConfig(t,JS_ERROR_MONITOR_PLUGIN_NAME,defaultConfig$1);e&&(e=(r=__read(applyMonitor(JsErrorMonitor,e,function(r){t.getBreadcrumbs&&(r.payload.breadcrumbs=t.getBreadcrumbs()),t.report(r)}),2))[0],r=r[1],t.on("beforeDestroy",r),t.provide("captureException",e))})}var PAGE_ACTIVITY_DELAY=100,MAX_PAGE_ACTIVITY_DELAY=1e4,hookXHRSend=function(t,o,i){var a=0;return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var n=a+=2;return o(n,Date.now()),hookMethodDangerously(this,"onreadystatechange",function(t){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return 4===this.readyState&&i(n),t&&t.apply(this,r)}})(),t.apply(this,r)}},hookFetch=function(o,i,a){var u=1;return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=o.apply(void 0,__spreadArray([],__read(r),!1)),n=u+=2;i(n,Date.now());return t.then(function(){a(n)},function(){a(n)}),t}},applyIncompleteReq=function(r,e){var t=__read(applyRecord(),3),n=t[0],o=t[1],t=t[2];return e&&hookMethodDangerously(e.prototype,"send",hookXHRSend)(o,t),r&&hookMethodDangerously(r,"fetch",hookFetch)(o,t),[n]},waitActionComplete=function(r,e,t){var n,o;return[function(){t.clearTimeout(o),o=t.setTimeout(function(){r(),e()},MAX_PAGE_ACTIVITY_DELAY)},function(){t.clearTimeout(n),n=t.setTimeout(function(){r()},PAGE_ACTIVITY_DELAY)},function(){t.clearTimeout(n),t.clearTimeout(o)}]},getDomPath=function(r){var e=r,t=[];try{for(;null!==e.parentNode;){for(var n=0,o=0,i=0;i<e.parentNode.childNodes.length;i++){var a=e.parentNode.childNodes[i];a.nodeName===e.nodeName&&(a===e&&(o=n),n++)}e.hasAttribute("id")&&""!==e.id?t.unshift(e.nodeName+"#"+e.id):1<n?t.unshift(e.nodeName+":eq("+o+")"):t.unshift(e.nodeName),e=e.parentNode}return t.slice(1).join(">")}catch(r){return}},ACTION_EV_TYPE="action",HTTP_EV_TYPE="http",LONGTASK_RV_TYPE="performance_longtask",JS_ERROR_EV_TYPE="js_error",RESOURCE_EV_TYPE="resource",RELATED_EV_TYPES=[LONGTASK_RV_TYPE,HTTP_EV_TYPE,JS_ERROR_EV_TYPE,RESOURCE_EV_TYPE],SUPPORT_TYPES=["click"],EVENT_LISTENER_OPTIONS={capture:!0},ActionMonitor=function(y,h,T,m,R){if(void 0===y&&(y=getDefaultBrowser()),void 0===h&&(h=getDefaultDocument()),void 0===T&&(T=getDefaultXMLHttpRequest()),void 0===m&&(m=getDefaultMutationObserver()),void 0===R&&(R=getDefaultPerformance()),h&&y)return function(r,t){var e=r.types,n=[],o=null,i=[],a=0,u=__read(applyPerformance(R),2)[1],c=__read(applyIncompleteReq(y,T),1)[0],s=function(){var r,e;o&&Object.keys(o.metrics).length&&!Object.keys(c).length&&(o.metrics[LONGTASK_RV_TYPE]&&(o.metrics[LONGTASK_RV_TYPE].duration=a),r=0<i.length?Math.max.apply(Math,__spreadArray([],__read(i),!1))-Math.min.apply(Math,__spreadArray([],__read(i),!1)):0,o.metrics[HTTP_EV_TYPE]&&(o.metrics[HTTP_EV_TYPE].duration=r),e=u()-o.start_time,t&&t({ev_type:ACTION_EV_TYPE,payload:__assign(__assign({},o),{duration:e,frontend_time:e-r})}),l())},l=function(){E(),o=null,i=[],a=0},f=__read(waitActionComplete(s,l,y),3),_=f[0],p=f[1],E=f[2],r=__read(applyMutationObserver(m,p),2),f=r[0],d=r[1];f();function v(r){var e;s(),l(),r.target instanceof HTMLElement&&((e=r.target.innerText)&&(g({name:e,path:getDomPath(r.target)},r.type),_()))}var g=function(r,e){var t=uuid(),n=__read(applyPerformance(R),2)[1];o={start_time:n(),id:t,type:e,target:r,metrics:{}}};e&&e.forEach(function(r){arrayIncludes(SUPPORT_TYPES,r)&&(h.addEventListener(r,v,EVENT_LISTENER_OPTIONS),n.push(function(){return h.removeEventListener(r,v,EVENT_LISTENER_OPTIONS)}))});return[function(){n.forEach(function(r){return r()}),d()},function(r){if(o&&arrayIncludes(RELATED_EV_TYPES,r.ev_type)){if(p(),r.ev_type===HTTP_EV_TYPE){if(!r.payload.response.timing)return;var e=r.payload.response.timing,t=e.startTime,e=e.duration;if(t<o.start_time)return;i.push(t,t+e)}else if(r.ev_type===LONGTASK_RV_TYPE){if(!r.payload.longtasks.length||r.payload.longtasks[0].startTime<o.start_time)return;r.payload.longtasks.forEach(function(r){a+=r.duration})}else if(r.ev_type===RESOURCE_EV_TYPE&&r.payload.startTime<o.start_time)return;return o.metrics[r.ev_type]={count:(null!==(r=null===(r=o.metrics[r.ev_type])||void 0===r?void 0:r.count)&&void 0!==r?r:0)+1},o.id}},function(r,e){s(),l(),g({name:r},e),_()}]}},ACTION_MONITOR_PLUGIN_NAME="action",defaultConfig={types:["click"]};function ActionMonitorBasePlugin(r,e){function t(r){var e=o(r);return e&&r.extra&&(r.extra.action_id=e),r}var e=__read(applyMonitor(ActionMonitor,e=void 0===e?defaultConfig:e,r.report.bind(r)),3),n=e[0],o=e[1],e=e[2];r.on("report",t),r.provide("startAction",e),r.on("beforeDestroy",function(){n(),r.off("report",t)})}var captureConsole=function(r){var r=r.levels,e=void 0===r?["log","info","warn","error","debug","assert"]:r;return{name:"captureConsole",setup:function(n){var o=getDefaultBrowser();o&&o.console&&e.forEach(function(r){r in o.console&&hookMethodDangerously(o.console,r,function(t){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];try{t&&t.call.apply(t,__spreadArray([o.console],__read(r),!1))}finally{n("captureException",safeJoin(r," "))}}})()})}}},jsErrorPlugin=function(){return{name:JS_ERROR_MONITOR_PLUGIN_NAME,setup:function(r){JsErrorMonitorPlugin(r)}}},actionPlugin=function(e){return{name:ACTION_MONITOR_PLUGIN_NAME,setup:function(r){ActionMonitorBasePlugin(r,e)}}};exports.actionPlugin=actionPlugin,exports.captureConsole=captureConsole,exports.jsErrorPlugin=jsErrorPlugin,exports.refreshPreStartContext=refreshPreStartContext; | ||
//# sourceMappingURL=index.js.map |
@@ -403,3 +403,10 @@ declare type BatchSender<E> = EventSender<E> & { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -406,0 +413,0 @@ /** 错误名称 */ |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var __assign=function(){return(__assign=Object.assign||function(r){for(var e,n=1,t=arguments.length;n<t;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}).apply(this,arguments)};function __read(r,e){var n="function"==typeof Symbol&&r[Symbol.iterator];if(!n)return r;var t,o,i=n.call(r),a=[];try{for(;(void 0===e||0<e--)&&!(t=i.next()).done;)a.push(t.value)}catch(r){o={error:r}}finally{try{t&&!t.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function __spreadArray(r,e,n){if(n||2===arguments.length)for(var t,o=0,i=e.length;o<i;o++)!t&&o in e||((t=t||Array.prototype.slice.call(e,0,o))[o]=e[o]);return r.concat(t||Array.prototype.slice.call(e))}function isObject(r){return"object"==typeof r&&null!==r}function isInstanceOf(r,e){try{return r instanceof e}catch(r){return!1}}var objProto=Object.prototype;function isPlainObject(r){if(isObject(r)){if("function"!=typeof Object.getPrototypeOf)return"[object Object]"===objProto.toString.call(r);r=Object.getPrototypeOf(r);return r===objProto||null===r}return!1}function isArray(r){return"[object Array]"===objProto.toString.call(r)}function isFunction(r){return"function"==typeof r}function isString(r){return"string"==typeof r}function isError(r){switch(Object.prototype.toString.call(r)){case"[object Error]":case"[object Exception]":case"[object DOMError]":case"[object DOMException]":return!0;default:return r instanceof Error}}function isEvent(r){return"undefined"!=typeof Event&&isInstanceOf(r,Event)}function isErrorEvent(r){return"[object ErrorEvent]"===Object.prototype.toString.call(r)}function isPromiseRejectionEvent(r){return"[object PromiseRejectionEvent]"===Object.prototype.toString.call(r)}var pick=function(n,r){return n&&isObject(n)?r.reduce(function(r,e){return r[e]=n[e],r},{}):n};function getRegexp(r){return isArray(r)&&r.length?joinRegExp(r):null}function joinRegExp(r){for(var e=[],n=r.length,t=0;t<n;t++){var o=r[t];isString(o)?e.push(o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")):o&&o.source&&e.push(o.source)}return new RegExp(e.join("|"),"i")}function safeStringify(r){try{return isString(r)?r:JSON.stringify(r)}catch(r){return"[FAILED_TO_STRINGIFY]:"+String(r)}}var hookMethodDangerously=function(n,t,o){return function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];n[t]=o.apply(void 0,__spreadArray([n[t]],__read(r),!1))}};function getDefaultBrowser(){if("object"==typeof window&&isObject(window))return window}var getGlobalRegistry=function(r){if(r)return r.__SLARDAR_REGISTRY__||(r.__SLARDAR_REGISTRY__={Slardar:{plugins:[],errors:[]}}),r.__SLARDAR_REGISTRY__.Slardar},reportSelfError=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var n=getGlobalRegistry(getDefaultBrowser());n&&(n.errors||(n.errors=[]),n.errors.push(r))},applyMonitor=function(r,e,n,t){void 0===e&&(e={}),void 0===t&&(t=[]);try{var o=r.apply(void 0,__spreadArray([],__read(t),!1));return o&&o(e,n)||[]}catch(r){return reportSelfError(r),[]}},getConfig=function(r,e){return isObject(r)?__assign(__assign({},e),r):!!r&&e};function getPluginConfig(r,e,n){e=null===(r=r.config())||void 0===r?void 0:r.plugins[e];return getConfig(e,n)}var ERROR_FIELDS=["name","message","stack","filename","lineno","colno"],normalize=function(r){var e;return isError(r)?e=pick(r,ERROR_FIELDS):(isPlainObject(r)||isEvent(r)||isString(r))&&(e={message:safeStringify(r)}),e},normalizeError=function(r){return normalize(r.error)},normalizeException=function(r){var e;try{var n=void 0;if("reason"in r?n=r.reason:"detail"in r&&"reason"in r.detail&&(n=r.detail.reason),n){var t=normalize(n);return __assign(__assign({},t),{name:null!==(e=t&&t.name)&&void 0!==e?e:"UnhandledRejection"})}}catch(r){}},normalizeUnknownError=function(r){return(isErrorEvent(r)?normalizeError:isPromiseRejectionEvent(r)?normalizeException:normalize)(r)},DEFAULT_EVENT_TARGET=["EventTarget","Window","Node","ApplicationCache","ChannelMergerNode","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","MessagePort","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],DEFAULT_TIME_FUNCTION=["setTimeout","setInterval","requestAnimationFrame","requestIdleCallback"],xmlHttpRequestProps=["onload","onerror","onprogress","onreadystatechange"],ADD_EVENT_LISTENER="addEventListener",REMOVE_EVENT_LISTENER="removeEventListener",hookeGlobalAsync=function(e){function i(r){return isFunction(r)?r._w_||(r._w_=function(){try{return(r.handleEvent||r).apply(this,[].map.call(arguments,i))}catch(r){throw n&&e(normalize(r)),r}}):r}var n=!0;return DEFAULT_TIME_FUNCTION.forEach(function(r){return window[r]&&hookMethodDangerously(window,r,function(t){return function(r){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return t&&t.call.apply(t,__spreadArray([this,i(r)],__read(e),!1))}})()}),hookMethodDangerously(XMLHttpRequest.prototype,"send",function(t){return function(){for(var e=this,r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];return xmlHttpRequestProps.forEach(function(r){return e[r]&&hookMethodDangerously(e,r,i)()}),t.apply(this,r)}})(),DEFAULT_EVENT_TARGET.forEach(function(r){r=window[r]&&window[r].prototype;r&&r[ADD_EVENT_LISTENER]&&(hookMethodDangerously(r,ADD_EVENT_LISTENER,function(o){return function(r,e,n){try{var t=e.handleEvent;isFunction(t)&&(e.handleEvent=i(t))}catch(r){}return o&&o.call(this,r,i(e),n)}})(),hookMethodDangerously(r,REMOVE_EVENT_LISTENER,function(t){return function(r,e,n){return null!=e&&e._w_&&t.call(this,r,e._w_,n),t.call(this,r,e,n)}})())}),function(){return n=!1}},isSameErrorString=function(r,e){return r&&e&&r===e},shouldDropEvent=function(r,e){return!(!r||!e)&&!(!isSameErrorString(r.message,e.message)||!isSameErrorString(r.stack,e.stack))},dedupe=function(){var e;return function(r){try{if(shouldDropEvent(r,e))return void(e=r)}catch(r){reportSelfError(r)}return e=r}},JS_ERROR_EV_TYPE="js_error",JsErrorMonitor=function(E){if(E=void 0===E?getDefaultBrowser():E)return function(r,t){var e,n,o=r.ignoreErrors,i=r.onerror,a=r.onunhandledrejection,u=r.dedupe,r=r.captureGlobalAsync,c=getRegexp(o),s=[],l=dedupe(),f=function(r,e,n){r=u?l(r):r;t&&r&&(c&&c.test(r.message)||t({ev_type:JS_ERROR_EV_TYPE,payload:{error:r,breadcrumbs:[],extra:e,react:n}}))};i&&(E.addEventListener("error",e=function(r){return f(normalizeError(r))}),s.push(function(){return E.removeEventListener("error",e)})),a&&(E.addEventListener("unhandledrejection",n=function(r){return f(normalizeException(r))}),s.push(function(){return E.removeEventListener("unhandledrejection",n)})),r&&s.push(hookeGlobalAsync(f));return[function(r,e,n){return f(normalizeUnknownError(r),e,n)},function(){s.forEach(function(r){return r()})}]}},JS_ERROR_MONITOR_PLUGIN_NAME="jsError",defaultConfig={ignoreErrors:[],onerror:!0,onunhandledrejection:!0,captureGlobalAsync:!1,dedupe:!0};function JsErrorMonitorPlugin(n){n.on("init",function(){window.removeEventListener("error",n.pcErr,!0),window.removeEventListener("unhandledrejection",n.pcRej,!0);var r,e=getPluginConfig(n,JS_ERROR_MONITOR_PLUGIN_NAME,defaultConfig);e&&(e=(r=__read(applyMonitor(JsErrorMonitor,e,function(r){n.getBreadcrumbs&&(r.payload.breadcrumbs=n.getBreadcrumbs()),n.report(r)}),2))[0],r=r[1],n.on("beforeDestroy",r),n.provide("captureException",e))})}var jsErrorPlugin=function(){return{name:JS_ERROR_MONITOR_PLUGIN_NAME,setup:function(r){JsErrorMonitorPlugin(r)}}};exports.jsErrorPlugin=jsErrorPlugin; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var __assign=function(){return(__assign=Object.assign||function(r){for(var e,t=1,n=arguments.length;t<n;t++)for(var o in e=arguments[t])Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}).apply(this,arguments)};function __read(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var n,o,i=t.call(r),a=[];try{for(;(void 0===e||0<e--)&&!(n=i.next()).done;)a.push(n.value)}catch(r){o={error:r}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}function __spreadArray(r,e,t){if(t||2===arguments.length)for(var n,o=0,i=e.length;o<i;o++)!n&&o in e||((n=n||Array.prototype.slice.call(e,0,o))[o]=e[o]);return r.concat(n||Array.prototype.slice.call(e))}var noop=function(){return{}};function isObject(r){return"object"==typeof r&&null!==r}function isInstanceOf(r,e){try{return r instanceof e}catch(r){return!1}}var objProto=Object.prototype;function isPlainObject(r){if(isObject(r)){if("function"!=typeof Object.getPrototypeOf)return"[object Object]"===objProto.toString.call(r);r=Object.getPrototypeOf(r);return r===objProto||null===r}return!1}function isArray(r){return"[object Array]"===objProto.toString.call(r)}function isFunction(r){return"function"==typeof r}function isString(r){return"string"==typeof r}function isError(r){switch(Object.prototype.toString.call(r)){case"[object Error]":case"[object Exception]":case"[object DOMError]":case"[object DOMException]":return!0;default:return r instanceof Error}}function isEvent(r){return"undefined"!=typeof Event&&isInstanceOf(r,Event)}function isErrorEvent(r){return"[object ErrorEvent]"===Object.prototype.toString.call(r)}function isPromiseRejectionEvent(r){return"[object PromiseRejectionEvent]"===Object.prototype.toString.call(r)}var pick=function(t,r){return t&&isObject(t)?r.reduce(function(r,e){return r[e]=t[e],r},{}):t};function getRegexp(r){return isArray(r)&&r.length?joinRegExp(r):null}function joinRegExp(r){for(var e=[],t=r.length,n=0;n<t;n++){var o=r[n];isString(o)?e.push(o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")):o&&o.source&&e.push(o.source)}return new RegExp(e.join("|"),"i")}function safeStringify(r){try{return isString(r)?r:JSON.stringify(r)}catch(r){return"[FAILED_TO_STRINGIFY]:"+String(r)}}var hookObjectProperty=function(i,a,u,c){return void 0===c&&(c=!0),function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];if(!i)return noop;var t=i[a],n=u.apply(void 0,__spreadArray([t],__read(r),!1)),o=n;return isFunction(o)&&c&&(o=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];try{return n.apply(this,e)}catch(r){return isFunction(t)&&t.apply(this,e)}}),i[a]=o,function(r){r||(o===i[a]?i[a]=t:n=t)}}};function getDefaultBrowser(){if("object"==typeof window&&isObject(window))return window}function getDefaultXMLHttpRequest(){if("function"==typeof XMLHttpRequest&&isFunction(XMLHttpRequest))return XMLHttpRequest}var getGlobalRegistry=function(r){if(r)return r.__SLARDAR_REGISTRY__||(r.__SLARDAR_REGISTRY__={Slardar:{plugins:[],errors:[]}}),r.__SLARDAR_REGISTRY__.Slardar},reportSelfError=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=getGlobalRegistry(getDefaultBrowser());t&&(t.errors||(t.errors=[]),t.errors.push(r))},applyMonitor=function(r,e,t,n){void 0===e&&(e={}),void 0===n&&(n=[]);try{var o=r.apply(void 0,__spreadArray([],__read(n),!1));return o&&o(e,t)||[]}catch(r){return reportSelfError(r),[]}},getConfig=function(r,e){return isObject(r)?__assign(__assign({},e),r):!!r&&e};function getPluginConfig(r,e,t){e=null===(r=r.config())||void 0===r?void 0:r.plugins[e];return getConfig(e,t)}var ERROR_FIELDS=["name","message","stack","filename","lineno","colno"],normalize=function(r){var e;return isError(r)?e=pick(r,ERROR_FIELDS):(isPlainObject(r)||isEvent(r)||isString(r))&&(e={message:safeStringify(r)}),e},normalizeError=function(r){return normalize(r.error)},normalizeException=function(r){var e;try{var t=void 0;if("reason"in r?t=r.reason:"detail"in r&&"reason"in r.detail&&(t=r.detail.reason),t){var n=normalize(t);return __assign(__assign({},n),{name:null!==(e=n&&n.name)&&void 0!==e?e:"UnhandledRejection"})}}catch(r){}},normalizeUnknownError=function(r){return(isErrorEvent(r)?normalizeError:isPromiseRejectionEvent(r)?normalizeException:normalize)(r)},DEFAULT_EVENT_TARGET=["EventTarget","Window","Node","ApplicationCache","ChannelMergerNode","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","MessagePort","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],DEFAULT_TIME_FUNCTION=["setTimeout","setInterval","requestAnimationFrame","requestIdleCallback"],xmlHttpRequestProps=["onload","onerror","onprogress","onreadystatechange"],ADD_EVENT_LISTENER="addEventListener",REMOVE_EVENT_LISTENER="removeEventListener",DEFAULT_SOURCE_TYPE="capture-global",hookGlobalAsync=function(o,e,r){void 0===e&&(e=getDefaultBrowser()),void 0===r&&(r=getDefaultXMLHttpRequest());function a(r,t){if(!isFunction(r))return r;var n={type:DEFAULT_SOURCE_TYPE,data:__assign({},t)},e=r._w_||(r._w_=function(){try{return(r.handleEvent&&isFunction(r.handleEvent)?r.handleEvent:r).apply(this,[].map.call(arguments,function(r){return a(r,t)}))}catch(r){var e=normalize(r);throw e&&o({error:e,source:n}),r}});return e._hook_=!0,e}var u=[];return e&&u.push.apply(u,__spreadArray([],__read(DEFAULT_TIME_FUNCTION.filter(function(r){return e[r]}).map(function(o){return hookObjectProperty(e,o,function(n){return function(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return n&&n.call.apply(n,__spreadArray([this,a(r,{function:o})],__read(e),!1))}},!1)()})),!1)),r&&r.prototype&&u.push(hookObjectProperty(r.prototype,"send",function(n){return function(){for(var t=this,r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return u.push.apply(u,__spreadArray([],__read(xmlHttpRequestProps.filter(function(r){return t[r]&&!t[r]._hook_}).map(function(e){var r=hookObjectProperty(t,e,function(r){return a(r,{function:e})},!1)();return function(){r(),t[e]._hook_=void 0}})),!1)),n.apply(this,r)}},!1)()),DEFAULT_EVENT_TARGET.forEach(function(i){var r=e[i]&&e[i].prototype;r&&r[ADD_EVENT_LISTENER]&&(u.push(hookObjectProperty(r,ADD_EVENT_LISTENER,function(o){return function(r,e,t){try{var n=e.handleEvent;isFunction(n)&&(e.handleEvent=a(n,{function:"handleEvent",target:i}))}catch(r){}return o&&o.call(this,r,a(e,{function:ADD_EVENT_LISTENER,target:i}),t)}},!1)()),u.push(hookObjectProperty(r,REMOVE_EVENT_LISTENER,function(n){return function(r,e,t){return null!=e&&e._w_&&n.call(this,r,e._w_,t),n.call(this,r,e,t)}},!1)()))}),u},isSameErrorString=function(r,e){return r&&e&&r===e},shouldDropEvent=function(r,e){return!(!r||!e)&&!(!isSameErrorString(r.message,e.message)||!isSameErrorString(r.stack,e.stack))},dedupe=function(){var e;return function(r){try{if(shouldDropEvent(r,e))return void(e=r)}catch(r){reportSelfError(r)}return e=r}},JS_ERROR_EV_TYPE="js_error",JsErrorMonitor=function(p){if(p=void 0===p?getDefaultBrowser():p)return function(r,o){var e,t,n=r.ignoreErrors,i=r.onerror,a=r.onunhandledrejection,u=r.dedupe,r=r.captureGlobalAsync,c=getRegexp(n),s=[],l=dedupe(),f=function(r){var e=r.error,t=r.extra,n=r.react,r=r.source,e=u?l(e):e;o&&e&&(c&&c.test(e.message)||o({ev_type:JS_ERROR_EV_TYPE,payload:{error:e,breadcrumbs:[],extra:t,react:n,source:r}}))};i&&(p.addEventListener("error",e=function(r){return f({error:normalizeError(r),source:{type:"onerror"}})}),s.push(function(){return p.removeEventListener("error",e)})),a&&(p.addEventListener("unhandledrejection",t=function(r){return f({error:normalizeException(r),source:{type:"onunhandledrejection"}})}),s.push(function(){return p.removeEventListener("unhandledrejection",t)})),r&&s.push.apply(s,__spreadArray([],__read(hookGlobalAsync(f)),!1));return[function(r,e,t){return f({error:normalizeUnknownError(r),extra:e,react:t,source:{type:"manual"}})},function(){s.forEach(function(r){return r()})}]}},JS_ERROR_MONITOR_PLUGIN_NAME="jsError",defaultConfig={ignoreErrors:[],onerror:!0,onunhandledrejection:!0,captureGlobalAsync:!1,dedupe:!0};function JsErrorMonitorPlugin(t){t.on("init",function(){window.removeEventListener("error",t.pcErr,!0),window.removeEventListener("unhandledrejection",t.pcRej,!0);var r,e=getPluginConfig(t,JS_ERROR_MONITOR_PLUGIN_NAME,defaultConfig);e&&(e=(r=__read(applyMonitor(JsErrorMonitor,e,function(r){t.getBreadcrumbs&&(r.payload.breadcrumbs=t.getBreadcrumbs()),t.report(r)}),2))[0],r=r[1],t.on("beforeDestroy",r),t.provide("captureException",e))})}var jsErrorPlugin=function(){return{name:JS_ERROR_MONITOR_PLUGIN_NAME,setup:function(r){JsErrorMonitorPlugin(r)}}};exports.jsErrorPlugin=jsErrorPlugin; | ||
//# sourceMappingURL=jsError.js.map |
@@ -403,3 +403,10 @@ declare type BatchSender<E> = EventSender<E> & { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -406,0 +413,0 @@ /** 错误名称 */ |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var __assign=function(){return(__assign=Object.assign||function(n){for(var r,t=1,e=arguments.length;t<e;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o]);return n}).apply(this,arguments)};function __read(n,r){var t="function"==typeof Symbol&&n[Symbol.iterator];if(!t)return n;var e,o,i=t.call(n),a=[];try{for(;(void 0===r||0<r--)&&!(e=i.next()).done;)a.push(e.value)}catch(n){o={error:n}}finally{try{e&&!e.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}function __spreadArray(n,r,t){if(t||2===arguments.length)for(var e,o=0,i=r.length;o<i;o++)!e&&o in r||((e=e||Array.prototype.slice.call(r,0,o))[o]=r[o]);return n.concat(e||Array.prototype.slice.call(r))}var noop=function(){return{}};function isObject(n){return"object"==typeof n&&null!==n}function isFunction(n){return"function"==typeof n}var hookObjectProperty=function(i,a,u){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];if(!i)return noop;var t=i[a],e=u.apply(void 0,__spreadArray([t],__read(n),!1)),o=e;return isFunction(o)&&(o=function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];try{return e.apply(this,r)}catch(n){return isFunction(t)&&t.apply(this,r)}}),i[a]=o,function(n){n||(o===i[a]?i[a]=t:e=t)}}};function getDefaultBrowser(){if("object"==typeof window&&isObject(window))return window}function getDefaultDocument(){if("object"==typeof document&&isObject(document))return document}function getDefaultLocation(){return getDefaultBrowser()&&window.location}function getDefaultHistory(){return getDefaultBrowser()&&window.history}var getGlobalRegistry=function(n){if(n)return n.__SLARDAR_REGISTRY__||(n.__SLARDAR_REGISTRY__={Slardar:{plugins:[],errors:[]}}),n.__SLARDAR_REGISTRY__.Slardar},reportSelfError=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var t=getGlobalRegistry(getDefaultBrowser());t&&(t.errors||(t.errors=[]),t.errors.push(n))},applyMonitor=function(n,r,t,e){void 0===r&&(r={}),void 0===e&&(e=[]);try{var o=n.apply(void 0,__spreadArray([],__read(e),!1));return o&&o(r,t)||[]}catch(n){return reportSelfError(n),[]}};function parseUrl(n){var r=getDefaultDocument();if(!r||!n)return{url:n,protocol:"",domain:"",query:"",path:"",hash:""};r=r.createElement("a");r.href=n;n=r.pathname||"/";return"/"!==n[0]&&(n="/"+n),{url:r.href,protocol:r.protocol.slice(0,-1),domain:r.hostname,query:r.search.substring(1),path:n,hash:r.hash}}var getConfig=function(n,r){return isObject(n)?__assign(__assign({},r),n):!!n&&r};function getPluginConfig(n,r,t){r=null===(n=n.config())||void 0===n?void 0:n.plugins[r];return getConfig(r,t)}var getDefaultExtractor=function(t){return function(n){var r;return"hash"===t?(null===(r=parseUrl(n).hash)||void 0===r?void 0:r.replace(/^#/,""))||"/":parseUrl(n).path}},applyOnPidChange=function(e,n,r,o){var i=r,a=n;o&&o(n);return[function(n,r,t){"user_set"!==n&&r!==i?(i=r,a=null!=t?t:i,o&&o(a),e(n,a)):"user_set"===n&&r!==a&&(a=r,o&&o(a),e(n,a))},function(){n&&e("init",n)}]},applyOnUrlChange=function(t,n){var e=n;return[function(n,r){r!==e&&t(n,e=r)}]},PAGEVIEW_EV_TYPE="pageview",PageviewMonitor=function(_,h,v){if(void 0===_&&(_=getDefaultBrowser()),void 0===h&&(h=getDefaultLocation()),void 0===v&&(v=getDefaultHistory()),_&&h)return function(n,t){var r,e,o,i,a,u=n.sendInit,f=n.initPid,c=n.routeMode,l=n.extractPid,n=n.onPidUpdate,s=[],p="manual"===c?function(){return""}:getDefaultExtractor(c),d=l||function(){},l=__read(applyOnPidChange(function(n,r){t&&t({ev_type:PAGEVIEW_EV_TYPE,payload:{pid:r,source:n}})},f||(r=h.href,null!==(e=d(r))&&void 0!==e?e:p(r)),p(h.href),n),2),g=l[0],f=l[1],n=g.bind(null,"user_set");"manual"!==c&&(o=__read(applyOnUrlChange(function(n,r){return g(n,p(r),d(r))},""),1)[0],i=function(){return o("history",h.href)},v&&(l=function(t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];try{t.apply(v,n)}finally{i()}}},s.push(hookObjectProperty(v,"pushState",l)(),hookObjectProperty(v,"replaceState",l)())),"hash"===c?(a=function(){return o("hash",h.href)},_.addEventListener("hashchange",a,!0),s.push(function(){return _.removeEventListener("hashchange",a,!0)})):(_.addEventListener("popstate",i,!0),s.push(function(){return _.removeEventListener("popstate",i,!0)})));return u&&f(),[n,function(){s.forEach(function(n){return n()})}]}},PAGEVIEW_MONITOR_PLUGIN_NAME="pageview",defaultConfig={sendInit:!0,routeMode:"history"};function PageviewMonitorPlugin(t){t.on("init",function(){var n,r=getPluginConfig(t,PAGEVIEW_MONITOR_PLUGIN_NAME,defaultConfig);r&&(r=__read(applyMonitor(PageviewMonitor,__assign(__assign({},r),{initPid:null===(r=t.config())||void 0===r?void 0:r.pid,onPidUpdate:function(n){t.set({pid:n,viewId:n+"_"+Date.now(),actionId:void 0})}}),t.report.bind(t)),2),n=r[0],r=r[1],t.on("config",function(){n(t.config().pid)}),t.on("beforeDestroy",r),t.provide("sendPageview",n))})}var pageviewPlugin=function(){return{name:PAGEVIEW_MONITOR_PLUGIN_NAME,setup:function(n){PageviewMonitorPlugin(n)}}};exports.pageviewPlugin=pageviewPlugin; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var __assign=function(){return(__assign=Object.assign||function(n){for(var r,t=1,e=arguments.length;t<e;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o]);return n}).apply(this,arguments)};function __read(n,r){var t="function"==typeof Symbol&&n[Symbol.iterator];if(!t)return n;var e,o,i=t.call(n),a=[];try{for(;(void 0===r||0<r--)&&!(e=i.next()).done;)a.push(e.value)}catch(n){o={error:n}}finally{try{e&&!e.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}function __spreadArray(n,r,t){if(t||2===arguments.length)for(var e,o=0,i=r.length;o<i;o++)!e&&o in r||((e=e||Array.prototype.slice.call(r,0,o))[o]=r[o]);return n.concat(e||Array.prototype.slice.call(r))}var noop=function(){return{}};function isObject(n){return"object"==typeof n&&null!==n}function isFunction(n){return"function"==typeof n}var hookObjectProperty=function(i,a,u,f){return void 0===f&&(f=!0),function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];if(!i)return noop;var t=i[a],e=u.apply(void 0,__spreadArray([t],__read(n),!1)),o=e;return isFunction(o)&&f&&(o=function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];try{return e.apply(this,r)}catch(n){return isFunction(t)&&t.apply(this,r)}}),i[a]=o,function(n){n||(o===i[a]?i[a]=t:e=t)}}};function getDefaultBrowser(){if("object"==typeof window&&isObject(window))return window}function getDefaultDocument(){if("object"==typeof document&&isObject(document))return document}function getDefaultLocation(){return getDefaultBrowser()&&window.location}function getDefaultHistory(){return getDefaultBrowser()&&window.history}var getGlobalRegistry=function(n){if(n)return n.__SLARDAR_REGISTRY__||(n.__SLARDAR_REGISTRY__={Slardar:{plugins:[],errors:[]}}),n.__SLARDAR_REGISTRY__.Slardar},reportSelfError=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var t=getGlobalRegistry(getDefaultBrowser());t&&(t.errors||(t.errors=[]),t.errors.push(n))},applyMonitor=function(n,r,t,e){void 0===r&&(r={}),void 0===e&&(e=[]);try{var o=n.apply(void 0,__spreadArray([],__read(e),!1));return o&&o(r,t)||[]}catch(n){return reportSelfError(n),[]}};function parseUrl(n){var r=getDefaultDocument();if(!r||!n)return{url:n,protocol:"",domain:"",query:"",path:"",hash:""};r=r.createElement("a");r.href=n;n=r.pathname||"/";return"/"!==n[0]&&(n="/"+n),{url:r.href,protocol:r.protocol.slice(0,-1),domain:r.hostname,query:r.search.substring(1),path:n,hash:r.hash}}var getConfig=function(n,r){return isObject(n)?__assign(__assign({},r),n):!!n&&r};function getPluginConfig(n,r,t){r=null===(n=n.config())||void 0===n?void 0:n.plugins[r];return getConfig(r,t)}var getDefaultExtractor=function(t){return function(n){var r;return"hash"===t?(null===(r=parseUrl(n).hash)||void 0===r?void 0:r.replace(/^#/,""))||"/":parseUrl(n).path}},applyOnPidChange=function(e,n,r,o){var i=r,a=n;o&&o(n);return[function(n,r,t){"user_set"!==n&&r!==i?(i=r,a=null!=t?t:i,o&&o(a),e(n,a)):"user_set"===n&&r!==a&&(a=r,o&&o(a),e(n,a))},function(){n&&e("init",n)}]},applyOnUrlChange=function(t,n){var e=n;return[function(n,r){r!==e&&t(n,e=r)}]},PAGEVIEW_EV_TYPE="pageview",PageviewMonitor=function(_,h,v){if(void 0===_&&(_=getDefaultBrowser()),void 0===h&&(h=getDefaultLocation()),void 0===v&&(v=getDefaultHistory()),_&&h)return function(n,t){var r,e,o,i,a,u=n.sendInit,f=n.initPid,c=n.routeMode,l=n.extractPid,n=n.onPidUpdate,s=[],p="manual"===c?function(){return""}:getDefaultExtractor(c),d=l||function(){},l=__read(applyOnPidChange(function(n,r){t&&t({ev_type:PAGEVIEW_EV_TYPE,payload:{pid:r,source:n}})},f||(r=h.href,null!==(e=d(r))&&void 0!==e?e:p(r)),p(h.href),n),2),g=l[0],f=l[1],n=g.bind(null,"user_set");"manual"!==c&&(o=__read(applyOnUrlChange(function(n,r){return g(n,p(r),d(r))},""),1)[0],i=function(){return o("history",h.href)},v&&(l=function(t){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];try{t.apply(v,n)}finally{i()}}},s.push(hookObjectProperty(v,"pushState",l)(),hookObjectProperty(v,"replaceState",l)())),"hash"===c?(a=function(){return o("hash",h.href)},_.addEventListener("hashchange",a,!0),s.push(function(){return _.removeEventListener("hashchange",a,!0)})):(_.addEventListener("popstate",i,!0),s.push(function(){return _.removeEventListener("popstate",i,!0)})));return u&&f(),[n,function(){s.forEach(function(n){return n()})}]}},PAGEVIEW_MONITOR_PLUGIN_NAME="pageview",defaultConfig={sendInit:!0,routeMode:"history"};function PageviewMonitorPlugin(t){t.on("init",function(){var n,r=getPluginConfig(t,PAGEVIEW_MONITOR_PLUGIN_NAME,defaultConfig);r&&(r=__read(applyMonitor(PageviewMonitor,__assign(__assign({},r),{initPid:null===(r=t.config())||void 0===r?void 0:r.pid,onPidUpdate:function(n){t.set({pid:n,viewId:n+"_"+Date.now(),actionId:void 0})}}),t.report.bind(t)),2),n=r[0],r=r[1],t.on("config",function(){n(t.config().pid)}),t.on("beforeDestroy",r),t.provide("sendPageview",n))})}var pageviewPlugin=function(){return{name:PAGEVIEW_MONITOR_PLUGIN_NAME,setup:function(n){PageviewMonitorPlugin(n)}}};exports.pageviewPlugin=pageviewPlugin; | ||
//# sourceMappingURL=pageview.js.map |
@@ -259,3 +259,10 @@ interface Client<ReportEvent, SendEvent, Builder extends EventBuilder<ReportEvent, SendEvent>, Sender extends EventSender<SendEvent>, InitConfig, UserConfig, Config> { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -262,0 +269,0 @@ /** 错误名称 */ |
@@ -403,3 +403,10 @@ declare type BatchSender<E> = EventSender<E> & { | ||
react?: ReactInfo; | ||
source?: JsErrorSource; | ||
} | ||
interface JsErrorSource { | ||
type: string; | ||
data?: { | ||
[key: string]: string; | ||
}; | ||
} | ||
interface JsError { | ||
@@ -406,0 +413,0 @@ /** 错误名称 */ |
{ | ||
"name": "@apmplus/integrations", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "APMPlus Integrations", | ||
@@ -15,2 +15,14 @@ "main": "dist/index.js", | ||
}, | ||
"exports": { | ||
".": "./dist/index.js", | ||
"./action": "./dist/action.js", | ||
"./breadcrumb": "./dist/breadcrumb.js", | ||
"./captureConsole": "./dist/captureConsole.js", | ||
"./custom": "./dist/custom.js", | ||
"./jsError": "./dist/jsError.js", | ||
"./pageview": "./dist/pageview.js", | ||
"./refreshPreStartContext": "./dist/refreshPreStartContext.js", | ||
"./sample": "./dist/sample.js", | ||
"./blankScreen": "./dist/blankScreen.js" | ||
}, | ||
"browserslist": [ | ||
@@ -63,3 +75,3 @@ "ie >= 9", | ||
}, | ||
"gitHead": "9c3d32303a6d329becc2b435eb767de66d281387" | ||
"gitHead": "993c9372da01090405c4e3bc1ab2b3d0b7c5c940" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
976978
12.95%34
9.68%10654
12.37%