@react-querybuilder/core 8.16.0 → 8.16.2

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 (74) hide show
  1. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +43 -4
  2. package/dist/cjs/react-querybuilder_core.cjs.development.js +182 -18
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  4. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +43 -4
  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/convertQuery-BeJJH9BI.mjs.map +1 -1
  8. package/dist/convertQuery-Lx2HQa0m.js.map +1 -1
  9. package/dist/formatQuery.d.mts +42 -3
  10. package/dist/formatQuery.d.ts +42 -3
  11. package/dist/formatQuery.js +182 -18
  12. package/dist/formatQuery.js.map +1 -1
  13. package/dist/formatQuery.mjs +180 -19
  14. package/dist/formatQuery.mjs.map +1 -1
  15. package/dist/{import-BHlzBLM_.d.mts → import-BXXgiPlr.d.mts} +2 -2
  16. package/dist/{import-C6imciDf.d.ts → import-DqzM2MBd.d.ts} +2 -2
  17. package/dist/{index-D-Iej37L.d.mts → index-CR-tk4Ci.d.mts} +3 -3
  18. package/dist/{index-Cjapnb-H.d.ts → index-NSVgGj45.d.ts} +3 -3
  19. package/dist/objectUtils-Bzug_QfX.js.map +1 -1
  20. package/dist/objectUtils-D96eEEzL.mjs.map +1 -1
  21. package/dist/parseCEL.d.mts +2 -2
  22. package/dist/parseCEL.d.ts +2 -2
  23. package/dist/parseCEL.js.map +1 -1
  24. package/dist/parseCEL.mjs.map +1 -1
  25. package/dist/parseCypher.d.mts +1 -1
  26. package/dist/parseCypher.d.ts +1 -1
  27. package/dist/parseCypher.js.map +1 -1
  28. package/dist/parseCypher.mjs.map +1 -1
  29. package/dist/parseGremlin.d.mts +1 -1
  30. package/dist/parseGremlin.d.ts +1 -1
  31. package/dist/parseGremlin.js.map +1 -1
  32. package/dist/parseGremlin.mjs.map +1 -1
  33. package/dist/parseJSONata.d.mts +2 -2
  34. package/dist/parseJSONata.d.ts +2 -2
  35. package/dist/parseJSONata.js.map +1 -1
  36. package/dist/parseJSONata.mjs.map +1 -1
  37. package/dist/parseJsonLogic.d.mts +2 -2
  38. package/dist/parseJsonLogic.d.ts +2 -2
  39. package/dist/parseJsonLogic.js.map +1 -1
  40. package/dist/parseJsonLogic.mjs.map +1 -1
  41. package/dist/parseMongoDB.d.mts +2 -2
  42. package/dist/parseMongoDB.d.ts +2 -2
  43. package/dist/parseMongoDB.js.map +1 -1
  44. package/dist/parseMongoDB.mjs.map +1 -1
  45. package/dist/parseSPARQL.d.mts +1 -1
  46. package/dist/parseSPARQL.d.ts +1 -1
  47. package/dist/parseSPARQL.js.map +1 -1
  48. package/dist/parseSPARQL.mjs.map +1 -1
  49. package/dist/parseSQL.d.mts +2 -2
  50. package/dist/parseSQL.d.ts +2 -2
  51. package/dist/parseSQL.js.map +1 -1
  52. package/dist/parseSQL.mjs.map +1 -1
  53. package/dist/parseSpEL.d.mts +2 -2
  54. package/dist/parseSpEL.d.ts +2 -2
  55. package/dist/parseSpEL.js.map +1 -1
  56. package/dist/parseSpEL.mjs.map +1 -1
  57. package/dist/prepareQueryObjects-BoG5Rt8z.js.map +1 -1
  58. package/dist/prepareQueryObjects-uA10ZpZX.mjs.map +1 -1
  59. package/dist/react-querybuilder_core.d.mts +43 -4
  60. package/dist/react-querybuilder_core.legacy-esm.d.ts +43 -4
  61. package/dist/react-querybuilder_core.legacy-esm.js +192 -31
  62. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  63. package/dist/react-querybuilder_core.mjs +180 -19
  64. package/dist/react-querybuilder_core.mjs.map +1 -1
  65. package/dist/react-querybuilder_core.production.d.mts +43 -4
  66. package/dist/react-querybuilder_core.production.mjs +1 -1
  67. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  68. package/dist/transformQuery.d.mts +1 -1
  69. package/dist/transformQuery.d.ts +1 -1
  70. package/dist/transformQuery.js.map +1 -1
  71. package/dist/transformQuery.mjs.map +1 -1
  72. package/dist/utils-ChLG90DP.mjs.map +1 -1
  73. package/dist/utils-Qwkq2Q0F.js.map +1 -1
  74. package/package.json +19 -15
