@yuneta/gobj-js 7.25.2 → 7.25.4

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.
@@ -1746,7 +1746,7 @@ function Qr(e, t, n, r, l) {
1746
1746
  else if (u && $r(o)) _ = 0 !== o;
1747
1747
  else if (u && Dr(o)) _ = "true" === o.toLowerCase() || "false" !== o.toLowerCase() && 0 !== (parseInt(o) || 0);
1748
1748
  else {
1749
- if (!u || null !== o) return i && (rr(`${Dt(e)}: path value MUST BE a boolean: ${n}`), sr(t)), Boolean(r);
1749
+ if (!u || null !== o) return u ? (rr(`${e ? Dt(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), ar(t), !1) : (rr(`${e ? Dt(e) + ": " : ""}path MUST BE a json boolean: '${n}'`), ar(t), Boolean(r));
1750
1750
  _ = !1;
1751
1751
  }
1752
1752
  return a && Hr(e, t, n), _;
@@ -1754,7 +1754,7 @@ function Qr(e, t, n, r, l) {
1754
1754
  function zr(e, t, n, r, l) {
1755
1755
  e && !Ur(e) && rr("GObj bad instanceof");
1756
1756
  let o = qr(e, t, n, !1);
1757
- const i = l && l & Pn.KW_REQUIRED, s = l && l & Pn.KW_CREATE, a = l && l & Pn.KW_EXTRACT;
1757
+ const i = l && l & Pn.KW_REQUIRED, s = l && l & Pn.KW_CREATE, a = l && l & Pn.KW_EXTRACT, u = l && l & Pn.KW_WILD_NUMBER;
1758
1758
  if (void 0 === o) {
1759
1759
  if (s) {
1760
1760
  let l = parseInt(r);
@@ -1762,12 +1762,28 @@ function zr(e, t, n, r, l) {
1762
1762
  }
1763
1763
  return i && (rr(`path not found: '${n}'`), ar(t)), parseInt(r);
1764
1764
  }
1765
- return a && Hr(e, t, n), $r(o) ? parseInt(o) : (i && (rr(`path value MUST BE a number: ${n}`), sr(t)), parseInt(r));
1765
+ let _;
1766
+ if ($r(o)) _ = Math.trunc(o);
1767
+ else {
1768
+ if (!u) return rr(`${e ? Dt(e) + ": " : ""}path MUST BE a json integer: '${n}'`), ar(t), parseInt(r);
1769
+ if (Ar(o)) _ = o ? 1 : 0;
1770
+ else if (Dr(o)) _ = function(e) {
1771
+ const t = /^\s*([+-]?)(0[xX][0-9a-fA-F]+|0[0-7]*|[1-9][0-9]*)/.exec(e);
1772
+ if (!t) return 0;
1773
+ let n, r = t[2];
1774
+ return n = r.length > 1 && ("x" === r[1] || "X" === r[1]) ? parseInt(r.substring(2), 16) : "0" === r[0] ? parseInt(r, 8) : parseInt(r, 10), "-" === t[1] ? -n : n;
1775
+ }(o);
1776
+ else {
1777
+ if (null !== o) return rr(`${e ? Dt(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), ar(t), 0;
1778
+ _ = 0;
1779
+ }
1780
+ }
1781
+ return a && Hr(e, t, n), _;
1766
1782
  }
1767
1783
  function Xr(e, t, n, r, l) {
1768
1784
  e && !Ur(e) && rr("GObj bad instanceof");
1769
1785
  let o = qr(e, t, n, !1);
1770
- const i = l && l & Pn.KW_REQUIRED, s = l && l & Pn.KW_CREATE, a = l && l & Pn.KW_EXTRACT;
1786
+ const i = l && l & Pn.KW_REQUIRED, s = l && l & Pn.KW_CREATE, a = l && l & Pn.KW_EXTRACT, u = l && l & Pn.KW_WILD_NUMBER;
1771
1787
  if (void 0 === o) {
1772
1788
  if (s) {
1773
1789
  let l = Number(r);
@@ -1775,13 +1791,24 @@ function Xr(e, t, n, r, l) {
1775
1791
  }
1776
1792
  return i && (rr(`path not found: '${n}'`), ar(t)), Number(r);
1777
1793
  }
1778
- return a && Hr(e, t, n), $r(o) ? Number(o) : (i && (rr(`path value MUST BE a number: ${n}`), sr(t)), Number(r));
1794
+ let _;
1795
+ if ($r(o)) _ = o;
1796
+ else {
1797
+ if (!u) return rr(`${e ? Dt(e) + ": " : ""}path MUST BE a json real: '${n}'`), ar(t), Number(r);
1798
+ if (Ar(o)) _ = o ? 1 : 0;
1799
+ else if (Dr(o)) _ = parseFloat(o), Number.isNaN(_) && (_ = 0);
1800
+ else {
1801
+ if (null !== o) return rr(`${e ? Dt(e) + ": " : ""}path MUST BE a simple json element: '${n}'`), ar(t), 0;
1802
+ _ = 0;
1803
+ }
1804
+ }
1805
+ return a && Hr(e, t, n), _;
1779
1806
  }
1780
1807
  function Zr(e, t, n, r, l) {
1781
1808
  e && !Ur(e) && rr("GObj bad instanceof");
1782
1809
  let o = qr(e, t, n, !1);
1783
1810
  const i = l && l & Pn.KW_REQUIRED, s = l && l & Pn.KW_CREATE, a = l && l & Pn.KW_EXTRACT;
1784
- return void 0 === o ? s ? (ll(e, t, n, Dr(r) ? r : null), r) : (i && (rr(`path not found: '${n}'`), ar(t)), r) : (a && Hr(e, t, n), Dr(o) ? o : (i && (rr(`${Dt(e)}: path value MUST BE a string: ${n}`), sr(t)), r));
1811
+ return void 0 === o ? s ? (ll(e, t, n, Dr(r) ? r : null), r) : (i && (rr(`path not found: '${n}'`), ar(t)), r) : Dr(o) ? (a && Hr(e, t, n), o) : (i && (rr(`${Dt(e)}: path value MUST BE a string: ${n}`), sr(t)), r);
1785
1812
  }
1786
1813
  function el(e, t, n, r, l) {
1787
1814
  e && !Ur(e) && rr("GObj bad instanceof");