@leanbase.com/js 0.2.2-alpha.0 → 0.2.2
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/dist/leanbase.d.ts +0 -3
- package/dist/leanbase.iife.js +1 -1
- package/dist/leanbase.iife.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/module.d.ts +0 -708
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +0 -135
- package/dist/version.d.ts +1 -1
- package/lib/leanbase.d.ts +0 -3
- package/lib/leanbase.js +0 -25
- package/lib/leanbase.js.map +1 -1
- package/lib/types.d.ts +0 -135
- package/lib/types.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +1 -6
- package/dist/extensions/replay/external/config.d.ts +0 -9
- package/dist/extensions/replay/external/denylist.d.ts +0 -5
- package/dist/extensions/replay/external/lazy-loaded-session-recorder.d.ts +0 -153
- package/dist/extensions/replay/external/mutation-throttler.d.ts +0 -20
- package/dist/extensions/replay/external/network-plugin.d.ts +0 -15
- package/dist/extensions/replay/external/sessionrecording-utils.d.ts +0 -19
- package/dist/extensions/replay/external/triggerMatching.d.ts +0 -102
- package/dist/extensions/replay/rrweb-plugins/patch.d.ts +0 -3
- package/dist/extensions/replay/session-recording.d.ts +0 -75
- package/dist/extensions/replay/types/rrweb-types.d.ts +0 -439
- package/dist/extensions/replay/types/rrweb.d.ts +0 -82
- package/dist/extensions/sampling.d.ts +0 -4
- package/dist/utils/logger.d.ts +0 -10
- package/lib/extensions/replay/external/config.d.ts +0 -9
- package/lib/extensions/replay/external/config.js +0 -221
- package/lib/extensions/replay/external/config.js.map +0 -1
- package/lib/extensions/replay/external/denylist.d.ts +0 -5
- package/lib/extensions/replay/external/denylist.js +0 -28
- package/lib/extensions/replay/external/denylist.js.map +0 -1
- package/lib/extensions/replay/external/lazy-loaded-session-recorder.d.ts +0 -153
- package/lib/extensions/replay/external/lazy-loaded-session-recorder.js +0 -1042
- package/lib/extensions/replay/external/lazy-loaded-session-recorder.js.map +0 -1
- package/lib/extensions/replay/external/mutation-throttler.d.ts +0 -20
- package/lib/extensions/replay/external/mutation-throttler.js +0 -77
- package/lib/extensions/replay/external/mutation-throttler.js.map +0 -1
- package/lib/extensions/replay/external/network-plugin.d.ts +0 -15
- package/lib/extensions/replay/external/network-plugin.js +0 -503
- package/lib/extensions/replay/external/network-plugin.js.map +0 -1
- package/lib/extensions/replay/external/sessionrecording-utils.d.ts +0 -19
- package/lib/extensions/replay/external/sessionrecording-utils.js +0 -125
- package/lib/extensions/replay/external/sessionrecording-utils.js.map +0 -1
- package/lib/extensions/replay/external/triggerMatching.d.ts +0 -102
- package/lib/extensions/replay/external/triggerMatching.js +0 -342
- package/lib/extensions/replay/external/triggerMatching.js.map +0 -1
- package/lib/extensions/replay/rrweb-plugins/patch.d.ts +0 -3
- package/lib/extensions/replay/rrweb-plugins/patch.js +0 -32
- package/lib/extensions/replay/rrweb-plugins/patch.js.map +0 -1
- package/lib/extensions/replay/session-recording.d.ts +0 -75
- package/lib/extensions/replay/session-recording.js +0 -279
- package/lib/extensions/replay/session-recording.js.map +0 -1
- package/lib/extensions/replay/types/rrweb-types.d.ts +0 -439
- package/lib/extensions/replay/types/rrweb-types.js +0 -83
- package/lib/extensions/replay/types/rrweb-types.js.map +0 -1
- package/lib/extensions/replay/types/rrweb.d.ts +0 -82
- package/lib/extensions/replay/types/rrweb.js +0 -9
- package/lib/extensions/replay/types/rrweb.js.map +0 -1
- package/lib/extensions/sampling.d.ts +0 -4
- package/lib/extensions/sampling.js +0 -23
- package/lib/extensions/sampling.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -10
- package/lib/utils/logger.js +0 -15
- package/lib/utils/logger.js.map +0 -1
|
@@ -1,503 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
import { isArray, isBoolean, isFormData, isNull, isNullish, isString, isUndefined, isObject } from '@posthog/core';
|
|
3
|
-
import { createLogger } from '../../../utils/logger';
|
|
4
|
-
import { formDataToQuery } from '../../../utils/request-utils';
|
|
5
|
-
import { patch } from '../rrweb-plugins/patch';
|
|
6
|
-
import { isHostOnDenyList } from '../../../extensions/replay/external/denylist';
|
|
7
|
-
import { defaultNetworkOptions } from './config';
|
|
8
|
-
const logger = createLogger('[Recorder]');
|
|
9
|
-
const isNavigationTiming = (entry) => entry.entryType === 'navigation';
|
|
10
|
-
const isResourceTiming = (entry) => entry.entryType === 'resource';
|
|
11
|
-
export function findLast(array, predicate) {
|
|
12
|
-
const length = array.length;
|
|
13
|
-
for (let i = length - 1; i >= 0; i -= 1) {
|
|
14
|
-
if (predicate(array[i])) {
|
|
15
|
-
return array[i];
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
function isDocument(value) {
|
|
21
|
-
return !!value && typeof value === 'object' && 'nodeType' in value && value.nodeType === 9;
|
|
22
|
-
}
|
|
23
|
-
function initPerformanceObserver(cb, win, options) {
|
|
24
|
-
// if we are only observing timings then we could have a single observer for all types, with buffer true,
|
|
25
|
-
// but we are going to filter by initiatorType _if we are wrapping fetch and xhr as the wrapped functions
|
|
26
|
-
// will deal with those.
|
|
27
|
-
// so we have a block which captures requests from before fetch/xhr is wrapped
|
|
28
|
-
// these are marked `isInitial` so playback can display them differently if needed
|
|
29
|
-
// they will never have method/status/headers/body because they are pre-wrapping that provides that
|
|
30
|
-
if (options.recordInitialRequests) {
|
|
31
|
-
const initialPerformanceEntries = win.performance
|
|
32
|
-
.getEntries()
|
|
33
|
-
.filter((entry) => isNavigationTiming(entry) ||
|
|
34
|
-
(isResourceTiming(entry) && options.initiatorTypes.includes(entry.initiatorType)));
|
|
35
|
-
cb({
|
|
36
|
-
requests: initialPerformanceEntries.flatMap((entry) => prepareRequest({ entry, method: undefined, status: undefined, networkRequest: {}, isInitial: true })),
|
|
37
|
-
isInitial: true,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
const observer = new win.PerformanceObserver((entries) => {
|
|
41
|
-
// if recordBody or recordHeaders is true then we don't want to record fetch or xhr here
|
|
42
|
-
// as the wrapped functions will do that. Otherwise, this filter becomes a noop
|
|
43
|
-
// because we do want to record them here
|
|
44
|
-
const wrappedInitiatorFilter = (entry) => options.recordBody || options.recordHeaders
|
|
45
|
-
? entry.initiatorType !== 'xmlhttprequest' && entry.initiatorType !== 'fetch'
|
|
46
|
-
: true;
|
|
47
|
-
const performanceEntries = entries.getEntries().filter((entry) => isNavigationTiming(entry) ||
|
|
48
|
-
(isResourceTiming(entry) &&
|
|
49
|
-
options.initiatorTypes.includes(entry.initiatorType) &&
|
|
50
|
-
// TODO if we are _only_ capturing timing we don't want to filter initiator here
|
|
51
|
-
wrappedInitiatorFilter(entry)));
|
|
52
|
-
cb({
|
|
53
|
-
requests: performanceEntries.flatMap((entry) => prepareRequest({ entry, method: undefined, status: undefined, networkRequest: {} })),
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
// compat checked earlier
|
|
57
|
-
// eslint-disable-next-line compat/compat
|
|
58
|
-
const entryTypes = PerformanceObserver.supportedEntryTypes.filter((x) => options.performanceEntryTypeToObserve.includes(x));
|
|
59
|
-
// initial records are gathered above, so we don't need to observe and buffer each type separately
|
|
60
|
-
observer.observe({ entryTypes });
|
|
61
|
-
return () => {
|
|
62
|
-
observer.disconnect();
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
function shouldRecordHeaders(type, recordHeaders) {
|
|
66
|
-
return !!recordHeaders && (isBoolean(recordHeaders) || recordHeaders[type]);
|
|
67
|
-
}
|
|
68
|
-
export function shouldRecordBody({ type, recordBody, headers, url, }) {
|
|
69
|
-
function matchesContentType(contentTypes) {
|
|
70
|
-
const contentTypeHeader = Object.keys(headers).find((key) => key.toLowerCase() === 'content-type');
|
|
71
|
-
const contentType = contentTypeHeader && headers[contentTypeHeader];
|
|
72
|
-
return contentTypes.some((ct) => contentType?.includes(ct));
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* particularly in canvas applications we see many requests to blob URLs
|
|
76
|
-
* e.g. blob:https://video_url
|
|
77
|
-
* these blob/object URLs are local to the browser, we can never capture that body
|
|
78
|
-
* so we can just return false here
|
|
79
|
-
*/
|
|
80
|
-
function isBlobURL(url) {
|
|
81
|
-
try {
|
|
82
|
-
if (typeof url === 'string') {
|
|
83
|
-
return url.startsWith('blob:');
|
|
84
|
-
}
|
|
85
|
-
if (url instanceof URL) {
|
|
86
|
-
return url.protocol === 'blob:';
|
|
87
|
-
}
|
|
88
|
-
if (url instanceof Request) {
|
|
89
|
-
return isBlobURL(url.url);
|
|
90
|
-
}
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
catch {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (!recordBody)
|
|
98
|
-
return false;
|
|
99
|
-
if (isBlobURL(url))
|
|
100
|
-
return false;
|
|
101
|
-
if (isBoolean(recordBody))
|
|
102
|
-
return true;
|
|
103
|
-
if (isArray(recordBody))
|
|
104
|
-
return matchesContentType(recordBody);
|
|
105
|
-
const recordBodyType = recordBody[type];
|
|
106
|
-
if (isBoolean(recordBodyType))
|
|
107
|
-
return recordBodyType;
|
|
108
|
-
return matchesContentType(recordBodyType);
|
|
109
|
-
}
|
|
110
|
-
async function getRequestPerformanceEntry(win, initiatorType, url, start, end, attempt = 0) {
|
|
111
|
-
if (attempt > 10) {
|
|
112
|
-
logger.warn('Failed to get performance entry for request', { url, initiatorType });
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
const urlPerformanceEntries = win.performance.getEntriesByName(url);
|
|
116
|
-
const performanceEntry = findLast(urlPerformanceEntries, (entry) => isResourceTiming(entry) &&
|
|
117
|
-
entry.initiatorType === initiatorType &&
|
|
118
|
-
(isUndefined(start) || entry.startTime >= start) &&
|
|
119
|
-
(isUndefined(end) || entry.startTime <= end));
|
|
120
|
-
if (!performanceEntry) {
|
|
121
|
-
await new Promise((resolve) => setTimeout(resolve, 50 * attempt));
|
|
122
|
-
return getRequestPerformanceEntry(win, initiatorType, url, start, end, attempt + 1);
|
|
123
|
-
}
|
|
124
|
-
return performanceEntry;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* According to MDN https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/response
|
|
128
|
-
* xhr response is typed as any but can be an ArrayBuffer, a Blob, a Document, a JavaScript object,
|
|
129
|
-
* or a string, depending on the value of XMLHttpRequest.responseType, that contains the response entity body.
|
|
130
|
-
*
|
|
131
|
-
* XHR request body is Document | XMLHttpRequestBodyInit | null | undefined
|
|
132
|
-
*/
|
|
133
|
-
function _tryReadXHRBody({ body, options, url, }) {
|
|
134
|
-
if (isNullish(body)) {
|
|
135
|
-
return null;
|
|
136
|
-
}
|
|
137
|
-
const { hostname, isHostDenied } = isHostOnDenyList(url, options);
|
|
138
|
-
if (isHostDenied) {
|
|
139
|
-
return hostname + ' is in deny list';
|
|
140
|
-
}
|
|
141
|
-
if (isString(body)) {
|
|
142
|
-
return body;
|
|
143
|
-
}
|
|
144
|
-
if (isDocument(body)) {
|
|
145
|
-
return body.textContent;
|
|
146
|
-
}
|
|
147
|
-
if (isFormData(body)) {
|
|
148
|
-
return formDataToQuery(body);
|
|
149
|
-
}
|
|
150
|
-
if (isObject(body)) {
|
|
151
|
-
try {
|
|
152
|
-
return JSON.stringify(body);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
return '[SessionReplay] Failed to stringify response object';
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return '[SessionReplay] Cannot read body of type ' + toString.call(body);
|
|
159
|
-
}
|
|
160
|
-
function initXhrObserver(cb, win, options) {
|
|
161
|
-
if (!options.initiatorTypes.includes('xmlhttprequest')) {
|
|
162
|
-
return () => {
|
|
163
|
-
//
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
const recordRequestHeaders = shouldRecordHeaders('request', options.recordHeaders);
|
|
167
|
-
const recordResponseHeaders = shouldRecordHeaders('response', options.recordHeaders);
|
|
168
|
-
const restorePatch = patch(win.XMLHttpRequest.prototype, 'open',
|
|
169
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
170
|
-
// @ts-ignore
|
|
171
|
-
(originalOpen) => {
|
|
172
|
-
return function (method, url, async = true, username, password) {
|
|
173
|
-
// because this function is returned in its actual context `this` _is_ an XMLHttpRequest
|
|
174
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
175
|
-
// @ts-ignore
|
|
176
|
-
const xhr = this;
|
|
177
|
-
// check IE earlier than this, we only initialize if Request is present
|
|
178
|
-
// eslint-disable-next-line compat/compat
|
|
179
|
-
const req = new Request(url);
|
|
180
|
-
const networkRequest = {};
|
|
181
|
-
let start;
|
|
182
|
-
let end;
|
|
183
|
-
const requestHeaders = {};
|
|
184
|
-
const originalSetRequestHeader = xhr.setRequestHeader.bind(xhr);
|
|
185
|
-
xhr.setRequestHeader = (header, value) => {
|
|
186
|
-
requestHeaders[header] = value;
|
|
187
|
-
return originalSetRequestHeader(header, value);
|
|
188
|
-
};
|
|
189
|
-
if (recordRequestHeaders) {
|
|
190
|
-
networkRequest.requestHeaders = requestHeaders;
|
|
191
|
-
}
|
|
192
|
-
const originalSend = xhr.send.bind(xhr);
|
|
193
|
-
xhr.send = (body) => {
|
|
194
|
-
if (shouldRecordBody({
|
|
195
|
-
type: 'request',
|
|
196
|
-
headers: requestHeaders,
|
|
197
|
-
url,
|
|
198
|
-
recordBody: options.recordBody,
|
|
199
|
-
})) {
|
|
200
|
-
networkRequest.requestBody = _tryReadXHRBody({ body, options, url });
|
|
201
|
-
}
|
|
202
|
-
start = win.performance.now();
|
|
203
|
-
return originalSend(body);
|
|
204
|
-
};
|
|
205
|
-
const readyStateListener = () => {
|
|
206
|
-
if (xhr.readyState !== xhr.DONE) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
// Clean up the listener immediately when done to prevent memory leaks
|
|
210
|
-
xhr.removeEventListener('readystatechange', readyStateListener);
|
|
211
|
-
end = win.performance.now();
|
|
212
|
-
const responseHeaders = {};
|
|
213
|
-
const rawHeaders = xhr.getAllResponseHeaders();
|
|
214
|
-
const headers = rawHeaders.trim().split(/[\r\n]+/);
|
|
215
|
-
headers.forEach((line) => {
|
|
216
|
-
const parts = line.split(': ');
|
|
217
|
-
const header = parts.shift();
|
|
218
|
-
const value = parts.join(': ');
|
|
219
|
-
if (header) {
|
|
220
|
-
responseHeaders[header] = value;
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
if (recordResponseHeaders) {
|
|
224
|
-
networkRequest.responseHeaders = responseHeaders;
|
|
225
|
-
}
|
|
226
|
-
if (shouldRecordBody({
|
|
227
|
-
type: 'response',
|
|
228
|
-
headers: responseHeaders,
|
|
229
|
-
url,
|
|
230
|
-
recordBody: options.recordBody,
|
|
231
|
-
})) {
|
|
232
|
-
networkRequest.responseBody = _tryReadXHRBody({ body: xhr.response, options, url });
|
|
233
|
-
}
|
|
234
|
-
getRequestPerformanceEntry(win, 'xmlhttprequest', req.url, start, end)
|
|
235
|
-
.then((entry) => {
|
|
236
|
-
const requests = prepareRequest({
|
|
237
|
-
entry,
|
|
238
|
-
method: method,
|
|
239
|
-
status: xhr?.status,
|
|
240
|
-
networkRequest,
|
|
241
|
-
start,
|
|
242
|
-
end,
|
|
243
|
-
url: url.toString(),
|
|
244
|
-
initiatorType: 'xmlhttprequest',
|
|
245
|
-
});
|
|
246
|
-
cb({ requests });
|
|
247
|
-
})
|
|
248
|
-
.catch(() => {
|
|
249
|
-
//
|
|
250
|
-
});
|
|
251
|
-
};
|
|
252
|
-
// This is very tricky code, and making it passive won't bring many performance benefits,
|
|
253
|
-
// so let's ignore the rule here.
|
|
254
|
-
// eslint-disable-next-line posthog-js/no-add-event-listener
|
|
255
|
-
xhr.addEventListener('readystatechange', readyStateListener);
|
|
256
|
-
originalOpen.call(xhr, method, url, async, username, password);
|
|
257
|
-
};
|
|
258
|
-
});
|
|
259
|
-
return () => {
|
|
260
|
-
restorePatch();
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Check if this PerformanceEntry is either a PerformanceResourceTiming or a PerformanceNavigationTiming
|
|
265
|
-
* NB PerformanceNavigationTiming extends PerformanceResourceTiming
|
|
266
|
-
* Here we don't care which interface it implements as both expose `serverTimings`
|
|
267
|
-
*/
|
|
268
|
-
const exposesServerTiming = (event) => !isNull(event) && (event.entryType === 'navigation' || event.entryType === 'resource');
|
|
269
|
-
function prepareRequest({ entry, method, status, networkRequest, isInitial, start, end, url, initiatorType, }) {
|
|
270
|
-
start = entry ? entry.startTime : start;
|
|
271
|
-
end = entry ? entry.responseEnd : end;
|
|
272
|
-
// kudos to sentry javascript sdk for excellent background on why to use Date.now() here
|
|
273
|
-
// https://github.com/getsentry/sentry-javascript/blob/e856e40b6e71a73252e788cd42b5260f81c9c88e/packages/utils/src/time.ts#L70
|
|
274
|
-
// can't start observer if performance.now() is not available
|
|
275
|
-
// eslint-disable-next-line compat/compat
|
|
276
|
-
const timeOrigin = Math.floor(Date.now() - performance.now());
|
|
277
|
-
// clickhouse can't ingest timestamps that are floats
|
|
278
|
-
// (in this case representing fractions of a millisecond we don't care about anyway)
|
|
279
|
-
// use timeOrigin if we really can't gather a start time
|
|
280
|
-
const timestamp = Math.floor(timeOrigin + (start || 0));
|
|
281
|
-
const entryJSON = entry ? entry.toJSON() : { name: url };
|
|
282
|
-
const requests = [
|
|
283
|
-
{
|
|
284
|
-
...entryJSON,
|
|
285
|
-
startTime: isUndefined(start) ? undefined : Math.round(start),
|
|
286
|
-
endTime: isUndefined(end) ? undefined : Math.round(end),
|
|
287
|
-
timeOrigin,
|
|
288
|
-
timestamp,
|
|
289
|
-
method: method,
|
|
290
|
-
initiatorType: initiatorType ? initiatorType : entry ? entry.initiatorType : undefined,
|
|
291
|
-
status,
|
|
292
|
-
requestHeaders: networkRequest.requestHeaders,
|
|
293
|
-
requestBody: networkRequest.requestBody,
|
|
294
|
-
responseHeaders: networkRequest.responseHeaders,
|
|
295
|
-
responseBody: networkRequest.responseBody,
|
|
296
|
-
isInitial,
|
|
297
|
-
},
|
|
298
|
-
];
|
|
299
|
-
if (exposesServerTiming(entry)) {
|
|
300
|
-
for (const timing of entry.serverTiming || []) {
|
|
301
|
-
requests.push({
|
|
302
|
-
timeOrigin,
|
|
303
|
-
timestamp,
|
|
304
|
-
startTime: Math.round(entry.startTime),
|
|
305
|
-
name: timing.name,
|
|
306
|
-
duration: timing.duration,
|
|
307
|
-
// the spec has a closed list of possible types
|
|
308
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/entryType
|
|
309
|
-
// but, we need to know this was a server timing so that we know to
|
|
310
|
-
// match it to the appropriate navigation or resource timing
|
|
311
|
-
// that matching will have to be on timestamp and $current_url
|
|
312
|
-
entryType: 'serverTiming',
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
return requests;
|
|
317
|
-
}
|
|
318
|
-
const contentTypePrefixDenyList = ['video/', 'audio/'];
|
|
319
|
-
function _checkForCannotReadResponseBody({ r, options, url, }) {
|
|
320
|
-
if (r.headers.get('Transfer-Encoding') === 'chunked') {
|
|
321
|
-
return 'Chunked Transfer-Encoding is not supported';
|
|
322
|
-
}
|
|
323
|
-
// `get` and `has` are case-insensitive
|
|
324
|
-
// but return the header value with the casing that was supplied
|
|
325
|
-
const contentType = r.headers.get('Content-Type')?.toLowerCase();
|
|
326
|
-
const contentTypeIsDenied = contentTypePrefixDenyList.some((prefix) => contentType?.startsWith(prefix));
|
|
327
|
-
if (contentType && contentTypeIsDenied) {
|
|
328
|
-
return `Content-Type ${contentType} is not supported`;
|
|
329
|
-
}
|
|
330
|
-
const { hostname, isHostDenied } = isHostOnDenyList(url, options);
|
|
331
|
-
if (isHostDenied) {
|
|
332
|
-
return hostname + ' is in deny list';
|
|
333
|
-
}
|
|
334
|
-
return null;
|
|
335
|
-
}
|
|
336
|
-
function _tryReadBody(r) {
|
|
337
|
-
// there are now already multiple places where we're using Promise...
|
|
338
|
-
// eslint-disable-next-line compat/compat
|
|
339
|
-
return new Promise((resolve, reject) => {
|
|
340
|
-
const timeout = setTimeout(() => resolve('[SessionReplay] Timeout while trying to read body'), 500);
|
|
341
|
-
try {
|
|
342
|
-
r.clone()
|
|
343
|
-
.text()
|
|
344
|
-
.then((txt) => resolve(txt), (reason) => reject(reason))
|
|
345
|
-
.finally(() => clearTimeout(timeout));
|
|
346
|
-
}
|
|
347
|
-
catch {
|
|
348
|
-
clearTimeout(timeout);
|
|
349
|
-
resolve('[SessionReplay] Failed to read body');
|
|
350
|
-
}
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
async function _tryReadRequestBody({ r, options, url, }) {
|
|
354
|
-
const { hostname, isHostDenied } = isHostOnDenyList(url, options);
|
|
355
|
-
if (isHostDenied) {
|
|
356
|
-
return Promise.resolve(hostname + ' is in deny list');
|
|
357
|
-
}
|
|
358
|
-
return _tryReadBody(r);
|
|
359
|
-
}
|
|
360
|
-
async function _tryReadResponseBody({ r, options, url, }) {
|
|
361
|
-
const cannotReadBodyReason = _checkForCannotReadResponseBody({ r, options, url });
|
|
362
|
-
if (!isNull(cannotReadBodyReason)) {
|
|
363
|
-
return Promise.resolve(cannotReadBodyReason);
|
|
364
|
-
}
|
|
365
|
-
return _tryReadBody(r);
|
|
366
|
-
}
|
|
367
|
-
function initFetchObserver(cb, win, options) {
|
|
368
|
-
if (!options.initiatorTypes.includes('fetch')) {
|
|
369
|
-
return () => {
|
|
370
|
-
//
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
const recordRequestHeaders = shouldRecordHeaders('request', options.recordHeaders);
|
|
374
|
-
const recordResponseHeaders = shouldRecordHeaders('response', options.recordHeaders);
|
|
375
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
376
|
-
// @ts-ignore
|
|
377
|
-
const restorePatch = patch(win, 'fetch', (originalFetch) => {
|
|
378
|
-
return async function (url, init) {
|
|
379
|
-
// check IE earlier than this, we only initialize if Request is present
|
|
380
|
-
// eslint-disable-next-line compat/compat
|
|
381
|
-
const req = new Request(url, init);
|
|
382
|
-
let res;
|
|
383
|
-
const networkRequest = {};
|
|
384
|
-
let start;
|
|
385
|
-
let end;
|
|
386
|
-
try {
|
|
387
|
-
const requestHeaders = {};
|
|
388
|
-
req.headers.forEach((value, header) => {
|
|
389
|
-
requestHeaders[header] = value;
|
|
390
|
-
});
|
|
391
|
-
if (recordRequestHeaders) {
|
|
392
|
-
networkRequest.requestHeaders = requestHeaders;
|
|
393
|
-
}
|
|
394
|
-
if (shouldRecordBody({
|
|
395
|
-
type: 'request',
|
|
396
|
-
headers: requestHeaders,
|
|
397
|
-
url,
|
|
398
|
-
recordBody: options.recordBody,
|
|
399
|
-
})) {
|
|
400
|
-
networkRequest.requestBody = await _tryReadRequestBody({ r: req, options, url });
|
|
401
|
-
}
|
|
402
|
-
start = win.performance.now();
|
|
403
|
-
res = await originalFetch(req);
|
|
404
|
-
end = win.performance.now();
|
|
405
|
-
const responseHeaders = {};
|
|
406
|
-
res.headers.forEach((value, header) => {
|
|
407
|
-
responseHeaders[header] = value;
|
|
408
|
-
});
|
|
409
|
-
if (recordResponseHeaders) {
|
|
410
|
-
networkRequest.responseHeaders = responseHeaders;
|
|
411
|
-
}
|
|
412
|
-
if (shouldRecordBody({
|
|
413
|
-
type: 'response',
|
|
414
|
-
headers: responseHeaders,
|
|
415
|
-
url,
|
|
416
|
-
recordBody: options.recordBody,
|
|
417
|
-
})) {
|
|
418
|
-
networkRequest.responseBody = await _tryReadResponseBody({ r: res, options, url });
|
|
419
|
-
}
|
|
420
|
-
return res;
|
|
421
|
-
}
|
|
422
|
-
finally {
|
|
423
|
-
getRequestPerformanceEntry(win, 'fetch', req.url, start, end)
|
|
424
|
-
.then((entry) => {
|
|
425
|
-
const requests = prepareRequest({
|
|
426
|
-
entry,
|
|
427
|
-
method: req.method,
|
|
428
|
-
status: res?.status,
|
|
429
|
-
networkRequest,
|
|
430
|
-
start,
|
|
431
|
-
end,
|
|
432
|
-
url: req.url,
|
|
433
|
-
initiatorType: 'fetch',
|
|
434
|
-
});
|
|
435
|
-
cb({ requests });
|
|
436
|
-
})
|
|
437
|
-
.catch(() => {
|
|
438
|
-
//
|
|
439
|
-
});
|
|
440
|
-
}
|
|
441
|
-
};
|
|
442
|
-
});
|
|
443
|
-
return () => {
|
|
444
|
-
restorePatch();
|
|
445
|
-
};
|
|
446
|
-
}
|
|
447
|
-
let initialisedHandler = null;
|
|
448
|
-
function initNetworkObserver(callback, win, // top window or in an iframe
|
|
449
|
-
options) {
|
|
450
|
-
if (!('performance' in win)) {
|
|
451
|
-
return () => {
|
|
452
|
-
//
|
|
453
|
-
};
|
|
454
|
-
}
|
|
455
|
-
if (initialisedHandler) {
|
|
456
|
-
logger.warn('Network observer already initialised, doing nothing');
|
|
457
|
-
return () => {
|
|
458
|
-
// the first caller should already have this handler and will be responsible for teardown
|
|
459
|
-
};
|
|
460
|
-
}
|
|
461
|
-
const networkOptions = (options ? Object.assign({}, defaultNetworkOptions, options) : defaultNetworkOptions);
|
|
462
|
-
const cb = (data) => {
|
|
463
|
-
const requests = [];
|
|
464
|
-
data.requests.forEach((request) => {
|
|
465
|
-
const maskedRequest = networkOptions.maskRequestFn(request);
|
|
466
|
-
if (maskedRequest) {
|
|
467
|
-
requests.push(maskedRequest);
|
|
468
|
-
}
|
|
469
|
-
});
|
|
470
|
-
if (requests.length > 0) {
|
|
471
|
-
callback({ ...data, requests });
|
|
472
|
-
}
|
|
473
|
-
};
|
|
474
|
-
const performanceObserver = initPerformanceObserver(cb, win, networkOptions);
|
|
475
|
-
// only wrap fetch and xhr if headers or body are being recorded
|
|
476
|
-
let xhrObserver = () => { };
|
|
477
|
-
let fetchObserver = () => { };
|
|
478
|
-
if (networkOptions.recordHeaders || networkOptions.recordBody) {
|
|
479
|
-
xhrObserver = initXhrObserver(cb, win, networkOptions);
|
|
480
|
-
fetchObserver = initFetchObserver(cb, win, networkOptions);
|
|
481
|
-
}
|
|
482
|
-
initialisedHandler = () => {
|
|
483
|
-
performanceObserver();
|
|
484
|
-
xhrObserver();
|
|
485
|
-
fetchObserver();
|
|
486
|
-
};
|
|
487
|
-
return initialisedHandler;
|
|
488
|
-
}
|
|
489
|
-
// use the plugin name so that when this functionality is adopted into rrweb
|
|
490
|
-
// we can remove this plugin and use the core functionality with the same data
|
|
491
|
-
export const NETWORK_PLUGIN_NAME = 'rrweb/network@1';
|
|
492
|
-
// TODO how should this be typed?
|
|
493
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
494
|
-
// @ts-ignore
|
|
495
|
-
export const getRecordNetworkPlugin = (options) => {
|
|
496
|
-
return {
|
|
497
|
-
name: NETWORK_PLUGIN_NAME,
|
|
498
|
-
observer: initNetworkObserver,
|
|
499
|
-
options: options,
|
|
500
|
-
};
|
|
501
|
-
};
|
|
502
|
-
// rrweb/networ@1 ends
|
|
503
|
-
//# sourceMappingURL=network-plugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network-plugin.js","sourceRoot":"","sources":["../../../../src/extensions/replay/external/network-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { eventWithTime } from '../types/rrweb-types';
|
|
2
|
-
import { SnapshotBuffer } from './lazy-loaded-session-recorder';
|
|
3
|
-
export declare function circularReferenceReplacer(): (this: any, _key: string, value: any) => any;
|
|
4
|
-
export declare function estimateSize(sizeable: unknown): number;
|
|
5
|
-
export declare const replacementImageURI = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNOCAwSDE2TDAgMTZWOEw4IDBaIiBmaWxsPSIjMkQyRDJEIi8+CjxwYXRoIGQ9Ik0xNiA4VjE2SDhMMTYgOFoiIGZpbGw9IiMyRDJEMkQiLz4KPC9zdmc+Cg==";
|
|
6
|
-
export declare const FULL_SNAPSHOT_EVENT_TYPE = 2;
|
|
7
|
-
export declare const META_EVENT_TYPE = 4;
|
|
8
|
-
export declare const INCREMENTAL_SNAPSHOT_EVENT_TYPE = 3;
|
|
9
|
-
export declare const PLUGIN_EVENT_TYPE = 6;
|
|
10
|
-
export declare const MUTATION_SOURCE_TYPE = 0;
|
|
11
|
-
export declare const MAX_MESSAGE_SIZE = 5000000;
|
|
12
|
-
export declare function ensureMaxMessageSize(data: eventWithTime): {
|
|
13
|
-
event: eventWithTime;
|
|
14
|
-
size: number;
|
|
15
|
-
};
|
|
16
|
-
export declare const CONSOLE_LOG_PLUGIN_NAME = "rrweb/console@1";
|
|
17
|
-
export declare function truncateLargeConsoleLogs(_event: eventWithTime): eventWithTime;
|
|
18
|
-
export declare const SEVEN_MEGABYTES: number;
|
|
19
|
-
export declare function splitBuffer(buffer: SnapshotBuffer, sizeLimit?: number): SnapshotBuffer[];
|