@react-querybuilder/core 8.11.1 → 8.11.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 (88) hide show
  1. package/dist/{basic-B4vXboTG.d.mts → basic-CLG_Bmom.d.mts} +1 -1
  2. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +14 -2
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js +23 -11
  4. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  5. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +14 -2
  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/{convertQuery-DAqoID3O.js → convertQuery-C7NvB0XA.js} +1 -1
  9. package/dist/{convertQuery-DAqoID3O.js.map → convertQuery-C7NvB0XA.js.map} +1 -1
  10. package/dist/{convertQuery-CqX3rPvj.mjs → convertQuery-Cj4t-LT4.mjs} +2 -2
  11. package/dist/{convertQuery-CqX3rPvj.mjs.map → convertQuery-Cj4t-LT4.mjs.map} +1 -1
  12. package/dist/{export-BjRt-qrK.d.mts → export-B2Yw5gak.d.mts} +2 -2
  13. package/dist/formatQuery.d.mts +15 -3
  14. package/dist/formatQuery.d.ts +13 -1
  15. package/dist/formatQuery.js +170 -423
  16. package/dist/formatQuery.js.map +1 -1
  17. package/dist/formatQuery.mjs +4 -257
  18. package/dist/formatQuery.mjs.map +1 -1
  19. package/dist/{import-Bc_p8ls9.d.mts → import-BtpySRSy.d.mts} +2 -2
  20. package/dist/{isRuleGroup-CYcfPgbg.mjs → isRuleGroup-BcfwGaIN.mjs} +1 -1
  21. package/dist/{isRuleGroup-CYcfPgbg.mjs.map → isRuleGroup-BcfwGaIN.mjs.map} +1 -1
  22. package/dist/parseCEL.d.mts +32 -7
  23. package/dist/parseCEL.d.ts +30 -5
  24. package/dist/parseCEL.js +168 -9
  25. package/dist/parseCEL.js.map +1 -1
  26. package/dist/parseCEL.mjs +163 -8
  27. package/dist/parseCEL.mjs.map +1 -1
  28. package/dist/parseJSONata.d.mts +2 -2
  29. package/dist/parseJSONata.js +2 -2
  30. package/dist/parseJSONata.mjs +3 -3
  31. package/dist/parseJsonLogic.d.mts +3 -3
  32. package/dist/parseJsonLogic.js +9 -10
  33. package/dist/parseJsonLogic.js.map +1 -1
  34. package/dist/parseJsonLogic.mjs +4 -5
  35. package/dist/parseJsonLogic.mjs.map +1 -1
  36. package/dist/parseMongoDB.d.mts +2 -2
  37. package/dist/parseMongoDB.js +19 -20
  38. package/dist/parseMongoDB.js.map +1 -1
  39. package/dist/parseMongoDB.mjs +4 -5
  40. package/dist/parseMongoDB.mjs.map +1 -1
  41. package/dist/parseSQL.d.mts +2 -2
  42. package/dist/parseSQL.js +8 -10
  43. package/dist/parseSQL.js.map +1 -1
  44. package/dist/parseSQL.mjs +3 -5
  45. package/dist/parseSQL.mjs.map +1 -1
  46. package/dist/parseSpEL.d.mts +2 -2
  47. package/dist/parseSpEL.js +3 -4
  48. package/dist/parseSpEL.js.map +1 -1
  49. package/dist/parseSpEL.mjs +3 -4
  50. package/dist/parseSpEL.mjs.map +1 -1
  51. package/dist/{prepareQueryObjects-DPCC-iHp.mjs → prepareQueryObjects-BfnyRV5t.mjs} +4 -3
  52. package/dist/{prepareQueryObjects-DPCC-iHp.mjs.map → prepareQueryObjects-BfnyRV5t.mjs.map} +1 -1
  53. package/dist/{prepareQueryObjects-BOUWfel5.js → prepareQueryObjects-Cz_28zYz.js} +12 -11
  54. package/dist/prepareQueryObjects-Cz_28zYz.js.map +1 -0
  55. package/dist/react-querybuilder_core.d.mts +14 -2
  56. package/dist/react-querybuilder_core.legacy-esm.d.ts +14 -2
  57. package/dist/react-querybuilder_core.legacy-esm.js +23 -11
  58. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  59. package/dist/react-querybuilder_core.mjs +23 -11
  60. package/dist/react-querybuilder_core.mjs.map +1 -1
  61. package/dist/react-querybuilder_core.production.d.mts +14 -2
  62. package/dist/react-querybuilder_core.production.mjs +1 -1
  63. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  64. package/dist/{transformQuery-CWDPogO5.js → transformQuery-B4SaTTO-.js} +1 -1
  65. package/dist/{transformQuery-CWDPogO5.js.map → transformQuery-B4SaTTO-.js.map} +1 -1
  66. package/dist/{transformQuery-DCCpjtyq.mjs → transformQuery-C85j__7e.mjs} +2 -2
  67. package/dist/{transformQuery-DCCpjtyq.mjs.map → transformQuery-C85j__7e.mjs.map} +1 -1
  68. package/dist/transformQuery.d.mts +1 -1
  69. package/dist/transformQuery.js +1 -1
  70. package/dist/transformQuery.mjs +2 -2
  71. package/dist/utils-Dkz3Xn2D.js +707 -0
  72. package/dist/utils-Dkz3Xn2D.js.map +1 -0
  73. package/dist/utils-DxH23QtE.mjs +514 -0
  74. package/dist/utils-DxH23QtE.mjs.map +1 -0
  75. package/package.json +8 -8
  76. package/dist/arrayUtils-A_OXU9W1.mjs +0 -50
  77. package/dist/arrayUtils-A_OXU9W1.mjs.map +0 -1
  78. package/dist/arrayUtils-QxZOZTf6.js +0 -73
  79. package/dist/arrayUtils-QxZOZTf6.js.map +0 -1
  80. package/dist/optGroupUtils-B0hTpodo.js +0 -251
  81. package/dist/optGroupUtils-B0hTpodo.js.map +0 -1
  82. package/dist/optGroupUtils-VeZ3k7-1.mjs +0 -185
  83. package/dist/optGroupUtils-VeZ3k7-1.mjs.map +0 -1
  84. package/dist/parseNumber-CXdMVNFx.mjs +0 -24
  85. package/dist/parseNumber-CXdMVNFx.mjs.map +0 -1
  86. package/dist/parseNumber-D4iQDxK-.js +0 -31
  87. package/dist/parseNumber-D4iQDxK-.js.map +0 -1
  88. package/dist/prepareQueryObjects-BOUWfel5.js.map +0 -1
