@react-querybuilder/core 8.14.1 → 8.14.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 (56) hide show
  1. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +6 -1
  2. package/dist/cjs/react-querybuilder_core.cjs.development.js +18 -7
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  4. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +6 -1
  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-B5Qm_6ut.mjs → convertQuery-CeJSNn37.mjs} +2 -2
  8. package/dist/{convertQuery-B5Qm_6ut.mjs.map → convertQuery-CeJSNn37.mjs.map} +1 -1
  9. package/dist/{convertQuery-DfZehtnd.js → convertQuery-J8LpTG-7.js} +8 -8
  10. package/dist/{convertQuery-DfZehtnd.js.map → convertQuery-J8LpTG-7.js.map} +1 -1
  11. package/dist/formatQuery.js +60 -60
  12. package/dist/formatQuery.mjs +3 -3
  13. package/dist/{isRuleGroup-BCwaLzDj.js → objectUtils-ButT0Mng.js} +26 -1
  14. package/dist/objectUtils-ButT0Mng.js.map +1 -0
  15. package/dist/{isRuleGroup-LzP0HCKh.mjs → objectUtils-C0WB-8ex.mjs} +15 -2
  16. package/dist/objectUtils-C0WB-8ex.mjs.map +1 -0
  17. package/dist/parseCEL.js +8 -8
  18. package/dist/parseCEL.mjs +3 -3
  19. package/dist/parseJSONata.js +6 -6
  20. package/dist/parseJSONata.mjs +2 -2
  21. package/dist/parseJsonLogic.js +34 -34
  22. package/dist/parseJsonLogic.js.map +1 -1
  23. package/dist/parseJsonLogic.mjs +4 -4
  24. package/dist/parseMongoDB.js +23 -23
  25. package/dist/parseMongoDB.js.map +1 -1
  26. package/dist/parseMongoDB.mjs +4 -4
  27. package/dist/parseSQL.js +7 -7
  28. package/dist/parseSQL.mjs +3 -3
  29. package/dist/parseSpEL.js +5 -5
  30. package/dist/parseSpEL.mjs +3 -3
  31. package/dist/{prepareQueryObjects-tMukQHT9.mjs → prepareQueryObjects-BfMlS4ql.mjs} +3 -3
  32. package/dist/{prepareQueryObjects-tMukQHT9.mjs.map → prepareQueryObjects-BfMlS4ql.mjs.map} +1 -1
  33. package/dist/{prepareQueryObjects-Dc8rqsYM.js → prepareQueryObjects-DO3qXriW.js} +5 -5
  34. package/dist/{prepareQueryObjects-Dc8rqsYM.js.map → prepareQueryObjects-DO3qXriW.js.map} +1 -1
  35. package/dist/react-querybuilder_core.d.mts +6 -1
  36. package/dist/react-querybuilder_core.legacy-esm.d.ts +6 -1
  37. package/dist/react-querybuilder_core.legacy-esm.js +15 -5
  38. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  39. package/dist/react-querybuilder_core.mjs +18 -8
  40. package/dist/react-querybuilder_core.mjs.map +1 -1
  41. package/dist/react-querybuilder_core.production.d.mts +6 -1
  42. package/dist/react-querybuilder_core.production.mjs +1 -1
  43. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  44. package/dist/transformQuery.js +5 -4
  45. package/dist/transformQuery.js.map +1 -1
  46. package/dist/transformQuery.mjs +3 -2
  47. package/dist/transformQuery.mjs.map +1 -1
  48. package/dist/{utils-DQoYnxpa.mjs → utils-BlMGIhvx.mjs} +3 -11
  49. package/dist/utils-BlMGIhvx.mjs.map +1 -0
  50. package/dist/{utils-EsYRkPtf.js → utils-CZRhzje-.js} +12 -26
  51. package/dist/utils-CZRhzje-.js.map +1 -0
  52. package/package.json +2 -2
  53. package/dist/isRuleGroup-BCwaLzDj.js.map +0 -1
  54. package/dist/isRuleGroup-LzP0HCKh.mjs.map +0 -1
  55. package/dist/utils-DQoYnxpa.mjs.map +0 -1
  56. package/dist/utils-EsYRkPtf.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { a as lc, n as isRuleGroupType, r as isRuleGroupTypeIC, t as isRuleGroup } from "./isRuleGroup-LzP0HCKh.mjs";
1
+ import { a as isRuleGroupTypeIC, i as isRuleGroupType, r as isRuleGroup, s as lc } from "./objectUtils-C0WB-8ex.mjs";
2
2
  //#region src/utils/convertQuery.ts
