@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
@@ -523,7 +523,7 @@ const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQ
523
523
  valsOneAndTwoOnly[0] = secondNum;
524
524
  valsOneAndTwoOnly[1] = firstNum;
525
525
  }
526
- 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"} `);
526
+ 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"} `);
527
527
  }
528
528
  case "contains":
529
529
  case "doesnotcontain": return valueIsField ? concat(quoteValue("%"), wrapFieldName(value), quoteValue("%")) : quoteValue(`%${escapeValue(value)}%`);
@@ -618,6 +618,10 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
618
618
  const operatorLC = lc(operator);
619
619
  const valueIsField = valueSource === "field";
620
620
  const asFieldOrValue = (v) => valueIsField ? columns[v] : v;
621
+ const maybeParseNumber = (v) => {
622
+ if (valueIsField || !parseNumbers) return asFieldOrValue(v);
623
+ return shouldRenderAsNumber(v, true) ? parseNumber(v, { parseNumbers: true }) : v;
624
+ };
621
625
  if (!column) return void 0;
622
626
  const matchEval = processMatchMode(rule);
623
627
  if (matchEval === false) return;
@@ -648,12 +652,12 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
648
652
  }
649
653
  }
650
654
  switch (operatorLC) {
651
- case "=": return eq(column, asFieldOrValue(value));
652
- case "!=": return ne(column, asFieldOrValue(value));
653
- case ">": return gt(column, asFieldOrValue(value));
654
- case "<": return lt(column, asFieldOrValue(value));
655
- case ">=": return gte(column, asFieldOrValue(value));
656
- case "<=": return lte(column, asFieldOrValue(value));
655
+ case "=": return eq(column, maybeParseNumber(value));
656
+ case "!=": return ne(column, maybeParseNumber(value));
657
+ case ">": return gt(column, maybeParseNumber(value));
658
+ case "<": return lt(column, maybeParseNumber(value));
659
+ case ">=": return gte(column, maybeParseNumber(value));
660
+ case "<=": return lte(column, maybeParseNumber(value));
657
661
  case "beginswith":
658
662
  case "doesnotbeginwith": return (operatorLC === "doesnotbeginwith" ? notLike : like)(column, valueIsField ? sql`${asFieldOrValue(value)} || '%'` : `${value}%`);
659
663
  case "contains":
@@ -664,7 +668,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
664
668
  case "notnull": return isNotNull(column);
665
669
  case "in":
666
670
  case "notin": {
667
- const valueAsArray = toArray(value).map((v) => asFieldOrValue(v));
671
+ const valueAsArray = toArray(value).map((v) => maybeParseNumber(v));
668
672
  return operatorLC === "notin" ? notInArray(column, valueAsArray) : inArray(column, valueAsArray);
669
673
  }
670
674
  case "between":
@@ -998,7 +1002,7 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
998
1002
  let firstRule = true;
999
1003
  for (const rule of rg2.rules) {
1000
1004
  if (typeof rule === "string") {
1001
- precedingCombinator = `, ${translations[rule] ?? rule} `;
1005
+ precedingCombinator = `${translations.ruleSeparator ?? ", "}${translations[rule] ?? rule} `;
1002
1006
  continue;
1003
1007
  }
1004
1008
  if (isRuleGroup(rule)) {
@@ -1040,7 +1044,8 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
1040
1044
  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));
1041
1045
  const prefix = mustWrap ? `${prefixTL} (`.trim() : "";
1042
1046
  const suffix = mustWrap ? `) ${suffixTL}`.trim() : "";
1043
- return `${prefix}${processedRules.join(isRuleGroupType(rg2) ? `, ${translations[combinator] ?? combinator} ` : "")}${suffix}`;
1047
+ const sep = translations.ruleSeparator ?? ", ";
1048
+ return `${prefix}${processedRules.join(isRuleGroupType(rg2) ? `${sep}${translations[combinator] ?? combinator} ` : "")}${suffix}`;
1044
1049
  };
1045
1050
  return processRuleGroup(ruleGroup, true);
1046
1051
  };
@@ -1328,6 +1333,142 @@ const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
1328
1333
  return processRuleGroup(ruleGroup, true);
1329
1334
  };
1330
1335
  //#endregion