package/dist/parseCEL.mjs CHANGED
@@ -1,7 +1,6 @@
1
- import { l as defaultOperatorNegationMap } from "./optGroupUtils-VeZ3k7-1.mjs";
2
- import { t as joinWith } from "./arrayUtils-A_OXU9W1.mjs";
3
- import { t as isRuleGroup } from "./isRuleGroup-CYcfPgbg.mjs";
4
- import { n as fieldIsValidUtil, r as getFieldsArray, t as prepareRuleGroup } from "./prepareQueryObjects-DPCC-iHp.mjs";
1
+ import { A as defaultOperatorNegationMap, D as joinWith } from "./utils-DxH23QtE.mjs";
2
+ import { t as isRuleGroup } from "./isRuleGroup-BcfwGaIN.mjs";
3
+ import { n as fieldIsValidUtil, r as getFieldsArray, t as prepareRuleGroup } from "./prepareQueryObjects-BfnyRV5t.mjs";
5
4
  import { JisonParser } from "@ts-jison/parser";
6
5
  import { JisonLexer } from "@ts-jison/lexer";
7
6
 
@@ -2058,14 +2057,39 @@ const isCELProperty = (expr) => expr.type === "Property";
2058
2057
  // istanbul ignore next
2059
2058
  const isCELSubtraction = (expr) => expr.type === "Subtraction";
