@cloudcare/browser-core 3.1.17 → 3.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/browser/fetchObservable.js +62 -32
- package/cjs/browser/fetchObservable.js.map +1 -1
- package/cjs/browser/xhrObservable.js +31 -39
- package/cjs/browser/xhrObservable.js.map +1 -1
- package/cjs/configuration/configuration.js +2 -0
- package/cjs/configuration/configuration.js.map +1 -1
- package/cjs/dataMap.js +3 -1
- package/cjs/dataMap.js.map +1 -1
- package/cjs/helper/deviceInfo.js +1 -2
- package/cjs/helper/deviceInfo.js.map +1 -1
- package/cjs/helper/enums.js +6 -1
- package/cjs/helper/enums.js.map +1 -1
- package/cjs/helper/instrumentMethod.js +47 -44
- package/cjs/helper/instrumentMethod.js.map +1 -1
- package/cjs/helper/serialisation/storedContextManager.js +16 -15
- package/cjs/helper/serialisation/storedContextManager.js.map +1 -1
- package/cjs/helper/tools.js +15 -0
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/helper/valueHistory.js +123 -0
- package/cjs/helper/valueHistory.js.map +1 -0
- package/cjs/index.js +4 -4
- package/cjs/index.js.map +1 -1
- package/cjs/session/sessionManagement.js +4 -2
- package/cjs/session/sessionManagement.js.map +1 -1
- package/cjs/tracekit/tracekit.js +29 -25
- package/cjs/tracekit/tracekit.js.map +1 -1
- package/esm/browser/fetchObservable.js +63 -34
- package/esm/browser/fetchObservable.js.map +1 -1
- package/esm/browser/xhrObservable.js +33 -41
- package/esm/browser/xhrObservable.js.map +1 -1
- package/esm/configuration/configuration.js +2 -0
- package/esm/configuration/configuration.js.map +1 -1
- package/esm/dataMap.js +3 -1
- package/esm/dataMap.js.map +1 -1
- package/esm/helper/deviceInfo.js +1 -2
- package/esm/helper/deviceInfo.js.map +1 -1
- package/esm/helper/enums.js +4 -0
- package/esm/helper/enums.js.map +1 -1
- package/esm/helper/instrumentMethod.js +48 -44
- package/esm/helper/instrumentMethod.js.map +1 -1
- package/esm/helper/serialisation/storedContextManager.js +16 -15
- package/esm/helper/serialisation/storedContextManager.js.map +1 -1
- package/esm/helper/tools.js +13 -0
- package/esm/helper/tools.js.map +1 -1
- package/esm/helper/valueHistory.js +115 -0
- package/esm/helper/valueHistory.js.map +1 -0
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/session/sessionManagement.js +4 -2
- package/esm/session/sessionManagement.js.map +1 -1
- package/esm/tracekit/tracekit.js +30 -26
- package/esm/tracekit/tracekit.js.map +1 -1
- package/package.json +2 -2
- package/src/browser/fetchObservable.js +71 -50
- package/src/browser/xhrObservable.js +39 -54
- package/src/configuration/configuration.js +2 -0
- package/src/dataMap.js +3 -1
- package/src/helper/deviceInfo.js +1 -2
- package/src/helper/enums.js +4 -1
- package/src/helper/instrumentMethod.js +61 -44
- package/src/helper/serialisation/storedContextManager.js +32 -21
- package/src/helper/tools.js +13 -0
- package/src/helper/valueHistory.js +116 -0
- package/src/index.js +1 -1
- package/src/session/sessionManagement.js +4 -2
- package/src/tracekit/tracekit.js +29 -25
- package/types/index.d.ts +4 -0
- package/cjs/helper/contextHistory.js +0 -117
- package/cjs/helper/contextHistory.js.map +0 -1
- package/esm/helper/contextHistory.js +0 -109
- package/esm/helper/contextHistory.js.map +0 -1
- package/src/helper/contextHistory.js +0 -101
package/esm/helper/enums.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","names":["DOM_EVENT","BEFORE_UNLOAD","CLICK","DBL_CLICK","KEY_DOWN","LOAD","POP_STATE","SCROLL","TOUCH_START","TOUCH_END","TOUCH_MOVE","VISIBILITY_CHANGE","PAGE_SHOW","FREEZE","RESUME","DOM_CONTENT_LOADED","POINTER_DOWN","POINTER_UP","POINTER_CANCEL","HASH_CHANGE","PAGE_HIDE","MOUSE_DOWN","MOUSE_UP","MOUSE_MOVE","FOCUS","BLUR","CONTEXT_MENU","RESIZE","CHANGE","INPUT","PLAY","PAUSE","SECURITY_POLICY_VIOLATION","SELECTION_CHANGE","STORAGE","ResourceType","DOCUMENT","XHR","BEACON","FETCH","CSS","JS","IMAGE","FONT","MEDIA","OTHER","ActionType","CUSTOM","FrustrationType","RAGE_CLICK","ERROR_CLICK","DEAD_CLICK","RumEventType","ACTION","ERROR","LONG_TASK","VIEW","RESOURCE","LOGGER","ViewLoadingType","INITIAL_LOAD","ROUTE_CHANGE","RequestType","TraceType","DDTRACE","ZIPKIN_MULTI_HEADER","ZIPKIN_SINGLE_HEADER","W3C_TRACEPARENT","W3C_TRACEPARENT_64","SKYWALKING_V3","JAEGER","ErrorHandling","HANDLED","UNHANDLED","NonErrorPrefix","UNCAUGHT","PROVIDED"],"sources":["../../src/helper/enums.js"],"sourcesContent":["export var DOM_EVENT = {\n BEFORE_UNLOAD: 'beforeunload',\n CLICK: 'click',\n DBL_CLICK: 'dblclick',\n KEY_DOWN: 'keydown',\n LOAD: 'load',\n POP_STATE: 'popstate',\n SCROLL: 'scroll',\n TOUCH_START: 'touchstart',\n TOUCH_END: 'touchend',\n TOUCH_MOVE: 'touchmove',\n VISIBILITY_CHANGE: 'visibilitychange',\n PAGE_SHOW: 'pageshow',\n FREEZE: 'freeze',\n RESUME: 'resume',\n DOM_CONTENT_LOADED: 'DOMContentLoaded',\n POINTER_DOWN: 'pointerdown',\n POINTER_UP: 'pointerup',\n POINTER_CANCEL: 'pointercancel',\n HASH_CHANGE: 'hashchange',\n PAGE_HIDE: 'pagehide',\n MOUSE_DOWN: 'mousedown',\n MOUSE_UP: 'mouseup',\n MOUSE_MOVE: 'mousemove',\n FOCUS: 'focus',\n BLUR: 'blur',\n CONTEXT_MENU: 'contextmenu',\n RESIZE: 'resize',\n CHANGE: 'change',\n INPUT: 'input',\n PLAY: 'play',\n PAUSE: 'pause',\n SECURITY_POLICY_VIOLATION: 'securitypolicyviolation',\n SELECTION_CHANGE: 'selectionchange',\n STORAGE: 'storage'\n}\nexport var ResourceType = {\n DOCUMENT: 'document',\n XHR: 'xhr',\n BEACON: 'beacon',\n FETCH: 'fetch',\n CSS: 'css',\n JS: 'js',\n IMAGE: 'image',\n FONT: 'font',\n MEDIA: 'media',\n OTHER: 'other'\n}\n\nexport var ActionType = {\n CLICK: 'click',\n CUSTOM: 'custom'\n}\nexport var FrustrationType = {\n RAGE_CLICK: 'rage_click',\n ERROR_CLICK: 'error_click',\n DEAD_CLICK: 'dead_click'\n}\nexport var RumEventType = {\n ACTION: 'action',\n ERROR: 'error',\n LONG_TASK: 'long_task',\n VIEW: 'view',\n RESOURCE: 'resource',\n LOGGER: 'logger'\n}\n\nexport var ViewLoadingType = {\n INITIAL_LOAD: 'initial_load',\n ROUTE_CHANGE: 'route_change'\n}\nexport var RequestType = {\n FETCH: ResourceType.FETCH,\n XHR: ResourceType.XHR\n}\n\nexport var TraceType = {\n DDTRACE: 'ddtrace',\n ZIPKIN_MULTI_HEADER: 'zipkin',\n ZIPKIN_SINGLE_HEADER: 'zipkin_single_header',\n W3C_TRACEPARENT: 'w3c_traceparent',\n W3C_TRACEPARENT_64: 'w3c_traceparent_64bit',\n SKYWALKING_V3: 'skywalking_v3',\n JAEGER: 'jaeger'\n}\nexport var ErrorHandling = {\n HANDLED: 'handled',\n UNHANDLED: 'unhandled'\n}\nexport var NonErrorPrefix = {\n UNCAUGHT: 'Uncaught',\n PROVIDED: 'Provided'\n}\n"],"mappings":"AAAA,OAAO,IAAIA,SAAS,GAAG;EACrBC,aAAa,EAAE,cAAc;EAC7BC,KAAK,EAAE,OAAO;EACdC,SAAS,EAAE,UAAU;EACrBC,QAAQ,EAAE,SAAS;EACnBC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAE,UAAU;EACrBC,MAAM,EAAE,QAAQ;EAChBC,WAAW,EAAE,YAAY;EACzBC,SAAS,EAAE,UAAU;EACrBC,UAAU,EAAE,WAAW;EACvBC,iBAAiB,EAAE,kBAAkB;EACrCC,SAAS,EAAE,UAAU;EACrBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,kBAAkB,EAAE,kBAAkB;EACtCC,YAAY,EAAE,aAAa;EAC3BC,UAAU,EAAE,WAAW;EACvBC,cAAc,EAAE,eAAe;EAC/BC,WAAW,EAAE,YAAY;EACzBC,SAAS,EAAE,UAAU;EACrBC,UAAU,EAAE,WAAW;EACvBC,QAAQ,EAAE,SAAS;EACnBC,UAAU,EAAE,WAAW;EACvBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,YAAY,EAAE,aAAa;EAC3BC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,yBAAyB,EAAE,yBAAyB;EACpDC,gBAAgB,EAAE,iBAAiB;EACnCC,OAAO,EAAE;AACX,CAAC;AACD,OAAO,IAAIC,YAAY,GAAG;EACxBC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,KAAK;EACVC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,GAAG,EAAE,KAAK;EACVC,EAAE,EAAE,IAAI;EACRC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,IAAIC,UAAU,GAAG;EACtB5C,KAAK,EAAE,OAAO;EACd6C,MAAM,EAAE;AACV,CAAC;AACD,OAAO,IAAIC,eAAe,GAAG;EAC3BC,UAAU,EAAE,YAAY;EACxBC,WAAW,EAAE,aAAa;EAC1BC,UAAU,EAAE;AACd,CAAC;AACD,OAAO,IAAIC,YAAY,GAAG;EACxBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,SAAS,EAAE,WAAW;EACtBC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE;AACV,CAAC;
|
|
1
|
+
{"version":3,"file":"enums.js","names":["DOM_EVENT","BEFORE_UNLOAD","CLICK","DBL_CLICK","KEY_DOWN","LOAD","POP_STATE","SCROLL","TOUCH_START","TOUCH_END","TOUCH_MOVE","VISIBILITY_CHANGE","PAGE_SHOW","FREEZE","RESUME","DOM_CONTENT_LOADED","POINTER_DOWN","POINTER_UP","POINTER_CANCEL","HASH_CHANGE","PAGE_HIDE","MOUSE_DOWN","MOUSE_UP","MOUSE_MOVE","FOCUS","BLUR","CONTEXT_MENU","RESIZE","CHANGE","INPUT","PLAY","PAUSE","SECURITY_POLICY_VIOLATION","SELECTION_CHANGE","STORAGE","ResourceType","DOCUMENT","XHR","BEACON","FETCH","CSS","JS","IMAGE","FONT","MEDIA","OTHER","ActionType","CUSTOM","FrustrationType","RAGE_CLICK","ERROR_CLICK","DEAD_CLICK","RumEventType","ACTION","ERROR","LONG_TASK","VIEW","RESOURCE","LOGGER","RumLongTaskEntryType","LONG_ANIMATION_FRAME","ViewLoadingType","INITIAL_LOAD","ROUTE_CHANGE","RequestType","TraceType","DDTRACE","ZIPKIN_MULTI_HEADER","ZIPKIN_SINGLE_HEADER","W3C_TRACEPARENT","W3C_TRACEPARENT_64","SKYWALKING_V3","JAEGER","ErrorHandling","HANDLED","UNHANDLED","NonErrorPrefix","UNCAUGHT","PROVIDED"],"sources":["../../src/helper/enums.js"],"sourcesContent":["export var DOM_EVENT = {\n BEFORE_UNLOAD: 'beforeunload',\n CLICK: 'click',\n DBL_CLICK: 'dblclick',\n KEY_DOWN: 'keydown',\n LOAD: 'load',\n POP_STATE: 'popstate',\n SCROLL: 'scroll',\n TOUCH_START: 'touchstart',\n TOUCH_END: 'touchend',\n TOUCH_MOVE: 'touchmove',\n VISIBILITY_CHANGE: 'visibilitychange',\n PAGE_SHOW: 'pageshow',\n FREEZE: 'freeze',\n RESUME: 'resume',\n DOM_CONTENT_LOADED: 'DOMContentLoaded',\n POINTER_DOWN: 'pointerdown',\n POINTER_UP: 'pointerup',\n POINTER_CANCEL: 'pointercancel',\n HASH_CHANGE: 'hashchange',\n PAGE_HIDE: 'pagehide',\n MOUSE_DOWN: 'mousedown',\n MOUSE_UP: 'mouseup',\n MOUSE_MOVE: 'mousemove',\n FOCUS: 'focus',\n BLUR: 'blur',\n CONTEXT_MENU: 'contextmenu',\n RESIZE: 'resize',\n CHANGE: 'change',\n INPUT: 'input',\n PLAY: 'play',\n PAUSE: 'pause',\n SECURITY_POLICY_VIOLATION: 'securitypolicyviolation',\n SELECTION_CHANGE: 'selectionchange',\n STORAGE: 'storage'\n}\nexport var ResourceType = {\n DOCUMENT: 'document',\n XHR: 'xhr',\n BEACON: 'beacon',\n FETCH: 'fetch',\n CSS: 'css',\n JS: 'js',\n IMAGE: 'image',\n FONT: 'font',\n MEDIA: 'media',\n OTHER: 'other'\n}\n\nexport var ActionType = {\n CLICK: 'click',\n CUSTOM: 'custom'\n}\nexport var FrustrationType = {\n RAGE_CLICK: 'rage_click',\n ERROR_CLICK: 'error_click',\n DEAD_CLICK: 'dead_click'\n}\nexport var RumEventType = {\n ACTION: 'action',\n ERROR: 'error',\n LONG_TASK: 'long_task',\n VIEW: 'view',\n RESOURCE: 'resource',\n LOGGER: 'logger'\n}\nexport var RumLongTaskEntryType = {\n LONG_TASK: 'long-task',\n LONG_ANIMATION_FRAME: 'long-animation-frame'\n}\nexport var ViewLoadingType = {\n INITIAL_LOAD: 'initial_load',\n ROUTE_CHANGE: 'route_change'\n}\nexport var RequestType = {\n FETCH: ResourceType.FETCH,\n XHR: ResourceType.XHR\n}\n\nexport var TraceType = {\n DDTRACE: 'ddtrace',\n ZIPKIN_MULTI_HEADER: 'zipkin',\n ZIPKIN_SINGLE_HEADER: 'zipkin_single_header',\n W3C_TRACEPARENT: 'w3c_traceparent',\n W3C_TRACEPARENT_64: 'w3c_traceparent_64bit',\n SKYWALKING_V3: 'skywalking_v3',\n JAEGER: 'jaeger'\n}\nexport var ErrorHandling = {\n HANDLED: 'handled',\n UNHANDLED: 'unhandled'\n}\nexport var NonErrorPrefix = {\n UNCAUGHT: 'Uncaught',\n PROVIDED: 'Provided'\n}\n"],"mappings":"AAAA,OAAO,IAAIA,SAAS,GAAG;EACrBC,aAAa,EAAE,cAAc;EAC7BC,KAAK,EAAE,OAAO;EACdC,SAAS,EAAE,UAAU;EACrBC,QAAQ,EAAE,SAAS;EACnBC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAE,UAAU;EACrBC,MAAM,EAAE,QAAQ;EAChBC,WAAW,EAAE,YAAY;EACzBC,SAAS,EAAE,UAAU;EACrBC,UAAU,EAAE,WAAW;EACvBC,iBAAiB,EAAE,kBAAkB;EACrCC,SAAS,EAAE,UAAU;EACrBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,kBAAkB,EAAE,kBAAkB;EACtCC,YAAY,EAAE,aAAa;EAC3BC,UAAU,EAAE,WAAW;EACvBC,cAAc,EAAE,eAAe;EAC/BC,WAAW,EAAE,YAAY;EACzBC,SAAS,EAAE,UAAU;EACrBC,UAAU,EAAE,WAAW;EACvBC,QAAQ,EAAE,SAAS;EACnBC,UAAU,EAAE,WAAW;EACvBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,YAAY,EAAE,aAAa;EAC3BC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,yBAAyB,EAAE,yBAAyB;EACpDC,gBAAgB,EAAE,iBAAiB;EACnCC,OAAO,EAAE;AACX,CAAC;AACD,OAAO,IAAIC,YAAY,GAAG;EACxBC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,KAAK;EACVC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,GAAG,EAAE,KAAK;EACVC,EAAE,EAAE,IAAI;EACRC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,IAAIC,UAAU,GAAG;EACtB5C,KAAK,EAAE,OAAO;EACd6C,MAAM,EAAE;AACV,CAAC;AACD,OAAO,IAAIC,eAAe,GAAG;EAC3BC,UAAU,EAAE,YAAY;EACxBC,WAAW,EAAE,aAAa;EAC1BC,UAAU,EAAE;AACd,CAAC;AACD,OAAO,IAAIC,YAAY,GAAG;EACxBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,SAAS,EAAE,WAAW;EACtBC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE;AACV,CAAC;AACD,OAAO,IAAIC,oBAAoB,GAAG;EAChCJ,SAAS,EAAE,WAAW;EACtBK,oBAAoB,EAAE;AACxB,CAAC;AACD,OAAO,IAAIC,eAAe,GAAG;EAC3BC,YAAY,EAAE,cAAc;EAC5BC,YAAY,EAAE;AAChB,CAAC;AACD,OAAO,IAAIC,WAAW,GAAG;EACvBzB,KAAK,EAAEJ,YAAY,CAACI,KAAK;EACzBF,GAAG,EAAEF,YAAY,CAACE;AACpB,CAAC;AAED,OAAO,IAAI4B,SAAS,GAAG;EACrBC,OAAO,EAAE,SAAS;EAClBC,mBAAmB,EAAE,QAAQ;EAC7BC,oBAAoB,EAAE,sBAAsB;EAC5CC,eAAe,EAAE,iBAAiB;EAClCC,kBAAkB,EAAE,uBAAuB;EAC3CC,aAAa,EAAE,eAAe;EAC9BC,MAAM,EAAE;AACV,CAAC;AACD,OAAO,IAAIC,aAAa,GAAG;EACzBC,OAAO,EAAE,SAAS;EAClBC,SAAS,EAAE;AACb,CAAC;AACD,OAAO,IAAIC,cAAc,GAAG;EAC1BC,QAAQ,EAAE,UAAU;EACpBC,QAAQ,EAAE;AACZ,CAAC","ignoreList":[]}
|
|
@@ -1,62 +1,67 @@
|
|
|
1
|
-
import { noop } from './tools';
|
|
1
|
+
import { noop, arrayFrom, startsWith } from './tools';
|
|
2
2
|
import { setTimeout } from './timer';
|
|
3
3
|
import { callMonitored } from './monitor';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
import { createHandlingStack } from './errorTools';
|
|
5
|
+
export function instrumentMethod(targetPrototype, method, onPreCall, opts) {
|
|
6
|
+
var computeHandlingStack = opts && opts.computeHandlingStack;
|
|
7
|
+
var original = targetPrototype[method];
|
|
8
|
+
if (typeof original !== 'function') {
|
|
9
|
+
if (startsWith(method, 'on')) {
|
|
10
|
+
original = noop;
|
|
11
|
+
} else {
|
|
12
|
+
return {
|
|
13
|
+
stop: noop
|
|
14
|
+
};
|
|
10
15
|
}
|
|
16
|
+
}
|
|
17
|
+
var stopped = false;
|
|
18
|
+
var instrumentation = function instrumentation() {
|
|
19
|
+
if (stopped) {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
|
|
21
|
+
return original.apply(this, arguments);
|
|
22
|
+
}
|
|
23
|
+
var parameters = arrayFrom(arguments);
|
|
24
|
+
var postCallCallback;
|
|
25
|
+
callMonitored(onPreCall, null, [{
|
|
26
|
+
target: this,
|
|
27
|
+
parameters: parameters,
|
|
28
|
+
onPostCall: function onPostCall(callback) {
|
|
29
|
+
postCallCallback = callback;
|
|
30
|
+
},
|
|
31
|
+
handlingStack: computeHandlingStack ? createHandlingStack() : undefined
|
|
32
|
+
}]);
|
|
33
|
+
var result = original.apply(this, parameters);
|
|
34
|
+
if (postCallCallback) {
|
|
35
|
+
callMonitored(postCallCallback, null, [result]);
|
|
36
|
+
}
|
|
37
|
+
|
|
11
38
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
12
|
-
return
|
|
39
|
+
return result;
|
|
13
40
|
};
|
|
14
|
-
|
|
41
|
+
targetPrototype[method] = instrumentation;
|
|
15
42
|
return {
|
|
16
43
|
stop: function stop() {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
44
|
+
stopped = true;
|
|
45
|
+
// If the instrumentation has been removed by a third party, keep the last one
|
|
46
|
+
if (targetPrototype[method] === instrumentation) {
|
|
47
|
+
targetPrototype[method] = original;
|
|
21
48
|
}
|
|
22
49
|
}
|
|
23
50
|
};
|
|
24
51
|
}
|
|
25
|
-
export function
|
|
26
|
-
|
|
27
|
-
return function () {
|
|
28
|
-
var result;
|
|
29
|
-
if (aliasOption && aliasOption.before) {
|
|
30
|
-
callMonitored(aliasOption.before, this, arguments);
|
|
31
|
-
// aliasOption.before.apply(this, arguments)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (typeof original === 'function') {
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
36
|
-
result = original.apply(this, arguments);
|
|
37
|
-
}
|
|
38
|
-
if (aliasOption && aliasOption.after) {
|
|
39
|
-
callMonitored(aliasOption.after, this, arguments);
|
|
40
|
-
// aliasOption.after.apply(this, arguments)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return result;
|
|
44
|
-
};
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
export function instrumentSetter(object, property, after) {
|
|
48
|
-
var originalDescriptor = Object.getOwnPropertyDescriptor(object, property);
|
|
52
|
+
export function instrumentSetter(targetPrototype, property, after) {
|
|
53
|
+
var originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);
|
|
49
54
|
if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {
|
|
50
55
|
return {
|
|
51
56
|
stop: noop
|
|
52
57
|
};
|
|
53
58
|
}
|
|
54
59
|
var stoppedInstrumentation = noop;
|
|
55
|
-
var _instrumentation = function instrumentation(
|
|
60
|
+
var _instrumentation = function instrumentation(target, value) {
|
|
56
61
|
// put hooked setter into event loop to avoid of set latency
|
|
57
62
|
setTimeout(function () {
|
|
58
63
|
if (_instrumentation !== stoppedInstrumentation) {
|
|
59
|
-
after(
|
|
64
|
+
after(target, value);
|
|
60
65
|
}
|
|
61
66
|
}, 0);
|
|
62
67
|
};
|
|
@@ -64,16 +69,15 @@ export function instrumentSetter(object, property, after) {
|
|
|
64
69
|
originalDescriptor.set.call(this, value);
|
|
65
70
|
_instrumentation(this, value);
|
|
66
71
|
};
|
|
67
|
-
Object.defineProperty(
|
|
72
|
+
Object.defineProperty(targetPrototype, property, {
|
|
68
73
|
set: instrumentationWrapper
|
|
69
74
|
});
|
|
70
75
|
return {
|
|
71
76
|
stop: function stop() {
|
|
72
|
-
if (Object.getOwnPropertyDescriptor(
|
|
73
|
-
Object.defineProperty(
|
|
74
|
-
} else {
|
|
75
|
-
_instrumentation = stoppedInstrumentation;
|
|
77
|
+
if (Object.getOwnPropertyDescriptor(targetPrototype, property) && Object.getOwnPropertyDescriptor(targetPrototype, property).set === instrumentationWrapper) {
|
|
78
|
+
Object.defineProperty(targetPrototype, property, originalDescriptor);
|
|
76
79
|
}
|
|
80
|
+
_instrumentation = stoppedInstrumentation;
|
|
77
81
|
}
|
|
78
82
|
};
|
|
79
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentMethod.js","names":["noop","setTimeout","callMonitored","instrumentMethod","
|
|
1
|
+
{"version":3,"file":"instrumentMethod.js","names":["noop","arrayFrom","startsWith","setTimeout","callMonitored","createHandlingStack","instrumentMethod","targetPrototype","method","onPreCall","opts","computeHandlingStack","original","stop","stopped","instrumentation","apply","arguments","parameters","postCallCallback","target","onPostCall","callback","handlingStack","undefined","result","instrumentSetter","property","after","originalDescriptor","Object","getOwnPropertyDescriptor","set","configurable","stoppedInstrumentation","value","instrumentationWrapper","call","defineProperty"],"sources":["../../src/helper/instrumentMethod.js"],"sourcesContent":["import { noop, arrayFrom, startsWith } from './tools'\nimport { setTimeout } from './timer'\nimport { callMonitored } from './monitor'\nimport { createHandlingStack } from './errorTools'\nexport function instrumentMethod(targetPrototype, method, onPreCall, opts) {\n var computeHandlingStack = opts && opts.computeHandlingStack\n var original = targetPrototype[method]\n\n if (typeof original !== 'function') {\n if (startsWith(method, 'on')) {\n original = noop\n } else {\n return { stop: noop }\n }\n }\n\n var stopped = false\n\n var instrumentation = function () {\n if (stopped) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return original.apply(this, arguments)\n }\n\n var parameters = arrayFrom(arguments)\n\n var postCallCallback\n\n callMonitored(onPreCall, null, [\n {\n target: this,\n parameters: parameters,\n onPostCall: function (callback) {\n postCallCallback = callback\n },\n handlingStack: computeHandlingStack ? createHandlingStack() : undefined\n }\n ])\n\n var result = original.apply(this, parameters)\n\n if (postCallCallback) {\n callMonitored(postCallCallback, null, [result])\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result\n }\n\n targetPrototype[method] = instrumentation\n\n return {\n stop: function () {\n stopped = true\n // If the instrumentation has been removed by a third party, keep the last one\n if (targetPrototype[method] === instrumentation) {\n targetPrototype[method] = original\n }\n }\n }\n}\n\nexport function instrumentSetter(targetPrototype, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(\n targetPrototype,\n property\n )\n if (\n !originalDescriptor ||\n !originalDescriptor.set ||\n !originalDescriptor.configurable\n ) {\n return { stop: noop }\n }\n\n var stoppedInstrumentation = noop\n var instrumentation = function (target, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n if (instrumentation !== stoppedInstrumentation) {\n after(target, value)\n }\n }, 0)\n }\n\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value)\n instrumentation(this, value)\n }\n\n Object.defineProperty(targetPrototype, property, {\n set: instrumentationWrapper\n })\n\n return {\n stop: function () {\n if (\n Object.getOwnPropertyDescriptor(targetPrototype, property) &&\n Object.getOwnPropertyDescriptor(targetPrototype, property).set ===\n instrumentationWrapper\n ) {\n Object.defineProperty(targetPrototype, property, originalDescriptor)\n }\n instrumentation = stoppedInstrumentation\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,35 +1,36 @@
|
|
|
1
|
-
import { computeBytesCount } from '../byteUtils';
|
|
2
1
|
import { DOM_EVENT } from '../enums';
|
|
3
|
-
import { map } from '../tools';
|
|
2
|
+
import { map, extend2Lev, isString } from '../tools';
|
|
4
3
|
import { addEventListener } from '../../browser/addEventListener';
|
|
5
|
-
import { createContextManager } from './contextManager';
|
|
6
4
|
var CONTEXT_STORE_KEY_PREFIX = '_gc_s';
|
|
7
5
|
var storageListeners = [];
|
|
8
|
-
export function
|
|
9
|
-
|
|
10
|
-
computeBytesCountImpl = computeBytesCount;
|
|
11
|
-
}
|
|
12
|
-
var storageKey = buildStorageKey(productKey, customerDataType);
|
|
13
|
-
var contextManager = createContextManager(customerDataType, computeBytesCountImpl);
|
|
14
|
-
synchronizeWithStorage();
|
|
6
|
+
export function storeContextManager(configuration, contextManager, productKey, customerDataType) {
|
|
7
|
+
var storageKey = buildStorageKey(configuration, productKey, customerDataType);
|
|
15
8
|
storageListeners.push(addEventListener(window, DOM_EVENT.STORAGE, function (params) {
|
|
16
9
|
if (storageKey === params.key) {
|
|
17
10
|
synchronizeWithStorage();
|
|
18
11
|
}
|
|
19
12
|
}));
|
|
20
13
|
contextManager.changeObservable.subscribe(dumpToStorage);
|
|
14
|
+
contextManager.setContext(extend2Lev(getFromStorage(), contextManager.getContext()));
|
|
21
15
|
function synchronizeWithStorage() {
|
|
22
|
-
|
|
23
|
-
var context = rawContext !== null ? JSON.parse(rawContext) : {};
|
|
24
|
-
contextManager.setContext(context);
|
|
16
|
+
contextManager.setContext(getFromStorage());
|
|
25
17
|
}
|
|
26
18
|
function dumpToStorage() {
|
|
27
19
|
localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));
|
|
28
20
|
}
|
|
21
|
+
function getFromStorage() {
|
|
22
|
+
var rawContext = localStorage.getItem(storageKey);
|
|
23
|
+
return rawContext !== null ? JSON.parse(rawContext) : {};
|
|
24
|
+
}
|
|
29
25
|
return contextManager;
|
|
30
26
|
}
|
|
31
|
-
export function buildStorageKey(productKey, customerDataType) {
|
|
32
|
-
|
|
27
|
+
export function buildStorageKey(configuration, productKey, customerDataType) {
|
|
28
|
+
// storeContextsKey
|
|
29
|
+
if (configuration.storeContextsKey && isString(configuration.storeContextsKey)) {
|
|
30
|
+
return CONTEXT_STORE_KEY_PREFIX + '_' + productKey + '_' + customerDataType + '_' + configuration.storeContextsKey;
|
|
31
|
+
} else {
|
|
32
|
+
return CONTEXT_STORE_KEY_PREFIX + '_' + productKey + '_' + customerDataType;
|
|
33
|
+
}
|
|
33
34
|
}
|
|
34
35
|
export function removeStorageListeners() {
|
|
35
36
|
map(storageListeners, function (listener) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storedContextManager.js","names":["
|
|
1
|
+
{"version":3,"file":"storedContextManager.js","names":["DOM_EVENT","map","extend2Lev","isString","addEventListener","CONTEXT_STORE_KEY_PREFIX","storageListeners","storeContextManager","configuration","contextManager","productKey","customerDataType","storageKey","buildStorageKey","push","window","STORAGE","params","key","synchronizeWithStorage","changeObservable","subscribe","dumpToStorage","setContext","getFromStorage","getContext","localStorage","setItem","JSON","stringify","rawContext","getItem","parse","storeContextsKey","removeStorageListeners","listener","stop"],"sources":["../../../src/helper/serialisation/storedContextManager.js"],"sourcesContent":["import { DOM_EVENT } from '../enums'\nimport { map, extend2Lev, isString } from '../tools'\nimport { addEventListener } from '../../browser/addEventListener'\nvar CONTEXT_STORE_KEY_PREFIX = '_gc_s'\n\nvar storageListeners = []\n\nexport function storeContextManager(\n configuration,\n contextManager,\n productKey,\n customerDataType\n) {\n var storageKey = buildStorageKey(configuration, productKey, customerDataType)\n\n storageListeners.push(\n addEventListener(window, DOM_EVENT.STORAGE, function (params) {\n if (storageKey === params.key) {\n synchronizeWithStorage()\n }\n })\n )\n contextManager.changeObservable.subscribe(dumpToStorage)\n contextManager.setContext(\n extend2Lev(getFromStorage(), contextManager.getContext())\n )\n function synchronizeWithStorage() {\n contextManager.setContext(getFromStorage())\n }\n function dumpToStorage() {\n localStorage.setItem(\n storageKey,\n JSON.stringify(contextManager.getContext())\n )\n }\n function getFromStorage() {\n const rawContext = localStorage.getItem(storageKey)\n return rawContext !== null ? JSON.parse(rawContext) : {}\n }\n return contextManager\n}\n\nexport function buildStorageKey(configuration, productKey, customerDataType) {\n // storeContextsKey\n if (\n configuration.storeContextsKey &&\n isString(configuration.storeContextsKey)\n ) {\n return (\n CONTEXT_STORE_KEY_PREFIX +\n '_' +\n productKey +\n '_' +\n customerDataType +\n '_' +\n configuration.storeContextsKey\n )\n } else {\n return CONTEXT_STORE_KEY_PREFIX + '_' + productKey + '_' + customerDataType\n }\n}\n\nexport function removeStorageListeners() {\n map(storageListeners, function (listener) {\n listener.stop()\n })\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,UAAU;AACpC,SAASC,GAAG,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,UAAU;AACpD,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,IAAIC,wBAAwB,GAAG,OAAO;AAEtC,IAAIC,gBAAgB,GAAG,EAAE;AAEzB,OAAO,SAASC,mBAAmBA,CACjCC,aAAa,EACbC,cAAc,EACdC,UAAU,EACVC,gBAAgB,EAChB;EACA,IAAIC,UAAU,GAAGC,eAAe,CAACL,aAAa,EAAEE,UAAU,EAAEC,gBAAgB,CAAC;EAE7EL,gBAAgB,CAACQ,IAAI,CACnBV,gBAAgB,CAACW,MAAM,EAAEf,SAAS,CAACgB,OAAO,EAAE,UAAUC,MAAM,EAAE;IAC5D,IAAIL,UAAU,KAAKK,MAAM,CAACC,GAAG,EAAE;MAC7BC,sBAAsB,CAAC,CAAC;IAC1B;EACF,CAAC,CACH,CAAC;EACDV,cAAc,CAACW,gBAAgB,CAACC,SAAS,CAACC,aAAa,CAAC;EACxDb,cAAc,CAACc,UAAU,CACvBrB,UAAU,CAACsB,cAAc,CAAC,CAAC,EAAEf,cAAc,CAACgB,UAAU,CAAC,CAAC,CAC1D,CAAC;EACD,SAASN,sBAAsBA,CAAA,EAAG;IAChCV,cAAc,CAACc,UAAU,CAACC,cAAc,CAAC,CAAC,CAAC;EAC7C;EACA,SAASF,aAAaA,CAAA,EAAG;IACvBI,YAAY,CAACC,OAAO,CAClBf,UAAU,EACVgB,IAAI,CAACC,SAAS,CAACpB,cAAc,CAACgB,UAAU,CAAC,CAAC,CAC5C,CAAC;EACH;EACA,SAASD,cAAcA,CAAA,EAAG;IACxB,IAAMM,UAAU,GAAGJ,YAAY,CAACK,OAAO,CAACnB,UAAU,CAAC;IACnD,OAAOkB,UAAU,KAAK,IAAI,GAAGF,IAAI,CAACI,KAAK,CAACF,UAAU,CAAC,GAAG,CAAC,CAAC;EAC1D;EACA,OAAOrB,cAAc;AACvB;AAEA,OAAO,SAASI,eAAeA,CAACL,aAAa,EAAEE,UAAU,EAAEC,gBAAgB,EAAE;EAC3E;EACA,IACEH,aAAa,CAACyB,gBAAgB,IAC9B9B,QAAQ,CAACK,aAAa,CAACyB,gBAAgB,CAAC,EACxC;IACA,OACE5B,wBAAwB,GACxB,GAAG,GACHK,UAAU,GACV,GAAG,GACHC,gBAAgB,GAChB,GAAG,GACHH,aAAa,CAACyB,gBAAgB;EAElC,CAAC,MAAM;IACL,OAAO5B,wBAAwB,GAAG,GAAG,GAAGK,UAAU,GAAG,GAAG,GAAGC,gBAAgB;EAC7E;AACF;AAEA,OAAO,SAASuB,sBAAsBA,CAAA,EAAG;EACvCjC,GAAG,CAACK,gBAAgB,EAAE,UAAU6B,QAAQ,EAAE;IACxCA,QAAQ,CAACC,IAAI,CAAC,CAAC;EACjB,CAAC,CAAC;AACJ","ignoreList":[]}
|
package/esm/helper/tools.js
CHANGED
|
@@ -1536,6 +1536,19 @@ export function startsWith(candidate, search) {
|
|
|
1536
1536
|
export function endsWith(candidate, search) {
|
|
1537
1537
|
return candidate.slice(-search.length) === search;
|
|
1538
1538
|
}
|
|
1539
|
+
export function removeDuplicates(array) {
|
|
1540
|
+
var set = new Set();
|
|
1541
|
+
array.forEach(function (item) {
|
|
1542
|
+
set.add(item);
|
|
1543
|
+
});
|
|
1544
|
+
return arrayFrom(set);
|
|
1545
|
+
}
|
|
1546
|
+
export function removeItem(array, item) {
|
|
1547
|
+
var index = array.indexOf(item);
|
|
1548
|
+
if (index >= 0) {
|
|
1549
|
+
array.splice(index, 1);
|
|
1550
|
+
}
|
|
1551
|
+
}
|
|
1539
1552
|
export function tryToClone(response) {
|
|
1540
1553
|
try {
|
|
1541
1554
|
return response.clone();
|