@yuneta/gobj-js 7.26.8 → 7.26.10

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.
@@ -2135,6 +2135,7 @@ function Sl(e, t, n, r, l) {
2135
2135
  function Nl(e, t, n, r) {
2136
2136
  if (e && !el(e) && ir("GObj bad instanceof"), !Yr(t)) return ir("kw is not an object"), -1;
2137
2137
  if (!Jr(n)) return ir(`${e ? $t(e) + ": " : ""}kw_set_dict_value(): path must be a string: ${String(n)}`), -1;
2138
+ if ("" === n) return ir((e ? $t(e) + ": " : "") + "kw_set_dict_value(): path empty"), -1;
2138
2139
  let l = n.split("`"), o = l.length;
2139
2140
  for (let i = 0; i < o; i++) {
2140
2141
  let s = l[i];
@@ -2157,7 +2158,19 @@ function wl(e, t, n, r, l) {
2157
2158
  if (e && !el(e) && ir("GObj bad instanceof"), !Yr(t)) return ir("kw is not an object"), -1;
2158
2159
  let o = bl(e, t, n, !1);
2159
2160
  if (void 0 === o) {
2160
- if (!Jr(n)) return -1;
2161
+ if (!Jr(n) || function(e, t) {
2162
+ let n = t.split("`"), r = e;
2163
+ for (let e = 0; e < n.length - 1; e++) {
2164
+ if (Br(r)) {
2165
+ const t = dl(r, n[e]);
2166
+ if (t < 0) return !1;
2167
+ r = r[t];
2168
+ } else r = Object.prototype.hasOwnProperty.call(r, n[e]) ? r[n[e]] : void 0;
2169
+ if (null == r) return !1;
2170
+ if (!Yr(r) && !Br(r)) return !0;
2171
+ }
2172
+ return !1;
2173
+ }(t, n)) return -1;
2161
2174
  if (o = {}, Nl(e, t, n, o) < 0) return -1;
2162
2175
  }
2163
2176
  return Yr(o) ? (gl(o, r, l), 0) : (ir(`subdict is not an object: '${n}'`), -1);
@@ -2492,11 +2505,11 @@ function no(e, t, n) {
2492
2505
  }
2493
2506
  function ro(e, t, n) {
2494
2507
  n && (e = jr(e));
2495
- let r = Ol(null, e, "type", [], 1);
2496
- yl(null, e, "hook", "data", 1);
2497
- let l = Ol(null, e, "schema", {}, 1), o = Ol(null, e, "topics", {}, 1);
2508
+ let r = Ol(null, e, "type", [], Vn.KW_CREATE);
2509
+ yl(null, e, "hook", "data", Vn.KW_CREATE);
2510
+ let l = Ol(null, e, "schema", {}, Vn.KW_CREATE), o = Ol(null, e, "topics", {}, Vn.KW_CREATE);
2498
2511
  return no(l, function(e, t, n, l) {
2499
- "__" !== t.substring(0, 2) && Ol(null, o, l, jr(r), 1);
2512
+ "__" === t.substring(0, 2) || Yr(n) || Ol(null, o, l, jr(r), Vn.KW_CREATE);
2500
2513
  }, t), e;
2501
2514
  }
2502
2515
  function lo(e, t, n, r) {
@@ -2505,11 +2518,12 @@ function lo(e, t, n, r) {
2505
2518
  if (tl(r.id)) return ir("jdb_update: record without id: " + r), _r(r), null;
2506
2519
  if (!Jr(n)) return ir(`jdb_update: path must be a string: ${String(n)}`), null;
2507
2520
  let o, i = n.split("`"), s = l;
2508
- for (; (o = i.shift()) && !tl(o) && s;) Yr(s) && (s = Ol(null, s, e.hook, [], 1)), s = uo(s, null, o, !1);
2521
+ for (; (o = i.shift()) && !tl(o) && s;) Yr(s) && (s = Ol(null, s, e.hook, [], Vn.KW_CREATE)), s = uo(s, null, o, !1);
2522
+ if (!s || 0 !== i.length) return ir(`jdb_update: path not found in topic '${t}': '${n}'`), null;
2509
2523
  if (0 === i.length && s) if (Br(s)) s.push(r);
2510
2524
  else if (s.id === r.id) Dr(s, r);
2511
2525
  else {
2512
- let t = Ol(null, s, e.hook, [], 1), n = uo(t, e.hook, r.id, !1);
2526
+ let t = Ol(null, s, e.hook, [], Vn.KW_CREATE), n = uo(t, e.hook, r.id, !1);
2513
2527
  n ? Dr(n, r) : t.push(r);
2514
2528
  }
2515
2529
  return l;
@@ -2521,14 +2535,9 @@ function oo(e, t, n, r) {
2521
2535
  if (!Jr(n)) return ir(`jdb_delete: path must be a string: ${String(n)}`), null;
2522
2536
  let o, i = n.split("`"), s = l;
2523
2537
  for (; (o = i.shift()) && !tl(o) && s;) Yr(s) && (s = Ol(null, s, e.hook, null, 0)), s = uo(s, null, o, !1);
2524
- if (0 === i.length && s) if (Br(s)) {
2525
- let e = Kl(s, r.id);
2526
- e >= 0 && s.splice(e, 1);
2527
- } else {
2528
- let t = Ol(null, s, e.hook, null, 0), n = Kl(t, r.id);
2529
- n >= 0 && t.splice(n, 1);
2530
- }
2531
- return l;
2538
+ if (!s || 0 !== i.length) return ir(`jdb_delete: path not found in topic '${t}': '${n}'`), null;
2539
+ let a = Br(s) ? s : Ol(null, s, e.hook, null, 0), u = Kl(a, r.id);
2540
+ return u < 0 ? (ir(`jdb_delete: record not found in topic '${t}': '${n}' '${r.id}'`), null) : (a.splice(u, 1), l);
2532
2541
  }
2533
2542
  function io(e, t) {
2534
2543
  let n = Ol(null, e, "topics", null, 0);