@yuneta/gobj-js 7.25.3 → 7.25.5

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.
@@ -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;
@@ -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];
@@ -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;
@@ -718,7 +718,7 @@
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) {
@@ -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
  }
@@ -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,7 +1025,7 @@
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
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
  }
@@ -1053,14 +1053,14 @@
1053
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;
@@ -1084,7 +1084,7 @@
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;
@@ -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) {
@@ -1404,7 +1404,7 @@
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,8 +1493,8 @@
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, 10) || 0);
1498
1498
  else {
1499
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;
@@ -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,36 @@
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 && !function(e, t) {
1538
+ let n = Un(t) ? t.split("`") : [], r = e;
1539
+ for (let e = 0; e < n.length - 1; e++) {
1540
+ if (!Cn(r) && !Ln(r)) return !1;
1541
+ r = r[n[e]];
1542
+ }
1543
+ return !(!Cn(r) && !Ln(r) || 0 === n.length) && Object.prototype.hasOwnProperty.call(r, n[n.length - 1]);
1544
+ }(t, n) && (dn(`path not found: '${n}'`), hn(t)), r) : Un(o) ? (_ && zn(e, t, n), o) : (null !== o && (dn(`${e ? et(e) + ": " : ""}path MUST BE a json str: '${n}'`), hn(t)), r);
1522
1545
  }
1523
1546
  function er(e, t, n, r, l) {
1524
1547
  e && !Mn(e) && dn("GObj bad instanceof");
@@ -1537,7 +1560,7 @@
1537
1560
  e && !Mn(e) && dn("GObj bad instanceof");
1538
1561
  let o = qn(e, t, n, !1);
1539
1562
  const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
1540
- return void 0 === o ? i && Cn(r) && t ? (rr(e, t, n, r), r) : (s && (dn(`path not found: '${n}'`), hn(t)), r) : Cn(o) ? (_ && zn(e, t, n), o) : (s && (dn(`${et(e)}: path value MUST BE a dict: ${n}`), mn(t)), r);
1563
+ return void 0 === o ? i && Cn(r) && t ? (rr(e, t, n, r), r) : (s && (dn(`path not found: '${n}'`), hn(t)), r) : Cn(o) ? (_ && zn(e, t, n), o) : (s && (dn(`${e ? et(e) + ": " : ""}path MUST BE a json dict: '${n}'`), hn(t)), r);
1541
1564
  }
1542
1565
  function nr(e, t, n, r, l) {
1543
1566
  e && !Mn(e) && dn("GObj bad instanceof");
@@ -1604,7 +1627,7 @@
1604
1627
  function ir(e, t, n, r) {
1605
1628
  e && !Mn(e) && dn("GObj bad instanceof");
1606
1629
  let l = {};
1607
- if (Pn(n) && !Wn(n)) {
1630
+ if (Un(n) && !Wn(n)) {
1608
1631
  let o = n;
1609
1632
  t.hasOwnProperty(o) ? l[o] = t[o] : r && dn(`${et(e)}: key not found: ${o}`);
1610
1633
  } 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}`);
@@ -1619,7 +1642,7 @@
1619
1642
  }
1620
1643
  function _r(e, t, n, r) {
1621
1644
  let l = {};
1622
- if (yn(l, t), Pn(n) && !Wn(n)) {
1645
+ if (yn(l, t), Un(n) && !Wn(n)) {
1623
1646
  let o = n;
1624
1647
  nr(e, t, o, 0, 0) ? On(l, o) : r && dn(`${et(e)}: key not found: ${o}`);
1625
1648
  } 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}`);
@@ -1665,7 +1688,7 @@
1665
1688
  } else if (Cn(e)) {
1666
1689
  if (0 === Object.keys(e).length) return !0;
1667
1690
  for (let n in e) if (n === t) return !0;
1668
- } else if (Pn(e) && e === t) return !0;
1691
+ } else if (Un(e) && e === t) return !0;
1669
1692
  return !1;
1670
1693
  }
