@sailfish-ai/recorder 1.10.2 → 1.10.3
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/index.js +199 -31
- package/dist/recorder.cjs +499 -423
- package/dist/recorder.js +519 -443
- package/dist/recorder.js.br +0 -0
- package/dist/recorder.js.gz +0 -0
- package/dist/types/index.d.ts +9 -1
- package/package.json +1 -1
package/dist/recorder.js
CHANGED
|
@@ -34,7 +34,7 @@ function v4(e, u, w2) {
|
|
|
34
34
|
return (a[e2[u2 + 0]] + a[e2[u2 + 1]] + a[e2[u2 + 2]] + a[e2[u2 + 3]] + "-" + a[e2[u2 + 4]] + a[e2[u2 + 5]] + "-" + a[e2[u2 + 6]] + a[e2[u2 + 7]] + "-" + a[e2[u2 + 8]] + a[e2[u2 + 9]] + "-" + a[e2[u2 + 10]] + a[e2[u2 + 11]] + a[e2[u2 + 12]] + a[e2[u2 + 13]] + a[e2[u2 + 14]] + a[e2[u2 + 15]]).toLowerCase();
|
|
35
35
|
})(I2);
|
|
36
36
|
}
|
|
37
|
-
const I = "X-Sf3-Rid", M = 0, _ = 1, A = 2, F = 3, $ = 4,
|
|
37
|
+
const I = "X-Sf3-Rid", M = 0, _ = 1, A = 2, F = 3, $ = 4, B = [".js", ".mjs", ".cjs", ".ts", ".css", ".scss", ".sass", ".less", ".styl", ".stylus", ".png", ".jpg", ".jpeg", ".gif", ".svg", ".webp", ".avif", ".bmp", ".ico", ".tiff", ".tif", ".heic", ".woff", ".woff2", ".ttf", ".otf", ".eot", ".mp4", ".webm", ".ogv", ".mp3", ".wav", ".flac", ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".csv", ".json", ".xml", ".txt", ".zip", ".rar", ".gz", ".tar", ".7z", ".map", ".webmanifest"];
|
|
38
38
|
var extendStatics = function(e, a) {
|
|
39
39
|
return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e2, a2) {
|
|
40
40
|
e2.__proto__ = a2;
|
|
@@ -65,7 +65,7 @@ function __read(e, a) {
|
|
|
65
65
|
}
|
|
66
66
|
return M2;
|
|
67
67
|
}
|
|
68
|
-
var
|
|
68
|
+
var j = function Event2(e, a) {
|
|
69
69
|
this.target = a, this.type = e;
|
|
70
70
|
}, U = (function(e) {
|
|
71
71
|
function ErrorEvent(a, u) {
|
|
@@ -73,14 +73,14 @@ var B = function Event2(e, a) {
|
|
|
73
73
|
return w2.message = a.message, w2.error = a, w2;
|
|
74
74
|
}
|
|
75
75
|
return __extends(ErrorEvent, e), ErrorEvent;
|
|
76
|
-
})(
|
|
76
|
+
})(j), z = (function(e) {
|
|
77
77
|
function CloseEvent(a, u, w2) {
|
|
78
78
|
void 0 === a && (a = 1e3), void 0 === u && (u = "");
|
|
79
79
|
var x2 = e.call(this, "close", w2) || this;
|
|
80
80
|
return x2.wasClean = true, x2.code = a, x2.reason = u, x2;
|
|
81
81
|
}
|
|
82
82
|
return __extends(CloseEvent, e), CloseEvent;
|
|
83
|
-
})(
|
|
83
|
+
})(j), getGlobalWebSocket = function() {
|
|
84
84
|
if ("undefined" != typeof WebSocket) return WebSocket;
|
|
85
85
|
}, W = { maxReconnectionDelay: 1e4, minReconnectionDelay: 1e3 + 4e3 * Math.random(), minUptime: 5e3, reconnectionDelayGrowFactor: 1.3, connectionTimeout: 4e3, maxRetries: 1 / 0, maxEnqueuedMessages: 1 / 0 }, G = (function() {
|
|
86
86
|
function ReconnectingWebSocket(e, a, u) {
|
|
@@ -374,7 +374,7 @@ function withAppUrlMetadata(e) {
|
|
|
374
374
|
}
|
|
375
375
|
/[1-9][0-9]{12}/.test(Date.now().toString()) || (se = () => (/* @__PURE__ */ new Date()).getTime());
|
|
376
376
|
const le = readDebugFlag(), ce = "per_session";
|
|
377
|
-
let ue = null, pe = false, fe = null, me = null, ye = false,
|
|
377
|
+
let ue = null, pe = false, fe = null, me = null, ye = false, be = null, we = null, Se = false;
|
|
378
378
|
const ve = "sailfish_funcspan_global_state";
|
|
379
379
|
function saveGlobalFuncSpanState(e, a) {
|
|
380
380
|
try {
|
|
@@ -394,7 +394,7 @@ function clearGlobalFuncSpanState() {
|
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
396
|
function clearStaleFuncSpanState() {
|
|
397
|
-
ye = false,
|
|
397
|
+
ye = false, we = null, Se = false, clearGlobalFuncSpanState(), le && console.log("[Sailfish] Cleared stale function span tracking state (backend validation failed)");
|
|
398
398
|
}
|
|
399
399
|
function isWebSocketOpen(e) {
|
|
400
400
|
return (e == null ? void 0 : e.readyState) === WebSocket.OPEN;
|
|
@@ -465,7 +465,7 @@ function initializeWebSocket(e, a, u, w2) {
|
|
|
465
465
|
const a2 = document.createElement("a");
|
|
466
466
|
return a2.href = e2, `${a2.hostname}${a2.port ? `:${a2.port}` : ""}`;
|
|
467
467
|
})(e);
|
|
468
|
-
let I2 = `${"https:" === new URL(e).protocol ? "wss" : "ws"}://${x2}/ws/notify/?apiKey=${a}&sessionId=${u}&sender=JS%2FTS&version=1.10.
|
|
468
|
+
let I2 = `${"https:" === new URL(e).protocol ? "wss" : "ws"}://${x2}/ws/notify/?apiKey=${a}&sessionId=${u}&sender=JS%2FTS&version=1.10.3`;
|
|
469
469
|
w2 && (I2 += `&envValue=${encodeURIComponent(w2)}`);
|
|
470
470
|
return ue = new G(I2, [], { connectionTimeout: 3e4 }), ue.addEventListener("open", () => {
|
|
471
471
|
le && (console.log("[Sailfish] WebSocket connection opened"), console.log("[Sailfish] Function span tracking state: " + (ye ? "ENABLED" : "DISABLED"))), (async () => {
|
|
@@ -483,25 +483,25 @@ function initializeWebSocket(e, a, u, w2) {
|
|
|
483
483
|
}), ue.addEventListener("message", (e2) => {
|
|
484
484
|
try {
|
|
485
485
|
const a2 = JSON.parse(e2.data);
|
|
486
|
-
if ("funcSpanTrackingControl" === a2.type) if (le && console.log("[Sailfish] Received funcSpanTrackingControl message:", { enabled: a2.enabled, timeoutSeconds: a2.timeoutSeconds, expirationTimestampMs: a2.expirationTimestampMs }), null !==
|
|
486
|
+
if ("funcSpanTrackingControl" === a2.type) if (le && console.log("[Sailfish] Received funcSpanTrackingControl message:", { enabled: a2.enabled, timeoutSeconds: a2.timeoutSeconds, expirationTimestampMs: a2.expirationTimestampMs }), null !== be && (window.clearTimeout(be), be = null), ye = a2.enabled, Se = false, le && console.log("[Sailfish] Function span tracking " + (a2.enabled ? "ENABLED (GLOBAL)" : "DISABLED (GLOBAL)")), a2.enabled) {
|
|
487
487
|
if (a2.expirationTimestampMs) {
|
|
488
|
-
|
|
489
|
-
const e3 = Date.now(), u2 =
|
|
490
|
-
le && console.log(`[Sailfish] Server expiration timestamp: ${
|
|
488
|
+
we = a2.expirationTimestampMs;
|
|
489
|
+
const e3 = Date.now(), u2 = we - e3;
|
|
490
|
+
le && console.log(`[Sailfish] Server expiration timestamp: ${we}, ms until expiration: ${u2}`), u2 > 0 ? (saveGlobalFuncSpanState(true, we), be = window.setTimeout(() => {
|
|
491
491
|
if (!Se) {
|
|
492
|
-
ye = false,
|
|
492
|
+
ye = false, we = null, clearGlobalFuncSpanState(), le && console.log("[Sailfish] GLOBAL function span tracking auto-disabled at server expiration time");
|
|
493
493
|
try {
|
|
494
494
|
isWebSocketOpen(ue) && (ue.send(JSON.stringify({ type: "funcSpanTrackingExpired", sessionId: getOrSetSessionId(), expiredAt: Date.now() })), le && console.log("[Sailfish] Notified backend that function span tracking expired"));
|
|
495
495
|
} catch (e4) {
|
|
496
496
|
le && console.warn("[Sailfish] Failed to notify backend of tracking expiry:", e4);
|
|
497
497
|
}
|
|
498
498
|
}
|
|
499
|
-
}, u2)) : (ye = false,
|
|
499
|
+
}, u2)) : (ye = false, we = null, clearGlobalFuncSpanState(), le && console.log("[Sailfish] Tracking already expired, not enabling"));
|
|
500
500
|
} else {
|
|
501
501
|
const e3 = a2.timeoutSeconds || 3600;
|
|
502
|
-
e3 > 0 && (
|
|
502
|
+
e3 > 0 && (we = Date.now() + 1e3 * e3, saveGlobalFuncSpanState(true, we), be = window.setTimeout(() => {
|
|
503
503
|
if (!Se) {
|
|
504
|
-
ye = false,
|
|
504
|
+
ye = false, we = null, clearGlobalFuncSpanState(), le && console.log(`[Sailfish] GLOBAL function span tracking auto-disabled after ${e3}s (legacy)`);
|
|
505
505
|
try {
|
|
506
506
|
isWebSocketOpen(ue) && (ue.send(JSON.stringify({ type: "funcSpanTrackingExpired", sessionId: getOrSetSessionId(), expiredAt: Date.now() })), le && console.log("[Sailfish] Notified backend that function span tracking expired (legacy timeout)"));
|
|
507
507
|
} catch (e4) {
|
|
@@ -516,7 +516,7 @@ function initializeWebSocket(e, a, u, w2) {
|
|
|
516
516
|
} catch (e3) {
|
|
517
517
|
le && console.warn("[Sailfish] Failed to send GLOBAL tracking session report:", e3);
|
|
518
518
|
}
|
|
519
|
-
} else
|
|
519
|
+
} else we = null, clearGlobalFuncSpanState();
|
|
520
520
|
} catch (e3) {
|
|
521
521
|
}
|
|
522
522
|
}), ue;
|
|
@@ -533,7 +533,7 @@ function sendMessage(e) {
|
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
535
|
function enableFunctionSpanTracking() {
|
|
536
|
-
if (le && console.log("[Sailfish] enableFunctionSpanTracking() called - Report Issue recording started (LOCAL MODE)"), ye = true, Se = true,
|
|
536
|
+
if (le && console.log("[Sailfish] enableFunctionSpanTracking() called - Report Issue recording started (LOCAL MODE)"), ye = true, Se = true, we = null, null !== be && (window.clearTimeout(be), be = null), isWebSocketOpen(ue)) try {
|
|
537
537
|
const e = { type: "funcSpanTrackingSessionReport", sessionId: getOrSetSessionId(), enabled: true, configurationType: ce };
|
|
538
538
|
ue.send(JSON.stringify(e));
|
|
539
539
|
} catch (e) {
|
|
@@ -549,18 +549,18 @@ function disableFunctionSpanTracking() {
|
|
|
549
549
|
console.error("[FUNCSPAN STOP] ✗ Failed to send tracking stop report:", e);
|
|
550
550
|
}
|
|
551
551
|
else console.warn("[FUNCSPAN STOP] ✗ WebSocket not open, cannot notify tracking end");
|
|
552
|
-
Se && (ye = false, Se = false,
|
|
552
|
+
Se && (ye = false, Se = false, we = null, le && console.log("[Sailfish] LOCAL tracking mode disabled")), null !== be && (window.clearTimeout(be), be = null);
|
|
553
553
|
}
|
|
554
554
|
function isFunctionSpanTrackingEnabled() {
|
|
555
555
|
return ye;
|
|
556
556
|
}
|
|
557
557
|
function initializeFunctionSpanTrackingFromApi(e) {
|
|
558
|
-
e && !ye ? (ye = true, Se = false,
|
|
558
|
+
e && !ye ? (ye = true, Se = false, we = null, le && console.log("[Sailfish] Function span tracking initialized as ENABLED from API check")) : !e && ye && (ye = false, Se = false, we = null, le && console.log("[Sailfish] Function span tracking initialized as DISABLED from API check"));
|
|
559
559
|
}
|
|
560
560
|
function getFuncSpanHeader() {
|
|
561
561
|
if (!ye) return null;
|
|
562
|
-
if (null !==
|
|
563
|
-
if (Date.now() >=
|
|
562
|
+
if (null !== we) {
|
|
563
|
+
if (Date.now() >= we) return ye = false, we = null, clearGlobalFuncSpanState(), le && console.log("[Sailfish] Function span tracking expired on header check - disabling now"), null;
|
|
564
564
|
}
|
|
565
565
|
return { name: "X-Sf3-FunctionSpanCaptureOverride", value: "1-1-10-10-1-1.0-1-0-0" };
|
|
566
566
|
}
|
|
@@ -576,8 +576,8 @@ function getFuncSpanHeader() {
|
|
|
576
576
|
return le && console.warn("[Sailfish] Failed to load funcSpan state from localStorage:", e2), null;
|
|
577
577
|
}
|
|
578
578
|
})();
|
|
579
|
-
if (e && e.enabled) if (ye = true,
|
|
580
|
-
Date.now() >=
|
|
579
|
+
if (e && e.enabled) if (ye = true, we = e.expirationTimestampMs, Se = false, le && console.log("[Sailfish] Module init: Restored global function span tracking from localStorage:", { enabled: true, expirationTime: we }), null !== we) {
|
|
580
|
+
Date.now() >= we ? (ye = false, we = null, clearGlobalFuncSpanState(), le && console.log("[Sailfish] Module init: Persisted tracking already expired, cleared state")) : le && console.log("[Sailfish] Module init: Function span tracking is active and valid (temporary until WebSocket confirms)");
|
|
581
581
|
} else le && console.log("[Sailfish] Module init: Function span tracking is active (no expiration, temporary until WebSocket confirms)");
|
|
582
582
|
})();
|
|
583
583
|
const Ce = Object.freeze(Object.defineProperty({ __proto__: null, clearStaleFuncSpanState, disableFunctionSpanTracking, enableFunctionSpanTracking, flushBufferedEvents, getFuncSpanHeader, initializeFunctionSpanTrackingFromApi, initializeWebSocket, isFunctionSpanTrackingEnabled, sendEvent, sendMessage }, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -875,15 +875,15 @@ function requireSourceMapGenerator() {
|
|
|
875
875
|
throw new Error(x2);
|
|
876
876
|
}
|
|
877
877
|
}, SourceMapGenerator.prototype._serializeMappings = function SourceMapGenerator_serializeMappings() {
|
|
878
|
-
for (var u2, w3, x2, I2, M2 = 0, _2 = 1, A2 = 0, F2 = 0, $2 = 0,
|
|
878
|
+
for (var u2, w3, x2, I2, M2 = 0, _2 = 1, A2 = 0, F2 = 0, $2 = 0, B2 = 0, j2 = "", U2 = this._mappings.toArray(), z2 = 0, W2 = U2.length; z2 < W2; z2++) {
|
|
879
879
|
if (u2 = "", (w3 = U2[z2]).generatedLine !== _2) for (M2 = 0; w3.generatedLine !== _2; ) u2 += ";", _2++;
|
|
880
880
|
else if (z2 > 0) {
|
|
881
881
|
if (!a.compareByGeneratedPositionsInflated(w3, U2[z2 - 1])) continue;
|
|
882
882
|
u2 += ",";
|
|
883
883
|
}
|
|
884
|
-
u2 += e.encode(w3.generatedColumn - M2), M2 = w3.generatedColumn, null != w3.source && (I2 = this._sources.indexOf(w3.source), u2 += e.encode(I2 -
|
|
884
|
+
u2 += e.encode(w3.generatedColumn - M2), M2 = w3.generatedColumn, null != w3.source && (I2 = this._sources.indexOf(w3.source), u2 += e.encode(I2 - B2), B2 = I2, u2 += e.encode(w3.originalLine - 1 - F2), F2 = w3.originalLine - 1, u2 += e.encode(w3.originalColumn - A2), A2 = w3.originalColumn, null != w3.name && (x2 = this._names.indexOf(w3.name), u2 += e.encode(x2 - $2), $2 = x2)), j2 += u2;
|
|
885
885
|
}
|
|
886
|
-
return
|
|
886
|
+
return j2;
|
|
887
887
|
}, SourceMapGenerator.prototype._generateSourcesContent = function SourceMapGenerator_generateSourcesContent(e2, u2) {
|
|
888
888
|
return e2.map(function(e3) {
|
|
889
889
|
if (!this._sourcesContents) return null;
|
|
@@ -958,13 +958,13 @@ var it = (function requireSourceMap() {
|
|
|
958
958
|
function BasicSourceMapConsumer(a2, w3) {
|
|
959
959
|
var x3 = a2;
|
|
960
960
|
"string" == typeof a2 && (x3 = e.parseSourceMapInput(a2));
|
|
961
|
-
var I3 = e.getArg(x3, "version"), M2 = e.getArg(x3, "sources"), _2 = e.getArg(x3, "names", []), A2 = e.getArg(x3, "sourceRoot", null), F2 = e.getArg(x3, "sourcesContent", null), $2 = e.getArg(x3, "mappings"),
|
|
961
|
+
var I3 = e.getArg(x3, "version"), M2 = e.getArg(x3, "sources"), _2 = e.getArg(x3, "names", []), A2 = e.getArg(x3, "sourceRoot", null), F2 = e.getArg(x3, "sourcesContent", null), $2 = e.getArg(x3, "mappings"), B2 = e.getArg(x3, "file", null);
|
|
962
962
|
if (I3 != this._version) throw new Error("Unsupported version: " + I3);
|
|
963
963
|
A2 && (A2 = e.normalize(A2)), M2 = M2.map(String).map(e.normalize).map(function(a3) {
|
|
964
964
|
return A2 && e.isAbsolute(A2) && e.isAbsolute(a3) ? e.relative(A2, a3) : a3;
|
|
965
965
|
}), this._names = u.fromArray(_2.map(String), true), this._sources = u.fromArray(M2, true), this._absoluteSources = this._sources.toArray().map(function(a3) {
|
|
966
966
|
return e.computeSourceURL(A2, a3, w3);
|
|
967
|
-
}), this.sourceRoot = A2, this.sourcesContent = F2, this._mappings = $2, this._sourceMapURL = w3, this.file =
|
|
967
|
+
}), this.sourceRoot = A2, this.sourcesContent = F2, this._mappings = $2, this._sourceMapURL = w3, this.file = B2;
|
|
968
968
|
}
|
|
969
969
|
function Mapping() {
|
|
970
970
|
this.generatedLine = 0, this.generatedColumn = 0, this.source = null, this.originalLine = null, this.originalColumn = null, this.name = null;
|
|
@@ -992,8 +992,8 @@ var it = (function requireSourceMap() {
|
|
|
992
992
|
default:
|
|
993
993
|
throw new Error("Unknown order of iteration.");
|
|
994
994
|
}
|
|
995
|
-
for (var M2 = this.sourceRoot, _2 = a2.bind(I3), A2 = this._names, F2 = this._sources, $2 = this._sourceMapURL,
|
|
996
|
-
var U2 = x3[
|
|
995
|
+
for (var M2 = this.sourceRoot, _2 = a2.bind(I3), A2 = this._names, F2 = this._sources, $2 = this._sourceMapURL, B2 = 0, j2 = x3.length; B2 < j2; B2++) {
|
|
996
|
+
var U2 = x3[B2], z2 = null === U2.source ? null : F2.at(U2.source);
|
|
997
997
|
null !== z2 && (z2 = e.computeSourceURL(M2, z2, $2)), _2({ source: z2, generatedLine: U2.generatedLine, generatedColumn: U2.generatedColumn, originalLine: U2.originalLine, originalColumn: U2.originalColumn, name: null === U2.name ? null : A2.at(U2.name) });
|
|
998
998
|
}
|
|
999
999
|
}, SourceMapConsumer.prototype.allGeneratedPositionsFor = function SourceMapConsumer_allGeneratedPositionsFor(u2) {
|
|
@@ -1016,8 +1016,8 @@ var it = (function requireSourceMap() {
|
|
|
1016
1016
|
I3.sourceRoot = a2._sourceRoot, I3.sourcesContent = a2._generateSourcesContent(I3._sources.toArray(), I3.sourceRoot), I3.file = a2._file, I3._sourceMapURL = w3, I3._absoluteSources = I3._sources.toArray().map(function(a3) {
|
|
1017
1017
|
return e.computeSourceURL(I3.sourceRoot, a3, w3);
|
|
1018
1018
|
});
|
|
1019
|
-
for (var A2 = a2._mappings.toArray().slice(), F2 = I3.__generatedMappings = [], $2 = I3.__originalMappings = [],
|
|
1020
|
-
var U2 = A2[
|
|
1019
|
+
for (var A2 = a2._mappings.toArray().slice(), F2 = I3.__generatedMappings = [], $2 = I3.__originalMappings = [], B2 = 0, j2 = A2.length; B2 < j2; B2++) {
|
|
1020
|
+
var U2 = A2[B2], z2 = new Mapping();
|
|
1021
1021
|
z2.generatedLine = U2.generatedLine, z2.generatedColumn = U2.generatedColumn, U2.source && (z2.source = _2.indexOf(U2.source), z2.originalLine = U2.originalLine, z2.originalColumn = U2.originalColumn, U2.name && (z2.name = M2.indexOf(U2.name)), $2.push(z2)), F2.push(z2);
|
|
1022
1022
|
}
|
|
1023
1023
|
return x2(I3.__originalMappings, e.compareByOriginalPositions), I3;
|
|
@@ -1052,7 +1052,7 @@ var it = (function requireSourceMap() {
|
|
|
1052
1052
|
});
|
|
1053
1053
|
}
|
|
1054
1054
|
return BasicSourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(a2, u2) {
|
|
1055
|
-
var I3, M2, _2, A2, F2 = 1, $2 = 0,
|
|
1055
|
+
var I3, M2, _2, A2, F2 = 1, $2 = 0, B2 = 0, j2 = 0, U2 = 0, z2 = 0, W2 = a2.length, G2 = 0, H2 = {}, K2 = [], Y2 = [];
|
|
1056
1056
|
let Z2 = 0;
|
|
1057
1057
|
for (; G2 < W2; ) if (";" === a2.charAt(G2)) F2++, G2++, $2 = 0, sortGenerated(Y2, Z2), Z2 = Y2.length;
|
|
1058
1058
|
else if ("," === a2.charAt(G2)) G2++;
|
|
@@ -1061,7 +1061,7 @@ var it = (function requireSourceMap() {
|
|
|
1061
1061
|
for (a2.slice(G2, _2), M2 = []; G2 < _2; ) w2.decode(a2, G2, H2), A2 = H2.value, G2 = H2.rest, M2.push(A2);
|
|
1062
1062
|
if (2 === M2.length) throw new Error("Found a source, but no line and column");
|
|
1063
1063
|
if (3 === M2.length) throw new Error("Found a source and line, but no column");
|
|
1064
|
-
if (I3.generatedColumn = $2 + M2[0], $2 = I3.generatedColumn, M2.length > 1 && (I3.source = U2 + M2[1], U2 += M2[1], I3.originalLine =
|
|
1064
|
+
if (I3.generatedColumn = $2 + M2[0], $2 = I3.generatedColumn, M2.length > 1 && (I3.source = U2 + M2[1], U2 += M2[1], I3.originalLine = B2 + M2[2], B2 = I3.originalLine, I3.originalLine += 1, I3.originalColumn = j2 + M2[3], j2 = I3.originalColumn, M2.length > 4 && (I3.name = z2 + M2[4], z2 += M2[4])), Y2.push(I3), "number" == typeof I3.originalLine) {
|
|
1065
1065
|
let e2 = I3.source;
|
|
1066
1066
|
for (; K2.length <= e2; ) K2.push(null);
|
|
1067
1067
|
null === K2[e2] && (K2[e2] = []), K2[e2].push(I3);
|
|
@@ -1158,8 +1158,8 @@ var it = (function requireSourceMap() {
|
|
|
1158
1158
|
null !== F2 && (F2 = e.computeSourceURL(I3.consumer.sourceRoot, F2, this._sourceMapURL)), this._sources.add(F2), F2 = this._sources.indexOf(F2);
|
|
1159
1159
|
var $2 = null;
|
|
1160
1160
|
A2.name && ($2 = I3.consumer._names.at(A2.name), this._names.add($2), $2 = this._names.indexOf($2));
|
|
1161
|
-
var
|
|
1162
|
-
this.__generatedMappings.push(
|
|
1161
|
+
var B2 = { source: F2, generatedLine: A2.generatedLine + (I3.generatedOffset.generatedLine - 1), generatedColumn: A2.generatedColumn + (I3.generatedOffset.generatedLine === A2.generatedLine ? I3.generatedOffset.generatedColumn - 1 : 0), originalLine: A2.originalLine, originalColumn: A2.originalColumn, name: $2 };
|
|
1162
|
+
this.__generatedMappings.push(B2), "number" == typeof B2.originalLine && this.__originalMappings.push(B2);
|
|
1163
1163
|
}
|
|
1164
1164
|
x2(this.__generatedMappings, e.compareByGeneratedPositionsDeflated), x2(this.__originalMappings, e.compareByOriginalPositions);
|
|
1165
1165
|
}, Ke.IndexedSourceMapConsumer = IndexedSourceMapConsumer, Ke;
|
|
@@ -1339,8 +1339,8 @@ function createTriageFromRecorder(e, a, u, w2, x2, I2) {
|
|
|
1339
1339
|
function fetchEngineeringTicketPlatformIntegrations(e, a) {
|
|
1340
1340
|
return sendGraphQLRequest("GetEngineeringTicketPlatformIntegrationsFromApiKey", "query GetEngineeringTicketPlatformIntegrationsFromApiKey($apiKey: String!) {\n getEngineeringTicketPlatformIntegrationsFromApiKey(apiKey: $apiKey) {\n pushAutoIdentifiedIssues\n provider\n clientId\n defaultPriority\n defaultProject\n defaultTeam\n primaryCloudId\n installed\n projects\n teams\n workflowStates\n webhookState\n clouds\n labels\n sprints\n users\n fieldConfigurations\n invalidFields\n jiraReporterAccountId\n }\n }", { apiKey: e, backendApi: a });
|
|
1341
1341
|
}
|
|
1342
|
-
function createTriageAndIssueFromRecorder(e, a, u, w2, x2, I2, M2, _2, A2, F2, $2,
|
|
1343
|
-
return sendGraphQLRequest("CreateTriageAndIssueFromRecorder", "mutation CreateTriageAndIssueFromRecorder(\n $apiKey: String!,\n $recordingSessionId: String!,\n $timestampStart: String!,\n $timestampEnd: String!,\n $description: String,\n $issueName: String,\n $issueDescription: String,\n $createEngineeringTicket: Boolean,\n $teamId: String,\n $projectId: String,\n $priority: Int,\n $labels: [String!],\n $issueType: String,\n $customFields: JSON\n ) {\n createTriageAndIssueFromRecorder(\n apiKey: $apiKey,\n recordingSessionId: $recordingSessionId,\n timestampStart: $timestampStart,\n timestampEnd: $timestampEnd,\n description: $description,\n issueName: $issueName,\n issueDescription: $issueDescription,\n createEngineeringTicket: $createEngineeringTicket,\n teamId: $teamId,\n projectId: $projectId,\n priority: $priority,\n labels: $labels,\n issueType: $issueType,\n customFields: $customFields\n ) {\n id\n title\n }\n }\n ", { apiKey: e, recordingSessionId: u, timestampStart: w2, timestampEnd: x2, description: I2, issueName: M2, issueDescription: _2, createEngineeringTicket: A2, teamId: F2, projectId: $2, priority:
|
|
1342
|
+
function createTriageAndIssueFromRecorder(e, a, u, w2, x2, I2, M2, _2, A2, F2, $2, B2, j2, U2, z2) {
|
|
1343
|
+
return sendGraphQLRequest("CreateTriageAndIssueFromRecorder", "mutation CreateTriageAndIssueFromRecorder(\n $apiKey: String!,\n $recordingSessionId: String!,\n $timestampStart: String!,\n $timestampEnd: String!,\n $description: String,\n $issueName: String,\n $issueDescription: String,\n $createEngineeringTicket: Boolean,\n $teamId: String,\n $projectId: String,\n $priority: Int,\n $labels: [String!],\n $issueType: String,\n $customFields: JSON\n ) {\n createTriageAndIssueFromRecorder(\n apiKey: $apiKey,\n recordingSessionId: $recordingSessionId,\n timestampStart: $timestampStart,\n timestampEnd: $timestampEnd,\n description: $description,\n issueName: $issueName,\n issueDescription: $issueDescription,\n createEngineeringTicket: $createEngineeringTicket,\n teamId: $teamId,\n projectId: $projectId,\n priority: $priority,\n labels: $labels,\n issueType: $issueType,\n customFields: $customFields\n ) {\n id\n title\n }\n }\n ", { apiKey: e, recordingSessionId: u, timestampStart: w2, timestampEnd: x2, description: I2, issueName: M2, issueDescription: _2, createEngineeringTicket: A2, teamId: F2, projectId: $2, priority: B2, labels: j2, issueType: U2, customFields: z2, backendApi: a });
|
|
1344
1344
|
}
|
|
1345
1345
|
const dt = ["jira", "linear", "zendesk"];
|
|
1346
1346
|
let pt = null;
|
|
@@ -1450,7 +1450,7 @@ function getInitialState() {
|
|
|
1450
1450
|
})();
|
|
1451
1451
|
return { mode: "lookback", description: "", occurredInThisTab: true, createIssue: e.createIssue, issueName: "", issueDescription: "", createEngTicket: e.createEngTicket, engTicketTeam: "", engTicketProject: "", engTicketPriority: 0, engTicketLabels: [], engTicketIssueType: "", engTicketCustomFields: {} };
|
|
1452
1452
|
}
|
|
1453
|
-
let
|
|
1453
|
+
let bt = getInitialState(), wt = null, St = null, vt = null, kt = false;
|
|
1454
1454
|
function setTimerInterval(e) {
|
|
1455
1455
|
vt = e;
|
|
1456
1456
|
}
|
|
@@ -1521,27 +1521,27 @@ function renderDynamicFields(e, a) {
|
|
|
1521
1521
|
var _a2, _b, _c2, _d2;
|
|
1522
1522
|
const w3 = e3.fieldId || e3.key, x3 = e3.name, I3 = (_a2 = e3.schema) == null ? void 0 : _a2.type, M2 = (_b = e3.schema) == null ? void 0 : _b.system, _2 = (_c2 = e3.schema) == null ? void 0 : _c2.custom, A2 = e3.required || false, F2 = e3.allowedValues, $2 = ["summary", "description", "project", "issuetype", "priority"];
|
|
1523
1523
|
if ($2.includes(w3) || $2.includes(M2)) return null;
|
|
1524
|
-
const
|
|
1524
|
+
const B2 = A2 ? '<span style="color:#ef4444;">*</span>' : "", j2 = "width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none;";
|
|
1525
1525
|
switch (I3) {
|
|
1526
1526
|
case "string":
|
|
1527
1527
|
return _2 && _2.includes("textarea") ? `
|
|
1528
1528
|
<div>
|
|
1529
1529
|
<label for="${w3}" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1530
|
-
${x3} ${
|
|
1530
|
+
${x3} ${B2}
|
|
1531
1531
|
</label>
|
|
1532
1532
|
<textarea
|
|
1533
1533
|
id="${w3}"
|
|
1534
1534
|
class="sf-dynamic-field"
|
|
1535
1535
|
data-field-id="${w3}"
|
|
1536
1536
|
placeholder="Enter ${x3.toLowerCase()}"
|
|
1537
|
-
style="${
|
|
1537
|
+
style="${j2} height:80px; resize:none;"
|
|
1538
1538
|
${A2 ? "required" : ""}
|
|
1539
1539
|
>${a2 || ""}</textarea>
|
|
1540
1540
|
</div>
|
|
1541
1541
|
` : `
|
|
1542
1542
|
<div>
|
|
1543
1543
|
<label for="${w3}" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1544
|
-
${x3} ${
|
|
1544
|
+
${x3} ${B2}
|
|
1545
1545
|
</label>
|
|
1546
1546
|
<input
|
|
1547
1547
|
type="text"
|
|
@@ -1550,7 +1550,7 @@ function renderDynamicFields(e, a) {
|
|
|
1550
1550
|
data-field-id="${w3}"
|
|
1551
1551
|
value="${a2 || ""}"
|
|
1552
1552
|
placeholder="Enter ${x3.toLowerCase()}"
|
|
1553
|
-
style="${
|
|
1553
|
+
style="${j2}"
|
|
1554
1554
|
${A2 ? "required" : ""}
|
|
1555
1555
|
/>
|
|
1556
1556
|
</div>
|
|
@@ -1559,7 +1559,7 @@ function renderDynamicFields(e, a) {
|
|
|
1559
1559
|
return `
|
|
1560
1560
|
<div>
|
|
1561
1561
|
<label for="${w3}" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1562
|
-
${x3} ${
|
|
1562
|
+
${x3} ${B2}
|
|
1563
1563
|
</label>
|
|
1564
1564
|
<input
|
|
1565
1565
|
type="number"
|
|
@@ -1568,7 +1568,7 @@ function renderDynamicFields(e, a) {
|
|
|
1568
1568
|
data-field-id="${w3}"
|
|
1569
1569
|
value="${a2 || ""}"
|
|
1570
1570
|
placeholder="Enter ${x3.toLowerCase()}"
|
|
1571
|
-
style="${
|
|
1571
|
+
style="${j2}"
|
|
1572
1572
|
step="0.5"
|
|
1573
1573
|
${A2 ? "required" : ""}
|
|
1574
1574
|
/>
|
|
@@ -1578,7 +1578,7 @@ function renderDynamicFields(e, a) {
|
|
|
1578
1578
|
return `
|
|
1579
1579
|
<div>
|
|
1580
1580
|
<label for="${w3}" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1581
|
-
${x3} ${
|
|
1581
|
+
${x3} ${B2}
|
|
1582
1582
|
</label>
|
|
1583
1583
|
<input
|
|
1584
1584
|
type="date"
|
|
@@ -1586,7 +1586,7 @@ function renderDynamicFields(e, a) {
|
|
|
1586
1586
|
class="sf-dynamic-field"
|
|
1587
1587
|
data-field-id="${w3}"
|
|
1588
1588
|
value="${a2 || ""}"
|
|
1589
|
-
style="${
|
|
1589
|
+
style="${j2}"
|
|
1590
1590
|
${A2 ? "required" : ""}
|
|
1591
1591
|
/>
|
|
1592
1592
|
</div>
|
|
@@ -1600,13 +1600,13 @@ function renderDynamicFields(e, a) {
|
|
|
1600
1600
|
return `
|
|
1601
1601
|
<div>
|
|
1602
1602
|
<label for="${w3}" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1603
|
-
${x3} ${
|
|
1603
|
+
${x3} ${B2}
|
|
1604
1604
|
</label>
|
|
1605
1605
|
<select
|
|
1606
1606
|
id="${w3}"
|
|
1607
1607
|
class="sf-dynamic-field"
|
|
1608
1608
|
data-field-id="${w3}"
|
|
1609
|
-
style="${
|
|
1609
|
+
style="${j2} appearance:none; cursor:pointer; background-color: white; ${I4 ? "" : "color: #9ca3af;"}"
|
|
1610
1610
|
${A2 ? "required" : ""}
|
|
1611
1611
|
>
|
|
1612
1612
|
<option value="" disabled ${I4 ? "" : "selected"} style="color: #9ca3af;">Select ${x3.toLowerCase()}...</option>
|
|
@@ -1625,13 +1625,13 @@ function renderDynamicFields(e, a) {
|
|
|
1625
1625
|
return `
|
|
1626
1626
|
<div>
|
|
1627
1627
|
<label for="${w3}" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1628
|
-
${x3} ${
|
|
1628
|
+
${x3} ${B2}
|
|
1629
1629
|
</label>
|
|
1630
1630
|
<select
|
|
1631
1631
|
id="${w3}"
|
|
1632
1632
|
class="sf-dynamic-field"
|
|
1633
1633
|
data-field-id="${w3}"
|
|
1634
|
-
style="${
|
|
1634
|
+
style="${j2} appearance:none; cursor:pointer; background-color: white; ${u3 ? "" : "color: #9ca3af;"}"
|
|
1635
1635
|
${A2 ? "required" : ""}
|
|
1636
1636
|
>
|
|
1637
1637
|
<option value="" disabled ${u3 ? "" : "selected"} style="color: #9ca3af;">Select ${x3.toLowerCase()}...</option>
|
|
@@ -1648,7 +1648,7 @@ function renderDynamicFields(e, a) {
|
|
|
1648
1648
|
return `
|
|
1649
1649
|
<div>
|
|
1650
1650
|
<label for="${w3}" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1651
|
-
${x3} ${
|
|
1651
|
+
${x3} ${B2}
|
|
1652
1652
|
</label>
|
|
1653
1653
|
<input
|
|
1654
1654
|
type="text"
|
|
@@ -1657,7 +1657,7 @@ function renderDynamicFields(e, a) {
|
|
|
1657
1657
|
data-field-id="${w3}"
|
|
1658
1658
|
value="${a2 || ""}"
|
|
1659
1659
|
placeholder="e.g., PROJ-123"
|
|
1660
|
-
style="${
|
|
1660
|
+
style="${j2}"
|
|
1661
1661
|
${A2 ? "required" : ""}
|
|
1662
1662
|
/>
|
|
1663
1663
|
</div>
|
|
@@ -1666,7 +1666,7 @@ function renderDynamicFields(e, a) {
|
|
|
1666
1666
|
return ((_d2 = e3.operations) == null ? void 0 : _d2.includes("set")) ? `
|
|
1667
1667
|
<div>
|
|
1668
1668
|
<label for="${w3}" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1669
|
-
${x3} ${
|
|
1669
|
+
${x3} ${B2}
|
|
1670
1670
|
</label>
|
|
1671
1671
|
<input
|
|
1672
1672
|
type="text"
|
|
@@ -1675,18 +1675,18 @@ function renderDynamicFields(e, a) {
|
|
|
1675
1675
|
data-field-id="${w3}"
|
|
1676
1676
|
value="${a2 || ""}"
|
|
1677
1677
|
placeholder="Enter ${x3.toLowerCase()}"
|
|
1678
|
-
style="${
|
|
1678
|
+
style="${j2}"
|
|
1679
1679
|
${A2 ? "required" : ""}
|
|
1680
1680
|
/>
|
|
1681
1681
|
</div>
|
|
1682
1682
|
` : null;
|
|
1683
1683
|
}
|
|
1684
|
-
})(e2,
|
|
1684
|
+
})(e2, bt.engTicketCustomFields[e2.fieldId || e2.key], x2)).filter(Boolean).join("");
|
|
1685
1685
|
u.innerHTML = I2 || "", w2.forEach((e2) => {
|
|
1686
1686
|
var _a2;
|
|
1687
1687
|
const a2 = e2.fieldId || e2.key, u2 = (_a2 = e2.schema) == null ? void 0 : _a2.type, w3 = e2.allowedValues;
|
|
1688
1688
|
"array" === u2 && w3 && w3.length > 0 && setupCustomMultiSelectListeners(a2, (e3) => {
|
|
1689
|
-
|
|
1689
|
+
bt.engTicketCustomFields[a2] = e3;
|
|
1690
1690
|
});
|
|
1691
1691
|
});
|
|
1692
1692
|
}
|
|
@@ -1732,7 +1732,7 @@ function setupIssueReporting(e) {
|
|
|
1732
1732
|
return void (a2 && !a2.disabled && (e2.preventDefault(), a2.click()));
|
|
1733
1733
|
}
|
|
1734
1734
|
if (kt && w2 === a.stopRecording.key && x2 === a.stopRecording.requireCmdCtrl) return e2.preventDefault(), void stopRecording();
|
|
1735
|
-
if (I2 && "startnow" ===
|
|
1735
|
+
if (I2 && "startnow" === bt.mode && w2 === a.startRecording.key && x2 === a.startRecording.requireCmdCtrl && !u) {
|
|
1736
1736
|
const a2 = document.getElementById("sf-start-recording-btn");
|
|
1737
1737
|
return void (a2 && (e2.preventDefault(), a2.click()));
|
|
1738
1738
|
}
|
|
@@ -1747,7 +1747,7 @@ function openReportIssueModal() {
|
|
|
1747
1747
|
}
|
|
1748
1748
|
function closeModal() {
|
|
1749
1749
|
xt.deactivateIsolation(), document.activeElement instanceof HTMLElement && document.activeElement.blur(), (It == null ? void 0 : It.parentNode) && It.parentNode.removeChild(It), It = null, kt || (function resetState() {
|
|
1750
|
-
|
|
1750
|
+
bt = getInitialState(), wt = null, St = null;
|
|
1751
1751
|
})(), vt && (clearInterval(vt), setTimerInterval(null));
|
|
1752
1752
|
}
|
|
1753
1753
|
function activateModalIsolation(e) {
|
|
@@ -1864,7 +1864,7 @@ function injectModalHTML(e = "lookback") {
|
|
|
1864
1864
|
<textarea id="sf-issue-description" placeholder="Add description here"
|
|
1865
1865
|
style="width:100%; height:80px; padding:8px 12px; font-size:14px;
|
|
1866
1866
|
border:1px solid #cbd5e1; border-radius:6px; margin-bottom:20px;
|
|
1867
|
-
resize:none; outline:none;">${
|
|
1867
|
+
resize:none; outline:none;">${bt.description}</textarea>
|
|
1868
1868
|
|
|
1869
1869
|
<!-- When did this happen Section -->
|
|
1870
1870
|
<div id="sf-lookback-container" style="display:${a ? "none" : "block"}; margin-bottom:20px;">
|
|
@@ -1930,41 +1930,41 @@ function injectModalHTML(e = "lookback") {
|
|
|
1930
1930
|
<!-- Checkboxes on same line -->
|
|
1931
1931
|
<div style="display:flex; align-items:center; gap:24px; margin-bottom:16px;">
|
|
1932
1932
|
<label style="display:flex; align-items:center; gap:8px; font-size:14px; font-weight:500; cursor:pointer;">
|
|
1933
|
-
<input type="checkbox" id="sf-create-issue-checkbox" ${
|
|
1933
|
+
<input type="checkbox" id="sf-create-issue-checkbox" ${bt.createIssue ? "checked" : ""}
|
|
1934
1934
|
style="width:16px; height:16px; accent-color:#295DBF; cursor:pointer;">
|
|
1935
1935
|
Create an Issue
|
|
1936
1936
|
</label>
|
|
1937
1937
|
|
|
1938
1938
|
<label id="sf-create-eng-ticket-label" style="display:${xt.integrationData ? "flex" : "none"}; align-items:center; gap:8px; font-size:14px; font-weight:500; cursor:pointer;">
|
|
1939
|
-
<input type="checkbox" id="sf-create-eng-ticket-checkbox" ${
|
|
1939
|
+
<input type="checkbox" id="sf-create-eng-ticket-checkbox" ${bt.createEngTicket ? "checked" : ""}
|
|
1940
1940
|
style="width:16px; height:16px; accent-color:#295DBF; cursor:pointer;">
|
|
1941
1941
|
Create an Eng Ticket
|
|
1942
1942
|
</label>
|
|
1943
1943
|
</div>
|
|
1944
1944
|
|
|
1945
1945
|
<!-- Issue Title Field (always shown when create issue is checked) -->
|
|
1946
|
-
<div id="sf-issue-fields-container" style="display:${
|
|
1946
|
+
<div id="sf-issue-fields-container" style="display:${bt.createIssue ? "block" : "none"};">
|
|
1947
1947
|
<div style="display:flex; flex-direction:column; gap:12px;">
|
|
1948
1948
|
<div>
|
|
1949
1949
|
<label for="sf-issue-name" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">
|
|
1950
1950
|
Title <span style="color:#ef4444;">*</span>
|
|
1951
1951
|
</label>
|
|
1952
1952
|
<input type="text" id="sf-issue-name" placeholder="Enter title"
|
|
1953
|
-
value="${
|
|
1953
|
+
value="${bt.issueName}"
|
|
1954
1954
|
style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none;">
|
|
1955
1955
|
</div>
|
|
1956
1956
|
</div>
|
|
1957
1957
|
</div>
|
|
1958
1958
|
|
|
1959
1959
|
<!-- Engineering Ticket Fields (shown when create eng ticket is checked) -->
|
|
1960
|
-
<div id="sf-eng-ticket-fields-container" style="display:${
|
|
1960
|
+
<div id="sf-eng-ticket-fields-container" style="display:${bt.createEngTicket ? "block" : "none"}; margin-top: ${bt.createIssue ? "12px" : "0"};">
|
|
1961
1961
|
${(function generateEngTicketFieldsHTML() {
|
|
1962
1962
|
var _a2;
|
|
1963
1963
|
const e2 = xt.integrationData;
|
|
1964
1964
|
if (!e2) return "";
|
|
1965
1965
|
const a2 = "jira" === ((_a2 = e2.provider) == null ? void 0 : _a2.toLowerCase());
|
|
1966
1966
|
let u = "<div style='display:flex; flex-direction:column; gap:12px;'>";
|
|
1967
|
-
return e2.teams && Array.isArray(e2.teams) && e2.teams.length > 0 && (u += '\n <div>\n <label for="sf-eng-ticket-team" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">\n Team\n </label>\n <select id="sf-eng-ticket-team"\n style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none; appearance:none; cursor:pointer; background-color: white; color: #9ca3af;">\n <option value="" disabled selected style="color: #9ca3af;">Select team...</option>\n </select>\n </div>\n '), u += '\n <div>\n <label for="sf-eng-ticket-project" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">\n Project\n </label>\n <select id="sf-eng-ticket-project"\n style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none; appearance:none; cursor:pointer; background-color: white; color: #9ca3af;">\n <option value="" disabled selected style="color: #9ca3af;">Select project...</option>\n </select>\n </div>\n ', a2 && (u += '\n <div>\n <label for="sf-eng-ticket-type" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">\n Issue Type\n </label>\n <select id="sf-eng-ticket-type"\n style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none; appearance:none; cursor:pointer; background-color: white; color: #9ca3af;">\n <option value="" disabled selected style="color: #9ca3af;">Select project first...</option>\n </select>\n </div>\n '), u += '\n <div>\n <label for="sf-eng-ticket-priority" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">\n Priority\n </label>\n <select id="sf-eng-ticket-priority"\n style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none; appearance:none; cursor:pointer; background-color: white;">\n </select>\n </div>\n ', e2.labels && Array.isArray(e2.labels) && e2.labels.length > 0 && (u += renderCustomMultiSelect("sf-eng-ticket-labels", "Labels", e2.labels,
|
|
1967
|
+
return e2.teams && Array.isArray(e2.teams) && e2.teams.length > 0 && (u += '\n <div>\n <label for="sf-eng-ticket-team" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">\n Team\n </label>\n <select id="sf-eng-ticket-team"\n style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none; appearance:none; cursor:pointer; background-color: white; color: #9ca3af;">\n <option value="" disabled selected style="color: #9ca3af;">Select team...</option>\n </select>\n </div>\n '), u += '\n <div>\n <label for="sf-eng-ticket-project" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">\n Project\n </label>\n <select id="sf-eng-ticket-project"\n style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none; appearance:none; cursor:pointer; background-color: white; color: #9ca3af;">\n <option value="" disabled selected style="color: #9ca3af;">Select project...</option>\n </select>\n </div>\n ', a2 && (u += '\n <div>\n <label for="sf-eng-ticket-type" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">\n Issue Type\n </label>\n <select id="sf-eng-ticket-type"\n style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none; appearance:none; cursor:pointer; background-color: white; color: #9ca3af;">\n <option value="" disabled selected style="color: #9ca3af;">Select project first...</option>\n </select>\n </div>\n '), u += '\n <div>\n <label for="sf-eng-ticket-priority" style="display:block; font-size:14px; font-weight:500; margin-bottom:6px;">\n Priority\n </label>\n <select id="sf-eng-ticket-priority"\n style="width:100%; padding:8px 12px; font-size:14px; border:1px solid #cbd5e1; border-radius:6px; outline:none; appearance:none; cursor:pointer; background-color: white;">\n </select>\n </div>\n ', e2.labels && Array.isArray(e2.labels) && e2.labels.length > 0 && (u += renderCustomMultiSelect("sf-eng-ticket-labels", "Labels", e2.labels, bt.engTicketLabels, false)), u += '\n <div id="sf-dynamic-fields-container" style="display: flex; flex-direction: column; gap: 12px;"></div>\n ', u += "</div>", u;
|
|
1968
1968
|
})()}
|
|
1969
1969
|
</div>
|
|
1970
1970
|
</div>
|
|
@@ -2007,7 +2007,7 @@ function injectModalHTML(e = "lookback") {
|
|
|
2007
2007
|
</div>
|
|
2008
2008
|
</div>
|
|
2009
2009
|
</div>
|
|
2010
|
-
`,
|
|
2010
|
+
`, bt.mode = e, document.body.appendChild(It), (function bindListeners() {
|
|
2011
2011
|
const e2 = It == null ? void 0 : It.querySelectorAll(".sf-issue-tab"), a2 = document.getElementById("sf-start-recording-btn"), u = document.getElementById("sf-modal-close-btn"), w2 = document.getElementById("sf-issue-submit-btn"), x2 = document.getElementById("sf-lookback-minutes");
|
|
2012
2012
|
e2 == null ? void 0 : e2.forEach((e3) => {
|
|
2013
2013
|
e3.addEventListener("click", (e4) => {
|
|
@@ -2016,7 +2016,7 @@ function injectModalHTML(e = "lookback") {
|
|
|
2016
2016
|
});
|
|
2017
2017
|
}), u && (u.onclick = closeModal);
|
|
2018
2018
|
x2 && x2.addEventListener("change", () => {
|
|
2019
|
-
"lookback" ===
|
|
2019
|
+
"lookback" === bt.mode && (w2.disabled = false, w2.style.opacity = "1", w2.style.cursor = "pointer");
|
|
2020
2020
|
});
|
|
2021
2021
|
const I2 = It == null ? void 0 : It.querySelectorAll(".sf-collapsible-header");
|
|
2022
2022
|
I2 == null ? void 0 : I2.forEach((e3) => {
|
|
@@ -2033,17 +2033,17 @@ function injectModalHTML(e = "lookback") {
|
|
|
2033
2033
|
const M2 = document.getElementById("sf-create-issue-checkbox"), _2 = document.getElementById("sf-issue-fields-container"), A2 = document.getElementById("sf-create-eng-ticket-checkbox"), F2 = document.getElementById("sf-eng-ticket-fields-container");
|
|
2034
2034
|
M2 && M2.addEventListener("change", () => {
|
|
2035
2035
|
const e3 = M2.checked;
|
|
2036
|
-
|
|
2036
|
+
bt.createIssue = e3, localStorage.setItem(ht, String(e3)), _2 && (_2.style.display = e3 ? "block" : "none"), !e3 && A2 && (A2.checked = false, bt.createEngTicket = false, localStorage.setItem(ft, "false"), F2 && (F2.style.display = "none"));
|
|
2037
2037
|
});
|
|
2038
2038
|
A2 && A2.addEventListener("change", async () => {
|
|
2039
2039
|
var _a2;
|
|
2040
2040
|
const e3 = A2.checked;
|
|
2041
|
-
if (
|
|
2042
|
-
if (!hasValidIntegration()) return A2.checked = false,
|
|
2041
|
+
if (bt.createEngTicket = e3, localStorage.setItem(ft, String(e3)), e3 && !bt.createIssue && (bt.createIssue = true, localStorage.setItem(ht, "true"), M2 && (M2.checked = true), _2 && (_2.style.display = "block")), F2 && (F2.style.display = e3 ? "block" : "none"), e3) {
|
|
2042
|
+
if (!hasValidIntegration()) return A2.checked = false, bt.createEngTicket = false, localStorage.setItem(ft, "false"), F2 && (F2.style.display = "none"), void alert("No engineering ticket integration found. Please install and configure an integration (Jira, Linear, or Zendesk) first.");
|
|
2043
2043
|
const e4 = getIntegrationData();
|
|
2044
2044
|
if (e4) {
|
|
2045
|
-
if (!
|
|
2046
|
-
getFieldsForProject(
|
|
2045
|
+
if (!bt.engTicketTeam && e4.defaultTeam && (bt.engTicketTeam = e4.defaultTeam), !bt.engTicketProject && e4.defaultProject && (bt.engTicketProject = e4.defaultProject), !bt.engTicketPriority && e4.defaultPriority && (bt.engTicketPriority = e4.defaultPriority), updateFormWithIntegrationData(bt), "jira" === ((_a2 = e4.provider) == null ? void 0 : _a2.toLowerCase()) && e4.jiraReporterAccountId && bt.engTicketProject) {
|
|
2046
|
+
getFieldsForProject(bt.engTicketProject, bt.engTicketIssueType).find((e5) => "reporter" === e5.fieldId) && !bt.engTicketCustomFields.reporter && (bt.engTicketCustomFields.reporter = e4.jiraReporterAccountId);
|
|
2047
2047
|
}
|
|
2048
2048
|
const a3 = document.getElementById("sf-eng-ticket-project"), u2 = document.getElementById("sf-eng-ticket-type");
|
|
2049
2049
|
a3 && a3.value && renderDynamicFields(a3.value, u2 == null ? void 0 : u2.value);
|
|
@@ -2052,39 +2052,39 @@ function injectModalHTML(e = "lookback") {
|
|
|
2052
2052
|
});
|
|
2053
2053
|
const $2 = document.getElementById("sf-issue-name");
|
|
2054
2054
|
$2 && $2.addEventListener("input", () => {
|
|
2055
|
-
|
|
2055
|
+
bt.issueName = $2.value;
|
|
2056
2056
|
});
|
|
2057
|
-
const
|
|
2058
|
-
|
|
2059
|
-
if (
|
|
2060
|
-
const e3 = getProjectsForTeam(
|
|
2061
|
-
a3 && (
|
|
2057
|
+
const B2 = document.getElementById("sf-eng-ticket-team"), j2 = document.getElementById("sf-eng-ticket-project"), U2 = document.getElementById("sf-eng-ticket-priority"), z2 = document.getElementById("sf-eng-ticket-labels-container"), W2 = document.getElementById("sf-eng-ticket-type");
|
|
2058
|
+
B2 && B2.addEventListener("change", () => {
|
|
2059
|
+
if (bt.engTicketTeam = B2.value, B2.style.color = B2.value ? "" : "#9ca3af", j2) {
|
|
2060
|
+
const e3 = getProjectsForTeam(B2.value), a3 = document.getElementById("sf-eng-ticket-project");
|
|
2061
|
+
a3 && (bt.engTicketProject = "", bt.engTicketCustomFields = {}, a3.innerHTML = '<option value="">Select project...</option>', e3.forEach((e4) => {
|
|
2062
2062
|
const u2 = document.createElement("option");
|
|
2063
2063
|
u2.value = e4.id || e4.value || e4, u2.textContent = e4.name || e4.label || e4, a3.appendChild(u2);
|
|
2064
2064
|
}));
|
|
2065
2065
|
}
|
|
2066
2066
|
});
|
|
2067
|
-
|
|
2067
|
+
j2 && j2.addEventListener("change", () => {
|
|
2068
2068
|
var _a2;
|
|
2069
|
-
|
|
2069
|
+
bt.engTicketProject = j2.value, j2.style.color = j2.value ? "" : "#9ca3af", bt.engTicketCustomFields = {};
|
|
2070
2070
|
const e3 = getIntegrationData();
|
|
2071
|
-
if (e3 && W2 && (updateIssueTypeOptions(W2,
|
|
2072
|
-
getFieldsForProject(
|
|
2071
|
+
if (e3 && W2 && (updateIssueTypeOptions(W2, j2.value), bt.engTicketIssueType = W2.value), e3 && "jira" === ((_a2 = e3.provider) == null ? void 0 : _a2.toLowerCase()) && e3.jiraReporterAccountId && j2.value) {
|
|
2072
|
+
getFieldsForProject(j2.value, bt.engTicketIssueType).find((e4) => "reporter" === e4.fieldId) && (bt.engTicketCustomFields.reporter = e3.jiraReporterAccountId);
|
|
2073
2073
|
}
|
|
2074
|
-
renderDynamicFields(
|
|
2074
|
+
renderDynamicFields(j2.value, bt.engTicketIssueType);
|
|
2075
2075
|
});
|
|
2076
2076
|
U2 && U2.addEventListener("change", () => {
|
|
2077
|
-
|
|
2077
|
+
bt.engTicketPriority = Number(U2.value);
|
|
2078
2078
|
});
|
|
2079
2079
|
z2 && setupCustomMultiSelectListeners("sf-eng-ticket-labels", (e3) => {
|
|
2080
|
-
|
|
2080
|
+
bt.engTicketLabels = e3;
|
|
2081
2081
|
});
|
|
2082
2082
|
W2 && W2.addEventListener("change", () => {
|
|
2083
|
-
|
|
2083
|
+
bt.engTicketIssueType = W2.value, W2.style.color = W2.value ? "" : "#9ca3af";
|
|
2084
2084
|
const e3 = document.getElementById("sf-eng-ticket-project");
|
|
2085
2085
|
if (e3 && e3.value) {
|
|
2086
|
-
const a3 =
|
|
2087
|
-
|
|
2086
|
+
const a3 = bt.engTicketCustomFields.reporter;
|
|
2087
|
+
bt.engTicketCustomFields = {}, a3 && (bt.engTicketCustomFields.reporter = a3), renderDynamicFields(e3.value, W2.value);
|
|
2088
2088
|
}
|
|
2089
2089
|
});
|
|
2090
2090
|
const G2 = document.getElementById("sf-dynamic-fields-container");
|
|
@@ -2092,13 +2092,13 @@ function injectModalHTML(e = "lookback") {
|
|
|
2092
2092
|
const a3 = e3.target;
|
|
2093
2093
|
if (a3.classList.contains("sf-dynamic-field")) {
|
|
2094
2094
|
const e4 = a3.dataset.fieldId;
|
|
2095
|
-
e4 && ("checkbox" === a3.type ?
|
|
2095
|
+
e4 && ("checkbox" === a3.type ? bt.engTicketCustomFields[e4] = a3.checked : "number" === a3.type ? bt.engTicketCustomFields[e4] = parseFloat(a3.value) || null : bt.engTicketCustomFields[e4] = a3.value);
|
|
2096
2096
|
}
|
|
2097
2097
|
}), G2.addEventListener("change", (e3) => {
|
|
2098
2098
|
const a3 = e3.target;
|
|
2099
2099
|
if (a3.classList.contains("sf-dynamic-field")) {
|
|
2100
2100
|
const e4 = a3.dataset.fieldId;
|
|
2101
|
-
if (e4 && (
|
|
2101
|
+
if (e4 && (bt.engTicketCustomFields[e4] = a3.value), "SELECT" === a3.tagName) {
|
|
2102
2102
|
const e5 = a3;
|
|
2103
2103
|
e5.style.color = e5.value ? "" : "#9ca3af";
|
|
2104
2104
|
}
|
|
@@ -2106,7 +2106,7 @@ function injectModalHTML(e = "lookback") {
|
|
|
2106
2106
|
}));
|
|
2107
2107
|
a2 && (a2.onclick = () => {
|
|
2108
2108
|
const e3 = document.getElementById("sf-issue-description");
|
|
2109
|
-
e3 && (
|
|
2109
|
+
e3 && (bt.description = e3.value), (function startCountdownThenRecord() {
|
|
2110
2110
|
if (document.getElementById("sf-countdown-overlay")) return;
|
|
2111
2111
|
const e4 = document.createElement("div");
|
|
2112
2112
|
e4.id = "sf-countdown-overlay", e4.style.cssText = "\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.6);\n z-index: 10001;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 80px;\n font-weight: bold;\n color: white;\n font-family: sans-serif;\n ";
|
|
@@ -2116,7 +2116,7 @@ function injectModalHTML(e = "lookback") {
|
|
|
2116
2116
|
if (a3--, a3 > 0) e4.textContent = a3.toString();
|
|
2117
2117
|
else {
|
|
2118
2118
|
clearInterval(u2), document.body.removeChild(e4), (function setRecordingStartTime(e5) {
|
|
2119
|
-
|
|
2119
|
+
wt = e5;
|
|
2120
2120
|
})(Date.now()), setIsRecording(true);
|
|
2121
2121
|
try {
|
|
2122
2122
|
const { enableFunctionSpanTracking: e5 } = await Promise.resolve().then(() => Ce);
|
|
@@ -2146,7 +2146,7 @@ function injectModalHTML(e = "lookback") {
|
|
|
2146
2146
|
const a4 = e5.querySelector("#sf-recording-timer");
|
|
2147
2147
|
if (!a4) return;
|
|
2148
2148
|
const u3 = setInterval(() => {
|
|
2149
|
-
const e6 = Date.now() - (
|
|
2149
|
+
const e6 = Date.now() - (wt ?? Date.now()), u4 = Math.floor(e6 / 6e4).toString().padStart(2, "0"), w3 = Math.floor(e6 % 6e4 / 1e3).toString().padStart(2, "0");
|
|
2150
2150
|
a4.textContent = `${u4}:${w3}`;
|
|
2151
2151
|
}, 1e3);
|
|
2152
2152
|
setTimerInterval(u3);
|
|
@@ -2158,29 +2158,29 @@ function injectModalHTML(e = "lookback") {
|
|
|
2158
2158
|
It == null ? void 0 : It.addEventListener("click", (e3) => {
|
|
2159
2159
|
var _a2;
|
|
2160
2160
|
if (e3.target.closest("#sf-issue-submit-btn")) {
|
|
2161
|
-
const e4 = ((_a2 = document.getElementById("sf-issue-description")) == null ? void 0 : _a2.value) || "", a3 =
|
|
2162
|
-
if (
|
|
2161
|
+
const e4 = ((_a2 = document.getElementById("sf-issue-description")) == null ? void 0 : _a2.value) || "", a3 = bt.mode;
|
|
2162
|
+
if (bt.description = e4, bt.createIssue && !bt.issueName.trim()) return void alert("Issue title is required when creating an issue.");
|
|
2163
2163
|
let u2, w3;
|
|
2164
|
-
if ("startnow" === a3) u2 =
|
|
2164
|
+
if ("startnow" === a3) u2 = wt ?? Date.now() - 3e5, w3 = St ?? Date.now();
|
|
2165
2165
|
else {
|
|
2166
2166
|
const e5 = 60 * Number((x2 == null ? void 0 : x2.value) || "2") * 1e3;
|
|
2167
2167
|
w3 = Date.now(), u2 = w3 - e5;
|
|
2168
2168
|
}
|
|
2169
|
-
if (
|
|
2170
|
-
const a4 = document.getElementById("sf-issue-name"), x3 = document.getElementById("sf-eng-ticket-team"), I3 = document.getElementById("sf-eng-ticket-project"), M3 = document.getElementById("sf-eng-ticket-priority"), _3 = document.getElementById("sf-eng-ticket-type"), A3 = (a4 == null ? void 0 : a4.value) || "", F3 = e4, $3 = (x3 == null ? void 0 : x3.value) || "",
|
|
2169
|
+
if (bt.createIssue) {
|
|
2170
|
+
const a4 = document.getElementById("sf-issue-name"), x3 = document.getElementById("sf-eng-ticket-team"), I3 = document.getElementById("sf-eng-ticket-project"), M3 = document.getElementById("sf-eng-ticket-priority"), _3 = document.getElementById("sf-eng-ticket-type"), A3 = (a4 == null ? void 0 : a4.value) || "", F3 = e4, $3 = (x3 == null ? void 0 : x3.value) || "", B3 = (I3 == null ? void 0 : I3.value) || "", j3 = M3 ? Number(M3.value) : 0, U3 = bt.engTicketLabels, z3 = (_3 == null ? void 0 : _3.value) || "", W3 = { ...bt.engTicketCustomFields };
|
|
2171
2171
|
document.querySelectorAll(".sf-dynamic-field").forEach((e5) => {
|
|
2172
2172
|
const a5 = e5, u3 = a5.dataset.fieldId;
|
|
2173
2173
|
u3 && ("checkbox" === a5.type ? W3[u3] = a5.checked : "number" === a5.type ? W3[u3] = parseFloat(a5.value) || null : a5.classList.contains("sf-custom-multiselect") || (W3[u3] = a5.value));
|
|
2174
|
-
}), closeModal(), (async function createTriageAndIssue(e5, a5, u3, w4, x4, I4, M4, _4, A4, F4, $4,
|
|
2174
|
+
}), closeModal(), (async function createTriageAndIssue(e5, a5, u3, w4, x4, I4, M4, _4, A4, F4, $4, B4) {
|
|
2175
2175
|
var _a3, _b;
|
|
2176
2176
|
try {
|
|
2177
2177
|
showStatusModal(true);
|
|
2178
|
-
const
|
|
2178
|
+
const j4 = await createTriageAndIssueFromRecorder(xt.apiKey, xt.backendApi, getSessionIdSafely(), e5, a5, u3, w4, x4, I4, M4, _4, A4, F4, $4, B4), U4 = (_b = (_a3 = j4 == null ? void 0 : j4.data) == null ? void 0 : _a3.createTriageAndIssueFromRecorder) == null ? void 0 : _b.id;
|
|
2179
2179
|
U4 ? showStatusModal(false, { type: "issue", id: U4 }) : (console.error("No Issue ID returned from backend."), showStatusModal(false, null));
|
|
2180
2180
|
} catch (e6) {
|
|
2181
2181
|
console.error("Error creating triage and issue:", e6), showStatusModal(false, null);
|
|
2182
2182
|
}
|
|
2183
|
-
})(`${u2}`, `${w3}`, e4, A3, F3,
|
|
2183
|
+
})(`${u2}`, `${w3}`, e4, A3, F3, bt.createEngTicket, $3, B3, j3, U3, z3, W3);
|
|
2184
2184
|
} else closeModal(), (async function createTriage(e5, a4, u3) {
|
|
2185
2185
|
var _a3, _b;
|
|
2186
2186
|
try {
|
|
@@ -2193,21 +2193,21 @@ function injectModalHTML(e = "lookback") {
|
|
|
2193
2193
|
})(`${u2}`, `${w3}`, e4);
|
|
2194
2194
|
}
|
|
2195
2195
|
});
|
|
2196
|
-
})(), xt.deactivateIsolation = activateModalIsolation(It), xt.integrationData &&
|
|
2196
|
+
})(), xt.deactivateIsolation = activateModalIsolation(It), xt.integrationData && bt.createEngTicket ? (function initializeEngTicketForm() {
|
|
2197
2197
|
var _a2;
|
|
2198
2198
|
const e2 = xt.integrationData;
|
|
2199
2199
|
if (!e2) return;
|
|
2200
|
-
!
|
|
2201
|
-
!
|
|
2202
|
-
!
|
|
2203
|
-
if (updateFormWithIntegrationData(
|
|
2204
|
-
getFieldsForProject(
|
|
2200
|
+
!bt.engTicketTeam && e2.defaultTeam && (bt.engTicketTeam = e2.defaultTeam);
|
|
2201
|
+
!bt.engTicketProject && e2.defaultProject && (bt.engTicketProject = e2.defaultProject);
|
|
2202
|
+
!bt.engTicketPriority && e2.defaultPriority && (bt.engTicketPriority = e2.defaultPriority);
|
|
2203
|
+
if (updateFormWithIntegrationData(bt), "jira" === ((_a2 = e2.provider) == null ? void 0 : _a2.toLowerCase()) && e2.jiraReporterAccountId && bt.engTicketProject) {
|
|
2204
|
+
getFieldsForProject(bt.engTicketProject, bt.engTicketIssueType).find((e3) => "reporter" === e3.fieldId) && !bt.engTicketCustomFields.reporter && (bt.engTicketCustomFields.reporter = e2.jiraReporterAccountId);
|
|
2205
2205
|
}
|
|
2206
|
-
|
|
2207
|
-
})() : xt.integrationData || (
|
|
2206
|
+
bt.engTicketProject && renderDynamicFields(bt.engTicketProject, bt.engTicketIssueType);
|
|
2207
|
+
})() : xt.integrationData || (bt.createEngTicket = false);
|
|
2208
2208
|
}
|
|
2209
2209
|
function setActiveTab(e) {
|
|
2210
|
-
|
|
2210
|
+
bt.mode = e;
|
|
2211
2211
|
const a = It == null ? void 0 : It.querySelector("#sf-tab-lookback"), u = It == null ? void 0 : It.querySelector("#sf-tab-startnow");
|
|
2212
2212
|
"lookback" === e ? (a.style.background = "white", a.style.color = "#0F172A", u.style.background = "transparent", u.style.color = "#64748B") : (u.style.background = "white", u.style.color = "#0F172A", a.style.background = "transparent", a.style.color = "#64748B");
|
|
2213
2213
|
}
|
|
@@ -2215,9 +2215,9 @@ function updateModeSpecificUI(e) {
|
|
|
2215
2215
|
const a = document.querySelector("#sf-issue-mode-info div"), u = document.getElementById("sf-issue-submit-btn"), w2 = document.getElementById("sf-record-button-container"), x2 = document.getElementById("sf-recording-timer-label"), I2 = document.getElementById("sf-recording-timer-display"), M2 = document.getElementById("sf-modal-footer"), _2 = document.getElementById("sf-lookback-container");
|
|
2216
2216
|
if (a && u && w2 && x2 && I2 && M2 && _2) if ("startnow" === e) {
|
|
2217
2217
|
w2.style.display = "block", _2.style.display = "none", M2.style.justifyContent = "space-between", a.textContent = "I want to reproduce the issue right now.";
|
|
2218
|
-
const e2 = null !==
|
|
2219
|
-
if (u.disabled = !e2, u.style.opacity = e2 ? "1" : "0.4", u.style.cursor = e2 ? "pointer" : "not-allowed",
|
|
2220
|
-
const e3 = Math.floor((St -
|
|
2218
|
+
const e2 = null !== wt && null !== St;
|
|
2219
|
+
if (u.disabled = !e2, u.style.opacity = e2 ? "1" : "0.4", u.style.cursor = e2 ? "pointer" : "not-allowed", wt && St) {
|
|
2220
|
+
const e3 = Math.floor((St - wt) / 1e3), a2 = String(Math.floor(e3 / 60)).padStart(2, "0"), u2 = String(e3 % 60).padStart(2, "0");
|
|
2221
2221
|
x2.style.display = "block", I2.textContent = `${a2}:${u2}`;
|
|
2222
2222
|
} else x2.style.display = "none";
|
|
2223
2223
|
} else w2.style.display = "none", x2.style.display = "none", _2.style.display = "block", M2.style.justifyContent = "flex-end", a.textContent = "Something already happened. Capture the past few minutes.", u.disabled = false, u.style.opacity = "1", u.style.cursor = "pointer";
|
|
@@ -2241,17 +2241,17 @@ async function stopRecording() {
|
|
|
2241
2241
|
a2 && (a2.textContent = "Re-record");
|
|
2242
2242
|
}
|
|
2243
2243
|
const a = document.getElementById("sf-recording-timer-label"), u = document.getElementById("sf-recording-timer-display");
|
|
2244
|
-
if (a && u &&
|
|
2245
|
-
const e2 = Math.floor((St -
|
|
2244
|
+
if (a && u && wt && St) {
|
|
2245
|
+
const e2 = Math.floor((St - wt) / 1e3), w3 = Math.floor(e2 / 60).toString().padStart(2, "0"), x3 = (e2 % 60).toString().padStart(2, "0");
|
|
2246
2246
|
u.textContent = `${w3}:${x3}`, a.style.display = "block";
|
|
2247
2247
|
}
|
|
2248
2248
|
const w2 = document.getElementById("sf-issue-description");
|
|
2249
|
-
w2 && (w2.value =
|
|
2249
|
+
w2 && (w2.value = bt.description);
|
|
2250
2250
|
const x2 = document.querySelector('input[value="startnow"]');
|
|
2251
2251
|
x2 && (x2.checked = true);
|
|
2252
2252
|
const I2 = document.getElementById("sf-inline-record-chip"), M2 = document.getElementById("sf-inline-record-timer");
|
|
2253
2253
|
if (I2 && M2) {
|
|
2254
|
-
const e2 = Math.floor(((St ?? 0) - (
|
|
2254
|
+
const e2 = Math.floor(((St ?? 0) - (wt ?? 0)) / 1e3), a2 = Math.floor(e2 / 60).toString().padStart(2, "0"), u2 = Math.floor(e2 % 60).toString().padStart(2, "0");
|
|
2255
2255
|
M2.textContent = `${a2}:${u2}`, M2.style.color = "black", I2.style.display = "flex";
|
|
2256
2256
|
}
|
|
2257
2257
|
const _2 = document.getElementById("sf-issue-submit-btn");
|
|
@@ -2314,13 +2314,13 @@ function showStatusModal(e, a) {
|
|
|
2314
2314
|
(_a2 = document.getElementById("sf-triage-modal-close")) == null ? void 0 : _a2.addEventListener("click", () => {
|
|
2315
2315
|
fadeCardAndRemove(x2, F2, 300);
|
|
2316
2316
|
});
|
|
2317
|
-
const $2 = document.getElementById("sf-copy-triage-link"),
|
|
2318
|
-
e2 ? ($2.disabled = true, $2.style.opacity = "0.4", $2.style.cursor = "not-allowed",
|
|
2317
|
+
const $2 = document.getElementById("sf-copy-triage-link"), B2 = document.getElementById("sf-view-triage-btn");
|
|
2318
|
+
e2 ? ($2.disabled = true, $2.style.opacity = "0.4", $2.style.cursor = "not-allowed", B2.disabled = true, B2.style.opacity = "0.4", B2.style.cursor = "not-allowed") : ($2.disabled = false, $2.addEventListener("click", () => {
|
|
2319
2319
|
navigator.clipboard.writeText(w2).then(() => {
|
|
2320
2320
|
const e3 = document.getElementById("sf-copied-status");
|
|
2321
2321
|
e3 && (e3.style.display = "flex");
|
|
2322
2322
|
});
|
|
2323
|
-
}),
|
|
2323
|
+
}), B2.disabled = false, B2.addEventListener("click", () => {
|
|
2324
2324
|
(a2 || u) && window.open(w2, "_blank");
|
|
2325
2325
|
}), setTimeout(() => fadeCardAndRemove(x2, F2, 300), 1e4));
|
|
2326
2326
|
})(e, "triage" === (a == null ? void 0 : a.type) ? a.id : void 0, "issue" === (a == null ? void 0 : a.type) ? a.id : void 0);
|
|
@@ -2588,7 +2588,7 @@ function Nn(e, a, u, w2) {
|
|
|
2588
2588
|
return false;
|
|
2589
2589
|
}
|
|
2590
2590
|
function Zi(e, a) {
|
|
2591
|
-
const { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: M2, inlineStylesheet: _2, maskInputOptions: A2 = {}, maskTextFn: F2, maskInputFn: $2, dataURLOptions:
|
|
2591
|
+
const { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: M2, inlineStylesheet: _2, maskInputOptions: A2 = {}, maskTextFn: F2, maskInputFn: $2, dataURLOptions: B2 = {}, inlineImages: j2, recordCanvas: U2, keepIframeSrcFn: z2, newlyAddedElement: W2 = false, corruptedRules: G2 } = a, H2 = (function Hi(e2, a2) {
|
|
2592
2592
|
if (!a2.hasNode(e2)) return;
|
|
2593
2593
|
const u2 = a2.getId(e2);
|
|
2594
2594
|
return 1 === u2 ? void 0 : u2;
|
|
@@ -2600,7 +2600,7 @@ function Zi(e, a) {
|
|
|
2600
2600
|
return { type: Ot.DocumentType, name: e.name, publicId: e.publicId, systemId: e.systemId, rootId: H2 };
|
|
2601
2601
|
case e.ELEMENT_NODE:
|
|
2602
2602
|
return (function Ji(e2, a2) {
|
|
2603
|
-
const { doc: u2, blockClass: w3, blockSelector: x3, inlineStylesheet: I3, maskInputOptions: M3 = {}, maskInputFn: _3, dataURLOptions: A3 = {}, inlineImages: F3, recordCanvas: $3, keepIframeSrcFn:
|
|
2603
|
+
const { doc: u2, blockClass: w3, blockSelector: x3, inlineStylesheet: I3, maskInputOptions: M3 = {}, maskInputFn: _3, dataURLOptions: A3 = {}, inlineImages: F3, recordCanvas: $3, keepIframeSrcFn: B3, newlyAddedElement: j3 = false, rootId: U3, corruptedRules: z3 } = a2, W3 = (function $i(e3, a3, u3) {
|
|
2604
2604
|
try {
|
|
2605
2605
|
if ("string" == typeof a3) {
|
|
2606
2606
|
if (e3.classList.contains(a3)) return true;
|
|
@@ -2688,18 +2688,18 @@ function Zi(e, a) {
|
|
|
2688
2688
|
const a3 = H3;
|
|
2689
2689
|
a3.rr_mediaState = e2.paused ? "paused" : "played", a3.rr_mediaCurrentTime = e2.currentTime, a3.rr_mediaPlaybackRate = e2.playbackRate, a3.rr_mediaMuted = e2.muted, a3.rr_mediaLoop = e2.loop, a3.rr_mediaVolume = e2.volume;
|
|
2690
2690
|
}
|
|
2691
|
-
if (
|
|
2691
|
+
if (j3 || (e2.scrollLeft && (H3.rr_scrollLeft = e2.scrollLeft), e2.scrollTop && (H3.rr_scrollTop = e2.scrollTop)), W3) {
|
|
2692
2692
|
const { width: a3, height: u3 } = e2.getBoundingClientRect();
|
|
2693
2693
|
H3 = { class: H3.class, rr_width: `${a3}px`, rr_height: `${u3}px` };
|
|
2694
2694
|
}
|
|
2695
2695
|
let Y2;
|
|
2696
|
-
"iframe" === G3 && !
|
|
2696
|
+
"iframe" === G3 && !B3(H3.src) && (e2.contentDocument || (H3.rr_src = H3.src), delete H3.src);
|
|
2697
2697
|
try {
|
|
2698
2698
|
customElements.get(G3) && (Y2 = true);
|
|
2699
2699
|
} catch {
|
|
2700
2700
|
}
|
|
2701
2701
|
return { type: Ot.Element, tagName: G3, attributes: H3, childNodes: [], isSVG: Vi(e2) || void 0, needBlock: W3, rootId: U3, isCustom: Y2 };
|
|
2702
|
-
})(e, { doc: u, blockClass: x2, blockSelector: I2, inlineStylesheet: _2, maskInputOptions: A2, maskInputFn: $2, dataURLOptions:
|
|
2702
|
+
})(e, { doc: u, blockClass: x2, blockSelector: I2, inlineStylesheet: _2, maskInputOptions: A2, maskInputFn: $2, dataURLOptions: B2, inlineImages: j2, recordCanvas: U2, keepIframeSrcFn: z2, newlyAddedElement: W2, rootId: H2, corruptedRules: G2 });
|
|
2703
2703
|
case e.TEXT_NODE:
|
|
2704
2704
|
return (function Xi(e2, a2) {
|
|
2705
2705
|
var u2;
|
|
@@ -2728,10 +2728,10 @@ function F$1(e) {
|
|
|
2728
2728
|
return null == e ? "" : e.toLowerCase();
|
|
2729
2729
|
}
|
|
2730
2730
|
function ke(e, a) {
|
|
2731
|
-
const { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, maskTextClass: M2, maskTextSelector: _2, skipChild: A2 = false, inlineStylesheet: F2 = true, maskInputOptions: $2 = {}, maskTextFn:
|
|
2731
|
+
const { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, maskTextClass: M2, maskTextSelector: _2, skipChild: A2 = false, inlineStylesheet: F2 = true, maskInputOptions: $2 = {}, maskTextFn: B2, maskInputFn: j2, slimDOMOptions: U2, dataURLOptions: z2 = {}, inlineImages: W2 = false, recordCanvas: G2 = false, onSerialize: H2, onIframeLoad: K2, iframeLoadTimeout: Y2 = 5e3, onStylesheetLoad: Z2, stylesheetLoadTimeout: J2 = 5e3, keepIframeSrcFn: X2 = () => false, newlyAddedElement: Q2 = false, corruptedRules: ee2 } = a;
|
|
2732
2732
|
let { needsMask: te2 } = a, { preserveWhiteSpace: ne2 = true } = a;
|
|
2733
2733
|
te2 || (te2 = Nn(e, M2, _2, void 0 === te2));
|
|
2734
|
-
const re2 = Zi(e, { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: te2, inlineStylesheet: F2, maskInputOptions: $2, maskTextFn:
|
|
2734
|
+
const re2 = Zi(e, { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: te2, inlineStylesheet: F2, maskInputOptions: $2, maskTextFn: B2, maskInputFn: j2, dataURLOptions: z2, inlineImages: W2, recordCanvas: G2, keepIframeSrcFn: X2, newlyAddedElement: Q2, corruptedRules: ee2 });
|
|
2735
2735
|
if (!re2) return console.warn(e, "not serialized"), null;
|
|
2736
2736
|
let se2;
|
|
2737
2737
|
se2 = w2.hasNode(e) ? w2.getId(e) : (function Ki(e2, a2) {
|
|
@@ -2748,7 +2748,7 @@ function ke(e, a) {
|
|
|
2748
2748
|
}
|
|
2749
2749
|
if ((le2.type === Ot.Document || le2.type === Ot.Element) && ce2) {
|
|
2750
2750
|
U2.headWhitespace && le2.type === Ot.Element && "head" === le2.tagName && (ne2 = false);
|
|
2751
|
-
const a2 = { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: te2, maskTextClass: M2, maskTextSelector: _2, skipChild: A2, inlineStylesheet: F2, maskInputOptions: $2, maskTextFn:
|
|
2751
|
+
const a2 = { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: te2, maskTextClass: M2, maskTextSelector: _2, skipChild: A2, inlineStylesheet: F2, maskInputOptions: $2, maskTextFn: B2, maskInputFn: j2, slimDOMOptions: U2, dataURLOptions: z2, inlineImages: W2, recordCanvas: G2, preserveWhiteSpace: ne2, onSerialize: H2, onIframeLoad: K2, iframeLoadTimeout: Y2, onStylesheetLoad: Z2, stylesheetLoadTimeout: J2, keepIframeSrcFn: X2, corruptedRules: ee2 };
|
|
2752
2752
|
if (le2.type !== Ot.Element || "textarea" !== le2.tagName || void 0 === le2.attributes.value) for (const u2 of Array.from(e.childNodes)) {
|
|
2753
2753
|
const e2 = ke(u2, a2);
|
|
2754
2754
|
e2 && le2.childNodes.push(e2);
|
|
@@ -2781,7 +2781,7 @@ function ke(e, a) {
|
|
|
2781
2781
|
})(e, () => {
|
|
2782
2782
|
const a2 = e.contentDocument;
|
|
2783
2783
|
if (a2 && K2) {
|
|
2784
|
-
const u2 = ke(a2, { doc: a2, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: te2, maskTextClass: M2, maskTextSelector: _2, skipChild: false, inlineStylesheet: F2, maskInputOptions: $2, maskTextFn:
|
|
2784
|
+
const u2 = ke(a2, { doc: a2, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: te2, maskTextClass: M2, maskTextSelector: _2, skipChild: false, inlineStylesheet: F2, maskInputOptions: $2, maskTextFn: B2, maskInputFn: j2, slimDOMOptions: U2, dataURLOptions: z2, inlineImages: W2, recordCanvas: G2, preserveWhiteSpace: ne2, onSerialize: H2, onIframeLoad: K2, iframeLoadTimeout: Y2, onStylesheetLoad: Z2, stylesheetLoadTimeout: J2, keepIframeSrcFn: X2 });
|
|
2785
2785
|
u2 && K2(e, u2);
|
|
2786
2786
|
}
|
|
2787
2787
|
}, Y2), le2.type === Ot.Element && "link" === le2.tagName && "string" == typeof le2.attributes.rel && ("stylesheet" === le2.attributes.rel || "preload" === le2.attributes.rel && "string" == typeof le2.attributes.href && "css" === Ln(le2.attributes.href)) && (function Yi(e2, a2, u2) {
|
|
@@ -2800,7 +2800,7 @@ function ke(e, a) {
|
|
|
2800
2800
|
});
|
|
2801
2801
|
})(e, () => {
|
|
2802
2802
|
if (Z2) {
|
|
2803
|
-
const a2 = ke(e, { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: te2, maskTextClass: M2, maskTextSelector: _2, skipChild: false, inlineStylesheet: F2, maskInputOptions: $2, maskTextFn:
|
|
2803
|
+
const a2 = ke(e, { doc: u, mirror: w2, blockClass: x2, blockSelector: I2, needsMask: te2, maskTextClass: M2, maskTextSelector: _2, skipChild: false, inlineStylesheet: F2, maskInputOptions: $2, maskTextFn: B2, maskInputFn: j2, slimDOMOptions: U2, dataURLOptions: z2, inlineImages: W2, recordCanvas: G2, preserveWhiteSpace: ne2, onSerialize: H2, onIframeLoad: K2, iframeLoadTimeout: Y2, onStylesheetLoad: Z2, stylesheetLoadTimeout: J2, keepIframeSrcFn: X2 });
|
|
2804
2804
|
a2 && Z2(e, a2);
|
|
2805
2805
|
}
|
|
2806
2806
|
}, J2), le2;
|
|
@@ -3018,7 +3018,7 @@ var mn = xs;
|
|
|
3018
3018
|
xs.default = xs;
|
|
3019
3019
|
var gn = {};
|
|
3020
3020
|
gn.isClean = Symbol("isClean"), gn.my = Symbol("my");
|
|
3021
|
-
let yn = cn,
|
|
3021
|
+
let yn = cn, bn = pn, wn = mn, { isClean: Sn, my: vn } = gn;
|
|
3022
3022
|
function Is(e, a) {
|
|
3023
3023
|
let u = new e.constructor();
|
|
3024
3024
|
for (let w2 in e) {
|
|
@@ -3137,7 +3137,7 @@ let Cn = class {
|
|
|
3137
3137
|
return (w2.line < u.line || w2.line === u.line && w2.column <= u.column) && (w2 = { column: u.column + 1, line: u.line, offset: u.offset + 1 }), { end: w2, start: u };
|
|
3138
3138
|
}
|
|
3139
3139
|
raw(e, a) {
|
|
3140
|
-
return new
|
|
3140
|
+
return new bn().raw(this, e, a);
|
|
3141
3141
|
}
|
|
3142
3142
|
remove() {
|
|
3143
3143
|
return this.parent && this.parent.removeChild(this), this.parent = void 0, this;
|
|
@@ -3175,7 +3175,7 @@ let Cn = class {
|
|
|
3175
3175
|
toProxy() {
|
|
3176
3176
|
return this.proxyCache || (this.proxyCache = new Proxy(this, this.getProxyProcessor())), this.proxyCache;
|
|
3177
3177
|
}
|
|
3178
|
-
toString(e =
|
|
3178
|
+
toString(e = wn) {
|
|
3179
3179
|
e.stringify && (e = e.stringify);
|
|
3180
3180
|
let a = "";
|
|
3181
3181
|
return e(this, (e2) => {
|
|
@@ -3195,9 +3195,9 @@ let En = xn, _n = class extends En {
|
|
|
3195
3195
|
super(e), this.type = "comment";
|
|
3196
3196
|
}
|
|
3197
3197
|
};
|
|
3198
|
-
var
|
|
3198
|
+
var Bn = _n;
|
|
3199
3199
|
_n.default = _n;
|
|
3200
|
-
let
|
|
3200
|
+
let jn = xn, Un = class extends jn {
|
|
3201
3201
|
get variable() {
|
|
3202
3202
|
return this.prop.startsWith("--") || "$" === this.prop[0];
|
|
3203
3203
|
}
|
|
@@ -3207,7 +3207,7 @@ let Bn = xn, Un = class extends Bn {
|
|
|
3207
3207
|
};
|
|
3208
3208
|
var zn = Un;
|
|
3209
3209
|
Un.default = Un;
|
|
3210
|
-
let Wn, Vn, Hn, qn, Kn =
|
|
3210
|
+
let Wn, Vn, Hn, qn, Kn = Bn, Zn = zn, Jn = xn, { isClean: Xn, my: Qn } = gn;
|
|
3211
3211
|
function $n(e) {
|
|
3212
3212
|
return e.map((e2) => (e2.nodes && (e2.nodes = $n(e2.nodes)), delete e2.source, e2));
|
|
3213
3213
|
}
|
|
@@ -3477,9 +3477,9 @@ let yr = class {
|
|
|
3477
3477
|
return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);
|
|
3478
3478
|
}
|
|
3479
3479
|
};
|
|
3480
|
-
var
|
|
3480
|
+
var br = yr;
|
|
3481
3481
|
yr.default = yr;
|
|
3482
|
-
let { nanoid:
|
|
3482
|
+
let { nanoid: wr } = ur, { isAbsolute: Sr, resolve: vr } = nn, { SourceMapConsumer: Mr, SourceMapGenerator: Er } = nn, { fileURLToPath: _r, pathToFileURL: Or } = nn, Lr = cn, Tr = br, Rr = nn, Ar = Symbol("lineToIndexCache"), Nr = !(!Mr || !Er), Fr = !(!vr || !Sr);
|
|
3483
3483
|
function Ur(e) {
|
|
3484
3484
|
if (e[Ar]) return e[Ar];
|
|
3485
3485
|
let a = e.css.split("\n"), u = new Array(a.length), w2 = 0;
|
|
@@ -3500,7 +3500,7 @@ let Pr = class {
|
|
|
3500
3500
|
!this.file && a2 && (this.file = this.mapResolve(a2));
|
|
3501
3501
|
}
|
|
3502
3502
|
}
|
|
3503
|
-
this.file || (this.id = "<input css " +
|
|
3503
|
+
this.file || (this.id = "<input css " + wr(6) + ">"), this.map && (this.map.file = this.from);
|
|
3504
3504
|
}
|
|
3505
3505
|
error(e, a, u, w2 = {}) {
|
|
3506
3506
|
let x2, I2, M2, _2, A2;
|
|
@@ -3568,7 +3568,7 @@ let Pr = class {
|
|
|
3568
3568
|
};
|
|
3569
3569
|
var Dr = Pr;
|
|
3570
3570
|
Pr.default = Pr, Rr && Rr.registerInput && Rr.registerInput(Pr);
|
|
3571
|
-
let $r,
|
|
3571
|
+
let $r, Br, jr = tr, zr = class extends jr {
|
|
3572
3572
|
constructor(e) {
|
|
3573
3573
|
super(e), this.type = "root", this.nodes || (this.nodes = []);
|
|
3574
3574
|
}
|
|
@@ -3585,16 +3585,16 @@ let $r, jr, Br = tr, zr = class extends Br {
|
|
|
3585
3585
|
return !a && 0 === u && this.nodes.length > 1 && (this.nodes[1].raws.before = this.nodes[u].raws.before), super.removeChild(e);
|
|
3586
3586
|
}
|
|
3587
3587
|
toResult(e = {}) {
|
|
3588
|
-
return new $r(new
|
|
3588
|
+
return new $r(new Br(), this, e).stringify();
|
|
3589
3589
|
}
|
|
3590
3590
|
};
|
|
3591
3591
|
zr.registerLazyResult = (e) => {
|
|
3592
3592
|
$r = e;
|
|
3593
3593
|
}, zr.registerProcessor = (e) => {
|
|
3594
|
-
|
|
3594
|
+
Br = e;
|
|
3595
3595
|
};
|
|
3596
3596
|
var Wr = zr;
|
|
3597
|
-
zr.default = zr,
|
|
3597
|
+
zr.default = zr, jr.registerRoot(zr);
|
|
3598
3598
|
let Gr = { comma: (e) => Gr.split(e, [","], true), space(e) {
|
|
3599
3599
|
let a = [" ", "\n", " "];
|
|
3600
3600
|
return Gr.split(e, a);
|
|
@@ -3619,7 +3619,7 @@ let qr = tr, Zr = Vr, eo = class extends qr {
|
|
|
3619
3619
|
};
|
|
3620
3620
|
var to = eo;
|
|
3621
3621
|
eo.default = eo, qr.registerRule(eo);
|
|
3622
|
-
let no = or, ro =
|
|
3622
|
+
let no = or, ro = Bn, oo = zn, so = Dr, io = br, ao = Wr, po = to;
|
|
3623
3623
|
function Ye(e, a) {
|
|
3624
3624
|
if (Array.isArray(e)) return e.map((e2) => Ye(e2));
|
|
3625
3625
|
let { inputs: u, ...w2 } = e;
|
|
@@ -3643,7 +3643,7 @@ function Ye(e, a) {
|
|
|
3643
3643
|
}
|
|
3644
3644
|
var ho = Ye;
|
|
3645
3645
|
Ye.default = Ye;
|
|
3646
|
-
let { dirname: fo, relative: mo, resolve: go, sep: yo } = nn, { SourceMapConsumer: wo, SourceMapGenerator: _o } = nn, { pathToFileURL: Ao } = nn, $o = Dr,
|
|
3646
|
+
let { dirname: fo, relative: mo, resolve: go, sep: yo } = nn, { SourceMapConsumer: wo, SourceMapGenerator: _o } = nn, { pathToFileURL: Ao } = nn, $o = Dr, Bo = !(!wo || !_o), jo = !!(fo && go && mo && yo);
|
|
3647
3647
|
var zo = class {
|
|
3648
3648
|
constructor(e, a, u, w2) {
|
|
3649
3649
|
this.stringify = e, this.mapOpts = u.map || {}, this.root = a, this.opts = u, this.css = w2, this.originalCSS = w2, this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute, this.memoizedFileURLs = /* @__PURE__ */ new Map(), this.memoizedPaths = /* @__PURE__ */ new Map(), this.memoizedURLs = /* @__PURE__ */ new Map();
|
|
@@ -3667,7 +3667,7 @@ var zo = class {
|
|
|
3667
3667
|
} else this.css && (this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, ""));
|
|
3668
3668
|
}
|
|
3669
3669
|
generate() {
|
|
3670
|
-
if (this.clearAnnotation(),
|
|
3670
|
+
if (this.clearAnnotation(), jo && Bo && this.isMap()) return this.generateMap();
|
|
3671
3671
|
{
|
|
3672
3672
|
let e = "";
|
|
3673
3673
|
return this.stringify(this.root, (a) => {
|
|
@@ -3773,8 +3773,8 @@ var zo = class {
|
|
|
3773
3773
|
}
|
|
3774
3774
|
};
|
|
3775
3775
|
const Wo = /[\t\n\f\r "#'()/;[\\\]{}]/g, Vo = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g, Ho = /.[\r\n"'(/\\]/, qo = /[\da-f]/i;
|
|
3776
|
-
let Ko = or, Jo =
|
|
3777
|
-
let u, w2, x2, I2, M2, _2, A2, F2, $2,
|
|
3776
|
+
let Ko = or, Jo = Bn, Xo = zn, Qo = Wr, es = to, tl = function(e, a = {}) {
|
|
3777
|
+
let u, w2, x2, I2, M2, _2, A2, F2, $2, B2, j2 = e.css.valueOf(), U2 = a.ignoreErrors, z2 = j2.length, W2 = 0, G2 = [], H2 = [];
|
|
3778
3778
|
function v(a2) {
|
|
3779
3779
|
throw e.error("Unclosed " + a2, W2);
|
|
3780
3780
|
}
|
|
@@ -3786,7 +3786,7 @@ let Ko = or, Jo = jn, Xo = zn, Qo = Wr, es = to, tl = function(e, a = {}) {
|
|
|
3786
3786
|
if (H2.length) return H2.pop();
|
|
3787
3787
|
if (W2 >= z2) return;
|
|
3788
3788
|
let a2 = !!e2 && e2.ignoreUnclosed;
|
|
3789
|
-
switch (u =
|
|
3789
|
+
switch (u = j2.charCodeAt(W2), u) {
|
|
3790
3790
|
case 10:
|
|
3791
3791
|
case 32:
|
|
3792
3792
|
case 9:
|
|
@@ -3794,9 +3794,9 @@ let Ko = or, Jo = jn, Xo = zn, Qo = Wr, es = to, tl = function(e, a = {}) {
|
|
|
3794
3794
|
case 12:
|
|
3795
3795
|
I2 = W2;
|
|
3796
3796
|
do {
|
|
3797
|
-
I2 += 1, u =
|
|
3797
|
+
I2 += 1, u = j2.charCodeAt(I2);
|
|
3798
3798
|
} while (32 === u || 10 === u || 9 === u || 13 === u || 12 === u);
|
|
3799
|
-
_2 = ["space",
|
|
3799
|
+
_2 = ["space", j2.slice(W2, I2)], W2 = I2 - 1;
|
|
3800
3800
|
break;
|
|
3801
3801
|
case 91:
|
|
3802
3802
|
case 93:
|
|
@@ -3810,49 +3810,49 @@ let Ko = or, Jo = jn, Xo = zn, Qo = Wr, es = to, tl = function(e, a = {}) {
|
|
|
3810
3810
|
break;
|
|
3811
3811
|
}
|
|
3812
3812
|
case 40:
|
|
3813
|
-
if (
|
|
3813
|
+
if (B2 = G2.length ? G2.pop()[1] : "", $2 = j2.charCodeAt(W2 + 1), "url" === B2 && 39 !== $2 && 34 !== $2 && 32 !== $2 && 10 !== $2 && 9 !== $2 && 12 !== $2 && 13 !== $2) {
|
|
3814
3814
|
I2 = W2;
|
|
3815
3815
|
do {
|
|
3816
|
-
if (A2 = false, I2 =
|
|
3816
|
+
if (A2 = false, I2 = j2.indexOf(")", I2 + 1), -1 === I2) {
|
|
3817
3817
|
if (U2 || a2) {
|
|
3818
3818
|
I2 = W2;
|
|
3819
3819
|
break;
|
|
3820
3820
|
}
|
|
3821
3821
|
v("bracket");
|
|
3822
3822
|
}
|
|
3823
|
-
for (F2 = I2; 92 ===
|
|
3823
|
+
for (F2 = I2; 92 === j2.charCodeAt(F2 - 1); ) F2 -= 1, A2 = !A2;
|
|
3824
3824
|
} while (A2);
|
|
3825
|
-
_2 = ["brackets",
|
|
3826
|
-
} else I2 =
|
|
3825
|
+
_2 = ["brackets", j2.slice(W2, I2 + 1), W2, I2], W2 = I2;
|
|
3826
|
+
} else I2 = j2.indexOf(")", W2 + 1), w2 = j2.slice(W2, I2 + 1), -1 === I2 || Ho.test(w2) ? _2 = ["(", "(", W2] : (_2 = ["brackets", w2, W2, I2], W2 = I2);
|
|
3827
3827
|
break;
|
|
3828
3828
|
case 39:
|
|
3829
3829
|
case 34:
|
|
3830
3830
|
M2 = 39 === u ? "'" : '"', I2 = W2;
|
|
3831
3831
|
do {
|
|
3832
|
-
if (A2 = false, I2 =
|
|
3832
|
+
if (A2 = false, I2 = j2.indexOf(M2, I2 + 1), -1 === I2) {
|
|
3833
3833
|
if (U2 || a2) {
|
|
3834
3834
|
I2 = W2 + 1;
|
|
3835
3835
|
break;
|
|
3836
3836
|
}
|
|
3837
3837
|
v("string");
|
|
3838
3838
|
}
|
|
3839
|
-
for (F2 = I2; 92 ===
|
|
3839
|
+
for (F2 = I2; 92 === j2.charCodeAt(F2 - 1); ) F2 -= 1, A2 = !A2;
|
|
3840
3840
|
} while (A2);
|
|
3841
|
-
_2 = ["string",
|
|
3841
|
+
_2 = ["string", j2.slice(W2, I2 + 1), W2, I2], W2 = I2;
|
|
3842
3842
|
break;
|
|
3843
3843
|
case 64:
|
|
3844
|
-
Wo.lastIndex = W2 + 1, Wo.test(
|
|
3844
|
+
Wo.lastIndex = W2 + 1, Wo.test(j2), I2 = 0 === Wo.lastIndex ? j2.length - 1 : Wo.lastIndex - 2, _2 = ["at-word", j2.slice(W2, I2 + 1), W2, I2], W2 = I2;
|
|
3845
3845
|
break;
|
|
3846
3846
|
case 92:
|
|
3847
|
-
for (I2 = W2, x2 = true; 92 ===
|
|
3848
|
-
if (u =
|
|
3849
|
-
for (; qo.test(
|
|
3850
|
-
32 ===
|
|
3847
|
+
for (I2 = W2, x2 = true; 92 === j2.charCodeAt(I2 + 1); ) I2 += 1, x2 = !x2;
|
|
3848
|
+
if (u = j2.charCodeAt(I2 + 1), x2 && 47 !== u && 32 !== u && 10 !== u && 9 !== u && 13 !== u && 12 !== u && (I2 += 1, qo.test(j2.charAt(I2)))) {
|
|
3849
|
+
for (; qo.test(j2.charAt(I2 + 1)); ) I2 += 1;
|
|
3850
|
+
32 === j2.charCodeAt(I2 + 1) && (I2 += 1);
|
|
3851
3851
|
}
|
|
3852
|
-
_2 = ["word",
|
|
3852
|
+
_2 = ["word", j2.slice(W2, I2 + 1), W2, I2], W2 = I2;
|
|
3853
3853
|
break;
|
|
3854
3854
|
default:
|
|
3855
|
-
47 === u && 42 ===
|
|
3855
|
+
47 === u && 42 === j2.charCodeAt(W2 + 1) ? (I2 = j2.indexOf("*/", W2 + 2) + 1, 0 === I2 && (U2 || a2 ? I2 = j2.length : v("comment")), _2 = ["comment", j2.slice(W2, I2 + 1), W2, I2], W2 = I2) : (Vo.lastIndex = W2 + 1, Vo.test(j2), I2 = 0 === Vo.lastIndex ? j2.length - 1 : Vo.lastIndex - 2, _2 = ["word", j2.slice(W2, I2 + 1), W2, I2], G2.push(_2), W2 = I2);
|
|
3856
3856
|
}
|
|
3857
3857
|
return W2++, _2;
|
|
3858
3858
|
}, position: function b() {
|
|
@@ -4155,7 +4155,7 @@ let hs = {};
|
|
|
4155
4155
|
var lo = function(e) {
|
|
4156
4156
|
hs[e] || (hs[e] = true, typeof console < "u" && console.warn && console.warn(e));
|
|
4157
4157
|
};
|
|
4158
|
-
let fs = tr, ms = cr, ys = zo,
|
|
4158
|
+
let fs = tr, ms = cr, ys = zo, bs = as, ws = ps, Ss = Wr, vs = mn, { isClean: ks, my: Cs } = gn, Ms = lo;
|
|
4159
4159
|
const Es = { atrule: "AtRule", comment: "Comment", decl: "Declaration", document: "Document", root: "Root", rule: "Rule" }, Os = { AtRule: true, AtRuleExit: true, Comment: true, CommentExit: true, Declaration: true, DeclarationExit: true, Document: true, DocumentExit: true, Once: true, OnceExit: true, postcssPlugin: true, prepare: true, Root: true, RootExit: true, Rule: true, RuleExit: true }, Ls = { Once: true, postcssPlugin: true, prepare: true };
|
|
4160
4160
|
function Fe(e) {
|
|
4161
4161
|
return "object" == typeof e && "function" == typeof e.then;
|
|
@@ -4198,9 +4198,9 @@ let Ts = {}, Rs = class co {
|
|
|
4198
4198
|
}
|
|
4199
4199
|
constructor(e, a, u) {
|
|
4200
4200
|
let w2;
|
|
4201
|
-
if (this.stringified = false, this.processed = false, "object" != typeof a || null === a || "root" !== a.type && "document" !== a.type) if (a instanceof co || a instanceof
|
|
4201
|
+
if (this.stringified = false, this.processed = false, "object" != typeof a || null === a || "root" !== a.type && "document" !== a.type) if (a instanceof co || a instanceof ws) w2 = Ns(a.root), a.map && (typeof u.map > "u" && (u.map = {}), u.map.inline || (u.map.inline = false), u.map.prev = a.map);
|
|
4202
4202
|
else {
|
|
4203
|
-
let e2 =
|
|
4203
|
+
let e2 = bs;
|
|
4204
4204
|
u.syntax && (e2 = u.syntax.parse), u.parser && (e2 = u.parser), e2.parse && (e2 = e2.parse);
|
|
4205
4205
|
try {
|
|
4206
4206
|
w2 = e2(a, u);
|
|
@@ -4210,7 +4210,7 @@ let Ts = {}, Rs = class co {
|
|
|
4210
4210
|
w2 && !w2[Cs] && fs.rebuild(w2);
|
|
4211
4211
|
}
|
|
4212
4212
|
else w2 = Ns(a);
|
|
4213
|
-
this.result = new
|
|
4213
|
+
this.result = new ws(e, w2, u), this.helpers = { ...Ts, postcss: Ts, result: this.result }, this.plugins = this.processor.plugins.map((e2) => "object" == typeof e2 && e2.prepare ? { ...e2, ...e2.prepare(this.result) } : e2);
|
|
4214
4214
|
}
|
|
4215
4215
|
async() {
|
|
4216
4216
|
return this.error ? Promise.reject(this.error) : this.processed ? Promise.resolve(this.result) : (this.processing || (this.processing = this.runAsync()), this.processing);
|
|
@@ -4488,7 +4488,7 @@ let Hs = cr, qs = As, Ks = Gs, Ys = Wr, Zs = class {
|
|
|
4488
4488
|
};
|
|
4489
4489
|
var Js = Zs;
|
|
4490
4490
|
Zs.default = Zs, Ys.registerProcessor(Zs), Hs.registerProcessor(Zs);
|
|
4491
|
-
let Xs = or, ei =
|
|
4491
|
+
let Xs = or, ei = Bn, ti = tr, ni = cn, ri = zn, oi = cr, si = ho, ii = Dr, ai = As, li = Vr, di = xn, pi = as, fi = Js, mi = ps, gi = Wr, yi = to, bi = mn, wi = cs;
|
|
4492
4492
|
function N(...e) {
|
|
4493
4493
|
return 1 === e.length && Array.isArray(e[0]) && (e = e[0]), new fi(e);
|
|
4494
4494
|
}
|
|
@@ -4502,7 +4502,7 @@ N.plugin = function(e, a) {
|
|
|
4502
4502
|
return Object.defineProperty(r, "postcss", { get: () => (u || (u = r()), u) }), r.process = function(e2, a2, u2) {
|
|
4503
4503
|
return N([r(u2)]).process(e2, a2);
|
|
4504
4504
|
}, r;
|
|
4505
|
-
}, N.stringify =
|
|
4505
|
+
}, N.stringify = bi, N.parse = pi, N.fromJSON = si, N.list = li, N.comment = (e) => new ei(e), N.atRule = (e) => new Xs(e), N.decl = (e) => new ri(e), N.rule = (e) => new yi(e), N.root = (e) => new gi(e), N.document = (e) => new oi(e), N.CssSyntaxError = ni, N.Declaration = ri, N.Container = ti, N.Processor = fi, N.Document = oi, N.Comment = ei, N.Warning = wi, N.AtRule = Xs, N.Result = mi, N.Input = ii, N.Rule = yi, N.Root = gi, N.Node = di, ai.registerPostcss(N);
|
|
4506
4506
|
var Si = N;
|
|
4507
4507
|
N.default = N;
|
|
4508
4508
|
const vi = qi(Si);
|
|
@@ -4905,9 +4905,9 @@ class eu {
|
|
|
4905
4905
|
let _2 = 0;
|
|
4906
4906
|
const A2 = u3.length - I2, F2 = w3.length - I2, $2 = Math.min(A2, F2);
|
|
4907
4907
|
for (; _2 < $2 && u3[u3.length - 1 - _2] === w3[w3.length - 1 - _2]; ) _2++;
|
|
4908
|
-
const
|
|
4908
|
+
const B2 = u3.length - I2 - _2, j2 = w3.length - I2 - _2, U2 = w3.slice(I2, w3.length - _2);
|
|
4909
4909
|
let z2;
|
|
4910
|
-
return z2 = 0 ===
|
|
4910
|
+
return z2 = 0 === B2 && j2 > 0 ? { op: _i.Insert, pos: I2, text: U2 } : B2 > 0 && 0 === j2 ? { op: _i.Delete, pos: I2, length: B2 } : { op: _i.Replace, pos: I2, deleteCount: B2, text: U2 }, { delta: z2, deltaSize: mt({ delta: z2 }), fullTextSize: x3 };
|
|
4911
4911
|
})(e2.oldValue, e2.value);
|
|
4912
4912
|
if ((function Ql(e3) {
|
|
4913
4913
|
return !!e3.delta && e3.deltaSize < 0.8 * e3.fullTextSize;
|
|
@@ -5082,8 +5082,8 @@ function ru({ mouseInteractionCb: e, doc: a, mirror: u, blockClass: w2, blockSel
|
|
|
5082
5082
|
null !== _3 ? (A2 = _3, (F3.startsWith("Touch") && _3 === Fi.Touch || F3.startsWith("Mouse") && _3 === Fi.Mouse) && (_3 = null)) : Ai[a2] === Ai.Click && (_3 = A2, A2 = null);
|
|
5083
5083
|
const $2 = Us(I4) ? I4.changedTouches[0] : I4;
|
|
5084
5084
|
if (!$2) return;
|
|
5085
|
-
const
|
|
5086
|
-
E(e)({ type: Ai[F3], id:
|
|
5085
|
+
const B2 = u.getId(M4), { clientX: j2, clientY: U2 } = $2;
|
|
5086
|
+
E(e)({ type: Ai[F3], id: B2, x: j2, y: U2, ...null !== _3 && { pointerType: _3 } });
|
|
5087
5087
|
})(I3);
|
|
5088
5088
|
if (window.PointerEvent) switch (Ai[I3]) {
|
|
5089
5089
|
case Ai.MouseDown:
|
|
@@ -5187,7 +5187,7 @@ function gu(e, a = {}) {
|
|
|
5187
5187
|
};
|
|
5188
5188
|
let w2;
|
|
5189
5189
|
!(function mu(e2, a2) {
|
|
5190
|
-
const { mutationCb: u2, mousemoveCb: w3, mouseInteractionCb: x3, scrollCb: I3, viewportResizeCb: M3, inputCb: _3, typingCb: A3, deviceChangeCb: F3, mediaInteractionCb: $3, styleSheetRuleCb:
|
|
5190
|
+
const { mutationCb: u2, mousemoveCb: w3, mouseInteractionCb: x3, scrollCb: I3, viewportResizeCb: M3, inputCb: _3, typingCb: A3, deviceChangeCb: F3, mediaInteractionCb: $3, styleSheetRuleCb: B3, styleDeclarationCb: j3, canvasMutationCb: U3, fontCb: z3, selectionCb: W2, customElementCb: G2 } = e2;
|
|
5191
5191
|
e2.mutationCb = (...e3) => {
|
|
5192
5192
|
a2.mutation && a2.mutation(...e3), u2(...e3);
|
|
5193
5193
|
}, e2.mousemoveCb = (...e3) => {
|
|
@@ -5207,9 +5207,9 @@ function gu(e, a = {}) {
|
|
|
5207
5207
|
}, e2.mediaInteractionCb = (...e3) => {
|
|
5208
5208
|
a2.mediaInteaction && a2.mediaInteaction(...e3), $3(...e3);
|
|
5209
5209
|
}, e2.styleSheetRuleCb = (...e3) => {
|
|
5210
|
-
a2.styleSheetRule && a2.styleSheetRule(...e3),
|
|
5210
|
+
a2.styleSheetRule && a2.styleSheetRule(...e3), B3(...e3);
|
|
5211
5211
|
}, e2.styleDeclarationCb = (...e3) => {
|
|
5212
|
-
a2.styleDeclaration && a2.styleDeclaration(...e3),
|
|
5212
|
+
a2.styleDeclaration && a2.styleDeclaration(...e3), j3(...e3);
|
|
5213
5213
|
}, e2.canvasMutationCb = (...e3) => {
|
|
5214
5214
|
a2.canvasMutation && a2.canvasMutation(...e3), U3(...e3);
|
|
5215
5215
|
}, e2.fontCb = (...e3) => {
|
|
@@ -5245,11 +5245,11 @@ function gu(e, a = {}) {
|
|
|
5245
5245
|
})(e, { win: u }), A2 = (function iu({ inputCb: e2, doc: a2, mirror: u2, blockClass: w3, blockSelector: x3, ignoreClass: I3, ignoreSelector: M3, maskInputOptions: _3, maskInputFn: A3, sampling: F3, userTriggeredOnInput: $3 }) {
|
|
5246
5246
|
function p(e3) {
|
|
5247
5247
|
let u3 = st(e3);
|
|
5248
|
-
const F4 = e3.isTrusted,
|
|
5249
|
-
if (u3 && "OPTION" ===
|
|
5250
|
-
let
|
|
5251
|
-
const z4 = Ht(u3) || "", { value: W2, masked: G2 } = Zt({ element: u3, maskInputOptions: _3, tagName:
|
|
5252
|
-
|
|
5248
|
+
const F4 = e3.isTrusted, B4 = u3 && u3.tagName;
|
|
5249
|
+
if (u3 && "OPTION" === B4 && (u3 = u3.parentElement), !u3 || !B4 || oa.indexOf(B4) < 0 || $$1(u3, w3, x3, true) || u3.classList.contains(I3) || M3 && u3.matches(M3)) return;
|
|
5250
|
+
let j4 = u3.value, U4 = false;
|
|
5251
|
+
const z4 = Ht(u3) || "", { value: W2, masked: G2 } = Zt({ element: u3, maskInputOptions: _3, tagName: B4, type: z4, value: j4, maskInputFn: A3 });
|
|
5252
|
+
j4 = W2, ("radio" === z4 || "checkbox" === z4) && (U4 = u3.checked), m2(u3, $3 ? { text: j4, isChecked: U4, masked: G2, userTriggered: F4 } : { text: j4, isChecked: U4, masked: G2 });
|
|
5253
5253
|
const H2 = u3.name;
|
|
5254
5254
|
"radio" === z4 && H2 && U4 && a2.querySelectorAll(`input[type='radio'][name='${H2}']`).forEach((e4) => {
|
|
5255
5255
|
if (e4 !== u3) {
|
|
@@ -5266,15 +5266,15 @@ function gu(e, a = {}) {
|
|
|
5266
5266
|
E(e2)({ ...w4, id: x5 });
|
|
5267
5267
|
}
|
|
5268
5268
|
}
|
|
5269
|
-
const
|
|
5270
|
-
if (!
|
|
5271
|
-
|
|
5269
|
+
const B3 = ("last" === F3.input ? ["change"] : ["input", "change"]).map((e3) => V(e3, E(p), a2)), j3 = a2.defaultView;
|
|
5270
|
+
if (!j3) return () => {
|
|
5271
|
+
B3.forEach((e3) => e3());
|
|
5272
5272
|
};
|
|
5273
|
-
const U3 =
|
|
5274
|
-
return U3 && U3.set &&
|
|
5273
|
+
const U3 = j3.Object.getOwnPropertyDescriptor(j3.HTMLInputElement.prototype, "value"), z3 = [[j3.HTMLInputElement.prototype, "value"], [j3.HTMLInputElement.prototype, "checked"], [j3.HTMLSelectElement.prototype, "value"], [j3.HTMLTextAreaElement.prototype, "value"], [j3.HTMLSelectElement.prototype, "selectedIndex"], [j3.HTMLOptionElement.prototype, "selected"]];
|
|
5274
|
+
return U3 && U3.set && B3.push(...z3.map((e3) => ts(e3[0], e3[1], { set() {
|
|
5275
5275
|
E(p)({ target: this, isTrusted: false });
|
|
5276
|
-
} }, false,
|
|
5277
|
-
|
|
5276
|
+
} }, false, j3))), E(() => {
|
|
5277
|
+
B3.forEach((e3) => e3());
|
|
5278
5278
|
});
|
|
5279
5279
|
})(e), F2 = (function au({ typingCb: e2, doc: a2, maskInputOptions: u2, maskInputFn: w3 }) {
|
|
5280
5280
|
const x3 = V("keydown", (a3) => {
|
|
@@ -5308,12 +5308,12 @@ function gu(e, a = {}) {
|
|
|
5308
5308
|
return () => {
|
|
5309
5309
|
x3();
|
|
5310
5310
|
};
|
|
5311
|
-
})(e), $2 = lu(e),
|
|
5311
|
+
})(e), $2 = lu(e), B2 = (function hu({ mediaInteractionCb: e2, blockClass: a2, blockSelector: u2, mirror: w3, sampling: x3, doc: I3 }) {
|
|
5312
5312
|
const M3 = E((I4) => He(E((x4) => {
|
|
5313
5313
|
const M4 = st(x4);
|
|
5314
5314
|
if (!M4 || $$1(M4, a2, u2, true)) return;
|
|
5315
|
-
const { currentTime: _4, volume: A3, muted: F3, playbackRate: $3, loop:
|
|
5316
|
-
e2({ type: I4, id: w3.getId(M4), currentTime: _4, volume: A3, muted: F3, playbackRate: $3, loop:
|
|
5315
|
+
const { currentTime: _4, volume: A3, muted: F3, playbackRate: $3, loop: B3 } = M4;
|
|
5316
|
+
e2({ type: I4, id: w3.getId(M4), currentTime: _4, volume: A3, muted: F3, playbackRate: $3, loop: B3 });
|
|
5317
5317
|
}), x3.media || 500)), _3 = [V("play", M3(Bi.Play), I3), V("pause", M3(Bi.Pause), I3), V("seeked", M3(Bi.Seeked), I3), V("volumechange", M3(Bi.VolumeChange), I3), V("ratechange", M3(Bi.RateChange), I3)];
|
|
5318
5318
|
return E(() => {
|
|
5319
5319
|
_3.forEach((e3) => e3());
|
|
@@ -5364,18 +5364,18 @@ function gu(e, a = {}) {
|
|
|
5364
5364
|
const I3 = x3.CSSStyleDeclaration.prototype.setProperty;
|
|
5365
5365
|
x3.CSSStyleDeclaration.prototype.setProperty = new Proxy(I3, { apply: E((x4, M4, _3) => {
|
|
5366
5366
|
var A3;
|
|
5367
|
-
const [F3, $3,
|
|
5368
|
-
if (u2.has(F3)) return I3.apply(M4, [F3, $3,
|
|
5369
|
-
const { id:
|
|
5370
|
-
return (
|
|
5367
|
+
const [F3, $3, B3] = _3;
|
|
5368
|
+
if (u2.has(F3)) return I3.apply(M4, [F3, $3, B3]);
|
|
5369
|
+
const { id: j3, styleId: U3 } = de(null == (A3 = M4.parentRule) ? void 0 : A3.parentStyleSheet, a2, w3.styleMirror);
|
|
5370
|
+
return (j3 && -1 !== j3 || U3 && -1 !== U3) && e2({ id: j3, styleId: U3, set: { property: F3, value: $3, priority: B3 }, index: jt(M4.parentRule) }), x4.apply(M4, _3);
|
|
5371
5371
|
}) });
|
|
5372
5372
|
const M3 = x3.CSSStyleDeclaration.prototype.removeProperty;
|
|
5373
5373
|
return x3.CSSStyleDeclaration.prototype.removeProperty = new Proxy(M3, { apply: E((x4, I4, _3) => {
|
|
5374
5374
|
var A3;
|
|
5375
5375
|
const [F3] = _3;
|
|
5376
5376
|
if (u2.has(F3)) return M3.apply(I4, [F3]);
|
|
5377
|
-
const { id: $3, styleId:
|
|
5378
|
-
return ($3 && -1 !== $3 ||
|
|
5377
|
+
const { id: $3, styleId: B3 } = de(null == (A3 = I4.parentRule) ? void 0 : A3.parentStyleSheet, a2, w3.styleMirror);
|
|
5378
|
+
return ($3 && -1 !== $3 || B3 && -1 !== B3) && e2({ id: $3, styleId: B3, remove: { property: F3 }, index: jt(I4.parentRule) }), x4.apply(I4, _3);
|
|
5379
5379
|
}) }), E(() => {
|
|
5380
5380
|
x3.CSSStyleDeclaration.prototype.setProperty = I3, x3.CSSStyleDeclaration.prototype.removeProperty = M3;
|
|
5381
5381
|
});
|
|
@@ -5404,7 +5404,7 @@ function gu(e, a = {}) {
|
|
|
5404
5404
|
w3.forEach((e3) => e3());
|
|
5405
5405
|
});
|
|
5406
5406
|
})(e)));
|
|
5407
|
-
const
|
|
5407
|
+
const j2 = (function du(e2) {
|
|
5408
5408
|
const { doc: a2, mirror: u2, blockClass: w3, blockSelector: x3, selectionCb: I3 } = e2;
|
|
5409
5409
|
let M3 = true;
|
|
5410
5410
|
const _3 = E(() => {
|
|
@@ -5435,7 +5435,7 @@ function gu(e, a = {}) {
|
|
|
5435
5435
|
})(e), z2 = [];
|
|
5436
5436
|
for (const a2 of e.plugins) z2.push(a2.observer(a2.callback, u, a2.options));
|
|
5437
5437
|
return E(() => {
|
|
5438
|
-
ra.forEach((e2) => e2.reset()), null == w2 || w2.disconnect(), x2(), I2(), M2(), _2(), A2(), F2(),
|
|
5438
|
+
ra.forEach((e2) => e2.reset()), null == w2 || w2.disconnect(), x2(), I2(), M2(), _2(), A2(), F2(), B2(), m(), f(), g2(), h(), j2(), U2(), $2(), z2.forEach((e2) => e2());
|
|
5439
5439
|
});
|
|
5440
5440
|
}
|
|
5441
5441
|
function gt(e) {
|
|
@@ -5751,11 +5751,11 @@ try {
|
|
|
5751
5751
|
} catch (la2) {
|
|
5752
5752
|
console.debug("Unable to override Array.from", la2);
|
|
5753
5753
|
}
|
|
5754
|
-
const
|
|
5754
|
+
const ba = (function Li() {
|
|
5755
5755
|
return new Lt();
|
|
5756
5756
|
})();
|
|
5757
5757
|
function he(e = {}) {
|
|
5758
|
-
const { emit: a, checkoutEveryNms: u, checkoutEveryNth: w2, blockClass: x2 = "rr-block", blockSelector: I2 = null, ignoreClass: M2 = "rr-ignore", ignoreSelector: _2 = null, maskTextClass: A2 = "rr-mask", maskTextSelector: F2 = null, inlineStylesheet: $2 = true, maskAllInputs:
|
|
5758
|
+
const { emit: a, checkoutEveryNms: u, checkoutEveryNth: w2, blockClass: x2 = "rr-block", blockSelector: I2 = null, ignoreClass: M2 = "rr-ignore", ignoreSelector: _2 = null, maskTextClass: A2 = "rr-mask", maskTextSelector: F2 = null, inlineStylesheet: $2 = true, maskAllInputs: B2, maskInputOptions: j2, slimDOMOptions: U2, maskInputFn: z2, maskTextFn: W2, hooks: G2, packFn: H2, sampling: K2 = {}, dataURLOptions: Y2 = {}, mousemoveWait: Z2, recordDOM: J2 = true, recordCanvas: X2 = false, recordCrossOriginIframes: Q2 = false, recordAfter: ee2 = "DOMContentLoaded" === e.recordAfter ? e.recordAfter : "load", userTriggeredOnInput: te2 = false, collectFonts: ne2 = false, inlineImages: re2 = false, plugins: se2, keepIframeSrcFn: le2 = () => false, ignoreCSSAttributes: ce2 = /* @__PURE__ */ new Set([]), errorHandler: ue2 } = e;
|
|
5759
5759
|
!(function Hl(e2) {
|
|
5760
5760
|
Wi = e2;
|
|
5761
5761
|
})(ue2);
|
|
@@ -5769,8 +5769,8 @@ function he(e = {}) {
|
|
|
5769
5769
|
if (pe2 && !a) throw new Error("emit function is required");
|
|
5770
5770
|
if (!pe2 && !fe2) return () => {
|
|
5771
5771
|
};
|
|
5772
|
-
void 0 !== Z2 && void 0 === K2.mousemove && (K2.mousemove = Z2),
|
|
5773
|
-
const me2 = true ===
|
|
5772
|
+
void 0 !== Z2 && void 0 === K2.mousemove && (K2.mousemove = Z2), ba.reset();
|
|
5773
|
+
const me2 = true === B2 ? { color: true, date: true, "datetime-local": true, email: true, month: true, number: true, range: true, search: true, tel: true, text: true, time: true, url: true, week: true, textarea: true, select: true, password: true } : void 0 !== j2 ? j2 : { password: true }, ye2 = true === U2 || "all" === U2 ? { script: true, comment: true, headFavicon: true, headWhitespace: true, headMetaSocial: true, headMetaRobots: true, headMetaHttpEquiv: true, headMetaVerification: true, headMetaAuthorship: "all" === U2, headMetaDescKeywords: "all" === U2, headTitleMutations: "all" === U2 } : U2 || {};
|
|
5774
5774
|
!(function $l(e2 = window) {
|
|
5775
5775
|
"NodeList" in e2 && !e2.NodeList.prototype.forEach && (e2.NodeList.prototype.forEach = Array.prototype.forEach), "DOMTokenList" in e2 && !e2.DOMTokenList.prototype.forEach && (e2.DOMTokenList.prototype.forEach = Array.prototype.forEach), Node.prototype.contains || (Node.prototype.contains = (...e3) => {
|
|
5776
5776
|
let a2 = e3[0];
|
|
@@ -5781,7 +5781,7 @@ function he(e = {}) {
|
|
|
5781
5781
|
return false;
|
|
5782
5782
|
});
|
|
5783
5783
|
})();
|
|
5784
|
-
let
|
|
5784
|
+
let be2, we2 = 0;
|
|
5785
5785
|
const Cr = (e2) => {
|
|
5786
5786
|
for (const a2 of se2 || []) a2.eventProcessor && (e2 = a2.eventProcessor(e2));
|
|
5787
5787
|
return H2 && !fe2 && (e2 = H2(e2)), e2;
|
|
@@ -5794,36 +5794,36 @@ function he(e = {}) {
|
|
|
5794
5794
|
const e3 = { type: "@sailfish-rrweb/rrweb", event: Cr(M3), origin: window.location.origin, isCheckout: x3 };
|
|
5795
5795
|
window.parent.postMessage(e3, "*");
|
|
5796
5796
|
}
|
|
5797
|
-
if (M3.type === ki.FullSnapshot)
|
|
5797
|
+
if (M3.type === ki.FullSnapshot) be2 = M3, we2 = 0;
|
|
5798
5798
|
else if (M3.type === ki.IncrementalSnapshot) {
|
|
5799
5799
|
if (M3.data.source === Ci.Mutation && M3.data.isAttachIframe) return;
|
|
5800
|
-
|
|
5801
|
-
const e3 = w2 &&
|
|
5800
|
+
we2++;
|
|
5801
|
+
const e3 = w2 && we2 >= w2, a2 = u && M3.timestamp - be2.timestamp > u;
|
|
5802
5802
|
(e3 || a2) && fa(true);
|
|
5803
5803
|
}
|
|
5804
5804
|
};
|
|
5805
5805
|
const ot = (e2) => {
|
|
5806
5806
|
ha({ type: ki.IncrementalSnapshot, data: { source: Ci.Mutation, ...e2 } });
|
|
5807
|
-
}, kr = (e2) => ha({ type: ki.IncrementalSnapshot, data: { source: Ci.Scroll, ...e2 } }), xr = (e2) => ha({ type: ki.IncrementalSnapshot, data: { source: Ci.CanvasMutation, ...e2 } }), Se2 = new Ru({ mutationCb: ot, adoptedStyleSheetCb: (e2) => ha({ type: ki.IncrementalSnapshot, data: { source: Ci.AdoptedStyleSheet, ...e2 } }) }), ve2 = new Jl({ mirror:
|
|
5808
|
-
for (const e2 of se2 || []) e2.getMirror && e2.getMirror({ nodeMirror:
|
|
5807
|
+
}, kr = (e2) => ha({ type: ki.IncrementalSnapshot, data: { source: Ci.Scroll, ...e2 } }), xr = (e2) => ha({ type: ki.IncrementalSnapshot, data: { source: Ci.CanvasMutation, ...e2 } }), Se2 = new Ru({ mutationCb: ot, adoptedStyleSheetCb: (e2) => ha({ type: ki.IncrementalSnapshot, data: { source: Ci.AdoptedStyleSheet, ...e2 } }) }), ve2 = new Jl({ mirror: ba, mutationCb: ot, stylesheetManager: Se2, recordCrossOriginIframes: Q2, wrappedEmit: ha });
|
|
5808
|
+
for (const e2 of se2 || []) e2.getMirror && e2.getMirror({ nodeMirror: ba, crossOriginIframeMirror: ve2.crossOriginIframeMirror, crossOriginIframeStyleMirror: ve2.crossOriginIframeStyleMirror });
|
|
5809
5809
|
const Ce2 = new Mu();
|
|
5810
|
-
ma = new Iu({ recordCanvas: X2, mutationCb: xr, win: window, blockClass: x2, blockSelector: I2, mirror:
|
|
5811
|
-
const xe2 = new Ou({ mutationCb: ot, scrollCb: kr, bypassOptions: { blockClass: x2, blockSelector: I2, maskTextClass: A2, maskTextSelector: F2, inlineStylesheet: $2, maskInputOptions: me2, dataURLOptions: Y2, maskTextFn: W2, maskInputFn: z2, recordCanvas: X2, inlineImages: re2, sampling: K2, slimDOMOptions: ye2, iframeManager: ve2, stylesheetManager: Se2, canvasManager: ma, keepIframeSrcFn: le2, processedNodeManager: Ce2 }, mirror:
|
|
5810
|
+
ma = new Iu({ recordCanvas: X2, mutationCb: xr, win: window, blockClass: x2, blockSelector: I2, mirror: ba, sampling: K2.canvas, dataURLOptions: Y2 });
|
|
5811
|
+
const xe2 = new Ou({ mutationCb: ot, scrollCb: kr, bypassOptions: { blockClass: x2, blockSelector: I2, maskTextClass: A2, maskTextSelector: F2, inlineStylesheet: $2, maskInputOptions: me2, dataURLOptions: Y2, maskTextFn: W2, maskInputFn: z2, recordCanvas: X2, inlineImages: re2, sampling: K2, slimDOMOptions: ye2, iframeManager: ve2, stylesheetManager: Se2, canvasManager: ma, keepIframeSrcFn: le2, processedNodeManager: Ce2 }, mirror: ba });
|
|
5812
5812
|
fa = (e2 = false) => {
|
|
5813
5813
|
if (!J2) return;
|
|
5814
5814
|
ha({ type: ki.Meta, data: { href: window.location.href, width: vo(), height: So() } }, e2), Se2.reset(), xe2.init(), ra.forEach((e3) => e3.lock());
|
|
5815
5815
|
const a2 = [], u2 = (function Qi(e3, a3) {
|
|
5816
|
-
const { mirror: u3 = new Lt(), blockClass: w3 = "rr-block", blockSelector: x3 = null, maskTextClass: I3 = "rr-mask", maskTextSelector: M3 = null, inlineStylesheet: _3 = true, inlineImages: A3 = false, recordCanvas: F3 = false, maskAllInputs: $3 = false, maskTextFn:
|
|
5817
|
-
return ke(e3, { doc: e3, mirror: u3, blockClass: w3, blockSelector: x3, maskTextClass: I3, maskTextSelector: M3, skipChild: false, inlineStylesheet: _3, maskInputOptions: true === $3 ? { color: true, date: true, "datetime-local": true, email: true, month: true, number: true, range: true, search: true, tel: true, text: true, time: true, url: true, week: true, textarea: true, select: true, password: true } : false === $3 ? { password: true } : $3, maskTextFn:
|
|
5818
|
-
})(document, { mirror:
|
|
5819
|
-
xo(e3,
|
|
5816
|
+
const { mirror: u3 = new Lt(), blockClass: w3 = "rr-block", blockSelector: x3 = null, maskTextClass: I3 = "rr-mask", maskTextSelector: M3 = null, inlineStylesheet: _3 = true, inlineImages: A3 = false, recordCanvas: F3 = false, maskAllInputs: $3 = false, maskTextFn: B3, maskInputFn: j3, slimDOM: U3 = false, dataURLOptions: z3, preserveWhiteSpace: W3, onSerialize: G3, onIframeLoad: H3, iframeLoadTimeout: K3, onStylesheetLoad: Y3, stylesheetLoadTimeout: Z3, keepIframeSrcFn: J3 = () => false, corruptedRules: X3 } = a3 || {};
|
|
5817
|
+
return ke(e3, { doc: e3, mirror: u3, blockClass: w3, blockSelector: x3, maskTextClass: I3, maskTextSelector: M3, skipChild: false, inlineStylesheet: _3, maskInputOptions: true === $3 ? { color: true, date: true, "datetime-local": true, email: true, month: true, number: true, range: true, search: true, tel: true, text: true, time: true, url: true, week: true, textarea: true, select: true, password: true } : false === $3 ? { password: true } : $3, maskTextFn: B3, maskInputFn: j3, slimDOMOptions: true === U3 || "all" === U3 ? { script: true, comment: true, headFavicon: true, headWhitespace: true, headMetaDescKeywords: "all" === U3, headMetaSocial: true, headMetaRobots: true, headMetaHttpEquiv: true, headMetaAuthorship: true, headMetaVerification: true } : false === U3 ? {} : U3, dataURLOptions: z3, inlineImages: A3, recordCanvas: F3, preserveWhiteSpace: W3, onSerialize: G3, onIframeLoad: H3, iframeLoadTimeout: K3, onStylesheetLoad: Y3, stylesheetLoadTimeout: Z3, keepIframeSrcFn: J3, newlyAddedElement: false, corruptedRules: X3 });
|
|
5818
|
+
})(document, { mirror: ba, blockClass: x2, blockSelector: I2, maskTextClass: A2, maskTextSelector: F2, inlineStylesheet: $2, maskAllInputs: me2, maskTextFn: W2, maskInputFn: z2, slimDOM: ye2, dataURLOptions: Y2, recordCanvas: X2, inlineImages: re2, corruptedRules: a2, onSerialize: (e3) => {
|
|
5819
|
+
xo(e3, ba) && ve2.addIframe(e3), Io(e3, ba) && Se2.trackLinkElement(e3), _s(e3) && xe2.addShadowRoot(e3.shadowRoot, document);
|
|
5820
5820
|
}, onIframeLoad: (e3, a3) => {
|
|
5821
5821
|
ve2.attachIframe(e3, a3), xe2.observeAttachShadow(e3);
|
|
5822
5822
|
}, onStylesheetLoad: (e3, a3) => {
|
|
5823
5823
|
Se2.attachLinkElement(e3, a3);
|
|
5824
5824
|
}, keepIframeSrcFn: le2 });
|
|
5825
5825
|
if (!u2) return console.warn("Failed to snapshot the document");
|
|
5826
|
-
Se2.setCorruptedRules(a2), ha({ type: ki.FullSnapshot, data: { node: u2, initialOffset: bo(window) } }, e2), ra.forEach((e3) => e3.unlock()), document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0 && Se2.adoptStyleSheets(document.adoptedStyleSheets,
|
|
5826
|
+
Se2.setCorruptedRules(a2), ha({ type: ki.FullSnapshot, data: { node: u2, initialOffset: bo(window) } }, e2), ra.forEach((e3) => e3.unlock()), document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0 && Se2.adoptStyleSheets(document.adoptedStyleSheets, ba.getId(document));
|
|
5827
5827
|
};
|
|
5828
5828
|
try {
|
|
5829
5829
|
const e2 = [], q = (e3) => {
|
|
@@ -5836,7 +5836,7 @@ function he(e = {}) {
|
|
|
5836
5836
|
ha({ type: ki.IncrementalSnapshot, data: { ...e4 } });
|
|
5837
5837
|
}, deviceChangeCb: (e4) => {
|
|
5838
5838
|
ha({ type: ki.Device, data: { ...e4 } });
|
|
5839
|
-
}, blockClass: x2, ignoreClass: M2, ignoreSelector: _2, maskTextClass: A2, maskTextSelector: F2, maskInputOptions: me2, inlineStylesheet: $2, sampling: K2, recordDOM: J2, recordCanvas: X2, inlineImages: re2, userTriggeredOnInput: te2, collectFonts: ne2, doc: e3, maskInputFn: z2, maskTextFn: W2, keepIframeSrcFn: le2, blockSelector: I2, slimDOMOptions: ye2, dataURLOptions: Y2, mirror:
|
|
5839
|
+
}, blockClass: x2, ignoreClass: M2, ignoreSelector: _2, maskTextClass: A2, maskTextSelector: F2, maskInputOptions: me2, inlineStylesheet: $2, sampling: K2, recordDOM: J2, recordCanvas: X2, inlineImages: re2, userTriggeredOnInput: te2, collectFonts: ne2, doc: e3, maskInputFn: z2, maskTextFn: W2, keepIframeSrcFn: le2, blockSelector: I2, slimDOMOptions: ye2, dataURLOptions: Y2, mirror: ba, iframeManager: ve2, stylesheetManager: Se2, shadowDomManager: xe2, processedNodeManager: Ce2, canvasManager: ma, ignoreCSSAttributes: ce2, plugins: (null == (a2 = null == se2 ? void 0 : se2.filter((e4) => e4.observer)) ? void 0 : a2.map((e4) => ({ observer: e4.observer, options: e4.options, callback: (a3) => ha({ type: ki.Plugin, data: { plugin: e4.name, payload: a3 } }) }))) || [] }, G2);
|
|
5840
5840
|
};
|
|
5841
5841
|
ve2.addLoadListener((a2) => {
|
|
5842
5842
|
try {
|
|
@@ -5891,12 +5891,12 @@ he.addCustomEvent = (e, a) => {
|
|
|
5891
5891
|
}, he.takeFullSnapshot = (e) => {
|
|
5892
5892
|
if (!ga) throw new Error("please take full snapshot after start recording");
|
|
5893
5893
|
fa(e);
|
|
5894
|
-
}, he.mirror =
|
|
5895
|
-
var
|
|
5894
|
+
}, he.mirror = ba;
|
|
5895
|
+
var wa = { exports: {} }, va = String, Fo = function() {
|
|
5896
5896
|
return { isColorSupported: false, reset: va, bold: va, dim: va, italic: va, underline: va, inverse: va, hidden: va, strikethrough: va, black: va, red: va, green: va, yellow: va, blue: va, magenta: va, cyan: va, white: va, gray: va, bgBlack: va, bgRed: va, bgGreen: va, bgYellow: va, bgBlue: va, bgMagenta: va, bgCyan: va, bgWhite: va, blackBright: va, redBright: va, greenBright: va, yellowBright: va, blueBright: va, magentaBright: va, cyanBright: va, whiteBright: va, bgBlackBright: va, bgRedBright: va, bgGreenBright: va, bgYellowBright: va, bgBlueBright: va, bgMagentaBright: va, bgCyanBright: va, bgWhiteBright: va };
|
|
5897
5897
|
};
|
|
5898
|
-
|
|
5899
|
-
var ka =
|
|
5898
|
+
wa.exports = Fo(), wa.exports.createColors = Fo;
|
|
5899
|
+
var ka = wa.exports;
|
|
5900
5900
|
const Ca = Lu(Object.freeze(Object.defineProperty({ __proto__: null, default: {} }, Symbol.toStringTag, { value: "Module" })));
|
|
5901
5901
|
let xa = ka, Ia = Ca, Ma = class Uo extends Error {
|
|
5902
5902
|
constructor(e, a, u, w2, x2, I2) {
|
|
@@ -6108,7 +6108,7 @@ function ae(e, a) {
|
|
|
6108
6108
|
}
|
|
6109
6109
|
return x2;
|
|
6110
6110
|
}
|
|
6111
|
-
let
|
|
6111
|
+
let Ba = class {
|
|
6112
6112
|
get proxyOf() {
|
|
6113
6113
|
return this;
|
|
6114
6114
|
}
|
|
@@ -6256,16 +6256,16 @@ let ja = class {
|
|
|
6256
6256
|
return e.warn(a, w2);
|
|
6257
6257
|
}
|
|
6258
6258
|
};
|
|
6259
|
-
var
|
|
6260
|
-
|
|
6261
|
-
let Ua =
|
|
6259
|
+
var ja = Ba;
|
|
6260
|
+
Ba.default = Ba;
|
|
6261
|
+
let Ua = ja, za = class extends Ua {
|
|
6262
6262
|
constructor(e) {
|
|
6263
6263
|
super(e), this.type = "comment";
|
|
6264
6264
|
}
|
|
6265
6265
|
};
|
|
6266
6266
|
var Wa = za;
|
|
6267
6267
|
za.default = za;
|
|
6268
|
-
let Ga =
|
|
6268
|
+
let Ga = ja, Va = class extends Ga {
|
|
6269
6269
|
get variable() {
|
|
6270
6270
|
return this.prop.startsWith("--") || "$" === this.prop[0];
|
|
6271
6271
|
}
|
|
@@ -6275,7 +6275,7 @@ let Ga = Ba, Va = class extends Ga {
|
|
|
6275
6275
|
};
|
|
6276
6276
|
var Ha = Va;
|
|
6277
6277
|
Va.default = Va;
|
|
6278
|
-
let qa, Ka, Ya, Za, Ja = Wa, Xa = Ha, Qa =
|
|
6278
|
+
let qa, Ka, Ya, Za, Ja = Wa, Xa = Ha, Qa = ja, { isClean: el, my: nl } = Aa;
|
|
6279
6279
|
function Go(e) {
|
|
6280
6280
|
return e.map((e2) => (e2.nodes && (e2.nodes = Go(e2.nodes)), delete e2.source, e2));
|
|
6281
6281
|
}
|
|
@@ -6476,7 +6476,7 @@ var fl = { nanoid: (e = 21) => {
|
|
|
6476
6476
|
for (; u--; ) a += "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64 * Math.random() | 0];
|
|
6477
6477
|
return a;
|
|
6478
6478
|
} };
|
|
6479
|
-
let { existsSync: ml, readFileSync: gl } = Ca, { dirname: yl, join:
|
|
6479
|
+
let { existsSync: ml, readFileSync: gl } = Ca, { dirname: yl, join: bl } = Ca, { SourceMapConsumer: wl, SourceMapGenerator: Sl } = Ca;
|
|
6480
6480
|
let vl = class {
|
|
6481
6481
|
constructor(e, a) {
|
|
6482
6482
|
if (false === a.map) return;
|
|
@@ -6485,7 +6485,7 @@ let vl = class {
|
|
|
6485
6485
|
!this.mapFile && a.from && (this.mapFile = a.from), this.mapFile && (this.root = yl(this.mapFile)), w2 && (this.text = w2);
|
|
6486
6486
|
}
|
|
6487
6487
|
consumer() {
|
|
6488
|
-
return this.consumerCache || (this.consumerCache = new
|
|
6488
|
+
return this.consumerCache || (this.consumerCache = new wl(this.text)), this.consumerCache;
|
|
6489
6489
|
}
|
|
6490
6490
|
decodeInline(e) {
|
|
6491
6491
|
let a = e.match(/^data:application\/json;charset=utf-?8,/) || e.match(/^data:application\/json,/);
|
|
@@ -6517,7 +6517,7 @@ let vl = class {
|
|
|
6517
6517
|
if (a) {
|
|
6518
6518
|
if ("string" == typeof a) return a;
|
|
6519
6519
|
if ("function" != typeof a) {
|
|
6520
|
-
if (a instanceof
|
|
6520
|
+
if (a instanceof wl) return Sl.fromSourceMap(a).toString();
|
|
6521
6521
|
if (a instanceof Sl) return a.toString();
|
|
6522
6522
|
if (this.isMap(a)) return JSON.stringify(a);
|
|
6523
6523
|
throw new Error("Unsupported previous source map format: " + a.toString());
|
|
@@ -6534,7 +6534,7 @@ let vl = class {
|
|
|
6534
6534
|
if (this.inline) return this.decodeInline(this.annotation);
|
|
6535
6535
|
if (this.annotation) {
|
|
6536
6536
|
let a2 = this.annotation;
|
|
6537
|
-
return e && (a2 =
|
|
6537
|
+
return e && (a2 = bl(yl(e), a2)), this.loadFile(a2);
|
|
6538
6538
|
}
|
|
6539
6539
|
}
|
|
6540
6540
|
}
|
|
@@ -6636,7 +6636,7 @@ let Pl = class {
|
|
|
6636
6636
|
};
|
|
6637
6637
|
var Dl = Pl;
|
|
6638
6638
|
Pl.default = Pl, Rl && Rl.registerInput && Rl.registerInput(Pl);
|
|
6639
|
-
let
|
|
6639
|
+
let Bl, jl, Ul = ol, zl = class extends Ul {
|
|
6640
6640
|
constructor(e) {
|
|
6641
6641
|
super(e), this.type = "root", this.nodes || (this.nodes = []);
|
|
6642
6642
|
}
|
|
@@ -6653,13 +6653,13 @@ let jl, Bl, Ul = ol, zl = class extends Ul {
|
|
|
6653
6653
|
return !a && 0 === u && this.nodes.length > 1 && (this.nodes[1].raws.before = this.nodes[u].raws.before), super.removeChild(e);
|
|
6654
6654
|
}
|
|
6655
6655
|
toResult(e = {}) {
|
|
6656
|
-
return new
|
|
6656
|
+
return new Bl(new jl(), this, e).stringify();
|
|
6657
6657
|
}
|
|
6658
6658
|
};
|
|
6659
6659
|
zl.registerLazyResult = (e) => {
|
|
6660
|
-
jl = e;
|
|
6661
|
-
}, zl.registerProcessor = (e) => {
|
|
6662
6660
|
Bl = e;
|
|
6661
|
+
}, zl.registerProcessor = (e) => {
|
|
6662
|
+
jl = e;
|
|
6663
6663
|
};
|
|
6664
6664
|
var Wl = zl;
|
|
6665
6665
|
zl.default = zl, Ul.registerRoot(zl);
|
|
@@ -6711,7 +6711,7 @@ function Qe(e, a) {
|
|
|
6711
6711
|
}
|
|
6712
6712
|
var hc = Qe;
|
|
6713
6713
|
Qe.default = Qe;
|
|
6714
|
-
let { dirname: fc, relative: mc, resolve: gc, sep: yc } = Ca, { SourceMapConsumer:
|
|
6714
|
+
let { dirname: fc, relative: mc, resolve: gc, sep: yc } = Ca, { SourceMapConsumer: bc, SourceMapGenerator: wc } = Ca, { pathToFileURL: Sc } = Ca, vc = Dl, kc = !(!bc || !wc), Cc = !!(fc && gc && mc && yc);
|
|
6715
6715
|
var xc = class {
|
|
6716
6716
|
constructor(e, a, u, w2) {
|
|
6717
6717
|
this.stringify = e, this.mapOpts = u.map || {}, this.root = a, this.opts = u, this.css = w2, this.originalCSS = w2, this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute, this.memoizedFileURLs = /* @__PURE__ */ new Map(), this.memoizedPaths = /* @__PURE__ */ new Map(), this.memoizedURLs = /* @__PURE__ */ new Map();
|
|
@@ -6725,7 +6725,7 @@ var xc = class {
|
|
|
6725
6725
|
applyPrevMaps() {
|
|
6726
6726
|
for (let e of this.previous()) {
|
|
6727
6727
|
let a, u = this.toUrl(this.path(e.file)), w2 = e.root || fc(e.file);
|
|
6728
|
-
false === this.mapOpts.sourcesContent ? (a = new
|
|
6728
|
+
false === this.mapOpts.sourcesContent ? (a = new bc(e.text), a.sourcesContent && (a.sourcesContent = null)) : a = e.consumer(), this.map.applySourceMap(a, u, this.toUrl(this.path(w2)));
|
|
6729
6729
|
}
|
|
6730
6730
|
}
|
|
6731
6731
|
clearAnnotation() {
|
|
@@ -6747,12 +6747,12 @@ var xc = class {
|
|
|
6747
6747
|
if (this.root) this.generateString();
|
|
6748
6748
|
else if (1 === this.previous().length) {
|
|
6749
6749
|
let e = this.previous()[0].consumer();
|
|
6750
|
-
e.file = this.outputFile(), this.map =
|
|
6751
|
-
} else this.map = new
|
|
6750
|
+
e.file = this.outputFile(), this.map = wc.fromSourceMap(e, { ignoreInvalidMapping: true });
|
|
6751
|
+
} else this.map = new wc({ file: this.outputFile(), ignoreInvalidMapping: true }), this.map.addMapping({ generated: { column: 0, line: 1 }, original: { column: 0, line: 1 }, source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : "<no source>" });
|
|
6752
6752
|
return this.isSourcesContent() && this.setSourcesContent(), this.root && this.previous().length > 0 && this.applyPrevMaps(), this.isAnnotation() && this.addAnnotation(), this.isInline() ? [this.css] : [this.css, this.map];
|
|
6753
6753
|
}
|
|
6754
6754
|
generateString() {
|
|
6755
|
-
this.css = "", this.map = new
|
|
6755
|
+
this.css = "", this.map = new wc({ file: this.outputFile(), ignoreInvalidMapping: true });
|
|
6756
6756
|
let e, a, u = 1, w2 = 1, x2 = "<no source>", I2 = { generated: { column: 0, line: 0 }, original: { column: 0, line: 0 }, source: "" };
|
|
6757
6757
|
this.stringify(this.root, (M2, _2, A2) => {
|
|
6758
6758
|
if (this.css += M2, _2 && "end" !== A2 && (I2.generated.line = u, I2.generated.column = w2 - 1, _2.source && _2.source.start ? (I2.source = this.sourcePath(_2), I2.original.line = _2.source.start.line, I2.original.column = _2.source.start.column - 1, this.map.addMapping(I2)) : (I2.source = x2, I2.original.line = 1, I2.original.column = 0, this.map.addMapping(I2))), a = M2.match(/\n/g), a ? (u += a.length, e = M2.lastIndexOf("\n"), w2 = M2.length - e) : w2 += M2.length, _2 && "start" !== A2) {
|
|
@@ -6842,7 +6842,7 @@ var xc = class {
|
|
|
6842
6842
|
};
|
|
6843
6843
|
const Ic = /[\t\n\f\r "#'()/;[\\\]{}]/g, Mc = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g, Ec = /.[\r\n"'(/\\]/, _c = /[\da-f]/i;
|
|
6844
6844
|
let Oc = ll, Lc = Wa, Rc = Ha, Nc = Wl, Fc = sc, Tc = function(e, a = {}) {
|
|
6845
|
-
let u, w2, x2, I2, M2, _2, A2, F2, $2,
|
|
6845
|
+
let u, w2, x2, I2, M2, _2, A2, F2, $2, B2, j2 = e.css.valueOf(), U2 = a.ignoreErrors, z2 = j2.length, W2 = 0, G2 = [], H2 = [];
|
|
6846
6846
|
function v(a2) {
|
|
6847
6847
|
throw e.error("Unclosed " + a2, W2);
|
|
6848
6848
|
}
|
|
@@ -6854,7 +6854,7 @@ let Oc = ll, Lc = Wa, Rc = Ha, Nc = Wl, Fc = sc, Tc = function(e, a = {}) {
|
|
|
6854
6854
|
if (H2.length) return H2.pop();
|
|
6855
6855
|
if (W2 >= z2) return;
|
|
6856
6856
|
let a2 = !!e2 && e2.ignoreUnclosed;
|
|
6857
|
-
switch (u =
|
|
6857
|
+
switch (u = j2.charCodeAt(W2), u) {
|
|
6858
6858
|
case 10:
|
|
6859
6859
|
case 32:
|
|
6860
6860
|
case 9:
|
|
@@ -6862,9 +6862,9 @@ let Oc = ll, Lc = Wa, Rc = Ha, Nc = Wl, Fc = sc, Tc = function(e, a = {}) {
|
|
|
6862
6862
|
case 12:
|
|
6863
6863
|
I2 = W2;
|
|
6864
6864
|
do {
|
|
6865
|
-
I2 += 1, u =
|
|
6865
|
+
I2 += 1, u = j2.charCodeAt(I2);
|
|
6866
6866
|
} while (32 === u || 10 === u || 9 === u || 13 === u || 12 === u);
|
|
6867
|
-
_2 = ["space",
|
|
6867
|
+
_2 = ["space", j2.slice(W2, I2)], W2 = I2 - 1;
|
|
6868
6868
|
break;
|
|
6869
6869
|
case 91:
|
|
6870
6870
|
case 93:
|
|
@@ -6878,49 +6878,49 @@ let Oc = ll, Lc = Wa, Rc = Ha, Nc = Wl, Fc = sc, Tc = function(e, a = {}) {
|
|
|
6878
6878
|
break;
|
|
6879
6879
|
}
|
|
6880
6880
|
case 40:
|
|
6881
|
-
if (
|
|
6881
|
+
if (B2 = G2.length ? G2.pop()[1] : "", $2 = j2.charCodeAt(W2 + 1), "url" === B2 && 39 !== $2 && 34 !== $2 && 32 !== $2 && 10 !== $2 && 9 !== $2 && 12 !== $2 && 13 !== $2) {
|
|
6882
6882
|
I2 = W2;
|
|
6883
6883
|
do {
|
|
6884
|
-
if (A2 = false, I2 =
|
|
6884
|
+
if (A2 = false, I2 = j2.indexOf(")", I2 + 1), -1 === I2) {
|
|
6885
6885
|
if (U2 || a2) {
|
|
6886
6886
|
I2 = W2;
|
|
6887
6887
|
break;
|
|
6888
6888
|
}
|
|
6889
6889
|
v("bracket");
|
|
6890
6890
|
}
|
|
6891
|
-
for (F2 = I2; 92 ===
|
|
6891
|
+
for (F2 = I2; 92 === j2.charCodeAt(F2 - 1); ) F2 -= 1, A2 = !A2;
|
|
6892
6892
|
} while (A2);
|
|
6893
|
-
_2 = ["brackets",
|
|
6894
|
-
} else I2 =
|
|
6893
|
+
_2 = ["brackets", j2.slice(W2, I2 + 1), W2, I2], W2 = I2;
|
|
6894
|
+
} else I2 = j2.indexOf(")", W2 + 1), w2 = j2.slice(W2, I2 + 1), -1 === I2 || Ec.test(w2) ? _2 = ["(", "(", W2] : (_2 = ["brackets", w2, W2, I2], W2 = I2);
|
|
6895
6895
|
break;
|
|
6896
6896
|
case 39:
|
|
6897
6897
|
case 34:
|
|
6898
6898
|
M2 = 39 === u ? "'" : '"', I2 = W2;
|
|
6899
6899
|
do {
|
|
6900
|
-
if (A2 = false, I2 =
|
|
6900
|
+
if (A2 = false, I2 = j2.indexOf(M2, I2 + 1), -1 === I2) {
|
|
6901
6901
|
if (U2 || a2) {
|
|
6902
6902
|
I2 = W2 + 1;
|
|
6903
6903
|
break;
|
|
6904
6904
|
}
|
|
6905
6905
|
v("string");
|
|
6906
6906
|
}
|
|
6907
|
-
for (F2 = I2; 92 ===
|
|
6907
|
+
for (F2 = I2; 92 === j2.charCodeAt(F2 - 1); ) F2 -= 1, A2 = !A2;
|
|
6908
6908
|
} while (A2);
|
|
6909
|
-
_2 = ["string",
|
|
6909
|
+
_2 = ["string", j2.slice(W2, I2 + 1), W2, I2], W2 = I2;
|
|
6910
6910
|
break;
|
|
6911
6911
|
case 64:
|
|
6912
|
-
Ic.lastIndex = W2 + 1, Ic.test(
|
|
6912
|
+
Ic.lastIndex = W2 + 1, Ic.test(j2), I2 = 0 === Ic.lastIndex ? j2.length - 1 : Ic.lastIndex - 2, _2 = ["at-word", j2.slice(W2, I2 + 1), W2, I2], W2 = I2;
|
|
6913
6913
|
break;
|
|
6914
6914
|
case 92:
|
|
6915
|
-
for (I2 = W2, x2 = true; 92 ===
|
|
6916
|
-
if (u =
|
|
6917
|
-
for (; _c.test(
|
|
6918
|
-
32 ===
|
|
6915
|
+
for (I2 = W2, x2 = true; 92 === j2.charCodeAt(I2 + 1); ) I2 += 1, x2 = !x2;
|
|
6916
|
+
if (u = j2.charCodeAt(I2 + 1), x2 && 47 !== u && 32 !== u && 10 !== u && 9 !== u && 13 !== u && 12 !== u && (I2 += 1, _c.test(j2.charAt(I2)))) {
|
|
6917
|
+
for (; _c.test(j2.charAt(I2 + 1)); ) I2 += 1;
|
|
6918
|
+
32 === j2.charCodeAt(I2 + 1) && (I2 += 1);
|
|
6919
6919
|
}
|
|
6920
|
-
_2 = ["word",
|
|
6920
|
+
_2 = ["word", j2.slice(W2, I2 + 1), W2, I2], W2 = I2;
|
|
6921
6921
|
break;
|
|
6922
6922
|
default:
|
|
6923
|
-
47 === u && 42 ===
|
|
6923
|
+
47 === u && 42 === j2.charCodeAt(W2 + 1) ? (I2 = j2.indexOf("*/", W2 + 2) + 1, 0 === I2 && (U2 || a2 ? I2 = j2.length : v("comment")), _2 = ["comment", j2.slice(W2, I2 + 1), W2, I2], W2 = I2) : (Mc.lastIndex = W2 + 1, Mc.test(j2), I2 = 0 === Mc.lastIndex ? j2.length - 1 : Mc.lastIndex - 2, _2 = ["word", j2.slice(W2, I2 + 1), W2, I2], G2.push(_2), W2 = I2);
|
|
6924
6924
|
}
|
|
6925
6925
|
return W2++, _2;
|
|
6926
6926
|
}, position: function b() {
|
|
@@ -7172,9 +7172,9 @@ var Dc = class {
|
|
|
7172
7172
|
throw this.input.error("At-rule without name", { offset: a[2] }, { offset: a[2] + a[1].length });
|
|
7173
7173
|
}
|
|
7174
7174
|
};
|
|
7175
|
-
let $c = ol,
|
|
7175
|
+
let $c = ol, Bc = Dl, jc = Dc;
|
|
7176
7176
|
function Yt(e, a) {
|
|
7177
|
-
let u = new
|
|
7177
|
+
let u = new Bc(e, a), w2 = new jc(u);
|
|
7178
7178
|
try {
|
|
7179
7179
|
w2.parse();
|
|
7180
7180
|
} catch (e2) {
|
|
@@ -7460,8 +7460,8 @@ Pu.registerPostcss = (e) => {
|
|
|
7460
7460
|
};
|
|
7461
7461
|
var Du = Pu;
|
|
7462
7462
|
Pu.default = Pu, Qc.registerLazyResult(Pu), Yc.registerLazyResult(Pu);
|
|
7463
|
-
let $u = xc,
|
|
7464
|
-
const
|
|
7463
|
+
let $u = xc, Bu = Uc;
|
|
7464
|
+
const ju = Hc;
|
|
7465
7465
|
let Uu = Ra, zu = ui, Wu = class {
|
|
7466
7466
|
get content() {
|
|
7467
7467
|
return this.result.css;
|
|
@@ -7483,7 +7483,7 @@ let Uu = Ra, zu = ui, Wu = class {
|
|
|
7483
7483
|
}
|
|
7484
7484
|
get root() {
|
|
7485
7485
|
if (this._root) return this._root;
|
|
7486
|
-
let e, a =
|
|
7486
|
+
let e, a = Bu;
|
|
7487
7487
|
try {
|
|
7488
7488
|
e = a(this._css, this._opts);
|
|
7489
7489
|
} catch (e2) {
|
|
@@ -7498,7 +7498,7 @@ let Uu = Ra, zu = ui, Wu = class {
|
|
|
7498
7498
|
constructor(e, a, u) {
|
|
7499
7499
|
a = a.toString(), this.stringified = false, this._processor = e, this._css = a, this._opts = u, this._map = void 0;
|
|
7500
7500
|
let w2, x2 = Uu;
|
|
7501
|
-
this.result = new
|
|
7501
|
+
this.result = new ju(this._processor, w2, this._opts), this.result.css = a;
|
|
7502
7502
|
let I2 = this;
|
|
7503
7503
|
Object.defineProperty(this.result, "root", { get: () => I2.root });
|
|
7504
7504
|
let M2 = new $u(x2, w2, this._opts, a);
|
|
@@ -7556,7 +7556,7 @@ let Vu = hl, Hu = Du, qu = Gu, Ku = Wl, Yu = class {
|
|
|
7556
7556
|
};
|
|
7557
7557
|
var Zu = Yu;
|
|
7558
7558
|
Yu.default = Yu, Ku.registerProcessor(Yu), Vu.registerProcessor(Yu);
|
|
7559
|
-
let Xu = ll, Qu = Wa, ed = ol, td = Ea, nd = Ha, rd = hl, od = hc, sd = Dl, id = Du, ad = tc, ld =
|
|
7559
|
+
let Xu = ll, Qu = Wa, ed = ol, td = Ea, nd = Ha, rd = hl, od = hc, sd = Dl, id = Du, ad = tc, ld = ja, cd = Uc, ud = Zu, dd = Hc, pd = Wl, hd = sc, fd = Ra, md = Wc;
|
|
7560
7560
|
function D(...e) {
|
|
7561
7561
|
return 1 === e.length && Array.isArray(e[0]) && (e = e[0]), new ud(e);
|
|
7562
7562
|
}
|
|
@@ -7574,11 +7574,11 @@ D.plugin = function(e, a) {
|
|
|
7574
7574
|
var gd = D;
|
|
7575
7575
|
D.default = D;
|
|
7576
7576
|
const yd = Eu(gd);
|
|
7577
|
-
var
|
|
7577
|
+
var bd;
|
|
7578
7578
|
yd.stringify, yd.fromJSON, yd.plugin, yd.parse, yd.list, yd.document, yd.comment, yd.atRule, yd.rule, yd.decl, yd.root, yd.CssSyntaxError, yd.Declaration, yd.Container, yd.Processor, yd.Document, yd.Comment, yd.Warning, yd.AtRule, yd.Result, yd.Input, yd.Rule, yd.Root, yd.Node, (function(e) {
|
|
7579
7579
|
e[e.NotStarted = 0] = "NotStarted", e[e.Running = 1] = "Running", e[e.Stopped = 2] = "Stopped";
|
|
7580
|
-
})(
|
|
7581
|
-
const { addCustomEvent:
|
|
7580
|
+
})(bd || (bd = {}));
|
|
7581
|
+
const { addCustomEvent: wd } = he, { addSailfishEvent: Sd } = he, { freezePage: vd } = he, { takeFullSnapshot: kd } = he;
|
|
7582
7582
|
var Cd = Object.defineProperty, y = (e, a, u) => ((e2, a2, u2) => a2 in e2 ? Cd(e2, a2, { enumerable: true, configurable: true, writable: true, value: u2 }) : e2[a2] = u2)(e, "symbol" != typeof a ? a + "" : a, u);
|
|
7583
7583
|
let xd = class d {
|
|
7584
7584
|
constructor(e) {
|
|
@@ -7906,7 +7906,7 @@ function suppressConsoleLogsDuringCall(e) {
|
|
|
7906
7906
|
console.log = a, console.warn = u, console.error = w2;
|
|
7907
7907
|
}
|
|
7908
7908
|
}
|
|
7909
|
-
const $d = "zendesk_chat",
|
|
7909
|
+
const $d = "zendesk_chat", Bd = "Zendesk";
|
|
7910
7910
|
function zE_safe(...e) {
|
|
7911
7911
|
try {
|
|
7912
7912
|
if ((function hasZendesk() {
|
|
@@ -8030,11 +8030,11 @@ async function initializeRecording(e, a, u, w2, x2) {
|
|
|
8030
8030
|
zE_safe("messenger:set", "conversationTags", [`sailfish-session-${w2}`]);
|
|
8031
8031
|
});
|
|
8032
8032
|
const handleWidgetOpen = () => {
|
|
8033
|
-
he.addSailfishEvent(Ld.SailfishCustom, { action: "customer support chat opened", element_id: $d, provider:
|
|
8033
|
+
he.addSailfishEvent(Ld.SailfishCustom, { action: "customer support chat opened", element_id: $d, provider: Bd });
|
|
8034
8034
|
}, handleWidgetClose = () => {
|
|
8035
|
-
he.addSailfishEvent(Ld.SailfishCustom, { action: "customer support chat closed", element_id: $d, provider:
|
|
8035
|
+
he.addSailfishEvent(Ld.SailfishCustom, { action: "customer support chat closed", element_id: $d, provider: Bd });
|
|
8036
8036
|
}, handleUnreadMessages = (e2) => {
|
|
8037
|
-
he.addSailfishEvent(Ld.SailfishCustom, { action: "zendesk unreadmessages", element_id: $d, provider:
|
|
8037
|
+
he.addSailfishEvent(Ld.SailfishCustom, { action: "zendesk unreadmessages", element_id: $d, provider: Bd });
|
|
8038
8038
|
};
|
|
8039
8039
|
suppressConsoleLogsDuringCall(() => {
|
|
8040
8040
|
zE_safe("messenger:on", "open", handleWidgetOpen), zE_safe("messenger:on", "close", handleWidgetClose), zE_safe("messenger:on", "unreadMessages", handleUnreadMessages);
|
|
@@ -8045,7 +8045,7 @@ async function initializeRecording(e, a, u, w2, x2) {
|
|
|
8045
8045
|
}
|
|
8046
8046
|
return I2;
|
|
8047
8047
|
}
|
|
8048
|
-
const
|
|
8048
|
+
const jd = readDebugFlag(), Ud = ["t.co", "*.twitter.com", "*.gravatar.com", "*.googleapis.com", "*.amazonaws.com", "*.smooch.io", "*.zendesk.com", "*.zdassets.com"], zd = [400, 403], Wd = "CORS", Gd = 1, Vd = "authorization", Hd = "Authorization", qd = { recordCanvas: false, recordCrossOriginIframes: false, collectFonts: false, inlineImages: false, recordPassword: false, recordRealName: true, recordCreditCardInfo: false, recordSsn: false, recordDob: false, sampling: {}, enableFiberTracking: true }, Kd = { level: ["info", "log", "warn", "error"], lengthThreshold: 1e4, stringifyOptions: { stringLengthLimit: 1e3, numOfKeysLimit: 20, depthOfLimit: 4 }, logger: "console" };
|
|
8049
8049
|
function maskAuthorizationHeader(e) {
|
|
8050
8050
|
const a = e[Vd] ? Vd : e[Hd] ? Hd : null;
|
|
8051
8051
|
if (!a) return;
|
|
@@ -8120,111 +8120,182 @@ function shouldSkipHeadersPropagation(e, a = []) {
|
|
|
8120
8120
|
} catch {
|
|
8121
8121
|
return true;
|
|
8122
8122
|
}
|
|
8123
|
-
for (const e2 of
|
|
8123
|
+
for (const e2 of B) if (u.pathname.toLowerCase().endsWith(e2)) return true;
|
|
8124
8124
|
return !!matchUrlWithWildcard(e, [...Ud, ...a]);
|
|
8125
8125
|
}
|
|
8126
|
-
function setupFetchInterceptor(e = []) {
|
|
8127
|
-
const
|
|
8128
|
-
window.fetch = new Proxy(
|
|
8129
|
-
let
|
|
8130
|
-
if ("string" == typeof
|
|
8131
|
-
else if (
|
|
8126
|
+
function setupFetchInterceptor(e = [], a = { captureStreamingResponseBody: true, captureResponseBodyMaxMb: 10, captureStreamPrefixKb: 64, captureStreamTimeoutMs: 1e4 }) {
|
|
8127
|
+
const u = window.fetch, w2 = getOrSetSessionId(), x2 = ["text/event-stream", "application/x-ndjson", "application/stream+json", "application/grpc", "application/grpc-web"], M2 = ["application/octet-stream"];
|
|
8128
|
+
window.fetch = new Proxy(u, { apply: async (u2, _2, A2) => {
|
|
8129
|
+
let F2, $2 = A2[0], B2 = A2[1] || {};
|
|
8130
|
+
if ("string" == typeof $2) F2 = $2;
|
|
8131
|
+
else if ($2 instanceof Request) F2 = $2.url;
|
|
8132
8132
|
else {
|
|
8133
|
-
if (!(
|
|
8134
|
-
|
|
8133
|
+
if (!($2 instanceof URL)) return u2.apply(_2, A2);
|
|
8134
|
+
F2 = $2.href;
|
|
8135
8135
|
}
|
|
8136
|
-
return shouldSkipHeadersPropagation(
|
|
8136
|
+
return shouldSkipHeadersPropagation(F2, e) ? u2.apply(_2, A2) : (async function injectHeaderWrapper(e2, u3, w3, _3, A3, F3, $3) {
|
|
8137
8137
|
var _a2, _b;
|
|
8138
|
-
if (!
|
|
8139
|
-
let
|
|
8140
|
-
const
|
|
8141
|
-
let
|
|
8138
|
+
if (!F3) return e2.apply(u3, w3);
|
|
8139
|
+
let B3 = v4();
|
|
8140
|
+
const j2 = getUrlAndStoredUuids(), U2 = A3.method || "GET", z2 = Date.now();
|
|
8141
|
+
let W2, G2 = {}, H2 = null;
|
|
8142
8142
|
try {
|
|
8143
|
-
if (
|
|
8144
|
-
|
|
8145
|
-
|
|
8143
|
+
if (_3 instanceof Request) {
|
|
8144
|
+
_3.headers.forEach((e3, a2) => {
|
|
8145
|
+
G2[a2] = e3;
|
|
8146
8146
|
});
|
|
8147
8147
|
try {
|
|
8148
|
-
|
|
8149
|
-
B2 = await e3.text();
|
|
8148
|
+
H2 = _3.clone();
|
|
8150
8149
|
} catch (e3) {
|
|
8151
|
-
|
|
8150
|
+
H2 = null;
|
|
8152
8151
|
}
|
|
8153
|
-
} else
|
|
8154
|
-
|
|
8155
|
-
}) : Array.isArray(
|
|
8156
|
-
|
|
8157
|
-
}) :
|
|
8152
|
+
} else A3.headers && (A3.headers instanceof Headers ? A3.headers.forEach((e3, a2) => {
|
|
8153
|
+
G2[a2] = e3;
|
|
8154
|
+
}) : Array.isArray(A3.headers) ? A3.headers.forEach(([e3, a2]) => {
|
|
8155
|
+
G2[e3] = a2;
|
|
8156
|
+
}) : G2 = { ...A3.headers }), W2 = A3.body;
|
|
8158
8157
|
} catch (e3) {
|
|
8159
|
-
|
|
8158
|
+
jd && console.warn("[Sailfish] Failed to capture request data:", e3);
|
|
8160
8159
|
}
|
|
8161
|
-
delete
|
|
8162
|
-
const
|
|
8163
|
-
|
|
8164
|
-
const
|
|
8165
|
-
|
|
8166
|
-
maskAuthorizationHeader(
|
|
8160
|
+
delete G2[I];
|
|
8161
|
+
const K2 = getFuncSpanHeader();
|
|
8162
|
+
K2 && delete G2[K2.name];
|
|
8163
|
+
const Y2 = `${F3}/${j2.page_visit_uuid}/${B3}`;
|
|
8164
|
+
G2[I] = Y2, K2 && (G2[K2.name] = K2.value);
|
|
8165
|
+
maskAuthorizationHeader(G2);
|
|
8167
8166
|
try {
|
|
8168
|
-
let
|
|
8167
|
+
let K3 = await (async function injectHeader(e3, a2, u4, w4, x3, M3, _4) {
|
|
8169
8168
|
const A4 = getFuncSpanHeader();
|
|
8170
|
-
if (
|
|
8171
|
-
const
|
|
8172
|
-
$
|
|
8173
|
-
const
|
|
8174
|
-
return await e3.call(
|
|
8169
|
+
if (u4 instanceof Request) {
|
|
8170
|
+
const F4 = u4.clone(), $4 = new Headers(F4.headers);
|
|
8171
|
+
$4.set(I, `${x3}/${M3}/${_4}`), A4 && ($4.set(A4.name, A4.value), jd && console.log("[Sailfish] Added funcspan header to HTTP Request:", { url: u4.url, header: A4.name }));
|
|
8172
|
+
const B4 = new Request(F4, { headers: $4 });
|
|
8173
|
+
return await e3.call(a2, B4, w4);
|
|
8175
8174
|
}
|
|
8176
8175
|
{
|
|
8177
|
-
const
|
|
8178
|
-
return $
|
|
8176
|
+
const F4 = { ...w4 }, $4 = new Headers(w4.headers || {});
|
|
8177
|
+
return $4.set(I, `${x3}/${M3}/${_4}`), A4 && ($4.set(A4.name, A4.value), jd && console.log("[Sailfish] Added funcspan header to HTTP fetch:", { url: "string" == typeof u4 ? u4 : u4.href, header: A4.name })), F4.headers = $4, await e3.call(a2, u4, F4);
|
|
8179
8178
|
}
|
|
8180
|
-
})(e2,
|
|
8181
|
-
zd.includes(
|
|
8179
|
+
})(e2, u3, _3, A3, F3, j2.page_visit_uuid, B3), Y3 = false;
|
|
8180
|
+
zd.includes(K3.status) && (jd && console.log("Perform retry as status was fail:", K3), delete G2[I], K3 = await (async function retryWithoutPropagateHeaders(e3, a2, u4, w4) {
|
|
8182
8181
|
try {
|
|
8183
|
-
let w5 =
|
|
8182
|
+
let w5 = u4[0], x3 = u4[1] || {};
|
|
8184
8183
|
if ("string" == typeof w5 || w5 instanceof URL) {
|
|
8185
|
-
const
|
|
8186
|
-
|
|
8187
|
-
return await e3.call(
|
|
8184
|
+
const u5 = { ...x3 }, M3 = new Headers(x3.headers || {});
|
|
8185
|
+
M3.delete(I), u5.headers = M3;
|
|
8186
|
+
return await e3.call(a2, w5, u5);
|
|
8188
8187
|
}
|
|
8189
8188
|
if (w5 instanceof Request) {
|
|
8190
|
-
const
|
|
8191
|
-
|
|
8192
|
-
const _4 = new Request(
|
|
8193
|
-
return await e3.call(
|
|
8189
|
+
const u5 = w5.clone(), M3 = new Headers(u5.headers);
|
|
8190
|
+
M3.delete(I);
|
|
8191
|
+
const _4 = new Request(u5, { headers: M3 });
|
|
8192
|
+
return await e3.call(a2, _4, x3);
|
|
8194
8193
|
}
|
|
8195
|
-
return e3.apply(
|
|
8194
|
+
return e3.apply(a2, u4);
|
|
8196
8195
|
} catch (e4) {
|
|
8197
|
-
throw
|
|
8196
|
+
throw jd && console.log(`Retry without ${I} for ${w4} also failed:`, e4), e4;
|
|
8198
8197
|
}
|
|
8199
|
-
})(e2,
|
|
8200
|
-
const
|
|
8201
|
-
let
|
|
8198
|
+
})(e2, u3, w3, $3), Y3 = true);
|
|
8199
|
+
const Z2 = Date.now(), J2 = K3.status, X2 = K3.ok, Q2 = X2 ? "" : `Request Error: ${K3.statusText}`;
|
|
8200
|
+
let ee2 = null;
|
|
8202
8201
|
try {
|
|
8203
|
-
|
|
8204
|
-
|
|
8205
|
-
} catch (e3) {
|
|
8206
|
-
Bd && console.warn("[Sailfish] Failed to capture response data:", e3), Z2 = null;
|
|
8207
|
-
}
|
|
8208
|
-
let J2 = null;
|
|
8209
|
-
try {
|
|
8210
|
-
J2 = {}, z3.headers.forEach((e3, a4) => {
|
|
8211
|
-
J2[a4] = e3;
|
|
8202
|
+
ee2 = {}, K3.headers.forEach((e3, a2) => {
|
|
8203
|
+
ee2[a2] = e3;
|
|
8212
8204
|
});
|
|
8213
8205
|
} catch (e3) {
|
|
8214
|
-
|
|
8206
|
+
jd && console.warn("[Sailfish] Failed to capture response headers:", e3), ee2 = null;
|
|
8215
8207
|
}
|
|
8216
|
-
|
|
8217
|
-
|
|
8218
|
-
|
|
8219
|
-
|
|
8220
|
-
|
|
8208
|
+
const te2 = { type: 27, timestamp: Z2, sessionId: F3, data: { request_id: B3, session_id: F3, timestamp_start: z2, timestamp_end: Z2, response_code: J2, success: X2, error: Q2, method: U2, url: $3, retry_without_trace_id: Y3, request_headers: G2, request_body: W2, response_headers: ee2, response_body: null }, ...j2 }, sendEventWithBody = (e3) => {
|
|
8209
|
+
te2.data.response_body = e3, H2 ? H2.text().then((e4) => {
|
|
8210
|
+
te2.data.request_body = e4, sendEvent(te2);
|
|
8211
|
+
}, () => {
|
|
8212
|
+
sendEvent(te2);
|
|
8213
|
+
}) : sendEvent(te2);
|
|
8214
|
+
}, ne2 = 1024 * a.captureResponseBodyMaxMb * 1024;
|
|
8215
|
+
if (0 === a.captureResponseBodyMaxMb) sendEventWithBody(null);
|
|
8216
|
+
else if ((function shouldSkipBodyCapture(e3) {
|
|
8217
|
+
const a2 = e3.headers.get("content-type");
|
|
8218
|
+
if (!a2) return false;
|
|
8219
|
+
const u4 = a2.toLowerCase();
|
|
8220
|
+
return M2.some((e4) => u4.includes(e4));
|
|
8221
|
+
})(K3)) sendEventWithBody(null);
|
|
8222
|
+
else if ((function isStreamingResponse(e3) {
|
|
8223
|
+
const a2 = e3.headers.get("content-type");
|
|
8224
|
+
if (!a2) return false;
|
|
8225
|
+
const u4 = a2.toLowerCase();
|
|
8226
|
+
return x2.some((e4) => u4.includes(e4));
|
|
8227
|
+
})(K3)) if (a.captureStreamingResponseBody) try {
|
|
8228
|
+
(async function readStreamPrefix(e3, a2, u4) {
|
|
8229
|
+
const w4 = e3.body;
|
|
8230
|
+
if (!w4) return null;
|
|
8231
|
+
const x3 = w4.getReader(), I2 = new TextDecoder(), M3 = [];
|
|
8232
|
+
let _4 = 0;
|
|
8233
|
+
const readWithLimit = async () => {
|
|
8234
|
+
try {
|
|
8235
|
+
for (; _4 < a2; ) {
|
|
8236
|
+
const { done: e4, value: a3 } = await x3.read();
|
|
8237
|
+
if (e4) break;
|
|
8238
|
+
_4 += a3.byteLength, M3.push(I2.decode(a3, { stream: true }));
|
|
8239
|
+
}
|
|
8240
|
+
return M3.push(I2.decode()), M3.join("");
|
|
8241
|
+
} catch {
|
|
8242
|
+
return M3.length > 0 ? M3.join("") : null;
|
|
8243
|
+
} finally {
|
|
8244
|
+
try {
|
|
8245
|
+
x3.cancel();
|
|
8246
|
+
} catch {
|
|
8247
|
+
}
|
|
8248
|
+
}
|
|
8249
|
+
};
|
|
8250
|
+
try {
|
|
8251
|
+
return await Promise.race([readWithLimit(), new Promise((e4) => setTimeout(() => {
|
|
8252
|
+
try {
|
|
8253
|
+
x3.cancel();
|
|
8254
|
+
} catch {
|
|
8255
|
+
}
|
|
8256
|
+
e4(M3.length > 0 ? M3.join("") : null);
|
|
8257
|
+
}, u4))]);
|
|
8258
|
+
} catch {
|
|
8259
|
+
try {
|
|
8260
|
+
x3.cancel();
|
|
8261
|
+
} catch {
|
|
8262
|
+
}
|
|
8263
|
+
return null;
|
|
8264
|
+
}
|
|
8265
|
+
})(K3.clone(), 1024 * a.captureStreamPrefixKb, a.captureStreamTimeoutMs).then((e3) => sendEventWithBody(e3), () => sendEventWithBody(null));
|
|
8266
|
+
} catch {
|
|
8267
|
+
sendEventWithBody(null);
|
|
8268
|
+
}
|
|
8269
|
+
else sendEventWithBody(null);
|
|
8270
|
+
else {
|
|
8271
|
+
const e3 = K3.headers.get("content-length"), a2 = e3 ? parseInt(e3, 10) : NaN;
|
|
8272
|
+
if (!isNaN(a2) && a2 > ne2) sendEventWithBody(null);
|
|
8273
|
+
else try {
|
|
8274
|
+
K3.clone().text().then((e4) => {
|
|
8275
|
+
e4.length > ne2 ? sendEventWithBody(null) : sendEventWithBody(e4);
|
|
8276
|
+
}, () => sendEventWithBody(null));
|
|
8277
|
+
} catch {
|
|
8278
|
+
sendEventWithBody(null);
|
|
8279
|
+
}
|
|
8280
|
+
}
|
|
8281
|
+
return K3;
|
|
8282
|
+
} catch (a2) {
|
|
8283
|
+
const x3 = Date.now(), I2 = false, M3 = ((_a2 = a2.response) == null ? void 0 : _a2.status) || 500, _4 = a2.message || "Fetch request failed";
|
|
8284
|
+
if (a2 instanceof TypeError && ((_b = a2 == null ? void 0 : a2.message) == null ? void 0 : _b.toLowerCase().includes(Wd.toLowerCase()))) return e2.apply(u3, w3);
|
|
8285
|
+
let A4 = W2;
|
|
8286
|
+
if (H2) try {
|
|
8287
|
+
A4 = await H2.text();
|
|
8288
|
+
} catch {
|
|
8289
|
+
A4 = null;
|
|
8290
|
+
}
|
|
8291
|
+
throw sendEvent({ type: 27, timestamp: x3, sessionId: F3, data: { request_id: B3, session_id: F3, timestamp_start: z2, timestamp_end: x3, response_code: M3, success: I2, error: _4, method: U2, url: $3, request_headers: G2, request_body: A4, response_body: null }, ...j2 }), a2;
|
|
8221
8292
|
}
|
|
8222
|
-
})(
|
|
8293
|
+
})(u2, _2, A2, $2, B2, w2, F2);
|
|
8223
8294
|
} });
|
|
8224
8295
|
}
|
|
8225
|
-
async function startRecording({ apiKey: e, backendApi: a = "https://api-service.sailfishqa.com", domainsToPropagateHeaderTo: u = [], domainsToNotPropagateHeaderTo: w2 = [], serviceVersion: x2, serviceIdentifier: M2, gitSha: _2, serviceAdditionalMetadata: A2, enableIpTracking: F2 }) {
|
|
8296
|
+
async function startRecording({ apiKey: e, backendApi: a = "https://api-service.sailfishqa.com", domainsToPropagateHeaderTo: u = [], domainsToNotPropagateHeaderTo: w2 = [], serviceVersion: x2, serviceIdentifier: M2, gitSha: _2, serviceAdditionalMetadata: A2, enableIpTracking: F2, captureStreamingResponseBody: $2 = true, captureResponseBodyMaxMb: B2 = 10, captureStreamPrefixKb: j2 = 64, captureStreamTimeoutMs: U2 = 1e4 }) {
|
|
8226
8297
|
var _a2, _b;
|
|
8227
|
-
const
|
|
8298
|
+
const z2 = _2 ?? (function readGitSha() {
|
|
8228
8299
|
var _a3;
|
|
8229
8300
|
try {
|
|
8230
8301
|
const e2 = globalThis;
|
|
@@ -8241,104 +8312,109 @@ async function startRecording({ apiKey: e, backendApi: a = "https://api-service.
|
|
|
8241
8312
|
if ("string" == typeof e2 && e2) return e2;
|
|
8242
8313
|
} catch {
|
|
8243
8314
|
}
|
|
8244
|
-
})(),
|
|
8315
|
+
})(), W2 = M2 ?? "", G2 = x2 ?? "", H2 = (function getMapUuidFromWindow() {
|
|
8245
8316
|
try {
|
|
8246
8317
|
const e2 = window;
|
|
8247
8318
|
if (e2 && "string" == typeof e2.sfMapUuid && e2.sfMapUuid) return e2.sfMapUuid;
|
|
8248
8319
|
} catch {
|
|
8249
8320
|
}
|
|
8250
|
-
})(),
|
|
8251
|
-
if (
|
|
8252
|
-
|
|
8253
|
-
|
|
8254
|
-
|
|
8255
|
-
|
|
8256
|
-
|
|
8257
|
-
|
|
8258
|
-
|
|
8259
|
-
|
|
8260
|
-
|
|
8261
|
-
|
|
8262
|
-
|
|
8263
|
-
|
|
8264
|
-
|
|
8265
|
-
|
|
8266
|
-
|
|
8267
|
-
|
|
8268
|
-
|
|
8269
|
-
|
|
8270
|
-
},
|
|
8271
|
-
|
|
8272
|
-
|
|
8273
|
-
|
|
8274
|
-
|
|
8275
|
-
|
|
8276
|
-
|
|
8321
|
+
})(), K2 = getOrSetSessionId(), Y2 = window.__sailfish_recorder || (window.__sailfish_recorder = {});
|
|
8322
|
+
if (Y2.sessionId = K2, Y2.apiKey = e, Y2.backendApi = a, Y2.serviceAdditionalMetadata = A2, Y2.initialized && Y2.sessionId === K2 && Y2.ws && 1 === Y2.ws.readyState) return void trackDomainChangesOnce();
|
|
8323
|
+
Y2.domEventsInit || (initializeDomContentEvents(K2), Y2.domEventsInit = true), Y2.consoleInit || (initializeConsolePlugin(Kd, K2), Y2.consoleInit = true), Y2.errorInit || (!(function initializeErrorInterceptor() {
|
|
8324
|
+
window.addEventListener("error", (e2) => {
|
|
8325
|
+
captureError(e2.error || e2.message);
|
|
8326
|
+
}), window.addEventListener("unhandledrejection", (e2) => {
|
|
8327
|
+
captureError(e2.reason, true);
|
|
8328
|
+
});
|
|
8329
|
+
})(), Y2.errorInit = true), (function storeCredentialsAndConnection({ apiKey: e2, backendApi: a2 }) {
|
|
8330
|
+
ee && (sessionStorage.setItem("sailfishApiKey", e2), sessionStorage.setItem("sailfishBackendApi", a2));
|
|
8331
|
+
})({ apiKey: e, backendApi: a }), trackDomainChangesOnce(), sessionStorage.setItem("sailfishApiKey", e), sessionStorage.setItem("sailfishBackendApi", a), !isFunctionSpanTrackingEnabled() || Y2.ws && 1 === Y2.ws.readyState || fetchFunctionSpanTrackingEnabled(e, a).then((e2) => {
|
|
8332
|
+
var _a3;
|
|
8333
|
+
((_a3 = e2.data) == null ? void 0 : _a3.isFunctionSpanTrackingEnabledFromApiKey) ?? false ? jd && console.log("[Sailfish] Function span tracking state validated with backend: ACTIVE") : (clearStaleFuncSpanState(), jd && console.log("[Sailfish] Cleared stale function span tracking state - backend validation shows tracking is not active"));
|
|
8334
|
+
}).catch((e2) => {
|
|
8335
|
+
jd && console.warn("[Sailfish] Failed to validate function span tracking status with backend:", e2);
|
|
8336
|
+
}), Y2.sentDoNotPropagateOnce || (sendDomainsToNotPropagateHeaderTo(e, [...w2, ...Ud], a).catch((e2) => console.error("Failed to send domains to not propagate header to:", e2)), Y2.sentDoNotPropagateOnce = true);
|
|
8337
|
+
const Z2 = { captureStreamingResponseBody: $2, captureResponseBodyMaxMb: B2, captureStreamPrefixKb: j2, captureStreamTimeoutMs: U2 };
|
|
8338
|
+
Y2.xhrPatched || (!(function setupXMLHttpRequestInterceptor(e2 = [], a2 = { captureStreamingResponseBody: true, captureResponseBodyMaxMb: 10, captureStreamPrefixKb: 64, captureStreamTimeoutMs: 1e4 }) {
|
|
8339
|
+
const u2 = XMLHttpRequest.prototype.open, w3 = XMLHttpRequest.prototype.send, x3 = XMLHttpRequest.prototype.setRequestHeader, M3 = getOrSetSessionId();
|
|
8340
|
+
XMLHttpRequest.prototype.setRequestHeader = function(e3, a3) {
|
|
8341
|
+
return this._capturedRequestHeaders || (this._capturedRequestHeaders = {}), this._capturedRequestHeaders[e3] = a3, x3.call(this, e3, a3);
|
|
8342
|
+
}, XMLHttpRequest.prototype.open = function(e3, a3, ...w4) {
|
|
8343
|
+
return this._requestUrl = "string" == typeof a3 && a3.length > 0 ? a3 : null, this._requestMethod = e3, this._capturedRequestHeaders = {}, u2.apply(this, [e3, a3, ...w4]);
|
|
8344
|
+
}, XMLHttpRequest.prototype.send = function(...u3) {
|
|
8345
|
+
const x4 = this._requestUrl;
|
|
8346
|
+
if (!x4) return w3.apply(this, u3);
|
|
8347
|
+
if (shouldSkipHeadersPropagation(x4, e2)) return w3.apply(this, u3);
|
|
8348
|
+
const _3 = sessionStorage.getItem("pageVisitUUID"), A3 = v4(), F3 = `${M3}/${_3}/${A3}`;
|
|
8349
|
+
try {
|
|
8350
|
+
this.setRequestHeader(I, F3);
|
|
8351
|
+
} catch (e3) {
|
|
8352
|
+
console.warn(`Could not set X-Sf3-Rid for ${x4}`, e3);
|
|
8353
|
+
}
|
|
8354
|
+
const $3 = getFuncSpanHeader();
|
|
8355
|
+
if ($3) try {
|
|
8356
|
+
this.setRequestHeader($3.name, $3.value), jd && console.log("[Sailfish] Added funcspan header to XMLHttpRequest:", { url: x4, header: $3.name });
|
|
8357
|
+
} catch (e3) {
|
|
8358
|
+
jd && console.warn(`[Sailfish] Could not set funcspan header for ${x4}`, e3);
|
|
8359
|
+
}
|
|
8360
|
+
const B3 = Date.now();
|
|
8361
|
+
let j3 = false;
|
|
8362
|
+
const U3 = u3[0], z3 = { ...this._capturedRequestHeaders };
|
|
8363
|
+
maskAuthorizationHeader(z3);
|
|
8364
|
+
const emitFinished = (e3, a3, u4, w4, I2) => {
|
|
8365
|
+
if (j3) return;
|
|
8366
|
+
j3 = true;
|
|
8367
|
+
const _4 = Date.now();
|
|
8368
|
+
sendEvent({ type: 27, timestamp: _4, sessionId: M3, data: { request_id: A3, session_id: M3, timestamp_start: B3, timestamp_end: _4, response_code: a3, success: e3, error: u4, method: this._requestMethod, url: x4, request_headers: z3, request_body: U3, response_headers: I2, response_body: w4 }, ...getUrlAndStoredUuids() });
|
|
8369
|
+
};
|
|
8370
|
+
return this.addEventListener("load", () => {
|
|
8371
|
+
const e3 = this.status || 0;
|
|
8372
|
+
let u4, w4 = null;
|
|
8373
|
+
const x5 = 1024 * a2.captureResponseBodyMaxMb * 1024;
|
|
8277
8374
|
try {
|
|
8278
|
-
|
|
8279
|
-
} catch (e3) {
|
|
8280
|
-
console.warn(`Could not set X-Sf3-Rid for ${w4}`, e3);
|
|
8281
|
-
}
|
|
8282
|
-
const F3 = getFuncSpanHeader();
|
|
8283
|
-
if (F3) try {
|
|
8284
|
-
this.setRequestHeader(F3.name, F3.value), Bd && console.log("[Sailfish] Added funcspan header to XMLHttpRequest:", { url: w4, header: F3.name });
|
|
8285
|
-
} catch (e3) {
|
|
8286
|
-
Bd && console.warn(`[Sailfish] Could not set funcspan header for ${w4}`, e3);
|
|
8287
|
-
}
|
|
8288
|
-
const $3 = Date.now();
|
|
8289
|
-
let j3 = false;
|
|
8290
|
-
const B3 = a3[0], U3 = { ...this._capturedRequestHeaders };
|
|
8291
|
-
maskAuthorizationHeader(U3);
|
|
8292
|
-
const emitFinished = (e3, a4, u3, I2, M4) => {
|
|
8293
|
-
if (j3) return;
|
|
8294
|
-
j3 = true;
|
|
8295
|
-
const A4 = Date.now();
|
|
8296
|
-
sendEvent({ type: 27, timestamp: A4, sessionId: x3, data: { request_id: _3, session_id: x3, timestamp_start: $3, timestamp_end: A4, response_code: a4, success: e3, error: u3, method: this._requestMethod, url: w4, request_headers: U3, request_body: B3, response_headers: M4, response_body: I2 }, ...getUrlAndStoredUuids() });
|
|
8297
|
-
};
|
|
8298
|
-
return this.addEventListener("load", () => {
|
|
8299
|
-
const e3 = this.status || 0;
|
|
8300
|
-
let a4, u3 = null;
|
|
8301
|
-
try {
|
|
8302
|
-
a4 = this.responseText || this.response;
|
|
8303
|
-
} catch (e4) {
|
|
8304
|
-
a4 = null;
|
|
8305
|
-
}
|
|
8306
|
-
try {
|
|
8307
|
-
u3 = {};
|
|
8308
|
-
const e4 = this.getAllResponseHeaders();
|
|
8309
|
-
e4 && e4.split("\r\n").forEach((e5) => {
|
|
8310
|
-
const a5 = e5.split(": ");
|
|
8311
|
-
2 === a5.length && (u3[a5[0]] = a5[1]);
|
|
8312
|
-
});
|
|
8313
|
-
} catch (e4) {
|
|
8314
|
-
Bd && console.warn("[Sailfish] Failed to capture XHR response headers:", e4), u3 = null;
|
|
8315
|
-
}
|
|
8316
|
-
if (e3 >= 200 && e3 < 300) emitFinished(true, e3, "", a4, u3);
|
|
8375
|
+
if (0 === a2.captureResponseBodyMaxMb) u4 = null;
|
|
8317
8376
|
else {
|
|
8318
|
-
const
|
|
8319
|
-
|
|
8377
|
+
const e4 = this.responseText || this.response;
|
|
8378
|
+
u4 = "string" == typeof e4 && e4.length > x5 ? null : e4;
|
|
8320
8379
|
}
|
|
8321
|
-
}
|
|
8322
|
-
|
|
8323
|
-
|
|
8324
|
-
|
|
8325
|
-
|
|
8326
|
-
|
|
8327
|
-
|
|
8328
|
-
|
|
8329
|
-
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8333
|
-
|
|
8334
|
-
|
|
8335
|
-
|
|
8336
|
-
|
|
8337
|
-
|
|
8338
|
-
|
|
8339
|
-
|
|
8340
|
-
|
|
8341
|
-
|
|
8380
|
+
} catch (e4) {
|
|
8381
|
+
u4 = null;
|
|
8382
|
+
}
|
|
8383
|
+
try {
|
|
8384
|
+
w4 = {};
|
|
8385
|
+
const e4 = this.getAllResponseHeaders();
|
|
8386
|
+
e4 && e4.split("\r\n").forEach((e5) => {
|
|
8387
|
+
const a3 = e5.split(": ");
|
|
8388
|
+
2 === a3.length && (w4[a3[0]] = a3[1]);
|
|
8389
|
+
});
|
|
8390
|
+
} catch (e4) {
|
|
8391
|
+
jd && console.warn("[Sailfish] Failed to capture XHR response headers:", e4), w4 = null;
|
|
8392
|
+
}
|
|
8393
|
+
if (e3 >= 200 && e3 < 300) emitFinished(true, e3, "", u4, w4);
|
|
8394
|
+
else {
|
|
8395
|
+
const a3 = this.statusText || `HTTP ${e3}`;
|
|
8396
|
+
emitFinished(false, e3, a3, u4, w4);
|
|
8397
|
+
}
|
|
8398
|
+
}, { once: true }), this.addEventListener("error", () => {
|
|
8399
|
+
const e3 = this.status || 0, a3 = 0 === e3 ? "Network or CORS failure" : this.statusText || `Error ${e3}`;
|
|
8400
|
+
emitFinished(false, e3, a3);
|
|
8401
|
+
}, { once: true }), w3.apply(this, u3);
|
|
8402
|
+
};
|
|
8403
|
+
})(w2, Z2), Y2.xhrPatched = true), Y2.fetchPatched || (setupFetchInterceptor(w2, Z2), Y2.fetchPatched = true), (async function gatherAndCacheDeviceInfo() {
|
|
8404
|
+
sendMessage({ type: "deviceInfo", data: { deviceInfo: { language: navigator.language, userAgent: navigator.userAgent } } });
|
|
8405
|
+
})(), F2 && fetchAndSendIp(K2);
|
|
8406
|
+
try {
|
|
8407
|
+
const u2 = await fetchCaptureSettings(e, a), w3 = ((_a2 = u2.data) == null ? void 0 : _a2.captureSettingsFromApiKey) || qd;
|
|
8408
|
+
if (Y2.ws && 1 === Y2.ws.readyState) return;
|
|
8409
|
+
const I2 = withAppUrlMetadata(A2), _3 = await startRecordingSession(e, K2, a, W2, G2, H2, z2, "JS/TS", I2);
|
|
8410
|
+
if ((_b = _3.data) == null ? void 0 : _b.startRecordingSession) {
|
|
8411
|
+
const u3 = (A2 == null ? void 0 : A2.env) || (A2 == null ? void 0 : A2.environment), I3 = await initializeRecording(w3, a, e, K2, u3);
|
|
8412
|
+
Y2.ws = I3, Y2.initialized = true, Y2.sentMapUuidOnce || (!(function sendMapUuidIfAvailable(e2 = "", a2 = "") {
|
|
8413
|
+
window.sfMapUuid && sendMessage({ type: "mapUuid", data: { mapUuid: window.sfMapUuid, serviceIdentifier: e2, serviceVersion: a2 } });
|
|
8414
|
+
})(M2, x2), Y2.sentMapUuidOnce = true);
|
|
8415
|
+
} else console.error("Failed to start recording session:", _3.errors || _3);
|
|
8416
|
+
} catch (e2) {
|
|
8417
|
+
console.error("Error starting recording:", e2);
|
|
8342
8418
|
}
|
|
8343
8419
|
}
|
|
8344
8420
|
J && (!(function sendUserDeviceUuid() {
|
|
@@ -8363,7 +8439,7 @@ J && (!(function sendUserDeviceUuid() {
|
|
|
8363
8439
|
const e = document.visibilityState, a = Date.now();
|
|
8364
8440
|
"visible" === e && getOrSetSessionId();
|
|
8365
8441
|
try {
|
|
8366
|
-
sendMessage({ type: "visibilityChange", data: { state: e, url: window.location.href.split("?")[0], timestamp: a, ...getUrlAndStoredUuids() } }),
|
|
8442
|
+
sendMessage({ type: "visibilityChange", data: { state: e, url: window.location.href.split("?")[0], timestamp: a, ...getUrlAndStoredUuids() } }), jd && console.log(`[Sailfish] Tab became ${e}, sent visibility change event`);
|
|
8367
8443
|
} catch (e2) {
|
|
8368
8444
|
console.warn("[Sailfish] Failed to send visibility change event:", e2);
|
|
8369
8445
|
}
|