json-fs-query 2.2.0 → 2.2.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.
@@ -3821,6 +3821,7 @@ Object.defineProperty(exports, "__esModule", {
3821
3821
  });
3822
3822
  exports.runQuery = void 0;
3823
3823
  require("core-js/modules/esnext.iterator.constructor.js");
3824
+ require("core-js/modules/esnext.iterator.find.js");
3824
3825
  require("core-js/modules/esnext.iterator.reduce.js");
3825
3826
  require("core-js/modules/esnext.set.add-all.js");
3826
3827
  require("core-js/modules/esnext.set.delete-all.js");
@@ -3901,6 +3902,16 @@ const runQuery = async parsed => {
3901
3902
  [parsed.entity]: await (0, _showRecords.showRecords)()
3902
3903
  };
3903
3904
  }
3905
+ // update/delete apply their conditions before any join or merge runs, so a condition on another entity's field
3906
+ // can't be checked there. An indexed one used to be dropped once its index had narrowed the joined rows, and the
3907
+ // command then hit every row the other conditions allowed (`delete workouts.exercises on ... where
3908
+ // exercises._id = 1` deleted every workout)
3909
+ if (parsed.command === 'update' || parsed.command === 'delete') {
3910
+ const other = parsed.conditions.find(condition => (0, _isEntityProperty.isEntityProperty)(condition.property) && (0, _splitEntityProperty.splitEntityProperty)(condition.property).entity !== parsed.entity);
3911
+ if (other) {
3912
+ throw new Error(`${parsed.command} can only use conditions on ${parsed.entity}'s own fields, not ${other.property}`);
3913
+ }
3914
+ }
3904
3915
  const recordData = {
3905
3916
  [parsed.entity]: await (0, _retrieveRecord.retrieveRecord)(parsed.entity)
3906
3917
  };
@@ -3967,7 +3978,7 @@ const runQuery = async parsed => {
3967
3978
  return dataSet;
3968
3979
  };
3969
3980
  exports.runQuery = runQuery;
3970
- },{"../queries/createRecord":15,"../queries/deleteEntity":16,"../queries/describeRecord":17,"../queries/dropRecord":18,"../queries/groupBy":19,"../queries/insertEntity":20,"../queries/joinEntity":21,"../queries/limitOffset":22,"../queries/mergeJoins":23,"../queries/readEntity":28,"../queries/selectFields":29,"../queries/showRecords":30,"../queries/sortBy":31,"../queries/updateEntity":32,"../queries/where":33,"./fieldType":39,"./getConditionIndexedList":40,"./getJoinIndexedList":41,"./parsers/isEntityProperty":58,"./parsers/splitEntityProperty":66,"./retrieveRecord":77,"core-js/modules/esnext.iterator.constructor.js":235,"core-js/modules/esnext.iterator.reduce.js":243,"core-js/modules/esnext.set.add-all.js":258,"core-js/modules/esnext.set.delete-all.js":259,"core-js/modules/esnext.set.difference.js":260,"core-js/modules/esnext.set.every.js":261,"core-js/modules/esnext.set.filter.js":262,"core-js/modules/esnext.set.find.js":263,"core-js/modules/esnext.set.intersection.js":264,"core-js/modules/esnext.set.is-disjoint-from.js":265,"core-js/modules/esnext.set.is-subset-of.js":266,"core-js/modules/esnext.set.is-superset-of.js":267,"core-js/modules/esnext.set.join.js":268,"core-js/modules/esnext.set.map.js":269,"core-js/modules/esnext.set.reduce.js":270,"core-js/modules/esnext.set.some.js":271,"core-js/modules/esnext.set.symmetric-difference.js":272,"core-js/modules/esnext.set.union.js":273}],80:[function(require,module,exports){
3981
+ },{"../queries/createRecord":15,"../queries/deleteEntity":16,"../queries/describeRecord":17,"../queries/dropRecord":18,"../queries/groupBy":19,"../queries/insertEntity":20,"../queries/joinEntity":21,"../queries/limitOffset":22,"../queries/mergeJoins":23,"../queries/readEntity":28,"../queries/selectFields":29,"../queries/showRecords":30,"../queries/sortBy":31,"../queries/updateEntity":32,"../queries/where":33,"./fieldType":39,"./getConditionIndexedList":40,"./getJoinIndexedList":41,"./parsers/isEntityProperty":58,"./parsers/splitEntityProperty":66,"./retrieveRecord":77,"core-js/modules/esnext.iterator.constructor.js":235,"core-js/modules/esnext.iterator.find.js":239,"core-js/modules/esnext.iterator.reduce.js":243,"core-js/modules/esnext.set.add-all.js":258,"core-js/modules/esnext.set.delete-all.js":259,"core-js/modules/esnext.set.difference.js":260,"core-js/modules/esnext.set.every.js":261,"core-js/modules/esnext.set.filter.js":262,"core-js/modules/esnext.set.find.js":263,"core-js/modules/esnext.set.intersection.js":264,"core-js/modules/esnext.set.is-disjoint-from.js":265,"core-js/modules/esnext.set.is-subset-of.js":266,"core-js/modules/esnext.set.is-superset-of.js":267,"core-js/modules/esnext.set.join.js":268,"core-js/modules/esnext.set.map.js":269,"core-js/modules/esnext.set.reduce.js":270,"core-js/modules/esnext.set.some.js":271,"core-js/modules/esnext.set.symmetric-difference.js":272,"core-js/modules/esnext.set.union.js":273}],80:[function(require,module,exports){
3971
3982
  "use strict";
3972
3983
 
3973
3984
  Object.defineProperty(exports, "__esModule", {