@react-querybuilder/core 8.17.0 → 8.18.0

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.
Files changed (56) hide show
  1. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +36 -3
  2. package/dist/cjs/react-querybuilder_core.cjs.development.js +14 -9
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  4. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +36 -3
  5. package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
  6. package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
  7. package/dist/formatQuery.d.mts +3 -1
  8. package/dist/formatQuery.d.ts +3 -1
  9. package/dist/formatQuery.js +10 -8
  10. package/dist/formatQuery.js.map +1 -1
  11. package/dist/formatQuery.mjs +10 -8
  12. package/dist/formatQuery.mjs.map +1 -1
  13. package/dist/{import-CSHMjlid.d.ts → import-Qs1-kgv5.d.ts} +2 -2
  14. package/dist/{import-BQ5xaW6i.d.mts → import-ShTj5IdB.d.mts} +2 -2
  15. package/dist/{index-CREDWM32.d.ts → index-DlVg-QXo.d.mts} +32 -3
  16. package/dist/{index-CREDWM32.d.mts → index-DlVg-QXo.d.ts} +32 -3
  17. package/dist/parseCEL.d.mts +7 -7
  18. package/dist/parseCEL.d.ts +7 -7
  19. package/dist/parseCEL.js +3 -3
  20. package/dist/parseCEL.js.map +1 -1
  21. package/dist/parseCEL.mjs +3 -3
  22. package/dist/parseCEL.mjs.map +1 -1
  23. package/dist/parseCypher.d.mts +1 -1
  24. package/dist/parseCypher.d.ts +1 -1
  25. package/dist/parseGremlin.d.mts +1 -1
  26. package/dist/parseGremlin.d.ts +1 -1
  27. package/dist/parseJSONata.d.mts +2 -2
  28. package/dist/parseJSONata.d.ts +2 -2
  29. package/dist/parseJsonLogic.d.mts +2 -2
  30. package/dist/parseJsonLogic.d.ts +2 -2
  31. package/dist/parseJsonLogic.js +7 -7
  32. package/dist/parseJsonLogic.js.map +1 -1
  33. package/dist/parseJsonLogic.mjs +7 -7
  34. package/dist/parseJsonLogic.mjs.map +1 -1
  35. package/dist/parseMongoDB.d.mts +2 -2
  36. package/dist/parseMongoDB.d.ts +2 -2
  37. package/dist/parseSPARQL.d.mts +1 -1
  38. package/dist/parseSPARQL.d.ts +1 -1
  39. package/dist/parseSQL.d.mts +2 -2
  40. package/dist/parseSQL.d.ts +2 -2
  41. package/dist/parseSpEL.d.mts +2 -2
  42. package/dist/parseSpEL.d.ts +2 -2
  43. package/dist/react-querybuilder_core.d.mts +36 -3
  44. package/dist/react-querybuilder_core.legacy-esm.d.ts +36 -3
  45. package/dist/react-querybuilder_core.legacy-esm.js +14 -9
  46. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  47. package/dist/react-querybuilder_core.mjs +14 -9
  48. package/dist/react-querybuilder_core.mjs.map +1 -1
  49. package/dist/react-querybuilder_core.production.d.mts +36 -3
  50. package/dist/react-querybuilder_core.production.mjs +1 -1
  51. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  52. package/dist/transformQuery.d.mts +1 -1
  53. package/dist/transformQuery.d.ts +1 -1
  54. package/dist/utils-01WaTGBL.mjs.map +1 -1
  55. package/dist/utils-ZlKseh1X.js.map +1 -1
  56. package/package.json +6 -6
@@ -113,7 +113,7 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
113
113
  const totalCount = `double(${field}.size())`;
114
114
  const filteredCount = `${field}.filter(${arrayElementAlias}, ${nestedArrayFilter}).size()`;
115
115
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "==";
116
- if (threshold > 0 && threshold < 1) return `${filteredCount} ${op} (${totalCount} * ${threshold})`;
116
+ if (threshold > 0 && threshold < 1) return `double(${filteredCount}) ${op} (${totalCount} * ${threshold})`;
117
117
  return `${filteredCount} ${op} ${threshold}`;
118
118
  }
119
119
  }
@@ -614,7 +614,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
614
614
  if (!columns || !drizzleOperators) return void 0;