3
3
  const combinatorLevels = [
4
4
  "or",
@@ -80,4 +80,4 @@ const convertToIC = (rg) => {
80
80
  //#endregion
81
81
  export { convertToIC as n, convertFromIC as t };
82
82
 
83
- //# sourceMappingURL=convertQuery-B5Qm_6ut.mjs.map
83
+ //# sourceMappingURL=convertQuery-CeJSNn37.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertQuery-B5Qm_6ut.mjs","names":[],"sources":["../src/utils/convertQuery.ts"],"sourcesContent":["import type {\n RuleGroupArray,\n RuleGroupICArray,\n RuleGroupType,\n RuleGroupTypeAny,\n RuleGroupTypeIC,\n RuleType,\n} from '../types';\nimport { isRuleGroup, isRuleGroupType, isRuleGroupTypeIC } from './isRuleGroup';\nimport { lc } from './misc';\n\nconst combinatorLevels = ['or', 'xor', 'and'] as const;\n\nconst isSameString = (a: unknown, b: string) => lc(a) === b;\n\nconst generateRuleGroupICWithConsistentCombinators = (\n rg: RuleGroupTypeIC,\n baseCombinatorLevel: number = 0\n): RuleGroupTypeIC => {\n const baseCombinator = combinatorLevels[baseCombinatorLevel];\n\n // oxlint-disable-next-line typescript/no-explicit-any\n if (!rg.rules.includes(baseCombinator as any)) {\n // No instances of this combinator, so group based on the next\n // combinator level if at least two levels remain\n return baseCombinatorLevel < combinatorLevels.length - 2\n ? generateRuleGroupICWithConsistentCombinators(rg, baseCombinatorLevel + 1)\n : rg;\n }\n\n const newRules = [...rg.rules] as RuleGroupICArray;\n let cursor = 0;\n\n // Group all chains of combinators in the rule array that are not the base combinator\n while (cursor < newRules.length - 2) {\n if (isSameString(newRules[cursor + 1], baseCombinator)) {\n cursor += 2;\n continue;\n }\n\n let nextBaseCombinatorIndex = -1;\n for (let i = cursor + 2; i < newRules.length; i++) {\n if (typeof newRules[i] === 'string' && lc(newRules[i]) === baseCombinator) {\n nextBaseCombinatorIndex = i;\n break;\n }\n }\n\n if (nextBaseCombinatorIndex === -1) {\n // No more instances of this combinator, so group all remaining rules and exit the loop\n newRules.splice(\n cursor,\n newRules.length,\n generateRuleGroupICWithConsistentCombinators(\n // oxlint-disable-next-line typescript/no-explicit-any\n { rules: newRules.slice(cursor) as any },\n baseCombinatorLevel + 1\n )\n );\n break;\n } else {\n // Group all rules between the current cursor and the next instance of the base combinator\n newRules.splice(\n cursor,\n nextBaseCombinatorIndex - cursor,\n generateRuleGroupICWithConsistentCombinators(\n // oxlint-disable-next-line typescript/no-explicit-any\n { rules: newRules.slice(cursor, nextBaseCombinatorIndex) as any },\n baseCombinatorLevel + 1\n )\n );\n }\n }\n\n return { ...rg, rules: newRules };\n};\n\n/**\n * Converts a {@link RuleGroupTypeIC} to {@link RuleGroupType}.\n *\n * This function is idempotent: {@link RuleGroupType} queries will be\n * returned as-is.\n *\n * @group Query Tools\n */\nexport const convertFromIC = <RG extends RuleGroupType = RuleGroupType>(\n rg: RuleGroupTypeAny\n): RG => {\n if (isRuleGroupType(rg)) {\n return rg as RG;\n }\n const processedRG = generateRuleGroupICWithConsistentCombinators(rg);\n const rules: RuleGroupArray = [];\n let combinator = 'and';\n for (const [idx, r] of processedRG.rules.entries()) {\n if (typeof r === 'string') {\n if (idx === 1) combinator = r;\n } else {\n rules.push(isRuleGroup(r) ? convertFromIC(r) : r);\n }\n }\n return { ...processedRG, combinator, rules } as RG;\n};\n\n/**\n * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}.\n *\n * This function is idempotent: {@link RuleGroupTypeIC} queries will be\n * returned as-is.\n *\n * @group Query Tools\n */\nexport const convertToIC = <RGIC extends RuleGroupTypeIC = RuleGroupTypeIC>(\n rg: RuleGroupTypeAny\n): RGIC => {\n if (isRuleGroupTypeIC(rg)) {\n return rg as RGIC;\n }\n const { combinator, ...queryWithoutCombinator } = rg;\n const rules: (RuleGroupTypeIC | RuleType | string)[] = [];\n const { length } = rg.rules;\n for (let idx = 0; idx < length; idx++) {\n const r = rg.rules[idx];\n if (isRuleGroup(r)) {\n rules.push(convertToIC(r));\n } else {\n rules.push(r);\n }\n if (combinator && idx < length - 1) {\n rules.push(combinator);\n }\n }\n return { ...queryWithoutCombinator, rules } as RGIC;\n};\n\n/**\n * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}. For a more explicit\n * operation, use {@link convertToIC}.\n *\n * @group Query Tools\n */\nfunction convertQuery(query: RuleGroupType): RuleGroupTypeIC;\n/**\n * Converts a {@link RuleGroupTypeIC} to {@link RuleGroupType}. For a more explicit\n * operation, use {@link convertFromIC}.\n *\n * @group Query Tools\n */\nfunction convertQuery(query: RuleGroupTypeIC): RuleGroupType;\nfunction convertQuery(query: RuleGroupType | RuleGroupTypeIC): RuleGroupType | RuleGroupTypeIC {\n return isRuleGroupTypeIC(query) ? convertFromIC(query) : convertToIC(query);\n}\n\nexport { convertQuery };\n"],"mappings":";;AAWA,MAAM,mBAAmB;CAAC;CAAM;CAAO;CAAM;AAE7C,MAAM,gBAAgB,GAAY,MAAc,GAAG,EAAE,KAAK;AAE1D,MAAM,gDACJ,IACA,sBAA8B,MACV;CACpB,MAAM,iBAAiB,iBAAiB;AAGxC,KAAI,CAAC,GAAG,MAAM,SAAS,eAAsB,CAG3C,QAAO,sBAAsB,iBAAiB,SAAS,IACnD,6CAA6C,IAAI,sBAAsB,EAAE,GACzE;CAGN,MAAM,WAAW,CAAC,GAAG,GAAG,MAAM;CAC9B,IAAI,SAAS;AAGb,QAAO,SAAS,SAAS,SAAS,GAAG;AACnC,MAAI,aAAa,SAAS,SAAS,IAAI,eAAe,EAAE;AACtD,aAAU;AACV;;EAGF,IAAI,0BAA0B;AAC9B,OAAK,IAAI,IAAI,SAAS,GAAG,IAAI,SAAS,QAAQ,IAC5C,KAAI,OAAO,SAAS,OAAO,YAAY,GAAG,SAAS,GAAG,KAAK,gBAAgB;AACzE,6BAA0B;AAC1B;;AAIJ,MAAI,4BAA4B,IAAI;AAElC,YAAS,OACP,QACA,SAAS,QACT,6CAEE,EAAE,OAAO,SAAS,MAAM,OAAO,EAAS,EACxC,sBAAsB,EACvB,CACF;AACD;QAGA,UAAS,OACP,QACA,0BAA0B,QAC1B,6CAEE,EAAE,OAAO,SAAS,MAAM,QAAQ,wBAAwB,EAAS,EACjE,sBAAsB,EACvB,CACF;;AAIL,QAAO;EAAE,GAAG;EAAI,OAAO;EAAU;;;;;;;;;;AAWnC,MAAa,iBACX,OACO;AACP,KAAI,gBAAgB,GAAG,CACrB,QAAO;CAET,MAAM,cAAc,6CAA6C,GAAG;CACpE,MAAM,QAAwB,EAAE;CAChC,IAAI,aAAa;AACjB,MAAK,MAAM,CAAC,KAAK,MAAM,YAAY,MAAM,SAAS,CAChD,KAAI,OAAO,MAAM;MACX,QAAQ,EAAG,cAAa;OAE5B,OAAM,KAAK,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE;AAGrD,QAAO;EAAE,GAAG;EAAa;EAAY;EAAO;;;;;;;;;;AAW9C,MAAa,eACX,OACS;AACT,KAAI,kBAAkB,GAAG,CACvB,QAAO;CAET,MAAM,EAAE,YAAY,GAAG,2BAA2B;CAClD,MAAM,QAAiD,EAAE;CACzD,MAAM,EAAE,WAAW,GAAG;AACtB,MAAK,IAAI,MAAM,GAAG,MAAM,QAAQ,OAAO;EACrC,MAAM,IAAI,GAAG,MAAM;AACnB,MAAI,YAAY,EAAE,CAChB,OAAM,KAAK,YAAY,EAAE,CAAC;MAE1B,OAAM,KAAK,EAAE;AAEf,MAAI,cAAc,MAAM,SAAS,EAC/B,OAAM,KAAK,WAAW;;AAG1B,QAAO;EAAE,GAAG;EAAwB;EAAO"}
1
+ {"version":3,"file":"convertQuery-CeJSNn37.mjs","names":[],"sources":["../src/utils/convertQuery.ts"],"sourcesContent":["import type {\n RuleGroupArray,\n RuleGroupICArray,\n RuleGroupType,\n RuleGroupTypeAny,\n RuleGroupTypeIC,\n RuleType,\n} from '../types';\nimport { isRuleGroup, isRuleGroupType, isRuleGroupTypeIC } from './isRuleGroup';\nimport { lc } from './misc';\n\nconst combinatorLevels = ['or', 'xor', 'and'] as const;\n\nconst isSameString = (a: unknown, b: string) => lc(a) === b;\n\nconst generateRuleGroupICWithConsistentCombinators = (\n rg: RuleGroupTypeIC,\n baseCombinatorLevel: number = 0\n): RuleGroupTypeIC => {\n const baseCombinator = combinatorLevels[baseCombinatorLevel];\n\n // oxlint-disable-next-line typescript/no-explicit-any\n if (!rg.rules.includes(baseCombinator as any)) {\n // No instances of this combinator, so group based on the next\n // combinator level if at least two levels remain\n return baseCombinatorLevel < combinatorLevels.length - 2\n ? generateRuleGroupICWithConsistentCombinators(rg, baseCombinatorLevel + 1)\n : rg;\n }\n\n const newRules = [...rg.rules] as RuleGroupICArray;\n let cursor = 0;\n\n // Group all chains of combinators in the rule array that are not the base combinator\n while (cursor < newRules.length - 2) {\n if (isSameString(newRules[cursor + 1], baseCombinator)) {\n cursor += 2;\n continue;\n }\n\n let nextBaseCombinatorIndex = -1;\n for (let i = cursor + 2; i < newRules.length; i++) {\n if (typeof newRules[i] === 'string' && lc(newRules[i]) === baseCombinator) {\n nextBaseCombinatorIndex = i;\n break;\n }\n }\n\n if (nextBaseCombinatorIndex === -1) {\n // No more instances of this combinator, so group all remaining rules and exit the loop\n newRules.splice(\n cursor,\n newRules.length,\n generateRuleGroupICWithConsistentCombinators(\n // oxlint-disable-next-line typescript/no-explicit-any\n { rules: newRules.slice(cursor) as any },\n baseCombinatorLevel + 1\n )\n );\n break;\n } else {\n // Group all rules between the current cursor and the next instance of the base combinator\n newRules.splice(\n cursor,\n nextBaseCombinatorIndex - cursor,\n generateRuleGroupICWithConsistentCombinators(\n // oxlint-disable-next-line typescript/no-explicit-any\n { rules: newRules.slice(cursor, nextBaseCombinatorIndex) as any },\n baseCombinatorLevel + 1\n )\n );\n }\n }\n\n return { ...rg, rules: newRules };\n};\n\n/**\n * Converts a {@link RuleGroupTypeIC} to {@link RuleGroupType}.\n *\n * This function is idempotent: {@link RuleGroupType} queries will be\n * returned as-is.\n *\n * @group Query Tools\n */\nexport const convertFromIC = <RG extends RuleGroupType = RuleGroupType>(\n rg: RuleGroupTypeAny\n): RG => {\n if (isRuleGroupType(rg)) {\n return rg as RG;\n }\n const processedRG = generateRuleGroupICWithConsistentCombinators(rg);\n const rules: RuleGroupArray = [];\n let combinator = 'and';\n for (const [idx, r] of processedRG.rules.entries()) {\n if (typeof r === 'string') {\n if (idx === 1) combinator = r;\n } else {\n rules.push(isRuleGroup(r) ? convertFromIC(r) : r);\n }\n }\n return { ...processedRG, combinator, rules } as RG;\n};\n\n/**\n * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}.\n *\n * This function is idempotent: {@link RuleGroupTypeIC} queries will be\n * returned as-is.\n *\n * @group Query Tools\n */\nexport const convertToIC = <RGIC extends RuleGroupTypeIC = RuleGroupTypeIC>(\n rg: RuleGroupTypeAny\n): RGIC => {\n if (isRuleGroupTypeIC(rg)) {\n return rg as RGIC;\n }\n const { combinator, ...queryWithoutCombinator } = rg;\n const rules: (RuleGroupTypeIC | RuleType | string)[] = [];\n const { length } = rg.rules;\n for (let idx = 0; idx < length; idx++) {\n const r = rg.rules[idx];\n if (isRuleGroup(r)) {\n rules.push(convertToIC(r));\n } else {\n rules.push(r);\n }\n if (combinator && idx < length - 1) {\n rules.push(combinator);\n }\n }\n return { ...queryWithoutCombinator, rules } as RGIC;\n};\n\n/**\n * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}. For a more explicit\n * operation, use {@link convertToIC}.\n *\n * @group Query Tools\n */\nfunction convertQuery(query: RuleGroupType): RuleGroupTypeIC;\n/**\n * Converts a {@link RuleGroupTypeIC} to {@link RuleGroupType}. For a more explicit\n * operation, use {@link convertFromIC}.\n *\n * @group Query Tools\n */\nfunction convertQuery(query: RuleGroupTypeIC): RuleGroupType;\nfunction convertQuery(query: RuleGroupType | RuleGroupTypeIC): RuleGroupType | RuleGroupTypeIC {\n return isRuleGroupTypeIC(query) ? convertFromIC(query) : convertToIC(query);\n}\n\nexport { convertQuery };\n"],"mappings":";;AAWA,MAAM,mBAAmB;CAAC;CAAM;CAAO;CAAM;AAE7C,MAAM,gBAAgB,GAAY,MAAc,GAAG,EAAE,KAAK;AAE1D,MAAM,gDACJ,IACA,sBAA8B,MACV;CACpB,MAAM,iBAAiB,iBAAiB;AAGxC,KAAI,CAAC,GAAG,MAAM,SAAS,eAAsB,CAG3C,QAAO,sBAAsB,iBAAiB,SAAS,IACnD,6CAA6C,IAAI,sBAAsB,EAAE,GACzE;CAGN,MAAM,WAAW,CAAC,GAAG,GAAG,MAAM;CAC9B,IAAI,SAAS;AAGb,QAAO,SAAS,SAAS,SAAS,GAAG;AACnC,MAAI,aAAa,SAAS,SAAS,IAAI,eAAe,EAAE;AACtD,aAAU;AACV;;EAGF,IAAI,0BAA0B;AAC9B,OAAK,IAAI,IAAI,SAAS,GAAG,IAAI,SAAS,QAAQ,IAC5C,KAAI,OAAO,SAAS,OAAO,YAAY,GAAG,SAAS,GAAG,KAAK,gBAAgB;AACzE,6BAA0B;AAC1B;;AAIJ,MAAI,4BAA4B,IAAI;AAElC,YAAS,OACP,QACA,SAAS,QACT,6CAEE,EAAE,OAAO,SAAS,MAAM,OAAO,EAAS,EACxC,sBAAsB,EACvB,CACF;AACD;QAGA,UAAS,OACP,QACA,0BAA0B,QAC1B,6CAEE,EAAE,OAAO,SAAS,MAAM,QAAQ,wBAAwB,EAAS,EACjE,sBAAsB,EACvB,CACF;;AAIL,QAAO;EAAE,GAAG;EAAI,OAAO;EAAU;;;;;;;;;;AAWnC,MAAa,iBACX,OACO;AACP,KAAI,gBAAgB,GAAG,CACrB,QAAO;CAET,MAAM,cAAc,6CAA6C,GAAG;CACpE,MAAM,QAAwB,EAAE;CAChC,IAAI,aAAa;AACjB,MAAK,MAAM,CAAC,KAAK,MAAM,YAAY,MAAM,SAAS,CAChD,KAAI,OAAO,MAAM;MACX,QAAQ,EAAG,cAAa;OAE5B,OAAM,KAAK,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE;AAGrD,QAAO;EAAE,GAAG;EAAa;EAAY;EAAO;;;;;;;;;;AAW9C,MAAa,eACX,OACS;AACT,KAAI,kBAAkB,GAAG,CACvB,QAAO;CAET,MAAM,EAAE,YAAY,GAAG,2BAA2B;CAClD,MAAM,QAAiD,EAAE;CACzD,MAAM,EAAE,WAAW,GAAG;AACtB,MAAK,IAAI,MAAM,GAAG,MAAM,QAAQ,OAAO;EACrC,MAAM,IAAI,GAAG,MAAM;AACnB,MAAI,YAAY,EAAE,CAChB,OAAM,KAAK,YAAY,EAAE,CAAC;MAE1B,OAAM,KAAK,EAAE;AAEf,MAAI,cAAc,MAAM,SAAS,EAC/B,OAAM,KAAK,WAAW;;AAG1B,QAAO;EAAE,GAAG;EAAwB;EAAO"}
@@ -1,11 +1,11 @@
1
- const require_isRuleGroup = require("./isRuleGroup-BCwaLzDj.js");
1
+ const require_objectUtils = require("./objectUtils-ButT0Mng.js");
2
2
  //#region src/utils/convertQuery.ts
3
3
  const combinatorLevels = [
4
4
  "or",
5
5
  "xor",
6
6
  "and"
7
7
  ];
8
- const isSameString = (a, b) => require_isRuleGroup.lc(a) === b;
8
+ const isSameString = (a, b) => require_objectUtils.lc(a) === b;
9
9
  const generateRuleGroupICWithConsistentCombinators = (rg, baseCombinatorLevel = 0) => {
10
10
  const baseCombinator = combinatorLevels[baseCombinatorLevel];
11
11
  if (!rg.rules.includes(baseCombinator)) return baseCombinatorLevel < combinatorLevels.length - 2 ? generateRuleGroupICWithConsistentCombinators(rg, baseCombinatorLevel + 1) : rg;
@@ -17,7 +17,7 @@ const generateRuleGroupICWithConsistentCombinators = (rg, baseCombinatorLevel =
17
17
  continue;
18
18
  }
19
19
  let nextBaseCombinatorIndex = -1;
20
- for (let i = cursor + 2; i < newRules.length; i++) if (typeof newRules[i] === "string" && require_isRuleGroup.lc(newRules[i]) === baseCombinator) {
20
+ for (let i = cursor + 2; i < newRules.length; i++) if (typeof newRules[i] === "string" && require_objectUtils.lc(newRules[i]) === baseCombinator) {
21
21
  nextBaseCombinatorIndex = i;
22
22
  break;
23
23
  }
@@ -40,13 +40,13 @@ const generateRuleGroupICWithConsistentCombinators = (rg, baseCombinatorLevel =
40
40
  * @group Query Tools
41
41
  */
42
42
  const convertFromIC = (rg) => {
43
- if (require_isRuleGroup.isRuleGroupType(rg)) return rg;
43
+ if (require_objectUtils.isRuleGroupType(rg)) return rg;
44
44
  const processedRG = generateRuleGroupICWithConsistentCombinators(rg);
45
45
  const rules = [];
46
46
  let combinator = "and";
47
47
  for (const [idx, r] of processedRG.rules.entries()) if (typeof r === "string") {
48
48
  if (idx === 1) combinator = r;
49
- } else rules.push(require_isRuleGroup.isRuleGroup(r) ? convertFromIC(r) : r);
49
+ } else rules.push(require_objectUtils.isRuleGroup(r) ? convertFromIC(r) : r);
50
50
  return {
51
51
  ...processedRG,
52
52
  combinator,
@@ -62,13 +62,13 @@ const convertFromIC = (rg) => {
62
62
  * @group Query Tools
63
63
  */
64
64
  const convertToIC = (rg) => {
65
- if (require_isRuleGroup.isRuleGroupTypeIC(rg)) return rg;
65
+ if (require_objectUtils.isRuleGroupTypeIC(rg)) return rg;
66
66
  const { combinator, ...queryWithoutCombinator } = rg;
67
67
  const rules = [];
68
68
  const { length } = rg.rules;
69
69
  for (let idx = 0; idx < length; idx++) {
70
70
  const r = rg.rules[idx];
71
- if (require_isRuleGroup.isRuleGroup(r)) rules.push(convertToIC(r));
71
+ if (require_objectUtils.isRuleGroup(r)) rules.push(convertToIC(r));
72
72
  else rules.push(r);
73
73
  if (combinator && idx < length - 1) rules.push(combinator);
74
74
  }
@@ -91,4 +91,4 @@ Object.defineProperty(exports, "convertToIC", {
91
91
  }
92
92
  });
93
93
 
94
- //# sourceMappingURL=convertQuery-DfZehtnd.js.map
94
+ //# sourceMappingURL=convertQuery-J8LpTG-7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertQuery-DfZehtnd.js","names":["lc","isRuleGroupType","isRuleGroup","isRuleGroupTypeIC"],"sources":["../src/utils/convertQuery.ts"],"sourcesContent":["import type {\n RuleGroupArray,\n RuleGroupICArray,\n RuleGroupType,\n RuleGroupTypeAny,\n RuleGroupTypeIC,\n RuleType,\n} from '../types';\nimport { isRuleGroup, isRuleGroupType, isRuleGroupTypeIC } from './isRuleGroup';\nimport { lc } from './misc';\n\nconst combinatorLevels = ['or', 'xor', 'and'] as const;\n\nconst isSameString = (a: unknown, b: string) => lc(a) === b;\n\nconst generateRuleGroupICWithConsistentCombinators = (\n rg: RuleGroupTypeIC,\n baseCombinatorLevel: number = 0\n): RuleGroupTypeIC => {\n const baseCombinator = combinatorLevels[baseCombinatorLevel];\n\n // oxlint-disable-next-line typescript/no-explicit-any\n if (!rg.rules.includes(baseCombinator as any)) {\n // No instances of this combinator, so group based on the next\n // combinator level if at least two levels remain\n return baseCombinatorLevel < combinatorLevels.length - 2\n ? generateRuleGroupICWithConsistentCombinators(rg, baseCombinatorLevel + 1)\n : rg;\n }\n\n const newRules = [...rg.rules] as RuleGroupICArray;\n let cursor = 0;\n\n // Group all chains of combinators in the rule array that are not the base combinator\n while (cursor < newRules.length - 2) {\n if (isSameString(newRules[cursor + 1], baseCombinator)) {\n cursor += 2;\n continue;\n }\n\n let nextBaseCombinatorIndex = -1;\n for (let i = cursor + 2; i < newRules.length; i++) {\n if (typeof newRules[i] === 'string' && lc(newRules[i]) === baseCombinator) {\n nextBaseCombinatorIndex = i;\n break;\n }\n }\n\n if (nextBaseCombinatorIndex === -1) {\n // No more instances of this combinator, so group all remaining rules and exit the loop\n newRules.splice(\n cursor,\n newRules.length,\n generateRuleGroupICWithConsistentCombinators(\n // oxlint-disable-next-line typescript/no-explicit-any\n { rules: newRules.slice(cursor) as any },\n baseCombinatorLevel + 1\n )\n );\n break;\n } else {\n // Group all rules between the current cursor and the next instance of the base combinator\n newRules.splice(\n cursor,\n nextBaseCombinatorIndex - cursor,\n generateRuleGroupICWithConsistentCombinators(\n // oxlint-disable-next-line typescript/no-explicit-any\n { rules: newRules.slice(cursor, nextBaseCombinatorIndex) as any },\n baseCombinatorLevel + 1\n )\n );\n }\n }\n\n return { ...rg, rules: newRules };\n};\n\n/**\n * Converts a {@link RuleGroupTypeIC} to {@link RuleGroupType}.\n *\n * This function is idempotent: {@link RuleGroupType} queries will be\n * returned as-is.\n *\n * @group Query Tools\n */\nexport const convertFromIC = <RG extends RuleGroupType = RuleGroupType>(\n rg: RuleGroupTypeAny\n): RG => {\n if (isRuleGroupType(rg)) {\n return rg as RG;\n }\n const processedRG = generateRuleGroupICWithConsistentCombinators(rg);\n const rules: RuleGroupArray = [];\n let combinator = 'and';\n for (const [idx, r] of processedRG.rules.entries()) {\n if (typeof r === 'string') {\n if (idx === 1) combinator = r;\n } else {\n rules.push(isRuleGroup(r) ? convertFromIC(r) : r);\n }\n }\n return { ...processedRG, combinator, rules } as RG;\n};\n\n/**\n * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}.\n *\n * This function is idempotent: {@link RuleGroupTypeIC} queries will be\n * returned as-is.\n *\n * @group Query Tools\n */\nexport const convertToIC = <RGIC extends RuleGroupTypeIC = RuleGroupTypeIC>(\n rg: RuleGroupTypeAny\n): RGIC => {\n if (isRuleGroupTypeIC(rg)) {\n return rg as RGIC;\n }\n const { combinator, ...queryWithoutCombinator } = rg;\n const rules: (RuleGroupTypeIC | RuleType | string)[] = [];\n const { length } = rg.rules;\n for (let idx = 0; idx < length; idx++) {\n const r = rg.rules[idx];\n if (isRuleGroup(r)) {\n rules.push(convertToIC(r));\n } else {\n rules.push(r);\n }\n if (combinator && idx < length - 1) {\n rules.push(combinator);\n }\n }\n return { ...queryWithoutCombinator, rules } as RGIC;\n};\n\n/**\n * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}. For a more explicit\n * operation, use {@link convertToIC}.\n *\n * @group Query Tools\n */\nfunction convertQuery(query: RuleGroupType): RuleGroupTypeIC;\n/**\n * Converts a {@link RuleGroupTypeIC} to {@link RuleGroupType}. For a more explicit\n * operation, use {@link convertFromIC}.\n *\n * @group Query Tools\n */\nfunction convertQuery(query: RuleGroupTypeIC): RuleGroupType;\nfunction convertQuery(query: RuleGroupType | RuleGroupTypeIC): RuleGroupType | RuleGroupTypeIC {\n return isRuleGroupTypeIC(query) ? convertFromIC(query) : convertToIC(query);\n}\n\nexport { convertQuery };\n"],"mappings":";;AAWA,MAAM,mBAAmB;CAAC;CAAM;CAAO;CAAM;AAE7C,MAAM,gBAAgB,GAAY,MAAcA,oBAAAA,GAAG,EAAE,KAAK;AAE1D,MAAM,gDACJ,IACA,sBAA8B,MACV;CACpB,MAAM,iBAAiB,iBAAiB;AAGxC,KAAI,CAAC,GAAG,MAAM,SAAS,eAAsB,CAG3C,QAAO,sBAAsB,iBAAiB,SAAS,IACnD,6CAA6C,IAAI,sBAAsB,EAAE,GACzE;CAGN,MAAM,WAAW,CAAC,GAAG,GAAG,MAAM;CAC9B,IAAI,SAAS;AAGb,QAAO,SAAS,SAAS,SAAS,GAAG;AACnC,MAAI,aAAa,SAAS,SAAS,IAAI,eAAe,EAAE;AACtD,aAAU;AACV;;EAGF,IAAI,0BAA0B;AAC9B,OAAK,IAAI,IAAI,SAAS,GAAG,IAAI,SAAS,QAAQ,IAC5C,KAAI,OAAO,SAAS,OAAO,YAAYA,oBAAAA,GAAG,SAAS,GAAG,KAAK,gBAAgB;AACzE,6BAA0B;AAC1B;;AAIJ,MAAI,4BAA4B,IAAI;AAElC,YAAS,OACP,QACA,SAAS,QACT,6CAEE,EAAE,OAAO,SAAS,MAAM,OAAO,EAAS,EACxC,sBAAsB,EACvB,CACF;AACD;QAGA,UAAS,OACP,QACA,0BAA0B,QAC1B,6CAEE,EAAE,OAAO,SAAS,MAAM,QAAQ,wBAAwB,EAAS,EACjE,sBAAsB,EACvB,CACF;;AAIL,QAAO;EAAE,GAAG;EAAI,OAAO;EAAU;;;;;;;;;;AAWnC,MAAa,iBACX,OACO;AACP,KAAIC,oBAAAA,gBAAgB,GAAG,CACrB,QAAO;CAET,MAAM,cAAc,6CAA6C,GAAG;CACpE,MAAM,QAAwB,EAAE;CAChC,IAAI,aAAa;AACjB,MAAK,MAAM,CAAC,KAAK,MAAM,YAAY,MAAM,SAAS,CAChD,KAAI,OAAO,MAAM;MACX,QAAQ,EAAG,cAAa;OAE5B,OAAM,KAAKC,oBAAAA,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE;AAGrD,QAAO;EAAE,GAAG;EAAa;EAAY;EAAO;;;;;;;;;;AAW9C,MAAa,eACX,OACS;AACT,KAAIC,oBAAAA,kBAAkB,GAAG,CACvB,QAAO;CAET,MAAM,EAAE,YAAY,GAAG,2BAA2B;CAClD,MAAM,QAAiD,EAAE;CACzD,MAAM,EAAE,WAAW,GAAG;AACtB,MAAK,IAAI,MAAM,GAAG,MAAM,QAAQ,OAAO;EACrC,MAAM,IAAI,GAAG,MAAM;AACnB,MAAID,oBAAAA,YAAY,EAAE,CAChB,OAAM,KAAK,YAAY,EAAE,CAAC;MAE1B,OAAM,KAAK,EAAE;AAEf,MAAI,cAAc,MAAM,SAAS,EAC/B,OAAM,KAAK,WAAW;;AAG1B,QAAO;EAAE,GAAG;EAAwB;EAAO"}
1
+ {"version":3,"file":"convertQuery-J8LpTG-7.js","names":["lc","isRuleGroupType","isRuleGroup","isRuleGroupTypeIC"],"sources":["../src/utils/convertQuery.ts"],"sourcesContent":["import type {\n RuleGroupArray,\n RuleGroupICArray,\n RuleGroupType,\n RuleGroupTypeAny,\n RuleGroupTypeIC,\n RuleType,\n} from '../types';\nimport { isRuleGroup, isRuleGroupType, isRuleGroupTypeIC } from './isRuleGroup';\nimport { lc } from './misc';\n\nconst combinatorLevels = ['or', 'xor', 'and'] as const;\n\nconst isSameString = (a: unknown, b: string) => lc(a) === b;\n\nconst generateRuleGroupICWithConsistentCombinators = (\n rg: RuleGroupTypeIC,\n baseCombinatorLevel: number = 0\n): RuleGroupTypeIC => {\n const baseCombinator = combinatorLevels[baseCombinatorLevel];\n\n // oxlint-disable-next-line typescript/no-explicit-any\n if (!rg.rules.includes(baseCombinator as any)) {\n // No instances of this combinator, so group based on the next\n // combinator level if at least two levels remain\n return baseCombinatorLevel < combinatorLevels.length - 2\n ? generateRuleGroupICWithConsistentCombinators(rg, baseCombinatorLevel + 1)\n : rg;\n }\n\n const newRules = [...rg.rules] as RuleGroupICArray;\n let cursor = 0;\n\n // Group all chains of combinators in the rule array that are not the base combinator\n while (cursor < newRules.length - 2) {\n if (isSameString(newRules[cursor + 1], baseCombinator)) {\n cursor += 2;\n continue;\n }\n\n let nextBaseCombinatorIndex = -1;\n for (let i = cursor + 2; i < newRules.length; i++) {\n if (typeof newRules[i] === 'string' && lc(newRules[i]) === baseCombinator) {\n nextBaseCombinatorIndex = i;\n break;\n }\n }\n\n if (nextBaseCombinatorIndex === -1) {\n // No more instances of this combinator, so group all remaining rules and exit the loop\n newRules.splice(\n cursor,\n newRules.length,\n generateRuleGroupICWithConsistentCombinators(\n // oxlint-disable-next-line typescript/no-explicit-any\n { rules: newRules.slice(cursor) as any },\n baseCombinatorLevel + 1\n )\n );\n break;\n } else {\n // Group all rules between the current cursor and the next instance of the base combinator\n newRules.splice(\n cursor,\n nextBaseCombinatorIndex - cursor,\n generateRuleGroupICWithConsistentCombinators(\n // oxlint-disable-next-line typescript/no-explicit-any\n { rules: newRules.slice(cursor, nextBaseCombinatorIndex) as any },\n baseCombinatorLevel + 1\n )\n );\n }\n }\n\n return { ...rg, rules: newRules };\n};\n\n/**\n * Converts a {@link RuleGroupTypeIC} to {@link RuleGroupType}.\n *\n * This function is idempotent: {@link RuleGroupType} queries will be\n * returned as-is.\n *\n * @group Query Tools\n */\nexport const convertFromIC = <RG extends RuleGroupType = RuleGroupType>(\n rg: RuleGroupTypeAny\n): RG => {\n if (isRuleGroupType(rg)) {\n return rg as RG;\n }\n const processedRG = generateRuleGroupICWithConsistentCombinators(rg);\n const rules: RuleGroupArray = [];\n let combinator = 'and';\n for (const [idx, r] of processedRG.rules.entries()) {\n if (typeof r === 'string') {\n if (idx === 1) combinator = r;\n } else {\n rules.push(isRuleGroup(r) ? convertFromIC(r) : r);\n }\n }\n return { ...processedRG, combinator, rules } as RG;\n};\n\n/**\n * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}.\n *\n * This function is idempotent: {@link RuleGroupTypeIC} queries will be\n * returned as-is.\n *\n * @group Query Tools\n */\nexport const convertToIC = <RGIC extends RuleGroupTypeIC = RuleGroupTypeIC>(\n rg: RuleGroupTypeAny\n): RGIC => {\n if (isRuleGroupTypeIC(rg)) {\n return rg as RGIC;\n }\n const { combinator, ...queryWithoutCombinator } = rg;\n const rules: (RuleGroupTypeIC | RuleType | string)[] = [];\n const { length } = rg.rules;\n for (let idx = 0; idx < length; idx++) {\n const r = rg.rules[idx];\n if (isRuleGroup(r)) {\n rules.push(convertToIC(r));\n } else {\n rules.push(r);\n }\n if (combinator && idx < length - 1) {\n rules.push(combinator);\n }\n }\n return { ...queryWithoutCombinator, rules } as RGIC;\n};\n\n/**\n * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}. For a more explicit\n * operation, use {@link convertToIC}.\n *\n * @group Query Tools\n */\nfunction convertQuery(query: RuleGroupType): RuleGroupTypeIC;\n/**\n * Converts a {@link RuleGroupTypeIC} to {@link RuleGroupType}. For a more explicit\n * operation, use {@link convertFromIC}.\n *\n * @group Query Tools\n */\nfunction convertQuery(query: RuleGroupTypeIC): RuleGroupType;\nfunction convertQuery(query: RuleGroupType | RuleGroupTypeIC): RuleGroupType | RuleGroupTypeIC {\n return isRuleGroupTypeIC(query) ? convertFromIC(query) : convertToIC(query);\n}\n\nexport { convertQuery };\n"],"mappings":";;AAWA,MAAM,mBAAmB;CAAC;CAAM;CAAO;CAAM;AAE7C,MAAM,gBAAgB,GAAY,MAAcA,oBAAAA,GAAG,EAAE,KAAK;AAE1D,MAAM,gDACJ,IACA,sBAA8B,MACV;CACpB,MAAM,iBAAiB,iBAAiB;AAGxC,KAAI,CAAC,GAAG,MAAM,SAAS,eAAsB,CAG3C,QAAO,sBAAsB,iBAAiB,SAAS,IACnD,6CAA6C,IAAI,sBAAsB,EAAE,GACzE;CAGN,MAAM,WAAW,CAAC,GAAG,GAAG,MAAM;CAC9B,IAAI,SAAS;AAGb,QAAO,SAAS,SAAS,SAAS,GAAG;AACnC,MAAI,aAAa,SAAS,SAAS,IAAI,eAAe,EAAE;AACtD,aAAU;AACV;;EAGF,IAAI,0BAA0B;AAC9B,OAAK,IAAI,IAAI,SAAS,GAAG,IAAI,SAAS,QAAQ,IAC5C,KAAI,OAAO,SAAS,OAAO,YAAYA,oBAAAA,GAAG,SAAS,GAAG,KAAK,gBAAgB;AACzE,6BAA0B;AAC1B;;AAIJ,MAAI,4BAA4B,IAAI;AAElC,YAAS,OACP,QACA,SAAS,QACT,6CAEE,EAAE,OAAO,SAAS,MAAM,OAAO,EAAS,EACxC,sBAAsB,EACvB,CACF;AACD;QAGA,UAAS,OACP,QACA,0BAA0B,QAC1B,6CAEE,EAAE,OAAO,SAAS,MAAM,QAAQ,wBAAwB,EAAS,EACjE,sBAAsB,EACvB,CACF;;AAIL,QAAO;EAAE,GAAG;EAAI,OAAO;EAAU;;;;;;;;;;AAWnC,MAAa,iBACX,OACO;AACP,KAAIC,oBAAAA,gBAAgB,GAAG,CACrB,QAAO;CAET,MAAM,cAAc,6CAA6C,GAAG;CACpE,MAAM,QAAwB,EAAE;CAChC,IAAI,aAAa;AACjB,MAAK,MAAM,CAAC,KAAK,MAAM,YAAY,MAAM,SAAS,CAChD,KAAI,OAAO,MAAM;MACX,QAAQ,EAAG,cAAa;OAE5B,OAAM,KAAKC,oBAAAA,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE;AAGrD,QAAO;EAAE,GAAG;EAAa;EAAY;EAAO;;;;;;;;;;AAW9C,MAAa,eACX,OACS;AACT,KAAIC,oBAAAA,kBAAkB,GAAG,CACvB,QAAO;CAET,MAAM,EAAE,YAAY,GAAG,2BAA2B;CAClD,MAAM,QAAiD,EAAE;CACzD,MAAM,EAAE,WAAW,GAAG;AACtB,MAAK,IAAI,MAAM,GAAG,MAAM,QAAQ,OAAO;EACrC,MAAM,IAAI,GAAG,MAAM;AACnB,MAAID,oBAAAA,YAAY,EAAE,CAChB,OAAM,KAAK,YAAY,EAAE,CAAC;MAE1B,OAAM,KAAK,EAAE;AAEf,MAAI,cAAc,MAAM,SAAS,EAC/B,OAAM,KAAK,WAAW;;AAG1B,QAAO;EAAE,GAAG;EAAwB;EAAO"}
@@ -1,13 +1,13 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils = require("./utils-EsYRkPtf.js");
3
- const require_isRuleGroup = require("./isRuleGroup-BCwaLzDj.js");
2
+ const require_utils = require("./utils-CZRhzje-.js");
3
+ const require_objectUtils = require("./objectUtils-ButT0Mng.js");
4
4
  const require_transformQuery = require("./transformQuery.js");
5
- const require_convertQuery = require("./convertQuery-DfZehtnd.js");
5
+ const require_convertQuery = require("./convertQuery-J8LpTG-7.js");
6
6
  //#region src/utils/isRuleOrGroupValid.ts
7
7
  /**
8
8
  * Determines if an object is useful as a validation result.
9
9
  */
10
- const isValidationResult = (vr) => require_isRuleGroup.isPojo(vr) && typeof vr.valid === "boolean";
10
+ const isValidationResult = (vr) => require_objectUtils.isPojo(vr) && typeof vr.valid === "boolean";
11
11
  /**
12
12
  * Determines if a rule or group is valid based on a validation result (if defined)
13
13
  * or a validator function. Returns `true` if neither are defined and the `muted`
@@ -17,7 +17,7 @@ const isRuleOrGroupValid = (rg, validationResult, validator) => {
17
17
  if (rg.muted) return false;
18
18
  if (typeof validationResult === "boolean") return validationResult;
19
19
  if (isValidationResult(validationResult)) return validationResult.valid;
20
- if (typeof validator === "function" && !require_isRuleGroup.isRuleGroup(rg)) {
20
+ if (typeof validator === "function" && !require_objectUtils.isRuleGroup(rg)) {
21
21
  const vr = validator(rg);
22
22
  if (typeof vr === "boolean") return vr;
23
23
  // istanbul ignore else
@@ -44,7 +44,7 @@ const defaultRuleGroupProcessorCEL = (ruleGroup, options) => {
44
44
  precedingCombinator = require_utils.celCombinatorMap[rule];
45
45
  continue;
46
46
  }
47
- if (require_isRuleGroup.isRuleGroup(rule)) {
47
+ if (require_objectUtils.isRuleGroup(rule)) {
48
48
  const processedGroup = processRuleGroup(rule);
49
49
  if (processedGroup) {
50
50
  if (!firstRule && precedingCombinator) {
@@ -74,7 +74,7 @@ const defaultRuleGroupProcessorCEL = (ruleGroup, options) => {
74
74
  processedRules.push(processedRule);
75
75
  }
76
76
  }
77
- const expression = processedRules.join(require_isRuleGroup.isRuleGroupType(rg) ? ` ${require_utils.celCombinatorMap[rg.combinator]} ` : " ");
77
+ const expression = processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${require_utils.celCombinatorMap[rg.combinator]} ` : " ");
78
78
  const [prefix, suffix] = rg.not || !outermost ? [`${rg.not ? "!" : ""}(`, ")"] : ["", ""];
79
79
  return expression ? `${prefix}${expression}${suffix}` : fallbackExpression;
80
80
  };
@@ -93,7 +93,7 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
93
93
  const { escapeQuotes, parseNumbers, preserveValueOrder } = opts;
94
94
  const { field, operator, value, valueSource } = rule;
95
95
  const valueIsField = valueSource === "field";
96
- const operatorTL = require_isRuleGroup.lc(operator === "=" ? "==" : operator);
96
+ const operatorTL = require_objectUtils.lc(operator === "=" ? "==" : operator);
97
97
  const useBareValue = typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || require_utils.shouldRenderAsNumber(value, parseNumbers);
98
98
  const matchEval = require_utils.processMatchMode(rule);
99
99
  if (matchEval === false) return "";
@@ -142,7 +142,7 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
142
142
  case "between":
143
143
  case "notbetween": {
144
144
  const valueAsArray = require_utils.toArray(value);
145
- if (valueAsArray.length >= 2 && !require_isRuleGroup.nullOrUndefinedOrEmpty(valueAsArray[0]) && !require_isRuleGroup.nullOrUndefinedOrEmpty(valueAsArray[1])) {
145
+ if (valueAsArray.length >= 2 && !require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[0]) && !require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[1])) {
146
146
  const [first, second] = valueAsArray;
147
147
  const shouldParseNumbers = !(parseNumbers === false);
148
148
  const firstNum = require_utils.shouldRenderAsNumber(first, shouldParseNumbers) ? require_utils.parseNumber(first, { parseNumbers: shouldParseNumbers }) : NaN;
@@ -177,10 +177,10 @@ const defaultRuleGroupProcessorMongoDBQuery = (ruleGroup, options, meta) => {
177
177
  const { fields, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
178
178
  const processRuleGroup = (rg, outermost) => {
179
179
  if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? mongoDbFallback : false;
180
- const combinator = `$${require_isRuleGroup.lc(rg.combinator)}`;
180
+ const combinator = `$${require_objectUtils.lc(rg.combinator)}`;
181
181
  let hasChildRules = false;
182
182
  const expressions = rg.rules.map((rule) => {
183
- if (require_isRuleGroup.isRuleGroup(rule)) {
183
+ if (require_objectUtils.isRuleGroup(rule)) {
184
184
  const processedRuleGroup = processRuleGroup(rule);
185
185
  if (processedRuleGroup) {
186
186
  hasChildRules = true;
@@ -261,7 +261,7 @@ const defaultRuleProcessorMongoDBQuery = (rule, options = {}) => {
261
261
  }
262
262
  }
263
263
  if (operator === "=" && !valueIsField) return avoidFieldsAsKeys ? { $eq: [`$${field}`, processNumber$1(value, value, parseNumbers)] } : { [field]: processNumber$1(value, value, parseNumbers) };
264
- const operatorLC = require_isRuleGroup.lc(operator);
264
+ const operatorLC = require_objectUtils.lc(operator);
265
265
  switch (operatorLC) {
266
266
  case "<":
267
267
  case "<=":
@@ -362,7 +362,7 @@ const defaultRuleGroupProcessorSpEL = (ruleGroup, options) => {
362
362
  precedingCombinator = rule;
363
363
  continue;
364
364
  }
365
- if (require_isRuleGroup.isRuleGroup(rule)) {
365
+ if (require_objectUtils.isRuleGroup(rule)) {
366
366
  const processedGroup = processRuleGroup(rule);
367
367
  if (processedGroup) {
368
368
  if (!firstRule && precedingCombinator) {
@@ -392,7 +392,7 @@ const defaultRuleGroupProcessorSpEL = (ruleGroup, options) => {
392
392
  processedRules.push(processedRule);
393
393
  }
394
394
  }
395
- const expression = processedRules.join(require_isRuleGroup.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ");
395
+ const expression = processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ");
396
396
  const [prefix, suffix] = rg.not || !outermost ? [`${rg.not ? "!" : ""}(`, ")"] : ["", ""];
397
397
  return expression ? `${prefix}${expression}${suffix}` : fallbackExpression;
398
398
  };
@@ -412,7 +412,7 @@ const defaultRuleProcessorSpEL = (rule, opts = {}) => {
412
412
  const { field, operator, value, valueSource } = rule;
413
413
  const { escapeQuotes, parseNumbers, preserveValueOrder } = opts;
414
414
  const valueIsField = valueSource === "field";
415
- const operatorTL = require_isRuleGroup.lc(operator === "=" ? "==" : operator);
415
+ const operatorTL = require_objectUtils.lc(operator === "=" ? "==" : operator);
416
416
  const useBareValue = typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || require_utils.shouldRenderAsNumber(value, parseNumbers);
417
417
  const matchEval = require_utils.processMatchMode(rule);
418
418
  if (matchEval === false) return "";
@@ -461,7 +461,7 @@ const defaultRuleProcessorSpEL = (rule, opts = {}) => {
461
461
  case "between":
462
462
  case "notbetween": {
463
463
  const valueAsArray = require_utils.toArray(value);
464
- if (valueAsArray.length >= 2 && !require_isRuleGroup.nullOrUndefinedOrEmpty(valueAsArray[0]) && !require_isRuleGroup.nullOrUndefinedOrEmpty(valueAsArray[1])) {
464
+ if (valueAsArray.length >= 2 && !require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[0]) && !require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[1])) {
465
465
  const [first, second] = valueAsArray;
466
466
  const shouldParseNumbers = !(parseNumbers === false);
467
467
  const firstNum = require_utils.shouldRenderAsNumber(first, shouldParseNumbers) ? require_utils.parseNumber(first, { parseNumbers: shouldParseNumbers }) : NaN;
@@ -489,7 +489,7 @@ const escapeStringValueQuotes$1 = (v, quoteChar, escapeQuotes) => escapeQuotes &
489
489
  */
490
490
  const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQuotes, parseNumbers, preserveValueOrder, quoteFieldNamesWith, quoteValuesWith, concatOperator = "||", fieldIdentifierSeparator, wrapValueWith = ["", ""], translations } = {}) => {
491
491
  const valueIsField = valueSource === "field";
492
- const operatorLowerCase = require_isRuleGroup.lc(operator);
492
+ const operatorLowerCase = require_objectUtils.lc(operator);
493
493
  const quoteChar = quoteValuesWith || "'";
494
494
  const quoteValue = (v) => `${wrapValueWith[0]}${quoteChar}${v}${quoteChar}${wrapValueWith[1]}`;
495
495
  const escapeValue = (v) => escapeStringValueQuotes$1(v, quoteChar, escapeQuotes);
@@ -550,7 +550,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
550
550
  const { between, eq, gt, gte, inArray, isNotNull, isNull, like, lt, lte, ne, notBetween, notInArray, notLike, sql } = drizzleOperators;
551
551
  const { field, operator, value, valueSource } = rule;
552
552
  const column = useRawFields && /[a-z][a-z0-9]*/i.test(field) ? sql.raw(field) : columns[field];
553
- const operatorLC = require_isRuleGroup.lc(operator);
553
+ const operatorLC = require_objectUtils.lc(operator);
554
554
  const valueIsField = valueSource === "field";
555
555
  const asFieldOrValue = (v) => valueIsField ? columns[v] : v;
556
556
  if (!column) return;
@@ -652,7 +652,7 @@ const defaultRuleGroupProcessorDrizzle = (ruleGroup, options, _meta) => (columns
652
652
  const processRuleGroup = (rg, _outermost) => {
653
653
  if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return;
654
654
  const processedRules = rg.rules.map((rule) => {
655
- if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
655
+ if (require_objectUtils.isRuleGroup(rule)) return processRuleGroup(rule);
656
656
  const [validationResult, fieldValidator] = validateRule(rule);
657
657
  if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return;
658
658
  const fieldData = require_utils.getOption(fields, rule.field);
@@ -685,7 +685,7 @@ const defaultRuleGroupProcessorElasticSearch = (ruleGroup, options) => {
685
685
  const processRuleGroup = (rg) => {
686
686
  if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return false;
687
687
  const processedRules = rg.rules.map((rule) => {
688
- if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
688
+ if (require_objectUtils.isRuleGroup(rule)) return processRuleGroup(rule);
689
689
  const [validationResult, fieldValidator] = validateRule(rule);
690
690
  if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return false;
691
691
  const fieldData = require_utils.getOption(fields, rule.field);
@@ -720,7 +720,7 @@ const defaultRuleGroupProcessorJSONata = (ruleGroup, options) => {
720
720
  precedingCombinator = rule;
721
721
  continue;
722
722
  }
723
- if (require_isRuleGroup.isRuleGroup(rule)) {
723
+ if (require_objectUtils.isRuleGroup(rule)) {
724
724
  const processedGroup = processRuleGroup(rule);
725
725
  if (processedGroup) {
726
726
  if (!firstRule && precedingCombinator) {
@@ -750,7 +750,7 @@ const defaultRuleGroupProcessorJSONata = (ruleGroup, options) => {
750
750
  processedRules.push(processedRule);
751
751
  }
752
752
  }
753
- const expression = processedRules.join(require_isRuleGroup.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ");
753
+ const expression = processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ");
754
754
  const [prefix, suffix] = rg.not || !outermost ? [`${rg.not ? "$not" : ""}(`, ")"] : ["", ""];
755
755
  return expression ? `${prefix}${expression}${suffix}` : fallbackExpression;
756
756
  };
@@ -769,7 +769,7 @@ const defaultRuleGroupProcessorJsonLogic = (ruleGroup, options) => {
769
769
  const processRuleGroup = (rg, _outermost) => {
770
770
  if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return false;
771
771
  const processedRules = rg.rules.map((rule) => {
772
- if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
772
+ if (require_objectUtils.isRuleGroup(rule)) return processRuleGroup(rule);
773
773
  const [validationResult, fieldValidator] = validateRule(rule);
774
774
  if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return false;
775
775
  const fieldData = require_utils.getOption(fields, rule.field);
@@ -797,7 +797,7 @@ const defaultRuleGroupProcessorLDAP = (ruleGroup, options) => {
797
797
  const processRuleGroup = (rg, outermost) => {
798
798
  if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
799
799
  const rules = rg.rules.map((rule) => {
800
- if (require_isRuleGroup.isRuleGroup(rule)) return processRuleGroup(rule);
800
+ if (require_objectUtils.isRuleGroup(rule)) return processRuleGroup(rule);
801
801
  const [validationResult, fieldValidator] = validateRule(rule);
802
802
  if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return "";
803
803
  const fieldData = require_utils.getOption(fields, rule.field);
@@ -829,10 +829,10 @@ const defaultRuleGroupProcessorMongoDB = (ruleGroup, options, meta) => {
829
829
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
830
830
  const processRuleGroup = (rg, outermost) => {
831
831
  if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
832
- const combinator = `"$${require_isRuleGroup.lc(rg.combinator)}"`;
832
+ const combinator = `"$${require_objectUtils.lc(rg.combinator)}"`;
833
833
  let hasChildRules = false;
834
834
  const expressions = rg.rules.map((rule) => {
835
- if (require_isRuleGroup.isRuleGroup(rule)) {
835
+ if (require_objectUtils.isRuleGroup(rule)) {
836
836
  const processedRuleGroup = processRuleGroup(rule);
837
837
  if (processedRuleGroup) {
838
838
  hasChildRules = true;
@@ -866,7 +866,7 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
866
866
  const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, translations, validateRule, validationMap } = options;
867
867
  const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
868
868
  if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
869
- const rg2 = require_isRuleGroup.isRuleGroupTypeIC(rg) && rg.rules.some((r) => typeof r === "string" && require_isRuleGroup.lc(r) === "xor") ? require_convertQuery.convertFromIC(rg) : rg;
869
+ const rg2 = require_objectUtils.isRuleGroupTypeIC(rg) && rg.rules.some((r) => typeof r === "string" && require_objectUtils.lc(r) === "xor") ? require_convertQuery.convertFromIC(rg) : rg;
870
870
  const processedRules = [];
871
871
  let precedingCombinator = "";
872
872
  let firstRule = true;
@@ -875,7 +875,7 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
875
875
  precedingCombinator = `, ${translations[rule] ?? rule} `;
876
876
  continue;
877
877
  }
878
- if (require_isRuleGroup.isRuleGroup(rule)) {
878
+ if (require_objectUtils.isRuleGroup(rule)) {
879
879
  const processedGroup = processRuleGroup(rule, rg2.rules.length === 1 && !(rg2.not || /^xor$/i.test(rg2.combinator ?? "")));
880
880
  // istanbul ignore else
881
881
  if (processedGroup) {
@@ -908,13 +908,13 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
908
908
  }
909
909
  }
910
910
  if (processedRules.length === 0) return fallbackExpression;
911
- const isXOR = require_isRuleGroup.lc(rg2.combinator ?? "") === "xor";
911
+ const isXOR = require_objectUtils.lc(rg2.combinator ?? "") === "xor";
912
912
  const combinator = isXOR ? rg2.combinator.slice(1) : rg2.combinator;
913
913
  const mustWrap = rg2.not || !outermostOrLonelyInGroup || isXOR && processedRules.length > 1;
914
914
  const [prefixTL, suffixTL] = ["groupPrefix", "groupSuffix"].map((key) => rg2.not ? isXOR ? require_utils.getNLTranslataion(key, translations, ["not", "xor"]) : require_utils.getNLTranslataion(key, translations, ["not"]) : isXOR ? require_utils.getNLTranslataion(key, translations, ["xor"]) : require_utils.getNLTranslataion(key, translations));
915
915
  const prefix = mustWrap ? `${prefixTL} (`.trim() : "";
916
916
  const suffix = mustWrap ? `) ${suffixTL}`.trim() : "";
917
- return `${prefix}${processedRules.join(require_isRuleGroup.isRuleGroupType(rg2) ? `, ${translations[combinator] ?? combinator} ` : "")}${suffix}`;
917
+ return `${prefix}${processedRules.join(require_objectUtils.isRuleGroupType(rg2) ? `, ${translations[combinator] ?? combinator} ` : "")}${suffix}`;
918
918
  };
919
919
  return processRuleGroup(ruleGroup, true);
920
920
  };
@@ -950,12 +950,12 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
950
950
  fieldParamNames,
951
951
  fieldData
952
952
  }, { processedParams: params });
953
- if (!require_isRuleGroup.isPojo(processedRule)) return "";
953
+ if (!require_objectUtils.isPojo(processedRule)) return "";
954
954
  const { sql, params: customParams } = processedRule;
955
955
  if (typeof sql !== "string" || !sql) return "";
956
956
  // istanbul ignore else
957
957
  if (format === "parameterized" && Array.isArray(customParams)) params.push(...customParams);
958
- else if (format === "parameterized_named" && require_isRuleGroup.isPojo(customParams)) {
958
+ else if (format === "parameterized_named" && require_objectUtils.isPojo(customParams)) {
959
959
  Object.assign(paramsNamed, customParams);
960
960
  for (const p of Object.keys(customParams)) fieldParams.get(rule.field)?.add(p);
961
961
  }
@@ -971,7 +971,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
971
971
  precedingCombinator = rule;
972
972
  continue;
973
973
  }
974
- if (require_isRuleGroup.isRuleGroup(rule)) {
974
+ if (require_objectUtils.isRuleGroup(rule)) {
975
975
  const processedGroup = processRuleGroup(rule, rg.rules.length === 1);
976
976
  // istanbul ignore else
977
977
  if (processedGroup) {
@@ -995,7 +995,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
995
995
  }
996
996
  }
997
997
  if (processedRules.length === 0) return fallbackExpression;
998
- return `${rg.not ? "NOT " : ""}(${processedRules.join(require_isRuleGroup.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ")})`;
998
+ return `${rg.not ? "NOT " : ""}(${processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ")})`;
999
999
  };
1000
1000
  if (parameterized) return {
1001
1001
  sql: processRuleGroup(ruleGroup, true),
@@ -1026,7 +1026,7 @@ const defaultRuleGroupProcessorPrisma = (ruleGroup, options) => {
1026
1026
  const combinator = rg.combinator.toUpperCase();
1027
1027
  let hasChildRules = false;
1028
1028
  const expressions = rg.rules.map((rule) => {
1029
- if (require_isRuleGroup.isRuleGroup(rule)) {
1029
+ if (require_objectUtils.isRuleGroup(rule)) {
1030
1030
  const processedRuleGroup = processRuleGroup(rule);
1031
1031
  if (processedRuleGroup) {
1032
1032
  hasChildRules = true;
@@ -1065,7 +1065,7 @@ const defaultRuleGroupProcessorSequelize = (ruleGroup, options) => {
1065
1065
  const combinator = rg.combinator.toUpperCase();
1066
1066
  let hasChildRules = false;
1067
1067
  const expressions = rg.rules.map((rule) => {
1068
- if (require_isRuleGroup.isRuleGroup(rule)) {
1068
+ if (require_objectUtils.isRuleGroup(rule)) {
1069
1069
  const processedRuleGroup = processRuleGroup(rule);
1070
1070
  if (processedRuleGroup) {
1071
1071
  hasChildRules = true;
@@ -1083,7 +1083,7 @@ const defaultRuleGroupProcessorSequelize = (ruleGroup, options) => {
1083
1083
  });
1084
1084
  }).filter(Boolean);
1085
1085
  if (expressions.length === 0) return;
1086
- const result = expressions.length === 1 && !hasChildRules ? expressions[0] : { [require_isRuleGroup.lc(combinator) === "or" ? Op.or : Op.and]: expressions };
1086
+ const result = expressions.length === 1 && !hasChildRules ? expressions[0] : { [require_objectUtils.lc(combinator) === "or" ? Op.or : Op.and]: expressions };
1087
1087
  return rg.not ? { [Op.not]: result } : result;
1088
1088
  };
1089
1089
  return processRuleGroup(require_convertQuery.convertFromIC(ruleGroup), true);
@@ -1107,7 +1107,7 @@ const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
1107
1107
  precedingCombinator = rule;
1108
1108
  continue;
1109
1109
  }
1110
- if (require_isRuleGroup.isRuleGroup(rule)) {
1110
+ if (require_objectUtils.isRuleGroup(rule)) {
1111
1111
  const processedGroup = processRuleGroup(rule, rg.rules.length === 1);
1112
1112
  // istanbul ignore else
1113
1113
  if (processedGroup) {
@@ -1140,7 +1140,7 @@ const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
1140
1140
  }
1141
1141
  }
1142
1142
  if (processedRules.length === 0) return fallbackExpression;
1143
- return `${rg.not ? "NOT " : ""}(${processedRules.join(require_isRuleGroup.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ")})`;
1143
+ return `${rg.not ? "NOT " : ""}(${processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ")})`;
1144
1144
  };
1145
1145
  return processRuleGroup(ruleGroup, true);
1146
1146
  };
@@ -1174,7 +1174,7 @@ const valueRenderer = (v, parseNumbers) => typeof v === "boolean" ? v : require_
1174
1174
  const defaultRuleProcessorElasticSearch = (rule, options = {}) => {
1175
1175
  const { field, operator, value, valueSource } = rule;
1176
1176
  const { parseNumbers, preserveValueOrder } = options;
1177
- const operatorLC = require_isRuleGroup.lc(operator);
1177
+ const operatorLC = require_objectUtils.lc(operator);
1178
1178
  const matchEval = require_utils.processMatchMode(rule);
1179
1179
  if (matchEval === false) return false;
1180
1180
  else if (matchEval) {
@@ -1337,7 +1337,7 @@ const defaultRuleProcessorJSONata = (rule, options = {}) => {
1337
1337
  }
1338
1338
  }
1339
1339
  }
1340
- const operatorLC = require_isRuleGroup.lc(operator);
1340
+ const operatorLC = require_objectUtils.lc(operator);
1341
1341
  switch (operatorLC) {
1342
1342
  case "<":
1343
1343
  case "<=":
@@ -1361,7 +1361,7 @@ const defaultRuleProcessorJSONata = (rule, options = {}) => {
1361
1361
  case "between":
1362
1362
  case "notbetween": {
1363
1363
  const valueAsArray = require_utils.toArray(value);
1364
- if (valueAsArray.length < 2 || require_isRuleGroup.nullOrUndefinedOrEmpty(valueAsArray[0]) || require_isRuleGroup.nullOrUndefinedOrEmpty(valueAsArray[1])) return "";
1364
+ if (valueAsArray.length < 2 || require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[0]) || require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[1])) return "";
1365
1365
  const [first, second] = valueAsArray;
1366
1366
  const shouldParseNumbers = !(parseNumbers === false);
1367
1367
  const firstNum = require_utils.shouldRenderAsNumber(first, shouldParseNumbers) ? require_utils.parseNumber(first, { parseNumbers: shouldParseNumbers }) : NaN;
@@ -1403,13 +1403,13 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
1403
1403
  switch (mode) {
1404
1404
  case "all":
1405
1405
  case "none":
1406
- case "some": return { [mode]: [{ var: field }, value.rules.length === 1 && !require_isRuleGroup.isRuleGroup(value.rules[0]) ? defaultRuleProcessorJsonLogic(value.rules[0], options) : defaultRuleGroupProcessorJsonLogic(value, options)] };
1406
+ case "some": return { [mode]: [{ var: field }, value.rules.length === 1 && !require_objectUtils.isRuleGroup(value.rules[0]) ? defaultRuleProcessorJsonLogic(value.rules[0], options) : defaultRuleGroupProcessorJsonLogic(value, options)] };
1407
1407
  case "atleast":
1408
1408
  case "atmost":
1409
1409
  case "exactly": {
1410
1410
  const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "==";
1411
1411
  const filteredCount = { reduce: [
1412
- { filter: [{ var: field }, value.rules.length === 1 && !require_isRuleGroup.isRuleGroup(value.rules[0]) ? defaultRuleProcessorJsonLogic(value.rules[0], options) : defaultRuleGroupProcessorJsonLogic(value, options)] },
1412
+ { filter: [{ var: field }, value.rules.length === 1 && !require_objectUtils.isRuleGroup(value.rules[0]) ? defaultRuleProcessorJsonLogic(value.rules[0], options) : defaultRuleGroupProcessorJsonLogic(value, options)] },
1413
1413
  { "+": [1, { var: "accumulator" }] },
1414
1414
  0
1415
1415
  ] };
@@ -1425,7 +1425,7 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
1425
1425
  }
1426
1426
  }
1427
1427
  }
1428
- const operatorLC = require_isRuleGroup.lc(operator);
1428
+ const operatorLC = require_objectUtils.lc(operator);
1429
1429
  switch (operatorLC) {
1430
1430
  case "<":
1431
1431
  case "<=":
@@ -1487,8 +1487,8 @@ const ldapEscape = (s) => `${require_utils.trimIfString(s)}`.replaceAll(/[()&|=<
1487
1487
  const defaultRuleProcessorLDAP = (rule, options = {}) => {
1488
1488
  const { field, operator, value, valueSource } = rule;
1489
1489
  const { preserveValueOrder } = options;
1490
- const operatorLC = require_isRuleGroup.lc(operator);
1491
- if (valueSource === "field" || require_isRuleGroup.nullOrUndefinedOrEmpty(value) && operatorLC !== "null" && operatorLC !== "notnull" || require_utils.processMatchMode(rule)) return "";
1490
+ const operatorLC = require_objectUtils.lc(operator);
1491
+ if (valueSource === "field" || require_objectUtils.nullOrUndefinedOrEmpty(value) && operatorLC !== "null" && operatorLC !== "notnull" || require_utils.processMatchMode(rule)) return "";
1492
1492
  switch (operatorLC) {
1493
1493
  case "=":
1494
1494
  case "!=": return negateIf(`(${field}=${ldapEscape(value)})`, operatorLC === "!=");
@@ -1509,7 +1509,7 @@ const defaultRuleProcessorLDAP = (rule, options = {}) => {
1509
1509
  case "between":
1510
1510
  case "notbetween": {
1511
1511
  const valueAsArray = require_utils.toArray(value);
1512
- if (valueAsArray.length < 2 || require_isRuleGroup.nullOrUndefinedOrEmpty(valueAsArray[0]) || require_isRuleGroup.nullOrUndefinedOrEmpty(valueAsArray[1])) return "";
1512
+ if (valueAsArray.length < 2 || require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[0]) || require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[1])) return "";
1513
1513
  const [first, second] = valueAsArray;
1514
1514
  const firstNum = require_utils.shouldRenderAsNumber(first, true) ? require_utils.parseNumber(first, { parseNumbers: true }) : NaN;
1515
1515
  const secondNum = require_utils.shouldRenderAsNumber(second, true) ? require_utils.parseNumber(second, { parseNumbers: true }) : NaN;
@@ -1537,7 +1537,7 @@ const escapeStringValueQuotes = (v, quoteChar, escapeQuotes) => escapeQuotes &&
1537
1537
  const defaultValueProcessorNL = (rule, opts = {}) => {
1538
1538
  const { escapeQuotes, fields, parseNumbers, quoteFieldNamesWith, quoteValuesWith, fieldIdentifierSeparator, translations } = opts;
1539
1539
  const valueIsField = rule.valueSource === "field";
1540
- const operatorLowerCase = require_isRuleGroup.lc(rule.operator);
1540
+ const operatorLowerCase = require_objectUtils.lc(rule.operator);
1541
1541
  const quoteChar = quoteValuesWith || "'";
1542
1542
  const quoteValue = (v) => `${quoteChar}${v}${quoteChar}`;
1543
1543
  const escapeValue = (v) => escapeStringValueQuotes(v, quoteChar, escapeQuotes);
@@ -1614,9 +1614,9 @@ const defaultOperatorProcessorNL = (rule, opts = {}) => {
1614
1614
  // istanbul ignore next
1615
1615
  const { getOperators = defaultGetOperators, operatorMap: operatorMapParam = defaultExportOperatorMap } = opts;
1616
1616
  const mergedOperatorMap = new Map(Object.entries(defaultExportOperatorMap));
1617
- for (const [key, value] of Object.entries(operatorMapParam)) mergedOperatorMap.set(require_isRuleGroup.lc(key), value);
1617
+ for (const [key, value] of Object.entries(operatorMapParam)) mergedOperatorMap.set(require_objectUtils.lc(key), value);
1618
1618
  const operatorMap = Object.fromEntries(mergedOperatorMap);
1619
- const operatorLC = require_isRuleGroup.lc(operator);
1619
+ const operatorLC = require_objectUtils.lc(operator);
1620
1620
  var normalizedOperator = operator;
1621
1621
  const hasSingleValue = require_utils.toArray(rule.value).length === 1;
1622
1622
  if (operatorLC === "in" && hasSingleValue) normalizedOperator = "=";
@@ -1630,7 +1630,7 @@ const defaultOperatorProcessorNL = (rule, opts = {}) => {
1630
1630
  value: normalizedOperator,
1631
1631
  label: normalizedOperator
1632
1632
  };
1633
- const operatorTL = operatorMap[operatorNL] ?? operatorMap[require_isRuleGroup.lc(operatorNL)] ?? [label, label];
1633
+ const operatorTL = operatorMap[operatorNL] ?? operatorMap[require_objectUtils.lc(operatorNL)] ?? [label, label];
1634
1634
  return typeof operatorTL === "string" ? operatorTL : operatorTL[valueSource === "field" ? 1 : 0];
1635
1635
  };
1636
1636
  /**
@@ -1675,7 +1675,7 @@ const defaultRuleProcessorNL = (rule, opts) => {
1675
1675
  quoteValuesWith,
1676
1676
  concatOperator
1677
1677
  });
1678
- const operatorLC = require_isRuleGroup.lc(operator);
1678
+ const operatorLC = require_objectUtils.lc(operator);
1679
1679
  if ((operatorLC === "in" || operatorLC === "notin" || operatorLC === "between" || operatorLC === "notbetween") && !value) return "";
1680
1680
  const wordOrderMap = {
1681
1681
  S: processedField,
@@ -1691,7 +1691,7 @@ const defaultRuleProcessorNL = (rule, opts) => {
1691
1691
  *
1692
1692
  * @group Export
1693
1693
  */
1694
- const defaultOperatorProcessorSQL = (rule) => require_isRuleGroup.lc(require_utils.mapSQLOperator(rule.operator));
1694
+ const defaultOperatorProcessorSQL = (rule) => require_objectUtils.lc(require_utils.mapSQLOperator(rule.operator));
1695
1695
  /**
1696
1696
  * Default rule processor used by {@link formatQuery} for "sql" format.
1697
1697
  *
@@ -1734,7 +1734,7 @@ const defaultRuleProcessorSQL = (rule, opts = {}) => {
1734
1734
  concatOperator
1735
1735
  });
1736
1736
  const operator = operatorProcessor(rule, opts);
1737
- const operatorLowerCase = require_isRuleGroup.lc(operator);
1737
+ const operatorLowerCase = require_objectUtils.lc(operator);
1738
1738
  if ((operatorLowerCase === "in" || operatorLowerCase === "not in" || operatorLowerCase === "between" || operatorLowerCase === "not between") && !value) return "";
1739
1739
  return `${ruleField} ${operator} ${value}`.trim();
1740
1740
  };
@@ -1801,7 +1801,7 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
1801
1801
  format
1802
1802
  });
1803
1803
  const sqlOperator = operatorProcessor(rule, opts);
1804
- const sqlOperatorLowerCase = require_isRuleGroup.lc(sqlOperator);
1804
+ const sqlOperatorLowerCase = require_objectUtils.lc(sqlOperator);
1805
1805
  const [qPre, qPost] = quoteFieldNamesWith;
1806
1806
  if ((sqlOperatorLowerCase === "in" || sqlOperatorLowerCase === "not in" || sqlOperatorLowerCase === "between" || sqlOperatorLowerCase === "not between") && !value) return finalize("");
1807
1807
  else if (sqlOperatorLowerCase === "is null" || sqlOperatorLowerCase === "is not null") return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator}`);
@@ -1855,7 +1855,7 @@ const defaultRuleProcessorPrisma = (rule, options = {}) => {
1855
1855
  // istanbul ignore next
1856
1856
  const { parseNumbers, preserveValueOrder } = options;
1857
1857
  if (valueSource === "field" || require_utils.processMatchMode(rule)) return;
1858
- const operatorLC = require_isRuleGroup.lc(operator);
1858
+ const operatorLC = require_objectUtils.lc(operator);
1859
1859
  switch (operatorLC) {
1860
1860
  case "=": return { [field]: processNumber(value, value, parseNumbers) };
1861
1861
  case "!=":
@@ -1915,7 +1915,7 @@ const defaultRuleProcessorSequelize = (rule, { parseNumbers, preserveValueOrder,
1915
1915
  if (require_utils.processMatchMode(rule)) return;
1916
1916
  const { field, operator, value, valueSource } = rule;
1917
1917
  const valueIsField = valueSource === "field";
1918
- const operatorLC = require_isRuleGroup.lc(operator);
1918
+ const operatorLC = require_objectUtils.lc(operator);
1919
1919
  if (!Op || valueIsField && (!col || !fn && [
1920
1920
  "doesnotcontain",
1921
1921
  "doesnotbeginwith",
@@ -2088,14 +2088,14 @@ const sqlFormats = new Set([
2088
2088
  "sequelize"
2089
2089
  ]);
2090
2090
  function formatQuery(ruleGroup, optionParam = {}) {
2091
- const options = typeof optionParam === "string" ? { format: require_isRuleGroup.lc(optionParam) } : optionParam;
2091
+ const options = typeof optionParam === "string" ? { format: require_objectUtils.lc(optionParam) } : optionParam;
2092
2092
  const optObj = {
2093
2093
  ...defaultFormatQueryOptions,
2094
2094
  ...!options.format || sqlFormats.has(options.format) ? sqlDialectPresets[options.preset ?? "ansi"] ?? null : null,
2095
2095
  ...options,
2096
2096
  ...!options.format && (Object.keys(sqlDialectPresets).includes(options.preset ?? "") ? { format: "sql" } : null)
2097
2097
  };
2098
- const format = require_isRuleGroup.lc(optObj.format);
2098
+ const format = require_objectUtils.lc(optObj.format);
2099
2099
  const { fallbackExpression: fallbackExpression_option, getOperators: getOperators_option, operatorProcessor: operatorProcessor_option, parseNumbers, quoteFieldNamesWith: quoteFieldNamesWith_option, ruleGroupProcessor: ruleGroupProcessor_option, ruleProcessor: ruleProcessor_option, validator, valueProcessor: valueProcessor_option, context } = optObj;
2100
2100
  const getParseNumberBoolean = (inputType) => {
2101
2101
  return typeof require_utils.getParseNumberMethod({
@@ -1,7 +1,7 @@
1
- import { E as parseNumber, O as toArray, S as toFlatOptionArray, _ as shouldRenderAsNumber, a as getNLTranslataion, c as isValidValue, d as mapSQLOperator, f as mongoOperators, g as processMatchMode, h as prismaOperators, i as defaultNLTranslations, k as trimIfString, l as isValueProcessorLegacy, m as numerifyValues, n as bigIntJsonStringifyReplacer, o as getQuoteFieldNamesWithArray, p as normalizeConstituentWordOrder, r as celCombinatorMap, s as getQuotedFieldName, t as bigIntJsonParseReviver, u as jsonLogicAdditionalOperators, v as getParseNumberMethod, w as toFullOptionList, y as getOption } from "./utils-DQoYnxpa.mjs";
2
- import { a as lc, i as isPojo, n as isRuleGroupType, o as nullOrUndefinedOrEmpty, r as isRuleGroupTypeIC, t as isRuleGroup } from "./isRuleGroup-LzP0HCKh.mjs";
1
+ import { D as toArray, O as trimIfString, S as toFlatOptionArray, T as parseNumber, _ as shouldRenderAsNumber, a as getNLTranslataion, c as isValidValue, d as mapSQLOperator, f as mongoOperators, g as processMatchMode, h as prismaOperators, i as defaultNLTranslations, l as isValueProcessorLegacy, m as numerifyValues, n as bigIntJsonStringifyReplacer, o as getQuoteFieldNamesWithArray, p as normalizeConstituentWordOrder, r as celCombinatorMap, s as getQuotedFieldName, t as bigIntJsonParseReviver, u as jsonLogicAdditionalOperators, v as getParseNumberMethod, w as toFullOptionList, y as getOption } from "./utils-BlMGIhvx.mjs";
2
+ import { a as isRuleGroupTypeIC, c as nullOrUndefinedOrEmpty, i as isRuleGroupType, o as isPojo, r as isRuleGroup, s as lc } from "./objectUtils-C0WB-8ex.mjs";
3
3
  import { transformQuery } from "./transformQuery.mjs";
4
- import { t as convertFromIC } from "./convertQuery-B5Qm_6ut.mjs";
4
+ import { t as convertFromIC } from "./convertQuery-CeJSNn37.mjs";
5
5
  //#region src/utils/isRuleOrGroupValid.ts
6
6
  /**
7
7
  * Determines if an object is useful as a validation result.