@react-querybuilder/core 8.21.1 → 8.22.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 (88) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +1426 -56
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js +2241 -83
  4. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  5. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +1426 -56
  6. package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
  7. package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
  8. package/dist/formatQuery.d.mts +17 -2
  9. package/dist/formatQuery.d.ts +17 -2
  10. package/dist/formatQuery.js +68 -45
  11. package/dist/formatQuery.js.map +1 -1
  12. package/dist/formatQuery.mjs +67 -46
  13. package/dist/formatQuery.mjs.map +1 -1
  14. package/dist/{import-Ddc3d_8q.d.ts → import-6ExjhifL.d.ts} +2 -2
  15. package/dist/{import-BVdxeIBO.d.mts → import-DVWI7Fdh.d.mts} +2 -2
  16. package/dist/{index-BSwFvkeI.d.mts → index-CX9mehdL.d.mts} +15 -1
  17. package/dist/{index-BSwFvkeI.d.ts → index-CX9mehdL.d.ts} +15 -1
  18. package/dist/parseCEL.d.mts +2 -2
  19. package/dist/parseCEL.d.ts +2 -2
  20. package/dist/parseCEL.js +6 -8
  21. package/dist/parseCEL.js.map +1 -1
  22. package/dist/parseCEL.mjs +6 -8
  23. package/dist/parseCEL.mjs.map +1 -1
  24. package/dist/parseCypher.d.mts +1 -1
  25. package/dist/parseCypher.d.ts +1 -1
  26. package/dist/parseCypher.js.map +1 -1
  27. package/dist/parseGremlin.d.mts +1 -1
  28. package/dist/parseGremlin.d.ts +1 -1
  29. package/dist/parseJSONata.d.mts +2 -2
  30. package/dist/parseJSONata.d.ts +2 -2
  31. package/dist/parseJSONata.js +2 -2
  32. package/dist/parseJSONata.js.map +1 -1
  33. package/dist/parseJSONata.mjs +1 -1
  34. package/dist/parseJsonLogic.d.mts +2 -2
  35. package/dist/parseJsonLogic.d.ts +2 -2
  36. package/dist/parseJsonLogic.js +3 -3
  37. package/dist/parseJsonLogic.js.map +1 -1
  38. package/dist/parseJsonLogic.mjs +3 -3
  39. package/dist/parseJsonLogic.mjs.map +1 -1
  40. package/dist/parseMongoDB.d.mts +2 -2
  41. package/dist/parseMongoDB.d.ts +2 -2
  42. package/dist/parseMongoDB.js +2 -2
  43. package/dist/parseMongoDB.mjs +2 -2
  44. package/dist/parseSPARQL.d.mts +1 -1
  45. package/dist/parseSPARQL.d.ts +1 -1
  46. package/dist/parseSPARQL.js +0 -1
  47. package/dist/parseSPARQL.js.map +1 -1
  48. package/dist/parseSPARQL.mjs +0 -1
  49. package/dist/parseSPARQL.mjs.map +1 -1
  50. package/dist/parseSQL.d.mts +2 -2
  51. package/dist/parseSQL.d.ts +2 -2
  52. package/dist/parseSQL.js +54 -62
  53. package/dist/parseSQL.js.map +1 -1
  54. package/dist/parseSQL.mjs +54 -62
  55. package/dist/parseSQL.mjs.map +1 -1
  56. package/dist/parseSpEL.d.mts +2 -2
  57. package/dist/parseSpEL.d.ts +2 -2
  58. package/dist/parseSpEL.js +3 -3
  59. package/dist/parseSpEL.js.map +1 -1
  60. package/dist/parseSpEL.mjs +3 -3
  61. package/dist/parseSpEL.mjs.map +1 -1
  62. package/dist/{prepareQueryObjects-C2-kTZvR.js → prepareQueryObjects-BnGL91Tt.js} +9 -5
  63. package/dist/{prepareQueryObjects-C2-kTZvR.js.map → prepareQueryObjects-BnGL91Tt.js.map} +1 -1
  64. package/dist/{prepareQueryObjects-Q18lHCKl.mjs → prepareQueryObjects-ChINDIap.mjs} +9 -5
  65. package/dist/{prepareQueryObjects-Q18lHCKl.mjs.map → prepareQueryObjects-ChINDIap.mjs.map} +1 -1
  66. package/dist/query-builder-layout.css +1 -1
  67. package/dist/query-builder-layout.css.map +1 -1
  68. package/dist/query-builder.css +1 -1
  69. package/dist/query-builder.css.map +1 -1
  70. package/dist/react-querybuilder_core.d.mts +1426 -56
  71. package/dist/react-querybuilder_core.legacy-esm.d.ts +1426 -56
  72. package/dist/react-querybuilder_core.legacy-esm.js +2279 -92
  73. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  74. package/dist/react-querybuilder_core.mjs +2198 -85
  75. package/dist/react-querybuilder_core.mjs.map +1 -1
  76. package/dist/react-querybuilder_core.production.d.mts +1426 -56
  77. package/dist/react-querybuilder_core.production.mjs +1 -1
  78. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  79. package/dist/styles/_layout.scss +5 -2
  80. package/dist/transformQuery.d.mts +1 -1
  81. package/dist/transformQuery.d.ts +1 -1
  82. package/dist/{utils-Dt0D_DMV.mjs → utils-4k-j5FBa.mjs} +20 -3
  83. package/dist/utils-4k-j5FBa.mjs.map +1 -0
  84. package/dist/{utils-DEwV7F6B.js → utils-C79dxwZb.js} +31 -2
  85. package/dist/utils-C79dxwZb.js.map +1 -0
  86. package/package.json +9 -8
  87. package/dist/utils-DEwV7F6B.js.map +0 -1
  88. package/dist/utils-Dt0D_DMV.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { E as RuleGroupTypeAny, I as SetRequired, N as RuleType, S as ValueProcessorOptions, _ as RuleGroupProcessor, a as DiagnosticsResult, b as ValueProcessorByRule, c as ExportOperatorMap, d as NLTranslationKey, f as NLTranslations, h as RQBJsonLogic, i as ConstituentWordOrder, l as FormatQueryOptions, m as ParameterizedSQL, o as ExportFormat, p as ParameterizedNamedSQL, s as ExportObjectFormats, u as GroupVariantCondition, v as RuleProcessor, x as ValueProcessorLegacy, y as SQLPreset } from "./index-BSwFvkeI.mjs";
