@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.
@@ -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
- currentState.engTicketTeam = teamSelect.value;
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
- currentState.engTicketProject = projectSelect.value;
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
- currentState.engTicketPriority = Number(prioritySelect.value);
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
- // Always update currentState with the selected issue type value
235
- if (issueTypeSelect.value) {
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.17`;
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, Le, Te = {};
773
+ var Oe, Te, Le = {};
774
774
  function requireMappingList() {
775
- if (Oe) return Te;
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
- }, Te.MappingList = MappingList, Te;
790
+ }, Le.MappingList = MappingList, Le;
791
791
  }
792
792
  function requireSourceMapGenerator() {
793
- if (Le) return ve;
794
- Le = 1;
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: Ln, my: Tn } = on;
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[Ln] = false, e.proxyOf.nodes) for (let a of e.proxyOf.nodes) Wr(a);
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[Tn] || zr.rebuild(e2), (e2 = e2.proxyOf).parent && e2.parent.removeChild(e2), e2[Ln] && 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));
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[Tn] = true, e.nodes && e.nodes.forEach((e2) => {
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, Ls = Pr, Ts = class {
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 = Ts;
4400
- Ts.default = Ts, Ls.registerProcessor(Ts), Es.registerProcessor(Ts);
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 Li = ["INPUT", "TEXTAREA", "SELECT"], Ti = /* @__PURE__ */ new WeakMap();
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 || Li.indexOf(O4) < 0 || Z(u3, m3, w3, true) || u3.classList.contains(b3) || x3 && u3.matches(x3)) return;
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 = Ti.get(a3);
5136
+ const w4 = Li.get(a3);
5137
5137
  if (!w4 || w4.text !== m4.text || w4.isChecked !== m4.isChecked || w4.masked !== m4.masked) {
5138
- Ti.set(a3, m4);
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, La = class extends Oa {
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 Ta = La;
6147
- La.default = La;
6148
- let Ra, Aa, Na, Pa, Fa = _a, Da = Ta, $a = Ia, { isClean: Ba, my: Ua } = wa;
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 Ll = Ol;
6540
+ var Tl = Ol;
6541
6541
  Ol.default = Ol;
6542
- let Tl = za, Rl = Ll, Al = class extends Tl {
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, Tl.registerRule(Al);
6556
- let Pl = qa, Dl = _a, Jl = Ta, ec = kl, tc = al, nc = El, rc = Nl;
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 = Ta, Ic = El, Mc = Nl, kc = function(e, a = {}) {
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, Lc = kl, Tc = _c;
7041
+ let Oc = za, Tc = kl, Lc = _c;
7042
7042
  function Gt(e, a) {
7043
- let u = new Lc(e, a), m2 = new Tc(u);
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, Lu = Eu, Tu = El, Ru = class {
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 Lu(this, e, a);
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, Tu.registerProcessor(Ru), _u.registerProcessor(Ru);
7425
- let Nu = qa, Pu = _a, Fu = za, Du = pa, $u = Ta, Uu = Ya, ju = oc, zu = kl, Wu = lu, Gu = Ll, qu = Ia, Vu = Rc, Hu = Au, Ku = Dc, Zu = El, Ju = Nl, Yu = ya, Xu = Nc;
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 fd = "zendesk_chat", md = "Zendesk";
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
- sendEvent({ type: hd.Plugin, timestamp: Date.now(), data: { plugin: u, payload: e2 }, sessionId: a, ...getUrlAndStoredUuids() });
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: fd, provider: md });
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: fd, provider: md });
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: fd, provider: md });
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 gd = null, yd = null;
7712
- const wd = readDebugFlag(), bd = ["t.co", "*.twitter.com", "*.gravatar.com", "*.googleapis.com", "*.amazonaws.com", "*.smooch.io", "*.zendesk.com", "*.zdassets.com"], Sd = [400, 403], vd = "CORS", kd = { recordCanvas: false, recordCrossOriginIframes: false, collectFonts: false, inlineImages: false, recordPassword: false, recordRealName: true, recordCreditCardInfo: false, recordSsn: false, recordDob: false, sampling: {} }, xd = { level: ["info", "log", "warn", "error"], lengthThreshold: 1e4, stringifyOptions: { stringLengthLimit: 1e3, numOfKeysLimit: 20, depthOfLimit: 4 }, logger: "console" };
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, [...bd, ...a]);
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
- wd && console.warn("[Sailfish] Failed to capture request data:", e3);
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), wd && console.log("[Sailfish] Added funcspan header to HTTP Request:", { url: u3.url, header: I4.name }));
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), wd && 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);
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
- Sd.includes($3.status) && (wd && console.log("Perform retry as status was fail:", $3), I3 = v4(), $3 = await (async function retryWithoutPropagateHeaders(e3, a4, u3, m4) {
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 wd && console.log(`Retry without ${b} for ${m4} also failed:`, e4), e4;
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
- wd && console.warn("[Sailfish] Failed to capture response data:", e3), V2 = null;
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
- wd && console.warn("[Sailfish] Failed to capture response headers:", e3), H2 = null;
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(vd.toLowerCase()))) return e2.apply(a3, u2);
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(xd, D2), $2.consoleInit = true), $2.errorInit || (!(function initializeErrorInterceptor() {
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 ? wd && console.log("[Sailfish] Function span tracking state validated with backend: ACTIVE") : (clearStaleFuncSpanState(), wd && console.log("[Sailfish] Cleared stale function span tracking state - backend validation shows tracking is not active"));
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
- wd && console.warn("[Sailfish] Failed to validate function span tracking status with backend:", e2);
7918
- }), $2.sentDoNotPropagateOnce || (sendDomainsToNotPropagateHeaderTo(e, [...m2, ...bd], a).catch((e2) => console.error("Failed to send domains to not propagate header to:", e2)), $2.sentDoNotPropagateOnce = true), $2.xhrPatched || (!(function setupXMLHttpRequestInterceptor(e2 = []) {
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), wd && console.log("[Sailfish] Added funcspan header to XMLHttpRequest:", { url: m4, header: E3.name });
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
- wd && console.warn(`[Sailfish] Could not set funcspan header for ${m4}`, e3);
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
- wd && console.warn("[Sailfish] Failed to capture XHR response headers:", e4), u3 = null;
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) || kd;
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() } }), wd && console.log(`[Sailfish] Tab became ${e}, sent visibility change event`);
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 = kd, exports.DEFAULT_CONSOLE_RECORDING_SETTINGS = xd, exports.STORAGE_VERSION = 1, exports.addOrUpdateMetadata = function addOrUpdateMetadata(e) {
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
- yd && JSON.stringify(yd) === JSON.stringify(e) || (yd = e, sendMessage(a));
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
- gd && gd.userId === e && JSON.stringify(gd.traits) === JSON.stringify(a) || (gd = { userId: e, traits: a, overwrite: u }, sendMessage(m2));
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();