@levo-so/insights 0.3.20 → 0.3.21

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 CHANGED
@@ -1,4 +1,4 @@
1
- import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as c, K as l, L as u, M as d, N as f, O as p, P as m, R as h, T as g, U as _, V as v, W as y, _ as b, c as x, d as S, g as C, h as ee, i as w, j as te, l as ne, n as re, o as ie, p as ae, q as T, s as E, u as D, v as O, w as k, y as A } from "./textSelection-CXG4e3wj.js";
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as c, K as l, L as u, M as d, N as f, O as p, P as m, R as h, T as g, U as _, V as v, W as y, _ as b, c as x, d as S, g as C, h as ee, i as w, j as te, l as ne, n as re, o as ie, p as ae, q as T, s as E, u as D, v as O, w as k, y as A } from "./textSelection-BuMkP14G.js";
2
2
  import { getLevoError as j } from "@levo-so/core";
3
3
  import { getVisitorSource as M } from "@analytics/visitor-source";
4
4
  import N from "get-user-locale";
package/dist/stores.js CHANGED
@@ -1,2 +1,2 @@
1
- import { A as e, S as t, W as n, _ as r, a as i, b as a, f as o, k as s, m as c, r as l, s as u, t as d, x as f, z as p } from "./textSelection-CXG4e3wj.js";
1
+ import { A as e, S as t, W as n, _ as r, a as i, b as a, f as o, k as s, m as c, r as l, s as u, t as d, x as f, z as p } from "./textSelection-BuMkP14G.js";
2
2
  export { c as $activity, n as $config, i as $currentTab, a as $eventQueue, s as $identity, r as $isIdentityContextReady, f as $lifetimePageCount, o as $pageLifecycle, l as $scrollBehavior, d as $selectedText, p as $session, t as $totalEventCount, e as getIdentity, u as getTabCount };
@@ -556,9 +556,7 @@ var st = () => {
556
556
  seconds: 0
557
557
  });
558
558
  };
