@cloudcare/browser-core 3.1.18 → 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 (61) 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/dataMap.js +1 -0
  6. package/cjs/dataMap.js.map +1 -1
  7. package/cjs/helper/deviceInfo.js +1 -2
  8. package/cjs/helper/deviceInfo.js.map +1 -1
  9. package/cjs/helper/enums.js +6 -1
  10. package/cjs/helper/enums.js.map +1 -1
  11. package/cjs/helper/instrumentMethod.js +47 -44
  12. package/cjs/helper/instrumentMethod.js.map +1 -1
  13. package/cjs/helper/tools.js +15 -0
  14. package/cjs/helper/tools.js.map +1 -1
  15. package/cjs/helper/valueHistory.js +123 -0
  16. package/cjs/helper/valueHistory.js.map +1 -0
  17. package/cjs/index.js +4 -4
  18. package/cjs/index.js.map +1 -1
  19. package/cjs/session/sessionManagement.js +4 -2
  20. package/cjs/session/sessionManagement.js.map +1 -1
  21. package/cjs/tracekit/tracekit.js +29 -25
  22. package/cjs/tracekit/tracekit.js.map +1 -1
  23. package/esm/browser/fetchObservable.js +63 -34
  24. package/esm/browser/fetchObservable.js.map +1 -1
  25. package/esm/browser/xhrObservable.js +33 -41
  26. package/esm/browser/xhrObservable.js.map +1 -1
  27. package/esm/dataMap.js +1 -0
  28. package/esm/dataMap.js.map +1 -1
  29. package/esm/helper/deviceInfo.js +1 -2
  30. package/esm/helper/deviceInfo.js.map +1 -1
  31. package/esm/helper/enums.js +4 -0
  32. package/esm/helper/enums.js.map +1 -1
  33. package/esm/helper/instrumentMethod.js +48 -44
  34. package/esm/helper/instrumentMethod.js.map +1 -1
  35. package/esm/helper/tools.js +13 -0
  36. package/esm/helper/tools.js.map +1 -1
  37. package/esm/helper/valueHistory.js +115 -0
  38. package/esm/helper/valueHistory.js.map +1 -0
  39. package/esm/index.js +1 -1
  40. package/esm/index.js.map +1 -1
  41. package/esm/session/sessionManagement.js +4 -2
  42. package/esm/session/sessionManagement.js.map +1 -1
  43. package/esm/tracekit/tracekit.js +30 -26
  44. package/esm/tracekit/tracekit.js.map +1 -1
  45. package/package.json +2 -2
  46. package/src/browser/fetchObservable.js +71 -50
  47. package/src/browser/xhrObservable.js +39 -54
  48. package/src/dataMap.js +1 -0
  49. package/src/helper/deviceInfo.js +1 -2
  50. package/src/helper/enums.js +4 -1
  51. package/src/helper/instrumentMethod.js +61 -44
  52. package/src/helper/tools.js +13 -0
  53. package/src/helper/valueHistory.js +116 -0
  54. package/src/index.js +1 -1
  55. package/src/session/sessionManagement.js +4 -2
  56. package/src/tracekit/tracekit.js +29 -25
  57. package/cjs/helper/contextHistory.js +0 -117
  58. package/cjs/helper/contextHistory.js.map +0 -1
  59. package/esm/helper/contextHistory.js +0 -109
  60. package/esm/helper/contextHistory.js.map +0 -1
  61. package/src/helper/contextHistory.js +0 -101