1
+ import { E as RuleGroupTypeAny, I as SetRequired, N as RuleType, S as ValueProcessorOptions, _ as RuleGroupProcessor, a as DiagnosticsResult, b as ValueProcessorByRule, c as ExportOperatorMap, d as NLTranslationKey, f as NLTranslations, h as RQBJsonLogic, i as ConstituentWordOrder, l as FormatQueryOptions, m as ParameterizedSQL, o as ExportFormat, p as ParameterizedNamedSQL, s as ExportObjectFormats, u as GroupVariantCondition, v as RuleProcessor, x as ValueProcessorLegacy, y as SQLPreset } from "./index-CX9mehdL.mjs";
2
2
  import { Column, Operators, SQL, Table } from "drizzle-orm";
3
3
  import { WhereOptions } from "sequelize";
4
4
  import { eq } from "@tanstack/db";
@@ -777,6 +777,21 @@ type ProcessedMatchMode = {
777
777
  * 2. `value` is not a valid rule group.
778
778
  */
779
779
  declare const processMatchMode: (rule: RuleType) => null | false | ProcessedMatchMode;
780
+ /**
781
+ * Base alias assigned to the element binding of a subquery generated for a rule's
782
+ * {@link MatchMode `match` mode} (e.g. `unnest(field) as elem_alias`).
783
+ */
784
+ declare const subqueryElementAliasBase = "elem_alias";
785
+ /**
786
+ * Returns the element alias for a subquery at the given nesting depth. Depth 0 (the common,
787
+ * non-nested case) uses {@link subqueryElementAliasBase} unchanged; deeper levels are suffixed
788
+ * with the depth, so a subquery nested within a subquery cannot shadow its parent's binding.
789
+ *
790
+ * Deterministic by depth rather than randomized, so output remains stable and snapshot-friendly.
791
+ *
792
+ * @group Export
793
+ */
794
+ declare const getSubqueryElementAlias: (subqueryDepth?: number) => string;
780
795
  /**
781
796
  * "Replacer" method for JSON.stringify's second argument. Converts `bigint` values to
782
797
  * objects with a `$bigint` property having a value of a string representation of
@@ -843,5 +858,5 @@ declare const defaultValueProcessorMongoDBByRule: RuleProcessor;
843
858
  */
844
859
  declare const defaultValueProcessorSpELByRule: RuleProcessor;
845
860
  //#endregion
846
- 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, getLikeWildcards, getNLTranslataion, getQuoteFieldNamesWithArray, getQuotedFieldName, getSQLConcat, isValidValue, isValueProcessorLegacy, jsonLogicAdditionalOperators, mapSQLOperator, mongoDbFallback, mongoOperators, normalizeConstituentWordOrder, numerifyValues, prismaFallback, prismaOperators, processMatchMode, shouldRenderAsNumber, sparqlVar, sqlDialectPresets, stripParamPrefix, withParamPrefix, wrapLikeFragment };
861
+ 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, getLikeWildcards, getNLTranslataion, getQuoteFieldNamesWithArray, getQuotedFieldName, getSQLConcat, getSubqueryElementAlias, isValidValue, isValueProcessorLegacy, jsonLogicAdditionalOperators, mapSQLOperator, mongoDbFallback, mongoOperators, normalizeConstituentWordOrder, numerifyValues, prismaFallback, prismaOperators, processMatchMode, shouldRenderAsNumber, sparqlVar, sqlDialectPresets, stripParamPrefix, subqueryElementAliasBase, withParamPrefix, wrapLikeFragment };
847
862
  //# sourceMappingURL=formatQuery.d.mts.map
