@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.
Files changed (72) hide show
  1. package/cjs/browser/fetchObservable.js +62 -32
  2. package/cjs/browser/fetchObservable.js.map +1 -1
  3. package/cjs/browser/xhrObservable.js +31 -39
  4. package/cjs/browser/xhrObservable.js.map +1 -1
  5. package/cjs/configuration/configuration.js +2 -0
  6. package/cjs/configuration/configuration.js.map +1 -1
  7. package/cjs/dataMap.js +3 -1
  8. package/cjs/dataMap.js.map +1 -1
  9. package/cjs/helper/deviceInfo.js +1 -2
  10. package/cjs/helper/deviceInfo.js.map +1 -1
  11. package/cjs/helper/enums.js +6 -1
  12. package/cjs/helper/enums.js.map +1 -1
  13. package/cjs/helper/instrumentMethod.js +47 -44
  14. package/cjs/helper/instrumentMethod.js.map +1 -1
  15. package/cjs/helper/serialisation/storedContextManager.js +16 -15
  16. package/cjs/helper/serialisation/storedContextManager.js.map +1 -1
  17. package/cjs/helper/tools.js +15 -0
  18. package/cjs/helper/tools.js.map +1 -1
  19. package/cjs/helper/valueHistory.js +123 -0
  20. package/cjs/helper/valueHistory.js.map +1 -0
  21. package/cjs/index.js +4 -4
  22. package/cjs/index.js.map +1 -1
  23. package/cjs/session/sessionManagement.js +4 -2
  24. package/cjs/session/sessionManagement.js.map +1 -1
  25. package/cjs/tracekit/tracekit.js +29 -25
  26. package/cjs/tracekit/tracekit.js.map +1 -1
  27. package/esm/browser/fetchObservable.js +63 -34
  28. package/esm/browser/fetchObservable.js.map +1 -1
  29. package/esm/browser/xhrObservable.js +33 -41
  30. package/esm/browser/xhrObservable.js.map +1 -1
  31. package/esm/configuration/configuration.js +2 -0
  32. package/esm/configuration/configuration.js.map +1 -1
  33. package/esm/dataMap.js +3 -1
  34. package/esm/dataMap.js.map +1 -1
  35. package/esm/helper/deviceInfo.js +1 -2
  36. package/esm/helper/deviceInfo.js.map +1 -1
  37. package/esm/helper/enums.js +4 -0
  38. package/esm/helper/enums.js.map +1 -1
  39. package/esm/helper/instrumentMethod.js +48 -44
  40. package/esm/helper/instrumentMethod.js.map +1 -1
  41. package/esm/helper/serialisation/storedContextManager.js +16 -15
  42. package/esm/helper/serialisation/storedContextManager.js.map +1 -1
  43. package/esm/helper/tools.js +13 -0
  44. package/esm/helper/tools.js.map +1 -1
  45. package/esm/helper/valueHistory.js +115 -0
  46. package/esm/helper/valueHistory.js.map +1 -0
  47. package/esm/index.js +1 -1
  48. package/esm/index.js.map +1 -1
  49. package/esm/session/sessionManagement.js +4 -2
  50. package/esm/session/sessionManagement.js.map +1 -1
  51. package/esm/tracekit/tracekit.js +30 -26
  52. package/esm/tracekit/tracekit.js.map +1 -1
  53. package/package.json +2 -2
  54. package/src/browser/fetchObservable.js +71 -50
  55. package/src/browser/xhrObservable.js +39 -54
  56. package/src/configuration/configuration.js +2 -0
  57. package/src/dataMap.js +3 -1
  58. package/src/helper/deviceInfo.js +1 -2
  59. package/src/helper/enums.js +4 -1
  60. package/src/helper/instrumentMethod.js +61 -44
  61. package/src/helper/serialisation/storedContextManager.js +32 -21
  62. package/src/helper/tools.js +13 -0
  63. package/src/helper/valueHistory.js +116 -0
  64. package/src/index.js +1 -1
  65. package/src/session/sessionManagement.js +4 -2
  66. package/src/tracekit/tracekit.js +29 -25
  67. package/types/index.d.ts +4 -0
  68. package/cjs/helper/contextHistory.js +0 -117
  69. package/cjs/helper/contextHistory.js.map +0 -1
  70. package/esm/helper/contextHistory.js +0 -109
  71. package/esm/helper/contextHistory.js.map +0 -1
  72. package/src/helper/contextHistory.js +0 -101
