@yuneta/gobj-js 7.25.2 → 7.25.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -209,11 +209,11 @@
209
209
  WALK_BYLEVEL: 4,
210
210
  WALK_FIRST2LAST: 16,
211
211
  WALK_LAST2FIRST: 32
212
- }), k = class {
212
+ }), $ = class {
213
213
  constructor(e, t, n) {
214
214
  this.event_name = e, this.action = t, this.next_state = n;
215
215
  }
216
- }, $ = class {
216
+ }, k = class {
217
217
  constructor(e) {
218
218
  this.state_name = e, this.dl_actions = [];
219
219
  }
@@ -226,7 +226,7 @@
226
226
  function L(e) {
227
227
  Cn(e) && (e = JSON.stringify(e)), pn(" ".repeat(Math.max(1, 2 * h)) + String(e));
228
228
  }
229
- var P = Object.freeze({
229
+ var U = Object.freeze({
230
230
  TRACE_MACHINE: 65536,
231
231
  TRACE_CREATE_DELETE: 131072,
232
232
  TRACE_CREATE_DELETE2: 262144,
@@ -242,86 +242,86 @@
242
242
  TRACE_TIMER_PERIODIC: 268435456,
243
243
  TRACE_URING_TIME: 536870912,
244
244
  TRACE_COMMANDS: 1073741824
245
- }), U = [
245
+ }), P = [
246
246
  [
247
247
  "machine",
248
- P.TRACE_MACHINE,
248
+ U.TRACE_MACHINE,
249
249
  "Trace machine"
250
250
  ],
251
251
  [
252
252
  "create_delete",
253
- P.TRACE_CREATE_DELETE,
253
+ U.TRACE_CREATE_DELETE,
254
254
  "Trace create/delete of gobjs"
255
255
  ],
256
256
  [
257
257
  "create_delete2",
258
- P.TRACE_CREATE_DELETE2,
258
+ U.TRACE_CREATE_DELETE2,
259
259
  "Trace create/delete of gobjs level 2: with kw"
260
260
  ],
261
261
  [
262
262
  "subscriptions",
263
- P.TRACE_SUBSCRIPTIONS,
263
+ U.TRACE_SUBSCRIPTIONS,
264
264
  "Trace subscriptions of gobjs"
265
265
  ],
266
266
  [
267
267
  "start_stop",
268
- P.TRACE_START_STOP,
268
+ U.TRACE_START_STOP,
269
269
  "Trace start/stop of gobjs"
270
270
  ],
271
271
  [
272
272
  "ev_kw",
273
- P.TRACE_EV_KW,
273
+ U.TRACE_EV_KW,
274
274
  "Trace event keywords"
275
275
  ],
276
276
  [
277
277
  "authzs",
278
- P.TRACE_AUTHZS,
278
+ U.TRACE_AUTHZS,
279
279
  "Trace authorizations"
280
280
  ],
281
281
  [
282
282
  "states",
283
- P.TRACE_STATES,
283
+ U.TRACE_STATES,
284
284
  "Trace change of states"
285
285
  ],
286
286
  [
287
287
  "gbuffers",
288
- P.TRACE_GBUFFERS,
288
+ U.TRACE_GBUFFERS,
289
289
  "Trace gbuffers"
290
290
  ],
291
291
  [
292
292
  "timer",
293
- P.TRACE_TIMER,
293
+ U.TRACE_TIMER,
294
294
  "Trace timers"
295
295
  ],
296
296
  [
297
297
  "fs",
298
- P.TRACE_FS,
298
+ U.TRACE_FS,
299
299
  "Trace file system"
300
300
  ],
301
301
  [
302
302
  "liburing",
303
- P.TRACE_URING,
303
+ U.TRACE_URING,
304
304
  "Trace liburing mixins"
305
305
  ],
306
306
  [
307
307
  "timer_periodic",
308
- P.TRACE_TIMER_PERIODIC,
308
+ U.TRACE_TIMER_PERIODIC,
309
309
  "Trace periodic timers"
310
310
  ],
311
311
  [
312
312
  "liburing_timer",
313
- P.TRACE_URING_TIME,
313
+ U.TRACE_URING_TIME,
314
314
  "Trace liburing timer"
315
315
  ],
316
316
  [
317
317
  "commands",
318
- P.TRACE_COMMANDS,
318
+ U.TRACE_COMMANDS,
319
319
  "Trace commands"
320
320
  ]
321
321
  ], F = 0, G = 0, V = 0;
322
322
  function M(e, t) {
323
323
  let n = [];
324
- for (const [t, r] of U) e & r && n.push(t);
324
+ for (const [t, r] of P) e & r && n.push(t);
325
325
  if (Array.isArray(t)) for (let r = 0; r < t.length && r < 16; r++) t[r] && e & 1 << r && n.push(t[r][0]);
326
326
  return n;
327
327
  }
@@ -332,45 +332,45 @@
332
332
  if (t) return t;
333
333
  }
334
334
  return function(e, t) {
335
- for (const [t, n] of U) if (t === e) return n;
335
+ for (const [t, n] of P) if (t === e) return n;
336
336
  if (Array.isArray(t)) {
337
337
  for (let n = 0; n < t.length && n < 16; n++) if (t[n] && t[n][0] === e) return 1 << n;
338
338
  }
339
339
  return 0;
340
340
  }(String(e), n) || (dn(`${t}: trace level NOT FOUND: ${e}`), 0);
341
341
  }