615
615
  const { between, eq, gt, gte, inArray, isNotNull, isNull, like, lt, lte, ne, notBetween, notInArray, notLike, sql } = drizzleOperators;
616
616
  const { field, operator, value, valueSource } = rule;
617
- const column = useRawFields && /[a-z][a-z0-9]*/i.test(field) ? sql.raw(field) : columns[field];
617
+ const column = useRawFields && /^[a-z_][a-z0-9_.]*$/i.test(field) ? sql.raw(field) : columns[field];
618
618
  const operatorLC = lc(operator);
619
619
  const valueIsField = valueSource === "field";
620
620
  const asFieldOrValue = (v) => valueIsField ? columns[v] : v;
@@ -647,7 +647,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
647
647
  case "atmost":
648
648
  case "exactly": {
649
649
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
650
- return threshold > 0 && threshold < 1 ? sql`(select count(*) / array_length(${column}, 1) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) ${sql.raw(`${op} ${threshold}`)}` : sql`(select count(*) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) ${sql.raw(`${op} ${threshold}`)}`;
650
+ return threshold > 0 && threshold < 1 ? sql`(select count(*)::float / array_length(${column}, 1) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) ${sql.raw(`${op} ${threshold}`)}` : sql`(select count(*) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) ${sql.raw(`${op} ${threshold}`)}`;
651
651
  }
652
652
  }
653
653
  }
@@ -995,7 +995,7 @@ const defaultRuleGroupProcessorMongoDB = (ruleGroup, options, meta) => {
995
995
  const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
996
996
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, translations, validateRule, validationMap } = options;
997
997
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
998
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : /* v8 ignore next -- @preserve */ "";
998
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
999
999
  const rg2 = isRuleGroupTypeIC(rg) && rg.rules.some((r) => typeof r === "string" && lc(r) === "xor") ? convertFromIC(rg) : rg;
1000
1000
  const processedRules = [];
1001
1001
  let precedingCombinator = "";
@@ -1093,7 +1093,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
1093
1093
  return sql;
1094
1094
  };
1095
1095
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
1096
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : /* v8 ignore next -- @preserve */ "";
1096
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
1097
1097
  const processedRules = [];
1098
1098
  let precedingCombinator = "";
1099
1099
  let firstRule = true;
@@ -1286,7 +1286,7 @@ const defaultRuleGroupProcessorSPARQL = (ruleGroup, options) => {
1286
1286
  const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
1287
1287
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
1288
1288
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
1289
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : /* v8 ignore next -- @preserve */ "";
1289
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
1290
1290
  const processedRules = [];
1291
1291
  let precedingCombinator = "";
1292
1292
  let firstRule = true;
@@ -2490,7 +2490,7 @@ const defaultRuleProcessorSQL = (rule, opts = {}) => {
2490
2490
  case "atmost":
2491
2491
  case "exactly": {
2492
2492
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
2493
- return `(select count(*)${threshold > 0 && threshold < 1 ? ` / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter}) ${op} ${threshold}`;
2493
+ return `(select count(*)${threshold > 0 && threshold < 1 ? `::float / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter}) ${op} ${threshold}`;
2494
2494
  }
2495
2495
  }
2496
2496
  }
@@ -2557,7 +2557,7 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
2557
2557
  case "atmost":
2558
2558
  case "exactly": {
2559
2559
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "=";
2560
- return finalize(`(select count(*)${threshold > 0 && threshold < 1 ? ` / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedSQL}) ${op} ${threshold}`);
2560
+ return finalize(`(select count(*)${threshold > 0 && threshold < 1 ? `::float / array_length(${ruleField}, 1)` : ""} from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedSQL}) ${op} ${threshold}`);
2561
2561
  }
2562
2562
  }
2563
2563
  }
@@ -3059,6 +3059,8 @@ const generateValueProcessor = (vpbr) => (field, operator, value, valueSource) =
3059
3059
  /**
3060
3060
  * Default value processor used by {@link formatQuery} for "sql" format.
3061
3061
  *
3062
+ * @deprecated Prefer {@link defaultValueProcessorByRule}.
3063
+ *
3062
3064
  * @group Export
3063
3065
  */
3064
3066
  const defaultValueProcessor = generateValueProcessor(defaultValueProcessorByRule);