@react-querybuilder/core 8.14.0 → 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.
- package/dist/{basic-Dxm6jWFu.d.ts → basic-BXJVfD0P.d.ts} +68 -50
- package/dist/{basic-GFsWfi0Z.d.mts → basic-CNIjb6rI.d.mts} +68 -50
- package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +183 -127
- package/dist/cjs/react-querybuilder_core.cjs.development.js +311 -252
- package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +183 -127
- package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
- package/dist/{convertQuery-DAj92cbM.mjs → convertQuery-CeJSNn37.mjs} +30 -22
- package/dist/convertQuery-CeJSNn37.mjs.map +1 -0
- package/dist/convertQuery-J8LpTG-7.js +94 -0
- package/dist/convertQuery-J8LpTG-7.js.map +1 -0
- package/dist/{export-_wipiqJZ.d.mts → export-6x7MilFR.d.mts} +2 -3
- package/dist/{export-6VbkhCrf.d.ts → export-CpJOQuZv.d.ts} +2 -3
- package/dist/formatQuery.d.mts +4 -3
- package/dist/formatQuery.d.ts +4 -3
- package/dist/formatQuery.js +75 -107
- package/dist/formatQuery.js.map +1 -1
- package/dist/formatQuery.mjs +17 -49
- package/dist/formatQuery.mjs.map +1 -1
- package/dist/{import-D8M7awTx.d.ts → import-B5Iq8XmL.d.ts} +2 -3
- package/dist/{import-DRmutNSr.d.mts → import-Bltb2mT4.d.mts} +2 -3
- package/dist/objectUtils-ButT0Mng.js +105 -0
- package/dist/objectUtils-ButT0Mng.js.map +1 -0
- package/dist/{isRuleGroup-DztIOOKa.mjs → objectUtils-C0WB-8ex.mjs} +16 -5
- package/dist/objectUtils-C0WB-8ex.mjs.map +1 -0
- package/dist/parseCEL.d.mts +2 -2
- package/dist/parseCEL.d.ts +2 -2
- package/dist/parseCEL.js +14 -16
- package/dist/parseCEL.js.map +1 -1
- package/dist/parseCEL.mjs +7 -10
- package/dist/parseCEL.mjs.map +1 -1
- package/dist/parseJSONata.d.mts +2 -3
- package/dist/parseJSONata.d.ts +2 -3
- package/dist/parseJSONata.js +40 -5614
- package/dist/parseJSONata.js.map +1 -1
- package/dist/parseJSONata.mjs +11 -13
- package/dist/parseJSONata.mjs.map +1 -1
- package/dist/parseJsonLogic.d.mts +3 -4
- package/dist/parseJsonLogic.d.ts +3 -4
- package/dist/parseJsonLogic.js +47 -48
- package/dist/parseJsonLogic.js.map +1 -1
- package/dist/parseJsonLogic.mjs +19 -21
- package/dist/parseJsonLogic.mjs.map +1 -1
- package/dist/parseMongoDB.d.mts +2 -3
- package/dist/parseMongoDB.d.ts +2 -3
- package/dist/parseMongoDB.js +26 -27
- package/dist/parseMongoDB.js.map +1 -1
- package/dist/parseMongoDB.mjs +6 -8
- package/dist/parseMongoDB.mjs.map +1 -1
- package/dist/parseSQL.d.mts +2 -3
- package/dist/parseSQL.d.ts +2 -3
- package/dist/parseSQL.js +13 -15
- package/dist/parseSQL.js.map +1 -1
- package/dist/parseSQL.mjs +7 -10
- package/dist/parseSQL.mjs.map +1 -1
- package/dist/parseSpEL.d.mts +2 -3
- package/dist/parseSpEL.d.ts +2 -3
- package/dist/parseSpEL.js +13 -2702
- package/dist/parseSpEL.js.map +1 -1
- package/dist/parseSpEL.mjs +7 -9
- package/dist/parseSpEL.mjs.map +1 -1
- package/dist/{prepareQueryObjects-BBayjIn2.mjs → prepareQueryObjects-BfMlS4ql.mjs} +34 -18
- package/dist/prepareQueryObjects-BfMlS4ql.mjs.map +1 -0
- package/dist/{prepareQueryObjects-BxWvIPI4.js → prepareQueryObjects-DO3qXriW.js} +50 -35
- package/dist/prepareQueryObjects-DO3qXriW.js.map +1 -0
- package/dist/react-querybuilder_core.d.mts +183 -127
- package/dist/react-querybuilder_core.legacy-esm.d.ts +183 -127
- package/dist/react-querybuilder_core.legacy-esm.js +307 -280
- package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
- package/dist/react-querybuilder_core.mjs +299 -248
- package/dist/react-querybuilder_core.mjs.map +1 -1
- package/dist/react-querybuilder_core.production.d.mts +183 -127
- package/dist/react-querybuilder_core.production.mjs +1 -1
- package/dist/react-querybuilder_core.production.mjs.map +1 -1
- package/dist/transformQuery.d.mts +1 -2
- package/dist/transformQuery.d.ts +1 -2
- package/dist/transformQuery.js +45 -2
- package/dist/transformQuery.js.map +1 -0
- package/dist/transformQuery.mjs +44 -2
- package/dist/transformQuery.mjs.map +1 -0
- package/dist/{utils-nQU7WCM9.mjs → utils-BlMGIhvx.mjs} +32 -92
- package/dist/utils-BlMGIhvx.mjs.map +1 -0
- package/dist/{utils-CR1ToTMW.js → utils-CZRhzje-.js} +187 -265
- package/dist/utils-CZRhzje-.js.map +1 -0
- package/package.json +25 -17
- package/dist/chunk-U64pC571.js +0 -41
- package/dist/convertQuery-DAj92cbM.mjs.map +0 -1
- package/dist/convertQuery-DRldbzhZ.js +0 -87
- package/dist/convertQuery-DRldbzhZ.js.map +0 -1
- package/dist/isRuleGroup-Cjk1Q2mj.js +0 -82
- package/dist/isRuleGroup-Cjk1Q2mj.js.map +0 -1
- package/dist/isRuleGroup-DztIOOKa.mjs.map +0 -1
- package/dist/prepareQueryObjects-BBayjIn2.mjs.map +0 -1
- package/dist/prepareQueryObjects-BxWvIPI4.js.map +0 -1
- package/dist/transformQuery-ClBRfnFg.js +0 -54
- package/dist/transformQuery-ClBRfnFg.js.map +0 -1
- package/dist/transformQuery-DUpbpqjX.mjs +0 -48
- package/dist/transformQuery-DUpbpqjX.mjs.map +0 -1
- package/dist/utils-CR1ToTMW.js.map +0 -1
- package/dist/utils-nQU7WCM9.mjs.map +0 -1
package/dist/formatQuery.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
const require_utils = require(
|
|
3
|
-
const
|
|
4
|
-
const require_transformQuery = require(
|
|
5
|
-
const require_convertQuery = require(
|
|
6
|
-
let immer = require("immer");
|
|
7
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_utils = require("./utils-CZRhzje-.js");
|
|
3
|
+
const require_objectUtils = require("./objectUtils-ButT0Mng.js");
|
|
4
|
+
const require_transformQuery = require("./transformQuery.js");
|
|
5
|
+
const require_convertQuery = require("./convertQuery-J8LpTG-7.js");
|
|
8
6
|
//#region src/utils/isRuleOrGroupValid.ts
|
|
9
7
|
/**
|
|
10
8
|
* Determines if an object is useful as a validation result.
|
|
11
9
|
*/
|
|
12
|
-
const isValidationResult = (vr) =>
|
|
10
|
+
const isValidationResult = (vr) => require_objectUtils.isPojo(vr) && typeof vr.valid === "boolean";
|
|
13
11
|
/**
|
|
14
12
|
* Determines if a rule or group is valid based on a validation result (if defined)
|
|
15
13
|
* or a validator function. Returns `true` if neither are defined and the `muted`
|
|
@@ -19,7 +17,7 @@ const isRuleOrGroupValid = (rg, validationResult, validator) => {
|
|
|
19
17
|
if (rg.muted) return false;
|
|
20
18
|
if (typeof validationResult === "boolean") return validationResult;
|
|
21
19
|
if (isValidationResult(validationResult)) return validationResult.valid;
|
|
22
|
-
if (typeof validator === "function" && !
|
|
20
|
+
if (typeof validator === "function" && !require_objectUtils.isRuleGroup(rg)) {
|
|
23
21
|
const vr = validator(rg);
|
|
24
22
|
if (typeof vr === "boolean") return vr;
|
|
25
23
|
// istanbul ignore else
|
|
@@ -27,7 +25,6 @@ const isRuleOrGroupValid = (rg, validationResult, validator) => {
|
|
|
27
25
|
}
|
|
28
26
|
return true;
|
|
29
27
|
};
|
|
30
|
-
|
|
31
28
|
//#endregion
|
|
32
29
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorCEL.ts
|
|
33
30
|
/**
|
|
@@ -47,7 +44,7 @@ const defaultRuleGroupProcessorCEL = (ruleGroup, options) => {
|
|
|
47
44
|
precedingCombinator = require_utils.celCombinatorMap[rule];
|
|
48
45
|
continue;
|
|
49
46
|
}
|
|
50
|
-
if (
|
|
47
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
51
48
|
const processedGroup = processRuleGroup(rule);
|
|
52
49
|
if (processedGroup) {
|
|
53
50
|
if (!firstRule && precedingCombinator) {
|
|
@@ -77,13 +74,12 @@ const defaultRuleGroupProcessorCEL = (ruleGroup, options) => {
|
|
|
77
74
|
processedRules.push(processedRule);
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
|
-
const expression = processedRules.join(
|
|
77
|
+
const expression = processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${require_utils.celCombinatorMap[rg.combinator]} ` : " ");
|
|
81
78
|
const [prefix, suffix] = rg.not || !outermost ? [`${rg.not ? "!" : ""}(`, ")"] : ["", ""];
|
|
82
79
|
return expression ? `${prefix}${expression}${suffix}` : fallbackExpression;
|
|
83
80
|
};
|
|
84
81
|
return processRuleGroup(ruleGroup, true);
|
|
85
82
|
};
|
|
86
|
-
|
|
87
83
|
//#endregion
|
|
88
84
|
//#region src/utils/formatQuery/defaultRuleProcessorCEL.ts
|
|
89
85
|
const shouldNegate$2 = (op) => op.startsWith("not") || op.startsWith("doesnot");
|
|
@@ -97,7 +93,7 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
|
|
|
97
93
|
const { escapeQuotes, parseNumbers, preserveValueOrder } = opts;
|
|
98
94
|
const { field, operator, value, valueSource } = rule;
|
|
99
95
|
const valueIsField = valueSource === "field";
|
|
100
|
-
const operatorTL =
|
|
96
|
+
const operatorTL = require_objectUtils.lc(operator === "=" ? "==" : operator);
|
|
101
97
|
const useBareValue = typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || require_utils.shouldRenderAsNumber(value, parseNumbers);
|
|
102
98
|
const matchEval = require_utils.processMatchMode(rule);
|
|
103
99
|
if (matchEval === false) return "";
|
|
@@ -146,7 +142,7 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
|
|
|
146
142
|
case "between":
|
|
147
143
|
case "notbetween": {
|
|
148
144
|
const valueAsArray = require_utils.toArray(value);
|
|
149
|
-
if (valueAsArray.length >= 2 && !
|
|
145
|
+
if (valueAsArray.length >= 2 && !require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[0]) && !require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[1])) {
|
|
150
146
|
const [first, second] = valueAsArray;
|
|
151
147
|
const shouldParseNumbers = !(parseNumbers === false);
|
|
152
148
|
const firstNum = require_utils.shouldRenderAsNumber(first, shouldParseNumbers) ? require_utils.parseNumber(first, { parseNumbers: shouldParseNumbers }) : NaN;
|
|
@@ -164,7 +160,6 @@ const defaultRuleProcessorCEL = (rule, opts = {}) => {
|
|
|
164
160
|
}
|
|
165
161
|
return "";
|
|
166
162
|
};
|
|
167
|
-
|
|
168
163
|
//#endregion
|
|
169
164
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorMongoDBQuery.ts
|
|
170
165
|
/**
|
|
@@ -182,10 +177,10 @@ const defaultRuleGroupProcessorMongoDBQuery = (ruleGroup, options, meta) => {
|
|
|
182
177
|
const { fields, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
|
|
183
178
|
const processRuleGroup = (rg, outermost) => {
|
|
184
179
|
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? mongoDbFallback : false;
|
|
185
|
-
const combinator = `$${
|
|
180
|
+
const combinator = `$${require_objectUtils.lc(rg.combinator)}`;
|
|
186
181
|
let hasChildRules = false;
|
|
187
182
|
const expressions = rg.rules.map((rule) => {
|
|
188
|
-
if (
|
|
183
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
189
184
|
const processedRuleGroup = processRuleGroup(rule);
|
|
190
185
|
if (processedRuleGroup) {
|
|
191
186
|
hasChildRules = true;
|
|
@@ -202,11 +197,11 @@ const defaultRuleGroupProcessorMongoDBQuery = (ruleGroup, options, meta) => {
|
|
|
202
197
|
fieldData
|
|
203
198
|
}, meta);
|
|
204
199
|
}).filter(Boolean);
|
|
205
|
-
|
|
200
|
+
const result = expressions.length > 0 ? expressions.length === 1 && !hasChildRules ? expressions[0] : { [combinator]: expressions } : mongoDbFallback;
|
|
201
|
+
return rg.not ? { $not: result } : result;
|
|
206
202
|
};
|
|
207
203
|
return processRuleGroup(require_convertQuery.convertFromIC(ruleGroup), true);
|
|
208
204
|
};
|
|
209
|
-
|
|
210
205
|
//#endregion
|
|
211
206
|
//#region src/utils/formatQuery/defaultRuleProcessorMongoDBQuery.ts
|
|
212
207
|
const processNumber$1 = (value, fallback, parseNumbers = false) => require_utils.shouldRenderAsNumber(value, parseNumbers || typeof value === "bigint") ? Number(require_utils.parseNumber(value, { parseNumbers: "strict" })) : fallback;
|
|
@@ -266,7 +261,7 @@ const defaultRuleProcessorMongoDBQuery = (rule, options = {}) => {
|
|
|
266
261
|
}
|
|
267
262
|
}
|
|
268
263
|
if (operator === "=" && !valueIsField) return avoidFieldsAsKeys ? { $eq: [`$${field}`, processNumber$1(value, value, parseNumbers)] } : { [field]: processNumber$1(value, value, parseNumbers) };
|
|
269
|
-
const operatorLC =
|
|
264
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
270
265
|
switch (operatorLC) {
|
|
271
266
|
case "<":
|
|
272
267
|
case "<=":
|
|
@@ -335,7 +330,6 @@ const defaultRuleProcessorMongoDBQuery = (rule, options = {}) => {
|
|
|
335
330
|
}
|
|
336
331
|
return "";
|
|
337
332
|
};
|
|
338
|
-
|
|
339
333
|
//#endregion
|
|
340
334
|
//#region src/utils/formatQuery/defaultRuleProcessorMongoDB.ts
|
|
341
335
|
/**
|
|
@@ -349,7 +343,6 @@ const defaultRuleProcessorMongoDB = (rule, options) => {
|
|
|
349
343
|
const queryObj = defaultRuleProcessorMongoDBQuery(rule, options);
|
|
350
344
|
return queryObj ? JSON.stringify(queryObj) : "";
|
|
351
345
|
};
|
|
352
|
-
|
|
353
346
|
//#endregion
|
|
354
347
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorSpEL.ts
|
|
355
348
|
/**
|
|
@@ -369,7 +362,7 @@ const defaultRuleGroupProcessorSpEL = (ruleGroup, options) => {
|
|
|
369
362
|
precedingCombinator = rule;
|
|
370
363
|
continue;
|
|
371
364
|
}
|
|
372
|
-
if (
|
|
365
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
373
366
|
const processedGroup = processRuleGroup(rule);
|
|
374
367
|
if (processedGroup) {
|
|
375
368
|
if (!firstRule && precedingCombinator) {
|
|
@@ -399,17 +392,16 @@ const defaultRuleGroupProcessorSpEL = (ruleGroup, options) => {
|
|
|
399
392
|
processedRules.push(processedRule);
|
|
400
393
|
}
|
|
401
394
|
}
|
|
402
|
-
const expression = processedRules.join(
|
|
395
|
+
const expression = processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ");
|
|
403
396
|
const [prefix, suffix] = rg.not || !outermost ? [`${rg.not ? "!" : ""}(`, ")"] : ["", ""];
|
|
404
397
|
return expression ? `${prefix}${expression}${suffix}` : fallbackExpression;
|
|
405
398
|
};
|
|
406
399
|
return processRuleGroup(ruleGroup, true);
|
|
407
400
|
};
|
|
408
|
-
|
|
409
401
|
//#endregion
|
|
410
402
|
//#region src/utils/formatQuery/defaultRuleProcessorSpEL.ts
|
|
411
403
|
const shouldNegate$1 = (op) => op.startsWith("not") || op.startsWith("doesnot");
|
|
412
|
-
const wrapInNegation = (clause, negate
|
|
404
|
+
const wrapInNegation = (clause, negate) => negate ? `!(${clause})` : clause;
|
|
413
405
|
const escapeSingleQuotes = (v, escapeQuotes) => typeof v !== "string" || !escapeQuotes ? `${v}` : v.replaceAll(`'`, `\\'`);
|
|
414
406
|
/**
|
|
415
407
|
* Default rule processor used by {@link formatQuery} for "spel" format.
|
|
@@ -420,7 +412,7 @@ const defaultRuleProcessorSpEL = (rule, opts = {}) => {
|
|
|
420
412
|
const { field, operator, value, valueSource } = rule;
|
|
421
413
|
const { escapeQuotes, parseNumbers, preserveValueOrder } = opts;
|
|
422
414
|
const valueIsField = valueSource === "field";
|
|
423
|
-
const operatorTL =
|
|
415
|
+
const operatorTL = require_objectUtils.lc(operator === "=" ? "==" : operator);
|
|
424
416
|
const useBareValue = typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || require_utils.shouldRenderAsNumber(value, parseNumbers);
|
|
425
417
|
const matchEval = require_utils.processMatchMode(rule);
|
|
426
418
|
if (matchEval === false) return "";
|
|
@@ -462,14 +454,14 @@ const defaultRuleProcessorSpEL = (rule, opts = {}) => {
|
|
|
462
454
|
case "notnull": return `${field} != null`;
|
|
463
455
|
case "in":
|
|
464
456
|
case "notin": {
|
|
465
|
-
const negate
|
|
457
|
+
const negate = shouldNegate$1(operatorTL) ? "!" : "";
|
|
466
458
|
const valueAsArray = require_utils.toArray(value);
|
|
467
|
-
return valueAsArray.length > 0 ? `${negate
|
|
459
|
+
return valueAsArray.length > 0 ? `${negate}(${valueAsArray.map((val) => `${field} == ${valueIsField || require_utils.shouldRenderAsNumber(val, parseNumbers) ? `${require_utils.trimIfString(val)}` : `'${escapeSingleQuotes(val, escapeQuotes)}'`}`).join(" or ")})` : "";
|
|
468
460
|
}
|
|
469
461
|
case "between":
|
|
470
462
|
case "notbetween": {
|
|
471
463
|
const valueAsArray = require_utils.toArray(value);
|
|
472
|
-
if (valueAsArray.length >= 2 && !
|
|
464
|
+
if (valueAsArray.length >= 2 && !require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[0]) && !require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[1])) {
|
|
473
465
|
const [first, second] = valueAsArray;
|
|
474
466
|
const shouldParseNumbers = !(parseNumbers === false);
|
|
475
467
|
const firstNum = require_utils.shouldRenderAsNumber(first, shouldParseNumbers) ? require_utils.parseNumber(first, { parseNumbers: shouldParseNumbers }) : NaN;
|
|
@@ -487,7 +479,6 @@ const defaultRuleProcessorSpEL = (rule, opts = {}) => {
|
|
|
487
479
|
}
|
|
488
480
|
return "";
|
|
489
481
|
};
|
|
490
|
-
|
|
491
482
|
//#endregion
|
|
492
483
|
//#region src/utils/formatQuery/defaultValueProcessorByRule.ts
|
|
493
484
|
const escapeStringValueQuotes$1 = (v, quoteChar, escapeQuotes) => escapeQuotes && typeof v === "string" ? v.replaceAll(`${quoteChar}`, `${quoteChar}${quoteChar}`) : v;
|
|
@@ -498,7 +489,7 @@ const escapeStringValueQuotes$1 = (v, quoteChar, escapeQuotes) => escapeQuotes &
|
|
|
498
489
|
*/
|
|
499
490
|
const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQuotes, parseNumbers, preserveValueOrder, quoteFieldNamesWith, quoteValuesWith, concatOperator = "||", fieldIdentifierSeparator, wrapValueWith = ["", ""], translations } = {}) => {
|
|
500
491
|
const valueIsField = valueSource === "field";
|
|
501
|
-
const operatorLowerCase =
|
|
492
|
+
const operatorLowerCase = require_objectUtils.lc(operator);
|
|
502
493
|
const quoteChar = quoteValuesWith || "'";
|
|
503
494
|
const quoteValue = (v) => `${wrapValueWith[0]}${quoteChar}${v}${quoteChar}${wrapValueWith[1]}`;
|
|
504
495
|
const escapeValue = (v) => escapeStringValueQuotes$1(v, quoteChar, escapeQuotes);
|
|
@@ -543,7 +534,6 @@ const defaultValueProcessorByRule = ({ operator, value, valueSource }, { escapeQ
|
|
|
543
534
|
if (typeof value === "boolean") return value ? "TRUE" : "FALSE";
|
|
544
535
|
return valueIsField ? wrapFieldName(value) : require_utils.shouldRenderAsNumber(value, parseNumbers) ? `${require_utils.trimIfString(value)}` : `${wrapAndEscape(value)}`;
|
|
545
536
|
};
|
|
546
|
-
|
|
547
537
|
//#endregion
|
|
548
538
|
//#region src/utils/formatQuery/defaultRuleProcessorDrizzle.ts
|
|
549
539
|
/**
|
|
@@ -560,7 +550,7 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
|
|
|
560
550
|
const { between, eq, gt, gte, inArray, isNotNull, isNull, like, lt, lte, ne, notBetween, notInArray, notLike, sql } = drizzleOperators;
|
|
561
551
|
const { field, operator, value, valueSource } = rule;
|
|
562
552
|
const column = useRawFields && /[a-z][a-z0-9]*/i.test(field) ? sql.raw(field) : columns[field];
|
|
563
|
-
const operatorLC =
|
|
553
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
564
554
|
const valueIsField = valueSource === "field";
|
|
565
555
|
const asFieldOrValue = (v) => valueIsField ? columns[v] : v;
|
|
566
556
|
if (!column) return;
|
|
@@ -640,7 +630,6 @@ const defaultRuleProcessorDrizzle = (rule, _options) => {
|
|
|
640
630
|
default: return;
|
|
641
631
|
}
|
|
642
632
|
};
|
|
643
|
-
|
|
644
633
|
//#endregion
|
|
645
634
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorDrizzle.ts
|
|
646
635
|
/**
|
|
@@ -663,7 +652,7 @@ const defaultRuleGroupProcessorDrizzle = (ruleGroup, options, _meta) => (columns
|
|
|
663
652
|
const processRuleGroup = (rg, _outermost) => {
|
|
664
653
|
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return;
|
|
665
654
|
const processedRules = rg.rules.map((rule) => {
|
|
666
|
-
if (
|
|
655
|
+
if (require_objectUtils.isRuleGroup(rule)) return processRuleGroup(rule);
|
|
667
656
|
const [validationResult, fieldValidator] = validateRule(rule);
|
|
668
657
|
if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return;
|
|
669
658
|
const fieldData = require_utils.getOption(fields, rule.field);
|
|
@@ -684,7 +673,6 @@ const defaultRuleGroupProcessorDrizzle = (ruleGroup, options, _meta) => (columns
|
|
|
684
673
|
};
|
|
685
674
|
return processRuleGroup(require_convertQuery.convertFromIC(ruleGroup), true);
|
|
686
675
|
};
|
|
687
|
-
|
|
688
676
|
//#endregion
|
|
689
677
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorElasticSearch.ts
|
|
690
678
|
/**
|
|
@@ -697,7 +685,7 @@ const defaultRuleGroupProcessorElasticSearch = (ruleGroup, options) => {
|
|
|
697
685
|
const processRuleGroup = (rg) => {
|
|
698
686
|
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return false;
|
|
699
687
|
const processedRules = rg.rules.map((rule) => {
|
|
700
|
-
if (
|
|
688
|
+
if (require_objectUtils.isRuleGroup(rule)) return processRuleGroup(rule);
|
|
701
689
|
const [validationResult, fieldValidator] = validateRule(rule);
|
|
702
690
|
if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return false;
|
|
703
691
|
const fieldData = require_utils.getOption(fields, rule.field);
|
|
@@ -713,7 +701,6 @@ const defaultRuleGroupProcessorElasticSearch = (ruleGroup, options) => {
|
|
|
713
701
|
const processedRuleGroup = processRuleGroup(require_convertQuery.convertFromIC(ruleGroup));
|
|
714
702
|
return processedRuleGroup === false ? {} : processedRuleGroup;
|
|
715
703
|
};
|
|
716
|
-
|
|
717
704
|
//#endregion
|
|
718
705
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorJSONata.ts
|
|
719
706
|
/**
|
|
@@ -733,7 +720,7 @@ const defaultRuleGroupProcessorJSONata = (ruleGroup, options) => {
|
|
|
733
720
|
precedingCombinator = rule;
|
|
734
721
|
continue;
|
|
735
722
|
}
|
|
736
|
-
if (
|
|
723
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
737
724
|
const processedGroup = processRuleGroup(rule);
|
|
738
725
|
if (processedGroup) {
|
|
739
726
|
if (!firstRule && precedingCombinator) {
|
|
@@ -763,13 +750,12 @@ const defaultRuleGroupProcessorJSONata = (ruleGroup, options) => {
|
|
|
763
750
|
processedRules.push(processedRule);
|
|
764
751
|
}
|
|
765
752
|
}
|
|
766
|
-
const expression = processedRules.join(
|
|
753
|
+
const expression = processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ");
|
|
767
754
|
const [prefix, suffix] = rg.not || !outermost ? [`${rg.not ? "$not" : ""}(`, ")"] : ["", ""];
|
|
768
755
|
return expression ? `${prefix}${expression}${suffix}` : fallbackExpression;
|
|
769
756
|
};
|
|
770
757
|
return processRuleGroup(ruleGroup, true);
|
|
771
758
|
};
|
|
772
|
-
|
|
773
759
|
//#endregion
|
|
774
760
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorJsonLogic.ts
|
|
775
761
|
/**
|
|
@@ -783,7 +769,7 @@ const defaultRuleGroupProcessorJsonLogic = (ruleGroup, options) => {
|
|
|
783
769
|
const processRuleGroup = (rg, _outermost) => {
|
|
784
770
|
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return false;
|
|
785
771
|
const processedRules = rg.rules.map((rule) => {
|
|
786
|
-
if (
|
|
772
|
+
if (require_objectUtils.isRuleGroup(rule)) return processRuleGroup(rule);
|
|
787
773
|
const [validationResult, fieldValidator] = validateRule(rule);
|
|
788
774
|
if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return false;
|
|
789
775
|
const fieldData = require_utils.getOption(fields, rule.field);
|
|
@@ -799,7 +785,6 @@ const defaultRuleGroupProcessorJsonLogic = (ruleGroup, options) => {
|
|
|
799
785
|
};
|
|
800
786
|
return processRuleGroup(query, true);
|
|
801
787
|
};
|
|
802
|
-
|
|
803
788
|
//#endregion
|
|
804
789
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorLDAP.ts
|
|
805
790
|
/**
|
|
@@ -812,7 +797,7 @@ const defaultRuleGroupProcessorLDAP = (ruleGroup, options) => {
|
|
|
812
797
|
const processRuleGroup = (rg, outermost) => {
|
|
813
798
|
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
|
|
814
799
|
const rules = rg.rules.map((rule) => {
|
|
815
|
-
if (
|
|
800
|
+
if (require_objectUtils.isRuleGroup(rule)) return processRuleGroup(rule);
|
|
816
801
|
const [validationResult, fieldValidator] = validateRule(rule);
|
|
817
802
|
if (!isRuleOrGroupValid(rule, validationResult, fieldValidator) || rule.field === placeholderFieldName || rule.operator === placeholderOperatorName || placeholderValueName !== void 0 && rule.value === placeholderValueName) return "";
|
|
818
803
|
const fieldData = require_utils.getOption(fields, rule.field);
|
|
@@ -830,7 +815,6 @@ const defaultRuleGroupProcessorLDAP = (ruleGroup, options) => {
|
|
|
830
815
|
};
|
|
831
816
|
return processRuleGroup(require_convertQuery.convertFromIC(ruleGroup), true);
|
|
832
817
|
};
|
|
833
|
-
|
|
834
818
|
//#endregion
|
|
835
819
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorMongoDB.ts
|
|
836
820
|
const isBracketed = (str) => str.startsWith("{") && str.endsWith("}");
|
|
@@ -845,10 +829,10 @@ const defaultRuleGroupProcessorMongoDB = (ruleGroup, options, meta) => {
|
|
|
845
829
|
const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, validateRule, validationMap } = options;
|
|
846
830
|
const processRuleGroup = (rg, outermost) => {
|
|
847
831
|
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermost ? fallbackExpression : "";
|
|
848
|
-
const combinator = `"$${
|
|
832
|
+
const combinator = `"$${require_objectUtils.lc(rg.combinator)}"`;
|
|
849
833
|
let hasChildRules = false;
|
|
850
834
|
const expressions = rg.rules.map((rule) => {
|
|
851
|
-
if (
|
|
835
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
852
836
|
const processedRuleGroup = processRuleGroup(rule);
|
|
853
837
|
if (processedRuleGroup) {
|
|
854
838
|
hasChildRules = true;
|
|
@@ -865,12 +849,12 @@ const defaultRuleGroupProcessorMongoDB = (ruleGroup, options, meta) => {
|
|
|
865
849
|
fieldData
|
|
866
850
|
}, meta);
|
|
867
851
|
}).filter(Boolean);
|
|
868
|
-
|
|
852
|
+
const result = expressions.length > 0 ? expressions.length === 1 && !hasChildRules ? expressions[0] : `${combinator}:[${expressions.join(",")}]` : fallbackExpression;
|
|
853
|
+
return rg.not ? `"$not":${isBracketed(result) ? result : `{${result}}`}` : result;
|
|
869
854
|
};
|
|
870
855
|
const processedQuery = processRuleGroup(require_convertQuery.convertFromIC(ruleGroup), true);
|
|
871
856
|
return isBracketed(processedQuery) ? processedQuery : `{${processedQuery}}`;
|
|
872
857
|
};
|
|
873
|
-
|
|
874
858
|
//#endregion
|
|
875
859
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorNL.ts
|
|
876
860
|
/**
|
|
@@ -882,7 +866,7 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
|
|
|
882
866
|
const { fields, fallbackExpression, getParseNumberBoolean, placeholderFieldName, placeholderOperatorName, placeholderValueName, ruleProcessor, translations, validateRule, validationMap } = options;
|
|
883
867
|
const processRuleGroup = (rg, outermostOrLonelyInGroup) => {
|
|
884
868
|
if (!isRuleOrGroupValid(rg, validationMap[rg.id ?? ""])) return outermostOrLonelyInGroup ? fallbackExpression : "";
|
|
885
|
-
const rg2 =
|
|
869
|
+
const rg2 = require_objectUtils.isRuleGroupTypeIC(rg) && rg.rules.some((r) => typeof r === "string" && require_objectUtils.lc(r) === "xor") ? require_convertQuery.convertFromIC(rg) : rg;
|
|
886
870
|
const processedRules = [];
|
|
887
871
|
let precedingCombinator = "";
|
|
888
872
|
let firstRule = true;
|
|
@@ -891,7 +875,7 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
|
|
|
891
875
|
precedingCombinator = `, ${translations[rule] ?? rule} `;
|
|
892
876
|
continue;
|
|
893
877
|
}
|
|
894
|
-
if (
|
|
878
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
895
879
|
const processedGroup = processRuleGroup(rule, rg2.rules.length === 1 && !(rg2.not || /^xor$/i.test(rg2.combinator ?? "")));
|
|
896
880
|
// istanbul ignore else
|
|
897
881
|
if (processedGroup) {
|
|
@@ -924,17 +908,16 @@ const defaultRuleGroupProcessorNL = (ruleGroup, options) => {
|
|
|
924
908
|
}
|
|
925
909
|
}
|
|
926
910
|
if (processedRules.length === 0) return fallbackExpression;
|
|
927
|
-
const isXOR =
|
|
911
|
+
const isXOR = require_objectUtils.lc(rg2.combinator ?? "") === "xor";
|
|
928
912
|
const combinator = isXOR ? rg2.combinator.slice(1) : rg2.combinator;
|
|
929
913
|
const mustWrap = rg2.not || !outermostOrLonelyInGroup || isXOR && processedRules.length > 1;
|
|
930
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));
|
|
931
915
|
const prefix = mustWrap ? `${prefixTL} (`.trim() : "";
|
|
932
916
|
const suffix = mustWrap ? `) ${suffixTL}`.trim() : "";
|
|
933
|
-
return `${prefix}${processedRules.join(
|
|
917
|
+
return `${prefix}${processedRules.join(require_objectUtils.isRuleGroupType(rg2) ? `, ${translations[combinator] ?? combinator} ` : "")}${suffix}`;
|
|
934
918
|
};
|
|
935
919
|
return processRuleGroup(ruleGroup, true);
|
|
936
920
|
};
|
|
937
|
-
|
|
938
921
|
//#endregion
|
|
939
922
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorParameterized.ts
|
|
940
923
|
/**
|
|
@@ -967,12 +950,12 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
|
|
|
967
950
|
fieldParamNames,
|
|
968
951
|
fieldData
|
|
969
952
|
}, { processedParams: params });
|
|
970
|
-
if (!
|
|
953
|
+
if (!require_objectUtils.isPojo(processedRule)) return "";
|
|
971
954
|
const { sql, params: customParams } = processedRule;
|
|
972
955
|
if (typeof sql !== "string" || !sql) return "";
|
|
973
956
|
// istanbul ignore else
|
|
974
957
|
if (format === "parameterized" && Array.isArray(customParams)) params.push(...customParams);
|
|
975
|
-
else if (format === "parameterized_named" &&
|
|
958
|
+
else if (format === "parameterized_named" && require_objectUtils.isPojo(customParams)) {
|
|
976
959
|
Object.assign(paramsNamed, customParams);
|
|
977
960
|
for (const p of Object.keys(customParams)) fieldParams.get(rule.field)?.add(p);
|
|
978
961
|
}
|
|
@@ -988,7 +971,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
|
|
|
988
971
|
precedingCombinator = rule;
|
|
989
972
|
continue;
|
|
990
973
|
}
|
|
991
|
-
if (
|
|
974
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
992
975
|
const processedGroup = processRuleGroup(rule, rg.rules.length === 1);
|
|
993
976
|
// istanbul ignore else
|
|
994
977
|
if (processedGroup) {
|
|
@@ -1012,7 +995,7 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
|
|
|
1012
995
|
}
|
|
1013
996
|
}
|
|
1014
997
|
if (processedRules.length === 0) return fallbackExpression;
|
|
1015
|
-
return `${rg.not ? "NOT " : ""}(${processedRules.join(
|
|
998
|
+
return `${rg.not ? "NOT " : ""}(${processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ")})`;
|
|
1016
999
|
};
|
|
1017
1000
|
if (parameterized) return {
|
|
1018
1001
|
sql: processRuleGroup(ruleGroup, true),
|
|
@@ -1023,7 +1006,6 @@ const defaultRuleGroupProcessorParameterized = (ruleGroup, options) => {
|
|
|
1023
1006
|
params: paramsNamed
|
|
1024
1007
|
};
|
|
1025
1008
|
};
|
|
1026
|
-
|
|
1027
1009
|
//#endregion
|
|
1028
1010
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorPrisma.ts
|
|
1029
1011
|
/**
|
|
@@ -1044,7 +1026,7 @@ const defaultRuleGroupProcessorPrisma = (ruleGroup, options) => {
|
|
|
1044
1026
|
const combinator = rg.combinator.toUpperCase();
|
|
1045
1027
|
let hasChildRules = false;
|
|
1046
1028
|
const expressions = rg.rules.map((rule) => {
|
|
1047
|
-
if (
|
|
1029
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
1048
1030
|
const processedRuleGroup = processRuleGroup(rule);
|
|
1049
1031
|
if (processedRuleGroup) {
|
|
1050
1032
|
hasChildRules = true;
|
|
@@ -1066,7 +1048,6 @@ const defaultRuleGroupProcessorPrisma = (ruleGroup, options) => {
|
|
|
1066
1048
|
const result = processRuleGroup(require_convertQuery.convertFromIC(ruleGroup), true);
|
|
1067
1049
|
return ruleGroup.not ? { NOT: result } : result;
|
|
1068
1050
|
};
|
|
1069
|
-
|
|
1070
1051
|
//#endregion
|
|
1071
1052
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorSequelize.ts
|
|
1072
1053
|
/**
|
|
@@ -1084,7 +1065,7 @@ const defaultRuleGroupProcessorSequelize = (ruleGroup, options) => {
|
|
|
1084
1065
|
const combinator = rg.combinator.toUpperCase();
|
|
1085
1066
|
let hasChildRules = false;
|
|
1086
1067
|
const expressions = rg.rules.map((rule) => {
|
|
1087
|
-
if (
|
|
1068
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
1088
1069
|
const processedRuleGroup = processRuleGroup(rule);
|
|
1089
1070
|
if (processedRuleGroup) {
|
|
1090
1071
|
hasChildRules = true;
|
|
@@ -1102,12 +1083,11 @@ const defaultRuleGroupProcessorSequelize = (ruleGroup, options) => {
|
|
|
1102
1083
|
});
|
|
1103
1084
|
}).filter(Boolean);
|
|
1104
1085
|
if (expressions.length === 0) return;
|
|
1105
|
-
const result = expressions.length === 1 && !hasChildRules ? expressions[0] : { [
|
|
1086
|
+
const result = expressions.length === 1 && !hasChildRules ? expressions[0] : { [require_objectUtils.lc(combinator) === "or" ? Op.or : Op.and]: expressions };
|
|
1106
1087
|
return rg.not ? { [Op.not]: result } : result;
|
|
1107
1088
|
};
|
|
1108
1089
|
return processRuleGroup(require_convertQuery.convertFromIC(ruleGroup), true);
|
|
1109
1090
|
};
|
|
1110
|
-
|
|
1111
1091
|
//#endregion
|
|
1112
1092
|
//#region src/utils/formatQuery/defaultRuleGroupProcessorSQL.ts
|
|
1113
1093
|
/**
|
|
@@ -1127,7 +1107,7 @@ const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
|
|
|
1127
1107
|
precedingCombinator = rule;
|
|
1128
1108
|
continue;
|
|
1129
1109
|
}
|
|
1130
|
-
if (
|
|
1110
|
+
if (require_objectUtils.isRuleGroup(rule)) {
|
|
1131
1111
|
const processedGroup = processRuleGroup(rule, rg.rules.length === 1);
|
|
1132
1112
|
// istanbul ignore else
|
|
1133
1113
|
if (processedGroup) {
|
|
@@ -1160,11 +1140,10 @@ const defaultRuleGroupProcessorSQL = (ruleGroup, options) => {
|
|
|
1160
1140
|
}
|
|
1161
1141
|
}
|
|
1162
1142
|
if (processedRules.length === 0) return fallbackExpression;
|
|
1163
|
-
return `${rg.not ? "NOT " : ""}(${processedRules.join(
|
|
1143
|
+
return `${rg.not ? "NOT " : ""}(${processedRules.join(require_objectUtils.isRuleGroupType(rg) ? ` ${rg.combinator} ` : " ")})`;
|
|
1164
1144
|
};
|
|
1165
1145
|
return processRuleGroup(ruleGroup, true);
|
|
1166
1146
|
};
|
|
1167
|
-
|
|
1168
1147
|
//#endregion
|
|
1169
1148
|
//#region src/utils/formatQuery/defaultRuleProcessorElasticSearch.ts
|
|
1170
1149
|
const rangeOperatorMap = {
|
|
@@ -1195,7 +1174,7 @@ const valueRenderer = (v, parseNumbers) => typeof v === "boolean" ? v : require_
|
|
|
1195
1174
|
const defaultRuleProcessorElasticSearch = (rule, options = {}) => {
|
|
1196
1175
|
const { field, operator, value, valueSource } = rule;
|
|
1197
1176
|
const { parseNumbers, preserveValueOrder } = options;
|
|
1198
|
-
const operatorLC =
|
|
1177
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
1199
1178
|
const matchEval = require_utils.processMatchMode(rule);
|
|
1200
1179
|
if (matchEval === false) return false;
|
|
1201
1180
|
else if (matchEval) {
|
|
@@ -1316,12 +1295,11 @@ const defaultRuleProcessorElasticSearch = (rule, options = {}) => {
|
|
|
1316
1295
|
}
|
|
1317
1296
|
return false;
|
|
1318
1297
|
};
|
|
1319
|
-
|
|
1320
1298
|
//#endregion
|
|
1321
1299
|
//#region src/utils/formatQuery/defaultRuleProcessorJSONata.ts
|
|
1322
1300
|
const shouldNegate = (op) => op.startsWith("not") || op.startsWith("doesnot");
|
|
1323
1301
|
const quote = (v, escapeQuotes) => `"${typeof v !== "string" || !escapeQuotes ? `${v}` : v.replaceAll(`"`, `\\"`)}"`;
|
|
1324
|
-
const negate = (clause,
|
|
1302
|
+
const negate = (clause, neg) => neg ? `$not(${clause})` : clause;
|
|
1325
1303
|
const escapeStringRegex = (s) => `${s}`.replaceAll(/[/$()*+.?[\\\]^{|}]/g, String.raw`\$&`).replaceAll("-", String.raw`\x2d`);
|
|
1326
1304
|
/**
|
|
1327
1305
|
* Default rule processor used by {@link formatQuery} for "jsonata" format.
|
|
@@ -1359,7 +1337,7 @@ const defaultRuleProcessorJSONata = (rule, options = {}) => {
|
|
|
1359
1337
|
}
|
|
1360
1338
|
}
|
|
1361
1339
|
}
|
|
1362
|
-
const operatorLC =
|
|
1340
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
1363
1341
|
switch (operatorLC) {
|
|
1364
1342
|
case "<":
|
|
1365
1343
|
case "<=":
|
|
@@ -1383,7 +1361,7 @@ const defaultRuleProcessorJSONata = (rule, options = {}) => {
|
|
|
1383
1361
|
case "between":
|
|
1384
1362
|
case "notbetween": {
|
|
1385
1363
|
const valueAsArray = require_utils.toArray(value);
|
|
1386
|
-
if (valueAsArray.length < 2 ||
|
|
1364
|
+
if (valueAsArray.length < 2 || require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[0]) || require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[1])) return "";
|
|
1387
1365
|
const [first, second] = valueAsArray;
|
|
1388
1366
|
const shouldParseNumbers = !(parseNumbers === false);
|
|
1389
1367
|
const firstNum = require_utils.shouldRenderAsNumber(first, shouldParseNumbers) ? require_utils.parseNumber(first, { parseNumbers: shouldParseNumbers }) : NaN;
|
|
@@ -1403,7 +1381,6 @@ const defaultRuleProcessorJSONata = (rule, options = {}) => {
|
|
|
1403
1381
|
}
|
|
1404
1382
|
return "";
|
|
1405
1383
|
};
|
|
1406
|
-
|
|
1407
1384
|
//#endregion
|
|
1408
1385
|
//#region src/utils/formatQuery/defaultRuleProcessorJsonLogic.ts
|
|
1409
1386
|
const convertOperator = (op) => op.replace(/^(=)$/, "$1=").replace(/^notnull$/i, "!=").replace(/^null$/i, "==");
|
|
@@ -1426,13 +1403,13 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
|
|
|
1426
1403
|
switch (mode) {
|
|
1427
1404
|
case "all":
|
|
1428
1405
|
case "none":
|
|
1429
|
-
case "some": return { [mode]: [{ var: field }, value.rules.length === 1 && !
|
|
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)] };
|
|
1430
1407
|
case "atleast":
|
|
1431
1408
|
case "atmost":
|
|
1432
1409
|
case "exactly": {
|
|
1433
1410
|
const op = mode === "atleast" ? ">=" : mode === "atmost" ? "<=" : "==";
|
|
1434
1411
|
const filteredCount = { reduce: [
|
|
1435
|
-
{ filter: [{ var: field }, value.rules.length === 1 && !
|
|
1412
|
+
{ filter: [{ var: field }, value.rules.length === 1 && !require_objectUtils.isRuleGroup(value.rules[0]) ? defaultRuleProcessorJsonLogic(value.rules[0], options) : defaultRuleGroupProcessorJsonLogic(value, options)] },
|
|
1436
1413
|
{ "+": [1, { var: "accumulator" }] },
|
|
1437
1414
|
0
|
|
1438
1415
|
] };
|
|
@@ -1448,7 +1425,7 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
|
|
|
1448
1425
|
}
|
|
1449
1426
|
}
|
|
1450
1427
|
}
|
|
1451
|
-
const operatorLC =
|
|
1428
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
1452
1429
|
switch (operatorLC) {
|
|
1453
1430
|
case "<":
|
|
1454
1431
|
case "<=":
|
|
@@ -1498,10 +1475,9 @@ const defaultRuleProcessorJsonLogic = (rule, options = {}) => {
|
|
|
1498
1475
|
}
|
|
1499
1476
|
return false;
|
|
1500
1477
|
};
|
|
1501
|
-
|
|
1502
1478
|
//#endregion
|
|
1503
1479
|
//#region src/utils/formatQuery/defaultRuleProcessorLDAP.ts
|
|
1504
|
-
const negateIf = (clause, negate
|
|
1480
|
+
const negateIf = (clause, negate) => negate ? `(!${clause})` : `${clause}`;
|
|
1505
1481
|
const ldapEscape = (s) => `${require_utils.trimIfString(s)}`.replaceAll(/[()&|=<>~*\\/]/g, (m) => `\\${m.codePointAt(0).toString(16)}`);
|
|
1506
1482
|
/**
|
|
1507
1483
|
* Default rule processor used by {@link formatQuery} for "ldap" format.
|
|
@@ -1511,8 +1487,8 @@ const ldapEscape = (s) => `${require_utils.trimIfString(s)}`.replaceAll(/[()&|=<
|
|
|
1511
1487
|
const defaultRuleProcessorLDAP = (rule, options = {}) => {
|
|
1512
1488
|
const { field, operator, value, valueSource } = rule;
|
|
1513
1489
|
const { preserveValueOrder } = options;
|
|
1514
|
-
const operatorLC =
|
|
1515
|
-
if (valueSource === "field" ||
|
|
1490
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
1491
|
+
if (valueSource === "field" || require_objectUtils.nullOrUndefinedOrEmpty(value) && operatorLC !== "null" && operatorLC !== "notnull" || require_utils.processMatchMode(rule)) return "";
|
|
1516
1492
|
switch (operatorLC) {
|
|
1517
1493
|
case "=":
|
|
1518
1494
|
case "!=": return negateIf(`(${field}=${ldapEscape(value)})`, operatorLC === "!=");
|
|
@@ -1533,7 +1509,7 @@ const defaultRuleProcessorLDAP = (rule, options = {}) => {
|
|
|
1533
1509
|
case "between":
|
|
1534
1510
|
case "notbetween": {
|
|
1535
1511
|
const valueAsArray = require_utils.toArray(value);
|
|
1536
|
-
if (valueAsArray.length < 2 ||
|
|
1512
|
+
if (valueAsArray.length < 2 || require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[0]) || require_objectUtils.nullOrUndefinedOrEmpty(valueAsArray[1])) return "";
|
|
1537
1513
|
const [first, second] = valueAsArray;
|
|
1538
1514
|
const firstNum = require_utils.shouldRenderAsNumber(first, true) ? require_utils.parseNumber(first, { parseNumbers: true }) : NaN;
|
|
1539
1515
|
const secondNum = require_utils.shouldRenderAsNumber(second, true) ? require_utils.parseNumber(second, { parseNumbers: true }) : NaN;
|
|
@@ -1550,7 +1526,6 @@ const defaultRuleProcessorLDAP = (rule, options = {}) => {
|
|
|
1550
1526
|
// istanbul ignore next
|
|
1551
1527
|
return "";
|
|
1552
1528
|
};
|
|
1553
|
-
|
|
1554
1529
|
//#endregion
|
|
1555
1530
|
//#region src/utils/formatQuery/defaultValueProcessorNL.ts
|
|
1556
1531
|
const escapeStringValueQuotes = (v, quoteChar, escapeQuotes) => escapeQuotes && typeof v === "string" ? v.replaceAll(`${quoteChar}`, `${quoteChar}${quoteChar}`) : v;
|
|
@@ -1562,7 +1537,7 @@ const escapeStringValueQuotes = (v, quoteChar, escapeQuotes) => escapeQuotes &&
|
|
|
1562
1537
|
const defaultValueProcessorNL = (rule, opts = {}) => {
|
|
1563
1538
|
const { escapeQuotes, fields, parseNumbers, quoteFieldNamesWith, quoteValuesWith, fieldIdentifierSeparator, translations } = opts;
|
|
1564
1539
|
const valueIsField = rule.valueSource === "field";
|
|
1565
|
-
const operatorLowerCase =
|
|
1540
|
+
const operatorLowerCase = require_objectUtils.lc(rule.operator);
|
|
1566
1541
|
const quoteChar = quoteValuesWith || "'";
|
|
1567
1542
|
const quoteValue = (v) => `${quoteChar}${v}${quoteChar}`;
|
|
1568
1543
|
const escapeValue = (v) => escapeStringValueQuotes(v, quoteChar, escapeQuotes);
|
|
@@ -1600,7 +1575,6 @@ const defaultValueProcessorNL = (rule, opts = {}) => {
|
|
|
1600
1575
|
if (typeof rule.value === "boolean") return rule.value ? trueTL : falseTL;
|
|
1601
1576
|
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)}`;
|
|
1602
1577
|
};
|
|
1603
|
-
|
|
1604
1578
|
//#endregion
|
|
1605
1579
|
//#region src/utils/formatQuery/defaultRuleProcessorNL.ts
|
|
1606
1580
|
/**
|
|
@@ -1640,9 +1614,9 @@ const defaultOperatorProcessorNL = (rule, opts = {}) => {
|
|
|
1640
1614
|
// istanbul ignore next
|
|
1641
1615
|
const { getOperators = defaultGetOperators, operatorMap: operatorMapParam = defaultExportOperatorMap } = opts;
|
|
1642
1616
|
const mergedOperatorMap = new Map(Object.entries(defaultExportOperatorMap));
|
|
1643
|
-
for (const [key, value] of Object.entries(operatorMapParam)) mergedOperatorMap.set(
|
|
1617
|
+
for (const [key, value] of Object.entries(operatorMapParam)) mergedOperatorMap.set(require_objectUtils.lc(key), value);
|
|
1644
1618
|
const operatorMap = Object.fromEntries(mergedOperatorMap);
|
|
1645
|
-
const operatorLC =
|
|
1619
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
1646
1620
|
var normalizedOperator = operator;
|
|
1647
1621
|
const hasSingleValue = require_utils.toArray(rule.value).length === 1;
|
|
1648
1622
|
if (operatorLC === "in" && hasSingleValue) normalizedOperator = "=";
|
|
@@ -1656,7 +1630,7 @@ const defaultOperatorProcessorNL = (rule, opts = {}) => {
|
|
|
1656
1630
|
value: normalizedOperator,
|
|
1657
1631
|
label: normalizedOperator
|
|
1658
1632
|
};
|
|
1659
|
-
const operatorTL = operatorMap[operatorNL] ?? operatorMap[
|
|
1633
|
+
const operatorTL = operatorMap[operatorNL] ?? operatorMap[require_objectUtils.lc(operatorNL)] ?? [label, label];
|
|
1660
1634
|
return typeof operatorTL === "string" ? operatorTL : operatorTL[valueSource === "field" ? 1 : 0];
|
|
1661
1635
|
};
|
|
1662
1636
|
/**
|
|
@@ -1701,7 +1675,7 @@ const defaultRuleProcessorNL = (rule, opts) => {
|
|
|
1701
1675
|
quoteValuesWith,
|
|
1702
1676
|
concatOperator
|
|
1703
1677
|
});
|
|
1704
|
-
const operatorLC =
|
|
1678
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
1705
1679
|
if ((operatorLC === "in" || operatorLC === "notin" || operatorLC === "between" || operatorLC === "notbetween") && !value) return "";
|
|
1706
1680
|
const wordOrderMap = {
|
|
1707
1681
|
S: processedField,
|
|
@@ -1710,7 +1684,6 @@ const defaultRuleProcessorNL = (rule, opts) => {
|
|
|
1710
1684
|
};
|
|
1711
1685
|
return require_utils.normalizeConstituentWordOrder(wordOrder).map((term) => `${wordOrderMap[term]}`).join(" ").trim();
|
|
1712
1686
|
};
|
|
1713
|
-
|
|
1714
1687
|
//#endregion
|
|
1715
1688
|
//#region src/utils/formatQuery/defaultRuleProcessorSQL.ts
|
|
1716
1689
|
/**
|
|
@@ -1718,7 +1691,7 @@ const defaultRuleProcessorNL = (rule, opts) => {
|
|
|
1718
1691
|
*
|
|
1719
1692
|
* @group Export
|
|
1720
1693
|
*/
|
|
1721
|
-
const defaultOperatorProcessorSQL = (rule) =>
|
|
1694
|
+
const defaultOperatorProcessorSQL = (rule) => require_objectUtils.lc(require_utils.mapSQLOperator(rule.operator));
|
|
1722
1695
|
/**
|
|
1723
1696
|
* Default rule processor used by {@link formatQuery} for "sql" format.
|
|
1724
1697
|
*
|
|
@@ -1761,11 +1734,10 @@ const defaultRuleProcessorSQL = (rule, opts = {}) => {
|
|
|
1761
1734
|
concatOperator
|
|
1762
1735
|
});
|
|
1763
1736
|
const operator = operatorProcessor(rule, opts);
|
|
1764
|
-
const operatorLowerCase =
|
|
1737
|
+
const operatorLowerCase = require_objectUtils.lc(operator);
|
|
1765
1738
|
if ((operatorLowerCase === "in" || operatorLowerCase === "not in" || operatorLowerCase === "between" || operatorLowerCase === "not between") && !value) return "";
|
|
1766
1739
|
return `${ruleField} ${operator} ${value}`.trim();
|
|
1767
1740
|
};
|
|
1768
|
-
|
|
1769
1741
|
//#endregion
|
|
1770
1742
|
//#region src/utils/formatQuery/defaultRuleProcessorParameterized.ts
|
|
1771
1743
|
/**
|
|
@@ -1829,7 +1801,7 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
|
|
|
1829
1801
|
format
|
|
1830
1802
|
});
|
|
1831
1803
|
const sqlOperator = operatorProcessor(rule, opts);
|
|
1832
|
-
const sqlOperatorLowerCase =
|
|
1804
|
+
const sqlOperatorLowerCase = require_objectUtils.lc(sqlOperator);
|
|
1833
1805
|
const [qPre, qPost] = quoteFieldNamesWith;
|
|
1834
1806
|
if ((sqlOperatorLowerCase === "in" || sqlOperatorLowerCase === "not in" || sqlOperatorLowerCase === "between" || sqlOperatorLowerCase === "not between") && !value) return finalize("");
|
|
1835
1807
|
else if (sqlOperatorLowerCase === "is null" || sqlOperatorLowerCase === "is not null") return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator}`);
|
|
@@ -1870,7 +1842,6 @@ const defaultRuleProcessorParameterized = (rule, opts, meta) => {
|
|
|
1870
1842
|
}
|
|
1871
1843
|
return finalize(`${qPre}${rule.field}${qPost} ${sqlOperator} ${parameterized ? numberedParams ? `${paramPrefix}${processedParams.length + 1}` : "?" : `${paramPrefix}${paramName}`}`.trim());
|
|
1872
1844
|
};
|
|
1873
|
-
|
|
1874
1845
|
//#endregion
|
|
1875
1846
|
//#region src/utils/formatQuery/defaultRuleProcessorPrisma.ts
|
|
1876
1847
|
const processNumber = (value, fallback, parseNumbers) => require_utils.shouldRenderAsNumber(value, !!parseNumbers || typeof value === "bigint") ? Number(require_utils.parseNumber(value, { parseNumbers: !!parseNumbers })) : fallback;
|
|
@@ -1884,7 +1855,7 @@ const defaultRuleProcessorPrisma = (rule, options = {}) => {
|
|
|
1884
1855
|
// istanbul ignore next
|
|
1885
1856
|
const { parseNumbers, preserveValueOrder } = options;
|
|
1886
1857
|
if (valueSource === "field" || require_utils.processMatchMode(rule)) return;
|
|
1887
|
-
const operatorLC =
|
|
1858
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
1888
1859
|
switch (operatorLC) {
|
|
1889
1860
|
case "=": return { [field]: processNumber(value, value, parseNumbers) };
|
|
1890
1861
|
case "!=":
|
|
@@ -1932,7 +1903,6 @@ const defaultRuleProcessorPrisma = (rule, options = {}) => {
|
|
|
1932
1903
|
}
|
|
1933
1904
|
return "";
|
|
1934
1905
|
};
|
|
1935
|
-
|
|
1936
1906
|
//#endregion
|
|
1937
1907
|
//#region src/utils/formatQuery/defaultRuleProcessorSequelize.ts
|
|
1938
1908
|
/**
|
|
@@ -1945,7 +1915,7 @@ const defaultRuleProcessorSequelize = (rule, { parseNumbers, preserveValueOrder,
|
|
|
1945
1915
|
if (require_utils.processMatchMode(rule)) return;
|
|
1946
1916
|
const { field, operator, value, valueSource } = rule;
|
|
1947
1917
|
const valueIsField = valueSource === "field";
|
|
1948
|
-
const operatorLC =
|
|
1918
|
+
const operatorLC = require_objectUtils.lc(operator);
|
|
1949
1919
|
if (!Op || valueIsField && (!col || !fn && [
|
|
1950
1920
|
"doesnotcontain",
|
|
1951
1921
|
"doesnotbeginwith",
|
|
@@ -1999,7 +1969,6 @@ const defaultRuleProcessorSequelize = (rule, { parseNumbers, preserveValueOrder,
|
|
|
1999
1969
|
}
|
|
2000
1970
|
}
|
|
2001
1971
|
};
|
|
2002
|
-
|
|
2003
1972
|
//#endregion
|
|
2004
1973
|
//#region src/utils/formatQuery/formatQuery.ts
|
|
2005
1974
|
/**
|
|
@@ -2088,8 +2057,8 @@ const defaultFormatQueryOptions = {
|
|
|
2088
2057
|
paramsKeepPrefix: false,
|
|
2089
2058
|
numberedParams: false,
|
|
2090
2059
|
preserveValueOrder: false,
|
|
2091
|
-
placeholderFieldName:
|
|
2092
|
-
placeholderOperatorName:
|
|
2060
|
+
placeholderFieldName: "~",
|
|
2061
|
+
placeholderOperatorName: "~",
|
|
2093
2062
|
quoteValuesWith: "'",
|
|
2094
2063
|
concatOperator: "||",
|
|
2095
2064
|
preset: "ansi",
|
|
@@ -2119,14 +2088,14 @@ const sqlFormats = new Set([
|
|
|
2119
2088
|
"sequelize"
|
|
2120
2089
|
]);
|
|
2121
2090
|
function formatQuery(ruleGroup, optionParam = {}) {
|
|
2122
|
-
const options = typeof optionParam === "string" ? { format:
|
|
2091
|
+
const options = typeof optionParam === "string" ? { format: require_objectUtils.lc(optionParam) } : optionParam;
|
|
2123
2092
|
const optObj = {
|
|
2124
2093
|
...defaultFormatQueryOptions,
|
|
2125
2094
|
...!options.format || sqlFormats.has(options.format) ? sqlDialectPresets[options.preset ?? "ansi"] ?? null : null,
|
|
2126
2095
|
...options,
|
|
2127
2096
|
...!options.format && (Object.keys(sqlDialectPresets).includes(options.preset ?? "") ? { format: "sql" } : null)
|
|
2128
2097
|
};
|
|
2129
|
-
const format =
|
|
2098
|
+
const format = require_objectUtils.lc(optObj.format);
|
|
2130
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;
|
|
2131
2100
|
const getParseNumberBoolean = (inputType) => {
|
|
2132
2101
|
return typeof require_utils.getParseNumberMethod({
|
|
@@ -2194,7 +2163,7 @@ function formatQuery(ruleGroup, optionParam = {}) {
|
|
|
2194
2163
|
switch (format) {
|
|
2195
2164
|
case "json":
|
|
2196
2165
|
case "json_without_ids": {
|
|
2197
|
-
const rg = parseNumbers ?
|
|
2166
|
+
const rg = parseNumbers ? require_utils.numerifyValues(ruleGroup, finalOptions) : ruleGroup;
|
|
2198
2167
|
if (format === "json_without_ids") return JSON.stringify(rg, (key, value) => key === "id" || key === "path" ? void 0 : require_utils.bigIntJsonStringifyReplacer(key, value));
|
|
2199
2168
|
return JSON.stringify(rg, require_utils.bigIntJsonStringifyReplacer, 2);
|
|
2200
2169
|
}
|
|
@@ -2216,7 +2185,6 @@ function formatQuery(ruleGroup, optionParam = {}) {
|
|
|
2216
2185
|
default: return "";
|
|
2217
2186
|
}
|
|
2218
2187
|
}
|
|
2219
|
-
|
|
2220
2188
|
//#endregion
|
|
2221
2189
|
//#region src/utils/formatQuery/index.ts
|
|
2222
2190
|
const generateValueProcessor = (vpbr) => (field, operator, value, valueSource) => vpbr({
|
|
@@ -2267,7 +2235,6 @@ const defaultValueProcessorMongoDBByRule = defaultRuleProcessorMongoDB;
|
|
|
2267
2235
|
* @group Export
|
|
2268
2236
|
*/
|
|
2269
2237
|
const defaultValueProcessorSpELByRule = defaultRuleProcessorSpEL;
|
|
2270
|
-
|
|
2271
2238
|
//#endregion
|
|
2272
2239
|
exports.bigIntJsonParseReviver = require_utils.bigIntJsonParseReviver;
|
|
2273
2240
|
exports.bigIntJsonStringifyReplacer = require_utils.bigIntJsonStringifyReplacer;
|
|
@@ -2331,4 +2298,5 @@ exports.prismaOperators = require_utils.prismaOperators;
|
|
|
2331
2298
|
exports.processMatchMode = require_utils.processMatchMode;
|
|
2332
2299
|
exports.shouldRenderAsNumber = require_utils.shouldRenderAsNumber;
|
|
2333
2300
|
exports.sqlDialectPresets = sqlDialectPresets;
|
|
2301
|
+
|
|
2334
2302
|
//# sourceMappingURL=formatQuery.js.map
|