@stamhoofd/sql 2.119.0 → 2.120.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.
Files changed (272) hide show
  1. package/dist/{src/ModelCache.d.ts → ModelCache.d.ts} +1 -1
  2. package/dist/ModelCache.d.ts.map +1 -0
  3. package/{src/ModelCache.ts → dist/ModelCache.js} +8 -16
  4. package/dist/ModelCache.js.map +1 -0
  5. package/dist/{src/QueryableModel.d.ts → QueryableModel.d.ts} +7 -6
  6. package/dist/QueryableModel.d.ts.map +1 -0
  7. package/dist/{src/QueryableModel.js → QueryableModel.js} +9 -13
  8. package/dist/QueryableModel.js.map +1 -0
  9. package/dist/{src/SQL.d.ts → SQL.d.ts} +7 -5
  10. package/dist/SQL.d.ts.map +1 -0
  11. package/dist/SQL.js +100 -0
  12. package/dist/SQL.js.map +1 -0
  13. package/dist/{src/SQLDelete.d.ts → SQLDelete.d.ts} +2 -2
  14. package/dist/SQLDelete.d.ts.map +1 -0
  15. package/dist/{src/SQLDelete.js → SQLDelete.js} +8 -12
  16. package/dist/SQLDelete.js.map +1 -0
  17. package/dist/SQLExpression.d.ts.map +1 -0
  18. package/dist/{src/SQLExpression.js → SQLExpression.js} +3 -8
  19. package/dist/SQLExpression.js.map +1 -0
  20. package/dist/{src/SQLExpressions.d.ts → SQLExpressions.d.ts} +2 -2
  21. package/dist/SQLExpressions.d.ts.map +1 -0
  22. package/dist/{src/SQLExpressions.js → SQLExpressions.js} +78 -115
  23. package/dist/SQLExpressions.js.map +1 -0
  24. package/dist/{src/SQLInsert.d.ts → SQLInsert.d.ts} +3 -2
  25. package/dist/SQLInsert.d.ts.map +1 -0
  26. package/dist/{src/SQLInsert.js → SQLInsert.js} +17 -21
  27. package/dist/SQLInsert.js.map +1 -0
  28. package/dist/{src/SQLJoin.d.ts → SQLJoin.d.ts} +1 -1
  29. package/dist/SQLJoin.d.ts.map +1 -0
  30. package/{src/SQLJoin.ts → dist/SQLJoin.js} +15 -18
  31. package/dist/SQLJoin.js.map +1 -0
  32. package/dist/{src/SQLJsonExpressions.d.ts → SQLJsonExpressions.d.ts} +2 -2
  33. package/dist/SQLJsonExpressions.d.ts.map +1 -0
  34. package/dist/{src/SQLJsonExpressions.js → SQLJsonExpressions.js} +31 -44
  35. package/dist/SQLJsonExpressions.js.map +1 -0
  36. package/dist/SQLLogger.d.ts.map +1 -0
  37. package/dist/{src/SQLLogger.js → SQLLogger.js} +5 -8
  38. package/dist/SQLLogger.js.map +1 -0
  39. package/dist/{src/SQLOrderBy.d.ts → SQLOrderBy.d.ts} +1 -1
  40. package/dist/SQLOrderBy.d.ts.map +1 -0
  41. package/dist/{src/SQLOrderBy.js → SQLOrderBy.js} +8 -13
  42. package/dist/SQLOrderBy.js.map +1 -0
  43. package/dist/{src/SQLSelect.d.ts → SQLSelect.d.ts} +3 -3
  44. package/dist/SQLSelect.d.ts.map +1 -0
  45. package/dist/{src/SQLSelect.js → SQLSelect.js} +24 -29
  46. package/dist/SQLSelect.js.map +1 -0
  47. package/dist/{src/SQLTranslatedStringHelper.d.ts → SQLTranslatedStringHelper.d.ts} +3 -2
  48. package/dist/SQLTranslatedStringHelper.d.ts.map +1 -0
  49. package/dist/SQLTranslatedStringHelper.js +33 -0
  50. package/dist/SQLTranslatedStringHelper.js.map +1 -0
  51. package/dist/{src/SQLUpdate.d.ts → SQLUpdate.d.ts} +3 -2
  52. package/dist/SQLUpdate.d.ts.map +1 -0
  53. package/{src/SQLUpdate.ts → dist/SQLUpdate.js} +18 -35
  54. package/dist/SQLUpdate.js.map +1 -0
  55. package/dist/{src/SQLWhere.d.ts → SQLWhere.d.ts} +3 -3
  56. package/dist/SQLWhere.d.ts.map +1 -0
  57. package/dist/{src/SQLWhere.js → SQLWhere.js} +42 -56
  58. package/dist/SQLWhere.js.map +1 -0
  59. package/dist/{src/filters → filters}/SQLFilter.d.ts +5 -5
  60. package/dist/filters/SQLFilter.d.ts.map +1 -0
  61. package/{src/filters/SQLFilter.ts → dist/filters/SQLFilter.js} +55 -121
  62. package/dist/filters/SQLFilter.js.map +1 -0
  63. package/dist/{src/filters → filters}/SQLSorter.d.ts +6 -6
  64. package/dist/filters/SQLSorter.d.ts.map +1 -0
  65. package/dist/{src/filters → filters}/SQLSorter.js +4 -7
  66. package/dist/filters/SQLSorter.js.map +1 -0
  67. package/dist/filters/compilers/contains.d.ts +4 -0
  68. package/dist/filters/compilers/contains.d.ts.map +1 -0
  69. package/{src/filters/compilers/contains.ts → dist/filters/compilers/contains.js} +7 -25
  70. package/dist/filters/compilers/contains.js.map +1 -0
  71. package/dist/filters/compilers/equals.d.ts +4 -0
  72. package/dist/filters/compilers/equals.d.ts.map +1 -0
  73. package/dist/filters/compilers/equals.js +44 -0
  74. package/dist/filters/compilers/equals.js.map +1 -0
  75. package/dist/filters/compilers/greater.d.ts +4 -0
  76. package/dist/filters/compilers/greater.d.ts.map +1 -0
  77. package/dist/filters/compilers/greater.js +15 -0
  78. package/dist/filters/compilers/greater.js.map +1 -0
  79. package/dist/filters/compilers/in.d.ts +4 -0
  80. package/dist/filters/compilers/in.d.ts.map +1 -0
  81. package/{src/filters/compilers/in.ts → dist/filters/compilers/in.js} +7 -21
  82. package/dist/filters/compilers/in.js.map +1 -0
  83. package/dist/filters/compilers/index.d.ts.map +1 -0
  84. package/{src/filters/compilers/index.ts → dist/filters/compilers/index.js} +1 -0
  85. package/dist/filters/compilers/index.js.map +1 -0
  86. package/dist/filters/compilers/less.d.ts +4 -0
  87. package/dist/filters/compilers/less.d.ts.map +1 -0
  88. package/dist/filters/compilers/less.js +15 -0
  89. package/dist/filters/compilers/less.js.map +1 -0
  90. package/dist/filters/helpers/isJSONColumn.d.ts +5 -0
  91. package/dist/filters/helpers/isJSONColumn.d.ts.map +1 -0
  92. package/{src/filters/helpers/isJSONColumn.ts → dist/filters/helpers/isJSONColumn.js} +4 -5
  93. package/dist/filters/helpers/isJSONColumn.js.map +1 -0
  94. package/dist/{src/filters → filters}/helpers/normalizeCompareValue.d.ts +1 -1
  95. package/dist/filters/helpers/normalizeCompareValue.d.ts.map +1 -0
  96. package/{src/filters/helpers/normalizeCompareValue.ts → dist/filters/helpers/normalizeCompareValue.js} +2 -20
  97. package/dist/filters/helpers/normalizeCompareValue.js.map +1 -0
  98. package/dist/index.d.ts +14 -14
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +14 -25
  101. package/dist/index.js.map +1 -1
  102. package/package.json +6 -6
  103. package/dist/src/ModelCache.d.ts.map +0 -1
  104. package/dist/src/ModelCache.js +0 -57
  105. package/dist/src/ModelCache.js.map +0 -1
  106. package/dist/src/QueryableModel.d.ts.map +0 -1
  107. package/dist/src/QueryableModel.js.map +0 -1
  108. package/dist/src/SQL.d.ts.map +0 -1
  109. package/dist/src/SQL.js +0 -103
  110. package/dist/src/SQL.js.map +0 -1
  111. package/dist/src/SQLDelete.d.ts.map +0 -1
  112. package/dist/src/SQLDelete.js.map +0 -1
  113. package/dist/src/SQLExpression.d.ts.map +0 -1
  114. package/dist/src/SQLExpression.js.map +0 -1
  115. package/dist/src/SQLExpressions.d.ts.map +0 -1
  116. package/dist/src/SQLExpressions.js.map +0 -1
  117. package/dist/src/SQLInsert.d.ts.map +0 -1
  118. package/dist/src/SQLInsert.js.map +0 -1
  119. package/dist/src/SQLJoin.d.ts.map +0 -1
  120. package/dist/src/SQLJoin.js +0 -61
  121. package/dist/src/SQLJoin.js.map +0 -1
  122. package/dist/src/SQLJsonExpressions.d.ts.map +0 -1
  123. package/dist/src/SQLJsonExpressions.js.map +0 -1
  124. package/dist/src/SQLLogger.d.ts.map +0 -1
  125. package/dist/src/SQLLogger.js.map +0 -1
  126. package/dist/src/SQLOrderBy.d.ts.map +0 -1
  127. package/dist/src/SQLOrderBy.js.map +0 -1
  128. package/dist/src/SQLSelect.d.ts.map +0 -1
  129. package/dist/src/SQLSelect.js.map +0 -1
  130. package/dist/src/SQLTranslatedStringHelper.d.ts.map +0 -1
  131. package/dist/src/SQLTranslatedStringHelper.js +0 -37
  132. package/dist/src/SQLTranslatedStringHelper.js.map +0 -1
  133. package/dist/src/SQLUpdate.d.ts.map +0 -1
  134. package/dist/src/SQLUpdate.js +0 -60
  135. package/dist/src/SQLUpdate.js.map +0 -1
  136. package/dist/src/SQLWhere.d.ts.map +0 -1
  137. package/dist/src/SQLWhere.js.map +0 -1
  138. package/dist/src/filters/SQLFilter.d.ts.map +0 -1
  139. package/dist/src/filters/SQLFilter.js +0 -220
  140. package/dist/src/filters/SQLFilter.js.map +0 -1
  141. package/dist/src/filters/SQLSorter.d.ts.map +0 -1
  142. package/dist/src/filters/SQLSorter.js.map +0 -1
  143. package/dist/src/filters/compilers/contains.d.ts +0 -4
  144. package/dist/src/filters/compilers/contains.d.ts.map +0 -1
  145. package/dist/src/filters/compilers/contains.js +0 -29
  146. package/dist/src/filters/compilers/contains.js.map +0 -1
  147. package/dist/src/filters/compilers/equals.d.ts +0 -4
  148. package/dist/src/filters/compilers/equals.d.ts.map +0 -1
  149. package/dist/src/filters/compilers/equals.js +0 -47
  150. package/dist/src/filters/compilers/equals.js.map +0 -1
  151. package/dist/src/filters/compilers/greater.d.ts +0 -4
  152. package/dist/src/filters/compilers/greater.d.ts.map +0 -1
  153. package/dist/src/filters/compilers/greater.js +0 -18
  154. package/dist/src/filters/compilers/greater.js.map +0 -1
  155. package/dist/src/filters/compilers/in.d.ts +0 -4
  156. package/dist/src/filters/compilers/in.d.ts.map +0 -1
  157. package/dist/src/filters/compilers/in.js +0 -51
  158. package/dist/src/filters/compilers/in.js.map +0 -1
  159. package/dist/src/filters/compilers/index.d.ts.map +0 -1
  160. package/dist/src/filters/compilers/index.js +0 -8
  161. package/dist/src/filters/compilers/index.js.map +0 -1
  162. package/dist/src/filters/compilers/less.d.ts +0 -4
  163. package/dist/src/filters/compilers/less.d.ts.map +0 -1
  164. package/dist/src/filters/compilers/less.js +0 -18
  165. package/dist/src/filters/compilers/less.js.map +0 -1
  166. package/dist/src/filters/helpers/isJSONColumn.d.ts +0 -4
  167. package/dist/src/filters/helpers/isJSONColumn.d.ts.map +0 -1
  168. package/dist/src/filters/helpers/isJSONColumn.js +0 -17
  169. package/dist/src/filters/helpers/isJSONColumn.js.map +0 -1
  170. package/dist/src/filters/helpers/normalizeCompareValue.d.ts.map +0 -1
  171. package/dist/src/filters/helpers/normalizeCompareValue.js +0 -87
  172. package/dist/src/filters/helpers/normalizeCompareValue.js.map +0 -1
  173. package/dist/tests/filters/$and.test.d.ts +0 -2
  174. package/dist/tests/filters/$and.test.d.ts.map +0 -1
  175. package/dist/tests/filters/$and.test.js +0 -216
  176. package/dist/tests/filters/$and.test.js.map +0 -1
  177. package/dist/tests/filters/$contains.test.d.ts +0 -2
  178. package/dist/tests/filters/$contains.test.d.ts.map +0 -1
  179. package/dist/tests/filters/$contains.test.js +0 -917
  180. package/dist/tests/filters/$contains.test.js.map +0 -1
  181. package/dist/tests/filters/$eq.test.d.ts +0 -2
  182. package/dist/tests/filters/$eq.test.d.ts.map +0 -1
  183. package/dist/tests/filters/$eq.test.js +0 -1464
  184. package/dist/tests/filters/$eq.test.js.map +0 -1
  185. package/dist/tests/filters/$gt.test.d.ts +0 -2
  186. package/dist/tests/filters/$gt.test.d.ts.map +0 -1
  187. package/dist/tests/filters/$gt.test.js +0 -641
  188. package/dist/tests/filters/$gt.test.js.map +0 -1
  189. package/dist/tests/filters/$gte.test.d.ts +0 -2
  190. package/dist/tests/filters/$gte.test.d.ts.map +0 -1
  191. package/dist/tests/filters/$gte.test.js +0 -433
  192. package/dist/tests/filters/$gte.test.js.map +0 -1
  193. package/dist/tests/filters/$in.test.d.ts +0 -2
  194. package/dist/tests/filters/$in.test.d.ts.map +0 -1
  195. package/dist/tests/filters/$in.test.js +0 -773
  196. package/dist/tests/filters/$in.test.js.map +0 -1
  197. package/dist/tests/filters/$lt.test.d.ts +0 -2
  198. package/dist/tests/filters/$lt.test.d.ts.map +0 -1
  199. package/dist/tests/filters/$lt.test.js +0 -433
  200. package/dist/tests/filters/$lt.test.js.map +0 -1
  201. package/dist/tests/filters/$lte.test.d.ts +0 -2
  202. package/dist/tests/filters/$lte.test.d.ts.map +0 -1
  203. package/dist/tests/filters/$lte.test.js +0 -472
  204. package/dist/tests/filters/$lte.test.js.map +0 -1
  205. package/dist/tests/filters/$neq.test.d.ts +0 -2
  206. package/dist/tests/filters/$neq.test.d.ts.map +0 -1
  207. package/dist/tests/filters/$neq.test.js +0 -32
  208. package/dist/tests/filters/$neq.test.js.map +0 -1
  209. package/dist/tests/filters/$not.test.d.ts +0 -2
  210. package/dist/tests/filters/$not.test.d.ts.map +0 -1
  211. package/dist/tests/filters/$not.test.js +0 -50
  212. package/dist/tests/filters/$not.test.js.map +0 -1
  213. package/dist/tests/filters/$or.test.d.ts +0 -2
  214. package/dist/tests/filters/$or.test.d.ts.map +0 -1
  215. package/dist/tests/filters/$or.test.js +0 -185
  216. package/dist/tests/filters/$or.test.js.map +0 -1
  217. package/dist/tests/filters/SQLTranslatedStringHelper.test.d.ts +0 -2
  218. package/dist/tests/filters/SQLTranslatedStringHelper.test.d.ts.map +0 -1
  219. package/dist/tests/filters/SQLTranslatedStringHelper.test.js +0 -491
  220. package/dist/tests/filters/SQLTranslatedStringHelper.test.js.map +0 -1
  221. package/dist/tests/filters/dot-syntax.test.d.ts +0 -2
  222. package/dist/tests/filters/dot-syntax.test.d.ts.map +0 -1
  223. package/dist/tests/filters/dot-syntax.test.js +0 -210
  224. package/dist/tests/filters/dot-syntax.test.js.map +0 -1
  225. package/dist/tests/filters/exists.test.d.ts +0 -2
  226. package/dist/tests/filters/exists.test.d.ts.map +0 -1
  227. package/dist/tests/filters/exists.test.js +0 -96
  228. package/dist/tests/filters/exists.test.js.map +0 -1
  229. package/dist/tests/filters/joined-relations.test.d.ts +0 -2
  230. package/dist/tests/filters/joined-relations.test.d.ts.map +0 -1
  231. package/dist/tests/filters/joined-relations.test.js +0 -167
  232. package/dist/tests/filters/joined-relations.test.js.map +0 -1
  233. package/dist/tests/filters/special-cases.test.d.ts +0 -2
  234. package/dist/tests/filters/special-cases.test.d.ts.map +0 -1
  235. package/dist/tests/filters/special-cases.test.js +0 -114
  236. package/dist/tests/filters/special-cases.test.js.map +0 -1
  237. package/dist/tests/filters/wildcard.test.d.ts +0 -2
  238. package/dist/tests/filters/wildcard.test.d.ts.map +0 -1
  239. package/dist/tests/filters/wildcard.test.js +0 -67
  240. package/dist/tests/filters/wildcard.test.js.map +0 -1
  241. package/dist/tests/jest.global.setup.d.ts +0 -3
  242. package/dist/tests/jest.global.setup.d.ts.map +0 -1
  243. package/dist/tests/jest.global.setup.js +0 -7
  244. package/dist/tests/jest.global.setup.js.map +0 -1
  245. package/dist/tests/jest.setup.d.ts +0 -2
  246. package/dist/tests/jest.setup.d.ts.map +0 -1
  247. package/dist/tests/jest.setup.js +0 -5
  248. package/dist/tests/jest.setup.js.map +0 -1
  249. package/dist/tests/utils/index.d.ts +0 -57
  250. package/dist/tests/utils/index.d.ts.map +0 -1
  251. package/dist/tests/utils/index.js +0 -206
  252. package/dist/tests/utils/index.js.map +0 -1
  253. package/dist/tsconfig.tsbuildinfo +0 -1
  254. package/src/QueryableModel.ts +0 -134
  255. package/src/SQL.ts +0 -128
  256. package/src/SQLDelete.ts +0 -73
  257. package/src/SQLExpression.ts +0 -34
  258. package/src/SQLExpressions.ts +0 -587
  259. package/src/SQLInsert.ts +0 -113
  260. package/src/SQLJsonExpressions.ts +0 -283
  261. package/src/SQLLogger.ts +0 -82
  262. package/src/SQLOrderBy.ts +0 -69
  263. package/src/SQLSelect.ts +0 -520
  264. package/src/SQLTranslatedStringHelper.ts +0 -40
  265. package/src/SQLWhere.ts +0 -744
  266. package/src/filters/SQLSorter.ts +0 -60
  267. package/src/filters/compilers/equals.ts +0 -73
  268. package/src/filters/compilers/greater.ts +0 -21
  269. package/src/filters/compilers/less.ts +0 -20
  270. /package/dist/{src/SQLExpression.d.ts → SQLExpression.d.ts} +0 -0
  271. /package/dist/{src/SQLLogger.d.ts → SQLLogger.d.ts} +0 -0
  272. /package/dist/{src/filters → filters}/compilers/index.d.ts +0 -0
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$containsSQLFilterCompiler = $containsSQLFilterCompiler;
4
- const simple_errors_1 = require("@simonbackx/simple-errors");
5
- const structures_1 = require("@stamhoofd/structures");
6
- const SQLExpressions_js_1 = require("../../SQLExpressions.js");
7
- const SQLJsonExpressions_js_1 = require("../../SQLJsonExpressions.js");
8
- const SQLWhere_js_1 = require("../../SQLWhere.js");
9
- const SQLFilter_js_1 = require("../SQLFilter.js");
10
- const normalizeCompareValue_js_1 = require("../helpers/normalizeCompareValue.js");
11
- function $containsSQLFilterCompiler(filter) {
12
- return (originalColumn) => {
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);
16
- if (typeof value !== 'string') {
17
- throw new simple_errors_1.SimpleError({
18
- code: 'invalid_filter',
19
- message: 'Expected string at $contains filter',
20
- });
21
- }
22
- if (column.type === SQLFilter_js_1.SQLValueType.JSONArray || column.type === SQLFilter_js_1.SQLValueType.JSONObject) {
23
- // For JSON arrays and objects, we use JSON_CONTAINS
24
- return new SQLWhere_js_1.SQLWhereEqual(new SQLJsonExpressions_js_1.SQLJsonSearch(new SQLExpressions_js_1.SQLLower(column.expression), 'one', (0, SQLExpressions_js_1.scalarToSQLExpression)('%' + SQLWhere_js_1.SQLWhereLike.escape(value) + '%')), SQLWhere_js_1.SQLWhereSign.NotEqual, new SQLExpressions_js_1.SQLNull());
25
- }
26
- return new SQLWhere_js_1.SQLWhereLike(column.expression, (0, SQLExpressions_js_1.scalarToSQLExpression)('%' + SQLWhere_js_1.SQLWhereLike.escape(value) + '%'));
27
- };
28
- }
29
- //# sourceMappingURL=contains.js.map
@@ -1 +0,0 @@
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,4 +0,0 @@
1
- import { StamhoofdFilter } from '@stamhoofd/structures';
2
- import { SQLSyncFilterRunner } from '../SQLFilter.js';
3
- export declare function $equalsSQLFilterCompiler(filter: StamhoofdFilter): SQLSyncFilterRunner;
4
- //# sourceMappingURL=equals.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$equalsSQLFilterCompiler = $equalsSQLFilterCompiler;
4
- const structures_1 = require("@stamhoofd/structures");
5
- const SQLExpressions_js_1 = require("../../SQLExpressions.js");
6
- const SQLJsonExpressions_js_1 = require("../../SQLJsonExpressions.js");
7
- const SQLWhere_js_1 = require("../../SQLWhere.js");
8
- const SQLFilter_js_1 = require("../SQLFilter.js");
9
- const isJSONColumn_js_1 = require("../helpers/isJSONColumn.js");
10
- const normalizeCompareValue_js_1 = require("../helpers/normalizeCompareValue.js");
11
- function $equalsSQLFilterCompiler(filter) {
12
- return (originalColumn) => {
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);
16
- /**
17
- * Special case, checking for equality with a JSON array.
18
- * This should return true if the JSON array contains the value exactly.
19
- *
20
- * This differs from $contains, which will check for 'LIKE' inside the JSON array.
21
- */
22
- if (column.type === SQLFilter_js_1.SQLValueType.JSONArray) {
23
- let where;
24
- if (typeof value === 'string') {
25
- where = new SQLWhere_js_1.SQLWhereEqual(new SQLJsonExpressions_js_1.SQLJsonSearch(new SQLExpressions_js_1.SQLLower(column.expression), 'one', (0, SQLExpressions_js_1.scalarToSQLExpression)(SQLWhere_js_1.SQLWhereLike.escape(value))), SQLWhere_js_1.SQLWhereSign.NotEqual, new SQLExpressions_js_1.SQLNull());
26
- }
27
- else {
28
- where = new SQLJsonExpressions_js_1.SQLJsonContains(column.expression, (0, SQLExpressions_js_1.scalarToSQLExpression)(JSON.stringify(value)));
29
- }
30
- // If comparing against null, also check for native MySQL null (the column does not exist)
31
- if (value === null) {
32
- where = new SQLWhere_js_1.SQLWhereOr([
33
- where,
34
- new SQLWhere_js_1.SQLWhereEqual(column.expression, SQLWhere_js_1.SQLWhereSign.Equal, new SQLExpressions_js_1.SQLNull()),
35
- ]);
36
- }
37
- return where;
38
- }
39
- if (value === null && (0, isJSONColumn_js_1.isJSONColumn)(column)) {
40
- // JSON values can either resolve to null or "null" in MySQL.
41
- return new SQLWhere_js_1.SQLWhereEqual(new SQLJsonExpressions_js_1.SQLJsonValue(column.expression), // casts json null to null, including invalid paths
42
- SQLWhere_js_1.SQLWhereSign.Equal, new SQLExpressions_js_1.SQLNull());
43
- }
44
- return new SQLWhere_js_1.SQLWhereEqual(column.expression, SQLWhere_js_1.SQLWhereSign.Equal, (0, SQLExpressions_js_1.scalarToSQLExpression)(value)).setNullable(column.nullable);
45
- };
46
- }
47
- //# sourceMappingURL=equals.js.map
@@ -1 +0,0 @@
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,4 +0,0 @@
1
- import { StamhoofdFilter } from '@stamhoofd/structures';
2
- import { SQLSyncFilterRunner } from '../SQLFilter.js';
3
- export declare function $greaterThanSQLFilterCompiler(filter: StamhoofdFilter): SQLSyncFilterRunner;
4
- //# sourceMappingURL=greater.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$greaterThanSQLFilterCompiler = $greaterThanSQLFilterCompiler;
4
- const structures_1 = require("@stamhoofd/structures");
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
- function $greaterThanSQLFilterCompiler(filter) {
10
- return (originalColumn) => {
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);
14
- const base = new SQLWhere_js_1.SQLWhereEqual(column.expression, SQLWhere_js_1.SQLWhereSign.Greater, (0, SQLExpressions_js_1.scalarToSQLExpression)(value)).setNullable(column.nullable);
15
- return base;
16
- };
17
- }
18
- //# sourceMappingURL=greater.js.map
@@ -1 +0,0 @@
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,4 +0,0 @@
1
- import { StamhoofdFilter } from '@stamhoofd/structures';
2
- import { SQLSyncFilterRunner } from '../SQLFilter.js';
3
- export declare function $inSQLFilterCompiler(filter: StamhoofdFilter): SQLSyncFilterRunner;
4
- //# sourceMappingURL=in.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$inSQLFilterCompiler = $inSQLFilterCompiler;
4
- const simple_errors_1 = require("@simonbackx/simple-errors");
5
- const structures_1 = require("@stamhoofd/structures");
6
- const SQLExpressions_js_1 = require("../../SQLExpressions.js");
7
- const SQLJsonExpressions_js_1 = require("../../SQLJsonExpressions.js");
8
- const SQLWhere_js_1 = require("../../SQLWhere.js");
9
- const SQLFilter_js_1 = require("../SQLFilter.js");
10
- const normalizeCompareValue_js_1 = require("../helpers/normalizeCompareValue.js");
11
- const equals_js_1 = require("./equals.js");
12
- function $inSQLFilterCompiler(filter) {
13
- return (originalColumn) => {
14
- if (!Array.isArray(filter)) {
15
- throw new simple_errors_1.SimpleError({
16
- code: 'invalid_filter',
17
- message: 'Expected array at $in filter',
18
- });
19
- }
20
- if (filter.length > 1000) {
21
- throw new simple_errors_1.SimpleError({
22
- code: 'invalid_filter',
23
- message: 'Too many values in $in filter, maximum is 1000',
24
- human: $t('%1HH', { count: filter.length }),
25
- });
26
- }
27
- if (filter.length === 0) {
28
- // Return always false
29
- return new SQLWhere_js_1.SQLWhereOr([]);
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
- const valuesWithoutNulls = values.filter(val => val !== null);
34
- const hasNull = values.length !== valuesWithoutNulls.length;
35
- if (hasNull) {
36
- // We cannot 'in' check with null. On top of that, null has some special behaviour when used in JSON values (e.g. JSON null vs MySQL null).
37
- return new SQLWhere_js_1.SQLWhereOr([
38
- (0, equals_js_1.$equalsSQLFilterCompiler)(null)(column),
39
- $inSQLFilterCompiler(valuesWithoutNulls)(column),
40
- ]);
41
- }
42
- if (column.type === SQLFilter_js_1.SQLValueType.JSONArray) {
43
- const jsonValues = JSON.stringify(valuesWithoutNulls);
44
- const valuesExpression = (0, SQLExpressions_js_1.scalarToSQLExpression)(jsonValues);
45
- return new SQLJsonExpressions_js_1.SQLJsonOverlaps(column.expression, valuesExpression);
46
- }
47
- const valuesExpression = valuesWithoutNulls.length === 1 ? (0, SQLExpressions_js_1.scalarToSQLExpression)(valuesWithoutNulls[0]) : new SQLExpressions_js_1.SQLArray(valuesWithoutNulls);
48
- return new SQLWhere_js_1.SQLWhereEqual(column.expression, SQLWhere_js_1.SQLWhereSign.Equal, valuesExpression).setNullable(column.nullable);
49
- };
50
- }
51
- //# sourceMappingURL=in.js.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/filters/compilers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./less.js"), exports);
5
- tslib_1.__exportStar(require("./greater.js"), exports);
6
- tslib_1.__exportStar(require("./equals.js"), exports);
7
- tslib_1.__exportStar(require("./in.js"), exports);
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/filters/compilers/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,sDAA4B;AAC5B,kDAAwB"}
@@ -1,4 +0,0 @@
1
- import { StamhoofdFilter } from '@stamhoofd/structures';
2
- import { SQLSyncFilterRunner } from '../SQLFilter.js';
3
- export declare function $lessThanSQLFilterCompiler(filter: StamhoofdFilter): SQLSyncFilterRunner;
4
- //# sourceMappingURL=less.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$lessThanSQLFilterCompiler = $lessThanSQLFilterCompiler;
4
- const structures_1 = require("@stamhoofd/structures");
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
- function $lessThanSQLFilterCompiler(filter) {
10
- return (originalColumn) => {
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);
14
- const base = new SQLWhere_js_1.SQLWhereEqual(column.expression, SQLWhere_js_1.SQLWhereSign.Less, (0, SQLExpressions_js_1.scalarToSQLExpression)(value)).setNullable(column.nullable);
15
- return base;
16
- };
17
- }
18
- //# sourceMappingURL=less.js.map
@@ -1 +0,0 @@
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,4 +0,0 @@
1
- import { SQLCurrentColumn, SQLValueType } from '../SQLFilter.js';
2
- export declare function isJSONColumn({ type }: SQLCurrentColumn): boolean;
3
- export declare function isJSONType(type: SQLValueType): boolean;
4
- //# sourceMappingURL=isJSONColumn.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isJSONColumn = isJSONColumn;
4
- exports.isJSONType = isJSONType;
5
- const SQLFilter_js_1 = require("../SQLFilter.js");
6
- function isJSONColumn({ type }) {
7
- return isJSONType(type);
8
- }
9
- function isJSONType(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.JSONScalar
14
- || type === SQLFilter_js_1.SQLValueType.JSONArray
15
- || type === SQLFilter_js_1.SQLValueType.JSONObject;
16
- }
17
- //# sourceMappingURL=isJSONColumn.js.map
@@ -1 +0,0 @@
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 +0,0 @@
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"}
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeCompareValue = normalizeCompareValue;
4
- const SQLFilter_js_1 = require("../SQLFilter.js");
5
- /**
6
- * Prepares a compare value so we can compare it, given a certain column type.
7
- *
8
- * E.g. if you pass in true - and we are comparing against a mysql boolean column, convert it to 1.
9
- */
10
- function normalizeCompareValue(val, againstType) {
11
- if (againstType === SQLFilter_js_1.SQLValueType.Table) {
12
- throw new Error('Cannot compare at root level');
13
- }
14
- if (againstType === SQLFilter_js_1.SQLValueType.JSONObject) {
15
- if (val === null) {
16
- return null;
17
- }
18
- throw new Error('Cannot compare with a JSON object');
19
- }
20
- if (val instanceof Date) {
21
- if (againstType === SQLFilter_js_1.SQLValueType.Datetime) {
22
- return val;
23
- }
24
- throw new Error('Cannot compare a date with a non-datetime column');
25
- }
26
- if (typeof val === 'string') {
27
- if (againstType === SQLFilter_js_1.SQLValueType.String) {
28
- return val.toLocaleLowerCase();
29
- }
30
- if (againstType === SQLFilter_js_1.SQLValueType.JSONArray) {
31
- // We'll search inside the array
32
- return val.toLocaleLowerCase();
33
- }
34
- // Allowed to compare strings with dates
35
- if (againstType === SQLFilter_js_1.SQLValueType.Datetime) {
36
- // Note, taht if you ever filter dates by string values, you need to work with UTC timezones
37
- return val;
38
- }
39
- throw new Error('Cannot compare a string with a non-string column');
40
- }
41
- if (typeof val === 'boolean') {
42
- if (againstType === SQLFilter_js_1.SQLValueType.JSONBoolean) {
43
- return val;
44
- }
45
- if (againstType === SQLFilter_js_1.SQLValueType.Boolean || againstType === SQLFilter_js_1.SQLValueType.Number) {
46
- return val === true ? 1 : 0;
47
- }
48
- if (againstType === SQLFilter_js_1.SQLValueType.JSONArray) {
49
- // We'll search inside the array
50
- return val;
51
- }
52
- throw new Error('Cannot compare a boolean with a non-boolean column');
53
- }
54
- if (typeof val === 'number') {
55
- if (againstType === SQLFilter_js_1.SQLValueType.JSONBoolean) {
56
- return val === 1 ? true : false;
57
- }
58
- if (againstType === SQLFilter_js_1.SQLValueType.Boolean) {
59
- if (val !== 1 && val !== 0) {
60
- throw new Error('Cannot compare a number with a boolean column');
61
- }
62
- return val;
63
- }
64
- if (againstType === SQLFilter_js_1.SQLValueType.Number || againstType === SQLFilter_js_1.SQLValueType.JSONNumber) {
65
- return val;
66
- }
67
- if (againstType === SQLFilter_js_1.SQLValueType.JSONArray) {
68
- // We'll search inside the array
69
- return val;
70
- }
71
- throw new Error('Cannot compare a number with a non-number column');
72
- }
73
- if (val === null) {
74
- return null;
75
- }
76
- if (typeof val === 'object' && '$' in val) {
77
- const specialValue = val['$'];
78
- switch (specialValue) {
79
- case '$now':
80
- return normalizeCompareValue(new Date(), againstType);
81
- default:
82
- throw new Error('Unsupported magic value ' + specialValue);
83
- }
84
- }
85
- return val;
86
- }
87
- //# sourceMappingURL=normalizeCompareValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalizeCompareValue.js","sourceRoot":"","sources":["../../../../src/filters/helpers/normalizeCompareValue.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=$and.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"$and.test.d.ts","sourceRoot":"","sources":["../../../tests/filters/$and.test.ts"],"names":[],"mappings":""}
@@ -1,216 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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
- describe('$and', () => {
7
- /**
8
- * Tests that should be repeated for all filter types
9
- */
10
- describe('Common checks', () => {
11
- // todo
12
- });
13
- it('If one child is always false, the whole $and is always false', async () => {
14
- const filters = {
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
- };
18
- await (0, index_js_1.test)({
19
- filter: {
20
- name: {
21
- $and: {
22
- $eq: 'John Doe',
23
- $lt: null, // This will always be false
24
- },
25
- },
26
- },
27
- filters,
28
- query: {
29
- query: '',
30
- params: [],
31
- },
32
- });
33
- });
34
- /**
35
- * Regression:
36
- * when using $lte on a nullable field, it sometimes didn't group the OR
37
- * and caused:
38
- * (birthday >= x) AND birthday <= x OR birthday is null
39
- * instead of
40
- * birthday >= x AND (birthday <= x OR birthday is null)
41
- *
42
- * This was caused by incorrect WhereNot.isSingle logic ($lte and $gte uses not $gt and not $lt under the hood)
43
- */
44
- it('Grouping nullable $lte and $gte correctly inside $and', async () => {
45
- const filters = {
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
- };
49
- await (0, index_js_1.test)({
50
- filter: {
51
- birthDay: {
52
- $and: {
53
- $gte: new Date(200),
54
- $lte: new Date(500),
55
- },
56
- },
57
- },
58
- filters,
59
- query: {
60
- query: '`default`.`birthDay` >= ? AND (`default`.`birthDay` <= ? OR `default`.`birthDay` IS NULL)',
61
- params: [new Date(200), new Date(500)],
62
- },
63
- });
64
- });
65
- it('An empty $and is always true', async () => {
66
- const filters = {
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
- };
70
- await (0, index_js_1.test)({
71
- filter: {
72
- $and: {},
73
- },
74
- filters,
75
- query: {
76
- query: 'true',
77
- params: [],
78
- },
79
- });
80
- });
81
- it('If all children are always true, the whole $and is always true', async () => {
82
- const filters = {
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
- };
86
- await (0, index_js_1.test)({
87
- filter: {
88
- name: {
89
- $and: [
90
- {
91
- $gte: null, // This will always be true
92
- },
93
- {
94
- $gte: null, // This will always be true
95
- },
96
- ],
97
- },
98
- },
99
- filters,
100
- query: {
101
- query: 'true',
102
- params: [],
103
- },
104
- });
105
- });
106
- it('Children that are always true are removed from the $and', async () => {
107
- const filters = {
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
- };
111
- await (0, index_js_1.test)({
112
- filter: {
113
- name: {
114
- $and: [
115
- { $eq: 'John Doe' },
116
- { $gte: null },
117
- { $gte: null },
118
- { $and: [] },
119
- { $neq: 'test' },
120
- ],
121
- },
122
- },
123
- filters,
124
- query: {
125
- query: '`default`.`name` = ? AND `default`.`name` != ?',
126
- params: ['john doe', 'test'],
127
- },
128
- });
129
- });
130
- it('Can be used with direct object child', async () => {
131
- const filters = {
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
- };
135
- await (0, index_js_1.test)({
136
- filter: {
137
- name: {
138
- $and: {
139
- $eq: 'John Doe',
140
- $neq: 'Jane Doe',
141
- },
142
- },
143
- },
144
- filters,
145
- query: {
146
- query: '`default`.`name` = ? AND `default`.`name` != ?',
147
- params: ['john doe', 'jane doe'],
148
- },
149
- });
150
- });
151
- it('NOT (A AND B) is simplified to (NOT A or not B)', async () => {
152
- const filters = {
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
- };
157
- await (0, index_js_1.test)({
158
- filter: {
159
- $not: {
160
- name: 'John Doe',
161
- createdAt: new Date(),
162
- },
163
- },
164
- filters,
165
- query: {
166
- query: '`default`.`name` != ? OR `default`.`createdAt` != ?',
167
- params: ['john doe', new Date()],
168
- },
169
- });
170
- });
171
- it('empty $and branches are removed', async () => {
172
- const filters = {
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
- };
176
- await (0, index_js_1.test)({
177
- filter: {
178
- name: 'John Doe',
179
- $and: [
180
- {},
181
- ],
182
- },
183
- filters,
184
- query: {
185
- query: '`default`.`name` = ?',
186
- params: ['john doe'],
187
- },
188
- });
189
- });
190
- it('deep $and branches are cleaned up', async () => {
191
- const filters = {
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
- };
195
- await (0, index_js_1.test)({
196
- filter: {
197
- name: 'John Doe',
198
- $and: [
199
- {
200
- $and: [
201
- {
202
- name: 'Jane Doe',
203
- },
204
- ],
205
- },
206
- ],
207
- },
208
- filters,
209
- query: {
210
- query: '`default`.`name` = ? AND `default`.`name` = ?',
211
- params: ['john doe', 'jane doe'],
212
- },
213
- });
214
- });
215
- });
216
- //# sourceMappingURL=$and.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"$and.test.js","sourceRoot":"","sources":["../../../tests/filters/$and.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=$contains.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"$contains.test.d.ts","sourceRoot":"","sources":["../../../tests/filters/$contains.test.ts"],"names":[],"mappings":""}