@cloudcare/browser-core 3.0.29 → 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 +3 -8
- 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 +4 -21
- 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 +3 -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 +32 -38
- 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 +10 -22
- 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 +2 -11
- 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 +4 -14
- 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 +2 -8
- package/cjs/helper/timer.js.map +1 -0
- package/cjs/helper/tools.js +57 -444
- 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 +24 -95
- package/cjs/index.js.map +1 -0
- package/cjs/init.js +14 -20
- package/cjs/init.js.map +1 -0
- package/cjs/report/reportObservable.js +5 -24
- 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 +5 -54
- 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 +4 -18
- 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 +3 -3
- 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 +4 -14
- 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 +3 -11
- 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 +30 -25
- 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 +10 -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 +2 -3
- 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 +4 -12
- 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 +2 -1
- package/esm/helper/timer.js.map +1 -0
- package/esm/helper/tools.js +57 -256
- 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 +4 -1
- package/esm/index.js.map +1 -0
- package/esm/init.js +14 -14
- package/esm/init.js.map +1 -0
- package/esm/report/reportObservable.js +5 -16
- 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 +7 -45
- 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 +4 -15
- 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/scroll.js +25 -0
- package/src/configuration/configuration.js +16 -0
- package/src/configuration/transportConfiguration.js +2 -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 +49 -19
- package/src/helper/tools.js +1 -0
- package/src/index.js +3 -0
- package/src/report/reportObservable.js +3 -3
- package/src/telemetry/telemetry.js +164 -0
- package/src/telemetry/types.js +9 -0
|
@@ -6,15 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.MAX_QUEUE_BYTES_COUNT = exports.MAX_ONGOING_REQUESTS = exports.MAX_ONGOING_BYTES_COUNT = exports.MAX_BACKOFF_TIME = exports.INITIAL_BACKOFF_TIME = void 0;
|
|
7
7
|
exports.newRetryState = newRetryState;
|
|
8
8
|
exports.sendWithRetryStrategy = sendWithRetryStrategy;
|
|
9
|
-
|
|
10
9
|
var _tools = require("../helper/tools");
|
|
11
|
-
|
|
12
10
|
var _byteUtils = require("../helper/byteUtils");
|
|
13
|
-
|
|
14
11
|
var _errorTools = require("../helper/errorTools");
|
|
15
|
-
|
|
16
12
|
var _timer = require("../helper/timer");
|
|
17
|
-
|
|
18
13
|
var MAX_ONGOING_BYTES_COUNT = 80 * _byteUtils.ONE_KIBI_BYTE;
|
|
19
14
|
exports.MAX_ONGOING_BYTES_COUNT = MAX_ONGOING_BYTES_COUNT;
|
|
20
15
|
var MAX_ONGOING_REQUESTS = 32;
|
|
@@ -34,7 +29,6 @@ var RetryReason = {
|
|
|
34
29
|
AFTER_SUCCESS: 0,
|
|
35
30
|
AFTER_RESUME: 1
|
|
36
31
|
};
|
|
37
|
-
|
|
38
32
|
function sendWithRetryStrategy(payload, state, sendStrategy, endpointUrl, reportError) {
|
|
39
33
|
if (state.transportStatus === TransportStatus.UP && state.queuedPayloads.size() === 0 && state.bandwidthMonitor.canHandle(payload)) {
|
|
40
34
|
send(payload, state, sendStrategy, {
|
|
@@ -50,22 +44,20 @@ function sendWithRetryStrategy(payload, state, sendStrategy, endpointUrl, report
|
|
|
50
44
|
state.queuedPayloads.enqueue(payload);
|
|
51
45
|
}
|
|
52
46
|
}
|
|
53
|
-
|
|
54
47
|
function scheduleRetry(state, sendStrategy, endpointUrl, reportError) {
|
|
55
48
|
if (state.transportStatus !== TransportStatus.DOWN) {
|
|
56
49
|
return;
|
|
57
50
|
}
|
|
58
|
-
|
|
59
51
|
(0, _timer.setTimeout)(function () {
|
|
60
52
|
var payload = state.queuedPayloads.first();
|
|
61
53
|
send(payload, state, sendStrategy, {
|
|
62
54
|
onSuccess: function onSuccess() {
|
|
63
|
-
state.queuedPayloads.dequeue();
|
|
55
|
+
state.queuedPayloads.dequeue();
|
|
56
|
+
// if (state.lastFailureStatus !== 0) {
|
|
64
57
|
// addTelemetryDebug('resuming after transport down', {
|
|
65
58
|
// failureStatus: state.lastFailureStatus,
|
|
66
59
|
// })
|
|
67
60
|
// }
|
|
68
|
-
|
|
69
61
|
state.currentBackoffTime = INITIAL_BACKOFF_TIME;
|
|
70
62
|
retryQueuedPayloads(RetryReason.AFTER_RESUME, state, sendStrategy, endpointUrl, reportError);
|
|
71
63
|
},
|
|
@@ -76,14 +68,12 @@ function scheduleRetry(state, sendStrategy, endpointUrl, reportError) {
|
|
|
76
68
|
});
|
|
77
69
|
}, state.currentBackoffTime);
|
|
78
70
|
}
|
|
79
|
-
|
|
80
71
|
function send(payload, state, sendStrategy, responseData) {
|
|
81
72
|
var onSuccess = responseData.onSuccess;
|
|
82
73
|
var onFailure = responseData.onFailure;
|
|
83
74
|
state.bandwidthMonitor.add(payload);
|
|
84
75
|
sendStrategy(payload, function (response) {
|
|
85
76
|
state.bandwidthMonitor.remove(payload);
|
|
86
|
-
|
|
87
77
|
if (!shouldRetryRequest(response)) {
|
|
88
78
|
state.transportStatus = TransportStatus.UP;
|
|
89
79
|
onSuccess();
|
|
@@ -95,7 +85,6 @@ function send(payload, state, sendStrategy, responseData) {
|
|
|
95
85
|
}
|
|
96
86
|
});
|
|
97
87
|
}
|
|
98
|
-
|
|
99
88
|
function retryQueuedPayloads(reason, state, sendStrategy, endpointUrl, reportError) {
|
|
100
89
|
if (reason === RetryReason.AFTER_SUCCESS && state.queuedPayloads.isFull() && !state.queueFullReported) {
|
|
101
90
|
reportError({
|
|
@@ -105,19 +94,15 @@ function retryQueuedPayloads(reason, state, sendStrategy, endpointUrl, reportErr
|
|
|
105
94
|
});
|
|
106
95
|
state.queueFullReported = true;
|
|
107
96
|
}
|
|
108
|
-
|
|
109
97
|
var previousQueue = state.queuedPayloads;
|
|
110
98
|
state.queuedPayloads = newPayloadQueue();
|
|
111
|
-
|
|
112
99
|
while (previousQueue.size() > 0) {
|
|
113
100
|
sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, endpointUrl, reportError);
|
|
114
101
|
}
|
|
115
102
|
}
|
|
116
|
-
|
|
117
103
|
function shouldRetryRequest(response) {
|
|
118
104
|
return response.type !== 'opaque' && (response.status === 0 && !navigator.onLine || response.status === 408 || response.status === 429 || response.status >= 500);
|
|
119
105
|
}
|
|
120
|
-
|
|
121
106
|
function newRetryState() {
|
|
122
107
|
return {
|
|
123
108
|
transportStatus: TransportStatus.UP,
|
|
@@ -128,7 +113,6 @@ function newRetryState() {
|
|
|
128
113
|
queueFullReported: false
|
|
129
114
|
};
|
|
130
115
|
}
|
|
131
|
-
|
|
132
116
|
function newPayloadQueue() {
|
|
133
117
|
var queue = [];
|
|
134
118
|
return {
|
|
@@ -137,7 +121,6 @@ function newPayloadQueue() {
|
|
|
137
121
|
if (this.isFull()) {
|
|
138
122
|
return;
|
|
139
123
|
}
|
|
140
|
-
|
|
141
124
|
queue.push(payload);
|
|
142
125
|
this.bytesCount += payload.bytesCount;
|
|
143
126
|
},
|
|
@@ -146,11 +129,9 @@ function newPayloadQueue() {
|
|
|
146
129
|
},
|
|
147
130
|
dequeue: function dequeue() {
|
|
148
131
|
var payload = queue.shift();
|
|
149
|
-
|
|
150
132
|
if (payload) {
|
|
151
133
|
this.bytesCount -= payload.bytesCount;
|
|
152
134
|
}
|
|
153
|
-
|
|
154
135
|
return payload;
|
|
155
136
|
},
|
|
156
137
|
size: function size() {
|
|
@@ -161,7 +142,6 @@ function newPayloadQueue() {
|
|
|
161
142
|
}
|
|
162
143
|
};
|
|
163
144
|
}
|
|
164
|
-
|
|
165
145
|
function newBandwidthMonitor() {
|
|
166
146
|
return {
|
|
167
147
|
ongoingRequestCount: 0,
|
|
@@ -178,4 +158,5 @@ function newBandwidthMonitor() {
|
|
|
178
158
|
this.ongoingByteCount -= payload.bytesCount;
|
|
179
159
|
}
|
|
180
160
|
};
|
|
181
|
-
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=sendWithRetryStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendWithRetryStrategy.js","names":["_tools","require","_byteUtils","_errorTools","_timer","MAX_ONGOING_BYTES_COUNT","ONE_KIBI_BYTE","exports","MAX_ONGOING_REQUESTS","MAX_QUEUE_BYTES_COUNT","ONE_MEBI_BYTE","MAX_BACKOFF_TIME","ONE_SECOND","INITIAL_BACKOFF_TIME","TransportStatus","UP","FAILURE_DETECTED","DOWN","RetryReason","AFTER_SUCCESS","AFTER_RESUME","sendWithRetryStrategy","payload","state","sendStrategy","endpointUrl","reportError","transportStatus","queuedPayloads","size","bandwidthMonitor","canHandle","send","onSuccess","retryQueuedPayloads","onFailure","enqueue","scheduleRetry","setTimeout","first","dequeue","currentBackoffTime","Math","min","responseData","add","response","remove","shouldRetryRequest","ongoingRequestCount","lastFailureStatus","status","reason","isFull","queueFullReported","message","source","ErrorSource","AGENT","startClocks","clocksNow","previousQueue","newPayloadQueue","type","navigator","onLine","newRetryState","newBandwidthMonitor","queue","bytesCount","push","shift","length","ongoingByteCount"],"sources":["../../src/transport/sendWithRetryStrategy.js"],"sourcesContent":["import { clocksNow, ONE_SECOND } from '../helper/tools'\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../helper/byteUtils'\nimport { ErrorSource } from '../helper/errorTools'\nimport { setTimeout } from '../helper/timer'\nexport var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE\nexport var MAX_ONGOING_REQUESTS = 32\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE\nexport var MAX_BACKOFF_TIME = 256 * ONE_SECOND\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND\n\nvar TransportStatus = {\n UP: 0,\n FAILURE_DETECTED: 1,\n DOWN: 2\n}\n\nvar RetryReason = {\n AFTER_SUCCESS: 0,\n AFTER_RESUME: 1\n}\n\nexport function sendWithRetryStrategy(\n payload,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n) {\n if (\n state.transportStatus === TransportStatus.UP &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)\n ) {\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n return retryQueuedPayloads(\n RetryReason.AFTER_SUCCESS,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload)\n scheduleRetry(state, sendStrategy, endpointUrl, reportError)\n }\n })\n } else {\n state.queuedPayloads.enqueue(payload)\n }\n}\n\nfunction scheduleRetry(state, sendStrategy, endpointUrl, reportError) {\n if (state.transportStatus !== TransportStatus.DOWN) {\n return\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first()\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue()\n // if (state.lastFailureStatus !== 0) {\n // addTelemetryDebug('resuming after transport down', {\n // failureStatus: state.lastFailureStatus,\n // })\n // }\n state.currentBackoffTime = INITIAL_BACKOFF_TIME\n retryQueuedPayloads(\n RetryReason.AFTER_RESUME,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(\n MAX_BACKOFF_TIME,\n state.currentBackoffTime * 2\n )\n scheduleRetry(state, sendStrategy, endpointUrl, reportError)\n }\n })\n }, state.currentBackoffTime)\n}\n\nfunction send(payload, state, sendStrategy, responseData) {\n var onSuccess = responseData.onSuccess\n var onFailure = responseData.onFailure\n state.bandwidthMonitor.add(payload)\n sendStrategy(payload, function (response) {\n state.bandwidthMonitor.remove(payload)\n if (!shouldRetryRequest(response)) {\n state.transportStatus = TransportStatus.UP\n onSuccess()\n } else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0\n ? TransportStatus.FAILURE_DETECTED\n : TransportStatus.DOWN\n state.lastFailureStatus = response.status\n onFailure()\n }\n })\n}\n\nfunction retryQueuedPayloads(\n reason,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n) {\n if (\n reason === RetryReason.AFTER_SUCCESS &&\n state.queuedPayloads.isFull() &&\n !state.queueFullReported\n ) {\n reportError({\n message:\n 'Reached max ' +\n endpointUrl +\n ' events size queued for upload: ' +\n MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE +\n 'MiB',\n source: ErrorSource.AGENT,\n startClocks: clocksNow()\n })\n state.queueFullReported = true\n }\n var previousQueue = state.queuedPayloads\n state.queuedPayloads = newPayloadQueue()\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(\n previousQueue.dequeue(),\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n }\n}\n\nfunction shouldRetryRequest(response) {\n return (\n response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n response.status >= 500)\n )\n}\nexport function newRetryState() {\n return {\n transportStatus: TransportStatus.UP,\n lastFailureStatus: 0,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false\n }\n}\n\nfunction newPayloadQueue() {\n var queue = []\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return\n }\n queue.push(payload)\n this.bytesCount += payload.bytesCount\n },\n first: function () {\n return queue[0]\n },\n dequeue: function () {\n var payload = queue.shift()\n if (payload) {\n this.bytesCount -= payload.bytesCount\n }\n return payload\n },\n size: function () {\n return queue.length\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT\n }\n }\n}\n\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (\n this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <=\n MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS)\n )\n },\n add: function (payload) {\n this.ongoingRequestCount += 1\n this.ongoingByteCount += payload.bytesCount\n },\n remove: function (payload) {\n this.ongoingRequestCount -= 1\n this.ongoingByteCount -= payload.bytesCount\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -4,16 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.startBatchWithReplica = startBatchWithReplica;
|
|
7
|
-
|
|
8
7
|
var _batch = require("./batch");
|
|
9
|
-
|
|
10
8
|
var _httpRequest = require("./httpRequest");
|
|
11
|
-
|
|
12
9
|
var _flushController = require("./flushController");
|
|
13
|
-
|
|
14
10
|
function startBatchWithReplica(configuration, endpointUrl, reportError, pageExitObservable, sessionExpireObservable) {
|
|
15
11
|
var primaryBatch = createBatch(endpointUrl);
|
|
16
|
-
|
|
17
12
|
function createBatch(endpointUrl) {
|
|
18
13
|
return new _batch.Batch((0, _httpRequest.createHttpRequest)(endpointUrl, configuration.batchBytesLimit, reportError), (0, _flushController.createFlushController)({
|
|
19
14
|
messagesLimit: configuration.batchMessagesLimit,
|
|
@@ -23,10 +18,10 @@ function startBatchWithReplica(configuration, endpointUrl, reportError, pageExit
|
|
|
23
18
|
sessionExpireObservable: sessionExpireObservable
|
|
24
19
|
}), configuration.messageBytesLimit);
|
|
25
20
|
}
|
|
26
|
-
|
|
27
21
|
return {
|
|
28
22
|
add: function add(message) {
|
|
29
23
|
primaryBatch.add(message);
|
|
30
24
|
}
|
|
31
25
|
};
|
|
32
|
-
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=startBatchWithReplica.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startBatchWithReplica.js","names":["_batch","require","_httpRequest","_flushController","startBatchWithReplica","configuration","endpointUrl","reportError","pageExitObservable","sessionExpireObservable","primaryBatch","createBatch","Batch","createHttpRequest","batchBytesLimit","createFlushController","messagesLimit","batchMessagesLimit","bytesLimit","durationLimit","flushTimeout","messageBytesLimit","add","message"],"sources":["../../src/transport/startBatchWithReplica.js"],"sourcesContent":["import { Batch } from './batch'\nimport { createHttpRequest } from './httpRequest'\nimport { createFlushController } from './flushController'\nexport function startBatchWithReplica(\n configuration,\n endpointUrl,\n reportError,\n pageExitObservable,\n sessionExpireObservable\n) {\n var primaryBatch = createBatch(endpointUrl)\n\n function createBatch(endpointUrl) {\n return new Batch(\n createHttpRequest(\n endpointUrl,\n configuration.batchBytesLimit,\n reportError\n ),\n createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable\n }),\n configuration.messageBytesLimit\n )\n }\n\n return {\n add: function (message) {\n primaryBatch.add(message)\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACO,SAASG,qBAAqBA,CACnCC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,kBAAkB,EAClBC,uBAAuB,EACvB;EACA,IAAIC,YAAY,GAAGC,WAAW,CAACL,WAAW,CAAC;EAE3C,SAASK,WAAWA,CAACL,WAAW,EAAE;IAChC,OAAO,IAAIM,YAAK,CACd,IAAAC,8BAAiB,EACfP,WAAW,EACXD,aAAa,CAACS,eAAe,EAC7BP,WACF,CAAC,EACD,IAAAQ,sCAAqB,EAAC;MACpBC,aAAa,EAAEX,aAAa,CAACY,kBAAkB;MAC/CC,UAAU,EAAEb,aAAa,CAACS,eAAe;MACzCK,aAAa,EAAEd,aAAa,CAACe,YAAY;MACzCZ,kBAAkB,EAAEA,kBAAkB;MACtCC,uBAAuB,EAAEA;IAC3B,CAAC,CAAC,EACFJ,aAAa,CAACgB,iBAChB,CAAC;EACH;EAEA,OAAO;IACLC,GAAG,EAAE,SAAAA,IAAUC,OAAO,EAAE;MACtBb,YAAY,CAACY,GAAG,CAACC,OAAO,CAAC;IAC3B;EACF,CAAC;AACH"}
|
package/cjs/user/index.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _user = require("./user");
|
|
8
|
-
|
|
9
7
|
Object.keys(_user).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _user[key]) return;
|
|
@@ -15,4 +13,5 @@ Object.keys(_user).forEach(function (key) {
|
|
|
15
13
|
return _user[key];
|
|
16
14
|
}
|
|
17
15
|
});
|
|
18
|
-
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_user","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../src/user/index.js"],"sourcesContent":["export * from './user'\n"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
|
package/cjs/user/user.js
CHANGED
|
@@ -5,11 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.checkUser = checkUser;
|
|
7
7
|
exports.sanitizeUser = sanitizeUser;
|
|
8
|
-
|
|
9
8
|
var _display = require("../helper/display");
|
|
10
|
-
|
|
11
9
|
var _tools = require("../helper/tools");
|
|
12
|
-
|
|
13
10
|
/**
|
|
14
11
|
* Clone input data and ensure known user properties (id, name, email)
|
|
15
12
|
* are strings, as defined here:
|
|
@@ -25,17 +22,15 @@ function sanitizeUser(newUser) {
|
|
|
25
22
|
});
|
|
26
23
|
return user;
|
|
27
24
|
}
|
|
25
|
+
|
|
28
26
|
/**
|
|
29
27
|
* Simple check to ensure user is valid
|
|
30
28
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
29
|
function checkUser(newUser) {
|
|
34
30
|
var isValid = (0, _tools.getType)(newUser) === 'object';
|
|
35
|
-
|
|
36
31
|
if (!isValid) {
|
|
37
32
|
_display.display.error('Unsupported user:', newUser);
|
|
38
33
|
}
|
|
39
|
-
|
|
40
34
|
return isValid;
|
|
41
|
-
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","names":["_display","require","_tools","sanitizeUser","newUser","user","assign","keys","each","key","String","checkUser","isValid","getType","display","error"],"sources":["../../src/user/user.js"],"sourcesContent":["import { display } from '../helper/display'\nimport { assign, getType, each } from '../helper/tools'\n\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser)\n var keys = ['id', 'name', 'email']\n each(keys, function (key) {\n if (key in user) {\n user[key] = String(user[key])\n }\n })\n\n return user\n}\n\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object'\n if (!isValid) {\n display.error('Unsupported user:', newUser)\n }\n return isValid\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAACC,OAAO,EAAE;EACpC;EACA,IAAIC,IAAI,GAAG,IAAAC,aAAM,EAAC,CAAC,CAAC,EAAEF,OAAO,CAAC;EAC9B,IAAIG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;EAClC,IAAAC,WAAI,EAACD,IAAI,EAAE,UAAUE,GAAG,EAAE;IACxB,IAAIA,GAAG,IAAIJ,IAAI,EAAE;MACfA,IAAI,CAACI,GAAG,CAAC,GAAGC,MAAM,CAACL,IAAI,CAACI,GAAG,CAAC,CAAC;IAC/B;EACF,CAAC,CAAC;EAEF,OAAOJ,IAAI;AACb;;AAEA;AACA;AACA;AACO,SAASM,SAASA,CAACP,OAAO,EAAE;EACjC,IAAIQ,OAAO,GAAG,IAAAC,cAAO,EAACT,OAAO,CAAC,KAAK,QAAQ;EAC3C,IAAI,CAACQ,OAAO,EAAE;IACZE,gBAAO,CAACC,KAAK,CAAC,mBAAmB,EAAEX,OAAO,CAAC;EAC7C;EACA,OAAOQ,OAAO;AAChB"}
|
package/cjs/worker.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","names":["_byteUtils","require"],"sources":["../src/worker.js"],"sourcesContent":["export { concatBuffers } from './helper/byteUtils'\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA"}
|
|
@@ -4,6 +4,7 @@ import { monitor } from '../helper/monitor';
|
|
|
4
4
|
export function addEventListener(eventTarget, event, listener, options) {
|
|
5
5
|
return addEventListeners(eventTarget, [event], listener, options);
|
|
6
6
|
}
|
|
7
|
+
|
|
7
8
|
/**
|
|
8
9
|
* Add event listeners to an event emitter object (Window, Element, mock object...). This provides
|
|
9
10
|
* a few conveniences compared to using `element.addEventListener` directly:
|
|
@@ -33,15 +34,14 @@ export function addEventListeners(eventTarget, eventNames, listener, options) {
|
|
|
33
34
|
each(eventNames, function (eventName) {
|
|
34
35
|
add.call(eventTarget, eventName, wrappedListener, options);
|
|
35
36
|
});
|
|
36
|
-
|
|
37
37
|
var stop = function stop() {
|
|
38
38
|
var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener');
|
|
39
39
|
each(eventNames, function (eventName) {
|
|
40
40
|
remove.call(eventTarget, eventName, wrappedListener, options);
|
|
41
41
|
});
|
|
42
42
|
};
|
|
43
|
-
|
|
44
43
|
return {
|
|
45
44
|
stop: stop
|
|
46
45
|
};
|
|
47
|
-
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=addEventListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addEventListener.js","names":["each","getZoneJsOriginalValue","monitor","addEventListener","eventTarget","event","listener","options","addEventListeners","eventNames","wrappedListener","once","stop","passive","capture","add","eventName","call","remove"],"sources":["../../src/browser/addEventListener.js"],"sourcesContent":["import { each } from '../helper/tools'\nimport { getZoneJsOriginalValue } from '../helper/getZoneJsOriginalValue'\nimport { monitor } from '../helper/monitor'\nexport function addEventListener(eventTarget, event, listener, options) {\n return addEventListeners(eventTarget, [event], listener, options)\n}\n\n/**\n * Add event listeners to an event emitter object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by:\n * * using an option object only if needed\n * * emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are\n * listened\n */\n\nexport function addEventListeners(eventTarget, eventNames, listener, options) {\n var wrappedListener = monitor(\n options && options.once\n ? function (event) {\n stop()\n listener(event)\n }\n : listener\n )\n options =\n options && options.passive\n ? { capture: options.capture, passive: options.passive }\n : options && options.capture\n var add = getZoneJsOriginalValue(eventTarget, 'addEventListener')\n\n each(eventNames, function (eventName) {\n add.call(eventTarget, eventName, wrappedListener, options)\n })\n var stop = function () {\n var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener')\n each(eventNames, function (eventName) {\n remove.call(eventTarget, eventName, wrappedListener, options)\n })\n }\n return {\n stop: stop\n }\n}\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,iBAAiB;AACtC,SAASC,sBAAsB,QAAQ,kCAAkC;AACzE,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,OAAO,SAASC,gBAAgBA,CAACC,WAAW,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,EAAE;EACtE,OAAOC,iBAAiB,CAACJ,WAAW,EAAE,CAACC,KAAK,CAAC,EAAEC,QAAQ,EAAEC,OAAO,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,iBAAiBA,CAACJ,WAAW,EAAEK,UAAU,EAAEH,QAAQ,EAAEC,OAAO,EAAE;EAC5E,IAAIG,eAAe,GAAGR,OAAO,CAC3BK,OAAO,IAAIA,OAAO,CAACI,IAAI,GACnB,UAAUN,KAAK,EAAE;IACfO,IAAI,CAAC,CAAC;IACNN,QAAQ,CAACD,KAAK,CAAC;EACjB,CAAC,GACDC,QACN,CAAC;EACDC,OAAO,GACLA,OAAO,IAAIA,OAAO,CAACM,OAAO,GACtB;IAAEC,OAAO,EAAEP,OAAO,CAACO,OAAO;IAAED,OAAO,EAAEN,OAAO,CAACM;EAAQ,CAAC,GACtDN,OAAO,IAAIA,OAAO,CAACO,OAAO;EAChC,IAAIC,GAAG,GAAGd,sBAAsB,CAACG,WAAW,EAAE,kBAAkB,CAAC;EAEjEJ,IAAI,CAACS,UAAU,EAAE,UAAUO,SAAS,EAAE;IACpCD,GAAG,CAACE,IAAI,CAACb,WAAW,EAAEY,SAAS,EAAEN,eAAe,EAAEH,OAAO,CAAC;EAC5D,CAAC,CAAC;EACF,IAAIK,IAAI,GAAG,SAAPA,IAAIA,CAAA,EAAe;IACrB,IAAIM,MAAM,GAAGjB,sBAAsB,CAACG,WAAW,EAAE,qBAAqB,CAAC;IACvEJ,IAAI,CAACS,UAAU,EAAE,UAAUO,SAAS,EAAE;MACpCE,MAAM,CAACD,IAAI,CAACb,WAAW,EAAEY,SAAS,EAAEN,eAAe,EAAEH,OAAO,CAAC;IAC/D,CAAC,CAAC;EACJ,CAAC;EACD,OAAO;IACLK,IAAI,EAAEA;EACR,CAAC;AACH"}
|
package/esm/browser/cookie.js
CHANGED
|
@@ -19,7 +19,6 @@ export function areCookiesAuthorized(options) {
|
|
|
19
19
|
if (document.cookie === undefined || document.cookie === null) {
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
22
|
try {
|
|
24
23
|
// Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
|
|
25
24
|
// the test cookie lifetime
|
|
@@ -31,12 +30,12 @@ export function areCookiesAuthorized(options) {
|
|
|
31
30
|
return false;
|
|
32
31
|
}
|
|
33
32
|
}
|
|
33
|
+
|
|
34
34
|
/**
|
|
35
35
|
* No API to retrieve it, number of levels for subdomain and suffix are unknown
|
|
36
36
|
* strategy: find the minimal domain on which cookies are allowed to be set
|
|
37
37
|
* https://web.dev/same-site-same-origin/#site
|
|
38
38
|
*/
|
|
39
|
-
|
|
40
39
|
var getCurrentSiteCache;
|
|
41
40
|
export function getCurrentSite() {
|
|
42
41
|
if (getCurrentSiteCache === undefined) {
|
|
@@ -46,16 +45,14 @@ export function getCurrentSite() {
|
|
|
46
45
|
var testCookieValue = 'test';
|
|
47
46
|
var domainLevels = window.location.hostname.split('.');
|
|
48
47
|
var candidateDomain = domainLevels.pop();
|
|
49
|
-
|
|
50
48
|
while (domainLevels.length && !getCookie(testCookieName)) {
|
|
51
49
|
candidateDomain = domainLevels.pop() + '.' + candidateDomain;
|
|
52
50
|
setCookie(testCookieName, testCookieValue, ONE_SECOND, {
|
|
53
51
|
domain: candidateDomain
|
|
54
52
|
});
|
|
55
53
|
}
|
|
56
|
-
|
|
57
54
|
getCurrentSiteCache = candidateDomain;
|
|
58
55
|
}
|
|
59
|
-
|
|
60
56
|
return getCurrentSiteCache;
|
|
61
|
-
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=cookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.js","names":["findCommaSeparatedValue","UUID","ONE_SECOND","COOKIE_ACCESS_DELAY","setCookie","name","value","expireDelay","options","date","Date","setTime","getTime","expires","toUTCString","sameSite","crossSite","domain","secure","document","cookie","getCookie","deleteCookie","areCookiesAuthorized","undefined","testCookieName","concat","testCookieValue","error","getCurrentSiteCache","getCurrentSite","domainLevels","window","location","hostname","split","candidateDomain","pop","length"],"sources":["../../src/browser/cookie.js"],"sourcesContent":["import { findCommaSeparatedValue, UUID, ONE_SECOND } from '../helper/tools'\nexport var COOKIE_ACCESS_DELAY = ONE_SECOND\n\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date()\n date.setTime(date.getTime() + expireDelay)\n var expires = 'expires=' + date.toUTCString()\n var sameSite = options && options.crossSite ? 'none' : 'strict'\n var domain = options && options.domain ? ';domain=' + options.domain : ''\n var secure = options && options.secure ? ';secure' : ''\n document.cookie =\n name +\n '=' +\n value +\n ';' +\n expires +\n ';path=/;samesite=' +\n sameSite +\n domain +\n secure\n}\n\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name)\n}\n\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options)\n}\n\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = `dd_cookie_test_${UUID()}`\n var testCookieValue = 'test'\n setCookie(testCookieName, testCookieValue, ONE_SECOND, options)\n return getCookie(testCookieName) === testCookieValue\n } catch (error) {\n return false\n }\n}\n\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = `dd_site_test_${UUID()}`\n var testCookieValue = 'test'\n\n var domainLevels = window.location.hostname.split('.')\n var candidateDomain = domainLevels.pop()\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = domainLevels.pop() + '.' + candidateDomain\n setCookie(testCookieName, testCookieValue, ONE_SECOND, {\n domain: candidateDomain\n })\n }\n getCurrentSiteCache = candidateDomain\n }\n return getCurrentSiteCache\n}\n"],"mappings":"AAAA,SAASA,uBAAuB,EAAEC,IAAI,EAAEC,UAAU,QAAQ,iBAAiB;AAC3E,OAAO,IAAIC,mBAAmB,GAAGD,UAAU;AAE3C,OAAO,SAASE,SAASA,CAACC,IAAI,EAAEC,KAAK,EAAEC,WAAW,EAAEC,OAAO,EAAE;EAC3D,IAAIC,IAAI,GAAG,IAAIC,IAAI,CAAC,CAAC;EACrBD,IAAI,CAACE,OAAO,CAACF,IAAI,CAACG,OAAO,CAAC,CAAC,GAAGL,WAAW,CAAC;EAC1C,IAAIM,OAAO,GAAG,UAAU,GAAGJ,IAAI,CAACK,WAAW,CAAC,CAAC;EAC7C,IAAIC,QAAQ,GAAGP,OAAO,IAAIA,OAAO,CAACQ,SAAS,GAAG,MAAM,GAAG,QAAQ;EAC/D,IAAIC,MAAM,GAAGT,OAAO,IAAIA,OAAO,CAACS,MAAM,GAAG,UAAU,GAAGT,OAAO,CAACS,MAAM,GAAG,EAAE;EACzE,IAAIC,MAAM,GAAGV,OAAO,IAAIA,OAAO,CAACU,MAAM,GAAG,SAAS,GAAG,EAAE;EACvDC,QAAQ,CAACC,MAAM,GACbf,IAAI,GACJ,GAAG,GACHC,KAAK,GACL,GAAG,GACHO,OAAO,GACP,mBAAmB,GACnBE,QAAQ,GACRE,MAAM,GACNC,MAAM;AACV;AAEA,OAAO,SAASG,SAASA,CAAChB,IAAI,EAAE;EAC9B,OAAOL,uBAAuB,CAACmB,QAAQ,CAACC,MAAM,EAAEf,IAAI,CAAC;AACvD;AAEA,OAAO,SAASiB,YAAYA,CAACjB,IAAI,EAAEG,OAAO,EAAE;EAC1CJ,SAAS,CAACC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEG,OAAO,CAAC;AACjC;AAEA,OAAO,SAASe,oBAAoBA,CAACf,OAAO,EAAE;EAC5C,IAAIW,QAAQ,CAACC,MAAM,KAAKI,SAAS,IAAIL,QAAQ,CAACC,MAAM,KAAK,IAAI,EAAE;IAC7D,OAAO,KAAK;EACd;EACA,IAAI;IACF;IACA;IACA,IAAIK,cAAc,qBAAAC,MAAA,CAAqBzB,IAAI,CAAC,CAAC,CAAE;IAC/C,IAAI0B,eAAe,GAAG,MAAM;IAC5BvB,SAAS,CAACqB,cAAc,EAAEE,eAAe,EAAEzB,UAAU,EAAEM,OAAO,CAAC;IAC/D,OAAOa,SAAS,CAACI,cAAc,CAAC,KAAKE,eAAe;EACtD,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,KAAK;EACd;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAIC,mBAAmB;AACvB,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,IAAID,mBAAmB,KAAKL,SAAS,EAAE;IACrC;IACA;IACA,IAAIC,cAAc,mBAAAC,MAAA,CAAmBzB,IAAI,CAAC,CAAC,CAAE;IAC7C,IAAI0B,eAAe,GAAG,MAAM;IAE5B,IAAII,YAAY,GAAGC,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAACC,KAAK,CAAC,GAAG,CAAC;IACtD,IAAIC,eAAe,GAAGL,YAAY,CAACM,GAAG,CAAC,CAAC;IACxC,OAAON,YAAY,CAACO,MAAM,IAAI,CAACjB,SAAS,CAACI,cAAc,CAAC,EAAE;MACxDW,eAAe,GAAGL,YAAY,CAACM,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGD,eAAe;MAC5DhC,SAAS,CAACqB,cAAc,EAAEE,eAAe,EAAEzB,UAAU,EAAE;QACrDe,MAAM,EAAEmB;MACV,CAAC,CAAC;IACJ;IACAP,mBAAmB,GAAGO,eAAe;EACvC;EACA,OAAOP,mBAAmB;AAC5B"}
|
|
@@ -8,28 +8,23 @@ export function initFetchObservable() {
|
|
|
8
8
|
if (!fetchObservable) {
|
|
9
9
|
fetchObservable = createFetchObservable();
|
|
10
10
|
}
|
|
11
|
-
|
|
12
11
|
return fetchObservable;
|
|
13
12
|
}
|
|
14
|
-
|
|
15
13
|
function createFetchObservable() {
|
|
16
14
|
var observable = new Observable(function () {
|
|
17
15
|
if (!window.fetch) {
|
|
18
16
|
return;
|
|
19
17
|
}
|
|
20
|
-
|
|
21
18
|
var fetchMethod = instrumentMethod(window, 'fetch', function (originalFetch) {
|
|
22
19
|
return function (input, init) {
|
|
23
20
|
var responsePromise;
|
|
24
21
|
var context = callMonitored(beforeSend, null, [observable, input, init]);
|
|
25
|
-
|
|
26
22
|
if (context) {
|
|
27
23
|
responsePromise = originalFetch.call(this, context.input, context.init);
|
|
28
24
|
callMonitored(afterSend, null, [observable, responsePromise, context]);
|
|
29
25
|
} else {
|
|
30
26
|
responsePromise = originalFetch.call(this, input, init);
|
|
31
27
|
}
|
|
32
|
-
|
|
33
28
|
return responsePromise;
|
|
34
29
|
};
|
|
35
30
|
});
|
|
@@ -37,7 +32,6 @@ function createFetchObservable() {
|
|
|
37
32
|
});
|
|
38
33
|
return observable;
|
|
39
34
|
}
|
|
40
|
-
|
|
41
35
|
function beforeSend(observable, input, init) {
|
|
42
36
|
var method = init && init.method || input instanceof Request && input.method || 'GET';
|
|
43
37
|
var url = input instanceof Request ? input.url : normalizeUrl(String(input));
|
|
@@ -53,31 +47,27 @@ function beforeSend(observable, input, init) {
|
|
|
53
47
|
observable.notify(context);
|
|
54
48
|
return context;
|
|
55
49
|
}
|
|
56
|
-
|
|
57
50
|
function afterSend(observable, responsePromise, startContext) {
|
|
58
51
|
var reportFetch = function reportFetch(response) {
|
|
59
52
|
var context = startContext;
|
|
60
|
-
context.state = 'resolve';
|
|
61
|
-
|
|
53
|
+
context.state = 'resolve';
|
|
54
|
+
// context.duration = elapsed(context.startClocks.timeStamp, timeStampNow())
|
|
62
55
|
if ('stack' in response || response instanceof Error) {
|
|
63
56
|
context.status = 0;
|
|
64
57
|
context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;
|
|
65
58
|
context.error = response;
|
|
66
59
|
} else if ('status' in response) {
|
|
67
60
|
context.response = response;
|
|
68
|
-
|
|
69
61
|
try {
|
|
70
62
|
context.responseType = response.constructor === Response && response.type || ''; // issue The Response type getter can only be used on instances of Response
|
|
71
63
|
} catch (err) {
|
|
72
64
|
context.responseType = '';
|
|
73
65
|
}
|
|
74
|
-
|
|
75
66
|
context.status = response.status;
|
|
76
67
|
context.isAborted = false;
|
|
77
68
|
}
|
|
78
|
-
|
|
79
69
|
observable.notify(context);
|
|
80
70
|
};
|
|
81
|
-
|
|
82
71
|
responsePromise.then(monitor(reportFetch), monitor(reportFetch));
|
|
83
|
-
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=fetchObservable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchObservable.js","names":["instrumentMethod","Observable","clocksNow","monitor","callMonitored","normalizeUrl","fetchObservable","initFetchObservable","createFetchObservable","observable","window","fetch","fetchMethod","originalFetch","input","init","responsePromise","context","beforeSend","call","afterSend","stop","method","Request","url","String","startClocks","state","notify","startContext","reportFetch","response","Error","status","isAborted","DOMException","code","ABORT_ERR","error","responseType","constructor","Response","type","err","then"],"sources":["../../src/browser/fetchObservable.js"],"sourcesContent":["import { instrumentMethod } from '../helper/instrumentMethod'\nimport { Observable } from '../helper/observable'\nimport { clocksNow } from '../helper/tools'\nimport { monitor, callMonitored } from '../helper/monitor'\nimport { normalizeUrl } from '../helper/urlPolyfill'\n\nvar fetchObservable\n\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable()\n }\n return fetchObservable\n}\n\nfunction createFetchObservable() {\n var observable = new Observable(function () {\n if (!window.fetch) {\n return\n }\n\n var fetchMethod = instrumentMethod(\n window,\n 'fetch',\n function (originalFetch) {\n return function (input, init) {\n var responsePromise\n var context = callMonitored(beforeSend, null, [\n observable,\n input,\n init\n ])\n if (context) {\n responsePromise = originalFetch.call(\n this,\n context.input,\n context.init\n )\n callMonitored(afterSend, null, [\n observable,\n responsePromise,\n context\n ])\n } else {\n responsePromise = originalFetch.call(this, input, init)\n }\n return responsePromise\n }\n }\n )\n return fetchMethod.stop\n })\n\n return observable\n}\n\nfunction beforeSend(observable, input, init) {\n var method =\n (init && init.method) || (input instanceof Request && input.method) || 'GET'\n var url = input instanceof Request ? input.url : normalizeUrl(String(input))\n\n var startClocks = clocksNow()\n\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url\n }\n\n observable.notify(context)\n\n return context\n}\n\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext\n context.state = 'resolve'\n // context.duration = elapsed(context.startClocks.timeStamp, timeStampNow())\n if ('stack' in response || response instanceof Error) {\n context.status = 0\n context.isAborted =\n response instanceof DOMException &&\n response.code === DOMException.ABORT_ERR\n context.error = response\n } else if ('status' in response) {\n context.response = response\n try {\n context.responseType =\n (response.constructor === Response && response.type) || '' // issue The Response type getter can only be used on instances of Response\n } catch (err) {\n context.responseType = ''\n }\n\n context.status = response.status\n context.isAborted = false\n }\n observable.notify(context)\n }\n responsePromise.then(monitor(reportFetch), monitor(reportFetch))\n}\n"],"mappings":"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"}
|
|
@@ -17,10 +17,11 @@ export function isNodeShadowRoot(node) {
|
|
|
17
17
|
export function getChildNodes(node) {
|
|
18
18
|
return isNodeShadowHost(node) ? node.shadowRoot.childNodes : node.childNodes;
|
|
19
19
|
}
|
|
20
|
+
|
|
20
21
|
/**
|
|
21
22
|
* Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`
|
|
22
23
|
*/
|
|
23
|
-
|
|
24
24
|
export function getParentNode(node) {
|
|
25
25
|
return isNodeShadowRoot(node) ? node.host : node.parentNode;
|
|
26
|
-
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=htmlDomUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"htmlDomUtils.js","names":["isTextNode","node","nodeType","Node","TEXT_NODE","isCommentNode","COMMENT_NODE","isElementNode","ELEMENT_NODE","isNodeShadowHost","Boolean","shadowRoot","isNodeShadowRoot","host","DOCUMENT_FRAGMENT_NODE","getChildNodes","childNodes","getParentNode","parentNode"],"sources":["../../src/browser/htmlDomUtils.js"],"sourcesContent":["export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE\n}\n\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE\n}\n\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE\n}\n\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot)\n}\n\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node\n return (\n !!shadowRoot.host &&\n shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&\n isElementNode(shadowRoot.host)\n )\n}\n\nexport function getChildNodes(node) {\n return isNodeShadowHost(node) ? node.shadowRoot.childNodes : node.childNodes\n}\n\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode\n}\n"],"mappings":"AAAA,OAAO,SAASA,UAAUA,CAACC,IAAI,EAAE;EAC/B,OAAOA,IAAI,CAACC,QAAQ,KAAKC,IAAI,CAACC,SAAS;AACzC;AAEA,OAAO,SAASC,aAAaA,CAACJ,IAAI,EAAE;EAClC,OAAOA,IAAI,CAACC,QAAQ,KAAKC,IAAI,CAACG,YAAY;AAC5C;AAEA,OAAO,SAASC,aAAaA,CAACN,IAAI,EAAE;EAClC,OAAOA,IAAI,CAACC,QAAQ,KAAKC,IAAI,CAACK,YAAY;AAC5C;AAEA,OAAO,SAASC,gBAAgBA,CAACR,IAAI,EAAE;EACrC,OAAOM,aAAa,CAACN,IAAI,CAAC,IAAIS,OAAO,CAACT,IAAI,CAACU,UAAU,CAAC;AACxD;AAEA,OAAO,SAASC,gBAAgBA,CAACX,IAAI,EAAE;EACrC,IAAIU,UAAU,GAAGV,IAAI;EACrB,OACE,CAAC,CAACU,UAAU,CAACE,IAAI,IACjBF,UAAU,CAACT,QAAQ,KAAKC,IAAI,CAACW,sBAAsB,IACnDP,aAAa,CAACI,UAAU,CAACE,IAAI,CAAC;AAElC;AAEA,OAAO,SAASE,aAAaA,CAACd,IAAI,EAAE;EAClC,OAAOQ,gBAAgB,CAACR,IAAI,CAAC,GAAGA,IAAI,CAACU,UAAU,CAACK,UAAU,GAAGf,IAAI,CAACe,UAAU;AAC9E;;AAEA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAChB,IAAI,EAAE;EAClC,OAAOW,gBAAgB,CAACX,IAAI,CAAC,GAAGA,IAAI,CAACY,IAAI,GAAGZ,IAAI,CAACiB,UAAU;AAC7D"}
|
|
@@ -35,12 +35,12 @@ export function createPageExitObservable() {
|
|
|
35
35
|
}, {
|
|
36
36
|
capture: true
|
|
37
37
|
});
|
|
38
|
+
|
|
38
39
|
/**
|
|
39
40
|
* Safari does not support yet to send a request during:
|
|
40
41
|
* - a visibility change during doc unload (cf: https://bugs.webkit.org/show_bug.cgi?id=194897)
|
|
41
42
|
* - a page hide transition (cf: https://bugs.webkit.org/show_bug.cgi?id=188329)
|
|
42
43
|
*/
|
|
43
|
-
|
|
44
44
|
var beforeUnloadListener = addEventListener(window, DOM_EVENT.BEFORE_UNLOAD, function () {
|
|
45
45
|
observable.notify({
|
|
46
46
|
reason: PageExitReason.UNLOADING
|
|
@@ -55,4 +55,5 @@ export function createPageExitObservable() {
|
|
|
55
55
|
}
|
|
56
56
|
export function isPageExitReason(reason) {
|
|
57
57
|
return includes(values(PageExitReason), reason);
|
|
58
|
-
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=pageExitObservable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageExitObservable.js","names":["Observable","includes","values","DOM_EVENT","addEventListener","addEventListeners","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","createPageExitObservable","observable","visibilityChangeListener","document","VISIBILITY_CHANGE","FREEZE","PAGE_HIDE","event","type","visibilityState","notify","reason","capture","beforeUnloadListener","window","BEFORE_UNLOAD","stop","isPageExitReason"],"sources":["../../src/browser/pageExitObservable.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { includes, values } from '../helper/tools'\nimport { DOM_EVENT } from '../helper/enums'\nimport {\n addEventListener,\n addEventListeners\n} from '../browser/addEventListener'\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen'\n}\n\nexport function createPageExitObservable() {\n var observable = new Observable(function () {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n var visibilityChangeListener = addEventListeners(\n document,\n [DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE, DOM_EVENT.PAGE_HIDE],\n function (event) {\n if (\n event.type === DOM_EVENT.VISIBILITY_CHANGE &&\n document.visibilityState === 'hidden'\n ) {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN })\n } else if (event.type === DOM_EVENT.FREEZE) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN })\n }\n },\n { capture: true }\n )\n\n /**\n * Safari does not support yet to send a request during:\n * - a visibility change during doc unload (cf: https://bugs.webkit.org/show_bug.cgi?id=194897)\n * - a page hide transition (cf: https://bugs.webkit.org/show_bug.cgi?id=188329)\n */\n var beforeUnloadListener = addEventListener(\n window,\n DOM_EVENT.BEFORE_UNLOAD,\n function () {\n observable.notify({ reason: PageExitReason.UNLOADING })\n }\n )\n\n return function () {\n visibilityChangeListener.stop()\n beforeUnloadListener.stop()\n }\n })\n\n return observable\n}\n\nexport function isPageExitReason(reason) {\n return includes(values(PageExitReason), reason)\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,sBAAsB;AACjD,SAASC,QAAQ,EAAEC,MAAM,QAAQ,iBAAiB;AAClD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SACEC,gBAAgB,EAChBC,iBAAiB,QACZ,6BAA6B;AACpC,OAAO,IAAIC,cAAc,GAAG;EAC1BC,MAAM,EAAE,mBAAmB;EAC3BC,SAAS,EAAE,eAAe;EAC1BC,QAAQ,EAAE,WAAW;EACrBC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,SAASC,wBAAwBA,CAAA,EAAG;EACzC,IAAIC,UAAU,GAAG,IAAIZ,UAAU,CAAC,YAAY;IAC1C;AACJ;AACA;AACA;IACI,IAAIa,wBAAwB,GAAGR,iBAAiB,CAC9CS,QAAQ,EACR,CAACX,SAAS,CAACY,iBAAiB,EAAEZ,SAAS,CAACa,MAAM,EAAEb,SAAS,CAACc,SAAS,CAAC,EACpE,UAAUC,KAAK,EAAE;MACf,IACEA,KAAK,CAACC,IAAI,KAAKhB,SAAS,CAACY,iBAAiB,IAC1CD,QAAQ,CAACM,eAAe,KAAK,QAAQ,EACrC;QACA;AACV;AACA;AACA;QACUR,UAAU,CAACS,MAAM,CAAC;UAAEC,MAAM,EAAEhB,cAAc,CAACC;QAAO,CAAC,CAAC;MACtD,CAAC,MAAM,IAAIW,KAAK,CAACC,IAAI,KAAKhB,SAAS,CAACa,MAAM,EAAE;QAC1C;AACV;AACA;AACA;QACUJ,UAAU,CAACS,MAAM,CAAC;UAAEC,MAAM,EAAEhB,cAAc,CAACI;QAAO,CAAC,CAAC;MACtD;IACF,CAAC,EACD;MAAEa,OAAO,EAAE;IAAK,CAClB,CAAC;;IAED;AACJ;AACA;AACA;AACA;IACI,IAAIC,oBAAoB,GAAGpB,gBAAgB,CACzCqB,MAAM,EACNtB,SAAS,CAACuB,aAAa,EACvB,YAAY;MACVd,UAAU,CAACS,MAAM,CAAC;QAAEC,MAAM,EAAEhB,cAAc,CAACE;MAAU,CAAC,CAAC;IACzD,CACF,CAAC;IAED,OAAO,YAAY;MACjBK,wBAAwB,CAACc,IAAI,CAAC,CAAC;MAC/BH,oBAAoB,CAACG,IAAI,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;EAEF,OAAOf,UAAU;AACnB;AAEA,OAAO,SAASgB,gBAAgBA,CAACN,MAAM,EAAE;EACvC,OAAOrB,QAAQ,CAACC,MAAM,CAACI,cAAc,CAAC,EAAEgB,MAAM,CAAC;AACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runOnReadyState.js","names":["addEventListener","DOM_EVENT","runOnReadyState","expectedReadyState","callback","document","readyState","eventName","LOAD","DOM_CONTENT_LOADED","window","once"],"sources":["../../src/browser/runOnReadyState.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nexport function runOnReadyState(expectedReadyState, callback) {\n if (\n document.readyState === expectedReadyState ||\n document.readyState === 'complete'\n ) {\n callback()\n } else {\n var eventName =\n expectedReadyState === 'complete'\n ? DOM_EVENT.LOAD\n : DOM_EVENT.DOM_CONTENT_LOADED\n addEventListener(window, eventName, callback, { once: true })\n }\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,OAAO,SAASC,eAAeA,CAACC,kBAAkB,EAAEC,QAAQ,EAAE;EAC5D,IACEC,QAAQ,CAACC,UAAU,KAAKH,kBAAkB,IAC1CE,QAAQ,CAACC,UAAU,KAAK,UAAU,EAClC;IACAF,QAAQ,CAAC,CAAC;EACZ,CAAC,MAAM;IACL,IAAIG,SAAS,GACXJ,kBAAkB,KAAK,UAAU,GAC7BF,SAAS,CAACO,IAAI,GACdP,SAAS,CAACQ,kBAAkB;IAClCT,gBAAgB,CAACU,MAAM,EAAEH,SAAS,EAAEH,QAAQ,EAAE;MAAEO,IAAI,EAAE;IAAK,CAAC,CAAC;EAC/D;AACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function getScrollX() {
|
|
2
|
+
var scrollX;
|
|
3
|
+
var visual = window.visualViewport;
|
|
4
|
+
if (visual) {
|
|
5
|
+
scrollX = visual.pageLeft - visual.offsetLeft;
|
|
6
|
+
} else if (window.scrollX !== undefined) {
|
|
7
|
+
scrollX = window.scrollX;
|
|
8
|
+
} else {
|
|
9
|
+
scrollX = window.pageXOffset || 0;
|
|
10
|
+
}
|
|
11
|
+
return Math.round(scrollX);
|
|
12
|
+
}
|
|
13
|
+
export function getScrollY() {
|
|
14
|
+
var scrollY;
|
|
15
|
+
var visual = window.visualViewport;
|
|
16
|
+
if (visual) {
|
|
17
|
+
scrollY = visual.pageTop - visual.offsetTop;
|
|
18
|
+
} else if (window.scrollY !== undefined) {
|
|
19
|
+
scrollY = window.scrollY;
|
|
20
|
+
} else {
|
|
21
|
+
scrollY = window.pageYOffset || 0;
|
|
22
|
+
}
|
|
23
|
+
return Math.round(scrollY);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=scroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.js","names":["getScrollX","scrollX","visual","window","visualViewport","pageLeft","offsetLeft","undefined","pageXOffset","Math","round","getScrollY","scrollY","pageTop","offsetTop","pageYOffset"],"sources":["../../src/browser/scroll.js"],"sourcesContent":["export function getScrollX() {\n var scrollX\n var visual = window.visualViewport\n if (visual) {\n scrollX = visual.pageLeft - visual.offsetLeft\n } else if (window.scrollX !== undefined) {\n scrollX = window.scrollX\n } else {\n scrollX = window.pageXOffset || 0\n }\n return Math.round(scrollX)\n}\n\nexport function getScrollY() {\n var scrollY\n var visual = window.visualViewport\n if (visual) {\n scrollY = visual.pageTop - visual.offsetTop\n } else if (window.scrollY !== undefined) {\n scrollY = window.scrollY\n } else {\n scrollY = window.pageYOffset || 0\n }\n return Math.round(scrollY)\n}\n"],"mappings":"AAAA,OAAO,SAASA,UAAUA,CAAA,EAAG;EAC3B,IAAIC,OAAO;EACX,IAAIC,MAAM,GAAGC,MAAM,CAACC,cAAc;EAClC,IAAIF,MAAM,EAAE;IACVD,OAAO,GAAGC,MAAM,CAACG,QAAQ,GAAGH,MAAM,CAACI,UAAU;EAC/C,CAAC,MAAM,IAAIH,MAAM,CAACF,OAAO,KAAKM,SAAS,EAAE;IACvCN,OAAO,GAAGE,MAAM,CAACF,OAAO;EAC1B,CAAC,MAAM;IACLA,OAAO,GAAGE,MAAM,CAACK,WAAW,IAAI,CAAC;EACnC;EACA,OAAOC,IAAI,CAACC,KAAK,CAACT,OAAO,CAAC;AAC5B;AAEA,OAAO,SAASU,UAAUA,CAAA,EAAG;EAC3B,IAAIC,OAAO;EACX,IAAIV,MAAM,GAAGC,MAAM,CAACC,cAAc;EAClC,IAAIF,MAAM,EAAE;IACVU,OAAO,GAAGV,MAAM,CAACW,OAAO,GAAGX,MAAM,CAACY,SAAS;EAC7C,CAAC,MAAM,IAAIX,MAAM,CAACS,OAAO,KAAKL,SAAS,EAAE;IACvCK,OAAO,GAAGT,MAAM,CAACS,OAAO;EAC1B,CAAC,MAAM;IACLA,OAAO,GAAGT,MAAM,CAACY,WAAW,IAAI,CAAC;EACnC;EACA,OAAON,IAAI,CAACC,KAAK,CAACE,OAAO,CAAC;AAC5B"}
|
|
@@ -10,10 +10,8 @@ export function initXhrObservable() {
|
|
|
10
10
|
if (!xhrObservable) {
|
|
11
11
|
xhrObservable = createXhrObservable();
|
|
12
12
|
}
|
|
13
|
-
|
|
14
13
|
return xhrObservable;
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
function createXhrObservable() {
|
|
18
16
|
var observable = new Observable(function () {
|
|
19
17
|
var openInstrumentMethod = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {
|
|
@@ -35,7 +33,6 @@ function createXhrObservable() {
|
|
|
35
33
|
});
|
|
36
34
|
return observable;
|
|
37
35
|
}
|
|
38
|
-
|
|
39
36
|
function openXhr(method, url) {
|
|
40
37
|
var requestUUID = this[DATA_FLUX_REQUEST_ID_KEY] || UUID();
|
|
41
38
|
this[DATA_FLUX_REQUEST_ID_KEY] = requestUUID;
|
|
@@ -45,14 +42,11 @@ function openXhr(method, url) {
|
|
|
45
42
|
url: normalizeUrl(String(url))
|
|
46
43
|
};
|
|
47
44
|
}
|
|
48
|
-
|
|
49
45
|
function sendXhr(observable) {
|
|
50
46
|
var context = xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]];
|
|
51
|
-
|
|
52
47
|
if (!context) {
|
|
53
48
|
return;
|
|
54
49
|
}
|
|
55
|
-
|
|
56
50
|
var startContext = context;
|
|
57
51
|
startContext.state = 'start';
|
|
58
52
|
startContext.startTime = relativeNow();
|
|
@@ -71,15 +65,12 @@ function sendXhr(observable) {
|
|
|
71
65
|
}
|
|
72
66
|
}
|
|
73
67
|
}).stop;
|
|
74
|
-
|
|
75
68
|
var onEnd = function onEnd() {
|
|
76
69
|
unsubscribeLoadEndListener();
|
|
77
70
|
stopInstrumentingOnReadyStateChange();
|
|
78
|
-
|
|
79
71
|
if (hasBeenReported) {
|
|
80
72
|
return;
|
|
81
73
|
}
|
|
82
|
-
|
|
83
74
|
hasBeenReported = true;
|
|
84
75
|
var completeContext = context;
|
|
85
76
|
completeContext.state = 'complete';
|
|
@@ -88,20 +79,17 @@ function sendXhr(observable) {
|
|
|
88
79
|
observable.notify(shallowClone(completeContext));
|
|
89
80
|
clearRequestId.call(this);
|
|
90
81
|
};
|
|
91
|
-
|
|
92
82
|
var unsubscribeLoadEndListener = addEventListener(this, 'loadend', onEnd).stop;
|
|
93
83
|
observable.notify(startContext);
|
|
94
84
|
}
|
|
95
|
-
|
|
96
85
|
function clearRequestId() {
|
|
97
86
|
delete xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]];
|
|
98
87
|
delete this[DATA_FLUX_REQUEST_ID_KEY];
|
|
99
88
|
}
|
|
100
|
-
|
|
101
89
|
function abortXhr() {
|
|
102
90
|
var context = xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]];
|
|
103
|
-
|
|
104
91
|
if (context) {
|
|
105
92
|
context.isAborted = true;
|
|
106
93
|
}
|
|
107
|
-
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=xhrObservable.js.map
|