@stamhoofd/sql 2.116.0 → 2.117.1
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/QueryableModel.d.ts +1 -0
- package/dist/src/QueryableModel.d.ts.map +1 -1
- package/dist/src/QueryableModel.js +2 -6
- package/dist/src/QueryableModel.js.map +1 -1
- package/dist/src/SQLJoin.d.ts +9 -9
- package/dist/src/SQLJoin.d.ts.map +1 -1
- package/dist/src/SQLJoin.js +7 -7
- package/dist/src/SQLJoin.js.map +1 -1
- package/dist/src/SQLJsonExpressions.d.ts +3 -3
- package/dist/src/SQLJsonExpressions.d.ts.map +1 -1
- package/dist/src/SQLJsonExpressions.js +21 -21
- package/dist/src/SQLJsonExpressions.js.map +1 -1
- package/dist/src/SQLOrderBy.d.ts +3 -3
- package/dist/src/SQLOrderBy.d.ts.map +1 -1
- package/dist/src/SQLOrderBy.js +6 -6
- package/dist/src/SQLOrderBy.js.map +1 -1
- package/dist/src/SQLSelect.d.ts +1 -0
- package/dist/src/SQLSelect.d.ts.map +1 -1
- package/dist/src/SQLSelect.js.map +1 -1
- package/dist/src/SQLWhere.d.ts +4 -4
- package/dist/src/SQLWhere.d.ts.map +1 -1
- package/dist/src/SQLWhere.js +26 -26
- package/dist/src/SQLWhere.js.map +1 -1
- package/dist/src/filters/compilers/contains.d.ts +1 -1
- package/dist/src/filters/compilers/contains.d.ts.map +1 -1
- package/dist/src/filters/compilers/contains.js +10 -10
- package/dist/src/filters/compilers/contains.js.map +1 -1
- package/dist/src/filters/compilers/equals.d.ts +1 -1
- package/dist/src/filters/compilers/equals.d.ts.map +1 -1
- package/dist/src/filters/compilers/equals.js +17 -17
- package/dist/src/filters/compilers/equals.js.map +1 -1
- package/dist/src/filters/compilers/greater.d.ts +1 -1
- package/dist/src/filters/compilers/greater.d.ts.map +1 -1
- package/dist/src/filters/compilers/greater.js +7 -7
- package/dist/src/filters/compilers/greater.js.map +1 -1
- package/dist/src/filters/compilers/in.d.ts +1 -1
- package/dist/src/filters/compilers/in.d.ts.map +1 -1
- package/dist/src/filters/compilers/in.js +16 -16
- package/dist/src/filters/compilers/in.js.map +1 -1
- package/dist/src/filters/compilers/index.d.ts +4 -4
- package/dist/src/filters/compilers/index.d.ts.map +1 -1
- package/dist/src/filters/compilers/index.js +4 -4
- package/dist/src/filters/compilers/index.js.map +1 -1
- package/dist/src/filters/compilers/less.d.ts +1 -1
- package/dist/src/filters/compilers/less.d.ts.map +1 -1
- package/dist/src/filters/compilers/less.js +7 -7
- package/dist/src/filters/compilers/less.js.map +1 -1
- package/dist/src/filters/helpers/isJSONColumn.d.ts +1 -1
- package/dist/src/filters/helpers/isJSONColumn.d.ts.map +1 -1
- package/dist/src/filters/helpers/isJSONColumn.js +6 -6
- package/dist/src/filters/helpers/isJSONColumn.js.map +1 -1
- package/dist/src/filters/helpers/normalizeCompareValue.d.ts +1 -1
- package/dist/src/filters/helpers/normalizeCompareValue.d.ts.map +1 -1
- package/dist/src/filters/helpers/normalizeCompareValue.js +14 -14
- package/dist/src/filters/helpers/normalizeCompareValue.js.map +1 -1
- package/dist/tests/filters/$and.test.js +31 -31
- package/dist/tests/filters/$and.test.js.map +1 -1
- package/dist/tests/filters/$contains.test.js +45 -45
- package/dist/tests/filters/$contains.test.js.map +1 -1
- package/dist/tests/filters/$eq.test.js +88 -88
- package/dist/tests/filters/$eq.test.js.map +1 -1
- package/dist/tests/filters/$gt.test.js +32 -32
- package/dist/tests/filters/$gt.test.js.map +1 -1
- package/dist/tests/filters/$gte.test.js +26 -26
- package/dist/tests/filters/$gte.test.js.map +1 -1
- package/dist/tests/filters/$in.test.js +45 -45
- package/dist/tests/filters/$in.test.js.map +1 -1
- package/dist/tests/filters/$lt.test.js +26 -26
- package/dist/tests/filters/$lt.test.js.map +1 -1
- package/dist/tests/filters/$lte.test.js +26 -26
- package/dist/tests/filters/$lte.test.js.map +1 -1
- package/dist/tests/filters/$neq.test.js +6 -6
- package/dist/tests/filters/$neq.test.js.map +1 -1
- package/dist/tests/filters/$not.test.js +9 -9
- package/dist/tests/filters/$not.test.js.map +1 -1
- package/dist/tests/filters/$or.test.js +25 -25
- package/dist/tests/filters/$or.test.js.map +1 -1
- package/dist/tests/filters/SQLTranslatedStringHelper.test.js +50 -50
- package/dist/tests/filters/SQLTranslatedStringHelper.test.js.map +1 -1
- package/dist/tests/filters/dot-syntax.test.js +20 -20
- package/dist/tests/filters/dot-syntax.test.js.map +1 -1
- package/dist/tests/filters/joined-relations.test.js +43 -43
- package/dist/tests/filters/joined-relations.test.js.map +1 -1
- package/dist/tests/filters/special-cases.test.js +19 -19
- package/dist/tests/filters/special-cases.test.js.map +1 -1
- package/dist/tests/filters/wildcard.test.js +12 -12
- package/dist/tests/filters/wildcard.test.js.map +1 -1
- package/dist/tests/utils/index.d.ts +3 -3
- package/dist/tests/utils/index.d.ts.map +1 -1
- package/dist/tests/utils/index.js +12 -12
- package/dist/tests/utils/index.js.map +1 -1
- package/package.json +4 -3
- package/src/QueryableModel.ts +5 -3
- package/src/SQLJoin.ts +3 -3
- package/src/SQLJsonExpressions.ts +3 -3
- package/src/SQLOrderBy.ts +4 -4
- package/src/SQLSelect.ts +1 -0
- package/src/SQLWhere.ts +5 -5
- package/src/filters/compilers/contains.ts +5 -5
- package/src/filters/compilers/equals.ts +6 -6
- package/src/filters/compilers/greater.ts +4 -4
- package/src/filters/compilers/in.ts +6 -6
- package/src/filters/compilers/index.ts +4 -4
- package/src/filters/compilers/less.ts +4 -4
- package/src/filters/helpers/isJSONColumn.ts +1 -1
- package/src/filters/helpers/normalizeCompareValue.ts +1 -1
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.$lessThanSQLFilterCompiler = $lessThanSQLFilterCompiler;
|
|
4
4
|
const structures_1 = require("@stamhoofd/structures");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
5
|
+
const SQLExpressions_js_1 = require("../../SQLExpressions.js");
|
|
6
|
+
const SQLWhere_js_1 = require("../../SQLWhere.js");
|
|
7
|
+
const SQLFilter_js_1 = require("../SQLFilter.js");
|
|
8
|
+
const normalizeCompareValue_js_1 = require("../helpers/normalizeCompareValue.js");
|
|
9
9
|
function $lessThanSQLFilterCompiler(filter) {
|
|
10
10
|
return (originalColumn) => {
|
|
11
|
-
const column = (0,
|
|
12
|
-
const value = (0,
|
|
13
|
-
const base = new
|
|
11
|
+
const column = (0, SQLFilter_js_1.normalizeColumn)(originalColumn);
|
|
12
|
+
const value = (0, normalizeCompareValue_js_1.normalizeCompareValue)((0, structures_1.assertFilterCompareValue)(filter), column.type);
|
|
13
|
+
const base = new SQLWhere_js_1.SQLWhereEqual(column.expression, SQLWhere_js_1.SQLWhereSign.Less, (0, SQLExpressions_js_1.scalarToSQLExpression)(value)).setNullable(column.nullable);
|
|
14
14
|
return base;
|
|
15
15
|
};
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"less.js","sourceRoot":"","sources":["../../../../src/filters/compilers/less.ts"],"names":[],"mappings":";;AAMA,gEAYC;AAlBD,sDAAkF;AAClF
|
|
1
|
+
{"version":3,"file":"less.js","sourceRoot":"","sources":["../../../../src/filters/compilers/less.ts"],"names":[],"mappings":";;AAMA,gEAYC;AAlBD,sDAAkF;AAClF,+DAAgE;AAChE,mDAAgE;AAChE,kDAAyF;AACzF,kFAA4E;AAE5E,SAAgB,0BAA0B,CAAC,MAAuB;IAC9D,OAAO,CAAC,cAAgC,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,IAAA,8BAAe,EAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAA,gDAAqB,EAAC,IAAA,qCAAwB,EAAC,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAEnF,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,4 +1,4 @@
|
|
|
1
|
-
import { SQLCurrentColumn, SQLValueType } from '../SQLFilter';
|
|
1
|
+
import { SQLCurrentColumn, SQLValueType } from '../SQLFilter.js';
|
|
2
2
|
export declare function isJSONColumn({ type }: SQLCurrentColumn): boolean;
|
|
3
3
|
export declare function isJSONType(type: SQLValueType): boolean;
|
|
4
4
|
//# sourceMappingURL=isJSONColumn.d.ts.map
|
|
@@ -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,
|
|
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,CAMtD"}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isJSONColumn = isJSONColumn;
|
|
4
4
|
exports.isJSONType = isJSONType;
|
|
5
|
-
const
|
|
5
|
+
const SQLFilter_js_1 = require("../SQLFilter.js");
|
|
6
6
|
function isJSONColumn({ type }) {
|
|
7
7
|
return isJSONType(type);
|
|
8
8
|
}
|
|
9
9
|
function isJSONType(type) {
|
|
10
|
-
return type ===
|
|
11
|
-
|| type ===
|
|
12
|
-
|| type ===
|
|
13
|
-
|| type ===
|
|
14
|
-
|| type ===
|
|
10
|
+
return type === SQLFilter_js_1.SQLValueType.JSONString
|
|
11
|
+
|| type === SQLFilter_js_1.SQLValueType.JSONBoolean
|
|
12
|
+
|| type === SQLFilter_js_1.SQLValueType.JSONNumber
|
|
13
|
+
|| type === SQLFilter_js_1.SQLValueType.JSONArray
|
|
14
|
+
|| type === SQLFilter_js_1.SQLValueType.JSONObject;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=isJSONColumn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isJSONColumn.js","sourceRoot":"","sources":["../../../../src/filters/helpers/isJSONColumn.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAED,gCAMC;AAZD,
|
|
1
|
+
{"version":3,"file":"isJSONColumn.js","sourceRoot":"","sources":["../../../../src/filters/helpers/isJSONColumn.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAED,gCAMC;AAZD,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,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,
|
|
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;AAE/C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CA4FpI"}
|
|
@@ -1,70 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeCompareValue = normalizeCompareValue;
|
|
4
|
-
const
|
|
4
|
+
const SQLFilter_js_1 = require("../SQLFilter.js");
|
|
5
5
|
/**
|
|
6
6
|
* Prepares a compare value so we can compare it, given a certain column type.
|
|
7
7
|
*
|
|
8
8
|
* E.g. if you pass in true - and we are comparing against a mysql boolean column, convert it to 1.
|
|
9
9
|
*/
|
|
10
10
|
function normalizeCompareValue(val, againstType) {
|
|
11
|
-
if (againstType ===
|
|
11
|
+
if (againstType === SQLFilter_js_1.SQLValueType.Table) {
|
|
12
12
|
throw new Error('Cannot compare at root level');
|
|
13
13
|
}
|
|
14
|
-
if (againstType ===
|
|
14
|
+
if (againstType === SQLFilter_js_1.SQLValueType.JSONObject) {
|
|
15
15
|
if (val === null) {
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
18
|
throw new Error('Cannot compare with a JSON object');
|
|
19
19
|
}
|
|
20
20
|
if (val instanceof Date) {
|
|
21
|
-
if (againstType ===
|
|
21
|
+
if (againstType === SQLFilter_js_1.SQLValueType.Datetime) {
|
|
22
22
|
return val;
|
|
23
23
|
}
|
|
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 ===
|
|
27
|
+
if (againstType === SQLFilter_js_1.SQLValueType.String || againstType === SQLFilter_js_1.SQLValueType.JSONString) {
|
|
28
28
|
return val.toLocaleLowerCase();
|
|
29
29
|
}
|
|
30
|
-
if (againstType ===
|
|
30
|
+
if (againstType === SQLFilter_js_1.SQLValueType.JSONArray) {
|
|
31
31
|
// We'll search inside the array
|
|
32
32
|
return val.toLocaleLowerCase();
|
|
33
33
|
}
|
|
34
34
|
// Allowed to compare strings with dates
|
|
35
|
-
if (againstType ===
|
|
35
|
+
if (againstType === SQLFilter_js_1.SQLValueType.Datetime) {
|
|
36
36
|
// Note, taht if you ever filter dates by string values, you need to work with UTC timezones
|
|
37
37
|
return val;
|
|
38
38
|
}
|
|
39
39
|
throw new Error('Cannot compare a string with a non-string column');
|
|
40
40
|
}
|
|
41
41
|
if (typeof val === 'boolean') {
|
|
42
|
-
if (againstType ===
|
|
42
|
+
if (againstType === SQLFilter_js_1.SQLValueType.JSONBoolean) {
|
|
43
43
|
return val;
|
|
44
44
|
}
|
|
45
|
-
if (againstType ===
|
|
45
|
+
if (againstType === SQLFilter_js_1.SQLValueType.Boolean || againstType === SQLFilter_js_1.SQLValueType.Number) {
|
|
46
46
|
return val === true ? 1 : 0;
|
|
47
47
|
}
|
|
48
|
-
if (againstType ===
|
|
48
|
+
if (againstType === SQLFilter_js_1.SQLValueType.JSONArray) {
|
|
49
49
|
// We'll search inside the array
|
|
50
50
|
return val;
|
|
51
51
|
}
|
|
52
52
|
throw new Error('Cannot compare a boolean with a non-boolean column');
|
|
53
53
|
}
|
|
54
54
|
if (typeof val === 'number') {
|
|
55
|
-
if (againstType ===
|
|
55
|
+
if (againstType === SQLFilter_js_1.SQLValueType.JSONBoolean) {
|
|
56
56
|
return val === 1 ? true : false;
|
|
57
57
|
}
|
|
58
|
-
if (againstType ===
|
|
58
|
+
if (againstType === SQLFilter_js_1.SQLValueType.Boolean) {
|
|
59
59
|
if (val !== 1 && val !== 0) {
|
|
60
60
|
throw new Error('Cannot compare a number with a boolean column');
|
|
61
61
|
}
|
|
62
62
|
return val;
|
|
63
63
|
}
|
|
64
|
-
if (againstType ===
|
|
64
|
+
if (againstType === SQLFilter_js_1.SQLValueType.Number || againstType === SQLFilter_js_1.SQLValueType.JSONNumber) {
|
|
65
65
|
return val;
|
|
66
66
|
}
|
|
67
|
-
if (againstType ===
|
|
67
|
+
if (againstType === SQLFilter_js_1.SQLValueType.JSONArray) {
|
|
68
68
|
// We'll search inside the array
|
|
69
69
|
return val;
|
|
70
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeCompareValue.js","sourceRoot":"","sources":["../../../../src/filters/helpers/normalizeCompareValue.ts"],"names":[],"mappings":";;AAQA,sDA4FC;AAnGD,
|
|
1
|
+
{"version":3,"file":"normalizeCompareValue.js","sourceRoot":"","sources":["../../../../src/filters/helpers/normalizeCompareValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
3
|
+
const SQLFilter_js_1 = require("../../src/filters/SQLFilter.js");
|
|
4
|
+
const SQL_js_1 = require("../../src/SQL.js");
|
|
5
|
+
const index_js_1 = require("../utils/index.js");
|
|
6
6
|
describe('$and', () => {
|
|
7
7
|
/**
|
|
8
8
|
* Tests that should be repeated for all filter types
|
|
@@ -12,10 +12,10 @@ describe('$and', () => {
|
|
|
12
12
|
});
|
|
13
13
|
it('If one child is always false, the whole $and is always false', async () => {
|
|
14
14
|
const filters = {
|
|
15
|
-
...
|
|
16
|
-
name: (0,
|
|
15
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
16
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: true }),
|
|
17
17
|
};
|
|
18
|
-
await (0,
|
|
18
|
+
await (0, index_js_1.test)({
|
|
19
19
|
filter: {
|
|
20
20
|
name: {
|
|
21
21
|
$and: {
|
|
@@ -43,10 +43,10 @@ describe('$and', () => {
|
|
|
43
43
|
*/
|
|
44
44
|
it('Grouping nullable $lte and $gte correctly inside $and', async () => {
|
|
45
45
|
const filters = {
|
|
46
|
-
...
|
|
47
|
-
birthDay: (0,
|
|
46
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
47
|
+
birthDay: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('birthDay'), type: SQLFilter_js_1.SQLValueType.Datetime, nullable: true }),
|
|
48
48
|
};
|
|
49
|
-
await (0,
|
|
49
|
+
await (0, index_js_1.test)({
|
|
50
50
|
filter: {
|
|
51
51
|
birthDay: {
|
|
52
52
|
$and: {
|
|
@@ -64,10 +64,10 @@ describe('$and', () => {
|
|
|
64
64
|
});
|
|
65
65
|
it('An empty $and is always true', async () => {
|
|
66
66
|
const filters = {
|
|
67
|
-
...
|
|
68
|
-
name: (0,
|
|
67
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
68
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: true }),
|
|
69
69
|
};
|
|
70
|
-
await (0,
|
|
70
|
+
await (0, index_js_1.test)({
|
|
71
71
|
filter: {
|
|
72
72
|
$and: {},
|
|
73
73
|
},
|
|
@@ -80,10 +80,10 @@ describe('$and', () => {
|
|
|
80
80
|
});
|
|
81
81
|
it('If all children are always true, the whole $and is always true', async () => {
|
|
82
82
|
const filters = {
|
|
83
|
-
...
|
|
84
|
-
name: (0,
|
|
83
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
84
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: true }),
|
|
85
85
|
};
|
|
86
|
-
await (0,
|
|
86
|
+
await (0, index_js_1.test)({
|
|
87
87
|
filter: {
|
|
88
88
|
name: {
|
|
89
89
|
$and: [
|
|
@@ -105,10 +105,10 @@ describe('$and', () => {
|
|
|
105
105
|
});
|
|
106
106
|
it('Children that are always true are removed from the $and', async () => {
|
|
107
107
|
const filters = {
|
|
108
|
-
...
|
|
109
|
-
name: (0,
|
|
108
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
109
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
110
110
|
};
|
|
111
|
-
await (0,
|
|
111
|
+
await (0, index_js_1.test)({
|
|
112
112
|
filter: {
|
|
113
113
|
name: {
|
|
114
114
|
$and: [
|
|
@@ -129,10 +129,10 @@ describe('$and', () => {
|
|
|
129
129
|
});
|
|
130
130
|
it('Can be used with direct object child', async () => {
|
|
131
131
|
const filters = {
|
|
132
|
-
...
|
|
133
|
-
name: (0,
|
|
132
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
133
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
134
134
|
};
|
|
135
|
-
await (0,
|
|
135
|
+
await (0, index_js_1.test)({
|
|
136
136
|
filter: {
|
|
137
137
|
name: {
|
|
138
138
|
$and: {
|
|
@@ -150,11 +150,11 @@ describe('$and', () => {
|
|
|
150
150
|
});
|
|
151
151
|
it('NOT (A AND B) is simplified to (NOT A or not B)', async () => {
|
|
152
152
|
const filters = {
|
|
153
|
-
...
|
|
154
|
-
name: (0,
|
|
155
|
-
createdAt: (0,
|
|
153
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
154
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
155
|
+
createdAt: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('createdAt'), type: SQLFilter_js_1.SQLValueType.Datetime, nullable: false }),
|
|
156
156
|
};
|
|
157
|
-
await (0,
|
|
157
|
+
await (0, index_js_1.test)({
|
|
158
158
|
filter: {
|
|
159
159
|
$not: {
|
|
160
160
|
name: 'John Doe',
|
|
@@ -170,10 +170,10 @@ describe('$and', () => {
|
|
|
170
170
|
});
|
|
171
171
|
it('empty $and branches are removed', async () => {
|
|
172
172
|
const filters = {
|
|
173
|
-
...
|
|
174
|
-
name: (0,
|
|
173
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
174
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
175
175
|
};
|
|
176
|
-
await (0,
|
|
176
|
+
await (0, index_js_1.test)({
|
|
177
177
|
filter: {
|
|
178
178
|
name: 'John Doe',
|
|
179
179
|
$and: [
|
|
@@ -189,10 +189,10 @@ describe('$and', () => {
|
|
|
189
189
|
});
|
|
190
190
|
it('deep $and branches are cleaned up', async () => {
|
|
191
191
|
const filters = {
|
|
192
|
-
...
|
|
193
|
-
name: (0,
|
|
192
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
193
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
194
194
|
};
|
|
195
|
-
await (0,
|
|
195
|
+
await (0, index_js_1.test)({
|
|
196
196
|
filter: {
|
|
197
197
|
name: 'John Doe',
|
|
198
198
|
$and: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$and.test.js","sourceRoot":"","sources":["../../../tests/filters/$and.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"$and.test.js","sourceRoot":"","sources":["../../../tests/filters/$and.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
3
|
+
const SQLFilter_js_1 = require("../../src/filters/SQLFilter.js");
|
|
4
|
+
const SQL_js_1 = require("../../src/SQL.js");
|
|
5
|
+
const index_js_1 = require("../utils/index.js");
|
|
6
6
|
describe('$contains', () => {
|
|
7
7
|
/**
|
|
8
8
|
* Tests that should be repeated for all filter types
|
|
@@ -12,10 +12,10 @@ describe('$contains', () => {
|
|
|
12
12
|
});
|
|
13
13
|
it('Throws when passing non-string values', async () => {
|
|
14
14
|
const filters = {
|
|
15
|
-
...
|
|
16
|
-
name: (0,
|
|
15
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
16
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
17
17
|
};
|
|
18
|
-
await (0,
|
|
18
|
+
await (0, index_js_1.testMultipleErrors)({
|
|
19
19
|
testFilters: [
|
|
20
20
|
{
|
|
21
21
|
name: {
|
|
@@ -26,7 +26,7 @@ describe('$contains', () => {
|
|
|
26
26
|
filters,
|
|
27
27
|
error: 'Invalid compare value. Expected a string, number, boolean, date or null.',
|
|
28
28
|
});
|
|
29
|
-
await (0,
|
|
29
|
+
await (0, index_js_1.testMultipleErrors)({
|
|
30
30
|
testFilters: [
|
|
31
31
|
{
|
|
32
32
|
name: {
|
|
@@ -42,7 +42,7 @@ describe('$contains', () => {
|
|
|
42
42
|
filters,
|
|
43
43
|
error: 'Cannot compare',
|
|
44
44
|
});
|
|
45
|
-
await (0,
|
|
45
|
+
await (0, index_js_1.testMultipleErrors)({
|
|
46
46
|
testFilters: [
|
|
47
47
|
{
|
|
48
48
|
name: {
|
|
@@ -57,10 +57,10 @@ describe('$contains', () => {
|
|
|
57
57
|
describe('Searching in native string columns', () => {
|
|
58
58
|
it('Removes caps in the query', async () => {
|
|
59
59
|
const filters = {
|
|
60
|
-
...
|
|
61
|
-
name: (0,
|
|
60
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
61
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
62
62
|
};
|
|
63
|
-
await (0,
|
|
63
|
+
await (0, index_js_1.test)({
|
|
64
64
|
filter: {
|
|
65
65
|
name: {
|
|
66
66
|
$contains: 'Caps Are Removed',
|
|
@@ -75,10 +75,10 @@ describe('$contains', () => {
|
|
|
75
75
|
});
|
|
76
76
|
it('Escapes percentage', async () => {
|
|
77
77
|
const filters = {
|
|
78
|
-
...
|
|
79
|
-
name: (0,
|
|
78
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
79
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
80
80
|
};
|
|
81
|
-
await (0,
|
|
81
|
+
await (0, index_js_1.test)({
|
|
82
82
|
filter: {
|
|
83
83
|
name: {
|
|
84
84
|
$contains: '%',
|
|
@@ -93,10 +93,10 @@ describe('$contains', () => {
|
|
|
93
93
|
});
|
|
94
94
|
it('Escapes underscore', async () => {
|
|
95
95
|
const filters = {
|
|
96
|
-
...
|
|
97
|
-
name: (0,
|
|
96
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
97
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
98
98
|
};
|
|
99
|
-
await (0,
|
|
99
|
+
await (0, index_js_1.test)({
|
|
100
100
|
filter: {
|
|
101
101
|
name: {
|
|
102
102
|
$contains: '_',
|
|
@@ -111,10 +111,10 @@ describe('$contains', () => {
|
|
|
111
111
|
});
|
|
112
112
|
it('Escapes backslash characters', async () => {
|
|
113
113
|
const filters = {
|
|
114
|
-
...
|
|
115
|
-
name: (0,
|
|
114
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
115
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: false }),
|
|
116
116
|
};
|
|
117
|
-
await (0,
|
|
117
|
+
await (0, index_js_1.test)({
|
|
118
118
|
filter: {
|
|
119
119
|
name: {
|
|
120
120
|
$contains: '\\%',
|
|
@@ -137,11 +137,11 @@ describe('$contains', () => {
|
|
|
137
137
|
},
|
|
138
138
|
};
|
|
139
139
|
const filters = {
|
|
140
|
-
...
|
|
141
|
-
name: (0,
|
|
140
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
141
|
+
name: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.column('name'), type: SQLFilter_js_1.SQLValueType.String, nullable: true }),
|
|
142
142
|
};
|
|
143
143
|
it('Can actually search for %', async () => {
|
|
144
|
-
await (0,
|
|
144
|
+
await (0, index_js_1.testMatch)({
|
|
145
145
|
tableDefinition,
|
|
146
146
|
filters,
|
|
147
147
|
rows: [
|
|
@@ -181,7 +181,7 @@ describe('$contains', () => {
|
|
|
181
181
|
});
|
|
182
182
|
});
|
|
183
183
|
it('Does not return values without % when filtering for %', async () => {
|
|
184
|
-
await (0,
|
|
184
|
+
await (0, index_js_1.testMatch)({
|
|
185
185
|
tableDefinition,
|
|
186
186
|
filters,
|
|
187
187
|
rows: [
|
|
@@ -199,7 +199,7 @@ describe('$contains', () => {
|
|
|
199
199
|
});
|
|
200
200
|
});
|
|
201
201
|
it('Can actually search for _', async () => {
|
|
202
|
-
await (0,
|
|
202
|
+
await (0, index_js_1.testMatch)({
|
|
203
203
|
tableDefinition,
|
|
204
204
|
filters,
|
|
205
205
|
rows: [
|
|
@@ -239,7 +239,7 @@ describe('$contains', () => {
|
|
|
239
239
|
});
|
|
240
240
|
});
|
|
241
241
|
it('Does not return values without _ when filtering for _', async () => {
|
|
242
|
-
await (0,
|
|
242
|
+
await (0, index_js_1.testMatch)({
|
|
243
243
|
tableDefinition,
|
|
244
244
|
filters,
|
|
245
245
|
rows: [
|
|
@@ -262,7 +262,7 @@ describe('$contains', () => {
|
|
|
262
262
|
});
|
|
263
263
|
});
|
|
264
264
|
it('Can search for backslash', async () => {
|
|
265
|
-
await (0,
|
|
265
|
+
await (0, index_js_1.testMatch)({
|
|
266
266
|
tableDefinition,
|
|
267
267
|
filters,
|
|
268
268
|
rows: [
|
|
@@ -295,7 +295,7 @@ describe('$contains', () => {
|
|
|
295
295
|
},
|
|
296
296
|
],
|
|
297
297
|
});
|
|
298
|
-
await (0,
|
|
298
|
+
await (0, index_js_1.testMatch)({
|
|
299
299
|
tableDefinition,
|
|
300
300
|
filters,
|
|
301
301
|
rows: [
|
|
@@ -322,11 +322,11 @@ describe('$contains', () => {
|
|
|
322
322
|
},
|
|
323
323
|
};
|
|
324
324
|
const filters = {
|
|
325
|
-
...
|
|
326
|
-
'settings.name': (0,
|
|
325
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
326
|
+
'settings.name': (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.jsonExtract(SQL_js_1.SQL.column('settings'), '$.name'), type: SQLFilter_js_1.SQLValueType.JSONString, nullable: false }),
|
|
327
327
|
};
|
|
328
328
|
it('Can actually search for %', async () => {
|
|
329
|
-
await (0,
|
|
329
|
+
await (0, index_js_1.testMatch)({
|
|
330
330
|
tableDefinition,
|
|
331
331
|
filters,
|
|
332
332
|
rows: [
|
|
@@ -368,7 +368,7 @@ describe('$contains', () => {
|
|
|
368
368
|
});
|
|
369
369
|
});
|
|
370
370
|
it('Does not return values without % when filtering for %', async () => {
|
|
371
|
-
await (0,
|
|
371
|
+
await (0, index_js_1.testMatch)({
|
|
372
372
|
tableDefinition,
|
|
373
373
|
filters,
|
|
374
374
|
rows: [
|
|
@@ -388,7 +388,7 @@ describe('$contains', () => {
|
|
|
388
388
|
});
|
|
389
389
|
});
|
|
390
390
|
it('Can actually search for _', async () => {
|
|
391
|
-
await (0,
|
|
391
|
+
await (0, index_js_1.testMatch)({
|
|
392
392
|
tableDefinition,
|
|
393
393
|
filters,
|
|
394
394
|
rows: [
|
|
@@ -430,7 +430,7 @@ describe('$contains', () => {
|
|
|
430
430
|
});
|
|
431
431
|
});
|
|
432
432
|
it('Does not return values without _ when filtering for _', async () => {
|
|
433
|
-
await (0,
|
|
433
|
+
await (0, index_js_1.testMatch)({
|
|
434
434
|
tableDefinition,
|
|
435
435
|
filters,
|
|
436
436
|
rows: [
|
|
@@ -455,7 +455,7 @@ describe('$contains', () => {
|
|
|
455
455
|
});
|
|
456
456
|
});
|
|
457
457
|
it('Can search for backslash', async () => {
|
|
458
|
-
await (0,
|
|
458
|
+
await (0, index_js_1.testMatch)({
|
|
459
459
|
tableDefinition,
|
|
460
460
|
filters,
|
|
461
461
|
rows: [
|
|
@@ -490,7 +490,7 @@ describe('$contains', () => {
|
|
|
490
490
|
},
|
|
491
491
|
],
|
|
492
492
|
});
|
|
493
|
-
await (0,
|
|
493
|
+
await (0, index_js_1.testMatch)({
|
|
494
494
|
tableDefinition,
|
|
495
495
|
filters,
|
|
496
496
|
rows: [
|
|
@@ -518,14 +518,14 @@ describe('$contains', () => {
|
|
|
518
518
|
},
|
|
519
519
|
};
|
|
520
520
|
const filters = {
|
|
521
|
-
...
|
|
521
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
522
522
|
settings: {
|
|
523
|
-
...
|
|
524
|
-
names: (0,
|
|
523
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
524
|
+
names: (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.jsonExtract(SQL_js_1.SQL.column('settings'), '$.names'), type: SQLFilter_js_1.SQLValueType.JSONArray, nullable: false }),
|
|
525
525
|
},
|
|
526
526
|
};
|
|
527
527
|
it('Can search in the array', async () => {
|
|
528
|
-
await (0,
|
|
528
|
+
await (0, index_js_1.testMatch)({
|
|
529
529
|
tableDefinition,
|
|
530
530
|
filters,
|
|
531
531
|
rows: [
|
|
@@ -569,7 +569,7 @@ describe('$contains', () => {
|
|
|
569
569
|
});
|
|
570
570
|
});
|
|
571
571
|
it('Can search for % in the array', async () => {
|
|
572
|
-
await (0,
|
|
572
|
+
await (0, index_js_1.testMatch)({
|
|
573
573
|
tableDefinition,
|
|
574
574
|
filters,
|
|
575
575
|
rows: [
|
|
@@ -606,7 +606,7 @@ describe('$contains', () => {
|
|
|
606
606
|
});
|
|
607
607
|
});
|
|
608
608
|
it('Can search for backslash in the array', async () => {
|
|
609
|
-
await (0,
|
|
609
|
+
await (0, index_js_1.testMatch)({
|
|
610
610
|
tableDefinition,
|
|
611
611
|
filters,
|
|
612
612
|
rows: [
|
|
@@ -651,11 +651,11 @@ describe('$contains', () => {
|
|
|
651
651
|
},
|
|
652
652
|
};
|
|
653
653
|
const filters = {
|
|
654
|
-
...
|
|
655
|
-
'settings.names': (0,
|
|
654
|
+
...SQLFilter_js_1.baseSQLFilterCompilers,
|
|
655
|
+
'settings.names': (0, SQLFilter_js_1.createColumnFilter)({ expression: SQL_js_1.SQL.jsonExtract(SQL_js_1.SQL.column('settings'), '$.parents[*].name'), type: SQLFilter_js_1.SQLValueType.JSONArray, nullable: false }),
|
|
656
656
|
};
|
|
657
657
|
it('Can search in the array', async () => {
|
|
658
|
-
await (0,
|
|
658
|
+
await (0, index_js_1.testMatch)({
|
|
659
659
|
tableDefinition,
|
|
660
660
|
filters,
|
|
661
661
|
rows: [
|