@stamhoofd/sql 2.89.2 → 2.90.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.
Files changed (125) hide show
  1. package/dist/index.d.ts +1 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +9 -10
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/SQLJsonExpressions.d.ts +2 -0
  6. package/dist/src/SQLJsonExpressions.d.ts.map +1 -1
  7. package/dist/src/SQLJsonExpressions.js +8 -0
  8. package/dist/src/SQLJsonExpressions.js.map +1 -1
  9. package/dist/src/SQLSelect.d.ts.map +1 -1
  10. package/dist/src/SQLSelect.js +7 -0
  11. package/dist/src/SQLSelect.js.map +1 -1
  12. package/dist/src/SQLWhere.d.ts +6 -0
  13. package/dist/src/SQLWhere.d.ts.map +1 -1
  14. package/dist/src/SQLWhere.js +39 -1
  15. package/dist/src/SQLWhere.js.map +1 -1
  16. package/dist/src/filters/SQLFilter.d.ts +61 -25
  17. package/dist/src/filters/SQLFilter.d.ts.map +1 -1
  18. package/dist/src/filters/SQLFilter.js +183 -380
  19. package/dist/src/filters/SQLFilter.js.map +1 -1
  20. package/dist/src/filters/{modern/compilers → compilers}/contains.d.ts +1 -1
  21. package/dist/src/filters/compilers/contains.d.ts.map +1 -0
  22. package/dist/src/filters/{modern/compilers → compilers}/contains.js +6 -6
  23. package/dist/src/filters/compilers/contains.js.map +1 -0
  24. package/dist/src/filters/{modern/compilers → compilers}/equals.d.ts +1 -1
  25. package/dist/src/filters/compilers/equals.d.ts.map +1 -0
  26. package/dist/src/filters/{modern/compilers → compilers}/equals.js +7 -7
  27. package/dist/src/filters/compilers/equals.js.map +1 -0
  28. package/dist/src/filters/{modern/compilers → compilers}/greater.d.ts +1 -1
  29. package/dist/src/filters/compilers/greater.d.ts.map +1 -0
  30. package/dist/src/filters/{modern/compilers → compilers}/greater.js +4 -4
  31. package/dist/src/filters/compilers/greater.js.map +1 -0
  32. package/dist/src/filters/{modern/compilers → compilers}/in.d.ts +1 -1
  33. package/dist/src/filters/compilers/in.d.ts.map +1 -0
  34. package/dist/src/filters/{modern/compilers → compilers}/in.js +7 -7
  35. package/dist/src/filters/compilers/in.js.map +1 -0
  36. package/dist/src/filters/compilers/index.d.ts.map +1 -0
  37. package/dist/src/filters/compilers/index.js.map +1 -0
  38. package/dist/src/filters/{modern/compilers → compilers}/less.d.ts +1 -1
  39. package/dist/src/filters/compilers/less.d.ts.map +1 -0
  40. package/dist/src/filters/{modern/compilers → compilers}/less.js +4 -4
  41. package/dist/src/filters/compilers/less.js.map +1 -0
  42. package/dist/src/filters/helpers/isJSONColumn.d.ts +4 -0
  43. package/dist/src/filters/helpers/isJSONColumn.d.ts.map +1 -0
  44. package/dist/src/filters/helpers/isJSONColumn.js +16 -0
  45. package/dist/src/filters/helpers/isJSONColumn.js.map +1 -0
  46. package/dist/src/filters/{modern/helpers → helpers}/normalizeCompareValue.d.ts +2 -2
  47. package/dist/src/filters/helpers/normalizeCompareValue.d.ts.map +1 -0
  48. package/dist/src/filters/{modern/helpers → helpers}/normalizeCompareValue.js +13 -13
  49. package/dist/src/filters/helpers/normalizeCompareValue.js.map +1 -0
  50. package/dist/tests/filters/$and.test.js +49 -18
  51. package/dist/tests/filters/$and.test.js.map +1 -1
  52. package/dist/tests/filters/$contains.test.js +20 -20
  53. package/dist/tests/filters/$contains.test.js.map +1 -1
  54. package/dist/tests/filters/$eq.test.js +59 -53
  55. package/dist/tests/filters/$eq.test.js.map +1 -1
  56. package/dist/tests/filters/$gt.test.js +18 -18
  57. package/dist/tests/filters/$gt.test.js.map +1 -1
  58. package/dist/tests/filters/$gte.test.js +14 -14
  59. package/dist/tests/filters/$gte.test.js.map +1 -1
  60. package/dist/tests/filters/$in.test.js +24 -24
  61. package/dist/tests/filters/$in.test.js.map +1 -1
  62. package/dist/tests/filters/$lt.test.js +14 -14
  63. package/dist/tests/filters/$lt.test.js.map +1 -1
  64. package/dist/tests/filters/$lte.test.js +14 -14
  65. package/dist/tests/filters/$lte.test.js.map +1 -1
  66. package/dist/tests/filters/$neq.test.js +3 -3
  67. package/dist/tests/filters/$neq.test.js.map +1 -1
  68. package/dist/tests/filters/$not.test.js +5 -5
  69. package/dist/tests/filters/$not.test.js.map +1 -1
  70. package/dist/tests/filters/$or.test.js +16 -16
  71. package/dist/tests/filters/$or.test.js.map +1 -1
  72. package/dist/tests/filters/dot-syntax.test.js +10 -10
  73. package/dist/tests/filters/dot-syntax.test.js.map +1 -1
  74. package/dist/tests/filters/exists.test.js +16 -16
  75. package/dist/tests/filters/exists.test.js.map +1 -1
  76. package/dist/tests/filters/joined-relations.test.js +31 -31
  77. package/dist/tests/filters/joined-relations.test.js.map +1 -1
  78. package/dist/tests/filters/special-cases.test.js +11 -11
  79. package/dist/tests/filters/special-cases.test.js.map +1 -1
  80. package/dist/tests/filters/wildcard.test.js +8 -8
  81. package/dist/tests/filters/wildcard.test.js.map +1 -1
  82. package/dist/tests/utils/index.d.ts +7 -7
  83. package/dist/tests/utils/index.d.ts.map +1 -1
  84. package/dist/tests/utils/index.js +6 -6
  85. package/dist/tests/utils/index.js.map +1 -1
  86. package/dist/tsconfig.tsbuildinfo +1 -1
  87. package/package.json +2 -2
  88. package/src/SQLJsonExpressions.ts +10 -0
  89. package/src/SQLSelect.ts +9 -0
  90. package/src/SQLWhere.ts +48 -1
  91. package/src/filters/SQLFilter.ts +203 -485
  92. package/src/filters/{modern/compilers → compilers}/contains.ts +5 -5
  93. package/src/filters/{modern/compilers → compilers}/equals.ts +6 -6
  94. package/src/filters/{modern/compilers → compilers}/greater.ts +3 -3
  95. package/src/filters/{modern/compilers → compilers}/in.ts +6 -6
  96. package/src/filters/{modern/compilers → compilers}/less.ts +3 -3
  97. package/src/filters/helpers/isJSONColumn.ts +13 -0
  98. package/src/filters/{modern/helpers → helpers}/normalizeCompareValue.ts +14 -14
  99. package/dist/src/filters/modern/SQLModernFilter.d.ts +0 -73
  100. package/dist/src/filters/modern/SQLModernFilter.d.ts.map +0 -1
  101. package/dist/src/filters/modern/SQLModernFilter.js +0 -200
  102. package/dist/src/filters/modern/SQLModernFilter.js.map +0 -1
  103. package/dist/src/filters/modern/compilers/contains.d.ts.map +0 -1
  104. package/dist/src/filters/modern/compilers/contains.js.map +0 -1
  105. package/dist/src/filters/modern/compilers/equals.d.ts.map +0 -1
  106. package/dist/src/filters/modern/compilers/equals.js.map +0 -1
  107. package/dist/src/filters/modern/compilers/greater.d.ts.map +0 -1
  108. package/dist/src/filters/modern/compilers/greater.js.map +0 -1
  109. package/dist/src/filters/modern/compilers/in.d.ts.map +0 -1
  110. package/dist/src/filters/modern/compilers/in.js.map +0 -1
  111. package/dist/src/filters/modern/compilers/index.d.ts.map +0 -1
  112. package/dist/src/filters/modern/compilers/index.js.map +0 -1
  113. package/dist/src/filters/modern/compilers/less.d.ts.map +0 -1
  114. package/dist/src/filters/modern/compilers/less.js.map +0 -1
  115. package/dist/src/filters/modern/helpers/isJSONColumn.d.ts +0 -4
  116. package/dist/src/filters/modern/helpers/isJSONColumn.d.ts.map +0 -1
  117. package/dist/src/filters/modern/helpers/isJSONColumn.js +0 -16
  118. package/dist/src/filters/modern/helpers/isJSONColumn.js.map +0 -1
  119. package/dist/src/filters/modern/helpers/normalizeCompareValue.d.ts.map +0 -1
  120. package/dist/src/filters/modern/helpers/normalizeCompareValue.js.map +0 -1
  121. package/src/filters/modern/SQLModernFilter.ts +0 -256
  122. package/src/filters/modern/helpers/isJSONColumn.ts +0 -13
  123. /package/dist/src/filters/{modern/compilers → compilers}/index.d.ts +0 -0
  124. /package/dist/src/filters/{modern/compilers → compilers}/index.js +0 -0
  125. /package/src/filters/{modern/compilers → compilers}/index.ts +0 -0