@@ -0,0 +1,115 @@
1
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
2
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
3
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4
+ import { relativeNow, ONE_MINUTE, removeItem, addDuration } from './tools';
5
+ import { setInterval, clearInterval } from './timer';
6
+ var END_OF_TIMES = Infinity;
7
+ export var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;
8
+
9
+ /**
10
+ *
11
+ * @param {expireDelay,maxEntries } params
12
+ * @returns
13
+ */
14
+ export function createValueHistory(params) {
15
+ var expireDelay = params.expireDelay;
16
+ var maxEntries = params.maxEntries;
17
+ var entries = [];
18
+ var clearOldValuesInterval = setInterval(function () {
19
+ return clearOldValues();
20
+ }, CLEAR_OLD_VALUES_INTERVAL);
21
+ function clearOldValues() {
22
+ var oldTimeThreshold = relativeNow() - expireDelay;
23
+ while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {
24
+ entries.pop();
25
+ }
26
+ }
27
+ function add(value, startTime) {
28
+ var entry = {
29
+ value: value,
30
+ startTime: startTime,
31
+ endTime: END_OF_TIMES,
32
+ remove: function remove() {
33
+ removeItem(entries, entry);
34
+ },
35
+ close: function close(endTime) {
36
+ entry.endTime = endTime;
37
+ }
38
+ };
39
+ if (maxEntries && entries.length >= maxEntries) {
40
+ entries.pop();
41
+ }
42
+ entries.unshift(entry);
43
+ return entry;
44
+ }
45
+ function find(startTime, options) {
46
+ if (typeof startTime === 'undefined') {
47
+ startTime = END_OF_TIMES;
48
+ }
49
+ if (typeof options === 'undefined') {
50
+ options = {
51
+ returnInactive: false
52
+ };
53
+ }
54
+ var _iterator = _createForOfIteratorHelper(entries),
55
+ _step;
56
+ try {
57
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
58
+ var entry = _step.value;
59
+ if (entry.startTime <= startTime) {
60
+ if (options.returnInactive || startTime <= entry.endTime) {
61
+ return entry.value;
62
+ }
63
+ break;
64
+ }
65
+ }
66
+ } catch (err) {
67
+ _iterator.e(err);
68
+ } finally {
69
+ _iterator.f();
70
+ }
71
+ }
72
+ function closeActive(endTime) {
73
+ var latestEntry = entries[0];
74
+ if (latestEntry && latestEntry.endTime === END_OF_TIMES) {
75
+ latestEntry.close(endTime);
76
+ }
77
+ }
78
+ function findAll(startTime, duration) {
79
+ if (startTime === undefined) {
80
+ startTime = END_OF_TIMES;
81
+ }
82
+ if (duration === undefined) {
83
+ duration = 0;
84
+ }
85
+ var endTime = addDuration(startTime, duration);
86
+ return entries.filter(function (entry) {
87
+ return entry.startTime <= endTime && startTime <= entry.endTime;
88
+ }).map(function (entry) {
89
+ return entry.value;
90
+ });
91
+ }
92
+
93
+ /**
94
+ * Remove all entries from this collection.
95
+ */
96
+ function reset() {
97
+ entries = [];
98
+ }
99
+
100
+ /**
101
+ * Stop internal garbage collection of past entries.
102
+ */
103
+ function stop() {
104
+ clearInterval(clearOldValuesInterval);
105
+ }
106
+ return {
107
+ add: add,
108
+ find: find,
109
+ closeActive: closeActive,
110
+ findAll: findAll,
111
+ reset: reset,
112
+ stop: stop
113
+ };
114
+ }
115
+ //# sourceMappingURL=valueHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueHistory.js","names":["relativeNow","ONE_MINUTE","removeItem","addDuration","setInterval","clearInterval","END_OF_TIMES","Infinity","CLEAR_OLD_VALUES_INTERVAL","createValueHistory","params","expireDelay","maxEntries","entries","clearOldValuesInterval","clearOldValues","oldTimeThreshold","length","endTime","pop","add","value","startTime","entry","remove","close","unshift","find","options","returnInactive","_iterator","_createForOfIteratorHelper","_step","s","n","done","err","e","f","closeActive","latestEntry","findAll","duration","undefined","filter","map","reset","stop"],"sources":["../../src/helper/valueHistory.js"],"sourcesContent":["import { relativeNow, ONE_MINUTE, removeItem, addDuration } from './tools'\nimport { setInterval, clearInterval } from './timer'\nvar END_OF_TIMES = Infinity\n\nexport var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE\n\n/**\n *\n * @param {expireDelay,maxEntries } params\n * @returns\n */\nexport function createValueHistory(params) {\n var expireDelay = params.expireDelay\n var maxEntries = params.maxEntries\n\n var entries = []\n var clearOldValuesInterval = setInterval(function () {\n return clearOldValues()\n }, CLEAR_OLD_VALUES_INTERVAL)\n\n function clearOldValues() {\n var oldTimeThreshold = relativeNow() - expireDelay\n while (\n entries.length > 0 &&\n entries[entries.length - 1].endTime < oldTimeThreshold\n ) {\n entries.pop()\n }\n }\n\n function add(value, startTime) {\n var entry = {\n value: value,\n startTime: startTime,\n endTime: END_OF_TIMES,\n remove: function () {\n removeItem(entries, entry)\n },\n close: function (endTime) {\n entry.endTime = endTime\n }\n }\n\n if (maxEntries && entries.length >= maxEntries) {\n entries.pop()\n }\n\n entries.unshift(entry)\n\n return entry\n }\n\n function find(startTime, options) {\n if (typeof startTime === 'undefined') {\n startTime = END_OF_TIMES\n }\n if (typeof options === 'undefined') {\n options = { returnInactive: false }\n }\n for (var entry of entries) {\n if (entry.startTime <= startTime) {\n if (options.returnInactive || startTime <= entry.endTime) {\n return entry.value\n }\n break\n }\n }\n }\n\n function closeActive(endTime) {\n var latestEntry = entries[0]\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime)\n }\n }\n\n function findAll(startTime, duration) {\n if (startTime === undefined) {\n startTime = END_OF_TIMES\n }\n if (duration === undefined) {\n duration = 0\n }\n var endTime = addDuration(startTime, duration)\n return entries\n .filter(function (entry) {\n return entry.startTime <= endTime && startTime <= entry.endTime\n })\n .map(function (entry) {\n return entry.value\n })\n }\n\n /**\n * Remove all entries from this collection.\n */\n function reset() {\n entries = []\n }\n\n /**\n * Stop internal garbage collection of past entries.\n */\n function stop() {\n clearInterval(clearOldValuesInterval)\n }\n\n return {\n add: add,\n find: find,\n closeActive: closeActive,\n findAll: findAll,\n reset: reset,\n stop: stop\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from './helper/boundedBuffer';
2
- export * from './helper/contextHistory';
2
+ export * from './helper/valueHistory';
3
3
  export * from './helper/deviceInfo';
4
4
  export * from './helper/enums';
