@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.
@@ -224,7 +224,7 @@ var gobjJs = function(e) {
224
224
  function L(e) {
225
225
  Cn(e) && (e = JSON.stringify(e)), pn(" ".repeat(Math.max(1, 2 * h)) + String(e));
226
226
  }
227
- var P = Object.freeze({
227
+ var U = Object.freeze({
228
228
  TRACE_MACHINE: 65536,
229
229
  TRACE_CREATE_DELETE: 131072,
230
230
  TRACE_CREATE_DELETE2: 262144,
@@ -240,86 +240,86 @@ var gobjJs = function(e) {
240
240
  TRACE_TIMER_PERIODIC: 268435456,
241
241
  TRACE_URING_TIME: 536870912,
242
242
  TRACE_COMMANDS: 1073741824
243
- }), U = [
243
+ }), P = [
244
244
  [
245
245
  "machine",
246
- P.TRACE_MACHINE,
246
+ U.TRACE_MACHINE,
247
247
  "Trace machine"
248
248
  ],
249
249
  [
250
250
  "create_delete",
251
- P.TRACE_CREATE_DELETE,
251
+ U.TRACE_CREATE_DELETE,
252
252
  "Trace create/delete of gobjs"
253
253
  ],
254
254
  [
255
255
  "create_delete2",
256
- P.TRACE_CREATE_DELETE2,
256
+ U.TRACE_CREATE_DELETE2,
257
257
  "Trace create/delete of gobjs level 2: with kw"
258
258
  ],
259
259
  [
260
260
  "subscriptions",
261
- P.TRACE_SUBSCRIPTIONS,
261
+ U.TRACE_SUBSCRIPTIONS,
262
262
  "Trace subscriptions of gobjs"
263
263
  ],
264
264
  [
265
265
  "start_stop",
266
- P.TRACE_START_STOP,
266
+ U.TRACE_START_STOP,
267
267
  "Trace start/stop of gobjs"
268
268
  ],
269
269
  [
270
270
  "ev_kw",
271
- P.TRACE_EV_KW,
271
+ U.TRACE_EV_KW,
272
272
  "Trace event keywords"
273
273
  ],
274
274
  [
275
275
  "authzs",
276
- P.TRACE_AUTHZS,
276
+ U.TRACE_AUTHZS,
277
277
  "Trace authorizations"
278
278
  ],
279
279
  [
280
280
  "states",
281
- P.TRACE_STATES,
281
+ U.TRACE_STATES,
282
282
  "Trace change of states"
283
283
  ],
284
284
  [
285
285
  "gbuffers",
286
- P.TRACE_GBUFFERS,
286
+ U.TRACE_GBUFFERS,
287
287
  "Trace gbuffers"
288
288
  ],
289
289
  [
290
290
  "timer",
291
- P.TRACE_TIMER,
291
+ U.TRACE_TIMER,
292
292
  "Trace timers"
293
293
  ],
294
294
  [
295
295
  "fs",
296
- P.TRACE_FS,
296
+ U.TRACE_FS,
297
297
  "Trace file system"
298
298
  ],
299
299
  [
300
300
  "liburing",
301
- P.TRACE_URING,
301
+ U.TRACE_URING,
302
302
  "Trace liburing mixins"
303
303
  ],
304
304
  [
305
305
  "timer_periodic",
306
- P.TRACE_TIMER_PERIODIC,
306
+ U.TRACE_TIMER_PERIODIC,
307
307
  "Trace periodic timers"
308
308
  ],
309
309
  [
310
310
  "liburing_timer",
311
- P.TRACE_URING_TIME,
311
+ U.TRACE_URING_TIME,
312
312
  "Trace liburing timer"
313
313
  ],
314
314
  [
315
315
  "commands",
316
- P.TRACE_COMMANDS,
316
+ U.TRACE_COMMANDS,
317
317
  "Trace commands"
318
318
  ]
319
319
  ], F = 0, G = 0, V = 0;
320
320
  function M(e, t) {
321
321
  let n = [];
322
- for (const [t, r] of U) e & r && n.push(t);
322
+ for (const [t, r] of P) e & r && n.push(t);
323
323
  if (Array.isArray(t)) for (let r = 0; r < t.length && r < 16; r++) t[r] && e & 1 << r && n.push(t[r][0]);
324
324
  return n;
325
325
  }
@@ -330,7 +330,7 @@ var gobjJs = function(e) {
330
330
  if (t) return t;
331
331
  }
332
332
  return function(e, t) {
333
- for (const [t, n] of U) if (t === e) return n;
333
+ for (const [t, n] of P) if (t === e) return n;
334
334
  if (Array.isArray(t)) {
335
335
  for (let n = 0; n < t.length && n < 16; n++) if (t[n] && t[n][0] === e) return 1 << n;
336
336
  }
@@ -347,28 +347,28 @@ var gobjJs = function(e) {
347
347
  return e && (t |= e.no_trace_level || 0, e.gclass && (t |= e.gclass.no_trace_level || 0)), t;
348
348
  }
349
349
  function Y(e) {
350
- return K(e) & P.TRACE_CREATE_DELETE;
350
+ return K(e) & U.TRACE_CREATE_DELETE;
351
351
  }
352
352
  function B(e) {
353
- return K(e) & P.TRACE_SUBSCRIPTIONS;
353
+ return K(e) & U.TRACE_SUBSCRIPTIONS;
354
354
  }
355
355
  function J(e) {
356
- return K(e) & P.TRACE_START_STOP;
356
+ return K(e) & U.TRACE_START_STOP;
357
357
  }
358
358
  function H(e) {
359
- return K(e) & P.TRACE_EV_KW;
359
+ return K(e) & U.TRACE_EV_KW;
360
360
  }
361
361
  function q(e, t) {
362
362
  if (V > 1) return !0;
363
363
  if (!e) return !1;
364
364
  const n = K(e);
365
- return !!(n & P.TRACE_MACHINE || n & P.TRACE_TIMER_PERIODIC && "EV_TIMEOUT_PERIODIC" === t || n & P.TRACE_TIMER && "EV_TIMEOUT" === t);
365
+ return !!(n & U.TRACE_MACHINE || n & U.TRACE_TIMER_PERIODIC && "EV_TIMEOUT_PERIODIC" === t || n & U.TRACE_TIMER && "EV_TIMEOUT" === t);
366
366
  }
367
367
  function z(e, t) {
368
368
  if (V > 1) return !1;
369
369
  if (!e) return !0;
370
370
  const n = x(e);
371
- return !!(n & P.TRACE_MACHINE || n & P.TRACE_TIMER_PERIODIC && "EV_TIMEOUT_PERIODIC" === t || n & P.TRACE_TIMER && "EV_TIMEOUT" === t);
371
+ return !!(n & U.TRACE_MACHINE || n & U.TRACE_TIMER_PERIODIC && "EV_TIMEOUT_PERIODIC" === t || n & U.TRACE_TIMER && "EV_TIMEOUT" === t);
372
372
  }
373
373
  function Q(e, t) {
374
374
  const n = W(e, "gobj_set_global_trace");
@@ -391,25 +391,25 @@ var gobjJs = function(e) {
391
391
  return M(G, null);
392
392
  }
393
393
  function re(e) {
394
- const t = Pn(e) ? Se(e) : e;
394
+ const t = Un(e) ? Se(e) : e;
395
395
  return t ? M(t.trace_level | F, t.s_user_trace_level) : (dn(`gobj_get_gclass_trace_level: gclass NOT FOUND: ${e}`), []);
396
396
  }
397
397
  function le(e) {
398
- const t = Pn(e) ? Se(e) : e;
398
+ const t = Un(e) ? Se(e) : e;
399
399
  return t ? M(t.trace_level, t.s_user_trace_level) : (dn(`gobj_get_gclass_trace_level2: gclass NOT FOUND: ${e}`), []);
400
400
  }
401
401
  function oe(e) {
402
- const t = Pn(e) ? Se(e) : e;
402
+ const t = Un(e) ? Se(e) : e;
403
403
  return t ? M(t.no_trace_level, t.s_user_trace_level) : (dn(`gobj_get_gclass_trace_no_level: gclass NOT FOUND: ${e}`), []);
404
404
  }
405
405
  function se(e, t, n) {
406
- const r = Pn(e) ? Se(e) : e;
406
+ const r = Un(e) ? Se(e) : e;
407
407
  if (!r) return dn(`gobj_set_gclass_trace: gclass NOT FOUND: ${e}`), -1;
408
408
  const l = null === t ? 4294967295 : W(t, "gobj_set_gclass_trace", r.s_user_trace_level || null);
409
409
  return l ? (n ? r.trace_level |= l : r.trace_level &= ~l, 0) : -1;
410
410
  }
411
411
  function ie(e, t, n) {
412
- const r = Pn(e) ? Se(e) : e;
412
+ const r = Un(e) ? Se(e) : e;
413
413
  if (!r) return dn(`gobj_set_gclass_no_trace: gclass NOT FOUND: ${e}`), -1;
414
414
  const l = null === t ? 4294967295 : W(t, "gobj_set_gclass_no_trace", r.s_user_trace_level || null);
415
415
  return l ? (n ? r.no_trace_level |= l : r.no_trace_level &= ~l, 0) : -1;
@@ -439,7 +439,7 @@ var gobjJs = function(e) {
439
439
  r = Number(l), isNaN(r) && dn(`${et(e)}: attr NaN: ${n.name}`);
440
440
  break;
441
441
  case E.DTP_LIST:
442
- if (Pn(l)) try {
442
+ if (Un(l)) try {
443
443
  r = JSON.parse(l);
444
444
  } catch (e) {
445
445
  dn(`JSON parse error: ${e.message}`);
@@ -448,7 +448,7 @@ var gobjJs = function(e) {
448
448
  Ln(r) || (r = []);
449
449
  break;
450
450
  case E.DTP_DICT:
451
- if (Pn(l)) try {
451
+ if (Un(l)) try {
452
452
  r = JSON.parse(l);
453
453
  } catch (e) {
454
454
  dn(`JSON parse error: ${e.message}`);
@@ -457,7 +457,7 @@ var gobjJs = function(e) {
457
457
  Cn(r) || (r = {});
458
458
  break;
459
459
  case E.DTP_JSON:
460
- if (Pn(l)) try {
460
+ if (Un(l)) try {
461
461
  r = JSON.parse(l);
462
462
  } catch (e) {
463
463
  dn(`JSON parse error: ${e.message}`);
@@ -473,7 +473,7 @@ var gobjJs = function(e) {
473
473
  switch (n.type) {
474
474
  case E.DTP_STRING:
475
475
  if (null == r) l = "";
476
- else if (Pn(r)) l = String(r);
476
+ else if (Un(r)) l = String(r);
477
477
  else {
478
478
  let e = JSON.stringify(r);
479
479
  e && (l = String(e));
@@ -489,7 +489,7 @@ var gobjJs = function(e) {
489
489
  l = Number(r), isNaN(l) && dn(`${et(e)}: attr NaN: ${n.name}`);
490
490
  break;
491
491
  case E.DTP_LIST:
492
- if (Pn(r)) try {
492
+ if (Un(r)) try {
493
493
  l = JSON.parse(r);
494
494
  } catch (e) {
495
495
  dn(`JSON parse error: ${e.message}`);
@@ -498,7 +498,7 @@ var gobjJs = function(e) {
498
498
  if (!Ln(l)) return dn(`attr must be an array: ${n.name}`), -1;
499
499
  break;
500
500
  case E.DTP_DICT:
501
- if (Pn(r)) try {
501
+ if (Un(r)) try {
502
502
  l = JSON.parse(r);
503
503
  } catch (e) {
504
504
  dn(`JSON parse error: ${e.message}`);
@@ -507,7 +507,7 @@ var gobjJs = function(e) {
507
507
  if (!Cn(l)) return dn(`attr must be an object: ${n.name}`), -1;
508
508
  break;
509
509
  case E.DTP_JSON:
510
- if (Pn(r)) try {
510
+ if (Un(r)) try {
511
511
  l = JSON.parse(r);
512
512
  } catch (e) {
513
513
  dn(`JSON parse error: ${e.message}`);
@@ -568,7 +568,7 @@ var gobjJs = function(e) {
568
568
  }
569
569
  function be(e) {
570
570
  let t;
571
- if (Pn(e)) t = e;
571
+ if (Un(e)) t = e;
572
572
  else {
573
573
  if (!(e instanceof S)) return dn("Cannot unregister gclass, type unknown"), -1;
574
574
  t = e.gclass_name;
@@ -629,7 +629,7 @@ var gobjJs = function(e) {
629
629
  }
630
630
  for (let n = 0; n < e.dl_events.length; n++) {
631
631
  let r = e.dl_events[n];
632
- 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))) {
632
+ 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))) {
633
633
  let n = !1;
634
634
  for (let t = 0; t < e.dl_states.length; t++) {
635
635
  let l = e.dl_states[t];
@@ -690,7 +690,7 @@ var gobjJs = function(e) {
690
690
  } else {
691
691
  if (!l) return dn("gobj NEEDS a parent!"), null;
692
692
  if (!("string" == typeof l || l instanceof O)) return dn(`BAD TYPE of parent: ${l}`), null;
693
- if (Pn(l) && !(l = Ne(l))) return bn(`parent service not found: ${l}`), null;
693
+ if (Un(l) && !(l = Ne(l))) return bn(`parent service not found: ${l}`), null;
694
694
  }
695
695
  if (o & w.gobj_flag_service && Ne(e, !1)) return dn(`service ALREADY registered: ${t}^${e}`), null;
696
696
  if (o & w.gobj_flag_default_service) {
@@ -700,7 +700,7 @@ var gobjJs = function(e) {
700
700
  if (Wn(t)) return dn("gclass_name must be a string"), null;
701
701
  let s = Se(t, !1);
702
702
  if (!s) return dn(`GClass not registered: ${t}^${e}`), null;
703
- if (!Pn(e)) return dn(`gobj_name must be a string: ${t}`), null;
703
+ if (!Un(e)) return dn(`gobj_name must be a string: ${t}`), null;
704
704
  if (!Wn(e)) {
705
705
  if (e.includes("`")) return dn(`gobj_name cannot contain char ': ${t}^${e}`), null;
706
706
  if (e.includes("^")) return dn(`gobj_name cannot contain char ^: ${t}^${e}`), null;
@@ -735,7 +735,7 @@ var gobjJs = function(e) {
735
735
  }
736
736
  }(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--;
737
737
  }
738
- function Pe(e) {
738
+ function Ue(e) {
739
739
  if (ot(e)) return dn("gobj NULL or DESTROYED"), -1;
740
740
  if (e.running) return dn(`${et(e)}: GObj ALREADY RUNNING`), -1;
741
741
  if (e.disabled) return dn(`${et(e)}: GObj DISABLED`), -1;
@@ -743,11 +743,11 @@ var gobjJs = function(e) {
743
743
  let t = 0;
744
744
  return e.gclass.gmt.mt_start && (t = e.gclass.gmt.mt_start(e)), t;
745
745
  }
746
- function Ue(e, t, n) {
747
- return e.gclass.gclass_flag & N.gcflag_manual_start || ot(e) || xe(e) || Ye(e) || Pe(e), 0;
746
+ function Pe(e, t, n) {
747
+ return e.gclass.gclass_flag & N.gcflag_manual_start || ot(e) || xe(e) || Ye(e) || Ue(e), 0;
748
748
  }
749
749
  function Fe(e, t, n) {
750
- return e.gclass.gclass_flag & N.gcflag_manual_start || Ye(e) ? 1 : (xe(e) || Pe(e), 0);
750
+ return e.gclass.gclass_flag & N.gcflag_manual_start || Ye(e) ? 1 : (xe(e) || Ue(e), 0);
751
751
  }
752
752
  function Ge(e) {
753
753
  if (ot(e)) return dn("gobj NULL or DESTROYED"), -1;
@@ -768,7 +768,7 @@ var gobjJs = function(e) {
768
768
  if (e.disabled) return dn(`${et(e)}: GObj DISABLED`), -1;
769
769
  if (!xe(e)) {
770
770
  if (e.gclass.gclass_flag & N.gcflag_required_start_to_play) return dn(`${et(e)}: Cannot play, start not done`), -1;
771
- bn(`${et(e)}: GObj playing without previous start`), Pe(e);
771
+ bn(`${et(e)}: GObj playing without previous start`), Ue(e);
772
772
  }
773
773
  J(e) && L(n("⏯ ⏯ play: %s", tt(e))), e.playing = !0;
774
774
  let t = 0;
@@ -976,7 +976,7 @@ var gobjJs = function(e) {
976
976
  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);
977
977
  }
978
978
  function Ot(e, t, r, l) {
979
- if (!Pn(t)) return dn(n("gobj_write_attr(%s): path must be a string", et(e))), -1;
979
+ if (!Un(t)) return dn(n("gobj_write_attr(%s): path must be a string", et(e))), -1;
980
980
  let o, s = e.jn_attrs, i = t.split("`");
981
981
  if (i.length <= 1) {
982
982
  let l = t;
@@ -1023,7 +1023,7 @@ var gobjJs = function(e) {
1023
1023
  if (!r) return dn(`${et(e)}: state unknown, state ${t}`), !1;
1024
1024
  e.last_state = e.current_state, e.current_state = r;
1025
1025
  let l = q(e, "EV_STATE_CHANGED"), o = !!function(e) {
1026
- return K(e) & P.TRACE_STATES;
1026
+ return K(e) & U.TRACE_STATES;
1027
1027
  }(e);
1028
1028
  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;
1029
1029
  }
@@ -1051,14 +1051,14 @@ var gobjJs = function(e) {
1051
1051
  let r = kt(e, t, !1);
1052
1052
  return !!r && !(n && !(r.event_flag & n)) && !!(r.event_flag & D.EVF_OUTPUT_EVENT);
1053
1053
  }
1054
- var Lt = [], Pt = !1;
1055
- function Ut() {
1056
- Pt = !1;
1054
+ var Lt = [], Ut = !1;
1055
+ function Pt() {
1056
+ Ut = !1;
1057
1057
  let e = Lt;
1058
1058
  Lt = [];
1059
1059
  let t = 0;
1060
1060
  for (let n of e) n.dst.obflag & (R.obflag_destroyed | R.obflag_destroying) || (Ft(n.dst, n.event, n.kw, n.src), t++);
1061
- return Lt.length > 0 && !Pt && (Pt = !0, setTimeout(Ut, 0)), t;
1061
+ return Lt.length > 0 && !Ut && (Ut = !0, setTimeout(Pt, 0)), t;
1062
1062
  }
1063
1063
  function Ft(e, t, r, l) {
1064
1064
  if (!(e && e instanceof O)) return dn("gobj dst NULL"), -1;
@@ -1082,7 +1082,7 @@ var gobjJs = function(e) {
1082
1082
  try {
1083
1083
  i.action && (_ = i.action(e, t, r, l));
1084
1084
  } finally {}
1085
- 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--, _;
1085
+ 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--, _;
1086
1086
  }
1087
1087
  var Gt = Object.freeze({
1088
1088
  __hard_subscription__: 1,
@@ -1402,7 +1402,7 @@ var gobjJs = function(e) {
1402
1402
  return Ln(e) ? e.length : 0;
1403
1403
  }
1404
1404
  function In(e) {
1405
- return Cn(e) ? Object.keys(e).length : Ln(e) ? e.length : Pn(e) && e.length > 0 ? 1 : 0;
1405
+ return Cn(e) ? Object.keys(e).length : Ln(e) ? e.length : Un(e) && e.length > 0 ? 1 : 0;
1406
1406
  }
1407
1407
  function Cn(e) {
1408
1408
  return null !== e && "object" == typeof e && !Array.isArray(e);
@@ -1410,10 +1410,10 @@ var gobjJs = function(e) {
1410
1410
  function Ln(e) {
1411
1411
  return Array.isArray(e);
1412
1412
  }
1413
- function Pn(e) {
1413
+ function Un(e) {
1414
1414
  return "string" == typeof e;
1415
1415
  }
1416
- function Un(e) {
1416
+ function Pn(e) {
1417
1417
  return "number" == typeof e && Number.isFinite(e);
1418
1418
  }
1419
1419
  function Fn(e) {
@@ -1429,10 +1429,10 @@ var gobjJs = function(e) {
1429
1429
  return e instanceof O;
1430
1430
  }
1431
1431
  function Wn(e) {
1432
- return !Pn(e) || 0 === e.length;
1432
+ return !Un(e) || 0 === e.length;
1433
1433
  }
1434
1434
  function Kn(e) {
1435
- return Un(e) ? Boolean(e) : /^\s*(true|1|on)\s*$/i.test(e);
1435
+ return Pn(e) ? Boolean(e) : /^\s*(true|1|on)\s*$/i.test(e);
1436
1436
  }
1437
1437
  function xn(e, t) {
1438
1438
  return e === t ? 0 : e > t ? 1 : -1;
@@ -1443,7 +1443,7 @@ var gobjJs = function(e) {
1443
1443
  }
1444
1444
  function Bn(e, t) {
1445
1445
  if (Cn(e) || Cn(t) || Ln(e) || Ln(t)) return 0;
1446
- if (Un(e) || Un(t)) {
1446
+ if (Pn(e) || Pn(t)) {
1447
1447
  let n = Number(e), r = Number(t);
1448
1448
  return n > r ? 1 : n < r ? -1 : 0;
1449
1449
  }
@@ -1463,7 +1463,7 @@ var gobjJs = function(e) {
1463
1463
  }
1464
1464
  function qn(e, t, n, r) {
1465
1465
  if (e && !Mn(e) && dn("GObj bad instanceof"), !Cn(t) && !Ln(t)) return dn(`${et(e)}: kw must be list or dict`), 0;
1466
- if (!Pn(n)) return dn(`${et(e)}: path must be a string: ${String(n)}`), 0;
1466
+ if (!Un(n)) return dn(`${et(e)}: path must be a string: ${String(n)}`), 0;
1467
1467
  let l = n.split("`");
1468
1468
  if (l.length <= 1) return t[n];
1469
1469
  let o = l.length;
@@ -1491,8 +1491,8 @@ var gobjJs = function(e) {
1491
1491
  }
1492
1492
  let u;
1493
1493
  if (Fn(o)) u = o;
1494
- else if (a && Un(o)) u = 0 !== o;
1495
- else if (a && Pn(o)) u = "true" === o.toLowerCase() || "false" !== o.toLowerCase() && 0 !== (parseInt(o) || 0);
1494
+ else if (a && Pn(o)) u = 0 !== o;
1495
+ else if (a && Un(o)) u = "true" === o.toLowerCase() || "false" !== o.toLowerCase() && 0 !== (parseInt(o, 10) || 0);
1496
1496
  else {
1497
1497
  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));
1498
1498
  u = !1;
@@ -1502,7 +1502,7 @@ var gobjJs = function(e) {
1502
1502
  function Xn(e, t, n, r, l) {
1503
1503
  e && !Mn(e) && dn("GObj bad instanceof");
1504
1504
  let o = qn(e, t, n, !1);
1505
- const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
1505
+ 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;
1506
1506
  if (void 0 === o) {
1507
1507
  if (i) {
1508
1508
  let l = parseInt(r);
@@ -1510,13 +1510,36 @@ var gobjJs = function(e) {
1510
1510
  }
1511
1511
  return s && (dn(`path not found: '${n}'`), hn(t)), parseInt(r);
1512
1512
  }
1513
- return _ && zn(e, t, n), Un(o) ? parseInt(o) : (s && (dn(`path value MUST BE a number: ${n}`), mn(t)), parseInt(r));
1513
+ let u;
1514
+ if (Pn(o)) u = Math.trunc(o);
1515
+ else {
1516
+ if (!a) return dn(`${e ? et(e) + ": " : ""}path MUST BE a json integer: '${n}'`), hn(t), parseInt(r);
1517
+ if (Fn(o)) u = o ? 1 : 0;
1518
+ else if (Un(o)) u = function(e) {
1519
+ const t = /^\s*([+-]?)(0[xX][0-9a-fA-F]+|0[0-7]*|[1-9][0-9]*)/.exec(e);
1520
+ if (!t) return 0;
1521
+ let n, r = t[2];
1522
+ 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;
1523
+ }(o);
1524
+ else {
1525
+ if (null !== o) return dn(`${e ? et(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), hn(t), 0;
1526
+ u = 0;
1527
+ }
1528
+ }
1529
+ return _ && zn(e, t, n), u;
1514
1530
  }
1515
1531
  function Zn(e, t, n, r, l) {
1516
1532
  e && !Mn(e) && dn("GObj bad instanceof");
1517
1533
  let o = qn(e, t, n, !1);
1518
1534
  const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
1519
- 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));
1535
+ return void 0 === o ? i ? (rr(e, t, n, Un(r) ? r : null), r) : (s && !function(e, t) {
1536
+ let n = Un(t) ? t.split("`") : [], r = e;
1537
+ for (let e = 0; e < n.length - 1; e++) {
1538
+ if (!Cn(r) && !Ln(r)) return !1;
1539
+ r = r[n[e]];
1540
+ }
1541
+ return !(!Cn(r) && !Ln(r) || 0 === n.length) && Object.prototype.hasOwnProperty.call(r, n[n.length - 1]);
1542
+ }(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);
1520
1543
  }
1521
1544
  function er(e, t, n, r, l) {
1522
1545
  e && !Mn(e) && dn("GObj bad instanceof");
@@ -1535,7 +1558,7 @@ var gobjJs = function(e) {
1535
1558
  e && !Mn(e) && dn("GObj bad instanceof");
1536
1559
  let o = qn(e, t, n, !1);
1537
1560
  const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
1538
- 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);
1561
+ 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);
1539
1562
  }
1540
1563
  function nr(e, t, n, r, l) {
1541
1564
  e && !Mn(e) && dn("GObj bad instanceof");
@@ -1602,7 +1625,7 @@ var gobjJs = function(e) {
1602
1625
  function ir(e, t, n, r) {
1603
1626
  e && !Mn(e) && dn("GObj bad instanceof");
1604
1627
  let l = {};
1605
- if (Pn(n) && !Wn(n)) {
1628
+ if (Un(n) && !Wn(n)) {
1606
1629
  let o = n;
1607
1630
  t.hasOwnProperty(o) ? l[o] = t[o] : r && dn(`${et(e)}: key not found: ${o}`);
1608
1631
  } 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}`);
@@ -1617,7 +1640,7 @@ var gobjJs = function(e) {
1617
1640
  }
1618
1641
  function _r(e, t, n, r) {
1619
1642
  let l = {};
1620
- if (yn(l, t), Pn(n) && !Wn(n)) {
1643
+ if (yn(l, t), Un(n) && !Wn(n)) {
1621
1644
  let o = n;
1622
1645
  nr(e, t, o, 0, 0) ? On(l, o) : r && dn(`${et(e)}: key not found: ${o}`);
1623
1646
  } 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}`);
@@ -1663,7 +1686,7 @@ var gobjJs = function(e) {
1663
1686
  } else if (Cn(e)) {
1664
1687
  if (0 === Object.keys(e).length) return !0;
1665
1688
  for (let n in e) if (n === t) return !0;
1666
- } else if (Pn(e) && e === t) return !0;
1689
+ } else if (Un(e) && e === t) return !0;
1667
1690
  return !1;
1668
1691
  }
1669
1692
  function gr(e, t, n, r, l) {
@@ -1674,7 +1697,7 @@ var gobjJs = function(e) {
1674
1697
  let i, _ = t[s];
1675
1698
  if (Cn(_)) i = Zn(e, _, "id", "", 0);
1676
1699
  else {
1677
- if (!Pn(_)) continue;
1700
+ if (!Un(_)) continue;
1678
1701
  i = _;
1679
1702
  }
1680
1703
  fr(n, i) && l(_, r) && o.push(_);
@@ -1741,7 +1764,7 @@ var gobjJs = function(e) {
1741
1764
  return Zn(e, t, "__md_iev__`__msg_type__", "", 0);
1742
1765
  }
1743
1766
  function vr(e, t, n) {
1744
- void 0 !== n && Pn(n) || (n = "");
1767
+ void 0 !== n && Un(n) || (n = "");
1745
1768
  for (let r of Object.keys(e)) {
1746
1769
  if (!e.hasOwnProperty(r)) continue;
1747
1770
  let l = (n.length ? "`" : "") + r;
@@ -1853,11 +1876,11 @@ var gobjJs = function(e) {
1853
1876
  function Lr(e, t) {
1854
1877
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
1855
1878
  }
1856
- function Pr(e) {
1879
+ function Ur(e) {
1857
1880
  return "persistent-attrs-" + et(e);
1858
1881
  }
1859
- function Ur(e, t) {
1860
- if (Pn(t)) {
1882
+ function Pr(e, t) {
1883
+ if (Un(t)) {
1861
1884
  if (-1 === t.indexOf("^")) {
1862
1885
  let n, r, l = e.fkey;
1863
1886
  if (1 !== $n(l)) return dn("bad fkey 1"), dn(e), dn(t), null;
@@ -2013,7 +2036,7 @@ var gobjJs = function(e) {
2013
2036
  break;
2014
2037
  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() {
2015
2038
  Ft(e, "EV_TIMEOUT", {}, e);
2016
- }, n.msec)), n.msec > 0 ? xe(e) || Pe(e) : xe(e) && Ge(e);
2039
+ }, n.msec)), n.msec > 0 ? xe(e) || Ue(e) : xe(e) && Ge(e);
2017
2040
  }
2018
2041
  },
2019
2042
  mt_start: function(e) {
@@ -2114,7 +2137,7 @@ var gobjJs = function(e) {
2114
2137
  mt_destroy: function(e) {},
2115
2138
  mt_play: function(e) {
2116
2139
  let t = Oe();
2117
- return xe(t) || Pe(t), Je(t) || We(t), 0;
2140
+ return xe(t) || Ue(t), Je(t) || We(t), 0;
2118
2141
  },
2119
2142
  mt_pause: function(e) {
2120
2143
  return Ke(Oe()), 0;
@@ -2496,11 +2519,11 @@ var gobjJs = function(e) {
2496
2519
  for (const n of Object.keys(l[e])) t += `${n}: ${l[e][n]};`;
2497
2520
  i.style.cssText = t;
2498
2521
  } 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]);
2499
- if (Pn(o)) if (o = o.trim(), o.length > 0 && "<" === o[0]) i.appendChild(Nr(o));
2522
+ if (Un(o)) if (o = o.trim(), o.length > 0 && "<" === o[0]) i.appendChild(Nr(o));
2500
2523
  else if (n && _) i.textContent = n(_) || o;
2501
2524
  else i.textContent = o;
2502
2525
  else if (Ln(o)) {
2503
- if (o.length > 0) if (Pn(o[0])) i.appendChild(e(o, n));
2526
+ if (o.length > 0) if (Un(o[0])) i.appendChild(e(o, n));
2504
2527
  else for (let t of o) Array.isArray(t) && t.length > 0 ? i.appendChild(e(t, n)) : t instanceof HTMLElement && i.appendChild(t);
2505
2528
  } else o instanceof HTMLElement || o instanceof Text || o instanceof SVGElement ? i.appendChild(o) : null != o && (dn("content ignored"), hn(o));
2506
2529
  if (s && "object" == typeof s) for (const e of Object.keys(s)) i.addEventListener(e, s[e]);
@@ -2517,20 +2540,20 @@ var gobjJs = function(e) {
2517
2540
  n[e] = o;
2518
2541
  }), n;
2519
2542
  }, e.current_timestamp = wr, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
2520
- let n = ar(Pr(e), null, !1), r = {};
2543
+ let n = ar(Ur(e), null, !1), r = {};
2521
2544
  return n && Cn(n) && (r = ir(e, n, t, !1)), r;
2522
2545
  }, e.db_load_persistent_attrs = function(e, t) {
2523
- let n = Tt(e, T.SDF_PERSIST), r = ar(Pr(e), null, !1);
2546
+ let n = Tt(e, T.SDF_PERSIST), r = ar(Ur(e), null, !1);
2524
2547
  if (r && Cn(r)) {
2525
2548
  let l = ir(e, r, t, !1);
2526
2549
  l = ir(e, l, n, !1), Nt(e, l, T.SDF_PERSIST);
2527
2550
  }
2528
2551
  }, e.db_remove_persistent_attrs = function(e, t) {
2529
- let n = _r(e, ar(Pr(e), null, !1), t, !1);
2530
- 0 === $n(n) ? cr(Pr(e)) : ur(Pr(e), n);
2552
+ let n = _r(e, ar(Ur(e), null, !1), t, !1);
2553
+ 0 === $n(n) ? cr(Ur(e)) : ur(Ur(e), n);
2531
2554
  }, e.db_save_persistent_attrs = function(e, t) {
2532
- let n = ir(e, Tt(e, T.SDF_PERSIST), t, !1), r = ar(Pr(e), null, !1);
2533
- return r && Cn(r) && jn(n, r), ur(Pr(e), n);
2555
+ let n = ir(e, Tt(e, T.SDF_PERSIST), t, !1), r = ar(Ur(e), null, !1);
2556
+ return r && Cn(r) && jn(n, r), ur(Ur(e), n);
2534
2557
  }, e.debounce = function(e, t = 0, n = !1) {
2535
2558
  let r = null, l = null, o = null;
2536
2559
  const s = (...s) => {
@@ -2643,7 +2666,7 @@ var gobjJs = function(e) {
2643
2666
  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);
2644
2667
  }, e.gobj_change_state = At, e.gobj_command = function(e, t, r, o) {
2645
2668
  return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : ((function(e) {
2646
- return V > 1 || !!e && !!(K(e) & P.TRACE_COMMANDS);
2669
+ return V > 1 || !!e && !!(K(e) & U.TRACE_COMMANDS);
2647
2670
  }(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));
2648
2671
  }, e.gobj_create = function(e, t, n, r) {
2649
2672
  return Ie(e, t, n, r, 0);
@@ -2655,7 +2678,7 @@ var gobjJs = function(e) {
2655
2678
  return Ie(e, t, n, r, w.gobj_flag_volatil);
2656
2679
  }, e.gobj_create_yuno = function(e, t, n) {
2657
2680
  return Ie(e, t, n, null, w.gobj_flag_yuno);
2658
- }, 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) {
2681
+ }, 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) {
2659
2682
  if (Wn(t)) return null;
2660
2683
  const n = t.toLowerCase();
2661
2684
  return "__default_service__" === n ? m : "__yuno__" === n || "__root__" === n ? p : mt(p, t);
@@ -2710,13 +2733,13 @@ var gobjJs = function(e) {
2710
2733
  event: t,
2711
2734
  kw: r,
2712
2735
  src: l
2713
- }), 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);
2736
+ }), 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);
2714
2737
  }, e.gobj_posted_events_size = function() {
2715
2738
  return Lt.length;
2716
2739
  }, 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) {
2717
2740
  return Be(e) ? a ? a(e, t) : -1 : (dn(`${et(e)}: Only gobj services can load/save writable-persistent`), -1);
2718
2741
  }, e.gobj_repr_global_trace_levels = function() {
2719
- return U.map(([e, t, n]) => ({
2742
+ return P.map(([e, t, n]) => ({
2720
2743
  name: e,
2721
2744
  bit: t,
2722
2745
  description: n,
@@ -2751,10 +2774,10 @@ var gobjJs = function(e) {
2751
2774
  return r ? (n ? e.trace_level |= r : e.trace_level &= ~r, 0) : -1;
2752
2775
  }, e.gobj_set_trace_machine_format = function(e) {
2753
2776
  C = 1 === Number(e) ? 1 : 0;
2754
- }, e.gobj_short_name = et, e.gobj_start = Pe, e.gobj_start_children = function(e) {
2755
- return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : at(e, A.WALK_FIRST2LAST, Ue, 0, 0);
2777
+ }, e.gobj_short_name = et, e.gobj_start = Ue, e.gobj_start_children = function(e) {
2778
+ return ot(e) ? (dn("gobj NULL or DESTROYED"), -1) : at(e, A.WALK_FIRST2LAST, Pe, 0, 0);
2756
2779
  }, e.gobj_start_tree = function(e) {
2757
- 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)));
2780
+ 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)));
2758
2781
  }, e.gobj_start_up = function(e, t, n, r, l, o, s) {
2759
2782
  i = t, _ = n, a = r, u = l, c = o, f = s;
2760
2783
  const d = [["EV_STATE_CHANGED", D.EVF_SYSTEM_EVENT | D.EVF_OUTPUT_EVENT | D.EVF_NO_WARN_SUBS], [0, 0]];
@@ -2792,21 +2815,21 @@ var gobjJs = function(e) {
2792
2815
  }, 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) {
2793
2816
  return e instanceof Date && !isNaN(e);
2794
2817
  }, e.is_function = Vn, e.is_gobj = Mn, e.is_metadata_key = function(e) {
2795
- if (!Pn(e)) return !1;
2818
+ if (!Un(e)) return !1;
2796
2819
  let t;
2797
2820
  for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
2798
2821
  return 2 === t;
2799
- }, e.is_null = Gn, e.is_number = Un, e.is_object = Cn, e.is_private_key = function(e) {
2800
- if (!Pn(e)) return !1;
2822
+ }, e.is_null = Gn, e.is_number = Pn, e.is_object = Cn, e.is_private_key = function(e) {
2823
+ if (!Un(e)) return !1;
2801
2824
  let t;
2802
2825
  for (t = 0; t < e.length && "_" === e[t] && !(t > 2); t++);
2803
2826
  return 1 === t;
2804
2827
  }, e.is_pure_number = function(e) {
2805
- if (Un(e)) return !0;
2806
- if (!Pn(e)) return !1;
2828
+ if (Pn(e)) return !0;
2829
+ if (!Un(e)) return !1;
2807
2830
  const t = Number(e);
2808
2831
  return !isNaN(t) && "" !== e.trim() && !isNaN(t);
2809
- }, e.is_string = Pn, e.jdb_delete = function(e, t, n, r) {
2832
+ }, e.is_string = Un, e.jdb_delete = function(e, t, n, r) {
2810
2833
  let l = nr(null, nr(null, e, "topics", null, 0), t, null, 0);
2811
2834
  if (!l) return dn("jdb_delete: topic not found: " + t), null;
2812
2835
  if (Wn(r.id)) return dn("jdb_delete: record without id: " + r), mn(r), null;
@@ -2906,11 +2929,11 @@ var gobjJs = function(e) {
2906
2929
  e && !Mn(e) && dn("GObj bad instanceof");
2907
2930
  let o = qn(e, t, n, !1);
2908
2931
  const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
2909
- 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);
2932
+ 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);
2910
2933
  }, e.kw_get_local_storage_value = ar, e.kw_get_pointer = er, e.kw_get_real = function(e, t, n, r, l) {
2911
2934
  e && !Mn(e) && dn("GObj bad instanceof");
2912
2935
  let o = qn(e, t, n, !1);
2913
- const s = l && l & zt.KW_REQUIRED, i = l && l & zt.KW_CREATE, _ = l && l & zt.KW_EXTRACT;
2936
+ 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;
2914
2937
  if (void 0 === o) {
2915
2938
  if (i) {
2916
2939
  let l = Number(r);
@@ -2918,7 +2941,18 @@ var gobjJs = function(e) {
2918
2941
  }
2919
2942
  return s && (dn(`path not found: '${n}'`), hn(t)), Number(r);
2920
2943
  }
2921
- return _ && zn(e, t, n), Un(o) ? Number(o) : (s && (dn(`path value MUST BE a number: ${n}`), mn(t)), Number(r));
2944
+ let u;
2945
+ if (Pn(o)) u = o;
2946
+ else {
2947
+ if (!a) return dn(`${e ? et(e) + ": " : ""}path MUST BE a json real: '${n}'`), hn(t), Number(r);
2948
+ if (Fn(o)) u = o ? 1 : 0;
2949
+ else if (Un(o)) u = parseFloat(o), Number.isNaN(u) && (u = 0);
2950
+ else {
2951
+ if (null !== o) return dn(`${e ? et(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), hn(t), 0;
2952
+ u = 0;
2953
+ }
2954
+ }
2955
+ return _ && zn(e, t, n), u;
2922
2956
  }, 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) {
2923
2957
  if (e && !Mn(e) && dn("GObj bad instanceof"), !t) return null;
2924
2958
  r || (r = sr);
@@ -2939,10 +2973,10 @@ var gobjJs = function(e) {
2939
2973
  }, e.kwid_get_ids = function(e, t) {
2940
2974
  if (e && !Mn(e) && dn("GObj bad instanceof"), !t) return [];
2941
2975
  let n = [];
2942
- if (Pn(t)) n.push(t);
2976
+ if (Un(t)) n.push(t);
2943
2977
  else if (Cn(t)) for (let e in t) t.hasOwnProperty(e) && n.push(e);
2944
2978
  else Ln(t) && t.forEach(function(t) {
2945
- if (Pn(t)) Wn(t) || n.push(t);
2979
+ if (Un(t)) Wn(t) || n.push(t);
2946
2980
  else if (Cn(t)) {
2947
2981
  let r = Zn(e, t, "id", 0, 0);
2948
2982
  r && n.push(r);
@@ -2975,7 +3009,7 @@ var gobjJs = function(e) {
2975
3009
  let r = [];
2976
3010
  if (Ln(e)) for (let l = 0; l < e.length; l++) {
2977
3011
  let o = e[l];
2978
- if (Pn(o)) r.push({
3012
+ if (Un(o)) r.push({
2979
3013
  id: e[l],
2980
3014
  value: e[l]
2981
3015
  });
@@ -3215,7 +3249,7 @@ var gobjJs = function(e) {
3215
3249
  placeholder: void 0,
3216
3250
  fkey: null
3217
3251
  };
3218
- if (Pn(t)) {
3252
+ if (Un(t)) {
3219
3253
  let e = t.split(".");
3220
3254
  for (let t = 0; t < e.length; t++) {
3221
3255
  let r = e[t];
@@ -3245,8 +3279,8 @@ var gobjJs = function(e) {
3245
3279
  total: _
3246
3280
  };
3247
3281
  } };
3248
- }, 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) {
3249
- if (Pn(t)) {
3282
+ }, 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) {
3283
+ if (Un(t)) {
3250
3284
  if (-1 === t.indexOf("^")) {
3251
3285
  let n, r = e.hook;
3252
3286
  if (1 !== $n(r)) return dn("bad hook 1"), dn(e), dn(t), null;
@@ -3272,7 +3306,7 @@ var gobjJs = function(e) {
3272
3306
  id: t.id
3273
3307
  } : (dn("bad hook 3"), dn(e), dn(t), null);
3274
3308
  }, e.treedb_encoder_fkey = function(e, t) {
3275
- let n = Ur(e, t);
3309
+ let n = Pr(e, t);
3276
3310
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3277
3311
  }, e.treedb_get_field_desc = Mr, e.treedb_hook_data_size = function(e) {
3278
3312
  if (Ln(e) && 1 === In(e)) {