1336
+ //#region src/utils/formatQuery/defaultRuleProcessorTanStackDB.ts
1337
+ /**
1338
+ * Default rule processor used by {@link formatQuery} for the "tanstack_db" format.
1339
+ *
1340
+ * @group Export
1341
+ */
1342
+ const defaultRuleProcessorTanStackDB = (rule, _options) => {
1343
+ const { parseNumbers, preserveValueOrder, context = {} } = _options ?? ( /* v8 ignore start -- @preserve */ {});
1344
+ const ops = context.tanStackDbOperators;
1345
+ const refs = context._tanstackDbRefs;
1346
+ const primaryRef = context._tanstackDbPrimaryRef;
1347
+ if (!ops || !refs || !primaryRef) return void 0;
1348
+ const { and, eq, gt, gte, inArray, isNull, like, lt, lte, not } = ops;
1349
+ const resolveField = (fieldName) => {
1350
+ const dotIdx = fieldName.indexOf(".");
1351
+ if (dotIdx > 0) {
1352
+ const prefix = fieldName.slice(0, dotIdx);
1353
+ const rest = fieldName.slice(dotIdx + 1);
1354
+ if (refs[prefix]) return refs[prefix][rest];
1355
+ }
1356
+ return refs[primaryRef][fieldName];
1357
+ };
1358
+ const { field, operator, value, valueSource } = rule;
1359
+ const column = resolveField(field);
1360
+ const operatorLC = lc(operator);
1361
+ const valueIsField = valueSource === "field";
1362
+ const asFieldOrValue = (v) => valueIsField ? resolveField(v) : v;
1363
+ const maybeParseNumber = (v) => {
1364
+ if (valueIsField || !parseNumbers) return asFieldOrValue(v);
1365
+ return shouldRenderAsNumber(v, true) ? parseNumber(v, { parseNumbers: true }) : v;
1366
+ };
1367
+ switch (operatorLC) {
1368
+ case "=": return eq(column, maybeParseNumber(value));
1369
+ case "!=": return not(eq(column, maybeParseNumber(value)));
1370
+ case ">": return gt(column, maybeParseNumber(value));
1371
+ case "<": return lt(column, maybeParseNumber(value));
1372
+ case ">=": return gte(column, maybeParseNumber(value));
1373
+ case "<=": return lte(column, maybeParseNumber(value));
1374
+ case "beginswith":
1375
+ case "doesnotbeginwith": {
1376
+ const expr = like(column, valueIsField ? void 0 : `${value}%`);
1377
+ return operatorLC === "doesnotbeginwith" ? not(expr) : expr;
1378
+ }
1379
+ case "contains":
1380
+ case "doesnotcontain": {
1381
+ const expr = like(column, valueIsField ? void 0 : `%${value}%`);
1382
+ return operatorLC === "doesnotcontain" ? not(expr) : expr;
1383
+ }
1384
+ case "endswith":
1385
+ case "doesnotendwith": {
1386
+ const expr = like(column, valueIsField ? void 0 : `%${value}`);
1387
+ return operatorLC === "doesnotendwith" ? not(expr) : expr;
1388
+ }
1389
+ case "null": return isNull(column);
1390
+ case "notnull": return not(isNull(column));
1391
+ case "in":
1392
+ case "notin": {
1393
+ const expr = inArray(column, toArray(value).map((v) => maybeParseNumber(v)));
1394
+ return operatorLC === "notin" ? not(expr) : expr;
1395
+ }
1396
+ case "between":
1397
+ case "notbetween": {
1398
+ const valueAsArray = toArray(value);
1399
+ if (valueAsArray.length >= 2 && isValidValue(valueAsArray[0]) && isValidValue(valueAsArray[1])) {
1400
+ let [first, second] = valueAsArray;
1401
+ const shouldParseNumbers = !(parseNumbers === false);
1402
+ if (!valueIsField && shouldRenderAsNumber(first, shouldParseNumbers) && shouldRenderAsNumber(second, shouldParseNumbers)) {
1403
+ const firstNum = parseNumber(first, { parseNumbers: shouldParseNumbers });
1404
+ const secondNum = parseNumber(second, { parseNumbers: shouldParseNumbers });
1405
+ if (!preserveValueOrder && secondNum < firstNum) {
1406
+ const tempNum = secondNum;
1407
+ second = firstNum;
1408
+ first = tempNum;
1409
+ } else {
1410
+ first = firstNum;
1411
+ second = secondNum;
1412
+ }
1413
+ } else if (valueIsField) {
1414
+ first = asFieldOrValue(first);
1415
+ second = asFieldOrValue(second);
1416
+ }
1417
+ const expr = and(gte(column, first), lte(column, second));
1418
+ return operatorLC === "notbetween" ? not(expr) : expr;
1419
+ }
1420
+ return;
1421
+ }
1422
+ default: return;
1423
+ }
1424
+ };
1425
+ //#endregion
1426
+ //#region src/utils/formatQuery/defaultRuleGroupProcessorTanStackDB.ts
1427
+ /**
1428
+ * Default rule group processor used by {@link formatQuery} for the "tanstack_db" format.
1429
+ * Returns a `WhereCallback` suitable for TanStack DB's `.where()` method.
1430
+ *
1431
+ * @example
1432
+ * const where = formatQuery(query, { format: 'tanstack_db', context: { tanstackDb: tsdb } });
1433
+ * const results = useLiveQuery(q => q.from({ todo: todosCollection }).where(where));
1434
+ *
1435
+ * @group Export
1436
+ */
1437
+ const defaultRuleGroupProcessorTanStackDB = (ruleGroup, options) => (refs) => {
1438
+ const { fields, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, validateRule, validationMap, context = {} } = options;
1439
+ const ops = context.tanStackDbOperators;
1440
+ if (!ops) return void 0;
1441
+ const { and, eq, not, or } = ops;
1442
+ const fallback = eq(1, 1);
1443
+ const refKeys = Object.keys(refs);
1444
+ /* v8 ignore next -- @preserve */
1445
+ if (refKeys.length === 0) return fallback;
1446
+ const ruleProcessor = defaultRuleProcessorTanStackDB;
1447
+ const processRuleGroup = (rg) => {
1448
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return;
1449
+ const processedRules = rg.rules.map((rule) => {
1450
+ if (isRuleGroup(rule)) return processRuleGroup(rule);
1451
+ const [validationResult, fieldValidator] = validateRule(rule);
1452
+ if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return;
1453
+ const fieldData = getOption(fields, rule.field);
1454
+ return ruleProcessor(rule, {
1455
+ ...options,
1456
+ parseNumbers: getParseNumberBoolean(fieldData?.inputType),
1457
+ fieldData,
1458
+ context: {
1459
+ ...context,
1460
+ _tanstackDbRefs: refs,
1461
+ _tanstackDbPrimaryRef: refKeys[0]
1462
+ }
1463
+ });
1464
+ }).filter(Boolean);
1465
+ if (processedRules.length === 0) return fallback;
1466
+ const ruleGroupExpr = processedRules.length === 1 ? processedRules[0] : rg.combinator === "or" ? or(...processedRules) : and(...processedRules);
1467
+ return rg.not ? not(ruleGroupExpr) : ruleGroupExpr;
1468
+ };
1469
+ return processRuleGroup(convertFromIC(ruleGroup)) ?? fallback;
1470
+ };
1471
+ //#endregion
1331
1472
  //#region src/utils/formatQuery/defaultRuleGroupProcessorDiagnostics.ts
