@yuneta/gobj-js 7.26.8 → 7.26.9

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.
@@ -132,7 +132,7 @@
132
132
  data: l || []
133
133
  };
134
134
  }
135
- 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({
135
+ 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({
136
136
  DTP_STRING: 1,
137
137
  DTP_BOOLEAN: 2,
138
138
  DTP_INTEGER: 3,
@@ -142,8 +142,8 @@
142
142
  DTP_JSON: 7,
143
143
  DTP_POINTER: 8
144
144
  });
145
- y.DTP_POINTER;
146
- var E = Object.freeze({
145
+ E.DTP_POINTER;
146
+ var y = Object.freeze({
147
147
  SDF_NOTACCESS: 1,
148
148
  SDF_RD: 2,
149
149
  SDF_WR: 4,
@@ -166,7 +166,7 @@
166
166
  SDF_AUTHZ_S: 524288,
167
167
  SDF_AUTHZ_RS: 1048576
168
168
  });
169
- 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;
169
+ 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;
170
170
  var T = class {
171
171
  constructor(e, t, n = 0, r = null, l = "", o = null, s = null, i = 0, _ = null, a = null, u = null) {
172
172
  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;
@@ -223,7 +223,7 @@
223
223
  };
224
224
  var C = 1;
225
225
  function L(e) {
226
- Zn(e) && (e = JSON.stringify(e)), En(" ".repeat(Math.max(1, 2 * h)) + String(e));
226
+ Zn(e) && (e = JSON.stringify(e)), yn(" ".repeat(Math.max(1, 2 * h)) + String(e));
227
227
  }
228
228
  var P = Object.freeze({
229
229
  TRACE_MACHINE: 65536,
@@ -427,19 +427,19 @@
427
427
  function ae(e, t, n) {
428
428
  let r, l = n.default_value;
429
429
  switch (n.type) {
430
- case y.DTP_STRING:
430
+ case E.DTP_STRING:
431
431
  r = String(l);
432
432
  break;
433
- case y.DTP_BOOLEAN:
433
+ case E.DTP_BOOLEAN:
434
434
  r = _r(l);
435
435
  break;
436
- case y.DTP_INTEGER:
436
+ case E.DTP_INTEGER:
437
437
  r = parseInt(l), isNaN(r) && hn(`${et(e)}: attr NaN: ${n.name}`);
438
438
  break;
439
- case y.DTP_REAL:
439
+ case E.DTP_REAL:
440
440
  r = Number(l), isNaN(r) && hn(`${et(e)}: attr NaN: ${n.name}`);
441
441
  break;
442
- case y.DTP_LIST:
442
+ case E.DTP_LIST:
443
443
  if (tr(l)) try {
444
444
  r = JSON.parse(l);
445
445
  } catch (e) {
@@ -448,7 +448,7 @@
448
448
  else r = l;
449
449
  er(r) || (r = []);
450
450
  break;
451
- case y.DTP_DICT:
451
+ case E.DTP_DICT:
452
452
  if (tr(l)) try {
453
453
  r = JSON.parse(l);
454
454
  } catch (e) {
@@ -457,7 +457,7 @@
457
457
  else r = l;
458
458
  Zn(r) || (r = {});
459
459
  break;
460
- case y.DTP_JSON:
460
+ case E.DTP_JSON:
461
461
  if ("" === l || void 0 === l) r = null;
462
462
  else if (tr(l)) try {
463
463
  r = JSON.parse(l);
@@ -466,14 +466,14 @@
466
466
  }
467
467
  else r = l;
468
468
  break;
469
- case y.DTP_POINTER: r = l;
469
+ case E.DTP_POINTER: r = l;
470
470
  }
471
471
  return void 0 === r && (hn(`default_value WRONG, it: ${n.name}, value: ${n.default_value}`), r = null), t[n.name] = r, 0;
472
472
  }
473
473
  function ue(e, t, n, r) {
474
474
  let l;
475
475
  switch (n.type) {
476
- case y.DTP_STRING:
476
+ case E.DTP_STRING:
477
477
  if (null == r) l = "";
478
478
  else if (tr(r)) l = String(r);
479
479
  else {
@@ -481,16 +481,16 @@
481
481
  e && (l = String(e));
482
482
  }
483
483
  break;
484
- case y.DTP_BOOLEAN:
484
+ case E.DTP_BOOLEAN:
485
485
  l = _r(r);
486
486
  break;
487
- case y.DTP_INTEGER:
487
+ case E.DTP_INTEGER:
488
488
  if (l = parseInt(r), isNaN(l)) return hn(`${et(e)}: attr NaN: ${n.name}`), -1;
489
489
  break;
490
- case y.DTP_REAL:
490
+ case E.DTP_REAL:
491
491
  if (l = Number(r), isNaN(l)) return hn(`${et(e)}: attr NaN: ${n.name}`), -1;
492
492
  break;
493
- case y.DTP_LIST:
493
+ case E.DTP_LIST:
494
494
  if (tr(r)) try {
495
495
  l = JSON.parse(r);
496
496
  } catch (e) {
@@ -499,7 +499,7 @@
499
499
  else l = r;
500
500
  if (!er(l)) return hn(`attr must be an array: ${n.name}`), -1;
501
501
  break;
502
- case y.DTP_DICT:
502
+ case E.DTP_DICT:
503
503
  if (tr(r)) try {
504
504
  l = JSON.parse(r);
505
505
  } catch (e) {
@@ -508,7 +508,7 @@
508
508
  else l = r;
509
509
  if (!Zn(l)) return hn(`attr must be an object: ${n.name}`), -1;
510
510
  break;
511
- case y.DTP_JSON:
511
+ case E.DTP_JSON:
512
512
  if (l = r, tr(r)) {
513
513
  const e = r.trim();
514
514
  if (e.startsWith("{") || e.startsWith("[")) try {
@@ -518,7 +518,7 @@
518
518
  }
519
519
  }
520
520
  break;
521
- case y.DTP_POINTER: l = r;
521
+ case E.DTP_POINTER: l = r;
522
522
  }
523
523
  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;
524
524
  }
@@ -553,7 +553,7 @@
553
553
  const l = r.length;
554
554
  for (let e = 0; e < l; e++) {
555
555
  let n = r[e][0], l = r[e][1], o = r[e][2];
556
- ir(n) || ye(c, t, n, l, o);
556
+ ir(n) || Ee(c, t, n, l, o);
557
557
  }
558
558
  }
559
559
  for (let e = 0; e < t.length; e++) {
@@ -598,17 +598,17 @@
598
598
  function he(e, t) {
599
599
  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);
600
600
  }
601
- function ye(e, t, n, r, l) {
601
+ function Ee(e, t, n, r, l) {
602
602
  if (!(e instanceof O)) return hn("Cannot add state, typeof not GClass"), -1;
603
603
  if (ir(t)) return hn("state_name EMPTY"), -1;
604
604
  let o = pe(e, t);
605
605
  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);
606
606
  }
607
- function Ee(e, t, n) {
607
+ function ye(e, t, n) {
608
608
  ir(t) || e.push(new I(t, n));
609
609
  }
610
610
  function Te(e, t, n) {
611
- return e instanceof O ? Ee(e.dl_events, t, n) : (hn("Cannot add state, typeof not GClass"), -1);
611
+ return e instanceof O ? ye(e.dl_events, t, n) : (hn("Cannot add state, typeof not GClass"), -1);
612
612
  }
613
613
  function ve(e, t) {
614
614
  if (!(e instanceof O)) return hn("Cannot add state, typeof not GClass"), 0;
@@ -682,7 +682,7 @@
682
682
  let o = 0;
683
683
  for (const [s, i] of Object.entries(t)) {
684
684
  const t = ge(l.gclass, s, !1);
685
- 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--);
685
+ 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--);
686
686
  }
687
687
  return o;
688
688
  })(ce(e), r, -1, e.gclass.gclass_flag & w.gcflag_ignore_unknown_attrs ? 0 : ke, e) < 0 && (hn(`${et(e)} json2data() FAILED`), Un(r));
@@ -696,7 +696,7 @@
696
696
  if (!("string" == typeof l || l instanceof S)) return hn(`BAD TYPE of parent: ${l}`), null;
697
697
  if (tr(l)) {
698
698
  const e = l;
699
- if (!(l = we(e))) return yn(`parent service not found: ${e}`), null;
699
+ if (!(l = we(e))) return En(`parent service not found: ${e}`), null;
700
700
  }
701
701
  }
702
702
  if (o & N.gobj_flag_service && we(e, !1)) return hn(`service ALREADY registered: ${t}^${e}`), null;
@@ -759,7 +759,7 @@
759
759
  function Ve(e) {
760
760
  if (ot(e)) return hn("gobj NULL or DESTROYED"), -1;
761
761
  if (!e.running) return hn(`${et(e)}: GObj NOT RUNNING`), -1;
762
- e.playing && (yn(`${et(e)}: GObj stopping without previous pause`), xe(e)), J(e) && L(n("⏹ ⏹ stop: %s", tt(e))), e.running = !1;
762
+ e.playing && (En(`${et(e)}: GObj stopping without previous pause`), xe(e)), J(e) && L(n("⏹ ⏹ stop: %s", tt(e))), e.running = !1;
763
763
  let t = 0;
764
764
  return e.gclass.gmt.mt_stop && (t = e.gclass.gmt.mt_stop(e)), t;
765
765
  }
@@ -775,7 +775,7 @@
775
775
  if (e.disabled) return hn(`${et(e)}: GObj DISABLED`), -1;
776
776
  if (!Ke(e)) {
777
777
  if (e.gclass.gclass_flag & w.gcflag_required_start_to_play) return hn(`${et(e)}: Cannot play, start not done`), -1;
778
- yn(`${et(e)}: GObj playing without previous start`), Pe(e);
778
+ En(`${et(e)}: GObj playing without previous start`), Pe(e);
779
779
  }
780
780
  J(e) && L(n("⏯ ⏯ play: %s", tt(e))), e.playing = !0;
781
781
  let t = 0;
@@ -843,7 +843,7 @@
843
843
  }
844
844
  function it(e, t) {
845
845
  if (!sr(e)) return hn("gobj NULL of bad type"), null;
846
- e.bottom_gobj && t && yn(`${et(e)}: bottom_gobj already set`), e.bottom_gobj = t;
846
+ e.bottom_gobj && t && En(`${et(e)}: bottom_gobj already set`), e.bottom_gobj = t;
847
847
  }
848
848
  function _t(e, t, n) {
849
849
  return sr(e) ? t ? ge(e.gclass, t, n) : e.gclass.attrs_table : (hn("gobj NULL of bad type"), null);
@@ -939,7 +939,7 @@
939
939
  function ht(e, t) {
940
940
  return !ir(t) && !!ge(e.gclass, t, !1);
941
941
  }
942
- function yt(e, t, n) {
942
+ function Et(e, t, n) {
943
943
  let r = e.jn_attrs;
944
944
  if (t in r && Object.prototype.hasOwnProperty.call(r, t)) {
945
945
  let n = r[t];
@@ -947,7 +947,7 @@
947
947
  }
948
948
  return hn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), null;
949
949
  }
950
- function Et(e, t, n) {
950
+ function yt(e, t, n) {
951
951
  let r = {}, l = e.gclass.attrs_table;
952
952
  for (let n = 0; n < l.length; n++) {
953
953
  const o = l[n];
@@ -1134,16 +1134,16 @@
1134
1134
  return null;
1135
1135
  }
1136
1136
  var Wt = [
1137
- j(y.DTP_POINTER, "publisher", 0, null, "publisher gobj"),
1138
- j(y.DTP_POINTER, "subscriber", 0, null, "subscriber gobj"),
1139
- j(y.DTP_STRING, "event", 0, "", "event name subscribed"),
1140
- j(y.DTP_STRING, "renamed_event", 0, "", "rename event name"),
1141
- j(y.DTP_INTEGER, "subs_flag", 0, 0, "subscription flag"),
1142
- j(y.DTP_JSON, "__config__", 0, null, "subscription config"),
1143
- j(y.DTP_JSON, "__global__", 0, null, "global kw, merge in publishing"),
1144
- j(y.DTP_JSON, "__local__", 0, null, "local kw, remove in publishing"),
1145
- j(y.DTP_JSON, "__filter__", 0, null, "filter kw, filter in publishing"),
1146
- j(y.DTP_STRING, "__service__", 0, "", "subscription service"),
1137
+ j(E.DTP_POINTER, "publisher", 0, null, "publisher gobj"),
1138
+ j(E.DTP_POINTER, "subscriber", 0, null, "subscriber gobj"),
1139
+ j(E.DTP_STRING, "event", 0, "", "event name subscribed"),
1140
+ j(E.DTP_STRING, "renamed_event", 0, "", "rename event name"),
1141
+ j(E.DTP_INTEGER, "subs_flag", 0, 0, "subscription flag"),
1142
+ j(E.DTP_JSON, "__config__", 0, null, "subscription config"),
1143
+ j(E.DTP_JSON, "__global__", 0, null, "global kw, merge in publishing"),
1144
+ j(E.DTP_JSON, "__local__", 0, null, "local kw, remove in publishing"),
1145
+ j(E.DTP_JSON, "__filter__", 0, null, "filter kw, filter in publishing"),
1146
+ j(E.DTP_STRING, "__service__", 0, "", "subscription service"),
1147
1147
  v()
1148
1148
  ];
1149
1149
  function xt(e, t) {
@@ -1193,7 +1193,7 @@
1193
1193
  }
1194
1194
  function Jt(e, t, r, l) {
1195
1195
  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);
1196
- if (!!(Er(e, t, "subs_flag", null, Zt.KW_REQUIRED) & Gt.__hard_subscription__) && !r) return -1;
1196
+ if (!!(yr(e, t, "subs_flag", null, Zt.KW_REQUIRED) & Gt.__hard_subscription__) && !r) return -1;
1197
1197
  let _ = B(s) || B(o);
1198
1198
  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;
1199
1199
  _ && (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);
@@ -1215,11 +1215,11 @@
1215
1215
  }), ir(t)) t = "";
1216
1216
  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;
1217
1217
  let s = xt(r, t), i = Yt(e.dl_subscriptions, e, t, s.renamed_event, s.kw, l), _ = null;
1218
- for (let t = 0; t < i.length; t++) if (Er(e, i[t], "subs_flag", 0, Zt.KW_REQUIRED) & Gt.__hard_subscription__) {
1218
+ for (let t = 0; t < i.length; t++) if (yr(e, i[t], "subs_flag", 0, Zt.KW_REQUIRED) & Gt.__hard_subscription__) {
1219
1219
  _ = i[t];
1220
1220
  break;
1221
1221
  }
1222
- if (_) return yn(`${et(e)}: Hard subscription REPEATED, the one there is kept and returned (event: ${t}, subscriber: ${et(l)})`), _;
1222
+ if (_) return En(`${et(e)}: Hard subscription REPEATED, the one there is kept and returned (event: ${t}, subscriber: ${et(l)})`), _;
1223
1223
  Qn(i) > 0 && (hn(`${et(e)}: ${Qn(i)} subscription(s) REPEATED, will be deleted and override`), vn(i, "subscription REPEATED"), Ht(e, i, !1));
1224
1224
  let a = function(e, t, n, r) {
1225
1225
  let l = _e(e, Wt);
@@ -1240,11 +1240,11 @@
1240
1240
  } else hn(`${et(e)}: EVENT NOT FOUND (__rename_event_name__: ${s})`);
1241
1241
  }
1242
1242
  if (gr(n, "__hard_subscription__")) {
1243
- let t = yr(e, n, "__hard_subscription__", !1);
1243
+ let t = Er(e, n, "__hard_subscription__", !1);
1244
1244
  Kn(n, "__hard_subscription__"), t && (o |= Gt.__hard_subscription__);
1245
1245
  }
1246
1246
  if (gr(n, "__own_event__")) {
1247
- let t = yr(e, n, "__own_event__", !1);
1247
+ let t = Er(e, n, "__own_event__", !1);
1248
1248
  Kn(n, "__own_event__"), t && (o |= Gt.__own_event__);
1249
1249
  }
1250
1250
  }
@@ -1262,7 +1262,7 @@
1262
1262
  function Ht(e, t, n) {
1263
1263
  let r = [...t], l = 0;
1264
1264
  for (let t = 0; t < r.length; t++) Jt(e, r[t], n, !1) > 0 && l++;
1265
- return l && yn(`${et(e)}: Subscription(s) already removed, nothing to remove (count: ${l})`), 0;
1265
+ return l && En(`${et(e)}: Subscription(s) already removed, nothing to remove (count: ${l})`), 0;
1266
1266
  }
1267
1267
  function zt(e, t, n, r) {
1268
1268
  return null == n && (n = {}), Yt(e.dl_subscriptions, e, t, null, n, r);
@@ -1290,7 +1290,7 @@
1290
1290
  }
1291
1291
  let u = vr(e, a, "subscriber", null, Zt.KW_REQUIRED);
1292
1292
  if (!u || ot(u)) continue;
1293
- let c = Er(e, a, "subs_flag", 0, Zt.KW_REQUIRED), f = Tr(e, a, "event", "", Zt.KW_REQUIRED);
1293
+ let c = yr(e, a, "subs_flag", 0, Zt.KW_REQUIRED), f = Tr(e, a, "event", "", Zt.KW_REQUIRED);
1294
1294
  if (ir(f) || 0 === ur(f, t)) {
1295
1295
  jr(e, a, "__config__", null, 0);
1296
1296
  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;
@@ -1310,7 +1310,7 @@
1310
1310
  if (_ += m, i++, ot(e)) break;
1311
1311
  }
1312
1312
  }
1313
- return i || l && l.event_flag & $.EVF_NO_WARN_SUBS || yn(`${et(e)}: Publish event WITHOUT subscribers, ev ${t}`), _;
1313
+ return i || l && l.event_flag & $.EVF_NO_WARN_SUBS || En(`${et(e)}: Publish event WITHOUT subscribers, ev ${t}`), _;
1314
1314
  }
1315
1315
  var Zt = Object.freeze({
1316
1316
  KW_REQUIRED: 1,
@@ -1407,11 +1407,11 @@
1407
1407
  let n = mn(e, ...t), r = el();
1408
1408
  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);
1409
1409
  }
1410
- function yn(e, ...t) {
1410
+ function En(e, ...t) {
1411
1411
  let n = mn(e, ...t), r = el();
1412
1412
  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);
1413
1413
  }
1414
- function En(e, ...t) {
1414
+ function yn(e, ...t) {
1415
1415
  let n = mn(e, ...t), r = el();
1416
1416
  ln && cn("debug", n) && ln("%c" + r + " DEBUG: " + String(n), "color:silver"), gn("debug", n, r);
1417
1417
  }
@@ -1766,7 +1766,7 @@
1766
1766
  else if (s = mr(e, t, l, !0), void 0 === s) return -1;
1767
1767
  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);
1768
1768
  }
1769
- function yr(e, t, n, r, l) {
1769
+ function Er(e, t, n, r, l) {
1770
1770
  e && !sr(e) && hn("GObj bad instanceof");
1771
1771
  let o = mr(e, t, n, !1);
1772
1772
  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;
@@ -1787,7 +1787,7 @@
1787
1787
  }
1788
1788
  return _ && hr(e, t, n), u;
1789
1789
  }
1790
- function Er(e, t, n, r, l) {
1790
+ function yr(e, t, n, r, l) {
1791
1791
  e && !sr(e) && hn("GObj bad instanceof");
1792
1792
  let o = mr(e, t, n, !1);
1793
1793
  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;
@@ -1886,7 +1886,19 @@
1886
1886
  if (e && !sr(e) && hn("GObj bad instanceof"), !Zn(t)) return hn("kw is not an object"), -1;
1887
1887
  let o = mr(e, t, n, !1);
1888
1888
  if (void 0 === o) {
1889
- if (!tr(n)) return -1;
1889
+ if (!tr(n) || function(e, t) {
1890
+ let n = t.split("`"), r = e;
1891
+ for (let e = 0; e < n.length - 1; e++) {
1892
+ if (er(r)) {
1893
+ const t = pr(r, n[e]);
1894
+ if (t < 0) return !1;
1895
+ r = r[t];
1896
+ } else r = Object.prototype.hasOwnProperty.call(r, n[e]) ? r[n[e]] : void 0;
1897
+ if (null == r) return !1;
1898
+ if (!Zn(r) && !er(r)) return !0;
1899
+ }
1900
+ return !1;
1901
+ }(t, n)) return -1;
1890
1902
  if (o = {}, Sr(e, t, n, o) < 0) return -1;
1891
1903
  }
1892
1904
  return Zn(o) ? (br(o, r, l), 0) : (hn(`subdict is not an object: '${n}'`), -1);
@@ -2326,9 +2338,9 @@
2326
2338
  return t.is_file && (t.type = "file"), t;
2327
2339
  }
2328
2340
  var bl = [
2329
- j(y.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
2330
- j(y.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
2331
- j(y.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
2341
+ j(E.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
2342
+ j(E.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
2343
+ j(E.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
2332
2344
  v()
2333
2345
  ], pl = {
2334
2346
  periodic: !1,
@@ -2341,7 +2353,7 @@
2341
2353
  Vt(e, "EV_TIMEOUT", {}, e);
2342
2354
  }, 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;
2343
2355
  }
2344
- var yl = {
2356
+ var El = {
2345
2357
  mt_create: function(e) {
2346
2358
  let t = e.priv;
2347
2359
  const n = Ot(e, "subscriber");
@@ -2366,7 +2378,7 @@
2366
2378
  },
2367
2379
  mt_destroy: function(e) {}
2368
2380
  };
2369
- function El(e, t) {
2381
+ function yl(e, t) {
2370
2382
  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);
2371
2383
  }
2372
2384
  function Tl(e, t) {
@@ -2376,28 +2388,28 @@
2376
2388
  return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : void Rt(e, "msec", -1) : (hn("not GObj TYPE"), -1);
2377
2389
  }
2378
2390
  var jl = [
2379
- j(y.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
2380
- j(y.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
2381
- j(y.DTP_STRING, "__username__", 0, "", "Username"),
2382
- j(y.DTP_STRING, "start_date", 0, "", "Yuno starting date"),
2383
- j(y.DTP_STRING, "node_uuid", 0, "", "uuid of node"),
2384
- j(y.DTP_STRING, "yuno_role", 0, "", "Yuno role"),
2385
- j(y.DTP_STRING, "yuno_id", 0, "", "Yuno Id. Set by agent"),
2386
- j(y.DTP_STRING, "yuno_name", 0, "", "Yuno name. Set by agent"),
2387
- j(y.DTP_STRING, "yuno_tag", 0, "", "Tags of yuno. Set by agent"),
2388
- j(y.DTP_STRING, "yuno_release", 0, "", "Yuno Release. Set by agent"),
2389
- j(y.DTP_STRING, "yuno_version", 0, "", "Yuno version (APP_VERSION)"),
2390
- j(y.DTP_STRING, "yuneta_version", 0, s, "Yuneta version"),
2391
- j(y.DTP_LIST, "required_services", 0, "[]", "Required services"),
2392
- j(y.DTP_DICT, "trace_levels", E.SDF_PERSIST, "{}", "Trace levels"),
2393
- j(y.DTP_DICT, "no_trace_levels", E.SDF_PERSIST, "{}", "No trace levels"),
2394
- j(y.DTP_POINTER, "trace_ievent_callback", 0, null, "Where the traffic trace goes (C_IEVENT_CLI levels ievents/ievents2); console when null"),
2395
- j(y.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
2396
- j(y.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
2391
+ j(E.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
2392
+ j(E.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
2393
+ j(E.DTP_STRING, "__username__", 0, "", "Username"),
2394
+ j(E.DTP_STRING, "start_date", 0, "", "Yuno starting date"),
2395
+ j(E.DTP_STRING, "node_uuid", 0, "", "uuid of node"),
2396
+ j(E.DTP_STRING, "yuno_role", 0, "", "Yuno role"),
2397
+ j(E.DTP_STRING, "yuno_id", 0, "", "Yuno Id. Set by agent"),
2398
+ j(E.DTP_STRING, "yuno_name", 0, "", "Yuno name. Set by agent"),
2399
+ j(E.DTP_STRING, "yuno_tag", 0, "", "Tags of yuno. Set by agent"),
2400
+ j(E.DTP_STRING, "yuno_release", 0, "", "Yuno Release. Set by agent"),
2401
+ j(E.DTP_STRING, "yuno_version", 0, "", "Yuno version (APP_VERSION)"),
2402
+ j(E.DTP_STRING, "yuneta_version", 0, s, "Yuneta version"),
2403
+ j(E.DTP_LIST, "required_services", 0, "[]", "Required services"),
2404
+ j(E.DTP_DICT, "trace_levels", y.SDF_PERSIST, "{}", "Trace levels"),
2405
+ j(E.DTP_DICT, "no_trace_levels", y.SDF_PERSIST, "{}", "No trace levels"),
2406
+ j(E.DTP_POINTER, "trace_ievent_callback", 0, null, "Where the traffic trace goes (C_IEVENT_CLI levels ievents/ievents2); console when null"),
2407
+ j(E.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
2408
+ j(E.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
2397
2409
  v()
2398
2410
  ], Ol = { gobj_timer: null }, Sl = null;
2399
2411
  function wl(e, t, n, r) {
2400
- let l = yt(e, t);
2412
+ let l = Et(e, t);
2401
2413
  return Zn(l) || (l = {}), l[n] = r, St(e, t, l), De(e, t);
2402
2414
  }
2403
2415
  function Nl(e) {
@@ -2414,8 +2426,8 @@
2414
2426
  var Dl = {
2415
2427
  mt_create: function(e) {
2416
2428
  let t = e.priv;
2417
- $t(e, "start_date", el()), $t(e, "node_uuid", nl()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout = yt(e, "periodic_timeout"), function(e) {
2418
- let t = yt(e, "trace_levels");
2429
+ $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) {
2430
+ let t = Et(e, "trace_levels");
2419
2431
  if (!Zn(t)) return 0;
2420
2432
  let n = t.__global_trace__;
2421
2433
  if (er(n)) {
@@ -2430,7 +2442,7 @@
2430
2442
  } else hn(`${Xe(e)}: trace_levels of ${n} MUST be a list`);
2431
2443
  }
2432
2444
  }(e), function(e) {
2433
- let t = yt(e, "no_trace_levels");
2445
+ let t = Et(e, "no_trace_levels");
2434
2446
  if (!Zn(t)) return 0;
2435
2447
  let n = t.__global_no_trace__;
2436
2448
  if (er(n)) {
@@ -2486,21 +2498,21 @@
2486
2498
  }
2487
2499
  };
2488
2500
  var kl = "ievent_gate_stack", Al = [
2489
- j(y.DTP_STRING, "wanted_yuno_role", E.SDF_RD, "", "wanted yuno role"),
2490
- j(y.DTP_STRING, "wanted_yuno_name", E.SDF_RD, "", "wanted yuno name"),
2491
- j(y.DTP_STRING, "wanted_yuno_service", E.SDF_RD, "", "wanted yuno service"),
2492
- j(y.DTP_STRING, "remote_yuno_role", E.SDF_RD, "", "confirmed remote yuno role"),
2493
- j(y.DTP_STRING, "remote_yuno_name", E.SDF_RD, "", "confirmed remote yuno name"),
2494
- j(y.DTP_STRING, "remote_yuno_service", E.SDF_RD, "", "confirmed remote yuno service"),
2495
- j(y.DTP_STRING, "url", E.SDF_RD, "", "Url to connect"),
2496
- j(y.DTP_STRING, "jwt", E.SDF_PERSIST, "", "JWT"),
2497
- j(y.DTP_STRING, "cert_pem", E.SDF_PERSIST, "", "SSL server certification, PEM str format"),
2498
- j(y.DTP_JSON, "extra_info", E.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
2499
- 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."),
2500
- 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"),
2501
- 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"),
2502
- j(y.DTP_INTEGER, "timeout_idack", E.SDF_RD, "5000", "timeout waiting idAck"),
2503
- j(y.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
2501
+ j(E.DTP_STRING, "wanted_yuno_role", y.SDF_RD, "", "wanted yuno role"),
2502
+ j(E.DTP_STRING, "wanted_yuno_name", y.SDF_RD, "", "wanted yuno name"),
2503
+ j(E.DTP_STRING, "wanted_yuno_service", y.SDF_RD, "", "wanted yuno service"),
2504
+ j(E.DTP_STRING, "remote_yuno_role", y.SDF_RD, "", "confirmed remote yuno role"),
2505
+ j(E.DTP_STRING, "remote_yuno_name", y.SDF_RD, "", "confirmed remote yuno name"),
2506
+ j(E.DTP_STRING, "remote_yuno_service", y.SDF_RD, "", "confirmed remote yuno service"),
2507
+ j(E.DTP_STRING, "url", y.SDF_RD, "", "Url to connect"),
2508
+ j(E.DTP_STRING, "jwt", y.SDF_PERSIST, "", "JWT"),
2509
+ j(E.DTP_STRING, "cert_pem", y.SDF_PERSIST, "", "SSL server certification, PEM str format"),
2510
+ j(E.DTP_JSON, "extra_info", y.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
2511
+ 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."),
2512
+ 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"),
2513
+ 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"),
2514
+ j(E.DTP_INTEGER, "timeout_idack", y.SDF_RD, "5000", "timeout waiting idAck"),
2515
+ j(E.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
2504
2516
  v()
2505
2517
  ], Il = [
2506
2518
  ["ievents", "Trace inter-events with metadata of kw"],
@@ -2524,7 +2536,7 @@
2524
2536
  function Ul(e) {
2525
2537
  e.priv.websocket && hn("Websocket ALREADY setup");
2526
2538
  const t = jt(e, "url");
2527
- En(`====> Starting WebSocket to '${t}' (${et(e)})`);
2539
+ yn(`====> Starting WebSocket to '${t}' (${et(e)})`);
2528
2540
  const n = ++e.priv.ws_seq;
2529
2541
  let r;
2530
2542
  try {
@@ -2536,7 +2548,7 @@
2536
2548
  code: 1006,
2537
2549
  reason: r.message,
2538
2550
  was_clean: !1
2539
- }, e) < 0 && El(e.priv.gobj_timer, ql(e)), null;
2551
+ }, e) < 0 && yl(e.priv.gobj_timer, ql(e)), null;
2540
2552
  }
2541
2553
  return r ? (r.onopen = () => {
2542
2554
  n !== e.priv.ws_seq || ot(e) || Vt(e, "EV_ON_OPEN", {
@@ -2549,7 +2561,7 @@
2549
2561
  data: r.data
2550
2562
  }, e);
2551
2563
  }, r.onclose = (r) => {
2552
- ot(e) || n === e.priv.ws_seq && (Tt(qe(), "browser_beforeunload") ? yn("Close websocket by unload page") : Vt(e, "EV_ON_CLOSE", {
2564
+ ot(e) || n === e.priv.ws_seq && (Tt(qe(), "browser_beforeunload") ? En("Close websocket by unload page") : Vt(e, "EV_ON_CLOSE", {
2553
2565
  url: t,
2554
2566
  ws_seq: n,
2555
2567
  code: r.code,
@@ -2561,20 +2573,20 @@
2561
2573
  function Fl(e, t = 1e3, n = "") {
2562
2574
  let r = e.priv, l = r.websocket;
2563
2575
  if (r.websocket = null, l && l.readyState !== WebSocket.CLOSED && l.readyState !== WebSocket.CLOSING) {
2564
- En(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
2576
+ yn(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
2565
2577
  try {
2566
2578
  l.close(t, n);
2567
2579
  } catch (t) {
2568
2580
  hn(`${et(e)}: Error closing WebSocket: ${t.message}`);
2569
2581
  }
2570
- } else yn("WebSocket is already closed or in the process of closing.");
2582
+ } else En("WebSocket is already closed or in the process of closing.");
2571
2583
  }
2572
2584
  function Vl(e, t, n) {
2573
2585
  let r = el();
2574
2586
  try {
2575
- En("\n" + r + " " + t + "\n"), Un(n);
2587
+ yn("\n" + r + " " + t + "\n"), Un(n);
2576
2588
  } catch (e) {
2577
- En("ERROR in trace_inter_event: " + e);
2589
+ yn("ERROR in trace_inter_event: " + e);
2578
2590
  }
2579
2591
  }
2580
2592
  var Gl = class {
@@ -2586,10 +2598,10 @@
2586
2598
  return function(e, t) {
2587
2599
  let n = e.priv, r = JSON.stringify(t);
2588
2600
  if (Cl(e)) {
2589
- let n = jt(e, "url"), l = Xe(qe()) + " ==> " + n, o = yt(qe(), "trace_ievent_callback");
2601
+ let n = jt(e, "url"), l = Xe(qe()) + " ==> " + n, o = Et(qe(), "trace_ievent_callback");
2590
2602
  o ? o(l, t, 1, r.length) : Vl(0, l, t);
2591
2603
  }
2592
- if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return yn(`${et(e)}: send_iev(): websocket not open, message lost`), -1;
2604
+ if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return En(`${et(e)}: send_iev(): websocket not open, message lost`), -1;
2593
2605
  try {
2594
2606
  n.websocket.send(r);
2595
2607
  } catch (t) {
@@ -2612,8 +2624,8 @@
2612
2624
  };
2613
2625
  }
2614
2626
  function xl(e) {
2615
- 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");
2616
- i && i.length || (i = yt(qe(), "required_services"));
2627
+ 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");
2628
+ i && i.length || (i = Et(qe(), "required_services"));
2617
2629
  let _ = {
2618
2630
  yuno_role: ze(),
2619
2631
  yuno_id: Qe(),
@@ -2634,7 +2646,7 @@
2634
2646
  language: "undefined" != typeof window ? window.navigator.language : "",
2635
2647
  required_services: i
2636
2648
  };
2637
- 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
+ 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", _);
2638
2650
  }
2639
2651
  function Kl(e, t) {
2640
2652
  if (ir(t.event)) return -1;
@@ -2647,16 +2659,16 @@
2647
2659
  return Ke(e) && (l.websocket = Ul(e)), 0;
2648
2660
  }
2649
2661
  function Bl(e, t, n, r) {
2650
- return En("Websocket opened: " + e.priv.url), xl(e), 0;
2662
+ return yn("Websocket opened: " + e.priv.url), xl(e), 0;
2651
2663
  }
2652
2664
  function Jl(e, t, n, r) {
2653
2665
  let l = e.priv, o = n.url;
2654
- 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
+ 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", {
2655
2667
  url: o,
2656
2668
  remote_yuno_name: l.remote_yuno_name,
2657
2669
  remote_yuno_role: l.remote_yuno_role,
2658
2670
  remote_yuno_service: l.remote_yuno_service
2659
- })) : 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
+ })) : 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", {
2660
2672
  url: o,
2661
2673
  remote_yuno_name: l.remote_yuno_name,
2662
2674
  remote_yuno_role: l.remote_yuno_role,
@@ -2664,7 +2676,7 @@
2664
2676
  code: n.code,
2665
2677
  reason: n.reason,
2666
2678
  was_clean: n.was_clean
2667
- })), Ke(e) && El(l.gobj_timer, ql(e))), 0;
2679
+ })), Ke(e) && yl(l.gobj_timer, ql(e))), 0;
2668
2680
  }
2669
2681
  function ql(e) {
2670
2682
  let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
@@ -2680,7 +2692,7 @@
2680
2692
  vl(l.gobj_timer);
2681
2693
  let o = Mr(e, n, kl, !0), s = Tr(e, o, "src_yuno", ""), i = Tr(e, o, "src_role", ""), _ = Tr(e, o, "src_service", "");
2682
2694
  $t(e, "remote_yuno_name", s), $t(e, "remote_yuno_role", i), $t(e, "remote_yuno_service", _);
2683
- 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
+ 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", {});
2684
2696
  if (a < 0) {
2685
2697
  Fl(e);
2686
2698
  let t = {
@@ -2718,21 +2730,21 @@
2718
2730
  try {
2719
2731
  n = JSON.parse(t);
2720
2732
  } catch (t) {
2721
- return yn(`${et(e)}: parsing inter_event json: ${t}`), null;
2733
+ return En(`${et(e)}: parsing inter_event json: ${t}`), null;
2722
2734
  }
2723
- if (!(n instanceof Object)) return yn(`${et(e)}: parsing inter_event: websocket data not a json object`), null;
2735
+ if (!(n instanceof Object)) return En(`${et(e)}: parsing inter_event: websocket data not a json object`), null;
2724
2736
  let r = n.event;
2725
- if (!r) return yn(`${et(e)}: parsing inter_event: no event`), null;
2726
- if ("string" != typeof r) return yn(`${et(e)}: parsing inter_event: event not a string`), null;
2737
+ if (!r) return En(`${et(e)}: parsing inter_event: no event`), null;
2738
+ if ("string" != typeof r) return En(`${et(e)}: parsing inter_event: event not a string`), null;
2727
2739
  let l = n.kw;
2728
2740
  return l ? l instanceof Object ? {
2729
2741
  event: r,
2730
2742
  kw: l || {}
2731
- } : (yn(`${et(e)}: parsing inter_event: kw not a json object`), null) : (yn(`${et(e)}: parsing inter_kw: no kw`), null);
2743
+ } : (En(`${et(e)}: parsing inter_event: kw not a json object`), null) : (En(`${et(e)}: parsing inter_kw: no kw`), null);
2732
2744
  }(e, n.data);
2733
- if (!o) return yn(`${et(e)}: frame dropped from ${l}: ${String(n.data).substring(0, 256)}`), -1;
2745
+ if (!o) return En(`${et(e)}: frame dropped from ${l}: ${String(n.data).substring(0, 256)}`), -1;
2734
2746
  if (Cl(e)) {
2735
- let e = Xe(qe()) + " <== " + l, t = n.data.length, r = yt(qe(), "trace_ievent_callback");
2747
+ let e = Xe(qe()) + " <== " + l, t = n.data.length, r = Et(qe(), "trace_ievent_callback");
2736
2748
  r ? r(e, o, 2, t) : Vl(0, e, o);
2737
2749
  }
2738
2750
  let s = o.event, i = o.kw;
@@ -2746,12 +2758,12 @@
2746
2758
  let _ = xr(e, i), a = Mr(e, i, kl), u = Tr(e, a, "dst_role", "");
2747
2759
  if (u.toLowerCase() !== ze().toLowerCase()) return hn(`"It's not my role, dst_role: ${u}, my_role: ${ze()}`), 0;
2748
2760
  let c = Tr(e, a, "dst_service", "");
2749
- if ("__subscribing__" === _) return yn(`${et(e)}: subscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2750
- if ("__unsubscribing__" === _) return yn(`${et(e)}: unsubscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2761
+ if ("__subscribing__" === _) return En(`${et(e)}: subscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2762
+ if ("__unsubscribing__" === _) return En(`${et(e)}: unsubscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
2751
2763
  if (It(e, s, $.EVF_PUBLIC_EVENT)) return Vt(e, s, i, e), 0;
2752
2764
  if (!ir(c)) {
2753
2765
  let t = we(c, !1);
2754
- 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) : (yn(`${et(e)}: event for a service that is gone, DROPPED: service '${c}', ev '${s}'`), 0);
2766
+ 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);
2755
2767
  }
2756
2768
  return lt(e) ? Vt(nt(e), s, i, e) : Xt(e, s, i), 0;
2757
2769
  }
@@ -2864,7 +2876,7 @@
2864
2876
  else if (o.length > 0 && "<" === o[0] && function(e) {
2865
2877
  if (Xr.size >= 100) return;
2866
2878
  const t = e.slice(0, 80);
2867
- 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
+ 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)}`));
2868
2880
  }(o), n && _) i.textContent = n(_) || o;
2869
2881
  else i.textContent = o;
2870
2882
  else if (er(o)) {
@@ -2884,20 +2896,20 @@
2884
2896
  let o = Or(null, t, e, l);
2885
2897
  Yn(n, e, o);
2886
2898
  }), n;
2887
- }, e.current_timestamp = el, e.data_type_t = y, e.db_list_persistent_attrs = function(e, t) {
2899
+ }, e.current_timestamp = el, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
2888
2900
  let n = kr(al(e), null, !1), r = {};
2889
2901
  return n && Zn(n) && (r = $r(e, n, t, !1)), r;
2890
2902
  }, e.db_load_persistent_attrs = function(e, t) {
2891
- let n = Et(e, E.SDF_PERSIST), r = kr(al(e), null, !1);
2903
+ let n = yt(e, y.SDF_PERSIST), r = kr(al(e), null, !1);
2892
2904
  if (r && Zn(r)) {
2893
2905
  let l = $r(e, r, t, !1);
2894
- l = $r(e, l, n, !1), wt(e, l, E.SDF_PERSIST);
2906
+ l = $r(e, l, n, !1), wt(e, l, y.SDF_PERSIST);
2895
2907
  }
2896
2908
  }, e.db_remove_persistent_attrs = function(e, t) {
2897
2909
  let n = Dr(e, kr(al(e), null, !1), t, !1);
2898
2910
  0 === zn(n) ? Ir(al(e)) : Ar(al(e), n);
2899
2911
  }, e.db_save_persistent_attrs = function(e, t) {
2900
- let n = $r(e, Et(e, E.SDF_PERSIST), t, !1), r = kr(al(e), null, !1);
2912
+ let n = $r(e, yt(e, y.SDF_PERSIST), t, !1), r = kr(al(e), null, !1);
2901
2913
  return r && Zn(r) && Wn(n, r), Ar(al(e), n);
2902
2914
  }, e.debounce = function(e, t = 0, n = !1) {
2903
2915
  let r = null, l = null, o = null;
@@ -2983,7 +2995,7 @@
2983
2995
  return l;
2984
2996
  }, e.flat_key_join = function(e) {
2985
2997
  return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : sl(e)).join("`") : "";
2986
- }, 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
+ }, 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) {
2987
2999
  if (!e) return {
2988
3000
  top: 0,
2989
3001
  left: 0,
@@ -3005,7 +3017,7 @@
3005
3017
  }, e.get_function_name = rl, e.get_now = function() {
3006
3018
  return Math.floor(Date.now() / 1e3);
3007
3019
  }, e.gobj_bottom_gobj = st, e.gobj_change_parent = function(e, t) {
3008
- 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) && 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
+ 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);
3009
3021
  }, e.gobj_change_state = Dt, e.gobj_command = function(e, t, r, o) {
3010
3022
  if (ot(e)) return hn("gobj NULL or DESTROYED"), -1;
3011
3023
  if (function(e) {
@@ -3076,7 +3088,7 @@
3076
3088
  }(n, e), n;
3077
3089
  }, 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() {
3078
3090
  return Lt.length;
3079
- }, 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
+ }, 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) {
3080
3092
  return Be(e) ? a ? a(e, t) : -1 : (hn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
3081
3093
  }, e.gobj_repr_global_trace_levels = function() {
3082
3094
  return U.map(([e, t, n]) => ({
@@ -3094,7 +3106,7 @@
3094
3106
  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)));
3095
3107
  }
3096
3108
  return 0;
3097
- }(e, E.SDF_VOLATIL, 0);
3109
+ }(e, y.SDF_VOLATIL, 0);
3098
3110
  }, e.gobj_save_persistent_attrs = De, e.gobj_search_path = mt, e.gobj_send_event = Vt, e.gobj_services = function() {
3099
3111
  let e = [];
3100
3112
  for (const t of Object.keys(b)) qn(e, t);
@@ -3120,7 +3132,7 @@
3120
3132
  const d = [["EV_STATE_CHANGED", $.EVF_SYSTEM_EVENT | $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]];
3121
3133
  for (let e = 0; e < d.length; e++) {
3122
3134
  let t = d[e][0], n = d[e][1];
3123
- Ee(g, t, n);
3135
+ ye(g, t, n);
3124
3136
  }
3125
3137
  return 0;
3126
3138
  }, e.gobj_stats = function(e, t, r, l) {
@@ -3148,7 +3160,7 @@
3148
3160
  let n = s[t], r = Jt(e, n, !1, !1);
3149
3161
  0 === r ? i++ : r < 0 ? _++ : a++;
3150
3162
  }
3151
- 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
+ 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;
3152
3164
  }, 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) {
3153
3165
  return "string" != typeof e ? (hn("html_markup: not a string, type " + typeof e), new qr("")) : new qr(e);
3154
3166
  }, 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) {
@@ -3195,11 +3207,11 @@
3195
3207
  return Or(null, n, t, null, 0) || (hn("jdb topic not found: " + t), Tn(n), null);
3196
3208
  }, e.jdb_init = function(e, t, n) {
3197
3209
  n && (e = Fn(e));
3198
- let r = Or(null, e, "type", [], 1);
3199
- Tr(null, e, "hook", "data", 1);
3200
- let l = Or(null, e, "schema", {}, 1), o = Or(null, e, "topics", {}, 1);
3210
+ let r = Or(null, e, "type", [], Zt.KW_CREATE);
3211
+ Tr(null, e, "hook", "data", Zt.KW_CREATE);
3212
+ let l = Or(null, e, "schema", {}, Zt.KW_CREATE), o = Or(null, e, "topics", {}, Zt.KW_CREATE);
3201
3213
  return Kr(l, function(e, t, n, l) {
3202
- "__" !== t.substring(0, 2) && Or(null, o, l, Fn(r), 1);
3214
+ "__" !== t.substring(0, 2) && Or(null, o, l, Fn(r), Zt.KW_CREATE);
3203
3215
  }, t), e;
3204
3216
  }, e.jdb_update = function(e, t, n, r) {
3205
3217
  let l = Or(null, Or(null, e, "topics", null, 0), t, null, 0);
@@ -3207,11 +3219,11 @@
3207
3219
  if (ir(r.id)) return hn("jdb_update: record without id: " + r), Tn(r), null;
3208
3220
  if (!tr(n)) return hn(`jdb_update: path must be a string: ${String(n)}`), null;
3209
3221
  let o, s = n.split("`"), i = l;
3210
- for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, [], 1)), i = Yr(i, null, o, !1);
3222
+ for (; (o = s.shift()) && !ir(o) && i;) Zn(i) && (i = Or(null, i, e.hook, [], Zt.KW_CREATE)), i = Yr(i, null, o, !1);
3211
3223
  if (0 === s.length && i) if (er(i)) i.push(r);
3212
3224
  else if (i.id === r.id) Gn(i, r);
3213
3225
  else {
3214
- let t = Or(null, i, e.hook, [], 1), n = Yr(t, e.hook, r.id, !1);
3226
+ let t = Or(null, i, e.hook, [], Zt.KW_CREATE), n = Yr(t, e.hook, r.id, !1);
3215
3227
  n ? Gn(n, r) : t.push(r);
3216
3228
  }
3217
3229
  return l;
@@ -3266,7 +3278,7 @@
3266
3278
  if (!n || !er(t)) return r && hn("item NULL or kw_list is not a list"), -1;
3267
3279
  for (let e = 0; e < t.length; e++) if (Vn(n, t[e])) return e;
3268
3280
  return r && hn("item not found in this list"), -1;
3269
- }, 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) {
3281
+ }, 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) {
3270
3282
  e && !sr(e) && hn("GObj bad instanceof");
3271
3283
  let o = mr(e, t, n, !1);
3272
3284
  const s = l && l & Zt.KW_REQUIRED, i = l && l & Zt.KW_CREATE, _ = l && l & Zt.KW_EXTRACT;
@@ -3392,10 +3404,10 @@
3392
3404
  else n && n(r.status);
3393
3405
  var e;
3394
3406
  }, r.send();
3395
- }, e.log_debug = En, e.log_error = hn, e.log_info = function(e, ...t) {
3407
+ }, e.log_debug = yn, e.log_error = hn, e.log_info = function(e, ...t) {
3396
3408
  let n = mn(e, ...t), r = el();
3397
3409
  rn && cn("info", n) && rn("%c" + r + " INFO: " + String(n), "color:cyan"), gn("info", n, r);
3398
- }, 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) {
3410
+ }, 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) {
3399
3411
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3400
3412
  }, e.refresh_language = function(e, t) {
3401
3413
  if (!or(t)) return void hn("You must supply a translation function");
@@ -3527,7 +3539,7 @@
3527
3539
  ["EV_TIMEOUT", $.EVF_OUTPUT_EVENT],
3528
3540
  ["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT],
3529
3541
  [0, 0]
3530
- ], t, yl, 0, bl, pl, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
3542
+ ], t, El, 0, bl, pl, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
3531
3543
  }("C_TIMER");
