remult 3.4.0-next.9 → 3.4.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.
@@ -74,43 +74,18 @@ var KnexDataProvider = /** @class */ (function () {
74
74
  throw 'the data provider is not an KnexDataProvider';
75
75
  return r.knex;
76
76
  };
77
+ Object.defineProperty(KnexDataProvider.prototype, "jsonColumnStorage", {
78
+ get: function () {
79
+ if (!supportsJsonLoadingAndSaving(this.knex))
80
+ return 'text';
81
+ if (this.knex.client.config.client === 'mysql2')
82
+ return 'textOnWrite';
83
+ return 'native';
84
+ },
85
+ enumerable: false,
86
+ configurable: true
87
+ });
77
88
  KnexDataProvider.prototype.getEntityDataProvider = function (entity) {
78
- var e_1, _a, e_2, _b;
79
- if (!supportsJsonLoadingAndSaving(this.knex))
80
- try {
81
- for (var _c = tslib_1.__values(entity.fields.toArray()), _d = _c.next(); !_d.done; _d = _c.next()) {
82
- var f = _d.value;
83
- if (f.valueConverter.fieldTypeInDb === 'json') {
84
- //@ts-ignore
85
- f.valueConverter = tslib_1.__assign(tslib_1.__assign({}, f.valueConverter), { toDb: valueConverters_js_1.ValueConverters.JsonString.toDb, fromDb: valueConverters_js_1.ValueConverters.JsonString.fromDb });
86
- }
87
- }
88
- }
89
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
90
- finally {
91
- try {
92
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
93
- }
94
- finally { if (e_1) throw e_1.error; }
95
- }
96
- else if (this.knex.client.config.client === 'mysql2') {
97
- try {
98
- for (var _e = tslib_1.__values(entity.fields.toArray()), _f = _e.next(); !_f.done; _f = _e.next()) {
99
- var f = _f.value;
100
- if (f.valueConverter.fieldTypeInDb === 'json') {
101
- //@ts-ignore
102
- f.valueConverter = tslib_1.__assign(tslib_1.__assign({}, f.valueConverter), { toDb: valueConverters_js_1.ValueConverters.JsonString.toDb });
103
- }
104
- }
105
- }
106
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
107
- finally {
108
- try {
109
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
110
- }
111
- finally { if (e_2) throw e_2.error; }
112
- }
113
- }
114
89
  return new KnexEntityDataProvider(entity, this.knex, this.wrapIdentifier, this);
115
90
  };
116
91
  KnexDataProvider.prototype.transaction = function (action) {
@@ -162,7 +137,7 @@ var KnexDataProvider = /** @class */ (function () {
162
137
  _a = FilterConsumerBridgeToKnexRequest.bind;
163
138
  return [4 /*yield*/, (0, filter_consumer_bridge_to_sql_request_js_1.dbNamesOfWithForceSqlExpression)(repo.metadata, wrapIdentifier)];
164
139
  case 1:
165
- b = new (_a.apply(FilterConsumerBridgeToKnexRequest, [void 0, _b.sent(), wrapIdentifier !== null && wrapIdentifier !== void 0 ? wrapIdentifier : wrapIdentifier]))();
140
+ b = new (_a.apply(FilterConsumerBridgeToKnexRequest, [void 0, _b.sent(), wrapIdentifier !== null && wrapIdentifier !== void 0 ? wrapIdentifier : wrapIdentifier, (0, sql_database_js_1.jsonColumnStorageOf)(repo)]))();
166
141
  b._addWhere = false;
167
142
  return [4 /*yield*/, (0, repository_internals_js_1.getRepositoryInternals)(repo)._translateWhereToFilter(condition)];
168
143
  case 2: return [4 /*yield*/, (_b.sent()).__applyToConsumer(b)];
@@ -218,7 +193,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
218
193
  return ((_a = _this.knex.client.config.client) === null || _a === void 0 ? void 0 : _a.includes('mssql'))
219
194
  ? ' offset ' + offset + ' rows fetch next ' + limit + ' rows only'
220
195
  : ' limit ' + limit + ' offset ' + offset;
221
- }]))];
196
+ },
197
+ this.dp.jsonColumnStorage]))];
222
198
  }
223
199
  });
224
200
  });
@@ -236,7 +212,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
236
212
  case 0: return [4 /*yield*/, this.init()];
237
213
  case 1:
238
214
  e = _a.sent();
239
- br = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
215
+ br = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier, this.dp.jsonColumnStorage);
240
216
  where.__applyToConsumer(br);
241
217
  return [4 /*yield*/, br.resolveWhere()];
242
218
  case 2:
@@ -261,7 +237,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
261
237
  KnexEntityDataProvider.prototype.find = function (options) {
262
238
  return tslib_1.__awaiter(this, void 0, void 0, function () {
263
239
  var e, cols, colKeys, _a, _b, x, name_1, query, br, r_1, r;
264
- var e_3, _c;
240
+ var e_1, _c;
241
+ var _this = this;
265
242
  return tslib_1.__generator(this, function (_d) {
266
243
  switch (_d.label) {
267
244
  case 0: return [4 /*yield*/, this.init()];
@@ -285,16 +262,16 @@ var KnexEntityDataProvider = /** @class */ (function () {
285
262
  }
286
263
  }
287
264
  }
288
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
265
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
289
266
  finally {
290
267
  try {
291
268
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
292
269
  }
293
- finally { if (e_3) throw e_3.error; }
270
+ finally { if (e_1) throw e_1.error; }
294
271
  }
295
272
  query = this.getEntityFrom(e).select(cols);
296
273
  if (!(options === null || options === void 0 ? void 0 : options.where)) return [3 /*break*/, 3];
297
- br = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
274
+ br = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier, this.dp.jsonColumnStorage);
298
275
  options.where.__applyToConsumer(br);
299
276
  return [4 /*yield*/, br.resolveWhere()];
300
277
  case 2:
@@ -325,7 +302,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
325
302
  for (var m in y) {
326
303
  var field = colKeys[i++];
327
304
  try {
328
- result[field.key] = field.valueConverter.fromDb(y[m]);
305
+ result[field.key] = (0, valueConverters_js_1.fromDbColumn)(field, y[m], _this.dp.jsonColumnStorage);
329
306
  }
330
307
  catch (err) {
331
308
  throw new Error('Failed to load from db:' + field.key + '\r\n' + err);
@@ -362,14 +339,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
362
339
  };
363
340
  KnexEntityDataProvider.prototype.update = function (id, data, options) {
364
341
  return tslib_1.__awaiter(this, void 0, void 0, function () {
365
- var e, f, updateObject, _a, _b, x, v, key, e_4_1, where;
366
- var e_4, _c;
342
+ var e, f, updateObject, _a, _b, x, v, key, e_2_1, where;
343
+ var e_2, _c;
367
344
  return tslib_1.__generator(this, function (_d) {
368
345
  switch (_d.label) {
369
346
  case 0: return [4 /*yield*/, this.init()];
370
347
  case 1:
371
348
  e = _d.sent();
372
- f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
349
+ f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier, this.dp.jsonColumnStorage);
373
350
  filter_interfaces_js_1.Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(f);
374
351
  updateObject = {};
375
352
  _d.label = 2;
@@ -384,7 +361,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
384
361
  return [3 /*break*/, 6];
385
362
  case 4:
386
363
  if (!(data[x.key] !== undefined)) return [3 /*break*/, 6];
387
- v = translateValueAndHandleArrayAndHandleArray(x, data[x.key]);
364
+ v = translateValueAndHandleArrayAndHandleArray(x, data[x.key], this.dp.jsonColumnStorage);
388
365
  if (!(v !== undefined)) return [3 /*break*/, 6];
389
366
  return [4 /*yield*/, e.$dbNameOf(x)];
390
367
  case 5:
@@ -396,14 +373,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
396
373
  return [3 /*break*/, 3];
397
374
  case 7: return [3 /*break*/, 10];
398
375
  case 8:
399
- e_4_1 = _d.sent();
400
- e_4 = { error: e_4_1 };
376
+ e_2_1 = _d.sent();
377
+ e_2 = { error: e_2_1 };
401
378
  return [3 /*break*/, 10];
402
379
  case 9:
403
380
  try {
404
381
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
405
382
  }
406
- finally { if (e_4) throw e_4.error; }
383
+ finally { if (e_2) throw e_2.error; }
407
384
  return [7 /*endfinally*/];
408
385
  case 10: return [4 /*yield*/, f.resolveWhere()];
409
386
  case 11:
@@ -432,7 +409,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
432
409
  return [4 /*yield*/, this.init()];
433
410
  case 1:
434
411
  e = _b.sent();
435
- f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier);
412
+ f = new FilterConsumerBridgeToKnexRequest(e, this.rawSqlWrapIdentifier, this.dp.jsonColumnStorage);
436
413
  filter_interfaces_js_1.Filter.fromEntityFilter(this.entity, (_a = this.entity.idMetadata).getIdFilter.apply(_a, tslib_1.__spreadArray([], tslib_1.__read(ids), false))).__applyToConsumer(f);
437
414
  return [4 /*yield*/, f.resolveWhere()];
438
415
  case 2:
@@ -449,8 +426,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
449
426
  };
450
427
  KnexEntityDataProvider.prototype.insert = function (data, options) {
451
428
  return tslib_1.__awaiter(this, void 0, void 0, function () {
452
- var result_1, data_1, data_1_1, row, _a, _b, e_5_1, e, batches, result, batches_1, batches_1_1, batch, _c, _d, _e, _f, e_6_1;
453
- var e_5, _g, e_6, _h;
429
+ var result_1, data_1, data_1_1, row, _a, _b, e_3_1, e, batches, result, batches_1, batches_1_1, batch, _c, _d, _e, _f, e_4_1;
430
+ var e_3, _g, e_4, _h;
454
431
  var _this = this;
455
432
  return tslib_1.__generator(this, function (_j) {
456
433
  switch (_j.label) {
@@ -479,20 +456,22 @@ var KnexEntityDataProvider = /** @class */ (function () {
479
456
  return [3 /*break*/, 2];
480
457
  case 5: return [3 /*break*/, 8];
481
458
  case 6:
482
- e_5_1 = _j.sent();
483
- e_5 = { error: e_5_1 };
459
+ e_3_1 = _j.sent();
460
+ e_3 = { error: e_3_1 };
484
461
  return [3 /*break*/, 8];
485
462
  case 7:
486
463
  try {
487
464
  if (data_1_1 && !data_1_1.done && (_g = data_1.return)) _g.call(data_1);
488
465
  }
489
- finally { if (e_5) throw e_5.error; }
466
+ finally { if (e_3) throw e_3.error; }
490
467
  return [7 /*endfinally*/];
491
468
  case 8: return [2 /*return*/, result_1];
492
469
  case 9: return [4 /*yield*/, this.init()];
493
470
  case 10:
494
471
  e = _j.sent();
495
- batches = splitByMaxParameters(data, function (row) { return countKnexInsertBindParameters(_this.entity, e, row); }, knexMaxParametersInOneSqlStatement(this.knex));
472
+ batches = splitByMaxParameters(data, function (row) {
473
+ return countKnexInsertBindParameters(_this.entity, e, row, _this.dp.jsonColumnStorage);
474
+ }, knexMaxParametersInOneSqlStatement(this.knex));
496
475
  result = [];
497
476
  _j.label = 11;
498
477
  case 11:
@@ -514,14 +493,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
514
493
  return [3 /*break*/, 12];
515
494
  case 15: return [3 /*break*/, 18];
516
495
  case 16:
517
- e_6_1 = _j.sent();
518
- e_6 = { error: e_6_1 };
496
+ e_4_1 = _j.sent();
497
+ e_4 = { error: e_4_1 };
519
498
  return [3 /*break*/, 18];
520
499
  case 17:
521
500
  try {
522
501
  if (batches_1_1 && !batches_1_1.done && (_h = batches_1.return)) _h.call(batches_1);
523
502
  }
524
- finally { if (e_6) throw e_6.error; }
503
+ finally { if (e_4) throw e_4.error; }
525
504
  return [7 /*endfinally*/];
526
505
  case 18: return [2 /*return*/, result];
527
506
  }
@@ -530,8 +509,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
530
509
  };
531
510
  KnexEntityDataProvider.prototype.insertBatch = function (batch, e, options) {
532
511
  return tslib_1.__awaiter(this, void 0, void 0, function () {
533
- var cols, _loop_1, _a, _b, x, insertObjects, batch_1, batch_1_1, row, insertObject, cols_1, cols_1_1, x, v, key, e_7_1, e_8_1, insert, wantRows, result, ids;
534
- var e_9, _c, e_8, _d, e_7, _e;
512
+ var cols, _loop_1, _a, _b, x, insertObjects, batch_1, batch_1_1, row, insertObject, cols_1, cols_1_1, x, v, key, e_5_1, e_6_1, insert, wantRows, result, ids;
513
+ var e_7, _c, e_6, _d, e_5, _e;
535
514
  var _this = this;
536
515
  return tslib_1.__generator(this, function (_f) {
537
516
  switch (_f.label) {
@@ -541,8 +520,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
541
520
  if ((0, filter_consumer_bridge_to_sql_request_js_2.isDbReadonly)(x, e))
542
521
  return "continue";
543
522
  if (batch.some(function (row) {
544
- return translateValueAndHandleArrayAndHandleArray(x, row[x.key]) !=
545
- undefined;
523
+ return translateValueAndHandleArrayAndHandleArray(x, row[x.key], _this.dp.jsonColumnStorage) != undefined;
546
524
  }))
547
525
  cols.push(x);
548
526
  };
@@ -552,12 +530,12 @@ var KnexEntityDataProvider = /** @class */ (function () {
552
530
  _loop_1(x);
553
531
  }
554
532
  }
555
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
533
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
556
534
  finally {
557
535
  try {
558
536
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
559
537
  }
560
- finally { if (e_9) throw e_9.error; }
538
+ finally { if (e_7) throw e_7.error; }
561
539
  }
562
540
  insertObjects = [];
563
541
  _f.label = 1;
@@ -572,12 +550,12 @@ var KnexEntityDataProvider = /** @class */ (function () {
572
550
  _f.label = 3;
573
551
  case 3:
574
552
  _f.trys.push([3, 8, 9, 10]);
575
- cols_1 = (e_7 = void 0, tslib_1.__values(cols)), cols_1_1 = cols_1.next();
553
+ cols_1 = (e_5 = void 0, tslib_1.__values(cols)), cols_1_1 = cols_1.next();
576
554
  _f.label = 4;
577
555
  case 4:
578
556
  if (!!cols_1_1.done) return [3 /*break*/, 7];
579
557
  x = cols_1_1.value;
580
- v = translateValueAndHandleArrayAndHandleArray(x, row[x.key]);
558
+ v = translateValueAndHandleArrayAndHandleArray(x, row[x.key], this.dp.jsonColumnStorage);
581
559
  return [4 /*yield*/, e.$dbNameOf(x)];
582
560
  case 5:
583
561
  key = _f.sent();
@@ -593,14 +571,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
593
571
  return [3 /*break*/, 4];
594
572
  case 7: return [3 /*break*/, 10];
595
573
  case 8:
596
- e_7_1 = _f.sent();
597
- e_7 = { error: e_7_1 };
574
+ e_5_1 = _f.sent();
575
+ e_5 = { error: e_5_1 };
598
576
  return [3 /*break*/, 10];
599
577
  case 9:
600
578
  try {
601
579
  if (cols_1_1 && !cols_1_1.done && (_e = cols_1.return)) _e.call(cols_1);
602
580
  }
603
- finally { if (e_7) throw e_7.error; }
581
+ finally { if (e_5) throw e_5.error; }
604
582
  return [7 /*endfinally*/];
605
583
  case 10:
606
584
  insertObjects.push(insertObject);
@@ -610,14 +588,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
610
588
  return [3 /*break*/, 2];
611
589
  case 12: return [3 /*break*/, 15];
612
590
  case 13:
613
- e_8_1 = _f.sent();
614
- e_8 = { error: e_8_1 };
591
+ e_6_1 = _f.sent();
592
+ e_6 = { error: e_6_1 };
615
593
  return [3 /*break*/, 15];
616
594
  case 14:
617
595
  try {
618
596
  if (batch_1_1 && !batch_1_1.done && (_d = batch_1.return)) _d.call(batch_1);
619
597
  }
620
- finally { if (e_8) throw e_8.error; }
598
+ finally { if (e_6) throw e_6.error; }
621
599
  return [7 /*endfinally*/];
622
600
  case 15:
623
601
  insert = this.getEntityFrom(e).insert(insertObjects);
@@ -627,9 +605,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
627
605
  case 16:
628
606
  result = _f.sent();
629
607
  ids = result.map(function (r) {
630
- return r && typeof r === 'object'
631
- ? r[_this.entity.idMetadata.field.dbName]
632
- : r;
608
+ return r && typeof r === 'object' ? r[_this.entity.idMetadata.field.dbName] : r;
633
609
  });
634
610
  return [2 /*return*/, this.loadRowsByIds(ids)];
635
611
  case 17: return [4 /*yield*/, insert];
@@ -668,8 +644,8 @@ var KnexEntityDataProvider = /** @class */ (function () {
668
644
  //@internal
669
645
  KnexEntityDataProvider.prototype.insertOne = function (data, options) {
670
646
  return tslib_1.__awaiter(this, void 0, void 0, function () {
671
- var e, insertObject, _a, _b, x, v, key, e_10_1, insert, newId_1, result, result;
672
- var e_10, _c;
647
+ var e, insertObject, _a, _b, x, v, key, e_8_1, insert, newId_1, result, result;
648
+ var e_8, _c;
673
649
  var _this = this;
674
650
  return tslib_1.__generator(this, function (_d) {
675
651
  switch (_d.label) {
@@ -688,7 +664,7 @@ var KnexEntityDataProvider = /** @class */ (function () {
688
664
  if (!(0, filter_consumer_bridge_to_sql_request_js_2.isDbReadonly)(x, e)) return [3 /*break*/, 4];
689
665
  return [3 /*break*/, 6];
690
666
  case 4:
691
- v = translateValueAndHandleArrayAndHandleArray(x, data[x.key]);
667
+ v = translateValueAndHandleArrayAndHandleArray(x, data[x.key], this.dp.jsonColumnStorage);
692
668
  if (!(v != undefined)) return [3 /*break*/, 6];
693
669
  return [4 /*yield*/, e.$dbNameOf(x)];
694
670
  case 5:
@@ -700,14 +676,14 @@ var KnexEntityDataProvider = /** @class */ (function () {
700
676
  return [3 /*break*/, 3];
701
677
  case 7: return [3 /*break*/, 10];
702
678
  case 8:
703
- e_10_1 = _d.sent();
704
- e_10 = { error: e_10_1 };
679
+ e_8_1 = _d.sent();
680
+ e_8 = { error: e_8_1 };
705
681
  return [3 /*break*/, 10];
706
682
  case 9:
707
683
  try {
708
684
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
709
685
  }
710
- finally { if (e_10) throw e_10.error; }
686
+ finally { if (e_8) throw e_8.error; }
711
687
  return [7 /*endfinally*/];
712
688
  case 10:
713
689
  insert = this.getEntityFrom(e).insert(insertObject);
@@ -748,17 +724,18 @@ var KnexEntityDataProvider = /** @class */ (function () {
748
724
  return KnexEntityDataProvider;
749
725
  }());
750
726
  var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
751
- function FilterConsumerBridgeToKnexRequest(innerNameProvider, rawSqlWrapIdentifier) {
727
+ function FilterConsumerBridgeToKnexRequest(innerNameProvider, rawSqlWrapIdentifier, jsonColumnStorage) {
752
728
  this.innerNameProvider = innerNameProvider;
753
729
  this.rawSqlWrapIdentifier = rawSqlWrapIdentifier;
730
+ this.jsonColumnStorage = jsonColumnStorage;
754
731
  this._addWhere = true;
755
732
  this.promises = [];
756
733
  this.result = [];
757
734
  }
758
735
  FilterConsumerBridgeToKnexRequest.prototype.resolveWhere = function () {
759
736
  return tslib_1.__awaiter(this, void 0, void 0, function () {
760
- var p, p_1, p_1_1, pr, e_11_1;
761
- var e_11, _a;
737
+ var p, p_1, p_1_1, pr, e_9_1;
738
+ var e_9, _a;
762
739
  return tslib_1.__generator(this, function (_b) {
763
740
  switch (_b.label) {
764
741
  case 0:
@@ -768,7 +745,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
768
745
  _b.label = 1;
769
746
  case 1:
770
747
  _b.trys.push([1, 6, 7, 8]);
771
- p_1 = (e_11 = void 0, tslib_1.__values(p)), p_1_1 = p_1.next();
748
+ p_1 = (e_9 = void 0, tslib_1.__values(p)), p_1_1 = p_1.next();
772
749
  _b.label = 2;
773
750
  case 2:
774
751
  if (!!p_1_1.done) return [3 /*break*/, 5];
@@ -782,14 +759,14 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
782
759
  return [3 /*break*/, 2];
783
760
  case 5: return [3 /*break*/, 8];
784
761
  case 6:
785
- e_11_1 = _b.sent();
786
- e_11 = { error: e_11_1 };
762
+ e_9_1 = _b.sent();
763
+ e_9 = { error: e_9_1 };
787
764
  return [3 /*break*/, 8];
788
765
  case 7:
789
766
  try {
790
767
  if (p_1_1 && !p_1_1.done && (_a = p_1.return)) _a.call(p_1);
791
768
  }
792
- finally { if (e_11) throw e_11.error; }
769
+ finally { if (e_9) throw e_9.error; }
793
770
  return [7 /*endfinally*/];
794
771
  case 8: return [3 /*break*/, 0];
795
772
  case 9: return [2 /*return*/, this.result];
@@ -803,8 +780,8 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
803
780
  FilterConsumerBridgeToKnexRequest.prototype.or = function (orElements) {
804
781
  var _this = this;
805
782
  this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
806
- var result, _loop_2, this_1, orElements_1, orElements_1_1, element, state_1, e_12_1;
807
- var e_12, _a;
783
+ var result, _loop_2, this_1, orElements_1, orElements_1_1, element, state_1, e_10_1;
784
+ var e_10, _a;
808
785
  return tslib_1.__generator(this, function (_b) {
809
786
  switch (_b.label) {
810
787
  case 0:
@@ -814,7 +791,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
814
791
  return tslib_1.__generator(this, function (_c) {
815
792
  switch (_c.label) {
816
793
  case 0:
817
- f = new FilterConsumerBridgeToKnexRequest(this_1.innerNameProvider, this_1.rawSqlWrapIdentifier);
794
+ f = new FilterConsumerBridgeToKnexRequest(this_1.innerNameProvider, this_1.rawSqlWrapIdentifier, this_1.jsonColumnStorage);
818
795
  f._addWhere = false;
819
796
  element.__applyToConsumer(f);
820
797
  return [4 /*yield*/, f.resolveWhere()];
@@ -853,14 +830,14 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
853
830
  return [3 /*break*/, 2];
854
831
  case 5: return [3 /*break*/, 8];
855
832
  case 6:
856
- e_12_1 = _b.sent();
857
- e_12 = { error: e_12_1 };
833
+ e_10_1 = _b.sent();
834
+ e_10 = { error: e_10_1 };
858
835
  return [3 /*break*/, 8];
859
836
  case 7:
860
837
  try {
861
838
  if (orElements_1_1 && !orElements_1_1.done && (_a = orElements_1.return)) _a.call(orElements_1);
862
839
  }
863
- finally { if (e_12) throw e_12.error; }
840
+ finally { if (e_10) throw e_10.error; }
864
841
  return [7 /*endfinally*/];
865
842
  case 8:
866
843
  if (result.length > 0) {
@@ -878,7 +855,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
878
855
  return tslib_1.__generator(this, function (_a) {
879
856
  switch (_a.label) {
880
857
  case 0:
881
- f = new FilterConsumerBridgeToKnexRequest(this.innerNameProvider, this.rawSqlWrapIdentifier);
858
+ f = new FilterConsumerBridgeToKnexRequest(this.innerNameProvider, this.rawSqlWrapIdentifier, this.jsonColumnStorage);
882
859
  f._addWhere = false;
883
860
  element.__applyToConsumer(f);
884
861
  return [4 /*yield*/, f.resolveWhere()];
@@ -911,7 +888,9 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
911
888
  FilterConsumerBridgeToKnexRequest.prototype.isIn = function (col, val) {
912
889
  var _this = this;
913
890
  this.result.push(function (knex) {
914
- return knex.whereIn(_this.innerNameProvider.$dbNameOf(col), val.map(function (x) { return translateValueAndHandleArrayAndHandleArray(col, x); }));
891
+ return knex.whereIn(_this.innerNameProvider.$dbNameOf(col), val.map(function (x) {
892
+ return translateValueAndHandleArrayAndHandleArray(col, x, _this.jsonColumnStorage);
893
+ }));
915
894
  });
916
895
  };
917
896
  FilterConsumerBridgeToKnexRequest.prototype.isEqualTo = function (col, val) {
@@ -933,52 +912,26 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
933
912
  this.add(col, val, '<');
934
913
  };
935
914
  FilterConsumerBridgeToKnexRequest.prototype.containsCaseInsensitive = function (col, val) {
936
- var _this = this;
937
- this.result.push(function (b) {
938
- return b.whereRaw('lower (' +
939
- b.client.ref(_this.innerNameProvider.$dbNameOf(col)) +
940
- ") like lower ('%" +
941
- val.replace(/'/g, "''") +
942
- "%')");
943
- });
944
- this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
945
- return [2 /*return*/];
946
- }); }); })());
915
+ this.like(col, '%' + (0, filter_consumer_bridge_to_sql_request_js_1.escapeLike)(val) + '%');
947
916
  };
948
917
  FilterConsumerBridgeToKnexRequest.prototype.notContainsCaseInsensitive = function (col, val) {
949
- var _this = this;
950
- this.result.push(function (b) {
951
- return b.whereRaw('not lower (' +
952
- b.client.ref(_this.innerNameProvider.$dbNameOf(col)) +
953
- ") like lower ('%" +
954
- val.replace(/'/g, "''") +
955
- "%')");
956
- });
957
- this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
958
- return [2 /*return*/];
959
- }); }); })());
918
+ this.like(col, '%' + (0, filter_consumer_bridge_to_sql_request_js_1.escapeLike)(val) + '%', 'not ');
960
919
  };
961
920
  FilterConsumerBridgeToKnexRequest.prototype.startsWithCaseInsensitive = function (col, val) {
962
- var _this = this;
963
- this.result.push(function (b) {
964
- return b.whereRaw('lower (' +
965
- b.client.ref(_this.innerNameProvider.$dbNameOf(col)) +
966
- ") like lower ('" +
967
- val.replace(/'/g, "''") +
968
- "%')");
969
- });
970
- this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
971
- return [2 /*return*/];
972
- }); }); })());
921
+ this.like(col, (0, filter_consumer_bridge_to_sql_request_js_1.escapeLike)(val) + '%');
973
922
  };
974
923
  FilterConsumerBridgeToKnexRequest.prototype.endsWithCaseInsensitive = function (col, val) {
924
+ this.like(col, '%' + (0, filter_consumer_bridge_to_sql_request_js_1.escapeLike)(val));
925
+ };
926
+ FilterConsumerBridgeToKnexRequest.prototype.like = function (col, pattern, not) {
975
927
  var _this = this;
928
+ if (not === void 0) { not = ''; }
976
929
  this.result.push(function (b) {
977
- return b.whereRaw('lower (' +
930
+ return b.whereRaw(not +
931
+ 'lower (' +
978
932
  b.client.ref(_this.innerNameProvider.$dbNameOf(col)) +
979
- ") like lower ('%" +
980
- val.replace(/'/g, "''") +
981
- "')");
933
+ ') like lower (?)' +
934
+ filter_consumer_bridge_to_sql_request_js_1.LIKE_ESCAPE_SQL, [pattern]);
982
935
  });
983
936
  this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
984
937
  return [2 /*return*/];
@@ -987,7 +940,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
987
940
  FilterConsumerBridgeToKnexRequest.prototype.add = function (col, val, operator) {
988
941
  var _this = this;
989
942
  this.result.push(function (b) {
990
- return b.where(_this.innerNameProvider.$dbNameOf(col), operator, translateValueAndHandleArrayAndHandleArray(col, val));
943
+ return b.where(_this.innerNameProvider.$dbNameOf(col), operator, translateValueAndHandleArrayAndHandleArray(col, val, _this.jsonColumnStorage));
991
944
  });
992
945
  };
993
946
  FilterConsumerBridgeToKnexRequest.prototype.databaseCustom = function (databaseCustom) {
@@ -1006,7 +959,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
1006
959
  case 2:
1007
960
  if (!(databaseCustom === null || databaseCustom === void 0 ? void 0 : databaseCustom.buildSql)) return [3 /*break*/, 4];
1008
961
  r_2 = new KnexCommandHelper();
1009
- item = new filter_consumer_bridge_to_sql_request_js_1.CustomSqlFilterBuilder(r_2, this.rawSqlWrapIdentifier);
962
+ item = new filter_consumer_bridge_to_sql_request_js_1.CustomSqlFilterBuilder(r_2, this.rawSqlWrapIdentifier, this.jsonColumnStorage);
1010
963
  return [4 /*yield*/, databaseCustom.buildSql(item)];
1011
964
  case 3:
1012
965
  sql_1 = _c.sent();
@@ -1030,8 +983,8 @@ var KnexSchemaBuilder = /** @class */ (function () {
1030
983
  }
1031
984
  KnexSchemaBuilder.prototype.ensureSchema = function (entities) {
1032
985
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1033
- var entities_1, entities_1_1, entity, e, err_2, e_13_1;
1034
- var e_13, _a;
986
+ var entities_1, entities_1_1, entity, e, err_2, e_11_1;
987
+ var e_11, _a;
1035
988
  return tslib_1.__generator(this, function (_b) {
1036
989
  switch (_b.label) {
1037
990
  case 0:
@@ -1065,14 +1018,14 @@ var KnexSchemaBuilder = /** @class */ (function () {
1065
1018
  return [3 /*break*/, 1];
1066
1019
  case 9: return [3 /*break*/, 12];
1067
1020
  case 10:
1068
- e_13_1 = _b.sent();
1069
- e_13 = { error: e_13_1 };
1021
+ e_11_1 = _b.sent();
1022
+ e_11 = { error: e_11_1 };
1070
1023
  return [3 /*break*/, 12];
1071
1024
  case 11:
1072
1025
  try {
1073
1026
  if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
1074
1027
  }
1075
- finally { if (e_13) throw e_13.error; }
1028
+ finally { if (e_11) throw e_11.error; }
1076
1029
  return [7 /*endfinally*/];
1077
1030
  case 12: return [2 /*return*/];
1078
1031
  }
@@ -1100,7 +1053,7 @@ var KnexSchemaBuilder = /** @class */ (function () {
1100
1053
  });
1101
1054
  };
1102
1055
  KnexSchemaBuilder.prototype.createTableKnexCommand = function (entity, e) {
1103
- var e_14, _a;
1056
+ var e_12, _a;
1104
1057
  var _this = this;
1105
1058
  var cols = new Map();
1106
1059
  try {
@@ -1112,15 +1065,15 @@ var KnexSchemaBuilder = /** @class */ (function () {
1112
1065
  });
1113
1066
  }
1114
1067
  }
1115
- catch (e_14_1) { e_14 = { error: e_14_1 }; }
1068
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
1116
1069
  finally {
1117
1070
  try {
1118
1071
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1119
1072
  }
1120
- finally { if (e_14) throw e_14.error; }
1073
+ finally { if (e_12) throw e_12.error; }
1121
1074
  }
1122
1075
  return this.knex.schema.createTable(e.$entityName, function (b) {
1123
- var e_15, _a;
1076
+ var e_13, _a;
1124
1077
  try {
1125
1078
  for (var _b = tslib_1.__values(entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
1126
1079
  var x = _c.value;
@@ -1133,12 +1086,12 @@ var KnexSchemaBuilder = /** @class */ (function () {
1133
1086
  }
1134
1087
  }
1135
1088
  }
1136
- catch (e_15_1) { e_15 = { error: e_15_1 }; }
1089
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
1137
1090
  finally {
1138
1091
  try {
1139
1092
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1140
1093
  }
1141
- finally { if (e_15) throw e_15.error; }
1094
+ finally { if (e_13) throw e_13.error; }
1142
1095
  }
1143
1096
  b.primary(entity.idMetadata.fields.map(function (f) { return e.$dbNameOf(f); }));
1144
1097
  });
@@ -1175,8 +1128,8 @@ var KnexSchemaBuilder = /** @class */ (function () {
1175
1128
  };
1176
1129
  KnexSchemaBuilder.prototype.verifyAllColumns = function (entity) {
1177
1130
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1178
- var e, _loop_3, this_2, _a, _b, col, e_16_1, err_3;
1179
- var e_16, _c;
1131
+ var e, _loop_3, this_2, _a, _b, col, e_14_1, err_3;
1132
+ var e_14, _c;
1180
1133
  return tslib_1.__generator(this, function (_d) {
1181
1134
  switch (_d.label) {
1182
1135
  case 0: return [4 /*yield*/, (0, filter_consumer_bridge_to_sql_request_js_2.dbNamesOf)(entity, function (x) { return x; })];
@@ -1216,14 +1169,14 @@ var KnexSchemaBuilder = /** @class */ (function () {
1216
1169
  return [3 /*break*/, 4];
1217
1170
  case 7: return [3 /*break*/, 10];
1218
1171
  case 8:
1219
- e_16_1 = _d.sent();
1220
- e_16 = { error: e_16_1 };
1172
+ e_14_1 = _d.sent();
1173
+ e_14 = { error: e_14_1 };
1221
1174
  return [3 /*break*/, 10];
1222
1175
  case 9:
1223
1176
  try {
1224
1177
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
1225
1178
  }
1226
- finally { if (e_16) throw e_16.error; }
1179
+ finally { if (e_14) throw e_14.error; }
1227
1180
  return [7 /*endfinally*/];
1228
1181
  case 10: return [3 /*break*/, 12];
1229
1182
  case 11:
@@ -1349,7 +1302,7 @@ function knexMaxParametersInOneSqlStatement(knex) {
1349
1302
  return defaultMaxParametersInOneSqlStatement;
1350
1303
  }
1351
1304
  function splitByMaxParameters(items, parametersInItem, maxParameters) {
1352
- var e_17, _a;
1305
+ var e_15, _a;
1353
1306
  var batches = [];
1354
1307
  var batch = [];
1355
1308
  var params = 0;
@@ -1366,40 +1319,41 @@ function splitByMaxParameters(items, parametersInItem, maxParameters) {
1366
1319
  params += n;
1367
1320
  }
1368
1321
  }
1369
- catch (e_17_1) { e_17 = { error: e_17_1 }; }
1322
+ catch (e_15_1) { e_15 = { error: e_15_1 }; }
1370
1323
  finally {
1371
1324
  try {
1372
1325
  if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
1373
1326
  }
1374
- finally { if (e_17) throw e_17.error; }
1327
+ finally { if (e_15) throw e_15.error; }
1375
1328
  }
1376
1329
  if (batch.length)
1377
1330
  batches.push(batch);
1378
1331
  return batches;
1379
1332
  }
1380
- function countKnexInsertBindParameters(entity, e, row) {
1381
- var e_18, _a;
1333
+ function countKnexInsertBindParameters(entity, e, row, storage) {
1334
+ var e_16, _a;
1382
1335
  var n = 0;
1383
1336
  try {
1384
1337
  for (var _b = tslib_1.__values(entity.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
1385
1338
  var x = _c.value;
1386
1339
  if ((0, filter_consumer_bridge_to_sql_request_js_2.isDbReadonly)(x, e))
1387
1340
  continue;
1388
- if (translateValueAndHandleArrayAndHandleArray(x, row[x.key]) != undefined)
1341
+ if (translateValueAndHandleArrayAndHandleArray(x, row[x.key], storage) !=
1342
+ undefined)
1389
1343
  n++;
1390
1344
  }
1391
1345
  }
1392
- catch (e_18_1) { e_18 = { error: e_18_1 }; }
1346
+ catch (e_16_1) { e_16 = { error: e_16_1 }; }
1393
1347
  finally {
1394
1348
  try {
1395
1349
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1396
1350
  }
1397
- finally { if (e_18) throw e_18.error; }
1351
+ finally { if (e_16) throw e_16.error; }
1398
1352
  }
1399
1353
  return n;
1400
1354
  }
1401
- function translateValueAndHandleArrayAndHandleArray(field, val) {
1402
- var result = field.valueConverter.toDb(val);
1355
+ function translateValueAndHandleArrayAndHandleArray(field, val, storage) {
1356
+ var result = (0, valueConverters_js_1.toDbColumn)(field, val, storage);
1403
1357
  if (Array.isArray(result))
1404
1358
  return JSON.stringify(result);
1405
1359
  return result;