@@ -1922,7 +1922,7 @@ const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQ
1922
1922
  valsOneAndTwoOnly[0] = secondNum;
1923
1923
  valsOneAndTwoOnly[1] = firstNum;
1924
1924
  }
1925
- return (valueIsField ? valsOneAndTwoOnly.map((v) => wrapFieldName(v)) : valsOneAndTwoOnly.every((v) => shouldRenderAsNumber(v, parseNumbers)) ? valsOneAndTwoOnly.map((v) => parseNumber(v, { parseNumbers: "strict" })) : valsOneAndTwoOnly.map((v) => wrapAndEscape(v))).join(` ${translations?.and ?? "and"} `);
1925
+ return (valueIsField ? valsOneAndTwoOnly.map((v) => wrapFieldName(v)) : valsOneAndTwoOnly.every((v) => shouldRenderAsNumber(v, parseNumbers)) ? valsOneAndTwoOnly.map((v) => parseNumber(v, { parseNumbers: "strict" })) : valsOneAndTwoOnly.map((v) => wrapAndEscape(v))).join(` ${translations?.betweenAnd ?? translations?.and ?? "and"} `);
1926
1926
  }
1927
1927
  case "contains":
1928
1928
  case "doesnotcontain": return valueIsField ? concat(quoteValue("%"), wrapFieldName(value), quoteValue("%")) : quoteValue(`%${escapeValue(value)}%`);
@@ -2017,6 +2017,10 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
2017
2017
  const operatorLC = lc(operator);
2018
2018
  const valueIsField = valueSource === "field";
2019
2019
  const asFieldOrValue = (v) => valueIsField ? columns[v] : v;
2020
+ const maybeParseNumber = (v) => {
2021
+ if (valueIsField || !parseNumbers) return asFieldOrValue(v);
2022
+ return shouldRenderAsNumber(v, true) ? parseNumber(v, { parseNumbers: true }) : v;
2023
+ };
2020
2024
  if (!column) return void 0;
2021
2025
  const matchEval = processMatchMode(rule);
2022
2026
  if (matchEval === false) return;
@@ -2047,12 +2051,12 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
2047
2051
  }
2048
2052
  }
2049
2053
  switch (operatorLC) {
2050
- case "=": return eq(column, asFieldOrValue(value));
2051
- case "!=": return ne(column, asFieldOrValue(value));
2052
- case ">": return gt(column, asFieldOrValue(value));
2053
- case "<": return lt(column, asFieldOrValue(value));
2054
- case ">=": return gte(column, asFieldOrValue(value));
2055
- case "<=": return lte(column, asFieldOrValue(value));
2054
+ case "=": return eq(column, maybeParseNumber(value));
2055
+ case "!=": return ne(column, maybeParseNumber(value));
2056
+ case ">": return gt(column, maybeParseNumber(value));
2057
+ case "<": return lt(column, maybeParseNumber(value));
2058
+ case ">=": return gte(column, maybeParseNumber(value));
2059
+ case "<=": return lte(column, maybeParseNumber(value));
2056
2060
  case "beginswith":
2057
2061
  case "doesnotbeginwith": return (operatorLC === "doesnotbeginwith" ? notLike : like)(column, valueIsField ? sql`${asFieldOrValue(value)} || '%'` : `${value}%`);
2058
2062
  case "contains":
@@ -2063,7 +2067,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
2063
2067
  case "notnull": return isNotNull(column);
2064
2068
  case "in":
2065
2069
  case "notin": {
2066
- const valueAsArray = toArray(value).map((v) => asFieldOrValue(v));
2070
+ const valueAsArray = toArray(value).map((v) => maybeParseNumber(v));
2067
2071
  return operatorLC === "notin" ? notInArray(column, valueAsArray) : inArray(column, valueAsArray);
2068
2072
  }
2069
2073
  case "between":
@@ -2397,7 +2401,7 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
2397
2401
  let firstRule = true;
2398
2402
  for (const rule of rg2.rules) {
2399
2403
  if (typeof rule === "string") {
2400
- precedingCombinator = `, ${translations[rule] ?? rule} `;
2404
+ precedingCombinator = `${translations.ruleSeparator ?? ", "}${translations[rule] ?? rule} `;
2401
2405
  continue;
2402
2406
  }
2403
2407
  if (isRuleGroup(rule)) {
@@ -2439,7 +2443,8 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
2439
2443
  const [prefixTL, suffixTL] = ["groupPrefix", "groupSuffix"].map((key) => rg2.not ? isXOR ? getNLTranslataion(key, translations, ["not", "xor"]) : getNLTranslataion(key, translations, ["not"]) : isXOR ? getNLTranslataion(key, translations, ["xor"]) : getNLTranslataion(key, translations));
2440
2444
  const prefix = mustWrap ? `${prefixTL} (`.trim() : "";
2441
2445
  const suffix = mustWrap ? `) ${suffixTL}`.trim() : "";
2442
- return `${prefix}${processedRules.join(isRuleGroupType(rg2) ? `, ${translations[combinator] ?? combinator} ` : "")}${suffix}`;
2446
+ const sep = translations.ruleSeparator ?? ", ";
2447
+ return `${prefix}${processedRules.join(isRuleGroupType(rg2) ? `${sep}${translations[combinator] ?? combinator} ` : "")}${suffix}`;
2443
2448
  };
2444
2449
  return processRuleGroup(ruleGroup, true);
2445
2450
  };
@@ -2727,6 +2732,142 @@ const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
2727
2732
  return processRuleGroup(ruleGroup, true);
2728
2733
  };