@@ -1,410 +1,213 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compileToSQLFilter = exports.baseSQLFilterCompilers = exports.SQLValueType = void 0;
4
- exports.andSQLFilterCompiler = andSQLFilterCompiler;
5
- exports.orSQLFilterCompiler = orSQLFilterCompiler;
6
- exports.notSQLFilterCompiler = notSQLFilterCompiler;
7
- exports.createSQLJoinedRelationFilterCompiler = createSQLJoinedRelationFilterCompiler;
8
- exports.createSQLRelationFilterCompiler = createSQLRelationFilterCompiler;
9
- exports.createSQLOneToOneRelationFilterCompiler = createSQLOneToOneRelationFilterCompiler;
10
- exports.createSQLFilterNamespace = createSQLFilterNamespace;
11
- exports.createSQLExpressionFilterCompiler = createSQLExpressionFilterCompiler;
12
- exports.createSQLColumnFilterCompiler = createSQLColumnFilterCompiler;
3
+ exports.SQLRootExpression = exports.baseSQLFilterCompilers = exports.SQLValueType = void 0;
4
+ exports.createColumnFilter = createColumnFilter;
5
+ exports.createWildcardColumnFilter = createWildcardColumnFilter;
6
+ exports.createExistsFilter = createExistsFilter;
7
+ exports.createJoinedRelationFilter = createJoinedRelationFilter;
8
+ exports.$andSQLFilterCompiler = $andSQLFilterCompiler;
9
+ exports.$orSQLFilterCompiler = $orSQLFilterCompiler;
10
+ exports.$notSQLFilterCompiler = $notSQLFilterCompiler;
11
+ exports.compileToSQLRunner = compileToSQLRunner;
12
+ exports.compileToSQLFilter = compileToSQLFilter;
13
+ exports.normalizeColumn = normalizeColumn;
13
14
  const simple_errors_1 = require("@simonbackx/simple-errors");