@@ -1,4 +1,4 @@
1
- import { E as RuleGroupTypeAny, I as SetRequired, N as RuleType, S as ValueProcessorOptions, _ as RuleGroupProcessor, a as DiagnosticsResult, b as ValueProcessorByRule, c as ExportOperatorMap, d as NLTranslationKey, f as NLTranslations, h as RQBJsonLogic, i as ConstituentWordOrder, l as FormatQueryOptions, m as ParameterizedSQL, o as ExportFormat, p as ParameterizedNamedSQL, s as ExportObjectFormats, u as GroupVariantCondition, v as RuleProcessor, x as ValueProcessorLegacy, y as SQLPreset } from "./index-BSwFvkeI.js";
1
+ import { E as RuleGroupTypeAny, I as SetRequired, N as RuleType, S as ValueProcessorOptions, _ as RuleGroupProcessor, a as DiagnosticsResult, b as ValueProcessorByRule, c as ExportOperatorMap, d as NLTranslationKey, f as NLTranslations, h as RQBJsonLogic, i as ConstituentWordOrder, l as FormatQueryOptions, m as ParameterizedSQL, o as ExportFormat, p as ParameterizedNamedSQL, s as ExportObjectFormats, u as GroupVariantCondition, v as RuleProcessor, x as ValueProcessorLegacy, y as SQLPreset } from "./index-CX9mehdL.js";
2
2
  import { Column, Operators, SQL, Table } from "drizzle-orm";
3
3
  import { WhereOptions } from "sequelize";
4
4
  import { eq } from "@tanstack/db";
@@ -777,6 +777,21 @@ type ProcessedMatchMode = {
777
777
  * 2. `value` is not a valid rule group.
778
778
  */
779
779
  declare const processMatchMode: (rule: RuleType) => null | false | ProcessedMatchMode;
780
+ /**
781
+ * Base alias assigned to the element binding of a subquery generated for a rule's
782
+ * {@link MatchMode `match` mode} (e.g. `unnest(field) as elem_alias`).
783
+ */
784
+ declare const subqueryElementAliasBase = "elem_alias";
785
+ /**
786
+ * Returns the element alias for a subquery at the given nesting depth. Depth 0 (the common,
787
+ * non-nested case) uses {@link subqueryElementAliasBase} unchanged; deeper levels are suffixed
788
+ * with the depth, so a subquery nested within a subquery cannot shadow its parent's binding.
789
+ *
790
+ * Deterministic by depth rather than randomized, so output remains stable and snapshot-friendly.
791
+ *
792
+ * @group Export
793
+ */
794
+ declare const getSubqueryElementAlias: (subqueryDepth?: number) => string;
780
795
  /**
781
796
  * "Replacer" method for JSON.stringify's second argument. Converts `bigint` values to
782
797
  * objects with a `$bigint` property having a value of a string representation of
@@ -843,5 +858,5 @@ declare const defaultValueProcessorMongoDBByRule: RuleProcessor;
843
858
  */
844
859
  declare const defaultValueProcessorSpELByRule: RuleProcessor;
845
860
  //#endregion
846
- 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, getLikeWildcards, getNLTranslataion, getQuoteFieldNamesWithArray, getQuotedFieldName, getSQLConcat, isValidValue, isValueProcessorLegacy, jsonLogicAdditionalOperators, mapSQLOperator, mongoDbFallback, mongoOperators, normalizeConstituentWordOrder, numerifyValues, prismaFallback, prismaOperators, processMatchMode, shouldRenderAsNumber, sparqlVar, sqlDialectPresets, stripParamPrefix, withParamPrefix, wrapLikeFragment };
861
+ 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, getLikeWildcards, getNLTranslataion, getQuoteFieldNamesWithArray, getQuotedFieldName, getSQLConcat, getSubqueryElementAlias, isValidValue, isValueProcessorLegacy, jsonLogicAdditionalOperators, mapSQLOperator, mongoDbFallback, mongoOperators, normalizeConstituentWordOrder, numerifyValues, prismaFallback, prismaOperators, processMatchMode, shouldRenderAsNumber, sparqlVar, sqlDialectPresets, stripParamPrefix, subqueryElementAliasBase, withParamPrefix, wrapLikeFragment };
847
862
  //# sourceMappingURL=formatQuery.d.ts.map
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils = require("./utils-DEwV7F6B.js");
2
+ const require_utils = require("./utils-C79dxwZb.js");
3
3
  const require_isRuleGroup = require("./isRuleGroup-0JNiQgLg.js");
4
4
  const require_transformQuery = require("./transformQuery.js");
5
5
  const require_convertQuery = require("./convertQuery-Cw76XFIn.js");