1671
1694
  function gr(e, t, n, r, l) {
@@ -1676,7 +1699,7 @@
1676
1699
  let i, _ = t[s];
1677
1700
  if (Cn(_)) i = Zn(e, _, "id", "", 0);
1678
1701
  else {
1679
- if (!Pn(_)) continue;
1702
+ if (!Un(_)) continue;
1680
1703
  i = _;
1681
1704
  }
1682
1705
  fr(n, i) && l(_, r) && o.push(_);
@@ -1743,7 +1766,7 @@
1743
1766
  return Zn(e, t, "__md_iev__`__msg_type__", "", 0);
1744
1767
  }
1745
1768
  function vr(e, t, n) {
1746
- void 0 !== n && Pn(n) || (n = "");
1769
+ void 0 !== n && Un(n) || (n = "");
1747
1770
  for (let r of Object.keys(e)) {
1748
1771
  if (!e.hasOwnProperty(r)) continue;
1749
1772
  let l = (n.length ? "`" : "") + r;
@@ -1855,11 +1878,11 @@
1855
1878
  function Lr(e, t) {
1856
1879
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
1857
1880
  }
1858
- function Pr(e) {
1881
+ function Ur(e) {
1859
1882
  return "persistent-attrs-" + et(e);
1860
1883
  }
1861
- function Ur(e, t) {
1862
- if (Pn(t)) {
1884
+ function Pr(e, t) {
1885
+ if (Un(t)) {
1863
1886
  if (-1 === t.indexOf("^")) {
1864
1887
  let n, r, l = e.fkey;
1865
1888
  if (1 !== $n(l)) return dn("bad fkey 1"), dn(e), dn(t), null;
@@ -1990,16 +2013,16 @@
1990
2013
  j(E.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
1991
2014
  j(E.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
1992
2015
  v()
1993
- ], Kr = {
2016
+ ], xr = {
1994
2017
  periodic: !1,
1995
2018
  msec: 0,
1996
2019
  timer_id: -1
1997
- }, xr = null;
2020
+ }, Kr = null;
1998
2021
  function Yr(e, t, n, r) {
1999
2022
  let l = e.priv, o = l.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
2000
2023
  return l.periodic && l.msec > 0 ? l.timer_id = setTimeout(function() {
2001
2024
  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;
2025
+ }, 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
2026
  }
2004
2027
  var Br = {
2005
2028
  mt_create: function(e) {
@@ -2015,7 +2038,7 @@
2015
2038
  break;
2016
2039
  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
2040
  Ft(e, "EV_TIMEOUT", {}, e);
2018
- }, n.msec)), n.msec > 0 ? xe(e) || Pe(e) : xe(e) && Ge(e);
2041
+ }, n.msec)), n.msec > 0 ? Ke(e) || Ue(e) : Ke(e) && Ge(e);
2019
2042
  }
2020
2043
  },
2021
2044
  mt_start: function(e) {
@@ -2116,10 +2139,10 @@
2116
2139
  mt_destroy: function(e) {},
2117
2140
  mt_play: function(e) {
2118
2141
  let t = Oe();
2119
- return xe(t) || Pe(t), Je(t) || We(t), 0;
2142
+ return Ke(t) || Ue(t), Je(t) || We(t), 0;
2120
2143
  },
2121
2144
  mt_pause: function(e) {
2122
- return Ke(Oe()), 0;
2145
+ return xe(Oe()), 0;
2123
2146
  },
2124
2147
  mt_command_parser: function(e, t, n, r) {
2125
2148
  switch (n = n || {}, t) {
@@ -2167,7 +2190,7 @@
2167
2190
  ["identity-card", "Trace identity_card messages"]
2168
2191
  ];
2169
2192
  function il(e) {
2170
- return !!(3 & K(e));
2193
+ return !!(3 & x(e));
2171
2194
  }
2172
2195
  var _l = {
2173
2196
  url: null,
@@ -2290,7 +2313,7 @@
2290
2313
  }
2291
2314
  function hl(e, t, n, r) {
2292
2315
  let l = e.priv;
2293
- return xe(e) && (l.websocket = ul(e)), 0;
2316
+ return Ke(e) && (l.websocket = ul(e)), 0;
2294
2317
  }
2295
2318
  function El(e, t, n, r) {
2296
2319
  return pn("Websocket opened: " + e.priv.url), pl(e), 0;
@@ -2310,7 +2333,7 @@
2310
2333
  code: o.code,
2311
2334
  reason: o.reason,
2312
2335
  was_clean: o.wasClean
2313
- })), xe(e) && Jr(l.gobj_timer, function(e) {
2336
+ })), Ke(e) && Jr(l.gobj_timer, function(e) {
2314
2337
  let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
2315
2338
  r < n && (r = n);
2316
2339
  t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
@@ -2498,11 +2521,11 @@
2498
2521
  for (const n of Object.keys(l[e])) t += `${n}: ${l[e][n]};`;
2499
2522
  i.style.cssText = t;
2500
2523
  } 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));
2524
+ if (Un(o)) if (o = o.trim(), o.length > 0 && "<" === o[0]) i.appendChild(Nr(o));
2502
2525
  else if (n && _) i.textContent = n(_) || o;
2503
2526
  else i.textContent = o;
2504
2527
  else if (Ln(o)) {
2505
- if (o.length > 0) if (Pn(o[0])) i.appendChild(e(o, n));
2528
+ if (o.length > 0) if (Un(o[0])) i.appendChild(e(o, n));
2506
2529
  else for (let t of o) Array.isArray(t) && t.length > 0 ? i.appendChild(e(t, n)) : t instanceof HTMLElement && i.appendChild(t);
2507
2530
  } else o instanceof HTMLElement || o instanceof Text || o instanceof SVGElement ? i.appendChild(o) : null != o && (dn("content ignored"), hn(o));
2508
2531
  if (s && "object" == typeof s) for (const e of Object.keys(s)) i.addEventListener(e, s[e]);
@@ -2519,20 +2542,20 @@
2519
2542
  n[e] = o;
2520
2543
  }), n;
