@stamhoofd/sql 2.118.1 → 2.119.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/SQLJsonExpressions.js +1 -1
- package/dist/src/SQLJsonExpressions.js.map +1 -1
- package/dist/src/filters/SQLFilter.d.ts +6 -2
- package/dist/src/filters/SQLFilter.d.ts.map +1 -1
- package/dist/src/filters/SQLFilter.js +13 -9
- package/dist/src/filters/SQLFilter.js.map +1 -1
- package/dist/src/filters/SQLSorter.js +1 -1
- package/dist/src/filters/SQLSorter.js.map +1 -1
- package/dist/src/filters/compilers/contains.d.ts.map +1 -1
- package/dist/src/filters/compilers/contains.js +3 -2
- package/dist/src/filters/compilers/contains.js.map +1 -1
- package/dist/src/filters/compilers/equals.d.ts.map +1 -1
- package/dist/src/filters/compilers/equals.js +3 -2
- package/dist/src/filters/compilers/equals.js.map +1 -1
- package/dist/src/filters/compilers/greater.d.ts.map +1 -1
- package/dist/src/filters/compilers/greater.js +3 -2
- package/dist/src/filters/compilers/greater.js.map +1 -1
- package/dist/src/filters/compilers/in.d.ts.map +1 -1
- package/dist/src/filters/compilers/in.js +4 -4
- package/dist/src/filters/compilers/in.js.map +1 -1
- package/dist/src/filters/compilers/less.d.ts.map +1 -1
- package/dist/src/filters/compilers/less.js +3 -2
- package/dist/src/filters/compilers/less.js.map +1 -1
- package/dist/src/filters/helpers/isJSONColumn.d.ts.map +1 -1
- package/dist/src/filters/helpers/isJSONColumn.js +1 -0
- package/dist/src/filters/helpers/isJSONColumn.js.map +1 -1
- package/dist/src/filters/helpers/normalizeCompareValue.d.ts.map +1 -1
- package/dist/src/filters/helpers/normalizeCompareValue.js +1 -1
- package/dist/src/filters/helpers/normalizeCompareValue.js.map +1 -1
- package/dist/tests/filters/$contains.test.js +216 -0
- package/dist/tests/filters/$contains.test.js.map +1 -1
- package/dist/tests/filters/$eq.test.js +420 -4
- package/dist/tests/filters/$eq.test.js.map +1 -1
- package/dist/tests/filters/$gt.test.js +179 -1
- package/dist/tests/filters/$gt.test.js.map +1 -1
- package/dist/tests/filters/$in.test.js +183 -0
- package/dist/tests/filters/$in.test.js.map +1 -1
- package/dist/tests/filters/dot-syntax.test.js +7 -7
- package/dist/tests/filters/dot-syntax.test.js.map +1 -1
- package/dist/tests/filters/wildcard.test.js +2 -2
- package/dist/tests/filters/wildcard.test.js.map +1 -1
- package/package.json +2 -2
- package/src/SQLJsonExpressions.ts +1 -1
- package/src/filters/SQLFilter.ts +16 -11
- package/src/filters/SQLSorter.ts +1 -1
- package/src/filters/compilers/contains.ts +3 -2
- package/src/filters/compilers/equals.ts +3 -2
- package/src/filters/compilers/greater.ts +3 -2
- package/src/filters/compilers/in.ts +5 -6
- package/src/filters/compilers/less.ts +3 -2
- package/src/filters/helpers/isJSONColumn.ts +1 -0
- package/src/filters/helpers/normalizeCompareValue.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLJsonExpressions.js","sourceRoot":"","sources":["../../src/SQLJsonExpressions.ts"],"names":[],"mappings":";;;AAIA,8DAcC;AAlBD,yDAAiG;AACjG,2DAAsH;AACtH,+CAAyC;AAEzC,SAAgB,yBAAyB,CAAC,CAAwB;IAC9D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,+BAAW,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACb,OAAO,+BAAW,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACd,OAAO,gCAAY,CAAC;IACxB,CAAC;IAED,OAAO,IAAI,6BAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,MAAa,cAAc;IACvB,MAAM,CAAgB;IAEtB,YAAY,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,+BAAY,EAAC;YAChB,eAAe;YACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;SACN,CAAC,CAAC;IACP,CAAC;CACJ;AAdD,wCAcC;AAID,MAAa,YAAY;IACrB,MAAM,CAAgB;IACtB,IAAI,CAAgB;IACpB,IAAI,CAAoB;IAExB,YAAY,MAAqB,EAAE,IAAuB,EAAE,IAAoB;QAC5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,IAAI,IAAI,MAAM,YAAY,cAAc,EAAE,CAAC;YAC5C,kEAAkE;YAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,gCAAY,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,OAA8B;QACjC,OAAO,IAAA,+BAAY,EAAC;YAChB,aAAa;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,GAAG;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,
|
|
1
|
+
{"version":3,"file":"SQLJsonExpressions.js","sourceRoot":"","sources":["../../src/SQLJsonExpressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FilterCompiler, FilterDefinitions, RequiredFilterCompiler, StamhoofdFilter } from '@stamhoofd/structures';
|
|
1
|
+
import { FilterCompiler, FilterDefinitions, RequiredFilterCompiler, type StamhoofdCompareValue, StamhoofdFilter } from '@stamhoofd/structures';
|
|
2
2
|
import { SQLExpression } from '../SQLExpression.js';
|
|
3
3
|
import { SQLJoin } from '../SQLJoin.js';
|
|
4
4
|
import { SQLSelect } from '../SQLSelect.js';
|
|
@@ -23,6 +23,10 @@ export declare enum SQLValueType {
|
|
|
23
23
|
JSONBoolean = "JSONBoolean",
|
|
24
24
|
JSONString = "JSONString",
|
|
25
25
|
JSONNumber = "JSONNumber",
|
|
26
|
+
/**
|
|
27
|
+
* Either boolean, string, number or null (if nullable). Only use this if you cannot determine the type at compile time.
|
|
28
|
+
*/
|
|
29
|
+
JSONScalar = "JSONScalar",
|
|
26
30
|
/** [...] */
|
|
27
31
|
JSONArray = "JSONArray",
|
|
28
32
|
/** {...} */
|
|
@@ -71,5 +75,5 @@ export declare function compileToSQLFilter(filter: StamhoofdFilter, filters: SQL
|
|
|
71
75
|
/**
|
|
72
76
|
* Casts json strings, numbers and booleans to native MySQL types. This includes json null to mysql null.
|
|
73
77
|
*/
|
|
74
|
-
export declare function normalizeColumn(column: SQLCurrentColumn): SQLCurrentColumn;
|
|
78
|
+
export declare function normalizeColumn(column: SQLCurrentColumn, hint?: StamhoofdCompareValue): SQLCurrentColumn;
|
|
75
79
|
//# sourceMappingURL=SQLFilter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLFilter.d.ts","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,cAAc,EAAE,iBAAiB,EAA+B,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"SQLFilter.d.ts","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,11 +13,11 @@ exports.compileToSQLFilter = compileToSQLFilter;
|
|
|
13
13
|
exports.normalizeColumn = normalizeColumn;
|
|
14
14
|
const simple_errors_1 = require("@simonbackx/simple-errors");
|
|
15
15
|
const structures_1 = require("@stamhoofd/structures");
|
|
16
|
+
const SQLExpressions_js_1 = require("../SQLExpressions.js");
|
|
16
17
|
const SQLJsonExpressions_js_1 = require("../SQLJsonExpressions.js");
|
|
17
18
|
const SQLWhere_js_1 = require("../SQLWhere.js");
|
|
18
|
-
const index_js_1 = require("./compilers/index.js");
|
|
19
19
|
const contains_js_1 = require("./compilers/contains.js");
|
|
20
|
-
const
|
|
20
|
+
const index_js_1 = require("./compilers/index.js");
|
|
21
21
|
var SQLValueType;
|
|
22
22
|
(function (SQLValueType) {
|
|
23
23
|
/** At the root of a select */
|
|
@@ -34,6 +34,10 @@ var SQLValueType;
|
|
|
34
34
|
SQLValueType["JSONBoolean"] = "JSONBoolean";
|
|
35
35
|
SQLValueType["JSONString"] = "JSONString";
|
|
36
36
|
SQLValueType["JSONNumber"] = "JSONNumber";
|
|
37
|
+
/**
|
|
38
|
+
* Either boolean, string, number or null (if nullable). Only use this if you cannot determine the type at compile time.
|
|
39
|
+
*/
|
|
40
|
+
SQLValueType["JSONScalar"] = "JSONScalar";
|
|
37
41
|
/** [...] */
|
|
38
42
|
SQLValueType["JSONArray"] = "JSONArray";
|
|
39
43
|
/** {...} */
|
|
@@ -189,25 +193,25 @@ async function compileToSQLFilter(filter, filters) {
|
|
|
189
193
|
/**
|
|
190
194
|
* Casts json strings, numbers and booleans to native MySQL types. This includes json null to mysql null.
|
|
191
195
|
*/
|
|
192
|
-
function normalizeColumn(column) {
|
|
193
|
-
if (column.type === SQLValueType.JSONString) {
|
|
196
|
+
function normalizeColumn(column, hint) {
|
|
197
|
+
if (column.type === SQLValueType.JSONString || (column.type === SQLValueType.JSONScalar && typeof hint === 'string')) {
|
|
194
198
|
return {
|
|
195
199
|
expression: new SQLJsonExpressions_js_1.SQLJsonValue(column.expression, 'CHAR'),
|
|
196
200
|
type: SQLValueType.String,
|
|
197
201
|
nullable: column.nullable,
|
|
198
202
|
};
|
|
199
203
|
}
|
|
200
|
-
if (column.type === SQLValueType.
|
|
204
|
+
if (column.type === SQLValueType.JSONNumber || (column.type === SQLValueType.JSONScalar && typeof hint === 'number')) {
|
|
201
205
|
return {
|
|
202
|
-
expression: new SQLJsonExpressions_js_1.SQLJsonValue(column.expression, '
|
|
203
|
-
type: SQLValueType.
|
|
206
|
+
expression: new SQLJsonExpressions_js_1.SQLJsonValue(column.expression, 'SIGNED'),
|
|
207
|
+
type: SQLValueType.Number,
|
|
204
208
|
nullable: column.nullable,
|
|
205
209
|
};
|
|
206
210
|
}
|
|
207
|
-
if (column.type === SQLValueType.
|
|
211
|
+
if (column.type === SQLValueType.JSONBoolean || (column.type === SQLValueType.JSONScalar && typeof hint === 'boolean')) {
|
|
208
212
|
return {
|
|
209
213
|
expression: new SQLJsonExpressions_js_1.SQLJsonValue(column.expression, 'UNSIGNED'),
|
|
210
|
-
type: SQLValueType.
|
|
214
|
+
type: SQLValueType.Boolean,
|
|
211
215
|
nullable: column.nullable,
|
|
212
216
|
};
|
|
213
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ function applySQLSorter(selectQuery, sortBy, definitions) {
|
|
|
27
27
|
throw new simple_errors_1.SimpleError({
|
|
28
28
|
code: 'sorter_join_overlap',
|
|
29
29
|
message: 'This combination of sorters is not possible',
|
|
30
|
-
human: $t('
|
|
30
|
+
human: $t('%GU'),
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLSorter.js","sourceRoot":"","sources":["../../../src/filters/SQLSorter.ts"],"names":[],"mappings":";;AAiBA,wCA0CC;AAxDD,6DAAwD;AAcxD,SAAgB,cAAc,CAAC,WAA2B,EAAE,MAAgB,EAAE,WAA+B;IACzG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,2BAAW,CAAC;YAClB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,gBAAgB;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QAED,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACT,kEAAkE;YAClE,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,gBAAgB;YACpB,CAAC;iBACI,CAAC;gBACF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC;gBAElE,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC3D,MAAM,IAAI,2BAAW,CAAC;4BAClB,IAAI,EAAE,qBAAqB;4BAC3B,OAAO,EAAE,6CAA6C;4BACtD,KAAK,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"SQLSorter.js","sourceRoot":"","sources":["../../../src/filters/SQLSorter.ts"],"names":[],"mappings":";;AAiBA,wCA0CC;AAxDD,6DAAwD;AAcxD,SAAgB,cAAc,CAAC,WAA2B,EAAE,MAAgB,EAAE,WAA+B;IACzG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,2BAAW,CAAC;YAClB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,gBAAgB;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QAED,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACT,kEAAkE;YAClE,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,gBAAgB;YACpB,CAAC;iBACI,CAAC;gBACF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC;gBAElE,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC3D,MAAM,IAAI,2BAAW,CAAC;4BAClB,IAAI,EAAE,qBAAqB;4BAC3B,OAAO,EAAE,6CAA6C;4BACtD,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;yBACnB,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;gBAED,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACX,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contains.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/contains.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIlF,OAAO,EAAqC,mBAAmB,EAAgB,MAAM,iBAAiB,CAAC;AAGvG,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"contains.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/contains.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIlF,OAAO,EAAqC,mBAAmB,EAAgB,MAAM,iBAAiB,CAAC;AAGvG,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAmCvF"}
|
|
@@ -10,8 +10,9 @@ const SQLFilter_js_1 = require("../SQLFilter.js");
|
|
|
10
10
|
const normalizeCompareValue_js_1 = require("../helpers/normalizeCompareValue.js");
|
|
11
11
|
function $containsSQLFilterCompiler(filter) {
|
|
12
12
|
return (originalColumn) => {
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const v = (0, structures_1.assertFilterCompareValue)(filter);
|
|
14
|
+
const column = (0, SQLFilter_js_1.normalizeColumn)(originalColumn, v);
|
|
15
|
+
const value = (0, normalizeCompareValue_js_1.normalizeCompareValue)(v, column.type);
|
|
15
16
|
if (typeof value !== 'string') {
|
|
16
17
|
throw new simple_errors_1.SimpleError({
|
|
17
18
|
code: 'invalid_filter',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contains.js","sourceRoot":"","sources":["../../../../src/filters/compilers/contains.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"contains.js","sourceRoot":"","sources":["../../../../src/filters/compilers/contains.ts"],"names":[],"mappings":";;AAQA,gEAmCC;AA3CD,6DAAwD;AACxD,sDAAkF;AAClF,+DAAmF;AACnF,uEAA4D;AAC5D,mDAA8E;AAC9E,kDAAuG;AACvG,kFAA4E;AAE5E,SAAgB,0BAA0B,CAAC,MAAuB;IAC9D,OAAO,CAAC,cAAgC,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,IAAA,qCAAwB,EAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAA,8BAAe,EAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAA,gDAAqB,EAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,2BAAW,CAAC;gBAClB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,qCAAqC;aACjD,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,2BAAY,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,2BAAY,CAAC,UAAU,EAAE,CAAC;YACpF,oDAAoD;YACpD,OAAO,IAAI,2BAAa,CACpB,IAAI,qCAAa,CACb,IAAI,4BAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAC/B,KAAK,EACL,IAAA,yCAAqB,EACjB,GAAG,GAAG,0BAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CACzC,CACJ,EACD,0BAAY,CAAC,QAAQ,EACrB,IAAI,2BAAO,EAAE,CAChB,CAAC;QACN,CAAC;QAED,OAAO,IAAI,0BAAY,CACnB,MAAM,CAAC,UAAU,EACjB,IAAA,yCAAqB,EACjB,GAAG,GAAG,0BAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CACzC,CACJ,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/equals.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIlF,OAAO,EAAqC,mBAAmB,EAAgB,MAAM,iBAAiB,CAAC;AAIvG,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"equals.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/equals.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIlF,OAAO,EAAqC,mBAAmB,EAAgB,MAAM,iBAAiB,CAAC;AAIvG,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAgErF"}
|
|
@@ -10,8 +10,9 @@ const isJSONColumn_js_1 = require("../helpers/isJSONColumn.js");
|
|
|
10
10
|
const normalizeCompareValue_js_1 = require("../helpers/normalizeCompareValue.js");
|
|
11
11
|
function $equalsSQLFilterCompiler(filter) {
|
|
12
12
|
return (originalColumn) => {
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const v = (0, structures_1.assertFilterCompareValue)(filter);
|
|
14
|
+
const column = (0, SQLFilter_js_1.normalizeColumn)(originalColumn, v);
|
|
15
|
+
const value = (0, normalizeCompareValue_js_1.normalizeCompareValue)(v, column.type);
|
|
15
16
|
/**
|
|
16
17
|
* Special case, checking for equality with a JSON array.
|
|
17
18
|
* This should return true if the JSON array contains the value exactly.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equals.js","sourceRoot":"","sources":["../../../../src/filters/compilers/equals.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"equals.js","sourceRoot":"","sources":["../../../../src/filters/compilers/equals.ts"],"names":[],"mappings":";;AAQA,4DAgEC;AAxED,sDAAkF;AAClF,+DAAmF;AACnF,uEAA2F;AAC3F,mDAAoG;AACpG,kDAAuG;AACvG,gEAA0D;AAC1D,kFAA4E;AAE5E,SAAgB,wBAAwB,CAAC,MAAuB;IAC5D,OAAO,CAAC,cAAgC,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,IAAA,qCAAwB,EAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAA,8BAAe,EAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAA,gDAAqB,EAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD;;;;;WAKG;QACH,IAAI,MAAM,CAAC,IAAI,KAAK,2BAAY,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,KAAe,CAAC;YAEpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,KAAK,GAAG,IAAI,2BAAa,CACrB,IAAI,qCAAa,CACb,IAAI,4BAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAC/B,KAAK,EACL,IAAA,yCAAqB,EACjB,0BAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CACJ,EACD,0BAAY,CAAC,QAAQ,EACrB,IAAI,2BAAO,EAAE,CAChB,CAAC;YACN,CAAC;iBACI,CAAC;gBACF,KAAK,GAAG,IAAI,uCAAe,CACvB,MAAM,CAAC,UAAU,EACjB,IAAA,yCAAqB,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAC/C,CAAC;YACN,CAAC;YAED,0FAA0F;YAC1F,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,KAAK,GAAG,IAAI,wBAAU,CAAC;oBACnB,KAAK;oBACL,IAAI,2BAAa,CACb,MAAM,CAAC,UAAU,EACjB,0BAAY,CAAC,KAAK,EAClB,IAAI,2BAAO,EAAE,CAChB;iBACJ,CAAC,CAAC;YACP,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,IAAA,8BAAY,EAAC,MAAM,CAAC,EAAE,CAAC;YACzC,6DAA6D;YAC7D,OAAO,IAAI,2BAAa,CACpB,IAAI,oCAAY,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,mDAAmD;YACxF,0BAAY,CAAC,KAAK,EAClB,IAAI,2BAAO,EAAE,CAChB,CAAC;QACN,CAAC;QAED,OAAO,IAAI,2BAAa,CACpB,MAAM,CAAC,UAAU,EACjB,0BAAY,CAAC,KAAK,EAClB,IAAA,yCAAqB,EAAC,KAAK,CAAC,CAC/B,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"greater.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/greater.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGlF,OAAO,EAAqC,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGzF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"greater.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/greater.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGlF,OAAO,EAAqC,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGzF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAc1F"}
|
|
@@ -8,8 +8,9 @@ const SQLFilter_js_1 = require("../SQLFilter.js");
|
|
|
8
8
|
const normalizeCompareValue_js_1 = require("../helpers/normalizeCompareValue.js");
|
|
9
9
|
function $greaterThanSQLFilterCompiler(filter) {
|
|
10
10
|
return (originalColumn) => {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const v = (0, structures_1.assertFilterCompareValue)(filter);
|
|
12
|
+
const column = (0, SQLFilter_js_1.normalizeColumn)(originalColumn, v);
|
|
13
|
+
const value = (0, normalizeCompareValue_js_1.normalizeCompareValue)(v, column.type);
|
|
13
14
|
const base = new SQLWhere_js_1.SQLWhereEqual(column.expression, SQLWhere_js_1.SQLWhereSign.Greater, (0, SQLExpressions_js_1.scalarToSQLExpression)(value)).setNullable(column.nullable);
|
|
14
15
|
return base;
|
|
15
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"greater.js","sourceRoot":"","sources":["../../../../src/filters/compilers/greater.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"greater.js","sourceRoot":"","sources":["../../../../src/filters/compilers/greater.ts"],"names":[],"mappings":";;AAMA,sEAcC;AApBD,sDAAkF;AAClF,+DAAgE;AAChE,mDAAgE;AAChE,kDAAyF;AACzF,kFAA4E;AAE5E,SAAgB,6BAA6B,CAAC,MAAuB;IACjE,OAAO,CAAC,cAAgC,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,IAAA,qCAAwB,EAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAA,8BAAe,EAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAA,gDAAqB,EAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,IAAI,2BAAa,CAC1B,MAAM,CAAC,UAAU,EACjB,0BAAY,CAAC,OAAO,EACpB,IAAA,yCAAqB,EAAC,KAAK,CAAC,CAC/B,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/in.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIlF,OAAO,EAAqC,mBAAmB,EAAgB,MAAM,iBAAiB,CAAC;AAIvG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"in.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/in.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIlF,OAAO,EAAqC,mBAAmB,EAAgB,MAAM,iBAAiB,CAAC;AAIvG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAoDjF"}
|
|
@@ -21,15 +21,15 @@ function $inSQLFilterCompiler(filter) {
|
|
|
21
21
|
throw new simple_errors_1.SimpleError({
|
|
22
22
|
code: 'invalid_filter',
|
|
23
23
|
message: 'Too many values in $in filter, maximum is 1000',
|
|
24
|
-
human: $t('
|
|
24
|
+
human: $t('%1HH', { count: filter.length }),
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
const values = filter.map(val => (0, normalizeCompareValue_js_1.normalizeCompareValue)((0, structures_1.assertFilterCompareValue)(val), column.type));
|
|
29
|
-
if (values.length === 0) {
|
|
27
|
+
if (filter.length === 0) {
|
|
30
28
|
// Return always false
|
|
31
29
|
return new SQLWhere_js_1.SQLWhereOr([]);
|
|
32
30
|
}
|
|
31
|
+
const column = (0, SQLFilter_js_1.normalizeColumn)(originalColumn, (0, structures_1.assertFilterCompareValue)(filter.find(f => f !== null) ?? null));
|
|
32
|
+
const values = filter.map(val => (0, normalizeCompareValue_js_1.normalizeCompareValue)((0, structures_1.assertFilterCompareValue)(val), column.type));
|
|
33
33
|
const valuesWithoutNulls = values.filter(val => val !== null);
|
|
34
34
|
const hasNull = values.length !== valuesWithoutNulls.length;
|
|
35
35
|
if (hasNull) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in.js","sourceRoot":"","sources":["../../../../src/filters/compilers/in.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"in.js","sourceRoot":"","sources":["../../../../src/filters/compilers/in.ts"],"names":[],"mappings":";;AASA,oDAoDC;AA7DD,6DAAwD;AACxD,sDAAkF;AAClF,+DAA0E;AAC1E,uEAA8D;AAC9D,mDAA4E;AAC5E,kDAAuG;AACvG,kFAA4E;AAC5E,2CAAuD;AAEvD,SAAgB,oBAAoB,CAAC,MAAuB;IACxD,OAAO,CAAC,cAAgC,EAAE,EAAE;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,2BAAW,CAAC;gBAClB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,8BAA8B;aAC1C,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,2BAAW,CAAC;gBAClB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,gDAAgD;gBACzD,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;aAC9C,CAAC,CAAC;QACP,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,sBAAsB;YACtB,OAAO,IAAI,wBAAU,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,8BAAe,EAAC,cAAc,EAAE,IAAA,qCAAwB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC/G,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,gDAAqB,EAAC,IAAA,qCAAwB,EAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpG,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAC,MAAM,CAAC;QAE5D,IAAI,OAAO,EAAE,CAAC;YACV,2IAA2I;YAC3I,OAAO,IAAI,wBAAU,CAAC;gBAClB,IAAA,oCAAwB,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBACtC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;aACnD,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,2BAAY,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACtD,MAAM,gBAAgB,GAAG,IAAA,yCAAqB,EAAC,UAAU,CAAC,CAAC;YAE3D,OAAO,IAAI,uCAAe,CACtB,MAAM,CAAC,UAAU,EACjB,gBAAgB,CACnB,CAAC;QACN,CAAC;QACD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,yCAAqB,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,4BAAQ,CAAC,kBAAkB,CAAC,CAAC;QAE3I,OAAO,IAAI,2BAAa,CACpB,MAAM,CAAC,UAAU,EACjB,0BAAY,CAAC,KAAK,EAClB,gBAAgB,CACnB,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"less.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/less.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGlF,OAAO,EAAqC,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGzF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"less.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/less.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGlF,OAAO,EAAqC,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGzF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAavF"}
|
|
@@ -8,8 +8,9 @@ const SQLFilter_js_1 = require("../SQLFilter.js");
|
|
|
8
8
|
const normalizeCompareValue_js_1 = require("../helpers/normalizeCompareValue.js");
|
|
9
9
|
function $lessThanSQLFilterCompiler(filter) {
|
|
10
10
|
return (originalColumn) => {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const v = (0, structures_1.assertFilterCompareValue)(filter);
|
|
12
|
+
const column = (0, SQLFilter_js_1.normalizeColumn)(originalColumn, v);
|
|
13
|
+
const value = (0, normalizeCompareValue_js_1.normalizeCompareValue)(v, column.type);
|
|
13
14
|
const base = new SQLWhere_js_1.SQLWhereEqual(column.expression, SQLWhere_js_1.SQLWhereSign.Less, (0, SQLExpressions_js_1.scalarToSQLExpression)(value)).setNullable(column.nullable);
|
|
14
15
|
return base;
|
|
15
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"less.js","sourceRoot":"","sources":["../../../../src/filters/compilers/less.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"less.js","sourceRoot":"","sources":["../../../../src/filters/compilers/less.ts"],"names":[],"mappings":";;AAMA,gEAaC;AAnBD,sDAAkF;AAClF,+DAAgE;AAChE,mDAAgE;AAChE,kDAAyF;AACzF,kFAA4E;AAE5E,SAAgB,0BAA0B,CAAC,MAAuB;IAC9D,OAAO,CAAC,cAAgC,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,IAAA,qCAAwB,EAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAA,8BAAe,EAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAA,gDAAqB,EAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,IAAI,2BAAa,CAC1B,MAAM,CAAC,UAAU,EACjB,0BAAY,CAAC,IAAI,EACjB,IAAA,yCAAqB,EAAC,KAAK,CAAC,CAC/B,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isJSONColumn.d.ts","sourceRoot":"","sources":["../../../../src/filters/helpers/isJSONColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEjE,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAEhE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"isJSONColumn.d.ts","sourceRoot":"","sources":["../../../../src/filters/helpers/isJSONColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEjE,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAEhE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAOtD"}
|
|
@@ -10,6 +10,7 @@ function isJSONType(type) {
|
|
|
10
10
|
return type === SQLFilter_js_1.SQLValueType.JSONString
|
|
11
11
|
|| type === SQLFilter_js_1.SQLValueType.JSONBoolean
|
|
12
12
|
|| type === SQLFilter_js_1.SQLValueType.JSONNumber
|
|
13
|
+
|| type === SQLFilter_js_1.SQLValueType.JSONScalar
|
|
13
14
|
|| type === SQLFilter_js_1.SQLValueType.JSONArray
|
|
14
15
|
|| type === SQLFilter_js_1.SQLValueType.JSONObject;
|
|
15
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isJSONColumn.js","sourceRoot":"","sources":["../../../../src/filters/helpers/isJSONColumn.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAED,
|
|
1
|
+
{"version":3,"file":"isJSONColumn.js","sourceRoot":"","sources":["../../../../src/filters/helpers/isJSONColumn.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAED,gCAOC;AAbD,kDAAiE;AAEjE,SAAgB,YAAY,CAAC,EAAE,IAAI,EAAoB;IACnD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,UAAU,CAAC,IAAkB;IACzC,OAAO,IAAI,KAAK,2BAAY,CAAC,UAAU;WAChC,IAAI,KAAK,2BAAY,CAAC,WAAW;WACjC,IAAI,KAAK,2BAAY,CAAC,UAAU;WAChC,IAAI,KAAK,2BAAY,CAAC,UAAU;WAChC,IAAI,KAAK,2BAAY,CAAC,SAAS;WAC/B,IAAI,KAAK,2BAAY,CAAC,UAAU,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeCompareValue.d.ts","sourceRoot":"","sources":["../../../../src/filters/helpers/normalizeCompareValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"normalizeCompareValue.d.ts","sourceRoot":"","sources":["../../../../src/filters/helpers/normalizeCompareValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CA4FpI"}
|
|
@@ -24,7 +24,7 @@ function normalizeCompareValue(val, againstType) {
|
|
|
24
24
|
throw new Error('Cannot compare a date with a non-datetime column');
|
|
25
25
|
}
|
|
26
26
|
if (typeof val === 'string') {
|
|
27
|
-
if (againstType === SQLFilter_js_1.SQLValueType.String
|
|
27
|
+
if (againstType === SQLFilter_js_1.SQLValueType.String) {
|
|
28
28
|
return val.toLocaleLowerCase();
|
|
29
29
|
}
|
|
30
30
|
if (againstType === SQLFilter_js_1.SQLValueType.JSONArray) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeCompareValue.js","sourceRoot":"","sources":["../../../../src/filters/helpers/normalizeCompareValue.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"normalizeCompareValue.js","sourceRoot":"","sources":["../../../../src/filters/helpers/normalizeCompareValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -696,6 +696,222 @@ describe('$contains', () => {
|
|
|
696
696
|
});
|
|
697
697
|
});
|
|
698
698
|
});
|
|
699
|
+
describe('JSON scalars', () => {
|
|
700
|
+
const tableDefinition = {
|
|
701
|
+
settings: {
|
|
702
|
+
type: 'json',
|
|
703
|
+
nullable: true,
|
|
704
|
+
},
|
|
705
|
+
};
|
|
706
|
+
const filters = {
|
|
707
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
708
|
+
'settings.scalar': (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.jsonExtract(SQL_js_1.SQL.column('settings'), '$.scalar'), type: SQLFilter_js_1.SQLValueType.JSONScalar, nullable: true }),
|
|
709
|
+
};
|
|
710
|
+
it('Can actually search strings for %', async () => {
|
|
711
|
+
await (0, index_js_1.testMatch)({
|
|
712
|
+
tableDefinition,
|
|
713
|
+
filters,
|
|
714
|
+
rows: [
|
|
715
|
+
{
|
|
716
|
+
settings: {
|
|
717
|
+
scalar: 'This contains 50% more',
|
|
718
|
+
},
|
|
719
|
+
},
|
|
720
|
+
],
|
|
721
|
+
doMatch: [
|
|
722
|
+
{
|
|
723
|
+
'settings.scalar': {
|
|
724
|
+
$contains: '50%',
|
|
725
|
+
},
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
'settings.scalar': {
|
|
729
|
+
$contains: '0%',
|
|
730
|
+
},
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
'settings.scalar': {
|
|
734
|
+
$contains: '%',
|
|
735
|
+
},
|
|
736
|
+
},
|
|
737
|
+
],
|
|
738
|
+
doNotMatch: [
|
|
739
|
+
{
|
|
740
|
+
'settings.scalar': {
|
|
741
|
+
$contains: '%%',
|
|
742
|
+
},
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
'settings.scalar': {
|
|
746
|
+
$contains: '%50',
|
|
747
|
+
},
|
|
748
|
+
},
|
|
749
|
+
],
|
|
750
|
+
});
|
|
751
|
+
});
|
|
752
|
+
it('Null fields do not match', async () => {
|
|
753
|
+
await (0, index_js_1.testMatch)({
|
|
754
|
+
tableDefinition,
|
|
755
|
+
filters,
|
|
756
|
+
rows: [
|
|
757
|
+
{
|
|
758
|
+
settings: {
|
|
759
|
+
scalar: null,
|
|
760
|
+
},
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
settings: {
|
|
764
|
+
other: 15,
|
|
765
|
+
},
|
|
766
|
+
},
|
|
767
|
+
],
|
|
768
|
+
doMatch: [],
|
|
769
|
+
doNotMatch: [
|
|
770
|
+
{
|
|
771
|
+
'settings.scalar': {
|
|
772
|
+
$contains: '15',
|
|
773
|
+
},
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
'settings.scalar': {
|
|
777
|
+
$contains: '',
|
|
778
|
+
},
|
|
779
|
+
},
|
|
780
|
+
],
|
|
781
|
+
});
|
|
782
|
+
});
|
|
783
|
+
it('Number fields are converted to strings', async () => {
|
|
784
|
+
await (0, index_js_1.testMatch)({
|
|
785
|
+
tableDefinition,
|
|
786
|
+
filters,
|
|
787
|
+
rows: [
|
|
788
|
+
{
|
|
789
|
+
settings: {
|
|
790
|
+
scalar: 15,
|
|
791
|
+
},
|
|
792
|
+
},
|
|
793
|
+
],
|
|
794
|
+
doMatch: [
|
|
795
|
+
{
|
|
796
|
+
'settings.scalar': {
|
|
797
|
+
$contains: '1',
|
|
798
|
+
},
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
'settings.scalar': {
|
|
802
|
+
$contains: '5',
|
|
803
|
+
},
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
'settings.scalar': {
|
|
807
|
+
$contains: '15',
|
|
808
|
+
},
|
|
809
|
+
},
|
|
810
|
+
],
|
|
811
|
+
doNotMatch: [
|
|
812
|
+
{
|
|
813
|
+
'settings.scalar': {
|
|
814
|
+
$contains: '2',
|
|
815
|
+
},
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
'settings.scalar': {
|
|
819
|
+
$contains: '151',
|
|
820
|
+
},
|
|
821
|
+
},
|
|
822
|
+
],
|
|
823
|
+
});
|
|
824
|
+
});
|
|
825
|
+
it('Negative number fields are converted to strings', async () => {
|
|
826
|
+
await (0, index_js_1.testMatch)({
|
|
827
|
+
tableDefinition,
|
|
828
|
+
filters,
|
|
829
|
+
rows: [
|
|
830
|
+
{
|
|
831
|
+
settings: {
|
|
832
|
+
scalar: -15,
|
|
833
|
+
},
|
|
834
|
+
},
|
|
835
|
+
],
|
|
836
|
+
doMatch: [
|
|
837
|
+
{
|
|
838
|
+
'settings.scalar': {
|
|
839
|
+
$contains: '1',
|
|
840
|
+
},
|
|
841
|
+
},
|
|
842
|
+
{
|
|
843
|
+
'settings.scalar': {
|
|
844
|
+
$contains: '5',
|
|
845
|
+
},
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
'settings.scalar': {
|
|
849
|
+
$contains: '-',
|
|
850
|
+
},
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
'settings.scalar': {
|
|
854
|
+
$contains: '15',
|
|
855
|
+
},
|
|
856
|
+
},
|
|
857
|
+
{
|
|
858
|
+
'settings.scalar': {
|
|
859
|
+
$contains: '-15',
|
|
860
|
+
},
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
'settings.scalar': {
|
|
864
|
+
$contains: '-1',
|
|
865
|
+
},
|
|
866
|
+
},
|
|
867
|
+
],
|
|
868
|
+
doNotMatch: [
|
|
869
|
+
{
|
|
870
|
+
'settings.scalar': {
|
|
871
|
+
$contains: '2',
|
|
872
|
+
},
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
'settings.scalar': {
|
|
876
|
+
$contains: '151',
|
|
877
|
+
},
|
|
878
|
+
},
|
|
879
|
+
],
|
|
880
|
+
});
|
|
881
|
+
});
|
|
882
|
+
it('Booleans are converted to strings', async () => {
|
|
883
|
+
await (0, index_js_1.testMatch)({
|
|
884
|
+
tableDefinition,
|
|
885
|
+
filters,
|
|
886
|
+
rows: [
|
|
887
|
+
{
|
|
888
|
+
settings: {
|
|
889
|
+
scalar: true,
|
|
890
|
+
},
|
|
891
|
+
},
|
|
892
|
+
],
|
|
893
|
+
doMatch: [
|
|
894
|
+
{
|
|
895
|
+
'settings.scalar': {
|
|
896
|
+
$contains: 'true',
|
|
897
|
+
},
|
|
898
|
+
},
|
|
899
|
+
],
|
|
900
|
+
doNotMatch: [
|
|
901
|
+
{
|
|
902
|
+
'settings.scalar': {
|
|
903
|
+
$contains: '1',
|
|
904
|
+
},
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
'settings.scalar': {
|
|
908
|
+
$contains: '0',
|
|
909
|
+
},
|
|
910
|
+
},
|
|
911
|
+
],
|
|
912
|
+
});
|
|
913
|
+
});
|
|
914
|
+
});
|
|
699
915
|
});
|
|
700
916
|
});
|
|
701
917
|
//# sourceMappingURL=$contains.test.js.map
|