14
- const SQL_1 = require("../SQL");
15
- const SQLExpressions_1 = require("../SQLExpressions");
15
+ const structures_1 = require("@stamhoofd/structures");
16
16
  const SQLJsonExpressions_1 = require("../SQLJsonExpressions");
17
17
  const SQLWhere_1 = require("../SQLWhere");
18
- async function andSQLFilterCompiler(filter, filters) {
19
- const runners = await compileSQLFilter(filter, filters);
20
- return new SQLWhere_1.SQLWhereAnd(runners);
21
- }
22
- async function orSQLFilterCompiler(filter, filters) {
23
- const runners = await compileSQLFilter(filter, filters);
24
- return new SQLWhere_1.SQLWhereOr(runners);
25
- }
26
- async function notSQLFilterCompiler(filter, filters) {
27
- const andRunner = await andSQLFilterCompiler(filter, filters);
28
- return new SQLWhere_1.SQLWhereNot(andRunner);
18
+ const compilers_1 = require("./compilers");
19
+ const contains_1 = require("./compilers/contains");
20
+ var SQLValueType;
21
+ (function (SQLValueType) {
22
+ /** At the root of a select */
23
+ SQLValueType["Table"] = "Table";
24
+ /** Column with type string */
25
+ SQLValueType["String"] = "String";
26
+ /** MySQL Datetime */
27
+ SQLValueType["Datetime"] = "Datetime";
28
+ /** Column with type number */
29
+ SQLValueType["Number"] = "Number";
30
+ /** Column with type boolean, meaning 1 or 0 */
31
+ SQLValueType["Boolean"] = "Boolean";
32
+ /** True or false in JSON */
33
+ SQLValueType["JSONBoolean"] = "JSONBoolean";
34
+ SQLValueType["JSONString"] = "JSONString";
35
+ SQLValueType["JSONNumber"] = "JSONNumber";
36
+ /** [...] */
37
+ SQLValueType["JSONArray"] = "JSONArray";
38
+ /** {...} */
39
+ SQLValueType["JSONObject"] = "JSONObject";
40
+ })(SQLValueType || (exports.SQLValueType = SQLValueType = {}));
41
+ function createColumnFilter(column, childDefinitions) {
42
+ return (filter) => {
43
+ const compiler = childDefinitions ? (0, structures_1.filterDefinitionsToCompiler)(childDefinitions) : (0, structures_1.filterDefinitionsToCompiler)(exports.baseSQLFilterCompilers);
44
+ const runner = $andSQLFilterCompiler(filter, compiler);
45
+ return async (_) => {
46
+ if (column.checkPermission) {
47
+ await column.checkPermission();
48
+ }
49
+ return await runner({
50
+ nullable: false,
51
+ ...column,
52
+ });
53
+ };
54
+ };
29
55
  }
30
- function guardFilterCompareValue(val) {
31
- if (val instanceof Date) {
32
- return val;
33
- }
34
- if (typeof val === 'string') {
35
- return val;
36
- }
37
- if (typeof val === 'number') {
38
- return val;
39
- }
40
- if (typeof val === 'boolean') {
41
- return val;
42
- }
43
- if (val === null) {
44
- return null;
45
- }
46
- if (typeof val === 'object' && '$' in val) {
47
- if (val['$'] === '$now') {
48
- return val;
49
- }
50
- }
51
- throw new Error('Invalid compare value. Expected a string, number, boolean, date or null.');
56
+ function createWildcardColumnFilter(getColumn, childDefinitions, options) {
57
+ const wildcardCompiler = (filter, _, key) => {
58
+ const compiler = childDefinitions ? (0, structures_1.filterDefinitionsToCompiler)(childDefinitions(key)) : (0, structures_1.filterDefinitionsToCompiler)(exports.baseSQLFilterCompilers);
59
+ const runner = $andSQLFilterCompiler(filter, compiler);
60
+ return async (_) => {
61
+ if (options?.checkPermission) {
62
+ await options.checkPermission(key);
63
+ }
64
+ const column = getColumn(key);
65
+ if (column.checkPermission) {
66
+ await column.checkPermission();
67
+ }
68
+ return await runner({
69
+ nullable: false,
70
+ ...column,
71
+ });
72
+ };
73
+ };
74
+ return (filter) => {
75
+ return $andSQLFilterCompiler(filter, wildcardCompiler);
76
+ };
52
77
  }
53
- function doNormalizeValue(val, options) {
54
- if (val instanceof Date) {
55
- return val;
56
- }
57
- if (typeof val === 'string') {
58
- if (options?.isJSONObject) {
59
- return val;
60
- }
61
- return val.toLocaleLowerCase();
62
- }
63
- if (typeof val === 'boolean') {
64
- if (options?.type === SQLValueType.JSONBoolean) {
65
- return val;
66
- }
67
- return val === true ? 1 : 0;
68
- }
69
- if (typeof val === 'number') {
70
- if (options?.type === SQLValueType.JSONBoolean) {
71
- return val === 1 ? true : false;
72
- }
73
- return val;
74
- }
75
- if (val === null) {
76
- return null;
77
- }
78
- if (typeof val === 'object' && '$' in val) {
79
- const specialValue = val['$'];
80
- switch (specialValue) {
81
- case '$now':
82
- return doNormalizeValue(new Date());
83
- default:
84
- throw new Error('Unsupported magic value ' + specialValue);
85
- }
86
- }
87
- return val;
78
+ /**
79
+ * Filter with a subquery that should return at least one result.
80
+ */
81
+ function createExistsFilter(baseSelect, definitions) {
82
+ return (filter, _) => {
83
+ if (filter !== null && typeof filter === 'object' && '$elemMatch' in filter) {
84
+ filter = filter['$elemMatch'];
85
+ }
86
+ const runner = compileToSQLRunner(filter, definitions);
87
+ return async (_) => {
88
+ const w = await runner({
89
+ expression: exports.SQLRootExpression,
90
+ type: SQLValueType.Table,
91
+ nullable: false,
92
+ });
93
+ const q = baseSelect.clone().andWhere(w);
94
+ return new SQLWhere_1.SQLWhereExists(q);
95
+ };
96
+ };
88
97
  }
89
98
  /**
90
99
  * WARNING: only use this on one-to-one relations. Using it on one-to-many relations will result in duplicate results.
100
+ *
101
+ * By default doesRelationAlwaysExist is set to true, this means we expect the relation to always exist. This helps optimize the query (dropping the join if the where clause in the join is always true)
91
102
  */
92
- function createSQLJoinedRelationFilterCompiler(join, definitions) {
93
- return async (filter) => {
94
- const f = filter;
95
- if ('$elemMatch' in f) {
96
- // $elemMatch is also supported but not required (since this is a one-to-one relation)
97
- const w = await (0, exports.compileToSQLFilter)(f['$elemMatch'], definitions);
98
- return new SQLWhere_1.SQLWhereJoin(join, w);
99
- }
100
- const w = await (0, exports.compileToSQLFilter)(filter, definitions);
101
- return new SQLWhere_1.SQLWhereJoin(join, w);
103
+ function createJoinedRelationFilter(join, definitions, options = { doesRelationAlwaysExist: true }) {
104
+ return (filter, _) => {
105
+ if (filter !== null && typeof filter === 'object' && '$elemMatch' in filter) {
106
+ filter = filter['$elemMatch'];
107
+ }
108
+ return async (_) => {
109
+ const w = await compileToSQLFilter(filter, definitions);
110
+ return new SQLWhere_1.SQLWhereJoin(join, w, {
111
+ doesRelationAlwaysExist: options.doesRelationAlwaysExist,
112
+ });
113
+ };
102
114
  };
103
115
  }
104
- function createSQLRelationFilterCompiler(baseSelect, definitions) {
105
- return async (filter) => {
106
- const f = filter;
107
- if ('$elemMatch' in f) {
108
- const w = await (0, exports.compileToSQLFilter)(f['$elemMatch'], definitions);
109
- const q = baseSelect.clone().where(w);
110
- return new SQLWhere_1.SQLWhereExists(q);
111
- }
112
- throw new simple_errors_1.SimpleError({
113
- code: 'invalid_filter',
114
- message: 'Invalid filter',
115
- human: $t('a5c30846-b8ae-410d-8fcd-bfc3f127623d'),
116
- });
116
+ function $andSQLFilterCompiler(filter, filters) {
117
+ const runners = compileSQLFilter(filter, filters);
118
+ return async (column) => {
119
+ const wheres = (await Promise.all(runners.map(runner => (runner(column)))));
120
+ return new SQLWhere_1.SQLWhereAnd(wheres);
117
121
  };
118
122
  }
119
- function createSQLOneToOneRelationFilterCompiler(baseSelect, definitions) {
120
- return async (filter) => {
121
- const w = await (0, exports.compileToSQLFilter)(filter, definitions);
122
- const q = baseSelect.clone().where(w);
123
- return new SQLWhere_1.SQLWhereExists(q);
123
+ function $orSQLFilterCompiler(filter, filters) {
124
+ const runners = compileSQLFilter(filter, filters);
125
+ return async (column) => {
126
+ const wheres = (await Promise.all(runners.map(runner => (runner(column)))));
127
+ return new SQLWhere_1.SQLWhereOr(wheres);
124
128
  };
125
129
  }
126
- // Already joined, but creates a namespace
127
- function createSQLFilterNamespace(definitions) {
128
- return (filter) => {
129
- return andSQLFilterCompiler(filter, definitions);
130
+ function $notSQLFilterCompiler(filter, filters) {
131
+ const andRunner = $andSQLFilterCompiler(filter, filters);
132
+ return async (column) => {
133
+ return new SQLWhere_1.SQLWhereNot(await andRunner(column));
130
134
  };
131
135
  }
132
- var SQLValueType;
133
- (function (SQLValueType) {
134
- SQLValueType["JSONBoolean"] = "JSONBoolean";
135
- SQLValueType["JSONString"] = "JSONString";
136
- })(SQLValueType || (exports.SQLValueType = SQLValueType = {}));
137
- function createSQLExpressionFilterCompiler(sqlExpression, options = {}) {
138
- const { isJSONObject = false, isJSONValue = false, nullable = false } = options;
139
- let normalizeValue = options.normalizeValue;
140
- normalizeValue = normalizeValue ?? (v => v);
141
- const norm = (val) => {
142
- const n = doNormalizeValue(guardFilterCompareValue(val), options);
143
- return normalizeValue(n);
144
- };
145
- let convertToExpression = SQLExpressions_1.scalarToSQLExpression;
146
- if (isJSONValue) {
147
- const castJsonType = (expression, type) => {
148
- if (type === undefined) {
149
- return expression;
150
- }
151
- switch (type) {
152
- case SQLValueType.JSONBoolean: {
153
- return expression;
154
- }
155
- case SQLValueType.JSONString: {
156
- return new SQLExpressions_1.SQLCast(new SQLJsonExpressions_1.SQLJsonUnquote(expression), 'CHAR');
157
- }
158
- }
159
- };
160
- sqlExpression = castJsonType(sqlExpression, options.type);
161
- convertToExpression = (q) => {
162
- const base = (0, SQLJsonExpressions_1.scalarToSQLJSONExpression)(q);
163
- return castJsonType(base, options.type);
136
+ function invertFilterCompiler(compiler) {
137
+ return (filter, parentCompiler) => {
138
+ const runner = compiler(filter, parentCompiler);
139
+ return async (column) => {
140
+ return new SQLWhere_1.SQLWhereNot(await runner(column));
164
141
  };
165
- }
166
- return async (filter, filters) => {
167
- if (options.checkPermission) {
168
- // throws error if no permissions
169
- await options.checkPermission();
170
- }
171
- if (typeof filter === 'string' || typeof filter === 'number' || typeof filter === 'boolean' || filter === null || filter === undefined || filter instanceof Date) {
172
- filter = {
173
- $eq: filter,
174
- };
175
- }
176
- if (Array.isArray(filter)) {
177
- throw new Error('Unexpected array in filter');
178
- }
179
- const f = filter;
180
- if ('$eq' in f) {
181
- if (isJSONObject) {
182
- const v = norm(f.$eq);
183
- if (typeof v === 'string') {
184
- // Custom query to support case insensitive comparing
185
- return new SQLWhere_1.SQLWhereEqual(new SQLJsonExpressions_1.SQLJsonSearch(new SQLExpressions_1.SQLLower(sqlExpression), 'one', convertToExpression(SQLWhere_1.SQLWhereLike.escape(v.toLocaleLowerCase()))), SQLWhere_1.SQLWhereSign.NotEqual, new SQLExpressions_1.SQLNull());
186
- }
187
- // else
188
- return new SQLJsonExpressions_1.SQLJsonContains(sqlExpression, convertToExpression(v));
189
- }
190
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, convertToExpression(norm(f.$eq)));
191
- }
192
- if ('$in' in f) {
193
- if (!Array.isArray(f.$in)) {
194
- throw new simple_errors_1.SimpleError({
195
- code: 'invalid_filter',
196
- message: 'Expected array at $in filter',
197
- });
198
- }
199
- if (f.$in.length === 0) {
200
- return new SQLWhere_1.SQLWhereEqual(new SQLExpressions_1.SQLSafeValue(1), SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLSafeValue(0));
201
- }
202
- const v = f.$in.map(a => norm(a));
203
- const nullIncluded = v.includes(null);
204
- if (isJSONObject) {
205
- if (nullIncluded) {
206
- // PROBLEM: The sql expression can either not exist (= resolve to mysql null), contains null in json (= JSON null), or contain a value.
207
- // that makes comparing more difficult, to combat this, we still need to use SQLJsonOverlaps with the JSON null value
208
- return new SQLWhere_1.SQLWhereOr([
209
- new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLNull()), // checks path not exists (= mysql null)
210
- new SQLJsonExpressions_1.SQLJsonOverlaps(sqlExpression, convertToExpression(JSON.stringify(v))),
211
- ]);
212
- }
213
- // else
214
- return new SQLJsonExpressions_1.SQLJsonOverlaps(sqlExpression, convertToExpression(JSON.stringify(v)));
215
- }
216
- const createSqlArray = (value) => {
217
- if (isJSONValue) {
218
- const type = options.type;
219
- switch (type) {
220
- case SQLValueType.JSONBoolean: {
221
- // todo;
222
- break;
223
- }
224
- case SQLValueType.JSONString: {
225
- break;
226
- }
227
- }
228
- }
229
- return new SQLExpressions_1.SQLArray(value);
230
- };
231
- if (nullIncluded) {
232
- const remaining = v.filter(v => v !== null);
233
- if (remaining.length === 0) {
234
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLNull());
235
- }
236
- return new SQLWhere_1.SQLWhereOr([
237
- new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLNull()),
238
- new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, createSqlArray(remaining)),
239
- ]);
240
- }
241
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, createSqlArray(v));
242
- }
243
- if ('$neq' in f) {
244
- if (isJSONObject) {
245
- const v = norm(f.$neq);
246
- return new SQLWhere_1.SQLWhereNot(new SQLJsonExpressions_1.SQLJsonContains(sqlExpression, convertToExpression(JSON.stringify(v))));
247
- }
248
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.NotEqual, convertToExpression(norm(f.$neq)));
249
- }
250
- if ('$gt' in f) {
251
- if (isJSONObject) {
252
- throw new Error('Greater than is not supported in this place');
253
- }
254
- if (f.$gt === null) {
255
- // > null is same as not equal to null (everything is larger than null in mysql) - to be consistent with order by behaviour
256
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.NotEqual, convertToExpression(null));
257
- }
258
- // For MySQL null values are never included in greater than, but we need this for consistent sorting behaviour
259
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Greater, convertToExpression(norm(f.$gt)));
260
- }
261
- if ('$gte' in f) {
262
- if (isJSONObject) {
263
- throw new Error('Greater than is not supported in this place');
264
- }
265
- if (f.$gte === null) {
266
- // >= null is always everything
267
- return new SQLWhere_1.SQLWhereEqual(new SQLExpressions_1.SQLSafeValue(1), SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLSafeValue(1));
268
- }
269
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.GreaterEqual, convertToExpression(norm(f.$gte)));
270
- }
271
- if ('$lte' in f) {
272
- if (isJSONObject) {
273
- throw new Error('Greater than is not supported in this place');
274
- }
275
- if (f.$lte === null) {
276
- // <= null is same as equal to null
277
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, convertToExpression(norm(f.$lte)));
278
- }
279
- const base = new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.LessEqual, convertToExpression(norm(f.$lte)));
280
- if (nullable) {
281
- return new SQLWhere_1.SQLWhereOr([
282
- // Null values are also smaller than any value - required for sorting
283
- new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLNull()),
284
- base,
285
- ]);
286
- }
287
- return new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.LessEqual, convertToExpression(norm(f.$lte)));
288
- }
289
- if ('$lt' in f) {
290
- if (isJSONObject) {
291
- throw new Error('Less than is not supported in this place');
292
- }
293
- if (f.$lt === null) {
294
- // < null is always nothing, there is nothing smaller than null in MySQL - to be consistent with order by behaviour
295
- return new SQLWhere_1.SQLWhereEqual(new SQLExpressions_1.SQLSafeValue(1), SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLSafeValue(0));
296
- }
297
- const base = new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Less, convertToExpression(norm(f.$lt)));
298
- if (nullable) {
299
- return new SQLWhere_1.SQLWhereOr([
300
- // Null values are also smaller than any value - required for sorting
301
- new SQLWhere_1.SQLWhereEqual(sqlExpression, SQLWhere_1.SQLWhereSign.Equal, new SQLExpressions_1.SQLNull()),
302
- base,
303
- ]);
304
- }
305
- return base;
306
- }
307
- if ('$contains' in f) {
308
- const needle = norm(f.$contains);
309
- if (typeof needle !== 'string') {
310
- throw new Error('Invalid needle for contains filter');
311
- }
312
- if (isJSONObject) {
313
- return new SQLWhere_1.SQLWhereEqual(new SQLJsonExpressions_1.SQLJsonSearch(new SQLExpressions_1.SQLLower(sqlExpression), 'one', convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(needle) + '%')), SQLWhere_1.SQLWhereSign.NotEqual, new SQLExpressions_1.SQLNull());
314
- }
315
- if (isJSONValue) {
316
- // We need to do case insensitive search, so need to convert the sqlExpression from utf8mb4 to varchar
317
- return new SQLWhere_1.SQLWhereLike(new SQLExpressions_1.SQLCast(new SQLJsonExpressions_1.SQLJsonUnquote(sqlExpression), 'CHAR'), convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(needle) + '%'));
318
- }
319
- return new SQLWhere_1.SQLWhereLike(sqlExpression, convertToExpression('%' + SQLWhere_1.SQLWhereLike.escape(needle) + '%'));
320
- }
321
- throw new simple_errors_1.SimpleError({
322
- code: 'invalid_filter',
323
- message: 'Invalid filter',
324
- human: $t('a5c30846-b8ae-410d-8fcd-bfc3f127623d'),
325
- });
326
142
  };