2521
2544
  }, 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 = {};
2545
+ let n = ar(Ur(e), null, !1), r = {};
2523
2546
  return n && Cn(n) && (r = ir(e, n, t, !1)), r;
2524
2547
  }, e.db_load_persistent_attrs = function(e, t) {
2525
- let n = Tt(e, T.SDF_PERSIST), r = ar(Pr(e), null, !1);
2548
+ let n = Tt(e, T.SDF_PERSIST), r = ar(Ur(e), null, !1);
2526
2549
  if (r && Cn(r)) {
2527
2550
  let l = ir(e, r, t, !1);
2528
2551
  l = ir(e, l, n, !1), Nt(e, l, T.SDF_PERSIST);
2529
2552
  }
2530
2553
  }, e.db_remove_persistent_attrs = function(e, t) {
2531
- let n = _r(e, ar(Pr(e), null, !1), t, !1);
2532
- 0 === $n(n) ? cr(Pr(e)) : ur(Pr(e), n);
2554
+ let n = _r(e, ar(Ur(e), null, !1), t, !1);
2555
+ 0 === $n(n) ? cr(Ur(e)) : ur(Ur(e), n);
2533
2556
  }, 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);
2557
+ let n = ir(e, Tt(e, T.SDF_PERSIST), t, !1), r = ar(Ur(e), null, !1);
2558
+ return r && Cn(r) && jn(n, r), ur(Ur(e), n);
2536
2559
  }, e.debounce = function(e, t = 0, n = !1) {
2537
2560
  let r = null, l = null, o = null;
2538
2561
  const s = (...s) => {
@@ -2645,8 +2668,8 @@
2645
2668
  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
2669
  }, e.gobj_change_state = At, e.gobj_command = function(e, t, r, o) {
2647
2670
  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));
2671
+ return V > 1 || !!e && !!(x(e) & U.TRACE_COMMANDS);
2672
+ }(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
2673
  }, e.gobj_create = function(e, t, n, r) {
2651
2674
  return Ie(e, t, n, r, 0);
2652
2675
  }, e.gobj_create2 = Ie, e.gobj_create_default_service = function(e, t, n, r) {
@@ -2657,7 +2680,7 @@
2657
2680
  return Ie(e, t, n, r, w.gobj_flag_volatil);
2658
2681
  }, e.gobj_create_yuno = function(e, t, n) {
2659
2682
  return Ie(e, t, n, null, w.gobj_flag_yuno);
2660
- }, e.gobj_current_state = $t, 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) {
2683
+ }, 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
2684
  if (Wn(t)) return null;