@@ -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;AAED,OAAO,IAAIC,eAAe,GAAG;EAC3BC,YAAY,EAAE,cAAc;EAC5BC,YAAY,EAAE;AAChB,CAAC;AACD,OAAO,IAAIC,WAAW,GAAG;EACvBvB,KAAK,EAAEJ,YAAY,CAACI,KAAK;EACzBF,GAAG,EAAEF,YAAY,CAACE;AACpB,CAAC;AAED,OAAO,IAAI0B,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
+ {"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
- export function instrumentMethod(object, method, instrumentationFactory) {
5
- var original = object[method];
6
- var instrumentation = instrumentationFactory(original);
7
- var instrumentationWrapper = function instrumentationWrapper() {
8
- if (typeof instrumentation !== 'function') {
9
- return undefined;
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 instrumentation.apply(this, arguments);
39
+ return result;
13
40
  };
14
- object[method] = instrumentationWrapper;
41
+ targetPrototype[method] = instrumentation;
15
42
  return {
16
43
  stop: function stop() {
17
- if (object[method] === instrumentationWrapper) {
18
- object[method] = original;
19
- } else {
20
- instrumentation = original;
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 instrumentMethodAndCallOriginal(object, method, aliasOption) {
26
- return instrumentMethod(object, method, function (original) {
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(thisObject, value) {
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(thisObject, value);
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(object, property, {
72
+ Object.defineProperty(targetPrototype, property, {
68
73
  set: instrumentationWrapper
69
74
  });
70
75
  return {
71
76
  stop: function stop() {
72
- if (Object.getOwnPropertyDescriptor(object, property) && Object.getOwnPropertyDescriptor(object, property).set === instrumentationWrapper) {
73
- Object.defineProperty(object, property, originalDescriptor);
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","object","method","instrumentationFactory","original","instrumentation","instrumentationWrapper","undefined","apply","arguments","stop","instrumentMethodAndCallOriginal","aliasOption","result","before","after","instrumentSetter","property","originalDescriptor","Object","getOwnPropertyDescriptor","set","configurable","stoppedInstrumentation","thisObject","value","call","defineProperty"],"sources":["../../src/helper/instrumentMethod.js"],"sourcesContent":["import { noop } from './tools'\nimport { setTimeout } from './timer'\nimport { callMonitored } from './monitor'\nexport function instrumentMethod(object, method, instrumentationFactory) {\n var original = object[method]\n\n var instrumentation = instrumentationFactory(original)\n\n var instrumentationWrapper = function () {\n if (typeof instrumentation !== 'function') {\n return undefined\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return instrumentation.apply(this, arguments)\n }\n object[method] = instrumentationWrapper\n return {\n stop: function () {\n if (object[method] === instrumentationWrapper) {\n object[method] = original\n } else {\n instrumentation = original\n }\n }\n }\n}\n\nexport function instrumentMethodAndCallOriginal(object, method, aliasOption) {\n return instrumentMethod(object, method, function (original) {\n return function () {\n var result\n if (aliasOption && aliasOption.before) {\n callMonitored(aliasOption.before, this, arguments)\n // aliasOption.before.apply(this, arguments)\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, arguments)\n }\n if (aliasOption && aliasOption.after) {\n callMonitored(aliasOption.after, this, arguments)\n // aliasOption.after.apply(this, arguments)\n }\n return result\n }\n })\n}\n\nexport function instrumentSetter(object, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(object, property)\n if (\n !originalDescriptor ||\n !originalDescriptor.set ||\n !originalDescriptor.configurable\n ) {\n return { stop: noop }\n }\n var stoppedInstrumentation = noop\n var instrumentation = function (thisObject, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n if (instrumentation !== stoppedInstrumentation) {\n after(thisObject, 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(object, property, {\n set: instrumentationWrapper\n })\n\n return {\n stop: function () {\n if (\n Object.getOwnPropertyDescriptor(object, property) &&\n Object.getOwnPropertyDescriptor(object, property).set ===\n instrumentationWrapper\n ) {\n Object.defineProperty(object, property, originalDescriptor)\n } else {\n instrumentation = stoppedInstrumentation\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
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":"AAAA,SAASA,IAAI,EAAEC,SAAS,EAAEC,UAAU,QAAQ,SAAS;AACrD,SAASC,UAAU,QAAQ,SAAS;AACpC,SAASC,aAAa,QAAQ,WAAW;AACzC,SAASC,mBAAmB,QAAQ,cAAc;AAClD,OAAO,SAASC,gBAAgBA,CAACC,eAAe,EAAEC,MAAM,EAAEC,SAAS,EAAEC,IAAI,EAAE;EACzE,IAAIC,oBAAoB,GAAGD,IAAI,IAAIA,IAAI,CAACC,oBAAoB;EAC5D,IAAIC,QAAQ,GAAGL,eAAe,CAACC,MAAM,CAAC;EAEtC,IAAI,OAAOI,QAAQ,KAAK,UAAU,EAAE;IAClC,IAAIV,UAAU,CAACM,MAAM,EAAE,IAAI,CAAC,EAAE;MAC5BI,QAAQ,GAAGZ,IAAI;IACjB,CAAC,MAAM;MACL,OAAO;QAAEa,IAAI,EAAEb;MAAK,CAAC;IACvB;EACF;EAEA,IAAIc,OAAO,GAAG,KAAK;EAEnB,IAAIC,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAe;IAChC,IAAID,OAAO,EAAE;MACX;MACA,OAAOF,QAAQ,CAACI,KAAK,CAAC,IAAI,EAAEC,SAAS,CAAC;IACxC;IAEA,IAAIC,UAAU,GAAGjB,SAAS,CAACgB,SAAS,CAAC;IAErC,IAAIE,gBAAgB;IAEpBf,aAAa,CAACK,SAAS,EAAE,IAAI,EAAE,CAC7B;MACEW,MAAM,EAAE,IAAI;MACZF,UAAU,EAAEA,UAAU;MACtBG,UAAU,EAAE,SAAAA,WAAUC,QAAQ,EAAE;QAC9BH,gBAAgB,GAAGG,QAAQ;MAC7B,CAAC;MACDC,aAAa,EAAEZ,oBAAoB,GAAGN,mBAAmB,CAAC,CAAC,GAAGmB;IAChE,CAAC,CACF,CAAC;IAEF,IAAIC,MAAM,GAAGb,QAAQ,CAACI,KAAK,CAAC,IAAI,EAAEE,UAAU,CAAC;IAE7C,IAAIC,gBAAgB,EAAE;MACpBf,aAAa,CAACe,gBAAgB,EAAE,IAAI,EAAE,CAACM,MAAM,CAAC,CAAC;IACjD;;IAEA;IACA,OAAOA,MAAM;EACf,CAAC;EAEDlB,eAAe,CAACC,MAAM,CAAC,GAAGO,eAAe;EAEzC,OAAO;IACLF,IAAI,EAAE,SAAAA,KAAA,EAAY;MAChBC,OAAO,GAAG,IAAI;MACd;MACA,IAAIP,eAAe,CAACC,MAAM,CAAC,KAAKO,eAAe,EAAE;QAC/CR,eAAe,CAACC,MAAM,CAAC,GAAGI,QAAQ;MACpC;IACF;EACF,CAAC;AACH;AAEA,OAAO,SAASc,gBAAgBA,CAACnB,eAAe,EAAEoB,QAAQ,EAAEC,KAAK,EAAE;EACjE,IAAIC,kBAAkB,GAAGC,MAAM,CAACC,wBAAwB,CACtDxB,eAAe,EACfoB,QACF,CAAC;EACD,IACE,CAACE,kBAAkB,IACnB,CAACA,kBAAkB,CAACG,GAAG,IACvB,CAACH,kBAAkB,CAACI,YAAY,EAChC;IACA,OAAO;MAAEpB,IAAI,EAAEb;IAAK,CAAC;EACvB;EAEA,IAAIkC,sBAAsB,GAAGlC,IAAI;EACjC,IAAIe,gBAAe,GAAG,SAAAA,gBAAUK,MAAM,EAAEe,KAAK,EAAE;IAC7C;IACAhC,UAAU,CAAC,YAAY;MACrB,IAAIY,gBAAe,KAAKmB,sBAAsB,EAAE;QAC9CN,KAAK,CAACR,MAAM,EAAEe,KAAK,CAAC;MACtB;IACF,CAAC,EAAE,CAAC,CAAC;EACP,CAAC;EAED,IAAIC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAaD,KAAK,EAAE;IAC5CN,kBAAkB,CAACG,GAAG,CAACK,IAAI,CAAC,IAAI,EAAEF,KAAK,CAAC;IACxCpB,gBAAe,CAAC,IAAI,EAAEoB,KAAK,CAAC;EAC9B,CAAC;EAEDL,MAAM,CAACQ,cAAc,CAAC/B,eAAe,EAAEoB,QAAQ,EAAE;IAC/CK,GAAG,EAAEI;EACP,CAAC,CAAC;EAEF,OAAO;IACLvB,IAAI,EAAE,SAAAA,KAAA,EAAY;MAChB,IACEiB,MAAM,CAACC,wBAAwB,CAACxB,eAAe,EAAEoB,QAAQ,CAAC,IAC1DG,MAAM,CAACC,wBAAwB,CAACxB,eAAe,EAAEoB,QAAQ,CAAC,CAACK,GAAG,KAC5DI,sBAAsB,EACxB;QACAN,MAAM,CAACQ,cAAc,CAAC/B,eAAe,EAAEoB,QAAQ,EAAEE,kBAAkB,CAAC;MACtE;MACAd,gBAAe,GAAGmB,sBAAsB;IAC1C;EACF,CAAC;AACH","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 createStoredContextManager(productKey, customerDataType, computeBytesCountImpl) {
9
- if (computeBytesCountImpl === undefined) {
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
- var rawContext = localStorage.getItem(storageKey);
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
- return CONTEXT_STORE_KEY_PREFIX + '_' + productKey + '_' + customerDataType;
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":["computeBytesCount","DOM_EVENT","map","addEventListener","createContextManager","CONTEXT_STORE_KEY_PREFIX","storageListeners","createStoredContextManager","productKey","customerDataType","computeBytesCountImpl","undefined","storageKey","buildStorageKey","contextManager","synchronizeWithStorage","push","window","STORAGE","params","key","changeObservable","subscribe","dumpToStorage","rawContext","localStorage","getItem","context","JSON","parse","setContext","setItem","stringify","getContext","removeStorageListeners","listener","stop"],"sources":["../../../src/helper/serialisation/storedContextManager.js"],"sourcesContent":["import { computeBytesCount } from '../byteUtils'\nimport { DOM_EVENT } from '../enums'\nimport { map } from '../tools'\nimport { addEventListener } from '../../browser/addEventListener'\nimport { createContextManager } from './contextManager'\nvar CONTEXT_STORE_KEY_PREFIX = '_gc_s'\n\nvar storageListeners = []\n\nexport function createStoredContextManager(\n productKey,\n customerDataType,\n computeBytesCountImpl\n) {\n if (computeBytesCountImpl === undefined) {\n computeBytesCountImpl = computeBytesCount\n }\n var storageKey = buildStorageKey(productKey, customerDataType)\n var contextManager = createContextManager(\n customerDataType,\n computeBytesCountImpl\n )\n\n synchronizeWithStorage()\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 function synchronizeWithStorage() {\n var rawContext = localStorage.getItem(storageKey)\n var context = rawContext !== null ? JSON.parse(rawContext) : {}\n contextManager.setContext(context)\n }\n\n function dumpToStorage() {\n localStorage.setItem(\n storageKey,\n JSON.stringify(contextManager.getContext())\n )\n }\n return contextManager\n}\n\nexport function buildStorageKey(productKey, customerDataType) {\n return CONTEXT_STORE_KEY_PREFIX + '_' + productKey + '_' + customerDataType\n}\n\nexport function removeStorageListeners() {\n map(storageListeners, function (listener) {\n listener.stop()\n })\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,cAAc;AAChD,SAASC,SAAS,QAAQ,UAAU;AACpC,SAASC,GAAG,QAAQ,UAAU;AAC9B,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,IAAIC,wBAAwB,GAAG,OAAO;AAEtC,IAAIC,gBAAgB,GAAG,EAAE;AAEzB,OAAO,SAASC,0BAA0BA,CACxCC,UAAU,EACVC,gBAAgB,EAChBC,qBAAqB,EACrB;EACA,IAAIA,qBAAqB,KAAKC,SAAS,EAAE;IACvCD,qBAAqB,GAAGV,iBAAiB;EAC3C;EACA,IAAIY,UAAU,GAAGC,eAAe,CAACL,UAAU,EAAEC,gBAAgB,CAAC;EAC9D,IAAIK,cAAc,GAAGV,oBAAoB,CACvCK,gBAAgB,EAChBC,qBACF,CAAC;EAEDK,sBAAsB,CAAC,CAAC;EACxBT,gBAAgB,CAACU,IAAI,CACnBb,gBAAgB,CAACc,MAAM,EAAEhB,SAAS,CAACiB,OAAO,EAAE,UAAUC,MAAM,EAAE;IAC5D,IAAIP,UAAU,KAAKO,MAAM,CAACC,GAAG,EAAE;MAC7BL,sBAAsB,CAAC,CAAC;IAC1B;EACF,CAAC,CACH,CAAC;EACDD,cAAc,CAACO,gBAAgB,CAACC,SAAS,CAACC,aAAa,CAAC;EACxD,SAASR,sBAAsBA,CAAA,EAAG;IAChC,IAAIS,UAAU,GAAGC,YAAY,CAACC,OAAO,CAACd,UAAU,CAAC;IACjD,IAAIe,OAAO,GAAGH,UAAU,KAAK,IAAI,GAAGI,IAAI,CAACC,KAAK,CAACL,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/DV,cAAc,CAACgB,UAAU,CAACH,OAAO,CAAC;EACpC;EAEA,SAASJ,aAAaA,CAAA,EAAG;IACvBE,YAAY,CAACM,OAAO,CAClBnB,UAAU,EACVgB,IAAI,CAACI,SAAS,CAAClB,cAAc,CAACmB,UAAU,CAAC,CAAC,CAC5C,CAAC;EACH;EACA,OAAOnB,cAAc;AACvB;AAEA,OAAO,SAASD,eAAeA,CAACL,UAAU,EAAEC,gBAAgB,EAAE;EAC5D,OAAOJ,wBAAwB,GAAG,GAAG,GAAGG,UAAU,GAAG,GAAG,GAAGC,gBAAgB;AAC7E;AAEA,OAAO,SAASyB,sBAAsBA,CAAA,EAAG;EACvChC,GAAG,CAACI,gBAAgB,EAAE,UAAU6B,QAAQ,EAAE;IACxCA,QAAQ,CAACC,IAAI,CAAC,CAAC;EACjB,CAAC,CAAC;AACJ","ignoreList":[]}
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":[]}
@@ -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();