@stamhoofd/sql 2.108.0 → 2.109.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 (60) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/SQL.d.ts +6 -3
  6. package/dist/src/SQL.d.ts.map +1 -1
  7. package/dist/src/SQL.js +10 -1
  8. package/dist/src/SQL.js.map +1 -1
  9. package/dist/src/SQLExpressions.d.ts +11 -0
  10. package/dist/src/SQLExpressions.d.ts.map +1 -1
  11. package/dist/src/SQLExpressions.js +33 -1
  12. package/dist/src/SQLExpressions.js.map +1 -1
  13. package/dist/src/SQLJoin.d.ts.map +1 -1
  14. package/dist/src/SQLJoin.js +16 -0
  15. package/dist/src/SQLJoin.js.map +1 -1
  16. package/dist/src/SQLJsonExpressions.d.ts +5 -0
  17. package/dist/src/SQLJsonExpressions.d.ts.map +1 -1
  18. package/dist/src/SQLJsonExpressions.js +15 -1
  19. package/dist/src/SQLJsonExpressions.js.map +1 -1
  20. package/dist/src/SQLSelect.d.ts +11 -0
  21. package/dist/src/SQLSelect.d.ts.map +1 -1
  22. package/dist/src/SQLSelect.js +17 -2
  23. package/dist/src/SQLSelect.js.map +1 -1
  24. package/dist/src/SQLTranslatedStringHelper.d.ts +10 -0
  25. package/dist/src/SQLTranslatedStringHelper.d.ts.map +1 -0
  26. package/dist/src/SQLTranslatedStringHelper.js +37 -0
  27. package/dist/src/SQLTranslatedStringHelper.js.map +1 -0
  28. package/dist/src/filters/SQLSorter.d.ts +4 -4
  29. package/dist/src/filters/SQLSorter.d.ts.map +1 -1
  30. package/dist/tests/filters/$contains.test.js +4 -4
  31. package/dist/tests/filters/$contains.test.js.map +1 -1
  32. package/dist/tests/filters/$eq.test.js +6 -6
  33. package/dist/tests/filters/$eq.test.js.map +1 -1
  34. package/dist/tests/filters/$gt.test.js +4 -4
  35. package/dist/tests/filters/$gt.test.js.map +1 -1
  36. package/dist/tests/filters/$gte.test.js +3 -3
  37. package/dist/tests/filters/$gte.test.js.map +1 -1
  38. package/dist/tests/filters/$in.test.js +2 -2
  39. package/dist/tests/filters/$in.test.js.map +1 -1
  40. package/dist/tests/filters/$lt.test.js +3 -3
  41. package/dist/tests/filters/$lt.test.js.map +1 -1
  42. package/dist/tests/filters/$lte.test.js +3 -3
  43. package/dist/tests/filters/$lte.test.js.map +1 -1
  44. package/dist/tests/filters/SQLTranslatedStringHelper.test.d.ts +2 -0
  45. package/dist/tests/filters/SQLTranslatedStringHelper.test.d.ts.map +1 -0
  46. package/dist/tests/filters/SQLTranslatedStringHelper.test.js +491 -0
  47. package/dist/tests/filters/SQLTranslatedStringHelper.test.js.map +1 -0
  48. package/dist/tests/filters/dot-syntax.test.js +4 -4
  49. package/dist/tests/filters/dot-syntax.test.js.map +1 -1
  50. package/dist/tests/filters/wildcard.test.js +2 -2
  51. package/dist/tests/filters/wildcard.test.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +2 -2
  54. package/src/SQL.ts +16 -4
  55. package/src/SQLExpressions.ts +31 -0
  56. package/src/SQLJoin.ts +17 -0
  57. package/src/SQLJsonExpressions.ts +16 -0
  58. package/src/SQLSelect.ts +23 -2
  59. package/src/SQLTranslatedStringHelper.ts +40 -0
  60. package/src/filters/SQLSorter.ts +4 -4
