@yuneta/gobj-js 7.26.0 → 7.26.1

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.
@@ -509,10 +509,13 @@
509
509
  if (!Xn(l)) return mn(`attr must be an object: ${n.name}`), -1;
510
510
  break;
511
511
  case E.DTP_JSON:
512
- if (l = r, er(r)) try {
513
- l = JSON.parse(r);
514
- } catch (e) {
515
- l = r;
512
+ if (l = r, er(r)) {
513
+ const e = r.trim();
514
+ if (e.startsWith("{") || e.startsWith("[")) try {
515
+ l = JSON.parse(e);
516
+ } catch (e) {
517
+ l = r;
518
+ }
516
519
  }
517
520
  break;
518
521
  case E.DTP_POINTER: l = r;
@@ -1097,7 +1100,7 @@
1097
1100
  i.action && (_ = i.action(e, t, r, l));
1098
1101
  } catch (n) {
1099
1102
  if (h--, !n || !n.__gobj_logged__) {
1100
- mn(`${et(e)}: action of ${t} in ${e.current_state.state_name} THREW: ${n && n.stack ? n.stack : n}`);
1103
+ mn(`${et(e)}: action of ${t} in ${o.state_name} THREW: ${n && n.stack ? n.stack : n}`);
1101
1104
  try {
1102
1105
  n.__gobj_logged__ = !0;
1103
1106
  } catch (e) {}
@@ -1565,7 +1568,7 @@
1565
1568
  }
1566
1569
  r.left -= 1 + _.length;
1567
1570
  let a, u = e[_];
1568
- a = (Sn(_.slice(-128)) || l && "value" === _) && null != u && "" !== u ? "********" : Cn(u, t, n + 1, r), a !== u && (s = !0), o[_] = a;
1571
+ a = (Sn(_.slice(-128)) || l && "value" === _) && null != u && "" !== u ? "********" : Cn(u, t, n + 1, r), a !== u && (s = !0), dr(o, _, a);
1569
1572
  }
1570
1573
  i && (o["<more>"] = Dn);
1571
1574
  }
@@ -1607,30 +1610,30 @@
1607
1610
  }
1608
1611
  function Vn(e, t) {
1609
1612
  if (!t) return e;
1610
- for (let n of Object.keys(t)) e[n] = t[n];
1613
+ for (let n of Object.keys(t)) dr(e, n, t[n]);
1611
1614
  return e;
1612
1615
  }
1613
1616
  function Gn(e, t) {
1614
1617
  if (!t) return e;
1615
- for (let n in t) t.hasOwnProperty(n) && e.hasOwnProperty(n) && (e[n] = t[n]);
1618
+ for (let n in t) Object.prototype.hasOwnProperty.call(t, n) && Object.prototype.hasOwnProperty.call(e, n) && dr(e, n, t[n]);
1616
1619
  return e;
1617
1620
  }
1618
1621
  function Mn(e, t) {
1619
1622
  if (!t) return e;
1620
- for (let n in t) t.hasOwnProperty(n) && !e.hasOwnProperty(n) && (e[n] = t[n]);
1623
+ for (let n in t) Object.prototype.hasOwnProperty.call(t, n) && !Object.prototype.hasOwnProperty.call(e, n) && dr(e, n, t[n]);
1621
1624
  return e;
1622
1625
  }
1623
1626
  function Wn(e, t) {
1624
- if (e && e.hasOwnProperty(t)) return e[t];
1627
+ if (e && Object.prototype.hasOwnProperty.call(e, t)) return e[t];
1625
1628
  }
1626
1629
  function xn(e, t) {
1627
- e && e.hasOwnProperty(t) && delete e[t];
1630
+ e && Object.prototype.hasOwnProperty.call(e, t) && delete e[t];
1628
1631
  }
1629
1632
  function Kn(e, t, n) {
1630
- e[t] = n;
1633
+ dr(e, t, n);
1631
1634
  }
1632
1635
  function Yn(e, t, n) {
1633
- e[t] = n;
1636
+ dr(e, t, n);
1634
1637
  }
1635
1638
  function Bn(e, t) {
1636
1639
  e.push(t);
@@ -1705,10 +1708,10 @@
1705
1708
  else for (const n of Object.keys(t)) delete e[n];
1706
1709
  }
1707
1710
  function fr(e, t) {
1708
- return !(!(t in e) || !e.hasOwnProperty(t));
1711
+ return !(!(t in e) || !Object.prototype.hasOwnProperty.call(e, t));
1709
1712
  }
