@cloudcare/browser-core 3.0.23 → 3.1.0
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/addEventListener.js +11 -14
- package/cjs/browser/addEventListener.js.map +1 -0
- package/cjs/browser/cookie.js +3 -14
- package/cjs/browser/cookie.js.map +1 -0
- package/cjs/browser/fetchObservable.js +8 -23
- package/cjs/browser/fetchObservable.js.map +1 -0
- package/cjs/browser/htmlDomUtils.js +3 -9
- package/cjs/browser/htmlDomUtils.js.map +1 -0
- package/cjs/browser/pageExitObservable.js +3 -9
- package/cjs/browser/pageExitObservable.js.map +1 -0
- package/cjs/browser/runOnReadyState.js +2 -4
- package/cjs/browser/runOnReadyState.js.map +1 -0
- package/cjs/browser/scroll.js +32 -0
- package/cjs/browser/scroll.js.map +1 -0
- package/cjs/browser/xhrObservable.js +2 -21
- package/cjs/browser/xhrObservable.js.map +1 -0
- package/cjs/configuration/configuration.js +9 -20
- package/cjs/configuration/configuration.js.map +1 -0
- package/cjs/configuration/transportConfiguration.js +6 -20
- package/cjs/configuration/transportConfiguration.js.map +1 -0
- package/cjs/console/consoleObservable.js +7 -21
- package/cjs/console/consoleObservable.js.map +1 -0
- package/cjs/dataMap.js +24 -10
- package/cjs/dataMap.js.map +1 -0
- package/cjs/error/trackRuntimeError.js +3 -7
- package/cjs/error/trackRuntimeError.js.map +1 -0
- package/cjs/helper/boundedBuffer.js +2 -6
- package/cjs/helper/boundedBuffer.js.map +1 -0
- package/cjs/helper/byteUtils.js +6 -16
- package/cjs/helper/byteUtils.js.map +1 -0
- package/cjs/helper/catchUserErrors.js +2 -4
- package/cjs/helper/catchUserErrors.js.map +1 -0
- package/cjs/helper/contextHistory.js +21 -37
- package/cjs/helper/contextHistory.js.map +1 -0
- package/cjs/helper/createEventRateLimiter.js +2 -10
- package/cjs/helper/createEventRateLimiter.js.map +1 -0
- package/cjs/helper/deviceInfo.js +10 -64
- package/cjs/helper/deviceInfo.js.map +1 -0
- package/cjs/helper/display.js +2 -5
- package/cjs/helper/display.js.map +1 -0
- package/cjs/helper/enums.js +8 -2
- package/cjs/helper/enums.js.map +1 -0
- package/cjs/helper/errorTools.js +38 -40
- package/cjs/helper/errorTools.js.map +1 -0
- package/cjs/helper/eventEmitter.js +2 -6
- package/cjs/helper/eventEmitter.js.map +1 -0
- package/cjs/helper/getZoneJsOriginalValue.js +2 -5
- package/cjs/helper/getZoneJsOriginalValue.js.map +1 -0
- package/cjs/helper/instrumentMethod.js +11 -21
- package/cjs/helper/instrumentMethod.js.map +1 -0
- package/cjs/helper/lifeCycle.js +2 -9
- package/cjs/helper/lifeCycle.js.map +1 -0
- package/cjs/helper/limitModification.js +4 -22
- package/cjs/helper/limitModification.js.map +1 -0
- package/cjs/helper/mobileUtil.js +2 -20
- package/cjs/helper/mobileUtil.js.map +1 -0
- package/cjs/helper/monitor.js +50 -0
- package/cjs/helper/monitor.js.map +1 -0
- package/cjs/helper/observable.js +2 -9
- package/cjs/helper/observable.js.map +1 -0
- package/cjs/helper/readBytesFromStream.js +8 -16
- package/cjs/helper/readBytesFromStream.js.map +1 -0
- package/cjs/helper/sanitize.js +38 -61
- package/cjs/helper/sanitize.js.map +1 -0
- package/cjs/helper/serialisation/contextManager.js +5 -15
- package/cjs/helper/serialisation/contextManager.js.map +1 -0
- package/cjs/helper/serialisation/heavyCustomerDataWarning.js +2 -7
- package/cjs/helper/serialisation/heavyCustomerDataWarning.js.map +1 -0
- package/cjs/helper/serialisation/jsonStringify.js +6 -12
- package/cjs/helper/serialisation/jsonStringify.js.map +1 -0
- package/cjs/helper/serialisation/rowData.js +3 -10
- package/cjs/helper/serialisation/rowData.js.map +1 -0
- package/cjs/helper/timer.js +5 -9
- package/cjs/helper/timer.js.map +1 -0
- package/cjs/helper/tools.js +58 -463
- package/cjs/helper/tools.js.map +1 -0
- package/cjs/helper/urlPolyfill.js +5 -18
- package/cjs/helper/urlPolyfill.js.map +1 -0
- package/cjs/index.js +35 -93
- package/cjs/index.js.map +1 -0
- package/cjs/init.js +24 -36
- package/cjs/init.js.map +1 -0
- package/cjs/report/reportObservable.js +8 -26
- package/cjs/report/reportObservable.js.map +1 -0
- package/cjs/session/sessionConstants.js +2 -3
- package/cjs/session/sessionConstants.js.map +1 -0
- package/cjs/session/sessionCookieStore.js +11 -46
- package/cjs/session/sessionCookieStore.js.map +1 -0
- package/cjs/session/sessionManagement.js +2 -19
- package/cjs/session/sessionManagement.js.map +1 -0
- package/cjs/session/sessionStore.js +3 -28
- package/cjs/session/sessionStore.js.map +1 -0
- package/cjs/synthetics/syntheticsWorkerValues.js +2 -6
- package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -0
- package/cjs/synthetics/usr.js +2 -8
- package/cjs/synthetics/usr.js.map +1 -0
- package/cjs/telemetry/telemetry.js +125 -0
- package/cjs/telemetry/telemetry.js.map +1 -0
- package/cjs/telemetry/types.js +17 -0
- package/cjs/telemetry/types.js.map +1 -0
- package/cjs/tracekit/computeStackTrace.js +4 -34
- package/cjs/tracekit/computeStackTrace.js.map +1 -0
- package/cjs/tracekit/index.js +2 -3
- package/cjs/tracekit/index.js.map +1 -0
- package/cjs/tracekit/tracekit.js +3 -18
- package/cjs/tracekit/tracekit.js.map +1 -0
- package/cjs/transport/batch.js +7 -56
- package/cjs/transport/batch.js.map +1 -0
- package/cjs/transport/eventBridge.js +2 -7
- package/cjs/transport/eventBridge.js.map +1 -0
- package/cjs/transport/flushController.js +8 -21
- package/cjs/transport/flushController.js.map +1 -0
- package/cjs/transport/httpRequest.js +8 -20
- package/cjs/transport/httpRequest.js.map +1 -0
- package/cjs/transport/index.js +2 -6
- package/cjs/transport/index.js.map +1 -0
- package/cjs/transport/sendWithRetryStrategy.js +4 -23
- package/cjs/transport/sendWithRetryStrategy.js.map +1 -0
- package/cjs/transport/startBatchWithReplica.js +2 -7
- package/cjs/transport/startBatchWithReplica.js.map +1 -0
- package/cjs/user/index.js +2 -3
- package/cjs/user/index.js.map +1 -0
- package/cjs/user/user.js +3 -8
- package/cjs/user/user.js.map +1 -0
- package/cjs/worker.js +2 -2
- package/cjs/worker.js.map +1 -0
- package/esm/browser/addEventListener.js +11 -10
- package/esm/browser/addEventListener.js.map +1 -0
- package/esm/browser/cookie.js +3 -6
- package/esm/browser/cookie.js.map +1 -0
- package/esm/browser/fetchObservable.js +8 -17
- package/esm/browser/fetchObservable.js.map +1 -0
- package/esm/browser/htmlDomUtils.js +3 -2
- package/esm/browser/htmlDomUtils.js.map +1 -0
- package/esm/browser/pageExitObservable.js +3 -2
- package/esm/browser/pageExitObservable.js.map +1 -0
- package/esm/browser/runOnReadyState.js +2 -1
- package/esm/browser/runOnReadyState.js.map +1 -0
- package/esm/browser/scroll.js +25 -0
- package/esm/browser/scroll.js.map +1 -0
- package/esm/browser/xhrObservable.js +2 -14
- package/esm/browser/xhrObservable.js.map +1 -0
- package/esm/configuration/configuration.js +9 -9
- package/esm/configuration/configuration.js.map +1 -0
- package/esm/configuration/transportConfiguration.js +6 -17
- package/esm/configuration/transportConfiguration.js.map +1 -0
- package/esm/console/consoleObservable.js +7 -12
- package/esm/console/consoleObservable.js.map +1 -0
- package/esm/dataMap.js +24 -8
- package/esm/dataMap.js.map +1 -0
- package/esm/error/trackRuntimeError.js +4 -3
- package/esm/error/trackRuntimeError.js.map +1 -0
- package/esm/helper/boundedBuffer.js +2 -4
- package/esm/helper/boundedBuffer.js.map +1 -0
- package/esm/helper/byteUtils.js +6 -13
- package/esm/helper/byteUtils.js.map +1 -0
- package/esm/helper/catchUserErrors.js +2 -2
- package/esm/helper/catchUserErrors.js.map +1 -0
- package/esm/helper/contextHistory.js +21 -33
- package/esm/helper/contextHistory.js.map +1 -0
- package/esm/helper/createEventRateLimiter.js +2 -6
- package/esm/helper/createEventRateLimiter.js.map +1 -0
- package/esm/helper/deviceInfo.js +10 -62
- package/esm/helper/deviceInfo.js.map +1 -0
- package/esm/helper/display.js +2 -3
- package/esm/helper/display.js.map +1 -0
- package/esm/helper/enums.js +6 -1
- package/esm/helper/enums.js.map +1 -0
- package/esm/helper/errorTools.js +36 -28
- package/esm/helper/errorTools.js.map +1 -0
- package/esm/helper/eventEmitter.js +2 -5
- package/esm/helper/eventEmitter.js.map +1 -0
- package/esm/helper/getZoneJsOriginalValue.js +2 -4
- package/esm/helper/getZoneJsOriginalValue.js.map +1 -0
- package/esm/helper/instrumentMethod.js +11 -16
- package/esm/helper/instrumentMethod.js.map +1 -0
- package/esm/helper/lifeCycle.js +2 -5
- package/esm/helper/lifeCycle.js.map +1 -0
- package/esm/helper/limitModification.js +5 -20
- package/esm/helper/limitModification.js.map +1 -0
- package/esm/helper/mobileUtil.js +2 -16
- package/esm/helper/mobileUtil.js.map +1 -0
- package/esm/helper/monitor.js +39 -0
- package/esm/helper/monitor.js.map +1 -0
- package/esm/helper/observable.js +2 -7
- package/esm/helper/observable.js.map +1 -0
- package/esm/helper/readBytesFromStream.js +8 -15
- package/esm/helper/readBytesFromStream.js.map +1 -0
- package/esm/helper/sanitize.js +40 -57
- package/esm/helper/sanitize.js.map +1 -0
- package/esm/helper/serialisation/contextManager.js +5 -9
- package/esm/helper/serialisation/contextManager.js.map +1 -0
- package/esm/helper/serialisation/heavyCustomerDataWarning.js +5 -4
- package/esm/helper/serialisation/heavyCustomerDataWarning.js.map +1 -0
- package/esm/helper/serialisation/jsonStringify.js +7 -10
- package/esm/helper/serialisation/jsonStringify.js.map +1 -0
- package/esm/helper/serialisation/rowData.js +3 -4
- package/esm/helper/serialisation/rowData.js.map +1 -0
- package/esm/helper/timer.js +5 -3
- package/esm/helper/timer.js.map +1 -0
- package/esm/helper/tools.js +58 -273
- package/esm/helper/tools.js.map +1 -0
- package/esm/helper/urlPolyfill.js +5 -9
- package/esm/helper/urlPolyfill.js.map +1 -0
- package/esm/index.js +5 -1
- package/esm/index.js.map +1 -0
- package/esm/init.js +25 -31
- package/esm/init.js.map +1 -0
- package/esm/report/reportObservable.js +8 -19
- package/esm/report/reportObservable.js.map +1 -0
- package/esm/session/sessionConstants.js +2 -1
- package/esm/session/sessionConstants.js.map +1 -0
- package/esm/session/sessionCookieStore.js +11 -38
- package/esm/session/sessionCookieStore.js.map +1 -0
- package/esm/session/sessionManagement.js +2 -8
- package/esm/session/sessionManagement.js.map +1 -0
- package/esm/session/sessionStore.js +4 -22
- package/esm/session/sessionStore.js.map +1 -0
- package/esm/synthetics/syntheticsWorkerValues.js +2 -1
- package/esm/synthetics/syntheticsWorkerValues.js.map +1 -0
- package/esm/synthetics/usr.js +2 -3
- package/esm/synthetics/usr.js.map +1 -0
- package/esm/telemetry/telemetry.js +111 -0
- package/esm/telemetry/telemetry.js.map +1 -0
- package/esm/telemetry/types.js +9 -0
- package/esm/telemetry/types.js.map +1 -0
- package/esm/tracekit/computeStackTrace.js +4 -31
- package/esm/tracekit/computeStackTrace.js.map +1 -0
- package/esm/tracekit/index.js +2 -1
- package/esm/tracekit/index.js.map +1 -0
- package/esm/tracekit/tracekit.js +5 -14
- package/esm/tracekit/tracekit.js.map +1 -0
- package/esm/transport/batch.js +9 -47
- package/esm/transport/batch.js.map +1 -0
- package/esm/transport/eventBridge.js +2 -5
- package/esm/transport/eventBridge.js.map +1 -0
- package/esm/transport/flushController.js +11 -20
- package/esm/transport/flushController.js.map +1 -0
- package/esm/transport/httpRequest.js +8 -18
- package/esm/transport/httpRequest.js.map +1 -0
- package/esm/transport/index.js +2 -1
- package/esm/transport/index.js.map +1 -0
- package/esm/transport/sendWithRetryStrategy.js +4 -17
- package/esm/transport/sendWithRetryStrategy.js.map +1 -0
- package/esm/transport/startBatchWithReplica.js +2 -3
- package/esm/transport/startBatchWithReplica.js.map +1 -0
- package/esm/user/index.js.map +1 -0
- package/esm/user/user.js +4 -5
- package/esm/user/user.js.map +1 -0
- package/esm/worker.js.map +1 -0
- package/package.json +2 -2
- package/src/browser/addEventListener.js +8 -7
- package/src/browser/fetchObservable.js +12 -3
- package/src/browser/scroll.js +25 -0
- package/src/configuration/configuration.js +16 -0
- package/src/configuration/transportConfiguration.js +2 -2
- package/src/console/consoleObservable.js +4 -2
- package/src/dataMap.js +17 -3
- package/src/error/trackRuntimeError.js +2 -2
- package/src/helper/contextHistory.js +3 -3
- package/src/helper/enums.js +4 -0
- package/src/helper/errorTools.js +55 -24
- package/src/helper/instrumentMethod.js +5 -2
- package/src/helper/monitor.js +44 -0
- package/src/helper/observable.js +10 -8
- package/src/helper/readBytesFromStream.js +5 -5
- package/src/helper/timer.js +3 -3
- package/src/helper/tools.js +2 -17
- package/src/index.js +4 -0
- package/src/init.js +19 -21
- package/src/report/reportObservable.js +6 -5
- package/src/telemetry/telemetry.js +164 -0
- package/src/telemetry/types.js +9 -0
- package/src/transport/batch.js +4 -4
- package/src/transport/httpRequest.js +5 -4
|
@@ -4,8 +4,9 @@ import { SESSION_EXPIRATION_DELAY } from './sessionConstants';
|
|
|
4
4
|
import { setTimeout } from '../helper/timer';
|
|
5
5
|
var SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/;
|
|
6
6
|
var SESSION_ENTRY_SEPARATOR = '&';
|
|
7
|
-
export var SESSION_COOKIE_NAME = '_dataflux_s';
|
|
7
|
+
export var SESSION_COOKIE_NAME = '_dataflux_s';
|
|
8
8
|
|
|
9
|
+
// arbitrary values
|
|
9
10
|
export var LOCK_RETRY_DELAY = 10;
|
|
10
11
|
export var MAX_NUMBER_OF_LOCK_RETRIES = 100;
|
|
11
12
|
var bufferedOperations = [];
|
|
@@ -14,124 +15,101 @@ export function withCookieLockAccess(operations, numberOfRetries) {
|
|
|
14
15
|
if (typeof numberOfRetries === 'undefined') {
|
|
15
16
|
numberOfRetries = 0;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
18
|
if (!ongoingOperations) {
|
|
19
19
|
ongoingOperations = operations;
|
|
20
20
|
}
|
|
21
|
-
|
|
22
21
|
if (operations !== ongoingOperations) {
|
|
23
22
|
bufferedOperations.push(operations);
|
|
24
23
|
return;
|
|
25
24
|
}
|
|
26
|
-
|
|
27
25
|
if (numberOfRetries >= MAX_NUMBER_OF_LOCK_RETRIES) {
|
|
28
26
|
next();
|
|
29
27
|
return;
|
|
30
28
|
}
|
|
31
|
-
|
|
32
29
|
var currentLock;
|
|
33
30
|
var currentSession = retrieveSession();
|
|
34
|
-
|
|
35
31
|
if (isCookieLockEnabled()) {
|
|
36
32
|
// if someone has lock, retry later
|
|
37
33
|
if (currentSession.lock) {
|
|
38
34
|
retryLater(operations, numberOfRetries);
|
|
39
35
|
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
}
|
|
37
|
+
// acquire lock
|
|
43
38
|
currentLock = UUID();
|
|
44
39
|
currentSession.lock = currentLock;
|
|
45
|
-
setSession(currentSession, operations.options);
|
|
46
|
-
|
|
40
|
+
setSession(currentSession, operations.options);
|
|
41
|
+
// if lock is not acquired, retry later
|
|
47
42
|
currentSession = retrieveSession();
|
|
48
|
-
|
|
49
43
|
if (currentSession.lock !== currentLock) {
|
|
50
44
|
retryLater(operations, numberOfRetries);
|
|
51
45
|
return;
|
|
52
46
|
}
|
|
53
47
|
}
|
|
54
|
-
|
|
55
48
|
var processedSession = operations.process(currentSession);
|
|
56
|
-
|
|
57
49
|
if (isCookieLockEnabled()) {
|
|
58
50
|
// if lock corrupted after process, retry later
|
|
59
51
|
currentSession = retrieveSession();
|
|
60
|
-
|
|
61
52
|
if (currentSession.lock !== currentLock) {
|
|
62
53
|
retryLater(operations, numberOfRetries);
|
|
63
54
|
return;
|
|
64
55
|
}
|
|
65
56
|
}
|
|
66
|
-
|
|
67
57
|
if (processedSession) {
|
|
68
58
|
persistSession(processedSession, operations.options);
|
|
69
59
|
}
|
|
70
|
-
|
|
71
60
|
if (isCookieLockEnabled()) {
|
|
72
61
|
// correctly handle lock around expiration would require to handle this case properly at several levels
|
|
73
62
|
// since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it
|
|
74
63
|
if (!(processedSession && isExpiredState(processedSession))) {
|
|
75
64
|
// if lock corrupted after persist, retry later
|
|
76
65
|
currentSession = retrieveSession();
|
|
77
|
-
|
|
78
66
|
if (currentSession.lock !== currentLock) {
|
|
79
67
|
retryLater(operations, numberOfRetries);
|
|
80
68
|
return;
|
|
81
69
|
}
|
|
82
|
-
|
|
83
70
|
delete currentSession.lock;
|
|
84
71
|
setSession(currentSession, operations.options);
|
|
85
72
|
processedSession = currentSession;
|
|
86
73
|
}
|
|
87
|
-
}
|
|
74
|
+
}
|
|
75
|
+
// call after even if session is not persisted in order to perform operations on
|
|
88
76
|
// up-to-date cookie value, the value could have been modified by another tab
|
|
89
|
-
|
|
90
|
-
|
|
91
77
|
if (operations.after) {
|
|
92
78
|
operations.after(processedSession || currentSession);
|
|
93
79
|
}
|
|
94
|
-
|
|
95
80
|
next();
|
|
96
81
|
}
|
|
82
|
+
|
|
97
83
|
/**
|
|
98
84
|
* Cookie lock strategy allows mitigating issues due to concurrent access to cookie.
|
|
99
85
|
* This issue concerns only chromium browsers and enabling this on firefox increase cookie write failures.
|
|
100
86
|
*/
|
|
101
|
-
|
|
102
87
|
function isCookieLockEnabled() {
|
|
103
88
|
return isChromium();
|
|
104
89
|
}
|
|
105
|
-
|
|
106
90
|
function retryLater(operations, currentNumberOfRetries) {
|
|
107
91
|
setTimeout(function () {
|
|
108
92
|
withCookieLockAccess(operations, currentNumberOfRetries + 1);
|
|
109
93
|
}, LOCK_RETRY_DELAY);
|
|
110
94
|
}
|
|
111
|
-
|
|
112
95
|
function next() {
|
|
113
96
|
ongoingOperations = undefined;
|
|
114
97
|
var nextOperations = bufferedOperations.shift();
|
|
115
|
-
|
|
116
98
|
if (nextOperations) {
|
|
117
99
|
withCookieLockAccess(nextOperations);
|
|
118
100
|
}
|
|
119
101
|
}
|
|
120
|
-
|
|
121
102
|
export function persistSession(session, options) {
|
|
122
103
|
if (isExpiredState(session)) {
|
|
123
104
|
clearSession(options);
|
|
124
105
|
return;
|
|
125
106
|
}
|
|
126
|
-
|
|
127
107
|
session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);
|
|
128
108
|
setSession(session, options);
|
|
129
109
|
}
|
|
130
|
-
|
|
131
110
|
function setSession(session, options) {
|
|
132
111
|
setCookie(SESSION_COOKIE_NAME, toSessionString(session), SESSION_EXPIRATION_DELAY, options);
|
|
133
112
|
}
|
|
134
|
-
|
|
135
113
|
export function toSessionString(session) {
|
|
136
114
|
return map(objectEntries(session), function (item) {
|
|
137
115
|
return item[0] + '=' + item[1];
|
|
@@ -140,11 +118,9 @@ export function toSessionString(session) {
|
|
|
140
118
|
export function retrieveSession() {
|
|
141
119
|
var sessionString = getCookie(SESSION_COOKIE_NAME);
|
|
142
120
|
var session = {};
|
|
143
|
-
|
|
144
121
|
if (isValidSessionString(sessionString)) {
|
|
145
122
|
each(sessionString.split(SESSION_ENTRY_SEPARATOR), function (entry) {
|
|
146
123
|
var matches = SESSION_ENTRY_REGEXP.exec(entry);
|
|
147
|
-
|
|
148
124
|
if (matches !== null) {
|
|
149
125
|
var key = matches[1];
|
|
150
126
|
var value = matches[2];
|
|
@@ -152,18 +128,15 @@ export function retrieveSession() {
|
|
|
152
128
|
}
|
|
153
129
|
});
|
|
154
130
|
}
|
|
155
|
-
|
|
156
131
|
return session;
|
|
157
132
|
}
|
|
158
|
-
|
|
159
133
|
function isValidSessionString(sessionString) {
|
|
160
134
|
return sessionString !== undefined && (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString));
|
|
161
135
|
}
|
|
162
|
-
|
|
163
136
|
function isExpiredState(session) {
|
|
164
137
|
return isEmptyObject(session);
|
|
165
138
|
}
|
|
166
|
-
|
|
167
139
|
function clearSession(options) {
|
|
168
140
|
setCookie(SESSION_COOKIE_NAME, '', 0, options);
|
|
169
|
-
}
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=sessionCookieStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionCookieStore.js","names":["getCookie","setCookie","isChromium","dateNow","isEmptyObject","UUID","objectEntries","map","each","SESSION_EXPIRATION_DELAY","setTimeout","SESSION_ENTRY_REGEXP","SESSION_ENTRY_SEPARATOR","SESSION_COOKIE_NAME","LOCK_RETRY_DELAY","MAX_NUMBER_OF_LOCK_RETRIES","bufferedOperations","ongoingOperations","withCookieLockAccess","operations","numberOfRetries","push","next","currentLock","currentSession","retrieveSession","isCookieLockEnabled","lock","retryLater","setSession","options","processedSession","process","persistSession","isExpiredState","after","currentNumberOfRetries","undefined","nextOperations","shift","session","clearSession","expire","String","toSessionString","item","join","sessionString","isValidSessionString","split","entry","matches","exec","key","value","indexOf","test"],"sources":["../../src/session/sessionCookieStore.js"],"sourcesContent":["import { getCookie, setCookie } from '../browser/cookie'\nimport {\n isChromium,\n dateNow,\n isEmptyObject,\n UUID,\n objectEntries,\n map,\n each\n} from '../helper/tools'\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants'\nimport { setTimeout } from '../helper/timer'\nvar SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/\nvar SESSION_ENTRY_SEPARATOR = '&'\n\nexport var SESSION_COOKIE_NAME = '_dataflux_s'\n\n// arbitrary values\nexport var LOCK_RETRY_DELAY = 10\nexport var MAX_NUMBER_OF_LOCK_RETRIES = 100\n\nvar bufferedOperations = []\nvar ongoingOperations\n\nexport function withCookieLockAccess(operations, numberOfRetries) {\n if (typeof numberOfRetries === 'undefined') {\n numberOfRetries = 0\n }\n if (!ongoingOperations) {\n ongoingOperations = operations\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations)\n return\n }\n if (numberOfRetries >= MAX_NUMBER_OF_LOCK_RETRIES) {\n next()\n return\n }\n var currentLock\n var currentSession = retrieveSession()\n if (isCookieLockEnabled()) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, numberOfRetries)\n return\n }\n // acquire lock\n currentLock = UUID()\n currentSession.lock = currentLock\n setSession(currentSession, operations.options)\n // if lock is not acquired, retry later\n currentSession = retrieveSession()\n if (currentSession.lock !== currentLock) {\n retryLater(operations, numberOfRetries)\n return\n }\n }\n var processedSession = operations.process(currentSession)\n if (isCookieLockEnabled()) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession()\n if (currentSession.lock !== currentLock) {\n retryLater(operations, numberOfRetries)\n return\n }\n }\n if (processedSession) {\n persistSession(processedSession, operations.options)\n }\n if (isCookieLockEnabled()) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentSession = retrieveSession()\n if (currentSession.lock !== currentLock) {\n retryLater(operations, numberOfRetries)\n return\n }\n delete currentSession.lock\n setSession(currentSession, operations.options)\n processedSession = currentSession\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date cookie value, the value could have been modified by another tab\n if (operations.after) {\n operations.after(processedSession || currentSession)\n }\n next()\n}\n\n/**\n * Cookie lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increase cookie write failures.\n */\nfunction isCookieLockEnabled() {\n return isChromium()\n}\n\nfunction retryLater(operations, currentNumberOfRetries) {\n setTimeout(function () {\n withCookieLockAccess(operations, currentNumberOfRetries + 1)\n }, LOCK_RETRY_DELAY)\n}\n\nfunction next() {\n ongoingOperations = undefined\n var nextOperations = bufferedOperations.shift()\n if (nextOperations) {\n withCookieLockAccess(nextOperations)\n }\n}\n\nexport function persistSession(session, options) {\n if (isExpiredState(session)) {\n clearSession(options)\n return\n }\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY)\n setSession(session, options)\n}\n\nfunction setSession(session, options) {\n setCookie(\n SESSION_COOKIE_NAME,\n toSessionString(session),\n SESSION_EXPIRATION_DELAY,\n options\n )\n}\n\nexport function toSessionString(session) {\n return map(objectEntries(session), function (item) {\n return item[0] + '=' + item[1]\n }).join(SESSION_ENTRY_SEPARATOR)\n}\n\nexport function retrieveSession() {\n var sessionString = getCookie(SESSION_COOKIE_NAME)\n var session = {}\n if (isValidSessionString(sessionString)) {\n each(sessionString.split(SESSION_ENTRY_SEPARATOR), function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry)\n if (matches !== null) {\n var key = matches[1]\n var value = matches[2]\n session[key] = value\n }\n })\n }\n return session\n}\n\nfunction isValidSessionString(sessionString) {\n return (\n sessionString !== undefined &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 ||\n SESSION_ENTRY_REGEXP.test(sessionString))\n )\n}\n\nfunction isExpiredState(session) {\n return isEmptyObject(session)\n}\nfunction clearSession(options) {\n setCookie(SESSION_COOKIE_NAME, '', 0, options)\n}\n"],"mappings":"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"}
|
|
@@ -31,14 +31,12 @@ export var startSessionManager = function startSessionManager(options, productKe
|
|
|
31
31
|
trackVisibility(function () {
|
|
32
32
|
return sessionStore.expandSession();
|
|
33
33
|
});
|
|
34
|
-
|
|
35
34
|
function buildSessionContext() {
|
|
36
35
|
return {
|
|
37
36
|
id: sessionStore.getSession().id,
|
|
38
37
|
trackingType: sessionStore.getSession()[productKey]
|
|
39
38
|
};
|
|
40
39
|
}
|
|
41
|
-
|
|
42
40
|
return {
|
|
43
41
|
findActiveSession: function findActiveSession(startTime) {
|
|
44
42
|
return sessionContextHistory.find(startTime);
|
|
@@ -54,28 +52,24 @@ export function stopSessionManager() {
|
|
|
54
52
|
});
|
|
55
53
|
stopCallbacks = [];
|
|
56
54
|
}
|
|
57
|
-
|
|
58
55
|
function trackActivity(expandOrRenewSession) {
|
|
59
56
|
var _addEventListeners = addEventListeners(window, [DOM_EVENT.CLICK, DOM_EVENT.TOUCH_START, DOM_EVENT.KEY_DOWN, DOM_EVENT.SCROLL], expandOrRenewSession, {
|
|
60
57
|
capture: true,
|
|
61
58
|
passive: true
|
|
62
59
|
});
|
|
63
|
-
|
|
64
60
|
stopCallbacks.push(_addEventListeners.stop);
|
|
65
61
|
}
|
|
66
|
-
|
|
67
62
|
function trackVisibility(expandSession) {
|
|
68
63
|
var expandSessionWhenVisible = function expandSessionWhenVisible() {
|
|
69
64
|
if (document.visibilityState === 'visible') {
|
|
70
65
|
expandSession();
|
|
71
66
|
}
|
|
72
67
|
};
|
|
73
|
-
|
|
74
68
|
var _addEventListener = addEventListener(document, DOM_EVENT.VISIBILITY_CHANGE, expandSessionWhenVisible);
|
|
75
|
-
|
|
76
69
|
stopCallbacks.push(_addEventListener.stop);
|
|
77
70
|
var visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);
|
|
78
71
|
stopCallbacks.push(function () {
|
|
79
72
|
clearInterval(visibilityCheckInterval);
|
|
80
73
|
});
|
|
81
|
-
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=sessionManagement.js.map
|
|
@@ -0,0 +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","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","options","productKey","computeSessionState","sessionStore","push","stop","sessionContextHistory","renewObservable","subscribe","add","buildSessionContext","expireObservable","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"],"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'\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 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 })\n sessionStore.expireObservable.subscribe(function () {\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\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: sessionStore.renewObservable,\n expireObservable: sessionStore.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}\n"],"mappings":"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"}
|
|
@@ -4,19 +4,18 @@ import { dateNow, UUID, throttle } from '../helper/tools';
|
|
|
4
4
|
import { SESSION_TIME_OUT_DELAY } from './sessionConstants';
|
|
5
5
|
import { retrieveSession, withCookieLockAccess } from './sessionCookieStore';
|
|
6
6
|
import { clearInterval, setInterval } from '../helper/timer';
|
|
7
|
+
|
|
7
8
|
/**
|
|
8
9
|
* Different session concepts:
|
|
9
10
|
* - tracked, the session has an id and is updated along the user navigation
|
|
10
11
|
* - not tracked, the session does not have an id but it is updated along the user navigation
|
|
11
12
|
* - inactive, no session in store or session expired, waiting for a renew session
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
14
|
export function startSessionStore(options, productKey, computeSessionState) {
|
|
15
15
|
var renewObservable = new Observable();
|
|
16
16
|
var expireObservable = new Observable();
|
|
17
17
|
var watchSessionTimeoutId = setInterval(watchSession, COOKIE_ACCESS_DELAY);
|
|
18
18
|
var sessionCache = retrieveActiveSession();
|
|
19
|
-
|
|
20
19
|
function expandOrRenewSession() {
|
|
21
20
|
var isTracked;
|
|
22
21
|
withCookieLockAccess({
|
|
@@ -30,12 +29,10 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
30
29
|
if (isTracked && !hasSessionInCache()) {
|
|
31
30
|
renewSession(cookieSession);
|
|
32
31
|
}
|
|
33
|
-
|
|
34
32
|
sessionCache = cookieSession;
|
|
35
33
|
}
|
|
36
34
|
});
|
|
37
35
|
}
|
|
38
|
-
|
|
39
36
|
function expandSession() {
|
|
40
37
|
withCookieLockAccess({
|
|
41
38
|
options: options,
|
|
@@ -44,13 +41,12 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
44
41
|
}
|
|
45
42
|
});
|
|
46
43
|
}
|
|
44
|
+
|
|
47
45
|
/**
|
|
48
46
|
* allows two behaviors:
|
|
49
47
|
* - if the session is active, synchronize the session cache without updating the session cookie
|
|
50
48
|
* - if the session is not active, clear the session cookie and expire the session cache
|
|
51
49
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
50
|
function watchSession() {
|
|
55
51
|
withCookieLockAccess({
|
|
56
52
|
options: options,
|
|
@@ -60,12 +56,10 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
60
56
|
after: synchronizeSession
|
|
61
57
|
});
|
|
62
58
|
}
|
|
63
|
-
|
|
64
59
|
function synchronizeSession(cookieSession) {
|
|
65
60
|
if (!isActiveSession(cookieSession)) {
|
|
66
61
|
cookieSession = {};
|
|
67
62
|
}
|
|
68
|
-
|
|
69
63
|
if (hasSessionInCache()) {
|
|
70
64
|
if (isSessionInCacheOutdated(cookieSession)) {
|
|
71
65
|
expireSessionInCache();
|
|
@@ -73,58 +67,45 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
73
67
|
sessionCache = cookieSession;
|
|
74
68
|
}
|
|
75
69
|
}
|
|
76
|
-
|
|
77
70
|
return cookieSession;
|
|
78
71
|
}
|
|
79
|
-
|
|
80
72
|
function expandOrRenewCookie(cookieSession) {
|
|
81
73
|
var sessionState = computeSessionState(cookieSession[productKey]);
|
|
82
74
|
var trackingType = sessionState.trackingType;
|
|
83
75
|
var isTracked = sessionState.isTracked;
|
|
84
76
|
cookieSession[productKey] = trackingType;
|
|
85
|
-
|
|
86
77
|
if (isTracked && !cookieSession.id) {
|
|
87
78
|
cookieSession.id = UUID();
|
|
88
79
|
cookieSession.created = String(dateNow());
|
|
89
80
|
}
|
|
90
|
-
|
|
91
81
|
return isTracked;
|
|
92
82
|
}
|
|
93
|
-
|
|
94
83
|
function hasSessionInCache() {
|
|
95
84
|
return sessionCache[productKey] !== undefined;
|
|
96
85
|
}
|
|
97
|
-
|
|
98
86
|
function isSessionInCacheOutdated(cookieSession) {
|
|
99
87
|
return sessionCache.id !== cookieSession.id || sessionCache[productKey] !== cookieSession[productKey];
|
|
100
88
|
}
|
|
101
|
-
|
|
102
89
|
function expireSessionInCache() {
|
|
103
90
|
sessionCache = {};
|
|
104
91
|
expireObservable.notify();
|
|
105
92
|
}
|
|
106
|
-
|
|
107
93
|
function renewSession(cookieSession) {
|
|
108
94
|
sessionCache = cookieSession;
|
|
109
95
|
renewObservable.notify();
|
|
110
96
|
}
|
|
111
|
-
|
|
112
97
|
function retrieveActiveSession() {
|
|
113
98
|
var session = retrieveSession();
|
|
114
|
-
|
|
115
99
|
if (isActiveSession(session)) {
|
|
116
100
|
return session;
|
|
117
101
|
}
|
|
118
|
-
|
|
119
102
|
return {};
|
|
120
103
|
}
|
|
121
|
-
|
|
122
104
|
function isActiveSession(session) {
|
|
123
105
|
// created and expire can be undefined for versions which was not storing them
|
|
124
106
|
// these checks could be removed when older versions will not be available/live anymore
|
|
125
107
|
return (session.created === undefined || dateNow() - Number(session.created) < SESSION_TIME_OUT_DELAY) && (session.expire === undefined || dateNow() < Number(session.expire));
|
|
126
108
|
}
|
|
127
|
-
|
|
128
109
|
return {
|
|
129
110
|
expandOrRenewSession: throttle(expandOrRenewSession, COOKIE_ACCESS_DELAY).throttled,
|
|
130
111
|
expandSession: expandSession,
|
|
@@ -141,4 +122,5 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
141
122
|
clearInterval(watchSessionTimeoutId);
|
|
142
123
|
}
|
|
143
124
|
};
|
|
144
|
-
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=sessionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionStore.js","names":["COOKIE_ACCESS_DELAY","Observable","dateNow","UUID","throttle","SESSION_TIME_OUT_DELAY","retrieveSession","withCookieLockAccess","clearInterval","setInterval","startSessionStore","options","productKey","computeSessionState","renewObservable","expireObservable","watchSessionTimeoutId","watchSession","sessionCache","retrieveActiveSession","expandOrRenewSession","isTracked","process","cookieSession","synchronizedSession","synchronizeSession","expandOrRenewCookie","after","hasSessionInCache","renewSession","expandSession","undefined","isActiveSession","isSessionInCacheOutdated","expireSessionInCache","sessionState","trackingType","id","created","String","notify","session","Number","expire","throttled","getSession","deleteSessionCookie","stop"],"sources":["../../src/session/sessionStore.js"],"sourcesContent":["import { COOKIE_ACCESS_DELAY } from '../browser/cookie'\nimport { Observable } from '../helper/observable'\nimport { dateNow, UUID, throttle } from '../helper/tools'\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants'\nimport { retrieveSession, withCookieLockAccess } from './sessionCookieStore'\nimport { clearInterval, setInterval } from '../helper/timer'\n\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(options, productKey, computeSessionState) {\n var renewObservable = new Observable()\n var expireObservable = new Observable()\n\n var watchSessionTimeoutId = setInterval(watchSession, COOKIE_ACCESS_DELAY)\n var sessionCache = retrieveActiveSession()\n\n function expandOrRenewSession() {\n var isTracked\n withCookieLockAccess({\n options: options,\n process: function (cookieSession) {\n var synchronizedSession = synchronizeSession(cookieSession)\n isTracked = expandOrRenewCookie(synchronizedSession)\n return synchronizedSession\n },\n after: function (cookieSession) {\n if (isTracked && !hasSessionInCache()) {\n renewSession(cookieSession)\n }\n sessionCache = cookieSession\n }\n })\n }\n\n function expandSession() {\n withCookieLockAccess({\n options: options,\n process: function (cookieSession) {\n return hasSessionInCache()\n ? synchronizeSession(cookieSession)\n : undefined\n }\n })\n }\n\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session cookie\n * - if the session is not active, clear the session cookie and expire the session cache\n */\n function watchSession() {\n withCookieLockAccess({\n options: options,\n process: function (cookieSession) {\n return !isActiveSession(cookieSession) ? {} : undefined\n },\n after: synchronizeSession\n })\n }\n\n function synchronizeSession(cookieSession) {\n if (!isActiveSession(cookieSession)) {\n cookieSession = {}\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(cookieSession)) {\n expireSessionInCache()\n } else {\n sessionCache = cookieSession\n }\n }\n return cookieSession\n }\n\n function expandOrRenewCookie(cookieSession) {\n var sessionState = computeSessionState(cookieSession[productKey])\n var trackingType = sessionState.trackingType\n var isTracked = sessionState.isTracked\n cookieSession[productKey] = trackingType\n if (isTracked && !cookieSession.id) {\n cookieSession.id = UUID()\n cookieSession.created = String(dateNow())\n }\n return isTracked\n }\n\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined\n }\n\n function isSessionInCacheOutdated(cookieSession) {\n return (\n sessionCache.id !== cookieSession.id ||\n sessionCache[productKey] !== cookieSession[productKey]\n )\n }\n\n function expireSessionInCache() {\n sessionCache = {}\n expireObservable.notify()\n }\n\n function renewSession(cookieSession) {\n sessionCache = cookieSession\n renewObservable.notify()\n }\n\n function retrieveActiveSession() {\n var session = retrieveSession()\n if (isActiveSession(session)) {\n return session\n }\n return {}\n }\n\n function isActiveSession(session) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return (\n (session.created === undefined ||\n dateNow() - Number(session.created) < SESSION_TIME_OUT_DELAY) &&\n (session.expire === undefined || dateNow() < Number(session.expire))\n )\n }\n\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, COOKIE_ACCESS_DELAY)\n .throttled,\n expandSession: expandSession,\n getSession: function () {\n return sessionCache\n },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: function () {\n deleteSessionCookie(options)\n synchronizeSession({})\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId)\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -12,4 +12,5 @@ export function getSyntheticsTestId() {
|
|
|
12
12
|
export function getSyntheticsResultId() {
|
|
13
13
|
var value = window._GUANCE_SYNTHETICS_RESULT_ID || getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);
|
|
14
14
|
return typeof value === 'string' ? value : undefined;
|
|
15
|
-
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=syntheticsWorkerValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntheticsWorkerValues.js","names":["getCookie","SYNTHETICS_TEST_ID_COOKIE_NAME","SYNTHETICS_RESULT_ID_COOKIE_NAME","SYNTHETICS_INJECTS_RUM_COOKIE_NAME","willSyntheticsInjectRum","Boolean","window","_GUANCE_SYNTHETICS_INJECTS_RUM","getSyntheticsTestId","value","_GUANCE_SYNTHETICS_PUBLIC_ID","undefined","getSyntheticsResultId","_GUANCE_SYNTHETICS_RESULT_ID"],"sources":["../../src/synthetics/syntheticsWorkerValues.js"],"sourcesContent":["import { getCookie } from '../browser/cookie'\n\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'guance-synthetics-public-id'\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'guance-synthetics-result-id'\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'guance-synthetics-injects-rum'\n\nexport function willSyntheticsInjectRum() {\n return Boolean(\n window._GUANCE_SYNTHETICS_INJECTS_RUM ||\n getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME)\n )\n}\n\nexport function getSyntheticsTestId() {\n var value =\n window._GUANCE_SYNTHETICS_PUBLIC_ID ||\n getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME)\n return typeof value === 'string' ? value : undefined\n}\n\nexport function getSyntheticsResultId() {\n var value =\n window._GUANCE_SYNTHETICS_RESULT_ID ||\n getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME)\n return typeof value === 'string' ? value : undefined\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,mBAAmB;AAE7C,OAAO,IAAIC,8BAA8B,GAAG,6BAA6B;AACzE,OAAO,IAAIC,gCAAgC,GAAG,6BAA6B;AAC3E,OAAO,IAAIC,kCAAkC,GAAG,+BAA+B;AAE/E,OAAO,SAASC,uBAAuBA,CAAA,EAAG;EACxC,OAAOC,OAAO,CACZC,MAAM,CAACC,8BAA8B,IACnCP,SAAS,CAACG,kCAAkC,CAChD,CAAC;AACH;AAEA,OAAO,SAASK,mBAAmBA,CAAA,EAAG;EACpC,IAAIC,KAAK,GACPH,MAAM,CAACI,4BAA4B,IACnCV,SAAS,CAACC,8BAA8B,CAAC;EAC3C,OAAO,OAAOQ,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD;AAEA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIH,KAAK,GACPH,MAAM,CAACO,4BAA4B,IACnCb,SAAS,CAACE,gCAAgC,CAAC;EAC7C,OAAO,OAAOO,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD"}
|
package/esm/synthetics/usr.js
CHANGED
|
@@ -4,15 +4,14 @@ export var ANONYMOUS_ID_COOKIE_NAME = '_dataflulx_usr_id';
|
|
|
4
4
|
export var ANONYMOUS_ID_EXPIRATION = 60 * 24 * ONE_HOUR;
|
|
5
5
|
export var startCacheUsrCache = function startCacheUsrCache(configuration) {
|
|
6
6
|
var usrCacheId = getCookie(ANONYMOUS_ID_COOKIE_NAME);
|
|
7
|
-
|
|
8
7
|
if (!usrCacheId) {
|
|
9
8
|
usrCacheId = UUID();
|
|
10
9
|
setCookie(ANONYMOUS_ID_COOKIE_NAME, usrCacheId, ANONYMOUS_ID_EXPIRATION, configuration.cookieOptions);
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
return {
|
|
14
12
|
getUsrId: function getUsrId() {
|
|
15
13
|
return usrCacheId;
|
|
16
14
|
}
|
|
17
15
|
};
|
|
18
|
-
};
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=usr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usr.js","names":["getCookie","setCookie","ONE_HOUR","UUID","ANONYMOUS_ID_COOKIE_NAME","ANONYMOUS_ID_EXPIRATION","startCacheUsrCache","configuration","usrCacheId","cookieOptions","getUsrId"],"sources":["../../src/synthetics/usr.js"],"sourcesContent":["import { getCookie, setCookie } from '../browser/cookie'\nimport { ONE_HOUR, UUID } from '../helper/tools'\n\nexport var ANONYMOUS_ID_COOKIE_NAME = '_dataflulx_usr_id'\nexport var ANONYMOUS_ID_EXPIRATION = 60 * 24 * ONE_HOUR\n\nexport var startCacheUsrCache = function(configuration) {\n var usrCacheId = getCookie(ANONYMOUS_ID_COOKIE_NAME)\n if (!usrCacheId) {\n usrCacheId = UUID()\n setCookie(ANONYMOUS_ID_COOKIE_NAME, usrCacheId, ANONYMOUS_ID_EXPIRATION, configuration.cookieOptions)\n }\n return {\n getUsrId: function() {\n return usrCacheId\n }\n }\n}"],"mappings":"AAAA,SAASA,SAAS,EAAEC,SAAS,QAAQ,mBAAmB;AACxD,SAASC,QAAQ,EAAEC,IAAI,QAAQ,iBAAiB;AAEhD,OAAO,IAAIC,wBAAwB,GAAG,mBAAmB;AACzD,OAAO,IAAIC,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAGH,QAAQ;AAEvD,OAAO,IAAII,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAYC,aAAa,EAAE;EACtD,IAAIC,UAAU,GAAGR,SAAS,CAACI,wBAAwB,CAAC;EACpD,IAAI,CAACI,UAAU,EAAE;IACfA,UAAU,GAAGL,IAAI,CAAC,CAAC;IACnBF,SAAS,CAACG,wBAAwB,EAAEI,UAAU,EAAEH,uBAAuB,EAAEE,aAAa,CAACE,aAAa,CAAC;EACvG;EACA,OAAO;IACLC,QAAQ,EAAE,SAAAA,SAAA,EAAW;MACnB,OAAOF,UAAU;IACnB;EACF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { ConsoleApiName } from '../helper/display';
|
|
2
|
+
import { toStackTraceString, NO_ERROR_STACK_PRESENT_MESSAGE } from '../helper/errorTools';
|
|
3
|
+
import { computeStackTrace } from '../tracekit';
|
|
4
|
+
import { Observable } from '../helper/observable';
|
|
5
|
+
import { displayIfDebugEnabled, startMonitorErrorCollection } from '..//helper/monitor';
|
|
6
|
+
import { startsWith, assign, performDraw, timeStampNow, extend2Lev } from '../helper/tools';
|
|
7
|
+
import { jsonStringify } from '../helper/serialisation/jsonStringify';
|
|
8
|
+
import { NonErrorPrefix } from '../helper/enums';
|
|
9
|
+
import { TelemetryStatusType, TelemetryType } from './types';
|
|
10
|
+
var ALLOWED_FRAME_URLS = ['https://static.guance.com', 'http://localhost', '<anonymous>'];
|
|
11
|
+
export var TelemetryService = {
|
|
12
|
+
LOGS: 'browser-logs-sdk',
|
|
13
|
+
RUM: 'browser-rum-sdk'
|
|
14
|
+
};
|
|
15
|
+
var telemetryConfiguration = {
|
|
16
|
+
maxEventsPerPage: 0,
|
|
17
|
+
sentEventCount: 0,
|
|
18
|
+
telemetryEnabled: false
|
|
19
|
+
};
|
|
20
|
+
var onRawTelemetryEventCollected;
|
|
21
|
+
export function startTelemetry(telemetryService, configuration) {
|
|
22
|
+
var contextProvider;
|
|
23
|
+
var observable = new Observable();
|
|
24
|
+
telemetryConfiguration.telemetryEnabled = configuration.telemetryEnabled && performDraw(configuration.telemetrySampleRate);
|
|
25
|
+
onRawTelemetryEventCollected = function onRawTelemetryEventCollected(rawEvent) {
|
|
26
|
+
if (telemetryConfiguration.telemetryEnabled) {
|
|
27
|
+
var event = toTelemetryEvent(telemetryService, rawEvent);
|
|
28
|
+
observable.notify(event);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
startMonitorErrorCollection(addTelemetryError);
|
|
32
|
+
assign(telemetryConfiguration, {
|
|
33
|
+
maxEventsPerPage: configuration.maxTelemetryEventsPerPage,
|
|
34
|
+
sentEventCount: 0
|
|
35
|
+
});
|
|
36
|
+
function toTelemetryEvent(telemetryService, event) {
|
|
37
|
+
return extend2Lev({
|
|
38
|
+
type: 'telemetry',
|
|
39
|
+
date: timeStampNow(),
|
|
40
|
+
service: telemetryService,
|
|
41
|
+
version: __BUILD_ENV__SDK_VERSION__,
|
|
42
|
+
source: 'browser',
|
|
43
|
+
telemetry: event // https://github.com/microsoft/TypeScript/issues/48457
|
|
44
|
+
}, contextProvider !== undefined ? contextProvider() : {});
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
setContextProvider: function setContextProvider(provider) {
|
|
48
|
+
contextProvider = provider;
|
|
49
|
+
},
|
|
50
|
+
observable: observable,
|
|
51
|
+
enabled: telemetryConfiguration.telemetryEnabled
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export function resetTelemetry() {
|
|
55
|
+
onRawTelemetryEventCollected = undefined;
|
|
56
|
+
}
|
|
57
|
+
export function addTelemetryDebug(message, context) {
|
|
58
|
+
displayIfDebugEnabled(ConsoleApiName.debug, message, context);
|
|
59
|
+
addTelemetry(assign({
|
|
60
|
+
type: TelemetryType.log,
|
|
61
|
+
message: message,
|
|
62
|
+
status: TelemetryStatusType.debug
|
|
63
|
+
}, context));
|
|
64
|
+
}
|
|
65
|
+
export function addTelemetryError(e, context) {
|
|
66
|
+
addTelemetry(assign({
|
|
67
|
+
type: TelemetryType.log,
|
|
68
|
+
status: TelemetryStatusType.error
|
|
69
|
+
}, formatError(e), context));
|
|
70
|
+
}
|
|
71
|
+
export function addTelemetryConfiguration(configuration) {
|
|
72
|
+
if (telemetryConfiguration.telemetryEnabled) {
|
|
73
|
+
addTelemetry({
|
|
74
|
+
type: TelemetryType.configuration,
|
|
75
|
+
configuration: configuration
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function addTelemetry(event) {
|
|
80
|
+
if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {
|
|
81
|
+
telemetryConfiguration.sentEventCount += 1;
|
|
82
|
+
onRawTelemetryEventCollected(event);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export function formatError(e) {
|
|
86
|
+
if (e instanceof Error) {
|
|
87
|
+
var stackTrace = computeStackTrace(e);
|
|
88
|
+
return {
|
|
89
|
+
error: {
|
|
90
|
+
kind: stackTrace.name,
|
|
91
|
+
stack: toStackTraceString(scrubCustomerFrames(stackTrace))
|
|
92
|
+
},
|
|
93
|
+
message: stackTrace.message
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
error: {
|
|
98
|
+
stack: NO_ERROR_STACK_PRESENT_MESSAGE
|
|
99
|
+
},
|
|
100
|
+
message: NonErrorPrefix.UNCAUGHT + ' ' + jsonStringify(e)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export function scrubCustomerFrames(stackTrace) {
|
|
104
|
+
stackTrace.stack = stackTrace.stack.filter(function (frame) {
|
|
105
|
+
return !frame.url || ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) {
|
|
106
|
+
return startsWith(frame.url, allowedFrameUrl);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
return stackTrace;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","names":["ConsoleApiName","toStackTraceString","NO_ERROR_STACK_PRESENT_MESSAGE","computeStackTrace","Observable","displayIfDebugEnabled","startMonitorErrorCollection","startsWith","assign","performDraw","timeStampNow","extend2Lev","jsonStringify","NonErrorPrefix","TelemetryStatusType","TelemetryType","ALLOWED_FRAME_URLS","TelemetryService","LOGS","RUM","telemetryConfiguration","maxEventsPerPage","sentEventCount","telemetryEnabled","onRawTelemetryEventCollected","startTelemetry","telemetryService","configuration","contextProvider","observable","telemetrySampleRate","rawEvent","event","toTelemetryEvent","notify","addTelemetryError","maxTelemetryEventsPerPage","type","date","service","version","__BUILD_ENV__SDK_VERSION__","source","telemetry","undefined","setContextProvider","provider","enabled","resetTelemetry","addTelemetryDebug","message","context","debug","addTelemetry","log","status","e","error","formatError","addTelemetryConfiguration","Error","stackTrace","kind","name","stack","scrubCustomerFrames","UNCAUGHT","filter","frame","url","some","allowedFrameUrl"],"sources":["../../src/telemetry/telemetry.js"],"sourcesContent":["import { ConsoleApiName } from '../helper/display'\nimport {\n toStackTraceString,\n NO_ERROR_STACK_PRESENT_MESSAGE\n} from '../helper/errorTools'\nimport { computeStackTrace } from '../tracekit'\nimport { Observable } from '../helper/observable'\nimport {\n displayIfDebugEnabled,\n startMonitorErrorCollection\n} from '..//helper/monitor'\nimport {\n startsWith,\n assign,\n performDraw,\n timeStampNow,\n extend2Lev\n} from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { NonErrorPrefix } from '../helper/enums'\nimport { TelemetryStatusType, TelemetryType } from './types'\n\nconst ALLOWED_FRAME_URLS = [\n 'https://static.guance.com',\n 'http://localhost',\n '<anonymous>'\n]\n\nexport var TelemetryService = {\n LOGS: 'browser-logs-sdk',\n RUM: 'browser-rum-sdk'\n}\n\nvar telemetryConfiguration = {\n maxEventsPerPage: 0,\n sentEventCount: 0,\n telemetryEnabled: false\n}\n\nvar onRawTelemetryEventCollected\n\nexport function startTelemetry(telemetryService, configuration) {\n let contextProvider\n var observable = new Observable()\n telemetryConfiguration.telemetryEnabled =\n configuration.telemetryEnabled &&\n performDraw(configuration.telemetrySampleRate)\n\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event = toTelemetryEvent(telemetryService, rawEvent)\n observable.notify(event)\n }\n }\n startMonitorErrorCollection(addTelemetryError)\n\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0\n })\n\n function toTelemetryEvent(telemetryService, event) {\n return extend2Lev(\n {\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: __BUILD_ENV__SDK_VERSION__,\n source: 'browser',\n telemetry: event // https://github.com/microsoft/TypeScript/issues/48457\n },\n contextProvider !== undefined ? contextProvider() : {}\n )\n }\n\n return {\n setContextProvider: function (provider) {\n contextProvider = provider\n },\n observable: observable,\n enabled: telemetryConfiguration.telemetryEnabled\n }\n}\n\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined\n}\n\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context)\n addTelemetry(\n assign(\n {\n type: TelemetryType.log,\n message: message,\n status: TelemetryStatusType.debug\n },\n context\n )\n )\n}\n\nexport function addTelemetryError(e, context) {\n addTelemetry(\n assign(\n {\n type: TelemetryType.log,\n status: TelemetryStatusType.error\n },\n formatError(e),\n context\n )\n )\n}\n\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration\n })\n }\n}\n\nfunction addTelemetry(event) {\n if (\n onRawTelemetryEventCollected &&\n telemetryConfiguration.sentEventCount <\n telemetryConfiguration.maxEventsPerPage\n ) {\n telemetryConfiguration.sentEventCount += 1\n onRawTelemetryEventCollected(event)\n }\n}\n\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e)\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace))\n },\n message: stackTrace.message\n }\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE\n },\n message: NonErrorPrefix.UNCAUGHT + ' ' + jsonStringify(e)\n }\n}\n\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(\n (frame) =>\n !frame.url ||\n ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) {\n return startsWith(frame.url, allowedFrameUrl)\n })\n )\n return stackTrace\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["TelemetryType","log","configuration","TelemetryStatusType","debug","error"],"sources":["../../src/telemetry/types.js"],"sourcesContent":["export var TelemetryType = {\n log: 'log',\n configuration: 'configuration'\n}\n\nexport var TelemetryStatusType = {\n debug: 'debug',\n error: 'error'\n}\n"],"mappings":"AAAA,OAAO,IAAIA,aAAa,GAAG;EACzBC,GAAG,EAAE,KAAK;EACVC,aAAa,EAAE;AACjB,CAAC;AAED,OAAO,IAAIC,mBAAmB,GAAG;EAC/BC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAC"}
|