@aws-amplify/datastore 3.11.4-unstable.11 → 3.11.4-unstable.12

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.
@@ -82313,10 +82313,21 @@ var createModelClass = function createModelClass(modelDefinition) {
82313
82313
  }, function (p) {
82314
82314
  return patches = p;
82315
82315
  });
82316
+ var hasExistingPatches = modelPatchesMap.has(source);
82316
82317
 
82317
- if (patches.length) {
82318
- modelPatchesMap.set(model, [patches, source]);
82319
- checkReadOnlyPropertyOnUpdate(patches, modelDefinition);
82318
+ if (patches.length || hasExistingPatches) {
82319
+ if (hasExistingPatches) {
82320
+ var _a = __read(modelPatchesMap.get(source), 2),
82321
+ existingPatches = _a[0],
82322
+ existingSource = _a[1];
82323
+
82324
+ var mergedPatches = Object(_util__WEBPACK_IMPORTED_MODULE_9__["mergePatches"])(existingSource, existingPatches, patches);
82325
+ modelPatchesMap.set(model, [mergedPatches, existingSource]);
82326
+ checkReadOnlyPropertyOnUpdate(mergedPatches, modelDefinition);
82327
+ } else {
82328
+ modelPatchesMap.set(model, [patches, source]);
82329
+ checkReadOnlyPropertyOnUpdate(patches, modelDefinition);
82330
+ }
82320
82331
  }
82321
82332
 
82322
82333
  return model;
@@ -96271,7 +96282,7 @@ var LimitTimerRaceResolvedValues;
96271
96282
  /*!*************************!*\
96272
96283
  !*** ./lib-esm/util.js ***!
96273
96284
  \*************************/
96274
- /*! exports provided: exhaustiveCheck, isNullOrUndefined, validatePredicate, validatePredicateField, isModelConstructor, registerNonModelClass, isNonModelConstructor, processCompositeKeys, establishRelationAndKeys, traverseModel, getIndex, getIndexFromAssociation, NAMESPACES, USER, SYNC, STORAGE, DATASTORE, isPrivateMode, monotonicUlidFactory, getNow, sortCompareFunction, valuesEqual, isAWSDate, isAWSTime, isAWSDateTime, isAWSTimestamp, isAWSEmail, isAWSJSON, isAWSURL, isAWSPhone, isAWSIPAddress, DeferredPromise, DeferredCallbackResolver */
96285
+ /*! exports provided: exhaustiveCheck, isNullOrUndefined, validatePredicate, validatePredicateField, isModelConstructor, registerNonModelClass, isNonModelConstructor, processCompositeKeys, establishRelationAndKeys, traverseModel, getIndex, getIndexFromAssociation, NAMESPACES, USER, SYNC, STORAGE, DATASTORE, isPrivateMode, monotonicUlidFactory, getNow, sortCompareFunction, valuesEqual, isAWSDate, isAWSTime, isAWSDateTime, isAWSTimestamp, isAWSEmail, isAWSJSON, isAWSURL, isAWSPhone, isAWSIPAddress, DeferredPromise, DeferredCallbackResolver, mergePatches */
96275
96286
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
96276
96287
 
96277
96288
  "use strict";
@@ -96309,13 +96320,15 @@ __webpack_require__.r(__webpack_exports__);
96309
96320
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isAWSIPAddress", function() { return isAWSIPAddress; });
96310
96321
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeferredPromise", function() { return DeferredPromise; });
96311
96322
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeferredCallbackResolver", function() { return DeferredCallbackResolver; });
96323
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergePatches", function() { return mergePatches; });
96312
96324
  /* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! buffer */ "../../node_modules/buffer/index.js");
96313
96325
  /* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(buffer__WEBPACK_IMPORTED_MODULE_0__);
96314
96326
  /* harmony import */ var ulid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ulid */ "../../node_modules/ulid/dist/index.esm.js");
96315
96327
  /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uuid */ "./node_modules/uuid/index.js");
96316
96328
  /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_2__);