327
143
  }
328
- function createSQLColumnFilterCompiler(name, options) {
329
- const column = name instanceof SQLExpressions_1.SQLColumnExpression ? name : SQL_1.SQL.column(name);
330
- return createSQLExpressionFilterCompiler(column, options);
331
- }
332
144
  exports.baseSQLFilterCompilers = {
333
- $and: andSQLFilterCompiler,
334
- $or: orSQLFilterCompiler,
335
- $not: notSQLFilterCompiler,
145
+ $and: $andSQLFilterCompiler,
146
+ $or: $orSQLFilterCompiler,
147
+ $not: $notSQLFilterCompiler,
148
+ $eq: compilers_1.$equalsSQLFilterCompiler,
149
+ $neq: invertFilterCompiler(compilers_1.$equalsSQLFilterCompiler),
150
+ $lt: compilers_1.$lessThanSQLFilterCompiler,
151
+ $gt: compilers_1.$greaterThanSQLFilterCompiler,
152
+ $lte: invertFilterCompiler(compilers_1.$greaterThanSQLFilterCompiler),
153
+ $gte: invertFilterCompiler(compilers_1.$lessThanSQLFilterCompiler),
154
+ $in: compilers_1.$inSQLFilterCompiler,
155
+ $contains: contains_1.$containsSQLFilterCompiler,
336
156
  };
