@yuneta/gobj-js 7.7.1 → 7.7.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.
@@ -165,11 +165,11 @@ var E = Object.freeze({
165
165
  SDF_AUTHZ_RS: 1048576
166
166
  });
167
167
  E.SDF_RD, E.SDF_WR, E.SDF_STATS, E.SDF_PERSIST, E.SDF_VOLATIL, E.SDF_RSTATS, E.SDF_PSTATS, E.SDF_WR, E.SDF_PERSIST;
168
- var T = class {
168
+ var y = class {
169
169
  constructor(e, t, n = 0, r = null, o = "", s = null, i = null, l = 0, _ = null, a = null, u = null) {
170
170
  this.type = e, this.name = t, this.alias = s, this.flag = n, this.default_value = r, this.header = i, this.fillspace = l, this.description = o, this.json_fn = _, this.schema = a, this.authpth = u;
171
171
  }
172
- }, y = () => new T(0, null), v = (e, t, n, r, o) => new T(e, t, n, r, o), j = class {
172
+ }, T = () => new y(0, null), v = (e, t, n, r, o) => new y(e, t, n, r, o), j = class {
173
173
  constructor(e, t, n, r, o, s, i, l, _) {
174
174
  this.gclass_name = e, this.dl_states = [], this.dl_events = [], this.gmt = t, this.lmt = n, this.attrs_table = r, this.priv = o, this.authz_table = s, this.command_table = i, this.s_user_trace_level = l, this.gclass_flag = Number(_) || 0, this.instances = 0, this.trace_level = 0, this.no_trace_level = 0, this.jn_trace_filter = null, this.fsm_checked = !1;
175
175
  }
@@ -592,19 +592,19 @@ function he(e) {
592
592
  function Ee(e) {
593
593
  return !ke(e) && e.playing;
594
594
  }
595
- function Te() {
595
+ function ye() {
596
596
  return !d || d.obflag & w.obflag_destroyed ? null : d;
597
597
  }
598
- function ye() {
599
- let e = Te();
598
+ function Te() {
599
+ let e = ye();
600
600
  return e ? Se(e) : "";
601
601
  }
602
602
  function ve() {
603
- let e = Te();
603
+ let e = ye();
604
604
  return e ? ze(e, "yuno_role") : "";
605
605
  }
606
606
  function je() {
607
- let e = Te();
607
+ let e = ye();
608
608
  return e ? ze(e, "yuno_id") : "";
609
609
  }
610
610
  function Se(e) {
@@ -863,7 +863,7 @@ var it = Object.freeze({
863
863
  v(h.DTP_JSON, "__local__", 0, null, "local kw, remove in publishing"),
864
864
  v(h.DTP_JSON, "__filter__", 0, null, "filter kw, filter in publishing"),
865
865
  v(h.DTP_STRING, "__service__", 0, "", "subscription service"),
866
- y()
866
+ T()
867
867
  ];
868
868
  function _t(e, t, n, r, o) {
869
869
  let s = bn(t, r, "__config__", null), i = bn(t, r, "__global__", null), l = bn(t, r, "__local__", null), _ = mn(t, r, "__filter__", null), a = !0;
@@ -978,7 +978,7 @@ function bt(e, n, r) {
978
978
  if (nn(f) || 0 === sn(f, n)) {
979
979
  bn(e, a, "__config__", null, 0);
980
980
  let o = bn(e, a, "__global__", null, 0), i = bn(e, a, "__local__", null, 0), f = mn(e, a, "__filter__", null, 0), g = r, p = 1;
981
- if (e.gclass.gmt.mt_publication_filter ? p = e.gclass.gmt.mt_publication_filter(e, n, g, u) : Jt(f) > 0 && (p = yn(g, f), s && (I(t("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", p ? "👍" : "👎", n || "", Ne(u), Ne(e))), $t(f))), p < 0) break;
981
+ if (e.gclass.gmt.mt_publication_filter ? p = e.gclass.gmt.mt_publication_filter(e, n, g, u) : Jt(f) > 0 && (p = Tn(g, f), s && (I(t("💜💜🔄%s publishing with filter, event '%s', subscriber'%s', publisher %s", p ? "👍" : "👎", n || "", Ne(u), Ne(e))), $t(f))), p < 0) break;
982
982
  if (0 === p) continue;
983
983
  let d = nt(u, n, !0);
984
984
  if (d && d.event_flag & D.EVF_SYSTEM_EVENT && !rt(u, d.event_name, 0)) continue;
@@ -1011,7 +1011,7 @@ var mt = Object.freeze({
1011
1011
  JSON_TRUE: 6,
1012
1012
  JSON_FALSE: 7,
1013
1013
  JSON_NULL: 8
1014
- }), "undefined" != typeof window ? window.console : console), Et = ht.error, Tt = ht.warn, yt = ht.info, vt = ht.debug, jt = null;
1014
+ }), "undefined" != typeof window ? window.console : console), Et = ht.error, yt = ht.warn, Tt = ht.info, vt = ht.debug, jt = null;
1015
1015
  var St = !1;
1016
1016
  function Ot(e, t, n) {
1017
1017
  if (jt && !St) {
@@ -1024,7 +1024,7 @@ function Ot(e, t, n) {
1024
1024
  }
1025
1025
  }
1026
1026
  function Nt(e) {
1027
- e ? (Et = e, Tt = e) : (Et = ht.error, Tt = ht.warn);
1027
+ e ? (Et = e, yt = e) : (Et = ht.error, yt = ht.warn);
1028
1028
  }
1029
1029
  function wt(e) {
1030
1030
  const t = Array.prototype.slice.call(arguments);
@@ -1054,7 +1054,7 @@ function Dt(e) {
1054
1054
  }
1055
1055
  function xt(e) {
1056
1056
  let t = wt(e), n = Wn();
1057
- Tt && (Tt === window.console.warn ? Tt("%c" + n + " WARNING: " + String(t), "color:yellow") : (window.console.warn("%c" + n + " WARNING: " + String(t), "color:yellow"), Tt(`${n} WARNING: ${String(t)}`))), Ot("warning", t, n);
1057
+ yt && (yt === window.console.warn ? yt("%c" + n + " WARNING: " + String(t), "color:yellow") : (window.console.warn("%c" + n + " WARNING: " + String(t), "color:yellow"), yt(`${n} WARNING: ${String(t)}`))), Ot("warning", t, n);
1058
1058
  }
1059
1059
  function Rt(e) {
1060
1060
  let t = wt(e), n = Wn();
@@ -1304,13 +1304,13 @@ function En(e, t, n, r, o) {
1304
1304
  let s = bn(e, t, n, {}, !0);
1305
1305
  return zt(s) ? (s[r] = o, 0) : (Dt("subdict is not an object"), -1);
1306
1306
  }
1307
- function Tn(e, n, r) {
1307
+ function yn(e, n, r) {
1308
1308
  let o = "", s = !1;
1309
1309
  if (Qt(n)) {
1310
1310
  s = !1;
1311
1311
  for (let i = 0; i < n.length; i++) {
1312
1312
  let l = n[i];
1313
- if (o = nn(r) ? t("%s", r) : t("%s`%d", r, i), s = Tn(e, l, o), s) break;
1313
+ if (o = nn(r) ? t("%s", r) : t("%s`%d", r, i), s = yn(e, l, o), s) break;
1314
1314
  }
1315
1315
  } else if (zt(n)) {
1316
1316
  s = !0;
@@ -1318,7 +1318,7 @@ function Tn(e, n, r) {
1318
1318
  for (let l = 0; l < i.length; l++) {
1319
1319
  let _ = i[l], a = n[_];
1320
1320
  if (o = nn(r) ? t("%s", _) : t("%s`%s", r, _), Qt(a) || zt(a)) {
1321
- if (s = Tn(e, a, o), !s) break;
1321
+ if (s = yn(e, a, o), !s) break;
1322
1322
  continue;
1323
1323
  }
1324
1324
  let u = mn(0, e, o, 0, 0);
@@ -1334,8 +1334,8 @@ function Tn(e, n, r) {
1334
1334
  }
1335
1335
  return s;
1336
1336
  }
1337
- function yn(e, t) {
1338
- return 0 === Jt(t) || Tn(e, t, "");
1337
+ function Tn(e, t) {
1338
+ return 0 === Jt(t) || yn(e, t, "");
1339
1339
  }
1340
1340
  function vn(e, t, n, r) {
1341
1341
  e && !tn(e) && Dt("GObj bad instanceof");
@@ -1405,7 +1405,7 @@ function wn(e, t) {
1405
1405
  }
1406
1406
  function Dn(e, t, n, r, o) {
1407
1407
  if (e && !tn(e) && Dt("GObj bad instanceof"), !t) return null;
1408
- o || (o = yn);
1408
+ o || (o = Tn);
1409
1409
  let s = [];
1410
1410
  if (Qt(t)) for (let i = 0; i < t.length; i++) {
1411
1411
  let l, _ = t[i];
@@ -1654,7 +1654,8 @@ function Hn(e) {
1654
1654
  is_hidden: !1,
1655
1655
  default_value: e.default,
1656
1656
  placeholder: e.placeholder,
1657
- fillspace: e.fillspace || 4
1657
+ fillspace: e.fillspace || 4,
1658
+ fkey: e.fkey || null
1658
1659
  };
1659
1660
  if (!e.flag) return t;
1660
1661
  for (let n = 0; n < e.flag.length; n++) {
@@ -1687,7 +1688,7 @@ var Xn = [
1687
1688
  v(h.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
1688
1689
  v(h.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
1689
1690
  v(h.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
1690
- y()
1691
+ T()
1691
1692
  ], Zn = {
1692
1693
  periodic: !1,
1693
1694
  msec: 0,
@@ -1758,7 +1759,7 @@ var ir = [
1758
1759
  v(h.DTP_BOOLEAN, "no_poll", 0, 0, "no poll"),
1759
1760
  v(h.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
1760
1761
  v(h.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
1761
- y()
1762
+ T()
1762
1763
  ], lr = { gobj_timer: null }, _r = null;
1763
1764
  function ar(e, t, n, r) {
1764
1765
  return bt(e, t, n), 0;
@@ -1798,7 +1799,7 @@ var cr = "ievent_gate_stack", fr = [
1798
1799
  v(h.DTP_INTEGER, "timeout_retry", E.SDF_RD, "5000", "timeout waiting idAck"),
1799
1800
  v(h.DTP_INTEGER, "timeout_idack", E.SDF_RD, "5000", "timeout waiting idAck"),
1800
1801
  v(h.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
1801
- y()
1802
+ T()
1802
1803
  ], gr = {
1803
1804
  url: null,
1804
1805
  remote_yuno_name: null,
@@ -1827,7 +1828,7 @@ function dr(e) {
1827
1828
  data: n.data
1828
1829
  }, e);
1829
1830
  }, n.onclose = (n) => {
1830
- ke(e) || (Be(Te(), "browser_beforeunload") ? xt("Close websocket by unload page") : st(e, "EV_ON_CLOSE", {
1831
+ ke(e) || (Be(ye(), "browser_beforeunload") ? xt("Close websocket by unload page") : st(e, "EV_ON_CLOSE", {
1831
1832
  url: t,
1832
1833
  e: n
1833
1834
  }, e));
@@ -1860,10 +1861,11 @@ var hr = class {
1860
1861
  function Er(e, t, n, r) {
1861
1862
  return function(e, t) {
1862
1863
  let n = e.priv, r = JSON.stringify(t);
1863
- if (Be(Te(), "trace_inter_event")) {
1864
- let n = ze(e, "url"), o = Se(Te()) + " ==> " + n, s = Ke(Te(), "trace_ievent_callback");
1864
+ if (Be(ye(), "trace_inter_event")) {
1865
+ let n = ze(e, "url"), o = Se(ye()) + " ==> " + n, s = Ke(ye(), "trace_ievent_callback");
1865
1866
  s ? s(o, t, 1, r.length) : mr(0, o, t);
1866
1867
  }
1868
+ if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return xt(`${Ne(e)}: send_iev(): websocket not open, message lost`), -1;
1867
1869
  try {
1868
1870
  n.websocket.send(r);
1869
1871
  } catch (t) {
@@ -1874,22 +1876,22 @@ function Er(e, t, n, r) {
1874
1876
  return nn(e) ? (Dt("iev_create() event NULL"), null) : new hr(e, t);
1875
1877
  }(t, n));
1876
1878
  }
1877
- function Tr(e, t, n) {
1879
+ function yr(e, t, n) {
1878
1880
  return nn(n) && (n = ze(e, "wanted_yuno_service")), {
1879
1881
  dst_yuno: ze(e, "wanted_yuno_name"),
1880
1882
  dst_role: ze(e, "wanted_yuno_role"),
1881
1883
  dst_service: n,
1882
- src_yuno: ye(),
1884
+ src_yuno: Te(),
1883
1885
  src_role: ve(),
1884
1886
  src_service: t,
1885
1887
  host: Kn()
1886
1888
  };
1887
1889
  }
1888
- function yr(e) {
1889
- let t = e.priv, n = Ee(Te()), r = ze(Te(), "yuno_version"), o = ze(Te(), "yuno_release"), i = ze(Te(), "yuno_tag"), l = {
1890
+ function Tr(e) {
1891
+ let t = e.priv, n = Ee(ye()), r = ze(ye(), "yuno_version"), o = ze(ye(), "yuno_release"), i = ze(ye(), "yuno_tag"), l = {
1890
1892
  yuno_role: ve(),
1891
1893
  yuno_id: je(),
1892
- yuno_name: ye(),
1894
+ yuno_name: Te(),
1893
1895
  yuno_tag: i,
1894
1896
  yuno_version: r,
1895
1897
  yuno_release: o,
@@ -1898,27 +1900,27 @@ function yr(e) {
1898
1900
  pid: 0,
1899
1901
  watcher_pid: 0,
1900
1902
  jwt: ze(e, "jwt"),
1901
- username: ze(Te(), "__username__"),
1903
+ username: ze(ye(), "__username__"),
1902
1904
  launch_id: 0,
1903
- yuno_startdate: ze(Te(), "start_date"),
1905
+ yuno_startdate: ze(ye(), "start_date"),
1904
1906
  id: Kn(),
1905
1907
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
1906
1908
  language: "undefined" != typeof window ? window.navigator.language : "",
1907
- required_services: Ke(Te(), "required_services")
1909
+ required_services: Ke(ye(), "required_services")
1908
1910
  };
1909
- return An(e, l, cr, Tr(e, Se(De(e)), null)), Ln(e, l, "__identity__"), rr(t.gobj_timer, Je(e, "timeout_idack")), Er(e, "EV_IDENTITY_CARD", l);
1911
+ return An(e, l, cr, yr(e, Se(De(e)), null)), Ln(e, l, "__identity__"), rr(t.gobj_timer, Je(e, "timeout_idack")), Er(e, "EV_IDENTITY_CARD", l);
1910
1912
  }
1911
1913
  function vr(e, t) {
1912
1914
  if (nn(t.event)) return -1;
1913
1915
  let n = {}, r = t.__global__, o = t.__config__, s = t.__filter__, i = t.__service__, l = t.subscriber;
1914
- return o && (n.__config__ = o), r && (n.__global__ = r), s && (n.__filter__ = s), An(e, n, cr, Tr(e, Se(l), i)), Ln(e, n, "__subscribing__"), Er(e, t.event, n);
1916
+ return o && (n.__config__ = o), r && (n.__global__ = r), s && (n.__filter__ = s), An(e, n, cr, yr(e, Se(l), i)), Ln(e, n, "__subscribing__"), Er(e, t.event, n);
1915
1917
  }
1916
1918
  function jr(e, t, n, r) {
1917
1919
  let o = e.priv;
1918
1920
  return be(e) && (o.websocket = dr(e)), 0;
1919
1921
  }
1920
1922
  function Sr(e, t, n, r) {
1921
- return Rt("Websocket opened: " + e.priv.url), yr(e), 0;
1923
+ return Rt("Websocket opened: " + e.priv.url), Tr(e), 0;
1922
1924
  }
1923
1925
  function Or(e, t, n, r) {
1924
1926
  let o = e.priv, s = n.e, i = n.url;
@@ -1938,7 +1940,7 @@ function Or(e, t, n, r) {
1938
1940
  })), be(e) && rr(o.gobj_timer, Je(e, "timeout_retry")), 0;
1939
1941
  }
1940
1942
  function Nr(e, t, n, r) {
1941
- return yr(e), 0;
1943
+ return Tr(e), 0;
1942
1944
  }
1943
1945
  function wr(e, t, n, r) {
1944
1946
  let o = e.priv;
@@ -1995,8 +1997,8 @@ function Dr(e, t, n, r) {
1995
1997
  kw: o || {}
1996
1998
  } : (Dt("parsing inter_event: kw not a json object"), null) : (Dt("parsing inter_kw: no kw"), null);
1997
1999
  }(0, n.data);
1998
- if (Be(Te(), "trace_inter_event")) {
1999
- let e = Se(Te()) + " <== " + o, t = n.data.length, r = Ke(Te(), "trace_ievent_callback");
2000
+ if (Be(ye(), "trace_inter_event")) {
2001
+ let e = Se(ye()) + " <== " + o, t = n.data.length, r = Ke(ye(), "trace_ievent_callback");
2000
2002
  r ? r(e, s, 2, t) : mr(0, e, s);
2001
2003
  }
2002
2004
  let i = s.event, l = s.kw;
@@ -2060,7 +2062,7 @@ var kr = {
2060
2062
  mt_stats: function(e, t, n, r) {
2061
2063
  if ("ST_SESSION" !== tt(e)) return Dt("Not in session"), null;
2062
2064
  n || (n = {});
2063
- let o = Tr(e, Se(r), pn(e, n, "service", null, 0)), s = mn(e, n, "__md_stats__", null, mt.KW_EXTRACT);
2065
+ let o = yr(e, Se(r), pn(e, n, "service", null, 0)), s = mn(e, n, "__md_stats__", null, mt.KW_EXTRACT);
2064
2066
  return s || (s = {}), An(e, n, "stats_stack", {
2065
2067
  stats: t,
2066
2068
  kw: s
@@ -2069,7 +2071,7 @@ var kr = {
2069
2071
  mt_command_parser: function(e, t, n, r) {
2070
2072
  if ("ST_SESSION" !== tt(e)) return Dt("Not in session"), null;
2071
2073
  n || (n = {});
2072
- let o = Tr(e, Se(r), pn(e, n, "service", "", 0)), s = mn(e, n, "__md_command__", null, mt.KW_EXTRACT);
2074
+ let o = yr(e, Se(r), pn(e, n, "service", "", 0)), s = mn(e, n, "__md_command__", null, mt.KW_EXTRACT);
2073
2075
  return s || (s = {}), An(e, n, "command_stack", {
2074
2076
  command: t,
2075
2077
  kw: s
@@ -2079,25 +2081,25 @@ var kr = {
2079
2081
  if ("ST_SESSION" !== tt(e)) return window.console.error("Not in session"), -1;
2080
2082
  if (n || (n = {}), In(e, n, cr));
2081
2083
  else {
2082
- let o = Tr(e, Se(r), pn(e, n, "__service__", 0, 0));
2084
+ let o = yr(e, Se(r), pn(e, n, "__service__", 0, 0));
2083
2085
  Ft(n, "__service__"), An(e, n, "__message__", t), An(e, n, cr, o);
2084
2086
  }
2085
2087
  return Ln(e, n, "__message__"), Er(e, t, n, r);
2086
2088
  },
2087
2089
  mt_subscription_added: function(e, t) {
2088
2090
  let n = e.priv;
2089
- return "ST_SESSION" !== tt(e) || n.inside_on_open ? 0 : vr(e, t);
2091
+ return "ST_SESSION" === tt(e) && n.websocket ? n.inside_on_open ? 0 : vr(e, t) : 0;
2090
2092
  },
2091
2093
  mt_subscription_deleted: function(e, t) {
2092
2094
  let n = e.priv;
2093
- if ("ST_SESSION" !== tt(e)) return 0;
2095
+ if ("ST_SESSION" !== tt(e) || !n.websocket) return 0;
2094
2096
  if (n.inside_on_open) return 0;
2095
2097
  if (nn(t.event)) return 0;
2096
2098
  let r = {}, o = t.__global__, s = t.__config__, i = t.__filter__, l = t.__service__, _ = t.subscriber;
2097
- return s && (r.__config__ = s), o && (r.__global__ = o), i && (r.__filter__ = i), An(e, r, cr, Tr(e, Se(_), l)), Ln(e, r, "__unsubscribing__"), Er(e, t.event, r, e);
2099
+ return s && (r.__config__ = s), o && (r.__global__ = o), i && (r.__filter__ = i), An(e, r, cr, yr(e, Se(_), l)), Ln(e, r, "__unsubscribing__"), Er(e, t.event, r, e);
2098
2100
  }
2099
2101
  };
2100
- exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) => new T(e, t, n, null, s, r, null, 0, null, o, null), exports.SDATACM = (e, t, n, r, o, s) => new T(e, t, 0, null, s, n, null, 0, o, r, null), exports.SDATACM2 = (e, t, n, r, o, s, i) => new T(e, t, n, null, i, r, null, 0, s, o, null), exports.SDATADF = (e, t, n, r, o, s) => new T(e, t, n, null, s, null, r, o), exports.SDATAPM = (e, t, n, r, o) => new T(e, t, n, r, o), exports.SDATAPM0 = (e, t, n, r, o) => new T(e, t, n, null, o, null, null, 0, null, null, r), exports.SDATA_END = y, exports.SDataDesc = T, exports.YUNETA_VERSION = s, Object.defineProperty(exports, "__yuno__", {
2102
+ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) => new y(e, t, n, null, s, r, null, 0, null, o, null), exports.SDATACM = (e, t, n, r, o, s) => new y(e, t, 0, null, s, n, null, 0, o, r, null), exports.SDATACM2 = (e, t, n, r, o, s, i) => new y(e, t, n, null, i, r, null, 0, s, o, null), exports.SDATADF = (e, t, n, r, o, s) => new y(e, t, n, null, s, null, r, o), exports.SDATAPM = (e, t, n, r, o) => new y(e, t, n, r, o), exports.SDATAPM0 = (e, t, n, r, o) => new y(e, t, n, null, o, null, null, 0, null, null, r), exports.SDATA_END = T, exports.SDataDesc = y, exports.YUNETA_VERSION = s, Object.defineProperty(exports, "__yuno__", {
2101
2103
  enumerable: !0,
2102
2104
  get: function() {
2103
2105
  return d;
@@ -2132,7 +2134,8 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2132
2134
  }, exports.create_template_record = function(e, t) {
2133
2135
  let n = {};
2134
2136
  return t || (t = {}), Object.entries(e).forEach(([e, r]) => {
2135
- n[e] = mn(null, t, e, mn(r, "default"));
2137
+ let o;
2138
+ zt(r) && (o = r.default), n[e] = mn(null, t, e, o);
2136
2139
  }), n;
2137
2140
  }, exports.current_timestamp = Wn, exports.data_type_t = h, exports.db_list_persistent_attrs = function(e, t) {
2138
2141
  let n = Sn(Bn(e), null, !1), r = {};
@@ -2340,7 +2343,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2340
2343
  break;
2341
2344
  }
2342
2345
  return Dt(t("gobj_write_attr(%s): attr not found '%s'", Ne(e), s)), -1;
2343
- }, exports.gobj_write_attrs = qe, exports.gobj_write_bool_attr = He, exports.gobj_write_integer_attr = Xe, exports.gobj_write_str_attr = Ze, exports.gobj_yuno = Te, exports.gobj_yuno_id = je, exports.gobj_yuno_name = ye, exports.gobj_yuno_role = ve, exports.id_index_in_obj_list = xn, exports.index_in_list = Mn, exports.is_array = Qt, exports.is_boolean = Xt, exports.is_date = function(e) {
2346
+ }, exports.gobj_write_attrs = qe, exports.gobj_write_bool_attr = He, exports.gobj_write_integer_attr = Xe, exports.gobj_write_str_attr = Ze, exports.gobj_yuno = ye, exports.gobj_yuno_id = je, exports.gobj_yuno_name = Te, exports.gobj_yuno_role = ve, exports.id_index_in_obj_list = xn, exports.index_in_list = Mn, exports.is_array = Qt, exports.is_boolean = Xt, exports.is_date = function(e) {
2344
2347
  return e instanceof Date && !isNaN(e);
2345
2348
  }, exports.is_function = en, exports.is_gobj = tn, exports.is_metadata_key = function(e) {
2346
2349
  if (!qt(e)) return !1;
@@ -2417,7 +2420,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2417
2420
  }
2418
2421
  }, exports.jwtDecode = Fn, exports.kw_clone_by_keys = vn, exports.kw_clone_by_not_keys = jn, exports.kw_collect = function(e, t, n, r) {
2419
2422
  if (e && !tn(e) && Dt("GObj bad instanceof"), !t) return null;
2420
- r || (r = yn);
2423
+ r || (r = Tn);
2421
2424
  let o = [];
2422
2425
  if (Qt(t)) for (let e = 0; e < t.length; e++) {
2423
2426
  let s = t[e];
@@ -2456,9 +2459,9 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2456
2459
  return i && (Dt(`path not found: '${n}'`), $t(t)), Number(r);
2457
2460
  }
2458
2461
  return _ && cn(e, t, n), Ht(s) ? Number(s) : (i && (Dt(`path value MUST BE a number: ${n}`), kt(t)), Number(r));
2459
- }, exports.kw_get_str = pn, exports.kw_has_key = an, exports.kw_match_simple = yn, exports.kw_pop = _n, exports.kw_remove_local_storage_value = Nn, exports.kw_select = function(e, t, n, r) {
2462
+ }, exports.kw_get_str = pn, exports.kw_has_key = an, exports.kw_match_simple = Tn, exports.kw_pop = _n, exports.kw_remove_local_storage_value = Nn, exports.kw_select = function(e, t, n, r) {
2460
2463
  if (e && !tn(e) && Dt("GObj bad instanceof"), !t) return null;
2461
- r || (r = yn);
2464
+ r || (r = Tn);
2462
2465
  let o = [];
2463
2466
  if (Qt(t)) for (let e = 0; e < t.length; e++) {
2464
2467
  let s = t[e];
@@ -2490,9 +2493,9 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2490
2493
  e && !tn(e) && Dt("GObj bad instanceof");
2491
2494
  let r = {};
2492
2495
  if (nn(n) || (t = un(e, t, n)), zt(t)) r = t;
2493
- else if (Qt(t)) for (let e = 0; e < t.length; e++) {
2494
- let n = t[e], o = pn(n, "id", null, !1);
2495
- nn(o) || (r[o] = n);
2496
+ else if (Qt(t)) for (let n = 0; n < t.length; n++) {
2497
+ let o = t[n], s = pn(e, o, "id", "", 0);
2498
+ nn(s) || (r[s] = o);
2496
2499
  }
2497
2500
  else Dt(`${Ne(e)} kwid_new_dict: data type unknown`);
2498
2501
  return r;
@@ -2545,7 +2548,7 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2545
2548
  }, r.send();
2546
2549
  }, exports.log_debug = Rt, exports.log_error = Dt, exports.log_info = function(e) {
2547
2550
  let t = wt(e), n = Wn();
2548
- yt && yt("%c" + n + " INFO: " + String(t), "color:cyan"), Ot("info", t, n);
2551
+ Tt && Tt("%c" + n + " INFO: " + String(t), "color:cyan"), Ot("info", t, n);
2549
2552
  }, exports.log_warning = xt, exports.msg_iev_get_msg_type = Pn, exports.msg_iev_get_stack = In, exports.msg_iev_push_stack = An, exports.msg_iev_read_key = kn, exports.msg_iev_set_msg_type = Ln, exports.msg_iev_write_key = $n, exports.node_uuid = Kn, exports.parseBoolean = rn, exports.parseSVG = function(e) {
2550
2553
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
2551
2554
  }, exports.refresh_language = function(e, t) {
@@ -2714,7 +2717,8 @@ exports.GObj = S, exports.SDATA = v, exports.SDATAAUTHZ = (e, t, n, r, o, s) =>
2714
2717
  is_writable: !1,
2715
2718
  is_hidden: !1,
2716
2719
  default_value: void 0,
2717
- placeholder: void 0
2720
+ placeholder: void 0,
2721
+ fkey: null
2718
2722
  };
2719
2723
  if (qt(t)) {
2720
2724
  let e = t.split(".");