@yuneta/gobj-js 7.26.10 → 7.26.12

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.
@@ -130,7 +130,7 @@ var gobjJs = function(e) {
130
130
  data: l || []
131
131
  };
132
132
  }
133
- var s = "7.0.0a", i = null, _ = null, a = null, u = null, c = null, f = null, g = [], d = Object.create(null), b = Object.create(null), p = null, m = null, h = 0, E = Object.freeze({
133
+ var s = "7.0.0a", i = null, _ = null, a = null, u = null, c = null, f = null, g = [], d = Object.create(null), b = Object.create(null), p = null, m = null, h = 0, y = Object.freeze({
134
134
  DTP_STRING: 1,
135
135
  DTP_BOOLEAN: 2,
136
136
  DTP_INTEGER: 3,
@@ -140,8 +140,8 @@ var gobjJs = function(e) {
140
140
  DTP_JSON: 7,
141
141
  DTP_POINTER: 8
142
142
  });
143
- E.DTP_POINTER;
144
- var y = Object.freeze({
143
+ y.DTP_POINTER;
144
+ var E = Object.freeze({
145
145
  SDF_NOTACCESS: 1,
146
146
  SDF_RD: 2,
147
147
  SDF_WR: 4,
@@ -164,7 +164,7 @@ var gobjJs = function(e) {
164
164
  SDF_AUTHZ_S: 524288,
165
165
  SDF_AUTHZ_RS: 1048576
166
166
  });
167
- y.SDF_RD, y.SDF_WR, y.SDF_STATS, y.SDF_PERSIST, y.SDF_VOLATIL, y.SDF_RSTATS, y.SDF_PSTATS, y.SDF_WR, y.SDF_PERSIST;
167
+ E.SDF_RD, E.SDF_WR, E.SDF_STATS, E.SDF_PERSIST, E.SDF_VOLATIL, E.SDF_RSTATS, E.SDF_PSTATS, E.SDF_WR, E.SDF_PERSIST;
168
168
  var T = class {
169
169
  constructor(e, t, n = 0, r = null, l = "", o = null, s = null, i = 0, _ = null, a = null, u = null) {
170
170
  this.type = e, this.name = t, this.alias = o, this.flag = n, this.default_value = r, this.header = s, this.fillspace = i, this.description = l, this.json_fn = _, this.schema = a, this.authpth = u;
@@ -191,11 +191,11 @@ var gobjJs = function(e) {
191
191
  gobj_flag_pure_child: 16,
192
192
  gobj_flag_autostart: 32,
193
193
  gobj_flag_autoplay: 64
194
- }), R = Object.freeze({
194
+ }), $ = Object.freeze({
195
195
  obflag_destroying: 1,
196
196
  obflag_destroyed: 2,
197
197
  obflag_created: 4
198
- }), $ = Object.freeze({
198
+ }), R = Object.freeze({
199
199
  EVF_NO_WARN_SUBS: 1,
200
200
  EVF_OUTPUT_EVENT: 2,
201
201
  EVF_SYSTEM_EVENT: 4,
@@ -221,7 +221,7 @@ var gobjJs = function(e) {
221
221
  };
222
222
  var C = 1;
223
223
  function L(e) {
224
- Zn(e) && (e = JSON.stringify(e)), yn(" ".repeat(Math.max(1, 2 * h)) + String(e));
224
+ Zn(e) && (e = JSON.stringify(e)), En(" ".repeat(Math.max(1, 2 * h)) + String(e));
225
225
  }
226
226
  var P = Object.freeze({
227
227
  TRACE_MACHINE: 65536,
@@ -425,19 +425,19 @@ var gobjJs = function(e) {
425
425
  function ae(e, t, n) {
426
426
  let r, l = n.default_value;
427
427
  switch (n.type) {
428
- case E.DTP_STRING:
428
+ case y.DTP_STRING:
429
429
  r = String(l);
430
430
  break;
431
- case E.DTP_BOOLEAN:
431
+ case y.DTP_BOOLEAN:
432
432
  r = _r(l);
433
433
  break;
434
- case E.DTP_INTEGER:
434
+ case y.DTP_INTEGER:
435
435
  r = parseInt(l), isNaN(r) && hn(`${et(e)}: attr NaN: ${n.name}`);
436
436
  break;
437
- case E.DTP_REAL:
437
+ case y.DTP_REAL:
438
438
  r = Number(l), isNaN(r) && hn(`${et(e)}: attr NaN: ${n.name}`);
439
439
  break;
440
- case E.DTP_LIST:
440
+ case y.DTP_LIST:
441
441
  if (tr(l)) try {
442
442
  r = JSON.parse(l);
443
443
  } catch (e) {
@@ -446,7 +446,7 @@ var gobjJs = function(e) {
446
446
  else r = l;
447
447
  er(r) || (r = []);
448
448
  break;
449
- case E.DTP_DICT:
449
+ case y.DTP_DICT:
450
450
  if (tr(l)) try {
451
451
  r = JSON.parse(l);
452
452
  } catch (e) {
@@ -455,7 +455,7 @@ var gobjJs = function(e) {
455
455
  else r = l;
456
456
  Zn(r) || (r = {});
457
457
  break;
458
- case E.DTP_JSON:
458
+ case y.DTP_JSON:
459
459
  if ("" === l || void 0 === l) r = null;
460
460
  else if (tr(l)) try {
461
461
  r = JSON.parse(l);
@@ -464,14 +464,14 @@ var gobjJs = function(e) {
464
464
  }
465
465
  else r = l;
466
466
  break;
467
- case E.DTP_POINTER: r = l;
467
+ case y.DTP_POINTER: r = l;
468
468
  }
469
469
  return void 0 === r && (hn(`default_value WRONG, it: ${n.name}, value: ${n.default_value}`), r = null), t[n.name] = r, 0;
470
470
  }
471
471
  function ue(e, t, n, r) {
472
472
  let l;
473
473
  switch (n.type) {
474
- case E.DTP_STRING:
474
+ case y.DTP_STRING:
475
475
  if (null == r) l = "";
476
476
  else if (tr(r)) l = String(r);
477
477
  else {
@@ -479,16 +479,16 @@ var gobjJs = function(e) {
479
479
  e && (l = String(e));
480
480
  }
481
481
  break;
482
- case E.DTP_BOOLEAN:
482
+ case y.DTP_BOOLEAN:
483
483
  l = _r(r);
484
484
  break;
485
- case E.DTP_INTEGER:
485
+ case y.DTP_INTEGER:
486
486
  if (l = parseInt(r), isNaN(l)) return hn(`${et(e)}: attr NaN: ${n.name}`), -1;
487
487
  break;
488
- case E.DTP_REAL:
488
+ case y.DTP_REAL:
489
489
  if (l = Number(r), isNaN(l)) return hn(`${et(e)}: attr NaN: ${n.name}`), -1;
490
490
  break;
491
- case E.DTP_LIST:
491
+ case y.DTP_LIST:
492
492
  if (tr(r)) try {
493
493
  l = JSON.parse(r);
494
494
  } catch (e) {
@@ -497,7 +497,7 @@ var gobjJs = function(e) {
497
497
  else l = r;
498
498
  if (!er(l)) return hn(`attr must be an array: ${n.name}`), -1;
499
499
  break;
500
- case E.DTP_DICT:
500
+ case y.DTP_DICT:
501
501
  if (tr(r)) try {
502
502
  l = JSON.parse(r);
503
503
  } catch (e) {
@@ -506,7 +506,7 @@ var gobjJs = function(e) {
506
506
  else l = r;
507
507
  if (!Zn(l)) return hn(`attr must be an object: ${n.name}`), -1;
508
508
  break;
509
- case E.DTP_JSON:
509
+ case y.DTP_JSON:
510
510
  if (l = r, tr(r)) {
511
511
  const e = r.trim();
512
512
  if (e.startsWith("{") || e.startsWith("[")) try {
@@ -516,9 +516,9 @@ var gobjJs = function(e) {
516
516
  }
517
517
  }
518
518
  break;
519
- case E.DTP_POINTER: l = r;
519
+ case y.DTP_POINTER: l = r;
520
520
  }
521
- return void 0 === l && hn(`${et(e)}: attr undefined: ${n.name}`), t[n.name] = l, Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, n.name) && (e.priv[n.name] = l), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, n.name), 0;
521
+ return void 0 === l && hn(`${et(e)}: attr undefined: ${n.name}`), t[n.name] = l, Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, n.name) && (e.priv[n.name] = l), e.obflag & $.obflag_created && !(e.obflag & $.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, n.name), 0;
522
522
  }
523
523
  function ce(e) {
524
524
  return e.jn_attrs;
@@ -551,7 +551,7 @@ var gobjJs = function(e) {
551
551
  const l = r.length;
552
552
  for (let e = 0; e < l; e++) {
553
553
  let n = r[e][0], l = r[e][1], o = r[e][2];
554
- ir(n) || Ee(c, t, n, l, o);
554
+ ir(n) || ye(c, t, n, l, o);
555
555
  }
556
556
  }
557
557
  for (let e = 0; e < t.length; e++) {
@@ -596,17 +596,17 @@ var gobjJs = function(e) {
596
596
  function he(e, t) {
597
597
  return e instanceof O ? pe(e, t) ? (hn(`state already exists: ${t}`), -1) : (e.dl_states.push(new A(t)), 0) : (hn("Cannot add state, typeof not GClass"), -1);
598
598
  }
599
- function Ee(e, t, n, r, l) {
599
+ function ye(e, t, n, r, l) {
600
600
  if (!(e instanceof O)) return hn("Cannot add state, typeof not GClass"), -1;
601
601
  if (ir(t)) return hn("state_name EMPTY"), -1;
602
602
  let o = pe(e, t);
603
603
  return o ? me(o, n) ? (hn(`event already exists: gclass ${e.gclass_name}, state ${t}, event ${n}`), -1) : (o.dl_actions.push(new k(n, r, l)), 0) : (hn(`state not found: ${t}`), -1);
604
604
  }
605
- function ye(e, t, n) {
605
+ function Ee(e, t, n) {
606
606
  ir(t) || e.push(new I(t, n));
607
607
  }
608
608
  function Te(e, t, n) {
609
- return e instanceof O ? ye(e.dl_events, t, n) : (hn("Cannot add state, typeof not GClass"), -1);
609
+ return e instanceof O ? Ee(e.dl_events, t, n) : (hn("Cannot add state, typeof not GClass"), -1);
610
610
  }
611
611
  function ve(e, t) {
612
612
  if (!(e instanceof O)) return hn("Cannot add state, typeof not GClass"), 0;
@@ -630,7 +630,7 @@ var gobjJs = function(e) {
630
630
  }
631
631
  for (let n = 0; n < e.dl_events.length; n++) {
632
632
  let r = e.dl_events[n];
633
- if (!ir(r.event_name) && (nr(r.event_flag) || (hn(`SMachine: event flag is NOT number: gclass ${e.gclass_name}, event ${r.event_name}`), t += -1), !(r.event_flag & $.EVF_OUTPUT_EVENT))) {
633
+ if (!ir(r.event_name) && (nr(r.event_flag) || (hn(`SMachine: event flag is NOT number: gclass ${e.gclass_name}, event ${r.event_name}`), t += -1), !(r.event_flag & R.EVF_OUTPUT_EVENT))) {
634
634
  let n = !1;
635
635
  for (let t = 0; t < e.dl_states.length; t++) {
636
636
  let l = e.dl_states[t];
@@ -649,7 +649,7 @@ var gobjJs = function(e) {
649
649
  return n || (t && hn(`gclass not found: ${e}`), null);
650
650
  }
651
651
  function Se() {
652
- return !m || m.obflag & R.obflag_destroyed ? null : m;
652
+ return !m || m.obflag & $.obflag_destroyed ? null : m;
653
653
  }
654
654
  function we(e, t) {
655
655
  if (!tr(e)) return hn(`gobj_find_service(): service name must be a string: ${e}`), null;
@@ -660,10 +660,10 @@ var gobjJs = function(e) {
660
660
  let t = Xe(e);
661
661
  return t = t.toLowerCase(), b[t] && hn(`service ALREADY REGISTERED: ${t}. Will be UPDATED`), b[t] = e, 0;
662
662
  }
663
- function Re(e, t) {
663
+ function $e(e, t) {
664
664
  t.parent && hn(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
665
665
  }
666
- function $e(e, t) {
666
+ function Re(e, t) {
667
667
  let n = tl(e.dl_children, t);
668
668
  n >= 0 && (Hn(e.dl_children, n), t.parent = null);
669
669
  }
@@ -680,7 +680,7 @@ var gobjJs = function(e) {
680
680
  let o = 0;
681
681
  for (const [s, i] of Object.entries(t)) {
682
682
  const t = ge(l.gclass, s, !1);
683
- t ? (-1 === n || t.flag & n) && (t.flag & y.SDF_DEPRECATED && En(`${et(l)}: Deprecated attribute used in gobj creation: ${s}`), o += ue(l, e, t, i)) : r && (r(l, s), o--);
683
+ t ? (-1 === n || t.flag & n) && (t.flag & E.SDF_DEPRECATED && yn(`${et(l)}: Deprecated attribute used in gobj creation: ${s}`), o += ue(l, e, t, i)) : r && (r(l, s), o--);
684
684
  }
685
685
  return o;
686
686
  })(ce(e), r, -1, e.gclass.gclass_flag & w.gcflag_ignore_unknown_attrs ? 0 : ke, e) < 0 && (hn(`${et(e)} json2data() FAILED`), Un(r));
@@ -694,7 +694,7 @@ var gobjJs = function(e) {
694
694
  if (!("string" == typeof l || l instanceof S)) return hn(`BAD TYPE of parent: ${l}`), null;
695
695
  if (tr(l)) {
696
696
  const e = l;
697
- if (!(l = we(e))) return En(`parent service not found: ${e}`), null;
697
+ if (!(l = we(e))) return yn(`parent service not found: ${e}`), null;
698
698
  }
699
699
  }
700
700
  if (o & N.gobj_flag_service && we(e, !1)) return hn(`service ALREADY registered: ${t}^${e}`), null;
@@ -714,14 +714,14 @@ var gobjJs = function(e) {
714
714
  _.jn_attrs = _e(_, s.attrs_table);
715
715
  for (const [e, t] of Object.entries(_.jn_attrs)) e in _.priv && (_.priv[e] = t);
716
716
  let a = Y(_);
717
- return a && L(n("💙💙⏩ creating: %s^%s", s.gclass_name, e)), _.gobj_flag & N.gobj_flag_service && Ne(_), _.gobj_flag & N.gobj_flag_yuno && (p = _), _.gobj_flag & N.gobj_flag_default_service && (m = _), _.gobj_flag & N.gobj_flag_yuno || Re(l, _), _.obflag |= R.obflag_created, _.gclass.instances++, Ae(_, r), _.gobj_flag & N.gobj_flag_service && i && i(_, null), _.gclass.gmt.mt_create2 ? _.gclass.gmt.mt_create2(_, r) : _.gclass.gmt.mt_create && _.gclass.gmt.mt_create(_), l && l.gclass.gmt.mt_child_added && (a && L(n("👦👦🔵 child_added(%s): %s", tt(l), et(_))), l.gclass.gmt.mt_child_added(l, _)), a && L(n("💙💙⏪ created: %s", tt(_))), _;
717
+ return a && L(n("💙💙⏩ creating: %s^%s", s.gclass_name, e)), _.gobj_flag & N.gobj_flag_service && Ne(_), _.gobj_flag & N.gobj_flag_yuno && (p = _), _.gobj_flag & N.gobj_flag_default_service && (m = _), _.gobj_flag & N.gobj_flag_yuno || $e(l, _), _.obflag |= $.obflag_created, _.gclass.instances++, Ae(_, r), _.gobj_flag & N.gobj_flag_service && i && i(_, null), _.gclass.gmt.mt_create2 ? _.gclass.gmt.mt_create2(_, r) : _.gclass.gmt.mt_create && _.gclass.gmt.mt_create(_), l && l.gclass.gmt.mt_child_added && (a && L(n("👦👦🔵 child_added(%s): %s", tt(l), et(_))), l.gclass.gmt.mt_child_added(l, _)), a && L(n("💙💙⏪ created: %s", tt(_))), _;
718
718
  }
719
719
  function Ce(e, t, n, r) {
720
720
  return Ie(e, t, n, r, N.gobj_flag_pure_child);
721
721
  }
722
722
  function Le(e) {
723
723
  if (ot(e)) return void hn("gobj NULL or DESTROYED");
724
- e.__refs__ > 0 && hn(`${et(e)}: gobj DESTROYING with references: ${e.__refs__}`), e.playing && (hn(`Destroying a PLAYING gobj: ${tt(e)}`), xe(e)), e.running && (hn(`Destroying a RUNNING gobj: ${tt(e)}`), Ve(e)), e.obflag |= R.obflag_destroying, function(e) {
724
+ e.__refs__ > 0 && hn(`${et(e)}: gobj DESTROYING with references: ${e.__refs__}`), e.playing && (hn(`Destroying a PLAYING gobj: ${tt(e)}`), xe(e)), e.running && (hn(`Destroying a RUNNING gobj: ${tt(e)}`), Ve(e)), e.obflag |= $.obflag_destroying, function(e) {
725
725
  if (0 === Lt.length) return;
726
726
  for (let t of Lt) t.src === e && (t.src = null);
727
727
  Lt = Lt.filter((t) => t.dst !== e);
@@ -732,13 +732,13 @@ var gobjJs = function(e) {
732
732
  r && r.gclass.gmt.mt_child_removed && (t && L(n("👦👦🔴 child_removed(%s): %s", tt(r), et(e))), r.gclass.gmt.mt_child_removed(r, e)), e.gobj_flag & N.gobj_flag_service && function(e) {
733
733
  let t = Xe(e);
734
734
  t = t.toLowerCase(), b[t] ? delete b[t] : hn(`"service NOT found in register": ${t}`);
735
- }(e), e === m && (m = null), Ht(e, e.dl_subscriptions, !0), Ht(e, e.dl_subscribings, !0), r && ($e(r, e), rt(e) && (st(r) !== e || ot(r) || it(r, null))), function(e) {
735
+ }(e), e === m && (m = null), Ht(e, e.dl_subscriptions, !0), Ht(e, e.dl_subscribings, !0), r && (Re(r, e), rt(e) && (st(r) !== e || ot(r) || it(r, null))), function(e) {
736
736
  let t = e.dl_children.slice();
737
737
  for (let e = 0; e < t.length; e++) {
738
738
  let n = t[e];
739
739
  ot(n) || Le(n);
740
740
  }
741
- }(e), e.obflag & R.obflag_created && e.gclass.gmt.mt_destroy && e.gclass.gmt.mt_destroy(e), t && L(n("💔💔⏪ destroyed: %s", tt(e))), e.obflag |= R.obflag_destroyed, e.obflag & R.obflag_created && e.gclass.instances--;
741
+ }(e), e.obflag & $.obflag_created && e.gclass.gmt.mt_destroy && e.gclass.gmt.mt_destroy(e), t && L(n("💔💔⏪ destroyed: %s", tt(e))), e.obflag |= $.obflag_destroyed, e.obflag & $.obflag_created && e.gclass.instances--;
742
742
  }
743
743
  function Pe(e) {
744
744
  if (ot(e)) return hn("gobj NULL or DESTROYED"), -1;
@@ -757,7 +757,7 @@ var gobjJs = function(e) {
757
757
  function Ve(e) {
758
758
  if (ot(e)) return hn("gobj NULL or DESTROYED"), -1;
759
759
  if (!e.running) return hn(`${et(e)}: GObj NOT RUNNING`), -1;
760
- e.playing && (En(`${et(e)}: GObj stopping without previous pause`), xe(e)), J(e) && L(n("⏹ ⏹ stop: %s", tt(e))), e.running = !1;
760
+ e.playing && (yn(`${et(e)}: GObj stopping without previous pause`), xe(e)), J(e) && L(n("⏹ ⏹ stop: %s", tt(e))), e.running = !1;
761
761
  let t = 0;
762
762
  return e.gclass.gmt.mt_stop && (t = e.gclass.gmt.mt_stop(e)), t;
763
763
  }
@@ -773,7 +773,7 @@ var gobjJs = function(e) {
773
773
  if (e.disabled) return hn(`${et(e)}: GObj DISABLED`), -1;
774
774
  if (!Ke(e)) {
775
775
  if (e.gclass.gclass_flag & w.gcflag_required_start_to_play) return hn(`${et(e)}: Cannot play, start not done`), -1;
776
- En(`${et(e)}: GObj playing without previous start`), Pe(e);
776
+ yn(`${et(e)}: GObj playing without previous start`), Pe(e);
777
777
  }
778
778
  J(e) && L(n("⏯ ⏯ play: %s", tt(e))), e.playing = !0;
779
779
  let t = 0;
@@ -795,7 +795,7 @@ var gobjJs = function(e) {
795
795
  return !ot(e) && e.playing;
796
796
  }
797
797
  function qe() {
798
- return !p || p.obflag & R.obflag_destroyed ? null : p;
798
+ return !p || p.obflag & $.obflag_destroyed ? null : p;
799
799
  }
800
800
  function He() {
801
801
  let e = qe();
@@ -834,14 +834,14 @@ var gobjJs = function(e) {
834
834
  return sr(e) ? !!(e.gobj_flag & N.gobj_flag_pure_child) : (hn("gobj NULL of bad type"), null);
835
835
  }
836
836
  function ot(e) {
837
- return !sr(e) || !!(e.obflag & (R.obflag_destroyed | R.obflag_destroying));
837
+ return !sr(e) || !!(e.obflag & ($.obflag_destroyed | $.obflag_destroying));
838
838
  }
839
839
  function st(e) {
840
840
  return sr(e) ? e.bottom_gobj : (hn("gobj NULL of bad type"), null);
841
841
  }
842
842
  function it(e, t) {
843
843
  if (!sr(e)) return hn("gobj NULL of bad type"), null;
844
- e.bottom_gobj && t && En(`${et(e)}: bottom_gobj already set`), e.bottom_gobj = t;
844
+ e.bottom_gobj && t && yn(`${et(e)}: bottom_gobj already set`), e.bottom_gobj = t;
845
845
  }
846
846
  function _t(e, t, n) {
847
847
  return sr(e) ? t ? ge(e.gclass, t, n) : e.gclass.attrs_table : (hn("gobj NULL of bad type"), null);
@@ -937,7 +937,7 @@ var gobjJs = function(e) {
937
937
  function ht(e, t) {
938
938
  return !ir(t) && !!ge(e.gclass, t, !1);
939
939
  }
940
- function Et(e, t, n) {
940
+ function yt(e, t, n) {
941
941
  let r = e.jn_attrs;
942
942
  if (t in r && Object.prototype.hasOwnProperty.call(r, t)) {
943
943
  let n = r[t];
@@ -945,13 +945,13 @@ var gobjJs = function(e) {
945
945
  }
946
946
  return hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), null;
947
947
  }
948
- function yt(e, t, n) {
948
+ function Et(e, t, n) {
949
949
  let r = {}, l = e.gclass.attrs_table;
950
950
  for (let n = 0; n < l.length; n++) {
951
951
  const o = l[n];
952
952
  if (o.name && (-1 === t || o.flag & t)) {
953
953
  let t;
954
- !e.gclass.gmt.mt_reading || e.obflag & R.obflag_destroyed ? t = xn(e.jn_attrs, o.name) : (t = e.gclass.gmt.mt_reading(e, o.name), void 0 === t && (t = xn(e.jn_attrs, o.name))), Yn(r, o.name, t);
954
+ !e.gclass.gmt.mt_reading || e.obflag & $.obflag_destroyed ? t = xn(e.jn_attrs, o.name) : (t = e.gclass.gmt.mt_reading(e, o.name), void 0 === t && (t = xn(e.jn_attrs, o.name))), Yn(r, o.name, t);
955
955
  }
956
956
  }
957
957
  return r;
@@ -964,28 +964,28 @@ var gobjJs = function(e) {
964
964
  if (0 === ur(t, "__service__")) return Be(e);
965
965
  }
966
966
  let n = fe(e, t, !1);
967
- return n ? !e.gclass.gmt.mt_reading || e.obflag & R.obflag_destroyed ? xn(n, t) : e.gclass.gmt.mt_reading(e, t) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
967
+ return n ? !e.gclass.gmt.mt_reading || e.obflag & $.obflag_destroyed ? xn(n, t) : e.gclass.gmt.mt_reading(e, t) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
968
968
  }
969
969
  function vt(e, t) {
970
970
  t && ur(t, "__trace_level__");
971
971
  let n = fe(e, t, !1);
972
- return n ? !e.gclass.gmt.mt_reading || e.obflag & R.obflag_destroyed ? xn(n, t) : e.gclass.gmt.mt_reading(e, t) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
972
+ return n ? !e.gclass.gmt.mt_reading || e.obflag & $.obflag_destroyed ? xn(n, t) : e.gclass.gmt.mt_reading(e, t) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
973
973
  }
974
974
  function jt(e, t) {
975
975
  if (t && 0 === ur(t, "__state__")) return kt(e);
976
976
  let n = fe(e, t, !1);
977
- return n ? !e.gclass.gmt.mt_reading || e.obflag & R.obflag_destroyed ? xn(n, t) : e.gclass.gmt.mt_reading(e, t) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
977
+ return n ? !e.gclass.gmt.mt_reading || e.obflag & $.obflag_destroyed ? xn(n, t) : e.gclass.gmt.mt_reading(e, t) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
978
978
  }
979
979
  function Ot(e, t) {
980
980
  let n = fe(e, t, !1);
981
- return n ? !e.gclass.gmt.mt_reading || e.obflag & R.obflag_destroyed ? xn(n, t) : e.gclass.gmt.mt_reading(e, t) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
981
+ return n ? !e.gclass.gmt.mt_reading || e.obflag & $.obflag_destroyed ? xn(n, t) : e.gclass.gmt.mt_reading(e, t) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
982
982
  }
983
983
  function St(e, t, r, l) {
984
984
  if (!tr(t)) return hn(n("gobj_write_attr(%s): path must be a string", et(e))), -1;
985
985
  let o, s = e.jn_attrs, i = t.split("`");
986
986
  if (i.length <= 1) {
987
987
  let l = t;
988
- return l in s && Object.prototype.hasOwnProperty.call(s, l) ? (s[l] = r, Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, l) && (e.priv[l] = r), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, l), 0) : (hn(n("gobj_write_attr(%s): attr not found '%s'", et(e), l)), -1);
988
+ return l in s && Object.prototype.hasOwnProperty.call(s, l) ? (s[l] = r, Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, l) && (e.priv[l] = r), e.obflag & $.obflag_created && !(e.obflag & $.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, l), 0) : (hn(n("gobj_write_attr(%s): attr not found '%s'", et(e), l)), -1);
989
989
  }
990
990
  let _ = i.length;
991
991
  for (let t = 0; t < _; t++) {
@@ -996,7 +996,7 @@ var gobjJs = function(e) {
996
996
  continue;
997
997
  }
998
998
  let l = e.jn_attrs;
999
- if (o in l && Object.prototype.hasOwnProperty.call(l, o)) return l[o] = r, Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, o) && (e.priv[o] = r), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, o), 0;
999
+ if (o in l && Object.prototype.hasOwnProperty.call(l, o)) return l[o] = r, Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, o) && (e.priv[o] = r), e.obflag & $.obflag_created && !(e.obflag & $.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, o), 0;
1000
1000
  break;
1001
1001
  }
1002
1002
  return hn(n("gobj_write_attr(%s): attr not found '%s'", et(e), o)), -1;
@@ -1011,15 +1011,15 @@ var gobjJs = function(e) {
1011
1011
  }
1012
1012
  function Nt(e, t, n) {
1013
1013
  let r = fe(e, t, !1);
1014
- return r ? (r[t] = _r(n), Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, t) && (e.priv[t] = r[t]), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1014
+ return r ? (r[t] = _r(n), Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, t) && (e.priv[t] = r[t]), e.obflag & $.obflag_created && !(e.obflag & $.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1015
1015
  }
1016
- function Rt(e, t, n) {
1016
+ function $t(e, t, n) {
1017
1017
  let r = fe(e, t, !1);
1018
- return r ? (r[t] = parseInt(n), Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, t) && (e.priv[t] = r[t]), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1018
+ return r ? (r[t] = parseInt(n), Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, t) && (e.priv[t] = r[t]), e.obflag & $.obflag_created && !(e.obflag & $.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1019
1019
  }
1020
- function $t(e, t, n) {
1020
+ function Rt(e, t, n) {
1021
1021
  let r = fe(e, t, !1);
1022
- return r ? (r[t] = String(n), Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, t) && (e.priv[t] = r[t]), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1022
+ return r ? (r[t] = String(n), Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, t) && (e.priv[t] = r[t]), e.obflag & $.obflag_created && !(e.obflag & $.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1023
1023
  }
1024
1024
  function Dt(e, t) {
1025
1025
  if (ot(e)) return hn("gobj NULL or DESTROYED"), null;
@@ -1054,11 +1054,11 @@ var gobjJs = function(e) {
1054
1054
  }
1055
1055
  function Ct(e, t, n) {
1056
1056
  let r = At(e, t, !1);
1057
- return !!r && !(n && !(r.event_flag & n)) && !!(r.event_flag & $.EVF_OUTPUT_EVENT);
1057
+ return !!r && !(n && !(r.event_flag & n)) && !!(r.event_flag & R.EVF_OUTPUT_EVENT);
1058
1058
  }
1059
1059
  var Lt = [], Pt = !1;
1060
1060
  function Ut(e, t, r, l) {
1061
- return e && e instanceof S ? e.obflag & (R.obflag_destroyed | R.obflag_destroying) ? (hn(`gobj_post_event(): gobj dst DESTROYING, event ${t}`), -1) : ir(t) ? (hn("gobj_post_event(): event EMPTY"), -1) : It(e, t, 0) ? Lt.length >= 1e4 ? (hn(`gobj_post_event(): too many posted events, this is NOT a work queue, event ${t}, pending ${Lt.length}`), -1) : (Lt.push({
1061
+ return e && e instanceof S ? e.obflag & ($.obflag_destroyed | $.obflag_destroying) ? (hn(`gobj_post_event(): gobj dst DESTROYING, event ${t}`), -1) : ir(t) ? (hn("gobj_post_event(): event EMPTY"), -1) : It(e, t, 0) ? Lt.length >= 1e4 ? (hn(`gobj_post_event(): too many posted events, this is NOT a work queue, event ${t}, pending ${Lt.length}`), -1) : (Lt.push({
1062
1062
  dst: e,
1063
1063
  event: t,
1064
1064
  kw: r,
@@ -1072,7 +1072,7 @@ var gobjJs = function(e) {
1072
1072
  let t = 0;
1073
1073
  for (let n = 0; n < e.length; n++) {
1074
1074
  const r = e[n];
1075
- if (!(r.dst.obflag & (R.obflag_destroyed | R.obflag_destroying))) {
1075
+ if (!(r.dst.obflag & ($.obflag_destroyed | $.obflag_destroying))) {
1076
1076
  try {
1077
1077
  Vt(r.dst, r.event, r.kw, r.src);
1078
1078
  } catch (t) {
@@ -1085,7 +1085,7 @@ var gobjJs = function(e) {
1085
1085
  }
1086
1086
  function Vt(e, t, r, l) {
1087
1087
  if (!(e && e instanceof S)) return hn("gobj dst NULL"), -1;
1088
- if (e.obflag & (R.obflag_destroyed | R.obflag_destroying)) return hn("gobj dst DESTROYED"), -1;
1088
+ if (e.obflag & ($.obflag_destroyed | $.obflag_destroying)) return hn("gobj dst DESTROYED"), -1;
1089
1089
  let o = e.current_state;
1090
1090
  if (!o) return hn(`${et(e)}: current_state NULL`), -1;
1091
1091
  let s = H(e, t) && !z(l, t);
@@ -1113,7 +1113,7 @@ var gobjJs = function(e) {
1113
1113
  }
1114
1114
  throw n;
1115
1115
  }
1116
- return !s || 1 === C || e.obflag & R.obflag_destroyed || L(n("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d", e.running ? "" : "!!", Ze(e), Xe(e), e.current_state.state_name, t || "", nr(_) ? _ : 0)), h--, _;
1116
+ return !s || 1 === C || e.obflag & $.obflag_destroyed || L(n("<- mach(%s%s^%s), st: %s, ev: %s, ret: %d", e.running ? "" : "!!", Ze(e), Xe(e), e.current_state.state_name, t || "", nr(_) ? _ : 0)), h--, _;
1117
1117
  }
1118
1118
  var Gt = Object.freeze({
1119
1119
  __rename_event_name__: 1,
@@ -1132,16 +1132,16 @@ var gobjJs = function(e) {
1132
1132
  return null;
1133
1133
  }
1134
1134
  var Wt = [
1135
- j(E.DTP_POINTER, "publisher", 0, null, "publisher gobj"),
1136
- j(E.DTP_POINTER, "subscriber", 0, null, "subscriber gobj"),
1137
- j(E.DTP_STRING, "event", 0, "", "event name subscribed"),
1138
- j(E.DTP_STRING, "renamed_event", 0, "", "rename event name"),
1139
- j(E.DTP_INTEGER, "subs_flag", 0, 0, "subscription flag"),
1140
- j(E.DTP_JSON, "__config__", 0, null, "subscription config"),
1141
- j(E.DTP_JSON, "__global__", 0, null, "global kw, merge in publishing"),
1142
- j(E.DTP_JSON, "__local__", 0, null, "local kw, remove in publishing"),
1143
- j(E.DTP_JSON, "__filter__", 0, null, "filter kw, filter in publishing"),
1144
- j(E.DTP_STRING, "__service__", 0, "", "subscription service"),
1135
+ j(y.DTP_POINTER, "publisher", 0, null, "publisher gobj"),
1136
+ j(y.DTP_POINTER, "subscriber", 0, null, "subscriber gobj"),
1137
+ j(y.DTP_STRING, "event", 0, "", "event name subscribed"),
1138
+ j(y.DTP_STRING, "renamed_event", 0, "", "rename event name"),
1139
+ j(y.DTP_INTEGER, "subs_flag", 0, 0, "subscription flag"),
1140
+ j(y.DTP_JSON, "__config__", 0, null, "subscription config"),
1141
+ j(y.DTP_JSON, "__global__", 0, null, "global kw, merge in publishing"),
1142
+ j(y.DTP_JSON, "__local__", 0, null, "local kw, remove in publishing"),
1143
+ j(y.DTP_JSON, "__filter__", 0, null, "filter kw, filter in publishing"),
1144
+ j(y.DTP_STRING, "__service__", 0, "", "subscription service"),
1145
1145
  v()
1146
1146
  ];
1147
1147
  function xt(e, t) {
@@ -1191,10 +1191,10 @@ var gobjJs = function(e) {
1191
1191
  }
1192
1192
  function Jt(e, t, r, l) {
1193
1193
  let o = vr(e, t, "publisher", null, Zt.KW_REQUIRED), s = vr(e, t, "subscriber", null, Zt.KW_REQUIRED), i = Tr(e, t, "event", "", Zt.KW_REQUIRED);
1194
- if (!!(yr(e, t, "subs_flag", null, Zt.KW_REQUIRED) & Gt.__hard_subscription__) && !r) return -1;
1194
+ if (!!(Er(e, t, "subs_flag", null, Zt.KW_REQUIRED) & Gt.__hard_subscription__) && !r) return -1;
1195
1195
  let _ = B(s) || B(o);
1196
1196
  if (Bt(o.dl_subscriptions, t) < 0) return _ && L(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s', ALREADY REMOVED", i || "", et(o), et(s))), 1;
1197
- _ && (L(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s'", i || "", et(o), et(s))), vn(t)), o.obflag & R.obflag_destroyed || l || o.gclass.gmt.mt_subscription_deleted && o.gclass.gmt.mt_subscription_deleted(o, t);
1197
+ _ && (L(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s'", i || "", et(o), et(s))), vn(t)), o.obflag & $.obflag_destroyed || l || o.gclass.gmt.mt_subscription_deleted && o.gclass.gmt.mt_subscription_deleted(o, t);
1198
1198
  let a = Bt(o.dl_subscriptions, t);
1199
1199
  return a >= 0 ? Hn(o.dl_subscriptions, a) : (hn(`${et(e)}: subscription in publisher not found`), vn(t)), a = Bt(s.dl_subscribings, t), a >= 0 ? Hn(s.dl_subscribings, a) : (hn(`${et(e)}: subscription in subscriber not found`), vn(t)), 0;
1200
1200
  }
@@ -1211,13 +1211,13 @@ var gobjJs = function(e) {
1211
1211
  if (Object.keys(r).forEach((n) => {
1212
1212
  o.has(n) || hn(`${et(e)}: key ignored in subscription (key: ${n}, event: ${t})`);
1213
1213
  }), ir(t)) t = "";
1214
- else if (!(Ct(e, t, $.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & w.gcflag_no_check_output_events)) return hn(`event NOT in output event list: ${et(e)}, ${t}`), 0;
1214
+ else if (!(Ct(e, t, R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & w.gcflag_no_check_output_events)) return hn(`event NOT in output event list: ${et(e)}, ${t}`), 0;
1215
1215
  let s = xt(r, t), i = Yt(e.dl_subscriptions, e, t, s.renamed_event, s.kw, l), _ = null;
1216
- for (let t = 0; t < i.length; t++) if (yr(e, i[t], "subs_flag", 0, Zt.KW_REQUIRED) & Gt.__hard_subscription__) {
1216
+ for (let t = 0; t < i.length; t++) if (Er(e, i[t], "subs_flag", 0, Zt.KW_REQUIRED) & Gt.__hard_subscription__) {
1217
1217
  _ = i[t];
1218
1218
  break;
1219
1219
  }
1220
- if (_) return En(`${et(e)}: Hard subscription REPEATED, the one there is kept and returned (event: ${t}, subscriber: ${et(l)})`), _;
1220
+ if (_) return yn(`${et(e)}: Hard subscription REPEATED, the one there is kept and returned (event: ${t}, subscriber: ${et(l)})`), _;
1221
1221
  Qn(i) > 0 && (hn(`${et(e)}: ${Qn(i)} subscription(s) REPEATED, will be deleted and override`), vn(i, "subscription REPEATED"), Ht(e, i, !1));
1222
1222
  let a = function(e, t, n, r) {
1223
1223
  let l = _e(e, Wt);
@@ -1238,11 +1238,11 @@ var gobjJs = function(e) {
1238
1238
  } else hn(`${et(e)}: EVENT NOT FOUND (__rename_event_name__: ${s})`);
1239
1239
  }
1240
1240
  if (gr(n, "__hard_subscription__")) {
1241
- let t = Er(e, n, "__hard_subscription__", !1);
1241
+ let t = yr(e, n, "__hard_subscription__", !1);
1242
1242
  Kn(n, "__hard_subscription__"), t && (o |= Gt.__hard_subscription__);
1243
1243
  }
1244
1244
  if (gr(n, "__own_event__")) {
1245
- let t = Er(e, n, "__own_event__", !1);
1245
+ let t = yr(e, n, "__own_event__", !1);
1246
1246
  Kn(n, "__own_event__"), t && (o |= Gt.__own_event__);
1247
1247
  }
1248
1248
  }
@@ -1260,7 +1260,7 @@ var gobjJs = function(e) {
1260
1260
  function Ht(e, t, n) {
1261
1261
  let r = [...t], l = 0;
1262
1262
  for (let t = 0; t < r.length; t++) Jt(e, r[t], n, !1) > 0 && l++;
1263
- return l && En(`${et(e)}: Subscription(s) already removed, nothing to remove (count: ${l})`), 0;
1263
+ return l && yn(`${et(e)}: Subscription(s) already removed, nothing to remove (count: ${l})`), 0;
1264
1264
  }
1265
1265
  function zt(e, t, n, r) {
1266
1266
  return null == n && (n = {}), Yt(e.dl_subscriptions, e, t, null, n, r);
@@ -1269,10 +1269,10 @@ var gobjJs = function(e) {
1269
1269
  return Yt(e.dl_subscribings, r, t, null, n, e);
1270
1270
  }
1271
1271
  function Xt(e, t, r) {
1272
- if (Zn(r) || (r = {}), !e || e.obflag & (R.obflag_destroyed | R.obflag_destroying)) return hn("gobj NULL or DESTROYED"), -1;
1272
+ if (Zn(r) || (r = {}), !e || e.obflag & ($.obflag_destroyed | $.obflag_destroying)) return hn("gobj NULL or DESTROYED"), -1;
1273
1273
  if (ir(t)) return hn(`${et(e)}: event EMPTY`), -1;
1274
1274
  let l = At(e, t, !0);
1275
- if (!(l && l.event_flag & ($.EVF_SYSTEM_EVENT | $.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & w.gcflag_no_check_output_events)) return hn(`event NOT in output event list: ${et(e)}, ev ${t}`), -1;
1275
+ if (!(l && l.event_flag & (R.EVF_SYSTEM_EVENT | R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & w.gcflag_no_check_output_events)) return hn(`event NOT in output event list: ${et(e)}, ev ${t}`), -1;
1276
1276
  let o = (B(e) || H(e, t)) && !z(e, t);
1277
1277
  if (o && (L(1 === C ? n("🔝🔝 %s %s%s %s", t || "", e.running ? "" : "!!", et(e), e.current_state.state_name) : n("🔝🔝 mach(%s%s^%s), st: %s, ev: %s%s%s", e.running ? "" : "!!", Ze(e), Xe(e), e.current_state.state_name, "", t || "", "")), q(e) && zn(r) && Un(r)), e.gclass.gmt.mt_publish_event) {
1278
1278
  let n = e.gclass.gmt.mt_publish_event(e, t, r);
@@ -1288,16 +1288,16 @@ var gobjJs = function(e) {
1288
1288
  }
1289
1289
  let u = vr(e, a, "subscriber", null, Zt.KW_REQUIRED);
1290
1290
  if (!u || ot(u)) continue;
1291
- let c = yr(e, a, "subs_flag", 0, Zt.KW_REQUIRED), f = Tr(e, a, "event", "", Zt.KW_REQUIRED);
1291
+ let c = Er(e, a, "subs_flag", 0, Zt.KW_REQUIRED), f = Tr(e, a, "event", "", Zt.KW_REQUIRED);
1292
1292
  if (ir(f) || 0 === ur(f, t)) {
1293
1293
  jr(e, a, "__config__", null, 0);
1294
1294
  let l = jr(e, a, "__global__", null, 0), s = jr(e, a, "__local__", null, 0), f = Or(e, a, "__filter__", null, 0), g = a.renamed_event;
1295
1295
  ir(g) && (g = t);
1296
1296
  let d = 1;
1297
- if (e.gclass.gmt.mt_publication_filter ? d = e.gclass.gmt.mt_publication_filter(e, t, r, u) : Xn(f) > 0 && (d = Rr(r, f) ? 1 : 0, o && (L(n("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", d ? "👍" : "👎", t || "", et(u), et(e))), vn(f))), d < 0) break;
1297
+ if (e.gclass.gmt.mt_publication_filter ? d = e.gclass.gmt.mt_publication_filter(e, t, r, u) : Xn(f) > 0 && (d = $r(r, f) ? 1 : 0, o && (L(n("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", d ? "👍" : "👎", t || "", et(u), et(e))), vn(f))), d < 0) break;
1298
1298
  if (!d) continue;
1299
1299
  let b = At(u, t, !0);
1300
- if (b && b.event_flag & $.EVF_SYSTEM_EVENT && !It(u, b.event_name, 0)) continue;
1300
+ if (b && b.event_flag & R.EVF_SYSTEM_EVENT && !It(u, b.event_name, 0)) continue;
1301
1301
  let p = r;
1302
1302
  (Xn(s) > 0 || Xn(l) > 0) && (p = Gn({}, r)), Xn(s) > 0 && fr(p, s), Xn(l) > 0 && Gn(p, Fn(l)), o && (L(1 === C ? n("🔝🔄 %s (%s) %s%s", t || "", g || "", u.running ? "" : "!!", et(u)) : n("🔝🔄 mach(%s%s), st: %s, ev: %s (%s), from(%s%s)", u.running ? "" : "!!", et(u), kt(u), t || "", g || "", e && !e.running ? "!!" : "", et(e))), q(e) && zn(p) && Un(p));
1303
1303
  let m = Vt(u, g, p, e);
@@ -1308,7 +1308,7 @@ var gobjJs = function(e) {
1308
1308
  if (_ += m, i++, ot(e)) break;
1309
1309
  }
1310
1310
  }
1311
- return i || l && l.event_flag & $.EVF_NO_WARN_SUBS || En(`${et(e)}: Publish event WITHOUT subscribers, ev ${t}`), _;
1311
+ return i || l && l.event_flag & R.EVF_NO_WARN_SUBS || yn(`${et(e)}: Publish event WITHOUT subscribers, ev ${t}`), _;
1312
1312
  }
1313
1313
  var Zt = Object.freeze({
1314
1314
  KW_REQUIRED: 1,
@@ -1405,11 +1405,11 @@ var gobjJs = function(e) {
1405
1405
  let n = mn(e, ...t), r = el();
1406
1406
  tn && (tn === en.error ? cn("error", n) && tn("%c" + r + " ERROR: " + String(n), "color:red") : (cn("error", n) && en.error("%c" + r + " ERROR: " + String(n), "color:red"), tn(`${r} ERROR: ${String(n)}`))), gn("error", n, r);
1407
1407
  }
1408
- function En(e, ...t) {
1408
+ function yn(e, ...t) {
1409
1409
  let n = mn(e, ...t), r = el();
1410
1410
  nn && (nn === en.warn ? cn("warning", n) && nn("%c" + r + " WARNING: " + String(n), "color:yellow") : (cn("warning", n) && en.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), nn(`${r} WARNING: ${String(n)}`))), gn("warning", n, r);
1411
1411
  }
1412
- function yn(e, ...t) {
1412
+ function En(e, ...t) {
1413
1413
  let n = mn(e, ...t), r = el();
1414
1414
  ln && cn("debug", n) && ln("%c" + r + " DEBUG: " + String(n), "color:silver"), gn("debug", n, r);
1415
1415
  }
@@ -1495,10 +1495,10 @@ var gobjJs = function(e) {
1495
1495
  o = t;
1496
1496
  }
1497
1497
  }
1498
- var Rn = 128, $n = 4194304, Dn = "<not shown: too large to mask>";
1498
+ var $n = 128, Rn = 4194304, Dn = "<not shown: too large to mask>";
1499
1499
  function kn(e) {
1500
1500
  if ("string" != typeof e || e.indexOf("=") < 0) return null;
1501
- if (e.length > $n) return Dn;
1501
+ if (e.length > Rn) return Dn;
1502
1502
  let t, n = !1, r = /(^|[ \t])attribute=["']?([^ \t"']*)/g;
1503
1503
  for (; null !== (t = r.exec(e));) wn(t[2].slice(-128)) && (n = !0);
1504
1504
  let l = [], o = 0, s = !1, i = "", _ = 0, a = 0;
@@ -1513,7 +1513,7 @@ var gobjJs = function(e) {
1513
1513
  a++;
1514
1514
  continue;
1515
1515
  }
1516
- let r = e.substring(Math.max(_, a - Rn), a);
1516
+ let r = e.substring(Math.max(_, a - $n), a);
1517
1517
  if (_ = a + 1, !(wn(r) || n && "value" === r.toLowerCase())) {
1518
1518
  a++;
1519
1519
  continue;
@@ -1582,7 +1582,7 @@ var gobjJs = function(e) {
1582
1582
  }
1583
1583
  function Pn(e) {
1584
1584
  try {
1585
- return Ln(e, /* @__PURE__ */ new WeakMap(), 0, { left: $n });
1585
+ return Ln(e, /* @__PURE__ */ new WeakMap(), 0, { left: Rn });
1586
1586
  } catch (e) {
1587
1587
  return In;
1588
1588
  }
@@ -1764,7 +1764,7 @@ var gobjJs = function(e) {
1764
1764
  else if (s = mr(e, t, l, !0), void 0 === s) return -1;
1765
1765
  return er(s) ? (hn(`${r}kw_delete(): cannot delete an item of a list: '${n}'`), -1) : Zn(s) && Object.prototype.hasOwnProperty.call(s, o) ? (delete s[o], 0) : (hn(`${r}kw_delete(): path not found: '${n}'`), -1);
1766
1766
  }
1767
- function Er(e, t, n, r, l) {
1767
+ function yr(e, t, n, r, l) {
1768
1768
  e && !sr(e) && hn("GObj bad instanceof");
1769
1769
  let o = mr(e, t, n, !1);
1770
1770
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT, a = l && l & Zt.KW_WILD_NUMBER;
@@ -1785,7 +1785,7 @@ var gobjJs = function(e) {
1785
1785
  }
1786
1786
  return _ && hr(e, t, n), u;
1787
1787
  }
1788
- function yr(e, t, n, r, l) {
1788
+ function Er(e, t, n, r, l) {
1789
1789
  e && !sr(e) && hn("GObj bad instanceof");
1790
1790
  let o = mr(e, t, n, !1);
1791
1791
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT, a = l && l & Zt.KW_WILD_NUMBER;
@@ -1932,10 +1932,10 @@ var gobjJs = function(e) {
1932
1932
  }
1933
1933
  return o;
1934
1934
  }
1935
- function Rr(e, t) {
1935
+ function $r(e, t) {
1936
1936
  return 0 === Xn(t) || Nr(e, t, "");
1937
1937
  }
1938
- function $r(e, t, n, r) {
1938
+ function Rr(e, t, n, r) {
1939
1939
  e && !sr(e) && hn("GObj bad instanceof");
1940
1940
  let l = {};
1941
1941
  if (tr(n) && !ir(n)) {
@@ -2005,7 +2005,7 @@ var gobjJs = function(e) {
2005
2005
  }
2006
2006
  function Lr(e, t, n, r, l) {
2007
2007
  if (e && !sr(e) && hn("GObj bad instanceof"), !t) return null;
2008
- l || (l = Rr);
2008
+ l || (l = $r);
2009
2009
  let o = [];
2010
2010
  if (er(t)) for (let s = 0; s < t.length; s++) {
2011
2011
  let i, _ = t[s];
@@ -2337,9 +2337,9 @@ var gobjJs = function(e) {
2337
2337
  return t.is_file && (t.type = "file"), t;
2338
2338
  }
2339
2339
  var bl = [
2340
- j(E.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
2341
- j(E.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
2342
- j(E.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
2340
+ j(y.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
2341
+ j(y.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
2342
+ j(y.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
2343
2343
  v()
2344
2344
  ], pl = {
2345
2345
  periodic: !1,
@@ -2352,7 +2352,7 @@ var gobjJs = function(e) {
2352
2352
  Vt(e, "EV_TIMEOUT", {}, e);
2353
2353
  }, l.msec) : l.timer_id = -1, lt(e) ? Vt(nt(e), o, {}, e) : Xt(e, o, {}), l.periodic || -1 !== l.timer_id || Ke(e) && Ve(e), 0;
2354
2354
  }
2355
- var El = {
2355
+ var yl = {
2356
2356
  mt_create: function(e) {
2357
2357
  let t = e.priv;
2358
2358
  const n = Ot(e, "subscriber");
@@ -2373,42 +2373,42 @@ var gobjJs = function(e) {
2373
2373
  return 0;
2374
2374
  },
2375
2375
  mt_stop: function(e) {
2376
- return Rt(e, "msec", -1), 0;
2376
+ return $t(e, "msec", -1), 0;
2377
2377
  },
2378
2378
  mt_destroy: function(e) {}
2379
2379
  };
2380
- function yl(e, t) {
2381
- return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !1), void Rt(e, "msec", t)) : (hn("not GObj TYPE"), -1);
2380
+ function El(e, t) {
2381
+ return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !1), void $t(e, "msec", t)) : (hn("not GObj TYPE"), -1);
2382
2382
  }
2383
2383
  function Tl(e, t) {
2384
- return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !0), void Rt(e, "msec", t)) : (hn("not GObj TYPE"), -1);
2384
+ return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !0), void $t(e, "msec", t)) : (hn("not GObj TYPE"), -1);
2385
2385
  }
2386
2386
  function vl(e) {
2387
- return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : void Rt(e, "msec", -1) : (hn("not GObj TYPE"), -1);
2387
+ return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : void $t(e, "msec", -1) : (hn("not GObj TYPE"), -1);
2388
2388
  }
2389
2389
  var jl = [
2390
- j(E.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
2391
- j(E.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
2392
- j(E.DTP_STRING, "__username__", 0, "", "Username"),
2393
- j(E.DTP_STRING, "start_date", 0, "", "Yuno starting date"),
2394
- j(E.DTP_STRING, "node_uuid", 0, "", "uuid of node"),
2395
- j(E.DTP_STRING, "yuno_role", 0, "", "Yuno role"),
2396
- j(E.DTP_STRING, "yuno_id", 0, "", "Yuno Id. Set by agent"),
2397
- j(E.DTP_STRING, "yuno_name", 0, "", "Yuno name. Set by agent"),
2398
- j(E.DTP_STRING, "yuno_tag", 0, "", "Tags of yuno. Set by agent"),
2399
- j(E.DTP_STRING, "yuno_release", 0, "", "Yuno Release. Set by agent"),
2400
- j(E.DTP_STRING, "yuno_version", 0, "", "Yuno version (APP_VERSION)"),
2401
- j(E.DTP_STRING, "yuneta_version", 0, s, "Yuneta version"),
2402
- j(E.DTP_LIST, "required_services", 0, "[]", "Required services"),
2403
- j(E.DTP_DICT, "trace_levels", y.SDF_PERSIST, "{}", "Trace levels"),
2404
- j(E.DTP_DICT, "no_trace_levels", y.SDF_PERSIST, "{}", "No trace levels"),
2405
- j(E.DTP_POINTER, "trace_ievent_callback", 0, null, "Where the traffic trace goes (C_IEVENT_CLI levels ievents/ievents2); console when null"),
2406
- j(E.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
2407
- j(E.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
2390
+ j(y.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
2391
+ j(y.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
2392
+ j(y.DTP_STRING, "__username__", 0, "", "Username"),
2393
+ j(y.DTP_STRING, "start_date", 0, "", "Yuno starting date"),
2394
+ j(y.DTP_STRING, "node_uuid", 0, "", "uuid of node"),
2395
+ j(y.DTP_STRING, "yuno_role", 0, "", "Yuno role"),
2396
+ j(y.DTP_STRING, "yuno_id", 0, "", "Yuno Id. Set by agent"),
2397
+ j(y.DTP_STRING, "yuno_name", 0, "", "Yuno name. Set by agent"),
2398
+ j(y.DTP_STRING, "yuno_tag", 0, "", "Tags of yuno. Set by agent"),
2399
+ j(y.DTP_STRING, "yuno_release", 0, "", "Yuno Release. Set by agent"),
2400
+ j(y.DTP_STRING, "yuno_version", 0, "", "Yuno version (APP_VERSION)"),
2401
+ j(y.DTP_STRING, "yuneta_version", 0, s, "Yuneta version"),
2402
+ j(y.DTP_LIST, "required_services", 0, "[]", "Required services"),
2403
+ j(y.DTP_DICT, "trace_levels", E.SDF_PERSIST, "{}", "Trace levels"),
2404
+ j(y.DTP_DICT, "no_trace_levels", E.SDF_PERSIST, "{}", "No trace levels"),
2405
+ j(y.DTP_POINTER, "trace_ievent_callback", 0, null, "Where the traffic trace goes (C_IEVENT_CLI levels ievents/ievents2); console when null"),
2406
+ j(y.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
2407
+ j(y.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
2408
2408
  v()
2409
2409
  ], Ol = { gobj_timer: null }, Sl = null;
2410
2410
  function wl(e, t, n, r) {
2411
- let l = Et(e, t);
2411
+ let l = yt(e, t);
2412
2412
  return Zn(l) || (l = {}), l[n] = r, St(e, t, l), De(e, t);
2413
2413
  }
2414
2414
  function Nl(e) {
@@ -2416,17 +2416,17 @@ var gobjJs = function(e) {
2416
2416
  let t = String(null == e ? "" : e).toLowerCase();
2417
2417
  return "true" === t || "set" === t || "false" !== t && "reset" !== t && ("" === t || isNaN(Number(t)) ? null : !!Number(t));
2418
2418
  }
2419
- function Rl() {
2419
+ function $l() {
2420
2420
  return `${ze()}^${He()}`;
2421
2421
  }
2422
- function $l(e, t, n, r) {
2422
+ function Rl(e, t, n, r) {
2423
2423
  return Xt(e, t, n), 0;
2424
2424
  }
2425
2425
  var Dl = {
2426
2426
  mt_create: function(e) {
2427
2427
  let t = e.priv;
2428
- $t(e, "start_date", el()), $t(e, "node_uuid", nl()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout = Et(e, "periodic_timeout"), function(e) {
2429
- let t = Et(e, "trace_levels");
2428
+ Rt(e, "start_date", el()), Rt(e, "node_uuid", nl()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout = yt(e, "periodic_timeout"), function(e) {
2429
+ let t = yt(e, "trace_levels");
2430
2430
  if (!Zn(t)) return 0;
2431
2431
  let n = t.__global_trace__;
2432
2432
  if (er(n)) {
@@ -2441,7 +2441,7 @@ var gobjJs = function(e) {
2441
2441
  } else hn(`${Xe(e)}: trace_levels of ${n} MUST be a list`);
2442
2442
  }
2443
2443
  }(e), function(e) {
2444
- let t = Et(e, "no_trace_levels");
2444
+ let t = yt(e, "no_trace_levels");
2445
2445
  if (!Zn(t)) return 0;
2446
2446
  let n = t.__global_no_trace__;
2447
2447
  if (er(n)) {
@@ -2480,38 +2480,38 @@ var gobjJs = function(e) {
2480
2480
  case "set-global-trace":
2481
2481
  case "set-global-no-trace": {
2482
2482
  let r = "set-global-no-trace" === t, o = n.level, s = Nl(n.set);
2483
- return o ? null === s ? l(0, -1, `${Rl()}: bitmask set or re-set?`, null, null) : (r ? X(o, s) : Q(o, s)) < 0 ? l(0, -1, `${Rl()}: global trace level not found: ${o}`, null, null) : r ? (wl(e, "no_trace_levels", "__global_no_trace__", ne()), l(0, 0, null, null, ne())) : (wl(e, "trace_levels", "__global_trace__", te()), l(0, 0, null, null, te())) : l(0, -1, `${Rl()}: what level?`, null, null);
2483
+ return o ? null === s ? l(0, -1, `${$l()}: bitmask set or re-set?`, null, null) : (r ? X(o, s) : Q(o, s)) < 0 ? l(0, -1, `${$l()}: global trace level not found: ${o}`, null, null) : r ? (wl(e, "no_trace_levels", "__global_no_trace__", ne()), l(0, 0, null, null, ne())) : (wl(e, "trace_levels", "__global_trace__", te()), l(0, 0, null, null, te())) : l(0, -1, `${$l()}: what level?`, null, null);
2484
2484
  }
2485
2485
  case "get-gclass-trace":
2486
2486
  case "get-gclass-no-trace":
2487
2487
  case "set-gclass-trace":
2488
2488
  case "set-gclass-no-trace": {
2489
2489
  let r = t.indexOf("no-trace") >= 0, o = n.gclass_name || n.gclass || "", s = Oe(o);
2490
- if (!s) return l(0, -1, `${Rl()}: what gclass is '${o}'?`, null, null);
2490
+ if (!s) return l(0, -1, `${$l()}: what gclass is '${o}'?`, null, null);
2491
2491
  if (0 === t.indexOf("get-")) return l(0, 0, null, null, r ? oe(s) : re(s));
2492
2492
  let i = n.level, _ = Nl(n.set);
2493
- return i ? null === _ ? l(0, -1, `${Rl()}: bitmask set or re-set?`, null, null) : (r ? ie(s, i, _) : se(s, i, _)) < 0 ? l(0, -1, `${Rl()}: trace level of ${o} not found: ${i}`, null, null) : r ? (wl(e, "no_trace_levels", o, oe(s)), l(0, 0, null, null, oe(s))) : (wl(e, "trace_levels", o, le(s)), l(0, 0, null, null, re(s))) : l(0, -1, `${Rl()}: what level?`, null, null);
2493
+ return i ? null === _ ? l(0, -1, `${$l()}: bitmask set or re-set?`, null, null) : (r ? ie(s, i, _) : se(s, i, _)) < 0 ? l(0, -1, `${$l()}: trace level of ${o} not found: ${i}`, null, null) : r ? (wl(e, "no_trace_levels", o, oe(s)), l(0, 0, null, null, oe(s))) : (wl(e, "trace_levels", o, le(s)), l(0, 0, null, null, re(s))) : l(0, -1, `${$l()}: what level?`, null, null);
2494
2494
  }
2495
- default: return l(0, -1, `${Rl()}: command not available: ${t}`, null, null);
2495
+ default: return l(0, -1, `${$l()}: command not available: ${t}`, null, null);
2496
2496
  }
2497
2497
  }
2498
2498
  };
2499
2499
  var kl = "ievent_gate_stack", Al = [
2500
- j(E.DTP_STRING, "wanted_yuno_role", y.SDF_RD, "", "wanted yuno role"),
2501
- j(E.DTP_STRING, "wanted_yuno_name", y.SDF_RD, "", "wanted yuno name"),
2502
- j(E.DTP_STRING, "wanted_yuno_service", y.SDF_RD, "", "wanted yuno service"),
2503
- j(E.DTP_STRING, "remote_yuno_role", y.SDF_RD, "", "confirmed remote yuno role"),
2504
- j(E.DTP_STRING, "remote_yuno_name", y.SDF_RD, "", "confirmed remote yuno name"),
2505
- j(E.DTP_STRING, "remote_yuno_service", y.SDF_RD, "", "confirmed remote yuno service"),
2506
- j(E.DTP_STRING, "url", y.SDF_RD, "", "Url to connect"),
2507
- j(E.DTP_STRING, "jwt", y.SDF_PERSIST, "", "JWT"),
2508
- j(E.DTP_STRING, "cert_pem", y.SDF_PERSIST, "", "SSL server certification, PEM str format"),
2509
- j(E.DTP_JSON, "extra_info", y.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
2510
- j(E.DTP_LIST, "required_services", y.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."),
2511
- j(E.DTP_INTEGER, "timeout_retry", y.SDF_RD, "5000", "First reconnect delay (ms). It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
2512
- j(E.DTP_INTEGER, "timeout_retry_max", y.SDF_RD, "60000", "Cap of the reconnect backoff (ms). Set it equal to timeout_retry for the old fixed-interval behaviour"),
2513
- j(E.DTP_INTEGER, "timeout_idack", y.SDF_RD, "5000", "timeout waiting idAck"),
2514
- j(E.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
2500
+ j(y.DTP_STRING, "wanted_yuno_role", E.SDF_RD, "", "wanted yuno role"),
2501
+ j(y.DTP_STRING, "wanted_yuno_name", E.SDF_RD, "", "wanted yuno name"),
2502
+ j(y.DTP_STRING, "wanted_yuno_service", E.SDF_RD, "", "wanted yuno service"),
2503
+ j(y.DTP_STRING, "remote_yuno_role", E.SDF_RD, "", "confirmed remote yuno role"),
2504
+ j(y.DTP_STRING, "remote_yuno_name", E.SDF_RD, "", "confirmed remote yuno name"),
2505
+ j(y.DTP_STRING, "remote_yuno_service", E.SDF_RD, "", "confirmed remote yuno service"),
2506
+ j(y.DTP_STRING, "url", E.SDF_RD, "", "Url to connect"),
2507
+ j(y.DTP_STRING, "jwt", E.SDF_PERSIST, "", "JWT"),
2508
+ j(y.DTP_STRING, "cert_pem", E.SDF_PERSIST, "", "SSL server certification, PEM str format"),
2509
+ j(y.DTP_JSON, "extra_info", E.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
2510
+ j(y.DTP_LIST, "required_services", E.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."),
2511
+ j(y.DTP_INTEGER, "timeout_retry", E.SDF_RD, "5000", "First reconnect delay (ms). It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
2512
+ j(y.DTP_INTEGER, "timeout_retry_max", E.SDF_RD, "60000", "Cap of the reconnect backoff (ms). Set it equal to timeout_retry for the old fixed-interval behaviour"),
2513
+ j(y.DTP_INTEGER, "timeout_idack", E.SDF_RD, "5000", "timeout waiting idAck"),
2514
+ j(y.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
2515
2515
  v()
2516
2516
  ], Il = [
2517
2517
  ["ievents", "Trace inter-events with metadata of kw"],
@@ -2535,7 +2535,7 @@ var gobjJs = function(e) {
2535
2535
  function Ul(e) {
2536
2536
  e.priv.websocket && hn("Websocket ALREADY setup");
2537
2537
  const t = jt(e, "url");
2538
- yn(`====> Starting WebSocket to '${t}' (${et(e)})`);
2538
+ En(`====> Starting WebSocket to '${t}' (${et(e)})`);
2539
2539
  const n = ++e.priv.ws_seq;
2540
2540
  let r;
2541
2541
  try {
@@ -2547,7 +2547,7 @@ var gobjJs = function(e) {
2547
2547
  code: 1006,
2548
2548
  reason: r.message,
2549
2549
  was_clean: !1
2550
- }, e) < 0 && yl(e.priv.gobj_timer, ql(e)), null;
2550
+ }, e) < 0 && El(e.priv.gobj_timer, ql(e)), null;
2551
2551
  }
2552
2552
  return r ? (r.onopen = () => {
2553
2553
  n !== e.priv.ws_seq || ot(e) || Vt(e, "EV_ON_OPEN", {
@@ -2560,7 +2560,7 @@ var gobjJs = function(e) {
2560
2560
  data: r.data
2561
2561
  }, e);
2562
2562
  }, r.onclose = (r) => {
2563
- ot(e) || n === e.priv.ws_seq && (Tt(qe(), "browser_beforeunload") ? En("Close websocket by unload page") : Vt(e, "EV_ON_CLOSE", {
2563
+ ot(e) || n === e.priv.ws_seq && (Tt(qe(), "browser_beforeunload") ? yn("Close websocket by unload page") : Vt(e, "EV_ON_CLOSE", {
2564
2564
  url: t,
2565
2565
  ws_seq: n,
2566
2566
  code: r.code,
@@ -2572,20 +2572,20 @@ var gobjJs = function(e) {
2572
2572
  function Fl(e, t = 1e3, n = "") {
2573
2573
  let r = e.priv, l = r.websocket;
2574
2574
  if (r.websocket = null, l && l.readyState !== WebSocket.CLOSED && l.readyState !== WebSocket.CLOSING) {
2575
- yn(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
2575
+ En(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
2576
2576
  try {
2577
2577
  l.close(t, n);
2578
2578
  } catch (t) {
2579
2579
  hn(`${et(e)}: Error closing WebSocket: ${t.message}`);
2580
2580
  }
2581
- } else En("WebSocket is already closed or in the process of closing.");
2581
+ } else yn("WebSocket is already closed or in the process of closing.");
2582
2582
  }
2583
2583
  function Vl(e, t, n) {
2584
2584
  let r = el();
2585
2585
  try {
2586
- yn("\n" + r + " " + t + "\n"), Un(n);
2586
+ En("\n" + r + " " + t + "\n"), Un(n);
2587
2587
  } catch (e) {
2588
- yn("ERROR in trace_inter_event: " + e);
2588
+ En("ERROR in trace_inter_event: " + e);
2589
2589
  }
2590
2590
  }
2591
2591
  var Gl = class {
@@ -2597,10 +2597,10 @@ var gobjJs = function(e) {
2597
2597
  return function(e, t) {
2598
2598
  let n = e.priv, r = JSON.stringify(t);
2599
2599
  if (Cl(e)) {
2600
- let n = jt(e, "url"), l = Xe(qe()) + " ==> " + n, o = Et(qe(), "trace_ievent_callback");
2600
+ let n = jt(e, "url"), l = Xe(qe()) + " ==> " + n, o = yt(qe(), "trace_ievent_callback");
2601
2601
  o ? o(l, t, 1, r.length) : Vl(0, l, t);
2602
2602
  }
2603
- if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return En(`${et(e)}: send_iev(): websocket not open, message lost`), -1;
2603
+ if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return yn(`${et(e)}: send_iev(): websocket not open, message lost`), -1;
2604
2604
  try {
2605
2605
  n.websocket.send(r);
2606
2606
  } catch (t) {
@@ -2623,8 +2623,8 @@ var gobjJs = function(e) {
2623
2623
  };
2624
2624
  }
2625
2625
  function xl(e) {
2626
- let t = e.priv, n = Je(qe()), r = jt(qe(), "yuno_version"), l = jt(qe(), "yuno_release"), o = jt(qe(), "yuno_tag"), i = Et(e, "required_services");
2627
- i && i.length || (i = Et(qe(), "required_services"));
2626
+ let t = e.priv, n = Je(qe()), r = jt(qe(), "yuno_version"), l = jt(qe(), "yuno_release"), o = jt(qe(), "yuno_tag"), i = yt(e, "required_services");
2627
+ i && i.length || (i = yt(qe(), "required_services"));
2628
2628
  let _ = {
2629
2629
  yuno_role: ze(),
2630
2630
  yuno_id: Qe(),
@@ -2645,7 +2645,7 @@ var gobjJs = function(e) {
2645
2645
  language: "undefined" != typeof window ? window.navigator.language : "",
2646
2646
  required_services: i
2647
2647
  };
2648
- return Gr(e, _, kl, Wl(e, Xe(nt(e)), null)), Wr(e, _, "__identity__"), yl(t.gobj_timer, vt(e, "timeout_idack")), Ml(e, "EV_IDENTITY_CARD", _);
2648
+ return Gr(e, _, kl, Wl(e, Xe(nt(e)), null)), Wr(e, _, "__identity__"), El(t.gobj_timer, vt(e, "timeout_idack")), Ml(e, "EV_IDENTITY_CARD", _);
2649
2649
  }
2650
2650
  function Kl(e, t) {
2651
2651
  if (ir(t.event)) return -1;
@@ -2658,16 +2658,16 @@ var gobjJs = function(e) {
2658
2658
  return Ke(e) && (l.websocket = Ul(e)), 0;
2659
2659
  }
2660
2660
  function Bl(e, t, n, r) {
2661
- return yn("Websocket opened: " + e.priv.url), xl(e), 0;
2661
+ return En("Websocket opened: " + e.priv.url), xl(e), 0;
2662
2662
  }
2663
2663
  function Jl(e, t, n, r) {
2664
2664
  let l = e.priv, o = n.url;
2665
- return void 0 !== n.ws_seq && n.ws_seq !== l.ws_seq || (bn(), En(`${et(e)}: WebSocket closed ${o} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), l.websocket && (l.websocket.onopen = null, l.websocket.onmessage = null, l.websocket.onerror = null, l.websocket.onclose = null, l.websocket = null), l.inform_on_close ? (l.inform_on_close = !1, Xt(e, "EV_ON_CLOSE", {
2665
+ return void 0 !== n.ws_seq && n.ws_seq !== l.ws_seq || (bn(), yn(`${et(e)}: WebSocket closed ${o} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), l.websocket && (l.websocket.onopen = null, l.websocket.onmessage = null, l.websocket.onerror = null, l.websocket.onclose = null, l.websocket = null), l.inform_on_close ? (l.inform_on_close = !1, Xt(e, "EV_ON_CLOSE", {
2666
2666
  url: o,
2667
2667
  remote_yuno_name: l.remote_yuno_name,
2668
2668
  remote_yuno_role: l.remote_yuno_role,
2669
2669
  remote_yuno_service: l.remote_yuno_service
2670
- })) : Ke(e) && (En(`${et(e)}: EV_ON_OPEN_ERROR cannot open ${o} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), Xt(e, "EV_ON_OPEN_ERROR", {
2670
+ })) : Ke(e) && (yn(`${et(e)}: EV_ON_OPEN_ERROR cannot open ${o} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), Xt(e, "EV_ON_OPEN_ERROR", {
2671
2671
  url: o,
2672
2672
  remote_yuno_name: l.remote_yuno_name,
2673
2673
  remote_yuno_role: l.remote_yuno_role,
@@ -2675,7 +2675,7 @@ var gobjJs = function(e) {
2675
2675
  code: n.code,
2676
2676
  reason: n.reason,
2677
2677
  was_clean: n.was_clean
2678
- })), Ke(e) && yl(l.gobj_timer, ql(e))), 0;
2678
+ })), Ke(e) && El(l.gobj_timer, ql(e))), 0;
2679
2679
  }
2680
2680
  function ql(e) {
2681
2681
  let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
@@ -2690,8 +2690,8 @@ var gobjJs = function(e) {
2690
2690
  let l = e.priv;
2691
2691
  vl(l.gobj_timer);
2692
2692
  let o = Mr(e, n, kl, !0), s = Tr(e, o, "src_yuno", ""), i = Tr(e, o, "src_role", ""), _ = Tr(e, o, "src_service", "");
2693
- $t(e, "remote_yuno_name", s), $t(e, "remote_yuno_role", i), $t(e, "remote_yuno_service", _);
2694
- let a = yr(e, n, "result", -1, 0), u = Tr(e, n, "comment", "", 0), c = Tr(e, n, "username", "", 0), f = Or(e, n, "services_roles", {});
2693
+ Rt(e, "remote_yuno_name", s), Rt(e, "remote_yuno_role", i), Rt(e, "remote_yuno_service", _);
2694
+ let a = Er(e, n, "result", -1, 0), u = Tr(e, n, "comment", "", 0), c = Tr(e, n, "username", "", 0), f = Or(e, n, "services_roles", {});
2695
2695
  if (a < 0) {
2696
2696
  Fl(e);
2697
2697
  let t = {
@@ -2729,26 +2729,26 @@ var gobjJs = function(e) {
2729
2729
  try {
2730
2730
  n = JSON.parse(t);
2731
2731
  } catch (t) {
2732
- return En(`${et(e)}: parsing inter_event json: ${t}`), null;
2732
+ return yn(`${et(e)}: parsing inter_event json: ${t}`), null;
2733
2733
  }
2734
- if (!(n instanceof Object)) return En(`${et(e)}: parsing inter_event: websocket data not a json object`), null;
2734
+ if (!(n instanceof Object)) return yn(`${et(e)}: parsing inter_event: websocket data not a json object`), null;
2735
2735
  let r = n.event;
2736
- if (!r) return En(`${et(e)}: parsing inter_event: no event`), null;
2737
- if ("string" != typeof r) return En(`${et(e)}: parsing inter_event: event not a string`), null;
2736
+ if (!r) return yn(`${et(e)}: parsing inter_event: no event`), null;
2737
+ if ("string" != typeof r) return yn(`${et(e)}: parsing inter_event: event not a string`), null;
2738
2738
  let l = n.kw;
2739
2739
  return l ? l instanceof Object ? {
2740
2740
  event: r,
2741
2741
  kw: l || {}
2742
- } : (En(`${et(e)}: parsing inter_event: kw not a json object`), null) : (En(`${et(e)}: parsing inter_kw: no kw`), null);
2742
+ } : (yn(`${et(e)}: parsing inter_event: kw not a json object`), null) : (yn(`${et(e)}: parsing inter_kw: no kw`), null);
2743
2743
  }(e, n.data);
2744
- if (!o) return En(`${et(e)}: frame dropped from ${l}: ${String(n.data).substring(0, 256)}`), -1;
2744
+ if (!o) return yn(`${et(e)}: frame dropped from ${l}: ${String(n.data).substring(0, 256)}`), -1;
2745
2745
  if (Cl(e)) {
2746
- let e = Xe(qe()) + " <== " + l, t = n.data.length, r = Et(qe(), "trace_ievent_callback");
2746
+ let e = Xe(qe()) + " <== " + l, t = n.data.length, r = yt(qe(), "trace_ievent_callback");
2747
2747
  r ? r(e, o, 2, t) : Vl(0, e, o);
2748
2748
  }
2749
2749
  let s = o.event, i = o.kw;
2750
2750
  if ("ST_SESSION" !== kt(e)) {
2751
- if (It(e, s, $.EVF_PUBLIC_EVENT)) {
2751
+ if (It(e, s, R.EVF_PUBLIC_EVENT)) {
2752
2752
  if (!(Vt(e, s, i, e) < 0)) return 0;
2753
2753
  } else hn(`${et(e)}: event UNKNOWN in not-session state ${s}`);
2754
2754
  return Fl(e), -1;
@@ -2757,12 +2757,12 @@ var gobjJs = function(e) {
2757
2757
  let _ = xr(e, i), a = Mr(e, i, kl), u = Tr(e, a, "dst_role", "");
2758
2758
  if (u.toLowerCase() !== ze().toLowerCase()) return hn(`"It's not my role, dst_role: ${u}, my_role: ${ze()}`), 0;
2759
2759
  let c = Tr(e, a, "dst_service", "");
2760
- if ("__subscribing__" === _) return En(`${et(e)}: subscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2761
- if ("__unsubscribing__" === _) return En(`${et(e)}: unsubscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2762
- if (It(e, s, $.EVF_PUBLIC_EVENT)) return Vt(e, s, i, e), 0;
2760
+ if ("__subscribing__" === _) return yn(`${et(e)}: subscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2761
+ if ("__unsubscribing__" === _) return yn(`${et(e)}: unsubscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2762
+ if (It(e, s, R.EVF_PUBLIC_EVENT)) return Vt(e, s, i, e), 0;
2763
2763
  if (!ir(c)) {
2764
2764
  let t = we(c, !1);
2765
- return t ? It(t, s, $.EVF_PUBLIC_EVENT) ? (Vt(t, s, i, e), 0) : (hn(`${et(e)}: Service found but no event or not public, service '${et(t)}', ev '${s}'`), -1) : (En(`${et(e)}: event for a service that is gone, DROPPED: service '${c}', ev '${s}'`), 0);
2765
+ return t ? It(t, s, R.EVF_PUBLIC_EVENT) ? (Vt(t, s, i, e), 0) : (hn(`${et(e)}: Service found but no event or not public, service '${et(t)}', ev '${s}'`), -1) : (yn(`${et(e)}: event for a service that is gone, DROPPED: service '${c}', ev '${s}'`), 0);
2766
2766
  }
2767
2767
  return lt(e) ? Vt(nt(e), s, i, e) : Xt(e, s, i), 0;
2768
2768
  }
@@ -2775,7 +2775,7 @@ var gobjJs = function(e) {
2775
2775
  var eo = {
2776
2776
  mt_create: function(e) {
2777
2777
  let t = e.priv;
2778
- t.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = jt(e, "url"), t.remote_yuno_name = jt(e, "remote_yuno_name"), t.remote_yuno_role = jt(e, "remote_yuno_role"), t.remote_yuno_service = jt(e, "remote_yuno_service"), $t(e, "wanted_yuno_name", t.remote_yuno_name), $t(e, "wanted_yuno_role", t.remote_yuno_role), $t(e, "wanted_yuno_service", t.remote_yuno_service);
2778
+ t.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = jt(e, "url"), t.remote_yuno_name = jt(e, "remote_yuno_name"), t.remote_yuno_role = jt(e, "remote_yuno_role"), t.remote_yuno_service = jt(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);
2779
2779
  const n = Ot(e, "subscriber");
2780
2780
  n && qt(e, null, {}, n);
2781
2781
  },
@@ -2875,7 +2875,7 @@ var gobjJs = function(e) {
2875
2875
  else if (o.length > 0 && "<" === o[0] && function(e) {
2876
2876
  if (Xr.size >= 100) return;
2877
2877
  const t = e.slice(0, 80);
2878
- Xr.has(t) || (Xr.add(t), En(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
2878
+ Xr.has(t) || (Xr.add(t), yn(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
2879
2879
  }(o), n && _) i.textContent = n(_) || o;
2880
2880
  else i.textContent = o;
2881
2881
  else if (er(o)) {
@@ -2895,20 +2895,20 @@ var gobjJs = function(e) {
2895
2895
  let o = Or(null, t, e, l);
2896
2896
  Yn(n, e, o);
2897
2897
  }), n;
2898
- }, e.current_timestamp = el, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
2898
+ }, e.current_timestamp = el, e.data_type_t = y, e.db_list_persistent_attrs = function(e, t) {
2899
2899
  let n = kr(al(e), null, !1), r = {};
2900
- return n && Zn(n) && (r = $r(e, n, t, !1)), r;
2900
+ return n && Zn(n) && (r = Rr(e, n, t, !1)), r;
2901
2901
  }, e.db_load_persistent_attrs = function(e, t) {
2902
- let n = yt(e, y.SDF_PERSIST), r = kr(al(e), null, !1);
2902
+ let n = Et(e, E.SDF_PERSIST), r = kr(al(e), null, !1);
2903
2903
  if (r && Zn(r)) {
2904
- let l = $r(e, r, t, !1);
2905
- l = $r(e, l, n, !1), wt(e, l, y.SDF_PERSIST);
2904
+ let l = Rr(e, r, t, !1);
2905
+ l = Rr(e, l, n, !1), wt(e, l, E.SDF_PERSIST);
2906
2906
  }
2907
2907
  }, e.db_remove_persistent_attrs = function(e, t) {
2908
2908
  let n = Dr(e, kr(al(e), null, !1), t, !1);
2909
2909
  0 === zn(n) ? Ir(al(e)) : Ar(al(e), n);
2910
2910
  }, e.db_save_persistent_attrs = function(e, t) {
2911
- let n = $r(e, yt(e, y.SDF_PERSIST), t, !1), r = kr(al(e), null, !1);
2911
+ let n = Rr(e, Et(e, E.SDF_PERSIST), t, !1), r = kr(al(e), null, !1);
2912
2912
  return r && Zn(r) && Wn(n, r), Ar(al(e), n);
2913
2913
  }, e.debounce = function(e, t = 0, n = !1) {
2914
2914
  let r = null, l = null, o = null;
@@ -2933,7 +2933,7 @@ var gobjJs = function(e) {
2933
2933
  return t;
2934
2934
  }, e.empty_json = function(e) {
2935
2935
  return 0 === Xn(e);
2936
- }, e.empty_string = ir, e.escapeHtml = Jr, e.event_flag_t = $, e.flat2json = function(e) {
2936
+ }, e.empty_string = ir, e.escapeHtml = Jr, e.event_flag_t = R, e.flat2json = function(e) {
2937
2937
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
2938
2938
  let t = null;
2939
2939
  for (const n of Object.keys(e)) {
@@ -2994,7 +2994,7 @@ var gobjJs = function(e) {
2994
2994
  return l;
2995
2995
  }, e.flat_key_join = function(e) {
2996
2996
  return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : sl(e)).join("`") : "";
2997
- }, e.flat_key_split = il, e.gclass_add_ev_action = Ee, e.gclass_add_event_type = Te, e.gclass_add_state = he, e.gclass_check_fsm = je, e.gclass_create = de, e.gclass_event_type = ve, e.gclass_find_by_name = Oe, e.gclass_flag_t = w, e.gclass_unregister = be, e.getPositionRelativeToBody = function(e) {
2997
+ }, e.flat_key_split = il, e.gclass_add_ev_action = ye, e.gclass_add_event_type = Te, e.gclass_add_state = he, e.gclass_check_fsm = je, e.gclass_create = de, e.gclass_event_type = ve, e.gclass_find_by_name = Oe, e.gclass_flag_t = w, e.gclass_unregister = be, e.getPositionRelativeToBody = function(e) {
2998
2998
  if (!e) return {
2999
2999
  top: 0,
3000
3000
  left: 0,
@@ -3016,7 +3016,7 @@ var gobjJs = function(e) {
3016
3016
  }, e.get_function_name = rl, e.get_now = function() {
3017
3017
  return Math.floor(Date.now() / 1e3);
3018
3018
  }, e.gobj_bottom_gobj = st, e.gobj_change_parent = function(e, t) {
3019
- return ot(e) ? (hn("gobj NULL or DESTROYED"), null) : t instanceof S ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && ($e(e.parent, e), e.parent = null), Re(t, e), t.gclass.gmt.mt_child_added && (Y(e) && yn(n("👦👦🔵 child_added(%s): %s", tt(t), et(e))), t.gclass.gmt.mt_child_added(t, e)), 0) : (hn(`${et(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
3019
+ return ot(e) ? (hn("gobj NULL or DESTROYED"), null) : t instanceof S ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && (Re(e.parent, e), e.parent = null), $e(t, e), t.gclass.gmt.mt_child_added && (Y(e) && En(n("👦👦🔵 child_added(%s): %s", tt(t), et(e))), t.gclass.gmt.mt_child_added(t, e)), 0) : (hn(`${et(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
3020
3020
  }, e.gobj_change_state = Dt, e.gobj_command = function(e, t, r, o) {
3021
3021
  if (ot(e)) return hn("gobj NULL or DESTROYED"), -1;
3022
3022
  if (function(e) {
@@ -3087,7 +3087,7 @@ var gobjJs = function(e) {
3087
3087
  }(n, e), n;
3088
3088
  }, e.gobj_match_gobj = bt, e.gobj_name = Xe, e.gobj_parent = nt, e.gobj_pause = xe, e.gobj_play = We, e.gobj_post_event = Ut, e.gobj_posted_events_size = function() {
3089
3089
  return Lt.length;
3090
- }, e.gobj_publish_event = Xt, e.gobj_read_attr = Et, e.gobj_read_attrs = yt, e.gobj_read_bool_attr = Tt, e.gobj_read_integer_attr = vt, e.gobj_read_pointer_attr = Ot, e.gobj_read_str_attr = jt, e.gobj_remove_persistent_attrs = function(e, t) {
3090
+ }, e.gobj_publish_event = Xt, e.gobj_read_attr = yt, e.gobj_read_attrs = Et, e.gobj_read_bool_attr = Tt, e.gobj_read_integer_attr = vt, e.gobj_read_pointer_attr = Ot, e.gobj_read_str_attr = jt, e.gobj_remove_persistent_attrs = function(e, t) {
3091
3091
  return Be(e) ? a ? a(e, t) : -1 : (hn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
3092
3092
  }, e.gobj_repr_global_trace_levels = function() {
3093
3093
  return U.map(([e, t, n]) => ({
@@ -3105,7 +3105,7 @@ var gobjJs = function(e) {
3105
3105
  o.name && (n && o.flag & n || (-1 === t || o.flag & t) && (ae(e, e.jn_attrs, o), Zn(e.priv) && Object.prototype.hasOwnProperty.call(e.priv, o.name) && (e.priv[o.name] = e.jn_attrs[o.name]), e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, o.name)));
3106
3106
  }
3107
3107
  return 0;
3108
- }(e, y.SDF_VOLATIL, 0);
3108
+ }(e, E.SDF_VOLATIL, 0);
3109
3109
  }, e.gobj_save_persistent_attrs = De, e.gobj_search_path = mt, e.gobj_send_event = Vt, e.gobj_services = function() {
3110
3110
  let e = [];
3111
3111
  for (const t of Object.keys(b)) qn(e, t);
@@ -3128,10 +3128,10 @@ var gobjJs = function(e) {
3128
3128
  return ot(e) ? (hn("gobj NULL or DESTROYED"), -1) : (J(e) && L(n("⏺ ⏺ ⏺ ⏺ start_tree: %s", tt(e))), e.gclass.gclass_flag & w.gcflag_manual_start || e.disabled ? 0 : (e.running || Pe(e), ut(e, D.WALK_TOP2BOTTOM, Fe, 0, 0)));
3129
3129
  }, e.gobj_start_up = function(e, t, n, r, l, o, s) {
3130
3130
  i = t, _ = n, a = r, u = l, c = o, f = s;
3131
- const d = [["EV_STATE_CHANGED", $.EVF_SYSTEM_EVENT | $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]];
3131
+ const d = [["EV_STATE_CHANGED", R.EVF_SYSTEM_EVENT | R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS], [0, 0]];
3132
3132
  for (let e = 0; e < d.length; e++) {
3133
3133
  let t = d[e][0], n = d[e][1];
3134
- ye(g, t, n);
3134
+ Ee(g, t, n);
3135
3135
  }
3136
3136
  return 0;
3137
3137
  }, e.gobj_stats = function(e, t, r, l) {
@@ -3153,14 +3153,14 @@ var gobjJs = function(e) {
3153
3153
  if (Object.keys(n).forEach((n) => {
3154
3154
  l.has(n) || hn(`${et(e)}: key ignored in subscription (key: ${n}, event: ${t})`);
3155
3155
  }), ir(t)) t = "";
3156
- else if (!(Ct(e, t, $.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & w.gcflag_no_check_output_events)) return hn(`event NOT in output event list: ${et(e)}, ev ${t}`), 0;
3156
+ else if (!(Ct(e, t, R.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & w.gcflag_no_check_output_events)) return hn(`event NOT in output event list: ${et(e)}, ev ${t}`), 0;
3157
3157
  let o = xt(n, t), s = Yt(e.dl_subscriptions, e, t, o.renamed_event, o.kw, r), i = 0, _ = 0, a = 0;
3158
3158
  for (let t = 0; t < s.length; t++) {
3159
3159
  let n = s[t], r = Jt(e, n, !1, !1);
3160
3160
  0 === r ? i++ : r < 0 ? _++ : a++;
3161
3161
  }
3162
- return _ ? En(`${et(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${_})`) : i || a || (En(`${et(e)}: No subscription found`), Un(n, "No subscription found")), 0;
3163
- }, e.gobj_unsubscribe_list = Ht, e.gobj_walk_gobj_children = at, e.gobj_walk_gobj_children_tree = ut, e.gobj_write_attr = St, e.gobj_write_attrs = wt, e.gobj_write_bool_attr = Nt, e.gobj_write_integer_attr = Rt, e.gobj_write_str_attr = $t, e.gobj_yuno = qe, e.gobj_yuno_id = Qe, e.gobj_yuno_name = He, e.gobj_yuno_role = ze, e.html_markup = function(e) {
3162
+ return _ ? yn(`${et(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${_})`) : i || a || (yn(`${et(e)}: No subscription found`), Un(n, "No subscription found")), 0;
3163
+ }, e.gobj_unsubscribe_list = Ht, e.gobj_walk_gobj_children = at, e.gobj_walk_gobj_children_tree = ut, e.gobj_write_attr = St, e.gobj_write_attrs = wt, e.gobj_write_bool_attr = Nt, e.gobj_write_integer_attr = $t, e.gobj_write_str_attr = Rt, e.gobj_yuno = qe, e.gobj_yuno_id = Qe, e.gobj_yuno_name = He, e.gobj_yuno_role = ze, e.html_markup = function(e) {
3164
3164
  return "string" != typeof e ? (hn("html_markup: not a string, type " + typeof e), new qr("")) : new qr(e);
3165
3165
  }, e.id_index_in_obj_list = Pr, e.index_in_list = tl, e.is_array = er, e.is_boolean = rr, e.is_date = function(e) {
3166
3166
  return e instanceof Date && !isNaN(e);
@@ -3182,8 +3182,9 @@ var gobjJs = function(e) {
3182
3182
  }, e.is_secret_name = wn, e.is_string = tr, e.jdb_delete = function(e, t, n, r) {
3183
3183
  let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
3184
3184
  if (!l) return hn("jdb_delete: topic not found: " + t), null;
3185
- if (ir(r.id)) return hn("jdb_delete: record without id: " + r), Tn(r), null;
3185
+ if (!Zn(r) || ir(r.id)) return hn(`jdb_delete: record without id: ${JSON.stringify(r)}`), null;
3186
3186
  if (!tr(n)) return hn(`jdb_delete: path must be a string: ${String(n)}`), null;
3187
+ if ("" !== n && n.split("`").includes("")) return hn(`jdb_delete: empty segment in path: '${n}'`), null;
3187
3188
  let o, s = n.split("`"), i = l;
3188
3189
  for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, null, 0)), i = Yr(i, null, o, !1);
3189
3190
  if (!i || 0 !== s.length) return hn(`jdb_delete: path not found in topic '${t}': '${n}'`), null;
@@ -3210,18 +3211,20 @@ var gobjJs = function(e) {
3210
3211
  }, e.jdb_update = function(e, t, n, r) {
3211
3212
  let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
3212
3213
  if (!l) return hn("jdb_update: topic not found: " + t), null;
3213
- if (ir(r.id)) return hn("jdb_update: record without id: " + r), Tn(r), null;
3214
+ if (!Zn(r) || ir(r.id)) return hn(`jdb_update: record without id: ${JSON.stringify(r)}`), null;
3214
3215
  if (!tr(n)) return hn(`jdb_update: path must be a string: ${String(n)}`), null;
3215
- let o, s = n.split("`"), i = l;
3216
- for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, [], Zt.KW_CREATE)), i = Yr(i, null, o, !1);
3217
- if (!i || 0 !== s.length) return hn(`jdb_update: path not found in topic '${t}': '${n}'`), null;
3218
- if (0 === s.length && i) if (er(i)) i.push(r);
3219
- else if (i.id === r.id) Gn(i, r);
3216
+ if ("" !== n && n.split("`").includes("")) return hn(`jdb_update: empty segment in path: '${n}'`), null;
3217
+ let o, s, i = n.split("`"), _ = l;
3218
+ for (; (o = i.shift()) && !ir(o) && _;) Zn(_) && (_ = Or(null, _, e.hook, null, 0)), _ = Yr(_, null, o, !1);
3219
+ if (!_ || 0 !== i.length) return hn(`jdb_update: path not found in topic '${t}': '${n}'`), null;
3220
+ if (er(_)) s = _;
3220
3221
  else {
3221
- let t = Or(null, i, e.hook, [], Zt.KW_CREATE), n = Yr(t, e.hook, r.id, !1);
3222
- n ? Gn(n, r) : t.push(r);
3222
+ if (_.id === r.id) return Gn(_, r), l;
3223
+ if (s = Or(null, _, e.hook, null, 0), null == s) s = [], Yn(_, e.hook, s);
3224
+ else if (!er(s)) return hn(`jdb_update: the hook '${e.hook}' of '${n}' is not a list in topic '${t}'`), null;
3223
3225
  }
3224
- return l;
3226
+ let a = Yr(s, e.hook, r.id, !1);
3227
+ return a ? Gn(a, r) : s.push(r), l;
3225
3228
  }, e.json2flat = function(e) {
3226
3229
  const t = {}, n = (e, r, l) => {
3227
3230
  if (l > ll) throw new Error("json2flat: deeper than 256");
@@ -3256,9 +3259,9 @@ var gobjJs = function(e) {
3256
3259
  } catch (e) {
3257
3260
  return null;
3258
3261
  }
3259
- }, e.jwtDecode = Br, e.kw_clone_by_keys = $r, e.kw_clone_by_not_keys = Dr, e.kw_collect = function(e, t, n, r) {
3262
+ }, e.jwtDecode = Br, e.kw_clone_by_keys = Rr, e.kw_clone_by_not_keys = Dr, e.kw_collect = function(e, t, n, r) {
3260
3263
  if (e && !sr(e) && hn("GObj bad instanceof"), !t) return null;
3261
- r || (r = Rr);
3264
+ r || (r = $r);
3262
3265
  let l = [];
3263
3266
  if (er(t)) for (let e = 0; e < t.length; e++) {
3264
3267
  let o = t[e];
@@ -3273,7 +3276,7 @@ var gobjJs = function(e) {
3273
3276
  if (!n || !er(t)) return r && hn("item NULL or kw_list is not a list"), -1;
3274
3277
  for (let e = 0; e < t.length; e++) if (Vn(n, t[e])) return e;
3275
3278
  return r && hn("item not found in this list"), -1;
3276
- }, e.kw_find_path = mr, e.kw_flag_t = Zt, e.kw_get_bool = Er, e.kw_get_dict = jr, e.kw_get_dict_value = Or, e.kw_get_int = yr, e.kw_get_list = function(e, t, n, r, l) {
3279
+ }, e.kw_find_path = mr, e.kw_flag_t = Zt, e.kw_get_bool = yr, e.kw_get_dict = jr, e.kw_get_dict_value = Or, e.kw_get_int = Er, e.kw_get_list = function(e, t, n, r, l) {
3277
3280
  e && !sr(e) && hn("GObj bad instanceof");
3278
3281
  let o = mr(e, t, n, !1);
3279
3282
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
@@ -3301,9 +3304,9 @@ var gobjJs = function(e) {
3301
3304
  }
3302
3305
  }
3303
3306
  return _ && hr(e, t, n), u;
3304
- }, e.kw_get_str = Tr, e.kw_has_key = gr, e.kw_match_simple = Rr, e.kw_pop = fr, e.kw_remove_local_storage_value = Ir, e.kw_select = function(e, t, n, r) {
3307
+ }, e.kw_get_str = Tr, e.kw_has_key = gr, e.kw_match_simple = $r, e.kw_pop = fr, e.kw_remove_local_storage_value = Ir, e.kw_select = function(e, t, n, r) {
3305
3308
  if (e && !sr(e) && hn("GObj bad instanceof"), !t) return null;
3306
- r || (r = Rr);
3309
+ r || (r = $r);
3307
3310
  let l = [];
3308
3311
  if (er(t)) for (let e = 0; e < t.length; e++) {
3309
3312
  let o = t[e];
@@ -3399,10 +3402,10 @@ var gobjJs = function(e) {
3399
3402
  else n && n(r.status);
3400
3403
  var e;
3401
3404
  }, r.send();
3402
- }, e.log_debug = yn, e.log_error = hn, e.log_info = function(e, ...t) {
3405
+ }, e.log_debug = En, e.log_error = hn, e.log_info = function(e, ...t) {
3403
3406
  let n = mn(e, ...t), r = el();
3404
3407
  rn && cn("info", n) && rn("%c" + r + " INFO: " + String(n), "color:cyan"), gn("info", n, r);
3405
- }, e.log_warning = En, e.mask_secrets_inline = kn, e.msg_iev_get_msg_type = xr, e.msg_iev_get_stack = Mr, e.msg_iev_push_stack = Gr, e.msg_iev_read_key = Fr, e.msg_iev_set_msg_type = Wr, e.msg_iev_write_key = Vr, e.node_uuid = nl, e.parseBoolean = _r, e.parseSVG = function(e) {
3408
+ }, e.log_warning = yn, e.mask_secrets_inline = kn, e.msg_iev_get_msg_type = xr, e.msg_iev_get_stack = Mr, e.msg_iev_push_stack = Gr, e.msg_iev_read_key = Fr, e.msg_iev_set_msg_type = Wr, e.msg_iev_write_key = Vr, e.node_uuid = nl, e.parseBoolean = _r, e.parseSVG = function(e) {
3406
3409
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3407
3410
  }, e.refresh_language = function(e, t) {
3408
3411
  if (!or(t)) return void hn("You must supply a translation function");
@@ -3510,14 +3513,14 @@ var gobjJs = function(e) {
3510
3513
  [null, null]
3511
3514
  ];
3512
3515
  return (Pl = de(e, [
3513
- ["EV_ON_MESSAGE", $.EVF_OUTPUT_EVENT],
3514
- ["EV_IDENTITY_CARD_ACK", $.EVF_PUBLIC_EVENT],
3515
- ["EV_ON_ID_NAK", $.EVF_PUBLIC_EVENT | $.EVF_OUTPUT_EVENT],
3516
- ["EV_MT_STATS", $.EVF_PUBLIC_EVENT],
3517
- ["EV_MT_COMMAND", $.EVF_PUBLIC_EVENT],
3518
- ["EV_ON_OPEN", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS],
3519
- ["EV_ON_CLOSE", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS],
3520
- ["EV_ON_OPEN_ERROR", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS],
3516
+ ["EV_ON_MESSAGE", R.EVF_OUTPUT_EVENT],
3517
+ ["EV_IDENTITY_CARD_ACK", R.EVF_PUBLIC_EVENT],
3518
+ ["EV_ON_ID_NAK", R.EVF_PUBLIC_EVENT | R.EVF_OUTPUT_EVENT],
3519
+ ["EV_MT_STATS", R.EVF_PUBLIC_EVENT],
3520
+ ["EV_MT_COMMAND", R.EVF_PUBLIC_EVENT],
3521
+ ["EV_ON_OPEN", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS],
3522
+ ["EV_ON_CLOSE", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS],
3523
+ ["EV_ON_OPEN_ERROR", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS],
3521
3524
  ["EV_TIMEOUT", 0],
3522
3525
  [null, 0]
3523
3526
  ], t, eo, 0, Al, Ll, 0, 0, Il, w.gcflag_no_check_output_events)) ? 0 : -1;
@@ -3531,26 +3534,26 @@ var gobjJs = function(e) {
3531
3534
  null
3532
3535
  ]]]];
3533
3536
  return (ml = de(e, [
3534
- ["EV_TIMEOUT", $.EVF_OUTPUT_EVENT],
3535
- ["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT],
3537
+ ["EV_TIMEOUT", R.EVF_OUTPUT_EVENT],
3538
+ ["EV_TIMEOUT_PERIODIC", R.EVF_OUTPUT_EVENT],
3536
3539
  [0, 0]
3537
- ], t, El, 0, bl, pl, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
3540
+ ], t, yl, 0, bl, pl, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
3538
3541
  }("C_TIMER");
3539
3542
  }, e.register_c_yuno = function() {
3540
3543
  return function(e) {
3541
3544
  if (Sl) return hn(`GClass ALREADY created: ${e}`), -1;
3542
3545
  const t = [["ST_IDLE", [[
3543
3546
  "EV_TIMEOUT_PERIODIC",
3544
- $l,
3547
+ Rl,
3545
3548
  null
3546
3549
  ]]]];
3547
- return (Sl = de(e, [["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]], t, Dl, 0, jl, Ol, 0, 0, 0, 0)) ? 0 : -1;
3550
+ return (Sl = de(e, [["EV_TIMEOUT_PERIODIC", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS], [0, 0]], t, Dl, 0, jl, Ol, 0, 0, 0, 0)) ? 0 : -1;
3548
3551
  }("C_YUNO");
3549
3552
  }, e.safeSrc = function(e) {
3550
3553
  if (!e) return "";
3551
3554
  const t = String(e).trim();
3552
3555
  return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Jr(t);
3553
- }, e.sdata_flag_t = y, e.send_http_json_post = function(e, t, n) {
3556
+ }, e.sdata_flag_t = E, e.send_http_json_post = function(e, t, n) {
3554
3557
  let r = new XMLHttpRequest();
3555
3558
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
3556
3559
  4 === r.readyState && n(r.status, r.responseText);
@@ -3574,7 +3577,7 @@ var gobjJs = function(e) {
3574
3577
  } else on = e;
3575
3578
  }, e.set_remote_log_functions = bn, e.set_strings_are_text = function(e) {
3576
3579
  Qr = !!e;
3577
- }, e.set_timeout = yl, e.set_timeout_periodic = Tl, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Ur, e.strcasecmp = ur, e.strcmp = ar, e.strings_are_text = function() {
3580
+ }, e.set_timeout = El, e.set_timeout_periodic = Tl, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Ur, e.strcasecmp = ur, e.strcmp = ar, e.strings_are_text = function() {
3578
3581
  return Qr;
3579
3582
  }, e.strncmp = function(e, t, n) {
3580
3583
  var r = (e + "").substring(0, n), l = (t + "").substring(0, n);
@@ -3624,9 +3627,9 @@ var gobjJs = function(e) {
3624
3627
  }, e.timeTracker = function(e = "Time Tracker", t = !1) {
3625
3628
  const n = e, r = performance.now();
3626
3629
  let l = r;
3627
- return t && En(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", o = "") => {
3630
+ return t && yn(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", o = "") => {
3628
3631
  const s = performance.now(), i = (s - l) / 1e3, _ = (s - r) / 1e3;
3629
- return t && En(`--\x3e ${n} ${e} - partial: ${i} sec, total: ${_} sec, ${o}`), l = s, {
3632
+ return t && yn(`--\x3e ${n} ${e} - partial: ${i} sec, total: ${_} sec, ${o}`), l = s, {
3630
3633
  partial: i,
3631
3634
  total: _
3632
3635
  };