backendless 6.3.2 → 6.3.3

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.
package/backendless.d.ts CHANGED
@@ -968,6 +968,16 @@ declare module Backendless {
968
968
  * @class EventHandler
969
969
  */
970
970
  class EventHandler {
971
+ addUpsertListener<T = object>(whereClause: string, callback: (obj: T) => void, onError: (error: RTSubscriptionError) => void): Backendless.EventHandler;
972
+ addUpsertListener<T = object>(whereClause: string, callback: (obj: T) => void): Backendless.EventHandler;
973
+ addUpsertListener<T = object>(callback: (obj: T) => void, onError: (error: RTSubscriptionError) => void): Backendless.EventHandler;
974
+ addUpsertListener<T = object>(callback: (obj: T) => void): Backendless.EventHandler;
975
+
976
+ removeUpsertListeners(whereClause: string): Backendless.EventHandler;
977
+ removeUpsertListeners(): Backendless.EventHandler;
978
+
979
+ removeUpsertListener<T = object>(callback: (obj: T) => void): Backendless.EventHandler;
980
+
971
981
  addCreateListener<T = object>(whereClause: string, callback: (obj: T) => void, onError: (error: RTSubscriptionError) => void): Backendless.EventHandler;
972
982
  addCreateListener<T = object>(whereClause: string, callback: (obj: T) => void): Backendless.EventHandler;
973
983
  addCreateListener<T = object>(callback: (obj: T) => void, onError: (error: RTSubscriptionError) => void): Backendless.EventHandler;
@@ -998,6 +1008,13 @@ declare module Backendless {
998
1008
 
999
1009
  removeDeleteListener<T = object>(callback: (obj: T) => void): Backendless.EventHandler;
1000
1010
 
1011
+ addBulkUpsertListener(callback: (list: string[]) => void, onError: (error: RTSubscriptionError) => void): Backendless.EventHandler;
1012
+ addBulkUpsertListener(callback: (list: string[]) => void): Backendless.EventHandler;
1013
+
1014
+ removeBulkUpsertListener(callback: (list: string[]) => void): Backendless.EventHandler;
1015
+
1016
+ removeBulkUpsertListeners(): Backendless.EventHandler;
1017
+
1001
1018
  addBulkCreateListener(callback: (list: string[]) => void, onError: (error: RTSubscriptionError) => void): Backendless.EventHandler;
1002
1019
  addBulkCreateListener(callback: (list: string[]) => void): Backendless.EventHandler;
1003
1020
 
@@ -1071,7 +1088,7 @@ declare module Backendless {
1071
1088
 
1072
1089
  constructor(name: string | Object | Function, classToTableMap: Object);
1073
1090
 
1074
- save<T = object>(obj: T | object): Promise<T>;
1091
+ save<T = object>(obj: T | object, isUpsert?: boolean): Promise<T>;
1075
1092
 
1076
1093
  deepSave<T = object>(obj: T | object): Promise<T>;
1077
1094
 
@@ -1105,6 +1122,8 @@ declare module Backendless {
1105
1122
 
1106
1123
  bulkCreate(objects: Array<object>): Promise<Array<string>>;
1107
1124
 
1125
+ bulkUpsert(objects: Array<object>): Promise<Array<string>>;
1126
+
1108
1127
  bulkUpdate(whereClause: string, changes: object): Promise<string>;
1109
1128
 
1110
1129
  bulkDelete(where: string | Array<string> | Array<{ objectId: string, [key: string]: any }>): Promise<string>;
@@ -1256,6 +1275,9 @@ declare module Backendless {
1256
1275
  create(object: object): OpResult;
1257
1276
  create(tableName: string, object: object): OpResult;
1258
1277
 
1278
+ upsert(object: object): OpResult;
1279
+ upsert(tableName: string, object: object): OpResult;
1280
+
1259
1281
  update(object: object): OpResult;
1260
1282
  update(tableName: string, object: object): OpResult;
1261
1283
  update(opResult: OpResult | OpResultValueReference, changes: object): OpResult;
@@ -1270,6 +1292,9 @@ declare module Backendless {
1270
1292
  bulkCreate(tableName: string, objects: object[]): OpResult;
1271
1293
  bulkCreate(objects: object[]): OpResult;
1272
1294
 
1295
+ bulkUpsert(tableName: string, objects: object[]): OpResult;
1296
+ bulkUpsert(objects: object[]): OpResult;
1297
+
1273
1298
  bulkUpdate(tableName: string, whereClause: string, changes: object): OpResult;
1274
1299
  bulkUpdate(tableName: string, objectIds: string[], changes: object): OpResult;
1275
1300
  bulkUpdate(tableName: string, objects: object[], changes: object): OpResult;
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ********************************************************************************************************************
3
- * Backendless SDK for JavaScript. Version: 6.3.2
3
+ * Backendless SDK for JavaScript. Version: 6.3.3
4
4
  *
5
5
  * Copyright 2012-2021 BACKENDLESS.COM. All Rights Reserved.
6
6
  *
@@ -15466,16 +15466,18 @@ var ChangesTypes = {
15466
15466
  CREATED: 'created',
15467
15467
  UPDATED: 'updated',
15468
15468
  DELETED: 'deleted',
15469
+ UPSERTED: 'upserted',
15469
15470
  BULK_CREATED: 'bulk-created',
15470
15471
  BULK_UPDATED: 'bulk-updated',
15471
- BULK_DELETED: 'bulk-deleted'
15472
+ BULK_DELETED: 'bulk-deleted',
15473
+ BULK_UPSERTED: 'bulk-upserted'
15472
15474
  };
15473
15475
  var RelationsChangesTypes = {
15474
15476
  ADD: 'add',
15475
15477
  SET: 'set',
15476
15478
  DELETE: 'delete'
15477
15479
  };
15478
- var SingleChangesTypes = [ChangesTypes.CREATED, ChangesTypes.UPDATED, ChangesTypes.DELETED];
15480
+ var SingleChangesTypes = [ChangesTypes.CREATED, ChangesTypes.UPDATED, ChangesTypes.DELETED, ChangesTypes.UPSERTED];
15479
15481
 
15480
15482
  var RTHandlers = /*#__PURE__*/function (_RTListeners) {
15481
15483
  (0, _inherits2["default"])(RTHandlers, _RTListeners);
@@ -15518,6 +15520,25 @@ var RTHandlers = /*#__PURE__*/function (_RTListeners) {
15518
15520
 
15519
15521
  this.removeCreateListeners(undefined, callback);
15520
15522
  }
15523
+ }, {
15524
+ key: "addUpsertListener",
15525
+ value: function addUpsertListener(whereClause, callback, onError) {
15526
+ this.addChangesListener(ChangesTypes.UPSERTED, whereClause, callback, onError);
15527
+ }
15528
+ }, {
15529
+ key: "removeUpsertListeners",
15530
+ value: function removeUpsertListeners(whereClause, callback) {
15531
+ this.removeChangesListeners(ChangesTypes.UPSERTED, whereClause, callback);
15532
+ }
15533
+ }, {
15534
+ key: "removeUpsertListener",
15535
+ value: function removeUpsertListener(callback) {
15536
+ if (!callback || typeof callback !== 'function') {
15537
+ throw new Error('Listener Function must be passed.');
15538
+ }
15539
+
15540
+ this.removeUpsertListeners(undefined, callback);
15541
+ }
15521
15542
  }, {
15522
15543
  key: "addUpdateListener",
15523
15544
  value: function addUpdateListener(whereClause, callback, onError) {
@@ -15613,6 +15634,25 @@ var RTHandlers = /*#__PURE__*/function (_RTListeners) {
15613
15634
 
15614
15635
  this.removeBulkDeleteListeners(undefined, callback);
15615
15636
  }
15637
+ }, {
15638
+ key: "addBulkUpsertListener",
15639
+ value: function addBulkUpsertListener(whereClause, callback, onError) {
15640
+ this.addChangesListener(ChangesTypes.BULK_UPSERTED, whereClause, callback, onError);
15641
+ }
15642
+ }, {
15643
+ key: "removeBulkUpsertListeners",
15644
+ value: function removeBulkUpsertListeners() {
15645
+ this.removeChangesListeners(ChangesTypes.BULK_UPSERTED);
15646
+ }
15647
+ }, {
15648
+ key: "removeBulkUpsertListener",
15649
+ value: function removeBulkUpsertListener(callback) {
15650
+ if (!callback || typeof callback !== 'function') {
15651
+ throw new Error('Listener Function must be passed.');
15652
+ }
15653
+
15654
+ this.removeChangesListeners(ChangesTypes.BULK_UPSERTED, undefined, callback);
15655
+ }
15616
15656
  }, {
15617
15657
  key: "addSetRelationListener",
15618
15658
  value: function addSetRelationListener(relationColumnName, parentObjects, callback, onError) {
@@ -15903,21 +15943,23 @@ var DataStore = /*#__PURE__*/function () {
15903
15943
  }, {
15904
15944
  key: "save",
15905
15945
  value: function () {
15906
- var _save = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(object) {
15946
+ var _save = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(object, isUpsert) {
15907
15947
  var _this = this;
15908
15948
 
15949
+ var url;
15909
15950
  return _regenerator["default"].wrap(function _callee$(_context) {
15910
15951
  while (1) {
15911
15952
  switch (_context.prev = _context.next) {
15912
15953
  case 0:
15954
+ url = isUpsert ? this.app.urls.dataTableUpsert(this.className) : this.app.urls.dataTable(this.className);
15913
15955
  return _context.abrupt("return", this.app.request.put({
15914
- url: this.app.urls.dataTable(this.className),
15956
+ url: url,
15915
15957
  data: convertToServerRecord(object)
15916
15958
  }).then(function (result) {
15917
15959
  return _this.parseResponse(result);
15918
15960
  }));
15919
15961
 
15920
- case 1:
15962
+ case 2:
15921
15963
  case "end":
15922
15964
  return _context.stop();
15923
15965
  }
@@ -15925,7 +15967,7 @@ var DataStore = /*#__PURE__*/function () {
15925
15967
  }, _callee, this);
15926
15968
  }));
15927
15969
 
15928
- function save(_x) {
15970
+ function save(_x, _x2) {
15929
15971
  return _save.apply(this, arguments);
15930
15972
  }
15931
15973
 
@@ -15956,7 +15998,7 @@ var DataStore = /*#__PURE__*/function () {
15956
15998
  }, _callee2, this);
15957
15999
  }));
15958
16000
 
15959
- function deepSave(_x2) {
16001
+ function deepSave(_x3) {
15960
16002
  return _deepSave.apply(this, arguments);
15961
16003
  }
15962
16004
 
@@ -15993,7 +16035,7 @@ var DataStore = /*#__PURE__*/function () {
15993
16035
  }, _callee3, this);
15994
16036
  }));
15995
16037
 
15996
- function remove(_x3) {
16038
+ function remove(_x4) {
15997
16039
  return _remove.apply(this, arguments);
15998
16040
  }
15999
16041
 
@@ -16024,7 +16066,7 @@ var DataStore = /*#__PURE__*/function () {
16024
16066
  }, _callee4, this);
16025
16067
  }));
16026
16068
 
16027
- function find(_x4) {
16069
+ function find(_x5) {
16028
16070
  return _find.apply(this, arguments);
16029
16071
  }
16030
16072
 
@@ -16051,7 +16093,7 @@ var DataStore = /*#__PURE__*/function () {
16051
16093
  }, _callee5, this);
16052
16094
  }));
16053
16095
 
16054
- function group(_x5) {
16096
+ function group(_x6) {
16055
16097
  return _group.apply(this, arguments);
16056
16098
  }
16057
16099
 
@@ -16086,7 +16128,7 @@ var DataStore = /*#__PURE__*/function () {
16086
16128
  }, _callee6, this);
16087
16129
  }));
