@sailfish-ai/recorder 1.8.7 → 1.8.9
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/README.md +2 -0
- package/dist/index.js +15 -1
- package/dist/recorder.cjs +808 -770
- package/dist/recorder.js +810 -772
- package/dist/recorder.js.br +0 -0
- package/dist/recorder.js.gz +0 -0
- package/dist/recorder.umd.cjs +808 -770
- package/dist/websocket.js +131 -15
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -403,6 +403,11 @@ function setupXMLHttpRequestInterceptor(domainsToNotPropagateHeaderTo = []) {
|
|
|
403
403
|
let finished = false;
|
|
404
404
|
const requestBody = args[0]; // Capture the request body/payload
|
|
405
405
|
const requestHeaders = { ...this._capturedRequestHeaders }; // Capture request headers
|
|
406
|
+
// Filter out internal Sailfish headers from the captured headers
|
|
407
|
+
delete requestHeaders[xSf3RidHeader];
|
|
408
|
+
if (funcSpanHeader) {
|
|
409
|
+
delete requestHeaders[funcSpanHeader.name];
|
|
410
|
+
}
|
|
406
411
|
// 4️⃣ Helper to emit networkRequestFinished
|
|
407
412
|
const emitFinished = (success, status, errorMsg, responseData, responseHeaders) => {
|
|
408
413
|
if (finished)
|
|
@@ -521,7 +526,8 @@ function setupFetchInterceptor(domainsToNotPropagateHeadersTo = []) {
|
|
|
521
526
|
if (!sessionId) {
|
|
522
527
|
return target.apply(thisArg, args);
|
|
523
528
|
}
|
|
524
|
-
|
|
529
|
+
// Generate a fresh UUID for this request attempt
|
|
530
|
+
let networkUUID = uuidv4();
|
|
525
531
|
const urlAndStoredUuids = getUrlAndStoredUuids();
|
|
526
532
|
const method = init.method || "GET";
|
|
527
533
|
const startTime = Date.now();
|
|
@@ -569,12 +575,20 @@ function setupFetchInterceptor(domainsToNotPropagateHeadersTo = []) {
|
|
|
569
575
|
console.warn("[Sailfish] Failed to capture request data:", e);
|
|
570
576
|
}
|
|
571
577
|
}
|
|
578
|
+
// Filter out internal Sailfish headers from captured headers
|
|
579
|
+
delete requestHeaders[xSf3RidHeader];
|
|
580
|
+
const funcSpanHeaderName = getFuncSpanHeader()?.name;
|
|
581
|
+
if (funcSpanHeaderName) {
|
|
582
|
+
delete requestHeaders[funcSpanHeaderName];
|
|
583
|
+
}
|
|
572
584
|
try {
|
|
573
585
|
let response = await injectHeader(target, thisArg, input, init, sessionId, urlAndStoredUuids.page_visit_uuid, networkUUID);
|
|
574
586
|
let isRetry = false;
|
|
575
587
|
// Retry logic for 400/403 before logging finished event
|
|
576
588
|
if (BAD_HTTP_STATUS.includes(response.status)) {
|
|
577
589
|
DEBUG && console.log("Perform retry as status was fail:", response);
|
|
590
|
+
// Generate a NEW UUID for the retry request so each request has a unique ID
|
|
591
|
+
networkUUID = uuidv4();
|
|
578
592
|
response = await retryWithoutPropagateHeaders(target, thisArg, args, url);
|
|
579
593
|
isRetry = true;
|
|
580
594
|
}
|