1710
1713
  function gr(e, t) {
1711
- return ("__proto__" === t || "constructor" === t || "prototype" === t) && !Object.prototype.hasOwnProperty.call(e, t);
1714
+ return !Object.prototype.hasOwnProperty.call(e, t);
1712
1715
  }
1713
1716
  function dr(e, t, n) {
1714
1717
  "__proto__" === t ? Object.defineProperty(e, t, {
@@ -1894,13 +1897,13 @@
1894
1897
  let l = {};
1895
1898
  if (er(n) && !sr(n)) {
1896
1899
  let o = n;
1897
- t.hasOwnProperty(o) ? l[o] = t[o] : r && mn(`${et(e)}: key not found: ${o}`);
1898
- } else if (Xn(n) && Hn(n) > 0) for (let o of Object.keys(n)) t.hasOwnProperty(o) ? l[o] = t[o] : r && mn(`${et(e)}: key not found: ${o}`);
1900
+ Object.prototype.hasOwnProperty.call(t, o) ? dr(l, o, t[o]) : r && mn(`${et(e)}: key not found: ${o}`);
1901
+ } else if (Xn(n) && Hn(n) > 0) for (let o of Object.keys(n)) Object.prototype.hasOwnProperty.call(t, o) ? dr(l, o, t[o]) : r && mn(`${et(e)}: key not found: ${o}`);
1899
1902
  else {
1900
1903
  if (!(Zn(n) && zn(n) > 0)) return t;
1901
1904
  for (let o = 0; o < n.length; o++) {
1902
1905
  let s = n[o];
1903
- t.hasOwnProperty(s) ? l[s] = t[s] : r && mn(`${et(e)}: key not found: ${s}`);
1906
+ Object.prototype.hasOwnProperty.call(t, s) ? dr(l, s, t[s]) : r && mn(`${et(e)}: key not found: ${s}`);
1904
1907
  }
1905
1908
  }
1906
1909
  return l;
@@ -1910,13 +1913,13 @@
1910
1913
  if (!Xn(t)) return l;
1911
1914
  if (Vn(l, t), er(n) && !sr(n)) {
1912
1915
  let o = n;
1913
- t.hasOwnProperty(o) ? xn(l, o) : r && mn(`${et(e)}: key not found: ${o}`);
1914
- } else if (Xn(n) && Hn(n) > 0) for (let o of Object.keys(n)) t.hasOwnProperty(o) ? xn(l, o) : r && mn(`${et(e)}: key not found: ${o}`);
1916
+ Object.prototype.hasOwnProperty.call(t, o) ? xn(l, o) : r && mn(`${et(e)}: key not found: ${o}`);
1917
+ } else if (Xn(n) && Hn(n) > 0) for (let o of Object.keys(n)) Object.prototype.hasOwnProperty.call(t, o) ? xn(l, o) : r && mn(`${et(e)}: key not found: ${o}`);
1915
1918
  else {
1916
1919
  if (!(Zn(n) && zn(n) > 0)) return {};
1917
1920
  for (let o = 0; o < n.length; o++) {
1918
1921
  let s = n[o];
1919
- t.hasOwnProperty(s) ? xn(l, s) : r && mn(`${et(e)}: key not found: ${s}`);
1922
+ Object.prototype.hasOwnProperty.call(t, s) ? xn(l, s) : r && mn(`${et(e)}: key not found: ${s}`);
1920
1923
  }
1921
1924
  }
1922
1925
  return l;
@@ -2034,7 +2037,7 @@
2034
2037
  function Wr(e, t, n) {
2035
2038
  void 0 !== n && er(n) || (n = "");
2036
2039
  for (let r of Object.keys(e)) {
2037
- if (!e.hasOwnProperty(r)) continue;
2040
+ if (!Object.prototype.hasOwnProperty.call(e, r)) continue;
2038
2041
  let l = (n.length ? "`" : "") + r;
2039
2042
  n += l, t.apply(this, [
2040
2043
  e,
@@ -2473,34 +2476,33 @@
2473
2476
  function $l(e) {
2474
2477
  e.priv.websocket && mn("Websocket ALREADY setup");
2475
2478
  const t = jt(e, "url");
2476
- let n;
2477
2479
  En(`====> Starting WebSocket to '${t}' (${et(e)})`);
2480
+ const n = ++e.priv.ws_seq;
2481
+ let r;
2478
2482
  try {
2479
- n = new WebSocket(t);
2483
+ r = new WebSocket(t);
2480
2484
  } catch (n) {
2481
2485
  return mn(`${et(e)}: Cannot open WebSocket to '${t}', Error: ${n.message}`), null;
2482
2486
  }
2483
- if (!n) return mn(`${et(e)}: Failed to initialize WebSocket.`), null;
2484
- const r = ++e.priv.ws_seq;
2485
- return n.onopen = () => {
2486
- r !== e.priv.ws_seq || ot(e) || Ft(e, "EV_ON_OPEN", {
2487
+ return r ? (r.onopen = () => {
2488
+ n !== e.priv.ws_seq || ot(e) || Ft(e, "EV_ON_OPEN", {
2487
2489
  url: t,
2488
- ws_seq: r
2490
+ ws_seq: n
2489
2491
  }, e);
2490
- }, n.onmessage = (n) => {
2491
- r !== e.priv.ws_seq || ot(e) || Ft(e, "EV_ON_MESSAGE", {
2492
+ }, r.onmessage = (r) => {
2493
+ n !== e.priv.ws_seq || ot(e) || Ft(e, "EV_ON_MESSAGE", {
2492
2494
  url: t,
2493
- data: n.data
2495
+ data: r.data
2494
2496
  }, e);
2495
- }, n.onclose = (n) => {
2496
- ot(e) || r === e.priv.ws_seq && (Tt(qe(), "browser_beforeunload") ? hn("Close websocket by unload page") : Ft(e, "EV_ON_CLOSE", {
2497
+ }, r.onclose = (r) => {
2498
+ ot(e) || n === e.priv.ws_seq && (Tt(qe(), "browser_beforeunload") ? hn("Close websocket by unload page") : Ft(e, "EV_ON_CLOSE", {
2497
2499
  url: t,
2498
- ws_seq: r,
2499
- code: n.code,
2500
- reason: n.reason,
2501
- was_clean: n.wasClean
2500
+ ws_seq: n,
2501
+ code: r.code,
2502
+ reason: r.reason,
2503
+ was_clean: r.wasClean
2502
2504
  }, e));
2503
- }, n;
2505
+ }, r) : (mn(`${et(e)}: Failed to initialize WebSocket.`), null);
2504
2506
  }
2505
2507
  function kl(e, t = 1e3, n = "") {
2506
2508
  let r = e.priv, l = r.websocket;
@@ -2904,11 +2906,11 @@
2904
2906
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat_apply: a flat json is an object of id -> value");
2905
2907
  if (null === t || "object" != typeof t) throw new Error("flat_apply: a diff is the object flat_diff() answers");
2906
2908
  for (const n of Object.keys(t.removed || {})) delete e[n];
2907
- for (const n of Object.keys(t.added || {})) e[n] = t.added[n];
2909
+ for (const n of Object.keys(t.added || {})) dr(e, n, t.added[n]);
2908
2910
  for (const n of Object.keys(t.changed || {})) {
2909
2911
  const r = t.changed[n];
2910
2912
  if (!r || !Object.prototype.hasOwnProperty.call(r, "to")) throw new Error(`flat_apply: changed '${n}' without a 'to'`);
2911
- e[n] = r.to;
2913
+ dr(e, n, r.to);
2912
2914
  }
2913
2915
  return e;
2914
2916
  }, e.flat_diff = function(e, t) {
@@ -3178,7 +3180,7 @@
3178
3180
  return;
3179
3181
  }
3180
3182
  }
3181
- 0 !== l && (t[r] = e);
3183
+ 0 !== l && dr(t, r, e);
3182
3184
  };
3183
3185
  return null == e || n(e, "", 0), t;
3184
3186
  }, e.json_array_append = Bn, e.json_array_append_new = Jn, e.json_array_extend = function(e, t) {
@@ -3260,7 +3262,7 @@
3260
3262
  if (e && !or(e) && mn("GObj bad instanceof"), !t) return [];
3261
3263
  let n = [];
3262
3264
  if (er(t)) n.push(t);
3263
- else if (Xn(t)) for (let e in t) t.hasOwnProperty(e) && n.push(e);
3265
+ else if (Xn(t)) for (let e in t) Object.prototype.hasOwnProperty.call(t, e) && n.push(e);
3264
3266
  else Zn(t) && t.forEach(function(t) {
3265
3267
  if (er(t)) sr(t) || n.push(t);
3266
3268
  else if (Xn(t)) {