1332
1473
  const numericInputTypes = new Set([
1333
1474
  "number",
@@ -2167,6 +2308,8 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
2167
2308
  const orTL = t.or ?? "or";
2168
2309
  const trueTL = t.true ?? "true";
2169
2310
  const falseTL = t.false ?? "false";
2311
+ const listSep = t.listSeparator ?? ", ";
2312
+ const useOxfordComma = !t.listSeparator;
2170
2313
  switch (operatorLowerCase) {
2171
2314
  case "null":
2172
2315
  case "notnull": return "";
@@ -2186,7 +2329,8 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
2186
2329
  if (valueAsArray.length === 0) return "";
2187
2330
  const valStringArray = valueAsArray.map((v) => valueIsField ? wrapFieldName(getOption(fields ?? [], v)?.label ?? v) : shouldRenderAsNumber(v, parseNumbers) ? `${trimIfString(v)}` : `${wrapAndEscape(v)}`);
2188
2331
  if (valStringArray.length === 1) return valStringArray[0];
2189
- return `(${`${valStringArray.slice(0, -1).join(", ")}${valStringArray.length > 2 ? "," : ""} ${orTL} ${valStringArray.at(-1)}`})`;
2332
+ const oxfordComma = useOxfordComma && valStringArray.length > 2 ? "," : "";
2333
+ return `(${`${valStringArray.slice(0, -1).join(listSep)}${oxfordComma} ${orTL} ${valStringArray.at(-1)}`})`;
2190
2334
  }
2191
2335
  }
2192
2336
  if (typeof rule.value === "boolean") return rule.value ? trueTL : falseTL;
@@ -2299,7 +2443,14 @@ const defaultRuleProcessorNL = (rule, opts) => {
2299
2443
  V: operatorProcessor(rule, opts),
2300
2444
  O: value
2301
2445
  };
2302
- return normalizeConstituentWordOrder(wordOrder).map((term) => `${wordOrderMap[term]}`).join(" ").trim();
2446
+ const translations = opts?.translations ?? {};
2447
+ const suffixMap = {
2448
+ S: translations.afterSubject ?? " ",
2449
+ V: translations.afterVerb ?? " ",
2450
+ O: translations.afterObject ?? " "
2451
+ };
2452
+ const wordOrderTuple = normalizeConstituentWordOrder(wordOrder).filter((term) => wordOrderMap[term] !== "");
2453
+ return wordOrderTuple.map((term, i) => `${wordOrderMap[term]}${i < wordOrderTuple.length - 1 ? suffixMap[term] : ""}`).join("").trim();
2303
2454
  };