16088
16130
 
16089
- function countInGroup(_x6) {
16131
+ function countInGroup(_x7) {
16090
16132
  return _countInGroup.apply(this, arguments);
16091
16133
  }
16092
16134
 
@@ -16154,7 +16196,7 @@ var DataStore = /*#__PURE__*/function () {
16154
16196
  }, _callee7, this);
16155
16197
  }));
16156
16198
 
16157
- function findById(_x7, _x8) {
16199
+ function findById(_x8, _x9) {
16158
16200
  return _findById.apply(this, arguments);
16159
16201
  }
16160
16202
 
@@ -16185,7 +16227,7 @@ var DataStore = /*#__PURE__*/function () {
16185
16227
  }, _callee8, this);
16186
16228
  }));
16187
16229
 
16188
- function findFirst(_x9) {
16230
+ function findFirst(_x10) {
16189
16231
  return _findFirst.apply(this, arguments);
16190
16232
  }
16191
16233
 
@@ -16216,7 +16258,7 @@ var DataStore = /*#__PURE__*/function () {
16216
16258
  }, _callee9, this);
16217
16259
  }));
16218
16260
 
16219
- function findLast(_x10) {
16261
+ function findLast(_x11) {
16220
16262
  return _findLast.apply(this, arguments);
16221
16263
  }
16222
16264
 
@@ -16273,7 +16315,7 @@ var DataStore = /*#__PURE__*/function () {
16273
16315
  }, _callee10, this);