@@ -0,0 +1,491 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const structures_1 = require("@stamhoofd/structures");
4
+ const SQLFilter_1 = require("../../src/filters/SQLFilter");
5
+ const SQL_1 = require("../../src/SQL");
6
+ const SQLTranslatedStringHelper_1 = require("../../src/SQLTranslatedStringHelper");
7
+ const utils_1 = require("../utils");
8
+ describe('SQLTranslatedStringHelper', () => {
9
+ describe('MySQL behaviour', () => {
10
+ const tableDefinition = {
11
+ settings: {
12
+ type: 'json',
13
+ nullable: true,
14
+ },
15
+ };
16
+ const filters = {
17
+ ...SQLFilter_1.baseSQLFilterCompilers,
18
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
19
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.Dutch),
20
+ type: SQLFilter_1.SQLValueType.String,
21
+ nullable: true,
22
+ }),
23
+ };
24
+ it('Comparing string values is case insensitive', async () => {
25
+ const rows = [
26
+ {
27
+ settings: {
28
+ name: { nl: 'alice', en: 'alice', fr: 'alice' },
29
+ },
30
+ },
31
+ {
32
+ settings: {
33
+ name: { nl: 'Alice', en: 'Alice', fr: 'Alice' },
34
+ },
35
+ },
36
+ {
37
+ settings: {
38
+ name: { nl: 'ALICE', en: 'ALICE', fr: 'ALICE' },
39
+ },
40
+ },
41
+ ];
42
+ await (0, utils_1.testMatch)({
43
+ tableDefinition,
44
+ filters,
45
+ rows,
46
+ doMatch: [
47
+ {
48
+ 'settings:name': 'alice',
49
+ },
50
+ {
51
+ 'settings:name': 'Alice',
52
+ },
53
+ {
54
+ 'settings:name': 'ALICE',
55
+ },
56
+ {
57
+ 'settings:name': 'alICe',
58
+ },
59
+ ],
60
+ doNotMatch: [
61
+ {
62
+ 'settings:name': 'b',
63
+ },
64
+ {
65
+ 'settings:name': 'alic',
66
+ },
67
+ ],
68
+ });
69
+ });
70
+ it('Filter matches both string and TranslatedString value', async () => {
71
+ const rows = [
72
+ {
73
+ settings: {
74
+ name: { nl: 'alice', en: 'alice', fr: 'alice' },
75
+ },
76
+ },
77
+ {
78
+ settings: {
79
+ name: 'alice',
80
+ },
81
+ },
82
+ {
83
+ settings: {
84
+ name: 'ALICE',
85
+ },
86
+ },
87
+ {
88
+ settings: {
89
+ name: 'aliCE',
90
+ },
91
+ },
92
+ ];
93
+ await (0, utils_1.testMatch)({
94
+ tableDefinition,
95
+ filters,
96
+ rows,
97
+ doMatch: [
98
+ {
99
+ 'settings:name': 'alice',
100
+ },
101
+ {
102
+ 'settings:name': 'Alice',
103
+ },
104
+ {
105
+ 'settings:name': 'ALICE',
106
+ },
107
+ {
108
+ 'settings:name': 'alICe',
109
+ },
110
+ ],
111
+ doNotMatch: [
112
+ {
113
+ 'settings:name': 'b',
114
+ },
115
+ {
116
+ 'settings:name': 'alic',
117
+ },
118
+ ],
119
+ });
120
+ });
121
+ it('Filter on gt, gte, lt and lte works', async () => {
122
+ const filters = {
123
+ ...SQLFilter_1.baseSQLFilterCompilers,
124
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
125
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.Dutch),
126
+ type: SQLFilter_1.SQLValueType.String,
127
+ nullable: true,
128
+ }),
129
+ };
130
+ const rows = [
131
+ {
132
+ settings: {
133
+ name: { nl: 'test b', en: 'test c', fr: 'test a' },
134
+ },
135
+ },
136
+ {
137
+ settings: {
138
+ name: 'test b',
139
+ },
140
+ },
141
+ ];
142
+ await (0, utils_1.testMatch)({
143
+ tableDefinition,
144
+ filters,
145
+ rows,
146
+ doMatch: [
147
+ {
148
+ 'settings:name': {
149
+ $lt: 'test c',
150
+ },
151
+ },
152
+ {
153
+ 'settings:name': {
154
+ $gt: 'test a',
155
+ },
156
+ },
157
+ {
158
+ 'settings:name': {
159
+ $gte: 'test b',
160
+ },
161
+ },
162
+ {
163
+ 'settings:name': {
164
+ $lte: 'test b',
165
+ },
166
+ },
167
+ ],
168
+ doNotMatch: [
169
+ {
170
+ 'settings:name': {
171
+ $gt: 'test b',
172
+ },
173
+ },
174
+ {
175
+ 'settings:name': {
176
+ $gt: 'test c',
177
+ },
178
+ },
179
+ {
180
+ 'settings:name': {
181
+ $gte: 'test c',
182
+ },
183
+ },
184
+ {
185
+ 'settings:name': {
186
+ $lt: 'test b',
187
+ },
188
+ },
189
+ {
190
+ 'settings:name': {
191
+ $lt: 'test b',
192
+ },
193
+ },
194
+ {
195
+ 'settings:name': {
196
+ $lt: 'test a',
197
+ },
198
+ },
199
+ {
200
+ 'settings:name': {
201
+ $lte: 'test a',
202
+ },
203
+ },
204
+ ],
205
+ });
206
+ });
207
+ });
208
+ describe('Different languages should select the correct value for comparison', () => {
209
+ const tableDefinition = {
210
+ settings: {
211
+ type: 'json',
212
+ nullable: true,
213
+ },
214
+ };
215
+ it('NL', async () => {
216
+ const filters = {
217
+ ...SQLFilter_1.baseSQLFilterCompilers,
218
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
219
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.Dutch),
220
+ type: SQLFilter_1.SQLValueType.String,
221
+ nullable: true,
222
+ }),
223
+ };
224
+ const rows = [
225
+ {
226
+ settings: {
227
+ name: { nl: 'juist', en: 'fout', fr: 'fout' },
228
+ },
229
+ },
230
+ {
231
+ settings: {
232
+ name: 'juist',
233
+ },
234
+ },
235
+ ];
236
+ await (0, utils_1.testMatch)({
237
+ tableDefinition,
238
+ filters,
239
+ rows,
240
+ doMatch: [
241
+ {
242
+ 'settings:name': 'juist',
243
+ },
244
+ ],
245
+ doNotMatch: [
246
+ {
247
+ 'settings:name': 'fout',
248
+ },
249
+ ],
250
+ });
251
+ });
252
+ it('EN', async () => {
253
+ const filters = {
254
+ ...SQLFilter_1.baseSQLFilterCompilers,
255
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
256
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.English),
257
+ type: SQLFilter_1.SQLValueType.String,
258
+ nullable: true,
259
+ }),
260
+ };
261
+ const rows = [
262
+ {
263
+ settings: {
264
+ name: { nl: 'fout', en: 'juist', fr: 'fout' },
265
+ },
266
+ },
267
+ {
268
+ settings: {
269
+ name: 'juist',
270
+ },
271
+ },
272
+ ];
273
+ await (0, utils_1.testMatch)({
274
+ tableDefinition,
275
+ filters,
276
+ rows,
277
+ doMatch: [
278
+ {
279
+ 'settings:name': 'juist',
280
+ },
281
+ ],
282
+ doNotMatch: [
283
+ {
284
+ 'settings:name': 'fout',
285
+ },
286
+ ],
287
+ });
288
+ });
289
+ it('FR', async () => {
290
+ const filters = {
291
+ ...SQLFilter_1.baseSQLFilterCompilers,
292
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
293
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.French),
294
+ type: SQLFilter_1.SQLValueType.String,
295
+ nullable: true,
296
+ }),
297
+ };
298
+ const rows = [
299
+ {
300
+ settings: {
301
+ name: { nl: 'fout', en: 'fout', fr: 'juist' },
302
+ },
303
+ },
304
+ {
305
+ settings: {
306
+ name: 'juist',
307
+ },
308
+ },
309
+ ];
310
+ await (0, utils_1.testMatch)({
311
+ tableDefinition,
312
+ filters,
313
+ rows,
314
+ doMatch: [
315
+ {
316
+ 'settings:name': 'juist',
317
+ },
318
+ ],
319
+ doNotMatch: [
320
+ {
321
+ 'settings:name': 'fout',
322
+ },
323
+ ],
324
+ });
325
+ });
326
+ });
327
+ describe('Missing language value should select the next language value in order for comparison', () => {
328
+ const tableDefinition = {
329
+ settings: {
330
+ type: 'json',
331
+ nullable: true,
332
+ },
333
+ };
334
+ it('NL', async () => {
335
+ const filters = {
336
+ ...SQLFilter_1.baseSQLFilterCompilers,
337
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
338
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.Dutch),
339
+ type: SQLFilter_1.SQLValueType.String,
340
+ nullable: true,
341
+ }),
342
+ };
343
+ const rows = [
344
+ // first match english
345
+ {
346
+ settings: {
347
+ name: { en: 'juist', fr: 'fout' },
348
+ },
349
+ },
350
+ // next match french
351
+ {
352
+ settings: {
353
+ name: { fr: 'juist' },
354
+ },
355
+ },
356
+ ];
357
+ await (0, utils_1.testMatch)({
358
+ tableDefinition,
359
+ filters,
360
+ rows,
361
+ doMatch: [
362
+ {
363
+ 'settings:name': 'juist',
364
+ },
365
+ ],
366
+ doNotMatch: [
367
+ {
368
+ 'settings:name': 'fout',
369
+ },
370
+ ],
371
+ });
372
+ });
373
+ it('EN', async () => {
374
+ const filters = {
375
+ ...SQLFilter_1.baseSQLFilterCompilers,
376
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
377
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.English),
378
+ type: SQLFilter_1.SQLValueType.String,
379
+ nullable: true,
380
+ }),
381
+ };
382
+ const rows = [
383
+ // first match dutch
384
+ {
385
+ settings: {
386
+ name: { fr: 'fout', nl: 'juist' },
387
+ },
388
+ },
389
+ // next match french
390
+ {
391
+ settings: {
392
+ name: { fr: 'juist' },
393
+ },
394
+ },
395
+ ];
396
+ await (0, utils_1.testMatch)({
397
+ tableDefinition,
398
+ filters,
399
+ rows,
400
+ doMatch: [
401
+ {
402
+ 'settings:name': 'juist',
403
+ },
404
+ ],
405
+ doNotMatch: [
406
+ {
407
+ 'settings:name': 'fout',
408
+ },
409
+ ],
410
+ });
411
+ });
412
+ it('FR', async () => {
413
+ const filters = {
414
+ ...SQLFilter_1.baseSQLFilterCompilers,
415
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
416
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.French),
417
+ type: SQLFilter_1.SQLValueType.String,
418
+ nullable: true,
419
+ }),
420
+ };
421
+ const rows = [
422
+ // first match english
423
+ {
424
+ settings: {
425
+ name: { nl: 'fout', en: 'juist' },
426
+ },
427
+ },
428
+ // next match dutch
429
+ {
430
+ settings: {
431
+ name: { nl: 'juist' },
432
+ },
433
+ },
434
+ ];
435
+ await (0, utils_1.testMatch)({
436
+ tableDefinition,
437
+ filters,
438
+ rows,
439
+ doMatch: [
440
+ {
441
+ 'settings:name': 'juist',
442
+ },
443
+ ],
444
+ doNotMatch: [
445
+ {
446
+ 'settings:name': 'fout',
447
+ },
448
+ ],
449
+ });
450
+ });
451
+ });
452
+ it('Empty json value should not match filter', async () => {
453
+ const tableDefinition = {
454
+ settings: {
455
+ type: 'json',
456
+ nullable: true,
457
+ },
458
+ };
459
+ const filters = {
460
+ ...SQLFilter_1.baseSQLFilterCompilers,
461
+ 'settings:name': (0, SQLFilter_1.createColumnFilter)({
462
+ expression: new SQLTranslatedStringHelper_1.SQLTranslatedStringHelper(SQL_1.SQL.column('settings'), '$.name', () => structures_1.Language.Dutch),
463
+ type: SQLFilter_1.SQLValueType.String,
464
+ nullable: true,
465
+ }),
466
+ };
467
+ const rows = [
468
+ // json value
469
+ {
470
+ settings: {
471
+ name: {},
472
+ },
473
+ },
474
+ ];
475
+ await (0, utils_1.testMatch)({
476
+ tableDefinition,
477
+ filters,
478
+ rows,
479
+ doMatch: [],
480
+ doNotMatch: [
481
+ {
482
+ 'settings:name': '',
483
+ },
484
+ {
485
+ 'settings:name': 'test',
486
+ },
487
+ ],
488
+ });
489
+ });
490
+ });
491
+ //# sourceMappingURL=SQLTranslatedStringHelper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SQLTranslatedStringHelper.test.js","sourceRoot":"","sources":["../../../tests/filters/SQLTranslatedStringHelper.test.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,12 @@ describe('Dot syntax', () => {
10
10
  age: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.column('age'), type: SQLFilter_1.SQLValueType.Number, nullable: false }),