2304
2455
  //#endregion
2305
2456
  //#region src/utils/formatQuery/defaultRuleProcessorSQL.ts
@@ -2593,6 +2744,11 @@ const defaultRuleProcessorSequelize = (rule, { parseNumbers, preserveValueOrder,
2593
2744
  //#endregion
2594
2745
  //#region src/utils/formatQuery/defaultRuleProcessorSPARQL.ts
2595
2746
  const escapeDoubleQuotes = (v, escapeQuotes) => typeof v !== "string" || !escapeQuotes ? `${v}` : v.replaceAll(`"`, `\\"`);
2747
+ /** Auto-prefix a SPARQL variable name with `?` unless it's already prefixed, a URI, or a prefixed name.
2748
+ *
2749
+ * @group Export
2750
+ */
2751
+ const sparqlVar = (name) => /^[?<]/.test(name) || name.includes(":") ? name : `?${name}`;
2596
2752
  /**
2597
2753
  * Default rule processor used by {@link formatQuery} for "sparql" format.
2598
2754
  *
@@ -2600,14 +2756,15 @@ const escapeDoubleQuotes = (v, escapeQuotes) => typeof v !== "string" || !escape
2600
2756
  */
2601
2757
  const defaultRuleProcessorSPARQL = (rule, opts = {}) => {
2602
2758
  const { escapeQuotes, parseNumbers } = opts;
2603
- const { field, operator, value, valueSource } = rule;
2759
+ const { field: rawField, operator, value, valueSource } = rule;
2604
2760
  const valueIsField = valueSource === "field";
2605
2761
  const operatorTL = operator.toLowerCase();
2762
+ const field = sparqlVar(rawField);
2606
2763
  const fmtVal = (v) => {
2607
2764
  if (v === null || v === void 0) return "\"\"";
2608
2765
  if (typeof v === "boolean") return `"${v}"^^xsd:boolean`;
2609
2766
  if (typeof v === "bigint") return String(v);
2610
- if (valueIsField) return trimIfString(v);
2767
+ if (valueIsField) return sparqlVar(trimIfString(v));
2611
2768
  if (typeof v === "number" || shouldRenderAsNumber(v, parseNumbers)) return trimIfString(v);
2612
2769
  const s = typeof v === "string" ? v : JSON.stringify(v) ?? "";
2613
2770
  if (s.startsWith("?") || s.startsWith("<") || s.includes(":")) return s;
@@ -2632,12 +2789,12 @@ const defaultRuleProcessorSPARQL = (rule, opts = {}) => {
2632
2789
  case "in": {
2633
2790
  const items = toArray(value).map(fmtVal);
2634
2791
  if (!items.length) return "";
2635
- return items.map((item) => `${field} = ${item}`).join(" || ");
2792
+ return `${field} IN (${items.join(", ")})`;
2636
2793
  }
2637
2794
  case "notin": {
2638
2795
  const items = toArray(value).map(fmtVal);
2639
2796
  if (!items.length) return "";
2640
- return items.map((item) => `${field} != ${item}`).join(" && ");
2797
+ return `${field} NOT IN (${items.join(", ")})`;
2641
2798
  }
2642
2799
  case "between": {
2643
2800
  const arr = toArray(value);
@@ -2700,6 +2857,7 @@ const defaultRuleProcessors = {
2700
2857
  sequelize: defaultRuleProcessorSequelize,
2701
2858
  spel: defaultRuleProcessorSpEL,
2702
2859
  sql: defaultRuleProcessorSQL,
2860
+ tanstack_db: defaultRuleProcessorTanStackDB,
2703
2861
  cypher: defaultRuleProcessorCypher,
2704
2862
  gql: defaultRuleProcessorCypher,
2705
2863
  sparql: defaultRuleProcessorSPARQL,
@@ -2726,6 +2884,7 @@ const defaultOperatorProcessors = {
2726
2884
  sequelize: defaultOperatorProcessor,
2727
2885
  spel: defaultOperatorProcessor,
2728
2886
  sql: defaultOperatorProcessorSQL,
2887
+ tanstack_db: defaultOperatorProcessor,
2729
2888
  cypher: defaultOperatorProcessor,
2730
2889
  gql: defaultOperatorProcessor,
2731
2890
  sparql: defaultOperatorProcessor,
@@ -2772,7 +2931,8 @@ const valueProcessorCanActAsRuleProcessor = new Set([
2772
2931
  "mongodb",
2773
2932
  "prisma",
2774
2933
  "sequelize",
2775
- "spel"
2934
+ "spel",
2935
+ "tanstack_db"
2776
2936
  ]);
2777
2937
  const sqlFormats = new Set([
2778
2938
  "sql",
@@ -2818,7 +2978,7 @@ function formatQuery(ruleGroup, optionParam = {}) {
2818
2978
  } : format === "parameterized_named" ? {
2819
2979
  sql: fallbackExpression,
2820
2980
  params: {}
2821
- } : format === "mongodb" ? `{${fallbackExpression}}` : format === "mongodb_query" ? mongoDbFallback : format === "prisma" ? prismaFallback : format === "jsonlogic" ? false : format === "elasticsearch" ? {} : format === "drizzle" || format === "sequelize" ? void 0 : fallbackExpression;
2981
+ } : 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;
2822
2982
  }
2823
2983
  } else validationMap = validationResult;
2824
2984
  }
@@ -2878,6 +3038,7 @@ function formatQuery(ruleGroup, optionParam = {}) {
2878
3038
  case "ldap": return defaultRuleGroupProcessorLDAP(ruleGroup, finalOptions);
2879
3039
  case "prisma": return defaultRuleGroupProcessorPrisma(ruleGroup, finalOptions);
2880
3040
  case "drizzle": return defaultRuleGroupProcessorDrizzle(ruleGroup, finalOptions);
3041
+ case "tanstack_db": return defaultRuleGroupProcessorTanStackDB(ruleGroup, finalOptions);
2881
3042
  case "sequelize": return defaultRuleGroupProcessorSequelize(ruleGroup, finalOptions);
2882
3043
  case "cypher":
2883
3044
  case "gql": return defaultRuleGroupProcessorCypher(ruleGroup, finalOptions);
@@ -2938,6 +3099,6 @@ const defaultValueProcessorMongoDBByRule = defaultRuleProcessorMongoDB;
2938
3099
  */
2939
3100
  const defaultValueProcessorSpELByRule = defaultRuleProcessorSpEL;
2940
3101
  //#endregion
2941
- export { bigIntJsonParseReviver, bigIntJsonStringifyReplacer, celCombinatorMap, cypherCombinatorMap, defaultCELValueProcessor, defaultExportOperatorMap, defaultMongoDBValueProcessor, defaultNLTranslations, defaultOperatorProcessorNL, defaultOperatorProcessorSQL, 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, defaultValueProcessor, defaultValueProcessorByRule, defaultValueProcessorCELByRule, defaultValueProcessorMongoDBByRule, defaultValueProcessorNL, defaultValueProcessorSpELByRule, formatQuery, formatQueryOptionPresets, getNLTranslataion, getQuoteFieldNamesWithArray, getQuotedFieldName, isValidValue, isValueProcessorLegacy, jsonLogicAdditionalOperators, mapSQLOperator, mongoDbFallback, mongoOperators, normalizeConstituentWordOrder, numerifyValues, prismaFallback, prismaOperators, processMatchMode, shouldRenderAsNumber, sqlDialectPresets };
3102
+ export { bigIntJsonParseReviver, bigIntJsonStringifyReplacer, celCombinatorMap, cypherCombinatorMap, defaultCELValueProcessor, defaultExportOperatorMap, defaultMongoDBValueProcessor, defaultNLTranslations, defaultOperatorProcessorNL, defaultOperatorProcessorSQL, 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, defaultValueProcessor, defaultValueProcessorByRule, defaultValueProcessorCELByRule, defaultValueProcessorMongoDBByRule, defaultValueProcessorNL, defaultValueProcessorSpELByRule, formatQuery, formatQueryOptionPresets, getNLTranslataion, getQuoteFieldNamesWithArray, getQuotedFieldName, isValidValue, isValueProcessorLegacy, jsonLogicAdditionalOperators, mapSQLOperator, mongoDbFallback, mongoOperators, normalizeConstituentWordOrder, numerifyValues, prismaFallback, prismaOperators, processMatchMode, shouldRenderAsNumber, sparqlVar, sqlDialectPresets };
2942
3103
 
2943
3104
  //# sourceMappingURL=formatQuery.mjs.map