16274
16316
  }));
16275
16317
 
16276
- function getObjectCount(_x11) {
16318
+ function getObjectCount(_x12) {
16277
16319
  return _getObjectCount.apply(this, arguments);
16278
16320
  }
16279
16321
 
@@ -16326,7 +16368,7 @@ var DataStore = /*#__PURE__*/function () {
16326
16368
  }, _callee11, this);
16327
16369
  }));
16328
16370
 
16329
- function loadRelations(_x12, _x13) {
16371
+ function loadRelations(_x13, _x14) {
16330
16372
  return _loadRelations.apply(this, arguments);
16331
16373
  }
16332
16374
 
@@ -16350,7 +16392,7 @@ var DataStore = /*#__PURE__*/function () {
16350
16392
  }, _callee12, this);
16351
16393
  }));
16352
16394
 
16353
- function setRelation(_x14, _x15, _x16) {
16395
+ function setRelation(_x15, _x16, _x17) {
16354
16396
  return _setRelation.apply(this, arguments);
16355
16397
  }
16356
16398
 
@@ -16374,7 +16416,7 @@ var DataStore = /*#__PURE__*/function () {
16374
16416
  }, _callee13, this);
16375
16417
  }));
16376
16418
 
16377
- function addRelation(_x17, _x18, _x19) {
16419
+ function addRelation(_x18, _x19, _x20) {
16378
16420
  return _addRelation.apply(this, arguments);
16379
16421
  }
16380
16422
 
@@ -16398,7 +16440,7 @@ var DataStore = /*#__PURE__*/function () {
16398
16440
  }, _callee14, this);
