@yuneta/gobj-js 7.25.2 → 7.25.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.
@@ -214,14 +214,14 @@ var T = class {
214
214
  constructor(e) {
215
215
  this.state_name = e, this.dl_actions = [];
216
216
  }
217
- }, k = class {
217
+ }, $ = class {
218
218
  constructor(e, t) {
219
219
  this.event_name = e, this.event_flag = Number(t) || 0;
220
220
  }
221
221
  };
222
- var $ = 1;
222
+ var k = 1;
223
223
  function I(e) {
224
- $n(e) && (e = JSON.stringify(e)), dn(" ".repeat(Math.max(1, 2 * m)) + String(e));
224
+ kn(e) && (e = JSON.stringify(e)), dn(" ".repeat(Math.max(1, 2 * m)) + String(e));
225
225
  }
226
226
  var C = Object.freeze({
227
227
  TRACE_MACHINE: 65536,
@@ -315,7 +315,7 @@ var C = Object.freeze({
315
315
  C.TRACE_COMMANDS,
316
316
  "Trace commands"
317
317
  ]
318
- ], P = 0, U = 0, F = 0;
318
+ ], U = 0, P = 0, F = 0;
319
319
  function G(e, t) {
320
320
  let n = [];
321
321
  for (const [t, r] of L) e & r && n.push(t);
@@ -338,11 +338,11 @@ function V(e, t, n) {
338
338
  }
339
339
  function M(e) {
340
340
  if (F) return 4294967295;
341
- let t = P;
341
+ let t = U;
342
342
  return e && (t |= e.trace_level || 0, e.gclass && (t |= e.gclass.trace_level || 0)), t;
343
343
  }
344
344
  function W(e) {
345
- let t = U;
345
+ let t = P;
346
346
  return e && (t |= e.no_trace_level || 0, e.gclass && (t |= e.gclass.no_trace_level || 0)), t;
347
347
  }
348
348
  function K(e) {
@@ -371,27 +371,27 @@ function q(e, t) {
371
371
  }
372
372
  function z(e, t) {
373
373
  const n = V(e, "gobj_set_global_trace");
374
- return n ? (t ? P |= n : P &= ~n, 0) : -1;
374
+ return n ? (t ? U |= n : U &= ~n, 0) : -1;
375
375
  }
376
376
  function Q(e, t) {
377
377
  const n = V(e, "gobj_set_global_no_trace");
378
- return n ? (t ? U |= n : U &= ~n, 0) : -1;
378
+ return n ? (t ? P |= n : P &= ~n, 0) : -1;
379
379
  }
380
380
  function X(e, t) {
381
- return P = t ? (P | e) >>> 0 : (P & ~e) >>> 0, 0;
381
+ return U = t ? (U | e) >>> 0 : (U & ~e) >>> 0, 0;
382
382
  }
383
383
  function Z(e, t) {
384
- return U = t ? (U | e) >>> 0 : (U & ~e) >>> 0, 0;
384
+ return P = t ? (P | e) >>> 0 : (P & ~e) >>> 0, 0;
385
385
  }
386
386
  function ee() {
387
- return G(P, null);
387
+ return G(U, null);
388
388
  }
389
389
  function te() {
390
- return G(U, null);
390
+ return G(P, null);
391
391
  }
392
392
  function ne(e) {
393
393
  const t = Cn(e) ? je(e) : e;
394
- return t ? G(t.trace_level | P, t.s_user_trace_level) : (gn(`gobj_get_gclass_trace_level: gclass NOT FOUND: ${e}`), []);
394
+ return t ? G(t.trace_level | U, t.s_user_trace_level) : (gn(`gobj_get_gclass_trace_level: gclass NOT FOUND: ${e}`), []);
395
395
  }
396
396
  function re(e) {
397
397
  const t = Cn(e) ? je(e) : e;
@@ -453,7 +453,7 @@ function _e(e, t, n) {
453
453
  gn(`JSON parse error: ${e.message}`);
454
454
  }
455
455
  else r = o;
456
- $n(r) || (r = {});
456
+ kn(r) || (r = {});
457
457
  break;
458
458
  case h.DTP_JSON:
459
459
  if (Cn(o)) try {
@@ -503,7 +503,7 @@ function ae(e, t, n, r) {
503
503
  gn(`JSON parse error: ${e.message}`);
504
504
  }
505
505
  else o = r;
506
- if (!$n(o)) return gn(`attr must be an object: ${n.name}`), -1;
506
+ if (!kn(o)) return gn(`attr must be an object: ${n.name}`), -1;
507
507
  break;
508
508
  case h.DTP_JSON:
509
509
  if (Cn(r)) try {
@@ -512,11 +512,11 @@ function ae(e, t, n, r) {
512
512
  gn(`JSON parse error: ${e.message}`);
513
513
  }
514
514
  else o = r;
515
- if (!In(o) && !$n(o)) return gn(`attr must be a json dict/list: ${n.name}`), -1;
515
+ if (!In(o) && !kn(o)) return gn(`attr must be a json dict/list: ${n.name}`), -1;
516
516
  break;
517
517
  case h.DTP_POINTER: o = r;
518
518
  }
519
- return void 0 === o && gn(`${Ze(e)}: attr undefined: ${n.name}`), t[n.name] = o, $n(e.priv) && e.priv.hasOwnProperty(n.name) && (e.priv[n.name] = o), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, n.name), 0;
519
+ return void 0 === o && gn(`${Ze(e)}: attr undefined: ${n.name}`), t[n.name] = o, kn(e.priv) && e.priv.hasOwnProperty(n.name) && (e.priv[n.name] = o), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, n.name), 0;
520
520
  }
521
521
  function ue(e) {
522
522
  return e.jn_attrs;
@@ -601,7 +601,7 @@ function he(e, t, n, r, o) {
601
601
  return s ? be(s, n) ? (gn(`event already exists: gclass ${e.gclass_name}, state ${t}, event ${n}`), -1) : (s.dl_actions.push(new D(n, r, o)), 0) : (gn(`state not found: ${t}`), -1);
602
602
  }
603
603
  function Ee(e, t, n) {
604
- Vn(t) || e.push(new k(t, n));
604
+ Vn(t) || e.push(new $(t, n));
605
605
  }
606
606
  function Te(e, t, n) {
607
607
  return e instanceof j ? Ee(e.dl_events, t, n) : (gn("Cannot add state, typeof not GClass"), -1);
@@ -682,7 +682,7 @@ function Ae(e, t, n) {
682
682
  return s;
683
683
  })(ue(e), r, -1, e.gclass.gclass_flag & O.gcflag_ignore_unknown_attrs ? 0 : De, e) < 0 && (gn(`${Ze(e)} json2data() FAILED`), mn(r));
684
684
  }
685
- function ke(e, n, r, o, s) {
685
+ function $e(e, n, r, o, s) {
686
686
  if (s & N.gobj_flag_yuno) {
687
687
  if (d) return gn("__yuno__ already created"), null;
688
688
  s |= N.gobj_flag_service;
@@ -710,12 +710,12 @@ function ke(e, n, r, o, s) {
710
710
  let a = K(_);
711
711
  return a && I(t("💙💙⏩ creating: %s^%s", i.gclass_name, e)), _.gobj_flag & N.gobj_flag_service && Ne(_), _.gobj_flag & N.gobj_flag_yuno && (d = _), _.gobj_flag & N.gobj_flag_default_service && (b = _), _.gobj_flag & N.gobj_flag_yuno || we(o, _), _.obflag |= w.obflag_created, _.gclass.instances++, Ae(_, r), _.gobj_flag & N.gobj_flag_service && l && l(_, null), _.gclass.gmt.mt_create2 ? _.gclass.gmt.mt_create2(_, r) : _.gclass.gmt.mt_create && _.gclass.gmt.mt_create(_), o && o.gclass.gmt.mt_child_added && (a && I(t("👦👦🔵 child_added(%s): %s", et(o), Ze(_))), o.gclass.gmt.mt_child_added(o, _)), a && I(t("💙💙⏪ created: %s", et(_))), _;
712
712
  }
713
- function $e(e, t, n, r) {
714
- return ke(e, t, n, r, N.gobj_flag_pure_child);
713
+ function ke(e, t, n, r) {
714
+ return $e(e, t, n, r, N.gobj_flag_pure_child);
715
715
  }
716
716
  function Ie(e) {
717
717
  if (ot(e)) return void gn("gobj NULL or DESTROYED");
718
- e.__refs__ > 0 && gn(`${Ze(e)}: gobj DESTROYING with references: ${e.__refs__}`), e.playing && (gn(`Destroying a PLAYING gobj: ${et(e)}`), Me(e)), e.running && (gn(`Destroying a RUNNING gobj: ${et(e)}`), Ue(e)), e.obflag |= w.obflag_destroying, function(e) {
718
+ e.__refs__ > 0 && gn(`${Ze(e)}: gobj DESTROYING with references: ${e.__refs__}`), e.playing && (gn(`Destroying a PLAYING gobj: ${et(e)}`), Me(e)), e.running && (gn(`Destroying a RUNNING gobj: ${et(e)}`), Pe(e)), e.obflag |= w.obflag_destroying, function(e) {
719
719
  if (0 === It.length) return;
720
720
  for (let t of It) t.src === e && (t.src = null);
721
721
  It = It.filter((t) => t.dst !== e);
@@ -745,10 +745,10 @@ function Ce(e) {
745
745
  function Le(e, t, n) {
746
746
  return e.gclass.gclass_flag & O.gcflag_manual_start || ot(e) || We(e) || Ke(e) || Ce(e), 0;
747
747
  }
748
- function Pe(e, t, n) {
748
+ function Ue(e, t, n) {
749
749
  return e.gclass.gclass_flag & O.gcflag_manual_start || Ke(e) ? 1 : (We(e) || Ce(e), 0);
750
750
  }
751
- function Ue(e) {
751
+ function Pe(e) {
752
752
  if (ot(e)) return gn("gobj NULL or DESTROYED"), -1;
753
753
  if (!e.running) return gn(`${Ze(e)}: GObj NOT RUNNING`), -1;
754
754
  e.playing && (pn(`${Ze(e)}: GObj stopping without previous pause`), Me(e)), B(e) && I(t("⏹ ⏹ stop: %s", et(e))), e.running = !1;
@@ -756,7 +756,7 @@ function Ue(e) {
756
756
  return e.gclass.gmt.mt_stop && (n = e.gclass.gmt.mt_stop(e)), n;
757
757
  }
758
758
  function Fe(e, t, n) {
759
- return We(e) && Ue(e), 0;
759
+ return We(e) && Pe(e), 0;
760
760
  }
761
761
  function Ge(e) {
762
762
  return ot(e) ? (gn("gobj NULL or DESTROYED"), -1) : _t(e, x.WALK_FIRST2LAST, Fe, 0, 0);
@@ -979,7 +979,7 @@ function St(e, n, r, o) {
979
979
  let s, l = e.jn_attrs, i = n.split("`");
980
980
  if (i.length <= 1) {
981
981
  let o = n;
982
- return o in l && l.hasOwnProperty(o) ? (l[o] = r, $n(e.priv) && e.priv.hasOwnProperty(o) && (e.priv[o] = r), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, o), 0) : (gn(t("gobj_write_attr(%s): attr not found '%s'", Ze(e), o)), -1);
982
+ return o in l && l.hasOwnProperty(o) ? (l[o] = r, kn(e.priv) && e.priv.hasOwnProperty(o) && (e.priv[o] = r), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, o), 0) : (gn(t("gobj_write_attr(%s): attr not found '%s'", Ze(e), o)), -1);
983
983
  }
984
984
  let _ = i.length;
985
985
  for (let t = 0; t < _; t++) {
@@ -990,7 +990,7 @@ function St(e, n, r, o) {
990
990
  continue;
991
991
  }
992
992
  let o = e.jn_attrs;
993
- if (s in o && o.hasOwnProperty(s)) return o[s] = r, $n(e.priv) && e.priv.hasOwnProperty(s) && (e.priv[s] = r), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.mt_writing && e.mt_writing(e, s), 0;
993
+ if (s in o && o.hasOwnProperty(s)) return o[s] = r, kn(e.priv) && e.priv.hasOwnProperty(s) && (e.priv[s] = r), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.mt_writing && e.mt_writing(e, s), 0;
994
994
  break;
995
995
  }
996
996
  return gn(t("gobj_write_attr(%s): attr not found '%s'", Ze(e), s)), -1;
@@ -1005,15 +1005,15 @@ function Ot(e, t, n, r) {
1005
1005
  }
1006
1006
  function Nt(e, t, n) {
1007
1007
  let r = ce(e, t, !1);
1008
- return r ? (r[t] = Mn(n), $n(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (gn(`${Ze(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1008
+ return r ? (r[t] = Mn(n), kn(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (gn(`${Ze(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1009
1009
  }
1010
1010
  function wt(e, t, n) {
1011
1011
  let r = ce(e, t, !1);
1012
- return r ? (r[t] = parseInt(n), $n(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (gn(`${Ze(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1012
+ return r ? (r[t] = parseInt(n), kn(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (gn(`${Ze(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1013
1013
  }
1014
1014
  function Rt(e, t, n) {
1015
1015
  let r = ce(e, t, !1);
1016
- return r ? (r[t] = String(n), $n(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (gn(`${Ze(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1016
+ return r ? (r[t] = String(n), kn(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & w.obflag_created && !(e.obflag & w.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (gn(`${Ze(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1017
1017
  }
1018
1018
  function xt(e, n) {
1019
1019
  if (ot(e)) return gn("gobj NULL or DESTROYED"), null;
@@ -1024,7 +1024,7 @@ function xt(e, n) {
1024
1024
  let o = H(e, "EV_STATE_CHANGED"), s = !!function(e) {
1025
1025
  return M(e) & C.TRACE_STATES;
1026
1026
  }(e);
1027
- return (o || s) && (1 === $ || I(t("🔀🔀 mach(%s%s^%s), new st(%s), prev st(%s)", e.running ? "" : "!!", Xe(e), Qe(e), Dt(e), e.last_state.state_name))), !0;
1027
+ return (o || s) && (1 === k || I(t("🔀🔀 mach(%s%s^%s), new st(%s), prev st(%s)", e.running ? "" : "!!", Xe(e), Qe(e), Dt(e), e.last_state.state_name))), !0;
1028
1028
  }
1029
1029
  function Dt(e) {
1030
1030
  return Gn(e) ? e.current_state.state_name : (gn("hgobj NULL"), "");
@@ -1042,11 +1042,11 @@ function At(e, t, n) {
1042
1042
  }
1043
1043
  return null;
1044
1044
  }
1045
- function kt(e, t, n) {
1045
+ function $t(e, t, n) {
1046
1046
  let r = At(e, t, !1);
1047
1047
  return !!r && !(n && !(r.event_flag & n));
1048
1048
  }
1049
- function $t(e, t, n) {
1049
+ function kt(e, t, n) {
1050
1050
  let r = At(e, t, !1);
1051
1051
  return !!r && !(n && !(r.event_flag & n)) && !!(r.event_flag & R.EVF_OUTPUT_EVENT);
1052
1052
  }
@@ -1056,10 +1056,10 @@ function Lt() {
1056
1056
  let e = It;
1057
1057
  It = [];
1058
1058
  let t = 0;
1059
- for (let n of e) n.dst.obflag & (w.obflag_destroyed | w.obflag_destroying) || (Pt(n.dst, n.event, n.kw, n.src), t++);
1059
+ for (let n of e) n.dst.obflag & (w.obflag_destroyed | w.obflag_destroying) || (Ut(n.dst, n.event, n.kw, n.src), t++);
1060
1060
  return It.length > 0 && !Ct && (Ct = !0, setTimeout(Lt, 0)), t;
1061
1061
  }
1062
- function Pt(e, n, r, o) {
1062
+ function Ut(e, n, r, o) {
1063
1063
  if (!(e && e instanceof S)) return gn("gobj dst NULL"), -1;
1064
1064
  if (e.obflag & (w.obflag_destroyed | w.obflag_destroying)) return gn("gobj dst DESTROYED"), -1;
1065
1065
  let s = e.current_state;
@@ -1067,9 +1067,9 @@ function Pt(e, n, r, o) {
1067
1067
  let l = H(e, n) && !q(o, n);
1068
1068
  m++;
1069
1069
  let i = be(s, n);
1070
- if (!i) return e.gclass.gmt.mt_inject_event ? (m--, l && (I(1 === $ ? t("🔜 %s %s%s %s", n || "", e.running ? "" : "!!", Ze(e), s.state_name) : t("🔃 mach(%s%s), st: %s, ev: %s, from(%s%s)", e.running ? "" : "!!", Ze(e), s.state_name, n || "", o && !o.running ? "!!" : "", Ze(o))), r && J(e) && Dn(r) && mn(r)), e.gclass.gmt.mt_inject_event(e, n, r, o)) : (l && I(t("📛 mach(%s%s^%s), st: %s, ev: %s, 📛📛ERROR Event NOT DEFINED in state📛📛, from(%s%s^%s)", e.running ? "" : "!!", Xe(e), Qe(e), s.state_name, n || "", o && !o.running ? "!!" : "", Xe(o), Qe(o))), gn(`📛📛 Event NOT DEFINED in state 📛📛: ${Ze(e)}, ${s.state_name}, ${n}`), m--, -1);
1070
+ if (!i) return e.gclass.gmt.mt_inject_event ? (m--, l && (I(1 === k ? t("🔜 %s %s%s %s", n || "", e.running ? "" : "!!", Ze(e), s.state_name) : t("🔃 mach(%s%s), st: %s, ev: %s, from(%s%s)", e.running ? "" : "!!", Ze(e), s.state_name, n || "", o && !o.running ? "!!" : "", Ze(o))), r && J(e) && Dn(r) && mn(r)), e.gclass.gmt.mt_inject_event(e, n, r, o)) : (l && I(t("📛 mach(%s%s^%s), st: %s, ev: %s, 📛📛ERROR Event NOT DEFINED in state📛📛, from(%s%s^%s)", e.running ? "" : "!!", Xe(e), Qe(e), s.state_name, n || "", o && !o.running ? "!!" : "", Xe(o), Qe(o))), gn(`📛📛 Event NOT DEFINED in state 📛📛: ${Ze(e)}, ${s.state_name}, ${n}`), m--, -1);
1071
1071
  if (l) {
1072
- if (1 === $) I(t("🔄 %s %s%s %s from %s%s", n || "", e.running ? "" : "!!", Ze(e), s.state_name, o && !o.running ? "!!" : "", Ze(o)));
1072
+ if (1 === k) I(t("🔄 %s %s%s %s from %s%s", n || "", e.running ? "" : "!!", Ze(e), s.state_name, o && !o.running ? "!!" : "", Ze(o)));
1073
1073
  else {
1074
1074
  let r = "";
1075
1075
  i.action && (r = xr(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)));
@@ -1081,9 +1081,9 @@ function Pt(e, n, r, o) {
1081
1081
  try {
1082
1082
  i.action && (_ = i.action(e, n, r, o));
1083
1083
  } finally {}
1084
- return !l || 1 === $ || e.obflag & w.obflag_destroyed || I(t("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d", e.running ? "" : "!!", Xe(e), Qe(e), e.current_state.state_name, n || "", Ln(_) ? _ : 0)), m--, _;
1084
+ return !l || 1 === k || e.obflag & w.obflag_destroyed || I(t("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d", e.running ? "" : "!!", Xe(e), Qe(e), e.current_state.state_name, n || "", Ln(_) ? _ : 0)), m--, _;
1085
1085
  }
1086
- var Ut = Object.freeze({
1086
+ var Pt = Object.freeze({
1087
1087
  __hard_subscription__: 1,
1088
1088
  __own_event__: 2
1089
1089
  }), Ft = [
@@ -1101,21 +1101,21 @@ var Ut = Object.freeze({
1101
1101
  ];
1102
1102
  function Gt(e, t, n, r, o) {
1103
1103
  let s = er(t, r, "__config__", null), l = er(t, r, "__global__", null), i = er(t, r, "__local__", null), _ = tr(t, r, "__filter__", null), a = !0;
1104
- if (t && t !== Zn(null, e, "publisher", null) && (a = !1), o && o !== Zn(null, e, "subscriber", null) && (a = !1), n && n !== Xn(null, e, "event", "") && (a = !1), kn(s) > 0) {
1104
+ if (t && t !== Zn(null, e, "publisher", null) && (a = !1), o && o !== Zn(null, e, "subscriber", null) && (a = !1), n && n !== Xn(null, e, "event", "") && (a = !1), $n(s) > 0) {
1105
1105
  let t = er(null, e, "__config__", null);
1106
- kn(t) > 0 && En(t, s) || (a = !1);
1106
+ $n(t) > 0 && En(t, s) || (a = !1);
1107
1107
  }
1108
- if (kn(l) > 0) {
1108
+ if ($n(l) > 0) {
1109
1109
  let t = er(null, e, "__global__", null);
1110
- kn(t) > 0 && En(t, l) || (a = !1);
1110
+ $n(t) > 0 && En(t, l) || (a = !1);
1111
1111
  }
1112
- if (kn(i) > 0) {
1112
+ if ($n(i) > 0) {
1113
1113
  let t = er(null, e, "__local__", null);
1114
- kn(t) > 0 && En(t, i) || (a = !1);
1114
+ $n(t) > 0 && En(t, i) || (a = !1);
1115
1115
  }
1116
- if (kn(_) > 0) {
1116
+ if ($n(_) > 0) {
1117
1117
  let t = tr(null, e, "__filter__", null);
1118
- kn(t) > 0 && En(t, _) || (a = !1);
1118
+ $n(t) > 0 && En(t, _) || (a = !1);
1119
1119
  }
1120
1120
  return a;
1121
1121
  }
@@ -1133,7 +1133,7 @@ function Mt(e, t, n, r, o) {
1133
1133
  }
1134
1134
  function Wt(e, n, r, o) {
1135
1135
  let s = Zn(e, n, "publisher", null, qt.KW_REQUIRED), l = Zn(e, n, "subscriber", null, qt.KW_REQUIRED), i = Xn(e, n, "event", "", qt.KW_REQUIRED);
1136
- if (!!(Qn(e, n, "subs_flag", null, qt.KW_REQUIRED) & Ut.__hard_subscription__) && !r) return -1;
1136
+ if (!!(Qn(e, n, "subs_flag", null, qt.KW_REQUIRED) & Pt.__hard_subscription__) && !r) return -1;
1137
1137
  (Y(l) || Y(s)) && (I(t("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s'", i || "", Ze(s), Ze(l))), mn(n)), s.obflag & w.obflag_destroyed || o || s.gclass.gmt.mt_subscription_deleted && s.gclass.gmt.mt_subscription_deleted(s, n);
1138
1138
  let _ = Mt(s.dl_subscriptions, s, i, n, l);
1139
1139
  return _ >= 0 ? xn(s.dl_subscriptions, _) : (gn(`${Ze(e)}: subscription in publisher not found`), mn(n)), _ = Mt(l.dl_subscribings, s, i, n, l), _ >= 0 ? xn(l.dl_subscribings, _) : (gn(`${Ze(e)}: subscription in subscriber not found`), mn(n)), 0;
@@ -1151,7 +1151,7 @@ function Kt(e, n, r, o) {
1151
1151
  if (Object.keys(r).forEach((t) => {
1152
1152
  s.has(t) || gn(`${Ze(e)}: key ignored in subscription (key: ${t}, event: ${n})`);
1153
1153
  }), Vn(n)) n = "";
1154
- else if (!($t(e, n, R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & O.gcflag_no_check_output_events)) return gn(`event NOT in output event list: ${Ze(e)}, ${n}`), 0;
1154
+ else if (!(kt(e, n, R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & O.gcflag_no_check_output_events)) return gn(`event NOT in output event list: ${Ze(e)}, ${n}`), 0;
1155
1155
  let l = Vt(e.dl_subscriptions, e, n, r, o);
1156
1156
  An(l) > 0 && (gn(`${Ze(e)}: ${An(l)} subscription(s) REPEATED, will be deleted and override`), mn(l, "subscription REPEATED"), Yt(e, l, !1));
1157
1157
  let i = function(e, t, n, r) {
@@ -1160,18 +1160,18 @@ function Kt(e, n, r, o) {
1160
1160
  let s = 0;
1161
1161
  if (n) {
1162
1162
  let t = er(e, n, "__config__", null), r = er(e, n, "__global__", null), l = er(e, n, "__local__", null), i = tr(e, n, "__filter__", null), _ = Xn(e, n, "__service__", "");
1163
- if (kn(r) > 0 && Nn(o, "__global__", hn(r)), kn(t) > 0) {
1163
+ if ($n(r) > 0 && Nn(o, "__global__", hn(r)), $n(t) > 0) {
1164
1164
  let n = hn(t);
1165
1165
  if (Nn(o, "__config__", n), Jn(n, "__hard_subscription__")) {
1166
1166
  let t = zn(e, n, "__hard_subscription__", !1);
1167
- Sn(n, "__hard_subscription__"), t && (s |= Ut.__hard_subscription__);
1167
+ Sn(n, "__hard_subscription__"), t && (s |= Pt.__hard_subscription__);
1168
1168
  }
1169
1169
  if (Jn(n, "__own_event__")) {
1170
1170
  let t = zn(e, n, "__own_event__", !1);
1171
- Sn(n, "__own_event__"), t && (s |= Ut.__own_event__);
1171
+ Sn(n, "__own_event__"), t && (s |= Pt.__own_event__);
1172
1172
  }
1173
1173
  }
1174
- kn(l) > 0 && Nn(o, "__local__", hn(l)), kn(i) > 0 && Nn(o, "__filter__", hn(i)), Vn(_) || Nn(o, "__service__", _);
1174
+ $n(l) > 0 && Nn(o, "__local__", hn(l)), $n(i) > 0 && Nn(o, "__filter__", hn(i)), Vn(_) || Nn(o, "__service__", _);
1175
1175
  }
1176
1176
  return Nn(o, "subs_flag", s), o;
1177
1177
  }(e, n, r, o);
@@ -1194,12 +1194,12 @@ function Jt(e, t, n, r) {
1194
1194
  return Vt(e.dl_subscribings, r, t, n, e);
1195
1195
  }
1196
1196
  function Ht(e, n, r) {
1197
- if ($n(r) || (r = {}), !e || e.obflag & (w.obflag_destroyed | w.obflag_destroying)) return gn("gobj NULL or DESTROYED"), -1;
1197
+ if (kn(r) || (r = {}), !e || e.obflag & (w.obflag_destroyed | w.obflag_destroying)) return gn("gobj NULL or DESTROYED"), -1;
1198
1198
  if (Vn(n)) return gn(`${Ze(e)}: event EMPTY`), -1;
1199
1199
  let o = At(e, n, !0);
1200
1200
  if (!(o && o.event_flag & (R.EVF_SYSTEM_EVENT | R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & O.gcflag_no_check_output_events)) return gn(`event NOT in output event list: ${Ze(e)}, ev ${n}`), -1;
1201
1201
  let s = (Y(e) || H(e, n)) && !q(e, n);
1202
- if (s && (I(1 === $ ? t("🔝🔝 %s %s%s %s", n || "", e.running ? "" : "!!", Ze(e), e.current_state.state_name) : t("🔝🔝 mach(%s%s^%s), st: %s, ev: %s%s%s", e.running ? "" : "!!", Xe(e), Qe(e), e.current_state.state_name, "", n || "", "")), J(e) && Dn(r) && mn(r)), e.gclass.gmt.mt_publish_event) {
1202
+ if (s && (I(1 === k ? t("🔝🔝 %s %s%s %s", n || "", e.running ? "" : "!!", Ze(e), e.current_state.state_name) : t("🔝🔝 mach(%s%s^%s), st: %s, ev: %s%s%s", e.running ? "" : "!!", Xe(e), Qe(e), e.current_state.state_name, "", n || "", "")), J(e) && Dn(r) && mn(r)), e.gclass.gmt.mt_publish_event) {
1203
1203
  let t = e.gclass.gmt.mt_publish_event(e, n, r);
1204
1204
  if (t <= 0) return t;
1205
1205
  }
@@ -1217,13 +1217,13 @@ function Ht(e, n, r) {
1217
1217
  if (Vn(f) || 0 === Kn(f, n)) {
1218
1218
  er(e, a, "__config__", null, 0);
1219
1219
  let o = er(e, a, "__global__", null, 0), l = er(e, a, "__local__", null, 0), f = tr(e, a, "__filter__", null, 0), g = r, p = 1;
1220
- if (e.gclass.gmt.mt_publication_filter ? p = e.gclass.gmt.mt_publication_filter(e, n, g, u) : kn(f) > 0 && (p = sr(g, f) ? 1 : 0, s && (I(t("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", p ? "👍" : "👎", n || "", Ze(u), Ze(e))), mn(f))), p < 0) break;
1220
+ if (e.gclass.gmt.mt_publication_filter ? p = e.gclass.gmt.mt_publication_filter(e, n, g, u) : $n(f) > 0 && (p = sr(g, f) ? 1 : 0, s && (I(t("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", p ? "👍" : "👎", n || "", Ze(u), Ze(e))), mn(f))), p < 0) break;
1221
1221
  if (!p) continue;
1222
1222
  let d = At(u, n, !0);
1223
- if (d && d.event_flag & R.EVF_SYSTEM_EVENT && !kt(u, d.event_name, 0)) continue;
1224
- l && Bn(g, l), o && Tn(g, o), s && (I(1 === $ ? t("🔝🔄 %s (%s) %s%s", n || "", n || "", u.running ? "" : "!!", Ze(u)) : t("🔝🔄 mach(%s%s), st: %s, ev: %s, from(%s%s)", u.running ? "" : "!!", Ze(u), Dt(u), n || "", e && !e.running ? "!!" : "", Ze(e))), J(e) && Dn(g) && mn(g));
1225
- let b = Pt(u, n, g, e);
1226
- if (b < 0 && c & Ut.__own_event__) {
1223
+ if (d && d.event_flag & R.EVF_SYSTEM_EVENT && !$t(u, d.event_name, 0)) continue;
1224
+ l && Bn(g, l), o && Tn(g, o), s && (I(1 === k ? t("🔝🔄 %s (%s) %s%s", n || "", n || "", u.running ? "" : "!!", Ze(u)) : t("🔝🔄 mach(%s%s), st: %s, ev: %s, from(%s%s)", u.running ? "" : "!!", Ze(u), Dt(u), n || "", e && !e.running ? "!!" : "", Ze(e))), J(e) && Dn(g) && mn(g));
1225
+ let b = Ut(u, n, g, e);
1226
+ if (b < 0 && c & Pt.__own_event__) {
1227
1227
  i = -1;
1228
1228
  break;
1229
1229
  }
@@ -1395,15 +1395,15 @@ function xn(e, t) {
1395
1395
  e.splice(t, 1);
1396
1396
  }
1397
1397
  function Dn(e) {
1398
- return $n(e) ? Object.keys(e).length : 0;
1398
+ return kn(e) ? Object.keys(e).length : 0;
1399
1399
  }
1400
1400
  function An(e) {
1401
1401
  return In(e) ? e.length : 0;
1402
1402
  }
1403
- function kn(e) {
1404
- return $n(e) ? Object.keys(e).length : In(e) ? e.length : Cn(e) && e.length > 0 ? 1 : 0;
1405
- }
1406
1403
  function $n(e) {
1404
+ return kn(e) ? Object.keys(e).length : In(e) ? e.length : Cn(e) && e.length > 0 ? 1 : 0;
1405
+ }
1406
+ function kn(e) {
1407
1407
  return null !== e && "object" == typeof e && !Array.isArray(e);
1408
1408
  }
1409
1409
  function In(e) {
@@ -1415,10 +1415,10 @@ function Cn(e) {
1415
1415
  function Ln(e) {
1416
1416
  return "number" == typeof e && Number.isFinite(e);
1417
1417
  }
1418
- function Pn(e) {
1418
+ function Un(e) {
1419
1419
  return "boolean" == typeof e;
1420
1420
  }
1421
- function Un(e) {
1421
+ function Pn(e) {
1422
1422
  return null == e;
1423
1423
  }
1424
1424
  function Fn(e) {
@@ -1441,12 +1441,12 @@ function Kn(e, t) {
1441
1441
  return n === r ? 0 : n > r ? 1 : -1;
1442
1442
  }
1443
1443
  function Yn(e, t) {
1444
- if ($n(e) || $n(t) || In(e) || In(t)) return 0;
1444
+ if (kn(e) || kn(t) || In(e) || In(t)) return 0;
1445
1445
  if (Ln(e) || Ln(t)) {
1446
1446
  let n = Number(e), r = Number(t);
1447
1447
  return n > r ? 1 : n < r ? -1 : 0;
1448
1448
  }
1449
- if (Pn(e) || Pn(t)) {
1449
+ if (Un(e) || Un(t)) {
1450
1450
  let n = Number(e), r = Number(t);
1451
1451
  return n > r ? 1 : n < r ? -1 : 0;
1452
1452
  }
@@ -1461,7 +1461,7 @@ function Jn(e, t) {
1461
1461
  return !(!(t in e) || !e.hasOwnProperty(t));
1462
1462
  }
1463
1463
  function Hn(e, t, n, r) {
1464
- if (e && !Gn(e) && gn("GObj bad instanceof"), !$n(t) && !In(t)) return gn(`${Ze(e)}: kw must be list or dict`), 0;
1464
+ if (e && !Gn(e) && gn("GObj bad instanceof"), !kn(t) && !In(t)) return gn(`${Ze(e)}: kw must be list or dict`), 0;
1465
1465
  if (!Cn(n)) return gn(`${Ze(e)}: path must be a string: ${String(n)}`), 0;
1466
1466
  let o = n.split("`");
1467
1467
  if (o.length <= 1) return t[n];
@@ -1489,11 +1489,11 @@ function zn(e, t, n, r, o) {
1489
1489
  return l && (gn(`path not found: '${n}'`), mn(t)), Boolean(r);
1490
1490
  }
1491
1491
  let u;
1492
- if (Pn(s)) u = s;
1492
+ if (Un(s)) u = s;
1493
1493
  else if (a && Ln(s)) u = 0 !== s;
1494
1494
  else if (a && Cn(s)) u = "true" === s.toLowerCase() || "false" !== s.toLowerCase() && 0 !== (parseInt(s) || 0);
1495
1495
  else {
1496
- if (!a || null !== s) return l && (gn(`${Ze(e)}: path value MUST BE a boolean: ${n}`), bn(t)), Boolean(r);
1496
+ if (!a || null !== s) return a ? (gn(`${e ? Ze(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), mn(t), !1) : (gn(`${e ? Ze(e) + ": " : ""}path MUST BE a json boolean: '${n}'`), mn(t), Boolean(r));
1497
1497
  u = !1;
1498
1498
  }
1499
1499
  return _ && qn(e, t, n), u;
@@ -1501,7 +1501,7 @@ function zn(e, t, n, r, o) {
1501
1501
  function Qn(e, t, n, r, o) {
1502
1502
  e && !Gn(e) && gn("GObj bad instanceof");
1503
1503
  let s = Hn(e, t, n, !1);
1504
- const l = o && o & qt.KW_REQUIRED, i = o && o & qt.KW_CREATE, _ = o && o & qt.KW_EXTRACT;
1504
+ const l = o && o & qt.KW_REQUIRED, i = o && o & qt.KW_CREATE, _ = o && o & qt.KW_EXTRACT, a = o && o & qt.KW_WILD_NUMBER;
1505
1505
  if (void 0 === s) {
1506
1506
  if (i) {
1507
1507
  let o = parseInt(r);
@@ -1509,13 +1509,29 @@ function Qn(e, t, n, r, o) {
1509
1509
  }
1510
1510
  return l && (gn(`path not found: '${n}'`), mn(t)), parseInt(r);
1511
1511
  }
1512
- return _ && qn(e, t, n), Ln(s) ? parseInt(s) : (l && (gn(`path value MUST BE a number: ${n}`), bn(t)), parseInt(r));
1512
+ let u;
1513
+ if (Ln(s)) u = Math.trunc(s);
1514
+ else {
1515
+ if (!a) return gn(`${e ? Ze(e) + ": " : ""}path MUST BE a json integer: '${n}'`), mn(t), parseInt(r);
1516
+ if (Un(s)) u = s ? 1 : 0;
1517
+ else if (Cn(s)) u = function(e) {
1518
+ const t = /^\s*([+-]?)(0[xX][0-9a-fA-F]+|0[0-7]*|[1-9][0-9]*)/.exec(e);
1519
+ if (!t) return 0;
1520
+ let n, r = t[2];
1521
+ return n = r.length > 1 && ("x" === r[1] || "X" === r[1]) ? parseInt(r.substring(2), 16) : "0" === r[0] ? parseInt(r, 8) : parseInt(r, 10), "-" === t[1] ? -n : n;
1522
+ }(s);
1523
+ else {
1524
+ if (null !== s) return gn(`${e ? Ze(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), mn(t), 0;
1525
+ u = 0;
1526
+ }
1527
+ }
1528
+ return _ && qn(e, t, n), u;
1513
1529
  }
1514
1530
  function Xn(e, t, n, r, o) {
1515
1531
  e && !Gn(e) && gn("GObj bad instanceof");
1516
1532
  let s = Hn(e, t, n, !1);
1517
1533
  const l = o && o & qt.KW_REQUIRED, i = o && o & qt.KW_CREATE, _ = o && o & qt.KW_EXTRACT;
1518
- return void 0 === s ? i ? (nr(e, t, n, Cn(r) ? r : null), r) : (l && (gn(`path not found: '${n}'`), mn(t)), r) : (_ && qn(e, t, n), Cn(s) ? s : (l && (gn(`${Ze(e)}: path value MUST BE a string: ${n}`), bn(t)), r));
1534
+ return void 0 === s ? i ? (nr(e, t, n, Cn(r) ? r : null), r) : (l && (gn(`path not found: '${n}'`), mn(t)), r) : Cn(s) ? (_ && qn(e, t, n), s) : (l && (gn(`${Ze(e)}: path value MUST BE a string: ${n}`), bn(t)), r);
1519
1535
  }
1520
1536
  function Zn(e, t, n, r, o) {
1521
1537
  e && !Gn(e) && gn("GObj bad instanceof");
@@ -1534,7 +1550,7 @@ function er(e, t, n, r, o) {
1534
1550
  e && !Gn(e) && gn("GObj bad instanceof");
1535
1551
  let s = Hn(e, t, n, !1);
1536
1552
  const l = o && o & qt.KW_REQUIRED, i = o && o & qt.KW_CREATE, _ = o && o & qt.KW_EXTRACT;
1537
- return void 0 === s ? i && $n(r) && t ? (nr(e, t, n, r), r) : (l && (gn(`path not found: '${n}'`), mn(t)), r) : $n(s) ? (_ && qn(e, t, n), s) : (l && (gn(`${Ze(e)}: path value MUST BE a dict: ${n}`), bn(t)), r);
1553
+ return void 0 === s ? i && kn(r) && t ? (nr(e, t, n, r), r) : (l && (gn(`path not found: '${n}'`), mn(t)), r) : kn(s) ? (_ && qn(e, t, n), s) : (l && (gn(`${Ze(e)}: path value MUST BE a dict: ${n}`), bn(t)), r);
1538
1554
  }
1539
1555
  function tr(e, t, n, r, o) {
1540
1556
  e && !Gn(e) && gn("GObj bad instanceof");
@@ -1550,7 +1566,7 @@ function tr(e, t, n, r, o) {
1550
1566
  return _ && qn(e, t, n), s;
1551
1567
  }
1552
1568
  function nr(e, t, n, r) {
1553
- if (e && !Gn(e) && gn("GObj bad instanceof"), !$n(t)) return gn("kw is not an object"), -1;
1569
+ if (e && !Gn(e) && gn("GObj bad instanceof"), !kn(t)) return gn("kw is not an object"), -1;
1554
1570
  let o = n.split("`");
1555
1571
  if (o.length <= 1) return t[n] = r, 0;
1556
1572
  let s = o.length;
@@ -1561,9 +1577,9 @@ function nr(e, t, n, r) {
1561
1577
  return 0;
1562
1578
  }
1563
1579
  function rr(e, t, n, r, o) {
1564
- if (e && !Gn(e) && gn("GObj bad instanceof"), !$n(t)) return gn("kw is not an object"), -1;
1580
+ if (e && !Gn(e) && gn("GObj bad instanceof"), !kn(t)) return gn("kw is not an object"), -1;
1565
1581
  let s = er(e, t, n, {}, qt.KW_CREATE);
1566
- return $n(s) ? (s[r] = o, 0) : (gn("subdict is not an object"), -1);
1582
+ return kn(s) ? (s[r] = o, 0) : (gn("subdict is not an object"), -1);
1567
1583
  }
1568
1584
  function or(e, n, r) {
1569
1585
  let o = "", s = !1;
@@ -1573,12 +1589,12 @@ function or(e, n, r) {
1573
1589
  let i = n[l];
1574
1590
  if (o = Vn(r) ? t("%s", r) : t("%s`%d", r, l), s = or(e, i, o), s) break;
1575
1591
  }
1576
- } else if ($n(n)) {
1592
+ } else if (kn(n)) {
1577
1593
  s = !0;
1578
1594
  let l = Object.keys(n);
1579
1595
  for (let i = 0; i < l.length; i++) {
1580
1596
  let _ = l[i], a = n[_];
1581
- if (o = Vn(r) ? t("%s", _) : t("%s`%s", r, _), In(a) || $n(a)) {
1597
+ if (o = Vn(r) ? t("%s", _) : t("%s`%s", r, _), In(a) || kn(a)) {
1582
1598
  if (s = or(e, a, o), !s) break;
1583
1599
  continue;
1584
1600
  }
@@ -1596,7 +1612,7 @@ function or(e, n, r) {
1596
1612
  return s;
1597
1613
  }
1598
1614
  function sr(e, t) {
1599
- return 0 === kn(t) || or(e, t, "");
1615
+ return 0 === $n(t) || or(e, t, "");
1600
1616
  }
1601
1617
  function lr(e, t, n, r) {
1602
1618
  e && !Gn(e) && gn("GObj bad instanceof");
@@ -1604,7 +1620,7 @@ function lr(e, t, n, r) {
1604
1620
  if (Cn(n) && !Vn(n)) {
1605
1621
  let s = n;
1606
1622
  t.hasOwnProperty(s) ? o[s] = t[s] : r && gn(`${Ze(e)}: key not found: ${s}`);
1607
- } else if ($n(n) && Dn(n) > 0) for (let s of Object.keys(n)) t.hasOwnProperty(s) ? o[s] = t[s] : r && gn(`${Ze(e)}: key not found: ${s}`);
1623
+ } else if (kn(n) && Dn(n) > 0) for (let s of Object.keys(n)) t.hasOwnProperty(s) ? o[s] = t[s] : r && gn(`${Ze(e)}: key not found: ${s}`);
1608
1624
  else {
1609
1625
  if (!(In(n) && An(n) > 0)) return t;
1610
1626
  for (let s = 0; s < n.length; s++) {
@@ -1619,7 +1635,7 @@ function ir(e, t, n, r) {
1619
1635
  if (Tn(o, t), Cn(n) && !Vn(n)) {
1620
1636
  let s = n;
1621
1637
  tr(e, t, s, 0, 0) ? Sn(o, s) : r && gn(`${Ze(e)}: key not found: ${s}`);
1622
- } else if ($n(n) && Dn(n) > 0) for (let s of Object.keys(n)) t.hasOwnProperty(s) ? Sn(o, s) : r && gn(`${Ze(e)}: key not found: ${s}`);
1638
+ } else if (kn(n) && Dn(n) > 0) for (let s of Object.keys(n)) t.hasOwnProperty(s) ? Sn(o, s) : r && gn(`${Ze(e)}: key not found: ${s}`);
1623
1639
  else {
1624
1640
  if (!(In(n) && An(n) > 0)) return {};
1625
1641
  for (let s = 0; s < n.length; s++) {
@@ -1655,11 +1671,11 @@ function ur(e) {
1655
1671
  else window.console.warn(`Invalid key for localStorage removal: ${e}`);
1656
1672
  }
1657
1673
  function cr(e, t) {
1658
- if (Un(e) || Un(t)) return !0;
1674
+ if (Pn(e) || Pn(t)) return !0;
1659
1675
  if (In(e)) {
1660
1676
  if (0 === e.length) return !0;
1661
1677
  for (let n = 0; n < e.length; n++) if (e[n] === t) return !0;
1662
- } else if ($n(e)) {
1678
+ } else if (kn(e)) {
1663
1679
  if (0 === Object.keys(e).length) return !0;
1664
1680
  for (let n in e) if (n === t) return !0;
1665
1681
  } else if (Cn(e) && e === t) return !0;
@@ -1671,7 +1687,7 @@ function fr(e, t, n, r, o) {
1671
1687
  let s = [];
1672
1688
  if (In(t)) for (let l = 0; l < t.length; l++) {
1673
1689
  let i, _ = t[l];
1674
- if ($n(_)) i = Xn(e, _, "id", "", 0);
1690
+ if (kn(_)) i = Xn(e, _, "id", "", 0);
1675
1691
  else {
1676
1692
  if (!Cn(_)) continue;
1677
1693
  i = _;
@@ -1679,7 +1695,7 @@ function fr(e, t, n, r, o) {
1679
1695
  cr(n, i) && o(_, r) && s.push(_);
1680
1696
  }
1681
1697
  else {
1682
- if (!$n(t)) return gn("kw_collect() BAD kw parameter"), null;
1698
+ if (!kn(t)) return gn("kw_collect() BAD kw parameter"), null;
1683
1699
  for (let e of Object.keys(t)) {
1684
1700
  let l = t[e];
1685
1701
  cr(n, e) && o(l, r) && s.push(l);
@@ -1729,7 +1745,7 @@ function mr(e, t, n, r) {
1729
1745
  }
1730
1746
  function hr(e, t, n, r) {
1731
1747
  if (!Gn(e)) return gn("gobj is not a GObj"), null;
1732
- if (!$n(t)) return gn("kw is not a dict"), null;
1748
+ if (!kn(t)) return gn("kw is not a dict"), null;
1733
1749
  let o = dr(t, n);
1734
1750
  return o ? 0 === o.length ? (r && gn(`stack empty: ${n}`), null) : o[0] : (r && gn(`stack NOT FOUND: ${n}`), null);
1735
1751
  }
@@ -1749,7 +1765,7 @@ function yr(e, t, n) {
1749
1765
  r,
1750
1766
  e[r],
1751
1767
  n
1752
- ]), $n(e[r]) && yr(e[r], t, n), n = n.slice(0, -o.length);
1768
+ ]), kn(e[r]) && yr(e[r], t, n), n = n.slice(0, -o.length);
1753
1769
  }
1754
1770
  }
1755
1771
  function vr(e, t, n, r) {
@@ -1824,11 +1840,11 @@ function xr(e) {
1824
1840
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
1825
1841
  }
1826
1842
  var Dr = 256, Ar = 1e5;
1827
- function kr(e) {
1843
+ function $r(e) {
1828
1844
  const t = String(e).replace(/`/g, "``");
1829
1845
  return "[" === t[0] ? "[" + t : t;
1830
1846
  }
1831
- function $r(e) {
1847
+ function kr(e) {
1832
1848
  if ("string" != typeof e) return null;
1833
1849
  let t = [], n = "";
1834
1850
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -1879,13 +1895,13 @@ function Lr(e, t) {
1879
1895
  };
1880
1896
  }
1881
1897
  }
1882
- return $n(t) ? {
1898
+ return kn(t) ? {
1883
1899
  topic_name: t.topic_name,
1884
1900
  id: t.id,
1885
1901
  hook_name: t.hook_name
1886
1902
  } : (gn("bad fkey 3"), gn(e), gn(t), null);
1887
1903
  }
1888
- var Pr = [
1904
+ var Ur = [
1889
1905
  "string",
1890
1906
  "integer",
1891
1907
  "object",
@@ -1895,7 +1911,7 @@ var Pr = [
1895
1911
  "real",
1896
1912
  "boolean",
1897
1913
  "blob"
1898
- ], Ur = [
1914
+ ], Pr = [
1899
1915
  "persistent",
1900
1916
  "required",
1901
1917
  "notnull",
@@ -1969,7 +1985,7 @@ function Gr(e) {
1969
1985
  case "file": t.is_file = !0;
1970
1986
  }
1971
1987
  t.type = r;
1972
- } else if (pr(Ur, r)) switch (r) {
1988
+ } else if (pr(Pr, r)) switch (r) {
1973
1989
  case "writable":
1974
1990
  t.is_writable = !0;
1975
1991
  break;
@@ -1995,8 +2011,8 @@ var Vr = [
1995
2011
  function Kr(e, t, n, r) {
1996
2012
  let o = e.priv, s = o.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
1997
2013
  return o.periodic && o.msec > 0 ? o.timer_id = setTimeout(function() {
1998
- Pt(e, "EV_TIMEOUT", {}, e);
1999
- }, o.msec) : o.timer_id = -1, rt(e) ? Pt(tt(e), s, {}, e) : Ht(e, s, {}), o.periodic || -1 !== o.timer_id || We(e) && Ue(e), 0;
2014
+ Ut(e, "EV_TIMEOUT", {}, e);
2015
+ }, o.msec) : o.timer_id = -1, rt(e) ? Ut(tt(e), s, {}, e) : Ht(e, s, {}), o.periodic || -1 !== o.timer_id || We(e) && Pe(e), 0;
2000
2016
  }
2001
2017
  var Yr = {
2002
2018
  mt_create: function(e) {
@@ -2011,8 +2027,8 @@ var Yr = {
2011
2027
  n.periodic = Tt(e, "periodic");
2012
2028
  break;
2013
2029
  case "msec": n.msec = yt(e, "msec"), -1 !== n.timer_id && (clearTimeout(n.timer_id), n.timer_id = -1), n.msec > 0 && (n.timer_id = setTimeout(function() {
2014
- Pt(e, "EV_TIMEOUT", {}, e);
2015
- }, n.msec)), n.msec > 0 ? We(e) || Ce(e) : We(e) && Ue(e);
2030
+ Ut(e, "EV_TIMEOUT", {}, e);
2031
+ }, n.msec)), n.msec > 0 ? We(e) || Ce(e) : We(e) && Pe(e);
2016
2032
  }
2017
2033
  },
2018
2034
  mt_start: function(e) {
@@ -2055,7 +2071,7 @@ var qr = [
2055
2071
  ], zr = { gobj_timer: null }, Qr = null;
2056
2072
  function Xr(e, t, n, r) {
2057
2073
  let o = ht(e, t);
2058
- return $n(o) || (o = {}), o[n] = r, St(e, t, o), xe(e, t);
2074
+ return kn(o) || (o = {}), o[n] = r, St(e, t, o), xe(e, t);
2059
2075
  }
2060
2076
  function Zr(e) {
2061
2077
  if (!0 === e || !1 === e) return e;
@@ -2071,9 +2087,9 @@ function to(e, t, n, r) {
2071
2087
  var no = {
2072
2088
  mt_create: function(e) {
2073
2089
  let t = e.priv;
2074
- Rt(e, "start_date", Nr()), Rt(e, "node_uuid", Rr()), e.priv.gobj_timer = $e(Qe(e), "C_TIMER", {}, e), t.periodic_timeout = ht(e, "periodic_timeout"), function(e) {
2090
+ Rt(e, "start_date", Nr()), Rt(e, "node_uuid", Rr()), e.priv.gobj_timer = ke(Qe(e), "C_TIMER", {}, e), t.periodic_timeout = ht(e, "periodic_timeout"), function(e) {
2075
2091
  let t = ht(e, "trace_levels");
2076
- if (!$n(t)) return 0;
2092
+ if (!kn(t)) return 0;
2077
2093
  let n = t.__global_trace__;
2078
2094
  if (In(n)) {
2079
2095
  X(4294967295, !1);
@@ -2088,7 +2104,7 @@ var no = {
2088
2104
  }
2089
2105
  }(e), function(e) {
2090
2106
  let t = ht(e, "no_trace_levels");
2091
- if (!$n(t)) return 0;
2107
+ if (!kn(t)) return 0;
2092
2108
  let n = t.__global_no_trace__;
2093
2109
  if (In(n)) {
2094
2110
  Z(4294967295, !1);
@@ -2188,14 +2204,14 @@ function ao(e) {
2188
2204
  return gn(`${Ze(e)}: Cannot open WebSocket to '${t}', Error: ${n.message}`), null;
2189
2205
  }
2190
2206
  return n ? (n.onopen = () => {
2191
- Pt(e, "EV_ON_OPEN", { url: t }, e);
2207
+ Ut(e, "EV_ON_OPEN", { url: t }, e);
2192
2208
  }, n.onmessage = (n) => {
2193
- Pt(e, "EV_ON_MESSAGE", {
2209
+ Ut(e, "EV_ON_MESSAGE", {
2194
2210
  url: t,
2195
2211
  data: n.data
2196
2212
  }, e);
2197
2213
  }, n.onclose = (n) => {
2198
- ot(e) || (Tt(Je(), "browser_beforeunload") ? pn("Close websocket by unload page") : Pt(e, "EV_ON_CLOSE", {
2214
+ ot(e) || (Tt(Je(), "browser_beforeunload") ? pn("Close websocket by unload page") : Ut(e, "EV_ON_CLOSE", {
2199
2215
  url: t,
2200
2216
  e: n
2201
2217
  }, e));
@@ -2335,7 +2351,7 @@ function vo(e, t, n, r) {
2335
2351
  remote_yuno_role: i,
2336
2352
  remote_yuno_service: _
2337
2353
  };
2338
- rt(e) ? Pt(tt(e), "EV_ON_ID_NAK", t, e) : Ht(e, "EV_ON_ID_NAK", t);
2354
+ rt(e) ? Ut(tt(e), "EV_ON_ID_NAK", t, e) : Ht(e, "EV_ON_ID_NAK", t);
2339
2355
  } else {
2340
2356
  if (xt(e, "ST_SESSION"), o.inside_on_open = !0, o.retry_ms = 0, !o.inform_on_close) {
2341
2357
  o.inform_on_close = !0;
@@ -2346,7 +2362,7 @@ function vo(e, t, n, r) {
2346
2362
  remote_yuno_service: _,
2347
2363
  services_roles: f
2348
2364
  };
2349
- rt(e) ? Pt(tt(e), "EV_ON_OPEN", t, e) : Ht(e, "EV_ON_OPEN", t);
2365
+ rt(e) ? Ut(tt(e), "EV_ON_OPEN", t, e) : Ht(e, "EV_ON_OPEN", t);
2350
2366
  }
2351
2367
  o.inside_on_open = !1, function(e) {
2352
2368
  let t = Bt(e, null, null, null);
@@ -2379,8 +2395,8 @@ function jo(e, t, n, r) {
2379
2395
  }
2380
2396
  let l = s.event, i = s.kw;
2381
2397
  if ("ST_SESSION" !== Dt(e)) {
2382
- if (kt(e, l, R.EVF_PUBLIC_EVENT)) {
2383
- if (!(Pt(e, l, i, e) < 0)) return 0;
2398
+ if ($t(e, l, R.EVF_PUBLIC_EVENT)) {
2399
+ if (!(Ut(e, l, i, e) < 0)) return 0;
2384
2400
  } else gn(`${Ze(e)}: event UNKNOWN in not-session state ${l}`);
2385
2401
  return uo(e), -1;
2386
2402
  }
@@ -2390,12 +2406,12 @@ function jo(e, t, n, r) {
2390
2406
  let c = Xn(e, a, "dst_service", "");
2391
2407
  if ("__subscribing__" === _) return -1;
2392
2408
  if ("__unsubscribing__" === _) return -1;
2393
- if (kt(e, l, R.EVF_PUBLIC_EVENT)) return Pt(e, l, i, e), 0;
2409
+ if ($t(e, l, R.EVF_PUBLIC_EVENT)) return Ut(e, l, i, e), 0;
2394
2410
  if (!Vn(c)) {
2395
2411
  let t = Oe(c, !1);
2396
- return t ? kt(t, l, R.EVF_PUBLIC_EVENT) ? (Pt(t, l, i, e), 0) : (gn(`${Ze(e)}: Service found but no event or not public, service '${Ze(t)}', ev '${l}'`), -1) : (pn(`${Ze(e)}: event for a service that is gone, DROPPED: service '${c}', ev '${l}'`), 0);
2412
+ return t ? $t(t, l, R.EVF_PUBLIC_EVENT) ? (Ut(t, l, i, e), 0) : (gn(`${Ze(e)}: Service found but no event or not public, service '${Ze(t)}', ev '${l}'`), -1) : (pn(`${Ze(e)}: event for a service that is gone, DROPPED: service '${c}', ev '${l}'`), 0);
2397
2413
  }
2398
- return rt(e) ? Pt(tt(e), l, i, e) : Ht(e, l, i), 0;
2414
+ return rt(e) ? Ut(tt(e), l, i, e) : Ht(e, l, i), 0;
2399
2415
  }
2400
2416
  function So(e, t, n, r) {
2401
2417
  return 0;
@@ -2406,7 +2422,7 @@ function Oo(e, t, n, r) {
2406
2422
  var No = {
2407
2423
  mt_create: function(e) {
2408
2424
  let t = e.priv;
2409
- t.gobj_timer = $e(Qe(e), "C_TIMER", {}, e), 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);
2425
+ t.gobj_timer = ke(Qe(e), "C_TIMER", {}, e), 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);
2410
2426
  const n = jt(e, "subscriber");
2411
2427
  n && Kt(e, null, {}, n);
2412
2428
  },
@@ -2511,16 +2527,16 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2511
2527
  let n = {};
2512
2528
  return t || (t = {}), Object.entries(e).forEach(([e, r]) => {
2513
2529
  let o;
2514
- $n(r) && (o = r.default);
2530
+ kn(r) && (o = r.default);
2515
2531
  let s = tr(null, t, e, o);
2516
2532
  n[e] = s;
2517
2533
  }), n;
2518
2534
  }, exports.current_timestamp = Nr, exports.data_type_t = h, exports.db_list_persistent_attrs = function(e, t) {
2519
2535
  let n = _r(Cr(e), null, !1), r = {};
2520
- return n && $n(n) && (r = lr(e, n, t, !1)), r;
2536
+ return n && kn(n) && (r = lr(e, n, t, !1)), r;
2521
2537
  }, exports.db_load_persistent_attrs = function(e, t) {
2522
2538
  let n = Et(e, E.SDF_PERSIST), r = _r(Cr(e), null, !1);
2523
- if (r && $n(r)) {
2539
+ if (r && kn(r)) {
2524
2540
  let o = lr(e, r, t, !1);
2525
2541
  o = lr(e, o, n, !1), Ot(e, o, E.SDF_PERSIST);
2526
2542
  }
@@ -2529,7 +2545,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2529
2545
  0 === Dn(n) ? ur(Cr(e)) : ar(Cr(e), n);
2530
2546
  }, exports.db_save_persistent_attrs = function(e, t) {
2531
2547
  let n = lr(e, Et(e, E.SDF_PERSIST), t, !1), r = _r(Cr(e), null, !1);
2532
- return r && $n(r) && vn(n, r), ar(Cr(e), n);
2548
+ return r && kn(r) && vn(n, r), ar(Cr(e), n);
2533
2549
  }, exports.debounce = function(e, t = 0, n = !1) {
2534
2550
  let r = null, o = null, s = null;
2535
2551
  const l = (...l) => {
@@ -2555,12 +2571,12 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2555
2571
  }
2556
2572
  return t;
2557
2573
  }, exports.empty_json = function(e) {
2558
- return 0 === kn(e);
2574
+ return 0 === $n(e);
2559
2575
  }, exports.empty_string = Vn, exports.escapeHtml = Sr, exports.event_flag_t = R, exports.flat2json = function(e) {
2560
2576
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
2561
2577
  let t = null;
2562
2578
  for (const n of Object.keys(e)) {
2563
- const r = $r(n);
2579
+ const r = kr(n);
2564
2580
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
2565
2581
  if (r.length > Dr) throw new Error(`flat2json: '${n}' deeper than 256`);
2566
2582
  const o = "number" == typeof r[0];
@@ -2616,8 +2632,8 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2616
2632
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || (o.added[e] = r[e]);
2617
2633
  return o;
2618
2634
  }, exports.flat_key_join = function(e) {
2619
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : kr(e)).join("`") : "";
2620
- }, exports.flat_key_split = $r, exports.gclass_add_ev_action = he, exports.gclass_add_event_type = Te, exports.gclass_add_state = me, exports.gclass_check_fsm = ve, exports.gclass_create = ge, exports.gclass_event_type = ye, exports.gclass_find_by_name = je, exports.gclass_flag_t = O, exports.gclass_unregister = pe, exports.getPositionRelativeToBody = function(e) {
2635
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : $r(e)).join("`") : "";
2636
+ }, exports.flat_key_split = kr, exports.gclass_add_ev_action = he, exports.gclass_add_event_type = Te, exports.gclass_add_state = me, exports.gclass_check_fsm = ve, exports.gclass_create = ge, exports.gclass_event_type = ye, exports.gclass_find_by_name = je, exports.gclass_flag_t = O, exports.gclass_unregister = pe, exports.getPositionRelativeToBody = function(e) {
2621
2637
  if (!e) return {
2622
2638
  top: 0,
2623
2639
  left: 0,
@@ -2645,24 +2661,24 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2645
2661
  return F > 1 || !!e && !!(M(e) & C.TRACE_COMMANDS);
2646
2662
  }(e) || H(e, null) && !q(s, null)) && (I(t("🌀🌀 mach(%s%s), cmd: %s, src: %s", We(e) ? "" : "!!", Ze(e), n, Ze(s))), J(e) && mn(o)), e.gclass.gmt.mt_command_parser ? e.gclass.gmt.mt_command_parser(e, n, o, s) : e.gclass.command_table ? u ? u(e, n, o, s) : r(0, -1, t("%s: global command parser not available", Ze(e)), 0, 0) : r(0, -1, t("%s: command table not available", Ze(e)), 0, 0));
2647
2663
  }, exports.gobj_create = function(e, t, n, r) {
2648
- return ke(e, t, n, r, 0);
2649
- }, exports.gobj_create2 = ke, exports.gobj_create_default_service = function(e, t, n, r) {
2650
- return ke(e, t, n, r, N.gobj_flag_default_service | N.gobj_flag_autostart);
2651
- }, exports.gobj_create_pure_child = $e, exports.gobj_create_service = function(e, t, n, r) {
2652
- return ke(e, t, n, r, N.gobj_flag_service);
2664
+ return $e(e, t, n, r, 0);
2665
+ }, exports.gobj_create2 = $e, exports.gobj_create_default_service = function(e, t, n, r) {
2666
+ return $e(e, t, n, r, N.gobj_flag_default_service | N.gobj_flag_autostart);
2667
+ }, exports.gobj_create_pure_child = ke, exports.gobj_create_service = function(e, t, n, r) {
2668
+ return $e(e, t, n, r, N.gobj_flag_service);
2653
2669
  }, exports.gobj_create_volatil = function(e, t, n, r) {
2654
- return ke(e, t, n, r, N.gobj_flag_volatil);
2670
+ return $e(e, t, n, r, N.gobj_flag_volatil);
2655
2671
  }, exports.gobj_create_yuno = function(e, t, n) {
2656
- return ke(e, t, n, null, N.gobj_flag_yuno);
2672
+ return $e(e, t, n, null, N.gobj_flag_yuno);
2657
2673
  }, exports.gobj_current_state = Dt, exports.gobj_default_service = Se, exports.gobj_deliver_posted_events = Lt, exports.gobj_destroy = Ie, exports.gobj_find_child = dt, exports.gobj_find_gobj = function(e, t) {
2658
2674
  if (Vn(t)) return null;
2659
2675
  const n = t.toLowerCase();
2660
2676
  return "__default_service__" === n ? b : "__yuno__" === n || "__root__" === n ? d : bt(d, t);
2661
2677
  }, exports.gobj_find_service = Oe, exports.gobj_find_subscribings = Jt, exports.gobj_find_subscriptions = Bt, exports.gobj_flag_t = N, exports.gobj_full_name = et, exports.gobj_gclass_name = Xe, exports.gobj_get_gclass_trace_level = ne, exports.gobj_get_gclass_trace_level2 = re, exports.gobj_get_gclass_trace_no_level = oe, exports.gobj_get_global_trace_level = ee, exports.gobj_get_global_trace_no_level = te, exports.gobj_global_trace_level = function() {
2662
- return P;
2663
- }, exports.gobj_global_trace_no_level = function() {
2664
2678
  return U;
2665
- }, exports.gobj_has_attr = mt, exports.gobj_has_event = kt, exports.gobj_has_output_event = $t, exports.gobj_hsdata = ue, exports.gobj_is_destroying = ot, exports.gobj_is_playing = Be, exports.gobj_is_pure_child = rt, exports.gobj_is_running = We, exports.gobj_is_service = Ye, exports.gobj_is_volatil = nt, exports.gobj_list_persistent_attrs = function(e, t) {
2679
+ }, exports.gobj_global_trace_no_level = function() {
2680
+ return P;
2681
+ }, exports.gobj_has_attr = mt, exports.gobj_has_event = $t, exports.gobj_has_output_event = kt, exports.gobj_hsdata = ue, exports.gobj_is_destroying = ot, exports.gobj_is_playing = Be, exports.gobj_is_pure_child = rt, exports.gobj_is_running = We, exports.gobj_is_service = Ye, exports.gobj_is_volatil = nt, exports.gobj_list_persistent_attrs = function(e, t) {
2666
2682
  return a ? a(e, t) : null;
2667
2683
  }, exports.gobj_list_subscriptions = function(e) {
2668
2684
  let t = Bt(e, null, null, null);
@@ -2704,7 +2720,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2704
2720
  }
2705
2721
  }(n, e), n;
2706
2722
  }, exports.gobj_match_gobj = pt, exports.gobj_name = Qe, exports.gobj_parent = tt, exports.gobj_pause = Me, exports.gobj_play = Ve, exports.gobj_post_event = function(e, n, r, o) {
2707
- return e && e instanceof S ? e.obflag & (w.obflag_destroyed | w.obflag_destroying) ? (gn(`gobj_post_event(): gobj dst DESTROYING, event ${n}`), -1) : Vn(n) ? (gn("gobj_post_event(): event EMPTY"), -1) : kt(e, n, 0) ? It.length >= 1e4 ? (gn(`gobj_post_event(): too many posted events, this is NOT a work queue, event ${n}, pending ${It.length}`), -1) : (It.push({
2723
+ return e && e instanceof S ? e.obflag & (w.obflag_destroyed | w.obflag_destroying) ? (gn(`gobj_post_event(): gobj dst DESTROYING, event ${n}`), -1) : Vn(n) ? (gn("gobj_post_event(): event EMPTY"), -1) : $t(e, n, 0) ? It.length >= 1e4 ? (gn(`gobj_post_event(): too many posted events, this is NOT a work queue, event ${n}, pending ${It.length}`), -1) : (It.push({
2708
2724
  dst: e,
2709
2725
  event: n,
2710
2726
  kw: r,
@@ -2719,7 +2735,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2719
2735
  name: e,
2720
2736
  bit: t,
2721
2737
  description: n,
2722
- set: !!(P & t)
2738
+ set: !!(U & t)
2723
2739
  }));
2724
2740
  }, exports.gobj_reset_volatil_attrs = function(e) {
2725
2741
  return function(e, t, n) {
@@ -2729,12 +2745,12 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2729
2745
  const s = r[o];
2730
2746
  if (s.name && !(n && s.flag & n) && (-1 === t || s.flag & t)) {
2731
2747
  const t = _e(e, e.jn_attrs, s);
2732
- $n(e.priv) && e.priv.hasOwnProperty(s.name) && (e.priv[s.name] = t), e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, s.name);
2748
+ kn(e.priv) && e.priv.hasOwnProperty(s.name) && (e.priv[s.name] = t), e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, s.name);
2733
2749
  }
2734
2750
  }
2735
2751
  return 0;
2736
2752
  }(e, E.SDF_VOLATIL, 0);
2737
- }, exports.gobj_save_persistent_attrs = xe, exports.gobj_search_path = bt, exports.gobj_send_event = Pt, exports.gobj_services = function() {
2753
+ }, exports.gobj_save_persistent_attrs = xe, exports.gobj_search_path = bt, exports.gobj_send_event = Ut, exports.gobj_services = function() {
2738
2754
  let e = [];
2739
2755
  for (const t of Object.keys(p)) Rn(e, t);
2740
2756
  return e;
@@ -2749,11 +2765,11 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2749
2765
  const r = V(t, "gobj_set_gobj_trace", e.gclass && e.gclass.s_user_trace_level || null);
2750
2766
  return r ? (n ? e.trace_level |= r : e.trace_level &= ~r, 0) : -1;
2751
2767
  }, exports.gobj_set_trace_machine_format = function(e) {
2752
- $ = 1 === Number(e) ? 1 : 0;
2768
+ k = 1 === Number(e) ? 1 : 0;
2753
2769
  }, exports.gobj_short_name = Ze, exports.gobj_start = Ce, exports.gobj_start_children = function(e) {
2754
2770
  return ot(e) ? (gn("gobj NULL or DESTROYED"), -1) : _t(e, x.WALK_FIRST2LAST, Le, 0, 0);
2755
2771
  }, exports.gobj_start_tree = function(e) {
2756
- return ot(e) ? (gn("gobj NULL or DESTROYED"), -1) : (B(e) && I(t("⏺ ⏺ ⏺ ⏺ start_tree: %s", et(e))), e.gclass.gclass_flag & O.gcflag_manual_start || e.disabled ? 0 : (e.running || Ce(e), at(e, x.WALK_TOP2BOTTOM, Pe, 0, 0)));
2772
+ return ot(e) ? (gn("gobj NULL or DESTROYED"), -1) : (B(e) && I(t("⏺ ⏺ ⏺ ⏺ start_tree: %s", et(e))), e.gclass.gclass_flag & O.gcflag_manual_start || e.disabled ? 0 : (e.running || Ce(e), at(e, x.WALK_TOP2BOTTOM, Ue, 0, 0)));
2757
2773
  }, exports.gobj_start_up = function(e, t, n, r, o, s, g) {
2758
2774
  l = t, i = n, _ = r, a = o, u = s, c = g;
2759
2775
  const p = [["EV_STATE_CHANGED", R.EVF_SYSTEM_EVENT | R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS], [0, 0]];
@@ -2764,10 +2780,10 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2764
2780
  return 0;
2765
2781
  }, exports.gobj_stats = function(e, n, r, s) {
2766
2782
  return ot(e) ? (gn("gobj NULL or DESTROYED"), -1) : e.gclass.gmt.mt_stats ? e.gclass.gmt.mt_stats(e, n, r, s) : c ? c(e, n, r, s) : o(0, -1, t("%s, stats parser not available", Ze(e)), 0, 0);
2767
- }, exports.gobj_stop = Ue, exports.gobj_stop_children = Ge, exports.gobj_stop_tree = function(e) {
2768
- return ot(e) ? (gn("gobj NULL or DESTROYED"), -1) : (B(e) && I(t("⏹ ⏹ ⏹ ⏹ stop_tree: %s", et(e))), We(e) && Ue(e), at(e, x.WALK_TOP2BOTTOM, Fe, 0, 0));
2783
+ }, exports.gobj_stop = Pe, exports.gobj_stop_children = Ge, exports.gobj_stop_tree = function(e) {
2784
+ return ot(e) ? (gn("gobj NULL or DESTROYED"), -1) : (B(e) && I(t("⏹ ⏹ ⏹ ⏹ stop_tree: %s", et(e))), We(e) && Pe(e), at(e, x.WALK_TOP2BOTTOM, Fe, 0, 0));
2769
2785
  }, exports.gobj_subscribe_event = Kt, exports.gobj_trace_level = M, exports.gobj_trace_machine_format = function() {
2770
- return $;
2786
+ return k;
2771
2787
  }, exports.gobj_trace_no_level = W, exports.gobj_unsubscribe_event = function(e, t, n, r) {
2772
2788
  if (null == n && (n = {}), !e) return gn(`publisher NULL: ev ${t}`), 0;
2773
2789
  if (!r) return gn(`subscriber NULL: ev ${t}`), 0;
@@ -2781,21 +2797,21 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2781
2797
  if (Object.keys(n).forEach((n) => {
2782
2798
  o.has(n) || gn(`${Ze(e)}: key ignored in subscription (key: ${n}, event: ${t})`);
2783
2799
  }), Vn(t)) t = "";
2784
- else if (!($t(e, t, R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & O.gcflag_no_check_output_events)) return gn(`event NOT in output event list: ${Ze(e)}, ev ${t}`), 0;
2800
+ else if (!(kt(e, t, R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & O.gcflag_no_check_output_events)) return gn(`event NOT in output event list: ${Ze(e)}, ev ${t}`), 0;
2785
2801
  let s = Vt(e.dl_subscriptions, e, t, n, r), l = 0;
2786
2802
  for (let t = 0; t < s.length; t++) {
2787
2803
  let n = s[t];
2788
2804
  Wt(e, n, !1, !1), l++;
2789
2805
  }
2790
2806
  return l || (pn(`${Ze(e)}: No subscription found`), mn(n, "No subscription found")), 0;
2791
- }, exports.gobj_unsubscribe_list = Yt, exports.gobj_walk_gobj_children = _t, exports.gobj_walk_gobj_children_tree = at, exports.gobj_write_attr = St, exports.gobj_write_attrs = Ot, exports.gobj_write_bool_attr = Nt, exports.gobj_write_integer_attr = wt, exports.gobj_write_str_attr = Rt, exports.gobj_yuno = Je, exports.gobj_yuno_id = ze, exports.gobj_yuno_name = He, exports.gobj_yuno_role = qe, exports.id_index_in_obj_list = gr, exports.index_in_list = wr, exports.is_array = In, exports.is_boolean = Pn, exports.is_date = function(e) {
2807
+ }, exports.gobj_unsubscribe_list = Yt, exports.gobj_walk_gobj_children = _t, exports.gobj_walk_gobj_children_tree = at, exports.gobj_write_attr = St, exports.gobj_write_attrs = Ot, exports.gobj_write_bool_attr = Nt, exports.gobj_write_integer_attr = wt, exports.gobj_write_str_attr = Rt, exports.gobj_yuno = Je, exports.gobj_yuno_id = ze, exports.gobj_yuno_name = He, exports.gobj_yuno_role = qe, exports.id_index_in_obj_list = gr, exports.index_in_list = wr, exports.is_array = In, exports.is_boolean = Un, exports.is_date = function(e) {
2792
2808
  return e instanceof Date && !isNaN(e);
2793
2809
  }, exports.is_function = Fn, exports.is_gobj = Gn, exports.is_metadata_key = function(e) {
2794
2810
  if (!Cn(e)) return !1;
2795
2811
  let t;
2796
2812
  for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
2797
2813
  return 2 === t;
2798
- }, exports.is_null = Un, exports.is_number = Ln, exports.is_object = $n, exports.is_private_key = function(e) {
2814
+ }, exports.is_null = Pn, exports.is_number = Ln, exports.is_object = kn, exports.is_private_key = function(e) {
2799
2815
  if (!Cn(e)) return !1;
2800
2816
  let t;
2801
2817
  for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
@@ -2810,7 +2826,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2810
2826
  if (!o) return gn("jdb_delete: topic not found: " + t), null;
2811
2827
  if (Vn(r.id)) return gn("jdb_delete: record without id: " + r), bn(r), null;
2812
2828
  let s, l = n.split("`"), i = o;
2813
- for (; (s = l.shift()) && !Vn(s) && i;) $n(i) && (i = tr(null, i, e.hook, null, 0)), i = vr(i, null, s, !1);
2829
+ for (; (s = l.shift()) && !Vn(s) && i;) kn(i) && (i = tr(null, i, e.hook, null, 0)), i = vr(i, null, s, !1);
2814
2830
  if (0 === l.length && i) if (In(i)) {
2815
2831
  let e = gr(i, r.id);
2816
2832
  e >= 0 && i.splice(e, 1);
@@ -2842,7 +2858,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2842
2858
  if (!o) return gn("jdb_update: topic not found: " + t), null;
2843
2859
  if (Vn(r.id)) return gn("jdb_update: record without id: " + r), bn(r), null;
2844
2860
  let s, l = n.split("`"), i = o;
2845
- for (; (s = l.shift()) && !Vn(s) && i;) $n(i) && (i = tr(null, i, e.hook, [], 1)), i = vr(i, null, s, !1);
2861
+ for (; (s = l.shift()) && !Vn(s) && i;) kn(i) && (i = tr(null, i, e.hook, [], 1)), i = vr(i, null, s, !1);
2846
2862
  if (0 === l.length && i) if (In(i)) i.push(r);
2847
2863
  else if (i.id === r.id) Object.assign(i, r);
2848
2864
  else {
@@ -2862,7 +2878,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2862
2878
  const t = Object.keys(e);
2863
2879
  if (t.length > 0) {
2864
2880
  for (const s of t) {
2865
- const t = kr(s);
2881
+ const t = $r(s);
2866
2882
  n(e[s], 0 === o ? t : r + "`" + t, o + 1);
2867
2883
  }
2868
2884
  return;
@@ -2873,7 +2889,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2873
2889
  return null == e || n(e, "", 0), t;
2874
2890
  }, exports.json_array_append = wn, exports.json_array_append_new = Rn, exports.json_array_extend = function(e, t) {
2875
2891
  return t ? (Array.prototype.push.apply(e, t), e) : e;
2876
- }, exports.json_array_remove = xn, exports.json_array_size = An, exports.json_deep_copy = hn, exports.json_is_identical = En, exports.json_object_del = Sn, exports.json_object_get = jn, exports.json_object_set = On, exports.json_object_set_new = Nn, exports.json_object_size = Dn, exports.json_object_update = Tn, exports.json_object_update_existing = yn, exports.json_object_update_missing = vn, exports.json_size = kn, exports.jwt2json = function(e, t) {
2892
+ }, exports.json_array_remove = xn, exports.json_array_size = An, exports.json_deep_copy = hn, exports.json_is_identical = En, exports.json_object_del = Sn, exports.json_object_get = jn, exports.json_object_set = On, exports.json_object_set_new = Nn, exports.json_object_size = Dn, exports.json_object_update = Tn, exports.json_object_update_existing = yn, exports.json_object_update_missing = vn, exports.json_size = $n, exports.jwt2json = function(e, t) {
2877
2893
  try {
2878
2894
  let n = jr(e);
2879
2895
  switch (t) {
@@ -2893,7 +2909,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2893
2909
  r(s, n) && o.push(s);
2894
2910
  }
2895
2911
  else {
2896
- if (!$n(t)) return gn("kw_select() BAD kw parameter"), null;
2912
+ if (!kn(t)) return gn("kw_select() BAD kw parameter"), null;
2897
2913
  r(t, n) && o.push(t);
2898
2914
  }
2899
2915
  return o;
@@ -2909,7 +2925,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2909
2925
  }, exports.kw_get_local_storage_value = _r, exports.kw_get_pointer = Zn, exports.kw_get_real = function(e, t, n, r, o) {
2910
2926
  e && !Gn(e) && gn("GObj bad instanceof");
2911
2927
  let s = Hn(e, t, n, !1);
2912
- const l = o && o & qt.KW_REQUIRED, i = o && o & qt.KW_CREATE, _ = o && o & qt.KW_EXTRACT;
2928
+ const l = o && o & qt.KW_REQUIRED, i = o && o & qt.KW_CREATE, _ = o && o & qt.KW_EXTRACT, a = o && o & qt.KW_WILD_NUMBER;
2913
2929
  if (void 0 === s) {
2914
2930
  if (i) {
2915
2931
  let o = Number(r);
@@ -2917,7 +2933,18 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2917
2933
  }
2918
2934
  return l && (gn(`path not found: '${n}'`), mn(t)), Number(r);
2919
2935
  }
2920
- return _ && qn(e, t, n), Ln(s) ? Number(s) : (l && (gn(`path value MUST BE a number: ${n}`), bn(t)), Number(r));
2936
+ let u;
2937
+ if (Ln(s)) u = s;
2938
+ else {
2939
+ if (!a) return gn(`${e ? Ze(e) + ": " : ""}path MUST BE a json real: '${n}'`), mn(t), Number(r);
2940
+ if (Un(s)) u = s ? 1 : 0;
2941
+ else if (Cn(s)) u = parseFloat(s), Number.isNaN(u) && (u = 0);
2942
+ else {
2943
+ if (null !== s) return gn(`${e ? Ze(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), mn(t), 0;
2944
+ u = 0;
2945
+ }
2946
+ }
2947
+ return _ && qn(e, t, n), u;
2921
2948
  }, exports.kw_get_str = Xn, exports.kw_has_key = Jn, exports.kw_match_simple = sr, exports.kw_pop = Bn, exports.kw_remove_local_storage_value = ur, exports.kw_select = function(e, t, n, r) {
2922
2949
  if (e && !Gn(e) && gn("GObj bad instanceof"), !t) return null;
2923
2950
  r || (r = sr);
@@ -2927,7 +2954,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2927
2954
  r(s, n) && o.push(hn(s));
2928
2955
  }
2929
2956
  else {
2930
- if (!$n(t)) return gn("kw_select() BAD kw parameter"), null;
2957
+ if (!kn(t)) return gn("kw_select() BAD kw parameter"), null;
2931
2958
  r(t, n) && o.push(hn(t));
2932
2959
  }
2933
2960
  return o;
@@ -2939,10 +2966,10 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2939
2966
  if (e && !Gn(e) && gn("GObj bad instanceof"), !t) return [];
2940
2967
  let n = [];
2941
2968
  if (Cn(t)) n.push(t);
2942
- else if ($n(t)) for (let e in t) t.hasOwnProperty(e) && n.push(e);
2969
+ else if (kn(t)) for (let e in t) t.hasOwnProperty(e) && n.push(e);
2943
2970
  else In(t) && t.forEach(function(t) {
2944
2971
  if (Cn(t)) Vn(t) || n.push(t);
2945
- else if ($n(t)) {
2972
+ else if (kn(t)) {
2946
2973
  let r = Xn(e, t, "id", 0, 0);
2947
2974
  r && n.push(r);
2948
2975
  }
@@ -2951,7 +2978,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2951
2978
  }, exports.kwid_match_id = cr, exports.kwid_new_dict = function(e, t, n) {
2952
2979
  e && !Gn(e) && gn("GObj bad instanceof");
2953
2980
  let r = {};
2954
- if (Vn(n) || (t = Hn(e, t, n)), $n(t)) r = t;
2981
+ if (Vn(n) || (t = Hn(e, t, n)), kn(t)) r = t;
2955
2982
  else if (In(t)) for (let n = 0; n < t.length; n++) {
2956
2983
  let o = t[n], s = Xn(e, o, "id", "", qt.KW_REQUIRED);
2957
2984
  Vn(s) || (r[s] = o);
@@ -2960,11 +2987,11 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2960
2987
  return r;
2961
2988
  }, exports.kwid_new_list = function(e, t, n) {
2962
2989
  if (e && !Gn(e) && gn("GObj bad instanceof"), Vn(n) || (t = Hn(e, t, n)), In(t)) return t;
2963
- if ($n(t)) {
2990
+ if (kn(t)) {
2964
2991
  let n = [];
2965
2992
  for (let r of Object.keys(t)) {
2966
2993
  let o = t[r];
2967
- $n(o) ? (o.id = r, n.push(o)) : gn(`${Ze(e)} kwid_new_list: not a record: '${r}'`);
2994
+ kn(o) ? (o.id = r, n.push(o)) : gn(`${Ze(e)} kwid_new_list: not a record: '${r}'`);
2968
2995
  }
2969
2996
  return n;
2970
2997
  }
@@ -2978,11 +3005,11 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2978
3005
  id: e[o],
2979
3006
  value: e[o]
2980
3007
  });
2981
- else if ($n(s)) {
3008
+ else if (kn(s)) {
2982
3009
  let e = {};
2983
3010
  if (Jn(s, t)) {
2984
3011
  if (!Jn(s, n)) {
2985
- if (!(kn(s) > 0)) {
3012
+ if (!($n(s) > 0)) {
2986
3013
  gn("list2options(): object without field value: " + n);
2987
3014
  continue;
2988
3015
  }
@@ -2990,7 +3017,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2990
3017
  }
2991
3018
  e.id = s[t], e.value = s[n];
2992
3019
  } else {
2993
- if (!(kn(s) > 0)) {
3020
+ if (!($n(s) > 0)) {
2994
3021
  gn("list2options(): object without field id: " + t);
2995
3022
  continue;
2996
3023
  }
@@ -2999,7 +3026,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2999
3026
  r.push(e);
3000
3027
  } else gn("list2options(): case1 not implemented");
3001
3028
  }
3002
- else if ($n(e)) for (let t of Object.keys(e)) r.push({
3029
+ else if (kn(e)) for (let t of Object.keys(e)) r.push({
3003
3030
  id: t,
3004
3031
  value: t
3005
3032
  });
@@ -3218,9 +3245,9 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3218
3245
  let e = t.split(".");
3219
3246
  for (let t = 0; t < e.length; t++) {
3220
3247
  let r = e[t];
3221
- if (pr(Pr, r)) n.real_type || (n.real_type = r);
3248
+ if (pr(Ur, r)) n.real_type || (n.real_type = r);
3222
3249
  else if (pr(Fr, r)) n.type || (n.type = r);
3223
- else if (pr(Ur, r)) switch (r) {
3250
+ else if (pr(Pr, r)) switch (r) {
3224
3251
  case "writable":
3225
3252
  n.is_writable = !0;
3226
3253
  break;
@@ -3232,7 +3259,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3232
3259
  }
3233
3260
  }
3234
3261
  n.real_type || (n.real_type = "string");
3235
- } else $n(t) ? (n = Gr(t), n.name || (n.name = e), n.header || (n.header = e)) : In(t) && (n.real_type = "array", n.enum_list = t);
3262
+ } else kn(t) ? (n = Gr(t), n.name || (n.name = e), n.header || (n.header = e)) : In(t) && (n.real_type = "array", n.enum_list = t);
3236
3263
  return n.type || (n.type = n.real_type), n;
3237
3264
  }, exports.timeTracker = function(e = "Time Tracker", t = !1) {
3238
3265
  const n = e, r = performance.now();
@@ -3266,7 +3293,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3266
3293
  };
3267
3294
  }
3268
3295
  }
3269
- return $n(t) ? {
3296
+ return kn(t) ? {
3270
3297
  topic_name: t.topic_name,
3271
3298
  id: t.id
3272
3299
  } : (gn("bad hook 3"), gn(e), gn(t), null);
@@ -3274,11 +3301,11 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3274
3301
  let n = Lr(e, t);
3275
3302
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3276
3303
  }, exports.treedb_get_field_desc = Gr, exports.treedb_hook_data_size = function(e) {
3277
- if (In(e) && 1 === kn(e)) {
3304
+ if (In(e) && 1 === $n(e)) {
3278
3305
  let t = e[0];
3279
3306
  return Jn(t, "size") ? t.size : 1;
3280
3307
  }
3281
- return kn(e);
3308
+ return $n(e);
3282
3309
  }, exports.vsprintf = function(e, n) {
3283
3310
  return t.apply(null, [e].concat(n || []));
3284
3311
  }, exports.walk_type_t = x;