11
11
  settings: {
12
12
  ...SQLFilter_1.baseSQLFilterCompilers,
13
- name: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonValue(SQL_1.SQL.column('settings'), '$.name'), type: SQLFilter_1.SQLValueType.JSONString, nullable: true }),
14
- age: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonValue(SQL_1.SQL.column('settings'), '$.age'), type: SQLFilter_1.SQLValueType.JSONNumber, nullable: true }),
13
+ name: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonExtract(SQL_1.SQL.column('settings'), '$.name'), type: SQLFilter_1.SQLValueType.JSONString, nullable: true }),
14
+ age: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonExtract(SQL_1.SQL.column('settings'), '$.age'), type: SQLFilter_1.SQLValueType.JSONNumber, nullable: true }),
15
15
  dog: {
16
16
  ...SQLFilter_1.baseSQLFilterCompilers,
17
- name: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonValue(SQL_1.SQL.column('settings'), '$.dog.name'), type: SQLFilter_1.SQLValueType.JSONString, nullable: true }),
18
- age: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonValue(SQL_1.SQL.column('settings'), '$.dog.age'), type: SQLFilter_1.SQLValueType.JSONNumber, nullable: true }),
17
+ name: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonExtract(SQL_1.SQL.column('settings'), '$.dog.name'), type: SQLFilter_1.SQLValueType.JSONString, nullable: true }),
18
+ age: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonExtract(SQL_1.SQL.column('settings'), '$.dog.age'), type: SQLFilter_1.SQLValueType.JSONNumber, nullable: true }),
19
19
  },
