@sailfish-ai/recorder 1.8.17 → 1.8.19
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/inAppReportIssueModal/integrations.js +27 -5
- package/dist/recorder.cjs +117 -64
- package/dist/recorder.js +88 -35
- package/dist/recorder.js.br +0 -0
- package/dist/recorder.js.gz +0 -0
- package/dist/recorder.umd.cjs +121 -68
- package/dist/recording.js +14 -1
- package/dist/sourceLocation.js +175 -0
- package/dist/types/sourceLocation.d.ts +17 -0
- package/package.json +1 -1
|
@@ -208,7 +208,13 @@ export function updateFormWithIntegrationData(currentState) {
|
|
|
208
208
|
const teamSelect = document.getElementById("sf-eng-ticket-team");
|
|
209
209
|
if (teamSelect && hasTeams) {
|
|
210
210
|
populateSelectOptions(teamSelect, integrationData.teams, integrationData.defaultTeam);
|
|
211
|
-
|
|
211
|
+
// Preserve existing value if available, otherwise use DOM value
|
|
212
|
+
if (currentState.engTicketTeam) {
|
|
213
|
+
teamSelect.value = currentState.engTicketTeam;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
currentState.engTicketTeam = teamSelect.value;
|
|
217
|
+
}
|
|
212
218
|
}
|
|
213
219
|
// Update project dropdown
|
|
214
220
|
const projectSelect = document.getElementById("sf-eng-ticket-project");
|
|
@@ -218,21 +224,37 @@ export function updateFormWithIntegrationData(currentState) {
|
|
|
218
224
|
? getProjectsForTeam(currentState.engTicketTeam)
|
|
219
225
|
: integrationData.projects || [];
|
|
220
226
|
populateSelectOptions(projectSelect, projects, integrationData.defaultProject);
|
|
221
|
-
|
|
227
|
+
// Preserve existing value if available, otherwise use DOM value
|
|
228
|
+
if (currentState.engTicketProject) {
|
|
229
|
+
projectSelect.value = currentState.engTicketProject;
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
currentState.engTicketProject = projectSelect.value;
|
|
233
|
+
}
|
|
222
234
|
}
|
|
223
235
|
// Update priority dropdown with proper values
|
|
224
236
|
const prioritySelect = document.getElementById("sf-eng-ticket-priority");
|
|
225
237
|
if (prioritySelect) {
|
|
226
238
|
populatePriorityOptions(prioritySelect, integrationData.provider || "", integrationData.defaultPriority);
|
|
227
|
-
|
|
239
|
+
// Preserve existing value if available, otherwise use DOM value
|
|
240
|
+
if (currentState.engTicketPriority) {
|
|
241
|
+
prioritySelect.value = String(currentState.engTicketPriority);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
currentState.engTicketPriority = Number(prioritySelect.value);
|
|
245
|
+
}
|
|
228
246
|
}
|
|
229
247
|
// Update issue type dropdown based on selected project (for Jira)
|
|
230
248
|
const issueTypeSelect = document.getElementById("sf-eng-ticket-type");
|
|
231
249
|
const isJira = integrationData.provider?.toLowerCase() === "jira";
|
|
232
250
|
if (issueTypeSelect && isJira && currentState.engTicketProject) {
|
|
233
251
|
updateIssueTypeOptions(issueTypeSelect, currentState.engTicketProject);
|
|
234
|
-
//
|
|
235
|
-
if (
|
|
252
|
+
// Preserve existing value if available, otherwise use DOM value
|
|
253
|
+
if (currentState.engTicketIssueType) {
|
|
254
|
+
issueTypeSelect.value = currentState.engTicketIssueType;
|
|
255
|
+
issueTypeSelect.style.color = "#000";
|
|
256
|
+
}
|
|
257
|
+
else if (issueTypeSelect.value) {
|
|
236
258
|
currentState.engTicketIssueType = issueTypeSelect.value;
|
|
237
259
|
}
|
|
238
260
|
}
|
package/dist/recorder.cjs
CHANGED
|
@@ -465,7 +465,7 @@ function initializeWebSocket(e, a, u, m2) {
|
|
|
465
465
|
const a2 = document.createElement("a");
|
|
466
466
|
return a2.href = e2, `${a2.hostname}${a2.port ? `:${a2.port}` : ""}`;
|
|
467
467
|
})(e);
|
|
468
|
-
let b2 = `${"https:" === new URL(e).protocol ? "wss" : "ws"}://${w2}/ws/notify/?apiKey=${a}&sessionId=${u}&sender=JS%2FTS&version=1.8.
|
|
468
|
+
let b2 = `${"https:" === new URL(e).protocol ? "wss" : "ws"}://${w2}/ws/notify/?apiKey=${a}&sessionId=${u}&sender=JS%2FTS&version=1.8.19`;
|
|
469
469
|
m2 && (b2 += `&envValue=${encodeURIComponent(m2)}`);
|
|
470
470
|
return oe = new U(b2, [], { connectionTimeout: 3e4 }), oe.addEventListener("open", () => {
|
|
471
471
|
ne && (console.log("[Sailfish] WebSocket connection opened"), console.log("[Sailfish] Function span tracking state: " + (ce ? "ENABLED" : "DISABLED"))), (async () => {
|
|
@@ -770,9 +770,9 @@ function requireArraySet() {
|
|
|
770
770
|
return this._array.slice();
|
|
771
771
|
}, Ee.ArraySet = ArraySet, Ee;
|
|
772
772
|
}
|
|
773
|
-
var Oe,
|
|
773
|
+
var Oe, Te, Le = {};
|
|
774
774
|
function requireMappingList() {
|
|
775
|
-
if (Oe) return
|
|
775
|
+
if (Oe) return Le;
|
|
776
776
|
Oe = 1;
|
|
777
777
|
var e = requireUtil();
|
|
778
778
|
function MappingList() {
|
|
@@ -787,11 +787,11 @@ function requireMappingList() {
|
|
|
787
787
|
})(this._last, a) ? (this._sorted = false, this._array.push(a)) : (this._last = a, this._array.push(a));
|
|
788
788
|
}, MappingList.prototype.toArray = function MappingList_toArray() {
|
|
789
789
|
return this._sorted || (this._array.sort(e.compareByGeneratedPositionsInflated), this._sorted = true), this._array;
|
|
790
|
-
},
|
|
790
|
+
}, Le.MappingList = MappingList, Le;
|
|
791
791
|
}
|
|
792
792
|
function requireSourceMapGenerator() {
|
|
793
|
-
if (
|
|
794
|
-
|
|
793
|
+
if (Te) return ve;
|
|
794
|
+
Te = 1;
|
|
795
795
|
var e = requireBase64Vlq(), a = requireUtil(), u = requireArraySet().ArraySet, m2 = requireMappingList().MappingList;
|
|
796
796
|
function SourceMapGenerator(e2) {
|
|
797
797
|
e2 || (e2 = {}), this._file = a.getArg(e2, "file", null), this._sourceRoot = a.getArg(e2, "sourceRoot", null), this._skipValidation = a.getArg(e2, "skipValidation", false), this._ignoreInvalidMapping = a.getArg(e2, "ignoreInvalidMapping", false), this._sources = new u(), this._names = new u(), this._mappings = new m2(), this._sourcesContents = null;
|
|
@@ -1395,10 +1395,10 @@ function updateFormWithIntegrationData(e) {
|
|
|
1395
1395
|
var _a2;
|
|
1396
1396
|
if (!ot) return e;
|
|
1397
1397
|
const a = ot.teams && Array.isArray(ot.teams) && ot.teams.length > 0, u = document.getElementById("sf-eng-ticket-team");
|
|
1398
|
-
u && a && (populateSelectOptions(u, ot.teams, ot.defaultTeam), e.engTicketTeam = u.value);
|
|
1398
|
+
u && a && (populateSelectOptions(u, ot.teams, ot.defaultTeam), e.engTicketTeam ? u.value = e.engTicketTeam : e.engTicketTeam = u.value);
|
|
1399
1399
|
const m2 = document.getElementById("sf-eng-ticket-project");
|
|
1400
1400
|
if (m2) {
|
|
1401
|
-
populateSelectOptions(m2, a ? getProjectsForTeam(e.engTicketTeam) : ot.projects || [], ot.defaultProject), e.engTicketProject = m2.value;
|
|
1401
|
+
populateSelectOptions(m2, a ? getProjectsForTeam(e.engTicketTeam) : ot.projects || [], ot.defaultProject), e.engTicketProject ? m2.value = e.engTicketProject : e.engTicketProject = m2.value;
|
|
1402
1402
|
}
|
|
1403
1403
|
const w2 = document.getElementById("sf-eng-ticket-priority");
|
|
1404
1404
|
w2 && (!(function populatePriorityOptions(e2, a2, u2) {
|
|
@@ -1411,9 +1411,9 @@ function updateFormWithIntegrationData(e) {
|
|
|
1411
1411
|
u3.value = a3.id, u3.textContent = a3.name, e2.appendChild(u3);
|
|
1412
1412
|
});
|
|
1413
1413
|
null != u2 ? e2.value = String(u2) : m3 || (e2.value = "0");
|
|
1414
|
-
})(w2, ot.provider || "", ot.defaultPriority), e.engTicketPriority = Number(w2.value));
|
|
1414
|
+
})(w2, ot.provider || "", ot.defaultPriority), e.engTicketPriority ? w2.value = String(e.engTicketPriority) : e.engTicketPriority = Number(w2.value));
|
|
1415
1415
|
const b2 = document.getElementById("sf-eng-ticket-type"), x2 = "jira" === ((_a2 = ot.provider) == null ? void 0 : _a2.toLowerCase());
|
|
1416
|
-
return b2 && x2 && e.engTicketProject && (updateIssueTypeOptions(b2, e.engTicketProject), b2.value && (e.engTicketIssueType = b2.value)), e;
|
|
1416
|
+
return b2 && x2 && e.engTicketProject && (updateIssueTypeOptions(b2, e.engTicketProject), e.engTicketIssueType ? (b2.value = e.engTicketIssueType, b2.style.color = "#000") : b2.value && (e.engTicketIssueType = b2.value)), e;
|
|
1417
1417
|
}
|
|
1418
1418
|
const st = "sf-create-issue-preference", it = "sf-create-eng-ticket-preference";
|
|
1419
1419
|
function getInitialState() {
|
|
@@ -3121,12 +3121,12 @@ let gn = pn, yn = class extends gn {
|
|
|
3121
3121
|
};
|
|
3122
3122
|
var wn = yn;
|
|
3123
3123
|
yn.default = yn;
|
|
3124
|
-
let bn, Sn, In, Mn, En = mn, _n = wn, On = pn, { isClean:
|
|
3124
|
+
let bn, Sn, In, Mn, En = mn, _n = wn, On = pn, { isClean: Tn, my: Ln } = on;
|
|
3125
3125
|
function _r(e) {
|
|
3126
3126
|
return e.map((e2) => (e2.nodes && (e2.nodes = _r(e2.nodes)), delete e2.source, e2));
|
|
3127
3127
|
}
|
|
3128
3128
|
function Wr(e) {
|
|
3129
|
-
if (e[
|
|
3129
|
+
if (e[Tn] = false, e.proxyOf.nodes) for (let a of e.proxyOf.nodes) Wr(a);
|
|
3130
3130
|
}
|
|
3131
3131
|
let Rn = class zr extends On {
|
|
3132
3132
|
get first() {
|
|
@@ -3198,7 +3198,7 @@ let Rn = class zr extends On {
|
|
|
3198
3198
|
if (!e.text) throw new Error("Unknown node type in node creation");
|
|
3199
3199
|
e = [new En(e)];
|
|
3200
3200
|
}
|
|
3201
|
-
return e.map((e2) => (e2[
|
|
3201
|
+
return e.map((e2) => (e2[Ln] || zr.rebuild(e2), (e2 = e2.proxyOf).parent && e2.parent.removeChild(e2), e2[Tn] && Wr(e2), e2.raws || (e2.raws = {}), typeof e2.raws.before > "u" && a && typeof a.raws.before < "u" && (e2.raws.before = a.raws.before.replace(/\S/g, "")), e2.parent = this.proxyOf, e2));
|
|
3202
3202
|
}
|
|
3203
3203
|
prepend(...e) {
|
|
3204
3204
|
e = e.reverse();
|
|
@@ -3285,7 +3285,7 @@ Rn.registerParse = (e) => {
|
|
|
3285
3285
|
};
|
|
3286
3286
|
var An = Rn;
|
|
3287
3287
|
Rn.default = Rn, Rn.rebuild = (e) => {
|
|
3288
|
-
"atrule" === e.type ? Object.setPrototypeOf(e, bn.prototype) : "rule" === e.type ? Object.setPrototypeOf(e, Mn.prototype) : "decl" === e.type ? Object.setPrototypeOf(e, _n.prototype) : "comment" === e.type ? Object.setPrototypeOf(e, En.prototype) : "root" === e.type && Object.setPrototypeOf(e, In.prototype), e[
|
|
3288
|
+
"atrule" === e.type ? Object.setPrototypeOf(e, bn.prototype) : "rule" === e.type ? Object.setPrototypeOf(e, Mn.prototype) : "decl" === e.type ? Object.setPrototypeOf(e, _n.prototype) : "comment" === e.type ? Object.setPrototypeOf(e, En.prototype) : "root" === e.type && Object.setPrototypeOf(e, In.prototype), e[Ln] = true, e.nodes && e.nodes.forEach((e2) => {
|
|
3289
3289
|
Rn.rebuild(e2);
|
|
3290
3290
|
});
|
|
3291
3291
|
};
|
|
@@ -4374,7 +4374,7 @@ let vs = rn, xs = so, Is = class {
|
|
|
4374
4374
|
};
|
|
4375
4375
|
var Ms = Is;
|
|
4376
4376
|
Is.default = Is;
|
|
4377
|
-
let Es = zn, _s = ys, Os = Ms,
|
|
4377
|
+
let Es = zn, _s = ys, Os = Ms, Ts = Pr, Ls = class {
|
|
4378
4378
|
constructor(e = []) {
|
|
4379
4379
|
this.version = "8.5.3", this.plugins = this.normalize(e);
|
|
4380
4380
|
}
|
|
@@ -4396,8 +4396,8 @@ let Es = zn, _s = ys, Os = Ms, Ls = Pr, Ts = class {
|
|
|
4396
4396
|
return this.plugins = this.plugins.concat(this.normalize([e])), this;
|
|
4397
4397
|
}
|
|
4398
4398
|
};
|
|
4399
|
-
var Rs =
|
|
4400
|
-
|
|
4399
|
+
var Rs = Ls;
|
|
4400
|
+
Ls.default = Ls, Ts.registerProcessor(Ls), Es.registerProcessor(Ls);
|
|
4401
4401
|
let As = Fn, Ns = mn, $s = An, js = Xt, Ws = wn, Gs = zn, qs = Yr, Vs = Sr, Hs = ys, Ks = Dr, Zs = pn, Ys = Ko, Xs = Rs, Qs = Qo, ei = Pr, ti = jr, si = rn, ii = Jo;
|
|
4402
4402
|
function L$1(...e) {
|
|
4403
4403
|
return 1 === e.length && Array.isArray(e[0]) && (e = e[0]), new Xs(e);
|
|
@@ -4984,7 +4984,7 @@ function xo({ scrollCb: e, doc: a, mirror: u, blockClass: m2, blockSelector: w2,
|
|
|
4984
4984
|
} else e({ id: C2, x: x2.scrollLeft, y: x2.scrollTop });
|
|
4985
4985
|
}), b2.scroll || 100)), a);
|
|
4986
4986
|
}
|
|
4987
|
-
const
|
|
4987
|
+
const Ti = ["INPUT", "TEXTAREA", "SELECT"], Li = /* @__PURE__ */ new WeakMap();
|
|
4988
4988
|
function ql({ deviceChangeCb: e }) {
|
|
4989
4989
|
const t = (a2, u2) => {
|
|
4990
4990
|
const m2 = a2.device.productName ? [a2.device.productName] : ["Unknown USB Device"];
|
|
@@ -5120,7 +5120,7 @@ function au(e, a = {}) {
|
|
|
5120
5120
|
function p(e3) {
|
|
5121
5121
|
let u3 = tt(e3);
|
|
5122
5122
|
const E4 = e3.isTrusted, O4 = u3 && u3.tagName;
|
|
5123
|
-
if (u3 && "OPTION" === O4 && (u3 = u3.parentElement), !u3 || !O4 ||
|
|
5123
|
+
if (u3 && "OPTION" === O4 && (u3 = u3.parentElement), !u3 || !O4 || Ti.indexOf(O4) < 0 || Z(u3, m3, w3, true) || u3.classList.contains(b3) || x3 && u3.matches(x3)) return;
|
|
5124
5124
|
let F4 = u3.value, D4 = false;
|
|
5125
5125
|
const $4 = Yt(u3) || "", { value: B2, masked: U2 } = Zt({ element: u3, maskInputOptions: C3, tagName: O4, type: $4, value: F4, maskInputFn: I3 });
|
|
5126
5126
|
F4 = B2, ("radio" === $4 || "checkbox" === $4) && (D4 = u3.checked), f2(u3, _3 ? { text: F4, isChecked: D4, masked: U2, userTriggered: E4 } : { text: F4, isChecked: D4, masked: U2 });
|
|
@@ -5133,9 +5133,9 @@ function au(e, a = {}) {
|
|
|
5133
5133
|
});
|
|
5134
5134
|
}
|
|
5135
5135
|
function f2(a3, m4) {
|
|
5136
|
-
const w4 =
|
|
5136
|
+
const w4 = Li.get(a3);
|
|
5137
5137
|
if (!w4 || w4.text !== m4.text || w4.isChecked !== m4.isChecked || w4.masked !== m4.masked) {
|
|
5138
|
-
|
|
5138
|
+
Li.set(a3, m4);
|
|
5139
5139
|
const w5 = u2.getId(a3);
|
|
5140
5140
|
M(e2)({ ...m4, id: w5 });
|
|
5141
5141
|
}
|
|
@@ -6135,7 +6135,7 @@ let Ma = Ia, Ea = class extends Ma {
|
|
|
6135
6135
|
};
|
|
6136
6136
|
var _a = Ea;
|
|
6137
6137
|
Ea.default = Ea;
|
|
6138
|
-
let Oa = Ia,
|
|
6138
|
+
let Oa = Ia, Ta = class extends Oa {
|
|
6139
6139
|
get variable() {
|
|
6140
6140
|
return this.prop.startsWith("--") || "$" === this.prop[0];
|
|
6141
6141
|
}
|
|
@@ -6143,9 +6143,9 @@ let Oa = Ia, La = class extends Oa {
|
|
|
6143
6143
|
e && typeof e.value < "u" && "string" != typeof e.value && (e = { ...e, value: String(e.value) }), super(e), this.type = "decl";
|
|
6144
6144
|
}
|
|
6145
6145
|
};
|
|
6146
|
-
var
|
|
6147
|
-
|
|
6148
|
-
let Ra, Aa, Na, Pa, Fa = _a, Da =
|
|
6146
|
+
var La = Ta;
|
|
6147
|
+
Ta.default = Ta;
|
|
6148
|
+
let Ra, Aa, Na, Pa, Fa = _a, Da = La, $a = Ia, { isClean: Ba, my: Ua } = wa;
|
|
6149
6149
|
function Wo(e) {
|
|
6150
6150
|
return e.map((e2) => (e2.nodes && (e2.nodes = Wo(e2.nodes)), delete e2.source, e2));
|
|
6151
6151
|
}
|
|
@@ -6537,9 +6537,9 @@ let Ol = { comma: (e) => Ol.split(e, [","], true), space(e) {
|
|
|
6537
6537
|
for (let u2 of e) E2 ? E2 = false : "\\" === u2 ? E2 = true : C2 ? u2 === I2 && (C2 = false) : '"' === u2 || "'" === u2 ? (C2 = true, I2 = u2) : "(" === u2 ? x2 += 1 : ")" === u2 ? x2 > 0 && (x2 -= 1) : 0 === x2 && a.includes(u2) && (b2 = true), b2 ? ("" !== w2 && m2.push(w2.trim()), w2 = "", b2 = false) : w2 += u2;
|
|
6538
6538
|
return (u || "" !== w2) && m2.push(w2.trim()), m2;
|
|
6539
6539
|
} };
|
|
6540
|
-
var
|
|
6540
|
+
var Tl = Ol;
|
|
6541
6541
|
Ol.default = Ol;
|
|
6542
|
-
let
|
|
6542
|
+
let Ll = za, Rl = Tl, Al = class extends Ll {
|
|
6543
6543
|
get selectors() {
|
|
6544
6544
|
return Rl.comma(this.selector);
|
|
6545
6545
|
}
|
|
@@ -6552,8 +6552,8 @@ let Tl = za, Rl = Ll, Al = class extends Tl {
|
|
|
6552
6552
|
}
|
|
6553
6553
|
};
|
|
6554
6554
|
var Nl = Al;
|
|
6555
|
-
Al.default = Al,
|
|
6556
|
-
let Pl = qa, Dl = _a, Jl =
|
|
6555
|
+
Al.default = Al, Ll.registerRule(Al);
|
|
6556
|
+
let Pl = qa, Dl = _a, Jl = La, ec = kl, tc = al, nc = El, rc = Nl;
|
|
6557
6557
|
function Ke(e, a) {
|
|
6558
6558
|
if (Array.isArray(e)) return e.map((e2) => Ke(e2));
|
|
6559
6559
|
let { inputs: u, ...m2 } = e;
|
|
@@ -6707,7 +6707,7 @@ var mc = class {
|
|
|
6707
6707
|
}
|
|
6708
6708
|
};
|
|
6709
6709
|
const gc = /[\t\n\f\r "#'()/;[\\\]{}]/g, yc = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g, wc = /.[\r\n"'(/\\]/, bc = /[\da-f]/i;
|
|
6710
|
-
let Sc = qa, vc = _a, xc =
|
|
6710
|
+
let Sc = qa, vc = _a, xc = La, Ic = El, Mc = Nl, kc = function(e, a = {}) {
|
|
6711
6711
|
let u, m2, w2, b2, x2, C2, I2, E2, _2, O2, F2 = e.css.valueOf(), D2 = a.ignoreErrors, $2 = F2.length, B2 = 0, U2 = [], j2 = [];
|
|
6712
6712
|
function y2(a2) {
|
|
6713
6713
|
throw e.error("Unclosed " + a2, B2);
|
|
@@ -7038,9 +7038,9 @@ var _c = class {
|
|
|
7038
7038
|
throw this.input.error("At-rule without name", { offset: a[2] }, { offset: a[2] + a[1].length });
|
|
7039
7039
|
}
|
|
7040
7040
|
};
|
|
7041
|
-
let Oc = za,
|
|
7041
|
+
let Oc = za, Tc = kl, Lc = _c;
|
|
7042
7042
|
function Gt(e, a) {
|
|
7043
|
-
let u = new
|
|
7043
|
+
let u = new Tc(e, a), m2 = new Lc(u);
|
|
7044
7044
|
try {
|
|
7045
7045
|
m2.parse();
|
|
7046
7046
|
} catch (e2) {
|
|
@@ -7398,7 +7398,7 @@ let xu = ya, Cu = ni, Mu = class {
|
|
|
7398
7398
|
};
|
|
7399
7399
|
var Eu = Mu;
|
|
7400
7400
|
Mu.default = Mu;
|
|
7401
|
-
let _u = Ya, Ou = lu,
|
|
7401
|
+
let _u = Ya, Ou = lu, Tu = Eu, Lu = El, Ru = class {
|
|
7402
7402
|
constructor(e = []) {
|
|
7403
7403
|
this.version = "8.5.3", this.plugins = this.normalize(e);
|
|
7404
7404
|
}
|
|
@@ -7414,15 +7414,15 @@ let _u = Ya, Ou = lu, Lu = Eu, Tu = El, Ru = class {
|
|
|
7414
7414
|
return a;
|
|
7415
7415
|
}
|
|
7416
7416
|
process(e, a = {}) {
|
|
7417
|
-
return this.plugins.length || a.parser || a.stringifier || a.syntax ? new Ou(this, e, a) : new
|
|
7417
|
+
return this.plugins.length || a.parser || a.stringifier || a.syntax ? new Ou(this, e, a) : new Tu(this, e, a);
|
|
7418
7418
|
}
|
|
7419
7419
|
use(e) {
|
|
7420
7420
|
return this.plugins = this.plugins.concat(this.normalize([e])), this;
|
|
7421
7421
|
}
|
|
7422
7422
|
};
|
|
7423
7423
|
var Au = Ru;
|
|
7424
|
-
Ru.default = Ru,
|
|
7425
|
-
let Nu = qa, Pu = _a, Fu = za, Du = pa, $u =
|
|
7424
|
+
Ru.default = Ru, Lu.registerProcessor(Ru), _u.registerProcessor(Ru);
|
|
7425
|
+
let Nu = qa, Pu = _a, Fu = za, Du = pa, $u = La, Uu = Ya, ju = oc, zu = kl, Wu = lu, Gu = Tl, qu = Ia, Vu = Rc, Hu = Au, Ku = Dc, Zu = El, Ju = Nl, Yu = ya, Xu = Nc;
|
|
7426
7426
|
function T$1(...e) {
|
|
7427
7427
|
return 1 === e.length && Array.isArray(e[0]) && (e = e[0]), new Hu(e);
|
|
7428
7428
|
}
|
|
@@ -7622,6 +7622,58 @@ function R(e, a, u) {
|
|
|
7622
7622
|
}
|
|
7623
7623
|
}
|
|
7624
7624
|
var hd = ((e) => (e[e.DomContentLoaded = 0] = "DomContentLoaded", e[e.Load = 1] = "Load", e[e.FullSnapshot = 2] = "FullSnapshot", e[e.IncrementalSnapshot = 3] = "IncrementalSnapshot", e[e.Meta = 4] = "Meta", e[e.Custom = 5] = "Custom", e[e.Plugin = 6] = "Plugin", e[e.Device = 24] = "Device", e[e.SailfishCustom = 25] = "SailfishCustom", e))(hd || {});
|
|
7625
|
+
const fd = ["/node_modules/", "/@sailfish-ai/", "/@sailfish-rrweb/", "/dist/", "/webpack/", "/vite/", "/__vite", "/react-dom/", "/react/", "/scheduler/", "/<", "/chrome-extension://", "/extensions/"];
|
|
7626
|
+
function shouldSkipFrame(e) {
|
|
7627
|
+
return fd.some((a) => e.includes(a));
|
|
7628
|
+
}
|
|
7629
|
+
function normalizeFilePath(e) {
|
|
7630
|
+
let a = e;
|
|
7631
|
+
if (a.startsWith("file://") && (a = a.substring(7)), a.startsWith("webpack-internal:///") && (a = a.substring(20)), a.startsWith("webpack:///") && (a = a.substring(11)), a.startsWith("/@fs/") && (a = a.substring(5)), a.startsWith("http://") || a.startsWith("https://")) try {
|
|
7632
|
+
a = new URL(a).pathname || a, "/" === a && (a = "index.html");
|
|
7633
|
+
} catch {
|
|
7634
|
+
}
|
|
7635
|
+
return a;
|
|
7636
|
+
}
|
|
7637
|
+
function getCallerLocationFromTrace(e, a = 0) {
|
|
7638
|
+
if (!Array.isArray(e) || 0 === e.length) return [null, null];
|
|
7639
|
+
const u = (function parseRrwebTraceFrames(e2) {
|
|
7640
|
+
const a2 = [];
|
|
7641
|
+
for (const u2 of e2) {
|
|
7642
|
+
if (!u2) continue;
|
|
7643
|
+
const e3 = u2.startsWith("at ") ? u2.slice(3) : u2;
|
|
7644
|
+
let m2 = /^(.*?)\s+\((.+?):(\d+):(\d+)\)$/.exec(e3);
|
|
7645
|
+
m2 ? a2.push({ functionName: m2[1] || "<anonymous>", file: m2[2], line: parseInt(m2[3], 10), column: parseInt(m2[4], 10) }) : (m2 = /^(.+?):(\d+):(\d+)$/.exec(e3), m2 && a2.push({ functionName: "<anonymous>", file: m2[1], line: parseInt(m2[2], 10), column: parseInt(m2[3], 10) }));
|
|
7646
|
+
}
|
|
7647
|
+
return a2;
|
|
7648
|
+
})(e);
|
|
7649
|
+
for (let e2 = a; e2 < Math.min(u.length, a + 20); e2++) {
|
|
7650
|
+
const a2 = u[e2];
|
|
7651
|
+
if (!(a2 == null ? void 0 : a2.file)) continue;
|
|
7652
|
+
const m2 = normalizeFilePath(a2.file);
|
|
7653
|
+
if (!shouldSkipFrame(m2)) return [m2, a2.line];
|
|
7654
|
+
}
|
|
7655
|
+
return [null, null];
|
|
7656
|
+
}
|
|
7657
|
+
function getCallerLocation(e = 0) {
|
|
7658
|
+
const a = new Error().stack;
|
|
7659
|
+
if (!a) return [null, null];
|
|
7660
|
+
const u = (function parseV8Stack(e2) {
|
|
7661
|
+
if (!e2) return [];
|
|
7662
|
+
const a2 = e2.split("\n").slice(1), u2 = [];
|
|
7663
|
+
for (const e3 of a2) {
|
|
7664
|
+
let a3 = /at\s+(.+?)\s+\((.+?):(\d+):(\d+)\)/.exec(e3);
|
|
7665
|
+
a3 ? u2.push({ functionName: a3[1], file: a3[2], line: parseInt(a3[3], 10), column: parseInt(a3[4], 10) }) : (a3 = /at\s+(.+?):(\d+):(\d+)/.exec(e3), a3 && u2.push({ functionName: "<anonymous>", file: a3[1], line: parseInt(a3[2], 10), column: parseInt(a3[3], 10) }));
|
|
7666
|
+
}
|
|
7667
|
+
return u2;
|
|
7668
|
+
})(a), m2 = 1 + e;
|
|
7669
|
+
for (let e2 = m2; e2 < Math.min(u.length, m2 + 20); e2++) {
|
|
7670
|
+
const a2 = u[e2];
|
|
7671
|
+
if (!(a2 == null ? void 0 : a2.file)) continue;
|
|
7672
|
+
const m3 = normalizeFilePath(a2.file);
|
|
7673
|
+
if (!shouldSkipFrame(m3)) return [m3, a2.line];
|
|
7674
|
+
}
|
|
7675
|
+
return [null, null];
|
|
7676
|
+
}
|
|
7625
7677
|
function suppressConsoleLogsDuringCall(e) {
|
|
7626
7678
|
const a = console.log, u = console.warn, m2 = console.error;
|
|
7627
7679
|
console.log = () => {
|
|
@@ -7634,7 +7686,7 @@ function suppressConsoleLogsDuringCall(e) {
|
|
|
7634
7686
|
console.log = a, console.warn = u, console.error = m2;
|
|
7635
7687
|
}
|
|
7636
7688
|
}
|
|
7637
|
-
const
|
|
7689
|
+
const md = "zendesk_chat", gd = "Zendesk";
|
|
7638
7690
|
function zE_safe(...e) {
|
|
7639
7691
|
try {
|
|
7640
7692
|
if ((function hasZendesk() {
|
|
@@ -7673,7 +7725,8 @@ function initializeDomContentEvents(e) {
|
|
|
7673
7725
|
function initializeConsolePlugin(e, a) {
|
|
7674
7726
|
const { name: u, observer: m2 } = /* @__PURE__ */ ((e2) => ({ name: "@sailfish-rrweb/rrweb/console@1", observer: R, options: e2 }))(e);
|
|
7675
7727
|
m2((e2) => {
|
|
7676
|
-
|
|
7728
|
+
const m3 = e2, [w2, b2] = getCallerLocationFromTrace(m3 == null ? void 0 : m3.trace, 0), [x2, C2] = getCallerLocation(2), I2 = w2 ?? x2, E2 = b2 ?? C2, _2 = { ...m3, sourceFile: I2, sourceLine: E2 };
|
|
7729
|
+
sendEvent({ type: hd.Plugin, timestamp: Date.now(), data: { plugin: u, payload: _2 }, sessionId: a, ...getUrlAndStoredUuids() });
|
|
7677
7730
|
}, window, e);
|
|
7678
7731
|
}
|
|
7679
7732
|
async function initializeRecording(e, a, u, m2, w2) {
|
|
@@ -7693,11 +7746,11 @@ async function initializeRecording(e, a, u, m2, w2) {
|
|
|
7693
7746
|
zE_safe("messenger:set", "conversationTags", [`sailfish-session-${m2}`]);
|
|
7694
7747
|
});
|
|
7695
7748
|
const handleWidgetOpen = () => {
|
|
7696
|
-
ae.addSailfishEvent(hd.SailfishCustom, { action: "customer support chat opened", element_id:
|
|
7749
|
+
ae.addSailfishEvent(hd.SailfishCustom, { action: "customer support chat opened", element_id: md, provider: gd });
|
|
7697
7750
|
}, handleWidgetClose = () => {
|
|
7698
|
-
ae.addSailfishEvent(hd.SailfishCustom, { action: "customer support chat closed", element_id:
|
|
7751
|
+
ae.addSailfishEvent(hd.SailfishCustom, { action: "customer support chat closed", element_id: md, provider: gd });
|
|
7699
7752
|
}, handleUnreadMessages = (e2) => {
|
|
7700
|
-
ae.addSailfishEvent(hd.SailfishCustom, { action: "zendesk unreadmessages", element_id:
|
|
7753
|
+
ae.addSailfishEvent(hd.SailfishCustom, { action: "zendesk unreadmessages", element_id: md, provider: gd });
|
|
7701
7754
|
};
|
|
7702
7755
|
suppressConsoleLogsDuringCall(() => {
|
|
7703
7756
|
zE_safe("messenger:on", "open", handleWidgetOpen), zE_safe("messenger:on", "close", handleWidgetClose), zE_safe("messenger:on", "unreadMessages", handleUnreadMessages);
|
|
@@ -7708,8 +7761,8 @@ async function initializeRecording(e, a, u, m2, w2) {
|
|
|
7708
7761
|
}
|
|
7709
7762
|
return b2;
|
|
7710
7763
|
}
|
|
7711
|
-
let
|
|
7712
|
-
const
|
|
7764
|
+
let yd = null, wd = null;
|
|
7765
|
+
const bd = readDebugFlag(), Sd = ["t.co", "*.twitter.com", "*.gravatar.com", "*.googleapis.com", "*.amazonaws.com", "*.smooch.io", "*.zendesk.com", "*.zdassets.com"], vd = [400, 403], kd = "CORS", xd = { recordCanvas: false, recordCrossOriginIframes: false, collectFonts: false, inlineImages: false, recordPassword: false, recordRealName: true, recordCreditCardInfo: false, recordSsn: false, recordDob: false, sampling: {} }, Cd = { level: ["info", "log", "warn", "error"], lengthThreshold: 1e4, stringifyOptions: { stringLengthLimit: 1e3, numOfKeysLimit: 20, depthOfLimit: 4 }, logger: "console" };
|
|
7713
7766
|
function trackDomainChangesOnce() {
|
|
7714
7767
|
const e = window.__sailfish_recorder || (window.__sailfish_recorder = {});
|
|
7715
7768
|
if (e.routeWatcherIntervalId) return;
|
|
@@ -7776,7 +7829,7 @@ function shouldSkipHeadersPropagation(e, a = []) {
|
|
|
7776
7829
|
return true;
|
|
7777
7830
|
}
|
|
7778
7831
|
for (const e2 of O) if (u.pathname.toLowerCase().endsWith(e2)) return true;
|
|
7779
|
-
return !!matchUrlWithWildcard(e, [...
|
|
7832
|
+
return !!matchUrlWithWildcard(e, [...Sd, ...a]);
|
|
7780
7833
|
}
|
|
7781
7834
|
function setupFetchInterceptor(e = []) {
|
|
7782
7835
|
const a = window.fetch, u = getOrSetSessionId();
|
|
@@ -7811,7 +7864,7 @@ function setupFetchInterceptor(e = []) {
|
|
|
7811
7864
|
D2[e3] = a4;
|
|
7812
7865
|
}) : D2 = { ...w3.headers }), F2 = w3.body;
|
|
7813
7866
|
} catch (e3) {
|
|
7814
|
-
|
|
7867
|
+
bd && console.warn("[Sailfish] Failed to capture request data:", e3);
|
|
7815
7868
|
}
|
|
7816
7869
|
delete D2[b];
|
|
7817
7870
|
const $2 = (_a2 = getFuncSpanHeader()) == null ? void 0 : _a2.name;
|
|
@@ -7821,16 +7874,16 @@ function setupFetchInterceptor(e = []) {
|
|
|
7821
7874
|
const I4 = getFuncSpanHeader();
|
|
7822
7875
|
if (u3 instanceof Request) {
|
|
7823
7876
|
const E3 = u3.clone(), _3 = new Headers(E3.headers);
|
|
7824
|
-
_3.set(b, `${w4}/${x4}/${C4}`), I4 && (_3.set(I4.name, I4.value),
|
|
7877
|
+
_3.set(b, `${w4}/${x4}/${C4}`), I4 && (_3.set(I4.name, I4.value), bd && console.log("[Sailfish] Added funcspan header to HTTP Request:", { url: u3.url, header: I4.name }));
|
|
7825
7878
|
const O3 = new Request(E3, { headers: _3 });
|
|
7826
7879
|
return await e3.call(a4, O3, m4);
|
|
7827
7880
|
}
|
|
7828
7881
|
{
|
|
7829
7882
|
const E3 = { ...m4 }, _3 = new Headers(m4.headers || {});
|
|
7830
|
-
return _3.set(b, `${w4}/${x4}/${C4}`), I4 && (_3.set(I4.name, I4.value),
|
|
7883
|
+
return _3.set(b, `${w4}/${x4}/${C4}`), I4 && (_3.set(I4.name, I4.value), bd && console.log("[Sailfish] Added funcspan header to HTTP fetch:", { url: "string" == typeof u3 ? u3 : u3.href, header: I4.name })), E3.headers = _3, await e3.call(a4, u3, E3);
|
|
7831
7884
|
}
|
|
7832
7885
|
})(e2, a3, m3, w3, x3, E2.page_visit_uuid, I3), B2 = false;
|
|
7833
|
-
|
|
7886
|
+
vd.includes($3.status) && (bd && console.log("Perform retry as status was fail:", $3), I3 = v4(), $3 = await (async function retryWithoutPropagateHeaders(e3, a4, u3, m4) {
|
|
7834
7887
|
try {
|
|
7835
7888
|
let m5 = u3[0], w4 = u3[1] || {};
|
|
7836
7889
|
if ("string" == typeof m5 || m5 instanceof URL) {
|
|
@@ -7846,7 +7899,7 @@ function setupFetchInterceptor(e = []) {
|
|
|
7846
7899
|
}
|
|
7847
7900
|
return e3.apply(a4, u3);
|
|
7848
7901
|
} catch (e4) {
|
|
7849
|
-
throw
|
|
7902
|
+
throw bd && console.log(`Retry without ${b} for ${m4} also failed:`, e4), e4;
|
|
7850
7903
|
}
|
|
7851
7904
|
})(e2, a3, u2, C3), B2 = true);
|
|
7852
7905
|
const U2 = Date.now(), j2 = $3.status, z2 = $3.ok, q2 = z2 ? "" : `Request Error: ${$3.statusText}`;
|
|
@@ -7855,7 +7908,7 @@ function setupFetchInterceptor(e = []) {
|
|
|
7855
7908
|
const e3 = $3.clone();
|
|
7856
7909
|
V2 = await e3.text();
|
|
7857
7910
|
} catch (e3) {
|
|
7858
|
-
|
|
7911
|
+
bd && console.warn("[Sailfish] Failed to capture response data:", e3), V2 = null;
|
|
7859
7912
|
}
|
|
7860
7913
|
let H2 = null;
|
|
7861
7914
|
try {
|
|
@@ -7863,12 +7916,12 @@ function setupFetchInterceptor(e = []) {
|
|
|
7863
7916
|
H2[a4] = e3;
|
|
7864
7917
|
});
|
|
7865
7918
|
} catch (e3) {
|
|
7866
|
-
|
|
7919
|
+
bd && console.warn("[Sailfish] Failed to capture response headers:", e3), H2 = null;
|
|
7867
7920
|
}
|
|
7868
7921
|
return sendEvent({ type: 27, timestamp: U2, sessionId: x3, data: { request_id: I3, session_id: x3, timestamp_start: O2, timestamp_end: U2, response_code: j2, success: z2, error: q2, method: _2, url: C3, retry_without_trace_id: B2, request_headers: D2, request_body: F2, response_headers: H2, response_body: V2 }, ...E2 }), $3;
|
|
7869
7922
|
} catch (m4) {
|
|
7870
7923
|
const w4 = Date.now(), b2 = false, $3 = ((_b = m4.response) == null ? void 0 : _b.status) || 500, B2 = m4.message || "Fetch request failed";
|
|
7871
|
-
if (m4 instanceof TypeError && ((_c2 = m4 == null ? void 0 : m4.message) == null ? void 0 : _c2.toLowerCase().includes(
|
|
7924
|
+
if (m4 instanceof TypeError && ((_c2 = m4 == null ? void 0 : m4.message) == null ? void 0 : _c2.toLowerCase().includes(kd.toLowerCase()))) return e2.apply(a3, u2);
|
|
7872
7925
|
throw sendEvent({ type: 27, timestamp: w4, sessionId: x3, data: { request_id: I3, session_id: x3, timestamp_start: O2, timestamp_end: w4, response_code: $3, success: b2, error: B2, method: _2, url: C3, request_headers: D2, request_body: F2, response_body: null }, ...E2 }), m4;
|
|
7873
7926
|
}
|
|
7874
7927
|
})(a2, m2, w2, C2, I2, u, x2);
|
|
@@ -7902,7 +7955,7 @@ async function startRecording({ apiKey: e, backendApi: a = "https://api-service.
|
|
|
7902
7955
|
})(), D2 = getOrSetSessionId(), $2 = window.__sailfish_recorder || (window.__sailfish_recorder = {});
|
|
7903
7956
|
if ($2.sessionId = D2, $2.apiKey = e, $2.backendApi = a, $2.serviceAdditionalMetadata = I2, $2.initialized && $2.sessionId === D2 && $2.ws && 1 === $2.ws.readyState) trackDomainChangesOnce();
|
|
7904
7957
|
else {
|
|
7905
|
-
$2.domEventsInit || (initializeDomContentEvents(D2), $2.domEventsInit = true), $2.consoleInit || (initializeConsolePlugin(
|
|
7958
|
+
$2.domEventsInit || (initializeDomContentEvents(D2), $2.domEventsInit = true), $2.consoleInit || (initializeConsolePlugin(Cd, D2), $2.consoleInit = true), $2.errorInit || (!(function initializeErrorInterceptor() {
|
|
7906
7959
|
window.addEventListener("error", (e2) => {
|
|
7907
7960
|
captureError(e2.error || e2.message);
|
|
7908
7961
|
}), window.addEventListener("unhandledrejection", (e2) => {
|
|
@@ -7912,10 +7965,10 @@ async function startRecording({ apiKey: e, backendApi: a = "https://api-service.
|
|
|
7912
7965
|
X && (sessionStorage.setItem("sailfishApiKey", e2), sessionStorage.setItem("sailfishBackendApi", a2));
|
|
7913
7966
|
})({ apiKey: e, backendApi: a }), trackDomainChangesOnce(), sessionStorage.setItem("sailfishApiKey", e), sessionStorage.setItem("sailfishBackendApi", a), !isFunctionSpanTrackingEnabled() || $2.ws && 1 === $2.ws.readyState || fetchFunctionSpanTrackingEnabled(e, a).then((e2) => {
|
|
7914
7967
|
var _a3;
|
|
7915
|
-
((_a3 = e2.data) == null ? void 0 : _a3.isFunctionSpanTrackingEnabledFromApiKey) ?? false ?
|
|
7968
|
+
((_a3 = e2.data) == null ? void 0 : _a3.isFunctionSpanTrackingEnabledFromApiKey) ?? false ? bd && console.log("[Sailfish] Function span tracking state validated with backend: ACTIVE") : (clearStaleFuncSpanState(), bd && console.log("[Sailfish] Cleared stale function span tracking state - backend validation shows tracking is not active"));
|
|
7916
7969
|
}).catch((e2) => {
|
|
7917
|
-
|
|
7918
|
-
}), $2.sentDoNotPropagateOnce || (sendDomainsToNotPropagateHeaderTo(e, [...m2, ...
|
|
7970
|
+
bd && console.warn("[Sailfish] Failed to validate function span tracking status with backend:", e2);
|
|
7971
|
+
}), $2.sentDoNotPropagateOnce || (sendDomainsToNotPropagateHeaderTo(e, [...m2, ...Sd], a).catch((e2) => console.error("Failed to send domains to not propagate header to:", e2)), $2.sentDoNotPropagateOnce = true), $2.xhrPatched || (!(function setupXMLHttpRequestInterceptor(e2 = []) {
|
|
7919
7972
|
const a2 = XMLHttpRequest.prototype.open, u2 = XMLHttpRequest.prototype.send, m3 = XMLHttpRequest.prototype.setRequestHeader, w3 = getOrSetSessionId();
|
|
7920
7973
|
XMLHttpRequest.prototype.setRequestHeader = function(e3, a3) {
|
|
7921
7974
|
return this._capturedRequestHeaders || (this._capturedRequestHeaders = {}), this._capturedRequestHeaders[e3] = a3, m3.call(this, e3, a3);
|
|
@@ -7933,9 +7986,9 @@ async function startRecording({ apiKey: e, backendApi: a = "https://api-service.
|
|
|
7933
7986
|
}
|
|
7934
7987
|
const E3 = getFuncSpanHeader();
|
|
7935
7988
|
if (E3) try {
|
|
7936
|
-
this.setRequestHeader(E3.name, E3.value),
|
|
7989
|
+
this.setRequestHeader(E3.name, E3.value), bd && console.log("[Sailfish] Added funcspan header to XMLHttpRequest:", { url: m4, header: E3.name });
|
|
7937
7990
|
} catch (e3) {
|
|
7938
|
-
|
|
7991
|
+
bd && console.warn(`[Sailfish] Could not set funcspan header for ${m4}`, e3);
|
|
7939
7992
|
}
|
|
7940
7993
|
const _3 = Date.now();
|
|
7941
7994
|
let O3 = false;
|
|
@@ -7963,7 +8016,7 @@ async function startRecording({ apiKey: e, backendApi: a = "https://api-service.
|
|
|
7963
8016
|
2 === a5.length && (u3[a5[0]] = a5[1]);
|
|
7964
8017
|
});
|
|
7965
8018
|
} catch (e4) {
|
|
7966
|
-
|
|
8019
|
+
bd && console.warn("[Sailfish] Failed to capture XHR response headers:", e4), u3 = null;
|
|
7967
8020
|
}
|
|
7968
8021
|
if (e3 >= 200 && e3 < 300) emitFinished(true, e3, "", a4, u3);
|
|
7969
8022
|
else {
|
|
@@ -7979,7 +8032,7 @@ async function startRecording({ apiKey: e, backendApi: a = "https://api-service.
|
|
|
7979
8032
|
sendMessage({ type: "deviceInfo", data: { deviceInfo: { language: navigator.language, userAgent: navigator.userAgent } } });
|
|
7980
8033
|
})();
|
|
7981
8034
|
try {
|
|
7982
|
-
const u2 = await fetchCaptureSettings(e, a), m3 = ((_a2 = u2.data) == null ? void 0 : _a2.captureSettingsFromApiKey) ||
|
|
8035
|
+
const u2 = await fetchCaptureSettings(e, a), m3 = ((_a2 = u2.data) == null ? void 0 : _a2.captureSettingsFromApiKey) || xd;
|
|
7983
8036
|
if ($2.ws && 1 === $2.ws.readyState) return;
|
|
7984
8037
|
const b2 = withAppUrlMetadata(I2), C3 = await startRecordingSession(e, D2, a, _2, O2, F2, E2, "JS/TS", b2);
|
|
7985
8038
|
if ((_b = C3.data) == null ? void 0 : _b.startRecordingSession) {
|
|
@@ -8015,7 +8068,7 @@ H && (!(function sendUserDeviceUuid() {
|
|
|
8015
8068
|
const e = document.visibilityState, a = Date.now();
|
|
8016
8069
|
"visible" === e && getOrSetSessionId();
|
|
8017
8070
|
try {
|
|
8018
|
-
sendMessage({ type: "visibilityChange", data: { state: e, url: window.location.href.split("?")[0], timestamp: a, ...getUrlAndStoredUuids() } }),
|
|
8071
|
+
sendMessage({ type: "visibilityChange", data: { state: e, url: window.location.href.split("?")[0], timestamp: a, ...getUrlAndStoredUuids() } }), bd && console.log(`[Sailfish] Tab became ${e}, sent visibility change event`);
|
|
8019
8072
|
} catch (e2) {
|
|
8020
8073
|
console.warn("[Sailfish] Failed to send visibility change event:", e2);
|
|
8021
8074
|
}
|
|
@@ -8023,12 +8076,12 @@ H && (!(function sendUserDeviceUuid() {
|
|
|
8023
8076
|
}), H && window.addEventListener("beforeunload", () => {
|
|
8024
8077
|
clearPageVisitDataFromSessionStorage();
|
|
8025
8078
|
});
|
|
8026
|
-
exports.DEFAULT_CAPTURE_SETTINGS =
|
|
8079
|
+
exports.DEFAULT_CAPTURE_SETTINGS = xd, exports.DEFAULT_CONSOLE_RECORDING_SETTINGS = Cd, exports.STORAGE_VERSION = 1, exports.addOrUpdateMetadata = function addOrUpdateMetadata(e) {
|
|
8027
8080
|
const a = { type: "addOrUpdateMetadata", metadata: e };
|
|
8028
|
-
|
|
8081
|
+
wd && JSON.stringify(wd) === JSON.stringify(e) || (wd = e, sendMessage(a));
|
|
8029
8082
|
}, exports.buildBatches = buildBatches, exports.clearStaleFuncSpanState = clearStaleFuncSpanState, exports.createTriageAndIssueFromRecorder = createTriageAndIssueFromRecorder, exports.createTriageFromRecorder = createTriageFromRecorder, exports.disableFunctionSpanTracking = disableFunctionSpanTracking, exports.enableFunctionSpanTracking = enableFunctionSpanTracking, exports.eventSize = eventSize, exports.fetchCaptureSettings = fetchCaptureSettings, exports.fetchEngineeringTicketPlatformIntegrations = fetchEngineeringTicketPlatformIntegrations, exports.fetchFunctionSpanTrackingEnabled = fetchFunctionSpanTrackingEnabled, exports.flushBufferedEvents = flushBufferedEvents, exports.getFuncSpanHeader = getFuncSpanHeader, exports.getOrSetSessionId = getOrSetSessionId, exports.getUrlAndStoredUuids = getUrlAndStoredUuids, exports.identify = function identify(e, a = {}, u = false) {
|
|
8030
8083
|
const m2 = { type: "identify", userId: e, traits: a };
|
|
8031
|
-
|
|
8084
|
+
yd && yd.userId === e && JSON.stringify(yd.traits) === JSON.stringify(a) || (yd = { userId: e, traits: a, overwrite: u }, sendMessage(m2));
|
|
8032
8085
|
}, exports.initRecorder = async (e) => {
|
|
8033
8086
|
if ("undefined" == typeof window) return;
|
|
8034
8087
|
const a = window.__sailfish_recorder || (window.__sailfish_recorder = {}), u = getOrSetSessionId();
|