@yuneta/gobj-js 7.26.2 → 7.26.3

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.
@@ -663,7 +663,7 @@ function Ne(e, t) {
663
663
  t.parent && mn(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
664
664
  }
665
665
  function Re(e, t) {
666
- let n = qr(e.dl_children, t);
666
+ let n = Zr(e.dl_children, t);
667
667
  n >= 0 && (qn(e.dl_children, n), t.parent = null);
668
668
  }
669
669
  function xe(e, t) {
@@ -1095,7 +1095,7 @@ function Ut(e, n, r, o) {
1095
1095
  if (1 === A) I(t("🔄 %s %s%s %s from %s%s", n || "", e.running ? "" : "!!", Ze(e), s.state_name, o && !o.running ? "!!" : "", Ze(o)));
1096
1096
  else {
1097
1097
  let r = "";
1098
- i.action && (r = zr(i.action)), I(t("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Xe(e), Qe(e), s.state_name, "", n || "", "", r, o && !o.running ? "!!" : "", Xe(o), Qe(o)));
1098
+ i.action && (r = to(i.action)), I(t("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Xe(e), Qe(e), s.state_name, "", n || "", "", r, o && !o.running ? "!!" : "", Xe(o), Qe(o)));
1099
1099
  }
1100
1100
  r && J(e) && Hn(r) && Ln(r);
1101
1101
  }
@@ -1401,23 +1401,23 @@ function bn(e) {
1401
1401
  return n;
1402
1402
  }
1403
1403
  function mn(e, ...t) {
1404
- let n = bn(e, ...t), r = Jr();
1404
+ let n = bn(e, ...t), r = Xr();
1405
1405
  en && (en === Zt.error ? un("error", n) && en("%c" + r + " ERROR: " + String(n), "color:red") : (un("error", n) && Zt.error("%c" + r + " ERROR: " + String(n), "color:red"), en(`${r} ERROR: ${String(n)}`))), fn("error", n, r);
1406
1406
  }
1407
1407
  function hn(e, ...t) {
1408
- let n = bn(e, ...t), r = Jr();
1408
+ let n = bn(e, ...t), r = Xr();
1409
1409
  tn && (tn === Zt.warn ? un("warning", n) && tn("%c" + r + " WARNING: " + String(n), "color:yellow") : (un("warning", n) && Zt.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), tn(`${r} WARNING: ${String(n)}`))), fn("warning", n, r);
1410
1410
  }
1411
1411
  function yn(e, ...t) {
1412
- let n = bn(e, ...t), r = Jr();
1412
+ let n = bn(e, ...t), r = Xr();
1413
1413
  rn && un("debug", n) && rn("%c" + r + " DEBUG: " + String(n), "color:silver"), fn("debug", n, r);
1414
1414
  }
1415
1415
  function En(e, ...t) {
1416
- let n = bn(e, ...t), r = Jr();
1416
+ let n = bn(e, ...t), r = Xr();
1417
1417
  rn && un("msg", n) && rn("%c" + r + " MSG: " + String(n), "color:cyan"), fn("msg", n, r);
1418
1418
  }
1419
1419
  function Tn(e, t) {
1420
- un("json", t) && (t && Zt.warn("=====> " + t), Zt.dir(e)), fn("json", e, Jr());
1420
+ un("json", t) && (t && Zt.warn("=====> " + t), Zt.dir(e)), fn("json", e, Xr());
1421
1421
  }
1422
1422
  var vn = [
1423
1423
  "passw",
@@ -2106,33 +2106,49 @@ function Kr(e) {
2106
2106
  function Yr(e) {
2107
2107
  return null == e ? "" : String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
2108
2108
  }
2109
- function Br(e) {
2109
+ var Br = class {
2110
+ constructor(e) {
2111
+ this.html = e, Object.freeze(this);
2112
+ }
2113
+ toString() {
2114
+ return this.html;
2115
+ }
2116
+ };
2117
+ function Jr(e) {
2118
+ return e instanceof Br;
2119
+ }
2120
+ function qr(e) {
2121
+ const t = document.createElement("template");
2122
+ return t.innerHTML = e.html.trim(), t.content;
2123
+ }
2124
+ var Hr = !1, zr = /* @__PURE__ */ new Set();
2125
+ function Qr(e) {
2110
2126
  const t = document.createElement("template");
2111
2127
  return t.innerHTML = e.trim(), t.content.firstChild;
2112
2128
  }
2113
- function Jr(e) {
2129
+ function Xr(e) {
2114
2130
  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), o = e.getTimezoneOffset();
2115
2131
  return `${n}.${r}${o > 0 ? "-" : "+"}${t(Math.floor(Math.abs(o) / 60), 2)}${t(Math.abs(o) % 60, 2)}`;
2116
2132
  }
2117
- function qr(e, t) {
2133
+ function Zr(e, t) {
2118
2134
  if (!e) throw "ERROR: index_in_list() list empty";
2119
2135
  for (let n = 0; n < e.length; n++) if (t === e[n]) return n;
2120
2136
  return -1;
2121
2137
  }
2122
- function Hr() {
2138
+ function eo() {
2123
2139
  let e = "";
2124
2140
  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;
2125
2141
  }
2126
- function zr(e) {
2142
+ function to(e) {
2127
2143
  let t = null;
2128
2144
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
2129
2145
  }
2130
- var Qr = 256, Xr = 1e5;
2131
- function Zr(e) {
2146
+ var no = 256, ro = 1e5;
2147
+ function oo(e) {
2132
2148
  const t = String(e).replace(/`/g, "``");
2133
2149
  return "[" === t[0] ? "[" + t : t;
2134
2150
  }
2135
- function eo(e) {
2151
+ function so(e) {
2136
2152
  if ("string" != typeof e) return null;
2137
2153
  let t = [], n = "";
2138
2154
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -2153,13 +2169,13 @@ function eo(e) {
2153
2169
  return null !== t ? t : "[" === e[0] && "[" === e[1] ? e.slice(1) : e;
2154
2170
  });
2155
2171
  }
2156
- function to(e, t) {
2172
+ function lo(e, t) {
2157
2173
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
2158
2174
  }
2159
- function no(e) {
2175
+ function io(e) {
2160
2176
  return "persistent-attrs-" + Ze(e);
2161
2177
  }
2162
- function ro(e, t) {
2178
+ function _o(e, t) {
2163
2179
  if (er(t)) {
2164
2180
  if (-1 === t.indexOf("^")) {
2165
2181
  let n, r, o = e.fkey;
@@ -2189,7 +2205,7 @@ function ro(e, t) {
2189
2205
  hook_name: t.hook_name
2190
2206
  } : (mn("bad fkey 3"), mn(e), mn(t), null);
2191
2207
  }
2192
- var oo = [
2208
+ var ao = [
2193
2209
  "string",
2194
2210
  "integer",
2195
2211
  "object",
@@ -2199,7 +2215,7 @@ var oo = [
2199
2215
  "real",
2200
2216
  "boolean",
2201
2217
  "blob"
2202
- ], so = [
2218
+ ], uo = [
2203
2219
  "persistent",
2204
2220
  "required",
2205
2221
  "notnull",
@@ -2211,7 +2227,7 @@ var oo = [
2211
2227
  "stats",
2212
2228
  "rstats",
2213
2229
  "pstats"
2214
- ], lo = [
2230
+ ], co = [
2215
2231
  "hook",
2216
2232
  "fkey",
2217
2233
  "enum",
@@ -2240,7 +2256,7 @@ var oo = [
2240
2256
  "coordinates",
2241
2257
  "gbuffer"
2242
2258
  ];
2243
- function io(e) {
2259
+ function fo(e) {
2244
2260
  let t = {
2245
2261
  name: e.id,
2246
2262
  header: e.header,
@@ -2259,7 +2275,7 @@ function io(e) {
2259
2275
  if (!e.flag) return t;
2260
2276
  for (let n = 0; n < e.flag.length; n++) {
2261
2277
  let r = e.flag[n];
2262
- if (Cr(lo, r)) {
2278
+ if (Cr(co, r)) {
2263
2279
  switch (r) {
2264
2280
  case "enum":
2265
2281
  t.enum_list = e.enum;
@@ -2273,7 +2289,7 @@ function io(e) {
2273
2289
  case "file": t.is_file = !0;
2274
2290
  }
2275
2291
  t.type = r;
2276
- } else if (Cr(so, r)) switch (r) {
2292
+ } else if (Cr(uo, r)) switch (r) {
2277
2293
  case "writable":
2278
2294
  t.is_writable = !0;
2279
2295
  break;
@@ -2286,23 +2302,23 @@ function io(e) {
2286
2302
  }
2287
2303
  return t.is_file && (t.type = "file"), t;
2288
2304
  }
2289
- var _o = [
2305
+ var go = [
2290
2306
  v(h.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
2291
2307
  v(h.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
2292
2308
  v(h.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
2293
2309
  T()
2294
- ], ao = {
2310
+ ], po = {
2295
2311
  periodic: !1,
2296
2312
  msec: 0,
2297
2313
  timer_id: -1
2298
- }, uo = null;
2299
- function co(e, t, n, r) {
2314
+ }, bo = null;
2315
+ function mo(e, t, n, r) {
2300
2316
  let o = e.priv, s = o.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
2301
2317
  return o.periodic && o.msec > 0 ? o.timer_id = setTimeout(function() {
2302
2318
  Ut(e, "EV_TIMEOUT", {}, e);
2303
2319
  }, o.msec) : o.timer_id = -1, rt(e) ? Ut(tt(e), s, {}, e) : Qt(e, s, {}), o.periodic || -1 !== o.timer_id || We(e) && Ue(e), 0;
2304
2320
  }
2305
- var fo = {
2321
+ var ho = {
2306
2322
  mt_create: function(e) {
2307
2323
  let t = e.priv;
2308
2324
  const n = jt(e, "subscriber");
@@ -2327,16 +2343,16 @@ var fo = {
2327
2343
  },
2328
2344
  mt_destroy: function(e) {}
2329
2345
  };
2330
- function go(e, t) {
2346
+ function yo(e, t) {
2331
2347
  return e instanceof O ? "C_TIMER" !== Xe(e) ? (mn("not C_TIMER GObj"), -1) : (wt(e, "periodic", !1), void Nt(e, "msec", t)) : (mn("not GObj TYPE"), -1);
2332
2348
  }
2333
- function po(e, t) {
2349
+ function Eo(e, t) {
2334
2350
  return e instanceof O ? "C_TIMER" !== Xe(e) ? (mn("not C_TIMER GObj"), -1) : (wt(e, "periodic", !0), void Nt(e, "msec", t)) : (mn("not GObj TYPE"), -1);
2335
2351
  }
2336
- function bo(e) {
2352
+ function To(e) {
2337
2353
  return e instanceof O ? "C_TIMER" !== Xe(e) ? (mn("not C_TIMER GObj"), -1) : void Nt(e, "msec", -1) : (mn("not GObj TYPE"), -1);
2338
2354
  }
2339
- var mo = [
2355
+ var vo = [
2340
2356
  v(h.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
2341
2357
  v(h.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
2342
2358
  v(h.DTP_STRING, "__username__", 0, "", "Username"),
@@ -2356,26 +2372,26 @@ var mo = [
2356
2372
  v(h.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
2357
2373
  v(h.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
2358
2374
  T()
2359
- ], ho = { gobj_timer: null }, yo = null;
2360
- function Eo(e, t, n, r) {
2375
+ ], jo = { gobj_timer: null }, Oo = null;
2376
+ function So(e, t, n, r) {
2361
2377
  let o = ht(e, t);
2362
2378
  return Xn(o) || (o = {}), o[n] = r, Ot(e, t, o), xe(e, t);
2363
2379
  }
2364
- function To(e) {
2380
+ function wo(e) {
2365
2381
  if (!0 === e || !1 === e) return e;
2366
2382
  let t = String(null == e ? "" : e).toLowerCase();
2367
2383
  return "true" === t || "set" === t || "false" !== t && "reset" !== t && ("" === t || isNaN(Number(t)) ? null : !!Number(t));
2368
2384
  }
2369
- function vo() {
2385
+ function No() {
2370
2386
  return `${He()}^${qe()}`;
2371
2387
  }
2372
- function jo(e, t, n, r) {
2388
+ function Ro(e, t, n, r) {
2373
2389
  return Qt(e, t, n), 0;
2374
2390
  }
2375
- var Oo = {
2391
+ var xo = {
2376
2392
  mt_create: function(e) {
2377
2393
  let t = e.priv;
2378
- Rt(e, "start_date", Jr()), Rt(e, "node_uuid", Hr()), e.priv.gobj_timer = Ae(Qe(e), "C_TIMER", {}, e), t.periodic_timeout = ht(e, "periodic_timeout"), function(e) {
2394
+ Rt(e, "start_date", Xr()), Rt(e, "node_uuid", eo()), e.priv.gobj_timer = Ae(Qe(e), "C_TIMER", {}, e), t.periodic_timeout = ht(e, "periodic_timeout"), function(e) {
2379
2395
  let t = ht(e, "trace_levels");
2380
2396
  if (!Xn(t)) return 0;
2381
2397
  let n = t.__global_trace__;
@@ -2409,10 +2425,10 @@ var Oo = {
2409
2425
  },
2410
2426
  mt_writing: function(e, t) {},
2411
2427
  mt_start: function(e) {
2412
- return po(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
2428
+ return Eo(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
2413
2429
  },
2414
2430
  mt_stop: function(e) {
2415
- return bo(e.priv.gobj_timer), Ve(e), 0;
2431
+ return To(e.priv.gobj_timer), Ve(e), 0;
2416
2432
  },
2417
2433
  mt_destroy: function(e) {},
2418
2434
  mt_play: function(e) {
@@ -2429,24 +2445,24 @@ var Oo = {
2429
2445
  case "get-global-no-trace": return r(0, 0, null, null, te());
2430
2446
  case "set-global-trace":
2431
2447
  case "set-global-no-trace": {
2432
- let o = "set-global-no-trace" === t, s = n.level, l = To(n.set);
2433
- return s ? null === l ? r(0, -1, `${vo()}: bitmask set or re-set?`, null, null) : (o ? Q(s, l) : z(s, l)) < 0 ? r(0, -1, `${vo()}: global trace level not found: ${s}`, null, null) : o ? (Eo(e, "no_trace_levels", "__global_no_trace__", te()), r(0, 0, null, null, te())) : (Eo(e, "trace_levels", "__global_trace__", ee()), r(0, 0, null, null, ee())) : r(0, -1, `${vo()}: what level?`, null, null);
2448
+ let o = "set-global-no-trace" === t, s = n.level, l = wo(n.set);
2449
+ return s ? null === l ? r(0, -1, `${No()}: bitmask set or re-set?`, null, null) : (o ? Q(s, l) : z(s, l)) < 0 ? r(0, -1, `${No()}: global trace level not found: ${s}`, null, null) : o ? (So(e, "no_trace_levels", "__global_no_trace__", te()), r(0, 0, null, null, te())) : (So(e, "trace_levels", "__global_trace__", ee()), r(0, 0, null, null, ee())) : r(0, -1, `${No()}: what level?`, null, null);
2434
2450
  }
2435
2451
  case "get-gclass-trace":
2436
2452
  case "get-gclass-no-trace":
2437
2453
  case "set-gclass-trace":
2438
2454
  case "set-gclass-no-trace": {
2439
2455
  let o = t.indexOf("no-trace") >= 0, s = n.gclass_name || n.gclass || "", l = je(s);
2440
- if (!l) return r(0, -1, `${vo()}: what gclass is '${s}'?`, null, null);
2456
+ if (!l) return r(0, -1, `${No()}: what gclass is '${s}'?`, null, null);
2441
2457
  if (0 === t.indexOf("get-")) return r(0, 0, null, null, o ? oe(l) : ne(l));
2442
- let i = n.level, _ = To(n.set);
2443
- return i ? null === _ ? r(0, -1, `${vo()}: bitmask set or re-set?`, null, null) : (o ? le(l, i, _) : se(l, i, _)) < 0 ? r(0, -1, `${vo()}: trace level of ${s} not found: ${i}`, null, null) : o ? (Eo(e, "no_trace_levels", s, oe(l)), r(0, 0, null, null, oe(l))) : (Eo(e, "trace_levels", s, re(l)), r(0, 0, null, null, ne(l))) : r(0, -1, `${vo()}: what level?`, null, null);
2458
+ let i = n.level, _ = wo(n.set);
2459
+ return i ? null === _ ? r(0, -1, `${No()}: bitmask set or re-set?`, null, null) : (o ? le(l, i, _) : se(l, i, _)) < 0 ? r(0, -1, `${No()}: trace level of ${s} not found: ${i}`, null, null) : o ? (So(e, "no_trace_levels", s, oe(l)), r(0, 0, null, null, oe(l))) : (So(e, "trace_levels", s, re(l)), r(0, 0, null, null, ne(l))) : r(0, -1, `${No()}: what level?`, null, null);
2444
2460
  }
2445
- default: return r(0, -1, `${vo()}: command not available: ${t}`, null, null);
2461
+ default: return r(0, -1, `${No()}: command not available: ${t}`, null, null);
2446
2462
  }
2447
2463
  }
2448
2464
  };
2449
- var So = "ievent_gate_stack", wo = [
2465
+ var $o = "ievent_gate_stack", Do = [
2450
2466
  v(h.DTP_STRING, "wanted_yuno_role", y.SDF_RD, "", "wanted yuno role"),
2451
2467
  v(h.DTP_STRING, "wanted_yuno_name", y.SDF_RD, "", "wanted yuno name"),
2452
2468
  v(h.DTP_STRING, "wanted_yuno_service", y.SDF_RD, "", "wanted yuno service"),
@@ -2463,15 +2479,15 @@ var So = "ievent_gate_stack", wo = [
2463
2479
  v(h.DTP_INTEGER, "timeout_idack", y.SDF_RD, "5000", "timeout waiting idAck"),
2464
2480
  v(h.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
2465
2481
  T()
2466
- ], No = [
2482
+ ], ko = [
2467
2483
  ["ievents", "Trace inter-events with metadata of kw"],
2468
2484
  ["ievents2", "Trace inter-events with full kw"],
2469
2485
  ["identity-card", "Trace identity_card messages"]
2470
2486
  ];
2471
- function Ro(e) {
2487
+ function Ao(e) {
2472
2488
  return !!(3 & M(e));
2473
2489
  }
2474
- var xo = {
2490
+ var Io = {
2475
2491
  url: null,
2476
2492
  remote_yuno_name: null,
2477
2493
  remote_yuno_role: null,
@@ -2481,8 +2497,8 @@ var xo = {
2481
2497
  websocket: null,
2482
2498
  inside_on_open: !1,
2483
2499
  retry_ms: 0
2484
- }, $o = null;
2485
- function Do(e) {
2500
+ }, Co = null;
2501
+ function Lo(e) {
2486
2502
  e.priv.websocket && mn("Websocket ALREADY setup");
2487
2503
  const t = vt(e, "url");
2488
2504
  yn(`====> Starting WebSocket to '${t}' (${Ze(e)})`);
@@ -2519,7 +2535,7 @@ function Do(e) {
2519
2535
  }, e));
2520
2536
  }, r) : (mn(`${Ze(e)}: Failed to initialize WebSocket.`), null);
2521
2537
  }
2522
- function ko(e, t = 1e3, n = "") {
2538
+ function Po(e, t = 1e3, n = "") {
2523
2539
  let r = e.priv, o = r.websocket;
2524
2540
  if (r.websocket = null, o && o.readyState !== WebSocket.CLOSED && o.readyState !== WebSocket.CLOSING) {
2525
2541
  yn(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
@@ -2530,25 +2546,25 @@ function ko(e, t = 1e3, n = "") {
2530
2546
  }
2531
2547
  } else hn("WebSocket is already closed or in the process of closing.");
2532
2548
  }
2533
- function Ao(e, t, n) {
2534
- let r = Jr();
2549
+ function Uo(e, t, n) {
2550
+ let r = Xr();
2535
2551
  try {
2536
2552
  yn("\n" + r + " " + t + "\n"), Ln(n);
2537
2553
  } catch (e) {
2538
2554
  yn("ERROR in trace_inter_event: " + e);
2539
2555
  }
2540
2556
  }
2541
- var Io = class {
2557
+ var Fo = class {
2542
2558
  constructor(e, t) {
2543
2559
  this.event = e, this.kw = t || {};
2544
2560
  }
2545
2561
  };
2546
- function Co(e, t, n, r) {
2562
+ function Vo(e, t, n, r) {
2547
2563
  return function(e, t) {
2548
2564
  let n = e.priv, r = JSON.stringify(t);
2549
- if (Ro(e)) {
2565
+ if (Ao(e)) {
2550
2566
  let n = vt(e, "url"), o = Qe(Je()) + " ==> " + n, s = ht(Je(), "trace_ievent_callback");
2551
- s ? s(o, t, 1, r.length) : Ao(0, o, t);
2567
+ s ? s(o, t, 1, r.length) : Uo(0, o, t);
2552
2568
  }
2553
2569
  if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return hn(`${Ze(e)}: send_iev(): websocket not open, message lost`), -1;
2554
2570
  try {
@@ -2558,10 +2574,10 @@ function Co(e, t, n, r) {
2558
2574
  }
2559
2575
  return 0;
2560
2576
  }(e, function(e, t) {
2561
- return lr(e) ? (mn("iev_create() event NULL"), null) : new Io(e, t);
2577
+ return lr(e) ? (mn("iev_create() event NULL"), null) : new Fo(e, t);
2562
2578
  }(t, n));
2563
2579
  }
2564
- function Lo(e, t, n) {
2580
+ function Go(e, t, n) {
2565
2581
  return lr(n) && (n = vt(e, "wanted_yuno_service")), {
2566
2582
  dst_yuno: vt(e, "wanted_yuno_name"),
2567
2583
  dst_role: vt(e, "wanted_yuno_role"),
@@ -2569,10 +2585,10 @@ function Lo(e, t, n) {
2569
2585
  src_yuno: qe(),
2570
2586
  src_role: He(),
2571
2587
  src_service: t,
2572
- host: Hr()
2588
+ host: eo()
2573
2589
  };
2574
2590
  }
2575
- function Po(e) {
2591
+ function Mo(e) {
2576
2592
  let t = e.priv, n = Be(Je()), r = vt(Je(), "yuno_version"), o = vt(Je(), "yuno_release"), l = vt(Je(), "yuno_tag"), i = ht(e, "required_services");
2577
2593
  i && i.length || (i = ht(Je(), "required_services"));
2578
2594
  let _ = {
@@ -2590,27 +2606,27 @@ function Po(e) {
2590
2606
  username: vt(Je(), "__username__"),
2591
2607
  launch_id: 0,
2592
2608
  yuno_startdate: vt(Je(), "start_date"),
2593
- id: Hr(),
2609
+ id: eo(),
2594
2610
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
2595
2611
  language: "undefined" != typeof window ? window.navigator.language : "",
2596
2612
  required_services: i
2597
2613
  };
2598
- return Ur(e, _, So, Lo(e, Qe(tt(e)), null)), Vr(e, _, "__identity__"), go(t.gobj_timer, Tt(e, "timeout_idack")), Co(e, "EV_IDENTITY_CARD", _);
2614
+ return Ur(e, _, $o, Go(e, Qe(tt(e)), null)), Vr(e, _, "__identity__"), yo(t.gobj_timer, Tt(e, "timeout_idack")), Vo(e, "EV_IDENTITY_CARD", _);
2599
2615
  }
2600
- function Uo(e, t) {
2616
+ function Wo(e, t) {
2601
2617
  if (lr(t.event)) return -1;
2602
2618
  let n = {}, r = t.__global__, o = t.__config__, s = t.__filter__, l = t.__service__, i = t.subscriber;
2603
2619
  o && (n.__config__ = o), r && (n.__global__ = r), s && (n.__filter__ = s);
2604
- return Ur(e, n, So, Lo(e, Qe(i), l)), Vr(e, n, "__subscribing__"), Co(e, t.event, n);
2620
+ return Ur(e, n, $o, Go(e, Qe(i), l)), Vr(e, n, "__subscribing__"), Vo(e, t.event, n);
2605
2621
  }
2606
- function Fo(e, t, n, r) {
2622
+ function Ko(e, t, n, r) {
2607
2623
  let o = e.priv;
2608
- return We(e) && (o.websocket = Do(e)), 0;
2624
+ return We(e) && (o.websocket = Lo(e)), 0;
2609
2625
  }
2610
- function Vo(e, t, n, r) {
2611
- return yn("Websocket opened: " + e.priv.url), Po(e), 0;
2626
+ function Yo(e, t, n, r) {
2627
+ return yn("Websocket opened: " + e.priv.url), Mo(e), 0;
2612
2628
  }
2613
- function Go(e, t, n, r) {
2629
+ function Bo(e, t, n, r) {
2614
2630
  let o = e.priv, s = n.url;
2615
2631
  return void 0 !== n.ws_seq && n.ws_seq !== o.ws_seq || (pn(), hn(`${Ze(e)}: WebSocket closed ${s} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), o.websocket && (o.websocket.onopen = null, o.websocket.onmessage = null, o.websocket.onerror = null, o.websocket.onclose = null, o.websocket = null), o.inform_on_close ? (o.inform_on_close = !1, Qt(e, "EV_ON_CLOSE", {
2616
2632
  url: s,
@@ -2625,7 +2641,7 @@ function Go(e, t, n, r) {
2625
2641
  code: n.code,
2626
2642
  reason: n.reason,
2627
2643
  was_clean: n.was_clean
2628
- })), We(e) && go(o.gobj_timer, function(e) {
2644
+ })), We(e) && yo(o.gobj_timer, function(e) {
2629
2645
  let t = e.priv, n = Tt(e, "timeout_retry"), r = Tt(e, "timeout_retry_max");
2630
2646
  r < n && (r = n);
2631
2647
  t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
@@ -2633,17 +2649,17 @@ function Go(e, t, n, r) {
2633
2649
  return Math.max(1, Math.round(s));
2634
2650
  }(e))), 0;
2635
2651
  }
2636
- function Mo(e, t, n, r) {
2637
- return Po(e), 0;
2652
+ function Jo(e, t, n, r) {
2653
+ return Mo(e), 0;
2638
2654
  }
2639
- function Wo(e, t, n, r) {
2655
+ function qo(e, t, n, r) {
2640
2656
  let o = e.priv;
2641
- bo(o.gobj_timer);
2642
- let s = Fr(e, n, So, !0), l = yr(e, s, "src_yuno", ""), i = yr(e, s, "src_role", ""), _ = yr(e, s, "src_service", "");
2657
+ To(o.gobj_timer);
2658
+ let s = Fr(e, n, $o, !0), l = yr(e, s, "src_yuno", ""), i = yr(e, s, "src_role", ""), _ = yr(e, s, "src_service", "");
2643
2659
  Rt(e, "remote_yuno_name", l), Rt(e, "remote_yuno_role", i), Rt(e, "remote_yuno_service", _);
2644
2660
  let a = hr(e, n, "result", -1, 0), u = yr(e, n, "comment", "", 0), c = yr(e, n, "username", "", 0), f = vr(e, n, "services_roles", {});
2645
2661
  if (a < 0) {
2646
- ko(e);
2662
+ Po(e);
2647
2663
  let t = {
2648
2664
  url: vt(e, "url"),
2649
2665
  result: a,
@@ -2668,12 +2684,12 @@ function Wo(e, t, n, r) {
2668
2684
  }
2669
2685
  o.inside_on_open = !1, function(e) {
2670
2686
  let t = Ht(e, null, null, null);
2671
- for (let n = 0; n < t.length; n++) Uo(e, t[n]);
2687
+ for (let n = 0; n < t.length; n++) Wo(e, t[n]);
2672
2688
  }(e);
2673
2689
  }
2674
2690
  return 0;
2675
2691
  }
2676
- function Ko(e, t, n, r) {
2692
+ function Ho(e, t, n, r) {
2677
2693
  let o = e.priv.url, s = function(e, t) {
2678
2694
  let n;
2679
2695
  try {
@@ -2692,19 +2708,19 @@ function Ko(e, t, n, r) {
2692
2708
  } : (hn(`${Ze(e)}: parsing inter_event: kw not a json object`), null) : (hn(`${Ze(e)}: parsing inter_kw: no kw`), null);
2693
2709
  }(e, n.data);
2694
2710
  if (!s) return hn(`${Ze(e)}: frame dropped from ${o}: ${String(n.data).substring(0, 256)}`), -1;
2695
- if (Ro(e)) {
2711
+ if (Ao(e)) {
2696
2712
  let e = Qe(Je()) + " <== " + o, t = n.data.length, r = ht(Je(), "trace_ievent_callback");
2697
- r ? r(e, s, 2, t) : Ao(0, e, s);
2713
+ r ? r(e, s, 2, t) : Uo(0, e, s);
2698
2714
  }
2699
2715
  let l = s.event, i = s.kw;
2700
2716
  if ("ST_SESSION" !== $t(e)) {
2701
2717
  if (kt(e, l, R.EVF_PUBLIC_EVENT)) {
2702
2718
  if (!(Ut(e, l, i, e) < 0)) return 0;
2703
2719
  } else mn(`${Ze(e)}: event UNKNOWN in not-session state ${l}`);
2704
- return ko(e), -1;
2720
+ return Po(e), -1;
2705
2721
  }
2706
2722
  s = null;
2707
- let _ = Gr(e, i), a = Fr(e, i, So), u = yr(e, a, "dst_role", "");
2723
+ let _ = Gr(e, i), a = Fr(e, i, $o), u = yr(e, a, "dst_role", "");
2708
2724
  if (u.toLowerCase() !== He().toLowerCase()) return mn(`"It's not my role, dst_role: ${u}, my_role: ${He()}`), 0;
2709
2725
  let c = yr(e, a, "dst_service", "");
2710
2726
  if ("__subscribing__" === _) return hn(`${Ze(e)}: subscription event ignored, I'm client (service: ${c}, event: ${l})`), -1;
@@ -2716,13 +2732,13 @@ function Ko(e, t, n, r) {
2716
2732
  }
2717
2733
  return rt(e) ? Ut(tt(e), l, i, e) : Qt(e, l, i), 0;
2718
2734
  }
2719
- function Yo(e, t, n, r) {
2735
+ function zo(e, t, n, r) {
2720
2736
  return 0;
2721
2737
  }
2722
- function Bo(e, t, n, r) {
2738
+ function Qo(e, t, n, r) {
2723
2739
  return 0;
2724
2740
  }
2725
- var Jo = {
2741
+ var Xo = {
2726
2742
  mt_create: function(e) {
2727
2743
  let t = e.priv;
2728
2744
  t.gobj_timer = Ae(Qe(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = vt(e, "url"), t.remote_yuno_name = vt(e, "remote_yuno_name"), t.remote_yuno_role = vt(e, "remote_yuno_role"), t.remote_yuno_service = vt(e, "remote_yuno_service"), Rt(e, "wanted_yuno_name", t.remote_yuno_name), Rt(e, "wanted_yuno_role", t.remote_yuno_role), Rt(e, "wanted_yuno_service", t.remote_yuno_service);
@@ -2752,43 +2768,43 @@ var Jo = {
2752
2768
  code: 1e3,
2753
2769
  reason: "restarted",
2754
2770
  was_clean: !0
2755
- }, e), bo(t.gobj_timer)), t.websocket = Do(e), 0;
2771
+ }, e), To(t.gobj_timer)), t.websocket = Lo(e), 0;
2756
2772
  },
2757
2773
  mt_stop: function(e) {
2758
2774
  let t = e.priv;
2759
- return bo(t.gobj_timer), t.websocket && ko(e), 0;
2775
+ return To(t.gobj_timer), t.websocket && Po(e), 0;
2760
2776
  },
2761
2777
  mt_destroy: function(e) {},
2762
2778
  mt_stats: function(e, t, n, r) {
2763
2779
  if ("ST_SESSION" !== $t(e)) return mn("Not in session"), null;
2764
2780
  n || (n = {});
2765
- let o = Lo(e, Qe(r), yr(e, n, "service", null, 0)), s = vr(e, n, "__md_stats__", null, Xt.KW_EXTRACT);
2781
+ let o = Go(e, Qe(r), yr(e, n, "service", null, 0)), s = vr(e, n, "__md_stats__", null, Xt.KW_EXTRACT);
2766
2782
  return s || (s = {}), Ur(e, n, "stats_stack", {
2767
2783
  stats: t,
2768
2784
  kw: s
2769
- }), Ur(e, n, So, o), n.__stats__ = t, Vr(e, n, "__stats__"), Co(e, "EV_MT_STATS", n, r), null;
2785
+ }), Ur(e, n, $o, o), n.__stats__ = t, Vr(e, n, "__stats__"), Vo(e, "EV_MT_STATS", n, r), null;
2770
2786
  },
2771
2787
  mt_command_parser: function(e, t, n, r) {
2772
2788
  if ("ST_SESSION" !== $t(e)) return mn("Not in session"), null;
2773
2789
  n || (n = {});
2774
- let o = Lo(e, Qe(r), yr(e, n, "service", "", 0)), s = vr(e, n, "__md_command__", null, Xt.KW_EXTRACT);
2790
+ let o = Go(e, Qe(r), yr(e, n, "service", "", 0)), s = vr(e, n, "__md_command__", null, Xt.KW_EXTRACT);
2775
2791
  return s || (s = {}), Ur(e, n, "command_stack", {
2776
2792
  command: t,
2777
2793
  kw: s
2778
- }), Ur(e, n, So, o), n.__command__ = t, Vr(e, n, "__command__"), Co(e, "EV_MT_COMMAND", n, r), null;
2794
+ }), Ur(e, n, $o, o), n.__command__ = t, Vr(e, n, "__command__"), Vo(e, "EV_MT_COMMAND", n, r), null;
2779
2795
  },
2780
2796
  mt_inject_event: function(e, t, n, r) {
2781
2797
  if ("ST_SESSION" !== $t(e)) return window.console.error("Not in session"), -1;
2782
- if (n = Fn({}, Xn(n) ? n : {}), Xn(n.__md_iev__) && (n.__md_iev__ = Pn(n.__md_iev__)), Fr(e, n, So));
2798
+ if (n = Fn({}, Xn(n) ? n : {}), Xn(n.__md_iev__) && (n.__md_iev__ = Pn(n.__md_iev__)), Fr(e, n, $o));
2783
2799
  else {
2784
- let o = Lo(e, Qe(r), yr(e, n, "__service__", 0, 0));
2785
- Wn(n, "__service__"), Ur(e, n, "__message__", t), Ur(e, n, So, o);
2800
+ let o = Go(e, Qe(r), yr(e, n, "__service__", 0, 0));
2801
+ Wn(n, "__service__"), Ur(e, n, "__message__", t), Ur(e, n, $o, o);
2786
2802
  }
2787
- return Vr(e, n, "__message__"), Co(e, t, n, r);
2803
+ return Vr(e, n, "__message__"), Vo(e, t, n, r);
2788
2804
  },
2789
2805
  mt_subscription_added: function(e, t) {
2790
2806
  let n = e.priv;
2791
- return "ST_SESSION" === $t(e) && n.websocket ? n.inside_on_open ? 0 : Uo(e, t) : 0;
2807
+ return "ST_SESSION" === $t(e) && n.websocket ? n.inside_on_open ? 0 : Wo(e, t) : 0;
2792
2808
  },
2793
2809
  mt_subscription_deleted: function(e, t) {
2794
2810
  let n = e.priv;
@@ -2797,7 +2813,7 @@ var Jo = {
2797
2813
  if (lr(t.event)) return 0;
2798
2814
  let r = {}, o = t.__global__, s = t.__config__, l = t.__filter__, i = t.__service__, _ = t.subscriber;
2799
2815
  s && (r.__config__ = s), o && (r.__global__ = o), l && (r.__filter__ = l);
2800
- return Ur(e, r, So, Lo(e, Qe(_), i)), Vr(e, r, "__unsubscribing__"), Co(e, t.event, r, e);
2816
+ return Ur(e, r, $o, Go(e, Qe(_), i)), Vr(e, r, "__unsubscribing__"), Vo(e, t.event, r, e);
2801
2817
  }
2802
2818
  };
2803
2819
  exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) => new E(e, t, n, null, s, r, null, 0, null, o, null), exports.SDATACM = (e, t, n, r, o, s) => new E(e, t, 0, null, s, n, null, 0, o, r, null), exports.SDATACM2 = (e, t, n, r, o, s, l) => new E(e, t, n, null, l, r, null, 0, s, o, null), exports.SDATADF = (e, t, n, r, o, s) => new E(e, t, n, null, s, null, r, o), exports.SDATAPM = (e, t, n, r, o) => new E(e, t, n, r, o), exports.SDATAPM0 = (e, t, n, r, o) => new E(e, t, n, null, o, null, null, 0, null, null, r), exports.SDATA_END = T, exports.SDataDesc = E, exports.YUNETA_VERSION = s, Object.defineProperty(exports, "__yuno__", {
@@ -2811,7 +2827,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2811
2827
  return t;
2812
2828
  }, exports.build_stats_response = o, exports.clean_name = function(e) {
2813
2829
  return e.replace(/[?# ^:]/g, "_");
2814
- }, exports.clear_timeout = bo, exports.cmp_two_simple_json = ur, exports.command_parser = function(e, t, n, r) {}, exports.createElement2 = function e(t, n) {
2830
+ }, exports.clear_timeout = To, exports.cmp_two_simple_json = ur, exports.command_parser = function(e, t, n, r) {}, exports.createElement2 = function e(t, n) {
2815
2831
  let [r, o, s, l] = t;
2816
2832
  if (!r) return void mn("Tag must be a valid HTML element.");
2817
2833
  let i = document.createElement(r), _ = "";
@@ -2820,16 +2836,21 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2820
2836
  for (const n of Object.keys(o[e])) t += `${n}: ${o[e][n]};`;
2821
2837
  i.style.cssText = t;
2822
2838
  } else "style" === e ? i.style.cssText = o[e] : "i18n" === e || "data-i18n" === e || "data_i18next" === e || "data-i18next" === e ? null !== o[e] && void 0 !== o[e] && (_ = o[e], i.setAttribute("data-i18n", _)) : i.setAttribute(e, o[e]);
2823
- if (er(s)) if (s = s.trim(), s.length > 0 && "<" === s[0]) i.appendChild(Br(s));
2824
- else if (n && _) i.textContent = n(_) || s;
2839
+ if (Jr(s)) i.appendChild(qr(s));
2840
+ else if (er(s)) if (s = s.trim(), s.length > 0 && "<" === s[0] && !Hr) i.appendChild(Qr(s));
2841
+ else if (s.length > 0 && "<" === s[0] && function(e) {
2842
+ if (zr.size >= 100) return;
2843
+ const t = e.slice(0, 80);
2844
+ zr.has(t) || (zr.add(t), hn(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
2845
+ }(s), n && _) i.textContent = n(_) || s;
2825
2846
  else i.textContent = s;
2826
2847
  else if (Zn(s)) {
2827
2848
  if (s.length > 0) if (er(s[0])) i.appendChild(e(s, n));
2828
- else for (let t of s) Array.isArray(t) ? t.length > 0 && i.appendChild(e(t, n)) : t instanceof Node ? i.appendChild(t) : er(t) ? i.appendChild(document.createTextNode(t)) : null != t && !1 !== t && mn("createElement2: child ignored, type " + typeof t);
2849
+ else for (let t of s) Array.isArray(t) ? t.length > 0 && i.appendChild(e(t, n)) : t instanceof Node ? i.appendChild(t) : Jr(t) ? i.appendChild(qr(t)) : er(t) ? i.appendChild(document.createTextNode(t)) : null != t && !1 !== t && mn("createElement2: child ignored, type " + typeof t);
2829
2850
  } else s instanceof HTMLElement || s instanceof Text || s instanceof SVGElement ? i.appendChild(s) : null != s && (mn("content ignored"), Tn(s));
2830
2851
  if (l && "object" == typeof l) for (const e of Object.keys(l)) i.addEventListener(e, l[e]);
2831
2852
  return i;
2832
- }, exports.createOneHtml = Br, exports.create_json_record = function(e, t) {
2853
+ }, exports.createOneHtml = Qr, exports.create_json_record = function(e, t) {
2833
2854
  let n = Pn(e);
2834
2855
  return Vn(n, t), n;
2835
2856
  }, exports.create_template_record = function(e, t) {
@@ -2840,21 +2861,21 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2840
2861
  let s = vr(null, t, e, o);
2841
2862
  n[e] = s;
2842
2863
  }), n;
2843
- }, exports.current_timestamp = Jr, exports.data_type_t = h, exports.db_list_persistent_attrs = function(e, t) {
2844
- let n = xr(no(e), null, !1), r = {};
2864
+ }, exports.current_timestamp = Xr, exports.data_type_t = h, exports.db_list_persistent_attrs = function(e, t) {
2865
+ let n = xr(io(e), null, !1), r = {};
2845
2866
  return n && Xn(n) && (r = Nr(e, n, t, !1)), r;
2846
2867
  }, exports.db_load_persistent_attrs = function(e, t) {
2847
- let n = yt(e, y.SDF_PERSIST), r = xr(no(e), null, !1);
2868
+ let n = yt(e, y.SDF_PERSIST), r = xr(io(e), null, !1);
2848
2869
  if (r && Xn(r)) {
2849
2870
  let o = Nr(e, r, t, !1);
2850
2871
  o = Nr(e, o, n, !1), St(e, o, y.SDF_PERSIST);
2851
2872
  }
2852
2873
  }, exports.db_remove_persistent_attrs = function(e, t) {
2853
- let n = Rr(e, xr(no(e), null, !1), t, !1);
2854
- 0 === Hn(n) ? Dr(no(e)) : $r(no(e), n);
2874
+ let n = Rr(e, xr(io(e), null, !1), t, !1);
2875
+ 0 === Hn(n) ? Dr(io(e)) : $r(io(e), n);
2855
2876
  }, exports.db_save_persistent_attrs = function(e, t) {
2856
- let n = Nr(e, yt(e, y.SDF_PERSIST), t, !1), r = xr(no(e), null, !1);
2857
- return r && Xn(r) && Gn(n, r), $r(no(e), n);
2877
+ let n = Nr(e, yt(e, y.SDF_PERSIST), t, !1), r = xr(io(e), null, !1);
2878
+ return r && Xn(r) && Gn(n, r), $r(io(e), n);
2858
2879
  }, exports.debounce = function(e, t = 0, n = !1) {
2859
2880
  let r = null, o = null, s = null;
2860
2881
  const l = (...l) => {
@@ -2882,16 +2903,16 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2882
2903
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
2883
2904
  let t = null;
2884
2905
  for (const n of Object.keys(e)) {
2885
- const r = eo(n);
2906
+ const r = so(n);
2886
2907
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
2887
- if (r.length > Qr) throw new Error(`flat2json: '${n}' deeper than 256`);
2908
+ if (r.length > no) throw new Error(`flat2json: '${n}' deeper than 256`);
2888
2909
  const o = "number" == typeof r[0];
2889
2910
  if (null === t) t = o ? [] : {};
2890
2911
  else if (o !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
2891
2912
  let s = t;
2892
2913
  for (let t = 0; t < r.length; t++) {
2893
2914
  const o = r[t], l = "number" == typeof o, i = t === r.length - 1, _ = !i && "number" == typeof r[t + 1];
2894
- if (l && o > Xr) throw new Error(`flat2json: array index ${o} over the limit (100000) in '${n}'`);
2915
+ if (l && o > ro) throw new Error(`flat2json: array index ${o} over the limit (100000) in '${n}'`);
2895
2916
  if (l !== Array.isArray(s)) throw new Error(`flat2json: '${n}' uses a ${l ? "array index" : "key"} where the tree already has a ${Array.isArray(s) ? "array" : "object"}`);
2896
2917
  if (i) {
2897
2918
  if (Array.isArray(s)) {
@@ -2931,15 +2952,15 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2931
2952
  removed: {},
2932
2953
  changed: {}
2933
2954
  };
2934
- for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? to(n[e], r[e]) || pr(o.changed, e, {
2955
+ for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? lo(n[e], r[e]) || pr(o.changed, e, {
2935
2956
  from: n[e],
2936
2957
  to: r[e]
2937
2958
  }) : pr(o.removed, e, n[e]);
2938
2959
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || pr(o.added, e, r[e]);
2939
2960
  return o;
2940
2961
  }, exports.flat_key_join = function(e) {
2941
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : Zr(e)).join("`") : "";
2942
- }, exports.flat_key_split = eo, exports.gclass_add_ev_action = he, exports.gclass_add_event_type = Ee, exports.gclass_add_state = me, exports.gclass_check_fsm = ve, exports.gclass_create = ge, exports.gclass_event_type = Te, exports.gclass_find_by_name = je, exports.gclass_flag_t = S, exports.gclass_unregister = pe, exports.getPositionRelativeToBody = function(e) {
2962
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : oo(e)).join("`") : "";
2963
+ }, exports.flat_key_split = so, exports.gclass_add_ev_action = he, exports.gclass_add_event_type = Ee, exports.gclass_add_state = me, exports.gclass_check_fsm = ve, exports.gclass_create = ge, exports.gclass_event_type = Te, exports.gclass_find_by_name = je, exports.gclass_flag_t = S, exports.gclass_unregister = pe, exports.getPositionRelativeToBody = function(e) {
2943
2964
  if (!e) return {
2944
2965
  top: 0,
2945
2966
  left: 0,
@@ -2958,7 +2979,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2958
2979
  right: n + i + r,
2959
2980
  bottom: t + l + o
2960
2981
  };
2961
- }, exports.get_function_name = zr, exports.get_now = function() {
2982
+ }, exports.get_function_name = to, exports.get_now = function() {
2962
2983
  return Math.floor(Date.now() / 1e3);
2963
2984
  }, exports.gobj_bottom_gobj = st, exports.gobj_change_parent = function(e, n) {
2964
2985
  return ot(e) ? (mn("gobj NULL or DESTROYED"), null) : n instanceof O ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && (Re(e.parent, e), e.parent = null), Ne(n, e), n.gclass.gmt.mt_child_added && (K(e) && yn(t("👦👦🔵 child_added(%s): %s", et(n), Ze(e))), n.gclass.gmt.mt_child_added(n, e)), 0) : (mn(`${Ze(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
@@ -3105,9 +3126,11 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3105
3126
  0 === r ? i++ : r < 0 ? _++ : a++;
3106
3127
  }
3107
3128
  return _ ? hn(`${Ze(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${_})`) : i || a || (hn(`${Ze(e)}: No subscription found`), Ln(n, "No subscription found")), 0;
3108
- }, exports.gobj_unsubscribe_list = qt, exports.gobj_walk_gobj_children = _t, exports.gobj_walk_gobj_children_tree = at, exports.gobj_write_attr = Ot, exports.gobj_write_attrs = St, exports.gobj_write_bool_attr = wt, exports.gobj_write_integer_attr = Nt, exports.gobj_write_str_attr = Rt, exports.gobj_yuno = Je, exports.gobj_yuno_id = ze, exports.gobj_yuno_name = qe, exports.gobj_yuno_role = He, exports.id_index_in_obj_list = Ir, exports.index_in_list = qr, exports.is_array = Zn, exports.is_boolean = nr, exports.is_date = function(e) {
3129
+ }, exports.gobj_unsubscribe_list = qt, exports.gobj_walk_gobj_children = _t, exports.gobj_walk_gobj_children_tree = at, exports.gobj_write_attr = Ot, exports.gobj_write_attrs = St, exports.gobj_write_bool_attr = wt, exports.gobj_write_integer_attr = Nt, exports.gobj_write_str_attr = Rt, exports.gobj_yuno = Je, exports.gobj_yuno_id = ze, exports.gobj_yuno_name = qe, exports.gobj_yuno_role = He, exports.html_markup = function(e) {
3130
+ return "string" != typeof e ? (mn("html_markup: not a string, type " + typeof e), new Br("")) : new Br(e);
3131
+ }, exports.id_index_in_obj_list = Ir, exports.index_in_list = Zr, exports.is_array = Zn, exports.is_boolean = nr, exports.is_date = function(e) {
3109
3132
  return e instanceof Date && !isNaN(e);
3110
- }, exports.is_function = or, exports.is_gobj = sr, exports.is_metadata_key = function(e) {
3133
+ }, exports.is_function = or, exports.is_gobj = sr, exports.is_html_markup = Jr, exports.is_metadata_key = function(e) {
3111
3134
  if (!er(e)) return !1;
3112
3135
  let t = 0;
3113
3136
  for (; t < e.length && "_" === e[t] && !(t > 2); t++);
@@ -3169,7 +3192,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3169
3192
  return o;
3170
3193
  }, exports.json2flat = function(e) {
3171
3194
  const t = {}, n = (e, r, o) => {
3172
- if (o > Qr) throw new Error("json2flat: deeper than 256");
3195
+ if (o > no) throw new Error("json2flat: deeper than 256");
3173
3196
  if (null === e || "object" != typeof e || Array.isArray(e)) {
3174
3197
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
3175
3198
  const s = `[${t}]`;
@@ -3179,7 +3202,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3179
3202
  const t = Object.keys(e);
3180
3203
  if (t.length > 0) {
3181
3204
  for (const s of t) {
3182
- const t = Zr(s);
3205
+ const t = oo(s);
3183
3206
  n(e[s], 0 === o ? t : r + "`" + t, o + 1);
3184
3207
  }
3185
3208
  return;
@@ -3345,9 +3368,9 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3345
3368
  var e;
3346
3369
  }, r.send();
3347
3370
  }, exports.log_debug = yn, exports.log_error = mn, exports.log_info = function(e, ...t) {
3348
- let n = bn(e, ...t), r = Jr();
3371
+ let n = bn(e, ...t), r = Xr();
3349
3372
  nn && un("info", n) && nn("%c" + r + " INFO: " + String(n), "color:cyan"), fn("info", n, r);
3350
- }, exports.log_warning = hn, exports.mask_secrets_inline = $n, exports.msg_iev_get_msg_type = Gr, exports.msg_iev_get_stack = Fr, exports.msg_iev_push_stack = Ur, exports.msg_iev_read_key = Lr, exports.msg_iev_set_msg_type = Vr, exports.msg_iev_write_key = Pr, exports.node_uuid = Hr, exports.parseBoolean = ir, exports.parseSVG = function(e) {
3373
+ }, exports.log_warning = hn, exports.mask_secrets_inline = $n, exports.msg_iev_get_msg_type = Gr, exports.msg_iev_get_stack = Fr, exports.msg_iev_push_stack = Ur, exports.msg_iev_read_key = Lr, exports.msg_iev_set_msg_type = Vr, exports.msg_iev_write_key = Pr, exports.node_uuid = eo, exports.parseBoolean = ir, exports.parseSVG = function(e) {
3351
3374
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3352
3375
  }, exports.refresh_language = function(e, t) {
3353
3376
  if (!or(t)) return void mn("You must supply a translation function");
@@ -3374,22 +3397,22 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3374
3397
  });
3375
3398
  }, exports.register_c_ievent_cli = function() {
3376
3399
  return function(e) {
3377
- if ($o) return mn(`GClass ALREADY created: ${e}`), -1;
3400
+ if (Co) return mn(`GClass ALREADY created: ${e}`), -1;
3378
3401
  const t = [
3379
3402
  ["ST_DISCONNECTED", [
3380
3403
  [
3381
3404
  "EV_ON_OPEN",
3382
- Vo,
3405
+ Yo,
3383
3406
  "ST_WAIT_IDENTITY_CARD_ACK"
3384
3407
  ],
3385
3408
  [
3386
3409
  "EV_ON_CLOSE",
3387
- Go,
3410
+ Bo,
3388
3411
  null
3389
3412
  ],
3390
3413
  [
3391
3414
  "EV_TIMEOUT",
3392
- Fo,
3415
+ Ko,
3393
3416
  null
3394
3417
  ],
3395
3418
  [
@@ -3401,22 +3424,22 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3401
3424
  ["ST_WAIT_IDENTITY_CARD_ACK", [
3402
3425
  [
3403
3426
  "EV_ON_MESSAGE",
3404
- Ko,
3427
+ Ho,
3405
3428
  null
3406
3429
  ],
3407
3430
  [
3408
3431
  "EV_IDENTITY_CARD_ACK",
3409
- Wo,
3432
+ qo,
3410
3433
  null
3411
3434
  ],
3412
3435
  [
3413
3436
  "EV_ON_CLOSE",
3414
- Go,
3437
+ Bo,
3415
3438
  "ST_DISCONNECTED"
3416
3439
  ],
3417
3440
  [
3418
3441
  "EV_TIMEOUT",
3419
- Mo,
3442
+ Jo,
3420
3443
  null
3421
3444
  ],
3422
3445
  [
@@ -3428,22 +3451,22 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3428
3451
  ["ST_SESSION", [
3429
3452
  [
3430
3453
  "EV_ON_MESSAGE",
3431
- Ko,
3454
+ Ho,
3432
3455
  null
3433
3456
  ],
3434
3457
  [
3435
3458
  "EV_MT_STATS",
3436
- Yo,
3459
+ zo,
3437
3460
  null
3438
3461
  ],
3439
3462
  [
3440
3463
  "EV_MT_COMMAND",
3441
- Bo,
3464
+ Qo,
3442
3465
  null
3443
3466
  ],
3444
3467
  [
3445
3468
  "EV_ON_CLOSE",
3446
- Go,
3469
+ Bo,
3447
3470
  "ST_DISCONNECTED"
3448
3471
  ],
3449
3472
  [
@@ -3454,7 +3477,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3454
3477
  ]],
3455
3478
  [null, null]
3456
3479
  ];
3457
- return ($o = ge(e, [
3480
+ return (Co = ge(e, [
3458
3481
  ["EV_ON_MESSAGE", R.EVF_OUTPUT_EVENT],
3459
3482
  ["EV_IDENTITY_CARD_ACK", R.EVF_PUBLIC_EVENT],
3460
3483
  ["EV_ON_ID_NAK", R.EVF_PUBLIC_EVENT | R.EVF_OUTPUT_EVENT],
@@ -3465,31 +3488,31 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3465
3488
  ["EV_ON_OPEN_ERROR", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS],
3466
3489
  ["EV_TIMEOUT", 0],
3467
3490
  [null, 0]
3468
- ], t, Jo, 0, wo, xo, 0, 0, No, S.gcflag_no_check_output_events)) ? 0 : -1;
3491
+ ], t, Xo, 0, Do, Io, 0, 0, ko, S.gcflag_no_check_output_events)) ? 0 : -1;
3469
3492
  }("C_IEVENT_CLI");
3470
3493
  }, exports.register_c_timer = function() {
3471
3494
  return function(e) {
3472
- if (uo) return mn(`GClass ALREADY created: ${e}`), -1;
3495
+ if (bo) return mn(`GClass ALREADY created: ${e}`), -1;
3473
3496
  const t = [["ST_IDLE", [[
3474
3497
  "EV_TIMEOUT",
3475
- co,
3498
+ mo,
3476
3499
  null
3477
3500
  ]]]];
3478
- return (uo = ge(e, [
3501
+ return (bo = ge(e, [
3479
3502
  ["EV_TIMEOUT", R.EVF_OUTPUT_EVENT],
3480
3503
  ["EV_TIMEOUT_PERIODIC", R.EVF_OUTPUT_EVENT],
3481
3504
  [0, 0]
3482
- ], t, fo, 0, _o, ao, 0, 0, 0, S.gcflag_manual_start)) ? 0 : -1;
3505
+ ], t, ho, 0, go, po, 0, 0, 0, S.gcflag_manual_start)) ? 0 : -1;
3483
3506
  }("C_TIMER");
3484
3507
  }, exports.register_c_yuno = function() {
3485
3508
  return function(e) {
3486
- if (yo) return mn(`GClass ALREADY created: ${e}`), -1;
3509
+ if (Oo) return mn(`GClass ALREADY created: ${e}`), -1;
3487
3510
  const t = [["ST_IDLE", [[
3488
3511
  "EV_TIMEOUT_PERIODIC",
3489
- jo,
3512
+ Ro,
3490
3513
  null
3491
3514
  ]]]];
3492
- return (yo = ge(e, [["EV_TIMEOUT_PERIODIC", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS], [0, 0]], t, Oo, 0, mo, ho, 0, 0, 0, 0)) ? 0 : -1;
3515
+ return (Oo = ge(e, [["EV_TIMEOUT_PERIODIC", R.EVF_OUTPUT_EVENT | R.EVF_NO_WARN_SUBS], [0, 0]], t, xo, 0, vo, jo, 0, 0, 0, 0)) ? 0 : -1;
3493
3516
  }("C_YUNO");
3494
3517
  }, exports.safeSrc = function(e) {
3495
3518
  if (!e) return "";
@@ -3517,7 +3540,11 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3517
3540
  gn(e, r, n);
3518
3541
  }
3519
3542
  } else on = e;
3520
- }, exports.set_remote_log_functions = pn, exports.set_timeout = go, exports.set_timeout_periodic = po, exports.sprintf = t, exports.stats_parser = function(e, t, n, r) {}, exports.str_in_list = Cr, exports.strcasecmp = ar, exports.strcmp = _r, exports.strncmp = function(e, t, n) {
3543
+ }, exports.set_remote_log_functions = pn, exports.set_strings_are_text = function(e) {
3544
+ Hr = !!e;
3545
+ }, exports.set_timeout = yo, exports.set_timeout_periodic = Eo, exports.sprintf = t, exports.stats_parser = function(e, t, n, r) {}, exports.str_in_list = Cr, exports.strcasecmp = ar, exports.strcmp = _r, exports.strings_are_text = function() {
3546
+ return Hr;
3547
+ }, exports.strncmp = function(e, t, n) {
3521
3548
  var r = (e + "").substring(0, n), o = (t + "").substring(0, n);
3522
3549
  return r === o ? 0 : r > o ? 1 : -1;
3523
3550
  }, exports.strs_in_list = function(e, t, n) {
@@ -3546,9 +3573,9 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3546
3573
  let e = t.split(".");
3547
3574
  for (let t = 0; t < e.length; t++) {
3548
3575
  let r = e[t];
3549
- if (Cr(oo, r)) n.real_type || (n.real_type = r);
3550
- else if (Cr(lo, r)) n.type || (n.type = r);
3551
- else if (Cr(so, r)) switch (r) {
3576
+ if (Cr(ao, r)) n.real_type || (n.real_type = r);
3577
+ else if (Cr(co, r)) n.type || (n.type = r);
3578
+ else if (Cr(uo, r)) switch (r) {
3552
3579
  case "writable":
3553
3580
  n.is_writable = !0;
3554
3581
  break;
@@ -3560,7 +3587,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3560
3587
  }
3561
3588
  }
3562
3589
  n.real_type || (n.real_type = "string");
3563
- } else Xn(t) ? (n = io(t), n.name || (n.name = e), n.header || (n.header = e)) : Zn(t) && (n.real_type = "array", n.enum_list = t);
3590
+ } else Xn(t) ? (n = fo(t), n.name || (n.name = e), n.header || (n.header = e)) : Zn(t) && (n.real_type = "array", n.enum_list = t);
3564
3591
  return n.type || (n.type = n.real_type), n;
3565
3592
  }, exports.timeTracker = function(e = "Time Tracker", t = !1) {
3566
3593
  const n = e, r = performance.now();
@@ -3572,7 +3599,7 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3572
3599
  total: _
3573
3600
  };
3574
3601
  } };
3575
- }, exports.trace_json = Tn, exports.trace_json_masked = Ln, exports.trace_level_t = C, exports.trace_msg = En, exports.treedb_decoder_fkey = ro, exports.treedb_decoder_hook = function(e, t) {
3602
+ }, exports.trace_json = Tn, exports.trace_json_masked = Ln, exports.trace_level_t = C, exports.trace_msg = En, exports.treedb_decoder_fkey = _o, exports.treedb_decoder_hook = function(e, t) {
3576
3603
  if (er(t)) {
3577
3604
  if (-1 === t.indexOf("^")) {
3578
3605
  let n, r = e.hook;
@@ -3599,9 +3626,9 @@ exports.GObj = O, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
3599
3626
  id: t.id
3600
3627
  } : (mn("bad hook 3"), mn(e), mn(t), null);
3601
3628
  }, exports.treedb_encoder_fkey = function(e, t) {
3602
- let n = ro(e, t);
3629
+ let n = _o(e, t);
3603
3630
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3604
- }, exports.treedb_get_field_desc = io, exports.treedb_hook_data_size = function(e) {
3631
+ }, exports.treedb_get_field_desc = fo, exports.treedb_hook_data_size = function(e) {
3605
3632
  if (Zn(e) && 1 === Qn(e)) {
3606
3633
  let t = e[0];
3607
3634
  return fr(t, "size") ? t.size : 1;