5
5
  export * from './helper/instrumentMethod';
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.js"],"sourcesContent":["export * from './helper/boundedBuffer'\nexport * from './helper/contextHistory'\nexport * from './helper/deviceInfo'\nexport * from './helper/enums'\nexport * from './helper/instrumentMethod'\nexport * from './helper/errorTools'\nexport * from './helper/byteUtils'\nexport * from './error/trackRuntimeError'\nexport * from './console/consoleObservable'\nexport * from './report/reportObservable'\nexport * from './helper/display'\nexport * from './helper/monitor'\nexport * from './helper/sanitize'\nexport * from './helper/eventEmitter'\nexport * from './helper/lifeCycle'\nexport * from './helper/limitModification'\nexport * from './helper/createEventRateLimiter'\nexport * from './helper/observable'\nexport * from './helper/tools'\nexport * from './helper/urlPolyfill'\nexport * from './helper/mobileUtil'\nexport * from './helper/getZoneJsOriginalValue'\nexport * from './helper/timer'\nexport * from './helper/readBytesFromStream'\nexport * from './tracekit'\nexport * from './configuration/configuration'\nexport * from './configuration/transportConfiguration'\nexport * from './browser/cookie'\nexport * from './browser/fetchObservable'\nexport * from './browser/xhrObservable'\nexport * from './browser/pageExitObservable'\nexport * from './browser/htmlDomUtils'\nexport * from './browser/addEventListener'\nexport * from './browser/runOnReadyState'\nexport * from './browser/scroll'\n\nexport * from './dataMap'\nexport * from './init'\nexport * from './session/sessionManagement'\nexport * from './session/sessionConstants'\nexport * from './session/sessionCookieStore'\nexport * from './session/sessionStore'\nexport * from './transport'\nexport * from './synthetics/syntheticsWorkerValues'\n\nexport * from './helper/serialisation/contextManager'\nexport * from './helper/serialisation/heavyCustomerDataWarning'\nexport * from './helper/serialisation/jsonStringify'\nexport * from './helper/serialisation/rowData'\nexport * from './helper/serialisation/storedContextManager'\nexport * from './user'\nexport * from './helper/polyfills'\nexport * from './telemetry/telemetry'\nexport * from './helper/catchUserErrors'\n"],"mappings":"AAAA,cAAc,wBAAwB;AACtC,cAAc,yBAAyB;AACvC,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,2BAA2B;AACzC,cAAc,qBAAqB;AACnC,cAAc,oBAAoB;AAClC,cAAc,2BAA2B;AACzC,cAAc,6BAA6B;AAC3C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;AAClC,cAAc,4BAA4B;AAC1C,cAAc,iCAAiC;AAC/C,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,sBAAsB;AACpC,cAAc,qBAAqB;AACnC,cAAc,iCAAiC;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,8BAA8B;AAC5C,cAAc,YAAY;AAC1B,cAAc,+BAA+B;AAC7C,cAAc,wCAAwC;AACtD,cAAc,kBAAkB;AAChC,cAAc,2BAA2B;AACzC,cAAc,yBAAyB;AACvC,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,4BAA4B;AAC1C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAEhC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,6BAA6B;AAC3C,cAAc,4BAA4B;AAC1C,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,aAAa;AAC3B,cAAc,qCAAqC;AAEnD,cAAc,uCAAuC;AACrD,cAAc,iDAAiD;AAC/D,cAAc,sCAAsC;AACpD,cAAc,gCAAgC;AAC9C,cAAc,6CAA6C;AAC3D,cAAc,QAAQ;AACtB,cAAc,oBAAoB;AAClC,cAAc,uBAAuB;AACrC,cAAc,0BAA0B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.js"],"sourcesContent":["export * from './helper/boundedBuffer'\nexport * from './helper/valueHistory'\nexport * from './helper/deviceInfo'\nexport * from './helper/enums'\nexport * from './helper/instrumentMethod'\nexport * from './helper/errorTools'\nexport * from './helper/byteUtils'\nexport * from './error/trackRuntimeError'\nexport * from './console/consoleObservable'\nexport * from './report/reportObservable'\nexport * from './helper/display'\nexport * from './helper/monitor'\nexport * from './helper/sanitize'\nexport * from './helper/eventEmitter'\nexport * from './helper/lifeCycle'\nexport * from './helper/limitModification'\nexport * from './helper/createEventRateLimiter'\nexport * from './helper/observable'\nexport * from './helper/tools'\nexport * from './helper/urlPolyfill'\nexport * from './helper/mobileUtil'\nexport * from './helper/getZoneJsOriginalValue'\nexport * from './helper/timer'\nexport * from './helper/readBytesFromStream'\nexport * from './tracekit'\nexport * from './configuration/configuration'\nexport * from './configuration/transportConfiguration'\nexport * from './browser/cookie'\nexport * from './browser/fetchObservable'\nexport * from './browser/xhrObservable'\nexport * from './browser/pageExitObservable'\nexport * from './browser/htmlDomUtils'\nexport * from './browser/addEventListener'\nexport * from './browser/runOnReadyState'\nexport * from './browser/scroll'\n\nexport * from './dataMap'\nexport * from './init'\nexport * from './session/sessionManagement'\nexport * from './session/sessionConstants'\nexport * from './session/sessionCookieStore'\nexport * from './session/sessionStore'\nexport * from './transport'\nexport * from './synthetics/syntheticsWorkerValues'\n\nexport * from './helper/serialisation/contextManager'\nexport * from './helper/serialisation/heavyCustomerDataWarning'\nexport * from './helper/serialisation/jsonStringify'\nexport * from './helper/serialisation/rowData'\nexport * from './helper/serialisation/storedContextManager'\nexport * from './user'\nexport * from './helper/polyfills'\nexport * from './telemetry/telemetry'\nexport * from './helper/catchUserErrors'\n"],"mappings":"AAAA,cAAc,wBAAwB;AACtC,cAAc,uBAAuB;AACrC,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,2BAA2B;AACzC,cAAc,qBAAqB;AACnC,cAAc,oBAAoB;AAClC,cAAc,2BAA2B;AACzC,cAAc,6BAA6B;AAC3C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;AAClC,cAAc,4BAA4B;AAC1C,cAAc,iCAAiC;AAC/C,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,sBAAsB;AACpC,cAAc,qBAAqB;AACnC,cAAc,iCAAiC;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,8BAA8B;AAC5C,cAAc,YAAY;AAC1B,cAAc,+BAA+B;AAC7C,cAAc,wCAAwC;AACtD,cAAc,kBAAkB;AAChC,cAAc,2BAA2B;AACzC,cAAc,yBAAyB;AACvC,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,4BAA4B;AAC1C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAEhC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,6BAA6B;AAC3C,cAAc,4BAA4B;AAC1C,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,aAAa;AAC3B,cAAc,qCAAqC;AAEnD,cAAc,uCAAuC;AACrD,cAAc,iDAAiD;AAC/D,cAAc,sCAAsC;AACpD,cAAc,gCAAgC;AAC9C,cAAc,6CAA6C;AAC3D,cAAc,QAAQ;AACtB,cAAc,oBAAoB;AAClC,cAAc,uBAAuB;AACrC,cAAc,0BAA0B","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { relativeNow, clocksOrigin, ONE_MINUTE, each } from '../helper/tools';
2
2
  import { addEventListeners, addEventListener } from '../browser/addEventListener';
3
- import { ContextHistory } from '../helper/contextHistory';
3
+ import { createValueHistory } from '../helper/valueHistory';
4
4
  import { startSessionStore } from './sessionStore';
5
5
  import { SESSION_TIME_OUT_DELAY } from './sessionConstants';
6
6
  import { DOM_EVENT } from '../helper/enums';