342
- function K(e) {
342
+ function x(e) {
343
343
  if (V) return 4294967295;
344
344
  let t = F;
345
345
  return e && (t |= e.trace_level || 0, e.gclass && (t |= e.gclass.trace_level || 0)), t;
346
346
  }
347
- function x(e) {
347
+ function K(e) {
348
348
  let t = G;
349
349
  return e && (t |= e.no_trace_level || 0, e.gclass && (t |= e.gclass.no_trace_level || 0)), t;
350
350
  }
351
351
  function Y(e) {
352
- return K(e) & P.TRACE_CREATE_DELETE;
352
+ return x(e) & U.TRACE_CREATE_DELETE;
353
353
  }
354
354
  function B(e) {
355
- return K(e) & P.TRACE_SUBSCRIPTIONS;
355
+ return x(e) & U.TRACE_SUBSCRIPTIONS;
356
356
  }
357
357
  function J(e) {
358
- return K(e) & P.TRACE_START_STOP;
358
+ return x(e) & U.TRACE_START_STOP;
359
359
  }
360
360
  function H(e) {
361
- return K(e) & P.TRACE_EV_KW;
361
+ return x(e) & U.TRACE_EV_KW;
362
362
  }
363
363
  function q(e, t) {
364
364
  if (V > 1) return !0;
365
365
  if (!e) return !1;
366
- const n = K(e);
367
- return !!(n & P.TRACE_MACHINE || n & P.TRACE_TIMER_PERIODIC && "EV_TIMEOUT_PERIODIC" === t || n & P.TRACE_TIMER && "EV_TIMEOUT" === t);
366
+ const n = x(e);
367
+ return !!(n & U.TRACE_MACHINE || n & U.TRACE_TIMER_PERIODIC && "EV_TIMEOUT_PERIODIC" === t || n & U.TRACE_TIMER && "EV_TIMEOUT" === t);
368
368
  }
369
369
  function z(e, t) {
370
370
  if (V > 1) return !1;
371
371
  if (!e) return !0;
372
- const n = x(e);
373
- return !!(n & P.TRACE_MACHINE || n & P.TRACE_TIMER_PERIODIC && "EV_TIMEOUT_PERIODIC" === t || n & P.TRACE_TIMER && "EV_TIMEOUT" === t);
372
+ const n = K(e);
373
+ return !!(n & U.TRACE_MACHINE || n & U.TRACE_TIMER_PERIODIC && "EV_TIMEOUT_PERIODIC" === t || n & U.TRACE_TIMER && "EV_TIMEOUT" === t);
374
374
  }
375
375
  function Q(e, t) {
376
376
  const n = W(e, "gobj_set_global_trace");
@@ -393,25 +393,25 @@
393
393
  return M(G, null);
394
394
  }
395
395
  function re(e) {
396
- const t = Pn(e) ? Se(e) : e;
396
+ const t = Un(e) ? Se(e) : e;
397
397
  return t ? M(t.trace_level | F, t.s_user_trace_level) : (dn(`gobj_get_gclass_trace_level: gclass NOT FOUND: ${e}`), []);
398
398
  }
399
399
  function le(e) {
400
- const t = Pn(e) ? Se(e) : e;
400
+ const t = Un(e) ? Se(e) : e;
401
401
  return t ? M(t.trace_level, t.s_user_trace_level) : (dn(`gobj_get_gclass_trace_level2: gclass NOT FOUND: ${e}`), []);
402
402
  }
403
403
  function oe(e) {
404
- const t = Pn(e) ? Se(e) : e;
404
+ const t = Un(e) ? Se(e) : e;
405
405
  return t ? M(t.no_trace_level, t.s_user_trace_level) : (dn(`gobj_get_gclass_trace_no_level: gclass NOT FOUND: ${e}`), []);
406
406
  }
407
407
  function se(e, t, n) {
408
- const r = Pn(e) ? Se(e) : e;
408
+ const r = Un(e) ? Se(e) : e;
409
409
  if (!r) return dn(`gobj_set_gclass_trace: gclass NOT FOUND: ${e}`), -1;
410
410
  const l = null === t ? 4294967295 : W(t, "gobj_set_gclass_trace", r.s_user_trace_level || null);
411
411
  return l ? (n ? r.trace_level |= l : r.trace_level &= ~l, 0) : -1;
412
412
  }
413
413
  function ie(e, t, n) {
414
- const r = Pn(e) ? Se(e) : e;
414
+ const r = Un(e) ? Se(e) : e;
415
415
  if (!r) return dn(`gobj_set_gclass_no_trace: gclass NOT FOUND: ${e}`), -1;
416
416
  const l = null === t ? 4294967295 : W(t, "gobj_set_gclass_no_trace", r.s_user_trace_level || null);
417
417
  return l ? (n ? r.no_trace_level |= l : r.no_trace_level &= ~l, 0) : -1;
@@ -432,7 +432,7 @@
432
432
  r = String(l);
433
433
  break;
434
434
  case E.DTP_BOOLEAN:
435
- r = Kn(l);
435
+ r = xn(l);
436
436
  break;
437
437
  case E.DTP_INTEGER:
438
438
  r = parseInt(l), isNaN(r) && dn(`${et(e)}: attr NaN: ${n.name}`);
@@ -441,7 +441,7 @@
441
441
  r = Number(l), isNaN(r) && dn(`${et(e)}: attr NaN: ${n.name}`);
442
442
  break;
443
443
  case E.DTP_LIST:
444
- if (Pn(l)) try {
444
+ if (Un(l)) try {
445
445
  r = JSON.parse(l);
446
446
  } catch (e) {
447
447
  dn(`JSON parse error: ${e.message}`);
@@ -450,7 +450,7 @@
450
450
  Ln(r) || (r = []);
451
451
  break;
452
452
  case E.DTP_DICT:
453
- if (Pn(l)) try {
453
+ if (Un(l)) try {
454
454
  r = JSON.parse(l);
455
455
  } catch (e) {
456
456
  dn(`JSON parse error: ${e.message}`);
@@ -459,7 +459,7 @@
459
459
  Cn(r) || (r = {});
460
460
  break;
461
461
  case E.DTP_JSON:
462
- if (Pn(l)) try {
462
+ if (Un(l)) try {
463
463
  r = JSON.parse(l);
464
464
  } catch (e) {
465
465
  dn(`JSON parse error: ${e.message}`);
@@ -475,14 +475,14 @@
475
475
  switch (n.type) {
476
476
  case E.DTP_STRING:
477
477
  if (null == r) l = "";
478
- else if (Pn(r)) l = String(r);
478
+ else if (Un(r)) l = String(r);
479
479
  else {
480
480
  let e = JSON.stringify(r);
481
481
  e && (l = String(e));
482
482
  }
483
483
  break;
484
484
  case E.DTP_BOOLEAN:
485
- l = Kn(r);
485
+ l = xn(r);
486
486
  break;
487
487
  case E.DTP_INTEGER:
488
488
  l = parseInt(r), isNaN(l) && dn(`${et(e)}: attr NaN: ${n.name}`);
@@ -491,7 +491,7 @@
491
491
  l = Number(r), isNaN(l) && dn(`${et(e)}: attr NaN: ${n.name}`);
492
492
  break;
493
493
  case E.DTP_LIST:
494
- if (Pn(r)) try {
494
+ if (Un(r)) try {
495
495
  l = JSON.parse(r);
496
496
  } catch (e) {
497
497
  dn(`JSON parse error: ${e.message}`);
@@ -500,7 +500,7 @@
500
500
  if (!Ln(l)) return dn(`attr must be an array: ${n.name}`), -1;
501
501
  break;
502
502
  case E.DTP_DICT:
503
- if (Pn(r)) try {
503
+ if (Un(r)) try {
504
504
  l = JSON.parse(r);
505
505
  } catch (e) {
506
506
  dn(`JSON parse error: ${e.message}`);
@@ -509,7 +509,7 @@
509
509
  if (!Cn(l)) return dn(`attr must be an object: ${n.name}`), -1;
510
510
  break;
511
511
  case E.DTP_JSON:
512
- if (Pn(r)) try {
512
+ if (Un(r)) try {
513
513
  l = JSON.parse(r);
514
514
  } catch (e) {
515
515
  dn(`JSON parse error: ${e.message}`);
@@ -570,7 +570,7 @@
570
570
  }
571
571
  function be(e) {
572
572
  let t;
573
- if (Pn(e)) t = e;
573
+ if (Un(e)) t = e;
574
574
  else {
575
575
  if (!(e instanceof S)) return dn("Cannot unregister gclass, type unknown"), -1;
576
576
  t = e.gclass_name;
@@ -595,13 +595,13 @@
595
595
  return null;
596
596
  }
597
597
  function he(e, t) {
598
- return e instanceof S ? pe(e, t) ? (dn(`state already exists: ${t}`), -1) : (e.dl_states.push(new $(t)), 0) : (dn("Cannot add state, typeof not GClass"), -1);
598
+ return e instanceof S ? pe(e, t) ? (dn(`state already exists: ${t}`), -1) : (e.dl_states.push(new k(t)), 0) : (dn("Cannot add state, typeof not GClass"), -1);
599
599
  }
600
600
  function Ee(e, t, n, r, l) {
601
601
  if (!(e instanceof S)) return dn("Cannot add state, typeof not GClass"), -1;
602
602
  if (Wn(t)) return dn("state_name EMPTY"), -1;
603
603
  let o = pe(e, t);
604
- return o ? me(o, n) ? (dn(`event already exists: gclass ${e.gclass_name}, state ${t}, event ${n}`), -1) : (o.dl_actions.push(new k(n, r, l)), 0) : (dn(`state not found: ${t}`), -1);
604
+ return o ? me(o, n) ? (dn(`event already exists: gclass ${e.gclass_name}, state ${t}, event ${n}`), -1) : (o.dl_actions.push(new $(n, r, l)), 0) : (dn(`state not found: ${t}`), -1);
605
605
  }
606
606
  function Te(e, t, n) {
607
607
  Wn(t) || e.push(new I(t, n));
@@ -621,7 +621,7 @@
621
621
  function je(e) {
622
622
  if (!(e instanceof S)) return dn("Cannot add state, typeof not GClass"), -1;
623
623
  let t = 0;
624
- $n(e.dl_states) || (dn(`GClass without states: ${e.gclass_name}`), t += -1);
624
+ kn(e.dl_states) || (dn(`GClass without states: ${e.gclass_name}`), t += -1);
625
625
  for (let n = 0; n < e.dl_states.length; n++) {
626
626
  let r = e.dl_states[n];
627
627
  if (!Wn(r.state_name)) for (let n = 0; n < r.dl_actions.length; n++) {
@@ -631,7 +631,7 @@
631
631
  }
632
632
  for (let n = 0; n < e.dl_events.length; n++) {
633
633
  let r = e.dl_events[n];
634
- if (!Wn(r.event_name) && (Un(r.event_flag) || (dn(`SMachine: event flag is NOT number: gclass ${e.gclass_name}, event ${r.event_name}`), t += -1), !(r.event_flag & D.EVF_OUTPUT_EVENT))) {
634
+ if (!Wn(r.event_name) && (Pn(r.event_flag) || (dn(`SMachine: event flag is NOT number: gclass ${e.gclass_name}, event ${r.event_name}`), t += -1), !(r.event_flag & D.EVF_OUTPUT_EVENT))) {
635
635
  let n = !1;
636
636
  for (let t = 0; t < e.dl_states.length; t++) {
637
637
  let l = e.dl_states[t];
@@ -670,10 +670,10 @@
670
670
  function Ae(e, t) {
671
671
  return Be(e) ? _ ? _(e, t) : -1 : (dn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
672
672
  }
673
- function ke(e, t) {
673
+ function $e(e, t) {
674
674
  "__json_config_variables__" !== t && dn(`GClass Attribute NOT FOUND: ${et(e)}, attr ${t}`);
675
675
  }
676
- function $e(e, t, n) {
676
+ function ke(e, t, n) {
677
677
  let r = t;
678
678
  (function(e, t, n, r, l) {
679
679
  if (!e || !t) return dn("hsdata or kw NULL"), -1;
@@ -683,7 +683,7 @@
683
683
  t ? (-1 === n || t.flag & n) && (t.flag & T.SDF_DEPRECATED && bn(`${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
- })(ce(e), r, -1, e.gclass.gclass_flag & N.gcflag_ignore_unknown_attrs ? 0 : ke, e) < 0 && (dn(`${et(e)} json2data() FAILED`), hn(r));
686
+ })(ce(e), r, -1, e.gclass.gclass_flag & N.gcflag_ignore_unknown_attrs ? 0 : $e, e) < 0 && (dn(`${et(e)} json2data() FAILED`), hn(r));
687
687
  }
688
688
  function Ie(e, t, r, l, o) {
689
689
  if (o & w.gobj_flag_yuno) {
@@ -692,7 +692,7 @@
692
692
  } else {
693
693
  if (!l) return dn("gobj NEEDS a parent!"), null;
694
694
  if (!("string" == typeof l || l instanceof O)) return dn(`BAD TYPE of parent: ${l}`), null;
695
- if (Pn(l) && !(l = Ne(l))) return bn(`parent service not found: ${l}`), null;
695
+ if (Un(l) && !(l = Ne(l))) return bn(`parent service not found: ${l}`), null;
696
696
  }
697
697
  if (o & w.gobj_flag_service && Ne(e, !1)) return dn(`service ALREADY registered: ${t}^${e}`), null;
698
698
  if (o & w.gobj_flag_default_service) {
@@ -702,7 +702,7 @@
702
702
  if (Wn(t)) return dn("gclass_name must be a string"), null;
703
703
  let s = Se(t, !1);
704
704
  if (!s) return dn(`GClass not registered: ${t}^${e}`), null;
705
- if (!Pn(e)) return dn(`gobj_name must be a string: ${t}`), null;
705
+ if (!Un(e)) return dn(`gobj_name must be a string: ${t}`), null;
706
706
  if (!Wn(e)) {
707
707
  if (e.includes("`")) return dn(`gobj_name cannot contain char ': ${t}^${e}`), null;
708
708
  if (e.includes("^")) return dn(`gobj_name cannot contain char ^: ${t}^${e}`), null;
@@ -711,14 +711,14 @@
711
711
  _.jn_attrs = _e(_, s.attrs_table);
712
712
  for (const [e, t] of Object.entries(_.jn_attrs)) e in _.priv && (_.priv[e] = t);
713
713
  let a = Y(_);
714
- return a && L(n("💙💙⏩ creating: %s^%s", s.gclass_name, e)), _.gobj_flag & w.gobj_flag_service && we(_), _.gobj_flag & w.gobj_flag_yuno && (p = _), _.gobj_flag & w.gobj_flag_default_service && (m = _), _.gobj_flag & w.gobj_flag_yuno || Re(l, _), _.obflag |= R.obflag_created, _.gclass.instances++, $e(_, r), _.gobj_flag & w.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(_))), _;
714
+ return a && L(n("💙💙⏩ creating: %s^%s", s.gclass_name, e)), _.gobj_flag & w.gobj_flag_service && we(_), _.gobj_flag & w.gobj_flag_yuno && (p = _), _.gobj_flag & w.gobj_flag_default_service && (m = _), _.gobj_flag & w.gobj_flag_yuno || Re(l, _), _.obflag |= R.obflag_created, _.gclass.instances++, ke(_, r), _.gobj_flag & w.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(_))), _;
715
715
  }
716
716
  function Ce(e, t, n, r) {
717
717
  return Ie(e, t, n, r, w.gobj_flag_pure_child);
718
718
  }
719
719
  function Le(e) {
720
720
  if (ot(e)) return void dn("gobj NULL or DESTROYED");
721
- e.__refs__ > 0 && dn(`${et(e)}: gobj DESTROYING with references: ${e.__refs__}`), e.playing && (dn(`Destroying a PLAYING gobj: ${tt(e)}`), Ke(e)), e.running && (dn(`Destroying a RUNNING gobj: ${tt(e)}`), Ge(e)), e.obflag |= R.obflag_destroying, function(e) {
721
+ e.__refs__ > 0 && dn(`${et(e)}: gobj DESTROYING with references: ${e.__refs__}`), e.playing && (dn(`Destroying a PLAYING gobj: ${tt(e)}`), xe(e)), e.running && (dn(`Destroying a RUNNING gobj: ${tt(e)}`), Ge(e)), e.obflag |= R.obflag_destroying, function(e) {
722
722
  if (0 === Lt.length) return;
723
723
  for (let t of Lt) t.src === e && (t.src = null);
724
724
  Lt = Lt.filter((t) => t.dst !== e);
@@ -737,7 +737,7 @@
737
737
  }
738
738
  }(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--;
739
739
  }
740
- function Pe(e) {
740
+ function Ue(e) {
741
741
  if (ot(e)) return dn("gobj NULL or DESTROYED"), -1;
742
742
  if (e.running) return dn(`${et(e)}: GObj ALREADY RUNNING`), -1;
743
743
  if (e.disabled) return dn(`${et(e)}: GObj DISABLED`), -1;
@@ -745,21 +745,21 @@
745
745
  let t = 0;
746
746
  return e.gclass.gmt.mt_start && (t = e.gclass.gmt.mt_start(e)), t;
747
747
  }
748
- function Ue(e, t, n) {
749
- return e.gclass.gclass_flag & N.gcflag_manual_start || ot(e) || xe(e) || Ye(e) || Pe(e), 0;
748
+ function Pe(e, t, n) {
749
+ return e.gclass.gclass_flag & N.gcflag_manual_start || ot(e) || Ke(e) || Ye(e) || Ue(e), 0;
750
750
  }
751
751
  function Fe(e, t, n) {
752
- return e.gclass.gclass_flag & N.gcflag_manual_start || Ye(e) ? 1 : (xe(e) || Pe(e), 0);
752
+ return e.gclass.gclass_flag & N.gcflag_manual_start || Ye(e) ? 1 : (Ke(e) || Ue(e), 0);
753
753
  }
754
754
  function Ge(e) {
755
755
  if (ot(e)) return dn("gobj NULL or DESTROYED"), -1;
756
756
  if (!e.running) return dn(`${et(e)}: GObj NOT RUNNING`), -1;
757
- e.playing && (bn(`${et(e)}: GObj stopping without previous pause`), Ke(e)), J(e) && L(n("⏹ ⏹ stop: %s", tt(e))), e.running = !1;
757
+ e.playing && (bn(`${et(e)}: GObj stopping without previous pause`), xe(e)), J(e) && L(n("⏹ ⏹ stop: %s", tt(e))), e.running = !1;
758
758
  let t = 0;
759
759
  return e.gclass.gmt.mt_stop && (t = e.gclass.gmt.mt_stop(e)), t;
760
760
  }
761
761
  function Ve(e, t, n) {
762
- return xe(e) && Ge(e), 0;
762
+ return Ke(e) && Ge(e), 0;
763
763
  }
764
764
  function Me(e) {
765
765
  return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : at(e, A.WALK_FIRST2LAST, Ve, 0, 0);
@@ -768,18 +768,18 @@
768
768
  if (ot(e)) return dn(`gobj NULL or DESTROYED: ${et(e)}`), -1;
769
769
  if (e.playing) return dn(`${et(e)}: GObj ALREADY PLAYING`), -1;
770
770
  if (e.disabled) return dn(`${et(e)}: GObj DISABLED`), -1;
771
- if (!xe(e)) {
771
+ if (!Ke(e)) {
772
772
  if (e.gclass.gclass_flag & N.gcflag_required_start_to_play) return dn(`${et(e)}: Cannot play, start not done`), -1;
773
- bn(`${et(e)}: GObj playing without previous start`), Pe(e);
773
+ bn(`${et(e)}: GObj playing without previous start`), Ue(e);
774
774
  }
775
775
  J(e) && L(n("⏯ ⏯ play: %s", tt(e))), e.playing = !0;
776
776
  let t = 0;
777
777
  return e.gclass.gmt.mt_play && (t = e.gclass.gmt.mt_play(e), (t < 0 || !1 === t) && (e.playing = !1)), t;
778
778
  }
779
- function Ke(e) {
779
+ function xe(e) {
780
780
  return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : e.playing ? (J(e) && L(n("⏸ ⏸ pause: %s", tt(e))), e.playing = !1, e.gclass.gmt.mt_pause ? e.gclass.gmt.mt_pause(e) : 0) : (dn(`${et(e)}: GObj NOT PLAYING`), -1);
781
781
  }
782
- function xe(e) {
782
+ function Ke(e) {
783
783
  return !ot(e) && e.running;
784
784
  }
785
785
  function Ye(e) {
@@ -898,7 +898,7 @@
898
898
  let t = l.length;
899
899
  if (l !== Xe(e).substring(0, t)) return !1;
900
900
  }
901
- if (o && o !== kt(e)) return !1;
901
+ if (o && o !== $t(e)) return !1;
902
902
  let s = e.jn_attrs;
903
903
  for (const n of Object.keys(t)) if ("__gclass_name__" !== n && "__gobj_name__" !== n && "__prefix_gobj_name__" !== n && "__disabled__" !== n && "__state__" !== n && ht(e, n) && s[n] !== t[n]) return !1;
904
904
  return !0;
@@ -956,7 +956,7 @@
956
956
  function yt(e, t) {
957
957
  if (t) {
958
958
  if (0 === Yn(t, "__disabled__")) return Ye(e);
959
- if (0 === Yn(t, "__running__")) return xe(e);
959
+ if (0 === Yn(t, "__running__")) return Ke(e);
960
960
  if (0 === Yn(t, "__playing__")) return Je(e);
961
961
  if (0 === Yn(t, "__service__")) return Be(e);
962
962
  }
@@ -969,7 +969,7 @@
969
969
  return n ? !e.gclass.gmt.mt_reading || e.obflag & R.obflag_destroyed ? Sn(n, t) : e.gclass.gmt.mt_reading(e, t) : (dn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
970
970
  }
971
971
  function jt(e, t) {
972
- if (t && 0 === Yn(t, "__state__")) return kt(e);
972
+ if (t && 0 === Yn(t, "__state__")) return $t(e);
973
973
  let n = fe(e, t, !1);
974
974
  return n ? !e.gclass.gmt.mt_reading || e.obflag & R.obflag_destroyed ? Sn(n, t) : e.gclass.gmt.mt_reading(e, t) : (dn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
975
975
  }
@@ -978,7 +978,7 @@
978
978
  return n ? !e.gclass.gmt.mt_reading || e.obflag & R.obflag_destroyed ? Sn(n, t) : e.gclass.gmt.mt_reading(e, t) : (dn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), 0);
979
979
  }
980
980
  function Ot(e, t, r, l) {
981
- if (!Pn(t)) return dn(n("gobj_write_attr(%s): path must be a string", et(e))), -1;
981
+ if (!Un(t)) return dn(n("gobj_write_attr(%s): path must be a string", et(e))), -1;
982
982
  let o, s = e.jn_attrs, i = t.split("`");
983
983
  if (i.length <= 1) {
984
984
  let l = t;
@@ -1008,7 +1008,7 @@
1008
1008
  }
1009
1009
  function wt(e, t, n) {
1010
1010
  let r = fe(e, t, !1);
1011
- return r ? (r[t] = Kn(n), Cn(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (dn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1011
+ return r ? (r[t] = xn(n), Cn(e.priv) && e.priv.hasOwnProperty(t) && (e.priv[t] = n), e.obflag & R.obflag_created && !(e.obflag & R.obflag_destroyed) && e.gclass.gmt.mt_writing && e.gclass.gmt.mt_writing(e, t), 0) : (dn(`${et(e)}: GClass Attribute NOT FOUND, attr ${t}`), -1);
1012
1012
  }
1013
1013
  function Rt(e, t, n) {
1014
1014
  let r = fe(e, t, !1);
@@ -1025,14 +1025,14 @@
1025
1025
  if (!r) return dn(`${et(e)}: state unknown, state ${t}`), !1;
1026
1026
  e.last_state = e.current_state, e.current_state = r;
1027
1027
  let l = q(e, "EV_STATE_CHANGED"), o = !!function(e) {
1028
- return K(e) & P.TRACE_STATES;
1028
+ return x(e) & U.TRACE_STATES;
1029
1029
  }(e);
1030
- return (l || o) && (1 === C || L(n("🔀🔀 mach(%s%s^%s), new st(%s), prev st(%s)", e.running ? "" : "!!", Ze(e), Xe(e), kt(e), e.last_state.state_name))), !0;
1030
+ return (l || o) && (1 === C || L(n("🔀🔀 mach(%s%s^%s), new st(%s), prev st(%s)", e.running ? "" : "!!", Ze(e), Xe(e), $t(e), e.last_state.state_name))), !0;
1031
1031
  }
1032
- function kt(e) {
1032
+ function $t(e) {
1033
1033
  return Mn(e) ? e.current_state.state_name : (dn("hgobj NULL"), "");
1034
1034
  }
1035
- function $t(e, t, n) {
1035
+ function kt(e, t, n) {
1036
1036
  if (!Mn(e)) return dn("gobj NULL of bad type"), null;
1037
1037
  let r = ve(e.gclass, t);
1038
1038
  if (r) return r;
@@ -1046,21 +1046,21 @@
1046
1046
  return null;
1047
1047
  }
1048
1048
  function It(e, t, n) {
1049
- let r = $t(e, t, !1);
1049
+ let r = kt(e, t, !1);
1050
1050
  return !!r && !(n && !(r.event_flag & n));
1051
1051
  }
1052
1052
  function Ct(e, t, n) {
1053
- let r = $t(e, t, !1);
1053
+ let r = kt(e, t, !1);
1054
1054
  return !!r && !(n && !(r.event_flag & n)) && !!(r.event_flag & D.EVF_OUTPUT_EVENT);
1055
1055
  }
1056
- var Lt = [], Pt = !1;
1057
- function Ut() {
1058
- Pt = !1;
1056
+ var Lt = [], Ut = !1;
1057
+ function Pt() {
1058
+ Ut = !1;
1059
1059
  let e = Lt;
1060
1060
  Lt = [];
1061
1061
  let t = 0;
1062
1062
  for (let n of e) n.dst.obflag & (R.obflag_destroyed | R.obflag_destroying) || (Ft(n.dst, n.event, n.kw, n.src), t++);
1063
- return Lt.length > 0 && !Pt && (Pt = !0, setTimeout(Ut, 0)), t;
1063
+ return Lt.length > 0 && !Ut && (Ut = !0, setTimeout(Pt, 0)), t;
1064
1064
  }
1065
1065
  function Ft(e, t, r, l) {
1066
1066
  if (!(e && e instanceof O)) return dn("gobj dst NULL"), -1;
@@ -1070,21 +1070,21 @@
1070
1070
  let s = q(e, t) && !z(l, t);
1071
1071
  h++;
1072
1072
  let i = me(o, t);
1073
- if (!i) return e.gclass.gmt.mt_inject_event ? (h--, s && (L(1 === C ? n("🔜 %s %s%s %s", t || "", e.running ? "" : "!!", et(e), o.state_name) : n("🔃 mach(%s%s), st: %s, ev: %s, from(%s%s)", e.running ? "" : "!!", et(e), o.state_name, t || "", l && !l.running ? "!!" : "", et(l))), r && H(e) && kn(r) && hn(r)), e.gclass.gmt.mt_inject_event(e, t, r, l)) : (s && L(n("📛 mach(%s%s^%s), st: %s, ev: %s, 📛📛ERROR Event NOT DEFINED in state📛📛, from(%s%s^%s)", e.running ? "" : "!!", Ze(e), Xe(e), o.state_name, t || "", l && !l.running ? "!!" : "", Ze(l), Xe(l))), dn(`📛📛 Event NOT DEFINED in state 📛📛: ${et(e)}, ${o.state_name}, ${t}`), h--, -1);
1073
+ if (!i) return e.gclass.gmt.mt_inject_event ? (h--, s && (L(1 === C ? n("🔜 %s %s%s %s", t || "", e.running ? "" : "!!", et(e), o.state_name) : n("🔃 mach(%s%s), st: %s, ev: %s, from(%s%s)", e.running ? "" : "!!", et(e), o.state_name, t || "", l && !l.running ? "!!" : "", et(l))), r && H(e) && $n(r) && hn(r)), e.gclass.gmt.mt_inject_event(e, t, r, l)) : (s && L(n("📛 mach(%s%s^%s), st: %s, ev: %s, 📛📛ERROR Event NOT DEFINED in state📛📛, from(%s%s^%s)", e.running ? "" : "!!", Ze(e), Xe(e), o.state_name, t || "", l && !l.running ? "!!" : "", Ze(l), Xe(l))), dn(`📛📛 Event NOT DEFINED in state 📛📛: ${et(e)}, ${o.state_name}, ${t}`), h--, -1);
1074
1074
  if (s) {
1075
1075
  if (1 === C) L(n("🔄 %s %s%s %s from %s%s", t || "", e.running ? "" : "!!", et(e), o.state_name, l && !l.running ? "!!" : "", et(l)));
1076
1076
  else {
1077
1077
  let r = "";
1078
1078
  i.action && (r = Ar(i.action)), L(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Ze(e), Xe(e), o.state_name, "", t || "", "", r, l && !l.running ? "!!" : "", Ze(l), Xe(l)));
1079
1079
  }
1080
- r && H(e) && kn(r) && hn(r);
1080
+ r && H(e) && $n(r) && hn(r);
1081
1081
  }
1082
1082
  i.next_state && At(e, i.next_state);
1083
1083
  let _ = -1;
1084
1084
  try {
1085
1085
  i.action && (_ = i.action(e, t, r, l));
1086
1086
  } finally {}
1087
- 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 || "", Un(_) ? _ : 0)), h--, _;
1087
+ 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 || "", Pn(_) ? _ : 0)), h--, _;
1088
1088
  }
1089
1089
  var Gt = Object.freeze({
1090
1090
  __hard_subscription__: 1,
@@ -1130,16 +1130,16 @@
1130
1130
  }
1131
1131
  return o;
1132
1132
  }
1133
- function Kt(e, t, n, r, l) {
1133
+ function xt(e, t, n, r, l) {
1134
1134
  for (let o = 0; o < e.length; o++) if (Mt(e[o], t, n, r, l)) return o;
1135
1135
  return -1;
1136
1136
  }
1137
- function xt(e, t, r, l) {
1137
+ function Kt(e, t, r, l) {
1138
1138
  let o = er(e, t, "publisher", null, zt.KW_REQUIRED), s = er(e, t, "subscriber", null, zt.KW_REQUIRED), i = Zn(e, t, "event", "", zt.KW_REQUIRED);
1139
1139
  if (!!(Xn(e, t, "subs_flag", null, zt.KW_REQUIRED) & Gt.__hard_subscription__) && !r) return -1;
1140
1140
  (B(s) || B(o)) && (L(n("💜💜👎 unsubscribing event '%s': publisher %s, subscriber'%s'", i || "", et(o), et(s))), hn(t)), o.obflag & R.obflag_destroyed || l || o.gclass.gmt.mt_subscription_deleted && o.gclass.gmt.mt_subscription_deleted(o, t);
1141
- let _ = Kt(o.dl_subscriptions, o, i, t, s);
1142
- return _ >= 0 ? An(o.dl_subscriptions, _) : (dn(`${et(e)}: subscription in publisher not found`), hn(t)), _ = Kt(s.dl_subscribings, o, i, t, s), _ >= 0 ? An(s.dl_subscribings, _) : (dn(`${et(e)}: subscription in subscriber not found`), hn(t)), 0;
1141
+ let _ = xt(o.dl_subscriptions, o, i, t, s);
1142
+ return _ >= 0 ? An(o.dl_subscriptions, _) : (dn(`${et(e)}: subscription in publisher not found`), hn(t)), _ = xt(s.dl_subscribings, o, i, t, s), _ >= 0 ? An(s.dl_subscribings, _) : (dn(`${et(e)}: subscription in subscriber not found`), hn(t)), 0;
1143
1143
  }
1144
1144
  function Yt(e, t, r, l) {
1145
1145
  if (null == r && (r = {}), !e) return dn(`publisher NULL: ev ${t}`), 0;
@@ -1156,7 +1156,7 @@
1156
1156
  }), Wn(t)) t = "";
1157
1157
  else if (!(Ct(e, t, D.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & N.gcflag_no_check_output_events)) return dn(`event NOT in output event list: ${et(e)}, ${t}`), 0;
1158
1158
  let s = Wt(e.dl_subscriptions, e, t, r, l);
1159
- $n(s) > 0 && (dn(`${et(e)}: ${$n(s)} subscription(s) REPEATED, will be deleted and override`), hn(s, "subscription REPEATED"), Bt(e, s, !1));
1159
+ kn(s) > 0 && (dn(`${et(e)}: ${kn(s)} subscription(s) REPEATED, will be deleted and override`), hn(s, "subscription REPEATED"), Bt(e, s, !1));
1160
1160
  let i = function(e, t, n, r) {
1161
1161
  let l = _e(e, Vt);
1162
1162
  wn(l, "event", t), wn(l, "subscriber", r), wn(l, "publisher", e);
@@ -1181,13 +1181,13 @@
1181
1181
  if (!i) return dn(`${et(e)}: _create_subscription() FAILED`), 0;
1182
1182
  if (Rn(e.dl_subscriptions, i), Rn(l.dl_subscribings, i), (B(l) || B(e)) && (L(n("💜💜👍 subscribing event '%s', publisher '%s', subscriber %s", t || "", et(e), et(l))), r && (H(l) || H(e)) && hn(r)), e.gclass.gmt.mt_subscription_added) {
1183
1183
  let t = e.gclass.gmt.mt_subscription_added(e, i);
1184
- (t < 0 || !1 === t) && (xt(e, i, !0, !0), i = 0);
1184
+ (t < 0 || !1 === t) && (Kt(e, i, !0, !0), i = 0);
1185
1185
  }
1186
1186
  return i;
1187
1187
  }
1188
1188
  function Bt(e, t, n) {
1189
1189
  let r = [...t];
1190
- for (let t = 0; t < r.length; t++) xt(e, r[t], n, !1);
1190
+ for (let t = 0; t < r.length; t++) Kt(e, r[t], n, !1);
1191
1191
  return 0;
1192
1192
  }
1193
1193
  function Jt(e, t, n, r) {
@@ -1199,10 +1199,10 @@
1199
1199
  function qt(e, t, r) {
1200
1200
  if (Cn(r) || (r = {}), !e || e.obflag & (R.obflag_destroyed | R.obflag_destroying)) return dn("gobj NULL or DESTROYED"), -1;
1201
1201
  if (Wn(t)) return dn(`${et(e)}: event EMPTY`), -1;
1202
- let l = $t(e, t, !0);
1202
+ let l = kt(e, t, !0);
1203
1203
  if (!(l && l.event_flag & (D.EVF_SYSTEM_EVENT | D.EVF_OUTPUT_EVENT) || e.gclass.gclass_flag & N.gcflag_no_check_output_events)) return dn(`event NOT in output event list: ${et(e)}, ev ${t}`), -1;
1204
1204
  let o = (B(e) || q(e, t)) && !z(e, t);
1205
- 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 || "", "")), H(e) && kn(r) && hn(r)), e.gclass.gmt.mt_publish_event) {
1205
+ 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 || "", "")), H(e) && $n(r) && hn(r)), e.gclass.gmt.mt_publish_event) {
1206
1206
  let n = e.gclass.gmt.mt_publish_event(e, t, r);
1207
1207
  if (n <= 0) return n;
1208
1208
  }
@@ -1222,9 +1222,9 @@
1222
1222
  let l = tr(e, a, "__global__", null, 0), s = tr(e, a, "__local__", null, 0), f = nr(e, a, "__filter__", null, 0), g = r, d = 1;
1223
1223
  if (e.gclass.gmt.mt_publication_filter ? d = e.gclass.gmt.mt_publication_filter(e, t, g, u) : In(f) > 0 && (d = sr(g, f) ? 1 : 0, o && (L(n("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", d ? "👍" : "👎", t || "", et(u), et(e))), hn(f))), d < 0) break;
1224
1224
  if (!d) continue;
1225
- let b = $t(u, t, !0);
1225
+ let b = kt(u, t, !0);
1226
1226
  if (b && b.event_flag & D.EVF_SYSTEM_EVENT && !It(u, b.event_name, 0)) continue;
1227
- s && Jn(g, s), l && yn(g, l), o && (L(1 === C ? n("🔝🔄 %s (%s) %s%s", t || "", t || "", u.running ? "" : "!!", et(u)) : n("🔝🔄 mach(%s%s), st: %s, ev: %s, from(%s%s)", u.running ? "" : "!!", et(u), kt(u), t || "", e && !e.running ? "!!" : "", et(e))), H(e) && kn(g) && hn(g));
1227
+ s && Jn(g, s), l && yn(g, l), o && (L(1 === C ? n("🔝🔄 %s (%s) %s%s", t || "", t || "", u.running ? "" : "!!", et(u)) : n("🔝🔄 mach(%s%s), st: %s, ev: %s, from(%s%s)", u.running ? "" : "!!", et(u), $t(u), t || "", e && !e.running ? "!!" : "", et(e))), H(e) && $n(g) && hn(g));
1228
1228
  let p = Ft(u, t, g, e);
1229
1229
  if (p < 0 && c & Gt.__own_event__) {
1230
1230
  i = -1;
@@ -1397,14 +1397,14 @@
1397
1397
  function An(e, t) {
1398
1398
  e.splice(t, 1);
1399
1399
  }
1400
- function kn(e) {
1400
+ function $n(e) {
1401
1401
  return Cn(e) ? Object.keys(e).length : 0;
1402
1402
  }
1403
- function $n(e) {
1403
+ function kn(e) {
1404
1404
  return Ln(e) ? e.length : 0;
1405
1405
  }
1406
1406
  function In(e) {
1407
- return Cn(e) ? Object.keys(e).length : Ln(e) ? e.length : Pn(e) && e.length > 0 ? 1 : 0;
1407
+ return Cn(e) ? Object.keys(e).length : Ln(e) ? e.length : Un(e) && e.length > 0 ? 1 : 0;
1408
1408
  }
1409
1409
  function Cn(e) {
1410
1410
  return null !== e && "object" == typeof e && !Array.isArray(e);
@@ -1412,10 +1412,10 @@
1412
1412
  function Ln(e) {
1413
1413
  return Array.isArray(e);
1414
1414
  }
1415
- function Pn(e) {
1415
+ function Un(e) {
1416
1416
  return "string" == typeof e;
1417
1417
  }
1418
- function Un(e) {
1418
+ function Pn(e) {
1419
1419
  return "number" == typeof e && Number.isFinite(e);
1420
1420
  }
1421
1421
  function Fn(e) {
@@ -1431,12 +1431,12 @@
1431
1431
  return e instanceof O;
1432
1432
  }
1433
1433
  function Wn(e) {
1434
- return !Pn(e) || 0 === e.length;
1434
+ return !Un(e) || 0 === e.length;
1435
1435
  }
1436
- function Kn(e) {
1437
- return Un(e) ? Boolean(e) : /^\s*(true|1|on)\s*$/i.test(e);
1436
+ function xn(e) {
1437
+ return Pn(e) ? Boolean(e) : /^\s*(true|1|on)\s*$/i.test(e);
1438
1438
  }
1439
- function xn(e, t) {
1439
+ function Kn(e, t) {
1440
1440
  return e === t ? 0 : e > t ? 1 : -1;
1441
1441
  }
1442
1442
  function Yn(e, t) {
@@ -1445,7 +1445,7 @@
1445
1445
  }
1446
1446
  function Bn(e, t) {
1447
1447
  if (Cn(e) || Cn(t) || Ln(e) || Ln(t)) return 0;
1448
- if (Un(e) || Un(t)) {
1448
+ if (Pn(e) || Pn(t)) {
1449
1449
  let n = Number(e), r = Number(t);
1450
1450
  return n > r ? 1 : n < r ? -1 : 0;
1451
1451
  }
@@ -1453,7 +1453,7 @@
1453
1453
  let n = Number(e), r = Number(t);
1454
1454
  return n > r ? 1 : n < r ? -1 : 0;
1455
1455
  }
1456
- return xn(String(e), String(t));
1456
+ return Kn(String(e), String(t));
1457
1457
  }
1458
1458
  function Jn(e, t) {
1459
1459
  if ("object" != typeof t || Array.isArray(t)) if (Array.isArray(t)) for (const n of t) Jn(e, n);
@@ -1465,7 +1465,7 @@
1465
1465
  }
1466
1466
  function qn(e, t, n, r) {
1467
1467
  if (e && !Mn(e) && dn("GObj bad instanceof"), !Cn(t) && !Ln(t)) return dn(`${et(e)}: kw must be list or dict`), 0;
1468
- if (!Pn(n)) return dn(`${et(e)}: path must be a string: ${String(n)}`), 0;
1468
+ if (!Un(n)) return dn(`${et(e)}: path must be a string: ${String(n)}`), 0;
1469
1469
  let l = n.split("`");
1470
1470
  if (l.length <= 1) return t[n];
1471
1471
  let o = l.length;
@@ -1493,10 +1493,10 @@
1493
1493
  }
1494
1494
  let u;
1495
1495
  if (Fn(o)) u = o;
1496
- else if (a && Un(o)) u = 0 !== o;
1497
- else if (a && Pn(o)) u = "true" === o.toLowerCase() || "false" !== o.toLowerCase() && 0 !== (parseInt(o) || 0);
1496
+ else if (a && Pn(o)) u = 0 !== o;
1497
+ else if (a && Un(o)) u = "true" === o.toLowerCase() || "false" !== o.toLowerCase() && 0 !== (parseInt(o) || 0);
1498
1498
  else {
1499
- if (!a || null !== o) return s && (dn(`${et(e)}: path value MUST BE a boolean: ${n}`), mn(t)), Boolean(r);
1499
+ if (!a || null !== o) return a ? (dn(`${e ? et(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), hn(t), !1) : (dn(`${e ? et(e) + ": " : ""}path MUST BE a json boolean: '${n}'`), hn(t), Boolean(r));
1500
1500
  u = !1;
1501
1501
  }
1502
1502
  return _ && zn(e, t, n), u;
@@ -1504,7 +1504,7 @@
1504
1504
  function Xn(e, t, n, r, l) {
1505
1505
  e && !Mn(e) && dn("GObj bad instanceof");
1506
1506
  let o = qn(e, t, n, !1);
1507
- const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
1507
+ 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;
1508
1508
  if (void 0 === o) {
1509
1509
  if (i) {
1510
1510
  let l = parseInt(r);
@@ -1512,13 +1512,29 @@
1512
1512
  }
1513
1513
  return s && (dn(`path not found: '${n}'`), hn(t)), parseInt(r);
1514
1514
  }
1515
- return _ && zn(e, t, n), Un(o) ? parseInt(o) : (s && (dn(`path value MUST BE a number: ${n}`), mn(t)), parseInt(r));
1515
+ let u;
1516
+ if (Pn(o)) u = Math.trunc(o);
1517
+ else {
1518
+ if (!a) return dn(`${e ? et(e) + ": " : ""}path MUST BE a json integer: '${n}'`), hn(t), parseInt(r);
1519
+ if (Fn(o)) u = o ? 1 : 0;
1520
+ else if (Un(o)) u = function(e) {
1521
+ const t = /^\s*([+-]?)(0[xX][0-9a-fA-F]+|0[0-7]*|[1-9][0-9]*)/.exec(e);
1522
+ if (!t) return 0;
1523
+ let n, r = t[2];
1524
+ return n = r.length > 1 && ("x" === r[1] || "X" === r[1]) ? parseInt(r.substring(2), 16) : "0" === r[0] ? parseInt(r, 8) : parseInt(r, 10), "-" === t[1] ? -n : n;
1525
+ }(o);
1526
+ else {
1527
+ if (null !== o) return dn(`${e ? et(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), hn(t), 0;
1528
+ u = 0;
1529
+ }
1530
+ }
1531
+ return _ && zn(e, t, n), u;
1516
1532
  }
1517
1533
  function Zn(e, t, n, r, l) {
1518
1534
  e && !Mn(e) && dn("GObj bad instanceof");
1519
1535
  let o = qn(e, t, n, !1);
1520
1536
  const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
1521
- return void 0 === o ? i ? (rr(e, t, n, Pn(r) ? r : null), r) : (s && (dn(`path not found: '${n}'`), hn(t)), r) : (_ && zn(e, t, n), Pn(o) ? o : (s && (dn(`${et(e)}: path value MUST BE a string: ${n}`), mn(t)), r));
1537
+ return void 0 === o ? i ? (rr(e, t, n, Un(r) ? r : null), r) : (s && (dn(`path not found: '${n}'`), hn(t)), r) : Un(o) ? (_ && zn(e, t, n), o) : (s && (dn(`${et(e)}: path value MUST BE a string: ${n}`), mn(t)), r);
1522
1538
  }
1523
1539
  function er(e, t, n, r, l) {
1524
1540
  e && !Mn(e) && dn("GObj bad instanceof");
@@ -1604,12 +1620,12 @@
1604
1620
  function ir(e, t, n, r) {
1605
1621
  e && !Mn(e) && dn("GObj bad instanceof");
1606
1622
  let l = {};
1607
- if (Pn(n) && !Wn(n)) {
1623
+ if (Un(n) && !Wn(n)) {
1608
1624
  let o = n;
1609
1625
  t.hasOwnProperty(o) ? l[o] = t[o] : r && dn(`${et(e)}: key not found: ${o}`);
1610
- } else if (Cn(n) && kn(n) > 0) for (let o of Object.keys(n)) t.hasOwnProperty(o) ? l[o] = t[o] : r && dn(`${et(e)}: key not found: ${o}`);
1626
+ } else if (Cn(n) && $n(n) > 0) for (let o of Object.keys(n)) t.hasOwnProperty(o) ? l[o] = t[o] : r && dn(`${et(e)}: key not found: ${o}`);
1611
1627
  else {
1612
- if (!(Ln(n) && $n(n) > 0)) return t;
1628
+ if (!(Ln(n) && kn(n) > 0)) return t;
1613
1629
  for (let o = 0; o < n.length; o++) {
1614
1630
  let s = n[o];
1615
1631
  t.hasOwnProperty(s) ? l[s] = t[s] : r && dn(`${et(e)}: key not found: ${s}`);
@@ -1619,12 +1635,12 @@
1619
1635
  }
1620
1636
  function _r(e, t, n, r) {
1621
1637
  let l = {};
1622
- if (yn(l, t), Pn(n) && !Wn(n)) {
1638
+ if (yn(l, t), Un(n) && !Wn(n)) {
1623
1639
  let o = n;
1624
1640
  nr(e, t, o, 0, 0) ? On(l, o) : r && dn(`${et(e)}: key not found: ${o}`);
1625
- } else if (Cn(n) && kn(n) > 0) for (let o of Object.keys(n)) t.hasOwnProperty(o) ? On(l, o) : r && dn(`${et(e)}: key not found: ${o}`);
1641
+ } else if (Cn(n) && $n(n) > 0) for (let o of Object.keys(n)) t.hasOwnProperty(o) ? On(l, o) : r && dn(`${et(e)}: key not found: ${o}`);
1626
1642
  else {
1627
- if (!(Ln(n) && $n(n) > 0)) return {};
1643
+ if (!(Ln(n) && kn(n) > 0)) return {};
1628
1644
  for (let o = 0; o < n.length; o++) {
1629
1645
  let s = n[o];
1630
1646
  t.hasOwnProperty(s) ? On(l, s) : r && dn(`${et(e)}: key not found: ${s}`);
@@ -1665,7 +1681,7 @@
1665
1681
  } else if (Cn(e)) {
1666
1682
  if (0 === Object.keys(e).length) return !0;
1667
1683
  for (let n in e) if (n === t) return !0;
1668
- } else if (Pn(e) && e === t) return !0;
1684
+ } else if (Un(e) && e === t) return !0;
1669
1685
  return !1;
1670
1686
  }
1671
1687
  function gr(e, t, n, r, l) {
@@ -1676,7 +1692,7 @@
1676
1692
  let i, _ = t[s];
1677
1693
  if (Cn(_)) i = Zn(e, _, "id", "", 0);
1678
1694
  else {
1679
- if (!Pn(_)) continue;
1695
+ if (!Un(_)) continue;
1680
1696
  i = _;
1681
1697
  }
1682
1698
  fr(n, i) && l(_, r) && o.push(_);
@@ -1743,7 +1759,7 @@
1743
1759
  return Zn(e, t, "__md_iev__`__msg_type__", "", 0);
1744
1760
  }
1745
1761
  function vr(e, t, n) {
1746
- void 0 !== n && Pn(n) || (n = "");
1762
+ void 0 !== n && Un(n) || (n = "");
1747
1763
  for (let r of Object.keys(e)) {
1748
1764
  if (!e.hasOwnProperty(r)) continue;
1749
1765
  let l = (n.length ? "`" : "") + r;
@@ -1826,7 +1842,7 @@
1826
1842
  let t = null;
1827
1843
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
1828
1844
  }
1829
- var kr = 256, $r = 1e5;
1845
+ var $r = 256, kr = 1e5;
1830
1846
  function Ir(e) {
1831
1847
  const t = String(e).replace(/`/g, "``");
1832
1848
  return "[" === t[0] ? "[" + t : t;
@@ -1855,14 +1871,14 @@
1855
1871
  function Lr(e, t) {
1856
1872
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
1857
1873
  }
1858
- function Pr(e) {
1874
+ function Ur(e) {
1859
1875
  return "persistent-attrs-" + et(e);
1860
1876
  }
1861
- function Ur(e, t) {
1862
- if (Pn(t)) {
1877
+ function Pr(e, t) {
1878
+ if (Un(t)) {
1863
1879
  if (-1 === t.indexOf("^")) {
1864
1880
  let n, r, l = e.fkey;
1865
- if (1 !== kn(l)) return dn("bad fkey 1"), dn(e), dn(t), null;
1881
+ if (1 !== $n(l)) return dn("bad fkey 1"), dn(e), dn(t), null;
1866
1882
  for (const e of Object.keys(l)) {
1867
1883
  n = e, r = l[e];
1868
1884
  break;
@@ -1990,16 +2006,16 @@
1990
2006
  j(E.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
1991
2007
  j(E.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
1992
2008
  v()
1993
- ], Kr = {
2009
+ ], xr = {
1994
2010
  periodic: !1,
1995
2011
  msec: 0,
1996
2012
  timer_id: -1
1997
- }, xr = null;
2013
+ }, Kr = null;
1998
2014
  function Yr(e, t, n, r) {
1999
2015
  let l = e.priv, o = l.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
2000
2016
  return l.periodic && l.msec > 0 ? l.timer_id = setTimeout(function() {
2001
2017
  Ft(e, "EV_TIMEOUT", {}, e);
2002
- }, l.msec) : l.timer_id = -1, lt(e) ? Ft(nt(e), o, {}, e) : qt(e, o, {}), l.periodic || -1 !== l.timer_id || xe(e) && Ge(e), 0;
2018
+ }, l.msec) : l.timer_id = -1, lt(e) ? Ft(nt(e), o, {}, e) : qt(e, o, {}), l.periodic || -1 !== l.timer_id || Ke(e) && Ge(e), 0;
2003
2019
  }
2004
2020
  var Br = {
2005
2021
  mt_create: function(e) {
@@ -2015,7 +2031,7 @@
2015
2031
  break;
2016
2032
  case "msec": n.msec = vt(e, "msec"), -1 !== n.timer_id && (clearTimeout(n.timer_id), n.timer_id = -1), n.msec > 0 && (n.timer_id = setTimeout(function() {
2017
2033
  Ft(e, "EV_TIMEOUT", {}, e);
2018
- }, n.msec)), n.msec > 0 ? xe(e) || Pe(e) : xe(e) && Ge(e);
2034
+ }, n.msec)), n.msec > 0 ? Ke(e) || Ue(e) : Ke(e) && Ge(e);
2019
2035
  }
2020
2036
  },
2021
2037
  mt_start: function(e) {
@@ -2116,10 +2132,10 @@
2116
2132
  mt_destroy: function(e) {},
2117
2133
  mt_play: function(e) {
2118
2134
  let t = Oe();
2119
- return xe(t) || Pe(t), Je(t) || We(t), 0;
2135
+ return Ke(t) || Ue(t), Je(t) || We(t), 0;
2120
2136
  },
2121
2137
  mt_pause: function(e) {
2122
- return Ke(Oe()), 0;
2138
+ return xe(Oe()), 0;
2123
2139
  },
2124
2140
  mt_command_parser: function(e, t, n, r) {
2125
2141
  switch (n = n || {}, t) {
@@ -2167,7 +2183,7 @@
2167
2183
  ["identity-card", "Trace identity_card messages"]
2168
2184
  ];
2169
2185
  function il(e) {
2170
- return !!(3 & K(e));
2186
+ return !!(3 & x(e));
2171
2187
  }
2172
2188
  var _l = {
2173
2189
  url: null,
@@ -2290,7 +2306,7 @@
2290
2306
  }
2291
2307
  function hl(e, t, n, r) {
2292
2308
  let l = e.priv;
2293
- return xe(e) && (l.websocket = ul(e)), 0;
2309
+ return Ke(e) && (l.websocket = ul(e)), 0;
2294
2310
  }
2295
2311
  function El(e, t, n, r) {
2296
2312
  return pn("Websocket opened: " + e.priv.url), pl(e), 0;
@@ -2310,7 +2326,7 @@
2310
2326
  code: o.code,
2311
2327
  reason: o.reason,
2312
2328
  was_clean: o.wasClean
2313
- })), xe(e) && Jr(l.gobj_timer, function(e) {
2329
+ })), Ke(e) && Jr(l.gobj_timer, function(e) {
2314
2330
  let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
2315
2331
  r < n && (r = n);
2316
2332
  t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
@@ -2381,7 +2397,7 @@
2381
2397
  r ? r(e, o, 2, t) : fl(0, e, o);
2382
2398
  }
2383
2399
  let s = o.event, i = o.kw;
2384
- if ("ST_SESSION" !== kt(e)) {
2400
+ if ("ST_SESSION" !== $t(e)) {
2385
2401
  if (It(e, s, D.EVF_PUBLIC_EVENT)) {
2386
2402
  if (!(Ft(e, s, i, e) < 0)) return 0;
2387
2403
  } else dn(`${et(e)}: event UNKNOWN in not-session state ${s}`);
@@ -2438,7 +2454,7 @@
2438
2454
  },
2439
2455
  mt_destroy: function(e) {},
2440
2456
  mt_stats: function(e, t, n, r) {
2441
- if ("ST_SESSION" !== kt(e)) return dn("Not in session"), null;
2457
+ if ("ST_SESSION" !== $t(e)) return dn("Not in session"), null;
2442
2458
  n || (n = {});
2443
2459
  let l = bl(e, Xe(r), Zn(e, n, "service", null, 0)), o = nr(e, n, "__md_stats__", null, zt.KW_EXTRACT);
2444
2460
  return o || (o = {}), hr(e, n, "stats_stack", {
@@ -2447,7 +2463,7 @@
2447
2463
  }), hr(e, n, ll, l), n.__stats__ = t, Tr(e, n, "__stats__"), dl(e, "EV_MT_STATS", n, r), null;
2448
2464
  },
2449
2465
  mt_command_parser: function(e, t, n, r) {
2450
- if ("ST_SESSION" !== kt(e)) return dn("Not in session"), null;
2466
+ if ("ST_SESSION" !== $t(e)) return dn("Not in session"), null;
2451
2467
  n || (n = {});
2452
2468
  let l = bl(e, Xe(r), Zn(e, n, "service", "", 0)), o = nr(e, n, "__md_command__", null, zt.KW_EXTRACT);
2453
2469
  return o || (o = {}), hr(e, n, "command_stack", {
@@ -2456,7 +2472,7 @@
2456
2472
  }), hr(e, n, ll, l), n.__command__ = t, Tr(e, n, "__command__"), dl(e, "EV_MT_COMMAND", n, r), null;
2457
2473
  },
2458
2474
  mt_inject_event: function(e, t, n, r) {
2459
- if ("ST_SESSION" !== kt(e)) return window.console.error("Not in session"), -1;
2475
+ if ("ST_SESSION" !== $t(e)) return window.console.error("Not in session"), -1;
2460
2476
  if (n || (n = {}), Er(e, n, ll));
2461
2477
  else {
2462
2478
  let l = bl(e, Xe(r), Zn(e, n, "__service__", 0, 0));
@@ -2466,11 +2482,11 @@
2466
2482
  },
2467
2483
  mt_subscription_added: function(e, t) {
2468
2484
  let n = e.priv;
2469
- return "ST_SESSION" === kt(e) && n.websocket ? n.inside_on_open ? 0 : ml(e, t) : 0;
2485
+ return "ST_SESSION" === $t(e) && n.websocket ? n.inside_on_open ? 0 : ml(e, t) : 0;
2470
2486
  },
2471
2487
  mt_subscription_deleted: function(e, t) {
2472
2488
  let n = e.priv;
2473
- if ("ST_SESSION" !== kt(e) || !n.websocket) return 0;
2489
+ if ("ST_SESSION" !== $t(e) || !n.websocket) return 0;
2474
2490
  if (n.inside_on_open) return 0;
2475
2491
  if (Wn(t.event)) return 0;
2476
2492
  let r = {}, l = t.__global__, o = t.__config__, s = t.__filter__, i = t.__service__, _ = t.subscriber;
@@ -2498,11 +2514,11 @@
2498
2514
  for (const n of Object.keys(l[e])) t += `${n}: ${l[e][n]};`;
2499
2515
  i.style.cssText = t;
2500
2516
  } else "style" === e ? i.style.cssText = l[e] : "i18n" === e || "data-i18n" === e || "data_i18next" === e || "data-i18next" === e ? null !== l[e] && void 0 !== l[e] && (_ = l[e], i.setAttribute("data-i18n", _)) : i.setAttribute(e, l[e]);
2501
- if (Pn(o)) if (o = o.trim(), o.length > 0 && "<" === o[0]) i.appendChild(Nr(o));
2517
+ if (Un(o)) if (o = o.trim(), o.length > 0 && "<" === o[0]) i.appendChild(Nr(o));
2502
2518
  else if (n && _) i.textContent = n(_) || o;
2503
2519
  else i.textContent = o;
2504
2520
  else if (Ln(o)) {
2505
- if (o.length > 0) if (Pn(o[0])) i.appendChild(e(o, n));
2521
+ if (o.length > 0) if (Un(o[0])) i.appendChild(e(o, n));
2506
2522
  else for (let t of o) Array.isArray(t) && t.length > 0 ? i.appendChild(e(t, n)) : t instanceof HTMLElement && i.appendChild(t);
2507
2523
  } else o instanceof HTMLElement || o instanceof Text || o instanceof SVGElement ? i.appendChild(o) : null != o && (dn("content ignored"), hn(o));
2508
2524
  if (s && "object" == typeof s) for (const e of Object.keys(s)) i.addEventListener(e, s[e]);
@@ -2519,20 +2535,20 @@
2519
2535
  n[e] = o;
2520
2536
  }), n;
2521
2537
  }, e.current_timestamp = wr, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
2522
- let n = ar(Pr(e), null, !1), r = {};
2538
+ let n = ar(Ur(e), null, !1), r = {};
2523
2539
  return n && Cn(n) && (r = ir(e, n, t, !1)), r;
2524
2540
  }, e.db_load_persistent_attrs = function(e, t) {
2525
- let n = Tt(e, T.SDF_PERSIST), r = ar(Pr(e), null, !1);
2541
+ let n = Tt(e, T.SDF_PERSIST), r = ar(Ur(e), null, !1);
2526
2542
  if (r && Cn(r)) {
2527
2543
  let l = ir(e, r, t, !1);
2528
2544
  l = ir(e, l, n, !1), Nt(e, l, T.SDF_PERSIST);
2529
2545
  }
2530
2546
  }, e.db_remove_persistent_attrs = function(e, t) {
2531
- let n = _r(e, ar(Pr(e), null, !1), t, !1);
2532
- 0 === kn(n) ? cr(Pr(e)) : ur(Pr(e), n);
2547
+ let n = _r(e, ar(Ur(e), null, !1), t, !1);
2548
+ 0 === $n(n) ? cr(Ur(e)) : ur(Ur(e), n);
2533
2549
  }, e.db_save_persistent_attrs = function(e, t) {
2534
- let n = ir(e, Tt(e, T.SDF_PERSIST), t, !1), r = ar(Pr(e), null, !1);
2535
- return r && Cn(r) && jn(n, r), ur(Pr(e), n);
2550
+ let n = ir(e, Tt(e, T.SDF_PERSIST), t, !1), r = ar(Ur(e), null, !1);
2551
+ return r && Cn(r) && jn(n, r), ur(Ur(e), n);
2536
2552
  }, e.debounce = function(e, t = 0, n = !1) {
2537
2553
  let r = null, l = null, o = null;
2538
2554
  const s = (...s) => {
@@ -2565,14 +2581,14 @@
2565
2581
  for (const n of Object.keys(e)) {
2566
2582
  const r = Cr(n);
2567
2583
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
2568
- if (r.length > kr) throw new Error(`flat2json: '${n}' deeper than 256`);
2584
+ if (r.length > $r) throw new Error(`flat2json: '${n}' deeper than 256`);
2569
2585
  const l = "number" == typeof r[0];
2570
2586
  if (null === t) t = l ? [] : {};
2571
2587
  else if (l !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
2572
2588
  let o = t;
2573
2589
  for (let t = 0; t < r.length; t++) {
2574
2590
  const l = r[t], s = "number" == typeof l, i = t === r.length - 1, _ = !i && "number" == typeof r[t + 1];
2575
- if (s && l > $r) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
2591
+ if (s && l > kr) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
2576
2592
  if (s !== Array.isArray(o)) throw new Error(`flat2json: '${n}' uses a ${s ? "array index" : "key"} where the tree already has a ${Array.isArray(o) ? "array" : "object"}`);
2577
2593
  if (i) {
2578
2594
  if (Array.isArray(o)) {
@@ -2645,8 +2661,8 @@
2645
2661
  return ot(e) ? (dn("gobj NULL or DESTROYED"), null) : t instanceof O ? (e.parent && e.parent.mt_child_removed && e.parent.mt_child_removed(e.parent, e), e.parent && (De(e.parent, e), e.parent = null), Re(t, e), t.mt_child_added && (Y(e) && pn(n("👦👦🔵 child_added(%s): %s", tt(t), et(e))), t.mt_child_added(t, e)), 0) : (dn(`${et(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
2646
2662
  }, e.gobj_change_state = At, e.gobj_command = function(e, t, r, o) {
2647
2663
  return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : ((function(e) {
2648
- return V > 1 || !!e && !!(K(e) & P.TRACE_COMMANDS);
2649
- }(e) || q(e, null) && !z(o, null)) && (L(n("🌀🌀 mach(%s%s), cmd: %s, src: %s", xe(e) ? "" : "!!", et(e), t, et(o))), H(e) && hn(r)), e.gclass.gmt.mt_command_parser ? e.gclass.gmt.mt_command_parser(e, t, r, o) : e.gclass.command_table ? c ? c(e, t, r, o) : l(0, -1, n("%s: global command parser not available", et(e)), 0, 0) : l(0, -1, n("%s: command table not available", et(e)), 0, 0));
2664
+ return V > 1 || !!e && !!(x(e) & U.TRACE_COMMANDS);
2665
+ }(e) || q(e, null) && !z(o, null)) && (L(n("🌀🌀 mach(%s%s), cmd: %s, src: %s", Ke(e) ? "" : "!!", et(e), t, et(o))), H(e) && hn(r)), e.gclass.gmt.mt_command_parser ? e.gclass.gmt.mt_command_parser(e, t, r, o) : e.gclass.command_table ? c ? c(e, t, r, o) : l(0, -1, n("%s: global command parser not available", et(e)), 0, 0) : l(0, -1, n("%s: command table not available", et(e)), 0, 0));
2650
2666
  }, e.gobj_create = function(e, t, n, r) {
2651
2667
  return Ie(e, t, n, r, 0);
2652
2668
  }, e.gobj_create2 = Ie, e.gobj_create_default_service = function(e, t, n, r) {
@@ -2657,7 +2673,7 @@
2657
2673
  return Ie(e, t, n, r, w.gobj_flag_volatil);
2658
2674
  }, e.gobj_create_yuno = function(e, t, n) {
2659
2675
  return Ie(e, t, n, null, w.gobj_flag_yuno);
2660
- }, e.gobj_current_state = kt, e.gobj_default_service = Oe, e.gobj_deliver_posted_events = Ut, e.gobj_destroy = Le, e.gobj_find_child = pt, e.gobj_find_gobj = function(e, t) {
2676
+ }, e.gobj_current_state = $t, e.gobj_default_service = Oe, e.gobj_deliver_posted_events = Pt, e.gobj_destroy = Le, e.gobj_find_child = pt, e.gobj_find_gobj = function(e, t) {
2661
2677
  if (Wn(t)) return null;
2662
2678
  const n = t.toLowerCase();
2663
2679
  return "__default_service__" === n ? m : "__yuno__" === n || "__root__" === n ? p : mt(p, t);
@@ -2665,7 +2681,7 @@
2665
2681
  return F;
2666
2682
  }, e.gobj_global_trace_no_level = function() {
2667
2683
  return G;
2668
- }, e.gobj_has_attr = ht, e.gobj_has_event = It, e.gobj_has_output_event = Ct, e.gobj_hsdata = ce, e.gobj_is_destroying = ot, e.gobj_is_playing = Je, e.gobj_is_pure_child = lt, e.gobj_is_running = xe, e.gobj_is_service = Be, e.gobj_is_volatil = rt, e.gobj_list_persistent_attrs = function(e, t) {
2684
+ }, e.gobj_has_attr = ht, e.gobj_has_event = It, e.gobj_has_output_event = Ct, e.gobj_hsdata = ce, e.gobj_is_destroying = ot, e.gobj_is_playing = Je, e.gobj_is_pure_child = lt, e.gobj_is_running = Ke, e.gobj_is_service = Be, e.gobj_is_volatil = rt, e.gobj_list_persistent_attrs = function(e, t) {
2669
2685
  return u ? u(e, t) : null;
2670
2686
  }, e.gobj_list_subscriptions = function(e) {
2671
2687
  let t = Jt(e, null, null, null);
@@ -2681,8 +2697,8 @@
2681
2697
  return {
2682
2698
  subscriptions: t,
2683
2699
  subscribings: n,
2684
- "total subscriptions": $n(t),
2685
- total_subscribings: $n(n)
2700
+ "total subscriptions": kn(t),
2701
+ total_subscribings: kn(n)
2686
2702
  };
2687
2703
  }, e.gobj_load_persistent_attrs = function(e, t) {
2688
2704
  return Be(e) ? i ? i(e, t) : -1 : (dn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
@@ -2706,19 +2722,19 @@
2706
2722
  bt(o, t) && n.push(o), e(n, o);
2707
2723
  }
2708
2724
  }(n, e), n;
2709
- }, e.gobj_match_gobj = bt, e.gobj_name = Xe, e.gobj_parent = nt, e.gobj_pause = Ke, e.gobj_play = We, e.gobj_post_event = function(e, t, r, l) {
2725
+ }, 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 = function(e, t, r, l) {
2710
2726
  return e && e instanceof O ? e.obflag & (R.obflag_destroyed | R.obflag_destroying) ? (dn(`gobj_post_event(): gobj dst DESTROYING, event ${t}`), -1) : Wn(t) ? (dn("gobj_post_event(): event EMPTY"), -1) : It(e, t, 0) ? Lt.length >= 1e4 ? (dn(`gobj_post_event(): too many posted events, this is NOT a work queue, event ${t}, pending ${Lt.length}`), -1) : (Lt.push({
2711
2727
  dst: e,
2712
2728
  event: t,
2713
2729
  kw: r,
2714
2730
  src: l
2715
- }), q(e, t) && !z(l, t) && L(n("📬 posted(%s%s), ev: %s, pending: %d", e.running ? "" : "!!", et(e), t, Lt.length)), Pt || (Pt = !0, setTimeout(Ut, 0)), 0) : (dn(`gobj_post_event(): event NOT DEFINED in gclass ${Ze(e)}, event ${t}`), -1) : (dn(`gobj_post_event(): gobj dst NULL, event ${t}`), -1);
2731
+ }), q(e, t) && !z(l, t) && L(n("📬 posted(%s%s), ev: %s, pending: %d", e.running ? "" : "!!", et(e), t, Lt.length)), Ut || (Ut = !0, setTimeout(Pt, 0)), 0) : (dn(`gobj_post_event(): event NOT DEFINED in gclass ${Ze(e)}, event ${t}`), -1) : (dn(`gobj_post_event(): gobj dst NULL, event ${t}`), -1);
2716
2732
  }, e.gobj_posted_events_size = function() {
2717
2733
  return Lt.length;
2718
2734
  }, e.gobj_publish_event = qt, e.gobj_read_attr = Et, e.gobj_read_attrs = Tt, e.gobj_read_bool_attr = yt, e.gobj_read_integer_attr = vt, e.gobj_read_pointer_attr = St, e.gobj_read_str_attr = jt, e.gobj_remove_persistent_attrs = function(e, t) {
2719
2735
  return Be(e) ? a ? a(e, t) : -1 : (dn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
2720
2736
  }, e.gobj_repr_global_trace_levels = function() {
2721
- return U.map(([e, t, n]) => ({
2737
+ return P.map(([e, t, n]) => ({
2722
2738
  name: e,
2723
2739
  bit: t,
2724
2740
  description: n,
@@ -2753,10 +2769,10 @@
2753
2769
  return r ? (n ? e.trace_level |= r : e.trace_level &= ~r, 0) : -1;
2754
2770
  }, e.gobj_set_trace_machine_format = function(e) {
2755
2771
  C = 1 === Number(e) ? 1 : 0;
2756
- }, e.gobj_short_name = et, e.gobj_start = Pe, e.gobj_start_children = function(e) {
2757
- return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : at(e, A.WALK_FIRST2LAST, Ue, 0, 0);
2772
+ }, e.gobj_short_name = et, e.gobj_start = Ue, e.gobj_start_children = function(e) {
2773
+ return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : at(e, A.WALK_FIRST2LAST, Pe, 0, 0);
2758
2774
  }, e.gobj_start_tree = function(e) {
2759
- return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : (J(e) && L(n("⏺ ⏺ ⏺ ⏺ start_tree: %s", tt(e))), e.gclass.gclass_flag & N.gcflag_manual_start || e.disabled ? 0 : (e.running || Pe(e), ut(e, A.WALK_TOP2BOTTOM, Fe, 0, 0)));
2775
+ return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : (J(e) && L(n("⏺ ⏺ ⏺ ⏺ start_tree: %s", tt(e))), e.gclass.gclass_flag & N.gcflag_manual_start || e.disabled ? 0 : (e.running || Ue(e), ut(e, A.WALK_TOP2BOTTOM, Fe, 0, 0)));
2760
2776
  }, e.gobj_start_up = function(e, t, n, r, l, o, s) {
2761
2777
  i = t, _ = n, a = r, u = l, c = o, f = s;
2762
2778
  const d = [["EV_STATE_CHANGED", D.EVF_SYSTEM_EVENT | D.EVF_OUTPUT_EVENT | D.EVF_NO_WARN_SUBS], [0, 0]];
@@ -2768,10 +2784,10 @@
2768
2784
  }, e.gobj_stats = function(e, t, r, l) {
2769
2785
  return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : e.gclass.gmt.mt_stats ? e.gclass.gmt.mt_stats(e, t, r, l) : f ? f(e, t, r, l) : o(0, -1, n("%s, stats parser not available", et(e)), 0, 0);
2770
2786
  }, e.gobj_stop = Ge, e.gobj_stop_children = Me, e.gobj_stop_tree = function(e) {
2771
- return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : (J(e) && L(n("⏹ ⏹ ⏹ ⏹ stop_tree: %s", tt(e))), xe(e) && Ge(e), ut(e, A.WALK_TOP2BOTTOM, Ve, 0, 0));
2772
- }, e.gobj_subscribe_event = Yt, e.gobj_trace_level = K, e.gobj_trace_machine_format = function() {
2787
+ return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : (J(e) && L(n("⏹ ⏹ ⏹ ⏹ stop_tree: %s", tt(e))), Ke(e) && Ge(e), ut(e, A.WALK_TOP2BOTTOM, Ve, 0, 0));
2788
+ }, e.gobj_subscribe_event = Yt, e.gobj_trace_level = x, e.gobj_trace_machine_format = function() {
2773
2789
  return C;
2774
- }, e.gobj_trace_no_level = x, e.gobj_unsubscribe_event = function(e, t, n, r) {
2790
+ }, e.gobj_trace_no_level = K, e.gobj_unsubscribe_event = function(e, t, n, r) {
2775
2791
  if (null == n && (n = {}), !e) return dn(`publisher NULL: ev ${t}`), 0;
2776
2792
  if (!r) return dn(`subscriber NULL: ev ${t}`), 0;
2777
2793
  const l = /* @__PURE__ */ new Set([
@@ -2788,27 +2804,27 @@
2788
2804
  let o = Wt(e.dl_subscriptions, e, t, n, r), s = 0;
2789
2805
  for (let t = 0; t < o.length; t++) {
2790
2806
  let n = o[t];
2791
- xt(e, n, !1, !1), s++;
2807
+ Kt(e, n, !1, !1), s++;
2792
2808
  }
2793
2809
  return s || (bn(`${et(e)}: No subscription found`), hn(n, "No subscription found")), 0;
2794
2810
  }, e.gobj_unsubscribe_list = Bt, e.gobj_walk_gobj_children = at, e.gobj_walk_gobj_children_tree = ut, e.gobj_write_attr = Ot, e.gobj_write_attrs = Nt, e.gobj_write_bool_attr = wt, e.gobj_write_integer_attr = Rt, e.gobj_write_str_attr = Dt, e.gobj_yuno = He, e.gobj_yuno_id = Qe, e.gobj_yuno_name = qe, e.gobj_yuno_role = ze, e.id_index_in_obj_list = dr, e.index_in_list = Rr, e.is_array = Ln, e.is_boolean = Fn, e.is_date = function(e) {
2795
2811
  return e instanceof Date && !isNaN(e);
2796
2812
  }, e.is_function = Vn, e.is_gobj = Mn, e.is_metadata_key = function(e) {
2797
- if (!Pn(e)) return !1;
2813
+ if (!Un(e)) return !1;
2798
2814
  let t;
2799
2815
  for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
2800
2816
  return 2 === t;
2801
- }, e.is_null = Gn, e.is_number = Un, e.is_object = Cn, e.is_private_key = function(e) {
2802
- if (!Pn(e)) return !1;
2817
+ }, e.is_null = Gn, e.is_number = Pn, e.is_object = Cn, e.is_private_key = function(e) {
2818
+ if (!Un(e)) return !1;
2803
2819
  let t;
2804
2820
  for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
2805
2821
  return 1 === t;
2806
2822
  }, e.is_pure_number = function(e) {
2807
- if (Un(e)) return !0;
2808
- if (!Pn(e)) return !1;
2823
+ if (Pn(e)) return !0;
2824
+ if (!Un(e)) return !1;
2809
2825
  const t = Number(e);
2810
2826
  return !isNaN(t) && "" !== e.trim() && !isNaN(t);
2811
- }, e.is_string = Pn, e.jdb_delete = function(e, t, n, r) {
2827
+ }, e.is_string = Un, e.jdb_delete = function(e, t, n, r) {
2812
2828
  let l = nr(null, nr(null, e, "topics", null, 0), t, null, 0);
2813
2829
  if (!l) return dn("jdb_delete: topic not found: " + t), null;
2814
2830
  if (Wn(r.id)) return dn("jdb_delete: record without id: " + r), mn(r), null;
@@ -2855,7 +2871,7 @@
2855
2871
  return l;
2856
2872
  }, e.json2flat = function(e) {
2857
2873
  const t = {}, n = (e, r, l) => {
2858
- if (l > kr) throw new Error("json2flat: deeper than 256");
2874
+ if (l > $r) throw new Error("json2flat: deeper than 256");
2859
2875
  if (null === e || "object" != typeof e || Array.isArray(e)) {
2860
2876
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
2861
2877
  const o = `[${t}]`;
@@ -2876,7 +2892,7 @@
2876
2892
  return null == e || n(e, "", 0), t;
2877
2893
  }, e.json_array_append = Rn, e.json_array_append_new = Dn, e.json_array_extend = function(e, t) {
2878
2894
  return t ? (Array.prototype.push.apply(e, t), e) : e;
2879
- }, e.json_array_remove = An, e.json_array_size = $n, e.json_deep_copy = En, e.json_is_identical = Tn, e.json_object_del = On, e.json_object_get = Sn, e.json_object_set = Nn, e.json_object_set_new = wn, e.json_object_size = kn, e.json_object_update = yn, e.json_object_update_existing = vn, e.json_object_update_missing = jn, e.json_size = In, e.jwt2json = function(e, t) {
2895
+ }, e.json_array_remove = An, e.json_array_size = kn, e.json_deep_copy = En, e.json_is_identical = Tn, e.json_object_del = On, e.json_object_get = Sn, e.json_object_set = Nn, e.json_object_set_new = wn, e.json_object_size = $n, e.json_object_update = yn, e.json_object_update_existing = vn, e.json_object_update_missing = jn, e.json_size = In, e.jwt2json = function(e, t) {
2880
2896
  try {
2881
2897
  let n = Sr(e);
2882
2898
  switch (t) {
@@ -2912,7 +2928,7 @@
2912
2928
  }, e.kw_get_local_storage_value = ar, e.kw_get_pointer = er, e.kw_get_real = function(e, t, n, r, l) {
2913
2929
  e && !Mn(e) && dn("GObj bad instanceof");
2914
2930
  let o = qn(e, t, n, !1);
2915
- const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
2931
+ 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;
2916
2932
  if (void 0 === o) {
2917
2933
  if (i) {
2918
2934
  let l = Number(r);
@@ -2920,7 +2936,18 @@
2920
2936
  }
2921
2937
  return s && (dn(`path not found: '${n}'`), hn(t)), Number(r);
2922
2938
  }
2923
- return _ && zn(e, t, n), Un(o) ? Number(o) : (s && (dn(`path value MUST BE a number: ${n}`), mn(t)), Number(r));
2939
+ let u;
2940
+ if (Pn(o)) u = o;
2941
+ else {
2942
+ if (!a) return dn(`${e ? et(e) + ": " : ""}path MUST BE a json real: '${n}'`), hn(t), Number(r);
2943
+ if (Fn(o)) u = o ? 1 : 0;
2944
+ else if (Un(o)) u = parseFloat(o), Number.isNaN(u) && (u = 0);
2945
+ else {
2946
+ if (null !== o) return dn(`${e ? et(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), hn(t), 0;
2947
+ u = 0;
2948
+ }
2949
+ }
2950
+ return _ && zn(e, t, n), u;
2924
2951
  }, e.kw_get_str = Zn, e.kw_has_key = Hn, e.kw_match_simple = sr, e.kw_pop = Jn, e.kw_remove_local_storage_value = cr, e.kw_select = function(e, t, n, r) {
2925
2952
  if (e && !Mn(e) && dn("GObj bad instanceof"), !t) return null;
2926
2953
  r || (r = sr);
@@ -2941,10 +2968,10 @@
2941
2968
  }, e.kwid_get_ids = function(e, t) {
2942
2969
  if (e && !Mn(e) && dn("GObj bad instanceof"), !t) return [];
2943
2970
  let n = [];
2944
- if (Pn(t)) n.push(t);
2971
+ if (Un(t)) n.push(t);
2945
2972
  else if (Cn(t)) for (let e in t) t.hasOwnProperty(e) && n.push(e);
2946
2973
  else Ln(t) && t.forEach(function(t) {
2947
- if (Pn(t)) Wn(t) || n.push(t);
2974
+ if (Un(t)) Wn(t) || n.push(t);
2948
2975
  else if (Cn(t)) {
2949
2976
  let r = Zn(e, t, "id", 0, 0);
2950
2977
  r && n.push(r);
@@ -2977,7 +3004,7 @@
2977
3004
  let r = [];
2978
3005
  if (Ln(e)) for (let l = 0; l < e.length; l++) {
2979
3006
  let o = e[l];
2980
- if (Pn(o)) r.push({
3007
+ if (Un(o)) r.push({
2981
3008
  id: e[l],
2982
3009
  value: e[l]
2983
3010
  });
@@ -3022,7 +3049,7 @@
3022
3049
  }, e.log_debug = pn, e.log_error = dn, e.log_info = function(e) {
3023
3050
  let t = gn(e), n = wr();
3024
3051
  en && _n("info", t) && en("%c" + n + " INFO: " + String(t), "color:cyan"), un("info", t, n);
3025
- }, e.log_warning = bn, e.msg_iev_get_msg_type = yr, e.msg_iev_get_stack = Er, e.msg_iev_push_stack = hr, e.msg_iev_read_key = pr, e.msg_iev_set_msg_type = Tr, e.msg_iev_write_key = mr, e.node_uuid = Dr, e.parseBoolean = Kn, e.parseSVG = function(e) {
3052
+ }, e.log_warning = bn, e.msg_iev_get_msg_type = yr, e.msg_iev_get_stack = Er, e.msg_iev_push_stack = hr, e.msg_iev_read_key = pr, e.msg_iev_set_msg_type = Tr, e.msg_iev_write_key = mr, e.node_uuid = Dr, e.parseBoolean = xn, e.parseSVG = function(e) {
3026
3053
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3027
3054
  }, e.refresh_language = function(e, t) {
3028
3055
  if (!Vn(t)) return void dn("You must supply a translation function");
@@ -3144,17 +3171,17 @@
3144
3171
  }("C_IEVENT_CLI");
3145
3172
  }, e.register_c_timer = function() {
3146
3173
  return function(e) {
3147
- if (xr) return dn(`GClass ALREADY created: ${e}`), -1;
3174
+ if (Kr) return dn(`GClass ALREADY created: ${e}`), -1;
3148
3175
  const t = [["ST_IDLE", [[
3149
3176
  "EV_TIMEOUT",
3150
3177
  Yr,
3151
3178
  null
3152
3179
  ]]]];
3153
- return (xr = de(e, [
3180
+ return (Kr = de(e, [
3154
3181
  ["EV_TIMEOUT", D.EVF_OUTPUT_EVENT],
3155
3182
  ["EV_TIMEOUT_PERIODIC", D.EVF_OUTPUT_EVENT],
3156
3183
  [0, 0]
3157
- ], t, Br, 0, Wr, Kr, 0, 0, 0, N.gcflag_manual_start)) ? 0 : -1;
3184
+ ], t, Br, 0, Wr, xr, 0, 0, 0, N.gcflag_manual_start)) ? 0 : -1;
3158
3185
  }("C_TIMER");
3159
3186
  }, e.register_c_yuno = function() {
3160
3187
  return function(e) {
@@ -3192,7 +3219,7 @@
3192
3219
  cn(e, r, n);
3193
3220
  }
3194
3221
  } else nn = e;
3195
- }, e.set_remote_log_functions = fn, e.set_timeout = Jr, e.set_timeout_periodic = Hr, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = br, e.strcasecmp = Yn, e.strcmp = xn, e.strncmp = function(e, t, n) {
3222
+ }, e.set_remote_log_functions = fn, e.set_timeout = Jr, e.set_timeout_periodic = Hr, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = br, e.strcasecmp = Yn, e.strcmp = Kn, e.strncmp = function(e, t, n) {
3196
3223
  var r = (e + "").substring(0, n), l = (t + "").substring(0, n);
3197
3224
  return r === l ? 0 : r > l ? 1 : -1;
3198
3225
  }, e.strs_in_list = function(e, t, n) {
@@ -3217,7 +3244,7 @@
3217
3244
  placeholder: void 0,
3218
3245
  fkey: null
3219
3246
  };
3220
- if (Pn(t)) {
3247
+ if (Un(t)) {
3221
3248
  let e = t.split(".");
3222
3249
  for (let t = 0; t < e.length; t++) {
3223
3250
  let r = e[t];
@@ -3247,11 +3274,11 @@
3247
3274
  total: _
3248
3275
  };
3249
3276
  } };
3250
- }, e.trace_json = hn, e.trace_level_t = P, e.trace_msg = mn, e.treedb_decoder_fkey = Ur, e.treedb_decoder_hook = function(e, t) {
3251
- if (Pn(t)) {
3277
+ }, e.trace_json = hn, e.trace_level_t = U, e.trace_msg = mn, e.treedb_decoder_fkey = Pr, e.treedb_decoder_hook = function(e, t) {
3278
+ if (Un(t)) {
3252
3279
  if (-1 === t.indexOf("^")) {
3253
3280
  let n, r = e.hook;
3254
- if (1 !== kn(r)) return dn("bad hook 1"), dn(e), dn(t), null;
3281
+ if (1 !== $n(r)) return dn("bad hook 1"), dn(e), dn(t), null;
3255
3282
  for (let e of Object.keys(r)) {
3256
3283
  n = e, r[e];
3257
3284
  break;
@@ -3274,7 +3301,7 @@
3274
3301
  id: t.id
3275
3302
  } : (dn("bad hook 3"), dn(e), dn(t), null);
3276
3303
  }, e.treedb_encoder_fkey = function(e, t) {
3277
- let n = Ur(e, t);
3304
+ let n = Pr(e, t);
3278
3305
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3279
3306
  }, e.treedb_get_field_desc = Mr, e.treedb_hook_data_size = function(e) {
3280
3307
  if (Ln(e) && 1 === In(e)) {