@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.
@@ -142,7 +142,7 @@ var gobjJs = function(e) {
142
142
  DTP_POINTER: 8
143
143
  });
144
144
  E.DTP_POINTER;
145
- var T = Object.freeze({
145
+ var y = Object.freeze({
146
146
  SDF_NOTACCESS: 1,
147
147
  SDF_RD: 2,
148
148
  SDF_WR: 4,
@@ -165,12 +165,12 @@ var gobjJs = function(e) {
165
165
  SDF_AUTHZ_S: 524288,
166
166
  SDF_AUTHZ_RS: 1048576
167
167
  });
168
- T.SDF_RD, T.SDF_WR, T.SDF_STATS, T.SDF_PERSIST, T.SDF_VOLATIL, T.SDF_RSTATS, T.SDF_PSTATS, T.SDF_WR, T.SDF_PERSIST;
169
- var y = class {
168
+ y.SDF_RD, y.SDF_WR, y.SDF_STATS, y.SDF_PERSIST, y.SDF_VOLATIL, y.SDF_RSTATS, y.SDF_PSTATS, y.SDF_WR, y.SDF_PERSIST;
169
+ var T = class {
170
170
  constructor(e, t, n = 0, r = null, i = "", o = null, l = null, s = 0, _ = null, a = null, u = null) {
171
171
  this.type = e, this.name = t, this.alias = o, this.flag = n, this.default_value = r, this.header = l, this.fillspace = s, this.description = i, this.json_fn = _, this.schema = a, this.authpth = u;
172
172
  }
173
- }, v = () => new y(0, null), j = (e, t, n, r, i) => new y(e, t, n, r, i), S = class {
173
+ }, v = () => new T(0, null), j = (e, t, n, r, i) => new T(e, t, n, r, i), S = class {
174
174
  constructor(e, t, n, r, i, o, l, s, _) {
175
175
  this.gclass_name = e, this.dl_states = [], this.dl_events = [], this.gmt = t, this.lmt = n, this.attrs_table = r, this.priv = i, this.authz_table = o, this.command_table = l, this.s_user_trace_level = s, 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;
176
176
  }
@@ -486,7 +486,7 @@ var gobjJs = function(e) {
486
486
  let o = 0;
487
487
  for (const [l, s] of Object.entries(t)) {
488
488
  const t = W(i.gclass, l, !1);
489
- t ? (-1 === n || t.flag & n) && (t.flag & T.SDF_DEPRECATED && kt(`${we(i)}: Deprecated attribute used in gobj creation: ${l}`), o += F(i, e, t, s)) : r && (r(i, l), o--);
489
+ t ? (-1 === n || t.flag & n) && (t.flag & y.SDF_DEPRECATED && kt(`${we(i)}: Deprecated attribute used in gobj creation: ${l}`), o += F(i, e, t, s)) : r && (r(i, l), o--);
490
490
  }
491
491
  return o;
492
492
  })(G(e), r, -1, e.gclass.gclass_flag & N.gcflag_ignore_unknown_attrs ? 0 : ie, e) < 0 && (Rt(`${we(e)} json2data() FAILED`), It(r));
@@ -590,22 +590,22 @@ var gobjJs = function(e) {
590
590
  function Ee(e) {
591
591
  return !!(e && e.gobj_flag & w.gobj_flag_service);
592
592
  }
593
- function Te(e) {
593
+ function ye(e) {
594
594
  return !Ae(e) && e.playing;
595
595
  }
596
- function ye() {
596
+ function Te() {
597
597
  return !p || p.obflag & D.obflag_destroyed ? null : p;
598
598
  }
599
599
  function ve() {
600
- let e = ye();
600
+ let e = Te();
601
601
  return e ? Oe(e) : "";
602
602
  }
603
603
  function je() {
604
- let e = ye();
604
+ let e = Te();
605
605
  return e ? Qe(e, "yuno_role") : "";
606
606
  }
607
607
  function Se() {
608
- let e = ye();
608
+ let e = Te();
609
609
  return e ? Qe(e, "yuno_id") : "";
610
610
  }
611
611
  function Oe(e) {
@@ -756,7 +756,7 @@ var gobjJs = function(e) {
756
756
  if (t) {
757
757
  if (0 === sn(t, "__disabled__")) return he(e);
758
758
  if (0 === sn(t, "__running__")) return me(e);
759
- if (0 === sn(t, "__playing__")) return Te(e);
759
+ if (0 === sn(t, "__playing__")) return ye(e);
760
760
  if (0 === sn(t, "__service__")) return Ee(e);
761
761
  }
762
762
  let n = V(e, t, !1);
@@ -1012,7 +1012,7 @@ var gobjJs = function(e) {
1012
1012
  JSON_TRUE: 6,
1013
1013
  JSON_FALSE: 7,
1014
1014
  JSON_NULL: 8
1015
- }), "undefined" != typeof window ? window.console : console), Tt = Et.error, yt = Et.warn, vt = Et.info, jt = Et.debug, St = null;
1015
+ }), "undefined" != typeof window ? window.console : console), yt = Et.error, Tt = Et.warn, vt = Et.info, jt = Et.debug, St = null;
1016
1016
  var Ot = !1;
1017
1017
  function Nt(e, t, n) {
1018
1018
  if (St && !Ot) {
@@ -1025,7 +1025,7 @@ var gobjJs = function(e) {
1025
1025
  }
1026
1026
  }
1027
1027
  function wt(e) {
1028
- e ? (Tt = e, yt = e) : (Tt = Et.error, yt = Et.warn);
1028
+ e ? (yt = e, Tt = e) : (yt = Et.error, Tt = Et.warn);
1029
1029
  }
1030
1030
  function Dt(e) {
1031
1031
  const t = Array.prototype.slice.call(arguments);
@@ -1051,11 +1051,11 @@ var gobjJs = function(e) {
1051
1051
  }
1052
1052
  function Rt(e) {
1053
1053
  let t = Dt(e), n = Kn();
1054
- Tt && (Tt === window.console.error ? Tt("%c" + n + " ERROR: " + String(t), "color:red") : (window.console.error("%c" + n + " ERROR: " + String(t), "color:red"), Tt(`${n} ERROR: ${String(t)}`))), Nt("error", t, n);
1054
+ yt && (yt === window.console.error ? yt("%c" + n + " ERROR: " + String(t), "color:red") : (window.console.error("%c" + n + " ERROR: " + String(t), "color:red"), yt(`${n} ERROR: ${String(t)}`))), Nt("error", t, n);
1055
1055
  }
1056
1056
  function kt(e) {
1057
1057
  let t = Dt(e), n = Kn();
1058
- 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)}`))), Nt("warning", t, n);
1058
+ 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)}`))), Nt("warning", t, n);
1059
1059
  }
1060
1060
  function $t(e) {
1061
1061
  let t = Dt(e), n = Kn();
@@ -1300,18 +1300,18 @@ var gobjJs = function(e) {
1300
1300
  }
1301
1301
  return 0;
1302
1302
  }
1303
- function Tn(e, t, n, r, i) {
1303
+ function yn(e, t, n, r, i) {
1304
1304
  if (e && !nn(e) && Rt("GObj bad instanceof"), !Qt(t)) return Rt("kw is not an object"), -1;
1305
1305
  let o = mn(e, t, n, {}, !0);
1306
1306
  return Qt(o) ? (o[r] = i, 0) : (Rt("subdict is not an object"), -1);
1307
1307
  }
1308
- function yn(e, t, r) {
1308
+ function Tn(e, t, r) {
1309
1309
  let i = "", o = !1;
1310
1310
  if (qt(t)) {
1311
1311
  o = !1;
1312
1312
  for (let l = 0; l < t.length; l++) {
1313
1313
  let s = t[l];
1314
- if (i = rn(r) ? n("%s", r) : n("%s`%d", r, l), o = yn(e, s, i), o) break;
1314
+ if (i = rn(r) ? n("%s", r) : n("%s`%d", r, l), o = Tn(e, s, i), o) break;
1315
1315
  }
1316
1316
  } else if (Qt(t)) {
1317
1317
  o = !0;
@@ -1319,7 +1319,7 @@ var gobjJs = function(e) {
1319
1319
  for (let s = 0; s < l.length; s++) {
1320
1320
  let _ = l[s], a = t[_];
1321
1321
  if (i = rn(r) ? n("%s", _) : n("%s`%s", r, _), qt(a) || Qt(a)) {
1322
- if (o = yn(e, a, i), !o) break;
1322
+ if (o = Tn(e, a, i), !o) break;
1323
1323
  continue;
1324
1324
  }
1325
1325
  let u = hn(0, e, i, 0, 0);
@@ -1336,7 +1336,7 @@ var gobjJs = function(e) {
1336
1336
  return o;
1337
1337
  }
1338
1338
  function vn(e, t) {
1339
- return 0 === zt(t) || yn(e, t, "");
1339
+ return 0 === zt(t) || Tn(e, t, "");
1340
1340
  }
1341
1341
  function jn(e, t, n, r) {
1342
1342
  e && !nn(e) && Rt("GObj bad instanceof");
@@ -1473,7 +1473,7 @@ var gobjJs = function(e) {
1473
1473
  return i ? 0 === i.length ? (r && Rt(`stack empty: ${n}`), null) : i[0] : (r && Rt(`stack NOT FOUND: ${n}`), null);
1474
1474
  }
1475
1475
  function Un(e, t, n) {
1476
- return rn(n) ? fn(e, t, "__md_iev__`__msg_type__") : Tn(e, t, "__md_iev__", "__msg_type__", n), 0;
1476
+ return rn(n) ? fn(e, t, "__md_iev__`__msg_type__") : yn(e, t, "__md_iev__", "__msg_type__", n), 0;
1477
1477
  }
1478
1478
  function Cn(e, t) {
1479
1479
  return bn(e, t, "__md_iev__`__msg_type__", "", 0);
@@ -1655,7 +1655,8 @@ var gobjJs = function(e) {
1655
1655
  is_hidden: !1,
1656
1656
  default_value: e.default,
1657
1657
  placeholder: e.placeholder,
1658
- fillspace: e.fillspace || 4
1658
+ fillspace: e.fillspace || 4,
1659
+ fkey: e.fkey || null
1659
1660
  };
1660
1661
  if (!e.flag) return t;
1661
1662
  for (let n = 0; n < e.flag.length; n++) {
@@ -1779,25 +1780,25 @@ var gobjJs = function(e) {
1779
1780
  mt_destroy: function(e) {},
1780
1781
  mt_play: function(e) {
1781
1782
  let t = Z();
1782
- return me(t) || ae(t), Te(t) || be(t), 0;
1783
+ return me(t) || ae(t), ye(t) || be(t), 0;
1783
1784
  },
1784
1785
  mt_pause: function(e) {
1785
1786
  return pe(Z()), 0;
1786
1787
  }
1787
1788
  };
1788
1789
  var fr = "ievent_gate_stack", gr = [
1789
- j(E.DTP_STRING, "wanted_yuno_role", T.SDF_RD, "", "wanted yuno role"),
1790
- j(E.DTP_STRING, "wanted_yuno_name", T.SDF_RD, "", "wanted yuno name"),
1791
- j(E.DTP_STRING, "wanted_yuno_service", T.SDF_RD, "", "wanted yuno service"),
1792
- j(E.DTP_STRING, "remote_yuno_role", T.SDF_RD, "", "confirmed remote yuno role"),
1793
- j(E.DTP_STRING, "remote_yuno_name", T.SDF_RD, "", "confirmed remote yuno name"),
1794
- j(E.DTP_STRING, "remote_yuno_service", T.SDF_RD, "", "confirmed remote yuno service"),
1795
- j(E.DTP_STRING, "url", T.SDF_RD, "", "Url to connect"),
1796
- j(E.DTP_STRING, "jwt", T.SDF_PERSIST, "", "JWT"),
1797
- j(E.DTP_STRING, "cert_pem", T.SDF_PERSIST, "", "SSL server certification, PEM str format"),
1798
- j(E.DTP_JSON, "extra_info", T.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
1799
- j(E.DTP_INTEGER, "timeout_retry", T.SDF_RD, "5000", "timeout waiting idAck"),
1800
- j(E.DTP_INTEGER, "timeout_idack", T.SDF_RD, "5000", "timeout waiting idAck"),
1790
+ j(E.DTP_STRING, "wanted_yuno_role", y.SDF_RD, "", "wanted yuno role"),
1791
+ j(E.DTP_STRING, "wanted_yuno_name", y.SDF_RD, "", "wanted yuno name"),
1792
+ j(E.DTP_STRING, "wanted_yuno_service", y.SDF_RD, "", "wanted yuno service"),
1793
+ j(E.DTP_STRING, "remote_yuno_role", y.SDF_RD, "", "confirmed remote yuno role"),
1794
+ j(E.DTP_STRING, "remote_yuno_name", y.SDF_RD, "", "confirmed remote yuno name"),
1795
+ j(E.DTP_STRING, "remote_yuno_service", y.SDF_RD, "", "confirmed remote yuno service"),
1796
+ j(E.DTP_STRING, "url", y.SDF_RD, "", "Url to connect"),
1797
+ j(E.DTP_STRING, "jwt", y.SDF_PERSIST, "", "JWT"),
1798
+ j(E.DTP_STRING, "cert_pem", y.SDF_PERSIST, "", "SSL server certification, PEM str format"),
1799
+ j(E.DTP_JSON, "extra_info", y.SDF_RD, "{}", "dict data set by user, added to the identity card msg."),
1800
+ j(E.DTP_INTEGER, "timeout_retry", y.SDF_RD, "5000", "timeout waiting idAck"),
1801
+ j(E.DTP_INTEGER, "timeout_idack", y.SDF_RD, "5000", "timeout waiting idAck"),
1801
1802
  j(E.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
1802
1803
  v()
1803
1804
  ], dr = {
@@ -1828,7 +1829,7 @@ var gobjJs = function(e) {
1828
1829
  data: n.data
1829
1830
  }, e);
1830
1831
  }, n.onclose = (n) => {
1831
- Ae(e) || (Je(ye(), "browser_beforeunload") ? kt("Close websocket by unload page") : lt(e, "EV_ON_CLOSE", {
1832
+ Ae(e) || (Je(Te(), "browser_beforeunload") ? kt("Close websocket by unload page") : lt(e, "EV_ON_CLOSE", {
1832
1833
  url: t,
1833
1834
  e: n
1834
1835
  }, e));
@@ -1858,13 +1859,14 @@ var gobjJs = function(e) {
1858
1859
  this.event = e, this.kw = t || {};
1859
1860
  }
1860
1861
  };
1861
- function Tr(e, t, n, r) {
1862
+ function yr(e, t, n, r) {
1862
1863
  return function(e, t) {
1863
1864
  let n = e.priv, r = JSON.stringify(t);
1864
- if (Je(ye(), "trace_inter_event")) {
1865
- let n = Qe(e, "url"), i = Oe(ye()) + " ==> " + n, o = xe(ye(), "trace_ievent_callback");
1865
+ if (Je(Te(), "trace_inter_event")) {
1866
+ let n = Qe(e, "url"), i = Oe(Te()) + " ==> " + n, o = xe(Te(), "trace_ievent_callback");
1866
1867
  o ? o(i, t, 1, r.length) : hr(0, i, t);
1867
1868
  }
1869
+ if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return kt(`${we(e)}: send_iev(): websocket not open, message lost`), -1;
1868
1870
  try {
1869
1871
  n.websocket.send(r);
1870
1872
  } catch (t) {
@@ -1875,7 +1877,7 @@ var gobjJs = function(e) {
1875
1877
  return rn(e) ? (Rt("iev_create() event NULL"), null) : new Er(e, t);
1876
1878
  }(t, n));
1877
1879
  }
1878
- function yr(e, t, n) {
1880
+ function Tr(e, t, n) {
1879
1881
  return rn(n) && (n = Qe(e, "wanted_yuno_service")), {
1880
1882
  dst_yuno: Qe(e, "wanted_yuno_name"),
1881
1883
  dst_role: Qe(e, "wanted_yuno_role"),
@@ -1887,7 +1889,7 @@ var gobjJs = function(e) {
1887
1889
  };
1888
1890
  }
1889
1891
  function vr(e) {
1890
- let t = e.priv, n = Te(ye()), r = Qe(ye(), "yuno_version"), i = Qe(ye(), "yuno_release"), o = Qe(ye(), "yuno_tag"), s = {
1892
+ let t = e.priv, n = ye(Te()), r = Qe(Te(), "yuno_version"), i = Qe(Te(), "yuno_release"), o = Qe(Te(), "yuno_tag"), s = {
1891
1893
  yuno_role: je(),
1892
1894
  yuno_id: Se(),
1893
1895
  yuno_name: ve(),
@@ -1899,20 +1901,20 @@ var gobjJs = function(e) {
1899
1901
  pid: 0,
1900
1902
  watcher_pid: 0,
1901
1903
  jwt: Qe(e, "jwt"),
1902
- username: Qe(ye(), "__username__"),
1904
+ username: Qe(Te(), "__username__"),
1903
1905
  launch_id: 0,
1904
- yuno_startdate: Qe(ye(), "start_date"),
1906
+ yuno_startdate: Qe(Te(), "start_date"),
1905
1907
  id: xn(),
1906
1908
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
1907
1909
  language: "undefined" != typeof window ? window.navigator.language : "",
1908
- required_services: xe(ye(), "required_services")
1910
+ required_services: xe(Te(), "required_services")
1909
1911
  };
1910
- return Ln(e, s, fr, yr(e, Oe(Re(e)), null)), Un(e, s, "__identity__"), ir(t.gobj_timer, ze(e, "timeout_idack")), Tr(e, "EV_IDENTITY_CARD", s);
1912
+ return Ln(e, s, fr, Tr(e, Oe(Re(e)), null)), Un(e, s, "__identity__"), ir(t.gobj_timer, ze(e, "timeout_idack")), yr(e, "EV_IDENTITY_CARD", s);
1911
1913
  }
1912
1914
  function jr(e, t) {
1913
1915
  if (rn(t.event)) return -1;
1914
1916
  let n = {}, r = t.__global__, i = t.__config__, o = t.__filter__, l = t.__service__, s = t.subscriber;
1915
- return i && (n.__config__ = i), r && (n.__global__ = r), o && (n.__filter__ = o), Ln(e, n, fr, yr(e, Oe(s), l)), Un(e, n, "__subscribing__"), Tr(e, t.event, n);
1917
+ return i && (n.__config__ = i), r && (n.__global__ = r), o && (n.__filter__ = o), Ln(e, n, fr, Tr(e, Oe(s), l)), Un(e, n, "__subscribing__"), yr(e, t.event, n);
1916
1918
  }
1917
1919
  function Sr(e, t, n, r) {
1918
1920
  let i = e.priv;
@@ -1996,8 +1998,8 @@ var gobjJs = function(e) {
1996
1998
  kw: i || {}
1997
1999
  } : (Rt("parsing inter_event: kw not a json object"), null) : (Rt("parsing inter_kw: no kw"), null);
1998
2000
  }(0, n.data);
1999
- if (Je(ye(), "trace_inter_event")) {
2000
- let e = Oe(ye()) + " <== " + i, t = n.data.length, r = xe(ye(), "trace_ievent_callback");
2001
+ if (Je(Te(), "trace_inter_event")) {
2002
+ let e = Oe(Te()) + " <== " + i, t = n.data.length, r = xe(Te(), "trace_ievent_callback");
2001
2003
  r ? r(e, o, 2, t) : hr(0, e, o);
2002
2004
  }
2003
2005
  let l = o.event, s = o.kw;
@@ -2061,44 +2063,44 @@ var gobjJs = function(e) {
2061
2063
  mt_stats: function(e, t, n, r) {
2062
2064
  if ("ST_SESSION" !== nt(e)) return Rt("Not in session"), null;
2063
2065
  n || (n = {});
2064
- let i = yr(e, Oe(r), bn(e, n, "service", null, 0)), o = hn(e, n, "__md_stats__", null, ht.KW_EXTRACT);
2066
+ let i = Tr(e, Oe(r), bn(e, n, "service", null, 0)), o = hn(e, n, "__md_stats__", null, ht.KW_EXTRACT);
2065
2067
  return o || (o = {}), Ln(e, n, "stats_stack", {
2066
2068
  stats: t,
2067
2069
  kw: o
2068
- }), Ln(e, n, fr, i), n.__stats__ = t, Un(e, n, "__stats__"), Tr(e, "EV_MT_STATS", n, r), null;
2070
+ }), Ln(e, n, fr, i), n.__stats__ = t, Un(e, n, "__stats__"), yr(e, "EV_MT_STATS", n, r), null;
2069
2071
  },
2070
2072
  mt_command_parser: function(e, t, n, r) {
2071
2073
  if ("ST_SESSION" !== nt(e)) return Rt("Not in session"), null;
2072
2074
  n || (n = {});
2073
- let i = yr(e, Oe(r), bn(e, n, "service", "", 0)), o = hn(e, n, "__md_command__", null, ht.KW_EXTRACT);
2075
+ let i = Tr(e, Oe(r), bn(e, n, "service", "", 0)), o = hn(e, n, "__md_command__", null, ht.KW_EXTRACT);
2074
2076
  return o || (o = {}), Ln(e, n, "command_stack", {
2075
2077
  command: t,
2076
2078
  kw: o
2077
- }), Ln(e, n, fr, i), n.__command__ = t, Un(e, n, "__command__"), Tr(e, "EV_MT_COMMAND", n, r), null;
2079
+ }), Ln(e, n, fr, i), n.__command__ = t, Un(e, n, "__command__"), yr(e, "EV_MT_COMMAND", n, r), null;
2078
2080
  },
2079
2081
  mt_inject_event: function(e, t, n, r) {
2080
2082
  if ("ST_SESSION" !== nt(e)) return window.console.error("Not in session"), -1;
2081
2083
  if (n || (n = {}), Pn(e, n, fr));
2082
2084
  else {
2083
- let i = yr(e, Oe(r), bn(e, n, "__service__", 0, 0));
2085
+ let i = Tr(e, Oe(r), bn(e, n, "__service__", 0, 0));
2084
2086
  Vt(n, "__service__"), Ln(e, n, "__message__", t), Ln(e, n, fr, i);
2085
2087
  }
2086
- return Un(e, n, "__message__"), Tr(e, t, n, r);
2088
+ return Un(e, n, "__message__"), yr(e, t, n, r);
2087
2089
  },
2088
2090
  mt_subscription_added: function(e, t) {
2089
2091
  let n = e.priv;
2090
- return "ST_SESSION" !== nt(e) || n.inside_on_open ? 0 : jr(e, t);
2092
+ return "ST_SESSION" === nt(e) && n.websocket ? n.inside_on_open ? 0 : jr(e, t) : 0;
2091
2093
  },
2092
2094
  mt_subscription_deleted: function(e, t) {
2093
2095
  let n = e.priv;
2094
- if ("ST_SESSION" !== nt(e)) return 0;
2096
+ if ("ST_SESSION" !== nt(e) || !n.websocket) return 0;
2095
2097
  if (n.inside_on_open) return 0;
2096
2098
  if (rn(t.event)) return 0;
2097
2099
  let r = {}, i = t.__global__, o = t.__config__, l = t.__filter__, s = t.__service__, _ = t.subscriber;
2098
- return o && (r.__config__ = o), i && (r.__global__ = i), l && (r.__filter__ = l), Ln(e, r, fr, yr(e, Oe(_), s)), Un(e, r, "__unsubscribing__"), Tr(e, t.event, r, e);
2100
+ return o && (r.__config__ = o), i && (r.__global__ = i), l && (r.__filter__ = l), Ln(e, r, fr, Tr(e, Oe(_), s)), Un(e, r, "__unsubscribing__"), yr(e, t.event, r, e);
2099
2101
  }
2100
2102
  };
2101
- return e.GObj = O, e.SDATA = j, e.SDATAAUTHZ = (e, t, n, r, i, o) => new y(e, t, n, null, o, r, null, 0, null, i, null), e.SDATACM = (e, t, n, r, i, o) => new y(e, t, 0, null, o, n, null, 0, i, r, null), e.SDATACM2 = (e, t, n, r, i, o, l) => new y(e, t, n, null, l, r, null, 0, o, i, null), e.SDATADF = (e, t, n, r, i, o) => new y(e, t, n, null, o, null, r, i), e.SDATAPM = (e, t, n, r, i) => new y(e, t, n, r, i), e.SDATAPM0 = (e, t, n, r, i) => new y(e, t, n, null, i, null, null, 0, null, null, r), e.SDATA_END = v, e.SDataDesc = y, e.YUNETA_VERSION = l, Object.defineProperty(e, "__yuno__", {
2103
+ return e.GObj = O, e.SDATA = j, e.SDATAAUTHZ = (e, t, n, r, i, o) => new T(e, t, n, null, o, r, null, 0, null, i, null), e.SDATACM = (e, t, n, r, i, o) => new T(e, t, 0, null, o, n, null, 0, i, r, null), e.SDATACM2 = (e, t, n, r, i, o, l) => new T(e, t, n, null, l, r, null, 0, o, i, null), e.SDATADF = (e, t, n, r, i, o) => new T(e, t, n, null, o, null, r, i), e.SDATAPM = (e, t, n, r, i) => new T(e, t, n, r, i), e.SDATAPM0 = (e, t, n, r, i) => new T(e, t, n, null, i, null, null, 0, null, null, r), e.SDATA_END = v, e.SDataDesc = T, e.YUNETA_VERSION = l, Object.defineProperty(e, "__yuno__", {
2102
2104
  enumerable: !0,
2103
2105
  get: function() {
2104
2106
  return p;
@@ -2133,22 +2135,23 @@ var gobjJs = function(e) {
2133
2135
  }, e.create_template_record = function(e, t) {
2134
2136
  let n = {};
2135
2137
  return t || (t = {}), Object.entries(e).forEach(([e, r]) => {
2136
- n[e] = hn(null, t, e, hn(r, "default"));
2138
+ let i;
2139
+ Qt(r) && (i = r.default), n[e] = hn(null, t, e, i);
2137
2140
  }), n;
2138
2141
  }, e.current_timestamp = Kn, e.data_type_t = E, e.db_list_persistent_attrs = function(e, t) {
2139
2142
  let n = On(Jn(e), null, !1), r = {};
2140
2143
  return n && Qt(n) && (r = jn(e, n, t, !1)), r;
2141
2144
  }, e.db_load_persistent_attrs = function(e, t) {
2142
- let n = Be(e, T.SDF_PERSIST), r = On(Jn(e), null, !1);
2145
+ let n = Be(e, y.SDF_PERSIST), r = On(Jn(e), null, !1);
2143
2146
  if (r && Qt(r)) {
2144
2147
  let i = jn(e, r, t, !1);
2145
- i = jn(e, i, n, !1), He(e, i, T.SDF_PERSIST);
2148
+ i = jn(e, i, n, !1), He(e, i, y.SDF_PERSIST);
2146
2149
  }
2147
2150
  }, e.db_remove_persistent_attrs = function(e, t) {
2148
2151
  let n = Sn(e, On(Jn(e), null, !1), t, !1);
2149
2152
  0 === Bt(n) ? wn(Jn(e)) : Nn(Jn(e), n);
2150
2153
  }, e.db_save_persistent_attrs = function(e, t) {
2151
- let n = jn(e, Be(e, T.SDF_PERSIST), t, !1), r = On(Jn(e), null, !1);
2154
+ let n = jn(e, Be(e, y.SDF_PERSIST), t, !1), r = On(Jn(e), null, !1);
2152
2155
  r && Qt(r) && Ft(n, r), Nn(Jn(e), n);
2153
2156
  }, e.debounce = function(e, t = 0, n = !1) {
2154
2157
  let r = null, i = null, o = null;
@@ -2215,7 +2218,7 @@ var gobjJs = function(e) {
2215
2218
  if (rn(t)) return null;
2216
2219
  const n = t.toLowerCase();
2217
2220
  return "__default_service__" === n ? m : "__yuno__" === n || "__root__" === n ? p : Ke(p, t);
2218
- }, e.gobj_find_service = ee, e.gobj_find_subscribings = pt, e.gobj_find_subscriptions = bt, e.gobj_flag_t = w, e.gobj_full_name = De, e.gobj_gclass_name = Ne, e.gobj_has_attr = Ye, e.gobj_has_event = it, e.gobj_has_output_event = ot, e.gobj_hsdata = G, e.gobj_is_destroying = Ae, e.gobj_is_playing = Te, e.gobj_is_pure_child = $e, e.gobj_is_running = me, e.gobj_is_service = Ee, e.gobj_is_volatil = ke, e.gobj_list_persistent_attrs = function(e, t) {
2221
+ }, e.gobj_find_service = ee, e.gobj_find_subscribings = pt, e.gobj_find_subscriptions = bt, e.gobj_flag_t = w, e.gobj_full_name = De, e.gobj_gclass_name = Ne, e.gobj_has_attr = Ye, e.gobj_has_event = it, e.gobj_has_output_event = ot, e.gobj_hsdata = G, e.gobj_is_destroying = Ae, e.gobj_is_playing = ye, e.gobj_is_pure_child = $e, e.gobj_is_running = me, e.gobj_is_service = Ee, e.gobj_is_volatil = ke, e.gobj_list_persistent_attrs = function(e, t) {
2219
2222
  return u ? u(e, t) : null;
2220
2223
  }, e.gobj_list_subscriptions = function(e) {
2221
2224
  let t = bt(e, null, null, null);
@@ -2274,7 +2277,7 @@ var gobjJs = function(e) {
2274
2277
  }
2275
2278
  }
2276
2279
  return 0;
2277
- }(e, T.SDF_VOLATIL, 0);
2280
+ }(e, y.SDF_VOLATIL, 0);
2278
2281
  }, e.gobj_save_persistent_attrs = function(e, t) {
2279
2282
  return Ee(e) ? _ ? _(e, t) : -1 : (Rt(`${we(e)}: Only gobj services can load/save writable-persistent`), -1);
2280
2283
  }, e.gobj_search_path = Ke, e.gobj_send_event = lt, e.gobj_services = function() {
@@ -2341,7 +2344,7 @@ var gobjJs = function(e) {
2341
2344
  break;
2342
2345
  }
2343
2346
  return Rt(n("gobj_write_attr(%s): attr not found '%s'", we(e), o)), -1;
2344
- }, e.gobj_write_attrs = He, e.gobj_write_bool_attr = Xe, e.gobj_write_integer_attr = Ze, e.gobj_write_str_attr = et, e.gobj_yuno = ye, e.gobj_yuno_id = Se, e.gobj_yuno_name = ve, e.gobj_yuno_role = je, e.id_index_in_obj_list = kn, e.index_in_list = Yn, e.is_array = qt, e.is_boolean = Zt, e.is_date = function(e) {
2347
+ }, e.gobj_write_attrs = He, e.gobj_write_bool_attr = Xe, e.gobj_write_integer_attr = Ze, e.gobj_write_str_attr = et, e.gobj_yuno = Te, e.gobj_yuno_id = Se, e.gobj_yuno_name = ve, e.gobj_yuno_role = je, e.id_index_in_obj_list = kn, e.index_in_list = Yn, e.is_array = qt, e.is_boolean = Zt, e.is_date = function(e) {
2345
2348
  return e instanceof Date && !isNaN(e);
2346
2349
  }, e.is_function = tn, e.is_gobj = nn, e.is_metadata_key = function(e) {
2347
2350
  if (!Ht(e)) return !1;
@@ -2470,7 +2473,7 @@ var gobjJs = function(e) {
2470
2473
  r(t, n) && i.push(Lt(t));
2471
2474
  }
2472
2475
  return i;
2473
- }, e.kw_set_dict_value = En, e.kw_set_local_storage_value = Nn, e.kw_set_subdict_value = Tn, e.kwid_collect = Rn, e.kwid_find_one_record = function(e, t, n, r, i) {
2476
+ }, e.kw_set_dict_value = En, e.kw_set_local_storage_value = Nn, e.kw_set_subdict_value = yn, e.kwid_collect = Rn, e.kwid_find_one_record = function(e, t, n, r, i) {
2474
2477
  e && !nn(e) && Rt("GObj bad instanceof");
2475
2478
  let o = Rn(e, t, n, r, i);
2476
2479
  return o.length > 0 ? o[0] : null;
@@ -2491,9 +2494,9 @@ var gobjJs = function(e) {
2491
2494
  e && !nn(e) && Rt("GObj bad instanceof");
2492
2495
  let r = {};
2493
2496
  if (rn(n) || (t = cn(e, t, n)), Qt(t)) r = t;
2494
- else if (qt(t)) for (let e = 0; e < t.length; e++) {
2495
- let n = t[e], i = bn(n, "id", null, !1);
2496
- rn(i) || (r[i] = n);
2497
+ else if (qt(t)) for (let n = 0; n < t.length; n++) {
2498
+ let i = t[n], o = bn(e, i, "id", "", 0);
2499
+ rn(o) || (r[o] = i);
2497
2500
  }
2498
2501
  else Rt(`${we(e)} kwid_new_dict: data type unknown`);
2499
2502
  return r;
@@ -2686,7 +2689,7 @@ var gobjJs = function(e) {
2686
2689
  if (!e) return "";
2687
2690
  const t = String(e).trim();
2688
2691
  return /^javascript:/i.test(t) || /^data:/i.test(t) ? "" : Wn(t);
2689
- }, e.sdata_flag_t = T, e.send_http_json_post = function(e, t, n) {
2692
+ }, e.sdata_flag_t = y, e.send_http_json_post = function(e, t, n) {
2690
2693
  let r = new XMLHttpRequest();
2691
2694
  r.open("POST", e), r.setRequestHeader("Accept", "application/json"), r.setRequestHeader("Content-Type", "application/json"), r.onreadystatechange = function() {
2692
2695
  4 === r.readyState && n(r.status, r.responseText);
@@ -2715,7 +2718,8 @@ var gobjJs = function(e) {
2715
2718
  is_writable: !1,
2716
2719
  is_hidden: !1,
2717
2720
  default_value: void 0,
2718
- placeholder: void 0
2721
+ placeholder: void 0,
2722
+ fkey: null
2719
2723
  };
2720
2724
  if (Ht(t)) {
2721
2725
  let e = t.split(".");