3532
3544
  }, e.register_c_yuno = function() {
3533
3545
  return function(e) {
@@ -3543,7 +3555,7 @@
3543
3555
  if (!e) return "";
3544
3556
  const t = String(e).trim();
3545
3557
  return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Jr(t);
3546
- }, e.sdata_flag_t = E, e.send_http_json_post = function(e, t, n) {
3558
+ }, e.sdata_flag_t = y, e.send_http_json_post = function(e, t, n) {
3547
3559
  let r = new XMLHttpRequest();
3548
3560
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
3549
3561
  4 === r.readyState && n(r.status, r.responseText);
@@ -3567,7 +3579,7 @@
3567
3579
  } else on = e;
3568
3580
  }, e.set_remote_log_functions = bn, e.set_strings_are_text = function(e) {
3569
3581
  Qr = !!e;
3570
- }, 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() {
3582
+ }, 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() {
3571
3583
  return Qr;
3572
3584
  }, e.strncmp = function(e, t, n) {
3573
3585
  var r = (e + "").substring(0, n), l = (t + "").substring(0, n);
@@ -3617,9 +3629,9 @@
3617
3629
  }, e.timeTracker = function(e = "Time Tracker", t = !1) {
3618
3630
  const n = e, r = performance.now();
3619
3631
  let l = r;
3620
- return t && yn(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", o = "") => {
3632
+ return t && En(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", o = "") => {
3621
3633
  const s = performance.now(), i = (s - l) / 1e3, _ = (s - r) / 1e3;
3622
- return t && yn(`--\x3e ${n} ${e} - partial: ${i} sec, total: ${_} sec, ${o}`), l = s, {
3634
+ return t && En(`--\x3e ${n} ${e} - partial: ${i} sec, total: ${_} sec, ${o}`), l = s, {
3623
3635
  partial: i,
3624
3636
  total: _
3625
3637
  };