remult 3.3.19-next.2 → 3.4.0-next.2

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 (58) hide show
  1. package/SseSubscriptionServer.d.ts +2 -0
  2. package/SseSubscriptionServer.js +4 -2
  3. package/esm/SseSubscriptionServer.js +3 -1
  4. package/esm/index.js +6 -7
  5. package/esm/live-query/data-provider-live-query-storage.js +3 -1
  6. package/esm/remult-d1.js +0 -1
  7. package/esm/remult-knex/index.js +2 -112
  8. package/esm/remult-mongo.js +8 -17
  9. package/esm/remult-sqlite-core.js +0 -1
  10. package/esm/server/remult-api-server.js +6 -1
  11. package/esm/src/data-api.js +1 -0
  12. package/esm/src/data-interfaces.js +4 -4
  13. package/esm/src/data-providers/array-entity-data-provider.js +2 -14
  14. package/esm/src/data-providers/json-data-provider.js +2 -2
  15. package/esm/src/data-providers/rest-data-provider.js +12 -11
  16. package/esm/src/data-providers/sql-database.js +43 -110
  17. package/esm/src/live-query/LiveQueryClient.js +163 -52
  18. package/esm/src/live-query/SseSubscriptionClient.js +101 -43
  19. package/esm/src/live-query/SubscriptionChannel.js +37 -3
  20. package/esm/src/live-query/SubscriptionServer.js +11 -3
  21. package/esm/src/remult3/RepositoryImplementation.js +60 -90
  22. package/esm/src/remult3/remult3.js +6 -0
  23. package/index.d.ts +17 -31
  24. package/index.js +2 -5
  25. package/live-query/data-provider-live-query-storage.d.ts +4 -1
  26. package/live-query/data-provider-live-query-storage.js +18 -15
  27. package/package.json +1 -1
  28. package/remult-d1.d.ts +0 -1
  29. package/remult-d1.js +0 -1
  30. package/remult-knex/index.js +44 -329
  31. package/remult-mongo.js +36 -80
  32. package/remult-sqlite-core.d.ts +0 -1
  33. package/remult-sqlite-core.js +0 -1
  34. package/server/remult-api-server.js +13 -9
  35. package/src/data-api.js +1 -0
  36. package/src/data-interfaces.d.ts +3 -2
  37. package/src/data-interfaces.js +4 -4
  38. package/src/data-providers/array-entity-data-provider.d.ts +2 -2
  39. package/src/data-providers/array-entity-data-provider.js +14 -92
  40. package/src/data-providers/json-data-provider.js +2 -2
  41. package/src/data-providers/rest-data-provider.d.ts +3 -2
  42. package/src/data-providers/rest-data-provider.js +17 -18
  43. package/src/data-providers/sql-database.js +105 -254
  44. package/src/live-query/LiveQueryClient.js +215 -97
  45. package/src/live-query/SseSubscriptionClient.js +143 -83
  46. package/src/live-query/SubscriptionChannel.d.ts +8 -0
  47. package/src/live-query/SubscriptionChannel.js +47 -9
  48. package/src/live-query/SubscriptionServer.d.ts +7 -2
  49. package/src/live-query/SubscriptionServer.js +20 -10
  50. package/src/remult3/RepositoryImplementation.d.ts +1 -1
  51. package/src/remult3/RepositoryImplementation.js +270 -384
  52. package/src/remult3/remult3.d.ts +8 -2
  53. package/src/remult3/remult3.js +6 -0
  54. package/src/sql-command.d.ts +0 -2
  55. package/src/standard-schema/index.d.ts +1 -1
  56. package/esm/src/data-providers/indexed-db-data-provider.js +0 -811
  57. package/src/data-providers/indexed-db-data-provider.d.ts +0 -39
  58. package/src/data-providers/indexed-db-data-provider.js +0 -1387
package/remult-mongo.js CHANGED
@@ -521,27 +521,23 @@ var MongoEntityDataProvider = /** @class */ (function () {
521
521
  });
522
522
  });
523
523
  };