2060
2059
  const isCELUnsignedIntegerLiteral = (expr) => expr.type === "UnsignedIntegerLiteral";
2061
- const isCELIdentifierOrChain = (expr) => isCELIdentifier(expr) || isCELMember(expr) && !!expr.left && !!expr.right && !expr.list && !expr.value && isCELIdentifierOrChain(expr.left) && isCELIdentifier(expr.right);
2060
+ const isCELIdentifierOrChain = (expr) => isCELIdentifier(expr) || isCELDynamicPropertyAccessor(expr) || isCELMember(expr) && !!expr.left && !!expr.right && !expr.list && !expr.value && isCELIdentifierOrChain(expr.left) && isCELIdentifier(expr.right);
2062
2061
  const isCELNegatedIdentifier = (expr) => isCELNegation(expr) && isCELIdentifier(expr.value);
2063
2062
  const isCELNegatedIdentifierOrChain = (expr) => isCELNegatedIdentifier(expr) || isCELMember(expr) && !!expr.left && !!expr.right && !expr.list && !expr.value && isCELIdentifierOrChain(expr.right) && isCELNegatedIdentifier(expr.left);
2064
2063
  const isCELLikeExpression = (expr) => isCELMember(expr) && !!expr.left && !!expr.right && !!expr.list && isCELIdentifierOrChain(expr.left) && isCELIdentifier(expr.right) && (expr.right.value === "contains" || expr.right.value === "startsWith" || expr.right.value === "endsWith") && expr.list.value.length === 1 && (isCELStringLiteral(expr.list.value[0]) || isCELIdentifier(expr.list.value[0]));
2065
2064
  const isCELNegatedLikeExpression = (expr) => isCELMember(expr) && !!expr.left && !!expr.right && !!expr.list && isCELNegatedIdentifierOrChain(expr.left) && isCELIdentifier(expr.right) && (expr.right.value === "contains" || expr.right.value === "startsWith" || expr.right.value === "endsWith") && expr.list.value.length === 1 && (isCELStringLiteral(expr.list.value[0]) || isCELIdentifier(expr.list.value[0]));
2065
+ const isCELSubqueryExpression = (expr) => isCELMember(expr) && !!expr.left && !!expr.right && !!expr.list && isCELIdentifierOrChain(expr.left) && isCELIdentifier(expr.right) && (expr.right.value === "all" || expr.right.value === "exists") && expr.list.value.length >= 2;
2066
+ const isCELNegatedSubqueryExpression = (expr) => isCELMember(expr) && !!expr.left && !!expr.right && !!expr.list && isCELNegatedIdentifierOrChain(expr.left) && isCELIdentifier(expr.right) && (expr.right.value === "all" || expr.right.value === "exists") && expr.list.value.length >= 2;
2067
+ const extractSubqueryComponents = (expr) => {
2068
+ // istanbul ignore next
2069
+ if (!isCELSubqueryExpression(expr)) return null;
2070
+ const field = getCELIdentifierFromChain(expr.left);
2071
+ const method = expr.right.value;
2072
+ const [aliasExpr, conditionExpr] = expr.list.value;
2073
+ return {
2074
+ field,
2075
+ method,
2076
+ alias: isCELIdentifier(aliasExpr) ? aliasExpr.value : null,
2077
+ condition: conditionExpr
2078
+ };
2079
+ };
2066
2080
  const getCELIdentifierFromChain = (expr) => {
2067
2081
  if (isCELIdentifier(expr)) return expr.value;
2068
- return `${getCELIdentifierFromChain(expr.left)}.${expr.right.value}`;
2082
+ if (isCELDynamicPropertyAccessor(expr)) {
2083
+ const leftField = getCELIdentifierFromChain(expr.left);
2084
+ // istanbul ignore else
2085
+ if (isCELStringLiteral(expr.right)) return `${leftField}["${evalCELLiteralValue(expr.right)}"]`;
2086
+ // istanbul ignore next
2087
+ return `${leftField}[${expr.right.type}]`;
2088
+ }
2089
+ // istanbul ignore else
2090
+ if (expr.left && expr.right && isCELIdentifier(expr.right) && (isCELIdentifier(expr.left) || isCELMember(expr.left) || isCELDynamicPropertyAccessor(expr.left))) return `${getCELIdentifierFromChain(expr.left)}.${expr.right.value}`;
2091
+ // istanbul ignore next
2092
+ return expr.type;
2069
2093
  };