@@ -16,7 +16,9 @@ export var startSessionManager = function startSessionManager(options, productKe
16
16
  stopCallbacks.push(function () {
17
17
  return sessionStore.stop();
18
18
  });
19
- var sessionContextHistory = new ContextHistory(SESSION_CONTEXT_TIMEOUT_DELAY);
19
+ var sessionContextHistory = createValueHistory({
20
+ expireDelay: SESSION_CONTEXT_TIMEOUT_DELAY
21
+ });
20
22
  stopCallbacks.push(function () {
21
23
  return sessionContextHistory.stop();
22
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sessionManagement.js","names":["relativeNow","clocksOrigin","ONE_MINUTE","each","addEventListeners","addEventListener","ContextHistory","startSessionStore","SESSION_TIME_OUT_DELAY","DOM_EVENT","clearInterval","setInterval","Observable","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","options","productKey","computeSessionState","renewObservable","expireObservable","sessionStore","push","stop","sessionContextHistory","subscribe","add","buildSessionContext","notify","closeActive","expandOrRenewSession","relative","trackActivity","trackVisibility","expandSession","id","getSession","trackingType","findActiveSession","startTime","find","expire","stopSessionManager","e","_addEventListeners","window","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","trackResume","cb","RESUME"],"sources":["../../src/session/sessionManagement.js"],"sourcesContent":["import { relativeNow, clocksOrigin, ONE_MINUTE, each } from '../helper/tools'\nimport {\n addEventListeners,\n addEventListener\n} from '../browser/addEventListener'\nimport { ContextHistory } from '../helper/contextHistory'\nimport { startSessionStore } from './sessionStore'\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants'\nimport { DOM_EVENT } from '../helper/enums'\nimport { clearInterval, setInterval } from '../helper/timer'\nimport { Observable } from '../helper/observable'\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY\nvar stopCallbacks = []\n\nexport var startSessionManager = function (\n options,\n productKey,\n computeSessionState\n) {\n var renewObservable = new Observable()\n var expireObservable = new Observable()\n var sessionStore = startSessionStore(options, productKey, computeSessionState)\n stopCallbacks.push(function () {\n return sessionStore.stop()\n })\n\n var sessionContextHistory = new ContextHistory(SESSION_CONTEXT_TIMEOUT_DELAY)\n stopCallbacks.push(function () {\n return sessionContextHistory.stop()\n })\n\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow())\n renewObservable.notify()\n })\n sessionStore.expireObservable.subscribe(function () {\n expireObservable.notify()\n sessionContextHistory.closeActive(relativeNow())\n })\n\n sessionStore.expandOrRenewSession()\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative)\n\n trackActivity(function () {\n return sessionStore.expandOrRenewSession()\n })\n trackVisibility(function () {\n return sessionStore.expandSession()\n })\n // trackResume(function () {\n // return sessionStore.expandSession()\n // })\n\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey]\n }\n }\n\n return {\n findActiveSession: function (startTime) {\n return sessionContextHistory.find(startTime)\n },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: sessionStore.expire\n }\n}\n\nexport function stopSessionManager() {\n each(stopCallbacks, function (e) {\n return e()\n })\n stopCallbacks = []\n}\n\nfunction trackActivity(expandOrRenewSession) {\n var _addEventListeners = addEventListeners(\n window,\n [\n DOM_EVENT.CLICK,\n DOM_EVENT.TOUCH_START,\n DOM_EVENT.KEY_DOWN,\n DOM_EVENT.SCROLL\n ],\n expandOrRenewSession,\n { capture: true, passive: true }\n )\n stopCallbacks.push(_addEventListeners.stop)\n}\n\nfunction trackVisibility(expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession()\n }\n }\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.VISIBILITY_CHANGE,\n expandSessionWhenVisible\n )\n stopCallbacks.push(_addEventListener.stop)\n\n var visibilityCheckInterval = setInterval(\n expandSessionWhenVisible,\n VISIBILITY_CHECK_DELAY\n )\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval)\n })\n}\nfunction trackResume(cb) {\n var _addEventListener = addEventListener(window, DOM_EVENT.RESUME, cb, {\n capture: true\n })\n stopCallbacks.push(_addEventListener.stop)\n}\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,YAAY,EAAEC,UAAU,EAAEC,IAAI,QAAQ,iBAAiB;AAC7E,SACEC,iBAAiB,EACjBC,gBAAgB,QACX,6BAA6B;AACpC,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,iBAAiB,QAAQ,gBAAgB;AAClD,SAASC,sBAAsB,QAAQ,oBAAoB;AAC3D,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,aAAa,EAAEC,WAAW,QAAQ,iBAAiB;AAC5D,SAASC,UAAU,QAAQ,sBAAsB;AACjD,OAAO,IAAIC,sBAAsB,GAAGX,UAAU;AAC9C,IAAIY,6BAA6B,GAAGN,sBAAsB;AAC1D,IAAIO,aAAa,GAAG,EAAE;AAEtB,OAAO,IAAIC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAC5BC,OAAO,EACPC,UAAU,EACVC,mBAAmB,EACnB;EACA,IAAIC,eAAe,GAAG,IAAIR,UAAU,CAAC,CAAC;EACtC,IAAIS,gBAAgB,GAAG,IAAIT,UAAU,CAAC,CAAC;EACvC,IAAIU,YAAY,GAAGf,iBAAiB,CAACU,OAAO,EAAEC,UAAU,EAAEC,mBAAmB,CAAC;EAC9EJ,aAAa,CAACQ,IAAI,CAAC,YAAY;IAC7B,OAAOD,YAAY,CAACE,IAAI,CAAC,CAAC;EAC5B,CAAC,CAAC;EAEF,IAAIC,qBAAqB,GAAG,IAAInB,cAAc,CAACQ,6BAA6B,CAAC;EAC7EC,aAAa,CAACQ,IAAI,CAAC,YAAY;IAC7B,OAAOE,qBAAqB,CAACD,IAAI,CAAC,CAAC;EACrC,CAAC,CAAC;EAEFF,YAAY,CAACF,eAAe,CAACM,SAAS,CAAC,YAAY;IACjDD,qBAAqB,CAACE,GAAG,CAACC,mBAAmB,CAAC,CAAC,EAAE5B,WAAW,CAAC,CAAC,CAAC;IAC/DoB,eAAe,CAACS,MAAM,CAAC,CAAC;EAC1B,CAAC,CAAC;EACFP,YAAY,CAACD,gBAAgB,CAACK,SAAS,CAAC,YAAY;IAClDL,gBAAgB,CAACQ,MAAM,CAAC,CAAC;IACzBJ,qBAAqB,CAACK,WAAW,CAAC9B,WAAW,CAAC,CAAC,CAAC;EAClD,CAAC,CAAC;EAEFsB,YAAY,CAACS,oBAAoB,CAAC,CAAC;EACnCN,qBAAqB,CAACE,GAAG,CAACC,mBAAmB,CAAC,CAAC,EAAE3B,YAAY,CAAC,CAAC,CAAC+B,QAAQ,CAAC;EAEzEC,aAAa,CAAC,YAAY;IACxB,OAAOX,YAAY,CAACS,oBAAoB,CAAC,CAAC;EAC5C,CAAC,CAAC;EACFG,eAAe,CAAC,YAAY;IAC1B,OAAOZ,YAAY,CAACa,aAAa,CAAC,CAAC;EACrC,CAAC,CAAC;EACF;EACA;EACA;;EAEA,SAASP,mBAAmBA,CAAA,EAAG;IAC7B,OAAO;MACLQ,EAAE,EAAEd,YAAY,CAACe,UAAU,CAAC,CAAC,CAACD,EAAE;MAChCE,YAAY,EAAEhB,YAAY,CAACe,UAAU,CAAC,CAAC,CAACnB,UAAU;IACpD,CAAC;EACH;EAEA,OAAO;IACLqB,iBAAiB,EAAE,SAAAA,kBAAUC,SAAS,EAAE;MACtC,OAAOf,qBAAqB,CAACgB,IAAI,CAACD,SAAS,CAAC;IAC9C,CAAC;IACDpB,eAAe,EAAEA,eAAe;IAChCC,gBAAgB,EAAEA,gBAAgB;IAClCqB,MAAM,EAAEpB,YAAY,CAACoB;EACvB,CAAC;AACH,CAAC;AAED,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnCxC,IAAI,CAACY,aAAa,EAAE,UAAU6B,CAAC,EAAE;IAC/B,OAAOA,CAAC,CAAC,CAAC;EACZ,CAAC,CAAC;EACF7B,aAAa,GAAG,EAAE;AACpB;AAEA,SAASkB,aAAaA,CAACF,oBAAoB,EAAE;EAC3C,IAAIc,kBAAkB,GAAGzC,iBAAiB,CACxC0C,MAAM,EACN,CACErC,SAAS,CAACsC,KAAK,EACftC,SAAS,CAACuC,WAAW,EACrBvC,SAAS,CAACwC,QAAQ,EAClBxC,SAAS,CAACyC,MAAM,CACjB,EACDnB,oBAAoB,EACpB;IAAEoB,OAAO,EAAE,IAAI;IAAEC,OAAO,EAAE;EAAK,CACjC,CAAC;EACDrC,aAAa,CAACQ,IAAI,CAACsB,kBAAkB,CAACrB,IAAI,CAAC;AAC7C;AAEA,SAASU,eAAeA,CAACC,aAAa,EAAE;EACtC,IAAIkB,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA,EAAe;IACzC,IAAIC,QAAQ,CAACC,eAAe,KAAK,SAAS,EAAE;MAC1CpB,aAAa,CAAC,CAAC;IACjB;EACF,CAAC;EACD,IAAIqB,iBAAiB,GAAGnD,gBAAgB,CACtCiD,QAAQ,EACR7C,SAAS,CAACgD,iBAAiB,EAC3BJ,wBACF,CAAC;EACDtC,aAAa,CAACQ,IAAI,CAACiC,iBAAiB,CAAChC,IAAI,CAAC;EAE1C,IAAIkC,uBAAuB,GAAG/C,WAAW,CACvC0C,wBAAwB,EACxBxC,sBACF,CAAC;EACDE,aAAa,CAACQ,IAAI,CAAC,YAAY;IAC7Bb,aAAa,CAACgD,uBAAuB,CAAC;EACxC,CAAC,CAAC;AACJ;AACA,SAASC,WAAWA,CAACC,EAAE,EAAE;EACvB,IAAIJ,iBAAiB,GAAGnD,gBAAgB,CAACyC,MAAM,EAAErC,SAAS,CAACoD,MAAM,EAAED,EAAE,EAAE;IACrET,OAAO,EAAE;EACX,CAAC,CAAC;EACFpC,aAAa,CAACQ,IAAI,CAACiC,iBAAiB,CAAChC,IAAI,CAAC;AAC5C","ignoreList":[]}
1
+ {"version":3,"file":"sessionManagement.js","names":["relativeNow","clocksOrigin","ONE_MINUTE","each","addEventListeners","addEventListener","createValueHistory","startSessionStore","SESSION_TIME_OUT_DELAY","DOM_EVENT","clearInterval","setInterval","Observable","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","options","productKey","computeSessionState","renewObservable","expireObservable","sessionStore","push","stop","sessionContextHistory","expireDelay","subscribe","add","buildSessionContext","notify","closeActive","expandOrRenewSession","relative","trackActivity","trackVisibility","expandSession","id","getSession","trackingType","findActiveSession","startTime","find","expire","stopSessionManager","e","_addEventListeners","window","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","trackResume","cb","RESUME"],"sources":["../../src/session/sessionManagement.js"],"sourcesContent":["import { relativeNow, clocksOrigin, ONE_MINUTE, each } from '../helper/tools'\nimport {\n addEventListeners,\n addEventListener\n} from '../browser/addEventListener'\nimport { createValueHistory } from '../helper/valueHistory'\nimport { startSessionStore } from './sessionStore'\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants'\nimport { DOM_EVENT } from '../helper/enums'\nimport { clearInterval, setInterval } from '../helper/timer'\nimport { Observable } from '../helper/observable'\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY\nvar stopCallbacks = []\n\nexport var startSessionManager = function (\n options,\n productKey,\n computeSessionState\n) {\n var renewObservable = new Observable()\n var expireObservable = new Observable()\n var sessionStore = startSessionStore(options, productKey, computeSessionState)\n stopCallbacks.push(function () {\n return sessionStore.stop()\n })\n\n var sessionContextHistory = createValueHistory({\n expireDelay: SESSION_CONTEXT_TIMEOUT_DELAY\n })\n stopCallbacks.push(function () {\n return sessionContextHistory.stop()\n })\n\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow())\n renewObservable.notify()\n })\n sessionStore.expireObservable.subscribe(function () {\n expireObservable.notify()\n sessionContextHistory.closeActive(relativeNow())\n })\n\n sessionStore.expandOrRenewSession()\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative)\n\n trackActivity(function () {\n return sessionStore.expandOrRenewSession()\n })\n trackVisibility(function () {\n return sessionStore.expandSession()\n })\n // trackResume(function () {\n // return sessionStore.expandSession()\n // })\n\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey]\n }\n }\n\n return {\n findActiveSession: function (startTime) {\n return sessionContextHistory.find(startTime)\n },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: sessionStore.expire\n }\n}\n\nexport function stopSessionManager() {\n each(stopCallbacks, function (e) {\n return e()\n })\n stopCallbacks = []\n}\n\nfunction trackActivity(expandOrRenewSession) {\n var _addEventListeners = addEventListeners(\n window,\n [\n DOM_EVENT.CLICK,\n DOM_EVENT.TOUCH_START,\n DOM_EVENT.KEY_DOWN,\n DOM_EVENT.SCROLL\n ],\n expandOrRenewSession,\n { capture: true, passive: true }\n )\n stopCallbacks.push(_addEventListeners.stop)\n}\n\nfunction trackVisibility(expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession()\n }\n }\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.VISIBILITY_CHANGE,\n expandSessionWhenVisible\n )\n stopCallbacks.push(_addEventListener.stop)\n\n var visibilityCheckInterval = setInterval(\n expandSessionWhenVisible,\n VISIBILITY_CHECK_DELAY\n )\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval)\n })\n}\nfunction trackResume(cb) {\n var _addEventListener = addEventListener(window, DOM_EVENT.RESUME, cb, {\n capture: true\n })\n stopCallbacks.push(_addEventListener.stop)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { instrumentMethodAndCallOriginal } from '../helper/instrumentMethod';
1
+ import { instrumentMethod } from '../helper/instrumentMethod';
2
2
  import { isNullUndefinedDefaultValue } from '../helper/tools';
3
3
  import { computeStackTrace } from './computeStackTrace';
4
4
 
@@ -51,26 +51,30 @@ export function startUnhandledErrorCollection(callback) {
51
51
  * Install a global onerror handler
52
52
  */
53
53
  function instrumentOnError(callback) {
54
- return instrumentMethodAndCallOriginal(window, 'onerror', {
55
- before: function before(messageObj, url, line, column, errorObj) {
56
- var stackTrace;
57
- if (errorObj instanceof Error) {
58
- stackTrace = computeStackTrace(errorObj);
59
- } else {
60
- var location = {
61
- url: url,
62
- column: column,
63
- line: line
64
- };
65
- var parse = tryToParseMessage(messageObj);
66
- stackTrace = {
67
- name: parse.name,
68
- message: parse.message,
69
- stack: [location]
70
- };
71
- }
72
- callback(stackTrace, isNullUndefinedDefaultValue(errorObj, messageObj));
54
+ return instrumentMethod(window, 'onerror', function (params) {
55
+ var parameters = params.parameters;
56
+ var messageObj = parameters[0];
57
+ var url = parameters[1];
58
+ var line = parameters[2];
59
+ var column = parameters[3];
60
+ var errorObj = parameters[4];
61
+ var stackTrace;
62
+ if (errorObj instanceof Error) {
63
+ stackTrace = computeStackTrace(errorObj);
64
+ } else {
65
+ var location = {
66
+ url: url,
67
+ column: column,
68
+ line: line
69
+ };
70
+ var parse = tryToParseMessage(messageObj);
71
+ stackTrace = {
72
+ name: parse.name,
73
+ message: parse.message,
74
+ stack: [location]
75
+ };
73
76
  }
77
+ callback(stackTrace, isNullUndefinedDefaultValue(errorObj, messageObj));
74
78
  });
75
79
  }
76
80
  function tryToParseMessage(messageObj) {
@@ -92,12 +96,12 @@ function tryToParseMessage(messageObj) {
92
96
  * Install a global onunhandledrejection handler
93
97
  */
94
98
  function instrumentUnhandledRejection(callback) {
95
- return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {
96
- before: function before(e) {
97
- var reason = e.reason || 'Empty reason';
98
- var stack = computeStackTrace(reason);
99
- callback(stack, reason);
100
- }
99
+ return instrumentMethod(window, 'onunhandledrejection', function (params) {
100
+ var parameters = params.parameters;
101
+ var e = parameters[0];
102
+ var reason = e.reason || 'Empty reason';
103
+ var stack = computeStackTrace(reason);
104
+ callback(stack, reason);
101
105
  });
102
106
  }
103
107
  //# sourceMappingURL=tracekit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracekit.js","names":["instrumentMethodAndCallOriginal","isNullUndefinedDefaultValue","computeStackTrace","ERROR_TYPES_RE","startUnhandledErrorCollection","callback","_instrumentOnError","instrumentOnError","_instrumentUnhandledRejection","instrumentUnhandledRejection","stop","window","before","messageObj","url","line","column","errorObj","stackTrace","Error","location","parse","tryToParseMessage","name","message","stack","toString","call","groups","exec","e","reason"],"sources":["../../src/tracekit/tracekit.js"],"sourcesContent":["import { instrumentMethodAndCallOriginal } from '../helper/instrumentMethod'\nimport { isNullUndefinedDefaultValue } from '../helper/tools'\nimport { computeStackTrace } from './computeStackTrace'\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/\n/**\n * Cross-browser collection of unhandled errors\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Tries to catch all unhandled errors and report them to the\n * callback.\n *\n * Callbacks receive a StackTrace object as described in the\n * computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\n\nexport function startUnhandledErrorCollection(callback) {\n var _instrumentOnError = instrumentOnError(callback)\n var _instrumentUnhandledRejection = instrumentUnhandledRejection(callback)\n return {\n stop: function () {\n _instrumentOnError.stop()\n _instrumentUnhandledRejection.stop()\n }\n }\n}\n\n/**\n * Install a global onerror handler\n */\nfunction instrumentOnError(callback) {\n return instrumentMethodAndCallOriginal(window, 'onerror', {\n before: function (messageObj, url, line, column, errorObj) {\n var stackTrace\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj)\n } else {\n var location = {\n url: url,\n column: column,\n line: line\n }\n var parse = tryToParseMessage(messageObj)\n\n stackTrace = {\n name: parse.name,\n message: parse.message,\n stack: [location]\n }\n }\n callback(stackTrace, isNullUndefinedDefaultValue(errorObj, messageObj))\n }\n })\n}\nfunction tryToParseMessage(messageObj) {\n let name\n let message\n if ({}.toString.call(messageObj) === '[object String]') {\n var groups = ERROR_TYPES_RE.exec(messageObj)\n if (groups) {\n name = groups[1]\n message = groups[2]\n }\n }\n return { name: name, message: message }\n}\n/**\n * Install a global onunhandledrejection handler\n */\nfunction instrumentUnhandledRejection(callback) {\n return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {\n before: function (e) {\n var reason = e.reason || 'Empty reason'\n var stack = computeStackTrace(reason)\n callback(stack, reason)\n }\n })\n}\n"],"mappings":"AAAA,SAASA,+BAA+B,QAAQ,4BAA4B;AAC5E,SAASC,2BAA2B,QAAQ,iBAAiB;AAC7D,SAASC,iBAAiB,QAAQ,qBAAqB;;AAEvD;AACA,IAAIC,cAAc,GAChB,8GAA8G;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,6BAA6BA,CAACC,QAAQ,EAAE;EACtD,IAAIC,kBAAkB,GAAGC,iBAAiB,CAACF,QAAQ,CAAC;EACpD,IAAIG,6BAA6B,GAAGC,4BAA4B,CAACJ,QAAQ,CAAC;EAC1E,OAAO;IACLK,IAAI,EAAE,SAAAA,KAAA,EAAY;MAChBJ,kBAAkB,CAACI,IAAI,CAAC,CAAC;MACzBF,6BAA6B,CAACE,IAAI,CAAC,CAAC;IACtC;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASH,iBAAiBA,CAACF,QAAQ,EAAE;EACnC,OAAOL,+BAA+B,CAACW,MAAM,EAAE,SAAS,EAAE;IACxDC,MAAM,EAAE,SAAAA,OAAUC,UAAU,EAAEC,GAAG,EAAEC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,EAAE;MACzD,IAAIC,UAAU;MACd,IAAID,QAAQ,YAAYE,KAAK,EAAE;QAC7BD,UAAU,GAAGhB,iBAAiB,CAACe,QAAQ,CAAC;MAC1C,CAAC,MAAM;QACL,IAAIG,QAAQ,GAAG;UACbN,GAAG,EAAEA,GAAG;UACRE,MAAM,EAAEA,MAAM;UACdD,IAAI,EAAEA;QACR,CAAC;QACD,IAAIM,KAAK,GAAGC,iBAAiB,CAACT,UAAU,CAAC;QAEzCK,UAAU,GAAG;UACXK,IAAI,EAAEF,KAAK,CAACE,IAAI;UAChBC,OAAO,EAAEH,KAAK,CAACG,OAAO;UACtBC,KAAK,EAAE,CAACL,QAAQ;QAClB,CAAC;MACH;MACAf,QAAQ,CAACa,UAAU,EAAEjB,2BAA2B,CAACgB,QAAQ,EAAEJ,UAAU,CAAC,CAAC;IACzE;EACF,CAAC,CAAC;AACJ;AACA,SAASS,iBAAiBA,CAACT,UAAU,EAAE;EACrC,IAAIU,IAAI;EACR,IAAIC,OAAO;EACX,IAAI,CAAC,CAAC,CAACE,QAAQ,CAACC,IAAI,CAACd,UAAU,CAAC,KAAK,iBAAiB,EAAE;IACtD,IAAIe,MAAM,GAAGzB,cAAc,CAAC0B,IAAI,CAAChB,UAAU,CAAC;IAC5C,IAAIe,MAAM,EAAE;MACVL,IAAI,GAAGK,MAAM,CAAC,CAAC,CAAC;MAChBJ,OAAO,GAAGI,MAAM,CAAC,CAAC,CAAC;IACrB;EACF;EACA,OAAO;IAAEL,IAAI,EAAEA,IAAI;IAAEC,OAAO,EAAEA;EAAQ,CAAC;AACzC;AACA;AACA;AACA;AACA,SAASf,4BAA4BA,CAACJ,QAAQ,EAAE;EAC9C,OAAOL,+BAA+B,CAACW,MAAM,EAAE,sBAAsB,EAAE;IACrEC,MAAM,EAAE,SAAAA,OAAUkB,CAAC,EAAE;MACnB,IAAIC,MAAM,GAAGD,CAAC,CAACC,MAAM,IAAI,cAAc;MACvC,IAAIN,KAAK,GAAGvB,iBAAiB,CAAC6B,MAAM,CAAC;MACrC1B,QAAQ,CAACoB,KAAK,EAAEM,MAAM,CAAC;IACzB;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"tracekit.js","names":["instrumentMethod","isNullUndefinedDefaultValue","computeStackTrace","ERROR_TYPES_RE","startUnhandledErrorCollection","callback","_instrumentOnError","instrumentOnError","_instrumentUnhandledRejection","instrumentUnhandledRejection","stop","window","params","parameters","messageObj","url","line","column","errorObj","stackTrace","Error","location","parse","tryToParseMessage","name","message","stack","toString","call","groups","exec","e","reason"],"sources":["../../src/tracekit/tracekit.js"],"sourcesContent":["import { instrumentMethod } from '../helper/instrumentMethod'\nimport { isNullUndefinedDefaultValue } from '../helper/tools'\nimport { computeStackTrace } from './computeStackTrace'\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/\n/**\n * Cross-browser collection of unhandled errors\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Tries to catch all unhandled errors and report them to the\n * callback.\n *\n * Callbacks receive a StackTrace object as described in the\n * computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\n\nexport function startUnhandledErrorCollection(callback) {\n var _instrumentOnError = instrumentOnError(callback)\n var _instrumentUnhandledRejection = instrumentUnhandledRejection(callback)\n return {\n stop: function () {\n _instrumentOnError.stop()\n _instrumentUnhandledRejection.stop()\n }\n }\n}\n\n/**\n * Install a global onerror handler\n */\nfunction instrumentOnError(callback) {\n return instrumentMethod(window, 'onerror', function (params) {\n var parameters = params.parameters\n var messageObj = parameters[0]\n var url = parameters[1]\n var line = parameters[2]\n var column = parameters[3]\n var errorObj = parameters[4]\n var stackTrace\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj)\n } else {\n var location = {\n url: url,\n column: column,\n line: line\n }\n var parse = tryToParseMessage(messageObj)\n\n stackTrace = {\n name: parse.name,\n message: parse.message,\n stack: [location]\n }\n }\n callback(stackTrace, isNullUndefinedDefaultValue(errorObj, messageObj))\n })\n}\nfunction tryToParseMessage(messageObj) {\n let name\n let message\n if ({}.toString.call(messageObj) === '[object String]') {\n var groups = ERROR_TYPES_RE.exec(messageObj)\n if (groups) {\n name = groups[1]\n message = groups[2]\n }\n }\n return { name: name, message: message }\n}\n/**\n * Install a global onunhandledrejection handler\n */\nfunction instrumentUnhandledRejection(callback) {\n return instrumentMethod(window, 'onunhandledrejection', function (params) {\n var parameters = params.parameters\n var e = parameters[0]\n var reason = e.reason || 'Empty reason'\n var stack = computeStackTrace(reason)\n callback(stack, reason)\n })\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudcare/browser-core",
3
- "version": "3.1.18",
3
+ "version": "3.1.20",
4
4
  "main": "cjs/index.js",
5
5
  "module": "esm/index.js",
6
6
  "types": "types/index.d.ts",
@@ -22,5 +22,5 @@
22
22
  "author": "dataflux",
23
23
  "license": "MIT",
24
24
  "description": "DataFlux RUM Web 端数据指标监控",
25
- "gitHead": "c76dd29040565e45cc453000d03b5cdf06818fd0"
25
+ "gitHead": "21b4f565b460261472ddcae1d04f7fc71dd842b6"
26
26
  }
@@ -1,7 +1,7 @@
1
1
  import { instrumentMethod } from '../helper/instrumentMethod'
2
2
  import { Observable } from '../helper/observable'
3
- import { clocksNow } from '../helper/tools'
4
- import { monitor, callMonitored } from '../helper/monitor'
3
+ import { clocksNow, assign } from '../helper/tools'
4
+ import { monitor } from '../helper/monitor'
5
5
  import { normalizeUrl } from '../helper/urlPolyfill'
6
6
 
7
7
  var fetchObservable
@@ -12,7 +12,9 @@ export function initFetchObservable() {
12
12
  }
13
13
  return fetchObservable
14
14
  }
15
-
15
+ export function resetFetchObservable() {
16
+ fetchObservable = undefined
17
+ }
16
18
  function createFetchObservable() {
17
19
  return new Observable(function (observable) {
18
20
  if (!window.fetch) {
@@ -22,37 +24,23 @@ function createFetchObservable() {
22
24
  var fetchMethod = instrumentMethod(
23
25
  window,
24
26
  'fetch',
25
- function (originalFetch) {
26
- return function (input, init) {
27
- var responsePromise
28
- var context = callMonitored(beforeSend, null, [
29
- observable,
30
- input,
31
- init
32
- ])
33
- if (context) {
34
- responsePromise = originalFetch.call(
35
- this,
36
- context.input,
37
- context.init
38
- )
39
- callMonitored(afterSend, null, [
40
- observable,
41
- responsePromise,
42
- context
43
- ])
44
- } else {
45
- responsePromise = originalFetch.call(this, input, init)
46
- }
47
- return responsePromise
48
- }
27
+ function (call) {
28
+ return beforeSend(call, observable)
29
+ },
30
+ {
31
+ computeHandlingStack: true
49
32
  }
50
33
  )
51
34
  return fetchMethod.stop
52
35
  })
53
36
  }
54
37
 
55
- function beforeSend(observable, input, init) {
38
+ function beforeSend(params, observable) {
39
+ var parameters = params.parameters
40
+ var onPostCall = params.onPostCall
41
+ var handlingStack = params.handlingStack
42
+ var input = parameters[0]
43
+ var init = parameters[1]
56
44
  // var method =
57
45
  // (init && init.method) || (input instanceof Request && input.method) || 'GET'
58
46
  // const methodFromParams =
@@ -78,38 +66,71 @@ function beforeSend(observable, input, init) {
78
66
  input: input,
79
67
  method: method,
80
68
  startClocks: startClocks,
81
- url: url
69
+ url: url,
70
+ handlingStack: handlingStack
82
71
  }
83
72
 
84
73
  observable.notify(context)
85
-
86
- return context
74
+ parameters[0] = context.input
75
+ parameters[1] = context.init
76
+ onPostCall(function (responsePromise) {
77
+ return afterSend(observable, responsePromise, context)
78
+ })
87
79
  }
88
80
 
89
81
  function afterSend(observable, responsePromise, startContext) {
90
- var reportFetch = function (response) {
91
- var context = startContext
82
+ var context = startContext
83
+ var reportFetch = function (partialContext) {
92
84
  context.state = 'resolve'
85
+ assign(context, partialContext)
93
86
  // context.duration = elapsed(context.startClocks.timeStamp, timeStampNow())
94
- if ('stack' in response || response instanceof Error) {
95
- context.status = 0
96
- context.isAborted =
97
- response instanceof DOMException &&
98
- response.code === DOMException.ABORT_ERR
99
- context.error = response
100
- } else if ('status' in response) {
101
- context.response = response
87
+ // if ('stack' in response || response instanceof Error) {
88
+ // context.status = 0
89
+ // context.isAborted =
90
+ // response instanceof DOMException &&
91
+ // response.code === DOMException.ABORT_ERR
92
+ // context.error = response
93
+ // } else if ('status' in response) {
94
+ // context.response = response
95
+ // try {
96
+ // context.responseType =
97
+ // (response.constructor === Response && response.type) || '' // issue The Response type getter can only be used on instances of Response
98
+ // } catch (err) {
99
+ // context.responseType = ''
100
+ // }
101
+
102
+ // context.status = response.status
103
+ // context.isAborted = false
104
+ // }
105
+ observable.notify(context)
106
+ }
107
+ responsePromise.then(
108
+ monitor(function (response) {
109
+ var responseType = ''
102
110
  try {
103
- context.responseType =
111
+ responseType =
104
112
  (response.constructor === Response && response.type) || '' // issue The Response type getter can only be used on instances of Response
105
113
  } catch (err) {
106
- context.responseType = ''
114
+ responseType = ''
107
115
  }
108
-
109
- context.status = response.status
110
- context.isAborted = false
111
- }
112
- observable.notify(context)
113
- }
114
- responsePromise.then(monitor(reportFetch), monitor(reportFetch))
116
+ reportFetch({
117
+ response: response,
118
+ responseType: responseType,
119
+ status: response.status,
120
+ isAborted: false
121
+ })
122
+ }),
123
+ monitor(function (error) {
124
+ reportFetch({
125
+ status: 0,
126
+ isAborted:
127
+ (context.init &&
128
+ context.init.signal &&
129
+ context.init.signal.aborted) ||
130
+ (error instanceof DOMException &&
131
+ error.code === DOMException.ABORT_ERR),
132
+ error: error
133
+ })
134
+ })
135
+ )
115
136
  }