524
- MongoEntityDataProvider.prototype.delete = function (ids) {
524
+ MongoEntityDataProvider.prototype.delete = function (id) {
525
525
  return tslib_1.__awaiter(this, void 0, void 0, function () {
526
526
  var _a, e, collection, f, _b, _c;
527
- var _d;
528
- return tslib_1.__generator(this, function (_e) {
529
- switch (_e.label) {
530
- case 0:
531
- if (ids.length === 0)
532
- return [2 /*return*/];
533
- return [4 /*yield*/, this.collection()];
527
+ return tslib_1.__generator(this, function (_d) {
528
+ switch (_d.label) {
529
+ case 0: return [4 /*yield*/, this.collection()];
534
530
  case 1:
535
- _a = _e.sent(), e = _a.e, collection = _a.collection;
531
+ _a = _d.sent(), e = _a.e, collection = _a.collection;
536
532
  f = new FilterConsumerBridgeToMongo(e);
537
- index_js_1.Filter.fromEntityFilter(this.entity, (_d = this.entity.idMetadata).getIdFilter.apply(_d, tslib_1.__spreadArray([], tslib_1.__read(ids), false))).__applyToConsumer(f);
538
- _c = (_b = collection).deleteMany;
533
+ index_js_1.Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)).__applyToConsumer(f);
534
+ _c = (_b = collection).deleteOne;
539
535
  return [4 /*yield*/, f.resolveWhere()];
540
- case 2: return [4 /*yield*/, _c.apply(_b, [_e.sent(), {
536
+ case 2: return [4 /*yield*/, _c.apply(_b, [_d.sent(), {
541
537
  session: this.session,
542
538
  }])];
543
539
  case 3:
544
- _e.sent();
540
+ _d.sent();
545
541
  return [2 /*return*/];
546
542
  }
547
543
  });
@@ -549,65 +545,25 @@ var MongoEntityDataProvider = /** @class */ (function () {
549
545
  };
550
546
  MongoEntityDataProvider.prototype.insert = function (data, options) {
551
547
  return tslib_1.__awaiter(this, void 0, void 0, function () {
552
- var _a, collection, e, docs, data_1, data_1_1, row, _b, _c, e_12_1, r, result, i, _d, _e, _f;
553
- var e_12, _g;
554
- return tslib_1.__generator(this, function (_h) {
555
- switch (_h.label) {
556
- case 0:
557
- if (data.length === 0)
558
- return [2 /*return*/, []];
559
- return [4 /*yield*/, this.collection()];
548
+ var _a, collection, e, r, _b, _c, _d;
549
+ return tslib_1.__generator(this, function (_e) {
550
+ switch (_e.label) {
551
+ case 0: return [4 /*yield*/, this.collection()];
560
552
  case 1:
561
- _a = _h.sent(), collection = _a.collection, e = _a.e;
562
- docs = [];
563
- _h.label = 2;
564
- case 2:
565
- _h.trys.push([2, 7, 8, 9]);
566
- data_1 = tslib_1.__values(data), data_1_1 = data_1.next();
567
- _h.label = 3;
553
+ _a = _e.sent(), collection = _a.collection, e = _a.e;
554
+ _c = (_b = collection).insertOne;
555
+ return [4 /*yield*/, this.translateToDb(data, e)];
556
+ case 2: return [4 /*yield*/, _c.apply(_b, [_e.sent(), {
557
+ session: this.session,
558
+ }])];
568
559
  case 3:
569
- if (!!data_1_1.done) return [3 /*break*/, 6];
570
- row = data_1_1.value;
571
- _c = (_b = docs).push;
572
- return [4 /*yield*/, this.translateToDb(row, e)];
573
- case 4:
574
- _c.apply(_b, [_h.sent()]);
575
- _h.label = 5;
576
- case 5:
577
- data_1_1 = data_1.next();
578
- return [3 /*break*/, 3];
579
- case 6: return [3 /*break*/, 9];
580
- case 7:
581
- e_12_1 = _h.sent();
582
- e_12 = { error: e_12_1 };
583
- return [3 /*break*/, 9];
584
- case 8:
585
- try {
586
- if (data_1_1 && !data_1_1.done && (_g = data_1.return)) _g.call(data_1);
587
- }
588
- finally { if (e_12) throw e_12.error; }
589
- return [7 /*endfinally*/];
590
- case 9: return [4 /*yield*/, collection.insertMany(docs, { session: this.session })];
591
- case 10:
592
- r = _h.sent();
560
+ r = _e.sent();
593
561
  if ((options === null || options === void 0 ? void 0 : options.select) === 'none')
594
- return [2 /*return*/, data.map(function () { return undefined; })];
595
- result = [];
596
- i = 0;
597
- _h.label = 11;
598
- case 11:
599
- if (!(i < data.length)) return [3 /*break*/, 15];
600
- _e = (_d = result).push;
601
- _f = this.translateFromDb;
602
- return [4 /*yield*/, collection.findOne({ _id: r.insertedIds[i] }, { session: this.session })];
603
- case 12: return [4 /*yield*/, _f.apply(this, [_h.sent(), e])];
604
- case 13:
605
- _e.apply(_d, [_h.sent()]);
606
- _h.label = 14;
607
- case 14:
608
- i++;
609
- return [3 /*break*/, 11];
610
- case 15: return [2 /*return*/, result];
562
+ return [2 /*return*/, undefined];
563
+ _d = this.translateFromDb;
564
+ return [4 /*yield*/, collection.findOne({ _id: r.insertedId }, { session: this.session })];
565
+ case 4: return [4 /*yield*/, _d.apply(this, [_e.sent(), e])];
566
+ case 5: return [2 /*return*/, _e.sent()];
611
567
  }
612
568
  });
613
569
  });
@@ -637,8 +593,8 @@ var FilterConsumerBridgeToMongo = /** @class */ (function () {
637
593
  }
638
594
  FilterConsumerBridgeToMongo.prototype.resolveWhere = function () {
639
595
  return tslib_1.__awaiter(this, void 0, void 0, function () {
640
- var p, p_1, p_1_1, pr, e_13_1;
641
- var e_13, _a;
596
+ var p, p_1, p_1_1, pr, e_12_1;
597
+ var e_12, _a;
642
598
  return tslib_1.__generator(this, function (_b) {
643
599
  switch (_b.label) {
644
600
  case 0:
@@ -648,7 +604,7 @@ var FilterConsumerBridgeToMongo = /** @class */ (function () {
648
604
  _b.label = 1;
649
605
  case 1:
650
606
  _b.trys.push([1, 6, 7, 8]);
651
- p_1 = (e_13 = void 0, tslib_1.__values(p)), p_1_1 = p_1.next();
607
+ p_1 = (e_12 = void 0, tslib_1.__values(p)), p_1_1 = p_1.next();
652
608
  _b.label = 2;
653
609
  case 2:
654
610
  if (!!p_1_1.done) return [3 /*break*/, 5];
@@ -662,14 +618,14 @@ var FilterConsumerBridgeToMongo = /** @class */ (function () {
662
618
  return [3 /*break*/, 2];
663
619
  case 5: return [3 /*break*/, 8];
664
620
  case 6:
665
- e_13_1 = _b.sent();
666
- e_13 = { error: e_13_1 };
621
+ e_12_1 = _b.sent();
622
+ e_12 = { error: e_12_1 };
667
623
  return [3 /*break*/, 8];
668
624
  case 7:
669
625
  try {
670
626
  if (p_1_1 && !p_1_1.done && (_a = p_1.return)) _a.call(p_1);
671
627
  }
672
- finally { if (e_13) throw e_13.error; }
628
+ finally { if (e_12) throw e_12.error; }
673
629
  return [7 /*endfinally*/];
674
630
  case 8: return [3 /*break*/, 0];
675
631
  case 9:
@@ -688,8 +644,8 @@ var FilterConsumerBridgeToMongo = /** @class */ (function () {
688
644
  FilterConsumerBridgeToMongo.prototype.or = function (orElements) {
689
645
  var _this = this;
690
646
  this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
691
- var result, orElements_1, orElements_1_1, element, f, where, e_14_1;
692
- var e_14, _a;
647
+ var result, orElements_1, orElements_1_1, element, f, where, e_13_1;
648
+ var e_13, _a;
693
649
  var _b;
694
650
  return tslib_1.__generator(this, function (_c) {
695
651
  switch (_c.label) {
@@ -720,14 +676,14 @@ var FilterConsumerBridgeToMongo = /** @class */ (function () {
720
676
  return [3 /*break*/, 2];
721
677
  case 5: return [3 /*break*/, 8];
722
678
  case 6:
723
- e_14_1 = _c.sent();
724
- e_14 = { error: e_14_1 };
679
+ e_13_1 = _c.sent();
680
+ e_13 = { error: e_13_1 };
725
681
  return [3 /*break*/, 8];
726
682
  case 7:
727
683
  try {
728
684
  if (orElements_1_1 && !orElements_1_1.done && (_a = orElements_1.return)) _a.call(orElements_1);
729
685
  }
730
- finally { if (e_14) throw e_14.error; }
686
+ finally { if (e_13) throw e_13.error; }
731
687
  return [7 /*endfinally*/];
732
688
  case 8:
733
689
  this.result.push(function () { return ({
@@ -9,7 +9,6 @@ export declare class SqliteCoreDataProvider implements SqlImplementation, CanBui
9
9
  doesNotSupportReturningSyntaxOnlyForUpdate: boolean;
10
10
  constructor(createCommand: () => SqlCommand, end: () => Promise<void>, doesNotSupportReturningSyntax?: boolean, doesNotSupportReturningSyntaxOnlyForUpdate?: boolean);
11
11
  orderByNullsFirst?: boolean;
12
- maxParametersInOneSqlStatement: number;
13
12
  getLimitSqlSyntax(limit: number, offset: number): string;
14
13
  afterMutation?: VoidFunction;
15
14
  provideMigrationBuilder(builder: MigrationCode): MigrationBuilder;
@@ -13,7 +13,6 @@ var SqliteCoreDataProvider = /** @class */ (function () {
13
13
  this.end = end;
14
14
  this.doesNotSupportReturningSyntax = doesNotSupportReturningSyntax;
15
15
  this.doesNotSupportReturningSyntaxOnlyForUpdate = doesNotSupportReturningSyntaxOnlyForUpdate;
16
- this.maxParametersInOneSqlStatement = 999;
17
16
  }
18
17
  SqliteCoreDataProvider.prototype.getLimitSqlSyntax = function (limit, offset) {
19
18
  return ' limit ' + limit + ' offset ' + offset;
@@ -482,16 +482,20 @@ var RemultServerImplementation = /** @class */ (function () {
482
482
  }); }));
483
483
  }
484
484
  r.route(this.options.rootPath + '/' + SubscriptionChannel_js_1.liveQueryKeepAliveRoute).post(this.process(function (remult, req, res, reqInfo, origRes, origReq) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
485
- var _a, _b, _c, _d;
486
- return tslib_1.__generator(this, function (_e) {
487
- switch (_e.label) {
488
- case 0:
489
- _b = (_a = res).success;
490
- _d = (_c = remult.liveQueryStorage).keepAliveAndReturnUnknownQueryIds;
491
- return [4 /*yield*/, this.coreOptions.getRequestBody(origReq)];
492
- case 1: return [4 /*yield*/, _d.apply(_c, [_e.sent()])];
485
+ var body, queryIds, result;
486
+ var _a;
487
+ return tslib_1.__generator(this, function (_b) {
488
+ switch (_b.label) {
489
+ case 0: return [4 /*yield*/, this.coreOptions.getRequestBody(origReq)];
490
+ case 1:
491
+ body = _b.sent();
492
+ queryIds = Array.isArray(body)
493
+ ? body
494
+ : ((_a = body === null || body === void 0 ? void 0 : body.queryIds) !== null && _a !== void 0 ? _a : []);
495
+ return [4 /*yield*/, remult.liveQueryStorage.keepAliveAndReturnUnknownQueryIds(queryIds)];
493
496
  case 2:
494
- _b.apply(_a, [_e.sent()]);
497
+ result = _b.sent();
498
+ res.success(Array.isArray(body) ? result.unknownQueryIds : result);
495
499
  return [2 /*return*/];
496
500
  }
497
501
  });
package/src/data-api.js CHANGED
@@ -687,6 +687,7 @@ var DataApi = /** @class */ (function () {
687
687
  data = (_a.requestJson = _b.sent(),
688
688
  _a.findOptionsJson = (0, rest_data_provider_js_1.findOptionsToJson)(r.findOptions, this.repository.metadata),
689
689
  _a.lastIds = r.r.map(function (y) { return _this.repository.metadata.idMetadata.getId(y); }),
690
+ _a.version = 0,
690
691
  _a);
691
692
  return [4 /*yield*/, this.remult.liveQueryStorage.add({
692
693
  entityKey: this.repository.metadata.key,
@@ -29,10 +29,11 @@ export interface EntityDataProvider {
29
29
  find(options?: EntityDataProviderFindOptions): Promise<Array<any>>;
30
30
  groupBy(options?: EntityDataProviderGroupByOptions): Promise<any[]>;
31
31
  update(id: any, data: any, options?: InsertOrUpdateOptions): Promise<any>;
32
- delete(ids: any[]): Promise<void>;
33
- insert(data: any[], options?: InsertOrUpdateOptions): Promise<any[]>;
32
+ delete(id: any): Promise<void>;
33
+ insert(data: any, options?: InsertOrUpdateOptions): Promise<any>;
34
34
  }
35
35
  export interface ProxyEntityDataProvider {
36
+ insertMany(data: any[], options?: InsertOrUpdateOptions): Promise<any[]>;
36
37
  deleteMany(where: Filter | 'all'): Promise<number>;
37
38
  updateMany(where: Filter | 'all', data: any): Promise<number>;
38
39
  query(options: EntityDataProviderFindOptions, aggregateOptions: EntityDataProviderGroupByOptions): Promise<{
@@ -44,11 +44,11 @@ var EntityDataProviderPromiseWrapper = /** @class */ (function () {
44
44
  function EntityDataProviderPromiseWrapper(dataProvider) {
45
45
  this.dataProvider = dataProvider;
46
46
  }
47
- EntityDataProviderPromiseWrapper.prototype.delete = function (ids) {
48
- return this.dataProvider.then(function (dp) { return dp.delete(ids); });
47
+ EntityDataProviderPromiseWrapper.prototype.delete = function (id) {
48
+ return this.dataProvider.then(function (dp) { return dp.delete(id); });
49
49
  };
50
- EntityDataProviderPromiseWrapper.prototype.insert = function (data, options) {
51
- return this.dataProvider.then(function (dp) { return dp.insert(data, options); });
50
+ EntityDataProviderPromiseWrapper.prototype.insert = function (data) {
51
+ return this.dataProvider.then(function (dp) { return dp.insert(data); });
52
52
  };
53
53
  EntityDataProviderPromiseWrapper.prototype.count = function (where) {
54
54
  return this.dataProvider.then(function (dp) { return dp.count(where); });
@@ -10,8 +10,8 @@ export declare class ArrayEntityDataProvider implements EntityDataProvider {
10
10
  count(where?: Filter): Promise<number>;
11
11
  find(options?: EntityDataProviderFindOptions): Promise<any[]>;
12
12
  update(id: any, data: any): Promise<any>;
13
- delete(ids: any[]): Promise<void>;
14
- insert(data: any[]): Promise<any[]>;
13
+ delete(id: any): Promise<void>;
14
+ insert(data: any): Promise<any>;
15
15
  }
16
16
  export type CustomArrayFilter = (item: any) => boolean;
17
17
  export interface CustomArrayFilterObject {
@@ -539,44 +539,7 @@ var ArrayEntityDataProvider = /** @class */ (function () {
539
539
  });
540
540
  });
541
541
  };
542
- ArrayEntityDataProvider.prototype.delete = function (ids) {
543
- return tslib_1.__awaiter(this, void 0, void 0, function () {
544
- var ids_1, ids_1_1, id, e_16_1;
545
- var e_16, _a;
546
- return tslib_1.__generator(this, function (_b) {
547
- switch (_b.label) {
548
- case 0:
549
- _b.trys.push([0, 5, 6, 7]);
550
- ids_1 = tslib_1.__values(ids), ids_1_1 = ids_1.next();
551
- _b.label = 1;
552
- case 1:
553
- if (!!ids_1_1.done) return [3 /*break*/, 4];
554
- id = ids_1_1.value;
555
- return [4 /*yield*/, this.deleteOne(id)];
556
- case 2:
557
- _b.sent();
558
- _b.label = 3;
559
- case 3:
560
- ids_1_1 = ids_1.next();
561
- return [3 /*break*/, 1];
562
- case 4: return [3 /*break*/, 7];
563
- case 5:
564
- e_16_1 = _b.sent();
565
- e_16 = { error: e_16_1 };
566
- return [3 /*break*/, 7];
567
- case 6:
568
- try {
569
- if (ids_1_1 && !ids_1_1.done && (_a = ids_1.return)) _a.call(ids_1);
570
- }
571
- finally { if (e_16) throw e_16.error; }
572
- return [7 /*endfinally*/];
573
- case 7: return [2 /*return*/];
574
- }
575
- });
576
- });
577
- };
578
- //@internal
579
- ArrayEntityDataProvider.prototype.deleteOne = function (id) {
542
+ ArrayEntityDataProvider.prototype.delete = function (id) {
580
543
  return tslib_1.__awaiter(this, void 0, void 0, function () {
581
544
  var names, idMatches, i;
582
545
  return tslib_1.__generator(this, function (_a) {
@@ -588,7 +551,7 @@ var ArrayEntityDataProvider = /** @class */ (function () {
588
551
  for (i = 0; i < this.rows().length; i++) {
589
552
  if (idMatches(this.rows()[i])) {
590
553
  this.rows().splice(i, 1);
591
- return [2 /*return*/];
554
+ return [2 /*return*/, Promise.resolve()];
592
555
  }
593
556
  }
594
557
  throw new Error("ArrayEntityDataProvider: Couldn't find row with id \"".concat(id, "\" in entity \"").concat(this.entity.key, "\" to delete"));
@@ -597,50 +560,9 @@ var ArrayEntityDataProvider = /** @class */ (function () {
597
560
  });
598
561
  };
599
562
  ArrayEntityDataProvider.prototype.insert = function (data) {
600
- return tslib_1.__awaiter(this, void 0, void 0, function () {
601
- var result, data_1, data_1_1, row, _a, _b, e_17_1;
602
- var e_17, _c;
603
- return tslib_1.__generator(this, function (_d) {
604
- switch (_d.label) {
605
- case 0:
606
- result = [];
607
- _d.label = 1;
608
- case 1:
609
- _d.trys.push([1, 6, 7, 8]);
610
- data_1 = tslib_1.__values(data), data_1_1 = data_1.next();
611
- _d.label = 2;
612
- case 2:
613
- if (!!data_1_1.done) return [3 /*break*/, 5];
614
- row = data_1_1.value;
615
- _b = (_a = result).push;
616
- return [4 /*yield*/, this.insertOne(row)];
617
- case 3:
618
- _b.apply(_a, [_d.sent()]);
619
- _d.label = 4;
620
- case 4:
621
- data_1_1 = data_1.next();
622
- return [3 /*break*/, 2];
623
- case 5: return [3 /*break*/, 8];
624
- case 6:
625
- e_17_1 = _d.sent();
626
- e_17 = { error: e_17_1 };
627
- return [3 /*break*/, 8];
628
- case 7:
629
- try {
630
- if (data_1_1 && !data_1_1.done && (_c = data_1.return)) _c.call(data_1);
631
- }
632
- finally { if (e_17) throw e_17.error; }
633
- return [7 /*endfinally*/];
634
- case 8: return [2 /*return*/, result];
635
- }
636
- });
637
- });
638
- };
639
- //@internal
640
- ArrayEntityDataProvider.prototype.insertOne = function (data) {
641
563
  return tslib_1.__awaiter(this, void 0, void 0, function () {
642
564
  var names, j, idf, idDbName, _a, _b, row;
643
- var e_18, _c;
565
+ var e_16, _c;
644
566
  var _this = this;
645
567
  return tslib_1.__generator(this, function (_d) {
646
568
  switch (_d.label) {
@@ -660,17 +582,17 @@ var ArrayEntityDataProvider = /** @class */ (function () {
660
582
  j[idDbName] = row[idDbName] + 1;
661
583
  }
662
584
  }
663
- catch (e_18_1) { e_18 = { error: e_18_1 }; }
585
+ catch (e_16_1) { e_16 = { error: e_16_1 }; }
664
586
  finally {
665
587
  try {
666
588
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
667
589
  }
668
- finally { if (e_18) throw e_18.error; }
590
+ finally { if (e_16) throw e_16.error; }
669
591
  }
670
592
  }
671
593
  else {
672
594
  if (this.rows().find(function (x) {
673
- var e_19, _a;
595
+ var e_17, _a;
674
596
  try {
675
597
  for (var _b = tslib_1.__values(_this.entity.idMetadata.fields), _c = _b.next(); !_c.done; _c = _b.next()) {
676
598
  var f = _c.value;
@@ -678,12 +600,12 @@ var ArrayEntityDataProvider = /** @class */ (function () {
678
600
  return false;
679
601
  }
680
602
  }
681
- catch (e_19_1) { e_19 = { error: e_19_1 }; }
603
+ catch (e_17_1) { e_17 = { error: e_17_1 }; }
682
604
  finally {
683
605
  try {
684
606
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
685
607
  }
686
- finally { if (e_19) throw e_19.error; }
608
+ finally { if (e_17) throw e_17.error; }
687
609
  }
688
610
  return true;
689
611
  })) {
@@ -734,7 +656,7 @@ var FilterConsumerBridgeToObject = /** @class */ (function () {
734
656
  throw new Error('Custom Filter should be translated before it gets here');
735
657
  };
736
658
  FilterConsumerBridgeToObject.prototype.or = function (orElements) {
737
- var e_20, _a;
659
+ var e_18, _a;
738
660
  try {
739
661
  for (var orElements_1 = tslib_1.__values(orElements), orElements_1_1 = orElements_1.next(); !orElements_1_1.done; orElements_1_1 = orElements_1.next()) {
740
662
  var element = orElements_1_1.value;
@@ -745,12 +667,12 @@ var FilterConsumerBridgeToObject = /** @class */ (function () {
745
667
  }
746
668
  }
747
669
  }
748
- catch (e_20_1) { e_20 = { error: e_20_1 }; }
670
+ catch (e_18_1) { e_18 = { error: e_18_1 }; }
749
671
  finally {
750
672
  try {
751
673
  if (orElements_1_1 && !orElements_1_1.done && (_a = orElements_1.return)) _a.call(orElements_1);
752
674
  }
753
- finally { if (e_20) throw e_20.error; }
675
+ finally { if (e_18) throw e_18.error; }
754
676
  }
755
677
  this.ok = false;
756
678
  };
@@ -769,7 +691,7 @@ var FilterConsumerBridgeToObject = /** @class */ (function () {
769
691
  this.ok = false;
770
692
  };
771
693
  FilterConsumerBridgeToObject.prototype.isIn = function (col, val) {
772
- var e_21, _a;
694
+ var e_19, _a;
773
695
  try {
774
696
  for (var val_1 = tslib_1.__values(val), val_1_1 = val_1.next(); !val_1_1.done; val_1_1 = val_1.next()) {
775
697
  var v = val_1_1.value;
@@ -778,12 +700,12 @@ var FilterConsumerBridgeToObject = /** @class */ (function () {
778
700
  }
779
701
  }
780
702
  }
781
- catch (e_21_1) { e_21 = { error: e_21_1 }; }
703
+ catch (e_19_1) { e_19 = { error: e_19_1 }; }
782
704
  finally {
783
705
  try {
784
706
  if (val_1_1 && !val_1_1.done && (_a = val_1.return)) _a.call(val_1);
785
707
  }
786
- finally { if (e_21) throw e_21.error; }
708
+ finally { if (e_19) throw e_19.error; }
787
709
  }
788
710
  this.ok = false;
789
711
  };
@@ -100,11 +100,11 @@ var JsonEntityDataProvider = /** @class */ (function () {
100
100
  });
101
101
  }));
102
102
  };
103
- JsonEntityDataProvider.prototype.delete = function (ids) {
103
+ JsonEntityDataProvider.prototype.delete = function (id) {
104
104
  var _this = this;
105
105
  return (this.p = this.p.then(function () {
106
106
  return _this.loadEntityData(function (dp, save) {
107
- return dp.delete(ids).then(function (x) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
107
+ return dp.delete(id).then(function (x) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
108
108
  return tslib_1.__generator(this, function (_a) {
109
109
  switch (_a.label) {
110
110
  case 0: return [4 /*yield*/, save()];
@@ -35,8 +35,9 @@ export declare class RestEntityDataProvider implements EntityDataProvider, Proxy
35
35
  find(options?: EntityDataProviderFindOptions): Promise<Array<any>>;
36
36
  update(id: any, data: any, options?: InsertOrUpdateOptions): Promise<any>;
37
37
  private toJsonOfIncludedKeys;
38
- delete(ids: any[]): Promise<void>;
39
- insert(data: any[], options?: InsertOrUpdateOptions): Promise<any[]>;
38
+ delete(id: any): Promise<void>;
39
+ insert(data: any, options?: InsertOrUpdateOptions): Promise<any>;
40
+ insertMany(data: any[], options?: InsertOrUpdateOptions): Promise<any[]>;
40
41
  }
41
42
  export declare function addFilterToUrlAndReturnTrueIfSuccessful(filter: any, url: UrlBuilder): boolean;
42
43
  export declare const liveQueryAction = "liveQuery-";
@@ -441,20 +441,18 @@ var RestEntityDataProvider = /** @class */ (function () {
441
441
  }
442
442
  return result;
443
443
  };
444
- RestEntityDataProvider.prototype.delete = function (ids) {
444
+ RestEntityDataProvider.prototype.delete = function (id) {
445
445
  return tslib_1.__awaiter(this, void 0, void 0, function () {
446
- var _a;
447
- return tslib_1.__generator(this, function (_b) {
448
- switch (_b.label) {
446
+ return tslib_1.__generator(this, function (_a) {
447
+ switch (_a.label) {
449
448
  case 0:
450
- if (ids.length === 0)
451
- return [2 /*return*/];
452
- if (ids.length === 1 && ids[0] !== '')
453
- return [2 /*return*/, this.http().delete(this.url() + '/' + encodeURIComponent(ids[0]))];
454
- return [4 /*yield*/, this.deleteMany(filter_interfaces_js_1.Filter.fromEntityFilter(this.entity, (_a = this.entity.idMetadata).getIdFilter.apply(_a, tslib_1.__spreadArray([], tslib_1.__read(ids), false))))];
449
+ if (!(id == '')) return [3 /*break*/, 2];
450
+ return [4 /*yield*/, this.deleteMany(filter_interfaces_js_1.Filter.fromEntityFilter(this.entity, this.entity.idMetadata.getIdFilter(id)))];
455
451
  case 1:
456
- _b.sent();
457
- return [2 /*return*/];
452
+ _a.sent();
453
+ return [3 /*break*/, 3];
454
+ case 2: return [2 /*return*/, this.http().delete(this.url() + '/' + encodeURIComponent(id))];
455
+ case 3: return [2 /*return*/];
458
456
  }
459
457
  });
460
458
  });
@@ -462,13 +460,14 @@ var RestEntityDataProvider = /** @class */ (function () {
462
460
  RestEntityDataProvider.prototype.insert = function (data, options) {
463
461
  var _this = this;
464
462
  return this.http()
465
- .post(this.url() + ((options === null || options === void 0 ? void 0 : options.select) === 'none' ? '?_select=$none' : ''), data.map(function (row) { return _this.translateToJson(row); }))
466
- .then(function (y) {
467
- var rows = Array.isArray(y) ? y : [y];
468
- return rows.map(function (row) {
469
- return row ? _this.translateFromJson(row) : undefined;
470
- });
471
- });
463
+ .post(this.url() + ((options === null || options === void 0 ? void 0 : options.select) === 'none' ? '?_select=$none' : ''), this.translateToJson(data))
464
+ .then(function (y) { return _this.translateFromJson(y); });
465
+ };
466
+ RestEntityDataProvider.prototype.insertMany = function (data, options) {
467
+ var _this = this;
468
+ return this.http()
469
+ .post(this.url() + ((options === null || options === void 0 ? void 0 : options.select) === 'none' ? '?_select=$none' : ''), data.map(function (data) { return _this.translateToJson(data); }))
470
+ .then(function (y) { return y.map(function (y) { return _this.translateFromJson(y); }); });
472
471
  };
473
472
  return RestEntityDataProvider;
474
473
  }());