@yuneta/gobj-js 7.26.26 → 7.26.28

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.
@@ -147,7 +147,7 @@ var u = "7.0.0a", a = null, c = null, _ = null, f = null, g = null, d = null, b
147
147
  DTP_DICT: 6,
148
148
  DTP_JSON: 7,
149
149
  DTP_POINTER: 8
150
- }), S = (e) => e === O.DTP_STRING, j = (e) => e === O.DTP_BOOLEAN, N = (e) => e === O.DTP_REAL, w = (e) => e === O.DTP_LIST, $ = (e) => e === O.DTP_DICT, R = (e) => e === O.DTP_JSON;
150
+ }), S = (e) => e === O.DTP_STRING, j = (e) => e === O.DTP_BOOLEAN, N = (e) => e === O.DTP_REAL, $ = (e) => e === O.DTP_LIST, w = (e) => e === O.DTP_DICT, R = (e) => e === O.DTP_JSON;
151
151
  O.DTP_POINTER;
152
152
  var A = (e) => ((e) => e === O.DTP_INTEGER)(e) || N(e) || j(e), D = Object.freeze({
153
153
  SDF_NOTACCESS: 1,
@@ -422,10 +422,10 @@ function Ne(e) {
422
422
  const t = Go(e) ? mt(e) : e;
423
423
  return t ? ie(t.no_trace_level, t.s_user_trace_level) : (Hr(`gobj_get_gclass_trace_no_level: gclass NOT FOUND: ${e}`), []);
424
424
  }
425
- function we(e) {
425
+ function $e(e) {
426
426
  return oe = Number(e) || 0, 0;
427
427
  }
428
- function $e(e, t, n) {
428
+ function we(e, t, n) {
429
429
  const r = Go(e) ? mt(e) : e;
430
430
  if (!r) return Hr(`gobj_set_gclass_trace: gclass NOT FOUND: ${e}`), -1;
431
431
  const l = null === t ? 4294967295 : se(t, "gobj_set_gclass_trace", r.s_user_trace_level || null);
@@ -597,7 +597,7 @@ function Ke(e) {
597
597
  }(e)) return t;
598
598
  }
599
599
  function Be(e, t) {
600
- return S(e) ? Go(t) : $(e) ? Fo(t) : w(e) ? Mo(t) : !A(e) || "number" == typeof t || "boolean" == typeof t;
600
+ return S(e) ? Go(t) : w(e) ? Fo(t) : $(e) ? Mo(t) : !A(e) || "number" == typeof t || "boolean" == typeof t;
601
601
  }
602
602
  function Ye(e) {
603
603
  return e >= -0x8000000000000000 && e < 0x8000000000000000;
@@ -661,7 +661,7 @@ function qe(e, t, n) {
661
661
  refused: "a number out of its range"
662
662
  };
663
663
  }
664
- if ($(e) || w(e)) {
664
+ if (w(e) || $(e)) {
665
665
  const n = Ke(t);
666
666
  return void 0 !== n && Be(e, n) ? {
667
667
  value: n,
@@ -717,7 +717,7 @@ function ze(e, t) {
717
717
  refused: null
718
718
  } : r;
719
719
  }
720
- return S(e) || $(e) || w(e) || A(e) ? n ? {
720
+ return S(e) || w(e) || $(e) || A(e) ? n ? {
721
721
  value: void 0,
722
722
  refused: "a text with a NUL in it"
723
723
  } : Go(t) && !S(e) ? qe(e, t, !0) : Be(e, t) ? A(e) ? function(e, t) {
@@ -1034,7 +1034,7 @@ function Ot(e, t) {
1034
1034
  t.parent && Hr(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
1035
1035
  }
1036
1036
  function St(e, t) {
1037
- let n = Ns(e.dl_children, t);
1037
+ let n = $s(e.dl_children, t);
1038
1038
  n >= 0 && (Co(e.dl_children, n), t.parent = null);
1039
1039
  }
1040
1040
  function jt(e, t) {
@@ -1043,10 +1043,10 @@ function jt(e, t) {
1043
1043
  function Nt(e, t) {
1044
1044
  return en(e) ? c ? c(e, t) : -1 : (Hr(`${an(e)}: Only gobj services can load/save writable-persistent`), -1);
1045
1045
  }
1046
- function wt(e, t) {
1046
+ function $t(e, t) {
1047
1047
  return en(e) ? _ ? _(e, t) : -1 : (Hr(`${an(e)}: Only gobj services can load/save writable-persistent`), -1);
1048
1048
  }
1049
- function $t(e, t) {
1049
+ function wt(e, t) {
1050
1050
  return f ? f(e, t) : null;
1051
1051
  }
1052
1052
  function Rt(e, t) {
@@ -1156,17 +1156,38 @@ function Mt(e) {
1156
1156
  if (dn(e)) return Hr("gobj NULL or DESTROYED"), -1;
1157
1157
  if (e.running) return Hr(`${an(e)}: GObj ALREADY RUNNING`), -1;
1158
1158
  if (e.disabled) return Hr(`${an(e)}: GObj DISABLED`), -1;
1159
+ const n = function(e) {
1160
+ const t = ot(e), n = [];
1161
+ if (!Mo(e.gclass.attrs_table)) return null;
1162
+ for (const r of e.gclass.attrs_table) {
1163
+ if (!(r.name && r.flag & D.SDF_REQUIRED)) continue;
1164
+ const e = t[r.name];
1165
+ switch (r.type) {
1166
+ case O.DTP_STRING:
1167
+ Go(e) && !qo(e) || n.push(r.name);
1168
+ break;
1169
+ case O.DTP_LIST:
1170
+ case O.DTP_DICT:
1171
+ case O.DTP_JSON:
1172
+ Uo(e) && n.push(r.name);
1173
+ break;
1174
+ case O.DTP_POINTER: e || n.push(r.name);
1175
+ }
1176
+ }
1177
+ return n.length ? n : null;
1178
+ }(e);
1179
+ if (n) return Hr(`${an(e)}: Cannot start without all required attributes: ` + JSON.stringify(n)), -1;
1159
1180
  fe(e) && ee(t("⏺ ⏺ start: %s", cn(e))), e.running = !0;
1160
- let n = 0;
1181
+ let r = 0;
1161
1182
  if (e.gclass.gmt.mt_start) {
1162
1183
  const t = nr(e, "mt_start", v.FRAME_METHOD);
1163
1184
  try {
1164
- n = e.gclass.gmt.mt_start(e);
1185
+ r = e.gclass.gmt.mt_start(e);
1165
1186
  } finally {
1166
1187
  rr(t);
1167
1188
  }
1168
1189
  }
1169
- return n;
1190
+ return r;
1170
1191
  }
1171
1192
  function Gt(e) {
1172
1193
  const t = nr(e, "gobj_start", v.FRAME_WATCH);
@@ -1321,46 +1342,60 @@ function hn(e, t, n) {
1321
1342
  return Jo(e) ? t ? st(e.gclass, t, n) : e.gclass.attrs_table : (Hr("gobj NULL of bad type"), null);
1322
1343
  }
1323
1344
  function mn(e, t, n, r, l) {
1324
- return dn(e) ? (Hr("gobj NULL, destroying, or bad type"), 0) : vn(e.dl_children, t, n, r, l);
1345
+ return dn(e) ? (Hr("gobj NULL, destroying, or bad type"), 0) : function(e, t, n, r, l, o) {
1346
+ let i, s = [...e.dl_children];
1347
+ if (n & J.WALK_LAST2FIRST) for (let n = s.length; n > 0; n--) {
1348
+ if (i = s[n - 1], vn(i, e, t)) continue;
1349
+ t.add(i);
1350
+ let u = En(r(i, l, o));
1351
+ if (u < 0) return u;
1352
+ }
1353
+ else for (let n = 0; n < s.length; n++) {
1354
+ if (i = s[n], vn(i, e, t)) continue;
1355
+ t.add(i);
1356
+ let u = En(r(i, l, o));
1357
+ if (u < 0) return u;
1358
+ }
1359
+ return 0;
1360
+ }(e, /* @__PURE__ */ new Set(), t, n, r, l);
1325
1361
  }
1326
1362
  function yn(e, t, n, r, l) {
1327
- return dn(e) ? (Hr("gobj NULL, destroying, or bad type"), 0) : On(e.dl_children, t, n, r, l);
1363
+ return dn(e) ? (Hr("gobj NULL, destroying, or bad type"), 0) : On(e, /* @__PURE__ */ new Set(), t, n, r, l);
1328
1364
  }
1329
1365
  function En(e) {
1330
1366
  return "number" == typeof e && isFinite(e) ? e : (null == e || Hr(`walk callback must return a NUMBER (-1 stop, 0 descend, >0 skip children), got ${typeof e}: taken as 0`), 0);
1331
1367
  }
1332
- function vn(e, t, n, r, l) {
1333
- let o, i = [...e];
1334
- if (t & J.WALK_LAST2FIRST) for (let e = i.length; e > 0; e--) {
1335
- o = i[e - 1];
1336
- let t = En(n(o, r, l));
1337
- if (t < 0) return t;
1368
+ function vn(e, t, n) {
1369
+ return dn(e) || e.parent !== t || n.has(e);
1370
+ }
1371
+ function Tn(e, t, n, r, l, o) {
1372
+ let i = [...e.dl_children];
1373
+ n & J.WALK_LAST2FIRST && i.reverse();
1374
+ let s = [];
1375
+ for (const n of i) {
1376
+ if (vn(n, e, t)) continue;
1377
+ t.add(n), s.push(n);
1378
+ let i = En(r(n, l, o));
1379
+ if (i < 0) return i;
1338
1380
  }
1339
- else for (let e = 0; e < i.length; e++) {
1340
- o = i[e];
1341
- let t = En(n(o, r, l));
1342
- if (t < 0) return t;
1381
+ for (const e of s) {
1382
+ if (dn(e)) continue;
1383
+ let i = Tn(e, t, n, r, l, o);
1384
+ if (i < 0) return i;
1343
1385
  }
1344
1386
  return 0;
1345
1387
  }
1346
- function Tn(e, t, n, r, l) {
1347
- let o, i = vn(e, t, n, r, l);
1348
- if (i < 0) return i;
1349
- if (t & J.WALK_LAST2FIRST) {
1350
- for (let s = e.length; s > 0; s--) if (o = e[s - 1], i = Tn([...o.dl_children], t, n, r, l), i < 0) return i;
1351
- } else for (let s = 0; s < e.length; s++) if (o = e[s], i = Tn([...o.dl_children], t, n, r, l), i < 0) return i;
1352
- return i;
1353
- }
1354
- function On(e, t, n, r, l) {
1355
- if (t & J.WALK_BYLEVEL) return Tn(e, t, n, r, l);
1356
- let o, i;
1357
- if (t & J.WALK_BOTTOM2TOP) for (let s = e.length; s > 0; s--) {
1358
- if (i = e[s - 1], o = On([...i.dl_children], t, n, r, l), o < 0) return o;
1359
- if (o = En(n(i, r, l)), o < 0) return o;
1360
- }
1361
- else for (let s = 0; s < e.length; s++) {
1362
- if (i = e[s], o = En(n(i, r, l)), o < 0) return o;
1363
- if (0 === o && (o = On([...i.dl_children], t, n, r, l), o < 0)) return o;
1388
+ function On(e, t, n, r, l, o) {
1389
+ if (n & J.WALK_BYLEVEL) return Tn(e, t, n, r, l, o);
1390
+ let i, s, u = [...e.dl_children];
1391
+ if (n & J.WALK_BOTTOM2TOP) {
1392
+ for (let a = u.length; a > 0; a--) if (s = u[a - 1], !vn(s, e, t)) {
1393
+ if (i = On(s, t, n, r, l, o), i < 0) return i;
1394
+ if (!dn(s) && (t.add(s), i = En(r(s, l, o)), i < 0)) return i;
1395
+ }
1396
+ } else for (let a = 0; a < u.length; a++) if (s = u[a], !vn(s, e, t)) {
1397
+ if (t.add(s), i = En(r(s, l, o)), i < 0) return i;
1398
+ if (0 === i && !dn(s) && (i = On(s, t, n, r, l, o), i < 0)) return i;
1364
1399
  }
1365
1400
  return 0;
1366
1401
  }
@@ -1394,7 +1429,7 @@ function Nn(e, t) {
1394
1429
  }
1395
1430
  return null;
1396
1431
  }
1397
- function wn(e, t) {
1432
+ function $n(e, t) {
1398
1433
  if (dn(e)) return Hr("gobj NULL or DESTROYED"), null;
1399
1434
  t = t || {};
1400
1435
  let n = [];
@@ -1405,7 +1440,7 @@ function wn(e, t) {
1405
1440
  }
1406
1441
  return n;
1407
1442
  }
1408
- function $n(e, t) {
1443
+ function wn(e, t) {
1409
1444
  t = t || {};
1410
1445
  let n = [];
1411
1446
  return function e(n, r) {
@@ -1452,7 +1487,7 @@ function Cn(e, t, n) {
1452
1487
  const o = l[n];
1453
1488
  if (o.name && (-1 === t || o.flag & t)) {
1454
1489
  let t;
1455
- !e.gclass.gmt.mt_reading || e.obflag & B.obflag_destroyed ? t = No(e.jn_attrs, o.name) : (t = e.gclass.gmt.mt_reading(e, o.name), void 0 === t && (t = No(e.jn_attrs, o.name))), $o(r, o.name, t);
1490
+ !e.gclass.gmt.mt_reading || e.obflag & B.obflag_destroyed ? t = No(e.jn_attrs, o.name) : (t = e.gclass.gmt.mt_reading(e, o.name), void 0 === t && (t = No(e.jn_attrs, o.name))), wo(r, o.name, t);
1456
1491
  }
1457
1492
  }
1458
1493
  return r;
@@ -1680,7 +1715,7 @@ function or(e, n, r, l) {
1680
1715
  if (1 === Q) ee(t("🔄 %s %s%s %s from %s%s", n || "", e.running ? "" : "!!", an(e), o.state_name, l && !l.running ? "!!" : "", an(l)));
1681
1716
  else {
1682
1717
  let r = "";
1683
- s.action && (r = Rs(s.action)), ee(t("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", un(e), sn(e), o.state_name, "", n || "", "", r, l && !l.running ? "!!" : "", un(l), sn(l)));
1718
+ s.action && (r = Cs(s.action)), ee(t("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", un(e), sn(e), o.state_name, "", n || "", "", r, l && !l.running ? "!!" : "", un(l), sn(l)));
1684
1719
  }
1685
1720
  r && ge(e) && ko(r) && yo(r);
1686
1721
  }
@@ -1825,11 +1860,11 @@ function dr(e, n, r, l) {
1825
1860
  }
1826
1861
  if (li(n, "__hard_subscription__")) {
1827
1862
  let t = ci(e, n, "__hard_subscription__", !1);
1828
- wo(n, "__hard_subscription__"), t && (o |= ir.__hard_subscription__);
1863
+ $o(n, "__hard_subscription__"), t && (o |= ir.__hard_subscription__);
1829
1864
  }
1830
1865
  if (li(n, "__own_event__")) {
1831
1866
  let t = ci(e, n, "__own_event__", !1);
1832
- wo(n, "__own_event__"), t && (o |= ir.__own_event__);
1867
+ $o(n, "__own_event__"), t && (o |= ir.__own_event__);
1833
1868
  }
1834
1869
  }
1835
1870
  Lo(s) > 0 && Ro(l, "__local__", Eo(s)), Lo(u) > 0 && Ro(l, "__filter__", Eo(u)), qo(a) || Ro(l, "__service__", a);
@@ -1973,7 +2008,7 @@ Object.freeze({
1973
2008
  JSON_FALSE: 7,
1974
2009
  JSON_NULL: 8
1975
2010
  });
1976
- var Sr = "undefined" != typeof window ? window.console : console, jr = Sr.error, Nr = Sr.warn, wr = Sr.info, $r = Sr.debug, Rr = null, Ar = 600, Dr = [];
2011
+ var Sr = "undefined" != typeof window ? window.console : console, jr = Sr.error, Nr = Sr.warn, $r = Sr.info, wr = Sr.debug, Rr = null, Ar = 600, Dr = [];
1977
2012
  function Cr(e) {
1978
2013
  if ((e = "function" == typeof e ? e : null) && e !== Rr) {
1979
2014
  Rr = e;
@@ -2100,27 +2135,27 @@ function qr(e, ...t) {
2100
2135
  }
2101
2136
  }
2102
2137
  function Hr(e, ...t) {
2103
- let n = Br(e, ...t), r = Ss();
2138
+ let n = Br(e, ...t), r = js();
2104
2139
  jr && (jr === Sr.error ? Ur("error", n) && Yr(jr, "%c" + r + " ERROR: " + String(n), "color:red") : (Ur("error", n) && Sr.error("%c" + r + " ERROR: " + String(n), "color:red"), qr(jr, `${r} ERROR: ${String(n)}`))), Mr("error", n, r);
2105
2140
  }
2106
2141
  function zr(e, ...t) {
2107
- let n = Br(e, ...t), r = Ss();
2142
+ let n = Br(e, ...t), r = js();
2108
2143
  Nr && (Nr === Sr.warn ? Ur("warning", n) && Yr(Nr, "%c" + r + " WARNING: " + String(n), "color:yellow") : (Ur("warning", n) && Sr.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), qr(Nr, `${r} WARNING: ${String(n)}`))), Mr("warning", n, r);
2109
2144
  }
2110
2145
  function Qr(e, ...t) {
2111
- let n = Br(e, ...t), r = Ss();
2112
- wr && Ur("info", n) && Yr(wr, "%c" + r + " INFO: " + String(n), "color:cyan"), Mr("info", n, r);
2146
+ let n = Br(e, ...t), r = js();
2147
+ $r && Ur("info", n) && Yr($r, "%c" + r + " INFO: " + String(n), "color:cyan"), Mr("info", n, r);
2113
2148
  }
2114
2149
  function Xr(e, ...t) {
2115
- let n = Br(e, ...t), r = Ss();
2116
- $r && Ur("debug", n) && Yr($r, "%c" + r + " DEBUG: " + String(n), "color:silver"), Mr("debug", n, r);
2150
+ let n = Br(e, ...t), r = js();
2151
+ wr && Ur("debug", n) && Yr(wr, "%c" + r + " DEBUG: " + String(n), "color:silver"), Mr("debug", n, r);
2117
2152
  }
2118
2153
  function Zr(e, ...t) {
2119
- let n = Br(e, ...t), r = Ss();
2120
- $r && Ur("msg", n) && Yr($r, "%c" + r + " MSG: " + String(n), "color:cyan"), Mr("msg", n, r);
2154
+ let n = Br(e, ...t), r = js();
2155
+ wr && Ur("msg", n) && Yr(wr, "%c" + r + " MSG: " + String(n), "color:cyan"), Mr("msg", n, r);
2121
2156
  }
2122
2157
  function el(e, t) {
2123
- Ur("json", t) && (t && Yr(Sr.warn, "=====> " + xr(t)), Yr(Sr.dir, e)), Mr("json", e, Ss());
2158
+ Ur("json", t) && (t && Yr(Sr.warn, "=====> " + xr(t)), Yr(Sr.dir, e)), Mr("json", e, js());
2124
2159
  }
2125
2160
  function tl(e) {
2126
2161
  const t = new Array(128).fill(null);
@@ -2342,8 +2377,8 @@ function jl(e, t) {
2342
2377
  function Nl(e) {
2343
2378
  return e >= 65 && e <= 90 ? e - 65 : e >= 97 && e <= 122 ? e - 97 + 26 : e >= 48 && e <= 57 ? e - 48 + 52 : 43 === e ? 62 : 47 === e ? 63 : -1;
2344
2379
  }
2345
- var wl = " \r\n\"',;}]\0";
2346
- function $l(e, t) {
2380
+ var $l = " \r\n\"',;}]\0";
2381
+ function wl(e, t) {
2347
2382
  const n = jl(e, t);
2348
2383
  if (!n) return [0, 0];
2349
2384
  const r = 5 === n ? "basic" : "bearer";
@@ -2357,7 +2392,7 @@ function $l(e, t) {
2357
2392
  return n < e.length && e[n] === e[o] && n > o + 1 ? [o - t, n + 1 - o] : [0, 0];
2358
2393
  }
2359
2394
  let i = o;
2360
- for (; i < e.length && wl.indexOf(e[i]) < 0;) i++;
2395
+ for (; i < e.length && $l.indexOf(e[i]) < 0;) i++;
2361
2396
  if (i === o) return [0, 0];
2362
2397
  if (!l) {
2363
2398
  let t = i;
@@ -2400,7 +2435,7 @@ function $l(e, t) {
2400
2435
  }
2401
2436
  function Rl(e, t) {
2402
2437
  const n = e[t];
2403
- return "e" === n ? [0, Sl(e, t)] : "b" === n || "B" === n ? $l(e, t) : [0, 0];
2438
+ return "e" === n ? [0, Sl(e, t)] : "b" === n || "B" === n ? wl(e, t) : [0, 0];
2404
2439
  }
2405
2440
  function Al(e, t) {
2406
2441
  const n = e[t];
@@ -2834,10 +2869,10 @@ function jo(e, t) {
2834
2869
  function No(e, t) {
2835
2870
  if (e && Object.prototype.hasOwnProperty.call(e, t)) return e[t];
2836
2871
  }
2837
- function wo(e, t) {
2872
+ function $o(e, t) {
2838
2873
  e && Object.prototype.hasOwnProperty.call(e, t) && delete e[t];
2839
2874
  }
2840
- function $o(e, t, n) {
2875
+ function wo(e, t, n) {
2841
2876
  ii(e, t, n);
2842
2877
  }
2843
2878
  function Ro(e, t, n) {
@@ -3257,55 +3292,92 @@ function Ni(e, t, n, r) {
3257
3292
  if (!Fo(t)) return l;
3258
3293
  if (Oo(l, t), Go(n) && !qo(n)) {
3259
3294
  let o = n;
3260
- Object.prototype.hasOwnProperty.call(t, o) ? wo(l, o) : r && Hr(`${an(e)}: key not found: ${o}`);
3261
- } else if (Fo(n) && ko(n) > 0) for (let o of Object.keys(n)) Object.prototype.hasOwnProperty.call(t, o) ? wo(l, o) : r && Hr(`${an(e)}: key not found: ${o}`);
3295
+ Object.prototype.hasOwnProperty.call(t, o) ? $o(l, o) : r && Hr(`${an(e)}: key not found: ${o}`);
3296
+ } else if (Fo(n) && ko(n) > 0) for (let o of Object.keys(n)) Object.prototype.hasOwnProperty.call(t, o) ? $o(l, o) : r && Hr(`${an(e)}: key not found: ${o}`);
3262
3297
  else {
3263
3298
  if (!(Mo(n) && Po(n) > 0)) return {};
3264
3299
  for (let o = 0; o < n.length; o++) {
3265
3300
  let i = n[o];
3266
- Object.prototype.hasOwnProperty.call(t, i) ? wo(l, i) : r && Hr(`${an(e)}: key not found: ${i}`);
3301
+ Object.prototype.hasOwnProperty.call(t, i) ? $o(l, i) : r && Hr(`${an(e)}: key not found: ${i}`);
3267
3302
  }
3268
3303
  }
3269
3304
  return l;
3270
3305
  }
3306
+ function $i() {
3307
+ if ("undefined" == typeof window) return null;
3308
+ let e;
3309
+ try {
3310
+ e = window.localStorage;
3311
+ } catch (e) {
3312
+ const t = () => {
3313
+ throw e;
3314
+ };
3315
+ return {
3316
+ getItem: t,
3317
+ setItem: t,
3318
+ removeItem: t
3319
+ };
3320
+ }
3321
+ return e || null;
3322
+ }
3271
3323
  var wi = /* @__PURE__ */ new Set();
3272
- function $i(e, t) {
3273
- wi.has(e) || (wi.add(e), zr(`kw_get_local_storage_value(): localStorage key "${e}" ${t}`));
3324
+ function Ri(e, t) {
3325
+ wi.has(e) || (wi.add(e), zr(t));
3274
3326
  }
3275
- function Ri(e, t, n = !1) {
3276
- if ("undefined" == typeof window || !window.localStorage) return t;
3277
- let r;
3327
+ function Ai(e, t, n = !1) {
3328
+ const r = $i();
3329
+ if (!r) return t;
3330
+ const l = `kw_get_local_storage_value(): localStorage key "${e}"`;
3331
+ let o;
3278
3332
  try {
3279
- r = window.localStorage.getItem(e);
3333
+ o = r.getItem(e);
3280
3334
  } catch (n) {
3281
- return $i(e, "cannot be read (storage blocked?): the default is used"), t;
3335
+ return Ri(e, `${l} cannot be read (storage blocked?): the default is used`), t;
3282
3336
  }
3283
- let l = null;
3284
- if (null !== r) try {
3285
- l = JSON.parse(r);
3337
+ let i = !0, s = null;
3338
+ if (null !== o) try {
3339
+ s = JSON.parse(o);
3286
3340
  } catch (t) {
3287
- $i(e, "does not hold json: removed, the default is used"), Di(e), l = null;
3341
+ s = null;
3342
+ try {
3343
+ r.removeItem(e), zr(`${l} does not hold json: removed, the default is used`);
3344
+ } catch (t) {
3345
+ i = !1, Ri(e, `${l} does not hold json and cannot be removed: the default is used`);
3346
+ }
3288
3347
  }
3289
- return null === l ? (n && Ai(e, t), t) : l;
3348
+ if (null === s && (s = t, n)) {
3349
+ const n = nt(t);
3350
+ if (void 0 === n) Hr(`${l}: cannot write the default: a value with no json text`);
3351
+ else try {
3352
+ r.setItem(e, n);
3353
+ } catch (t) {
3354
+ i = !1, Ri(e, `${l} cannot be written (storage full or blocked?): the default is used, not kept`);
3355
+ }
3356
+ }
3357
+ return i && wi.delete(e), s;
3290
3358
  }
3291
- function Ai(e, t) {
3292
- if ("undefined" == typeof window || !window.localStorage) return 0;
3293
- if (!e || void 0 === t) return Hr(`kw_set_local_storage_value(): invalid key or value: key=${e}`), -1;
3359
+ function Di(e, t) {
3360
+ if (!e) return Hr(`kw_set_local_storage_value(): invalid key: key=${e}`), -1;
3361
+ const n = nt(t);
3362
+ if (void 0 === n) return Hr(`kw_set_local_storage_value(): cannot save "${e}": a value with no json text`), -1;
3363
+ const r = $i();
3364
+ if (!r) return 0;
3294
3365
  try {
3295
- return window.localStorage.setItem(e, JSON.stringify(t)), 0;
3366
+ return r.setItem(e, n), 0;
3296
3367
  } catch (t) {
3297
3368
  return Hr(`kw_set_local_storage_value(): cannot save "${e}" (storage full or blocked?): ${t && t.message ? t.message : t}`), -1;
3298
3369
  }
3299
3370
  }
3300
- function Di(e) {
3301
- if ("undefined" != typeof window && window.localStorage) if (e) try {
3302
- window.localStorage.removeItem(e);
3371
+ function Ci(e) {
3372
+ const t = $i();
3373
+ if (t) if (e) try {
3374
+ t.removeItem(e);
3303
3375
  } catch (t) {
3304
- window.console.warn(`Error removing localStorage key "${e}":`, t);
3376
+ zr(`kw_remove_local_storage_value(): cannot remove "${e}" (storage blocked?): ${t && t.message ? t.message : t}`);
3305
3377
  }
3306
- else window.console.warn(`Invalid key for localStorage removal: ${e}`);
3378
+ else Hr(`kw_remove_local_storage_value(): invalid key: key=${e}`);
3307
3379
  }
3308
- function Ci(e, t) {
3380
+ function Ii(e, t) {
3309
3381
  if (xo(e) || xo(t)) return !0;
3310
3382
  if (Mo(e)) {
3311
3383
  if (0 === e.length) return !0;
@@ -3316,7 +3388,7 @@ function Ci(e, t) {
3316
3388
  } else if (Go(e) && e === t) return !0;
3317
3389
  return !1;
3318
3390
  }
3319
- function Ii(e, t, n, r, l) {
3391
+ function ki(e, t, n, r, l) {
3320
3392
  if (e && !Jo(e) && Hr("GObj bad instanceof"), !t) return null;
3321
3393
  l || (l = vi);
3322
3394
  let o = [];
@@ -3327,18 +3399,18 @@ function Ii(e, t, n, r, l) {
3327
3399
  if (!Go(u)) continue;
3328
3400
  s = u;
3329
3401
  }
3330
- Ci(n, s) && l(u, r) && o.push(u);
3402
+ Ii(n, s) && l(u, r) && o.push(u);
3331
3403
  }
3332
3404
  else {
3333
3405
  if (!Fo(t)) return Hr("kw_collect() BAD kw parameter"), null;
3334
3406
  for (let e of Object.keys(t)) {
3335
3407
  let i = t[e];
3336
- Ci(n, e) && l(i, r) && o.push(i);
3408
+ Ii(n, e) && l(i, r) && o.push(i);
3337
3409
  }
3338
3410
  }
3339
3411
  return o;
3340
3412
  }
3341
- function ki(e, t, n) {
3413
+ function Pi(e, t, n) {
3342
3414
  e && !Jo(e) && Hr("GObj bad instanceof");
3343
3415
  let r = {};
3344
3416
  if (qo(n) || (t = ui(e, t, n)), Fo(t)) r = t;
@@ -3349,7 +3421,7 @@ function ki(e, t, n) {
3349
3421
  else Hr(`${an(e)} kwid_new_dict: data type unknown`);
3350
3422
  return r;
3351
3423
  }
3352
- function Pi(e, t, n) {
3424
+ function Li(e, t, n) {
3353
3425
  if (e && !Jo(e) && Hr("GObj bad instanceof"), qo(n) || (t = ui(e, t, n)), Mo(t)) return t;
3354
3426
  if (Fo(t)) {
3355
3427
  let n = [];
@@ -3361,12 +3433,12 @@ function Pi(e, t, n) {
3361
3433
  }
3362
3434
  return Hr(`${an(e)} kwid_new_list: wrong type for list`), [];
3363
3435
  }
3364
- function Li(e, t, n, r, l) {
3436
+ function Ui(e, t, n, r, l) {
3365
3437
  e && !Jo(e) && Hr("GObj bad instanceof");
3366
- let o = Ii(e, t, n, r, l);
3438
+ let o = ki(e, t, n, r, l);
3367
3439
  return o && 0 !== o.length ? o[0] : null;
3368
3440
  }
3369
- function Ui(e, t) {
3441
+ function Fi(e, t) {
3370
3442
  if (e && !Jo(e) && Hr("GObj bad instanceof"), !t) return [];
3371
3443
  let n = [];
3372
3444
  if (Go(t)) n.push(t);
@@ -3380,7 +3452,7 @@ function Ui(e, t) {
3380
3452
  });
3381
3453
  return n;
3382
3454
  }
3383
- function Fi(e, t, n) {
3455
+ function Mi(e, t, n) {
3384
3456
  t = t || "id", n = n || "value";
3385
3457
  let r = [];
3386
3458
  if (Mo(e)) for (let l = 0; l < e.length; l++) {
@@ -3417,12 +3489,12 @@ function Fi(e, t, n) {
3417
3489
  else Hr("list2options(): case2 not implemented");
3418
3490
  return r;
3419
3491
  }
3420
- function Mi(e, t) {
3492
+ function Gi(e, t) {
3421
3493
  if (!e) return -1;
3422
3494
  for (let n = 0; n < e.length; n++) if (e[n] && e[n].id === t) return n;
3423
3495
  return -1;
3424
3496
  }
3425
- function Gi(e, t, n) {
3497
+ function Vi(e, t, n) {
3426
3498
  if (!e || !t) return Hr("ERROR: str_in_list() list or str empty"), !1;
3427
3499
  let r = e.length;
3428
3500
  if (n) {
@@ -3434,17 +3506,17 @@ function Gi(e, t, n) {
3434
3506
  } else for (let n = 0; n < r; n++) if (e[n] === t) return !0;
3435
3507
  return !1;
3436
3508
  }
3437
- function Vi(e, t, n) {
3509
+ function Wi(e, t, n) {
3438
3510
  if (!e) return Hr("ERROR: strs_in_list() list empty"), !1;
3439
3511
  if (!t) return Hr("ERROR: strs_in_list() str empty"), !1;
3440
- for (let r = 0; r < t.length; r++) if (Gi(e, t[r], n)) return !0;
3512
+ for (let r = 0; r < t.length; r++) if (Vi(e, t[r], n)) return !0;
3441
3513
  return !1;
3442
3514
  }
3443
- function Wi(e, t) {
3515
+ function xi(e, t) {
3444
3516
  for (let n = 0; n < e.length; n++) if (t === e[n]) return e.splice(n, 1), !0;
3445
3517
  return !1;
3446
3518
  }
3447
- function xi(e, t) {
3519
+ function Ki(e, t) {
3448
3520
  try {
3449
3521
  let n = e.__md_iev__;
3450
3522
  if (n) return n[t];
@@ -3452,34 +3524,34 @@ function xi(e, t) {
3452
3524
  return;
3453
3525
  }
3454
3526
  }
3455
- function Ki(e, t, n) {
3527
+ function Bi(e, t, n) {
3456
3528
  let r = e.__md_iev__;
3457
3529
  r || (r = {}, e.__md_iev__ = r), r[t] = n;
3458
3530
  }
3459
- function Bi(e, t, n, r) {
3531
+ function Yi(e, t, n, r) {
3460
3532
  if (!Jo(e)) return Hr("gobj is not a GObj"), null;
3461
3533
  if (!t) return;
3462
- let l = xi(t, n);
3463
- l || (l = [], Ki(t, n, l));
3534
+ let l = Ki(t, n);
3535
+ l || (l = [], Bi(t, n, l));
3464
3536
  try {
3465
3537
  Mo(l) && l.unshift(r);
3466
3538
  } catch (e) {
3467
3539
  Hr(e);
3468
3540
  }
3469
3541
  }
3470
- function Yi(e, t, n, r) {
3542
+ function Ji(e, t, n, r) {
3471
3543
  if (!Jo(e)) return Hr("gobj is not a GObj"), null;
3472
3544
  if (!Fo(t)) return Hr("kw is not a dict"), null;
3473
- let l = xi(t, n);
3545
+ let l = Ki(t, n);
3474
3546
  return l ? 0 === l.length ? (r && Hr(`stack empty: ${n}`), null) : l[0] : (r && Hr(`stack NOT FOUND: ${n}`), null);
3475
3547
  }
3476
- function Ji(e, t, n) {
3548
+ function qi(e, t, n) {
3477
3549
  return qo(n) ? ai(e, t, "__md_iev__`__msg_type__") : yi(e, t, "__md_iev__", "__msg_type__", n), 0;
3478
3550
  }
3479
- function qi(e, t) {
3551
+ function Hi(e, t) {
3480
3552
  return gi(e, t, "__md_iev__`__msg_type__", "", 0);
3481
3553
  }
3482
- function Hi(e, t, n) {
3554
+ function zi(e, t, n) {
3483
3555
  let r = new XMLHttpRequest();
3484
3556
  r.open("GET", e, !0), r.setRequestHeader("Accept", "application/json"), r.onreadystatechange = function() {
3485
3557
  if (4 === r.readyState) if (200 === r.status || 0 === (e = r).status && e.responseText && e.responseURL.startsWith("file:")) try {
@@ -3491,13 +3563,13 @@ function Hi(e, t, n) {
3491
3563
  var e;
3492
3564
  }, r.send();
3493
3565
  }
3494
- function zi(e, t, n) {
3566
+ function Qi(e, t, n) {
3495
3567
  let r = new XMLHttpRequest();
3496
3568
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
3497
3569
  4 === r.readyState && n(r.status, r.responseText);
3498
3570
  }, r.send(t);
3499
3571
  }
3500
- function Qi(e, t, n) {
3572
+ function Xi(e, t, n) {
3501
3573
  void 0 !== n && Go(n) || (n = "");
3502
3574
  for (let r of Object.keys(e)) {
3503
3575
  if (!Object.prototype.hasOwnProperty.call(e, r)) continue;
@@ -3507,62 +3579,62 @@ function Qi(e, t, n) {
3507
3579
  r,
3508
3580
  e[r],
3509
3581
  n
3510
- ]), Fo(e[r]) && Qi(e[r], t, n), n = n.slice(0, -l.length);
3582
+ ]), Fo(e[r]) && Xi(e[r], t, n), n = n.slice(0, -l.length);
3511
3583
  }
3512
3584
  }
3513
- function Xi(e, t, n) {
3585
+ function Zi(e, t, n) {
3514
3586
  n && (e = Eo(e));
3515
3587
  let r = pi(null, e, "type", [], Or.KW_CREATE);
3516
3588
  gi(null, e, "hook", "data", Or.KW_CREATE);
3517
3589
  let l = pi(null, e, "schema", {}, Or.KW_CREATE), o = pi(null, e, "topics", {}, Or.KW_CREATE);
3518
- return Qi(l, function(e, t, n, l) {
3590
+ return Xi(l, function(e, t, n, l) {
3519
3591
  "__" === t.substring(0, 2) || Fo(n) || pi(null, o, l, Eo(r), Or.KW_CREATE);
3520
3592
  }, t), e;
3521
3593
  }
3522
- function Zi(e, t, n, r) {
3594
+ function es(e, t, n, r) {
3523
3595
  let l = pi(null, pi(null, e, "topics", null, 0), t, null, 0);
3524
3596
  if (!l) return Hr("jdb_update: topic not found: " + t), null;
3525
3597
  if (!Fo(r) || qo(r.id)) return Hr(`jdb_update: record without id: ${Wr(r)}`), null;
3526
3598
  if (!Go(n)) return Hr(`jdb_update: path must be a string: ${String(n)}`), null;
3527
3599
  if ("" !== n && n.split("`").includes("")) return Hr(`jdb_update: empty segment in path: '${n}'`), null;
3528
3600
  let o, i, s = n.split("`"), u = l;
3529
- for (; (o = s.shift()) && !qo(o) && u;) Fo(u) && (u = pi(null, u, e.hook, null, 0)), u = ls(u, null, o, !1);
3601
+ for (; (o = s.shift()) && !qo(o) && u;) Fo(u) && (u = pi(null, u, e.hook, null, 0)), u = os(u, null, o, !1);
3530
3602
  if (!u || 0 !== s.length) return Hr(`jdb_update: path not found in topic '${t}': '${n}'`), null;
3531
3603
  if (Mo(u)) i = u;
3532
3604
  else {
3533
3605
  if (u.id === r.id) return Oo(u, r), l;
3534
- if (i = pi(null, u, e.hook, null, 0), null == i) i = [], $o(u, e.hook, i);
3606
+ if (i = pi(null, u, e.hook, null, 0), null == i) i = [], wo(u, e.hook, i);
3535
3607
  else if (!Mo(i)) return Hr(`jdb_update: the hook '${e.hook}' of '${n}' is not a list in topic '${t}'`), null;
3536
3608
  }
3537
- let a = ls(i, e.hook, r.id, !1);
3609
+ let a = os(i, e.hook, r.id, !1);
3538
3610
  return a ? Oo(a, r) : i.push(r), l;
3539
3611
  }
3540
- function es(e, t, n, r) {
3612
+ function ts(e, t, n, r) {
3541
3613
  let l = pi(null, pi(null, e, "topics", null, 0), t, null, 0);
3542
3614
  if (!l) return Hr("jdb_delete: topic not found: " + t), null;
3543
3615
  if (!Fo(r) || qo(r.id)) return Hr(`jdb_delete: record without id: ${Wr(r)}`), null;
3544
3616
  if (!Go(n)) return Hr(`jdb_delete: path must be a string: ${String(n)}`), null;
3545
3617
  if ("" !== n && n.split("`").includes("")) return Hr(`jdb_delete: empty segment in path: '${n}'`), null;
3546
3618
  let o, i = n.split("`"), s = l;
3547
- for (; (o = i.shift()) && !qo(o) && s;) Fo(s) && (s = pi(null, s, e.hook, null, 0)), s = ls(s, null, o, !1);
3619
+ for (; (o = i.shift()) && !qo(o) && s;) Fo(s) && (s = pi(null, s, e.hook, null, 0)), s = os(s, null, o, !1);
3548
3620
  if (!s || 0 !== i.length) return Hr(`jdb_delete: path not found in topic '${t}': '${n}'`), null;
3549
- let u = Mo(s) ? s : pi(null, s, e.hook, null, 0), a = Mi(u, r.id);
3621
+ let u = Mo(s) ? s : pi(null, s, e.hook, null, 0), a = Gi(u, r.id);
3550
3622
  return a < 0 ? (Hr(`jdb_delete: record not found in topic '${t}': '${n}' '${r.id}'`), null) : (u.splice(a, 1), l);
3551
3623
  }
3552
- function ts(e, t) {
3624
+ function ns(e, t) {
3553
3625
  let n = pi(null, e, "topics", null, 0);
3554
3626
  if (!n) return Hr("jdb topics section not found"), Zr(e), null;
3555
3627
  return pi(null, n, t, null, 0) || (Hr("jdb topic not found: " + t), Zr(n), null);
3556
3628
  }
3557
- function ns(e, t, n, r) {
3629
+ function rs(e, t, n, r) {
3558
3630
  let l = pi(null, pi(null, e, "topics", null, 0), t, null, 0);
3559
- return l ? (void 0 === r && (r = !0), ls(l, e.hook, n, r)) : (Hr("jdb_get: topic not found: " + t), null);
3631
+ return l ? (void 0 === r && (r = !0), os(l, e.hook, n, r)) : (Hr("jdb_get: topic not found: " + t), null);
3560
3632
  }
3561
- function rs(e, t, n) {
3633
+ function ls(e, t, n) {
3562
3634
  let r = pi(null, pi(null, e, "topics", null, 0), t, null, 0);
3563
3635
  return r ? n < r.length ? r[n] : {} : (Hr("jdb_get_by_idx: topic not found: " + t), null);
3564
3636
  }
3565
- function ls(e, t, n, r) {
3637
+ function os(e, t, n, r) {
3566
3638
  if (!e) return null;
3567
3639
  let l, o = e.length;
3568
3640
  for (l = 0; l < o; l++) {
@@ -3571,18 +3643,18 @@ function ls(e, t, n, r) {
3571
3643
  let e = o.id;
3572
3644
  if (e && e === n) return o;
3573
3645
  if (r && li(o, t)) {
3574
- let e = ls(o[t], t, n, r);
3646
+ let e = os(o[t], t, n, r);
3575
3647
  if (e) return e;
3576
3648
  }
3577
3649
  }
3578
3650
  }
3579
3651
  return null;
3580
3652
  }
3581
- function os(e, t) {
3653
+ function is(e, t) {
3582
3654
  let n = Eo(e);
3583
3655
  return So(n, t), n;
3584
3656
  }
3585
- function is(e) {
3657
+ function ss(e) {
3586
3658
  function t(e) {
3587
3659
  let t = e.replace(/-/g, "+").replace(/_/g, "/");
3588
3660
  switch (t.length % 4) {
@@ -3613,9 +3685,9 @@ function is(e) {
3613
3685
  signature: t(n[2])
3614
3686
  };
3615
3687
  }
3616
- function ss(e, t) {
3688
+ function us(e, t) {
3617
3689
  try {
3618
- let n = is(e);
3690
+ let n = ss(e);
3619
3691
  switch (t) {
3620
3692
  case "header": return JSON.parse(n.header);
3621
3693
  case "signature": return JSON.parse(n.signature);
@@ -3625,15 +3697,15 @@ function ss(e, t) {
3625
3697
  return null;
3626
3698
  }
3627
3699
  }
3628
- function us(e) {
3700
+ function as(e) {
3629
3701
  return null == e ? "" : String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
3630
3702
  }
3631
- function as(e) {
3703
+ function cs(e) {
3632
3704
  if (!e) return "";
3633
3705
  const t = String(e).trim();
3634
- return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : us(t);
3706
+ return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : as(t);
3635
3707
  }
3636
- var cs = class {
3708
+ var _s = class {
3637
3709
  constructor(e) {
3638
3710
  this.html = e, Object.freeze(this);
3639
3711
  }
@@ -3641,28 +3713,28 @@ var cs = class {
3641
3713
  return this.html;
3642
3714
  }
3643
3715
  };
3644
- function _s(e) {
3645
- return "string" != typeof e ? (Hr("html_markup: not a string, type " + typeof e), new cs("")) : new cs(e);
3646
- }
3647
3716
  function fs(e) {
3648
- return e instanceof cs;
3717
+ return "string" != typeof e ? (Hr("html_markup: not a string, type " + typeof e), new _s("")) : new _s(e);
3649
3718
  }
3650
3719
  function gs(e) {
3720
+ return e instanceof _s;
3721
+ }
3722
+ function ds(e) {
3651
3723
  const t = document.createElement("template");
3652
3724
  return t.innerHTML = e.html.trim(), t.content;
3653
3725
  }
3654
- var ds = !1, bs = /* @__PURE__ */ new Set();
3655
- function ps(e) {
3656
- ds = !!e;
3726
+ var bs = !1, ps = /* @__PURE__ */ new Set();
3727
+ function hs(e) {
3728
+ bs = !!e;
3657
3729
  }
3658
- function hs() {
3659
- return ds;
3730
+ function ms() {
3731
+ return bs;
3660
3732
  }
3661
- function ms(e) {
3733
+ function ys(e) {
3662
3734
  const t = document.createElement("template");
3663
3735
  return t.innerHTML = e.trim(), t.content.firstChild;
3664
3736
  }
3665
- function ys(e, t) {
3737
+ function Es(e, t) {
3666
3738
  let [n, r, l, o] = e;
3667
3739
  if (!n) return void Hr("Tag must be a valid HTML element.");
3668
3740
  let i = document.createElement(n), s = "";
@@ -3671,22 +3743,22 @@ function ys(e, t) {
3671
3743
  for (const n of Object.keys(r[e])) t += `${n}: ${r[e][n]};`;
3672
3744
  i.style.cssText = t;
3673
3745
  } else "style" === e ? i.style.cssText = r[e] : "i18n" === e || "data-i18n" === e || "data_i18next" === e || "data-i18next" === e ? null !== r[e] && void 0 !== r[e] && (s = r[e], i.setAttribute("data-i18n", s)) : i.setAttribute(e, r[e]);
3674
- if (fs(l)) i.appendChild(gs(l));
3675
- else if (Go(l)) if (l = l.trim(), l.length > 0 && "<" === l[0] && !ds) i.appendChild(ms(l));
3746
+ if (gs(l)) i.appendChild(ds(l));
3747
+ else if (Go(l)) if (l = l.trim(), l.length > 0 && "<" === l[0] && !bs) i.appendChild(ys(l));
3676
3748
  else if (l.length > 0 && "<" === l[0] && function(e) {
3677
- if (bs.size >= 100) return;
3749
+ if (ps.size >= 100) return;
3678
3750
  const t = e.slice(0, 80);
3679
- bs.has(t) || (bs.add(t), zr(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
3751
+ ps.has(t) || (ps.add(t), zr(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
3680
3752
  }(l), t && s) i.textContent = t(s) || l;
3681
3753
  else i.textContent = l;
3682
3754
  else if (Mo(l)) {
3683
- if (l.length > 0) if (Go(l[0])) i.appendChild(ys(l, t));
3684
- else for (let e of l) Array.isArray(e) ? e.length > 0 && i.appendChild(ys(e, t)) : e instanceof Node ? i.appendChild(e) : fs(e) ? i.appendChild(gs(e)) : Go(e) ? i.appendChild(document.createTextNode(e)) : null != e && !1 !== e && Hr("createElement2: child ignored, type " + typeof e);
3755
+ if (l.length > 0) if (Go(l[0])) i.appendChild(Es(l, t));
3756
+ else for (let e of l) Array.isArray(e) ? e.length > 0 && i.appendChild(Es(e, t)) : e instanceof Node ? i.appendChild(e) : gs(e) ? i.appendChild(ds(e)) : Go(e) ? i.appendChild(document.createTextNode(e)) : null != e && !1 !== e && Hr("createElement2: child ignored, type " + typeof e);
3685
3757
  } else l instanceof HTMLElement || l instanceof Text || l instanceof SVGElement ? i.appendChild(l) : null != l && (Hr("content ignored"), el(l));
3686
3758
  if (o && "object" == typeof o) for (const e of Object.keys(o)) i.addEventListener(e, o[e]);
3687
3759
  return i;
3688
3760
  }
3689
- function Es(e) {
3761
+ function vs(e) {
3690
3762
  if (!e) return {
3691
3763
  top: 0,
3692
3764
  left: 0,
@@ -3706,10 +3778,10 @@ function Es(e) {
3706
3778
  bottom: t + i + l
3707
3779
  };
3708
3780
  }
3709
- function vs(e) {
3781
+ function Ts(e) {
3710
3782
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3711
3783
  }
3712
- function Ts(e, t) {
3784
+ function Os(e, t) {
3713
3785
  if (!Yo(t)) return void Hr("You must supply a translation function");
3714
3786
  e || (e = document);
3715
3787
  const n = (t) => {
@@ -3733,7 +3805,7 @@ function Ts(e, t) {
3733
3805
  n && e.setAttribute("placeholder", t(n));
3734
3806
  });
3735
3807
  }
3736
- function Os(e = "Time Tracker", t = !1) {
3808
+ function Ss(e = "Time Tracker", t = !1) {
3737
3809
  const n = e, r = performance.now();
3738
3810
  let l = r;
3739
3811
  return t && zr(`--\x3e ${n} - starting`), { mark: (e = "Intermediate", o = "") => {
@@ -3744,30 +3816,57 @@ function Os(e = "Time Tracker", t = !1) {
3744
3816
  };
3745
3817
  } };
3746
3818
  }
3747
- function Ss(e) {
3819
+ function js(e) {
3748
3820
  const t = (e, t) => String(e).padStart(t, "0"), n = `${(e = e || /* @__PURE__ */ new Date()).getFullYear()}-${t(e.getMonth() + 1, 2)}-${t(e.getDate(), 2)}T${t(e.getHours(), 2)}:${t(e.getMinutes(), 2)}:${t(e.getSeconds(), 2)}`, r = t(e.getMilliseconds(), 3), l = e.getTimezoneOffset();
3749
3821
  return `${n}.${r}${l > 0 ? "-" : "+"}${t(Math.floor(Math.abs(l) / 60), 2)}${t(Math.abs(l) % 60, 2)}`;
3750
3822
  }
3751
- function js() {
3823
+ function Ns() {
3752
3824
  return Math.floor(Date.now() / 1e3);
3753
3825
  }
3754
- function Ns(e, t) {
3826
+ function $s(e, t) {
3755
3827
  if (!e) throw "ERROR: index_in_list() list empty";
3756
3828
  for (let n = 0; n < e.length; n++) if (t === e[n]) return n;
3757
3829
  return -1;
3758
3830
  }
3759
3831
  function ws() {
3760
- let e = "";
3761
- return "undefined" != typeof window && window.localStorage ? (e = window.localStorage.getItem("host_uuid"), !e && window.crypto?.randomUUID && (e = window.crypto.randomUUID(), window.localStorage.setItem("host_uuid", e))) : e = "undefined" != typeof globalThis && globalThis.crypto?.randomUUID ? globalThis.crypto.randomUUID() : "00000000-0000-0000-0000-000000000000", e;
3832
+ const e = "undefined" != typeof window && window.crypto || globalThis.crypto;
3833
+ if (e && "function" == typeof e.randomUUID) return e.randomUUID();
3834
+ const t = /* @__PURE__ */ new Uint8Array(16);
3835
+ if (e && "function" == typeof e.getRandomValues) e.getRandomValues(t);
3836
+ else for (let e = 0; e < t.length; e++) t[e] = Math.floor(256 * Math.random());
3837
+ t[6] = 15 & t[6] | 64, t[8] = 63 & t[8] | 128;
3838
+ const n = Array.from(t, (e) => e.toString(16).padStart(2, "0")).join("");
3839
+ return `${n.slice(0, 8)}-${n.slice(8, 12)}-${n.slice(12, 16)}-${n.slice(16, 20)}-${n.slice(20)}`;
3840
+ }
3841
+ var Rs = null;
3842
+ function As() {
3843
+ if (Rs) return Rs;
3844
+ const e = $i();
3845
+ if (!e) return Rs = ws();
3846
+ let t = null;
3847
+ try {
3848
+ t = e.getItem("host_uuid");
3849
+ } catch (e) {
3850
+ return Ri("host_uuid", "node_uuid(): localStorage cannot be read (storage blocked?): a uuid of this page only"), Rs = ws();
3851
+ }
3852
+ if (!t) {
3853
+ t = ws();
3854
+ try {
3855
+ e.setItem("host_uuid", t);
3856
+ } catch (e) {
3857
+ Ri("host_uuid", "node_uuid(): localStorage cannot be written (storage full or blocked?): a uuid of this page only");
3858
+ }
3859
+ }
3860
+ return Rs = t;
3762
3861
  }
3763
- function $s(e) {
3862
+ function Ds(e) {
3764
3863
  return e.replace(/[?# ^:]/g, "_");
3765
3864
  }
3766
- function Rs(e) {
3865
+ function Cs(e) {
3767
3866
  let t = null;
3768
3867
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
3769
3868
  }
3770
- function As(e, t = 0, n = !1) {
3869
+ function Is(e, t = 0, n = !1) {
3771
3870
  let r = null, l = null, o = null;
3772
3871
  const i = (...i) => {
3773
3872
  o = this, l = i;
@@ -3782,20 +3881,20 @@ function As(e, t = 0, n = !1) {
3782
3881
  clearTimeout(r), r = null, l = null, o = null;
3783
3882
  }, i;
3784
3883
  }
3785
- function Ds(...e) {
3884
+ function ks(...e) {
3786
3885
  let t = "", n = 0;
3787
3886
  for (let r of e) null != r && "" !== r && (r = String(r), r = 0 === n ? r.replace(/\/+$/, "") : r.replace(/^\/+/, "").replace(/\/+$/, ""), "" !== r && (n > 0 && (t += "/"), t += r, n++));
3788
3887
  return t;
3789
3888
  }
3790
- var Cs = 256, Is = 1e5;
3791
- function ks(e) {
3889
+ var Ps = 256, Ls = 1e5;
3890
+ function Us(e) {
3792
3891
  const t = String(e).replace(/`/g, "``");
3793
3892
  return "[" === t[0] ? "[" + t : t;
3794
3893
  }
3795
- function Ps(e) {
3796
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : ks(e)).join("`") : "";
3894
+ function Fs(e) {
3895
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : Us(e)).join("`") : "";
3797
3896
  }
3798
- function Ls(e) {
3897
+ function Ms(e) {
3799
3898
  if ("string" != typeof e) return null;
3800
3899
  let t = [], n = "";
3801
3900
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -3816,9 +3915,9 @@ function Ls(e) {
3816
3915
  return null !== t ? t : "[" === e[0] && "[" === e[1] ? e.slice(1) : e;
3817
3916
  });
3818
3917
  }
3819
- function Us(e) {
3918
+ function Gs(e) {
3820
3919
  const t = {}, n = (e, r, l) => {
3821
- if (l > Cs) throw new Error("json2flat: deeper than 256");
3920
+ if (l > Ps) throw new Error("json2flat: deeper than 256");
3822
3921
  if (null === e || "object" != typeof e || Array.isArray(e)) {
3823
3922
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
3824
3923
  const o = `[${t}]`;
@@ -3828,7 +3927,7 @@ function Us(e) {
3828
3927
  const t = Object.keys(e);
3829
3928
  if (t.length > 0) {
3830
3929
  for (const o of t) {
3831
- const t = ks(o);
3930
+ const t = Us(o);
3832
3931
  n(e[o], 0 === l ? t : r + "`" + t, l + 1);
3833
3932
  }
3834
3933
  return;
@@ -3838,20 +3937,20 @@ function Us(e) {
3838
3937
  };
3839
3938
  return null == e || n(e, "", 0), t;
3840
3939
  }
3841
- function Fs(e) {
3940
+ function Vs(e) {
3842
3941
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
3843
3942
  let t = null;
3844
3943
  for (const n of Object.keys(e)) {
3845
- const r = Ls(n);
3944
+ const r = Ms(n);
3846
3945
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
3847
- if (r.length > Cs) throw new Error(`flat2json: '${n}' deeper than 256`);
3946
+ if (r.length > Ps) throw new Error(`flat2json: '${n}' deeper than 256`);
3848
3947
  const l = "number" == typeof r[0];
3849
3948
  if (null === t) t = l ? [] : {};
3850
3949
  else if (l !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
3851
3950
  let o = t;
3852
3951
  for (let t = 0; t < r.length; t++) {
3853
3952
  const l = r[t], i = "number" == typeof l, s = t === r.length - 1, u = !s && "number" == typeof r[t + 1];
3854
- if (i && l > Is) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
3953
+ if (i && l > Ls) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
3855
3954
  if (i !== Array.isArray(o)) throw new Error(`flat2json: '${n}' uses a ${i ? "array index" : "key"} where the tree already has a ${Array.isArray(o) ? "array" : "object"}`);
3856
3955
  if (s) {
3857
3956
  if (Array.isArray(o)) {
@@ -3875,23 +3974,23 @@ function Fs(e) {
3875
3974
  }
3876
3975
  return null === t ? {} : t;
3877
3976
  }
3878
- function Ms(e, t) {
3977
+ function Ws(e, t) {
3879
3978
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
3880
3979
  }
3881
- function Gs(e, t) {
3980
+ function xs(e, t) {
3882
3981
  const n = e && "object" == typeof e ? e : {}, r = t && "object" == typeof t ? t : {}, l = {
3883
3982
  added: {},
3884
3983
  removed: {},
3885
3984
  changed: {}
3886
3985
  };
3887
- for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? Ms(n[e], r[e]) || ii(l.changed, e, {
3986
+ for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? Ws(n[e], r[e]) || ii(l.changed, e, {
3888
3987
  from: n[e],
3889
3988
  to: r[e]
3890
3989
  }) : ii(l.removed, e, n[e]);
3891
3990
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || ii(l.added, e, r[e]);
3892
3991
  return l;
3893
3992
  }
3894
- function Vs(e, t) {
3993
+ function Ks(e, t) {
3895
3994
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat_apply: a flat json is an object of id -> value");
3896
3995
  if (null === t || "object" != typeof t) throw new Error("flat_apply: a diff is the object flat_diff() answers");
3897
3996
  for (const n of Object.keys(t.removed || {})) delete e[n];
@@ -3903,36 +4002,36 @@ function Vs(e, t) {
3903
4002
  }
3904
4003
  return e;
3905
4004
  }
3906
- function Ws(e) {
4005
+ function Bs(e) {
3907
4006
  return "persistent-attrs-" + an(e);
3908
4007
  }
3909
- function xs(e, t) {
3910
- let n = Cn(e, D.SDF_PERSIST), r = Ri(Ws(e), null, !1);
4008
+ function Ys(e, t) {
4009
+ let n = Cn(e, D.SDF_PERSIST), r = Ai(Bs(e), null, !1);
3911
4010
  if (r && Fo(r)) {
3912
4011
  let l = ji(e, r, t, !1);
3913
4012
  l = ji(e, l, n, !1), Vn(e, l, D.SDF_PERSIST);
3914
4013
  }
3915
4014
  }
3916
- function Ks(e, t) {
3917
- let n = ji(e, Cn(e, D.SDF_PERSIST), t, !1), r = Ri(Ws(e), null, !1);
3918
- return r && Fo(r) && jo(n, r), Ai(Ws(e), n);
4015
+ function Js(e, t) {
4016
+ let n = ji(e, Cn(e, D.SDF_PERSIST), t, !1), r = Ai(Bs(e), null, !1);
4017
+ return r && Fo(r) && jo(n, r), Di(Bs(e), n);
3919
4018
  }
3920
- function Bs(e, t) {
3921
- let n = Ni(e, Ri(Ws(e), null, !1), t, !1);
3922
- 0 === ko(n) ? Di(Ws(e)) : Ai(Ws(e), n);
4019
+ function qs(e, t) {
4020
+ let n = Ni(e, Ai(Bs(e), null, !1), t, !1);
4021
+ 0 === ko(n) ? Ci(Bs(e)) : Di(Bs(e), n);
3923
4022
  }
3924
- function Ys(e, t) {
3925
- let n = Ri(Ws(e), null, !1), r = {};
4023
+ function Hs(e, t) {
4024
+ let n = Ai(Bs(e), null, !1), r = {};
3926
4025
  return n && Fo(n) && (r = ji(e, n, t, !1)), r;
3927
4026
  }
3928
- function Js(e) {
4027
+ function zs(e) {
3929
4028
  if (Mo(e) && 1 === Lo(e)) {
3930
4029
  let t = e[0];
3931
4030
  return li(t, "size") ? t.size : 1;
3932
4031
  }
3933
4032
  return Lo(e);
3934
4033
  }
3935
- function qs(e, t) {
4034
+ function Qs(e, t) {
3936
4035
  if (Go(t)) {
3937
4036
  if (-1 === t.indexOf("^")) {
3938
4037
  let n, r, l = e.fkey;
@@ -3962,11 +4061,11 @@ function qs(e, t) {
3962
4061
  hook_name: t.hook_name
3963
4062
  } : (Hr("bad fkey 3"), Hr(e), Hr(t), null);
3964
4063
  }
3965
- function Hs(e, t) {
3966
- let n = qs(e, t);
4064
+ function Xs(e, t) {
4065
+ let n = Qs(e, t);
3967
4066
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3968
4067
  }
3969
- function zs(e, t) {
4068
+ function Zs(e, t) {
3970
4069
  if (Go(t)) {
3971
4070
  if (-1 === t.indexOf("^")) {
3972
4071
  let n, r = e.hook;
@@ -3993,7 +4092,7 @@ function zs(e, t) {
3993
4092
  id: t.id
3994
4093
  } : (Hr("bad hook 3"), Hr(e), Hr(t), null);
3995
4094
  }
3996
- var Qs = [
4095
+ var eu = [
3997
4096
  "string",
3998
4097
  "integer",
3999
4098
  "object",
@@ -4003,7 +4102,7 @@ var Qs = [
4003
4102
  "real",
4004
4103
  "boolean",
4005
4104
  "blob"
4006
- ], Xs = [
4105
+ ], tu = [
4007
4106
  "persistent",
4008
4107
  "required",
4009
4108
  "notnull",
@@ -4015,7 +4114,7 @@ var Qs = [
4015
4114
  "stats",
4016
4115
  "rstats",
4017
4116
  "pstats"
4018
- ], Zs = [
4117
+ ], nu = [
4019
4118
  "hook",
4020
4119
  "fkey",
4021
4120
  "enum",
@@ -4044,7 +4143,7 @@ var Qs = [
4044
4143
  "coordinates",
4045
4144
  "gbuffer"
4046
4145
  ];
4047
- function eu(e) {
4146
+ function ru(e) {
4048
4147
  let t = {
4049
4148
  name: e.id,
4050
4149
  header: e.header,
@@ -4063,7 +4162,7 @@ function eu(e) {
4063
4162
  if (!e.flag) return t;
4064
4163
  for (let n = 0; n < e.flag.length; n++) {
4065
4164
  let r = e.flag[n];
4066
- if (Gi(Zs, r)) {
4165
+ if (Vi(nu, r)) {
4067
4166
  switch (r) {
4068
4167
  case "enum":
4069
4168
  t.enum_list = e.enum;
@@ -4077,7 +4176,7 @@ function eu(e) {
4077
4176
  case "file": t.is_file = !0;
4078
4177
  }
4079
4178
  t.type = r;
4080
- } else if (Gi(Xs, r)) switch (r) {
4179
+ } else if (Vi(tu, r)) switch (r) {
4081
4180
  case "writable":
4082
4181
  t.is_writable = !0;
4083
4182
  break;
@@ -4090,7 +4189,7 @@ function eu(e) {
4090
4189
  }
4091
4190
  return t.is_file && (t.type = "file"), t;
4092
4191
  }
4093
- function tu(e, t) {
4192
+ function lu(e, t) {
4094
4193
  let n = {
4095
4194
  name: e,
4096
4195
  header: e,
@@ -4108,9 +4207,9 @@ function tu(e, t) {
4108
4207
  let e = t.split(".");
4109
4208
  for (let t = 0; t < e.length; t++) {
4110
4209
  let r = e[t];
4111
- if (Gi(Qs, r)) n.real_type || (n.real_type = r);
4112
- else if (Gi(Zs, r)) n.type || (n.type = r);
4113
- else if (Gi(Xs, r)) switch (r) {
4210
+ if (Vi(eu, r)) n.real_type || (n.real_type = r);
4211
+ else if (Vi(nu, r)) n.type || (n.type = r);
4212
+ else if (Vi(tu, r)) switch (r) {
4114
4213
  case "writable":
4115
4214
  n.is_writable = !0;
4116
4215
  break;
@@ -4122,35 +4221,35 @@ function tu(e, t) {
4122
4221
  }
4123
4222
  }
4124
4223
  n.real_type || (n.real_type = "string");
4125
- } else Fo(t) ? (n = eu(t), n.name || (n.name = e), n.header || (n.header = e)) : Mo(t) && (n.real_type = "array", n.enum_list = t);
4224
+ } else Fo(t) ? (n = ru(t), n.name || (n.name = e), n.header || (n.header = e)) : Mo(t) && (n.real_type = "array", n.enum_list = t);
4126
4225
  return n.type || (n.type = n.real_type), n;
4127
4226
  }
4128
- function nu(e, t) {
4227
+ function ou(e, t) {
4129
4228
  let n = {};
4130
4229
  return t || (t = {}), Object.entries(e).forEach(([e, r]) => {
4131
4230
  let l;
4132
4231
  Fo(r) && (l = r.default);
4133
4232
  let o = pi(null, t, e, l);
4134
- $o(n, e, o);
4233
+ wo(n, e, o);
4135
4234
  }), n;
4136
4235
  }
4137
- var ru = [
4236
+ var iu = [
4138
4237
  k(O.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
4139
4238
  k(O.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
4140
4239
  k(O.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
4141
4240
  I()
4142
- ], lu = {
4241
+ ], su = {
4143
4242
  periodic: !1,
4144
4243
  msec: 0,
4145
4244
  timer_id: -1
4146
- }, ou = null;
4147
- function iu(e, t, n, r) {
4245
+ }, uu = null;
4246
+ function au(e, t, n, r) {
4148
4247
  let l = e.priv, o = l.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
4149
4248
  return l.periodic && l.msec > 0 ? l.timer_id = setTimeout(function() {
4150
4249
  or(e, "EV_TIMEOUT", {}, e);
4151
4250
  }, l.msec) : l.timer_id = -1, Er(e, o, {}), l.periodic || -1 !== l.timer_id || Xt(e) && Yt(e), 0;
4152
4251
  }
4153
- var su = {
4252
+ var cu = {
4154
4253
  mt_create: function(e) {
4155
4254
  let t = e.priv, n = Ln(e, "subscriber");
4156
4255
  n ? dr(e, null, {}, n) : gn(e) && (n = _n(e), dr(e, null, {}, n)), t.periodic = In(e, "periodic"), t.msec = kn(e, "msec");
@@ -4174,34 +4273,34 @@ var su = {
4174
4273
  },
4175
4274
  mt_destroy: function(e) {}
4176
4275
  };
4177
- function uu() {
4276
+ function _u() {
4178
4277
  return function(e) {
4179
- if (ou) return Hr(`GClass ALREADY created: ${e}`), -1;
4278
+ if (uu) return Hr(`GClass ALREADY created: ${e}`), -1;
4180
4279
  const t = [["ST_IDLE", [[
4181
4280
  "EV_TIMEOUT",
4182
- iu,
4281
+ au,
4183
4282
  null
4184
4283
  ]]]];
4185
- return (ou = ut(e, [
4284
+ return (uu = ut(e, [
4186
4285
  ["EV_TIMEOUT", Y.EVF_OUTPUT_EVENT],
4187
4286
  ["EV_TIMEOUT_PERIODIC", Y.EVF_OUTPUT_EVENT],
4188
4287
  [0, 0]
4189
- ], t, su, 0, ru, lu, 0, 0, 0, x.gcflag_manual_start)) ? 0 : -1;
4288
+ ], t, cu, 0, iu, su, 0, 0, 0, x.gcflag_manual_start)) ? 0 : -1;
4190
4289
  }("C_TIMER");
4191
4290
  }
4192
- function au(e) {
4291
+ function fu(e) {
4193
4292
  return "number" == typeof e && Number.isFinite(e) ? Math.round(e) : e;
4194
4293
  }
4195
- function cu(e, t) {
4196
- return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : (Wn(e, "periodic", !1), void xn(e, "msec", au(t))) : (Hr("not GObj TYPE"), -1);
4294
+ function gu(e, t) {
4295
+ return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : (Wn(e, "periodic", !1), void xn(e, "msec", fu(t))) : (Hr("not GObj TYPE"), -1);
4197
4296
  }
4198
- function _u(e, t) {
4199
- return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : (Wn(e, "periodic", !0), void xn(e, "msec", au(t))) : (Hr("not GObj TYPE"), -1);
4297
+ function du(e, t) {
4298
+ return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : (Wn(e, "periodic", !0), void xn(e, "msec", fu(t))) : (Hr("not GObj TYPE"), -1);
4200
4299
  }
4201
- function fu(e) {
4300
+ function bu(e) {
4202
4301
  return e instanceof W ? "C_TIMER" !== un(e) ? (Hr("not C_TIMER GObj"), -1) : void xn(e, "msec", -1) : (Hr("not GObj TYPE"), -1);
4203
4302
  }
4204
- var gu = [
4303
+ var pu = [
4205
4304
  k(O.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
4206
4305
  k(O.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
4207
4306
  k(O.DTP_STRING, "__username__", 0, "", "Username"),
@@ -4221,35 +4320,35 @@ var gu = [
4221
4320
  k(O.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
4222
4321
  k(O.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
4223
4322
  I()
4224
- ], du = { gobj_timer: null }, bu = null;
4225
- function pu(e, t, n, r) {
4323
+ ], hu = { gobj_timer: null }, mu = null;
4324
+ function yu(e, t, n, r) {
4226
4325
  let l = Dn(e, t);
4227
4326
  return Fo(l) || (l = {}), l[n] = r, Un(e, t, l), Nt(e, t);
4228
4327
  }
4229
- var hu = -2147483648, mu = 2147483647;
4230
- function yu(e) {
4328
+ var Eu = -2147483648, vu = 2147483647;
4329
+ function Tu(e) {
4231
4330
  if (!0 === e || !1 === e) return e;
4232
- if ("number" == typeof e) return !Number.isInteger(e) || e < hu || e > mu ? null : 0 !== e;
4331
+ if ("number" == typeof e) return !Number.isInteger(e) || e < Eu || e > vu ? null : 0 !== e;
4233
4332
  if ("string" != typeof e || "" === e) return null;
4234
4333
  let t = e.toLowerCase();
4235
4334
  if ("set" === t) return !0;
4236
4335
  if ("reset" === t) return !1;
4237
4336
  if (/^-?(0|[1-9][0-9]*)$/.test(e)) {
4238
4337
  let t = Number(e);
4239
- return t < hu || t > mu ? null : 0 !== t;
4338
+ return t < Eu || t > vu ? null : 0 !== t;
4240
4339
  }
4241
4340
  return "true" === t || "yes" === t || "on" === t || "false" !== t && "no" !== t && "off" !== t && null;
4242
4341
  }
4243
- function Eu() {
4342
+ function Ou() {
4244
4343
  return `${ln()}^${rn()}`;
4245
4344
  }
4246
- function vu(e, t, n, r) {
4345
+ function Su(e, t, n, r) {
4247
4346
  return Er(e, t, n), 0;
4248
4347
  }
4249
- var Tu = {
4348
+ var ju = {
4250
4349
  mt_create: function(e) {
4251
4350
  let t = e.priv;
4252
- Kn(e, "start_date", Ss()), Kn(e, "node_uuid", ws()), e.priv.gobj_timer = Lt(sn(e), "C_TIMER", {}, e), t.periodic_timeout = Dn(e, "periodic_timeout"), function(e) {
4351
+ Kn(e, "start_date", js()), Kn(e, "node_uuid", As()), e.priv.gobj_timer = Lt(sn(e), "C_TIMER", {}, e), t.periodic_timeout = Dn(e, "periodic_timeout"), function(e) {
4253
4352
  let t = Dn(e, "trace_levels");
4254
4353
  if (!Fo(t)) return 0;
4255
4354
  let n = t.__global_trace__;
@@ -4260,8 +4359,8 @@ var Tu = {
4260
4359
  for (const [n, r] of Object.entries(t)) {
4261
4360
  let t = mt(n);
4262
4361
  if (t) if (Mo(r)) {
4263
- $e(t, null, !1);
4264
- for (let e of r) $e(t, e, !0);
4362
+ we(t, null, !1);
4363
+ for (let e of r) we(t, e, !0);
4265
4364
  } else Hr(`${sn(e)}: trace_levels of ${n} MUST be a list`);
4266
4365
  }
4267
4366
  }(e), function(e) {
@@ -4283,10 +4382,10 @@ var Tu = {
4283
4382
  },
4284
4383
  mt_writing: function(e, t) {},
4285
4384
  mt_start: function(e) {
4286
- return _u(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
4385
+ return du(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
4287
4386
  },
4288
4387
  mt_stop: function(e) {
4289
- return fu(e.priv.gobj_timer), qt(e), 0;
4388
+ return bu(e.priv.gobj_timer), qt(e), 0;
4290
4389
  },
4291
4390
  mt_destroy: function(e) {},
4292
4391
  mt_play: function(e) {
@@ -4303,35 +4402,35 @@ var Tu = {
4303
4402
  case "get-global-no-trace": return o(0, 0, null, null, Oe());
4304
4403
  case "set-global-trace":
4305
4404
  case "set-global-no-trace": {
4306
- let r = "set-global-no-trace" === t, l = n.level, i = yu(n.set);
4307
- return l ? null === i ? o(0, -1, `${Eu()}: bitmask set or re-set?`, null, null) : (r ? he(l, i) : pe(l, i)) < 0 ? o(0, -1, `${Eu()}: global trace level not found: ${l}`, null, null) : r ? (pu(e, "no_trace_levels", "__global_no_trace__", Oe()), o(0, 0, null, null, Oe())) : (pu(e, "trace_levels", "__global_trace__", Te()), o(0, 0, null, null, Te())) : o(0, -1, `${Eu()}: what level?`, null, null);
4405
+ let r = "set-global-no-trace" === t, l = n.level, i = Tu(n.set);
4406
+ return l ? null === i ? o(0, -1, `${Ou()}: bitmask set or re-set?`, null, null) : (r ? he(l, i) : pe(l, i)) < 0 ? o(0, -1, `${Ou()}: global trace level not found: ${l}`, null, null) : r ? (yu(e, "no_trace_levels", "__global_no_trace__", Oe()), o(0, 0, null, null, Oe())) : (yu(e, "trace_levels", "__global_trace__", Te()), o(0, 0, null, null, Te())) : o(0, -1, `${Ou()}: what level?`, null, null);
4308
4407
  }
4309
4408
  case "get-gclass-trace":
4310
4409
  case "get-gclass-no-trace":
4311
4410
  case "set-gclass-trace":
4312
4411
  case "set-gclass-no-trace": {
4313
4412
  let r = t.indexOf("no-trace") >= 0, l = n.gclass_name || n.gclass || "", i = mt(l);
4314
- if (!i) return o(0, -1, `${Eu()}: what gclass is '${l}'?`, null, null);
4413
+ if (!i) return o(0, -1, `${Ou()}: what gclass is '${l}'?`, null, null);
4315
4414
  if (0 === t.indexOf("get-")) return o(0, 0, null, null, r ? Ne(i) : Se(i));
4316
- let s = n.level, u = yu(n.set);
4317
- return s ? null === u ? o(0, -1, `${Eu()}: bitmask set or re-set?`, null, null) : (r ? Ae(i, s, u) : $e(i, s, u)) < 0 ? o(0, -1, `${Eu()}: trace level of ${l} not found: ${s}`, null, null) : r ? (pu(e, "no_trace_levels", l, Ne(i)), o(0, 0, null, null, Ne(i))) : (pu(e, "trace_levels", l, je(i)), o(0, 0, null, null, Se(i))) : o(0, -1, `${Eu()}: what level?`, null, null);
4415
+ let s = n.level, u = Tu(n.set);
4416
+ return s ? null === u ? o(0, -1, `${Ou()}: bitmask set or re-set?`, null, null) : (r ? Ae(i, s, u) : we(i, s, u)) < 0 ? o(0, -1, `${Ou()}: trace level of ${l} not found: ${s}`, null, null) : r ? (yu(e, "no_trace_levels", l, Ne(i)), o(0, 0, null, null, Ne(i))) : (yu(e, "trace_levels", l, je(i)), o(0, 0, null, null, Se(i))) : o(0, -1, `${Ou()}: what level?`, null, null);
4318
4417
  }
4319
- default: return o(0, -1, `${Eu()}: command not available: ${t}`, null, null);
4418
+ default: return o(0, -1, `${Ou()}: command not available: ${t}`, null, null);
4320
4419
  }
4321
4420
  }
4322
4421
  };
4323
- function Ou() {
4422
+ function Nu() {
4324
4423
  return function(e) {
4325
- if (bu) return Hr(`GClass ALREADY created: ${e}`), -1;
4424
+ if (mu) return Hr(`GClass ALREADY created: ${e}`), -1;
4326
4425
  const t = [["ST_IDLE", [[
4327
4426
  "EV_TIMEOUT_PERIODIC",
4328
- vu,
4427
+ Su,
4329
4428
  null
4330
4429
  ]]]];
4331
- return (bu = ut(e, [["EV_TIMEOUT_PERIODIC", Y.EVF_OUTPUT_EVENT | Y.EVF_NO_WARN_SUBS], [0, 0]], t, Tu, 0, gu, du, 0, 0, 0, 0)) ? 0 : -1;
4430
+ return (mu = ut(e, [["EV_TIMEOUT_PERIODIC", Y.EVF_OUTPUT_EVENT | Y.EVF_NO_WARN_SUBS], [0, 0]], t, ju, 0, pu, hu, 0, 0, 0, 0)) ? 0 : -1;
4332
4431
  }("C_YUNO");
4333
4432
  }
4334
- var Su = "ievent_gate_stack", ju = [
4433
+ var $u = "ievent_gate_stack", wu = [
4335
4434
  k(O.DTP_STRING, "wanted_yuno_role", D.SDF_RD, "", "wanted yuno role"),
4336
4435
  k(O.DTP_STRING, "wanted_yuno_name", D.SDF_RD, "", "wanted yuno name"),
4337
4436
  k(O.DTP_STRING, "wanted_yuno_service", D.SDF_RD, "", "wanted yuno service"),
@@ -4343,20 +4442,20 @@ var Su = "ievent_gate_stack", ju = [
4343
4442
  k(O.DTP_STRING, "cert_pem", D.SDF_PERSIST, "", "SSL server certification, PEM str format"),
4344
4443
  k(O.DTP_JSON, "extra_info", D.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
4345
4444
  k(O.DTP_LIST, "required_services", D.SDF_RD, "[]", "Services this LINK requires (identity card). Empty = the yuno's `required_services`, as before. A yuno with several links to DIFFERENT backends must set it per link: the yuno-wide list is the union, so every backend is told the service names of all the others."),
4346
- k(O.DTP_INTEGER, "timeout_retry", D.SDF_RD, "5000", "First reconnect delay (ms). It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
4445
+ k(O.DTP_INTEGER, "timeout_retry", D.SDF_RD, "5000", "Base of the first reconnect delay (ms, ±20% jitter), at least 1000. It BACKS OFF from here, doubling up to timeout_retry_max, and resets when a session is reached"),
4347
4446
  k(O.DTP_INTEGER, "timeout_retry_max", D.SDF_RD, "60000", "Cap of the reconnect backoff (ms). Set it equal to timeout_retry for the old fixed-interval behaviour"),
4348
4447
  k(O.DTP_INTEGER, "timeout_idack", D.SDF_RD, "5000", "timeout waiting idAck"),
4349
4448
  k(O.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
4350
4449
  I()
4351
- ], Nu = [
4450
+ ], Ru = [
4352
4451
  ["ievents", "Trace inter-events with metadata of kw"],
4353
4452
  ["ievents2", "Trace inter-events with full kw"],
4354
4453
  ["identity-card", "Trace identity_card messages"]
4355
4454
  ];
4356
- function wu(e) {
4455
+ function Au(e) {
4357
4456
  return !!(3 & ue(e));
4358
4457
  }
4359
- var $u = {
4458
+ var Du = {
4360
4459
  url: null,
4361
4460
  remote_yuno_name: null,
4362
4461
  remote_yuno_role: null,
@@ -4367,9 +4466,10 @@ var $u = {
4367
4466
  inside_on_open: !1,
4368
4467
  retry_ms: 0,
4369
4468
  retry_ms_before_session: 0,
4370
- session_since: 0
4371
- }, Ru = null;
4372
- function Au(e) {
4469
+ session_since: 0,
4470
+ retry_floor_warned: !1
4471
+ }, Cu = null;
4472
+ function Iu(e) {
4373
4473
  e.priv.websocket && Hr("Websocket ALREADY setup");
4374
4474
  const t = Pn(e, "url");
4375
4475
  Xr(`====> Starting WebSocket to '${t}' (${an(e)})`);
@@ -4384,7 +4484,7 @@ function Au(e) {
4384
4484
  code: 1006,
4385
4485
  reason: r.message,
4386
4486
  was_clean: !1
4387
- }, e) < 0 && cu(e.priv.gobj_timer, Ku(e)), null;
4487
+ }, e) < 0 && gu(e.priv.gobj_timer, Hu(e)), null;
4388
4488
  }
4389
4489
  return r ? (r.onopen = () => {
4390
4490
  n !== e.priv.ws_seq || dn(e) || or(e, "EV_ON_OPEN", {
@@ -4406,7 +4506,7 @@ function Au(e) {
4406
4506
  }, e));
4407
4507
  }, r) : (Hr(`${an(e)}: Failed to initialize WebSocket.`), null);
4408
4508
  }
4409
- function Du(e, t = 1e3, n = "") {
4509
+ function ku(e, t = 1e3, n = "") {
4410
4510
  let r = e.priv, l = r.websocket;
4411
4511
  if (r.websocket = null, l && l.readyState !== WebSocket.CLOSED && l.readyState !== WebSocket.CLOSING) {
4412
4512
  Xr(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
@@ -4417,12 +4517,12 @@ function Du(e, t = 1e3, n = "") {
4417
4517
  }
4418
4518
  } else zr("WebSocket is already closed or in the process of closing.");
4419
4519
  }
4420
- function Cu(e, t) {
4520
+ function Pu(e, t) {
4421
4521
  let n = e.priv;
4422
- "ST_SESSION" === Yn(e) && (performance.now() - n.session_since < Math.max(kn(e, "timeout_retry"), kn(e, "timeout_retry_max")) && (n.retry_ms = n.retry_ms_before_session), n.retry_ms_before_session = 0), Du(e, 4002, t);
4522
+ "ST_SESSION" === Yn(e) && (performance.now() - n.session_since < qu(e).max && (n.retry_ms = n.retry_ms_before_session), n.retry_ms_before_session = 0), ku(e, 4002, t);
4423
4523
  }
4424
- var Iu = 128;
4425
- function ku(e, t) {
4524
+ var Lu = 128;
4525
+ function Uu(e, t) {
4426
4526
  let n = String(e), r = fo(n);
4427
4527
  if (null !== r && (n = r), n.length > t) {
4428
4528
  let e = t, r = n.charCodeAt(e);
@@ -4430,25 +4530,25 @@ function ku(e, t) {
4430
4530
  }
4431
4531
  return n;
4432
4532
  }
4433
- function Pu(e, t, n) {
4434
- let r = Ss();
4533
+ function Fu(e, t, n) {
4534
+ let r = js();
4435
4535
  try {
4436
4536
  Xr("\n" + r + " " + t + "\n"), yo(n);
4437
4537
  } catch (e) {
4438
4538
  Xr("ERROR in trace_inter_event: " + e);
4439
4539
  }
4440
4540
  }
4441
- var Lu = class {
4541
+ var Mu = class {
4442
4542
  constructor(e, t) {
4443
4543
  this.event = e, this.kw = t || {};
4444
4544
  }
4445
4545
  };
4446
- function Uu(e, t, n, r) {
4546
+ function Gu(e, t, n, r) {
4447
4547
  return function(e, t) {
4448
4548
  let n = e.priv, r = JSON.stringify(t);
4449
- if (wu(e)) {
4549
+ if (Au(e)) {
4450
4550
  let n = Pn(e, "url"), l = sn(nn()) + " ==> " + n, o = Dn(nn(), "trace_ievent_callback");
4451
- o ? o(l, t, 1, r.length) : Pu(0, l, t);
4551
+ o ? o(l, t, 1, r.length) : Fu(0, l, t);
4452
4552
  }
4453
4553
  if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return zr(`${an(e)}: send_iev(): websocket not open, message lost`), -1;
4454
4554
  try {
@@ -4458,10 +4558,10 @@ function Uu(e, t, n, r) {
4458
4558
  }
4459
4559
  return 0;
4460
4560
  }(e, function(e, t) {
4461
- return qo(e) ? (Hr("iev_create() event NULL"), null) : new Lu(e, t);
4561
+ return qo(e) ? (Hr("iev_create() event NULL"), null) : new Mu(e, t);
4462
4562
  }(t, n));
4463
4563
  }
4464
- function Fu(e, t, n) {
4564
+ function Vu(e, t, n) {
4465
4565
  return qo(n) && (n = Pn(e, "wanted_yuno_service")), {
4466
4566
  dst_yuno: Pn(e, "wanted_yuno_name"),
4467
4567
  dst_role: Pn(e, "wanted_yuno_role"),
@@ -4469,10 +4569,10 @@ function Fu(e, t, n) {
4469
4569
  src_yuno: rn(),
4470
4570
  src_role: ln(),
4471
4571
  src_service: t,
4472
- host: ws()
4572
+ host: As()
4473
4573
  };
4474
4574
  }
4475
- function Mu(e) {
4575
+ function Wu(e) {
4476
4576
  let t = e.priv, n = tn(nn()), r = Pn(nn(), "yuno_version"), l = Pn(nn(), "yuno_release"), o = Pn(nn(), "yuno_tag"), i = Dn(e, "required_services");
4477
4577
  i && i.length || (i = Dn(nn(), "required_services"));
4478
4578
  let s = {
@@ -4490,32 +4590,32 @@ function Mu(e) {
4490
4590
  username: Pn(nn(), "__username__"),
4491
4591
  launch_id: 0,
4492
4592
  yuno_startdate: Pn(nn(), "start_date"),
4493
- id: ws(),
4593
+ id: As(),
4494
4594
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
4495
4595
  language: "undefined" != typeof window ? window.navigator.language : "",
4496
4596
  required_services: i
4497
4597
  };
4498
- return Bi(e, s, Su, Fu(e, sn(_n(e)), null)), Ji(e, s, "__identity__"), cu(t.gobj_timer, kn(e, "timeout_idack")), Uu(e, "EV_IDENTITY_CARD", s);
4598
+ return Yi(e, s, $u, Vu(e, sn(_n(e)), null)), qi(e, s, "__identity__"), gu(t.gobj_timer, kn(e, "timeout_idack")), Gu(e, "EV_IDENTITY_CARD", s);
4499
4599
  }
4500
- function Gu(e, t) {
4600
+ function xu(e, t) {
4501
4601
  if (qo(t.event)) return -1;
4502
4602
  let n = {}, r = t.__global__, l = t.__config__, o = t.__filter__, i = t.__service__, s = t.subscriber;
4503
4603
  l && (n.__config__ = l), r && (n.__global__ = r), o && (n.__filter__ = o);
4504
- return Bi(e, n, Su, Fu(e, sn(s), i)), Ji(e, n, "__subscribing__"), Uu(e, t.event, n);
4604
+ return Yi(e, n, $u, Vu(e, sn(s), i)), qi(e, n, "__subscribing__"), Gu(e, t.event, n);
4505
4605
  }
4506
- function Vu(e, t, n, r) {
4606
+ function Ku(e, t, n, r) {
4507
4607
  let l = e.priv;
4508
- return Xt(e) && (l.websocket = Au(e)), 0;
4608
+ return Xt(e) && (l.websocket = Iu(e)), 0;
4509
4609
  }
4510
- function Wu(e, t, n, r) {
4511
- return Xr("Websocket opened: " + e.priv.url), Mu(e), 0;
4610
+ function Bu(e, t, n, r) {
4611
+ return Xr("Websocket opened: " + e.priv.url), Wu(e), 0;
4512
4612
  }
4513
- function xu(e, t, n, r) {
4613
+ function Yu(e, t, n, r) {
4514
4614
  let l = e.priv, o = n.url;
4515
4615
  if (void 0 !== n.ws_seq && n.ws_seq !== l.ws_seq) return 0;
4516
4616
  Vr();
4517
- const i = ku(void 0 === n.reason ? "" : n.reason, 256);
4518
- return wu(e) && Zr(`${an(e)}: WebSocket closed ${o} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), l.websocket && (l.websocket.onopen = null, l.websocket.onmessage = null, l.websocket.onerror = null, l.websocket.onclose = null, l.websocket = null), l.inform_on_close ? (l.inform_on_close = !1, (!n.was_clean || 1e3 !== n.code && 1001 !== n.code) && Xt(e) && zr(`${an(e)}: session closed ${o} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), Er(e, "EV_ON_CLOSE", {
4617
+ const i = Uu(void 0 === n.reason ? "" : n.reason, 256);
4618
+ return Au(e) && Zr(`${an(e)}: WebSocket closed ${o} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), l.websocket && (l.websocket.onopen = null, l.websocket.onmessage = null, l.websocket.onerror = null, l.websocket.onclose = null, l.websocket = null), l.inform_on_close ? (l.inform_on_close = !1, (!n.was_clean || 1e3 !== n.code && 1001 !== n.code) && Xt(e) && zr(`${an(e)}: session closed ${o} (Code: ${n.code}, Reason: "${i}", Clean: ${n.was_clean})`), Er(e, "EV_ON_CLOSE", {
4519
4619
  url: o,
4520
4620
  remote_yuno_name: l.remote_yuno_name,
4521
4621
  remote_yuno_role: l.remote_yuno_role,
@@ -4531,24 +4631,33 @@ function xu(e, t, n, r) {
4531
4631
  code: n.code,
4532
4632
  reason: i,
4533
4633
  was_clean: n.was_clean
4534
- })), Xt(e) && cu(l.gobj_timer, Ku(e)), 0;
4634
+ })), Xt(e) && gu(l.gobj_timer, Hu(e)), 0;
4535
4635
  }
4536
- function Ku(e) {
4636
+ var Ju = 1e3;
4637
+ function qu(e) {
4537
4638
  let t = e.priv, n = kn(e, "timeout_retry"), r = kn(e, "timeout_retry_max");
4538
- r < n && (r = n), t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
4639
+ return n >= Ju || (t.retry_floor_warned || (t.retry_floor_warned = !0, zr(`${an(e)}: timeout_retry ${n} ms is below ${Ju} ms: ${Ju} ms is used`)), n = Ju), r >= n || (r = n), {
4640
+ base: n,
4641
+ max: r
4642
+ };
4643
+ }
4644
+ function Hu(e) {
4645
+ let t = e.priv;
4646
+ const { base: n, max: r } = qu(e);
4647
+ t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
4539
4648
  let l = .2 * t.retry_ms, o = t.retry_ms - l + 2 * Math.random() * l;
4540
4649
  return Math.max(1, Math.round(o));
4541
4650
  }
4542
- function Bu(e, t, n, r) {
4543
- return Mu(e), 0;
4651
+ function zu(e, t, n, r) {
4652
+ return Wu(e), 0;
4544
4653
  }
4545
- function Yu(e, t, n, r) {
4654
+ function Qu(e, t, n, r) {
4546
4655
  let l = e.priv;
4547
- fu(l.gobj_timer);
4548
- let o = Yi(e, n, Su, !0), i = gi(e, o, "src_yuno", ""), s = gi(e, o, "src_role", ""), u = gi(e, o, "src_service", "");
4656
+ bu(l.gobj_timer);
4657
+ let o = Ji(e, n, $u, !0), i = gi(e, o, "src_yuno", ""), s = gi(e, o, "src_role", ""), u = gi(e, o, "src_service", "");
4549
4658
  Kn(e, "remote_yuno_name", i), Kn(e, "remote_yuno_role", s), Kn(e, "remote_yuno_service", u);
4550
4659
  let a = _i(e, n, "result", -1, 0), c = gi(e, n, "comment", "", 0), _ = gi(e, n, "username", "", 0), f = pi(e, n, "services_roles", {});
4551
- if (a < 0) Du(e), Er(e, "EV_ON_ID_NAK", {
4660
+ if (a < 0) ku(e), Er(e, "EV_ON_ID_NAK", {
4552
4661
  url: Pn(e, "url"),
4553
4662
  result: a,
4554
4663
  comment: c,
@@ -4565,11 +4674,11 @@ function Yu(e, t, n, r) {
4565
4674
  services_roles: f
4566
4675
  })), l.inside_on_open = !1, function(e) {
4567
4676
  let t = hr(e, null, null, null);
4568
- for (let n = 0; n < t.length; n++) Gu(e, t[n]);
4677
+ for (let n = 0; n < t.length; n++) xu(e, t[n]);
4569
4678
  }(e);
4570
4679
  return 0;
4571
4680
  }
4572
- function Ju(e, t, n, r) {
4681
+ function Xu(e, t, n, r) {
4573
4682
  let l = e.priv.url, o = function(e, t) {
4574
4683
  let n;
4575
4684
  try {
@@ -4588,49 +4697,49 @@ function Ju(e, t, n, r) {
4588
4697
  kw: l || {}
4589
4698
  } : (zr(`${an(e)}: parsing inter_event: kw not a json object`), null) : (zr(`${an(e)}: parsing inter_kw: no kw`), null);
4590
4699
  }(e, n.data);
4591
- if (!o) return zr(`${an(e)}: frame dropped from ${l}: ${ku(n.data, 256)}`), -1;
4592
- if (wu(e)) {
4700
+ if (!o) return zr(`${an(e)}: frame dropped from ${l}: ${Uu(n.data, 256)}`), -1;
4701
+ if (Au(e)) {
4593
4702
  let e = sn(nn()) + " <== " + l, t = n.data.length, r = Dn(nn(), "trace_ievent_callback");
4594
- r ? r(e, o, 2, t) : Pu(0, e, o);
4703
+ r ? r(e, o, 2, t) : Fu(0, e, o);
4595
4704
  }
4596
4705
  let i = o.event, s = o.kw;
4597
4706
  if ("ST_SESSION" !== Yn(e)) {
4598
4707
  if ("ev_identity_card_ack" === String(i).toLowerCase()) {
4599
4708
  if (!(or(e, "EV_IDENTITY_CARD_ACK", s, e) < 0)) return 0;
4600
- } else zr(`${an(e)}: event UNKNOWN in not-session state ${ku(i, Iu)}`);
4601
- return Cu(e, "event out of session"), -1;
4709
+ } else zr(`${an(e)}: event UNKNOWN in not-session state ${Uu(i, Lu)}`);
4710
+ return Pu(e, "event out of session"), -1;
4602
4711
  }
4603
4712
  o = null;
4604
- let u = qi(e, s), a = Yi(e, s, Su), c = gi(e, a, "dst_role", "");
4605
- if (!qo(c) && c.toLowerCase() !== String(ln()).toLowerCase()) return zr(`${an(e)}: It's not my role, dst_role: ${ku(c, Iu)}, my_role: ${ln()}, event: ${ku(i, Iu)}`), Cu(e, "not my role"), -1;
4713
+ let u = Hi(e, s), a = Ji(e, s, $u), c = gi(e, a, "dst_role", "");
4714
+ if (!qo(c) && c.toLowerCase() !== String(ln()).toLowerCase()) return zr(`${an(e)}: It's not my role, dst_role: ${Uu(c, Lu)}, my_role: ${ln()}, event: ${Uu(i, Lu)}`), Pu(e, "not my role"), -1;
4606
4715
  let _ = gi(e, a, "dst_yuno", "");
4607
- if (!qo(_) && _.toLowerCase() !== String(rn()).toLowerCase()) return zr(`${an(e)}: It's not my name, dst_yuno: ${ku(_, Iu)}, my_name: ${rn()}, event: ${ku(i, Iu)}`), Cu(e, "not my name"), -1;
4716
+ if (!qo(_) && _.toLowerCase() !== String(rn()).toLowerCase()) return zr(`${an(e)}: It's not my name, dst_yuno: ${Uu(_, Lu)}, my_name: ${rn()}, event: ${Uu(i, Lu)}`), Pu(e, "not my name"), -1;
4608
4717
  let f = gi(e, a, "dst_service", "");
4609
- if ("__subscribing__" === u) return zr(`${an(e)}: subscription event ignored, I'm client (service: ${ku(f, Iu)}, event: ${ku(i, Iu)})`), -1;
4610
- if ("__unsubscribing__" === u) return zr(`${an(e)}: unsubscription event ignored, I'm client (service: ${ku(f, Iu)}, event: ${ku(i, Iu)})`), -1;
4718
+ if ("__subscribing__" === u) return zr(`${an(e)}: subscription event ignored, I'm client (service: ${Uu(f, Lu)}, event: ${Uu(i, Lu)})`), -1;
4719
+ if ("__unsubscribing__" === u) return zr(`${an(e)}: unsubscription event ignored, I'm client (service: ${Uu(f, Lu)}, event: ${Uu(i, Lu)})`), -1;
4611
4720
  const g = sr(i, 0, !1);
4612
4721
  if (g && Hn(e, g.event_name, 0)) {
4613
4722
  const t = g.event_name;
4614
- return Hn(e, t, Y.EVF_PUBLIC_EVENT) && "EV_IDENTITY_CARD_ACK" !== t ? (or(e, t, s, e), 0) : (zr(`${an(e)}: event of the transport itself, or out of its place, DROPPED: ev '${ku(i, Iu)}'`), -1);
4723
+ return Hn(e, t, Y.EVF_PUBLIC_EVENT) && "EV_IDENTITY_CARD_ACK" !== t ? (or(e, t, s, e), 0) : (zr(`${an(e)}: event of the transport itself, or out of its place, DROPPED: ev '${Uu(i, Lu)}'`), -1);
4615
4724
  }
4616
4725
  if (!qo(f)) {
4617
4726
  let t = vt(f, !1);
4618
- return t ? Hn(t, i, Y.EVF_PUBLIC_EVENT) ? (or(t, i, s, e), 0) : (zr(`${an(e)}: Service found but no event or not public, DROPPED: service '${an(t)}', ev '${ku(i, Iu)}'`), -1) : (zr(`${an(e)}: event for a service that is gone, DROPPED: service '${ku(f, Iu)}', ev '${ku(i, Iu)}'`), 0);
4727
+ return t ? Hn(t, i, Y.EVF_PUBLIC_EVENT) ? (or(t, i, s, e), 0) : (zr(`${an(e)}: Service found but no event or not public, DROPPED: service '${an(t)}', ev '${Uu(i, Lu)}'`), -1) : (zr(`${an(e)}: event for a service that is gone, DROPPED: service '${Uu(f, Lu)}', ev '${Uu(i, Lu)}'`), 0);
4619
4728
  }
4620
4729
  let d = sr(i, Y.EVF_PUBLIC_EVENT, !1);
4621
- return d ? (Er(e, d.event_name, s), 0) : (zr(`${an(e)}: event that no gclass declares public, DROPPED: ev '${ku(i, Iu)}'`), -1);
4730
+ return d ? (Er(e, d.event_name, s), 0) : (zr(`${an(e)}: event that no gclass declares public, DROPPED: ev '${Uu(i, Lu)}'`), -1);
4622
4731
  }
4623
- function qu(e, t, n, r) {
4732
+ function Zu(e, t, n, r) {
4624
4733
  const l = n && "string" == typeof n[r] ? n[r] : "", o = n && "string" == typeof n.service ? n.service : "";
4625
- return zr(`${an(e)}: ${t} not served by this client, DROPPED: ${r.replace(/_/g, "")} '${ku(l, Iu)}', service '${ku(o, Iu)}'`), -1;
4734
+ return zr(`${an(e)}: ${t} not served by this client, DROPPED: ${r.replace(/_/g, "")} '${Uu(l, Lu)}', service '${Uu(o, Lu)}'`), -1;
4626
4735
  }
4627
- function Hu(e, t, n, r) {
4628
- return qu(e, t, n, "__stats__");
4736
+ function ea(e, t, n, r) {
4737
+ return Zu(e, t, n, "__stats__");
4629
4738
  }
4630
- function zu(e, t, n, r) {
4631
- return qu(e, t, n, "__command__");
4739
+ function ta(e, t, n, r) {
4740
+ return Zu(e, t, n, "__command__");
4632
4741
  }
4633
- var Qu = {
4742
+ var na = {
4634
4743
  mt_create: function(e) {
4635
4744
  let t = e.priv;
4636
4745
  t.gobj_timer = Lt(sn(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = Pn(e, "url"), t.remote_yuno_name = Pn(e, "remote_yuno_name"), t.remote_yuno_role = Pn(e, "remote_yuno_role"), t.remote_yuno_service = Pn(e, "remote_yuno_service"), Kn(e, "wanted_yuno_name", t.remote_yuno_name), Kn(e, "wanted_yuno_role", t.remote_yuno_role), Kn(e, "wanted_yuno_service", t.remote_yuno_service);
@@ -4660,43 +4769,43 @@ var Qu = {
4660
4769
  code: 1e3,
4661
4770
  reason: "restarted",
4662
4771
  was_clean: !0
4663
- }, e), fu(t.gobj_timer)), t.websocket = Au(e), 0;
4772
+ }, e), bu(t.gobj_timer)), t.websocket = Iu(e), 0;
4664
4773
  },
4665
4774
  mt_stop: function(e) {
4666
4775
  let t = e.priv;
4667
- return fu(t.gobj_timer), t.websocket && Du(e), 0;
4776
+ return bu(t.gobj_timer), t.websocket && ku(e), 0;
4668
4777
  },
4669
4778
  mt_destroy: function(e) {},
4670
4779
  mt_stats: function(e, t, n, r) {
4671
4780
  if ("ST_SESSION" !== Yn(e)) return Hr("Not in session"), null;
4672
4781
  n || (n = {});
4673
- let l = Fu(e, sn(r), gi(e, n, "service", null, 0)), o = pi(e, n, "__md_stats__", null, Or.KW_EXTRACT);
4674
- return o || (o = {}), Bi(e, n, "stats_stack", {
4782
+ let l = Vu(e, sn(r), gi(e, n, "service", null, 0)), o = pi(e, n, "__md_stats__", null, Or.KW_EXTRACT);
4783
+ return o || (o = {}), Yi(e, n, "stats_stack", {
4675
4784
  stats: t,
4676
4785
  kw: o
4677
- }), Bi(e, n, Su, l), n.__stats__ = t, Ji(e, n, "__stats__"), Uu(e, "EV_MT_STATS", n, r), null;
4786
+ }), Yi(e, n, $u, l), n.__stats__ = t, qi(e, n, "__stats__"), Gu(e, "EV_MT_STATS", n, r), null;
4678
4787
  },
4679
4788
  mt_command_parser: function(e, t, n, r) {
4680
4789
  if ("ST_SESSION" !== Yn(e)) return Hr("Not in session"), null;
4681
4790
  n || (n = {});
4682
- let l = Fu(e, sn(r), gi(e, n, "service", "", 0)), o = pi(e, n, "__md_command__", null, Or.KW_EXTRACT);
4683
- return o || (o = {}), Bi(e, n, "command_stack", {
4791
+ let l = Vu(e, sn(r), gi(e, n, "service", "", 0)), o = pi(e, n, "__md_command__", null, Or.KW_EXTRACT);
4792
+ return o || (o = {}), Yi(e, n, "command_stack", {
4684
4793
  command: t,
4685
4794
  kw: o
4686
- }), Bi(e, n, Su, l), n.__command__ = t, Ji(e, n, "__command__"), Uu(e, "EV_MT_COMMAND", n, r), null;
4795
+ }), Yi(e, n, $u, l), n.__command__ = t, qi(e, n, "__command__"), Gu(e, "EV_MT_COMMAND", n, r), null;
4687
4796
  },
4688
4797
  mt_inject_event: function(e, t, n, r) {
4689
4798
  if ("ST_SESSION" !== Yn(e)) return window.console.error("Not in session"), -1;
4690
- if (n = Oo({}, Fo(n) ? n : {}), Fo(n.__md_iev__) && (n.__md_iev__ = Eo(n.__md_iev__)), Yi(e, n, Su));
4799
+ if (n = Oo({}, Fo(n) ? n : {}), Fo(n.__md_iev__) && (n.__md_iev__ = Eo(n.__md_iev__)), Ji(e, n, $u));
4691
4800
  else {
4692
- let l = Fu(e, sn(r), gi(e, n, "__service__", 0, 0));
4693
- wo(n, "__service__"), Bi(e, n, "__message__", t), Bi(e, n, Su, l);
4801
+ let l = Vu(e, sn(r), gi(e, n, "__service__", 0, 0));
4802
+ $o(n, "__service__"), Yi(e, n, "__message__", t), Yi(e, n, $u, l);
4694
4803
  }
4695
- return Ji(e, n, "__message__"), Uu(e, t, n, r);
4804
+ return qi(e, n, "__message__"), Gu(e, t, n, r);
4696
4805
  },
4697
4806
  mt_subscription_added: function(e, t) {
4698
4807
  let n = e.priv;
4699
- return "ST_SESSION" === Yn(e) && n.websocket ? n.inside_on_open ? 0 : Gu(e, t) : 0;
4808
+ return "ST_SESSION" === Yn(e) && n.websocket ? n.inside_on_open ? 0 : xu(e, t) : 0;
4700
4809
  },
4701
4810
  mt_subscription_deleted: function(e, t) {
4702
4811
  let n = e.priv;
@@ -4705,27 +4814,27 @@ var Qu = {
4705
4814
  if (qo(t.event)) return 0;
4706
4815
  let r = {}, l = t.__global__, o = t.__config__, i = t.__filter__, s = t.__service__, u = t.subscriber;
4707
4816
  o && (r.__config__ = o), l && (r.__global__ = l), i && (r.__filter__ = i);
4708
- return Bi(e, r, Su, Fu(e, sn(u), s)), Ji(e, r, "__unsubscribing__"), Uu(e, t.event, r, e);
4817
+ return Yi(e, r, $u, Vu(e, sn(u), s)), qi(e, r, "__unsubscribing__"), Gu(e, t.event, r, e);
4709
4818
  }
4710
4819
  };
4711
- function Xu() {
4820
+ function ra() {
4712
4821
  return function(e) {
4713
- if (Ru) return Hr(`GClass ALREADY created: ${e}`), -1;
4822
+ if (Cu) return Hr(`GClass ALREADY created: ${e}`), -1;
4714
4823
  const t = [
4715
4824
  ["ST_DISCONNECTED", [
4716
4825
  [
4717
4826
  "EV_ON_OPEN",
4718
- Wu,
4827
+ Bu,
4719
4828
  "ST_WAIT_IDENTITY_CARD_ACK"
4720
4829
  ],
4721
4830
  [
4722
4831
  "EV_ON_CLOSE",
4723
- xu,
4832
+ Yu,
4724
4833
  null
4725
4834
  ],
4726
4835
  [
4727
4836
  "EV_TIMEOUT",
4728
- Vu,
4837
+ Ku,
4729
4838
  null
4730
4839
  ],
4731
4840
  [
@@ -4737,22 +4846,22 @@ function Xu() {
4737
4846
  ["ST_WAIT_IDENTITY_CARD_ACK", [
4738
4847
  [
4739
4848
  "EV_ON_MESSAGE",
4740
- Ju,
4849
+ Xu,
4741
4850
  null
4742
4851
  ],
4743
4852
  [
4744
4853
  "EV_IDENTITY_CARD_ACK",
4745
- Yu,
4854
+ Qu,
4746
4855
  null
4747
4856
  ],
4748
4857
  [
4749
4858
  "EV_ON_CLOSE",
4750
- xu,
4859
+ Yu,
4751
4860
  "ST_DISCONNECTED"
4752
4861
  ],
4753
4862
  [
4754
4863
  "EV_TIMEOUT",
4755
- Bu,
4864
+ zu,
4756
4865
  null
4757
4866
  ],
4758
4867
  [
@@ -4764,22 +4873,22 @@ function Xu() {
4764
4873
  ["ST_SESSION", [
4765
4874
  [
4766
4875
  "EV_ON_MESSAGE",
4767
- Ju,
4876
+ Xu,
4768
4877
  null
4769
4878
  ],
4770
4879
  [
4771
4880
  "EV_MT_STATS",
4772
- Hu,
4881
+ ea,
4773
4882
  null
4774
4883
  ],
4775
4884
  [
4776
4885
  "EV_MT_COMMAND",
4777
- zu,
4886
+ ta,
4778
4887
  null
4779
4888
  ],
4780
4889
  [
4781
4890
  "EV_ON_CLOSE",
4782
- xu,
4891
+ Yu,
4783
4892
  "ST_DISCONNECTED"
4784
4893
  ],
4785
4894
  [
@@ -4790,7 +4899,7 @@ function Xu() {
4790
4899
  ]],
4791
4900
  [null, null]
4792
4901
  ];
4793
- return (Ru = ut(e, [
4902
+ return (Cu = ut(e, [
4794
4903
  ["EV_ON_MESSAGE", Y.EVF_OUTPUT_EVENT],
4795
4904
  ["EV_IDENTITY_CARD_ACK", Y.EVF_PUBLIC_EVENT],
4796
4905
  ["EV_ON_ID_NAK", Y.EVF_OUTPUT_EVENT],
@@ -4801,9 +4910,9 @@ function Xu() {
4801
4910
  ["EV_ON_OPEN_ERROR", Y.EVF_OUTPUT_EVENT | Y.EVF_NO_WARN_SUBS],
4802
4911
  ["EV_TIMEOUT", 0],
4803
4912
  [null, 0]
4804
- ], t, Qu, 0, ju, $u, 0, 0, Nu, x.gcflag_no_check_output_events)) ? 0 : -1;
4913
+ ], t, na, 0, wu, Du, 0, 0, Ru, x.gcflag_no_check_output_events)) ? 0 : -1;
4805
4914
  }("C_IEVENT_CLI");
4806
4915
  }
4807
- export { W as GObj, k as SDATA, F as SDATAAUTHZ, P as SDATACM, L as SDATACM2, G as SDATADF, U as SDATAPM, M as SDATAPM0, I as SDATA_END, C as SDataDesc, u as YUNETA_VERSION, m as __yuno__, o as build_command_response, Ds as build_path, s as build_stats_response, $s as clean_name, fu as clear_timeout, Zo as cmp_two_simple_json, ze as command_parameter_from_json, He as command_parameter_from_text, l as command_parser, ys as createElement2, ms as createOneHtml, os as create_json_record, nu as create_template_record, Ss as current_timestamp, O as data_type_t, Ys as db_list_persistent_attrs, xs as db_load_persistent_attrs, Bs as db_remove_persistent_attrs, Ks as db_save_persistent_attrs, As as debounce, Wi as delete_from_list, vo as duplicate_objects, Uo as empty_json, qo as empty_string, us as escapeHtml, Y as event_flag_t, Fs as flat2json, Vs as flat_apply, Gs as flat_diff, Ps as flat_key_join, Ls as flat_key_split, gt as gclass_add_ev_action, bt as gclass_add_event_type, ft as gclass_add_state, ht as gclass_check_fsm, ut as gclass_create, pt as gclass_event_type, mt as gclass_find_by_name, x as gclass_flag_t, at as gclass_unregister, Es as getPositionRelativeToBody, Rs as get_function_name, js as get_now, bn as gobj_bottom_gobj, Jn as gobj_change_parent, Bn as gobj_change_state, vr as gobj_command, Ut as gobj_create, Dt as gobj_create2, kt as gobj_create_default_service, Lt as gobj_create_pure_child, It as gobj_create_service, Pt as gobj_create_volatil, Ct as gobj_create_yuno, Yn as gobj_current_state, Et as gobj_default_service, tr as gobj_deliver_posted_events, Ft as gobj_destroy, Nn as gobj_find_child, sr as gobj_find_event_type, Sn as gobj_find_gobj, vt as gobj_find_service, yr as gobj_find_subscribings, hr as gobj_find_subscriptions, K as gobj_flag_t, cn as gobj_full_name, un as gobj_gclass_name, Se as gobj_get_gclass_trace_level, je as gobj_get_gclass_trace_level2, Ne as gobj_get_gclass_trace_no_level, Te as gobj_get_global_trace_level, Oe as gobj_get_global_trace_no_level, me as gobj_global_trace_level, ye as gobj_global_trace_no_level, An as gobj_has_attr, Hn as gobj_has_event, zn as gobj_has_output_event, ot as gobj_hsdata, dn as gobj_is_destroying, tn as gobj_is_playing, gn as gobj_is_pure_child, Xt as gobj_is_running, en as gobj_is_service, fn as gobj_is_volatil, $t as gobj_list_persistent_attrs, mr as gobj_list_subscriptions, jt as gobj_load_persistent_attrs, wn as gobj_match_children, $n as gobj_match_children_tree, jn as gobj_match_gobj, sn as gobj_name, _n as gobj_parent, Qt as gobj_pause, zt as gobj_play, Zn as gobj_post_event, er as gobj_posted_events_size, Er as gobj_publish_event, Dn as gobj_read_attr, Cn as gobj_read_attrs, In as gobj_read_bool_attr, kn as gobj_read_integer_attr, Ln as gobj_read_pointer_attr, Pn as gobj_read_str_attr, wt as gobj_remove_persistent_attrs, Ce as gobj_repr_global_trace_levels, Gn as gobj_reset_volatil_attrs, Nt as gobj_save_persistent_attrs, Rn as gobj_search_path, or as gobj_send_event, yt as gobj_services, pn as gobj_set_bottom_gobj, we as gobj_set_deep_trace, Ae as gobj_set_gclass_no_trace, $e as gobj_set_gclass_trace, he as gobj_set_global_no_trace, ve as gobj_set_global_no_trace2, pe as gobj_set_global_trace, Ee as gobj_set_global_trace2, De as gobj_set_gobj_no_trace, Re as gobj_set_gobj_trace, X as gobj_set_trace_machine_format, an as gobj_short_name, Mt as gobj_start, xt as gobj_start_children, Bt as gobj_start_tree, Ie as gobj_start_up, Tr as gobj_stats, Yt as gobj_stop, qt as gobj_stop_children, Ht as gobj_stop_tree, dr as gobj_subscribe_event, ue as gobj_trace_level, Z as gobj_trace_machine_format, ae as gobj_trace_no_level, br as gobj_unsubscribe_event, pr as gobj_unsubscribe_list, mn as gobj_walk_gobj_children, yn as gobj_walk_gobj_children_tree, Un as gobj_write_attr, Vn as gobj_write_attrs, Wn as gobj_write_bool_attr, xn as gobj_write_integer_attr, Kn as gobj_write_str_attr, nn as gobj_yuno, on as gobj_yuno_id, rn as gobj_yuno_name, ln as gobj_yuno_role, _s as html_markup, Mi as id_index_in_obj_list, Ns as index_in_list, Mo as is_array, Wo as is_boolean, Bo as is_date, Yo as is_function, Jo as is_gobj, fs as is_html_markup, ti as is_metadata_key, xo as is_null, Vo as is_number, Fo as is_object, ni as is_private_key, Ko as is_pure_number, _l as is_secret_name, Go as is_string, es as jdb_delete, ns as jdb_get, rs as jdb_get_by_idx, ts as jdb_get_topic, Xi as jdb_init, Zi as jdb_update, Us as json2flat, Ao as json_array_append, Do as json_array_append_new, Io as json_array_extend, Co as json_array_remove, Po as json_array_size, Eo as json_deep_copy, To as json_is_identical, mo as json_mask_secrets, wo as json_object_del, No as json_object_get, $o as json_object_set, Ro as json_object_set_new, ko as json_object_size, Oo as json_object_update, So as json_object_update_existing, jo as json_object_update_missing, Lo as json_size, ss as jwt2json, is as jwtDecode, ji as kw_clone_by_keys, Ni as kw_clone_by_not_keys, Si as kw_collect, ai as kw_delete, Ti as kw_find_json_in_list, ui as kw_find_path, Or as kw_flag_t, ci as kw_get_bool, bi as kw_get_dict, pi as kw_get_dict_value, _i as kw_get_int, hi as kw_get_list, Ri as kw_get_local_storage_value, di as kw_get_pointer, fi as kw_get_real, gi as kw_get_str, li as kw_has_key, vi as kw_match_simple, ri as kw_pop, Di as kw_remove_local_storage_value, Oi as kw_select, mi as kw_set_dict_value, Ai as kw_set_local_storage_value, yi as kw_set_subdict_value, Ii as kwid_collect, Li as kwid_find_one_record, Ui as kwid_get_ids, Ci as kwid_match_id, ki as kwid_new_dict, Pi as kwid_new_list, Fi as list2options, Hi as load_json_file, Xr as log_debug, Hr as log_error, Qr as log_info, zr as log_warning, fo as mask_secrets_inline, qi as msg_iev_get_msg_type, Yi as msg_iev_get_stack, Bi as msg_iev_push_stack, xi as msg_iev_read_key, Ji as msg_iev_set_msg_type, Ki as msg_iev_write_key, ws as node_uuid, Ho as parseBoolean, vs as parseSVG, Ts as refresh_language, Xu as register_c_ievent_cli, uu as register_c_timer, Ou as register_c_yuno, as as safeSrc, D as sdata_flag_t, zi as send_http_json_post, kr as set_console_log_enabled, Lr as set_console_log_filter, Cr as set_log_callback, Vr as set_remote_log_functions, ps as set_strings_are_text, cu as set_timeout, _u as set_timeout_periodic, t as sprintf, i as stats_parser, Gi as str_in_list, Xo as strcasecmp, Qo as strcmp, hs as strings_are_text, zo as strncmp, Vi as strs_in_list, ei as strstr, tu as template_get_field_desc, Os as timeTracker, el as trace_json, yo as trace_json_masked, te as trace_level_t, Zr as trace_msg, qs as treedb_decoder_fkey, zs as treedb_decoder_hook, Hs as treedb_encoder_fkey, eu as treedb_get_field_desc, Js as treedb_hook_data_size, n as vsprintf, J as walk_type_t };
4916
+ export { W as GObj, k as SDATA, F as SDATAAUTHZ, P as SDATACM, L as SDATACM2, G as SDATADF, U as SDATAPM, M as SDATAPM0, I as SDATA_END, C as SDataDesc, u as YUNETA_VERSION, m as __yuno__, o as build_command_response, ks as build_path, s as build_stats_response, Ds as clean_name, bu as clear_timeout, Zo as cmp_two_simple_json, ze as command_parameter_from_json, He as command_parameter_from_text, l as command_parser, Es as createElement2, ys as createOneHtml, is as create_json_record, ou as create_template_record, js as current_timestamp, O as data_type_t, Hs as db_list_persistent_attrs, Ys as db_load_persistent_attrs, qs as db_remove_persistent_attrs, Js as db_save_persistent_attrs, Is as debounce, xi as delete_from_list, vo as duplicate_objects, Uo as empty_json, qo as empty_string, as as escapeHtml, Y as event_flag_t, Vs as flat2json, Ks as flat_apply, xs as flat_diff, Fs as flat_key_join, Ms as flat_key_split, gt as gclass_add_ev_action, bt as gclass_add_event_type, ft as gclass_add_state, ht as gclass_check_fsm, ut as gclass_create, pt as gclass_event_type, mt as gclass_find_by_name, x as gclass_flag_t, at as gclass_unregister, vs as getPositionRelativeToBody, Cs as get_function_name, Ns as get_now, bn as gobj_bottom_gobj, Jn as gobj_change_parent, Bn as gobj_change_state, vr as gobj_command, Ut as gobj_create, Dt as gobj_create2, kt as gobj_create_default_service, Lt as gobj_create_pure_child, It as gobj_create_service, Pt as gobj_create_volatil, Ct as gobj_create_yuno, Yn as gobj_current_state, Et as gobj_default_service, tr as gobj_deliver_posted_events, Ft as gobj_destroy, Nn as gobj_find_child, sr as gobj_find_event_type, Sn as gobj_find_gobj, vt as gobj_find_service, yr as gobj_find_subscribings, hr as gobj_find_subscriptions, K as gobj_flag_t, cn as gobj_full_name, un as gobj_gclass_name, Se as gobj_get_gclass_trace_level, je as gobj_get_gclass_trace_level2, Ne as gobj_get_gclass_trace_no_level, Te as gobj_get_global_trace_level, Oe as gobj_get_global_trace_no_level, me as gobj_global_trace_level, ye as gobj_global_trace_no_level, An as gobj_has_attr, Hn as gobj_has_event, zn as gobj_has_output_event, ot as gobj_hsdata, dn as gobj_is_destroying, tn as gobj_is_playing, gn as gobj_is_pure_child, Xt as gobj_is_running, en as gobj_is_service, fn as gobj_is_volatil, wt as gobj_list_persistent_attrs, mr as gobj_list_subscriptions, jt as gobj_load_persistent_attrs, $n as gobj_match_children, wn as gobj_match_children_tree, jn as gobj_match_gobj, sn as gobj_name, _n as gobj_parent, Qt as gobj_pause, zt as gobj_play, Zn as gobj_post_event, er as gobj_posted_events_size, Er as gobj_publish_event, Dn as gobj_read_attr, Cn as gobj_read_attrs, In as gobj_read_bool_attr, kn as gobj_read_integer_attr, Ln as gobj_read_pointer_attr, Pn as gobj_read_str_attr, $t as gobj_remove_persistent_attrs, Ce as gobj_repr_global_trace_levels, Gn as gobj_reset_volatil_attrs, Nt as gobj_save_persistent_attrs, Rn as gobj_search_path, or as gobj_send_event, yt as gobj_services, pn as gobj_set_bottom_gobj, $e as gobj_set_deep_trace, Ae as gobj_set_gclass_no_trace, we as gobj_set_gclass_trace, he as gobj_set_global_no_trace, ve as gobj_set_global_no_trace2, pe as gobj_set_global_trace, Ee as gobj_set_global_trace2, De as gobj_set_gobj_no_trace, Re as gobj_set_gobj_trace, X as gobj_set_trace_machine_format, an as gobj_short_name, Mt as gobj_start, xt as gobj_start_children, Bt as gobj_start_tree, Ie as gobj_start_up, Tr as gobj_stats, Yt as gobj_stop, qt as gobj_stop_children, Ht as gobj_stop_tree, dr as gobj_subscribe_event, ue as gobj_trace_level, Z as gobj_trace_machine_format, ae as gobj_trace_no_level, br as gobj_unsubscribe_event, pr as gobj_unsubscribe_list, mn as gobj_walk_gobj_children, yn as gobj_walk_gobj_children_tree, Un as gobj_write_attr, Vn as gobj_write_attrs, Wn as gobj_write_bool_attr, xn as gobj_write_integer_attr, Kn as gobj_write_str_attr, nn as gobj_yuno, on as gobj_yuno_id, rn as gobj_yuno_name, ln as gobj_yuno_role, fs as html_markup, Gi as id_index_in_obj_list, $s as index_in_list, Mo as is_array, Wo as is_boolean, Bo as is_date, Yo as is_function, Jo as is_gobj, gs as is_html_markup, ti as is_metadata_key, xo as is_null, Vo as is_number, Fo as is_object, ni as is_private_key, Ko as is_pure_number, _l as is_secret_name, Go as is_string, ts as jdb_delete, rs as jdb_get, ls as jdb_get_by_idx, ns as jdb_get_topic, Zi as jdb_init, es as jdb_update, Gs as json2flat, Ao as json_array_append, Do as json_array_append_new, Io as json_array_extend, Co as json_array_remove, Po as json_array_size, Eo as json_deep_copy, To as json_is_identical, mo as json_mask_secrets, $o as json_object_del, No as json_object_get, wo as json_object_set, Ro as json_object_set_new, ko as json_object_size, Oo as json_object_update, So as json_object_update_existing, jo as json_object_update_missing, Lo as json_size, nt as json_text_of, us as jwt2json, ss as jwtDecode, ji as kw_clone_by_keys, Ni as kw_clone_by_not_keys, Si as kw_collect, ai as kw_delete, Ti as kw_find_json_in_list, ui as kw_find_path, Or as kw_flag_t, ci as kw_get_bool, bi as kw_get_dict, pi as kw_get_dict_value, _i as kw_get_int, hi as kw_get_list, Ai as kw_get_local_storage_value, di as kw_get_pointer, fi as kw_get_real, gi as kw_get_str, li as kw_has_key, vi as kw_match_simple, ri as kw_pop, Ci as kw_remove_local_storage_value, Oi as kw_select, mi as kw_set_dict_value, Di as kw_set_local_storage_value, yi as kw_set_subdict_value, ki as kwid_collect, Ui as kwid_find_one_record, Fi as kwid_get_ids, Ii as kwid_match_id, Pi as kwid_new_dict, Li as kwid_new_list, Mi as list2options, zi as load_json_file, Xr as log_debug, Hr as log_error, Qr as log_info, zr as log_warning, fo as mask_secrets_inline, Hi as msg_iev_get_msg_type, Ji as msg_iev_get_stack, Yi as msg_iev_push_stack, Ki as msg_iev_read_key, qi as msg_iev_set_msg_type, Bi as msg_iev_write_key, As as node_uuid, Ho as parseBoolean, Ts as parseSVG, Os as refresh_language, ra as register_c_ievent_cli, _u as register_c_timer, Nu as register_c_yuno, cs as safeSrc, D as sdata_flag_t, Qi as send_http_json_post, kr as set_console_log_enabled, Lr as set_console_log_filter, Cr as set_log_callback, Vr as set_remote_log_functions, hs as set_strings_are_text, gu as set_timeout, du as set_timeout_periodic, t as sprintf, i as stats_parser, Vi as str_in_list, Xo as strcasecmp, Qo as strcmp, ms as strings_are_text, zo as strncmp, Wi as strs_in_list, ei as strstr, lu as template_get_field_desc, Ss as timeTracker, el as trace_json, yo as trace_json_masked, te as trace_level_t, Zr as trace_msg, Qs as treedb_decoder_fkey, Zs as treedb_decoder_hook, Xs as treedb_encoder_fkey, ru as treedb_get_field_desc, zs as treedb_hook_data_size, n as vsprintf, J as walk_type_t };
4808
4917
 
4809
4918
  //# sourceMappingURL=gobj-js.es.min.js.map