337
- function objectToArray(f) {
338
- const splitted = [];
339
- for (const key of Object.keys(f)) {
340
- splitted.push({ [key]: f[key] });
157
+ const compileSQLFilter = (structures_1.compileFilter);
158
+ exports.SQLRootExpression = {
159
+ getSQL(options) {
160
+ throw new simple_errors_1.SimpleError({
161
+ code: 'invalid_filter',
162
+ message: 'Root level filters are not allowed to use $eq or $neq',
163
+ });
164
+ },
165
+ };
166
+ function compileToSQLRunner(filter, definitions) {
167
+ if (filter === null) {
168
+ return () => {
169
+ return new SQLWhere_1.SQLWhereAnd([]); // No filter, return empty where
170
+ };
341
171
  }
342
- return splitted;
172
+ const compiler = (0, structures_1.filterDefinitionsToCompiler)(definitions); // this compiler searches in the definition for the right compiler for the given key
173
+ const runner = $andSQLFilterCompiler(filter, compiler);
174
+ return runner;
175
+ }
176
+ ;
177
+ async function compileToSQLFilter(filter, filters) {
178
+ const runner = compileToSQLRunner(filter, filters);
179
+ return await runner({
180
+ expression: exports.SQLRootExpression,
181
+ type: SQLValueType.Table,
182
+ nullable: false,
183
+ });
343
184
  }
344
- async function compileSQLFilter(filter, definitions) {
345
- if (filter === undefined) {
346
- return [];
185
+ ;
186
+ /**
187
+ * Casts json strings, numbers and booleans to native MySQL types. This includes json null to mysql null.
188
+ */
189
+ function normalizeColumn(column) {
190
+ if (column.type === SQLValueType.JSONString) {
191
+ return {
192
+ expression: new SQLJsonExpressions_1.SQLJsonValue(column.expression, 'CHAR'),
193
+ type: SQLValueType.String,
194
+ nullable: column.nullable,
195
+ };
347
196
  }
348
- const runners = [];
349
- for (const f of (Array.isArray(filter) ? filter : (typeof filter === 'object' && filter !== null ? objectToArray(filter) : [filter]))) {
350
- if (!f) {
351
- continue;
352
- }
353
- if (!(typeof f === 'object' && f !== null)) {
354
- throw new Error('Unsupported filter at this position: ' + f);
355
- }
356
- if (Object.keys(f).length > 1) {
357
- // Multiple keys in the same object should always be combined with AND
358
- runners.push(await andSQLFilterCompiler(objectToArray(f), definitions));
359
- continue;
360
- }
361
- if (Array.isArray(f)) {
362
- // Arrays in filters not direclty underneath $and or $or should be combined with AND
363
- runners.push(await andSQLFilterCompiler(f, definitions));
364
- continue;
365
- }
366
- for (const key of Object.keys(f)) {
367
- let ff = definitions[key];
368
- let value = f[key];
369
- if (!ff) {
370
- // Search with dot syntax shortcuts
371
- if (key.includes('.')) {
372
- const parts = key.split('.');
373
- if (parts.length >= 2 && parts.every(p => p.length > 0)) {
374
- let subKey = parts.shift() ?? '';
375
- while (parts.length && !definitions[subKey]) {
376
- subKey = subKey + '.' + parts.shift();
377
- }
378
- if (subKey && definitions[subKey]) {
379
- const remaining = parts.join('.');
380
- const transformeInto = {
381
- [remaining]: value,
382
- };
383
- ff = definitions[subKey];
384
- value = transformeInto;
385
- }
386
- }
387
- }
388
- }
389
- if (!ff) {
390
- throw new simple_errors_1.SimpleError({
391
- code: 'invalid_filter',
392
- message: 'Invalid filter ' + key,
393
- human: $t('a5c30846-b8ae-410d-8fcd-bfc3f127623d'),
394
- });
395
- }
396
- const s = await ff(value, definitions);
397
- if (s === undefined || s === null) {
398
- throw new simple_errors_1.SimpleError({
399
- code: 'invalid_filter',
400
- message: 'Invalid filter value for filter ' + key,
401
- human: $t('a5c30846-b8ae-410d-8fcd-bfc3f127623d'),
402
- });
403
- }
404
- runners.push(s);
405
- }
197
+ if (column.type === SQLValueType.JSONBoolean) {
198
+ return {
199
+ expression: new SQLJsonExpressions_1.SQLJsonValue(column.expression, 'UNSIGNED'),
200
+ type: SQLValueType.Boolean,
201
+ nullable: column.nullable,
202
+ };
203
+ }
204
+ if (column.type === SQLValueType.JSONNumber) {
205
+ return {
206
+ expression: new SQLJsonExpressions_1.SQLJsonValue(column.expression, 'UNSIGNED'),
207
+ type: SQLValueType.Number,
208
+ nullable: column.nullable,
209
+ };
406
210
  }
407
- return runners;
211
+ return column;
408
212
  }
409
- exports.compileToSQLFilter = andSQLFilterCompiler;
410
213
  //# sourceMappingURL=SQLFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLFilter.js","sourceRoot":"","sources":["../../../src/filters/SQLFilter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { StamhoofdFilter } from '@stamhoofd/structures';
2
- import { SQLSyncFilterRunner } from '../SQLModernFilter';
2
+ import { SQLSyncFilterRunner } from '../SQLFilter';
3
3
  export declare function $containsSQLFilterCompiler(filter: StamhoofdFilter): SQLSyncFilterRunner;
4
4
  //# sourceMappingURL=contains.d.ts.map