@@ -35,7 +35,7 @@ const isRuleOrGroupValid = (rg, validationResult, validator) => {
35
35
  const defaultRuleGroupProcessorCEL = (ruleGroup, options) => {
36
36
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
37
37
  const processRuleGroup = (rg, outermost) => {
38
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
38
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? fallbackExpression : "";
39
39
  const processedRules = [];
40
40
  let precedingCombinator = "";
41
41
  let firstRule = true;
@@ -99,11 +99,16 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
99
99
  if (matchEval === false) return "";
100
100
  else if (matchEval) {
101
101
  const { mode, threshold } = matchEval;
102
- const arrayElementAlias = "elem_alias";
103
- const nestedArrayFilter = defaultRuleGroupProcessorCEL(require_transformQuery.transformQuery(rule.value, { ruleProcessor: (r) => ({
102
+ const subqueryDepth = opts.subqueryDepth ?? 0;
103
+ const arrayElementAlias = require_utils.getSubqueryElementAlias(subqueryDepth);
104
+ const celQuery = require_transformQuery.transformQuery(rule.value, { ruleProcessor: (r) => ({
104
105
  ...r,
105
106
  field: `${arrayElementAlias}${r.field ? `.${r.field}` : ""}`
106
- }) }), opts);
107
+ }) });
108
+ const nestedArrayFilter = defaultRuleGroupProcessorCEL(celQuery, {
109
+ ...opts,
110
+ subqueryDepth: subqueryDepth + 1
111
+ });
107
112
  switch (mode) {
108
113
  case "all": return `${field}.all(${arrayElementAlias}, ${nestedArrayFilter})`;
109
114
  case "none":
@@ -177,7 +182,7 @@ const defaultRuleGroupProcessorMongoDBQuery = (ruleGroup, options, meta) => {
177
182
  const { context, fields, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
178
183
  const { inExpressionContext } = context ?? {};
179
184
  const processRuleGroup = (rg, outermost) => {
180
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? mongoDbFallback : false;
185
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? mongoDbFallback : false;
181
186
  const combinator = `$${require_isRuleGroup.lc(rg.combinator)}`;
182
187
  let hasChildRules = false;
183
188
  const expressions = rg.rules.map((rule) => {
@@ -355,7 +360,7 @@ const defaultRuleProcessorMongoDB = (rule, options) => {
355
360
  const defaultRuleGroupProcessorSpEL = (ruleGroup, options) => {
356
361
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
357
362
  const processRuleGroup = (rg, outermost) => {
358
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
363
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? fallbackExpression : "";
359
364
  const processedRules = [];
360
365
  let precedingCombinator = "";
361
366
  let firstRule = true;
@@ -596,7 +601,7 @@ const cypherCombinatorMap = {
596
601
  const defaultRuleGroupProcessorCypher = (ruleGroup, options) => {
597
602
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
598
603
  const processRuleGroup = (rg, outermost) => {
599
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
604
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? fallbackExpression : "";
600
605
  const processedRules = [];
601
606
  let precedingCombinator = "";
602
607
  let firstRule = true;
@@ -660,7 +665,7 @@ const defaultRuleGroupProcessorDrizzle = (ruleGroup, options, _meta) => (columns
660
665
  if (!columns || !drizzleOperators) return void 0;
661
666
  const { and, not, or } = drizzleOperators;
662
667
  const processRuleGroup = (rg, _outermost) => {
663
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return;
668
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return;
664
669
  const processedRules = rg.rules.map((rule) => {
665
670
  if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
666
671
  const [validationResult, fieldValidator] = validateRule(rule);
@@ -693,7 +698,7 @@ const defaultRuleGroupProcessorDrizzle = (ruleGroup, options, _meta) => (columns
693
698
  const defaultRuleGroupProcessorElasticSearch = (ruleGroup, options) => {
694
699
  const { fields, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
695
700
  const processRuleGroup = (rg) => {
696
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return false;
701
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return false;
697
702
  const processedRules = rg.rules.map((rule) => {
698
703
  if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
699
704
  const [validationResult, fieldValidator] = validateRule(rule);
@@ -728,7 +733,9 @@ const defaultRuleGroupProcessorGremlin = (ruleGroup, options) => {
728
733
  // v8 ignore next -- @preserve
729
734
  if (typeof rule === "string" || require_isRuleGroup.isRuleGroup(rule)) return void 0;
730
735
  const [validationResult, fieldValidator] = validateRule(rule);
731
- if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return;
736
+ if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) ||
737
+ /* v8 ignore next 2 -- @preserve */
738
+ rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return;
732
739
  const fieldData = require_utils.getOption(fields, rule.field);
733
740
  return ruleProcessor(rule, {
734
741
  ...options,
@@ -739,7 +746,7 @@ const defaultRuleGroupProcessorGremlin = (ruleGroup, options) => {
739
746
  };
740
747
  /** Recursively processes a nested group into `.and()`/`.or()`/`.not()` form. */
741
748
  const processNested = (rg) => {
742
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return "";
749
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return "";
743
750
  const predicates = [];
744
751
  for (const rule of rg.rules) {
745
752
  if (typeof rule === "string") continue;
@@ -757,7 +764,7 @@ const defaultRuleGroupProcessorGremlin = (ruleGroup, options) => {
757
764
  if (predicates.length === 1 && !rg.not) return predicates[0];
758
765
  return `.${prefix}(${predicates.map((p) => p.startsWith(".") ? `__${p}` : p).join(", ")})`;
759
766
  };
760
- if (!isRuleOrGroupValid(ruleGroup, validationMap[ruleGroup.id ?? ""])) return fallbackExpression;
767
+ if (!isRuleOrGroupValid(ruleGroup, validationMap[ruleGroup.id ?? /* v8 ignore start -- @preserve */ ""])) return fallbackExpression;
761
768
  const steps = [];
762
769
  for (const rule of ruleGroup.rules) {
763
770
  if (typeof rule === "string") continue;
@@ -782,7 +789,7 @@ const defaultRuleGroupProcessorGremlin = (ruleGroup, options) => {
782
789
  const defaultRuleGroupProcessorJSONata = (ruleGroup, options) => {
783
790
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
784
791
  const processRuleGroup = (rg, outermost) => {
785
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
792
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? fallbackExpression : "";
786
793
  const processedRules = [];
787
794
  let precedingCombinator = "";
788
795
  let firstRule = true;
@@ -838,7 +845,7 @@ const defaultRuleGroupProcessorJsonLogic = (ruleGroup, options) => {
838
845
  const { fields, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
839
846
  const query = require_convertQuery.convertFromIC(ruleGroup);
840
847
  const processRuleGroup = (rg, _outermost) => {
841
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return false;
848
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return false;
842
849
  const processedRules = rg.rules.map((rule) => {
843
850
  if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
844
851
  const [validationResult, fieldValidator] = validateRule(rule);
@@ -866,7 +873,7 @@ const defaultRuleGroupProcessorJsonLogic = (ruleGroup, options) => {
866
873
  const defaultRuleGroupProcessorLDAP = (ruleGroup, options) => {
867
874
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
868
875
  const processRuleGroup = (rg, outermost) => {
869
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
876
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? fallbackExpression : "";
870
877
  const rules = rg.rules.map((rule) => {
871
878
  if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
872
879
  const [validationResult, fieldValidator] = validateRule(rule);
@@ -899,7 +906,7 @@ const isBracketed = (str) => str.startsWith("{") && str.endsWith("}");
899
906
  const defaultRuleGroupProcessorMongoDB = (ruleGroup, options, meta) => {
900
907
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
901
908
  const processRuleGroup = (rg, outermost) => {
902
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
909
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? fallbackExpression : "";
903
910
  const combinator = `"$${require_isRuleGroup.lc(rg.combinator)}"`;
904
911
  let hasChildRules = false;
905
912
  const expressions = rg.rules.map((rule) => {
@@ -936,7 +943,7 @@ const defaultRuleGroupProcessorMongoDB = (ruleGroup, options, meta) => {
936
943
  const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
937
944
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, translations, validateRule, validationMap } = options;
938
945
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
939
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
946
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
940
947
  const rg2 = require_isRuleGroup.isRuleGroupTypeIC(rg) && rg.rules.some((r) => typeof r === "string" && require_isRuleGroup.lc(r) === "xor") ? require_convertQuery.convertFromIC(rg) : rg;
941
948
  const processedRules = [];
942
949
  let precedingCombinator = "";
@@ -947,7 +954,8 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
947
954
  continue;
948
955
  }
949
956
  if (require_isRuleGroup.isRuleGroup(rule)) {
950
- const processedGroup = processRuleGroup(rule, rg2.rules.length === 1 && !(rg2.not || /^xor$/i.test(rg2.combinator ?? "")));
957
+ const processedGroup = processRuleGroup(rule, rg2.rules.length === 1 && !(rg2.not || /^xor$/i.test(rg2.combinator ??
958
+ /* v8 ignore start -- @preserve */ "")));
951
959
  // v8 ignore else
952
960
  if (processedGroup) {
953
961
  if (!firstRule && precedingCombinator) {
@@ -1034,7 +1042,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
1034
1042
  return sql;
1035
1043
  };
1036
1044
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
1037
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
1045
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
1038
1046
  const processedRules = [];
1039
1047
  let precedingCombinator = "";
1040
1048
  let firstRule = true;
@@ -1094,7 +1102,7 @@ const prismaFallback = {};
1094
1102
  const defaultRuleGroupProcessorPrisma = (ruleGroup, options) => {
1095
1103
  const { fields, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
1096
1104
  const processRuleGroup = (rg, outermost) => {
1097
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? prismaFallback : void 0;
1105
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? prismaFallback : void 0;
1098
1106
  const combinator = rg.combinator.toUpperCase();
1099
1107
  let hasChildRules = false;
1100
1108
  const expressions = rg.rules.map((rule) => {
@@ -1133,7 +1141,7 @@ const defaultRuleGroupProcessorSequelize = (ruleGroup, options) => {
1133
1141
  const { sequelizeOperators: Op } = context;
1134
1142
  if (!Op) return void 0;
1135
1143
  const processRuleGroup = (rg, _outermost) => {
1136
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return;
1144
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return;
1137
1145
  const combinator = rg.combinator.toUpperCase();
1138
1146
  let hasChildRules = false;
1139
1147
  const expressions = rg.rules.map((rule) => {
@@ -1172,7 +1180,7 @@ const defaultRuleGroupProcessorSequelize = (ruleGroup, options) => {
1172
1180
  const defaultRuleGroupProcessorSPARQL = (ruleGroup, options) => {
1173
1181
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
1174
1182
  const processRuleGroup = (rg, outermost) => {
1175
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
1183
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermost ? fallbackExpression : "";
1176
1184
  const processedRules = [];
1177
1185
  let precedingCombinator = "";
1178
1186
  let firstRule = true;
@@ -1227,7 +1235,7 @@ const defaultRuleGroupProcessorSPARQL = (ruleGroup, options) => {
1227
1235
  const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
1228
1236
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
1229
1237
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
1230
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
1238
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
1231
1239
  const processedRules = [];
1232
1240
  let precedingCombinator = "";
1233
1241
  let firstRule = true;
@@ -1295,7 +1303,7 @@ const defaultRuleGroupProcessorTanStackDB = (ruleGroup, options) => (refs) => {
1295
1303
  /* v8 ignore next -- @preserve */
1296
1304
  if (refKeys.length === 0) return fallback;
1297
1305
  const processRuleGroup = (rg) => {
1298
- if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return;
1306
+ if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? /* v8 ignore start -- @preserve */ ""])) return;
1299
1307
  const processedRules = rg.rules.map((rule) => {
1300
1308
  if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
1301
1309
  const [validationResult, fieldValidator] = validateRule(rule);
@@ -1698,7 +1706,7 @@ const defaultRuleProcessorCypher = (rule, opts = {}) => {
1698
1706
  * @group Export
1699
1707
  */
1700
1708
  const defaultRuleProcessorDrizzle = (rule, _options) => {
1701
- const opts = _options ?? ( /* v8 ignore start -- @preserve */ {});
1709
+ const opts = _options ?? /* v8 ignore start -- @preserve */ {};
1702
1710
  // v8 ignore next
1703
1711
  const { parseNumbers, preserveValueOrder, context = {} } = opts;
1704
1712
  const { columns, drizzleOperators, useRawFields } = context;
@@ -1719,16 +1727,19 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
1719
1727
  else if (matchEval) {
1720
1728
  if (opts.preset !== "postgresql") return void 0;
1721
1729
  const { mode, threshold } = matchEval;
1722
- const arrayElementAlias = "elem_alias";
1723
- const nestedArrayFilter = defaultRuleGroupProcessorDrizzle(require_transformQuery.transformQuery(rule.value, { ruleProcessor: (r) => ({
1730
+ const subqueryDepth = opts.subqueryDepth ?? 0;
1731
+ const arrayElementAlias = require_utils.getSubqueryElementAlias(subqueryDepth);
1732
+ const sqlQuery = require_transformQuery.transformQuery(rule.value, { ruleProcessor: (r) => ({
1724
1733
  ...r,
1725
1734
  field: arrayElementAlias
1726
- }) }), {
1735
+ }) });
1736
+ const nestedArrayFilter = defaultRuleGroupProcessorDrizzle(sqlQuery, {
1727
1737
  ...opts,
1728
1738
  context: {
1729
1739
  ...opts.context,
1730
1740
  useRawFields: true
1731
- }
1741
+ },
1742
+ subqueryDepth: subqueryDepth + 1
1732
1743
  });
1733
1744
  switch (mode) {
1734
1745
  case "all": return sql`(select count(*) from unnest(${column}) as ${sql.raw(arrayElementAlias)} where ${nestedArrayFilter({}, drizzleOperators)}) = array_length(${column}, 1)`;
@@ -2261,7 +2272,7 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
2261
2272
  const { escapeQuotes, fields, parseNumbers, quoteFieldNamesWith, quoteValuesWith, fieldIdentifierSeparator, translations } = opts;
2262
2273
  const valueIsField = rule.valueSource === "field";
2263
2274
  const operatorLowerCase = require_isRuleGroup.lc(rule.operator);
2264
- const quoteChar = quoteValuesWith || "'";
2275
+ const quoteChar = quoteValuesWith || /* v8 ignore start -- @preserve */ "'";
2265
2276
  const quoteValue = (v) => `${quoteChar}${v}${quoteChar}`;
2266
2277
  const escapeValue = (v) => escapeStringValueQuotes(v, quoteChar, escapeQuotes);
2267
2278
  const wrapAndEscape = (v) => quoteValue(escapeValue(v));
@@ -2269,7 +2280,7 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
2269
2280
  quoteFieldNamesWith,
2270
2281
  fieldIdentifierSeparator
2271
2282
  });
2272
- const t = translations ?? ( /* v8 ignore start -- @preserve */ {});
2283
+ const t = translations ?? /* v8 ignore start -- @preserve */ {};
2273
2284
  const orTL = t.or ?? "or";
2274
2285
  const trueTL = t.true ?? "true";
2275
2286
  const falseTL = t.false ?? "false";
@@ -2281,7 +2292,8 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
2281
2292
  case "between":
2282
2293
  case "notbetween": {
2283
2294
  if (!valueIsField) return defaultValueProcessorByRule(rule, opts);
2284
- const valueAsArray = require_utils.toArray(rule.value, { retainEmptyStrings: true }).slice(0, 2).map((v) => wrapFieldName(require_utils.getOption(fields ?? [], v)?.label ?? v));
2295
+ const valueAsArray = require_utils.toArray(rule.value, { retainEmptyStrings: true }).slice(0, 2).map((v) => wrapFieldName(require_utils.getOption(fields ??
2296
+ /* v8 ignore start -- @preserve */ [], v)?.label ?? v));
2285
2297
  if (valueAsArray.length < 2 || !require_utils.isValidValue(valueAsArray[0]) || !require_utils.isValidValue(valueAsArray[1])) return "";
2286
2298
  return defaultValueProcessorByRule({
2287
2299
  ...rule,
@@ -2292,14 +2304,16 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
2292
2304
  case "notin": {
2293
2305
  const valueAsArray = require_utils.toArray(rule.value);
2294
2306
  if (valueAsArray.length === 0) return "";
2295
- const valStringArray = valueAsArray.map((v) => valueIsField ? wrapFieldName(require_utils.getOption(fields ?? [], v)?.label ?? v) : require_utils.shouldRenderAsNumber(v, parseNumbers) ? `${require_utils.trimIfString(v)}` : `${wrapAndEscape(v)}`);
2307
+ const valStringArray = valueAsArray.map((v) => valueIsField ? wrapFieldName(require_utils.getOption(fields ??
2308
+ /* v8 ignore start -- @preserve */ [], v)?.label ?? v) : require_utils.shouldRenderAsNumber(v, parseNumbers) ? `${require_utils.trimIfString(v)}` : `${wrapAndEscape(v)}`);
2296
2309
  if (valStringArray.length === 1) return valStringArray[0];
2297
2310
  const oxfordComma = useOxfordComma && valStringArray.length > 2 ? "," : "";
2298
2311
  return `(${`${valStringArray.slice(0, -1).join(listSep)}${oxfordComma} ${orTL} ${valStringArray.at(-1)}`})`;
2299
2312
  }
2300
2313
  }
2301
2314
  if (typeof rule.value === "boolean") return rule.value ? trueTL : falseTL;
2302
- return valueIsField ? wrapFieldName(require_utils.getOption(fields ?? [], rule.value)?.label ?? rule.value) : require_utils.shouldRenderAsNumber(rule.value, parseNumbers) ? `${require_utils.trimIfString(rule.value)}` : `${wrapAndEscape(rule.value)}`;
2315
+ return valueIsField ? wrapFieldName(require_utils.getOption(fields ??
2316
+ /* v8 ignore start -- @preserve */ [], rule.value)?.label ?? rule.value) : require_utils.shouldRenderAsNumber(rule.value, parseNumbers) ? `${require_utils.trimIfString(rule.value)}` : `${wrapAndEscape(rule.value)}`;
2303
2317
  };
2304
2318
  //#endregion
2305
2319
  //#region src/utils/formatQuery/defaultRuleProcessorNL.ts
@@ -2351,7 +2365,7 @@ const defaultOperatorProcessorNL = (rule, opts = {}) => {
2351
2365
  name: field,
2352
2366
  value: field,
2353
2367
  label: field
2354
- } }) ?? []), normalizedOperator) ?? {
2368
+ } }) ?? /* v8 ignore start -- @preserve */ []), normalizedOperator) ?? {
2355
2369
  name: normalizedOperator,
2356
2370
  value: normalizedOperator,
2357
2371
  label: normalizedOperator
@@ -2367,7 +2381,7 @@ const defaultOperatorProcessorNL = (rule, opts = {}) => {
2367
2381
  const defaultRuleProcessorNL = (rule, opts) => {
2368
2382
  const { field, operator } = rule;
2369
2383
  // v8 ignore next
2370
- const { fieldData, quoteFieldNamesWith = ["", ""], fieldIdentifierSeparator = "", quoteValuesWith = `'`, operatorProcessor = defaultOperatorProcessorNL, valueProcessor = defaultValueProcessorNL, concatOperator = "||", wordOrder = "SVO" } = opts ?? ( /* v8 ignore start -- @preserve */ {});
2384
+ const { fieldData, quoteFieldNamesWith = ["", ""], fieldIdentifierSeparator = "", quoteValuesWith = `'`, operatorProcessor = defaultOperatorProcessorNL, valueProcessor = defaultValueProcessorNL, concatOperator = "||", wordOrder = "SVO" } = opts ?? /* v8 ignore start -- @preserve */ {};
2371
2385
  const processedField = require_utils.getQuotedFieldName(fieldData?.label ?? field, {
2372
2386
  quoteFieldNamesWith,
2373
2387
  fieldIdentifierSeparator
@@ -2442,11 +2456,15 @@ const defaultRuleProcessorSQL = (rule, opts = {}) => {
2442
2456
  else if (matchEval) {
2443
2457
  if (opts?.preset !== "postgresql") return "";
2444
2458
  const { mode, threshold } = matchEval;
2445
- const arrayElementAlias = "elem_alias";
2459
+ const subqueryDepth = opts.subqueryDepth ?? 0;
2460
+ const arrayElementAlias = require_utils.getSubqueryElementAlias(subqueryDepth);
2446
2461
  const nestedArrayFilter = defaultRuleGroupProcessorSQL(require_transformQuery.transformQuery(rule.value, { ruleProcessor: (r) => ({
2447
2462
  ...r,
2448
2463
  field: arrayElementAlias
2449
- }) }), opts);
2464
+ }) }), {
2465
+ ...opts,
2466
+ subqueryDepth: subqueryDepth + 1
2467
+ });
2450
2468
  switch (mode) {
2451
2469
  case "all": return `(select count(*) from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter}) = array_length(${ruleField}, 1)`;
2452
2470
  case "none": return `not exists (select 1 from unnest(${ruleField}) as ${wrapFieldName(arrayElementAlias)} where ${nestedArrayFilter})`;
@@ -2504,13 +2522,15 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
2504
2522
  else if (matchEval) {
2505
2523
  if (opts?.preset !== "postgresql") return finalize("");
2506
2524
  const { mode, threshold } = matchEval;
2507
- const arrayElementAlias = "elem_alias";
2525
+ const subqueryDepth = opts.subqueryDepth ?? 0;
2526
+ const arrayElementAlias = require_utils.getSubqueryElementAlias(subqueryDepth);
2508
2527
  const { sql: nestedSQL, params: nestedParams } = defaultRuleGroupProcessorParameterized(require_transformQuery.transformQuery(rule.value, { ruleProcessor: (r) => ({
2509
2528
  ...r,
2510
2529
  field: arrayElementAlias
2511
2530
  }) }), {
2512
2531
  ...opts,
2513
- fields: []
2532
+ fields: [],
2533
+ subqueryDepth: subqueryDepth + 1
2514
2534
  });
2515
2535
  if (Array.isArray(nestedParams)) params.push(...nestedParams);
2516
2536
  else Object.assign(paramsNamed, nestedParams);
@@ -2582,7 +2602,7 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
2582
2602
  }
2583
2603
  let paramValue = rule.value;
2584
2604
  if (typeof rule.value === "string") if (require_utils.shouldRenderAsNumber(rule.value, parseNumbers)) paramValue = require_utils.parseNumber(rule.value, { parseNumbers });
2585
- else paramValue = /^'.*'$/g.test(value) ? value.replaceAll(/(^'|'$)/g, "") : /* v8 ignore next -- @preserve */ value;
2605
+ else paramValue = /^'.*'$/g.test(value) ? value.replaceAll(/(^'|'$)/g, "") : /* v8 ignore next -- @preserve */ value;
2586
2606
  let paramName = "";
2587
2607
  if (parameterized) params.push(paramValue);
2588
2608
  else {
@@ -2799,7 +2819,7 @@ const defaultRuleProcessorSPARQL = (rule, opts = {}) => {
2799
2819
  * @group Export
2800
2820
  */
2801
2821
  const defaultRuleProcessorTanStackDB = (rule, _options) => {
2802
- const { parseNumbers, preserveValueOrder, context = {} } = _options ?? ( /* v8 ignore start -- @preserve */ {});
2822
+ const { parseNumbers, preserveValueOrder, context = {} } = _options ?? /* v8 ignore start -- @preserve */ {};
2803
2823
  const ops = context.tanStackDbOperators;
2804
2824
  const refs = context._tanstackDbRefs;
2805
2825
  const primaryRef = context._tanstackDbPrimaryRef;
@@ -3035,7 +3055,8 @@ function formatQuery(ruleGroup, optionParam = {}) {
3035
3055
  const ruleProcessor = (typeof ruleProcessor_option === "function" ? ruleProcessor_option : null) ?? (valueProcessorCanActAsRuleProcessor.has(format) && typeof ruleProcessor_option !== "function" && valueProcessor_option ? valueProcessor : null) ?? defaultRuleProcessors[format] ?? defaultRuleProcessorSQL;
3036
3056
  const quoteFieldNamesWith = require_utils.getQuoteFieldNamesWithArray(quoteFieldNamesWith_option);
3037
3057
  const fields = require_utils.toFullOptionList(optObj.fields);
3038
- const getOperators = (f, m) => require_utils.toFullOptionList(getOperators_option(f, m) ?? []);
3058
+ const getOperators = (f, m) => require_utils.toFullOptionList(getOperators_option(f, m) ??
3059
+ /* v8 ignore start -- @preserve */ []);
3039
3060
  const fallbackExpression = fallbackExpression_option ?? defaultFallbackExpressions[format] ?? defaultFallbackExpressions.sql;
3040
3061
  let validationMap = {};
3041
3062
  // v8 ignore else
@@ -3058,7 +3079,7 @@ function formatQuery(ruleGroup, optionParam = {}) {
3058
3079
  const uniqueFields = require_utils.toFlatOptionArray(fields);
3059
3080
  for (const f of uniqueFields)
3060
3081
  // v8 ignore else
3061
- if (typeof f.validator === "function") validatorMap[f.value ?? f.name] = f.validator;
3082
+ if (typeof f.validator === "function") validatorMap[f.value ?? /* v8 ignore start -- @preserve */ f.name] = f.validator;
3062
3083
  const validateRule = (rule) => {
3063
3084
  let validationResult;
3064
3085
  let fieldValidator;
@@ -3238,6 +3259,7 @@ exports.getNLTranslataion = require_utils.getNLTranslataion;
3238
3259
  exports.getQuoteFieldNamesWithArray = require_utils.getQuoteFieldNamesWithArray;
3239
3260
  exports.getQuotedFieldName = require_utils.getQuotedFieldName;
3240
3261
  exports.getSQLConcat = require_utils.getSQLConcat;
3262
+ exports.getSubqueryElementAlias = require_utils.getSubqueryElementAlias;
3241
3263
  exports.isValidValue = require_utils.isValidValue;
3242
3264
  exports.isValueProcessorLegacy = require_utils.isValueProcessorLegacy;
3243
3265
  exports.jsonLogicAdditionalOperators = require_utils.jsonLogicAdditionalOperators;
@@ -3253,6 +3275,7 @@ exports.shouldRenderAsNumber = require_utils.shouldRenderAsNumber;
3253
3275
  exports.sparqlVar = sparqlVar;
3254
3276
  exports.sqlDialectPresets = sqlDialectPresets;
3255
3277
  exports.stripParamPrefix = require_utils.stripParamPrefix;
3278
+ exports.subqueryElementAliasBase = require_utils.subqueryElementAliasBase;
3256
3279
  exports.withParamPrefix = require_utils.withParamPrefix;
3257
3280
  exports.wrapLikeFragment = require_utils.wrapLikeFragment;
3258
3281