559
- }, pt = () => U.get(), W = /* @__PURE__ */ function(e) {
560
- return e.ACTIVE = "active", e.PASSIVE = "passive", e.HIDDEN = "hidden", e.FROZEN = "frozen", e.TERMINATED = "terminated", e;
561
- }(W || {}), G = e(W.ACTIVE), mt = () => typeof document > "u" ? W.ACTIVE : document.visibilityState === "hidden" ? W.HIDDEN : document.hasFocus() ? W.ACTIVE : W.PASSIVE, ht = (e) => {
559
+ }, pt = () => U.get(), W = e("active"), mt = () => typeof document > "u" ? "active" : document.visibilityState === "hidden" ? "hidden" : document.hasFocus() ? "active" : "passive", ht = (e) => {
562
560
  if (typeof window > "u") return () => {};
563
561
  let t = !1, n = (n) => {
564
562
  if (t) return;
@@ -594,13 +592,13 @@ var st = () => {
594
592
  case "blur":
595
593
  case "focus":
596
594
  case "visibilitychange":
597
- G.set(mt());
595
+ W.set(mt());
598
596
  break;
599
597
  case "freeze":
600
- G.set(W.FROZEN);
598
+ W.set("frozen");
601
599
  break;
602
600
  case "pagehide":
603
- G.set(e.persisted ? W.FROZEN : W.TERMINATED);
601
+ W.set(e.persisted ? "frozen" : "terminated");
604
602
  break;
605
603
  }
606
604
  }, o = [
@@ -615,11 +613,11 @@ var st = () => {
615
613
  o.forEach((e) => {
616
614
  window.addEventListener(e, a, { capture: !0 });
617
615
  }), window.addEventListener("beforeunload", r);
618
- let s = G.listen((e) => {
619
- e === W.FROZEN || e === W.TERMINATED ? n({
616
+ let s = W.listen((e) => {
617
+ e === "frozen" || e === "terminated" ? n({
620
618
  state: e,
621
619
  trigger: "lifecycle"
622
- }) : e === W.HIDDEN && H();
620
+ }) : e === "hidden" && H();
623
621
  }), l = c.get().page_id, u = c.listen((e) => {
624
622
  e.page_id !== l && (t = !1, l = e.page_id);
625
623
  }), d = z.listen((e) => {
@@ -628,9 +626,9 @@ var st = () => {
628
626
  return () => {
629
627
  o.forEach((e) => {
630
628
  window.removeEventListener(e, a, { capture: !0 });
631
- }), window.removeEventListener("beforeunload", r), s(), u(), d(), t = !1, G.set(W.ACTIVE);
629
+ }), window.removeEventListener("beforeunload", r), s(), u(), d(), t = !1, W.set("active");
632
630
  };
633
- }, K = (e) => Object.prototype.toString.call(e) == "[object String]", gt = (e, t) => e.indexOf(t) !== -1, q = (e) => e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""), _t = (e) => e === void 0, vt = (e) => e === null, yt = (e) => _t(e) || vt(e), bt = (e) => !!e && e?.nodeType === 3;
631
+ }, G = (e) => Object.prototype.toString.call(e) == "[object String]", gt = (e, t) => e.indexOf(t) !== -1, K = (e) => e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""), _t = (e) => e === void 0, vt = (e) => e === null, yt = (e) => _t(e) || vt(e), bt = (e) => !!e && e?.nodeType === 3;
634
632
  function xt(e) {
635
633
  return !!e && e?.nodeType === 1;
636
634
  }
@@ -638,7 +636,7 @@ function St(e, t) {
638
636
  return !!e && !!e?.tagName && e?.tagName.toLowerCase() === t.toLowerCase();
639
637
  }
640
638
  function Ct(e) {
641
- return e ? q(e).split(/\s+/) : [];
639
+ return e ? K(e).split(/\s+/) : [];
642
640
  }
643
641
  function wt(e) {
644
642
  let t = "";
@@ -653,7 +651,7 @@ function wt(e) {
653
651
  }
654
652
  return Ct(t);
655
653
  }
656
- var J = (e, t = 255) => yt(e) ? "" : q(e).split(/(\s+)/).filter((e) => X(e)).join("").replace(/[\r\n]/g, " ").replace(/[ ]+/g, " ").substring(0, t), Tt = [
654
+ var q = (e, t = 255) => yt(e) ? "" : K(e).split(/(\s+)/).filter((e) => Y(e)).join("").replace(/[\r\n]/g, " ").replace(/[ ]+/g, " ").substring(0, t), Tt = [
657
655
  "span",
658
656
  "strong",
659
657
  "em",
@@ -665,23 +663,23 @@ var J = (e, t = 255) => yt(e) ? "" : q(e).split(/(\s+)/).filter((e) => X(e)).joi
665
663
  "sub",
666
664
  "sup",
667
665
  "label"
668
- ], Y = (e) => {
666
+ ], J = (e) => {
669
667
  let t = "";
670
668
  if (kt(e) && e?.childNodes && e?.childNodes.length) {
671
- for (let n of e.childNodes) bt(n) && n.textContent && (t += J(n.textContent) ?? "");
672
- if (!q(t)) {
669
+ for (let n of e.childNodes) bt(n) && n.textContent && (t += q(n.textContent) ?? "");
670
+ if (!K(t)) {
673
671
  let n = e.querySelectorAll(Tt.join(", "));
674
672
  for (let e of n) {
675
673
  let n = e.textContent;
676
- n && (t += `${J(n)} `);
674
+ n && (t += `${q(n)} `);
677
675
  }
678
676
  }
679
- if (!q(t) && e instanceof HTMLElement) {
677
+ if (!K(t) && e instanceof HTMLElement) {
680
678
  let n = e.innerText;
681
- n && (t = J(n.substring(0, 500)));
679
+ n && (t = q(n.substring(0, 500)));
682
680
  }
683
681
  }
684
- return q(t);
682
+ return K(t);
685
683
  }, Et = (e) => _t(e.target) ? e?.srcElement || null : e?.composedPath?.()[0] || e?.target || null, Dt = (e, t) => {
686
684
  if (!window || !e || St(e, "html") || !xt(e)) return !1;
687
685
  let n = window.getComputedStyle(e);
@@ -718,70 +716,70 @@ var J = (e, t = 255) => yt(e) ? "" : q(e).split(/(\s+)/).filter((e) => X(e)).joi
718
716
  function kt(e) {
719
717
  if (gt(wt(e), "ph-include")) return !0;
720
718
  let t = e.type || "";
721
- if (K(t)) switch (t.toLowerCase()) {
719
+ if (G(t)) switch (t.toLowerCase()) {
722
720
  case "hidden": return !1;
723
721
  case "password": return !1;
724
722
  }
725
723
  let n = e.name || e?.id || "";
726
- if (K(n)) {
724
+ if (G(n)) {
727
725
  let e = n.toLowerCase().replace(/[^a-z]/g, "");
728
726
  if (Ot.has(e)) return !1;
729
727
  }
730
728
  return !0;
731
729
  }
732
- var At = "(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})", jt = RegExp(`^(?:${At})$`), Mt = new RegExp(At), Nt = "\\d{3}-?\\d{2}-?\\d{4}", Pt = RegExp(`^(${Nt})$`), Ft = RegExp(`(${Nt})`), X = (e, t = !0) => !(yt(e) || K(e) && (e = q(e), (t ? jt : Mt).test((e || "").replace(/[- ]/g, "")) || (t ? Pt : Ft).test(e))), It = (e) => K(e) ? e.substring(0, 10) === "_ngcontent" || e.substring(0, 7) === "_nghost" : !1, Lt = (e) => {
733
- let t = Y(e);
734
- return t = `${t} ${Rt(e)}`.trim(), X(t) ? t : "";
730
+ var At = "(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})", jt = RegExp(`^(?:${At})$`), Mt = new RegExp(At), Nt = "\\d{3}-?\\d{2}-?\\d{4}", Pt = RegExp(`^(${Nt})$`), Ft = RegExp(`(${Nt})`), Y = (e, t = !0) => !(yt(e) || G(e) && (e = K(e), (t ? jt : Mt).test((e || "").replace(/[- ]/g, "")) || (t ? Pt : Ft).test(e))), It = (e) => G(e) ? e.substring(0, 10) === "_ngcontent" || e.substring(0, 7) === "_nghost" : !1, Lt = (e) => {
731
+ let t = J(e);
732
+ return t = `${t} ${Rt(e)}`.trim(), Y(t) ? t : "";
735
733
  };
736
734
  function Rt(e) {
737
735
  let t = "";
738
736
  if (e?.childNodes.length) for (let n of e.childNodes) {
739
737
  let e = n.tagName?.toLowerCase();
740
738
  if (n && e && Tt.includes(e)) try {
741
- let e = Y(n);
739
+ let e = J(n);
742
740
  t = `${t} ${e}`.trim(), n?.childNodes.length && (t = `${t} ${Rt(n)}`.trim());
743
741
  } catch {}
744
742
  }
745
743
  return t;
746
744
  }
747
745
  var zt = (e) => {
748
- let t = e.tagName?.toLowerCase(), n = t === "a" || t === "button" ? Lt(e) : Y(e);
746
+ let t = e.tagName?.toLowerCase(), n = t === "a" || t === "button" ? Lt(e) : J(e);
749
747
  if (n) return {
750
748
  text: n,
751
749
  source: "text"
752
750
  };
753
751
  let r = e.getAttribute("aria-label");
754
752
  if (r) return {
755
- text: J(r),
753
+ text: q(r),
756
754
  source: "aria-label"
757
755
  };
758
756
  let i = e.getAttribute("title");
759
757
  if (i) return {
760
- text: J(i),
758
+ text: q(i),
761
759
  source: "title"
762
760
  };
763
761
  let a = e.getAttribute("data-track-label");
764
762
  if (a) return {
765
- text: J(a),
763
+ text: q(a),
766
764
  source: "data-track-label"
767
765
  };
768
766
  let o = e.querySelector("img[alt], svg[aria-label]");
769
767
  if (o) {
770
768
  let e = o.getAttribute("alt") || o.getAttribute("aria-label");
771
769
  if (e) return {
772
- text: J(e),
770
+ text: q(e),
773
771
  source: "alt"
774
772
  };
775
773
  }
776
774
  let s = e.getAttribute("placeholder");
777
775
  if (s) return {
778
- text: J(s),
776
+ text: q(s),
779
777
  source: "placeholder"
780
778
  };
781
779
  if (e instanceof HTMLElement && e.innerText) {
782
780
  let t = e.innerText.substring(0, 500);
783
781
  if (t.trim()) return {
784
- text: J(t),
782
+ text: q(t),
785
783
  source: "innerText"
786
784
  };
787
785
  }
@@ -797,24 +795,24 @@ var zt = (e) => {
797
795
  let t = e?.tagName?.toLowerCase(), n = { element: t }, r = zt(e);
798
796
  n.text = r.text, n.text_source = r.source;
799
797
  let i = e.getAttribute("aria-label");
800
- i && (n.aria_label = J(i));
798
+ i && (n.aria_label = q(i));
801
799
  let a = e.getAttribute("role");
802
800
  a && (n.role = a);
803
801
  let o = {};
804
- for (let t of e.attributes) (t.name.startsWith("data-track-") || t.name.startsWith("data-analytics-")) && (o[t.name] = J(t.value));
802
+ for (let t of e.attributes) (t.name.startsWith("data-track-") || t.name.startsWith("data-analytics-")) && (o[t.name] = q(t.value));
805
803
  if (Object.keys(o).length && (n.tracking_data = o), n.attributes = Array.from(e.attributes).reduce((e, t) => {
806
- if (X(t.value) && !It(t.name)) {
804
+ if (Y(t.value) && !It(t.name)) {
807
805
  if (t.name === "class" || t.name.startsWith("data-track-") || t.name.startsWith("data-analytics-")) return e;
808
- e[t.name] = typeof t?.value == "string" ? J(t.value) : t.value;
806
+ e[t.name] = typeof t?.value == "string" ? q(t.value) : t.value;
809
807
  }
810
808
  return e;
811
809
  }, {}), Bt.includes(t) || e?.getAttribute("contenteditable") === "true") {
812
810
  let t;
813
- e.matches("input[type=\"checkbox\"], input[type=\"radio\"]") ? t = e.checked : e.matches("input, select, textarea") && !e.matches("input[type=\"password\"]") && (t = e.value), t !== void 0 && (n.value = typeof t == "string" || t === null ? J(t, 1024) : t);
811
+ e.matches("input[type=\"checkbox\"], input[type=\"radio\"]") ? t = e.checked : e.matches("input, select, textarea") && !e.matches("input[type=\"password\"]") && (t = e.value), t !== void 0 && (n.value = typeof t == "string" || t === null ? q(t, 1024) : t);
814
812
  let r = "";
815
- n?.attributes.id && (r = J(document.querySelector(`label[for="${n?.attributes.id}"]`)?.textContent?.trim() || ""));
813
+ n?.attributes.id && (r = q(document.querySelector(`label[for="${n?.attributes.id}"]`)?.textContent?.trim() || ""));
816
814
  let i = e.closest("label");
817
- r ||= J(i?.textContent?.trim() || ""), r && (n.label = r);
815
+ r ||= q(i?.textContent?.trim() || ""), r && (n.label = r);
818
816
  }
819
817
  return n;
820
818
  }, Ht = (e, t) => {
@@ -824,28 +822,28 @@ var zt = (e) => {
824
822
  if (n && (r || Dt(n, e))) {
825
823
  let t = Vt(n);
826
824
  if (r) {
827
- let n = J(window?.getSelection()?.toString()), r = e?.type || "clipboard";
825
+ let n = q(window?.getSelection()?.toString()), r = e?.type || "clipboard";
828
826
  t.copy_text = n ?? "", t.copy_type = r ?? "";
829
827
  }
830
828
  return t;
831
829
  }
832
830
  return null;
833
- }, Z = e(null), Ut = 3e3, Wt = 1e4, Gt = `${f.open_tabs}:`, Kt = (e) => `${Gt}${e}`, qt = (e) => {
831
+ }, X = e(null), Ut = 3e3, Wt = 1e4, Gt = `${f.open_tabs}:`, Z = (e) => `${Gt}${e}`, Kt = (e) => {
834
832
  try {
835
- localStorage.setItem(Kt(e), String(Date.now()));
833
+ localStorage.setItem(Z(e), String(Date.now()));
836
834
  } catch {}
837
- }, Jt = (e) => {
835
+ }, qt = (e) => {
838
836
  try {
839
- localStorage.removeItem(Kt(e));
837
+ localStorage.removeItem(Z(e));
840
838
  } catch {}
841
- }, Yt = (e) => {
839
+ }, Jt = (e) => {
842
840
  try {
843
- let t = Number(localStorage.getItem(Kt(e)));
841
+ let t = Number(localStorage.getItem(Z(e)));
844
842
  return Number.isFinite(t) && Date.now() - t <= Wt;
845
843
  } catch {
846
844
  return !1;
847
845
  }
848
- }, Xt = () => {
846
+ }, Yt = () => {
849
847
  try {
850
848
  let e = Date.now(), t = 0, n = [];
851
849
  for (let r = 0; r < localStorage.length; r++) {
@@ -861,36 +859,36 @@ var zt = (e) => {
861
859
  } catch {
862
860
  return 1;
863
861
  }
864
- }, Zt = 1, Qt = () => {
865
- Zt = Xt();
866
- }, $t = (e) => {
862
+ }, Xt = 1, Zt = () => {
863
+ Xt = Yt();
864
+ }, Qt = (e) => {
867
865
  if (typeof window > "u") return () => {};
868
866
  let t = null;
869
867
  try {
870
868
  t = sessionStorage.getItem(f.current_tab);
871
869
  } catch {}
872
- if (t && Yt(t) && (t = null), !t) {
870
+ if (t && Jt(t) && (t = null), !t) {
873
871
  t = `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
874
872
  try {
875
873
  sessionStorage.setItem(f.current_tab, t);
876
874
  } catch {}
877
875
  }
878
876
  let n = t;
879
- Z.set(n), qt(n), Qt();
877
+ X.set(n), Kt(n), Zt();
880
878
  let r = window.setInterval(() => {
881
- qt(n), Qt();
879
+ Kt(n), Zt();
882
880
  }, Ut), i = (e) => {
883
- e.persisted || Jt(n);
881
+ e.persisted || qt(n);
884
882
  };
885
883
  return window.addEventListener("beforeunload", i), window.addEventListener("pagehide", i), () => {
886
- window.clearInterval(r), window.removeEventListener("beforeunload", i), window.removeEventListener("pagehide", i), Jt(n), Z.set(null);
884
+ window.clearInterval(r), window.removeEventListener("beforeunload", i), window.removeEventListener("pagehide", i), qt(n), X.set(null);
887
885
  };
888
- }, en = () => Z.get(), tn = () => Zt, Q = n({
886
+ }, $t = () => X.get(), en = () => Xt, Q = n({
889
887
  depth: 0,
890
888
  milestone: 0,
891
889
  speedCategory: "read",
892
890
  direction: "down"
893
- }), nn = (e) => {
891
+ }), tn = (e) => {
894
892
  if (typeof window > "u") return () => {};
895
893
  let t = {
896
894
  prevMilestone: -1,
@@ -927,7 +925,7 @@ var zt = (e) => {
927
925
  direction: "down"
928
926
  });
929
927
  };
930
- }, $ = e(null), rn = (e) => {
928
+ }, $ = e(null), nn = (e) => {
931
929
  if (typeof window > "u") return () => {};
932
930
  let t = s(() => {
933
931
  let e = window.getSelection();
@@ -938,11 +936,11 @@ var zt = (e) => {
938
936
  }, 1e3);
939
937
  document.addEventListener("selectionchange", t);
940
938
  let n = $.listen((t) => {
941
- t && e.track("page.selection", { text: J(t) });
939
+ t && e.track("page.selection", { text: q(t) });
942
940
  });
943
941
  return () => {
944
942
  document.removeEventListener("selectionchange", t), t.cancel(), n(), $.set(null);
945
943
  };
946
944
  };
947
945
  //#endregion
948
- export { F as A, T as B, st as C, r as D, at as E, Le as F, l as G, se as H, Ee as I, u as K, ye as L, Ve as M, He as N, We as O, Re as P, w as R, $e as S, it as T, f as U, me as V, c as W, ut as _, Z as a, R as b, $t as c, Ht as d, G as f, lt as g, ft as h, nn as i, Pe as j, P as k, Vt as l, U as m, rn as n, en as o, ht as p, d as q, Q as r, tn as s, $ as t, Et as u, ct as v, H as w, z as x, dt as y, C as z };
946
+ export { F as A, T as B, st as C, r as D, at as E, Le as F, l as G, se as H, Ee as I, u as K, ye as L, Ve as M, He as N, We as O, Re as P, w as R, $e as S, it as T, f as U, me as V, c as W, ut as _, X as a, R as b, Qt as c, Ht as d, W as f, lt as g, ft as h, tn as i, Pe as j, P as k, Vt as l, U as m, nn as n, $t as o, ht as p, d as q, Q as r, en as s, $ as t, Et as u, ct as v, H as w, z as x, dt as y, C as z };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@levo-so/insights",
3
3
  "description": "Levo analytics",
4
- "version": "0.3.20",
4
+ "version": "0.3.21",
5
5
  "author": "Levo Engineering <devs@theinternetfolks.com>",
6
6
  "dependencies": {
7
7
  "@analytics/activity-utils": "0.2.2",
@@ -13,11 +13,11 @@
13
13
  "nanostores": "0.11.4"
14
14
  },
15
15
  "devDependencies": {
16
- "@levo-so/core": "0.3.20",
16
+ "@levo-so/core": "0.3.21",
17
17
  "@levo/ts-config": "0.0.0",
18
18
  "@types/lodash-es": "4.17.12",
19
19
  "typescript": "5.9.3",
20
- "vite": "8.0.8",
20
+ "vite": "8.0.16",
21
21
  "vite-plugin-dts": "4.5.4"
22
22
  },
23
23
  "exports": {
@@ -38,7 +38,7 @@
38
38
  "main": "./dist/index.js",
39
39
  "module": "./dist/index.js",
40
40
  "peerDependencies": {
41
- "@levo-so/core": "0.3.20"
41
+ "@levo-so/core": "0.3.21"
42
42
  },
43
43
  "publishConfig": {
44
44
  "access": "public"