@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.
- 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/dataMap.js +1 -0
- 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/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/dataMap.js +1 -0
- 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/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/dataMap.js +1 -0
- package/src/helper/deviceInfo.js +1 -2
- package/src/helper/enums.js +4 -1
- package/src/helper/instrumentMethod.js +61 -44
- 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/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
|
@@ -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
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/
|
|
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 {
|
|
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 =
|
|
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","
|
|
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":[]}
|
package/esm/tracekit/tracekit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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":["
|
|
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.
|
|
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": "
|
|
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
|
|
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 (
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
91
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
} else if ('status' in response) {
|
|
101
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
+
responseType = ''
|
|
107
115
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
}
|