2070
2094
  const getCELIdentifierFromNegatedChain = (expr) => {
2071
2095
  if (isCELNegatedIdentifier(expr)) return `${``.padStart(expr.negations, `!`)}${expr.value.value}`;
@@ -2128,6 +2152,91 @@ const celGenerateMixedAndOrList = (expr) => {
2128
2152
  if (returnArray.length === 1 && Array.isArray(returnArray[0])) return returnArray[0];
2129
2153
  return returnArray;
2130
2154
  };
2155
+ const isPrimitiveArrayUsage = (expr, alias) => {
2156
+ // istanbul ignore next
2157
+ if (!alias) return false;
2158
+ if (isCELIdentifier(expr) && expr.value === alias) return true;
2159
+ if (isCELLikeExpression(expr) && isCELIdentifier(expr.left) && expr.left.value === alias) return true;
2160
+ if (isCELRelation(expr) || isCELConditionalAnd(expr) || isCELConditionalOr(expr)) return isPrimitiveArrayUsage(expr.left, alias) || isPrimitiveArrayUsage(expr.right, alias);
2161
+ // istanbul ignore next
2162
+ if (isCELExpressionGroup(expr) || isCELNegation(expr)) return isPrimitiveArrayUsage(expr.value, alias);
2163
+ return false;
2164
+ };
2165
+ const transformAliasInExpressionInternal = (expr, alias, isPrimitive) => {
2166
+ // istanbul ignore next
2167
+ if (!alias) return expr;
2168
+ if (isCELIdentifier(expr) && expr.value === alias) return {
2169
+ type: "Identifier",
2170
+ value: ""
2171
+ };
2172
+ if (isCELMember(expr) && expr.left && isCELIdentifier(expr.left) && expr.left.value === alias) {
2173
+ if (expr.right && isCELIdentifier(expr.right) && !isPrimitive) return expr.right;
2174
+ }
2175
+ if (isCELLikeExpression(expr) && isCELIdentifier(expr.left) && expr.left.value === alias) return {
2176
+ type: "Member",
2177
+ left: {
2178
+ type: "Identifier",
2179
+ value: ""
2180
+ },
2181
+ right: expr.right,
2182
+ list: expr.list
2183
+ };
2184
+ if (isCELNegatedLikeExpression(expr) && expr.left && isCELNegatedIdentifier(expr.left) && expr.left.value.value === alias) return {
2185
+ type: "Member",
2186
+ left: {
2187
+ type: "Negation",
2188
+ negations: expr.left.negations,
2189
+ value: {
2190
+ type: "Identifier",
2191
+ value: ""
2192
+ }
2193
+ },
2194
+ right: expr.right,
2195
+ list: expr.list
2196
+ };
2197
+ if (isCELMember(expr) && expr.left && expr.right) {
2198
+ const transformedLeft = transformAliasInExpressionInternal(expr.left, alias, isPrimitive);
2199
+ // istanbul ignore else
2200
+ if (transformedLeft !== expr.left) return {
2201
+ type: "Member",
2202
+ left: transformedLeft,
2203
+ right: expr.right,
2204
+ list: expr.list,
2205
+ value: expr.value
2206
+ };
2207
+ }
2208
+ if (isCELRelation(expr)) return {
2209
+ type: "Relation",
2210
+ left: transformAliasInExpressionInternal(expr.left, alias, isPrimitive),
2211
+ right: transformAliasInExpressionInternal(expr.right, alias, isPrimitive),
2212
+ operator: expr.operator
2213
+ };
2214
+ if (isCELConditionalAnd(expr)) return {
2215
+ type: "ConditionalAnd",
2216
+ left: transformAliasInExpressionInternal(expr.left, alias, isPrimitive),
2217
+ right: transformAliasInExpressionInternal(expr.right, alias, isPrimitive)
2218
+ };
2219
+ if (isCELConditionalOr(expr)) return {
2220
+ type: "ConditionalOr",
2221
+ left: transformAliasInExpressionInternal(expr.left, alias, isPrimitive),
2222
+ right: transformAliasInExpressionInternal(expr.right, alias, isPrimitive)
2223
+ };
2224
+ if (isCELExpressionGroup(expr)) return {
2225
+ type: "ExpressionGroup",
2226
+ value: transformAliasInExpressionInternal(expr.value, alias, isPrimitive)
2227
+ };
2228
+ if (isCELNegation(expr)) return {
2229
+ type: "Negation",
2230
+ negations: expr.negations,
2231
+ value: transformAliasInExpressionInternal(expr.value, alias, isPrimitive)
2232
+ };
2233
+ return expr;
2234
+ };
2235
+ const transformAliasInExpression = (expr, alias) => {
2236
+ // istanbul ignore next
2237
+ if (!alias) return expr;
2238
+ return transformAliasInExpressionInternal(expr, alias, isPrimitiveArrayUsage(expr, alias));
2239
+ };
2131
2240
 
2132
2241
  //#endregion
2133
2242
  //#region src/utils/parseCEL/parseCEL.ts
@@ -2226,6 +2335,52 @@ function parseCEL(cel, options = {}) {
2226
2335
  operator,
2227
2336
  value
2228
2337
  };
2338
+ } else if (isCELSubqueryExpression(expr)) {
2339
+ const components = extractSubqueryComponents(expr);
2340
+ // istanbul ignore else
2341
+ if (components) {
2342
+ const { field, method, alias, condition } = components;
2343
+ const matchMode = method === "all" ? "all" : "some";
2344
+ const subqueryValue = processCELExpression(transformAliasInExpression(condition, alias));
2345
+ if (subqueryValue && fieldIsValid(field, "=")) {
2346
+ const ruleGroupValue = isRuleGroup(subqueryValue) ? subqueryValue : ic ? { rules: [subqueryValue] } : {
2347
+ combinator: "and",
2348
+ rules: [subqueryValue]
2349
+ };
2350
+ return {
2351
+ field,
2352
+ operator: "=",
2353
+ match: { mode: matchMode },
2354
+ value: ruleGroupValue
2355
+ };
2356
+ }
2357
+ }
2358
+ } else if (isCELNegatedSubqueryExpression(expr)) {
2359
+ const field = getCELIdentifierFromNegatedChain(expr.left).replace(/^!+/, "");
2360
+ const method = expr.right.value;
2361
+ const [aliasExpr, conditionExpr] = expr.list.value;
2362
+ const subqueryValue = processCELExpression(transformAliasInExpression(conditionExpr, isCELIdentifier(aliasExpr) ? aliasExpr.value : null));
2363
+ // istanbul ignore else
2364
+ if (subqueryValue && fieldIsValid(field, "=")) {
2365
+ const ruleGroupValue = isRuleGroup(subqueryValue) ? subqueryValue : ic ? { rules: [subqueryValue] } : {
2366
+ combinator: "and",
2367
+ rules: [subqueryValue]
2368
+ };
2369
+ const subqueryRule = {
2370
+ field,
2371
+ operator: "=",
2372
+ match: { mode: method === "all" ? "all" : "some" },
2373
+ value: ruleGroupValue
2374
+ };
2375
+ return ic ? {
2376
+ not: true,
2377
+ rules: [subqueryRule]
2378
+ } : {
2379
+ combinator: "and",
2380
+ not: true,
2381
+ rules: [subqueryRule]
2382
+ };
2383
+ }
2229
2384
  } else if (isCELRelation(expr)) {
2230
2385
  let field = null;
2231
2386
  let value = void 0;
@@ -2258,7 +2413,7 @@ function parseCEL(cel, options = {}) {
2258
2413
  if (keys.every((k) => isCELLiteral(k) || isCELIdentifierOrChain(k))) value = keys.map((k) => isCELLiteral(k) ? evalCELLiteralValue(k) : getCELIdentifierFromChain(k));
2259
2414
  if (value && !listsAsArrays) value = joinWith(value.map((v) => `${v}`), ",");
2260
2415
  }
2261
- if (field && fieldIsValid(field, operator, valueSource === "field" ? value : void 0) && value !== void 0) return valueSource ? {
2416
+ if (field !== null && fieldIsValid(field, operator, valueSource === "field" ? value : void 0) && value !== void 0) return valueSource ? {
2262
2417
  field,
2263
2418
  operator,
2264
2419
  value,
@@ -2291,5 +2446,5 @@ function parseCEL(cel, options = {}) {
2291
2446
  }
2292
2447
 
2293
2448
  //#endregion
2294
- export { celGenerateFlatAndOrList, celGenerateMixedAndOrList, celNormalizeCombinator, celNormalizeOperator, evalCELLiteralValue, getCELIdentifierFromChain, getCELIdentifierFromNegatedChain, isCELAddition, isCELBooleanLiteral, isCELBytesLiteral, isCELConditionalAnd, isCELConditionalExpr, isCELConditionalOr, isCELDivision, isCELDynamicPropertyAccessor, isCELExpressionGroup, isCELExpressionList, isCELFieldInit, isCELFieldInits, isCELFieldsObject, isCELFloatLiteral, isCELFunctionCall, isCELIdentifier, isCELIdentifierOrChain, isCELIntegerLiteral, isCELLikeExpression, isCELList, isCELLiteral, isCELMap, isCELMapInit, isCELMapInits, isCELMember, isCELModulo, isCELMultiplication, isCELNegatedIdentifier, isCELNegatedIdentifierOrChain, isCELNegatedLikeExpression, isCELNegation, isCELNegative, isCELNullLiteral, isCELNumericLiteral, isCELProperty, isCELRelation, isCELStringLiteral, isCELSubtraction, isCELUnsignedIntegerLiteral, parseCEL };
2449
+ export { celGenerateFlatAndOrList, celGenerateMixedAndOrList, celNormalizeCombinator, celNormalizeOperator, evalCELLiteralValue, extractSubqueryComponents, getCELIdentifierFromChain, getCELIdentifierFromNegatedChain, isCELAddition, isCELBooleanLiteral, isCELBytesLiteral, isCELConditionalAnd, isCELConditionalExpr, isCELConditionalOr, isCELDivision, isCELDynamicPropertyAccessor, isCELExpressionGroup, isCELExpressionList, isCELFieldInit, isCELFieldInits, isCELFieldsObject, isCELFloatLiteral, isCELFunctionCall, isCELIdentifier, isCELIdentifierOrChain, isCELIntegerLiteral, isCELLikeExpression, isCELList, isCELLiteral, isCELMap, isCELMapInit, isCELMapInits, isCELMember, isCELModulo, isCELMultiplication, isCELNegatedIdentifier, isCELNegatedIdentifierOrChain, isCELNegatedLikeExpression, isCELNegatedSubqueryExpression, isCELNegation, isCELNegative, isCELNullLiteral, isCELNumericLiteral, isCELProperty, isCELRelation, isCELStringLiteral, isCELSubqueryExpression, isCELSubtraction, isCELUnsignedIntegerLiteral, parseCEL, transformAliasInExpression };
2295
2450
  //# sourceMappingURL=parseCEL.mjs.map