2729
2734
  //#endregion
2735
+ //#region src/utils/formatQuery/defaultRuleProcessorTanStackDB.ts
2736
+ /**
2737
+ * Default rule processor used by {@link formatQuery} for the "tanstack_db" format.
2738
+ *
2739
+ * @group Export
2740
+ */
2741
+ const defaultRuleProcessorTanStackDB = (rule, _options) => {
2742
+ const { parseNumbers, preserveValueOrder, context = {} } = _options ?? ( /* v8 ignore start -- @preserve */ {});
2743
+ const ops = context.tanStackDbOperators;
2744
+ const refs = context._tanstackDbRefs;
2745
+ const primaryRef = context._tanstackDbPrimaryRef;
2746
+ if (!ops || !refs || !primaryRef) return void 0;
2747
+ const { and, eq, gt, gte, inArray, isNull, like, lt, lte, not } = ops;
2748
+ const resolveField = (fieldName) => {
2749
+ const dotIdx = fieldName.indexOf(".");
2750
+ if (dotIdx > 0) {
2751
+ const prefix = fieldName.slice(0, dotIdx);
2752
+ const rest = fieldName.slice(dotIdx + 1);
2753
+ if (refs[prefix]) return refs[prefix][rest];
2754
+ }
2755
+ return refs[primaryRef][fieldName];
2756
+ };
2757
+ const { field, operator, value, valueSource } = rule;
2758
+ const column = resolveField(field);
2759
+ const operatorLC = lc(operator);
2760
+ const valueIsField = valueSource === "field";
2761
+ const asFieldOrValue = (v) => valueIsField ? resolveField(v) : v;
2762
+ const maybeParseNumber = (v) => {
2763
+ if (valueIsField || !parseNumbers) return asFieldOrValue(v);
2764
+ return shouldRenderAsNumber(v, true) ? parseNumber(v, { parseNumbers: true }) : v;
2765
+ };
2766
+ switch (operatorLC) {
2767
+ case "=": return eq(column, maybeParseNumber(value));
2768
+ case "!=": return not(eq(column, maybeParseNumber(value)));
2769
+ case ">": return gt(column, maybeParseNumber(value));
2770
+ case "<": return lt(column, maybeParseNumber(value));
2771
+ case ">=": return gte(column, maybeParseNumber(value));
2772
+ case "<=": return lte(column, maybeParseNumber(value));
2773
+ case "beginswith":
2774
+ case "doesnotbeginwith": {
2775
+ const expr = like(column, valueIsField ? void 0 : `${value}%`);
2776
+ return operatorLC === "doesnotbeginwith" ? not(expr) : expr;
2777
+ }
2778
+ case "contains":
2779
+ case "doesnotcontain": {
2780
+ const expr = like(column, valueIsField ? void 0 : `%${value}%`);
2781
+ return operatorLC === "doesnotcontain" ? not(expr) : expr;
2782
+ }
2783
+ case "endswith":
2784
+ case "doesnotendwith": {
2785
+ const expr = like(column, valueIsField ? void 0 : `%${value}`);
2786
+ return operatorLC === "doesnotendwith" ? not(expr) : expr;
2787
+ }
2788
+ case "null": return isNull(column);
2789
+ case "notnull": return not(isNull(column));
2790
+ case "in":
2791
+ case "notin": {
2792
+ const expr = inArray(column, toArray(value).map((v) => maybeParseNumber(v)));
2793
+ return operatorLC === "notin" ? not(expr) : expr;
2794
+ }
2795
+ case "between":
2796
+ case "notbetween": {
2797
+ const valueAsArray = toArray(value);
2798
+ if (valueAsArray.length >= 2 && isValidValue(valueAsArray[0]) && isValidValue(valueAsArray[1])) {
2799
+ let [first, second] = valueAsArray;
2800
+ const shouldParseNumbers = !(parseNumbers === false);
2801
+ if (!valueIsField && shouldRenderAsNumber(first, shouldParseNumbers) && shouldRenderAsNumber(second, shouldParseNumbers)) {
2802
+ const firstNum = parseNumber(first, { parseNumbers: shouldParseNumbers });
2803
+ const secondNum = parseNumber(second, { parseNumbers: shouldParseNumbers });
2804
+ if (!preserveValueOrder && secondNum < firstNum) {
2805
+ const tempNum = secondNum;
2806
+ second = firstNum;
2807
+ first = tempNum;
2808
+ } else {
2809
+ first = firstNum;
2810
+ second = secondNum;
2811
+ }
2812
+ } else if (valueIsField) {
2813
+ first = asFieldOrValue(first);
2814
+ second = asFieldOrValue(second);
2815
+ }
2816
+ const expr = and(gte(column, first), lte(column, second));
2817
+ return operatorLC === "notbetween" ? not(expr) : expr;
2818
+ }
2819
+ return;
2820
+ }
2821
+ default: return;
2822
+ }
2823
+ };
2824
+ //#endregion
2825
+ //#region src/utils/formatQuery/defaultRuleGroupProcessorTanStackDB.ts
2826
+ /**
2827
+ * Default rule group processor used by {@link formatQuery} for the "tanstack_db" format.
2828
+ * Returns a `WhereCallback` suitable for TanStack DB's `.where()` method.
2829
+ *
2830
+ * @example
2831
+ * const where = formatQuery(query, { format: 'tanstack_db', context: { tanstackDb: tsdb } });
2832
+ * const results = useLiveQuery(q => q.from({ todo: todosCollection }).where(where));
2833
+ *
2834
+ * @group Export
2835
+ */
2836
+ const defaultRuleGroupProcessorTanStackDB = (ruleGroup, options) => (refs) => {
2837
+ const { fields, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, validateRule, validationMap, context = {} } = options;
2838
+ const ops = context.tanStackDbOperators;
2839
+ if (!ops) return void 0;
2840
+ const { and, eq, not, or } = ops;
2841
+ const fallback = eq(1, 1);
2842
+ const refKeys = Object.keys(refs);
2843
+ /* v8 ignore next -- @preserve */
2844
+ if (refKeys.length === 0) return fallback;
2845
+ const ruleProcessor = defaultRuleProcessorTanStackDB;
2846
+ const processRuleGroup = (rg) => {
2847
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return;
2848
+ const processedRules = rg.rules.map((rule) => {
2849
+ if (isRuleGroup(rule)) return processRuleGroup(rule);
2850
+ const [validationResult, fieldValidator] = validateRule(rule);
2851
+ if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return;
2852
+ const fieldData = getOption(fields, rule.field);
2853
+ return ruleProcessor(rule, {
2854
+ ...options,
2855
+ parseNumbers: getParseNumberBoolean(fieldData?.inputType),
2856
+ fieldData,
2857
+ context: {
2858
+ ...context,
2859
+ _tanstackDbRefs: refs,
2860
+ _tanstackDbPrimaryRef: refKeys[0]
2861
+ }
2862
+ });
2863
+ }).filter(Boolean);
2864
+ if (processedRules.length === 0) return fallback;
2865
+ const ruleGroupExpr = processedRules.length === 1 ? processedRules[0] : rg.combinator === "or" ? or(...processedRules) : and(...processedRules);
2866
+ return rg.not ? not(ruleGroupExpr) : ruleGroupExpr;
2867
+ };
2868
+ return processRuleGroup(convertFromIC(ruleGroup)) ?? fallback;
2869
+ };
2870
+ //#endregion
2730
2871
  //#region src/utils/formatQuery/defaultRuleGroupProcessorDiagnostics.ts
