@yuneta/gobj-js 7.26.2 → 7.26.4

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.
@@ -663,7 +663,7 @@ function Ne(e, t) {
663
663
  t.parent && mn(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
664
664
  }
665
665
  function Re(e, t) {
666
- let n = qr(e.dl_children, t);
666
+ let n = eo(e.dl_children, t);
667
667
  n >= 0 && (qn(e.dl_children, n), t.parent = null);
668
668
  }
669
669
  function xe(e, t) {
@@ -1095,7 +1095,7 @@ function Ut(e, n, r, o) {
1095
1095
  if (1 === A) I(t("🔄 %s %s%s %s from %s%s", n || "", e.running ? "" : "!!", Ze(e), s.state_name, o && !o.running ? "!!" : "", Ze(o)));
1096
1096
  else {
1097
1097
  let r = "";
1098
- i.action && (r = zr(i.action)), I(t("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Xe(e), Qe(e), s.state_name, "", n || "", "", r, o && !o.running ? "!!" : "", Xe(o), Qe(o)));
1098
+ i.action && (r = no(i.action)), I(t("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Xe(e), Qe(e), s.state_name, "", n || "", "", r, o && !o.running ? "!!" : "", Xe(o), Qe(o)));
1099
1099
  }
1100
1100
  r && J(e) && Hn(r) && Ln(r);
1101
1101
  }
@@ -1158,21 +1158,21 @@ function Mt(e, t) {
1158
1158
  };
1159
1159
  }
1160
1160
  function Wt(e, t, n, r, o, s) {
1161
- let l = Tr(t, o, "__config__", null), i = Tr(t, o, "__global__", null), _ = Tr(t, o, "__local__", null), a = vr(t, o, "__filter__", null), u = !0;
1162
- if (t && t !== Er(null, e, "publisher", null) && (u = !1), s && s !== Er(null, e, "subscriber", null) && (u = !1), n && n !== yr(null, e, "event", "") && (u = !1), r && r !== yr(null, e, "renamed_event", "") && (u = !1), Qn(l) > 0) {
1163
- let t = Tr(null, e, "__config__", null);
1161
+ let l = vr(t, o, "__config__", null), i = vr(t, o, "__global__", null), _ = vr(t, o, "__local__", null), a = jr(t, o, "__filter__", null), u = !0;
1162
+ if (t && t !== Tr(null, e, "publisher", null) && (u = !1), s && s !== Tr(null, e, "subscriber", null) && (u = !1), n && n !== Er(null, e, "event", "") && (u = !1), r && r !== Er(null, e, "renamed_event", "") && (u = !1), Qn(l) > 0) {
1163
+ let t = vr(null, e, "__config__", null);
1164
1164
  Qn(t) > 0 && Un(t, l) || (u = !1);
1165
1165
  }
1166
1166
  if (Qn(i) > 0) {
1167
- let t = Tr(null, e, "__global__", null);
1167
+ let t = vr(null, e, "__global__", null);
1168
1168
  Qn(t) > 0 && Un(t, i) || (u = !1);
1169
1169
  }
1170
1170
  if (Qn(_) > 0) {
1171
- let t = Tr(null, e, "__local__", null);
1171
+ let t = vr(null, e, "__local__", null);
1172
1172
  Qn(t) > 0 && Un(t, _) || (u = !1);
1173
1173
  }
1174
1174
  if (Qn(a) > 0) {
1175
- let t = vr(null, e, "__filter__", null);
1175
+ let t = jr(null, e, "__filter__", null);
1176
1176
  Qn(t) > 0 && Un(t, a) || (u = !1);
1177
1177
  }
1178
1178
  return u;
@@ -1189,8 +1189,8 @@ function Yt(e, t) {
1189
1189
  return e.indexOf(t);
1190
1190
  }
1191
1191
  function Bt(e, n, r, o) {
1192
- let s = Er(e, n, "publisher", null, Xt.KW_REQUIRED), l = Er(e, n, "subscriber", null, Xt.KW_REQUIRED), i = yr(e, n, "event", "", Xt.KW_REQUIRED);
1193
- if (!!(hr(e, n, "subs_flag", null, Xt.KW_REQUIRED) & Ft.__hard_subscription__) && !r) return -1;
1192
+ let s = Tr(e, n, "publisher", null, Xt.KW_REQUIRED), l = Tr(e, n, "subscriber", null, Xt.KW_REQUIRED), i = Er(e, n, "event", "", Xt.KW_REQUIRED);
1193
+ if (!!(yr(e, n, "subs_flag", null, Xt.KW_REQUIRED) & Ft.__hard_subscription__) && !r) return -1;
1194
1194
  let _ = Y(l) || Y(s);
1195
1195
  if (Yt(s.dl_subscriptions, n) < 0) return _ && I(t("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s', ALREADY REMOVED", i || "", Ze(s), Ze(l))), 1;
1196
1196
  _ && (I(t("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s'", i || "", Ze(s), Ze(l))), Tn(n)), s.obflag & N.obflag_destroyed || o || s.gclass.gmt.mt_subscription_deleted && s.gclass.gmt.mt_subscription_deleted(s, n);
@@ -1212,7 +1212,7 @@ function Jt(e, n, r, o) {
1212
1212
  }), lr(n)) n = "";
1213
1213
  else if (!(At(e, n, R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & S.gcflag_no_check_output_events)) return mn(`event NOT in output event list: ${Ze(e)}, ${n}`), 0;
1214
1214
  let l = Mt(r, n), i = Kt(e.dl_subscriptions, e, n, l.renamed_event, l.kw, o), _ = null;
1215
- for (let t = 0; t < i.length; t++) if (hr(e, i[t], "subs_flag", 0, Xt.KW_REQUIRED) & Ft.__hard_subscription__) {
1215
+ for (let t = 0; t < i.length; t++) if (yr(e, i[t], "subs_flag", 0, Xt.KW_REQUIRED) & Ft.__hard_subscription__) {
1216
1216
  _ = i[t];
1217
1217
  break;
1218
1218
  }
@@ -1223,25 +1223,25 @@ function Jt(e, n, r, o) {
1223
1223
  Yn(o, "event", t), Yn(o, "subscriber", r), Yn(o, "publisher", e);
1224
1224
  let s = 0;
1225
1225
  if (n) {
1226
- let r = Tr(e, n, "__config__", null), l = Tr(e, n, "__global__", null), i = Tr(e, n, "__local__", null), _ = vr(e, n, "__filter__", null), a = yr(e, n, "__service__", "");
1226
+ let r = vr(e, n, "__config__", null), l = vr(e, n, "__global__", null), i = vr(e, n, "__local__", null), _ = jr(e, n, "__filter__", null), a = Er(e, n, "__service__", "");
1227
1227
  if (Qn(l) > 0 && Yn(o, "__global__", Pn(l)), Qn(r) > 0) {
1228
1228
  let n = Pn(r);
1229
1229
  Yn(o, "__config__", n);
1230
- let l = yr(e, n, "__rename_event_name__", "");
1230
+ let l = Er(e, n, "__rename_event_name__", "");
1231
1231
  if (!lr(l)) {
1232
1232
  let r = Vt(l);
1233
1233
  if (r) {
1234
1234
  Yn(o, "renamed_event", r.event_name), delete n.__rename_event_name__, s |= Ft.__rename_event_name__;
1235
- let l = Tr(e, o, "__global__", null);
1235
+ let l = vr(e, o, "__global__", null);
1236
1236
  Xn(l) || (l = {}, Yn(o, "__global__", l)), l.__original_event_name__ = t;
1237
1237
  } else mn(`${Ze(e)}: EVENT NOT FOUND (__rename_event_name__: ${l})`);
1238
1238
  }
1239
1239
  if (fr(n, "__hard_subscription__")) {
1240
- let t = mr(e, n, "__hard_subscription__", !1);
1240
+ let t = hr(e, n, "__hard_subscription__", !1);
1241
1241
  Wn(n, "__hard_subscription__"), t && (s |= Ft.__hard_subscription__);
1242
1242
  }
1243
1243
  if (fr(n, "__own_event__")) {
1244
- let t = mr(e, n, "__own_event__", !1);
1244
+ let t = hr(e, n, "__own_event__", !1);
1245
1245
  Wn(n, "__own_event__"), t && (s |= Ft.__own_event__);
1246
1246
  }
1247
1247
  }
@@ -1285,15 +1285,15 @@ function Qt(e, n, r) {
1285
1285
  if (t < 0) break;
1286
1286
  if (!t) continue;
1287
1287
  }
1288
- let u = Er(e, a, "subscriber", null, Xt.KW_REQUIRED);
1288
+ let u = Tr(e, a, "subscriber", null, Xt.KW_REQUIRED);
1289
1289
  if (!u || ot(u)) continue;
1290
- let c = hr(e, a, "subs_flag", 0, Xt.KW_REQUIRED), f = yr(e, a, "event", "", Xt.KW_REQUIRED);
1290
+ let c = yr(e, a, "subs_flag", 0, Xt.KW_REQUIRED), f = Er(e, a, "event", "", Xt.KW_REQUIRED);
1291
1291
  if (lr(f) || 0 === ar(f, n)) {
1292
- Tr(e, a, "__config__", null, 0);
1293
- let o = Tr(e, a, "__global__", null, 0), l = Tr(e, a, "__local__", null, 0), f = vr(e, a, "__filter__", null, 0), g = a.renamed_event;
1292
+ vr(e, a, "__config__", null, 0);
1293
+ let o = vr(e, a, "__global__", null, 0), l = vr(e, a, "__local__", null, 0), f = jr(e, a, "__filter__", null, 0), g = a.renamed_event;
1294
1294
  lr(g) && (g = n);
1295
1295
  let p = 1;
1296
- if (e.gclass.gmt.mt_publication_filter ? p = e.gclass.gmt.mt_publication_filter(e, n, r, u) : Qn(f) > 0 && (p = wr(r, f) ? 1 : 0, s && (I(t("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", p ? "👍" : "👎", n || "", Ze(u), Ze(e))), Tn(f))), p < 0) break;
1296
+ if (e.gclass.gmt.mt_publication_filter ? p = e.gclass.gmt.mt_publication_filter(e, n, r, u) : Qn(f) > 0 && (p = Nr(r, f) ? 1 : 0, s && (I(t("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", p ? "👍" : "👎", n || "", Ze(u), Ze(e))), Tn(f))), p < 0) break;
1297
1297
  if (!p) continue;
1298
1298
  let d = Dt(u, n, !0);
1299
1299
  if (d && d.event_flag & R.EVF_SYSTEM_EVENT && !kt(u, d.event_name, 0)) continue;
@@ -1401,23 +1401,23 @@ function bn(e) {
1401
1401
  return n;
1402
1402
  }
1403
1403
  function mn(e, ...t) {
1404
- let n = bn(e, ...t), r = Jr();
1404
+ let n = bn(e, ...t), r = Zr();
1405
1405
  en && (en === Zt.error ? un("error", n) && en("%c" + r + " ERROR: " + String(n), "color:red") : (un("error", n) && Zt.error("%c" + r + " ERROR: " + String(n), "color:red"), en(`${r} ERROR: ${String(n)}`))), fn("error", n, r);
1406
1406
  }
1407
1407
  function hn(e, ...t) {
1408
- let n = bn(e, ...t), r = Jr();
1408
+ let n = bn(e, ...t), r = Zr();
1409
1409
  tn && (tn === Zt.warn ? un("warning", n) && tn("%c" + r + " WARNING: " + String(n), "color:yellow") : (un("warning", n) && Zt.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), tn(`${r} WARNING: ${String(n)}`))), fn("warning", n, r);
1410
1410
  }
1411
1411
  function yn(e, ...t) {
1412
- let n = bn(e, ...t), r = Jr();
1412
+ let n = bn(e, ...t), r = Zr();
1413
1413
  rn && un("debug", n) && rn("%c" + r + " DEBUG: " + String(n), "color:silver"), fn("debug", n, r);
1414
1414
  }
1415
1415
  function En(e, ...t) {
1416
- let n = bn(e, ...t), r = Jr();
1416
+ let n = bn(e, ...t), r = Zr();
1417
1417
  rn && un("msg", n) && rn("%c" + r + " MSG: " + String(n), "color:cyan"), fn("msg", n, r);
1418
1418
  }
1419
1419
  function Tn(e, t) {
1420
- un("json", t) && (t && Zt.warn("=====> " + t), Zt.dir(e)), fn("json", e, Jr());
1420
+ un("json", t) && (t && Zt.warn("=====> " + t), Zt.dir(e)), fn("json", e, Zr());
1421
1421
  }
1422
1422
  var vn = [
1423
1423
  "passw",
@@ -1726,7 +1726,12 @@ function pr(e, t, n) {
1726
1726
  configurable: !0
1727
1727
  }) : e[t] = n;
1728
1728
  }
1729
- function dr(e, t, n, r) {
1729
+ function dr(e, t) {
1730
+ if (!/^[0-9]+$/.test(t)) return -1;
1731
+ const n = Number(t);
1732
+ return n >= e.length ? -1 : n;
1733
+ }
1734
+ function br(e, t, n, r) {
1730
1735
  e && !sr(e) && mn("GObj bad instanceof");
1731
1736
  const o = e ? `${Ze(e)}: ` : "";
1732
1737
  if (!Xn(t) && !Zn(t)) return void mn(`${o}kw must be list or dict: '${String(n)}'`);
@@ -1734,8 +1739,9 @@ function dr(e, t, n, r) {
1734
1739
  let s = n.split("`"), l = s.length;
1735
1740
  for (let e = 0; e < l; e++) {
1736
1741
  if (Zn(t)) {
1737
- if (!/^[0-9]+$/.test(s[e])) return void (r && mn(`${o}path not found: '${n}'`));
1738
- s[e] = String(Number(s[e]));
1742
+ const l = dr(t, s[e]);
1743
+ if (l < 0) return void (r && mn(`${o}path not found: '${n}'`));
1744
+ s[e] = String(l);
1739
1745
  }
1740
1746
  if (gr(t, s[e])) return void (r && mn(`${o}path not found: '${n}'`));
1741
1747
  if (e === l - 1) break;
@@ -1745,22 +1751,28 @@ function dr(e, t, n, r) {
1745
1751
  let i = t[s[l - 1]];
1746
1752
  return void 0 === i && r && mn(`${o}path not found: '${n}'`), i;
1747
1753
  }
1748
- function br(e, t, n) {
1754
+ function mr(e, t, n) {
1749
1755
  e && !sr(e) && mn("GObj bad instanceof");
1750
1756
  let [r, o] = function(e, t) {
1751
1757
  let n = e.lastIndexOf(t);
1752
1758
  return -1 === n ? [e, ""] : [e.substring(0, n), e.substring(n + 1)];
1753
1759
  }(n, "`");
1754
- return lr(o) ? Wn(t, n) : Wn(dr(e, t, r, !0), o), 0;
1760
+ if (lr(o)) Wn(t, n);
1761
+ else {
1762
+ let s = br(e, t, r, !0);
1763
+ if (Zn(s)) return mn(`${e ? Ze(e) + ": " : ""}kw_delete(): cannot delete an item of a list: '${n}'`), -1;
1764
+ Wn(s, o);
1765
+ }
1766
+ return 0;
1755
1767
  }
1756
- function mr(e, t, n, r, o) {
1768
+ function hr(e, t, n, r, o) {
1757
1769
  e && !sr(e) && mn("GObj bad instanceof");
1758
- let s = dr(e, t, n, !1);
1770
+ let s = br(e, t, n, !1);
1759
1771
  const l = o && o & Xt.KW_REQUIRED, i = o && o & Xt.KW_CREATE, _ = o && o & Xt.KW_EXTRACT, a = o && o & Xt.KW_WILD_NUMBER;
1760
1772
  if (void 0 === s) {
1761
1773
  if (i && t) {
1762
1774
  let o = Boolean(r);
1763
- return jr(e, t, n, o), o;
1775
+ return Or(e, t, n, o), o;
1764
1776
  }
1765
1777
  return l && (mn(`path not found: '${n}'`), Ln(t)), Boolean(r);
1766
1778
  }
@@ -1772,16 +1784,16 @@ function mr(e, t, n, r, o) {
1772
1784
  if (!a || null !== s) return a ? (mn(`${e ? Ze(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), Ln(t), !1) : (mn(`${e ? Ze(e) + ": " : ""}path MUST BE a json boolean: '${n}'`), Ln(t), Boolean(r));
1773
1785
  u = !1;
1774
1786
  }
1775
- return _ && br(e, t, n), u;
1787
+ return _ && mr(e, t, n), u;
1776
1788
  }
1777
- function hr(e, t, n, r, o) {
1789
+ function yr(e, t, n, r, o) {
1778
1790
  e && !sr(e) && mn("GObj bad instanceof");
1779
- let s = dr(e, t, n, !1);
1791
+ let s = br(e, t, n, !1);
1780
1792
  const l = o && o & Xt.KW_REQUIRED, i = o && o & Xt.KW_CREATE, _ = o && o & Xt.KW_EXTRACT, a = o && o & Xt.KW_WILD_NUMBER;
1781
1793
  if (void 0 === s) {
1782
1794
  if (i && t) {
1783
1795
  let o = parseInt(r);
1784
- return jr(e, t, n, o), o;
1796
+ return Or(e, t, n, o), o;
1785
1797
  }
1786
1798
  return l && (mn(`path not found: '${n}'`), Ln(t)), parseInt(r);
1787
1799
  }
@@ -1801,58 +1813,63 @@ function hr(e, t, n, r, o) {
1801
1813
  u = 0;
1802
1814
  }
1803
1815
  }
1804
- return _ && br(e, t, n), u;
1816
+ return _ && mr(e, t, n), u;
1805
1817
  }
1806
- function yr(e, t, n, r, o) {
1818
+ function Er(e, t, n, r, o) {
1807
1819
  e && !sr(e) && mn("GObj bad instanceof");
1808
- let s = dr(e, t, n, !1);
1820
+ let s = br(e, t, n, !1);
1809
1821
  const l = o && o & Xt.KW_REQUIRED, i = o && o & Xt.KW_CREATE, _ = o && o & Xt.KW_EXTRACT;
1810
- return void 0 === s ? i && t ? (jr(e, t, n, er(r) ? r : null), r) : (l && !function(e, t) {
1822
+ return void 0 === s ? i && t ? (Or(e, t, n, er(r) ? r : null), r) : (l && !function(e, t) {
1811
1823
  let n = er(t) ? t.split("`") : [], r = e;
1812
1824
  for (let e = 0; e < n.length - 1; e++) {
1813
1825
  if (!Xn(r) && !Zn(r)) return !1;
1814
1826
  r = r[n[e]];
1815
1827
  }
1816
1828
  return !(!Xn(r) && !Zn(r) || 0 === n.length) && Object.prototype.hasOwnProperty.call(r, n[n.length - 1]);
1817
- }(t, n) && (mn(`path not found: '${n}'`), Ln(t)), r) : er(s) ? (_ && br(e, t, n), s) : (null !== s && (mn(`${e ? Ze(e) + ": " : ""}path MUST BE a json str: '${n}'`), Ln(t)), r);
1829
+ }(t, n) && (mn(`path not found: '${n}'`), Ln(t)), r) : er(s) ? (_ && mr(e, t, n), s) : (null !== s && (mn(`${e ? Ze(e) + ": " : ""}path MUST BE a json str: '${n}'`), Ln(t)), r);
1818
1830
  }
1819
- function Er(e, t, n, r, o) {
1831
+ function Tr(e, t, n, r, o) {
1820
1832
  e && !sr(e) && mn("GObj bad instanceof");
1821
- let s = dr(e, t, n, !1);
1833
+ let s = br(e, t, n, !1);
1822
1834
  const l = o && o & Xt.KW_REQUIRED, i = o && o & Xt.KW_CREATE, _ = o && o & Xt.KW_EXTRACT;
1823
1835
  if (void 0 === s) {
1824
1836
  if (i) {
1825
1837
  let o = r;
1826
- return jr(e, t, n, o), o;
1838
+ return Or(e, t, n, o), o;
1827
1839
  }
1828
1840
  return l && (mn(`path not found: '${n}'`), Ln(t)), r;
1829
1841
  }
1830
- return _ && br(e, t, n), s;
1842
+ return _ && mr(e, t, n), s;
1831
1843
  }
1832
- function Tr(e, t, n, r, o) {
1844
+ function vr(e, t, n, r, o) {
1833
1845
  e && !sr(e) && mn("GObj bad instanceof");
1834
- let s = dr(e, t, n, !1);
1846
+ let s = br(e, t, n, !1);
1835
1847
  const l = o && o & Xt.KW_REQUIRED, i = o && o & Xt.KW_CREATE, _ = o && o & Xt.KW_EXTRACT;
1836
- return void 0 === s ? i && Xn(r) && t ? (jr(e, t, n, r), r) : (l && (mn(`path not found: '${n}'`), Ln(t)), r) : Xn(s) ? (_ && br(e, t, n), s) : (l && (mn(`${e ? Ze(e) + ": " : ""}path MUST BE a json dict: '${n}'`), Ln(t)), r);
1848
+ return void 0 === s ? i && Xn(r) && t ? (Or(e, t, n, r), r) : (l && (mn(`path not found: '${n}'`), Ln(t)), r) : Xn(s) ? (_ && mr(e, t, n), s) : (l && (mn(`${e ? Ze(e) + ": " : ""}path MUST BE a json dict: '${n}'`), Ln(t)), r);
1837
1849
  }
1838
- function vr(e, t, n, r, o) {
1850
+ function jr(e, t, n, r, o) {
1839
1851
  e && !sr(e) && mn("GObj bad instanceof");
1840
- let s = dr(e, t, n, !1);
1852
+ let s = br(e, t, n, !1);
1841
1853
  const l = o && o & Xt.KW_REQUIRED, i = o && o & Xt.KW_CREATE, _ = o && o & Xt.KW_EXTRACT;
1842
1854
  if (void 0 === s) {
1843
1855
  if (i) {
1844
1856
  let o = r;
1845
- return jr(e, t, n, o), o;
1857
+ return Or(e, t, n, o), o;
1846
1858
  }
1847
1859
  return l && (mn(`path not found: '${n}'`), Ln(t)), r;
1848
1860
  }
1849
- return _ && br(e, t, n), s;
1861
+ return _ && mr(e, t, n), s;
1850
1862
  }
1851
- function jr(e, t, n, r) {
1863
+ function Or(e, t, n, r) {
1852
1864
  if (e && !sr(e) && mn("GObj bad instanceof"), !Xn(t)) return mn("kw is not an object"), -1;
1853
1865
  let o = n.split("`"), s = o.length;
1854
1866
  for (let l = 0; l < s; l++) {
1855
1867
  let i = o[l];
1868
+ if (Zn(t)) {
1869
+ const r = dr(t, i);
1870
+ if (r < 0) return mn(`${e ? Ze(e) + ": " : ""}kw_set_dict_value(): segment '${i}' is not an index of its list: '${n}'`), -1;
1871
+ i = String(r);
1872
+ }
1856
1873
  if (l === s - 1) pr(t, i, r);
1857
1874
  else {
1858
1875
  let r = gr(t, i) ? void 0 : t[i];
@@ -1863,18 +1880,18 @@ function jr(e, t, n, r) {
1863
1880
  }
1864
1881
  return 0;
1865
1882
  }
1866
- function Or(e, t, n, r, o) {
1883
+ function Sr(e, t, n, r, o) {
1867
1884
  if (e && !sr(e) && mn("GObj bad instanceof"), !Xn(t)) return mn("kw is not an object"), -1;
1868
- let s = Tr(e, t, n, {}, Xt.KW_CREATE);
1885
+ let s = vr(e, t, n, {}, Xt.KW_CREATE);
1869
1886
  return Xn(s) ? (pr(s, r, o), 0) : (mn("subdict is not an object"), -1);
1870
1887
  }
1871
- function Sr(e, n, r) {
1888
+ function wr(e, n, r) {
1872
1889
  let o = "", s = !1;
1873
1890
  if (Zn(n)) {
1874
1891
  s = !1;
1875
1892
  for (let l = 0; l < n.length; l++) {
1876
1893
  let i = n[l];
1877
- if (o = lr(r) ? t("%s", r) : t("%s`%d", r, l), s = Sr(e, i, o), s) break;
1894
+ if (o = lr(r) ? t("%s", r) : t("%s`%d", r, l), s = wr(e, i, o), s) break;
1878
1895
  }
1879
1896
  } else if (Xn(n)) {
1880
1897
  s = !0;
@@ -1882,10 +1899,10 @@ function Sr(e, n, r) {
1882
1899
  for (let i = 0; i < l.length; i++) {
1883
1900
  let _ = l[i], a = n[_];
1884
1901
  if (o = lr(r) ? t("%s", _) : t("%s`%s", r, _), Zn(a) || Xn(a)) {
1885
- if (s = Sr(e, a, o), !s) break;
1902
+ if (s = wr(e, a, o), !s) break;
1886
1903
  continue;
1887
1904
  }
1888
- let u = vr(0, e, o, void 0, 0);
1905
+ let u = jr(0, e, o, void 0, 0);
1889
1906
  if (void 0 === u && (u = Mn(e, o)), void 0 === u) {
1890
1907
  s = !1;
1891
1908
  break;
@@ -1898,10 +1915,10 @@ function Sr(e, n, r) {
1898
1915
  }
1899
1916
  return s;
1900
1917
  }
1901
- function wr(e, t) {
1902
- return 0 === Qn(t) || Sr(e, t, "");
1918
+ function Nr(e, t) {
1919
+ return 0 === Qn(t) || wr(e, t, "");
1903
1920
  }
1904
- function Nr(e, t, n, r) {
1921
+ function Rr(e, t, n, r) {
1905
1922
  e && !sr(e) && mn("GObj bad instanceof");
1906
1923
  let o = {};
1907
1924
  if (er(n) && !lr(n)) {
@@ -1917,7 +1934,7 @@ function Nr(e, t, n, r) {
1917
1934
  }
1918
1935
  return o;
1919
1936
  }
1920
- function Rr(e, t, n, r) {
1937
+ function xr(e, t, n, r) {
1921
1938
  let o = {};
1922
1939
  if (!Xn(t)) return o;
1923
1940
  if (Fn(o, t), er(n) && !lr(n)) {
@@ -1933,15 +1950,15 @@ function Rr(e, t, n, r) {
1933
1950
  }
1934
1951
  return o;
1935
1952
  }
1936
- function xr(e, t, n = !1) {
1953
+ function $r(e, t, n = !1) {
1937
1954
  if ("undefined" != typeof window && window.localStorage) try {
1938
1955
  let r = window.localStorage.getItem(e);
1939
- return null === r ? (n && $r(e, t), t) : JSON.parse(r);
1956
+ return null === r ? (n && Dr(e, t), t) : JSON.parse(r);
1940
1957
  } catch (n) {
1941
1958
  return window.console.warn(`Error reading localStorage key "${e}":`, n), t;
1942
1959
  }
1943
1960
  }
1944
- function $r(e, t) {
1961
+ function Dr(e, t) {
1945
1962
  if ("undefined" == typeof window || !window.localStorage) return 0;
1946
1963
  if (!e || void 0 === t) return mn(`kw_set_local_storage_value(): invalid key or value: key=${e}`), -1;
1947
1964
  try {
@@ -1950,7 +1967,7 @@ function $r(e, t) {
1950
1967
  return mn(`kw_set_local_storage_value(): cannot save "${e}" (storage full or blocked?): ${t && t.message ? t.message : t}`), -1;
1951
1968
  }
1952
1969
  }
1953
- function Dr(e) {
1970
+ function kr(e) {
1954
1971
  if ("undefined" != typeof window && window.localStorage) if (e) try {
1955
1972
  window.localStorage.removeItem(e);
1956
1973
  } catch (t) {
@@ -1958,7 +1975,7 @@ function Dr(e) {
1958
1975
  }
1959
1976
  else window.console.warn(`Invalid key for localStorage removal: ${e}`);
1960
1977
  }
1961
- function kr(e, t) {
1978
+ function Ar(e, t) {
1962
1979
  if (rr(e) || rr(t)) return !0;
1963
1980
  if (Zn(e)) {
1964
1981
  if (0 === e.length) return !0;
@@ -1969,34 +1986,34 @@ function kr(e, t) {
1969
1986
  } else if (er(e) && e === t) return !0;
1970
1987
  return !1;
1971
1988
  }
1972
- function Ar(e, t, n, r, o) {
1989
+ function Ir(e, t, n, r, o) {
1973
1990
  if (e && !sr(e) && mn("GObj bad instanceof"), !t) return null;
1974
- o || (o = wr);
1991
+ o || (o = Nr);
1975
1992
  let s = [];
1976
1993
  if (Zn(t)) for (let l = 0; l < t.length; l++) {
1977
1994
  let i, _ = t[l];
1978
- if (Xn(_)) i = yr(e, _, "id", "", 0);
1995
+ if (Xn(_)) i = Er(e, _, "id", "", 0);
1979
1996
  else {
1980
1997
  if (!er(_)) continue;
1981
1998
  i = _;
1982
1999
  }
1983
- kr(n, i) && o(_, r) && s.push(_);
2000
+ Ar(n, i) && o(_, r) && s.push(_);
1984
2001
  }
1985
2002
  else {
1986
2003
  if (!Xn(t)) return mn("kw_collect() BAD kw parameter"), null;
1987
2004
  for (let e of Object.keys(t)) {
1988
2005
  let l = t[e];
1989
- kr(n, e) && o(l, r) && s.push(l);
2006
+ Ar(n, e) && o(l, r) && s.push(l);
1990
2007
  }
1991
2008
  }
1992
2009
  return s;
1993
2010
  }
1994
- function Ir(e, t) {
2011
+ function Cr(e, t) {
1995
2012
  if (!e) return -1;
1996
2013
  for (let n = 0; n < e.length; n++) if (e[n] && e[n].id === t) return n;
1997
2014
  return -1;
1998
2015
  }
1999
- function Cr(e, t, n) {
2016
+ function Lr(e, t, n) {
2000
2017
  if (!e || !t) return mn("ERROR: str_in_list() list or str empty"), !1;
2001
2018
  let r = e.length;
2002
2019
  if (n) {
@@ -2008,7 +2025,7 @@ function Cr(e, t, n) {
2008
2025
  } else for (let n = 0; n < r; n++) if (e[n] === t) return !0;
2009
2026
  return !1;
2010
2027
  }
2011
- function Lr(e, t) {
2028
+ function Pr(e, t) {
2012
2029
  try {
2013
2030
  let n = e.__md_iev__;
2014
2031
  if (n) return n[t];
@@ -2016,34 +2033,34 @@ function Lr(e, t) {
2016
2033
  return;
2017
2034
  }
2018
2035
  }
2019
- function Pr(e, t, n) {
2036
+ function Ur(e, t, n) {
2020
2037
  let r = e.__md_iev__;
2021
2038
  r || (r = {}, e.__md_iev__ = r), r[t] = n;
2022
2039
  }
2023
- function Ur(e, t, n, r) {
2040
+ function Fr(e, t, n, r) {
2024
2041
  if (!sr(e)) return mn("gobj is not a GObj"), null;
2025
2042
  if (!t) return;
2026
- let o = Lr(t, n);
2027
- o || (o = [], Pr(t, n, o));
2043
+ let o = Pr(t, n);
2044
+ o || (o = [], Ur(t, n, o));
2028
2045
  try {
2029
2046
  Zn(o) && o.unshift(r);
2030
2047
  } catch (e) {
2031
2048
  mn(e);
2032
2049
  }
2033
2050
  }
2034
- function Fr(e, t, n, r) {
2051
+ function Vr(e, t, n, r) {
2035
2052
  if (!sr(e)) return mn("gobj is not a GObj"), null;
2036
2053
  if (!Xn(t)) return mn("kw is not a dict"), null;
2037
- let o = Lr(t, n);
2054
+ let o = Pr(t, n);
2038
2055
  return o ? 0 === o.length ? (r && mn(`stack empty: ${n}`), null) : o[0] : (r && mn(`stack NOT FOUND: ${n}`), null);
2039
2056
  }
2040
- function Vr(e, t, n) {
2041
- return lr(n) ? br(e, t, "__md_iev__`__msg_type__") : Or(e, t, "__md_iev__", "__msg_type__", n), 0;
2057
+ function Gr(e, t, n) {
2058
+ return lr(n) ? mr(e, t, "__md_iev__`__msg_type__") : Sr(e, t, "__md_iev__", "__msg_type__", n), 0;
2042
2059
  }
2043
- function Gr(e, t) {
2044
- return yr(e, t, "__md_iev__`__msg_type__", "", 0);
2060
+ function Mr(e, t) {
2061
+ return Er(e, t, "__md_iev__`__msg_type__", "", 0);
2045
2062
  }
2046
- function Mr(e, t, n) {
2063
+ function Wr(e, t, n) {
2047
2064
  void 0 !== n && er(n) || (n = "");
2048
2065
  for (let r of Object.keys(e)) {
2049
2066
  if (!Object.prototype.hasOwnProperty.call(e, r)) continue;
@@ -2053,10 +2070,10 @@ function Mr(e, t, n) {
2053
2070
  r,
2054
2071
  e[r],
2055
2072
  n
2056
- ]), Xn(e[r]) && Mr(e[r], t, n), n = n.slice(0, -o.length);
2073
+ ]), Xn(e[r]) && Wr(e[r], t, n), n = n.slice(0, -o.length);
2057
2074
  }
2058
2075
  }
2059
- function Wr(e, t, n, r) {
2076
+ function Kr(e, t, n, r) {
2060
2077
  if (!e) return null;
2061
2078
  let o, s = e.length;
2062
2079
  for (o = 0; o < s; o++) {
@@ -2065,14 +2082,14 @@ function Wr(e, t, n, r) {
2065
2082
  let e = s.id;
2066
2083
  if (e && e === n) return s;
2067
2084
  if (r && fr(s, t)) {
2068
- let e = Wr(s[t], t, n, r);
2085
+ let e = Kr(s[t], t, n, r);
2069
2086
  if (e) return e;
2070
2087
  }
2071
2088
  }
2072
2089
  }
2073
2090
  return null;
2074
2091
  }
2075
- function Kr(e) {
2092
+ function Yr(e) {
2076
2093
  function t(e) {
2077
2094
  let t = e.replace(/-/g, "+").replace(/_/g, "/");
2078
2095
  switch (t.length % 4) {
@@ -2103,36 +2120,52 @@ function Kr(e) {
2103
2120
  signature: t(n[2])
2104
2121
  };
2105
2122
  }
2106
- function Yr(e) {
2123
+ function Br(e) {
2107
2124
  return null == e ? "" : String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
2108
2125
  }
2109
- function Br(e) {
2126
+ var Jr = class {
2127
+ constructor(e) {
2128
+ this.html = e, Object.freeze(this);
2129
+ }
2130
+ toString() {
2131
+ return this.html;
2132
+ }
2133
+ };
2134
+ function qr(e) {
2135
+ return e instanceof Jr;
2136
+ }
2137
+ function Hr(e) {
2138
+ const t = document.createElement("template");
2139
+ return t.innerHTML = e.html.trim(), t.content;
2140
+ }
2141
+ var zr = !1, Qr = /* @__PURE__ */ new Set();
2142
+ function Xr(e) {
2110
2143
  const t = document.createElement("template");
2111
2144
  return t.innerHTML = e.trim(), t.content.firstChild;
2112
2145
  }
2113
- function Jr(e) {
2146
+ function Zr(e) {
2114
2147
  const t = (e, t) => String(e).padStart(t, "0"), n = `${(e = e || /* @__PURE__ */ new Date()).getFullYear()}-${t(e.getMonth() + 1, 2)}-${t(e.getDate(), 2)}T${t(e.getHours(), 2)}:${t(e.getMinutes(), 2)}:${t(e.getSeconds(), 2)}`, r = t(e.getMilliseconds(), 3), o = e.getTimezoneOffset();
2115
2148
  return `${n}.${r}${o > 0 ? "-" : "+"}${t(Math.floor(Math.abs(o) / 60), 2)}${t(Math.abs(o) % 60, 2)}`;
2116
2149
  }
2117
- function qr(e, t) {
2150
+ function eo(e, t) {
2118
2151
  if (!e) throw "ERROR: index_in_list() list empty";
2119
2152
  for (let n = 0; n < e.length; n++) if (t === e[n]) return n;
2120
2153
  return -1;
2121
2154
  }
2122
- function Hr() {
2155
+ function to() {
2123
2156
  let e = "";
2124
2157
  return "undefined" != typeof window && window.localStorage ? (e = window.localStorage.getItem("host_uuid"), !e && window.crypto?.randomUUID && (e = window.crypto.randomUUID(), window.localStorage.setItem("host_uuid", e))) : e = "undefined" != typeof globalThis && globalThis.crypto?.randomUUID ? globalThis.crypto.randomUUID() : "00000000-0000-0000-0000-000000000000", e;
2125
2158
  }
2126
- function zr(e) {
2159
+ function no(e) {
2127
2160
  let t = null;
2128
2161
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
2129
2162
  }
2130
- var Qr = 256, Xr = 1e5;
2131
- function Zr(e) {
2163
+ var ro = 256, oo = 1e5;
2164
+ function so(e) {
2132
2165
  const t = String(e).replace(/`/g, "``");
2133
2166
  return "[" === t[0] ? "[" + t : t;
2134
2167
  }
2135
- function eo(e) {
2168
+ function lo(e) {
2136
2169
  if ("string" != typeof e) return null;
2137
2170
  let t = [], n = "";
2138
2171
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -2153,13 +2186,13 @@ function eo(e) {
2153
2186
  return null !== t ? t : "[" === e[0] && "[" === e[1] ? e.slice(1) : e;
2154
2187
  });
2155
2188
  }
2156
- function to(e, t) {
2189
+ function io(e, t) {
2157
2190
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
2158
2191
  }
2159
- function no(e) {
2192
+ function _o(e) {
2160
2193
  return "persistent-attrs-" + Ze(e);
2161
2194
  }
2162
- function ro(e, t) {
2195
+ function ao(e, t) {
2163
2196
  if (er(t)) {
2164
2197
  if (-1 === t.indexOf("^")) {
2165
2198
  let n, r, o = e.fkey;
@@ -2189,7 +2222,7 @@ function ro(e, t) {
2189
2222
  hook_name: t.hook_name
2190
2223
  } : (mn("bad fkey 3"), mn(e), mn(t), null);
2191
2224
  }
2192
- var oo = [
2225
+ var uo = [
2193
2226
  "string",
2194
2227
  "integer",
2195
2228
  "object",
@@ -2199,7 +2232,7 @@ var oo = [
2199
2232
  "real",
2200
2233
  "boolean",
2201
2234
  "blob"
2202
- ], so = [
2235
+ ], co = [
2203
2236
  "persistent",
2204
2237
  "required",
2205
2238
  "notnull",
@@ -2211,7 +2244,7 @@ var oo = [
2211
2244
  "stats",
2212
2245
  "rstats",
2213
2246
  "pstats"
2214
- ], lo = [
2247
+ ], fo = [
2215
2248
  "hook",
2216
2249
  "fkey",
2217
2250
  "enum",
@@ -2240,7 +2273,7 @@ var oo = [
2240
2273
  "coordinates",
2241
2274
  "gbuffer"
2242
2275
  ];
2243
- function io(e) {
2276
+ function go(e) {
2244
2277
  let t = {
2245
2278
  name: e.id,
2246
2279
  header: e.header,
@@ -2259,7 +2292,7 @@ function io(e) {
2259
2292
  if (!e.flag) return t;
2260
2293
  for (let n = 0; n < e.flag.length; n++) {
2261
2294
  let r = e.flag[n];
2262
- if (Cr(lo, r)) {
2295
+ if (Lr(fo, r)) {
2263
2296
  switch (r) {
2264
2297
  case "enum":
2265
2298
  t.enum_list = e.enum;
@@ -2273,7 +2306,7 @@ function io(e) {
2273
2306
  case "file": t.is_file = !0;
2274
2307
  }
2275
2308
  t.type = r;
2276
- } else if (Cr(so, r)) switch (r) {
2309
+ } else if (Lr(co, r)) switch (r) {
2277
2310
  case "writable":
2278
2311
  t.is_writable = !0;
2279
2312
  break;
@@ -2286,23 +2319,23 @@ function io(e) {
2286
2319
  }
2287
2320
  return t.is_file && (t.type = "file"), t;
2288
2321
  }
2289
- var _o = [
2322
+ var po = [
2290
2323
  v(h.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
2291
2324
  v(h.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
2292
2325
  v(h.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
2293
2326
  T()
2294
- ], ao = {
2327
+ ], bo = {
2295
2328
  periodic: !1,
2296
2329
  msec: 0,
2297
2330
  timer_id: -1
2298
- }, uo = null;
2299
- function co(e, t, n, r) {
2331
+ }, mo = null;
2332
+ function ho(e, t, n, r) {
2300
2333
  let o = e.priv, s = o.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
2301
2334
  return o.periodic && o.msec > 0 ? o.timer_id = setTimeout(function() {
2302
2335
  Ut(e, "EV_TIMEOUT", {}, e);
2303
2336
  }, o.msec) : o.timer_id = -1, rt(e) ? Ut(tt(e), s, {}, e) : Qt(e, s, {}), o.periodic || -1 !== o.timer_id || We(e) && Ue(e), 0;
2304
2337
  }
2305
- var fo = {
2338
+ var yo = {
2306
2339
  mt_create: function(e) {
2307
2340
  let t = e.priv;
2308
2341
  const n = jt(e, "subscriber");
@@ -2327,16 +2360,16 @@ var fo = {
2327
2360
  },
2328
2361
  mt_destroy: function(e) {}
2329
2362
  };
2330
- function go(e, t) {
2363
+ function Eo(e, t) {
2331
2364
  return e instanceof O ? "C_TIMER" !== Xe(e) ? (mn("not C_TIMER GObj"), -1) : (wt(e, "periodic", !1), void Nt(e, "msec", t)) : (mn("not GObj TYPE"), -1);
2332
2365
  }
2333
- function po(e, t) {
2366
+ function To(e, t) {
2334
2367
  return e instanceof O ? "C_TIMER" !== Xe(e) ? (mn("not C_TIMER GObj"), -1) : (wt(e, "periodic", !0), void Nt(e, "msec", t)) : (mn("not GObj TYPE"), -1);
2335
2368
  }
2336
- function bo(e) {
2369
+ function vo(e) {
2337
2370
  return e instanceof O ? "C_TIMER" !== Xe(e) ? (mn("not C_TIMER GObj"), -1) : void Nt(e, "msec", -1) : (mn("not GObj TYPE"), -1);
2338
2371
  }
2339
- var mo = [
2372
+ var jo = [
2340
2373
  v(h.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
2341
2374
  v(h.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
2342
2375
  v(h.DTP_STRING, "__username__", 0, "", "Username"),
@@ -2356,26 +2389,26 @@ var mo = [
2356
2389
  v(h.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
2357
2390
  v(h.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
2358
2391
  T()
2359
- ], ho = { gobj_timer: null }, yo = null;
2360
- function Eo(e, t, n, r) {
2392
+ ], Oo = { gobj_timer: null }, So = null;
2393
+ function wo(e, t, n, r) {
2361
2394
  let o = ht(e, t);
2362
2395
  return Xn(o) || (o = {}), o[n] = r, Ot(e, t, o), xe(e, t);
2363
2396
  }
2364
- function To(e) {
2397
+ function No(e) {
2365
2398
  if (!0 === e || !1 === e) return e;
2366
2399
  let t = String(null == e ? "" : e).toLowerCase();
2367
2400
  return "true" === t || "set" === t || "false" !== t && "reset" !== t && ("" === t || isNaN(Number(t)) ? null : !!Number(t));
2368
2401
  }
2369
- function vo() {
2402
+ function Ro() {
2370
2403
  return `${He()}^${qe()}`;
2371
2404
  }
2372
- function jo(e, t, n, r) {
2405
+ function xo(e, t, n, r) {
2373
2406
  return Qt(e, t, n), 0;
2374
2407
  }
2375
- var Oo = {
2408
+ var $o = {
2376
2409
  mt_create: function(e) {
2377
2410
  let t = e.priv;
2378
- Rt(e, "start_date", Jr()), Rt(e, "node_uuid", Hr()), e.priv.gobj_timer = Ae(Qe(e), "C_TIMER", {}, e), t.periodic_timeout = ht(e, "periodic_timeout"), function(e) {
2411
+ Rt(e, "start_date", Zr()), Rt(e, "node_uuid", to()), e.priv.gobj_timer = Ae(Qe(e), "C_TIMER", {}, e), t.periodic_timeout = ht(e, "periodic_timeout"), function(e) {
2379
2412
  let t = ht(e, "trace_levels");
2380
2413
  if (!Xn(t)) return 0;
2381
2414
  let n = t.__global_trace__;
@@ -2409,10 +2442,10 @@ var Oo = {
2409
2442
  },
2410
2443
  mt_writing: function(e, t) {},
2411
2444
  mt_start: function(e) {
2412
- return po(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
2445
+ return To(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
2413
2446
  },
2414
2447
  mt_stop: function(e) {
2415
- return bo(e.priv.gobj_timer), Ve(e), 0;
2448
+ return vo(e.priv.gobj_timer), Ve(e), 0;
2416
2449
  },
2417
2450
  mt_destroy: function(e) {},
2418
2451
  mt_play: function(e) {
@@ -2429,24 +2462,24 @@ var Oo = {
2429
2462
  case "get-global-no-trace": return r(0, 0, null, null, te());
2430
2463
  case "set-global-trace":
2431
2464
  case "set-global-no-trace": {
2432
- let o = "set-global-no-trace" === t, s = n.level, l = To(n.set);
2433
- return s ? null === l ? r(0, -1, `${vo()}: bitmask set or re-set?`, null, null) : (o ? Q(s, l) : z(s, l)) < 0 ? r(0, -1, `${vo()}: global trace level not found: ${s}`, null, null) : o ? (Eo(e, "no_trace_levels", "__global_no_trace__", te()), r(0, 0, null, null, te())) : (Eo(e, "trace_levels", "__global_trace__", ee()), r(0, 0, null, null, ee())) : r(0, -1, `${vo()}: what level?`, null, null);
2465
+ let o = "set-global-no-trace" === t, s = n.level, l = No(n.set);
2466
+ return s ? null === l ? r(0, -1, `${Ro()}: bitmask set or re-set?`, null, null) : (o ? Q(s, l) : z(s, l)) < 0 ? r(0, -1, `${Ro()}: global trace level not found: ${s}`, null, null) : o ? (wo(e, "no_trace_levels", "__global_no_trace__", te()), r(0, 0, null, null, te())) : (wo(e, "trace_levels", "__global_trace__", ee()), r(0, 0, null, null, ee())) : r(0, -1, `${Ro()}: what level?`, null, null);
2434
2467
  }
2435
2468
  case "get-gclass-trace":
2436
2469
  case "get-gclass-no-trace":
2437
2470
  case "set-gclass-trace":
2438
2471
  case "set-gclass-no-trace": {
2439
2472
  let o = t.indexOf("no-trace") >= 0, s = n.gclass_name || n.gclass || "", l = je(s);
2440
- if (!l) return r(0, -1, `${vo()}: what gclass is '${s}'?`, null, null);
2473
+ if (!l) return r(0, -1, `${Ro()}: what gclass is '${s}'?`, null, null);
2441
2474
  if (0 === t.indexOf("get-")) return r(0, 0, null, null, o ? oe(l) : ne(l));
2442
- let i = n.level, _ = To(n.set);
2443
- return i ? null === _ ? r(0, -1, `${vo()}: bitmask set or re-set?`, null, null) : (o ? le(l, i, _) : se(l, i, _)) < 0 ? r(0, -1, `${vo()}: trace level of ${s} not found: ${i}`, null, null) : o ? (Eo(e, "no_trace_levels", s, oe(l)), r(0, 0, null, null, oe(l))) : (Eo(e, "trace_levels", s, re(l)), r(0, 0, null, null, ne(l))) : r(0, -1, `${vo()}: what level?`, null, null);
2475
+ let i = n.level, _ = No(n.set);
2476
+ return i ? null === _ ? r(0, -1, `${Ro()}: bitmask set or re-set?`, null, null) : (o ? le(l, i, _) : se(l, i, _)) < 0 ? r(0, -1, `${Ro()}: trace level of ${s} not found: ${i}`, null, null) : o ? (wo(e, "no_trace_levels", s, oe(l)), r(0, 0, null, null, oe(l))) : (wo(e, "trace_levels", s, re(l)), r(0, 0, null, null, ne(l))) : r(0, -1, `${Ro()}: what level?`, null, null);
2444
2477
  }
2445
- default: return r(0, -1, `${vo()}: command not available: ${t}`, null, null);
2478
+ default: return r(0, -1, `${Ro()}: command not available: ${t}`, null, null);
2446
2479
  }
2447
2480
  }
2448
2481
  };
2449
- var So = "ievent_gate_stack", wo = [
2482
+ var Do = "ievent_gate_stack", ko = [
2450
2483
  v(h.DTP_STRING, "wanted_yuno_role", y.SDF_RD, "", "wanted yuno role"),
2451
2484
  v(h.DTP_STRING, "wanted_yuno_name", y.SDF_RD, "", "wanted yuno name"),
2452
2485
  v(h.DTP_STRING, "wanted_yuno_service", y.SDF_RD, "", "wanted yuno service"),
@@ -2463,15 +2496,15 @@ var So = "ievent_gate_stack", wo = [
2463
2496
  v(h.DTP_INTEGER, "timeout_idack", y.SDF_RD, "5000", "timeout waiting idAck"),
2464
2497
  v(h.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
2465
2498
  T()
2466
- ], No = [
2499
+ ], Ao = [
2467
2500
  ["ievents", "Trace inter-events with metadata of kw"],
2468
2501
  ["ievents2", "Trace inter-events with full kw"],
2469
2502
  ["identity-card", "Trace identity_card messages"]
2470
2503
  ];
2471
- function Ro(e) {
2504
+ function Io(e) {
2472
2505
  return !!(3 & M(e));
2473
2506
  }
2474
- var xo = {
2507
+ var Co = {
2475
2508
  url: null,
2476
2509
  remote_yuno_name: null,
2477
2510
  remote_yuno_role: null,
@@ -2481,8 +2514,8 @@ var xo = {
2481
2514
  websocket: null,
2482
2515
  inside_on_open: !1,
2483
2516
  retry_ms: 0
2484
- }, $o = null;
2485
- function Do(e) {
2517
+ }, Lo = null;
2518
+ function Po(e) {
2486
2519
  e.priv.websocket && mn("Websocket ALREADY setup");
2487
2520
  const t = vt(e, "url");
2488
2521
  yn(`====> Starting WebSocket to '${t}' (${Ze(e)})`);
@@ -2497,7 +2530,7 @@ function Do(e) {
2497
2530
  code: 1006,
2498
2531
  reason: r.message,
2499
2532
  was_clean: !1
2500
- }, e), null;
2533
+ }, e) < 0 && Eo(e.priv.gobj_timer, qo(e)), null;
2501
2534
  }
2502
2535
  return r ? (r.onopen = () => {
2503
2536
  n !== e.priv.ws_seq || ot(e) || Ut(e, "EV_ON_OPEN", {
@@ -2519,7 +2552,7 @@ function Do(e) {
2519
2552
  }, e));
2520
2553
  }, r) : (mn(`${Ze(e)}: Failed to initialize WebSocket.`), null);
2521
2554
  }
2522
- function ko(e, t = 1e3, n = "") {
2555
+ function Uo(e, t = 1e3, n = "") {
2523
2556
  let r = e.priv, o = r.websocket;
2524
2557
  if (r.websocket = null, o && o.readyState !== WebSocket.CLOSED && o.readyState !== WebSocket.CLOSING) {
2525
2558
  yn(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
@@ -2530,25 +2563,25 @@ function ko(e, t = 1e3, n = "") {
2530
2563
  }
2531
2564
  } else hn("WebSocket is already closed or in the process of closing.");
2532
2565
  }
2533
- function Ao(e, t, n) {
2534
- let r = Jr();
2566
+ function Fo(e, t, n) {
2567
+ let r = Zr();
2535
2568
  try {
2536
2569
  yn("\n" + r + " " + t + "\n"), Ln(n);
2537
2570
  } catch (e) {
2538
2571
  yn("ERROR in trace_inter_event: " + e);
2539
2572
  }
2540
2573
  }
2541
- var Io = class {
2574
+ var Vo = class {
2542
2575
  constructor(e, t) {
2543
2576
  this.event = e, this.kw = t || {};
2544
2577
  }
2545
2578
  };
2546
- function Co(e, t, n, r) {
2579
+ function Go(e, t, n, r) {
2547
2580
  return function(e, t) {
2548
2581
  let n = e.priv, r = JSON.stringify(t);
2549
- if (Ro(e)) {
2582
+ if (Io(e)) {
2550
2583
  let n = vt(e, "url"), o = Qe(Je()) + " ==> " + n, s = ht(Je(), "trace_ievent_callback");
2551
- s ? s(o, t, 1, r.length) : Ao(0, o, t);
2584
+ s ? s(o, t, 1, r.length) : Fo(0, o, t);
2552
2585
  }
2553
2586
  if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return hn(`${Ze(e)}: send_iev(): websocket not open, message lost`), -1;
2554
2587
  try {
@@ -2558,10 +2591,10 @@ function Co(e, t, n, r) {
2558
2591
  }
2559
2592
  return 0;
2560
2593
  }(e, function(e, t) {
2561
- return lr(e) ? (mn("iev_create() event NULL"), null) : new Io(e, t);
2594
+ return lr(e) ? (mn("iev_create() event NULL"), null) : new Vo(e, t);
2562
2595
  }(t, n));
2563
2596
  }
2564
- function Lo(e, t, n) {
2597
+ function Mo(e, t, n) {
2565
2598
  return lr(n) && (n = vt(e, "wanted_yuno_service")), {
2566
2599
  dst_yuno: vt(e, "wanted_yuno_name"),
2567
2600
  dst_role: vt(e, "wanted_yuno_role"),
@@ -2569,10 +2602,10 @@ function Lo(e, t, n) {
2569
2602
  src_yuno: qe(),
2570
2603
  src_role: He(),
2571
2604
  src_service: t,
2572
- host: Hr()
2605
+ host: to()
2573
2606
  };
2574
2607
  }
2575
- function Po(e) {
2608
+ function Wo(e) {
2576
2609
  let t = e.priv, n = Be(Je()), r = vt(Je(), "yuno_version"), o = vt(Je(), "yuno_release"), l = vt(Je(), "yuno_tag"), i = ht(e, "required_services");
2577
2610
  i && i.length || (i = ht(Je(), "required_services"));
2578
2611
  let _ = {
@@ -2590,27 +2623,27 @@ function Po(e) {
2590
2623
  username: vt(Je(), "__username__"),
2591
2624
  launch_id: 0,
2592
2625
  yuno_startdate: vt(Je(), "start_date"),
2593
- id: Hr(),
2626
+ id: to(),
2594
2627
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
2595
2628
  language: "undefined" != typeof window ? window.navigator.language : "",
2596
2629
  required_services: i
2597
2630
  };
2598
- return Ur(e, _, So, Lo(e, Qe(tt(e)), null)), Vr(e, _, "__identity__"), go(t.gobj_timer, Tt(e, "timeout_idack")), Co(e, "EV_IDENTITY_CARD", _);
2631
+ return Fr(e, _, Do, Mo(e, Qe(tt(e)), null)), Gr(e, _, "__identity__"), Eo(t.gobj_timer, Tt(e, "timeout_idack")), Go(e, "EV_IDENTITY_CARD", _);
2599
2632
  }
2600
- function Uo(e, t) {
2633
+ function Ko(e, t) {
2601
2634
  if (lr(t.event)) return -1;
2602
2635
  let n = {}, r = t.__global__, o = t.__config__, s = t.__filter__, l = t.__service__, i = t.subscriber;
2603
2636
  o && (n.__config__ = o), r && (n.__global__ = r), s && (n.__filter__ = s);
2604
- return Ur(e, n, So, Lo(e, Qe(i), l)), Vr(e, n, "__subscribing__"), Co(e, t.event, n);
2637
+ return Fr(e, n, Do, Mo(e, Qe(i), l)), Gr(e, n, "__subscribing__"), Go(e, t.event, n);
2605
2638
  }
2606
- function Fo(e, t, n, r) {
2639
+ function Yo(e, t, n, r) {
2607
2640
  let o = e.priv;
2608
- return We(e) && (o.websocket = Do(e)), 0;
2641
+ return We(e) && (o.websocket = Po(e)), 0;
2609
2642
  }
2610
- function Vo(e, t, n, r) {
2611
- return yn("Websocket opened: " + e.priv.url), Po(e), 0;
2643
+ function Bo(e, t, n, r) {
2644
+ return yn("Websocket opened: " + e.priv.url), Wo(e), 0;
2612
2645
  }
2613
- function Go(e, t, n, r) {
2646
+ function Jo(e, t, n, r) {
2614
2647
  let o = e.priv, s = n.url;
2615
2648
  return void 0 !== n.ws_seq && n.ws_seq !== o.ws_seq || (pn(), hn(`${Ze(e)}: WebSocket closed ${s} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), o.websocket && (o.websocket.onopen = null, o.websocket.onmessage = null, o.websocket.onerror = null, o.websocket.onclose = null, o.websocket = null), o.inform_on_close ? (o.inform_on_close = !1, Qt(e, "EV_ON_CLOSE", {
2616
2649
  url: s,
@@ -2625,25 +2658,25 @@ function Go(e, t, n, r) {
2625
2658
  code: n.code,
2626
2659
  reason: n.reason,
2627
2660
  was_clean: n.was_clean
2628
- })), We(e) && go(o.gobj_timer, function(e) {
2629
- let t = e.priv, n = Tt(e, "timeout_retry"), r = Tt(e, "timeout_retry_max");
2630
- r < n && (r = n);
2631
- t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
2632
- let o = .2 * t.retry_ms, s = t.retry_ms - o + 2 * Math.random() * o;
2633
- return Math.max(1, Math.round(s));
2634
- }(e))), 0;
2635
- }
2636
- function Mo(e, t, n, r) {
2637
- return Po(e), 0;
2638
- }
2639
- function Wo(e, t, n, r) {
2661
+ })), We(e) && Eo(o.gobj_timer, qo(e))), 0;
2662
+ }
2663
+ function qo(e) {
2664
+ let t = e.priv, n = Tt(e, "timeout_retry"), r = Tt(e, "timeout_retry_max");
2665
+ r < n && (r = n), t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
2666
+ let o = .2 * t.retry_ms, s = t.retry_ms - o + 2 * Math.random() * o;
2667
+ return Math.max(1, Math.round(s));
2668
+ }
2669
+ function Ho(e, t, n, r) {
2670
+ return Wo(e), 0;
2671
+ }
2672
+ function zo(e, t, n, r) {
2640
2673
  let o = e.priv;
2641
- bo(o.gobj_timer);
2642
- let s = Fr(e, n, So, !0), l = yr(e, s, "src_yuno", ""), i = yr(e, s, "src_role", ""), _ = yr(e, s, "src_service", "");
2674
+ vo(o.gobj_timer);
2675
+ let s = Vr(e, n, Do, !0), l = Er(e, s, "src_yuno", ""), i = Er(e, s, "src_role", ""), _ = Er(e, s, "src_service", "");
2643
2676
  Rt(e, "remote_yuno_name", l), Rt(e, "remote_yuno_role", i), Rt(e, "remote_yuno_service", _);
2644
- let a = hr(e, n, "result", -1, 0), u = yr(e, n, "comment", "", 0), c = yr(e, n, "username", "", 0), f = vr(e, n, "services_roles", {});
2677
+ let a = yr(e, n, "result", -1, 0), u = Er(e, n, "comment", "", 0), c = Er(e, n, "username", "", 0), f = jr(e, n, "services_roles", {});
2645
2678
  if (a < 0) {
2646
- ko(e);
2679
+ Uo(e);
2647
2680
  let t = {
2648
2681
  url: vt(e, "url"),
2649
2682
  result: a,
@@ -2668,12 +2701,12 @@ function Wo(e, t, n, r) {
2668
2701
  }
2669
2702
  o.inside_on_open = !1, function(e) {
2670
2703
  let t = Ht(e, null, null, null);
2671
- for (let n = 0; n < t.length; n++) Uo(e, t[n]);
2704
+ for (let n = 0; n < t.length; n++) Ko(e, t[n]);
2672
2705
  }(e);
2673
2706
  }
2674
2707
  return 0;
2675
2708
  }
2676
- function Ko(e, t, n, r) {
2709
+ function Qo(e, t, n, r) {
2677
2710
  let o = e.priv.url, s = function(e, t) {
2678
2711
  let n;
2679
2712
  try {
@@ -2692,21 +2725,21 @@ function Ko(e, t, n, r) {
2692
2725
  } : (hn(`${Ze(e)}: parsing inter_event: kw not a json object`), null) : (hn(`${Ze(e)}: parsing inter_kw: no kw`), null);
2693
2726
  }(e, n.data);
2694
2727
  if (!s) return hn(`${Ze(e)}: frame dropped from ${o}: ${String(n.data).substring(0, 256)}`), -1;
2695
- if (Ro(e)) {
2728
+ if (Io(e)) {
2696
2729
  let e = Qe(Je()) + " <== " + o, t = n.data.length, r = ht(Je(), "trace_ievent_callback");
2697
- r ? r(e, s, 2, t) : Ao(0, e, s);
2730
+ r ? r(e, s, 2, t) : Fo(0, e, s);
2698
2731
  }
2699
2732
  let l = s.event, i = s.kw;
2700
2733
  if ("ST_SESSION" !== $t(e)) {
2701
2734
  if (kt(e, l, R.EVF_PUBLIC_EVENT)) {
2702
2735
  if (!(Ut(e, l, i, e) < 0)) return 0;
2703
2736
  } else mn(`${Ze(e)}: event UNKNOWN in not-session state ${l}`);
2704
- return ko(e), -1;
2737
+ return Uo(e), -1;
2705
2738
  }
2706
2739
  s = null;
2707
- let _ = Gr(e, i), a = Fr(e, i, So), u = yr(e, a, "dst_role", "");
2740
+ let _ = Mr(e, i), a = Vr(e, i, Do), u = Er(e, a, "dst_role", "");
2708
2741
  if (u.toLowerCase() !== He().toLowerCase()) return mn(`"It's not my role, dst_role: ${u}, my_role: ${He()}`), 0;
2709
- let c = yr(e, a, "dst_service", "");
2742
+ let c = Er(e, a, "dst_service", "");
2710
2743
  if ("__subscribing__" === _) return hn(`${Ze(e)}: subscription event ignored, I'm client (service: ${c}, event: ${l})`), -1;
2711
2744
  if ("__unsubscribing__" === _) return hn(`${Ze(e)}: unsubscription event ignored, I'm client (service: ${c}, event: ${l})`), -1;
2712
2745
  if (kt(e, l, R.EVF_PUBLIC_EVENT)) return Ut(e, l, i, e), 0;
@@ -2716,13 +2749,13 @@ function Ko(e, t, n, r) {
2716
2749
  }
2717
2750
  return rt(e) ? Ut(tt(e), l, i, e) : Qt(e, l, i), 0;
2718
2751
  }
2719
- function Yo(e, t, n, r) {
2752
+ function Xo(e, t, n, r) {
2720
2753
  return 0;
2721
2754
  }
2722
- function Bo(e, t, n, r) {
2755
+ function Zo(e, t, n, r) {
2723
2756
  return 0;
2724
2757
  }
2725
- var Jo = {
2758
+ var es = {
2726
2759
  mt_create: function(e) {
2727
2760
  let t = e.priv;
2728
2761
  t.gobj_timer = Ae(Qe(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = vt(e, "url"), t.remote_yuno_name = vt(e, "remote_yuno_name"), t.remote_yuno_role = vt(e, "remote_yuno_role"), t.remote_yuno_service = vt(e, "remote_yuno_service"), Rt(e, "wanted_yuno_name", t.remote_yuno_name), Rt(e, "wanted_yuno_role", t.remote_yuno_role), Rt(e, "wanted_yuno_service", t.remote_yuno_service);
@@ -2752,43 +2785,43 @@ var Jo = {
2752
2785
  code: 1e3,
2753
2786
  reason: "restarted",
2754
2787
  was_clean: !0
2755
- }, e), bo(t.gobj_timer)), t.websocket = Do(e), 0;
2788
+ }, e), vo(t.gobj_timer)), t.websocket = Po(e), 0;
2756
2789
  },
2757
2790
  mt_stop: function(e) {
2758
2791
  let t = e.priv;
2759
- return bo(t.gobj_timer), t.websocket && ko(e), 0;
2792
+ return vo(t.gobj_timer), t.websocket && Uo(e), 0;
2760
2793
  },
2761
2794
  mt_destroy: function(e) {},
2762
2795
  mt_stats: function(e, t, n, r) {
2763
2796
  if ("ST_SESSION" !== $t(e)) return mn("Not in session"), null;
2764
2797
  n || (n = {});
2765
- let o = Lo(e, Qe(r), yr(e, n, "service", null, 0)), s = vr(e, n, "__md_stats__", null, Xt.KW_EXTRACT);
2766
- return s || (s = {}), Ur(e, n, "stats_stack", {
2798
+ let o = Mo(e, Qe(r), Er(e, n, "service", null, 0)), s = jr(e, n, "__md_stats__", null, Xt.KW_EXTRACT);
2799
+ return s || (s = {}), Fr(e, n, "stats_stack", {
2767
2800
  stats: t,
2768
2801
  kw: s
2769
- }), Ur(e, n, So, o), n.__stats__ = t, Vr(e, n, "__stats__"), Co(e, "EV_MT_STATS", n, r), null;
2802
+ }), Fr(e, n, Do, o), n.__stats__ = t, Gr(e, n, "__stats__"), Go(e, "EV_MT_STATS", n, r), null;
2770
2803
  },
2771
2804
  mt_command_parser: function(e, t, n, r) {
2772
2805
  if ("ST_SESSION" !== $t(e)) return mn("Not in session"), null;
2773
2806
  n || (n = {});
2774
- let o = Lo(e, Qe(r), yr(e, n, "service", "", 0)), s = vr(e, n, "__md_command__", null, Xt.KW_EXTRACT);
2775
- return s || (s = {}), Ur(e, n, "command_stack", {
2807
+ let o = Mo(e, Qe(r), Er(e, n, "service", "", 0)), s = jr(e, n, "__md_command__", null, Xt.KW_EXTRACT);
2808
+ return s || (s = {}), Fr(e, n, "command_stack", {
2776
2809
  command: t,
2777
2810
  kw: s
2778
- }), Ur(e, n, So, o), n.__command__ = t, Vr(e, n, "__command__"), Co(e, "EV_MT_COMMAND", n, r), null;
2811
+ }), Fr(e, n, Do, o), n.__command__ = t, Gr(e, n, "__command__"), Go(e, "EV_MT_COMMAND", n, r), null;
2779
2812
  },
2780
2813
  mt_inject_event: function(e, t, n, r) {
2781
2814
  if ("ST_SESSION" !== $t(e)) return window.console.error("Not in session"), -1;
2782
- if (n = Fn({}, Xn(n) ? n : {}), Xn(n.__md_iev__) && (n.__md_iev__ = Pn(n.__md_iev__)), Fr(e, n, So));
2815
+ if (n = Fn({}, Xn(n) ? n : {}), Xn(n.__md_iev__) && (n.__md_iev__ = Pn(n.__md_iev__)), Vr(e, n, Do));
2783
2816
  else {
2784
- let o = Lo(e, Qe(r), yr(e, n, "__service__", 0, 0));
2785
- Wn(n, "__service__"), Ur(e, n, "__message__", t), Ur(e, n, So, o);
2817
+ let o = Mo(e, Qe(r), Er(e, n, "__service__", 0, 0));
2818
+ Wn(n, "__service__"), Fr(e, n, "__message__", t), Fr(e, n, Do, o);
2786
2819
  }
2787
- return Vr(e, n, "__message__"), Co(e, t, n, r);
2820
+ return Gr(e, n, "__message__"), Go(e, t, n, r);
2788
2821
  },
2789
2822
  mt_subscription_added: function(e, t) {
2790
2823
  let n = e.priv;
2791
- return "ST_SESSION" === $t(e) && n.websocket ? n.inside_on_open ? 0 : Uo(e, t) : 0;
2824
+ return "ST_SESSION" === $t(e) && n.websocket ? n.inside_on_open ? 0 : Ko(e, t) : 0;
2792
2825
  },
2793
2826
  mt_subscription_deleted: function(e, t) {
2794
2827
  let n = e.priv;
@@ -2797,7 +2830,7 @@ var Jo = {
2797
2830
  if (lr(t.event)) return 0;
2798
2831
  let r = {}, o = t.__global__, s = t.__config__, l = t.__filter__, i = t.__service__, _ = t.subscriber;
2799
2832
  s && (r.__config__ = s), o && (r.__global__ = o), l && (r.__filter__ = l);
2800
- return Ur(e, r, So, Lo(e, Qe(_), i)), Vr(e, r, "__unsubscribing__"), Co(e, t.event, r, e);
2833
+ return Fr(e, r, Do, Mo(e, Qe(_), i)), Gr(e, r, "__unsubscribing__"), Go(e, t.event, r, e);
2801
2834
  }
2802
2835
  };
2803
2836
  exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) => new E(e, t, n, null, s, r, null, 0, null, o, null), exports.SDATACM = (e, t, n, r, o, s) => new E(e, t, 0, null, s, n, null, 0, o, r, null), exports.SDATACM2 = (e, t, n, r, o, s, l) => new E(e, t, n, null, l, r, null, 0, s, o, null), exports.SDATADF = (e, t, n, r, o, s) => new E(e, t, n, null, s, null, r, o), exports.SDATAPM = (e, t, n, r, o) => new E(e, t, n, r, o), exports.SDATAPM0 = (e, t, n, r, o) => new E(e, t, n, null, o, null, null, 0, null, null, r), exports.SDATA_END = T, exports.SDataDesc = E, exports.YUNETA_VERSION = s, Object.defineProperty(exports, "__yuno__", {
@@ -2811,7 +2844,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2811
2844
  return t;
2812
2845
  }, exports.build_stats_response = o, exports.clean_name = function(e) {
2813
2846
  return e.replace(/[?# ^:]/g, "_");
2814
- }, exports.clear_timeout = bo, exports.cmp_two_simple_json = ur, exports.command_parser = function(e, t, n, r) {}, exports.createElement2 = function e(t, n) {
2847
+ }, exports.clear_timeout = vo, exports.cmp_two_simple_json = ur, exports.command_parser = function(e, t, n, r) {}, exports.createElement2 = function e(t, n) {
2815
2848
  let [r, o, s, l] = t;
2816
2849
  if (!r) return void mn("Tag must be a valid HTML element.");
2817
2850
  let i = document.createElement(r), _ = "";
@@ -2820,16 +2853,21 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2820
2853
  for (const n of Object.keys(o[e])) t += `${n}: ${o[e][n]};`;
2821
2854
  i.style.cssText = t;
2822
2855
  } else "style" === e ? i.style.cssText = o[e] : "i18n" === e || "data-i18n" === e || "data_i18next" === e || "data-i18next" === e ? null !== o[e] && void 0 !== o[e] && (_ = o[e], i.setAttribute("data-i18n", _)) : i.setAttribute(e, o[e]);
2823
- if (er(s)) if (s = s.trim(), s.length > 0 && "<" === s[0]) i.appendChild(Br(s));
2824
- else if (n && _) i.textContent = n(_) || s;
2856
+ if (qr(s)) i.appendChild(Hr(s));
2857
+ else if (er(s)) if (s = s.trim(), s.length > 0 && "<" === s[0] && !zr) i.appendChild(Xr(s));
2858
+ else if (s.length > 0 && "<" === s[0] && function(e) {
2859
+ if (Qr.size >= 100) return;
2860
+ const t = e.slice(0, 80);
2861
+ Qr.has(t) || (Qr.add(t), hn(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
2862
+ }(s), n && _) i.textContent = n(_) || s;
2825
2863
  else i.textContent = s;
2826
2864
  else if (Zn(s)) {
2827
2865
  if (s.length > 0) if (er(s[0])) i.appendChild(e(s, n));
2828
- else for (let t of s) Array.isArray(t) ? t.length > 0 && i.appendChild(e(t, n)) : t instanceof Node ? i.appendChild(t) : er(t) ? i.appendChild(document.createTextNode(t)) : null != t && !1 !== t && mn("createElement2: child ignored, type " + typeof t);
2866
+ else for (let t of s) Array.isArray(t) ? t.length > 0 && i.appendChild(e(t, n)) : t instanceof Node ? i.appendChild(t) : qr(t) ? i.appendChild(Hr(t)) : er(t) ? i.appendChild(document.createTextNode(t)) : null != t && !1 !== t && mn("createElement2: child ignored, type " + typeof t);
2829
2867
  } else s instanceof HTMLElement || s instanceof Text || s instanceof SVGElement ? i.appendChild(s) : null != s && (mn("content ignored"), Tn(s));
2830
2868
  if (l && "object" == typeof l) for (const e of Object.keys(l)) i.addEventListener(e, l[e]);
2831
2869
  return i;
2832
- }, exports.createOneHtml = Br, exports.create_json_record = function(e, t) {
2870
+ }, exports.createOneHtml = Xr, exports.create_json_record = function(e, t) {
2833
2871
  let n = Pn(e);
2834
2872
  return Vn(n, t), n;
2835
2873
  }, exports.create_template_record = function(e, t) {
@@ -2837,24 +2875,24 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2837
2875
  return t || (t = {}), Object.entries(e).forEach(([e, r]) => {
2838
2876
  let o;
2839
2877
  Xn(r) && (o = r.default);
2840
- let s = vr(null, t, e, o);
2878
+ let s = jr(null, t, e, o);
2841
2879
  n[e] = s;
2842
2880
  }), n;
2843
- }, exports.current_timestamp = Jr, exports.data_type_t = h, exports.db_list_persistent_attrs = function(e, t) {
2844
- let n = xr(no(e), null, !1), r = {};
2845
- return n && Xn(n) && (r = Nr(e, n, t, !1)), r;
2881
+ }, exports.current_timestamp = Zr, exports.data_type_t = h, exports.db_list_persistent_attrs = function(e, t) {
2882
+ let n = $r(_o(e), null, !1), r = {};
2883
+ return n && Xn(n) && (r = Rr(e, n, t, !1)), r;
2846
2884
  }, exports.db_load_persistent_attrs = function(e, t) {
2847
- let n = yt(e, y.SDF_PERSIST), r = xr(no(e), null, !1);
2885
+ let n = yt(e, y.SDF_PERSIST), r = $r(_o(e), null, !1);
2848
2886
  if (r && Xn(r)) {
2849
- let o = Nr(e, r, t, !1);
2850
- o = Nr(e, o, n, !1), St(e, o, y.SDF_PERSIST);
2887
+ let o = Rr(e, r, t, !1);
2888
+ o = Rr(e, o, n, !1), St(e, o, y.SDF_PERSIST);
2851
2889
  }
2852
2890
  }, exports.db_remove_persistent_attrs = function(e, t) {
2853
- let n = Rr(e, xr(no(e), null, !1), t, !1);
2854
- 0 === Hn(n) ? Dr(no(e)) : $r(no(e), n);
2891
+ let n = xr(e, $r(_o(e), null, !1), t, !1);
2892
+ 0 === Hn(n) ? kr(_o(e)) : Dr(_o(e), n);
2855
2893
  }, exports.db_save_persistent_attrs = function(e, t) {
2856
- let n = Nr(e, yt(e, y.SDF_PERSIST), t, !1), r = xr(no(e), null, !1);
2857
- return r && Xn(r) && Gn(n, r), $r(no(e), n);
2894
+ let n = Rr(e, yt(e, y.SDF_PERSIST), t, !1), r = $r(_o(e), null, !1);
2895
+ return r && Xn(r) && Gn(n, r), Dr(_o(e), n);
2858
2896
  }, exports.debounce = function(e, t = 0, n = !1) {
2859
2897
  let r = null, o = null, s = null;
2860
2898
  const l = (...l) => {
@@ -2878,20 +2916,20 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2878
2916
  return t;
2879
2917
  }, exports.empty_json = function(e) {
2880
2918
  return 0 === Qn(e);
2881
- }, exports.empty_string = lr, exports.escapeHtml = Yr, exports.event_flag_t = R, exports.flat2json = function(e) {
2919
+ }, exports.empty_string = lr, exports.escapeHtml = Br, exports.event_flag_t = R, exports.flat2json = function(e) {
2882
2920
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
2883
2921
  let t = null;
2884
2922
  for (const n of Object.keys(e)) {
2885
- const r = eo(n);
2923
+ const r = lo(n);
2886
2924
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
2887
- if (r.length > Qr) throw new Error(`flat2json: '${n}' deeper than 256`);
2925
+ if (r.length > ro) throw new Error(`flat2json: '${n}' deeper than 256`);
2888
2926
  const o = "number" == typeof r[0];
2889
2927
  if (null === t) t = o ? [] : {};
2890
2928
  else if (o !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
2891
2929
  let s = t;
2892
2930
  for (let t = 0; t < r.length; t++) {
2893
2931
  const o = r[t], l = "number" == typeof o, i = t === r.length - 1, _ = !i && "number" == typeof r[t + 1];
2894
- if (l && o > Xr) throw new Error(`flat2json: array index ${o} over the limit (100000) in '${n}'`);
2932
+ if (l && o > oo) throw new Error(`flat2json: array index ${o} over the limit (100000) in '${n}'`);
2895
2933
  if (l !== Array.isArray(s)) throw new Error(`flat2json: '${n}' uses a ${l ? "array index" : "key"} where the tree already has a ${Array.isArray(s) ? "array" : "object"}`);
2896
2934
  if (i) {
2897
2935
  if (Array.isArray(s)) {
@@ -2931,15 +2969,15 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2931
2969
  removed: {},
2932
2970
  changed: {}
2933
2971
  };
2934
- for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? to(n[e], r[e]) || pr(o.changed, e, {
2972
+ for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? io(n[e], r[e]) || pr(o.changed, e, {
2935
2973
  from: n[e],
2936
2974
  to: r[e]
2937
2975
  }) : pr(o.removed, e, n[e]);
2938
2976
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || pr(o.added, e, r[e]);
2939
2977
  return o;
2940
2978
  }, exports.flat_key_join = function(e) {
2941
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : Zr(e)).join("`") : "";
2942
- }, exports.flat_key_split = eo, exports.gclass_add_ev_action = he, exports.gclass_add_event_type = Ee, exports.gclass_add_state = me, exports.gclass_check_fsm = ve, exports.gclass_create = ge, exports.gclass_event_type = Te, exports.gclass_find_by_name = je, exports.gclass_flag_t = S, exports.gclass_unregister = pe, exports.getPositionRelativeToBody = function(e) {
2979
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : so(e)).join("`") : "";
2980
+ }, exports.flat_key_split = lo, exports.gclass_add_ev_action = he, exports.gclass_add_event_type = Ee, exports.gclass_add_state = me, exports.gclass_check_fsm = ve, exports.gclass_create = ge, exports.gclass_event_type = Te, exports.gclass_find_by_name = je, exports.gclass_flag_t = S, exports.gclass_unregister = pe, exports.getPositionRelativeToBody = function(e) {
2943
2981
  if (!e) return {
2944
2982
  top: 0,
2945
2983
  left: 0,
@@ -2958,7 +2996,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2958
2996
  right: n + i + r,
2959
2997
  bottom: t + l + o
2960
2998
  };
2961
- }, exports.get_function_name = zr, exports.get_now = function() {
2999
+ }, exports.get_function_name = no, exports.get_now = function() {
2962
3000
  return Math.floor(Date.now() / 1e3);
2963
3001
  }, exports.gobj_bottom_gobj = st, exports.gobj_change_parent = function(e, n) {
2964
3002
  return ot(e) ? (mn("gobj NULL or DESTROYED"), null) : n instanceof O ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && (Re(e.parent, e), e.parent = null), Ne(n, e), n.gclass.gmt.mt_child_added && (K(e) && yn(t("👦👦🔵 child_added(%s): %s", et(n), Ze(e))), n.gclass.gmt.mt_child_added(n, e)), 0) : (mn(`${Ze(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
@@ -2994,13 +3032,13 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2994
3032
  }, exports.gobj_list_subscriptions = function(e) {
2995
3033
  let t = Ht(e, null, null, null);
2996
3034
  for (let n = 0; n < t.length; n++) {
2997
- let r = t[n], o = Er(e, r, "publisher", null, Xt.KW_REQUIRED), s = Er(e, r, "subscriber", null, Xt.KW_REQUIRED);
2998
- Yn(r, "s_event", yr(e, r, "event", "", Xt.KW_REQUIRED)), Yn(r, "s_publisher", Ze(o)), Yn(r, "s_subscriber", Ze(s));
3035
+ let r = t[n], o = Tr(e, r, "publisher", null, Xt.KW_REQUIRED), s = Tr(e, r, "subscriber", null, Xt.KW_REQUIRED);
3036
+ Yn(r, "s_event", Er(e, r, "event", "", Xt.KW_REQUIRED)), Yn(r, "s_publisher", Ze(o)), Yn(r, "s_subscriber", Ze(s));
2999
3037
  }
3000
3038
  let n = zt(e, 0, null, 0);
3001
3039
  for (let t = 0; t < n.length; t++) {
3002
- let r = n[t], o = Er(e, r, "publisher", null, Xt.KW_REQUIRED), s = Er(e, r, "subscriber", null, Xt.KW_REQUIRED);
3003
- Yn(r, "s_event", yr(e, r, "event", "", Xt.KW_REQUIRED)), Yn(r, "s_publisher", Ze(o)), Yn(r, "s_subscriber", Ze(s));
3040
+ let r = n[t], o = Tr(e, r, "publisher", null, Xt.KW_REQUIRED), s = Tr(e, r, "subscriber", null, Xt.KW_REQUIRED);
3041
+ Yn(r, "s_event", Er(e, r, "event", "", Xt.KW_REQUIRED)), Yn(r, "s_publisher", Ze(o)), Yn(r, "s_subscriber", Ze(s));
3004
3042
  }
3005
3043
  return {
3006
3044
  subscriptions: t,
@@ -3105,9 +3143,11 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3105
3143
  0 === r ? i++ : r < 0 ? _++ : a++;
3106
3144
  }
3107
3145
  return _ ? hn(`${Ze(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${_})`) : i || a || (hn(`${Ze(e)}: No subscription found`), Ln(n, "No subscription found")), 0;
3108
- }, exports.gobj_unsubscribe_list = qt, exports.gobj_walk_gobj_children = _t, exports.gobj_walk_gobj_children_tree = at, exports.gobj_write_attr = Ot, exports.gobj_write_attrs = St, exports.gobj_write_bool_attr = wt, exports.gobj_write_integer_attr = Nt, exports.gobj_write_str_attr = Rt, exports.gobj_yuno = Je, exports.gobj_yuno_id = ze, exports.gobj_yuno_name = qe, exports.gobj_yuno_role = He, exports.id_index_in_obj_list = Ir, exports.index_in_list = qr, exports.is_array = Zn, exports.is_boolean = nr, exports.is_date = function(e) {
3146
+ }, exports.gobj_unsubscribe_list = qt, exports.gobj_walk_gobj_children = _t, exports.gobj_walk_gobj_children_tree = at, exports.gobj_write_attr = Ot, exports.gobj_write_attrs = St, exports.gobj_write_bool_attr = wt, exports.gobj_write_integer_attr = Nt, exports.gobj_write_str_attr = Rt, exports.gobj_yuno = Je, exports.gobj_yuno_id = ze, exports.gobj_yuno_name = qe, exports.gobj_yuno_role = He, exports.html_markup = function(e) {
3147
+ return "string" != typeof e ? (mn("html_markup: not a string, type " + typeof e), new Jr("")) : new Jr(e);
3148
+ }, exports.id_index_in_obj_list = Cr, exports.index_in_list = eo, exports.is_array = Zn, exports.is_boolean = nr, exports.is_date = function(e) {
3109
3149
  return e instanceof Date && !isNaN(e);
3110
- }, exports.is_function = or, exports.is_gobj = sr, exports.is_metadata_key = function(e) {
3150
+ }, exports.is_function = or, exports.is_gobj = sr, exports.is_html_markup = qr, exports.is_metadata_key = function(e) {
3111
3151
  if (!er(e)) return !1;
3112
3152
  let t = 0;
3113
3153
  for (; t < e.length && "_" === e[t] && !(t > 2); t++);
@@ -3123,53 +3163,53 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3123
3163
  const t = Number(e);
3124
3164
  return !isNaN(t) && "" !== e.trim() && !isNaN(t);
3125
3165
  }, exports.is_secret_name = Sn, exports.is_string = er, exports.jdb_delete = function(e, t, n, r) {
3126
- let o = vr(null, vr(null, e, "topics", null, 0), t, null, 0);
3166
+ let o = jr(null, jr(null, e, "topics", null, 0), t, null, 0);
3127
3167
  if (!o) return mn("jdb_delete: topic not found: " + t), null;
3128
3168
  if (lr(r.id)) return mn("jdb_delete: record without id: " + r), En(r), null;
3129
3169
  let s, l = n.split("`"), i = o;
3130
- for (; (s = l.shift()) && !lr(s) && i;) Xn(i) && (i = vr(null, i, e.hook, null, 0)), i = Wr(i, null, s, !1);
3170
+ for (; (s = l.shift()) && !lr(s) && i;) Xn(i) && (i = jr(null, i, e.hook, null, 0)), i = Kr(i, null, s, !1);
3131
3171
  if (0 === l.length && i) if (Zn(i)) {
3132
- let e = Ir(i, r.id);
3172
+ let e = Cr(i, r.id);
3133
3173
  e >= 0 && i.splice(e, 1);
3134
3174
  } else {
3135
- let t = vr(null, i, e.hook, null, 0), n = Ir(t, r.id);
3175
+ let t = jr(null, i, e.hook, null, 0), n = Cr(t, r.id);
3136
3176
  n >= 0 && t.splice(n, 1);
3137
3177
  }
3138
3178
  return o;
3139
3179
  }, exports.jdb_get = function(e, t, n, r) {
3140
- let o = vr(null, vr(null, e, "topics", null, 0), t, null, 0);
3141
- return o ? (void 0 === r && (r = !0), Wr(o, e.hook, n, r)) : (mn("jdb_get: topic not found: " + t), null);
3180
+ let o = jr(null, jr(null, e, "topics", null, 0), t, null, 0);
3181
+ return o ? (void 0 === r && (r = !0), Kr(o, e.hook, n, r)) : (mn("jdb_get: topic not found: " + t), null);
3142
3182
  }, exports.jdb_get_by_idx = function(e, t, n) {
3143
- let r = vr(null, vr(null, e, "topics", null, 0), t, null, 0);
3183
+ let r = jr(null, jr(null, e, "topics", null, 0), t, null, 0);
3144
3184
  return r ? n < r.length ? r[n] : {} : (mn("jdb_get_by_idx: topic not found: " + t), null);
3145
3185
  }, exports.jdb_get_topic = function(e, t) {
3146
- let n = vr(null, e, "topics", null, 0);
3186
+ let n = jr(null, e, "topics", null, 0);
3147
3187
  if (!n) return mn("jdb topics section not found"), En(e), null;
3148
- return vr(null, n, t, null, 0) || (mn("jdb topic not found: " + t), En(n), null);
3188
+ return jr(null, n, t, null, 0) || (mn("jdb topic not found: " + t), En(n), null);
3149
3189
  }, exports.jdb_init = function(e, t, n) {
3150
3190
  n && (e = Pn(e));
3151
- let r = vr(null, e, "type", [], 1);
3152
- yr(null, e, "hook", "data", 1);
3153
- let o = vr(null, e, "schema", {}, 1), s = vr(null, e, "topics", {}, 1);
3154
- return Mr(o, function(e, t, n, o) {
3155
- "__" !== t.substring(0, 2) && vr(null, s, o, Pn(r), 1);
3191
+ let r = jr(null, e, "type", [], 1);
3192
+ Er(null, e, "hook", "data", 1);
3193
+ let o = jr(null, e, "schema", {}, 1), s = jr(null, e, "topics", {}, 1);
3194
+ return Wr(o, function(e, t, n, o) {
3195
+ "__" !== t.substring(0, 2) && jr(null, s, o, Pn(r), 1);
3156
3196
  }, t), e;
3157
3197
  }, exports.jdb_update = function(e, t, n, r) {
3158
- let o = vr(null, vr(null, e, "topics", null, 0), t, null, 0);
3198
+ let o = jr(null, jr(null, e, "topics", null, 0), t, null, 0);
3159
3199
  if (!o) return mn("jdb_update: topic not found: " + t), null;
3160
3200
  if (lr(r.id)) return mn("jdb_update: record without id: " + r), En(r), null;
3161
3201
  let s, l = n.split("`"), i = o;
3162
- for (; (s = l.shift()) && !lr(s) && i;) Xn(i) && (i = vr(null, i, e.hook, [], 1)), i = Wr(i, null, s, !1);
3202
+ for (; (s = l.shift()) && !lr(s) && i;) Xn(i) && (i = jr(null, i, e.hook, [], 1)), i = Kr(i, null, s, !1);
3163
3203
  if (0 === l.length && i) if (Zn(i)) i.push(r);
3164
3204
  else if (i.id === r.id) Fn(i, r);
3165
3205
  else {
3166
- let t = vr(null, i, e.hook, [], 1), n = Wr(t, e.hook, r.id, !1);
3206
+ let t = jr(null, i, e.hook, [], 1), n = Kr(t, e.hook, r.id, !1);
3167
3207
  n ? Fn(n, r) : t.push(r);
3168
3208
  }
3169
3209
  return o;
3170
3210
  }, exports.json2flat = function(e) {
3171
3211
  const t = {}, n = (e, r, o) => {
3172
- if (o > Qr) throw new Error("json2flat: deeper than 256");
3212
+ if (o > ro) throw new Error("json2flat: deeper than 256");
3173
3213
  if (null === e || "object" != typeof e || Array.isArray(e)) {
3174
3214
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
3175
3215
  const s = `[${t}]`;
@@ -3179,7 +3219,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3179
3219
  const t = Object.keys(e);
3180
3220
  if (t.length > 0) {
3181
3221
  for (const s of t) {
3182
- const t = Zr(s);
3222
+ const t = so(s);
3183
3223
  n(e[s], 0 === o ? t : r + "`" + t, o + 1);
3184
3224
  }
3185
3225
  return;
@@ -3192,7 +3232,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3192
3232
  return t ? (Array.prototype.push.apply(e, t), e) : e;
3193
3233
  }, exports.json_array_remove = qn, exports.json_array_size = zn, exports.json_deep_copy = Pn, exports.json_is_identical = Un, exports.json_mask_secrets = Cn, exports.json_object_del = Wn, exports.json_object_get = Mn, exports.json_object_set = Kn, exports.json_object_set_new = Yn, exports.json_object_size = Hn, exports.json_object_update = Fn, exports.json_object_update_existing = Vn, exports.json_object_update_missing = Gn, exports.json_size = Qn, exports.jwt2json = function(e, t) {
3194
3234
  try {
3195
- let n = Kr(e);
3235
+ let n = Yr(e);
3196
3236
  switch (t) {
3197
3237
  case "header": return JSON.parse(n.header);
3198
3238
  case "signature": return JSON.parse(n.signature);
@@ -3201,9 +3241,9 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3201
3241
  } catch (e) {
3202
3242
  return null;
3203
3243
  }
3204
- }, exports.jwtDecode = Kr, exports.kw_clone_by_keys = Nr, exports.kw_clone_by_not_keys = Rr, exports.kw_collect = function(e, t, n, r) {
3244
+ }, exports.jwtDecode = Yr, exports.kw_clone_by_keys = Rr, exports.kw_clone_by_not_keys = xr, exports.kw_collect = function(e, t, n, r) {
3205
3245
  if (e && !sr(e) && mn("GObj bad instanceof"), !t) return null;
3206
- r || (r = wr);
3246
+ r || (r = Nr);
3207
3247
  let o = [];
3208
3248
  if (Zn(t)) for (let e = 0; e < t.length; e++) {
3209
3249
  let s = t[e];
@@ -3214,23 +3254,23 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3214
3254
  r(t, n) && o.push(t);
3215
3255
  }
3216
3256
  return o;
3217
- }, exports.kw_delete = br, exports.kw_find_json_in_list = function(e, t, n, r) {
3257
+ }, exports.kw_delete = mr, exports.kw_find_json_in_list = function(e, t, n, r) {
3218
3258
  if (!n || !Zn(t)) return r && mn("item NULL or kw_list is not a list"), -1;
3219
3259
  for (let e = 0; e < t.length; e++) if (Un(n, t[e])) return e;
3220
3260
  return r && mn("item not found in this list"), -1;
3221
- }, exports.kw_find_path = dr, exports.kw_flag_t = Xt, exports.kw_get_bool = mr, exports.kw_get_dict = Tr, exports.kw_get_dict_value = vr, exports.kw_get_int = hr, exports.kw_get_list = function(e, t, n, r, o) {
3261
+ }, exports.kw_find_path = br, exports.kw_flag_t = Xt, exports.kw_get_bool = hr, exports.kw_get_dict = vr, exports.kw_get_dict_value = jr, exports.kw_get_int = yr, exports.kw_get_list = function(e, t, n, r, o) {
3222
3262
  e && !sr(e) && mn("GObj bad instanceof");
3223
- let s = dr(e, t, n, !1);
3263
+ let s = br(e, t, n, !1);
3224
3264
  const l = o && o & Xt.KW_REQUIRED, i = o && o & Xt.KW_CREATE, _ = o && o & Xt.KW_EXTRACT;
3225
- return void 0 === s ? i && Zn(r) && t ? (jr(e, t, n, r), r) : (l && (mn(`path not found: '${n}'`), Ln(t)), r) : Zn(s) ? (_ && br(e, t, n), s) : (l && (mn(`${e ? Ze(e) + ": " : ""}path MUST BE a json list: '${n}'`), Ln(t)), r);
3226
- }, exports.kw_get_local_storage_value = xr, exports.kw_get_pointer = Er, exports.kw_get_real = function(e, t, n, r, o) {
3265
+ return void 0 === s ? i && Zn(r) && t ? (Or(e, t, n, r), r) : (l && (mn(`path not found: '${n}'`), Ln(t)), r) : Zn(s) ? (_ && mr(e, t, n), s) : (l && (mn(`${e ? Ze(e) + ": " : ""}path MUST BE a json list: '${n}'`), Ln(t)), r);
3266
+ }, exports.kw_get_local_storage_value = $r, exports.kw_get_pointer = Tr, exports.kw_get_real = function(e, t, n, r, o) {
3227
3267
  e && !sr(e) && mn("GObj bad instanceof");
3228
- let s = dr(e, t, n, !1);
3268
+ let s = br(e, t, n, !1);
3229
3269
  const l = o && o & Xt.KW_REQUIRED, i = o && o & Xt.KW_CREATE, _ = o && o & Xt.KW_EXTRACT, a = o && o & Xt.KW_WILD_NUMBER;
3230
3270
  if (void 0 === s) {
3231
3271
  if (i && t) {
3232
3272
  let o = Number(r);
3233
- return jr(e, t, n, o), o;
3273
+ return Or(e, t, n, o), o;
3234
3274
  }
3235
3275
  return l && (mn(`path not found: '${n}'`), Ln(t)), Number(r);
3236
3276
  }
@@ -3245,10 +3285,10 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3245
3285
  u = 0;
3246
3286
  }
3247
3287
  }
3248
- return _ && br(e, t, n), u;
3249
- }, exports.kw_get_str = yr, exports.kw_has_key = fr, exports.kw_match_simple = wr, exports.kw_pop = cr, exports.kw_remove_local_storage_value = Dr, exports.kw_select = function(e, t, n, r) {
3288
+ return _ && mr(e, t, n), u;
3289
+ }, exports.kw_get_str = Er, exports.kw_has_key = fr, exports.kw_match_simple = Nr, exports.kw_pop = cr, exports.kw_remove_local_storage_value = kr, exports.kw_select = function(e, t, n, r) {
3250
3290
  if (e && !sr(e) && mn("GObj bad instanceof"), !t) return null;
3251
- r || (r = wr);
3291
+ r || (r = Nr);
3252
3292
  let o = [];
3253
3293
  if (Zn(t)) for (let e = 0; e < t.length; e++) {
3254
3294
  let s = t[e];
@@ -3259,9 +3299,9 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3259
3299
  r(t, n) && o.push(Pn(t));
3260
3300
  }
3261
3301
  return o;
3262
- }, exports.kw_set_dict_value = jr, exports.kw_set_local_storage_value = $r, exports.kw_set_subdict_value = Or, exports.kwid_collect = Ar, exports.kwid_find_one_record = function(e, t, n, r, o) {
3302
+ }, exports.kw_set_dict_value = Or, exports.kw_set_local_storage_value = Dr, exports.kw_set_subdict_value = Sr, exports.kwid_collect = Ir, exports.kwid_find_one_record = function(e, t, n, r, o) {
3263
3303
  e && !sr(e) && mn("GObj bad instanceof");
3264
- let s = Ar(e, t, n, r, o);
3304
+ let s = Ir(e, t, n, r, o);
3265
3305
  return s && 0 !== s.length ? s[0] : null;
3266
3306
  }, exports.kwid_get_ids = function(e, t) {
3267
3307
  if (e && !sr(e) && mn("GObj bad instanceof"), !t) return [];
@@ -3271,23 +3311,23 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3271
3311
  else Zn(t) && t.forEach(function(t) {
3272
3312
  if (er(t)) lr(t) || n.push(t);
3273
3313
  else if (Xn(t)) {
3274
- let r = yr(e, t, "id", 0, 0);
3314
+ let r = Er(e, t, "id", 0, 0);
3275
3315
  r && n.push(r);
3276
3316
  }
3277
3317
  });
3278
3318
  return n;
3279
- }, exports.kwid_match_id = kr, exports.kwid_new_dict = function(e, t, n) {
3319
+ }, exports.kwid_match_id = Ar, exports.kwid_new_dict = function(e, t, n) {
3280
3320
  e && !sr(e) && mn("GObj bad instanceof");
3281
3321
  let r = {};
3282
- if (lr(n) || (t = dr(e, t, n)), Xn(t)) r = t;
3322
+ if (lr(n) || (t = br(e, t, n)), Xn(t)) r = t;
3283
3323
  else if (Zn(t)) for (let n = 0; n < t.length; n++) {
3284
- let o = t[n], s = yr(e, o, "id", "", Xt.KW_REQUIRED);
3324
+ let o = t[n], s = Er(e, o, "id", "", Xt.KW_REQUIRED);
3285
3325
  lr(s) || pr(r, s, o);
3286
3326
  }
3287
3327
  else mn(`${Ze(e)} kwid_new_dict: data type unknown`);
3288
3328
  return r;
3289
3329
  }, exports.kwid_new_list = function(e, t, n) {
3290
- if (e && !sr(e) && mn("GObj bad instanceof"), lr(n) || (t = dr(e, t, n)), Zn(t)) return t;
3330
+ if (e && !sr(e) && mn("GObj bad instanceof"), lr(n) || (t = br(e, t, n)), Zn(t)) return t;
3291
3331
  if (Xn(t)) {
3292
3332
  let n = [];
3293
3333
  for (let r of Object.keys(t)) {
@@ -3345,9 +3385,9 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3345
3385
  var e;
3346
3386
  }, r.send();
3347
3387
  }, exports.log_debug = yn, exports.log_error = mn, exports.log_info = function(e, ...t) {
3348
- let n = bn(e, ...t), r = Jr();
3388
+ let n = bn(e, ...t), r = Zr();
3349
3389
  nn && un("info", n) && nn("%c" + r + " INFO: " + String(n), "color:cyan"), fn("info", n, r);
3350
- }, exports.log_warning = hn, exports.mask_secrets_inline = $n, exports.msg_iev_get_msg_type = Gr, exports.msg_iev_get_stack = Fr, exports.msg_iev_push_stack = Ur, exports.msg_iev_read_key = Lr, exports.msg_iev_set_msg_type = Vr, exports.msg_iev_write_key = Pr, exports.node_uuid = Hr, exports.parseBoolean = ir, exports.parseSVG = function(e) {
3390
+ }, exports.log_warning = hn, exports.mask_secrets_inline = $n, exports.msg_iev_get_msg_type = Mr, exports.msg_iev_get_stack = Vr, exports.msg_iev_push_stack = Fr, exports.msg_iev_read_key = Pr, exports.msg_iev_set_msg_type = Gr, exports.msg_iev_write_key = Ur, exports.node_uuid = to, exports.parseBoolean = ir, exports.parseSVG = function(e) {
3351
3391
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3352
3392
  }, exports.refresh_language = function(e, t) {
3353
3393
  if (!or(t)) return void mn("You must supply a translation function");
@@ -3374,22 +3414,22 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3374
3414
  });
3375
3415
  }, exports.register_c_ievent_cli = function() {
3376
3416
  return function(e) {
3377
- if ($o) return mn(`GClass ALREADY created: ${e}`), -1;
3417
+ if (Lo) return mn(`GClass ALREADY created: ${e}`), -1;
3378
3418
  const t = [
3379
3419
  ["ST_DISCONNECTED", [
3380
3420
  [
3381
3421
  "EV_ON_OPEN",
3382
- Vo,
3422
+ Bo,
3383
3423
  "ST_WAIT_IDENTITY_CARD_ACK"
3384
3424
  ],
3385
3425
  [
3386
3426
  "EV_ON_CLOSE",
3387
- Go,
3427
+ Jo,
3388
3428
  null
3389
3429
  ],
3390
3430
  [
3391
3431
  "EV_TIMEOUT",
3392
- Fo,
3432
+ Yo,
3393
3433
  null
3394
3434
  ],
3395
3435
  [
@@ -3401,22 +3441,22 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3401
3441
  ["ST_WAIT_IDENTITY_CARD_ACK", [
3402
3442
  [
3403
3443
  "EV_ON_MESSAGE",
3404
- Ko,
3444
+ Qo,
3405
3445
  null
3406
3446
  ],
3407
3447
  [
3408
3448
  "EV_IDENTITY_CARD_ACK",
3409
- Wo,
3449
+ zo,
3410
3450
  null
3411
3451
  ],
3412
3452
  [
3413
3453
  "EV_ON_CLOSE",
3414
- Go,
3454
+ Jo,
3415
3455
  "ST_DISCONNECTED"
3416
3456
  ],
3417
3457
  [
3418
3458
  "EV_TIMEOUT",
3419
- Mo,
3459
+ Ho,
3420
3460
  null
3421
3461
  ],
3422
3462
  [
@@ -3428,22 +3468,22 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3428
3468
  ["ST_SESSION", [
3429
3469
  [
3430
3470
  "EV_ON_MESSAGE",
3431
- Ko,
3471
+ Qo,
3432
3472
  null
3433
3473
  ],
3434
3474
  [
3435
3475
  "EV_MT_STATS",
3436
- Yo,
3476
+ Xo,
3437
3477
  null
3438
3478
  ],
3439
3479
  [
3440
3480
  "EV_MT_COMMAND",
3441
- Bo,
3481
+ Zo,
3442
3482
  null
3443
3483
  ],
3444
3484
  [
3445
3485
  "EV_ON_CLOSE",
3446
- Go,
3486
+ Jo,
3447
3487
  "ST_DISCONNECTED"
3448
3488
  ],
3449
3489
  [
@@ -3454,7 +3494,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3454
3494
  ]],
3455
3495
  [null, null]
3456
3496
  ];
3457
- return ($o = ge(e, [
3497
+ return (Lo = ge(e, [
3458
3498
  ["EV_ON_MESSAGE", R.EVF_OUTPUT_EVENT],
3459
3499
  ["EV_IDENTITY_CARD_ACK", R.EVF_PUBLIC_EVENT],
3460
3500
  ["EV_ON_ID_NAK", R.EVF_PUBLIC_EVENT | R.EVF_OUTPUT_EVENT],
@@ -3465,36 +3505,36 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3465
3505
  ["EV_ON_OPEN_ERROR", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS],
3466
3506
  ["EV_TIMEOUT", 0],
3467
3507
  [null, 0]
3468
- ], t, Jo, 0, wo, xo, 0, 0, No, S.gcflag_no_check_output_events)) ? 0 : -1;
3508
+ ], t, es, 0, ko, Co, 0, 0, Ao, S.gcflag_no_check_output_events)) ? 0 : -1;
3469
3509
  }("C_IEVENT_CLI");
3470
3510
  }, exports.register_c_timer = function() {
3471
3511
  return function(e) {
3472
- if (uo) return mn(`GClass ALREADY created: ${e}`), -1;
3512
+ if (mo) return mn(`GClass ALREADY created: ${e}`), -1;
3473
3513
  const t = [["ST_IDLE", [[
3474
3514
  "EV_TIMEOUT",
3475
- co,
3515
+ ho,
3476
3516
  null
3477
3517
  ]]]];
3478
- return (uo = ge(e, [
3518
+ return (mo = ge(e, [
3479
3519
  ["EV_TIMEOUT", R.EVF_OUTPUT_EVENT],
3480
3520
  ["EV_TIMEOUT_PERIODIC", R.EVF_OUTPUT_EVENT],
3481
3521
  [0, 0]
3482
- ], t, fo, 0, _o, ao, 0, 0, 0, S.gcflag_manual_start)) ? 0 : -1;
3522
+ ], t, yo, 0, po, bo, 0, 0, 0, S.gcflag_manual_start)) ? 0 : -1;
3483
3523
  }("C_TIMER");
3484
3524
  }, exports.register_c_yuno = function() {
3485
3525
  return function(e) {
3486
- if (yo) return mn(`GClass ALREADY created: ${e}`), -1;
3526
+ if (So) return mn(`GClass ALREADY created: ${e}`), -1;
3487
3527
  const t = [["ST_IDLE", [[
3488
3528
  "EV_TIMEOUT_PERIODIC",
3489
- jo,
3529
+ xo,
3490
3530
  null
3491
3531
  ]]]];
3492
- return (yo = ge(e, [["EV_TIMEOUT_PERIODIC", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS], [0, 0]], t, Oo, 0, mo, ho, 0, 0, 0, 0)) ? 0 : -1;
3532
+ return (So = ge(e, [["EV_TIMEOUT_PERIODIC", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS], [0, 0]], t, $o, 0, jo, Oo, 0, 0, 0, 0)) ? 0 : -1;
3493
3533
  }("C_YUNO");
3494
3534
  }, exports.safeSrc = function(e) {
3495
3535
  if (!e) return "";
3496
3536
  const t = String(e).trim();
3497
- return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Yr(t);
3537
+ return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Br(t);
3498
3538
  }, exports.sdata_flag_t = y, exports.send_http_json_post = function(e, t, n) {
3499
3539
  let r = new XMLHttpRequest();
3500
3540
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
@@ -3517,13 +3557,17 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3517
3557
  gn(e, r, n);
3518
3558
  }
3519
3559
  } else on = e;
3520
- }, exports.set_remote_log_functions = pn, exports.set_timeout = go, exports.set_timeout_periodic = po, exports.sprintf = t, exports.stats_parser = function(e, t, n, r) {}, exports.str_in_list = Cr, exports.strcasecmp = ar, exports.strcmp = _r, exports.strncmp = function(e, t, n) {
3560
+ }, exports.set_remote_log_functions = pn, exports.set_strings_are_text = function(e) {
3561
+ zr = !!e;
3562
+ }, exports.set_timeout = Eo, exports.set_timeout_periodic = To, exports.sprintf = t, exports.stats_parser = function(e, t, n, r) {}, exports.str_in_list = Lr, exports.strcasecmp = ar, exports.strcmp = _r, exports.strings_are_text = function() {
3563
+ return zr;
3564
+ }, exports.strncmp = function(e, t, n) {
3521
3565
  var r = (e + "").substring(0, n), o = (t + "").substring(0, n);
3522
3566
  return r === o ? 0 : r > o ? 1 : -1;
3523
3567
  }, exports.strs_in_list = function(e, t, n) {
3524
3568
  if (!e) return mn("ERROR: strs_in_list() list empty"), !1;
3525
3569
  if (!t) return mn("ERROR: strs_in_list() str empty"), !1;
3526
- for (let r = 0; r < t.length; r++) if (Cr(e, t[r], n)) return !0;
3570
+ for (let r = 0; r < t.length; r++) if (Lr(e, t[r], n)) return !0;
3527
3571
  return !1;
3528
3572
  }, exports.strstr = function(e, t, n) {
3529
3573
  var r;
@@ -3546,9 +3590,9 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3546
3590
  let e = t.split(".");
3547
3591
  for (let t = 0; t < e.length; t++) {
3548
3592
  let r = e[t];
3549
- if (Cr(oo, r)) n.real_type || (n.real_type = r);
3550
- else if (Cr(lo, r)) n.type || (n.type = r);
3551
- else if (Cr(so, r)) switch (r) {
3593
+ if (Lr(uo, r)) n.real_type || (n.real_type = r);
3594
+ else if (Lr(fo, r)) n.type || (n.type = r);
3595
+ else if (Lr(co, r)) switch (r) {
3552
3596
  case "writable":
3553
3597
  n.is_writable = !0;
3554
3598
  break;
@@ -3560,7 +3604,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3560
3604
  }
3561
3605
  }
3562
3606
  n.real_type || (n.real_type = "string");
3563
- } else Xn(t) ? (n = io(t), n.name || (n.name = e), n.header || (n.header = e)) : Zn(t) && (n.real_type = "array", n.enum_list = t);
3607
+ } else Xn(t) ? (n = go(t), n.name || (n.name = e), n.header || (n.header = e)) : Zn(t) && (n.real_type = "array", n.enum_list = t);
3564
3608
  return n.type || (n.type = n.real_type), n;
3565
3609
  }, exports.timeTracker = function(e = "Time Tracker", t = !1) {
3566
3610
  const n = e, r = performance.now();
@@ -3572,7 +3616,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3572
3616
  total: _
3573
3617
  };
3574
3618
  } };
3575
- }, exports.trace_json = Tn, exports.trace_json_masked = Ln, exports.trace_level_t = C, exports.trace_msg = En, exports.treedb_decoder_fkey = ro, exports.treedb_decoder_hook = function(e, t) {
3619
+ }, exports.trace_json = Tn, exports.trace_json_masked = Ln, exports.trace_level_t = C, exports.trace_msg = En, exports.treedb_decoder_fkey = ao, exports.treedb_decoder_hook = function(e, t) {
3576
3620
  if (er(t)) {
3577
3621
  if (-1 === t.indexOf("^")) {
3578
3622
  let n, r = e.hook;
@@ -3599,9 +3643,9 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3599
3643
  id: t.id
3600
3644
  } : (mn("bad hook 3"), mn(e), mn(t), null);
3601
3645
  }, exports.treedb_encoder_fkey = function(e, t) {
3602
- let n = ro(e, t);
3646
+ let n = ao(e, t);
3603
3647
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3604
- }, exports.treedb_get_field_desc = io, exports.treedb_hook_data_size = function(e) {
3648
+ }, exports.treedb_get_field_desc = go, exports.treedb_hook_data_size = function(e) {
3605
3649
  if (Zn(e) && 1 === Qn(e)) {
3606
3650
  let t = e[0];
3607
3651
  return fr(t, "size") ? t.size : 1;