16399
16441
  }));
16400
16442
 
16401
- function deleteRelation(_x20, _x21, _x22) {
16443
+ function deleteRelation(_x21, _x22, _x23) {
16402
16444
  return _deleteRelation.apply(this, arguments);
16403
16445
  }
16404
16446
 
@@ -16443,22 +16485,67 @@ var DataStore = /*#__PURE__*/function () {
16443
16485
  }, _callee15, this);
16444
16486
  }));
16445
16487
 
16446
- function bulkCreate(_x23) {
16488
+ function bulkCreate(_x24) {
16447
16489
  return _bulkCreate.apply(this, arguments);
16448
16490
  }
16449
16491
 
16450
16492
  return bulkCreate;
16451
16493
  }()
16452
16494
  }, {
16453
- key: "bulkUpdate",
16495
+ key: "bulkUpsert",
16454
16496
  value: function () {
16455
- var _bulkUpdate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16(condition, changes) {
16497
+ var _bulkUpsert = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16(objects) {
16498
+ var errorMessage;
16456
16499
  return _regenerator["default"].wrap(function _callee16$(_context16) {
16457
16500
  while (1) {
16458
16501
  switch (_context16.prev = _context16.next) {
16502
+ case 0:
16503
+ errorMessage = 'Objects must be provided and must be an array of objects.';
16504
+
16505
+ if (!(!objects || !Array.isArray(objects) || !objects.length)) {
16506
+ _context16.next = 3;
16507
+ break;
16508
+ }
16509
+
16510
+ throw new Error(errorMessage);
16511
+
16512
+ case 3:
16513
+ objects = objects.map(function (object) {
16514
+ if (!object || (0, _typeof2["default"])(object) !== 'object' || Array.isArray(object)) {
16515
+ throw new Error(errorMessage);
16516
+ }
16517
+
16518
+ return object;
16519
+ });
16520
+ return _context16.abrupt("return", this.app.request.put({
16521
+ url: this.app.urls.dataBulkTableUpsert(this.className),
16522
+ data: objects
16523
+ }));
16524
+
16525
+ case 5:
16526
+ case "end":
16527
+ return _context16.stop();
16528
+ }
16529
+ }
16530
+ }, _callee16, this);
16531
+ }));
16532
+
16533
+ function bulkUpsert(_x25) {
16534
+ return _bulkUpsert.apply(this, arguments);
16535
+ }
16536
+
16537
+ return bulkUpsert;
16538
+ }()
16539
+ }, {
16540
+ key: "bulkUpdate",
16541
+ value: function () {
16542
+ var _bulkUpdate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee17(condition, changes) {
16543
+ return _regenerator["default"].wrap(function _callee17$(_context17) {
16544
+ while (1) {
16545
+ switch (_context17.prev = _context17.next) {
16459
16546
  case 0:
16460
16547
  if (!(!condition || typeof condition !== 'string')) {
16461
- _context16.next = 2;
16548
+ _context17.next = 2;
16462
16549
  break;
16463
16550
  }
16464
16551
 
@@ -16466,14 +16553,14 @@ var DataStore = /*#__PURE__*/function () {
16466
16553
 
16467
16554
  case 2:
16468
16555
  if (!(!changes || (0, _typeof2["default"])(changes) !== 'object' || Array.isArray(changes))) {
16469
- _context16.next = 4;
16556
+ _context17.next = 4;
16470
16557
  break;
16471
16558
  }
16472
16559
 
16473
16560
  throw new Error('Changes must be provided and must be an object.');
16474
16561
 
16475
16562
  case 4:
16476
- return _context16.abrupt("return", this.app.request.put({
16563
+ return _context17.abrupt("return", this.app.request.put({
16477
16564
  url: this.app.urls.dataBulkTable(this.className),
16478
16565
  query: {
16479
16566
  where: condition
@@ -16483,13 +16570,13 @@ var DataStore = /*#__PURE__*/function () {
16483
16570
 
16484
16571
  case 5:
16485
16572
  case "end":
16486
- return _context16.stop();
16573
+ return _context17.stop();
16487
16574
  }
16488
16575
  }
16489
- }, _callee16, this);
16576
+ }, _callee17, this);
16490
16577
  }));
16491
16578
 
16492
- function bulkUpdate(_x24, _x25) {
16579
+ function bulkUpdate(_x26, _x27) {
16493
16580
  return _bulkUpdate.apply(this, arguments);
16494
16581
  }
16495
16582
 
@@ -16498,14 +16585,14 @@ var DataStore = /*#__PURE__*/function () {
16498
16585
  }, {
16499
16586
  key: "bulkDelete",
16500
16587
  value: function () {
16501
- var _bulkDelete = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee17(condition) {
16588
+ var _bulkDelete = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee18(condition) {
16502
16589
  var queryData, objectIds;
16503
- return _regenerator["default"].wrap(function _callee17$(_context17) {
16590
+ return _regenerator["default"].wrap(function _callee18$(_context18) {
16504
16591
  while (1) {
16505
- switch (_context17.prev = _context17.next) {
16592
+ switch (_context18.prev = _context18.next) {
16506
16593
  case 0:
16507
16594
  if (!(!condition || typeof condition !== 'string' && !Array.isArray(condition))) {
16508
- _context17.next = 2;
16595
+ _context18.next = 2;
16509
16596
  break;
16510
16597
  }
16511
16598
 
@@ -16529,20 +16616,20 @@ var DataStore = /*#__PURE__*/function () {
16529
16616
  queryData.where = "objectId in (".concat(objectIds.join(','), ")");
16530
16617
  }
16531
16618
 
16532
- return _context17.abrupt("return", this.app.request.post({
16619
+ return _context18.abrupt("return", this.app.request.post({
16533
16620
  url: this.app.urls.dataBulkTableDelete(this.className),
16534
16621
  data: queryData
16535
16622
  }));
16536
16623
 
16537
16624
  case 5:
16538
16625
  case "end":
16539
- return _context17.stop();
16626
+ return _context18.stop();
16540
16627
  }
16541
16628
  }
16542
- }, _callee17, this);
16629
+ }, _callee18, this);
16543
16630
  }));
16544
16631
 
16545
- function bulkDelete(_x26) {
16632
+ function bulkDelete(_x28) {
16546
16633
  return _bulkDelete.apply(this, arguments);
16547
16634
  }
16548
16635
 
@@ -20346,6 +20433,8 @@ var OperationType = {
20346
20433
  UPDATE_BULK: 'UPDATE_BULK',
20347
20434
  DELETE: 'DELETE',
20348
20435
  DELETE_BULK: 'DELETE_BULK',
20436
+ UPSERT: 'UPSERT',
20437
+ UPSERT_BULK: 'UPSERT_BULK',
20349
20438
  FIND: 'FIND',
20350
20439
  ADD_RELATION: 'ADD_RELATION',
20351
20440
  SET_RELATION: 'SET_RELATION',
@@ -20680,6 +20769,37 @@ var UnitOfWork = /*#__PURE__*/function () {
20680
20769
 
20681
20770
  return this.addOperations(_constants.OperationType.FIND, tableName, payload);
20682
20771
  }
20772
+ /**
20773
+ * upsert(object: object): OpResult;
20774
+ * upsert(tableName: string, object: object): OpResult;
20775
+ * **/
20776
+
20777
+ }, {
20778
+ key: "upsert",
20779
+ value: function upsert() {
20780
+ var tableName;
20781
+ var changes;
20782
+
20783
+ if (arguments.length === 1) {
20784
+ tableName = _utils["default"].getClassName(arguments.length <= 0 ? undefined : arguments[0]);
20785
+ changes = arguments.length <= 0 ? undefined : arguments[0];
20786
+ } else if (arguments.length === 2) {
20787
+ tableName = arguments.length <= 0 ? undefined : arguments[0];
20788
+ changes = arguments.length <= 1 ? undefined : arguments[1];
20789
+ } else {
20790
+ throw new Error('Invalid arguments');
20791
+ }
20792
+
20793
+ if (!tableName || typeof tableName !== 'string') {
20794
+ throw new Error('Invalid arguments');
20795
+ }
20796
+
20797
+ if (!changes || (0, _typeof2["default"])(changes) !== 'object' || Array.isArray(changes)) {
20798
+ throw new Error('Invalid arguments');
20799
+ }
20800
+
20801
+ return this.addOperations(_constants.OperationType.UPSERT, tableName, changes);
20802
+ }
20683
20803
  /**
20684
20804
  * create(object: object): OpResult;
20685
20805
  * create(tableName: string, object: object): OpResult;
@@ -20808,6 +20928,29 @@ var UnitOfWork = /*#__PURE__*/function () {
20808
20928
 
20809
20929
  return this.addOperations(_constants.OperationType.DELETE, tableName, object);
20810
20930
  }
20931
+ /**
20932
+ * bulkUpsert(tableName: string, objects: object[]): OpResult;
20933
+ * bulkUpsert(objects: object[]): OpResult;
20934
+ * **/
20935
+
20936
+ }, {
20937
+ key: "bulkUpsert",
20938
+ value: function bulkUpsert(tableName, objects) {
20939
+ if (Array.isArray(tableName)) {
20940
+ objects = tableName;
20941
+ tableName = _utils["default"].getClassName(objects[0]);
20942
+ }
20943
+
20944
+ if (!objects || !Array.isArray(objects)) {
20945
+ throw new Error('Objects must be an array of objects.');
20946
+ }
20947
+
20948
+ if (!tableName || typeof tableName !== 'string') {
20949
+ throw new Error('Table Name must be a string.');
20950
+ }
20951
+
20952
+ return this.addOperations(_constants.OperationType.UPSERT_BULK, tableName, objects);
20953
+ }
20811
20954
  /**
20812
20955
  * bulkCreate(tableName: string, objects: object[]): OpResult;
20813
20956
  * bulkCreate(objects: object[]): OpResult;
@@ -21184,9 +21327,14 @@ var OperationJSONAdapter = {
21184
21327
  payload = _ref3.payload;
21185
21328
  return uow.update.call(uow, table, resolveOpResultValueReference(uow, payload));
21186
21329
  },
21187
- UPDATE_BULK: function UPDATE_BULK(uow, _ref4) {
21330
+ UPSERT: function UPSERT(uow, _ref4) {
21188
21331
  var table = _ref4.table,
21189
21332
  payload = _ref4.payload;
21333
+ return uow.upsert.call(uow, table, resolveOpResultValueReference(uow, payload));
21334
+ },
21335
+ UPDATE_BULK: function UPDATE_BULK(uow, _ref5) {
21336
+ var table = _ref5.table,
21337
+ payload = _ref5.payload;
21190
21338
  var args = baseBulkArgs(uow, {
21191
21339
  table: table,
21192
21340
  payload: payload
@@ -21194,55 +21342,60 @@ var OperationJSONAdapter = {
21194
21342
  args.push(resolveOpResultValueReference(uow, payload.changes));
21195
21343
  return uow.bulkUpdate.apply(uow, args);
21196
21344
  },
21197
- DELETE_BULK: function DELETE_BULK(uow, _ref5) {
21198
- var table = _ref5.table,
21199
- payload = _ref5.payload;
21345
+ DELETE_BULK: function DELETE_BULK(uow, _ref6) {
21346
+ var table = _ref6.table,
21347
+ payload = _ref6.payload;
21200
21348
  var args = baseBulkArgs(uow, {
21201
21349
  table: table,
21202
21350
  payload: payload
21203
21351
  });
21204
21352
  return uow.bulkDelete.apply(uow, args);
21205
21353
  },
21206
- CREATE_BULK: function CREATE_BULK(uow, _ref6) {
21207
- var table = _ref6.table,
21208
- payload = _ref6.payload;
21209
- return uow.bulkCreate.call(uow, table, resolveOpResultValueReference(uow, payload));
21210
- },
21211
- SET_RELATION: function SET_RELATION(uow, _ref7) {
21354
+ CREATE_BULK: function CREATE_BULK(uow, _ref7) {
21212
21355
  var table = _ref7.table,
21213
21356
  payload = _ref7.payload;
21357
+ return uow.bulkCreate.call(uow, table, resolveOpResultValueReference(uow, payload));
21358
+ },
21359
+ UPSERT_BULK: function UPSERT_BULK(uow, _ref8) {
21360
+ var table = _ref8.table,
21361
+ payload = _ref8.payload;
21362
+ return uow.bulkUpsert.call(uow, table, resolveOpResultValueReference(uow, payload));
21363
+ },
21364
+ SET_RELATION: function SET_RELATION(uow, _ref9) {
21365
+ var table = _ref9.table,
21366
+ payload = _ref9.payload;
21214
21367
  return updateRelations(uow, 'setRelation', {
21215
21368
  table: table,
21216
21369
  payload: payload
21217
21370
  });
21218
21371
  },
21219
- DELETE_RELATION: function DELETE_RELATION(uow, _ref8) {
21220
- var table = _ref8.table,
21221
- payload = _ref8.payload;
21372
+ DELETE_RELATION: function DELETE_RELATION(uow, _ref10) {
21373
+ var table = _ref10.table,
21374
+ payload = _ref10.payload;
21222
21375
  return updateRelations(uow, 'deleteRelation', {
21223
21376
  table: table,
21224
21377
  payload: payload
21225
21378
  });
21226
21379
  },
21227
- ADD_RELATION: function ADD_RELATION(uow, _ref9) {
21228
- var table = _ref9.table,
21229
- payload = _ref9.payload;
21380
+ ADD_RELATION: function ADD_RELATION(uow, _ref11) {
21381
+ var table = _ref11.table,
21382
+ payload = _ref11.payload;
21230
21383
  return updateRelations(uow, 'addToRelation', {
21231
21384
  table: table,
21232
21385
  payload: payload
21233
21386
  });
21234
21387
  },
21235
- FIND: function FIND(uow, _ref10) {
21236
- var table = _ref10.table,
21237
- payload = _ref10.payload;
21388
+ FIND: function FIND(uow, _ref12) {
21389
+ var table = _ref12.table,
21390
+ payload = _ref12.payload;
21238
21391
  return uow.addOperations(_constants.OperationType.FIND, table, payload);
21239
21392
  }
21240
21393
  };
21241
21394
  exports.OperationJSONAdapter = OperationJSONAdapter;
21242
21395
 
21243
- function baseBulkArgs(uow, _ref11) {
21244
- var table = _ref11.table,
21245
- payload = _ref11.payload;
21396
+ function baseBulkArgs(uow, _ref13) {
21397
+ var table = _ref13.table,
21398
+ payload = _ref13.payload;
21246
21399
  var args = [];
21247
21400
 
21248
21401
  if (payload.conditional) {
@@ -21262,9 +21415,9 @@ function baseBulkArgs(uow, _ref11) {
21262
21415
  return args;
21263
21416
  }
21264
21417
 
21265
- function updateRelations(uow, method, _ref12) {
21266
- var table = _ref12.table,
21267
- payload = _ref12.payload;
21418
+ function updateRelations(uow, method, _ref14) {
21419
+ var table = _ref14.table,
21420
+ payload = _ref14.payload;
21268
21421
  var args = [table];
21269
21422
 
21270
21423
  if (typeof payload.parentObject === 'string') {
@@ -21629,6 +21782,11 @@ var Urls = /*#__PURE__*/function () {
21629
21782
  value: function dataTable(tableName) {
21630
21783
  return "".concat(this.data(), "/").concat(tableName);
21631
21784
  }
21785
+ }, {
21786
+ key: "dataTableUpsert",
21787
+ value: function dataTableUpsert(tableName) {
21788
+ return "".concat(this.data(), "/").concat(tableName, "/upsert");
21789
+ }
21632
21790
  }, {
21633
21791
  key: "dataTableDeepSave",
21634
21792
  value: function dataTableDeepSave(tableName) {
@@ -21669,6 +21827,11 @@ var Urls = /*#__PURE__*/function () {
21669
21827
  value: function dataBulkTable(tableName) {
21670
21828
  return "".concat(this.data(), "/bulk/").concat(tableName);
21671
21829
  }
21830
+ }, {
21831
+ key: "dataBulkTableUpsert",
21832
+ value: function dataBulkTableUpsert(tableName) {
21833
+ return "".concat(this.data(), "/bulkupsert/").concat(tableName);
21834
+ }
21672
21835
  }, {
21673
21836
  key: "dataBulkTableDelete",
21674
21837
  value: function dataBulkTableDelete(tableName) {