2731
2872
  const numericInputTypes = new Set([
2732
2873
  "number",
@@ -3566,6 +3707,8 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
3566
3707
  const orTL = t.or ?? "or";
3567
3708
  const trueTL = t.true ?? "true";
3568
3709
  const falseTL = t.false ?? "false";
3710
+ const listSep = t.listSeparator ?? ", ";
3711
+ const useOxfordComma = !t.listSeparator;
3569
3712
  switch (operatorLowerCase) {
3570
3713
  case "null":
3571
3714
  case "notnull": return "";
@@ -3585,7 +3728,8 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
3585
3728
  if (valueAsArray.length === 0) return "";
3586
3729
  const valStringArray = valueAsArray.map((v) => valueIsField ? wrapFieldName(getOption(fields ?? [], v)?.label ?? v) : shouldRenderAsNumber(v, parseNumbers) ? `${trimIfString(v)}` : `${wrapAndEscape(v)}`);
3587
3730
  if (valStringArray.length === 1) return valStringArray[0];
3588
- return `(${`${valStringArray.slice(0, -1).join(", ")}${valStringArray.length > 2 ? "," : ""} ${orTL} ${valStringArray.at(-1)}`})`;
3731
+ const oxfordComma = useOxfordComma && valStringArray.length > 2 ? "," : "";
3732
+ return `(${`${valStringArray.slice(0, -1).join(listSep)}${oxfordComma} ${orTL} ${valStringArray.at(-1)}`})`;
3589
3733
  }
3590
3734
  }
3591
3735
  if (typeof rule.value === "boolean") return rule.value ? trueTL : falseTL;
@@ -3698,7 +3842,14 @@ const defaultRuleProcessorNL = (rule, opts) => {
3698
3842
  V: operatorProcessor(rule, opts),
3699
3843
  O: value
3700
3844
  };
3701
- return normalizeConstituentWordOrder(wordOrder).map((term) => `${wordOrderMap[term]}`).join(" ").trim();
3845
+ const translations = opts?.translations ?? {};
3846
+ const suffixMap = {
3847
+ S: translations.afterSubject ?? " ",
3848
+ V: translations.afterVerb ?? " ",
3849
+ O: translations.afterObject ?? " "
3850
+ };
3851
+ const wordOrderTuple = normalizeConstituentWordOrder(wordOrder).filter((term) => wordOrderMap[term] !== "");
3852
+ return wordOrderTuple.map((term, i) => `${wordOrderMap[term]}${i < wordOrderTuple.length - 1 ? suffixMap[term] : ""}`).join("").trim();
3702
3853
  };