96317
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ "./lib-esm/types.js");
96318
- /* harmony import */ var amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! amazon-cognito-identity-js */ "../amazon-cognito-identity-js/es/index.js");
96329
+ /* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! immer */ "./node_modules/immer/dist/immer.esm.js");
96330
+ /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./types */ "./lib-esm/types.js");
96331
+ /* harmony import */ var amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! amazon-cognito-identity-js */ "../amazon-cognito-identity-js/es/index.js");
96319
96332
  function _typeof(obj) {
96320
96333
  "@babel/helpers - typeof";
96321
96334
 
@@ -96526,6 +96539,7 @@ var __values = undefined && undefined.__values || function (o) {
96526
96539
 
96527
96540
 
96528
96541
 
96542
+
96529
96543
  var exhaustiveCheck = function exhaustiveCheck(obj, throwOnError) {
96530
96544
  if (throwOnError === void 0) {
96531
96545
  throwOnError = true;
@@ -96565,7 +96579,7 @@ var validatePredicate = function validatePredicate(model, groupType, predicatesO
96565
96579
  }
96566
96580
 
96567
96581
  var result = predicatesOrGroups[filterType](function (predicateOrGroup) {
96568
- if (Object(_types__WEBPACK_IMPORTED_MODULE_3__["isPredicateObj"])(predicateOrGroup)) {
96582
+ if (Object(_types__WEBPACK_IMPORTED_MODULE_4__["isPredicateObj"])(predicateOrGroup)) {
96569
96583
  var field = predicateOrGroup.field,
96570
96584
  operator = predicateOrGroup.operator,
96571
96585
  operand = predicateOrGroup.operand;
@@ -96573,7 +96587,7 @@ var validatePredicate = function validatePredicate(model, groupType, predicatesO
96573
96587
  return validatePredicateField(value, operator, operand);
96574
96588
  }
96575
96589
 
96576
- if (Object(_types__WEBPACK_IMPORTED_MODULE_3__["isPredicateGroup"])(predicateOrGroup)) {
96590
+ if (Object(_types__WEBPACK_IMPORTED_MODULE_4__["isPredicateGroup"])(predicateOrGroup)) {
96577
96591
  var type = predicateOrGroup.type,
96578
96592
  predicates = predicateOrGroup.predicates;
96579
96593
  return validatePredicate(model, type, predicates);
@@ -96676,7 +96690,7 @@ var processCompositeKeys = function processCompositeKeys(attributes) {
96676
96690
  return sortKeyFields;
96677
96691
  };
96678
96692
 
96679
- var compositeKeyFields = attributes.filter(_types__WEBPACK_IMPORTED_MODULE_3__["isModelAttributeCompositeKey"]).map(extractCompositeSortKey);
96693
+ var compositeKeyFields = attributes.filter(_types__WEBPACK_IMPORTED_MODULE_4__["isModelAttributeCompositeKey"]).map(extractCompositeSortKey);
96680
96694
  /*
96681
96695
  if 2 sets of fields have any intersecting fields => combine them into 1 union set
96682
96696
  e.g., ['a', 'b', 'c'] and ['a', 'b', 'd'] => ['a', 'b', 'c', 'd']
@@ -96755,11 +96769,11 @@ var establishRelationAndKeys = function establishRelationAndKeys(namespace) {
96755
96769
  for (var _e = __values(model.attributes), _f = _e.next(); !_f.done; _f = _e.next()) {
96756
96770
  var attribute = _f.value;
96757
96771
 
96758
- if (!Object(_types__WEBPACK_IMPORTED_MODULE_3__["isModelAttributeKey"])(attribute)) {
96772
+ if (!Object(_types__WEBPACK_IMPORTED_MODULE_4__["isModelAttributeKey"])(attribute)) {
96759
96773
  continue;
96760
96774
  }
96761
96775
 
96762
- if (Object(_types__WEBPACK_IMPORTED_MODULE_3__["isModelAttributePrimaryKey"])(attribute)) {
96776
+ if (Object(_types__WEBPACK_IMPORTED_MODULE_4__["isModelAttributePrimaryKey"])(attribute)) {
96763
96777
  keys[mKey].primaryKey = attribute.properties.fields;
96764
96778
  }
96765
96779
 
@@ -96986,7 +97000,7 @@ var isPrivateMode = function isPrivateMode() {
96986
97000
  };
96987
97001
 
96988
97002
  var randomBytes = function randomBytes(nBytes) {
96989
- return buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_4__["WordArray"]().random(nBytes).toString(), 'hex');
97003
+ return buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_5__["WordArray"]().random(nBytes).toString(), 'hex');
96990
97004
  };
96991
97005
 
96992
97006
  var prng = function prng() {
@@ -97031,7 +97045,7 @@ function sortCompareFunction(sortPredicates) {
97031
97045
  var field = predicate.field,
97032
97046
  sortDirection = predicate.sortDirection; // reverse result when direction is descending
97033
97047
 
97034
- var sortMultiplier = sortDirection === _types__WEBPACK_IMPORTED_MODULE_3__["SortDirection"].ASCENDING ? 1 : -1;
97048
+ var sortMultiplier = sortDirection === _types__WEBPACK_IMPORTED_MODULE_4__["SortDirection"].ASCENDING ? 1 : -1;
97035
97049
 
97036
97050
  if (a[field] < b[field]) {
97037
97051
  return -1 * sortMultiplier;
@@ -97220,7 +97234,7 @@ function () {
97220
97234
 
97221
97235
  this.timerPromise = new Promise(function (resolve, reject) {
97222
97236
  _this.timer = setTimeout(function () {
97223
- resolve(_types__WEBPACK_IMPORTED_MODULE_3__["LimitTimerRaceResolvedValues"].TIMER);
97237
+ resolve(_types__WEBPACK_IMPORTED_MODULE_4__["LimitTimerRaceResolvedValues"].TIMER);
97224
97238
  }, _this.maxInterval);
97225
97239
  });
97226
97240
  };
@@ -97280,13 +97294,41 @@ function () {
97280
97294
  };
97281
97295
 
97282
97296
  DeferredCallbackResolver.prototype.resolve = function () {
97283
- this.limitPromise.resolve(_types__WEBPACK_IMPORTED_MODULE_3__["LimitTimerRaceResolvedValues"].LIMIT);
97297
+ this.limitPromise.resolve(_types__WEBPACK_IMPORTED_MODULE_4__["LimitTimerRaceResolvedValues"].LIMIT);
97284
97298
  };
97285
97299
 
97286
97300
  return DeferredCallbackResolver;
97287
97301
  }();
97288
97302
 
97289
97303
 
97304
+ /**
97305
+ * merge two sets of patches created by immer produce.
97306
+ * newPatches take precedent over oldPatches for patches modifying the same path.
97307
+ * In the case many consecutive pathces are merged the original model should
97308
+ * always be the root model.
97309
+ *
97310
+ * Example:
97311
+ * A -> B, patches1
97312
+ * B -> C, patches2
97313
+ *
97314
+ * mergePatches(A, patches1, patches2) to get patches for A -> C
97315
+ *
97316
+ * @param originalSource the original Model the patches should be applied to
97317
+ * @param oldPatches immer produce patch list
97318
+ * @param newPatches immer produce patch list (will take precedence)
97319
+ * @return merged patches
97320
+ */
97321
+
97322
+ function mergePatches(originalSource, oldPatches, newPatches) {
97323
+ var patchesToMerge = oldPatches.concat(newPatches);
97324
+ var patches;
97325
+ Object(immer__WEBPACK_IMPORTED_MODULE_3__["produce"])(originalSource, function (draft) {
97326
+ Object(immer__WEBPACK_IMPORTED_MODULE_3__["applyPatches"])(draft, patchesToMerge);
97327
+ }, function (p) {
97328
+ patches = p;
97329
+ });
97330
+ return patches;
97331
+ }
97290
97332
 
97291
97333
  /***/ }),
97292
97334