2662
2685
  const n = t.toLowerCase();
2663
2686
  return "__default_service__" === n ? m : "__yuno__" === n || "__root__" === n ? p : mt(p, t);
@@ -2665,7 +2688,7 @@
2665
2688
  return F;
2666
2689
  }, e.gobj_global_trace_no_level = function() {
2667
2690
  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) {
2691
+ }, 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
2692
  return u ? u(e, t) : null;
2670
2693
  }, e.gobj_list_subscriptions = function(e) {
2671
2694
  let t = Jt(e, null, null, null);
@@ -2706,19 +2729,19 @@
2706
2729
  bt(o, t) && n.push(o), e(n, o);
2707
2730
  }
2708
2731
  }(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) {
2732
+ }, 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
2733
  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
2734
  dst: e,
2712
2735
  event: t,
2713
2736
  kw: r,
2714
2737
  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);
2738
+ }), 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
2739
  }, e.gobj_posted_events_size = function() {
2717
2740
  return Lt.length;
2718
2741
  }, 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
2742
  return Be(e) ? a ? a(e, t) : -1 : (dn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
2720
2743
  }, e.gobj_repr_global_trace_levels = function() {
2721
- return U.map(([e, t, n]) => ({
2744
+ return P.map(([e, t, n]) => ({
2722
2745
  name: e,
2723
2746
  bit: t,
2724
2747
  description: n,
@@ -2753,10 +2776,10 @@
2753
2776
  return r ? (n ? e.trace_level |= r : e.trace_level &= ~r, 0) : -1;
2754
2777
  }, e.gobj_set_trace_machine_format = function(e) {
2755
2778
  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);
2779
+ }, e.gobj_short_name = et, e.gobj_start = Ue, e.gobj_start_children = function(e) {
2780
+ return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : at(e, A.WALK_FIRST2LAST, Pe, 0, 0);
2758
2781
  }, 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)));
2782
+ 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
2783
  }, e.gobj_start_up = function(e, t, n, r, l, o, s) {
2761
2784
  i = t, _ = n, a = r, u = l, c = o, f = s;
2762
2785
  const d = [["EV_STATE_CHANGED", D.EVF_SYSTEM_EVENT | D.EVF_OUTPUT_EVENT | D.EVF_NO_WARN_SUBS], [0, 0]];
@@ -2768,10 +2791,10 @@
2768
2791
  }, e.gobj_stats = function(e, t, r, l) {
2769
2792
  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
2793
  }, 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() {
2794
+ 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));
2795
+ }, e.gobj_subscribe_event = Yt, e.gobj_trace_level = x, e.gobj_trace_machine_format = function() {
2773
2796
  return C;
2774
- }, e.gobj_trace_no_level = x, e.gobj_unsubscribe_event = function(e, t, n, r) {
2797
+ }, e.gobj_trace_no_level = K, e.gobj_unsubscribe_event = function(e, t, n, r) {
2775
2798
  if (null == n && (n = {}), !e) return dn(`publisher NULL: ev ${t}`), 0;
2776
2799
  if (!r) return dn(`subscriber NULL: ev ${t}`), 0;
2777
2800
  const l = /* @__PURE__ */ new Set([
@@ -2788,27 +2811,27 @@
2788
2811
  let o = Wt(e.dl_subscriptions, e, t, n, r), s = 0;
2789
2812
  for (let t = 0; t < o.length; t++) {
2790
2813
  let n = o[t];
2791
- xt(e, n, !1, !1), s++;
2814
+ Kt(e, n, !1, !1), s++;
2792
2815
  }
2793
2816
  return s || (bn(`${et(e)}: No subscription found`), hn(n, "No subscription found")), 0;
2794
2817
  }, 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
2818
  return e instanceof Date && !isNaN(e);
2796
2819
  }, e.is_function = Vn, e.is_gobj = Mn, e.is_metadata_key = function(e) {
2797
- if (!Pn(e)) return !1;
2820
+ if (!Un(e)) return !1;
2798
2821
  let t;
2799
2822
  for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
2800
2823
  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;
2824
+ }, e.is_null = Gn, e.is_number = Pn, e.is_object = Cn, e.is_private_key = function(e) {
2825
+ if (!Un(e)) return !1;
2803
2826
  let t;
2804
2827
  for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
2805
2828
  return 1 === t;
2806
2829
  }, e.is_pure_number = function(e) {
2807
- if (Un(e)) return !0;
2808
- if (!Pn(e)) return !1;
2830
+ if (Pn(e)) return !0;
2831
+ if (!Un(e)) return !1;
2809
2832
  const t = Number(e);
2810
2833
  return !isNaN(t) && "" !== e.trim() && !isNaN(t);
2811
- }, e.is_string = Pn, e.jdb_delete = function(e, t, n, r) {
2834
+ }, e.is_string = Un, e.jdb_delete = function(e, t, n, r) {
2812
2835
  let l = nr(null, nr(null, e, "topics", null, 0), t, null, 0);
2813
2836
  if (!l) return dn("jdb_delete: topic not found: " + t), null;
2814
2837
  if (Wn(r.id)) return dn("jdb_delete: record without id: " + r), mn(r), null;
@@ -2908,11 +2931,11 @@
2908
2931
  e && !Mn(e) && dn("GObj bad instanceof");
2909
2932
  let o = qn(e, t, n, !1);
2910
2933
  const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
2911
- return void 0 === o ? i && Ln(r) && t ? (rr(e, t, n, r), r) : (s && (dn(`path not found: '${n}'`), hn(t)), r) : Ln(o) ? (_ && zn(e, t, n), o) : (s && (dn(`${et(e)}: path value MUST BE an array: ${n}`), mn(t)), r);
2934
+ return void 0 === o ? i && Ln(r) && t ? (rr(e, t, n, r), r) : (s && (dn(`path not found: '${n}'`), hn(t)), r) : Ln(o) ? (_ && zn(e, t, n), o) : (s && (dn(`${e ? et(e) + ": " : ""}path MUST BE a json list: '${n}'`), hn(t)), r);
2912
2935
  }, e.kw_get_local_storage_value = ar, e.kw_get_pointer = er, e.kw_get_real = function(e, t, n, r, l) {
2913
2936
  e && !Mn(e) && dn("GObj bad instanceof");
2914
2937
  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;
2938
+ 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
2939
  if (void 0 === o) {
2917
2940
  if (i) {
2918
2941
  let l = Number(r);
@@ -2920,7 +2943,18 @@
2920
2943
  }
2921
2944
  return s && (dn(`path not found: '${n}'`), hn(t)), Number(r);
2922
2945
  }
2923
- return _ && zn(e, t, n), Un(o) ? Number(o) : (s && (dn(`path value MUST BE a number: ${n}`), mn(t)), Number(r));
2946
+ let u;
2947
+ if (Pn(o)) u = o;
2948
+ else {
2949
+ if (!a) return dn(`${e ? et(e) + ": " : ""}path MUST BE a json real: '${n}'`), hn(t), Number(r);
2950
+ if (Fn(o)) u = o ? 1 : 0;
2951
+ else if (Un(o)) u = parseFloat(o), Number.isNaN(u) && (u = 0);
2952
+ else {
2953
+ if (null !== o) return dn(`${e ? et(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), hn(t), 0;
2954
+ u = 0;
2955
+ }
2956
+ }
2957
+ return _ && zn(e, t, n), u;
2924
2958
  }, 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
2959
  if (e && !Mn(e) && dn("GObj bad instanceof"), !t) return null;
2926
2960
  r || (r = sr);
@@ -2941,10 +2975,10 @@
2941
2975
  }, e.kwid_get_ids = function(e, t) {
2942
2976
  if (e && !Mn(e) && dn("GObj bad instanceof"), !t) return [];
2943
2977
  let n = [];
2944
- if (Pn(t)) n.push(t);
2978
+ if (Un(t)) n.push(t);
2945
2979
  else if (Cn(t)) for (let e in t) t.hasOwnProperty(e) && n.push(e);
2946
2980
  else Ln(t) && t.forEach(function(t) {
2947
- if (Pn(t)) Wn(t) || n.push(t);
2981
+ if (Un(t)) Wn(t) || n.push(t);
2948
2982
  else if (Cn(t)) {
2949
2983
  let r = Zn(e, t, "id", 0, 0);
2950
2984
  r && n.push(r);
@@ -2977,7 +3011,7 @@
2977
3011
  let r = [];
2978
3012
  if (Ln(e)) for (let l = 0; l < e.length; l++) {
2979
3013
  let o = e[l];
2980
- if (Pn(o)) r.push({
3014
+ if (Un(o)) r.push({
2981
3015
  id: e[l],
2982
3016
  value: e[l]
2983
3017
  });
@@ -3022,7 +3056,7 @@
3022
3056
  }, e.log_debug = pn, e.log_error = dn, e.log_info = function(e) {
3023
3057
  let t = gn(e), n = wr();
3024
3058
  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) {
3059
+ }, 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
3060
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3027
3061
  }, e.refresh_language = function(e, t) {
3028
3062
  if (!Vn(t)) return void dn("You must supply a translation function");
@@ -3144,17 +3178,17 @@
3144
3178
  }("C_IEVENT_CLI");
3145
3179
  }, e.register_c_timer = function() {
3146
3180
  return function(e) {
3147
- if (xr) return dn(`GClass ALREADY created: ${e}`), -1;
3181
+ if (Kr) return dn(`GClass ALREADY created: ${e}`), -1;
3148
3182
  const t = [["ST_IDLE", [[
3149
3183
  "EV_TIMEOUT",
3150
3184
  Yr,
3151
3185
  null
3152
3186
  ]]]];
3153
- return (xr = de(e, [
3187
+ return (Kr = de(e, [
3154
3188
  ["EV_TIMEOUT", D.EVF_OUTPUT_EVENT],
3155
3189
  ["EV_TIMEOUT_PERIODIC", D.EVF_OUTPUT_EVENT],
3156
3190
  [0, 0]
3157
- ], t, Br, 0, Wr, Kr, 0, 0, 0, N.gcflag_manual_start)) ? 0 : -1;
3191
+ ], t, Br, 0, Wr, xr, 0, 0, 0, N.gcflag_manual_start)) ? 0 : -1;
3158
3192
  }("C_TIMER");
3159
3193
  }, e.register_c_yuno = function() {
3160
3194
  return function(e) {
@@ -3192,7 +3226,7 @@
3192
3226
  cn(e, r, n);
3193
3227
  }
3194
3228
  } 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) {
3229
+ }, 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
3230
  var r = (e + "").substring(0, n), l = (t + "").substring(0, n);
3197
3231
  return r === l ? 0 : r > l ? 1 : -1;
3198
3232
  }, e.strs_in_list = function(e, t, n) {
@@ -3217,7 +3251,7 @@
3217
3251
  placeholder: void 0,
3218
3252
  fkey: null
3219
3253
  };
3220
- if (Pn(t)) {
3254
+ if (Un(t)) {
3221
3255
  let e = t.split(".");
3222
3256
  for (let t = 0; t < e.length; t++) {
3223
3257
  let r = e[t];
@@ -3247,8 +3281,8 @@
3247
3281
  total: _
3248
3282
  };
3249
3283
  } };
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)) {
3284
+ }, 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) {
3285
+ if (Un(t)) {
3252
3286
  if (-1 === t.indexOf("^")) {
3253
3287
  let n, r = e.hook;
3254
3288
  if (1 !== $n(r)) return dn("bad hook 1"), dn(e), dn(t), null;
@@ -3274,7 +3308,7 @@
3274
3308
  id: t.id
3275
3309
  } : (dn("bad hook 3"), dn(e), dn(t), null);
3276
3310
  }, e.treedb_encoder_fkey = function(e, t) {
3277
- let n = Ur(e, t);
3311
+ let n = Pr(e, t);
3278
3312
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3279
3313
  }, e.treedb_get_field_desc = Mr, e.treedb_hook_data_size = function(e) {
3280
3314
  if (Ln(e) && 1 === In(e)) {