3703
3854
  //#endregion
3704
3855
  //#region src/utils/formatQuery/defaultRuleProcessorSQL.ts
@@ -3992,6 +4143,11 @@ const defaultRuleProcessorSequelize = (rule, { parseNumbers, preserveValueOrder,
3992
4143
  //#endregion
3993
4144
  //#region src/utils/formatQuery/defaultRuleProcessorSPARQL.ts
3994
4145
  const escapeDoubleQuotes = (v, escapeQuotes) => typeof v !== "string" || !escapeQuotes ? `${v}` : v.replaceAll(`"`, `\\"`);
4146
+ /** Auto-prefix a SPARQL variable name with `?` unless it's already prefixed, a URI, or a prefixed name.
4147
+ *
4148
+ * @group Export
4149
+ */
4150
+ const sparqlVar = (name) => /^[?<]/.test(name) || name.includes(":") ? name : `?${name}`;
3995
4151
  /**
3996
4152
  * Default rule processor used by {@link formatQuery} for "sparql" format.
3997
4153
  *
@@ -3999,14 +4155,15 @@ const escapeDoubleQuotes = (v, escapeQuotes) => typeof v !== "string" || !escape
3999
4155
  */
4000
4156
  const defaultRuleProcessorSPARQL = (rule, opts = {}) => {
4001
4157
  const { escapeQuotes, parseNumbers } = opts;
4002
- const { field, operator, value, valueSource } = rule;
4158
+ const { field: rawField, operator, value, valueSource } = rule;
4003
4159
  const valueIsField = valueSource === "field";
4004
4160
  const operatorTL = operator.toLowerCase();
4161
+ const field = sparqlVar(rawField);
4005
4162
  const fmtVal = (v) => {
4006
4163
  if (v === null || v === void 0) return "\"\"";
4007
4164
  if (typeof v === "boolean") return `"${v}"^^xsd:boolean`;
4008
4165
  if (typeof v === "bigint") return String(v);
4009
- if (valueIsField) return trimIfString(v);
4166
+ if (valueIsField) return sparqlVar(trimIfString(v));
4010
4167
  if (typeof v === "number" || shouldRenderAsNumber(v, parseNumbers)) return trimIfString(v);
4011
4168
  const s = typeof v === "string" ? v : JSON.stringify(v) ?? "";
4012
4169
  if (s.startsWith("?") || s.startsWith("<") || s.includes(":")) return s;
@@ -4031,12 +4188,12 @@ const defaultRuleProcessorSPARQL = (rule, opts = {}) => {
4031
4188
  case "in": {
4032
4189
  const items = toArray(value).map(fmtVal);
4033
4190
  if (!items.length) return "";
4034
- return items.map((item) => `${field} = ${item}`).join(" || ");
4191
+ return `${field} IN (${items.join(", ")})`;
4035
4192
  }
4036
4193
  case "notin": {
4037
4194
  const items = toArray(value).map(fmtVal);
4038
4195
  if (!items.length) return "";
4039
- return items.map((item) => `${field} != ${item}`).join(" && ");
4196
+ return `${field} NOT IN (${items.join(", ")})`;
4040
4197
  }
4041
4198
  case "between": {
4042
4199
  const arr = toArray(value);
@@ -4099,6 +4256,7 @@ const defaultRuleProcessors = {
4099
4256
  sequelize: defaultRuleProcessorSequelize,
4100
4257
  spel: defaultRuleProcessorSpEL,
4101
4258
  sql: defaultRuleProcessorSQL,
4259
+ tanstack_db: defaultRuleProcessorTanStackDB,
4102
4260
  cypher: defaultRuleProcessorCypher,
4103
4261
  gql: defaultRuleProcessorCypher,
4104
4262
  sparql: defaultRuleProcessorSPARQL,
@@ -4125,6 +4283,7 @@ const defaultOperatorProcessors = {
4125
4283
  sequelize: defaultOperatorProcessor,
4126
4284
  spel: defaultOperatorProcessor,
4127
4285
  sql: defaultOperatorProcessorSQL,
4286
+ tanstack_db: defaultOperatorProcessor,
4128
4287
  cypher: defaultOperatorProcessor,
4129
4288
  gql: defaultOperatorProcessor,
4130
4289
  sparql: defaultOperatorProcessor,
@@ -4171,7 +4330,8 @@ const valueProcessorCanActAsRuleProcessor = new Set([
4171
4330
  "mongodb",
4172
4331
  "prisma",
4173
4332
  "sequelize",
4174
- "spel"
4333
+ "spel",
4334
+ "tanstack_db"
4175
4335
  ]);
4176
4336
  const sqlFormats = new Set([
4177
4337
  "sql",
@@ -4217,7 +4377,7 @@ function formatQuery(ruleGroup, optionParam = {}) {
4217
4377
  } : format === "parameterized_named" ? {
4218
4378
  sql: fallbackExpression,
4219
4379
  params: {}
4220
- } : format === "mongodb" ? `{${fallbackExpression}}` : format === "mongodb_query" ? mongoDbFallback : format === "prisma" ? prismaFallback : format === "jsonlogic" ? false : format === "elasticsearch" ? {} : format === "drizzle" || format === "sequelize" ? void 0 : fallbackExpression;
4380
+ } : format === "mongodb" ? `{${fallbackExpression}}` : format === "mongodb_query" ? mongoDbFallback : format === "prisma" ? prismaFallback : format === "jsonlogic" ? false : format === "elasticsearch" ? {} : format === "drizzle" || format === "sequelize" || format === "tanstack_db" ? void 0 : fallbackExpression;
4221
4381
  }
4222
4382
  } else validationMap = validationResult;
4223
4383
  }
@@ -4277,6 +4437,7 @@ function formatQuery(ruleGroup, optionParam = {}) {
4277
4437
  case "ldap": return defaultRuleGroupProcessorLDAP(ruleGroup, finalOptions);
4278
4438
  case "prisma": return defaultRuleGroupProcessorPrisma(ruleGroup, finalOptions);
4279
4439
  case "drizzle": return defaultRuleGroupProcessorDrizzle(ruleGroup, finalOptions);
4440
+ case "tanstack_db": return defaultRuleGroupProcessorTanStackDB(ruleGroup, finalOptions);
4280
4441
  case "sequelize": return defaultRuleGroupProcessorSequelize(ruleGroup, finalOptions);
4281
4442
  case "cypher":
4282
4443
  case "gql": return defaultRuleGroupProcessorCypher(ruleGroup, finalOptions);
@@ -4994,6 +5155,6 @@ const groupInPlace = (query, sourcePathOrID, targetPathOrID, options = {}) => {
4994
5155
  return query;
4995
5156
  };
4996
5157
  //#endregion
4997
- export { LogType, TestID, add, addInPlace, bigIntJsonParseReviver, bigIntJsonStringifyReplacer, celCombinatorMap, clsx, convertFromIC, convertQuery, convertToIC, cypherCombinatorMap, defaultCELValueProcessor, defaultCombinatorLabelMap, defaultCombinators, defaultCombinatorsExtended, defaultControlClassnames, defaultExportOperatorMap, defaultJoinChar, defaultMatchModes, defaultMongoDBValueProcessor, defaultNLTranslations, defaultOperatorLabelMap, defaultOperatorNegationMap, defaultOperatorProcessorNL, defaultOperatorProcessorSQL, defaultOperators, defaultPlaceholderFieldGroupLabel, defaultPlaceholderFieldLabel, defaultPlaceholderFieldName, defaultPlaceholderLabel, defaultPlaceholderName, defaultPlaceholderOperatorGroupLabel, defaultPlaceholderOperatorLabel, defaultPlaceholderOperatorName, defaultPlaceholderValueGroupLabel, defaultPlaceholderValueLabel, defaultPlaceholderValueName, defaultRuleGroupProcessorCEL, defaultRuleGroupProcessorCypher, defaultRuleGroupProcessorDiagnostics, defaultRuleGroupProcessorDrizzle, defaultRuleGroupProcessorElasticSearch, defaultRuleGroupProcessorGremlin, defaultRuleGroupProcessorJSONata, defaultRuleGroupProcessorJsonLogic, defaultRuleGroupProcessorLDAP, defaultRuleGroupProcessorMongoDB, defaultRuleGroupProcessorMongoDBQuery, defaultRuleGroupProcessorNL, defaultRuleGroupProcessorParameterized, defaultRuleGroupProcessorPrisma, defaultRuleGroupProcessorSPARQL, defaultRuleGroupProcessorSQL, defaultRuleGroupProcessorSequelize, defaultRuleGroupProcessorSpEL, defaultRuleProcessorCEL, defaultRuleProcessorCypher, defaultRuleProcessorDrizzle, defaultRuleProcessorElasticSearch, defaultRuleProcessorGremlin, defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, defaultRuleProcessorLDAP, defaultRuleProcessorMongoDB, defaultRuleProcessorMongoDBQuery, defaultRuleProcessorNL, defaultRuleProcessorParameterized, defaultRuleProcessorPrisma, defaultRuleProcessorSPARQL, defaultRuleProcessorSQL, defaultRuleProcessorSequelize, defaultRuleProcessorSpEL, defaultSpELValueProcessor, defaultTranslations, defaultValidator, defaultValueProcessor, defaultValueProcessorByRule, defaultValueProcessorCELByRule, defaultValueProcessorMongoDBByRule, defaultValueProcessorNL, defaultValueProcessorSpELByRule, filterFieldsByComparator, findID, findPath, formatQuery, formatQueryOptionPresets, generateAccessibleDescription, generateID, getCommonAncestorPath, getFirstOption, getMatchModesUtil, getNLTranslataion, getOption, getParentPath, getParseNumberMethod, getPathOfID, getQuoteFieldNamesWithArray, getQuotedFieldName, getValidationClassNames, getValueSourcesUtil, group, groupInPlace, groupInvalidReasons, insert, insertInPlace, isAncestor, isFlexibleOptionArray, isFlexibleOptionGroupArray, isFullOptionArray, isFullOptionGroupArray, isOptionGroupArray, isPojo, isRuleGroup, isRuleGroupType, isRuleGroupTypeIC, isRuleOrGroupValid, isRuleType, isUnsafeKey, isValidValue, isValidationResult, isValueProcessorLegacy, joinWith, jsonLogicAdditionalOperators, lc, mapSQLOperator, mergeAnyTranslation, mergeAnyTranslations, mergeClassnames, mongoDbFallback, mongoOperators, move, moveInPlace, normalizeConstituentWordOrder, nullFreeArray, nullOrUndefinedOrEmpty, numericRegex, numerifyValues, objectEntries, objectKeys, parseNumber, pathIsDisabled, pathsAreEqual, preferAnyProp, preferFlagProps, preferProp, prepareOptionList, prepareRule, prepareRuleGroup, prepareRuleOrGroup, prismaFallback, prismaOperators, processMatchMode, queryBuilderFlagDefaults, regenerateID, regenerateIDs, remove, removeInPlace, rootPath, shouldRenderAsNumber, splitBy, sqlDialectPresets, standardClassnames, toArray, toFlatOptionArray, toFullOption, toFullOptionList, toFullOptionMap, transformQuery, trimIfString, uniqByIdentifier, uniqByName, uniqOptGroups, uniqOptList, update, updateInPlace, uuidV4regex };
5158
+ export { LogType, TestID, add, addInPlace, bigIntJsonParseReviver, bigIntJsonStringifyReplacer, celCombinatorMap, clsx, convertFromIC, convertQuery, convertToIC, cypherCombinatorMap, defaultCELValueProcessor, defaultCombinatorLabelMap, defaultCombinators, defaultCombinatorsExtended, defaultControlClassnames, defaultExportOperatorMap, defaultJoinChar, defaultMatchModes, defaultMongoDBValueProcessor, defaultNLTranslations, defaultOperatorLabelMap, defaultOperatorNegationMap, defaultOperatorProcessorNL, defaultOperatorProcessorSQL, defaultOperators, defaultPlaceholderFieldGroupLabel, defaultPlaceholderFieldLabel, defaultPlaceholderFieldName, defaultPlaceholderLabel, defaultPlaceholderName, defaultPlaceholderOperatorGroupLabel, defaultPlaceholderOperatorLabel, defaultPlaceholderOperatorName, defaultPlaceholderValueGroupLabel, defaultPlaceholderValueLabel, defaultPlaceholderValueName, defaultRuleGroupProcessorCEL, defaultRuleGroupProcessorCypher, defaultRuleGroupProcessorDiagnostics, defaultRuleGroupProcessorDrizzle, defaultRuleGroupProcessorElasticSearch, defaultRuleGroupProcessorGremlin, defaultRuleGroupProcessorJSONata, defaultRuleGroupProcessorJsonLogic, defaultRuleGroupProcessorLDAP, defaultRuleGroupProcessorMongoDB, defaultRuleGroupProcessorMongoDBQuery, defaultRuleGroupProcessorNL, defaultRuleGroupProcessorParameterized, defaultRuleGroupProcessorPrisma, defaultRuleGroupProcessorSPARQL, defaultRuleGroupProcessorSQL, defaultRuleGroupProcessorSequelize, defaultRuleGroupProcessorSpEL, defaultRuleGroupProcessorTanStackDB, defaultRuleProcessorCEL, defaultRuleProcessorCypher, defaultRuleProcessorDrizzle, defaultRuleProcessorElasticSearch, defaultRuleProcessorGremlin, defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, defaultRuleProcessorLDAP, defaultRuleProcessorMongoDB, defaultRuleProcessorMongoDBQuery, defaultRuleProcessorNL, defaultRuleProcessorParameterized, defaultRuleProcessorPrisma, defaultRuleProcessorSPARQL, defaultRuleProcessorSQL, defaultRuleProcessorSequelize, defaultRuleProcessorSpEL, defaultRuleProcessorTanStackDB, defaultSpELValueProcessor, defaultTranslations, defaultValidator, defaultValueProcessor, defaultValueProcessorByRule, defaultValueProcessorCELByRule, defaultValueProcessorMongoDBByRule, defaultValueProcessorNL, defaultValueProcessorSpELByRule, filterFieldsByComparator, findID, findPath, formatQuery, formatQueryOptionPresets, generateAccessibleDescription, generateID, getCommonAncestorPath, getFirstOption, getMatchModesUtil, getNLTranslataion, getOption, getParentPath, getParseNumberMethod, getPathOfID, getQuoteFieldNamesWithArray, getQuotedFieldName, getValidationClassNames, getValueSourcesUtil, group, groupInPlace, groupInvalidReasons, insert, insertInPlace, isAncestor, isFlexibleOptionArray, isFlexibleOptionGroupArray, isFullOptionArray, isFullOptionGroupArray, isOptionGroupArray, isPojo, isRuleGroup, isRuleGroupType, isRuleGroupTypeIC, isRuleOrGroupValid, isRuleType, isUnsafeKey, isValidValue, isValidationResult, isValueProcessorLegacy, joinWith, jsonLogicAdditionalOperators, lc, mapSQLOperator, mergeAnyTranslation, mergeAnyTranslations, mergeClassnames, mongoDbFallback, mongoOperators, move, moveInPlace, normalizeConstituentWordOrder, nullFreeArray, nullOrUndefinedOrEmpty, numericRegex, numerifyValues, objectEntries, objectKeys, parseNumber, pathIsDisabled, pathsAreEqual, preferAnyProp, preferFlagProps, preferProp, prepareOptionList, prepareRule, prepareRuleGroup, prepareRuleOrGroup, prismaFallback, prismaOperators, processMatchMode, queryBuilderFlagDefaults, regenerateID, regenerateIDs, remove, removeInPlace, rootPath, shouldRenderAsNumber, sparqlVar, splitBy, sqlDialectPresets, standardClassnames, toArray, toFlatOptionArray, toFullOption, toFullOptionList, toFullOptionMap, transformQuery, trimIfString, uniqByIdentifier, uniqByName, uniqOptGroups, uniqOptList, update, updateInPlace, uuidV4regex };
4998
5159
 
4999
5160
  //# sourceMappingURL=react-querybuilder_core.mjs.map