@yuneta/gobj-js 7.26.28 → 7.27.0

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.
@@ -148,7 +148,7 @@
148
148
  DTP_POINTER: 8
149
149
  }), T = (e) => e === E.DTP_STRING, j = (e) => e === E.DTP_BOOLEAN, O = (e) => e === E.DTP_REAL, S = (e) => e === E.DTP_LIST, w = (e) => e === E.DTP_DICT, N = (e) => e === E.DTP_JSON;
150
150
  E.DTP_POINTER;
151
- var $ = (e) => ((e) => e === E.DTP_INTEGER)(e) || O(e) || j(e), A = Object.freeze({
151
+ var $ = (e) => ((e) => e === E.DTP_INTEGER)(e) || O(e) || j(e), R = Object.freeze({
152
152
  SDF_NOTACCESS: 1,
153
153
  SDF_RD: 2,
154
154
  SDF_WR: 4,
@@ -172,18 +172,18 @@
172
172
  SDF_AUTHZ_RS: 1048576,
173
173
  SDF_SECRET: 2097152
174
174
  });
175
- A.SDF_RD, A.SDF_WR, A.SDF_STATS, A.SDF_PERSIST, A.SDF_VOLATIL, A.SDF_RSTATS, A.SDF_PSTATS, A.SDF_WR, A.SDF_PERSIST;
176
- var R = class {
175
+ R.SDF_RD, R.SDF_WR, R.SDF_STATS, R.SDF_PERSIST, R.SDF_VOLATIL, R.SDF_RSTATS, R.SDF_PSTATS, R.SDF_WR, R.SDF_PERSIST;
176
+ var A = class {
177
177
  constructor(e, t, n = 0, r = null, o = "", l = null, i = null, s = 0, a = null, u = null, _ = null) {
178
178
  this.type = e, this.name = t, this.alias = l, this.flag = n, this.default_value = r, this.header = i, this.fillspace = s, this.description = o, this.json_fn = a, this.schema = u, this.authpth = _;
179
179
  }
180
- }, D = () => new R(0, null), k = (e, t, n, r, o) => new R(e, t, n, r, o), C = class {
180
+ }, D = () => new A(0, null), k = (e, t, n, r, o) => new A(e, t, n, r, o), C = class {
181
181
  constructor(e, t, n, r, o, l, i, s, a) {
182
182
  this.gclass_name = e, this.dl_states = [], this.dl_events = [], this.gmt = t, this.lmt = n, this.attrs_table = r, this.priv = o, this.authz_table = l, this.command_table = i, this.s_user_trace_level = s, this.gclass_flag = Number(a) || 0, this.instances = 0, this.trace_level = 0, this.no_trace_level = 0, this.jn_trace_filter = null, this.fsm_checked = !1;
183
183
  }
184
184
  }, I = class {
185
185
  constructor(e, t, n, r, o) {
186
- this.__refs__ = 0, this.gclass = t, this.parent = null, this.dl_children = [], this.dl_subscriptions = [], this.dl_subscribings = [], this.current_state = t.dl_states[0], this.last_state = null, this.obflag = 0, this.gobj_flag = Number(o) || 0, this.gobj_name = e, this.jn_attrs = null, this.jn_stats = {}, this.jn_user_data = {}, this.full_name = null, this.short_name = null, this.priv = Ao(t.priv), this.running = !1, this.playing = !1, this.disabled = !1, this.bottom_gobj = null, this.trace_level = 0, this.no_trace_level = 0;
186
+ this.__refs__ = 0, this.gclass = t, this.parent = null, this.dl_children = [], this.dl_subscriptions = [], this.dl_subscribings = [], this.current_state = t.dl_states[0], this.last_state = null, this.obflag = 0, this.gobj_flag = Number(o) || 0, this.gobj_name = e, this.jn_attrs = null, this.jn_stats = {}, this.jn_user_data = {}, this.full_name = null, this.short_name = null, this.priv = Ro(t.priv), this.running = !1, this.playing = !1, this.disabled = !1, this.bottom_gobj = null, this.trace_level = 0, this.no_trace_level = 0;
187
187
  }
188
188
  }, P = Object.freeze({
189
189
  gcflag_manual_start: 1,
@@ -556,11 +556,11 @@
556
556
  function $e(e, t) {
557
557
  return T(e) ? Jo(t) : w(e) ? Bo(t) : S(e) ? Yo(t) : !$(e) || "number" == typeof t || "boolean" == typeof t;
558
558
  }
559
- function Ae(e) {
559
+ function Re(e) {
560
560
  return e >= -0x8000000000000000 && e < 0x8000000000000000;
561
561
  }
562
- function Re(e) {
563
- return Yo(e) ? "an array" : Bo(e) ? "an object" : Jo(e) ? je : "number" == typeof e ? Number.isInteger(e) && Ae(e) ? "an integer" : "a real" : "boolean" == typeof e ? "a boolean" : "null";
562
+ function Ae(e) {
563
+ return Yo(e) ? "an array" : Bo(e) ? "an object" : Jo(e) ? je : "number" == typeof e ? Number.isInteger(e) && Re(e) ? "an integer" : "a real" : "boolean" == typeof e ? "a boolean" : "null";
564
564
  }
565
565
  function De(e, t, n) {
566
566
  if (Jo(t) || (t = ""), T(e)) return {
@@ -610,7 +610,7 @@
610
610
  refused: null
611
611
  };
612
612
  const o = Number(r);
613
- return Ae(o) ? {
613
+ return Re(o) ? {
614
614
  value: o,
615
615
  refused: null
616
616
  } : {
@@ -683,7 +683,7 @@
683
683
  } : "boolean" == typeof t ? {
684
684
  value: t ? 1 : 0,
685
685
  refused: null
686
- } : Ae(t) ? Number.isInteger(t) ? {
686
+ } : Re(t) ? Number.isInteger(t) ? {
687
687
  value: t,
688
688
  refused: null
689
689
  } : {
@@ -704,7 +704,7 @@
704
704
  refused: Ue
705
705
  } : {
706
706
  value: void 0,
707
- refused: Re(t)
707
+ refused: Ae(t)
708
708
  } : {
709
709
  value: t,
710
710
  refused: null
@@ -792,7 +792,7 @@
792
792
  [E.DTP_DICT]: "a json object"
793
793
  };
794
794
  let l;
795
- if (t.flag & A.SDF_SECRET) l = "********";
795
+ if (t.flag & R.SDF_SECRET) l = "********";
796
796
  else {
797
797
  l = Jo(n) ? n : Fe(void 0 === n ? null : n), void 0 === l && (l = `<${Ue}>`);
798
798
  const e = To(l);
@@ -975,7 +975,7 @@
975
975
  return b[e] || (t && ir(`gobj service not found: ${e}`), null);
976
976
  }
977
977
  function rt(e) {
978
- let t = Rt(e);
978
+ let t = At(e);
979
979
  return t = t.toLowerCase(), b[t] && ir(`service ALREADY REGISTERED: ${t}. Will be UPDATED`), b[t] = e, 0;
980
980
  }
981
981
  function ot(e, t) {
@@ -998,7 +998,7 @@
998
998
  let l = 0;
999
999
  for (const [i, s] of Object.entries(t)) {
1000
1000
  const t = xe(o.gclass, i, !1);
1001
- t ? (-1 === n || t.flag & n) && (t.flag & A.SDF_DEPRECATED && sr(`${kt(o)}: Deprecated attribute used in gobj creation: ${i}`), l += Ge(o, e, t, s)) : r && (r(o, i), l--);
1001
+ t ? (-1 === n || t.flag & n) && (t.flag & R.SDF_DEPRECATED && sr(`${kt(o)}: Deprecated attribute used in gobj creation: ${i}`), l += Ge(o, e, t, s)) : r && (r(o, i), l--);
1002
1002
  }
1003
1003
  return l;
1004
1004
  })(Ve(e), r, -1, e.gclass.gclass_flag & P.gcflag_ignore_unknown_attrs ? 0 : st, e) < 0 && (ir(`${kt(e)} json2data() FAILED`), $o(r));
@@ -1066,7 +1066,7 @@
1066
1066
  t && K(n("💔💔⏩ destroying: %s", Ct(e)));
1067
1067
  let r = It(e);
1068
1068
  r && r.gclass.gmt.mt_child_removed && (t && K(n("👦👦🔴 child_removed(%s): %s", Ct(r), kt(e))), r.gclass.gmt.mt_child_removed(r, e)), e.gobj_flag & L.gobj_flag_service && function(e) {
1069
- let t = Rt(e);
1069
+ let t = At(e);
1070
1070
  t = t.toLowerCase(), b[t] ? delete b[t] : ir(`"service NOT found in register": ${t}`);
1071
1071
  }(e), e === m && (m = null), Cn(e, e.dl_subscriptions, !0), Cn(e, e.dl_subscribings, !0), r && (lt(r, e), Pt(e) && (Ft(r) !== e || Ut(r) || Mt(r, null))), function(e) {
1072
1072
  let t = e.dl_children.slice();
@@ -1084,7 +1084,7 @@
1084
1084
  const t = Ve(e), n = [];
1085
1085
  if (!Yo(e.gclass.attrs_table)) return null;
1086
1086
  for (const r of e.gclass.attrs_table) {
1087
- if (!(r.name && r.flag & A.SDF_REQUIRED)) continue;
1087
+ if (!(r.name && r.flag & R.SDF_REQUIRED)) continue;
1088
1088
  const e = t[r.name];
1089
1089
  switch (r.type) {
1090
1090
  case E.DTP_STRING:
@@ -1164,7 +1164,8 @@
1164
1164
  if (e.disabled) return ir(`${kt(e)}: GObj DISABLED`), -1;
1165
1165
  if (!Tt(e)) {
1166
1166
  if (e.gclass.gclass_flag & P.gcflag_required_start_to_play) return ir(`${kt(e)}: Cannot play, start not done`), -1;
1167
- sr(`${kt(e)}: GObj playing without previous start`), ft(e);
1167
+ if (sr(`${kt(e)}: GObj playing without previous start`), gt(e)) return -1;
1168
+ if (!e.running) return -1;
1168
1169
  }
1169
1170
  ne(e) && K(n("⏯ ⏯ play: %s", Ct(e))), e.playing = !0;
1170
1171
  let t = 0;
@@ -1209,24 +1210,24 @@
1209
1210
  }
1210
1211
  function Nt() {
1211
1212
  let e = wt();
1212
- return e ? Rt(e) : "";
1213
+ return e ? At(e) : "";
1213
1214
  }
1214
1215
  function $t() {
1215
1216
  let e = wt();
1216
1217
  return e ? tn(e, "yuno_role") : "";
1217
1218
  }
1218
- function At() {
1219
+ function Rt() {
1219
1220
  let e = wt();
1220
1221
  return e ? tn(e, "yuno_id") : "";
1221
1222
  }
1222
- function Rt(e) {
1223
+ function At(e) {
1223
1224
  return Xo(e) ? e.gobj_name : (ir("gobj bad type"), null);
1224
1225
  }
1225
1226
  function Dt(e) {
1226
1227
  return Xo(e) ? e.gclass.gclass_name : (ir("gobj NULL of bad type"), null);
1227
1228
  }
1228
1229
  function kt(e) {
1229
- return Xo(e) ? e.gclass.gclass_name + "^" + Rt(e) : (ir("gobj bad type"), null);
1230
+ return Xo(e) ? e.gclass.gclass_name + "^" + At(e) : (ir("gobj bad type"), null);
1230
1231
  }
1231
1232
  function Ct(e) {
1232
1233
  if (!Xo(e)) return ir("gobj NULL of bad type"), null;
@@ -1320,10 +1321,10 @@
1320
1321
  t.__disabled__;
1321
1322
  let l = t.__state__;
1322
1323
  if (n && n !== Dt(e)) return !1;
1323
- if (r && r !== Rt(e)) return !1;
1324
+ if (r && r !== At(e)) return !1;
1324
1325
  if (o) {
1325
1326
  let t = o.length;
1326
- if (o !== Rt(e).substring(0, t)) return !1;
1327
+ if (o !== At(e).substring(0, t)) return !1;
1327
1328
  }
1328
1329
  if (l && l !== fn(e)) return !1;
1329
1330
  let i = e.jn_attrs;
@@ -1350,7 +1351,7 @@
1350
1351
  if (1 !== n.length) return !1;
1351
1352
  r = n[0];
1352
1353
  }
1353
- return r === Rt(e);
1354
+ return r === At(e);
1354
1355
  }(e, n[0])) return null;
1355
1356
  if (1 === n.length) return e;
1356
1357
  let r = n[1].split("^"), o = {};
@@ -1492,7 +1493,7 @@
1492
1493
  let o = oe(e, "EV_STATE_CHANGED"), l = !!function(e) {
1493
1494
  return X(e) & B.TRACE_STATES;
1494
1495
  }(e);
1495
- return (o || l) && (1 === x || K(n("🔀🔀 mach(%s%s^%s), new st(%s), prev st(%s)", e.running ? "" : "!!", Dt(e), Rt(e), fn(e), e.last_state.state_name))), !0;
1496
+ return (o || l) && (1 === x || K(n("🔀🔀 mach(%s%s^%s), new st(%s), prev st(%s)", e.running ? "" : "!!", Dt(e), At(e), fn(e), e.last_state.state_name))), !0;
1496
1497
  }
1497
1498
  function fn(e) {
1498
1499
  return Xo(e) ? e.current_state.state_name : (ir("hgobj NULL"), "");
@@ -1580,13 +1581,13 @@
1580
1581
  En(s);
1581
1582
  }
1582
1583
  }
1583
- return i && K(n("📛 mach(%s%s^%s), st: %s, ev: %s, 📛📛ERROR Event NOT DEFINED in state📛📛, from(%s%s^%s)", e.running ? "" : "!!", Dt(e), Rt(e), l.state_name, t || "", o && !o.running ? "!!" : "", Dt(o), Rt(o))), ir(`📛📛 Event NOT DEFINED in state 📛📛: ${kt(e)}, ${l.state_name}, ${t}`), h--, -1;
1584
+ return i && K(n("📛 mach(%s%s^%s), st: %s, ev: %s, 📛📛ERROR Event NOT DEFINED in state📛📛, from(%s%s^%s)", e.running ? "" : "!!", Dt(e), At(e), l.state_name, t || "", o && !o.running ? "!!" : "", Dt(o), At(o))), ir(`📛📛 Event NOT DEFINED in state 📛📛: ${kt(e)}, ${l.state_name}, ${t}`), h--, -1;
1584
1585
  }
1585
1586
  if (i) {
1586
1587
  if (1 === x) K(n("🔄 %s %s%s %s from %s%s", t || "", e.running ? "" : "!!", kt(e), l.state_name, o && !o.running ? "!!" : "", kt(o)));
1587
1588
  else {
1588
1589
  let r = "";
1589
- s.action && (r = ei(s.action)), K(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Dt(e), Rt(e), l.state_name, "", t || "", "", r, o && !o.running ? "!!" : "", Dt(o), Rt(o)));
1590
+ s.action && (r = ti(s.action)), K(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Dt(e), At(e), l.state_name, "", t || "", "", r, o && !o.running ? "!!" : "", Dt(o), At(o)));
1590
1591
  }
1591
1592
  r && re(e) && Vo(r) && $o(r);
1592
1593
  }
@@ -1605,7 +1606,7 @@
1605
1606
  } finally {
1606
1607
  En(a);
1607
1608
  }
1608
- return i && 1 !== x && !a.destroyed && K(n("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d", e.running ? "" : "!!", Dt(e), Rt(e), e.current_state.state_name, t || "", qo(u) ? u : 0)), h--, u;
1609
+ return i && 1 !== x && !a.destroyed && K(n("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d", e.running ? "" : "!!", Dt(e), At(e), e.current_state.state_name, t || "", qo(u) ? u : 0)), h--, u;
1609
1610
  }
1610
1611
  var On = Object.freeze({
1611
1612
  __rename_event_name__: 1,
@@ -1654,23 +1655,23 @@
1654
1655
  let i = bl(t, o, "__config__", null), s = bl(t, o, "__global__", null), a = bl(t, o, "__local__", null), u = pl(t, o, "__filter__", null), _ = !0;
1655
1656
  if (t && t !== dl(null, e, "publisher", null) && (_ = !1), l && l !== dl(null, e, "subscriber", null) && (_ = !1), n && n !== gl(null, e, "event", "") && (_ = !1), r && r !== gl(null, e, "renamed_event", "") && (_ = !1), xo(i) > 0) {
1656
1657
  let t = bl(null, e, "__config__", null);
1657
- xo(t) > 0 && Ro(t, i) || (_ = !1);
1658
+ xo(t) > 0 && Ao(t, i) || (_ = !1);
1658
1659
  }
1659
1660
  if (xo(s) > 0) {
1660
1661
  let t = bl(null, e, "__global__", null);
1661
- xo(t) > 0 && Ro(t, s) || (_ = !1);
1662
+ xo(t) > 0 && Ao(t, s) || (_ = !1);
1662
1663
  }
1663
1664
  if (xo(a) > 0) {
1664
1665
  let t = bl(null, e, "__local__", null);
1665
- xo(t) > 0 && Ro(t, a) || (_ = !1);
1666
+ xo(t) > 0 && Ao(t, a) || (_ = !1);
1666
1667
  }
1667
1668
  if (xo(u) > 0) {
1668
1669
  let t = pl(null, e, "__filter__", null);
1669
- xo(t) > 0 && Ro(t, u) || (_ = !1);
1670
+ xo(t) > 0 && Ao(t, u) || (_ = !1);
1670
1671
  }
1671
1672
  return _;
1672
1673
  }
1673
- function An(e, t, n, r, o, l) {
1674
+ function Rn(e, t, n, r, o, l) {
1674
1675
  let i = [];
1675
1676
  for (let s = 0; s < e.length; s++) {
1676
1677
  let a = e[s];
@@ -1678,17 +1679,17 @@
1678
1679
  }
1679
1680
  return i;
1680
1681
  }
1681
- function Rn(e, t) {
1682
+ function An(e, t) {
1682
1683
  return e.indexOf(t);
1683
1684
  }
1684
1685
  function Dn(e, t, r, o) {
1685
1686
  let l = dl(e, t, "publisher", null, Un.KW_REQUIRED), i = dl(e, t, "subscriber", null, Un.KW_REQUIRED), s = gl(e, t, "event", "", Un.KW_REQUIRED);
1686
1687
  if (!!(fl(e, t, "subs_flag", null, Un.KW_REQUIRED) & On.__hard_subscription__) && !r) return -1;
1687
1688
  let a = te(i) || te(l);
1688
- if (Rn(l.dl_subscriptions, t) < 0) return a && K(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s', ALREADY REMOVED", s || "", kt(l), kt(i))), 1;
1689
+ if (An(l.dl_subscriptions, t) < 0) return a && K(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s', ALREADY REMOVED", s || "", kt(l), kt(i))), 1;
1689
1690
  a && (K(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s'", s || "", kt(l), kt(i))), _r(t)), l.obflag & U.obflag_destroyed || o || l.gclass.gmt.mt_subscription_deleted && l.gclass.gmt.mt_subscription_deleted(l, t);
1690
- let u = Rn(l.dl_subscriptions, t);
1691
- return u >= 0 ? Go(l.dl_subscriptions, u) : (ir(`${kt(e)}: subscription in publisher not found`), _r(t)), u = Rn(i.dl_subscribings, t), u >= 0 ? Go(i.dl_subscribings, u) : (ir(`${kt(e)}: subscription in subscriber not found`), _r(t)), 0;
1691
+ let u = An(l.dl_subscriptions, t);
1692
+ return u >= 0 ? Go(l.dl_subscriptions, u) : (ir(`${kt(e)}: subscription in publisher not found`), _r(t)), u = An(i.dl_subscribings, t), u >= 0 ? Go(i.dl_subscribings, u) : (ir(`${kt(e)}: subscription in subscriber not found`), _r(t)), 0;
1692
1693
  }
1693
1694
  function kn(e, t, r, o) {
1694
1695
  if (null == r && (r = {}), !e) return ir(`publisher NULL: ev ${t}`), 0;
@@ -1704,7 +1705,7 @@
1704
1705
  l.has(n) || ir(`${kt(e)}: key ignored in subscription (key: ${n}, event: ${t})`);
1705
1706
  }), Zo(t)) t = "";
1706
1707
  else if (!(bn(e, t, F.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & P.gcflag_no_check_output_events)) return ir(`event NOT in output event list: ${kt(e)}, ${t}`), 0;
1707
- let i = Nn(r, t), s = An(e.dl_subscriptions, e, t, i.renamed_event, i.kw, o), a = null;
1708
+ let i = Nn(r, t), s = Rn(e.dl_subscriptions, e, t, i.renamed_event, i.kw, o), a = null;
1708
1709
  for (let t = 0; t < s.length; t++) if (fl(e, s[t], "subs_flag", 0, Un.KW_REQUIRED) & On.__hard_subscription__) {
1709
1710
  a = s[t];
1710
1711
  break;
@@ -1717,8 +1718,8 @@
1717
1718
  let l = 0;
1718
1719
  if (n) {
1719
1720
  let r = bl(e, n, "__config__", null), i = bl(e, n, "__global__", null), s = bl(e, n, "__local__", null), a = pl(e, n, "__filter__", null), u = gl(e, n, "__service__", "");
1720
- if (xo(i) > 0 && Uo(o, "__global__", Ao(i)), xo(r) > 0) {
1721
- let n = Ao(r);
1721
+ if (xo(i) > 0 && Uo(o, "__global__", Ro(i)), xo(r) > 0) {
1722
+ let n = Ro(r);
1722
1723
  Uo(o, "__config__", n);
1723
1724
  let i = gl(e, n, "__rename_event_name__", "");
1724
1725
  if (!Zo(i)) {
@@ -1738,7 +1739,7 @@
1738
1739
  Po(n, "__own_event__"), t && (l |= On.__own_event__);
1739
1740
  }
1740
1741
  }
1741
- xo(s) > 0 && Uo(o, "__local__", Ao(s)), xo(a) > 0 && Uo(o, "__filter__", Ao(a)), Zo(u) || Uo(o, "__service__", u);
1742
+ xo(s) > 0 && Uo(o, "__local__", Ro(s)), xo(a) > 0 && Uo(o, "__filter__", Ro(a)), Zo(u) || Uo(o, "__service__", u);
1742
1743
  }
1743
1744
  return Uo(o, "subs_flag", l), o;
1744
1745
  }(e, t, r, o);
@@ -1755,10 +1756,10 @@
1755
1756
  return o && sr(`${kt(e)}: Subscription(s) already removed, nothing to remove (count: ${o})`), 0;
1756
1757
  }
1757
1758
  function In(e, t, n, r) {
1758
- return null == n && (n = {}), An(e.dl_subscriptions, e, t, null, n, r);
1759
+ return null == n && (n = {}), Rn(e.dl_subscriptions, e, t, null, n, r);
1759
1760
  }
1760
1761
  function Pn(e, t, n, r) {
1761
- return An(e.dl_subscribings, r, t, null, n, e);
1762
+ return Rn(e.dl_subscribings, r, t, null, n, e);
1762
1763
  }
1763
1764
  function Ln(e, t, r) {
1764
1765
  if (Bo(r) || (r = {}), !e || e.obflag & (U.obflag_destroyed | U.obflag_destroying)) return ir("gobj NULL or DESTROYED"), -1;
@@ -1766,7 +1767,7 @@
1766
1767
  let o = gn(e, t, !0);
1767
1768
  if (!(o && o.event_flag & (F.EVF_SYSTEM_EVENT | F.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & P.gcflag_no_check_output_events)) return ir(`event NOT in output event list: ${kt(e)}, ev ${t}`), -1;
1768
1769
  let l = (te(e) || oe(e, t)) && !le(e, t);
1769
- if (l && (K(1 === x ? n("🔝🔝 %s %s%s %s", t || "", e.running ? "" : "!!", kt(e), e.current_state.state_name) : n("🔝🔝 mach(%s%s^%s), st: %s, ev: %s%s%s", e.running ? "" : "!!", Dt(e), Rt(e), e.current_state.state_name, "", t || "", "")), re(e) && Vo(r) && $o(r)), e.gclass.gmt.mt_publish_event) {
1770
+ if (l && (K(1 === x ? n("🔝🔝 %s %s%s %s", t || "", e.running ? "" : "!!", kt(e), e.current_state.state_name) : n("🔝🔝 mach(%s%s^%s), st: %s, ev: %s%s%s", e.running ? "" : "!!", Dt(e), At(e), e.current_state.state_name, "", t || "", "")), re(e) && Vo(r) && $o(r)), e.gclass.gmt.mt_publish_event) {
1770
1771
  let n = e.gclass.gmt.mt_publish_event(e, t, r);
1771
1772
  if (n <= 0) return n;
1772
1773
  }
@@ -1793,7 +1794,7 @@
1793
1794
  let p = gn(c, t, !0);
1794
1795
  if (p && p.event_flag & F.EVF_SYSTEM_EVENT && !dn(c, p.event_name, 0)) continue;
1795
1796
  let m = r;
1796
- (xo(i) > 0 || xo(o) > 0) && (m = Do({}, r)), xo(i) > 0 && ol(m, i), xo(o) > 0 && Do(m, Ao(o)), l && (K(1 === x ? n("🔝🔄 %s (%s) %s%s", t || "", d || "", c.running ? "" : "!!", kt(c)) : n("🔝🔄 mach(%s%s), st: %s, ev: %s (%s), from(%s%s)", c.running ? "" : "!!", kt(c), fn(c), t || "", d || "", e && !e.running ? "!!" : "", kt(e))), re(e) && Vo(m) && $o(m));
1797
+ (xo(i) > 0 || xo(o) > 0) && (m = Do({}, r)), xo(i) > 0 && ol(m, i), xo(o) > 0 && Do(m, Ro(o)), l && (K(1 === x ? n("🔝🔄 %s (%s) %s%s", t || "", d || "", c.running ? "" : "!!", kt(c)) : n("🔝🔄 mach(%s%s), st: %s, ev: %s (%s), from(%s%s)", c.running ? "" : "!!", kt(c), fn(c), t || "", d || "", e && !e.running ? "!!" : "", kt(e))), re(e) && Vo(m) && $o(m));
1797
1798
  let h = jn(c, d, m, e);
1798
1799
  if (h < 0 && f & On.__own_event__) {
1799
1800
  s = -1;
@@ -2132,10 +2133,10 @@
2132
2133
  function $r(e) {
2133
2134
  return e >= 48 && e <= 57 || e >= 65 && e <= 90 || e >= 97 && e <= 122;
2134
2135
  }
2135
- function Ar(e) {
2136
+ function Rr(e) {
2136
2137
  return e >= 65 && e <= 90 || e >= 97 && e <= 122;
2137
2138
  }
2138
- function Rr(e) {
2139
+ function Ar(e) {
2139
2140
  return e >= 65 && e <= 90;
2140
2141
  }
2141
2142
  function Dr(e) {
@@ -2196,9 +2197,9 @@
2196
2197
  const o = t + n;
2197
2198
  for (;;) {
2198
2199
  let t = r, n = !0, l = !0;
2199
- for (; t < o && Ar(e.charCodeAt(t));) t > r && (Rr(e.charCodeAt(t)) ? l = !1 : n = !1), t++;
2200
+ for (; t < o && Rr(e.charCodeAt(t));) t > r && (Ar(e.charCodeAt(t)) ? l = !1 : n = !1), t++;
2200
2201
  if (t === r) return !1;
2201
- if (!(l || n && Rr(e.charCodeAt(r)))) return !1;
2202
+ if (!(l || n && Ar(e.charCodeAt(r)))) return !1;
2202
2203
  if (t === o) return !0;
2203
2204
  if ("-" !== e[t] && "." !== e[t] && "/" !== e[t] || t + 1 === o) return !1;
2204
2205
  r = t + 1;
@@ -2614,17 +2615,17 @@
2614
2615
  function $o(e, t) {
2615
2616
  _r(No(e), t);
2616
2617
  }
2617
- function Ao(e) {
2618
+ function Ro(e) {
2618
2619
  return structuredClone(e);
2619
2620
  }
2620
- function Ro(e, t) {
2621
+ function Ao(e, t) {
2621
2622
  if (e === t) return !0;
2622
2623
  if (null === e || null === t) return e === t;
2623
2624
  if (typeof e != typeof t) return !1;
2624
2625
  if (Array.isArray(e) !== Array.isArray(t)) return !1;
2625
2626
  if (Array.isArray(e)) {
2626
2627
  if (e.length !== t.length) return !1;
2627
- for (let n = 0; n < e.length; n++) if (!Ro(e[n], t[n])) return !1;
2628
+ for (let n = 0; n < e.length; n++) if (!Ao(e[n], t[n])) return !1;
2628
2629
  return !0;
2629
2630
  }
2630
2631
  if ("object" == typeof e) {
@@ -2632,7 +2633,7 @@
2632
2633
  if (n.length !== r.length) return !1;
2633
2634
  for (let o = 0; o < n.length; o++) {
2634
2635
  if (n[o] !== r[o]) return !1;
2635
- if (!Ro(e[n[o]], t[r[o]])) return !1;
2636
+ if (!Ao(e[n[o]], t[r[o]])) return !1;
2636
2637
  }
2637
2638
  return !0;
2638
2639
  }
@@ -3069,7 +3070,7 @@
3069
3070
  }
3070
3071
  else ir(`kw_remove_local_storage_value(): invalid key: key=${e}`);
3071
3072
  }
3072
- function Al(e, t) {
3073
+ function Rl(e, t) {
3073
3074
  if (zo(e) || zo(t)) return !0;
3074
3075
  if (Yo(e)) {
3075
3076
  if (0 === e.length) return !0;
@@ -3080,7 +3081,7 @@
3080
3081
  } else if (Jo(e) && e === t) return !0;
3081
3082
  return !1;
3082
3083
  }
3083
- function Rl(e, t, n, r, o) {
3084
+ function Al(e, t, n, r, o) {
3084
3085
  if (e && !Xo(e) && ir("GObj bad instanceof"), !t) return null;
3085
3086
  o || (o = vl);
3086
3087
  let l = [];
@@ -3091,13 +3092,13 @@
3091
3092
  if (!Jo(a)) continue;
3092
3093
  s = a;
3093
3094
  }
3094
- Al(n, s) && o(a, r) && l.push(a);
3095
+ Rl(n, s) && o(a, r) && l.push(a);
3095
3096
  }
3096
3097
  else {
3097
3098
  if (!Bo(t)) return ir("kw_collect() BAD kw parameter"), null;
3098
3099
  for (let e of Object.keys(t)) {
3099
3100
  let i = t[e];
3100
- Al(n, e) && o(i, r) && l.push(i);
3101
+ Rl(n, e) && o(i, r) && l.push(i);
3101
3102
  }
3102
3103
  }
3103
3104
  return l;
@@ -3256,8 +3257,8 @@
3256
3257
  const n = Array.from(t, (e) => e.toString(16).padStart(2, "0")).join("");
3257
3258
  return `${n.slice(0, 8)}-${n.slice(8, 12)}-${n.slice(12, 16)}-${n.slice(16, 20)}-${n.slice(20)}`;
3258
3259
  }
3259
- var Xl = null;
3260
- function Zl() {
3260
+ var Xl = null, Zl = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
3261
+ function ei() {
3261
3262
  if (Xl) return Xl;
3262
3263
  const e = jl();
3263
3264
  if (!e) return Xl = Ql();
@@ -3267,7 +3268,7 @@
3267
3268
  } catch (e) {
3268
3269
  return Sl("host_uuid", "node_uuid(): localStorage cannot be read (storage blocked?): a uuid of this page only"), Xl = Ql();
3269
3270
  }
3270
- if (!t) {
3271
+ if (t && !Zl.test(t) && (sr("node_uuid(): the stored host_uuid is not a uuid: a new one replaces it"), t = null), !t) {
3271
3272
  t = Ql();
3272
3273
  try {
3273
3274
  e.setItem("host_uuid", t);
@@ -3277,16 +3278,16 @@
3277
3278
  }
3278
3279
  return Xl = t;
3279
3280
  }
3280
- function ei(e) {
3281
+ function ti(e) {
3281
3282
  let t = null;
3282
3283
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
3283
3284
  }
3284
- var ti = 256, ni = 1e5;
3285
- function ri(e) {
3285
+ var ni = 256, ri = 1e5;
3286
+ function oi(e) {
3286
3287
  const t = String(e).replace(/`/g, "``");
3287
3288
  return "[" === t[0] ? "[" + t : t;
3288
3289
  }
3289
- function oi(e) {
3290
+ function li(e) {
3290
3291
  if ("string" != typeof e) return null;
3291
3292
  let t = [], n = "";
3292
3293
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -3307,13 +3308,13 @@
3307
3308
  return null !== t ? t : "[" === e[0] && "[" === e[1] ? e.slice(1) : e;
3308
3309
  });
3309
3310
  }
3310
- function li(e, t) {
3311
+ function ii(e, t) {
3311
3312
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
3312
3313
  }
3313
- function ii(e) {
3314
+ function si(e) {
3314
3315
  return "persistent-attrs-" + kt(e);
3315
3316
  }
3316
- function si(e, t) {
3317
+ function ai(e, t) {
3317
3318
  if (Jo(t)) {
3318
3319
  if (-1 === t.indexOf("^")) {
3319
3320
  let n, r, o = e.fkey;
@@ -3343,7 +3344,7 @@
3343
3344
  hook_name: t.hook_name
3344
3345
  } : (ir("bad fkey 3"), ir(e), ir(t), null);
3345
3346
  }
3346
- var ai = [
3347
+ var ui = [
3347
3348
  "string",
3348
3349
  "integer",
3349
3350
  "object",
@@ -3353,7 +3354,7 @@
3353
3354
  "real",
3354
3355
  "boolean",
3355
3356
  "blob"
3356
- ], ui = [
3357
+ ], _i = [
3357
3358
  "persistent",
3358
3359
  "required",
3359
3360
  "notnull",
@@ -3365,7 +3366,7 @@
3365
3366
  "stats",
3366
3367
  "rstats",
3367
3368
  "pstats"
3368
- ], _i = [
3369
+ ], ci = [
3369
3370
  "hook",
3370
3371
  "fkey",
3371
3372
  "enum",
@@ -3394,7 +3395,7 @@
3394
3395
  "coordinates",
3395
3396
  "gbuffer"
3396
3397
  ];
3397
- function ci(e) {
3398
+ function fi(e) {
3398
3399
  let t = {
3399
3400
  name: e.id,
3400
3401
  header: e.header,
@@ -3413,7 +3414,7 @@
3413
3414
  if (!e.flag) return t;
3414
3415
  for (let n = 0; n < e.flag.length; n++) {
3415
3416
  let r = e.flag[n];
3416
- if (kl(_i, r)) {
3417
+ if (kl(ci, r)) {
3417
3418
  switch (r) {
3418
3419
  case "enum":
3419
3420
  t.enum_list = e.enum;
@@ -3427,7 +3428,7 @@
3427
3428
  case "file": t.is_file = !0;
3428
3429
  }
3429
3430
  t.type = r;
3430
- } else if (kl(ui, r)) switch (r) {
3431
+ } else if (kl(_i, r)) switch (r) {
3431
3432
  case "writable":
3432
3433
  t.is_writable = !0;
3433
3434
  break;
@@ -3440,23 +3441,23 @@
3440
3441
  }
3441
3442
  return t.is_file && (t.type = "file"), t;
3442
3443
  }
3443
- var fi = [
3444
+ var gi = [
3444
3445
  k(E.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
3445
3446
  k(E.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
3446
3447
  k(E.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
3447
3448
  D()
3448
- ], gi = {
3449
+ ], di = {
3449
3450
  periodic: !1,
3450
3451
  msec: 0,
3451
3452
  timer_id: -1
3452
- }, di = null;
3453
- function bi(e, t, n, r) {
3453
+ }, bi = null;
3454
+ function pi(e, t, n, r) {
3454
3455
  let o = e.priv, l = o.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
3455
3456
  return o.periodic && o.msec > 0 ? o.timer_id = setTimeout(function() {
3456
3457
  jn(e, "EV_TIMEOUT", {}, e);
3457
3458
  }, o.msec) : o.timer_id = -1, Ln(e, l, {}), o.periodic || -1 !== o.timer_id || Tt(e) && mt(e), 0;
3458
3459
  }
3459
- var pi = {
3460
+ var mi = {
3460
3461
  mt_create: function(e) {
3461
3462
  let t = e.priv, n = nn(e, "subscriber");
3462
3463
  n ? kn(e, null, {}, n) : Lt(e) && (n = It(e), kn(e, null, {}, n)), t.periodic = Zt(e, "periodic"), t.msec = en(e, "msec");
@@ -3480,19 +3481,19 @@
3480
3481
  },
3481
3482
  mt_destroy: function(e) {}
3482
3483
  };
3483
- function mi(e) {
3484
+ function hi(e) {
3484
3485
  return "number" == typeof e && Number.isFinite(e) ? Math.round(e) : e;
3485
3486
  }
3486
- function hi(e, t) {
3487
- return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : (an(e, "periodic", !1), void un(e, "msec", mi(t))) : (ir("not GObj TYPE"), -1);
3488
- }
3489
3487
  function yi(e, t) {
3490
- return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : (an(e, "periodic", !0), void un(e, "msec", mi(t))) : (ir("not GObj TYPE"), -1);
3488
+ return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : (an(e, "periodic", !1), void un(e, "msec", hi(t))) : (ir("not GObj TYPE"), -1);
3489
+ }
3490
+ function vi(e, t) {
3491
+ return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : (an(e, "periodic", !0), void un(e, "msec", hi(t))) : (ir("not GObj TYPE"), -1);
3491
3492
  }
3492
- function vi(e) {
3493
+ function Ei(e) {
3493
3494
  return e instanceof I ? "C_TIMER" !== Dt(e) ? (ir("not C_TIMER GObj"), -1) : void un(e, "msec", -1) : (ir("not GObj TYPE"), -1);
3494
3495
  }
3495
- var Ei = [
3496
+ var Ti = [
3496
3497
  k(E.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
3497
3498
  k(E.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
3498
3499
  k(E.DTP_STRING, "__username__", 0, "", "Username"),
@@ -3506,41 +3507,41 @@
3506
3507
  k(E.DTP_STRING, "yuno_version", 0, "", "Yuno version (APP_VERSION)"),
3507
3508
  k(E.DTP_STRING, "yuneta_version", 0, i, "Yuneta version"),
3508
3509
  k(E.DTP_LIST, "required_services", 0, "[]", "Required services"),
3509
- k(E.DTP_DICT, "trace_levels", A.SDF_PERSIST, "{}", "Trace levels"),
3510
- k(E.DTP_DICT, "no_trace_levels", A.SDF_PERSIST, "{}", "No trace levels"),
3510
+ k(E.DTP_DICT, "trace_levels", R.SDF_PERSIST, "{}", "Trace levels"),
3511
+ k(E.DTP_DICT, "no_trace_levels", R.SDF_PERSIST, "{}", "No trace levels"),
3511
3512
  k(E.DTP_POINTER, "trace_ievent_callback", 0, null, "Where the traffic trace goes (C_IEVENT_CLI levels ievents/ievents2); console when null"),
3512
3513
  k(E.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
3513
3514
  k(E.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
3514
3515
  D()
3515
- ], Ti = { gobj_timer: null }, ji = null;
3516
- function Oi(e, t, n, r) {
3516
+ ], ji = { gobj_timer: null }, Oi = null;
3517
+ function Si(e, t, n, r) {
3517
3518
  let o = Qt(e, t);
3518
3519
  return Bo(o) || (o = {}), o[n] = r, rn(e, t, o), it(e, t);
3519
3520
  }
3520
- var Si = -2147483648, wi = 2147483647;
3521
- function Ni(e) {
3521
+ var wi = -2147483648, Ni = 2147483647;
3522
+ function $i(e) {
3522
3523
  if (!0 === e || !1 === e) return e;
3523
- if ("number" == typeof e) return !Number.isInteger(e) || e < Si || e > wi ? null : 0 !== e;
3524
+ if ("number" == typeof e) return !Number.isInteger(e) || e < wi || e > Ni ? null : 0 !== e;
3524
3525
  if ("string" != typeof e || "" === e) return null;
3525
3526
  let t = e.toLowerCase();
3526
3527
  if ("set" === t) return !0;
3527
3528
  if ("reset" === t) return !1;
3528
3529
  if (/^-?(0|[1-9][0-9]*)$/.test(e)) {
3529
3530
  let t = Number(e);
3530
- return t < Si || t > wi ? null : 0 !== t;
3531
+ return t < wi || t > Ni ? null : 0 !== t;
3531
3532
  }
3532
3533
  return "true" === t || "yes" === t || "on" === t || "false" !== t && "no" !== t && "off" !== t && null;
3533
3534
  }
3534
- function $i() {
3535
+ function Ri() {
3535
3536
  return `${$t()}^${Nt()}`;
3536
3537
  }
3537
3538
  function Ai(e, t, n, r) {
3538
3539
  return Ln(e, t, n), 0;
3539
3540
  }
3540
- var Ri = {
3541
+ var Di = {
3541
3542
  mt_create: function(e) {
3542
3543
  let t = e.priv;
3543
- _n(e, "start_date", Hl()), _n(e, "node_uuid", Zl()), e.priv.gobj_timer = _t(Rt(e), "C_TIMER", {}, e), t.periodic_timeout = Qt(e, "periodic_timeout"), function(e) {
3544
+ _n(e, "start_date", Hl()), _n(e, "node_uuid", ei()), e.priv.gobj_timer = _t(At(e), "C_TIMER", {}, e), t.periodic_timeout = Qt(e, "periodic_timeout"), function(e) {
3544
3545
  let t = Qt(e, "trace_levels");
3545
3546
  if (!Bo(t)) return 0;
3546
3547
  let n = t.__global_trace__;
@@ -3553,7 +3554,7 @@
3553
3554
  if (t) if (Yo(r)) {
3554
3555
  be(t, null, !1);
3555
3556
  for (let e of r) be(t, e, !0);
3556
- } else ir(`${Rt(e)}: trace_levels of ${n} MUST be a list`);
3557
+ } else ir(`${At(e)}: trace_levels of ${n} MUST be a list`);
3557
3558
  }
3558
3559
  }(e), function(e) {
3559
3560
  let t = Qt(e, "no_trace_levels");
@@ -3568,16 +3569,16 @@
3568
3569
  if (t) if (Yo(r)) {
3569
3570
  pe(t, null, !1);
3570
3571
  for (let e of r) pe(t, e, !0);
3571
- } else ir(`${Rt(e)}: no_trace_levels of ${n} MUST be a list`);
3572
+ } else ir(`${At(e)}: no_trace_levels of ${n} MUST be a list`);
3572
3573
  }
3573
3574
  }(e);
3574
3575
  },
3575
3576
  mt_writing: function(e, t) {},
3576
3577
  mt_start: function(e) {
3577
- return yi(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
3578
+ return vi(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
3578
3579
  },
3579
3580
  mt_stop: function(e) {
3580
- return vi(e.priv.gobj_timer), yt(e), 0;
3581
+ return Ei(e.priv.gobj_timer), yt(e), 0;
3581
3582
  },
3582
3583
  mt_destroy: function(e) {},
3583
3584
  mt_play: function(e) {
@@ -3594,49 +3595,49 @@
3594
3595
  case "get-global-no-trace": return o(0, 0, null, null, ce());
3595
3596
  case "set-global-trace":
3596
3597
  case "set-global-no-trace": {
3597
- let r = "set-global-no-trace" === t, l = n.level, i = Ni(n.set);
3598
- return l ? null === i ? o(0, -1, `${$i()}: bitmask set or re-set?`, null, null) : (r ? se(l, i) : ie(l, i)) < 0 ? o(0, -1, `${$i()}: global trace level not found: ${l}`, null, null) : r ? (Oi(e, "no_trace_levels", "__global_no_trace__", ce()), o(0, 0, null, null, ce())) : (Oi(e, "trace_levels", "__global_trace__", _e()), o(0, 0, null, null, _e())) : o(0, -1, `${$i()}: what level?`, null, null);
3598
+ let r = "set-global-no-trace" === t, l = n.level, i = $i(n.set);
3599
+ return l ? null === i ? o(0, -1, `${Ri()}: bitmask set or re-set?`, null, null) : (r ? se(l, i) : ie(l, i)) < 0 ? o(0, -1, `${Ri()}: global trace level not found: ${l}`, null, null) : r ? (Si(e, "no_trace_levels", "__global_no_trace__", ce()), o(0, 0, null, null, ce())) : (Si(e, "trace_levels", "__global_trace__", _e()), o(0, 0, null, null, _e())) : o(0, -1, `${Ri()}: what level?`, null, null);
3599
3600
  }
3600
3601
  case "get-gclass-trace":
3601
3602
  case "get-gclass-no-trace":
3602
3603
  case "set-gclass-trace":
3603
3604
  case "set-gclass-no-trace": {
3604
3605
  let r = t.indexOf("no-trace") >= 0, l = n.gclass_name || n.gclass || "", i = et(l);
3605
- if (!i) return o(0, -1, `${$i()}: what gclass is '${l}'?`, null, null);
3606
+ if (!i) return o(0, -1, `${Ri()}: what gclass is '${l}'?`, null, null);
3606
3607
  if (0 === t.indexOf("get-")) return o(0, 0, null, null, r ? de(i) : fe(i));
3607
- let s = n.level, a = Ni(n.set);
3608
- return s ? null === a ? o(0, -1, `${$i()}: bitmask set or re-set?`, null, null) : (r ? pe(i, s, a) : be(i, s, a)) < 0 ? o(0, -1, `${$i()}: trace level of ${l} not found: ${s}`, null, null) : r ? (Oi(e, "no_trace_levels", l, de(i)), o(0, 0, null, null, de(i))) : (Oi(e, "trace_levels", l, ge(i)), o(0, 0, null, null, fe(i))) : o(0, -1, `${$i()}: what level?`, null, null);
3608
+ let s = n.level, a = $i(n.set);
3609
+ return s ? null === a ? o(0, -1, `${Ri()}: bitmask set or re-set?`, null, null) : (r ? pe(i, s, a) : be(i, s, a)) < 0 ? o(0, -1, `${Ri()}: trace level of ${l} not found: ${s}`, null, null) : r ? (Si(e, "no_trace_levels", l, de(i)), o(0, 0, null, null, de(i))) : (Si(e, "trace_levels", l, ge(i)), o(0, 0, null, null, fe(i))) : o(0, -1, `${Ri()}: what level?`, null, null);
3609
3610
  }
3610
- default: return o(0, -1, `${$i()}: command not available: ${t}`, null, null);
3611
+ default: return o(0, -1, `${Ri()}: command not available: ${t}`, null, null);
3611
3612
  }
3612
3613
  }
3613
3614
  };
3614
- var Di = "ievent_gate_stack", ki = [
3615
- k(E.DTP_STRING, "wanted_yuno_role", A.SDF_RD, "", "wanted yuno role"),
3616
- k(E.DTP_STRING, "wanted_yuno_name", A.SDF_RD, "", "wanted yuno name"),
3617
- k(E.DTP_STRING, "wanted_yuno_service", A.SDF_RD, "", "wanted yuno service"),
3618
- k(E.DTP_STRING, "remote_yuno_role", A.SDF_RD, "", "confirmed remote yuno role"),
3619
- k(E.DTP_STRING, "remote_yuno_name", A.SDF_RD, "", "confirmed remote yuno name"),
3620
- k(E.DTP_STRING, "remote_yuno_service", A.SDF_RD, "", "confirmed remote yuno service"),
3621
- k(E.DTP_STRING, "url", A.SDF_RD, "", "Url to connect"),
3622
- k(E.DTP_STRING, "jwt", A.SDF_PERSIST, "", "JWT"),
3623
- k(E.DTP_STRING, "cert_pem", A.SDF_PERSIST, "", "SSL server certification, PEM str format"),
3624
- k(E.DTP_JSON, "extra_info", A.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
3625
- k(E.DTP_LIST, "required_services", A.SDF_RD, "[]", "Services this LINK requires (identity card). Empty = the yuno's `required_services`, as before. A yuno with several links to DIFFERENT backends must set it per link: the yuno-wide list is the union, so every backend is told the service names of all the others."),
3626
- k(E.DTP_INTEGER, "timeout_retry", A.SDF_RD, "5000", "Base of the first reconnect delay (ms, ±20% jitter), at least 1000. It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
3627
- k(E.DTP_INTEGER, "timeout_retry_max", A.SDF_RD, "60000", "Cap of the reconnect backoff (ms). Set it equal to timeout_retry for the old fixed-interval behaviour"),
3628
- k(E.DTP_INTEGER, "timeout_idack", A.SDF_RD, "5000", "timeout waiting idAck"),
3615
+ var ki = "ievent_gate_stack", Ci = [
3616
+ k(E.DTP_STRING, "wanted_yuno_role", R.SDF_RD, "", "wanted yuno role"),
3617
+ k(E.DTP_STRING, "wanted_yuno_name", R.SDF_RD, "", "wanted yuno name"),
3618
+ k(E.DTP_STRING, "wanted_yuno_service", R.SDF_RD, "", "wanted yuno service"),
3619
+ k(E.DTP_STRING, "remote_yuno_role", R.SDF_RD, "", "confirmed remote yuno role"),
3620
+ k(E.DTP_STRING, "remote_yuno_name", R.SDF_RD, "", "confirmed remote yuno name"),
3621
+ k(E.DTP_STRING, "remote_yuno_service", R.SDF_RD, "", "confirmed remote yuno service"),
3622
+ k(E.DTP_STRING, "url", R.SDF_RD, "", "Url to connect"),
3623
+ k(E.DTP_STRING, "jwt", R.SDF_PERSIST, "", "JWT"),
3624
+ k(E.DTP_STRING, "cert_pem", R.SDF_PERSIST, "", "SSL server certification, PEM str format"),
3625
+ k(E.DTP_JSON, "extra_info", R.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
3626
+ k(E.DTP_LIST, "required_services", R.SDF_RD, "[]", "Services this LINK requires (identity card). Empty = the yuno's `required_services`, as before. A yuno with several links to DIFFERENT backends must set it per link: the yuno-wide list is the union, so every backend is told the service names of all the others."),
3627
+ k(E.DTP_INTEGER, "timeout_retry", R.SDF_RD, "5000", "Base of the first reconnect delay (ms, ±20% jitter), at least 1000. It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
3628
+ k(E.DTP_INTEGER, "timeout_retry_max", R.SDF_RD, "60000", "Cap of the reconnect backoff (ms). Set it equal to timeout_retry for the old fixed-interval behaviour"),
3629
+ k(E.DTP_INTEGER, "timeout_idack", R.SDF_RD, "5000", "timeout waiting idAck"),
3629
3630
  k(E.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
3630
3631
  D()
3631
- ], Ci = [
3632
+ ], Ii = [
3632
3633
  ["ievents", "Trace inter-events with metadata of kw"],
3633
3634
  ["ievents2", "Trace inter-events with full kw"],
3634
3635
  ["identity-card", "Trace identity_card messages"]
3635
3636
  ];
3636
- function Ii(e) {
3637
+ function Pi(e) {
3637
3638
  return !!(3 & X(e));
3638
3639
  }
3639
- var Pi = {
3640
+ var Li = {
3640
3641
  url: null,
3641
3642
  remote_yuno_name: null,
3642
3643
  remote_yuno_role: null,
@@ -3649,8 +3650,8 @@
3649
3650
  retry_ms_before_session: 0,
3650
3651
  session_since: 0,
3651
3652
  retry_floor_warned: !1
3652
- }, Li = null;
3653
- function Ui(e) {
3653
+ }, Ui = null;
3654
+ function Fi(e) {
3654
3655
  e.priv.websocket && ir("Websocket ALREADY setup");
3655
3656
  const t = tn(e, "url");
3656
3657
  ar(`====> Starting WebSocket to '${t}' (${kt(e)})`);
@@ -3665,7 +3666,7 @@
3665
3666
  code: 1006,
3666
3667
  reason: r.message,
3667
3668
  was_clean: !1
3668
- }, e) < 0 && hi(e.priv.gobj_timer, Zi(e)), null;
3669
+ }, e) < 0 && yi(e.priv.gobj_timer, es(e)), null;
3669
3670
  }
3670
3671
  return r ? (r.onopen = () => {
3671
3672
  n !== e.priv.ws_seq || Ut(e) || jn(e, "EV_ON_OPEN", {
@@ -3687,7 +3688,7 @@
3687
3688
  }, e));
3688
3689
  }, r) : (ir(`${kt(e)}: Failed to initialize WebSocket.`), null);
3689
3690
  }
3690
- function Fi(e, t = 1e3, n = "") {
3691
+ function Mi(e, t = 1e3, n = "") {
3691
3692
  let r = e.priv, o = r.websocket;
3692
3693
  if (r.websocket = null, o && o.readyState !== WebSocket.CLOSED && o.readyState !== WebSocket.CLOSING) {
3693
3694
  ar(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
@@ -3698,12 +3699,12 @@
3698
3699
  }
3699
3700
  } else sr("WebSocket is already closed or in the process of closing.");
3700
3701
  }
3701
- function Mi(e, t) {
3702
+ function Gi(e, t) {
3702
3703
  let n = e.priv;
3703
- "ST_SESSION" === fn(e) && (performance.now() - n.session_since < Xi(e).max && (n.retry_ms = n.retry_ms_before_session), n.retry_ms_before_session = 0), Fi(e, 4002, t);
3704
+ "ST_SESSION" === fn(e) && (performance.now() - n.session_since < Zi(e).max && (n.retry_ms = n.retry_ms_before_session), n.retry_ms_before_session = 0), Mi(e, 4002, t);
3704
3705
  }
3705
- var Gi = 128;
3706
- function Vi(e, t) {
3706
+ var Vi = 128;
3707
+ function Wi(e, t) {
3707
3708
  let n = String(e), r = To(n);
3708
3709
  if (null !== r && (n = r), n.length > t) {
3709
3710
  let e = t, r = n.charCodeAt(e);
@@ -3711,7 +3712,7 @@
3711
3712
  }
3712
3713
  return n;
3713
3714
  }
3714
- function Wi(e, t, n) {
3715
+ function xi(e, t, n) {
3715
3716
  let r = Hl();
3716
3717
  try {
3717
3718
  ar("\n" + r + " " + t + "\n"), $o(n);
@@ -3719,17 +3720,17 @@
3719
3720
  ar("ERROR in trace_inter_event: " + e);
3720
3721
  }
3721
3722
  }
3722
- var xi = class {
3723
+ var Ki = class {
3723
3724
  constructor(e, t) {
3724
3725
  this.event = e, this.kw = t || {};
3725
3726
  }
3726
3727
  };
3727
- function Ki(e, t, n, r) {
3728
+ function Bi(e, t, n, r) {
3728
3729
  return function(e, t) {
3729
3730
  let n = e.priv, r = JSON.stringify(t);
3730
- if (Ii(e)) {
3731
- let n = tn(e, "url"), o = Rt(wt()) + " ==> " + n, l = Qt(wt(), "trace_ievent_callback");
3732
- l ? l(o, t, 1, r.length) : Wi(0, o, t);
3731
+ if (Pi(e)) {
3732
+ let n = tn(e, "url"), o = At(wt()) + " ==> " + n, l = Qt(wt(), "trace_ievent_callback");
3733
+ l ? l(o, t, 1, r.length) : xi(0, o, t);
3733
3734
  }
3734
3735
  if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return sr(`${kt(e)}: send_iev(): websocket not open, message lost`), -1;
3735
3736
  try {
@@ -3739,10 +3740,10 @@
3739
3740
  }
3740
3741
  return 0;
3741
3742
  }(e, function(e, t) {
3742
- return Zo(e) ? (ir("iev_create() event NULL"), null) : new xi(e, t);
3743
+ return Zo(e) ? (ir("iev_create() event NULL"), null) : new Ki(e, t);
3743
3744
  }(t, n));
3744
3745
  }
3745
- function Bi(e, t, n) {
3746
+ function Yi(e, t, n) {
3746
3747
  return Zo(n) && (n = tn(e, "wanted_yuno_service")), {
3747
3748
  dst_yuno: tn(e, "wanted_yuno_name"),
3748
3749
  dst_role: tn(e, "wanted_yuno_role"),
@@ -3750,15 +3751,15 @@
3750
3751
  src_yuno: Nt(),
3751
3752
  src_role: $t(),
3752
3753
  src_service: t,
3753
- host: Zl()
3754
+ host: ei()
3754
3755
  };
3755
3756
  }
3756
- function Yi(e) {
3757
+ function Ji(e) {
3757
3758
  let t = e.priv, n = St(wt()), r = tn(wt(), "yuno_version"), o = tn(wt(), "yuno_release"), l = tn(wt(), "yuno_tag"), s = Qt(e, "required_services");
3758
3759
  s && s.length || (s = Qt(wt(), "required_services"));
3759
3760
  let a = {
3760
3761
  yuno_role: $t(),
3761
- yuno_id: At(),
3762
+ yuno_id: Rt(),
3762
3763
  yuno_name: Nt(),
3763
3764
  yuno_tag: l,
3764
3765
  yuno_version: r,
@@ -3771,32 +3772,32 @@
3771
3772
  username: tn(wt(), "__username__"),
3772
3773
  launch_id: 0,
3773
3774
  yuno_startdate: tn(wt(), "start_date"),
3774
- id: Zl(),
3775
+ id: ei(),
3775
3776
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
3776
3777
  language: "undefined" != typeof window ? window.navigator.language : "",
3777
3778
  required_services: s
3778
3779
  };
3779
- return Pl(e, a, Di, Bi(e, Rt(It(e)), null)), Ul(e, a, "__identity__"), hi(t.gobj_timer, en(e, "timeout_idack")), Ki(e, "EV_IDENTITY_CARD", a);
3780
+ return Pl(e, a, ki, Yi(e, At(It(e)), null)), Ul(e, a, "__identity__"), yi(t.gobj_timer, en(e, "timeout_idack")), Bi(e, "EV_IDENTITY_CARD", a);
3780
3781
  }
3781
- function Ji(e, t) {
3782
+ function qi(e, t) {
3782
3783
  if (Zo(t.event)) return -1;
3783
3784
  let n = {}, r = t.__global__, o = t.__config__, l = t.__filter__, i = t.__service__, s = t.subscriber;
3784
3785
  o && (n.__config__ = o), r && (n.__global__ = r), l && (n.__filter__ = l);
3785
- return Pl(e, n, Di, Bi(e, Rt(s), i)), Ul(e, n, "__subscribing__"), Ki(e, t.event, n);
3786
- }
3787
- function qi(e, t, n, r) {
3788
- let o = e.priv;
3789
- return Tt(e) && (o.websocket = Ui(e)), 0;
3786
+ return Pl(e, n, ki, Yi(e, At(s), i)), Ul(e, n, "__subscribing__"), Bi(e, t.event, n);
3790
3787
  }
3791
3788
  function Hi(e, t, n, r) {
3792
- return ar("Websocket opened: " + e.priv.url), Yi(e), 0;
3789
+ let o = e.priv;
3790
+ return Tt(e) && (o.websocket = Fi(e)), 0;
3793
3791
  }
3794
3792
  function zi(e, t, n, r) {
3793
+ return ar("Websocket opened: " + e.priv.url), Ji(e), 0;
3794
+ }
3795
+ function Qi(e, t, n, r) {
3795
3796
  let o = e.priv, l = n.url;
3796
3797
  if (void 0 !== n.ws_seq && n.ws_seq !== o.ws_seq) return 0;
3797
3798
  Xn();
3798
- const i = Vi(void 0 === n.reason ? "" : n.reason, 256);
3799
- return Ii(e) && ur(`${kt(e)}: WebSocket closed ${l} (Code: ${n.code}, Reason: "${i}", 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, (!n.was_clean || 1e3 !== n.code && 1001 !== n.code) && Tt(e) && sr(`${kt(e)}: session closed ${l} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), Ln(e, "EV_ON_CLOSE", {
3799
+ const i = Wi(void 0 === n.reason ? "" : n.reason, 256);
3800
+ return Pi(e) && ur(`${kt(e)}: WebSocket closed ${l} (Code: ${n.code}, Reason: "${i}", 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, (!n.was_clean || 1e3 !== n.code && 1001 !== n.code) && Tt(e) && sr(`${kt(e)}: session closed ${l} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), Ln(e, "EV_ON_CLOSE", {
3800
3801
  url: l,
3801
3802
  remote_yuno_name: o.remote_yuno_name,
3802
3803
  remote_yuno_role: o.remote_yuno_role,
@@ -3812,33 +3813,33 @@
3812
3813
  code: n.code,
3813
3814
  reason: i,
3814
3815
  was_clean: n.was_clean
3815
- })), Tt(e) && hi(o.gobj_timer, Zi(e)), 0;
3816
+ })), Tt(e) && yi(o.gobj_timer, es(e)), 0;
3816
3817
  }
3817
- var Qi = 1e3;
3818
- function Xi(e) {
3818
+ var Xi = 1e3;
3819
+ function Zi(e) {
3819
3820
  let t = e.priv, n = en(e, "timeout_retry"), r = en(e, "timeout_retry_max");
3820
- return n >= Qi || (t.retry_floor_warned || (t.retry_floor_warned = !0, sr(`${kt(e)}: timeout_retry ${n} ms is below ${Qi} ms: ${Qi} ms is used`)), n = Qi), r >= n || (r = n), {
3821
+ return n >= Xi || (t.retry_floor_warned || (t.retry_floor_warned = !0, sr(`${kt(e)}: timeout_retry ${n} ms is below ${Xi} ms: ${Xi} ms is used`)), n = Xi), r >= n || (r = n), {
3821
3822
  base: n,
3822
3823
  max: r
3823
3824
  };
3824
3825
  }
3825
- function Zi(e) {
3826
+ function es(e) {
3826
3827
  let t = e.priv;
3827
- const { base: n, max: r } = Xi(e);
3828
+ const { base: n, max: r } = Zi(e);
3828
3829
  t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
3829
3830
  let o = .2 * t.retry_ms, l = t.retry_ms - o + 2 * Math.random() * o;
3830
3831
  return Math.max(1, Math.round(l));
3831
3832
  }
3832
- function es(e, t, n, r) {
3833
- return Yi(e), 0;
3834
- }
3835
3833
  function ts(e, t, n, r) {
3834
+ return Ji(e), 0;
3835
+ }
3836
+ function ns(e, t, n, r) {
3836
3837
  let o = e.priv;
3837
- vi(o.gobj_timer);
3838
- let l = Ll(e, n, Di, !0), i = gl(e, l, "src_yuno", ""), s = gl(e, l, "src_role", ""), a = gl(e, l, "src_service", "");
3838
+ Ei(o.gobj_timer);
3839
+ let l = Ll(e, n, ki, !0), i = gl(e, l, "src_yuno", ""), s = gl(e, l, "src_role", ""), a = gl(e, l, "src_service", "");
3839
3840
  _n(e, "remote_yuno_name", i), _n(e, "remote_yuno_role", s), _n(e, "remote_yuno_service", a);
3840
3841
  let u = fl(e, n, "result", -1, 0), _ = gl(e, n, "comment", "", 0), c = gl(e, n, "username", "", 0), f = pl(e, n, "services_roles", {});
3841
- if (u < 0) Fi(e), Ln(e, "EV_ON_ID_NAK", {
3842
+ if (u < 0) Mi(e), Ln(e, "EV_ON_ID_NAK", {
3842
3843
  url: tn(e, "url"),
3843
3844
  result: u,
3844
3845
  comment: _,
@@ -3855,11 +3856,11 @@
3855
3856
  services_roles: f
3856
3857
  })), o.inside_on_open = !1, function(e) {
3857
3858
  let t = In(e, null, null, null);
3858
- for (let n = 0; n < t.length; n++) Ji(e, t[n]);
3859
+ for (let n = 0; n < t.length; n++) qi(e, t[n]);
3859
3860
  }(e);
3860
3861
  return 0;
3861
3862
  }
3862
- function ns(e, t, n, r) {
3863
+ function rs(e, t, n, r) {
3863
3864
  let o = e.priv.url, l = function(e, t) {
3864
3865
  let n;
3865
3866
  try {
@@ -3878,52 +3879,52 @@
3878
3879
  kw: o || {}
3879
3880
  } : (sr(`${kt(e)}: parsing inter_event: kw not a json object`), null) : (sr(`${kt(e)}: parsing inter_kw: no kw`), null);
3880
3881
  }(e, n.data);
3881
- if (!l) return sr(`${kt(e)}: frame dropped from ${o}: ${Vi(n.data, 256)}`), -1;
3882
- if (Ii(e)) {
3883
- let e = Rt(wt()) + " <== " + o, t = n.data.length, r = Qt(wt(), "trace_ievent_callback");
3884
- r ? r(e, l, 2, t) : Wi(0, e, l);
3882
+ if (!l) return sr(`${kt(e)}: frame dropped from ${o}: ${Wi(n.data, 256)}`), -1;
3883
+ if (Pi(e)) {
3884
+ let e = At(wt()) + " <== " + o, t = n.data.length, r = Qt(wt(), "trace_ievent_callback");
3885
+ r ? r(e, l, 2, t) : xi(0, e, l);
3885
3886
  }
3886
3887
  let i = l.event, s = l.kw;
3887
3888
  if ("ST_SESSION" !== fn(e)) {
3888
3889
  if ("ev_identity_card_ack" === String(i).toLowerCase()) {
3889
3890
  if (!(jn(e, "EV_IDENTITY_CARD_ACK", s, e) < 0)) return 0;
3890
- } else sr(`${kt(e)}: event UNKNOWN in not-session state ${Vi(i, Gi)}`);
3891
- return Mi(e, "event out of session"), -1;
3891
+ } else sr(`${kt(e)}: event UNKNOWN in not-session state ${Wi(i, Vi)}`);
3892
+ return Gi(e, "event out of session"), -1;
3892
3893
  }
3893
3894
  l = null;
3894
- let a = Fl(e, s), u = Ll(e, s, Di), _ = gl(e, u, "dst_role", "");
3895
- if (!Zo(_) && _.toLowerCase() !== String($t()).toLowerCase()) return sr(`${kt(e)}: It's not my role, dst_role: ${Vi(_, Gi)}, my_role: ${$t()}, event: ${Vi(i, Gi)}`), Mi(e, "not my role"), -1;
3895
+ let a = Fl(e, s), u = Ll(e, s, ki), _ = gl(e, u, "dst_role", "");
3896
+ if (!Zo(_) && _.toLowerCase() !== String($t()).toLowerCase()) return sr(`${kt(e)}: It's not my role, dst_role: ${Wi(_, Vi)}, my_role: ${$t()}, event: ${Wi(i, Vi)}`), Gi(e, "not my role"), -1;
3896
3897
  let c = gl(e, u, "dst_yuno", "");
3897
- if (!Zo(c) && c.toLowerCase() !== String(Nt()).toLowerCase()) return sr(`${kt(e)}: It's not my name, dst_yuno: ${Vi(c, Gi)}, my_name: ${Nt()}, event: ${Vi(i, Gi)}`), Mi(e, "not my name"), -1;
3898
+ if (!Zo(c) && c.toLowerCase() !== String(Nt()).toLowerCase()) return sr(`${kt(e)}: It's not my name, dst_yuno: ${Wi(c, Vi)}, my_name: ${Nt()}, event: ${Wi(i, Vi)}`), Gi(e, "not my name"), -1;
3898
3899
  let f = gl(e, u, "dst_service", "");
3899
- if ("__subscribing__" === a) return sr(`${kt(e)}: subscription event ignored, I'm client (service: ${Vi(f, Gi)}, event: ${Vi(i, Gi)})`), -1;
3900
- if ("__unsubscribing__" === a) return sr(`${kt(e)}: unsubscription event ignored, I'm client (service: ${Vi(f, Gi)}, event: ${Vi(i, Gi)})`), -1;
3900
+ if ("__subscribing__" === a) return sr(`${kt(e)}: subscription event ignored, I'm client (service: ${Wi(f, Vi)}, event: ${Wi(i, Vi)})`), -1;
3901
+ if ("__unsubscribing__" === a) return sr(`${kt(e)}: unsubscription event ignored, I'm client (service: ${Wi(f, Vi)}, event: ${Wi(i, Vi)})`), -1;
3901
3902
  const g = Sn(i, 0, !1);
3902
3903
  if (g && dn(e, g.event_name, 0)) {
3903
3904
  const t = g.event_name;
3904
- return dn(e, t, F.EVF_PUBLIC_EVENT) && "EV_IDENTITY_CARD_ACK" !== t ? (jn(e, t, s, e), 0) : (sr(`${kt(e)}: event of the transport itself, or out of its place, DROPPED: ev '${Vi(i, Gi)}'`), -1);
3905
+ return dn(e, t, F.EVF_PUBLIC_EVENT) && "EV_IDENTITY_CARD_ACK" !== t ? (jn(e, t, s, e), 0) : (sr(`${kt(e)}: event of the transport itself, or out of its place, DROPPED: ev '${Wi(i, Vi)}'`), -1);
3905
3906
  }
3906
3907
  if (!Zo(f)) {
3907
3908
  let t = nt(f, !1);
3908
- return t ? dn(t, i, F.EVF_PUBLIC_EVENT) ? (jn(t, i, s, e), 0) : (sr(`${kt(e)}: Service found but no event or not public, DROPPED: service '${kt(t)}', ev '${Vi(i, Gi)}'`), -1) : (sr(`${kt(e)}: event for a service that is gone, DROPPED: service '${Vi(f, Gi)}', ev '${Vi(i, Gi)}'`), 0);
3909
+ return t ? dn(t, i, F.EVF_PUBLIC_EVENT) ? (jn(t, i, s, e), 0) : (sr(`${kt(e)}: Service found but no event or not public, DROPPED: service '${kt(t)}', ev '${Wi(i, Vi)}'`), -1) : (sr(`${kt(e)}: event for a service that is gone, DROPPED: service '${Wi(f, Vi)}', ev '${Wi(i, Vi)}'`), 0);
3909
3910
  }
3910
3911
  let d = Sn(i, F.EVF_PUBLIC_EVENT, !1);
3911
- return d ? (Ln(e, d.event_name, s), 0) : (sr(`${kt(e)}: event that no gclass declares public, DROPPED: ev '${Vi(i, Gi)}'`), -1);
3912
- }
3913
- function rs(e, t, n, r) {
3914
- const o = n && "string" == typeof n[r] ? n[r] : "", l = n && "string" == typeof n.service ? n.service : "";
3915
- return sr(`${kt(e)}: ${t} not served by this client, DROPPED: ${r.replace(/_/g, "")} '${Vi(o, Gi)}', service '${Vi(l, Gi)}'`), -1;
3912
+ return d ? (Ln(e, d.event_name, s), 0) : (sr(`${kt(e)}: event that no gclass declares public, DROPPED: ev '${Wi(i, Vi)}'`), -1);
3916
3913
  }
3917
3914
  function os(e, t, n, r) {
3918
- return rs(e, t, n, "__stats__");
3915
+ const o = n && "string" == typeof n[r] ? n[r] : "", l = n && "string" == typeof n.service ? n.service : "";
3916
+ return sr(`${kt(e)}: ${t} not served by this client, DROPPED: ${r.replace(/_/g, "")} '${Wi(o, Vi)}', service '${Wi(l, Vi)}'`), -1;
3919
3917
  }
3920
3918
  function ls(e, t, n, r) {
3921
- return rs(e, t, n, "__command__");
3919
+ return os(e, t, n, "__stats__");
3920
+ }
3921
+ function is(e, t, n, r) {
3922
+ return os(e, t, n, "__command__");
3922
3923
  }
3923
- var is = {
3924
+ var ss = {
3924
3925
  mt_create: function(e) {
3925
3926
  let t = e.priv;
3926
- t.gobj_timer = _t(Rt(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = tn(e, "url"), t.remote_yuno_name = tn(e, "remote_yuno_name"), t.remote_yuno_role = tn(e, "remote_yuno_role"), t.remote_yuno_service = tn(e, "remote_yuno_service"), _n(e, "wanted_yuno_name", t.remote_yuno_name), _n(e, "wanted_yuno_role", t.remote_yuno_role), _n(e, "wanted_yuno_service", t.remote_yuno_service);
3927
+ t.gobj_timer = _t(At(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = tn(e, "url"), t.remote_yuno_name = tn(e, "remote_yuno_name"), t.remote_yuno_role = tn(e, "remote_yuno_role"), t.remote_yuno_service = tn(e, "remote_yuno_service"), _n(e, "wanted_yuno_name", t.remote_yuno_name), _n(e, "wanted_yuno_role", t.remote_yuno_role), _n(e, "wanted_yuno_service", t.remote_yuno_service);
3927
3928
  let n = nn(e, "subscriber");
3928
3929
  n ? kn(e, null, {}, n) : Lt(e) && (n = It(e), kn(e, null, {}, n));
3929
3930
  },
@@ -3950,43 +3951,43 @@
3950
3951
  code: 1e3,
3951
3952
  reason: "restarted",
3952
3953
  was_clean: !0
3953
- }, e), vi(t.gobj_timer)), t.websocket = Ui(e), 0;
3954
+ }, e), Ei(t.gobj_timer)), t.websocket = Fi(e), 0;
3954
3955
  },
3955
3956
  mt_stop: function(e) {
3956
3957
  let t = e.priv;
3957
- return vi(t.gobj_timer), t.websocket && Fi(e), 0;
3958
+ return Ei(t.gobj_timer), t.websocket && Mi(e), 0;
3958
3959
  },
3959
3960
  mt_destroy: function(e) {},
3960
3961
  mt_stats: function(e, t, n, r) {
3961
3962
  if ("ST_SESSION" !== fn(e)) return ir("Not in session"), null;
3962
3963
  n || (n = {});
3963
- let o = Bi(e, Rt(r), gl(e, n, "service", null, 0)), l = pl(e, n, "__md_stats__", null, Un.KW_EXTRACT);
3964
+ let o = Yi(e, At(r), gl(e, n, "service", null, 0)), l = pl(e, n, "__md_stats__", null, Un.KW_EXTRACT);
3964
3965
  return l || (l = {}), Pl(e, n, "stats_stack", {
3965
3966
  stats: t,
3966
3967
  kw: l
3967
- }), Pl(e, n, Di, o), n.__stats__ = t, Ul(e, n, "__stats__"), Ki(e, "EV_MT_STATS", n, r), null;
3968
+ }), Pl(e, n, ki, o), n.__stats__ = t, Ul(e, n, "__stats__"), Bi(e, "EV_MT_STATS", n, r), null;
3968
3969
  },
3969
3970
  mt_command_parser: function(e, t, n, r) {
3970
3971
  if ("ST_SESSION" !== fn(e)) return ir("Not in session"), null;
3971
3972
  n || (n = {});
3972
- let o = Bi(e, Rt(r), gl(e, n, "service", "", 0)), l = pl(e, n, "__md_command__", null, Un.KW_EXTRACT);
3973
+ let o = Yi(e, At(r), gl(e, n, "service", "", 0)), l = pl(e, n, "__md_command__", null, Un.KW_EXTRACT);
3973
3974
  return l || (l = {}), Pl(e, n, "command_stack", {
3974
3975
  command: t,
3975
3976
  kw: l
3976
- }), Pl(e, n, Di, o), n.__command__ = t, Ul(e, n, "__command__"), Ki(e, "EV_MT_COMMAND", n, r), null;
3977
+ }), Pl(e, n, ki, o), n.__command__ = t, Ul(e, n, "__command__"), Bi(e, "EV_MT_COMMAND", n, r), null;
3977
3978
  },
3978
3979
  mt_inject_event: function(e, t, n, r) {
3979
3980
  if ("ST_SESSION" !== fn(e)) return window.console.error("Not in session"), -1;
3980
- if (n = Do({}, Bo(n) ? n : {}), Bo(n.__md_iev__) && (n.__md_iev__ = Ao(n.__md_iev__)), Ll(e, n, Di));
3981
+ if (n = Do({}, Bo(n) ? n : {}), Bo(n.__md_iev__) && (n.__md_iev__ = Ro(n.__md_iev__)), Ll(e, n, ki));
3981
3982
  else {
3982
- let o = Bi(e, Rt(r), gl(e, n, "__service__", 0, 0));
3983
- Po(n, "__service__"), Pl(e, n, "__message__", t), Pl(e, n, Di, o);
3983
+ let o = Yi(e, At(r), gl(e, n, "__service__", 0, 0));
3984
+ Po(n, "__service__"), Pl(e, n, "__message__", t), Pl(e, n, ki, o);
3984
3985
  }
3985
- return Ul(e, n, "__message__"), Ki(e, t, n, r);
3986
+ return Ul(e, n, "__message__"), Bi(e, t, n, r);
3986
3987
  },
3987
3988
  mt_subscription_added: function(e, t) {
3988
3989
  let n = e.priv;
3989
- return "ST_SESSION" === fn(e) && n.websocket ? n.inside_on_open ? 0 : Ji(e, t) : 0;
3990
+ return "ST_SESSION" === fn(e) && n.websocket ? n.inside_on_open ? 0 : qi(e, t) : 0;
3990
3991
  },
3991
3992
  mt_subscription_deleted: function(e, t) {
3992
3993
  let n = e.priv;
@@ -3995,10 +3996,10 @@
3995
3996
  if (Zo(t.event)) return 0;
3996
3997
  let r = {}, o = t.__global__, l = t.__config__, i = t.__filter__, s = t.__service__, a = t.subscriber;
3997
3998
  l && (r.__config__ = l), o && (r.__global__ = o), i && (r.__filter__ = i);
3998
- return Pl(e, r, Di, Bi(e, Rt(a), s)), Ul(e, r, "__unsubscribing__"), Ki(e, t.event, r, e);
3999
+ return Pl(e, r, ki, Yi(e, At(a), s)), Ul(e, r, "__unsubscribing__"), Bi(e, t.event, r, e);
3999
4000
  }
4000
4001
  };
4001
- e.GObj = I, e.SDATA = k, e.SDATAAUTHZ = (e, t, n, r, o, l) => new R(e, t, n, null, l, r, null, 0, null, o, null), e.SDATACM = (e, t, n, r, o, l) => new R(e, t, 0, null, l, n, null, 0, o, r, null), e.SDATACM2 = (e, t, n, r, o, l, i) => new R(e, t, n, null, i, r, null, 0, l, o, null), e.SDATADF = (e, t, n, r, o, l) => new R(e, t, n, null, l, null, r, o), e.SDATAPM = (e, t, n, r, o) => new R(e, t, n, r, o), e.SDATAPM0 = (e, t, n, r, o) => new R(e, t, n, null, o, null, null, 0, null, null, r), e.SDATA_END = D, e.SDataDesc = R, e.YUNETA_VERSION = i, Object.defineProperty(e, "__yuno__", {
4002
+ e.GObj = I, e.SDATA = k, e.SDATAAUTHZ = (e, t, n, r, o, l) => new A(e, t, n, null, l, r, null, 0, null, o, null), e.SDATACM = (e, t, n, r, o, l) => new A(e, t, 0, null, l, n, null, 0, o, r, null), e.SDATACM2 = (e, t, n, r, o, l, i) => new A(e, t, n, null, i, r, null, 0, l, o, null), e.SDATADF = (e, t, n, r, o, l) => new A(e, t, n, null, l, null, r, o), e.SDATAPM = (e, t, n, r, o) => new A(e, t, n, r, o), e.SDATAPM0 = (e, t, n, r, o) => new A(e, t, n, null, o, null, null, 0, null, null, r), e.SDATA_END = D, e.SDataDesc = A, e.YUNETA_VERSION = i, Object.defineProperty(e, "__yuno__", {
4002
4003
  enumerable: !0,
4003
4004
  get: function() {
4004
4005
  return p;
@@ -4009,7 +4010,7 @@
4009
4010
  return t;
4010
4011
  }, e.build_stats_response = l, e.clean_name = function(e) {
4011
4012
  return e.replace(/[?# ^:]/g, "_");
4012
- }, e.clear_timeout = vi, e.cmp_two_simple_json = rl, e.command_parameter_from_json = ke, e.command_parameter_from_text = function(e, t) {
4013
+ }, e.clear_timeout = Ei, e.cmp_two_simple_json = rl, e.command_parameter_from_json = ke, e.command_parameter_from_text = function(e, t) {
4013
4014
  const n = De(e, t, !1);
4014
4015
  return void 0 !== n.value || n.refused || (n.refused = je), n;
4015
4016
  }, e.command_parser = function(e, t, n, r) {}, e.createElement2 = function e(t, n) {
@@ -4036,7 +4037,7 @@
4036
4037
  if (i && "object" == typeof i) for (const e of Object.keys(i)) s.addEventListener(e, i[e]);
4037
4038
  return s;
4038
4039
  }, e.createOneHtml = ql, e.create_json_record = function(e, t) {
4039
- let n = Ao(e);
4040
+ let n = Ro(e);
4040
4041
  return ko(n, t), n;
4041
4042
  }, e.create_template_record = function(e, t) {
4042
4043
  let n = {};
@@ -4047,20 +4048,20 @@
4047
4048
  Lo(n, e, l);
4048
4049
  }), n;
4049
4050
  }, e.current_timestamp = Hl, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
4050
- let n = wl(ii(e), null, !1), r = {};
4051
+ let n = wl(si(e), null, !1), r = {};
4051
4052
  return n && Bo(n) && (r = El(e, n, t, !1)), r;
4052
4053
  }, e.db_load_persistent_attrs = function(e, t) {
4053
- let n = Xt(e, A.SDF_PERSIST), r = wl(ii(e), null, !1);
4054
+ let n = Xt(e, R.SDF_PERSIST), r = wl(si(e), null, !1);
4054
4055
  if (r && Bo(r)) {
4055
4056
  let o = El(e, r, t, !1);
4056
- o = El(e, o, n, !1), sn(e, o, A.SDF_PERSIST);
4057
+ o = El(e, o, n, !1), sn(e, o, R.SDF_PERSIST);
4057
4058
  }
4058
4059
  }, e.db_remove_persistent_attrs = function(e, t) {
4059
- let n = Tl(e, wl(ii(e), null, !1), t, !1);
4060
- 0 === Vo(n) ? $l(ii(e)) : Nl(ii(e), n);
4060
+ let n = Tl(e, wl(si(e), null, !1), t, !1);
4061
+ 0 === Vo(n) ? $l(si(e)) : Nl(si(e), n);
4061
4062
  }, e.db_save_persistent_attrs = function(e, t) {
4062
- let n = El(e, Xt(e, A.SDF_PERSIST), t, !1), r = wl(ii(e), null, !1);
4063
- return r && Bo(r) && Co(n, r), Nl(ii(e), n);
4063
+ let n = El(e, Xt(e, R.SDF_PERSIST), t, !1), r = wl(si(e), null, !1);
4064
+ return r && Bo(r) && Co(n, r), Nl(si(e), n);
4064
4065
  }, e.debounce = function(e, t = 0, n = !1) {
4065
4066
  let r = null, o = null, l = null;
4066
4067
  const i = (...i) => {
@@ -4086,16 +4087,16 @@
4086
4087
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
4087
4088
  let t = null;
4088
4089
  for (const n of Object.keys(e)) {
4089
- const r = oi(n);
4090
+ const r = li(n);
4090
4091
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
4091
- if (r.length > ti) throw new Error(`flat2json: '${n}' deeper than 256`);
4092
+ if (r.length > ni) throw new Error(`flat2json: '${n}' deeper than 256`);
4092
4093
  const o = "number" == typeof r[0];
4093
4094
  if (null === t) t = o ? [] : {};
4094
4095
  else if (o !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
4095
4096
  let l = t;
4096
4097
  for (let t = 0; t < r.length; t++) {
4097
4098
  const o = r[t], i = "number" == typeof o, s = t === r.length - 1, a = !s && "number" == typeof r[t + 1];
4098
- if (i && o > ni) throw new Error(`flat2json: array index ${o} over the limit (100000) in '${n}'`);
4099
+ if (i && o > ri) throw new Error(`flat2json: array index ${o} over the limit (100000) in '${n}'`);
4099
4100
  if (i !== Array.isArray(l)) throw new Error(`flat2json: '${n}' uses a ${i ? "array index" : "key"} where the tree already has a ${Array.isArray(l) ? "array" : "object"}`);
4100
4101
  if (s) {
4101
4102
  if (Array.isArray(l)) {
@@ -4135,15 +4136,15 @@
4135
4136
  removed: {},
4136
4137
  changed: {}
4137
4138
  };
4138
- for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? li(n[e], r[e]) || sl(o.changed, e, {
4139
+ for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? ii(n[e], r[e]) || sl(o.changed, e, {
4139
4140
  from: n[e],
4140
4141
  to: r[e]
4141
4142
  }) : sl(o.removed, e, n[e]);
4142
4143
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || sl(o.added, e, r[e]);
4143
4144
  return o;
4144
4145
  }, e.flat_key_join = function(e) {
4145
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : ri(e)).join("`") : "";
4146
- }, e.flat_key_split = oi, e.gclass_add_ev_action = He, e.gclass_add_event_type = Qe, e.gclass_add_state = qe, e.gclass_check_fsm = Ze, e.gclass_create = Ke, e.gclass_event_type = Xe, e.gclass_find_by_name = et, e.gclass_flag_t = P, e.gclass_unregister = Be, e.getPositionRelativeToBody = function(e) {
4146
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : oi(e)).join("`") : "";
4147
+ }, e.flat_key_split = li, e.gclass_add_ev_action = He, e.gclass_add_event_type = Qe, e.gclass_add_state = qe, e.gclass_check_fsm = Ze, e.gclass_create = Ke, e.gclass_event_type = Xe, e.gclass_find_by_name = et, e.gclass_flag_t = P, e.gclass_unregister = Be, e.getPositionRelativeToBody = function(e) {
4147
4148
  if (!e) return {
4148
4149
  top: 0,
4149
4150
  left: 0,
@@ -4162,10 +4163,14 @@
4162
4163
  right: n + s + r,
4163
4164
  bottom: t + i + o
4164
4165
  };
4165
- }, e.get_function_name = ei, e.get_now = function() {
4166
+ }, e.get_function_name = ti, e.get_now = function() {
4166
4167
  return Math.floor(Date.now() / 1e3);
4167
4168
  }, e.gobj_bottom_gobj = Ft, e.gobj_change_parent = function(e, t) {
4168
- return Ut(e) ? (ir("gobj NULL or DESTROYED"), null) : t instanceof I ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && (lt(e.parent, e), e.parent = null), ot(t, e), t.gclass.gmt.mt_child_added && (ee(e) && ar(n("👦👦🔵 child_added(%s): %s", Ct(t), kt(e))), t.gclass.gmt.mt_child_added(t, e)), 0) : (ir(`${kt(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
4169
+ if (Ut(e)) return ir("gobj NULL or DESTROYED"), -1;
4170
+ if (!(t instanceof I)) return ir(`${kt(e)}: gobj_change_parent() BAD TYPE of parent`), -1;
4171
+ if (Ut(t)) return ir(`${kt(e)}: gobj_change_parent() parent NULL or DESTROYED`), -1;
4172
+ for (let n = t; n; n = n.parent) if (n === e) return ir(`${kt(e)}: gobj_change_parent() a gobj cannot be its own ancestor: ${kt(t)}`), -1;
4173
+ return e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && (lt(e.parent, e), e.parent = null), ot(t, e), t.gclass.gmt.mt_child_added && (ee(e) && ar(n("👦👦🔵 child_added(%s): %s", Ct(t), kt(e))), t.gclass.gmt.mt_child_added(t, e)), 0;
4169
4174
  }, e.gobj_change_state = cn, e.gobj_command = function(e, t, r, l) {
4170
4175
  if (Ut(e)) return ir("gobj NULL or DESTROYED"), -1;
4171
4176
  if (function(e) {
@@ -4234,7 +4239,7 @@
4234
4239
  Jt(l, t) && n.push(l), e(n, l);
4235
4240
  }
4236
4241
  }(n, e), n;
4237
- }, e.gobj_match_gobj = Jt, e.gobj_name = Rt, e.gobj_parent = It, e.gobj_pause = Et, e.gobj_play = vt, e.gobj_post_event = hn, e.gobj_posted_events_size = function() {
4242
+ }, e.gobj_match_gobj = Jt, e.gobj_name = At, e.gobj_parent = It, e.gobj_pause = Et, e.gobj_play = vt, e.gobj_post_event = hn, e.gobj_posted_events_size = function() {
4238
4243
  return pn.length;
4239
4244
  }, e.gobj_publish_event = Ln, e.gobj_read_attr = Qt, e.gobj_read_attrs = Xt, e.gobj_read_bool_attr = Zt, e.gobj_read_integer_attr = en, e.gobj_read_pointer_attr = nn, e.gobj_read_str_attr = tn, e.gobj_remove_persistent_attrs = function(e, t) {
4240
4245
  return Ot(e) ? u ? u(e, t) : -1 : (ir(`${kt(e)}: Only gobj services can load/save writable-persistent`), -1);
@@ -4254,7 +4259,7 @@
4254
4259
  l.name && (n && l.flag & n || (-1 === t || l.flag & t) && (he(e, e.jn_attrs, l), Bo(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, l.name) && (e.priv[l.name] = e.jn_attrs[l.name]), e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, l.name)));
4255
4260
  }
4256
4261
  return 0;
4257
- }(e, A.SDF_VOLATIL, 0);
4262
+ }(e, R.SDF_VOLATIL, 0);
4258
4263
  }, e.gobj_save_persistent_attrs = it, e.gobj_search_path = Ht, e.gobj_send_event = jn, e.gobj_services = function() {
4259
4264
  let e = [];
4260
4265
  for (const t of Object.keys(b)) Mo(e, t);
@@ -4303,13 +4308,13 @@
4303
4308
  o.has(n) || ir(`${kt(e)}: key ignored in subscription (key: ${n}, event: ${t})`);
4304
4309
  }), Zo(t)) t = "";
4305
4310
  else if (!(bn(e, t, F.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & P.gcflag_no_check_output_events)) return ir(`event NOT in output event list: ${kt(e)}, ev ${t}`), 0;
4306
- let l = Nn(n, t), i = An(e.dl_subscriptions, e, t, l.renamed_event, l.kw, r), s = 0, a = 0, u = 0;
4311
+ let l = Nn(n, t), i = Rn(e.dl_subscriptions, e, t, l.renamed_event, l.kw, r), s = 0, a = 0, u = 0;
4307
4312
  for (let t = 0; t < i.length; t++) {
4308
4313
  let n = i[t], r = Dn(e, n, !1, !1);
4309
4314
  0 === r ? s++ : r < 0 ? a++ : u++;
4310
4315
  }
4311
4316
  return a ? sr(`${kt(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${a})`) : s || u || (sr(`${kt(e)}: No subscription found`), $o(n, "No subscription found")), 0;
4312
- }, e.gobj_unsubscribe_list = Cn, e.gobj_walk_gobj_children = Vt, e.gobj_walk_gobj_children_tree = Wt, e.gobj_write_attr = rn, e.gobj_write_attrs = sn, e.gobj_write_bool_attr = an, e.gobj_write_integer_attr = un, e.gobj_write_str_attr = _n, e.gobj_yuno = wt, e.gobj_yuno_id = At, e.gobj_yuno_name = Nt, e.gobj_yuno_role = $t, e.html_markup = function(e) {
4317
+ }, e.gobj_unsubscribe_list = Cn, e.gobj_walk_gobj_children = Vt, e.gobj_walk_gobj_children_tree = Wt, e.gobj_write_attr = rn, e.gobj_write_attrs = sn, e.gobj_write_bool_attr = an, e.gobj_write_integer_attr = un, e.gobj_write_str_attr = _n, e.gobj_yuno = wt, e.gobj_yuno_id = Rt, e.gobj_yuno_name = Nt, e.gobj_yuno_role = $t, e.html_markup = function(e) {
4313
4318
  return "string" != typeof e ? (ir("html_markup: not a string, type " + typeof e), new xl("")) : new xl(e);
4314
4319
  }, e.id_index_in_obj_list = Dl, e.index_in_list = zl, e.is_array = Yo, e.is_boolean = Ho, e.is_date = function(e) {
4315
4320
  return e instanceof Date && !isNaN(e);
@@ -4352,12 +4357,12 @@
4352
4357
  if (!n) return ir("jdb topics section not found"), ur(e), null;
4353
4358
  return pl(null, n, t, null, 0) || (ir("jdb topic not found: " + t), ur(n), null);
4354
4359
  }, e.jdb_init = function(e, t, n) {
4355
- n && (e = Ao(e));
4360
+ n && (e = Ro(e));
4356
4361
  let r = pl(null, e, "type", [], Un.KW_CREATE);
4357
4362
  gl(null, e, "hook", "data", Un.KW_CREATE);
4358
4363
  let o = pl(null, e, "schema", {}, Un.KW_CREATE), l = pl(null, e, "topics", {}, Un.KW_CREATE);
4359
4364
  return Ml(o, function(e, t, n, o) {
4360
- "__" === t.substring(0, 2) || Bo(n) || pl(null, l, o, Ao(r), Un.KW_CREATE);
4365
+ "__" === t.substring(0, 2) || Bo(n) || pl(null, l, o, Ro(r), Un.KW_CREATE);
4361
4366
  }, t), e;
4362
4367
  }, e.jdb_update = function(e, t, n, r) {
4363
4368
  let o = pl(null, pl(null, e, "topics", null, 0), t, null, 0);
@@ -4378,7 +4383,7 @@
4378
4383
  return u ? Do(u, r) : i.push(r), o;
4379
4384
  }, e.json2flat = function(e) {
4380
4385
  const t = {}, n = (e, r, o) => {
4381
- if (o > ti) throw new Error("json2flat: deeper than 256");
4386
+ if (o > ni) throw new Error("json2flat: deeper than 256");
4382
4387
  if (null === e || "object" != typeof e || Array.isArray(e)) {
4383
4388
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
4384
4389
  const l = `[${t}]`;
@@ -4388,7 +4393,7 @@
4388
4393
  const t = Object.keys(e);
4389
4394
  if (t.length > 0) {
4390
4395
  for (const l of t) {
4391
- const t = ri(l);
4396
+ const t = oi(l);
4392
4397
  n(e[l], 0 === o ? t : r + "`" + t, o + 1);
4393
4398
  }
4394
4399
  return;
@@ -4399,7 +4404,7 @@
4399
4404
  return null == e || n(e, "", 0), t;
4400
4405
  }, e.json_array_append = Fo, e.json_array_append_new = Mo, e.json_array_extend = function(e, t) {
4401
4406
  return t ? (Array.prototype.push.apply(e, t), e) : e;
4402
- }, e.json_array_remove = Go, e.json_array_size = Wo, e.json_deep_copy = Ao, e.json_is_identical = Ro, e.json_mask_secrets = No, e.json_object_del = Po, e.json_object_get = Io, e.json_object_set = Lo, e.json_object_set_new = Uo, e.json_object_size = Vo, e.json_object_update = Do, e.json_object_update_existing = ko, e.json_object_update_missing = Co, e.json_size = xo, e.json_text_of = Fe, e.jwt2json = function(e, t) {
4407
+ }, e.json_array_remove = Go, e.json_array_size = Wo, e.json_deep_copy = Ro, e.json_is_identical = Ao, e.json_mask_secrets = No, e.json_object_del = Po, e.json_object_get = Io, e.json_object_set = Lo, e.json_object_set_new = Uo, e.json_object_size = Vo, e.json_object_update = Do, e.json_object_update_existing = ko, e.json_object_update_missing = Co, e.json_size = xo, e.json_text_of = Fe, e.jwt2json = function(e, t) {
4403
4408
  try {
4404
4409
  let n = Vl(e);
4405
4410
  switch (t) {
@@ -4425,7 +4430,7 @@
4425
4430
  return o;
4426
4431
  }, e.kw_delete = _l, e.kw_find_json_in_list = function(e, t, n, r) {
4427
4432
  if (!n || !Yo(t)) return r && ir("item NULL or kw_list is not a list"), -1;
4428
- for (let e = 0; e < t.length; e++) if (Ro(n, t[e])) return e;
4433
+ for (let e = 0; e < t.length; e++) if (Ao(n, t[e])) return e;
4429
4434
  return r && ir("item not found in this list"), -1;
4430
4435
  }, e.kw_find_path = ul, e.kw_flag_t = Un, e.kw_get_bool = cl, e.kw_get_dict = bl, e.kw_get_dict_value = pl, e.kw_get_int = fl, e.kw_get_list = function(e, t, n, r, o) {
4431
4436
  e && !Xo(e) && ir("GObj bad instanceof");
@@ -4461,16 +4466,16 @@
4461
4466
  let o = [];
4462
4467
  if (Yo(t)) for (let e = 0; e < t.length; e++) {
4463
4468
  let l = t[e];
4464
- r(l, n) && o.push(Ao(l));
4469
+ r(l, n) && o.push(Ro(l));
4465
4470
  }
4466
4471
  else {
4467
4472
  if (!Bo(t)) return ir("kw_select() BAD kw parameter"), null;
4468
- r(t, n) && o.push(Ao(t));
4473
+ r(t, n) && o.push(Ro(t));
4469
4474
  }
4470
4475
  return o;
4471
- }, e.kw_set_dict_value = ml, e.kw_set_local_storage_value = Nl, e.kw_set_subdict_value = hl, e.kwid_collect = Rl, e.kwid_find_one_record = function(e, t, n, r, o) {
4476
+ }, e.kw_set_dict_value = ml, e.kw_set_local_storage_value = Nl, e.kw_set_subdict_value = hl, e.kwid_collect = Al, e.kwid_find_one_record = function(e, t, n, r, o) {
4472
4477
  e && !Xo(e) && ir("GObj bad instanceof");
4473
- let l = Rl(e, t, n, r, o);
4478
+ let l = Al(e, t, n, r, o);
4474
4479
  return l && 0 !== l.length ? l[0] : null;
4475
4480
  }, e.kwid_get_ids = function(e, t) {
4476
4481
  if (e && !Xo(e) && ir("GObj bad instanceof"), !t) return [];
@@ -4485,7 +4490,7 @@
4485
4490
  }
4486
4491
  });
4487
4492
  return n;
4488
- }, e.kwid_match_id = Al, e.kwid_new_dict = function(e, t, n) {
4493
+ }, e.kwid_match_id = Rl, e.kwid_new_dict = function(e, t, n) {
4489
4494
  e && !Xo(e) && ir("GObj bad instanceof");
4490
4495
  let r = {};
4491
4496
  if (Zo(n) || (t = ul(e, t, n)), Bo(t)) r = t;
@@ -4556,7 +4561,7 @@
4556
4561
  }, e.log_debug = ar, e.log_error = ir, e.log_info = function(e, ...t) {
4557
4562
  let n = nr(e, ...t), r = Hl();
4558
4563
  Vn && qn("info", n) && rr(Vn, "%c" + r + " INFO: " + String(n), "color:cyan"), zn("info", n, r);
4559
- }, e.log_warning = sr, e.mask_secrets_inline = To, e.msg_iev_get_msg_type = Fl, e.msg_iev_get_stack = Ll, e.msg_iev_push_stack = Pl, e.msg_iev_read_key = Cl, e.msg_iev_set_msg_type = Ul, e.msg_iev_write_key = Il, e.node_uuid = Zl, e.parseBoolean = el, e.parseSVG = function(e) {
4564
+ }, e.log_warning = sr, e.mask_secrets_inline = To, e.msg_iev_get_msg_type = Fl, e.msg_iev_get_stack = Ll, e.msg_iev_push_stack = Pl, e.msg_iev_read_key = Cl, e.msg_iev_set_msg_type = Ul, e.msg_iev_write_key = Il, e.node_uuid = ei, e.parseBoolean = el, e.parseSVG = function(e) {
4560
4565
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
4561
4566
  }, e.refresh_language = function(e, t) {
4562
4567
  if (!Qo(t)) return void ir("You must supply a translation function");
@@ -4583,22 +4588,22 @@
4583
4588
  });
4584
4589
  }, e.register_c_ievent_cli = function() {
4585
4590
  return function(e) {
4586
- if (Li) return ir(`GClass ALREADY created: ${e}`), -1;
4591
+ if (Ui) return ir(`GClass ALREADY created: ${e}`), -1;
4587
4592
  const t = [
4588
4593
  ["ST_DISCONNECTED", [
4589
4594
  [
4590
4595
  "EV_ON_OPEN",
4591
- Hi,
4596
+ zi,
4592
4597
  "ST_WAIT_IDENTITY_CARD_ACK"
4593
4598
  ],
4594
4599
  [
4595
4600
  "EV_ON_CLOSE",
4596
- zi,
4601
+ Qi,
4597
4602
  null
4598
4603
  ],
4599
4604
  [
4600
4605
  "EV_TIMEOUT",
4601
- qi,
4606
+ Hi,
4602
4607
  null
4603
4608
  ],
4604
4609
  [
@@ -4610,22 +4615,22 @@
4610
4615
  ["ST_WAIT_IDENTITY_CARD_ACK", [
4611
4616
  [
4612
4617
  "EV_ON_MESSAGE",
4613
- ns,
4618
+ rs,
4614
4619
  null
4615
4620
  ],
4616
4621
  [
4617
4622
  "EV_IDENTITY_CARD_ACK",
4618
- ts,
4623
+ ns,
4619
4624
  null
4620
4625
  ],
4621
4626
  [
4622
4627
  "EV_ON_CLOSE",
4623
- zi,
4628
+ Qi,
4624
4629
  "ST_DISCONNECTED"
4625
4630
  ],
4626
4631
  [
4627
4632
  "EV_TIMEOUT",
4628
- es,
4633
+ ts,
4629
4634
  null
4630
4635
  ],
4631
4636
  [
@@ -4637,22 +4642,22 @@
4637
4642
  ["ST_SESSION", [
4638
4643
  [
4639
4644
  "EV_ON_MESSAGE",
4640
- ns,
4645
+ rs,
4641
4646
  null
4642
4647
  ],
4643
4648
  [
4644
4649
  "EV_MT_STATS",
4645
- os,
4650
+ ls,
4646
4651
  null
4647
4652
  ],
4648
4653
  [
4649
4654
  "EV_MT_COMMAND",
4650
- ls,
4655
+ is,
4651
4656
  null
4652
4657
  ],
4653
4658
  [
4654
4659
  "EV_ON_CLOSE",
4655
- zi,
4660
+ Qi,
4656
4661
  "ST_DISCONNECTED"
4657
4662
  ],
4658
4663
  [
@@ -4663,7 +4668,7 @@
4663
4668
  ]],
4664
4669
  [null, null]
4665
4670
  ];
4666
- return (Li = Ke(e, [
4671
+ return (Ui = Ke(e, [
4667
4672
  ["EV_ON_MESSAGE", F.EVF_OUTPUT_EVENT],
4668
4673
  ["EV_IDENTITY_CARD_ACK", F.EVF_PUBLIC_EVENT],
4669
4674
  ["EV_ON_ID_NAK", F.EVF_OUTPUT_EVENT],
@@ -4674,37 +4679,37 @@
4674
4679
  ["EV_ON_OPEN_ERROR", F.EVF_OUTPUT_EVENT | F.EVF_NO_WARN_SUBS],
4675
4680
  ["EV_TIMEOUT", 0],
4676
4681
  [null, 0]
4677
- ], t, is, 0, ki, Pi, 0, 0, Ci, P.gcflag_no_check_output_events)) ? 0 : -1;
4682
+ ], t, ss, 0, Ci, Li, 0, 0, Ii, P.gcflag_no_check_output_events)) ? 0 : -1;
4678
4683
  }("C_IEVENT_CLI");
4679
4684
  }, e.register_c_timer = function() {
4680
4685
  return function(e) {
4681
- if (di) return ir(`GClass ALREADY created: ${e}`), -1;
4686
+ if (bi) return ir(`GClass ALREADY created: ${e}`), -1;
4682
4687
  const t = [["ST_IDLE", [[
4683
4688
  "EV_TIMEOUT",
4684
- bi,
4689
+ pi,
4685
4690
  null
4686
4691
  ]]]];
4687
- return (di = Ke(e, [
4692
+ return (bi = Ke(e, [
4688
4693
  ["EV_TIMEOUT", F.EVF_OUTPUT_EVENT],
4689
4694
  ["EV_TIMEOUT_PERIODIC", F.EVF_OUTPUT_EVENT],
4690
4695
  [0, 0]
4691
- ], t, pi, 0, fi, gi, 0, 0, 0, P.gcflag_manual_start)) ? 0 : -1;
4696
+ ], t, mi, 0, gi, di, 0, 0, 0, P.gcflag_manual_start)) ? 0 : -1;
4692
4697
  }("C_TIMER");
4693
4698
  }, e.register_c_yuno = function() {
4694
4699
  return function(e) {
4695
- if (ji) return ir(`GClass ALREADY created: ${e}`), -1;
4700
+ if (Oi) return ir(`GClass ALREADY created: ${e}`), -1;
4696
4701
  const t = [["ST_IDLE", [[
4697
4702
  "EV_TIMEOUT_PERIODIC",
4698
4703
  Ai,
4699
4704
  null
4700
4705
  ]]]];
4701
- return (ji = Ke(e, [["EV_TIMEOUT_PERIODIC", F.EVF_OUTPUT_EVENT | F.EVF_NO_WARN_SUBS], [0, 0]], t, Ri, 0, Ei, Ti, 0, 0, 0, 0)) ? 0 : -1;
4706
+ return (Oi = Ke(e, [["EV_TIMEOUT_PERIODIC", F.EVF_OUTPUT_EVENT | F.EVF_NO_WARN_SUBS], [0, 0]], t, Di, 0, Ti, ji, 0, 0, 0, 0)) ? 0 : -1;
4702
4707
  }("C_YUNO");
4703
4708
  }, e.safeSrc = function(e) {
4704
4709
  if (!e) return "";
4705
4710
  const t = String(e).trim();
4706
4711
  return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Wl(t);
4707
- }, e.sdata_flag_t = A, e.send_http_json_post = function(e, t, n) {
4712
+ }, e.sdata_flag_t = R, e.send_http_json_post = function(e, t, n) {
4708
4713
  let r = new XMLHttpRequest();
4709
4714
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
4710
4715
  4 === r.readyState && n(r.status, r.responseText);
@@ -4728,7 +4733,7 @@
4728
4733
  } else xn = e;
4729
4734
  }, e.set_remote_log_functions = Xn, e.set_strings_are_text = function(e) {
4730
4735
  Yl = !!e;
4731
- }, e.set_timeout = hi, e.set_timeout_periodic = yi, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = kl, e.strcasecmp = nl, e.strcmp = tl, e.strings_are_text = function() {
4736
+ }, e.set_timeout = yi, e.set_timeout_periodic = vi, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = kl, e.strcasecmp = nl, e.strcmp = tl, e.strings_are_text = function() {
4732
4737
  return Yl;
4733
4738
  }, e.strncmp = function(e, t, n) {
4734
4739
  var r = (e + "").substring(0, n), o = (t + "").substring(0, n);
@@ -4759,9 +4764,9 @@
4759
4764
  let e = t.split(".");
4760
4765
  for (let t = 0; t < e.length; t++) {
4761
4766
  let r = e[t];
4762
- if (kl(ai, r)) n.real_type || (n.real_type = r);
4763
- else if (kl(_i, r)) n.type || (n.type = r);
4764
- else if (kl(ui, r)) switch (r) {
4767
+ if (kl(ui, r)) n.real_type || (n.real_type = r);
4768
+ else if (kl(ci, r)) n.type || (n.type = r);
4769
+ else if (kl(_i, r)) switch (r) {
4765
4770
  case "writable":
4766
4771
  n.is_writable = !0;
4767
4772
  break;
@@ -4773,7 +4778,7 @@
4773
4778
  }
4774
4779
  }
4775
4780
  n.real_type || (n.real_type = "string");
4776
- } else Bo(t) ? (n = ci(t), n.name || (n.name = e), n.header || (n.header = e)) : Yo(t) && (n.real_type = "array", n.enum_list = t);
4781
+ } else Bo(t) ? (n = fi(t), n.name || (n.name = e), n.header || (n.header = e)) : Yo(t) && (n.real_type = "array", n.enum_list = t);
4777
4782
  return n.type || (n.type = n.real_type), n;
4778
4783
  }, e.timeTracker = function(e = "Time Tracker", t = !1) {
4779
4784
  const n = e, r = performance.now();
@@ -4785,7 +4790,7 @@
4785
4790
  total: a
4786
4791
  };
4787
4792
  } };
4788
- }, e.trace_json = _r, e.trace_json_masked = $o, e.trace_level_t = B, e.trace_msg = ur, e.treedb_decoder_fkey = si, e.treedb_decoder_hook = function(e, t) {
4793
+ }, e.trace_json = _r, e.trace_json_masked = $o, e.trace_level_t = B, e.trace_msg = ur, e.treedb_decoder_fkey = ai, e.treedb_decoder_hook = function(e, t) {
4789
4794
  if (Jo(t)) {
4790
4795
  if (-1 === t.indexOf("^")) {
4791
4796
  let n, r = e.hook;
@@ -4812,9 +4817,9 @@
4812
4817
  id: t.id
4813
4818
  } : (ir("bad hook 3"), ir(e), ir(t), null);
4814
4819
  }, e.treedb_encoder_fkey = function(e, t) {
4815
- let n = si(e, t);
4820
+ let n = ai(e, t);
4816
4821
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
4817
- }, e.treedb_get_field_desc = ci, e.treedb_hook_data_size = function(e) {
4822
+ }, e.treedb_get_field_desc = fi, e.treedb_hook_data_size = function(e) {
4818
4823
  if (Yo(e) && 1 === xo(e)) {
4819
4824
  let t = e[0];
4820
4825
  return ll(t, "size") ? t.size : 1;