20
20
  },
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dot-syntax.test.js","sourceRoot":"","sources":["../../../tests/filters/dot-syntax.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dot-syntax.test.js","sourceRoot":"","sources":["../../../tests/filters/dot-syntax.test.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ describe('Wildcards', () => {
10
10
  age: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.column('age'), type: SQLFilter_1.SQLValueType.Number, nullable: false }),
11
11
  settings: {
12
12
  ...SQLFilter_1.baseSQLFilterCompilers,
13
- records: (0, SQLFilter_1.createWildcardColumnFilter)((key) => ({ expression: SQL_1.SQL.jsonValue(SQL_1.SQL.jsonValue(SQL_1.SQL.column('settings'), '$.records'), '$.' + key, true), type: SQLFilter_1.SQLValueType.JSONObject, nullable: true }), (key) => ({
13
+ records: (0, SQLFilter_1.createWildcardColumnFilter)((key) => ({ expression: SQL_1.SQL.jsonExtract(SQL_1.SQL.jsonExtract(SQL_1.SQL.column('settings'), '$.records'), '$.' + key, true), type: SQLFilter_1.SQLValueType.JSONObject, nullable: true }), (key) => ({
14
14
  ...SQLFilter_1.baseSQLFilterCompilers,
15
- name: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonValue(SQL_1.SQL.jsonValue(SQL_1.SQL.jsonValue(SQL_1.SQL.column('settings'), '$.records'), '$.' + key, true), '$.name'), type: SQLFilter_1.SQLValueType.JSONString, nullable: true }),
15
+ name: (0, SQLFilter_1.createColumnFilter)({ expression: SQL_1.SQL.jsonExtract(SQL_1.SQL.jsonExtract(SQL_1.SQL.jsonExtract(SQL_1.SQL.column('settings'), '$.records'), '$.' + key, true), '$.name'), type: SQLFilter_1.SQLValueType.JSONString, nullable: true }),
16
16
  })),
17
17
  },
18
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wildcard.test.js","sourceRoot":"","sources":["../../../tests/filters/wildcard.test.ts"],"names":[],"mappings":";;AAAA,2DAAyJ;AACzJ,uCAAoC;AACpC,oCAAgC;AAEhC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,MAAM,OAAO,GAAyB;QAClC,GAAG,kCAAsB;QACzB,IAAI,EAAE,IAAA,8BAAkB,EAAC,EAAE,UAAU,EAAE,SAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvG,GAAG,EAAE,IAAA,8BAAkB,EAAC,EAAE,UAAU,EAAE,SAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACtG,QAAQ,EAAE;YACN,GAAG,kCAAsB;YACzB,OAAO,EAAE,IAAA,sCAA0B,EAC/B,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,SAAG,CAAC,SAAS,CAAC,SAAG,CAAC,SAAS,CAAC,SAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EACrK,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;gBACd,GAAG,kCAAsB;gBACzB,IAAI,EAAE,IAAA,8BAAkB,EAAC,EAAE,UAAU,EAAE,SAAG,CAAC,SAAS,CAAC,SAAG,CAAC,SAAS,CAAC,SAAG,CAAC,SAAS,CAAC,SAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aACxM,CAAC,CACL;SACJ;KACJ,CAAC;IAEF,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,IAAA,YAAI,EAAC;YACP,MAAM,EAAE;gBACJ;oBACI,QAAQ,EAAE;wBACN,OAAO,EAAE;4BACL,CAAC,EAAE;gCACC,IAAI,EAAE;oCACF,GAAG,EAAE,KAAK;iCACb;6BACJ;yBACJ;qBACJ;iBACJ;aACJ;YACD,OAAO;YACP,KAAK,EAAE;gBACH,KAAK,EAAE,+IAA+I;gBACtJ,MAAM,EAAE;oBACJ,KAAK;oBACL,KAAK;iBACR;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,IAAA,YAAI,EAAC;YACP,MAAM,EAAE;gBACJ;oBACI,QAAQ,EAAE;wBACN,OAAO,EAAE;4BACL,CAAC,EAAE;gCACC,IAAI,EAAE,IAAI;6BACb;yBACJ;qBACJ;iBACJ;aACJ;YACD,OAAO;YACP,KAAK,EAAE;gBACH,KAAK,EAAE,yFAAyF;gBAChG,MAAM,EAAE;oBACJ,KAAK;iBACR;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"wildcard.test.js","sourceRoot":"","sources":["../../../tests/filters/wildcard.test.ts"],"names":[],"mappings":";;AAAA,2DAAyJ;AACzJ,uCAAoC;AACpC,oCAAgC;AAEhC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,MAAM,OAAO,GAAyB;QAClC,GAAG,kCAAsB;QACzB,IAAI,EAAE,IAAA,8BAAkB,EAAC,EAAE,UAAU,EAAE,SAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvG,GAAG,EAAE,IAAA,8BAAkB,EAAC,EAAE,UAAU,EAAE,SAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACtG,QAAQ,EAAE;YACN,GAAG,kCAAsB;YACzB,OAAO,EAAE,IAAA,sCAA0B,EAC/B,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,SAAG,CAAC,WAAW,CAAC,SAAG,CAAC,WAAW,CAAC,SAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EACzK,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;gBACd,GAAG,kCAAsB;gBACzB,IAAI,EAAE,IAAA,8BAAkB,EAAC,EAAE,UAAU,EAAE,SAAG,CAAC,WAAW,CAAC,SAAG,CAAC,WAAW,CAAC,SAAG,CAAC,WAAW,CAAC,SAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,wBAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aAC9M,CAAC,CACL;SACJ;KACJ,CAAC;IAEF,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,IAAA,YAAI,EAAC;YACP,MAAM,EAAE;gBACJ;oBACI,QAAQ,EAAE;wBACN,OAAO,EAAE;4BACL,CAAC,EAAE;gCACC,IAAI,EAAE;oCACF,GAAG,EAAE,KAAK;iCACb;6BACJ;yBACJ;qBACJ;iBACJ;aACJ;YACD,OAAO;YACP,KAAK,EAAE;gBACH,KAAK,EAAE,+IAA+I;gBACtJ,MAAM,EAAE;oBACJ,KAAK;oBACL,KAAK;iBACR;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,IAAA,YAAI,EAAC;YACP,MAAM,EAAE;gBACJ;oBACI,QAAQ,EAAE;wBACN,OAAO,EAAE;4BACL,CAAC,EAAE;gCACC,IAAI,EAAE,IAAI;6BACb;yBACJ;qBACJ;iBACJ;aACJ;YACD,OAAO;YACP,KAAK,EAAE;gBACH,KAAK,EAAE,yFAAyF;gBAChG,MAAM,EAAE;oBACJ,KAAK;iBACR;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"root":["../src/queryablemodel.ts","../src/sql.ts","../src/sqldelete.ts","../src/sqlexpression.ts","../src/sqlexpressions.ts","../src/sqlinsert.ts","../src/sqljoin.ts","../src/sqljsonexpressions.ts","../src/sqlorderby.ts","../src/sqlselect.ts","../src/sqlupdate.ts","../src/sqlwhere.ts","../src/filters/sqlfilter.ts","../src/filters/sqlsorter.ts","../src/filters/compilers/contains.ts","../src/filters/compilers/equals.ts","../src/filters/compilers/greater.ts","../src/filters/compilers/in.ts","../src/filters/compilers/index.ts","../src/filters/compilers/less.ts","../src/filters/helpers/isjsoncolumn.ts","../src/filters/helpers/normalizecomparevalue.ts","../tests/jest.global.setup.ts","../tests/jest.setup.ts","../tests/filters/$and.test.ts","../tests/filters/$contains.test.ts","../tests/filters/$eq.test.ts","../tests/filters/$gt.test.ts","../tests/filters/$gte.test.ts","../tests/filters/$in.test.ts","../tests/filters/$lt.test.ts","../tests/filters/$lte.test.ts","../tests/filters/$neq.test.ts","../tests/filters/$not.test.ts","../tests/filters/$or.test.ts","../tests/filters/dot-syntax.test.ts","../tests/filters/exists.test.ts","../tests/filters/joined-relations.test.ts","../tests/filters/special-cases.test.ts","../tests/filters/wildcard.test.ts","../tests/utils/index.ts","../index.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
1
+ {"root":["../src/queryablemodel.ts","../src/sql.ts","../src/sqldelete.ts","../src/sqlexpression.ts","../src/sqlexpressions.ts","../src/sqlinsert.ts","../src/sqljoin.ts","../src/sqljsonexpressions.ts","../src/sqlorderby.ts","../src/sqlselect.ts","../src/sqltranslatedstringhelper.ts","../src/sqlupdate.ts","../src/sqlwhere.ts","../src/filters/sqlfilter.ts","../src/filters/sqlsorter.ts","../src/filters/compilers/contains.ts","../src/filters/compilers/equals.ts","../src/filters/compilers/greater.ts","../src/filters/compilers/in.ts","../src/filters/compilers/index.ts","../src/filters/compilers/less.ts","../src/filters/helpers/isjsoncolumn.ts","../src/filters/helpers/normalizecomparevalue.ts","../tests/jest.global.setup.ts","../tests/jest.setup.ts","../tests/filters/$and.test.ts","../tests/filters/$contains.test.ts","../tests/filters/$eq.test.ts","../tests/filters/$gt.test.ts","../tests/filters/$gte.test.ts","../tests/filters/$in.test.ts","../tests/filters/$lt.test.ts","../tests/filters/$lte.test.ts","../tests/filters/$neq.test.ts","../tests/filters/$not.test.ts","../tests/filters/$or.test.ts","../tests/filters/sqltranslatedstringhelper.test.ts","../tests/filters/dot-syntax.test.ts","../tests/filters/exists.test.ts","../tests/filters/joined-relations.test.ts","../tests/filters/special-cases.test.ts","../tests/filters/wildcard.test.ts","../tests/utils/index.ts","../index.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/sql",
3
- "version": "2.108.0",
3
+ "version": "2.109.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -16,5 +16,5 @@
16
16
  "publishConfig": {
17
17
  "access": "public"
18
18
  },
19
- "gitHead": "c8dd24207c94a4c077448545cdfcb94369a7ef47"
19
+ "gitHead": "9a987df4a751f24aabd56e1480dfb9239fb8e019"
20
20
  }
package/src/SQL.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { SQLResultNamespacedRow } from '@simonbackx/simple-database';
2
2
  import { SQLDelete } from './SQLDelete';
3
- import { isSQLExpression, SQLExpression, SQLNamedExpression } from './SQLExpression';
4
- import { SQLAssignment, SQLColumnExpression, SQLColumnExpressionParams, SQLIf, SQLJSONTableExpression, SQLParentNamespace, SQLSafeValue, SQLScalar, SQLScalarValue, SQLTableExpression, SQLWildcardSelectExpression } from './SQLExpressions';
3
+ import { isSQLExpression, SQLExpression } from './SQLExpression';
4
+ import { SQLAssignment, SQLCoalesce, SQLColumnExpression, SQLColumnExpressionParams, SQLIf, SQLJSONTableExpression, SQLParentNamespace, SQLSafeValue, SQLScalar, SQLScalarValue, SQLTableExpression, SQLWildcardSelectExpression } from './SQLExpressions';
5
5
  import { SQLInsert } from './SQLInsert';
6
6
  import { SQLJoin, SQLJoinType } from './SQLJoin';
7
- import { SQLJsonExtract, SQLJsonKeys, SQLJsonLength, SQLJsonUnquote, SQLLpad } from './SQLJsonExpressions';
7
+ import { SQLJsonExtract, SQLJsonKeys, SQLJsonLength, SQLJsonType, SQLJsonUnquote, SQLJsonValue, SQLJsonValueType, SQLLpad } from './SQLJsonExpressions';
8
8
  import { parseTable, SQLSelect } from './SQLSelect';
9
9
  import { SQLUpdate } from './SQLUpdate';
10
10
  import { ParseWhereArguments, SQLEmptyWhere, SQLWhere } from './SQLWhere';
@@ -22,14 +22,22 @@ class StaticSQL {
22
22
  return new SQLColumnExpression(SQLParentNamespace, column);
23
23
  }
24
24
 
25
- jsonValue(column: SQLExpression, path: string, asScalar = false): SQLJsonExtract {
25
+ jsonExtract(column: SQLExpression, path: string, asScalar = false): SQLJsonExtract {
26
26
  return new SQLJsonExtract(column, asScalar ? new SQLScalar(path) : new SQLSafeValue(path));
27
27
  }
28
28
 
29
+ jsonValue(column: SQLExpression, path: string, type?: SQLJsonValueType, asScalar = false): SQLJsonExtract {
30
+ return new SQLJsonValue(column, type, asScalar ? new SQLScalar(path) : new SQLSafeValue(path));
31
+ }
32
+
29
33
  jsonKeys(column: SQLExpression): SQLJsonKeys {
30
34
  return new SQLJsonKeys(column);
31
35
  }
32
36
 
37
+ jsonType(column: SQLExpression): SQLJsonType {
38
+ return new SQLJsonType(column);
39
+ }
40
+
33
41
  lpad(column: SQLExpression, length: number, value: string): SQLLpad {
34
42
  return new SQLLpad(column, new SQLSafeValue(length), new SQLSafeValue(value));
35
43
  }
@@ -100,6 +108,10 @@ class StaticSQL {
100
108
  if(...args: ConstructorParameters<typeof SQLIf>): SQLIf {
101
109
  return new SQLIf(...args);
102
110
  }
111
+
112
+ coalesce(...args: ConstructorParameters<typeof SQLCoalesce>): SQLCoalesce {
113
+ return new SQLCoalesce(...args);
114
+ }
103
115
  }
104
116
 
105
117
  export const SQL = new StaticSQL();