@aws-amplify/datastore 4.7.5 → 5.0.1-console-preview.4208d73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +4 -0
  2. package/lib/authModeStrategies/defaultAuthStrategy.js +3 -2
  3. package/lib/authModeStrategies/index.js +3 -3
  4. package/lib/authModeStrategies/multiAuthStrategy.js +81 -24
  5. package/lib/datastore/datastore.d.ts +3 -4
  6. package/lib/datastore/datastore.js +361 -227
  7. package/lib/index.d.ts +1 -1
  8. package/lib/index.js +25 -12
  9. package/lib/predicates/index.js +46 -12
  10. package/lib/predicates/next.d.ts +2 -2
  11. package/lib/predicates/next.js +172 -74
  12. package/lib/predicates/sort.js +3 -4
  13. package/lib/ssr/index.js +1 -1
  14. package/lib/storage/adapter/AsyncStorageAdapter.js +240 -128
  15. package/lib/storage/adapter/AsyncStorageDatabase.js +100 -39
  16. package/lib/storage/adapter/InMemoryStore.js +68 -17
  17. package/lib/storage/adapter/InMemoryStore.native.js +5 -3
  18. package/lib/storage/adapter/IndexedDBAdapter.js +355 -199
  19. package/lib/storage/adapter/StorageAdapterBase.js +154 -85
  20. package/lib/storage/adapter/getDefaultAdapter/index.js +8 -9
  21. package/lib/storage/adapter/getDefaultAdapter/index.native.js +4 -3
  22. package/lib/storage/adapter/index.js +0 -1
  23. package/lib/storage/relationship.js +31 -21
  24. package/lib/storage/storage.d.ts +3 -3
  25. package/lib/storage/storage.js +143 -61
  26. package/lib/sync/datastoreConnectivity.d.ts +1 -1
  27. package/lib/sync/datastoreConnectivity.js +57 -9
  28. package/lib/sync/datastoreReachability/index.js +3 -3
  29. package/lib/sync/datastoreReachability/index.native.js +7 -5
  30. package/lib/sync/index.d.ts +1 -1
  31. package/lib/sync/index.js +193 -125
  32. package/lib/sync/merger.js +81 -10
  33. package/lib/sync/outbox.js +101 -30
  34. package/lib/sync/processors/errorMaps.d.ts +1 -1
  35. package/lib/sync/processors/errorMaps.js +41 -6
  36. package/lib/sync/processors/mutation.d.ts +1 -1
  37. package/lib/sync/processors/mutation.js +192 -101
  38. package/lib/sync/processors/subscription.d.ts +4 -1
  39. package/lib/sync/processors/subscription.js +190 -178
  40. package/lib/sync/processors/sync.d.ts +1 -1
  41. package/lib/sync/processors/sync.js +113 -47
  42. package/lib/sync/utils.d.ts +4 -4
  43. package/lib/sync/utils.js +162 -81
  44. package/lib/tsconfig.tsbuildinfo +1 -0
  45. package/lib/types.d.ts +138 -140
  46. package/lib/types.js +40 -5
  47. package/lib/util.d.ts +9 -17
  48. package/lib/util.js +216 -100
  49. package/lib-esm/authModeStrategies/defaultAuthStrategy.js +0 -1
  50. package/lib-esm/authModeStrategies/index.js +0 -1
  51. package/lib-esm/authModeStrategies/multiAuthStrategy.js +76 -21
  52. package/lib-esm/datastore/datastore.d.ts +3 -4
  53. package/lib-esm/datastore/datastore.js +206 -77
  54. package/lib-esm/index.d.ts +1 -1
  55. package/lib-esm/index.js +0 -1
  56. package/lib-esm/predicates/index.js +40 -7
  57. package/lib-esm/predicates/next.d.ts +2 -2
  58. package/lib-esm/predicates/next.js +148 -52
  59. package/lib-esm/predicates/sort.js +2 -4
  60. package/lib-esm/ssr/index.js +0 -1
  61. package/lib-esm/storage/adapter/AsyncStorageAdapter.js +203 -95
  62. package/lib-esm/storage/adapter/AsyncStorageDatabase.js +66 -5
  63. package/lib-esm/storage/adapter/InMemoryStore.js +52 -2
  64. package/lib-esm/storage/adapter/InMemoryStore.native.js +0 -1
  65. package/lib-esm/storage/adapter/IndexedDBAdapter.js +271 -138
  66. package/lib-esm/storage/adapter/StorageAdapterBase.js +130 -62
  67. package/lib-esm/storage/adapter/getDefaultAdapter/index.js +2 -5
  68. package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js +0 -1
  69. package/lib-esm/storage/adapter/index.js +1 -1
  70. package/lib-esm/storage/relationship.js +27 -18
  71. package/lib-esm/storage/storage.d.ts +3 -3
  72. package/lib-esm/storage/storage.js +87 -9
  73. package/lib-esm/sync/datastoreConnectivity.d.ts +1 -1
  74. package/lib-esm/sync/datastoreConnectivity.js +48 -3
  75. package/lib-esm/sync/datastoreReachability/index.js +1 -2
  76. package/lib-esm/sync/datastoreReachability/index.native.js +1 -2
  77. package/lib-esm/sync/index.d.ts +1 -1
  78. package/lib-esm/sync/index.js +136 -72
  79. package/lib-esm/sync/merger.js +73 -3
  80. package/lib-esm/sync/outbox.js +75 -5
  81. package/lib-esm/sync/processors/errorMaps.d.ts +1 -1
  82. package/lib-esm/sync/processors/errorMaps.js +39 -5
  83. package/lib-esm/sync/processors/mutation.d.ts +1 -1
  84. package/lib-esm/sync/processors/mutation.js +130 -44
  85. package/lib-esm/sync/processors/subscription.d.ts +4 -1
  86. package/lib-esm/sync/processors/subscription.js +134 -126
  87. package/lib-esm/sync/processors/sync.d.ts +1 -1
  88. package/lib-esm/sync/processors/sync.js +74 -12
  89. package/lib-esm/sync/utils.d.ts +4 -4
  90. package/lib-esm/sync/utils.js +135 -55
  91. package/lib-esm/tsconfig.tsbuildinfo +1 -0
  92. package/lib-esm/types.d.ts +138 -140
  93. package/lib-esm/types.js +36 -2
  94. package/lib-esm/util.d.ts +9 -17
  95. package/lib-esm/util.js +96 -16
  96. package/package.json +139 -132
  97. package/src/authModeStrategies/multiAuthStrategy.ts +11 -12
  98. package/src/datastore/datastore.ts +32 -25
  99. package/src/predicates/sort.ts +3 -1
  100. package/src/storage/adapter/InMemoryStore.ts +1 -1
  101. package/src/storage/adapter/IndexedDBAdapter.ts +1 -1
  102. package/src/storage/adapter/StorageAdapterBase.ts +1 -1
  103. package/src/storage/adapter/getDefaultAdapter/index.ts +2 -3
  104. package/src/storage/storage.ts +1 -1
  105. package/src/sync/datastoreConnectivity.ts +2 -2
  106. package/src/sync/datastoreReachability/index.native.ts +1 -1
  107. package/src/sync/datastoreReachability/index.ts +1 -1
  108. package/src/sync/index.ts +69 -78
  109. package/src/sync/processors/mutation.ts +16 -10
  110. package/src/sync/processors/subscription.ts +55 -127
  111. package/src/sync/processors/sync.ts +8 -4
  112. package/src/sync/utils.ts +7 -8
  113. package/src/types.ts +4 -8
  114. package/src/util.ts +5 -6
  115. package/lib/.tsbuildinfo +0 -3
  116. package/lib/authModeStrategies/defaultAuthStrategy.js.map +0 -1
  117. package/lib/authModeStrategies/index.js.map +0 -1
  118. package/lib/authModeStrategies/multiAuthStrategy.js.map +0 -1
  119. package/lib/datastore/datastore.js.map +0 -1
  120. package/lib/index.js.map +0 -1
  121. package/lib/predicates/index.js.map +0 -1
  122. package/lib/predicates/next.js.map +0 -1
  123. package/lib/predicates/sort.js.map +0 -1
  124. package/lib/ssr/index.js.map +0 -1
  125. package/lib/storage/adapter/AsyncStorageAdapter.js.map +0 -1
  126. package/lib/storage/adapter/AsyncStorageDatabase.js.map +0 -1
  127. package/lib/storage/adapter/InMemoryStore.js.map +0 -1
  128. package/lib/storage/adapter/InMemoryStore.native.js.map +0 -1
  129. package/lib/storage/adapter/IndexedDBAdapter.js.map +0 -1
  130. package/lib/storage/adapter/StorageAdapterBase.js.map +0 -1
  131. package/lib/storage/adapter/getDefaultAdapter/index.js.map +0 -1
  132. package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
  133. package/lib/storage/adapter/index.js.map +0 -1
  134. package/lib/storage/relationship.js.map +0 -1
  135. package/lib/storage/storage.js.map +0 -1
  136. package/lib/sync/datastoreConnectivity.js.map +0 -1
  137. package/lib/sync/datastoreReachability/index.js.map +0 -1
  138. package/lib/sync/datastoreReachability/index.native.js.map +0 -1
  139. package/lib/sync/index.js.map +0 -1
  140. package/lib/sync/merger.js.map +0 -1
  141. package/lib/sync/outbox.js.map +0 -1
  142. package/lib/sync/processors/errorMaps.js.map +0 -1
  143. package/lib/sync/processors/mutation.js.map +0 -1
  144. package/lib/sync/processors/subscription.js.map +0 -1
  145. package/lib/sync/processors/sync.js.map +0 -1
  146. package/lib/sync/utils.js.map +0 -1
  147. package/lib/types.js.map +0 -1
  148. package/lib/util.js.map +0 -1
  149. package/lib-esm/.tsbuildinfo +0 -3
  150. package/lib-esm/authModeStrategies/defaultAuthStrategy.js.map +0 -1
  151. package/lib-esm/authModeStrategies/index.js.map +0 -1
  152. package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +0 -1
  153. package/lib-esm/datastore/datastore.js.map +0 -1
  154. package/lib-esm/index.js.map +0 -1
  155. package/lib-esm/predicates/index.js.map +0 -1
  156. package/lib-esm/predicates/next.js.map +0 -1
  157. package/lib-esm/predicates/sort.js.map +0 -1
  158. package/lib-esm/ssr/index.js.map +0 -1
  159. package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +0 -1
  160. package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +0 -1
  161. package/lib-esm/storage/adapter/InMemoryStore.js.map +0 -1
  162. package/lib-esm/storage/adapter/InMemoryStore.native.js.map +0 -1
  163. package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +0 -1
  164. package/lib-esm/storage/adapter/StorageAdapterBase.js.map +0 -1
  165. package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +0 -1
  166. package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
  167. package/lib-esm/storage/adapter/index.js.map +0 -1
  168. package/lib-esm/storage/relationship.js.map +0 -1
  169. package/lib-esm/storage/storage.js.map +0 -1
  170. package/lib-esm/sync/datastoreConnectivity.js.map +0 -1
  171. package/lib-esm/sync/datastoreReachability/index.js.map +0 -1
  172. package/lib-esm/sync/datastoreReachability/index.native.js.map +0 -1
  173. package/lib-esm/sync/index.js.map +0 -1
  174. package/lib-esm/sync/merger.js.map +0 -1
  175. package/lib-esm/sync/outbox.js.map +0 -1
  176. package/lib-esm/sync/processors/errorMaps.js.map +0 -1
  177. package/lib-esm/sync/processors/mutation.js.map +0 -1
  178. package/lib-esm/sync/processors/subscription.js.map +0 -1
  179. package/lib-esm/sync/processors/sync.js.map +0 -1
  180. package/lib-esm/sync/utils.js.map +0 -1
  181. package/lib-esm/types.js.map +0 -1
  182. package/lib-esm/util.js.map +0 -1
package/lib/util.js CHANGED
@@ -1,14 +1,96 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __read = (this && this.__read) || function (o, n) {
50
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
51
+ if (!m) return o;
52
+ var i = m.call(o), r, ar = [], e;
53
+ try {
54
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
+ }
56
+ catch (error) { e = { error: error }; }
57
+ finally {
58
+ try {
59
+ if (r && !r.done && (m = i["return"])) m.call(i);
60
+ }
61
+ finally { if (e) throw e.error; }
62
+ }
63
+ return ar;
64
+ };
65
+ var __values = (this && this.__values) || function(o) {
66
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
67
+ if (m) return m.call(o);
68
+ if (o && typeof o.length === "number") return {
69
+ next: function () {
70
+ if (o && i >= o.length) o = void 0;
71
+ return { value: o && o[i++], done: !o };
72
+ }
73
+ };
74
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
75
+ };
76
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
77
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
78
+ if (ar || !(i in from)) {
79
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
80
+ ar[i] = from[i];
81
+ }
82
+ }
83
+ return to.concat(ar || Array.prototype.slice.call(from));
84
+ };
2
85
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
86
+ exports.getIndexFromAssociation = exports.getIndex = exports.establishRelationAndKeys = exports.isIdOptionallyManaged = exports.isIdManaged = exports.extractPrimaryKeysAndValues = exports.extractPrimaryKeyValues = exports.extractPrimaryKeyFieldNames = exports.extractKeyIfExists = exports.processCompositeKeys = exports.getStorename = exports.mergePatches = exports.DeferredCallbackResolver = exports.DeferredPromise = exports.isAWSIPAddress = exports.isAWSPhone = exports.isAWSURL = exports.isAWSJSON = exports.isAWSEmail = exports.isAWSTimestamp = exports.isAWSDateTime = exports.isAWSTime = exports.isAWSDate = exports.asyncFilter = exports.asyncEvery = exports.asyncSome = exports.inMemoryPagination = exports.valuesEqual = exports.sortCompareFunction = exports.getNow = exports.monotonicUlidFactory = exports.isSafariCompatabilityMode = exports.isPrivateMode = exports.traverseModel = exports.isNonModelConstructor = exports.registerNonModelClass = exports.isModelConstructor = exports.validatePredicateField = exports.validatePredicate = exports.isNullOrUndefined = exports.exhaustiveCheck = exports.DATASTORE = exports.STORAGE = exports.SYNC = exports.USER = exports.NAMESPACES = exports.errorMessages = exports.IDENTIFIER_KEY_SEPARATOR = exports.DEFAULT_PRIMARY_KEY_VALUE_SEPARATOR = exports.ID = void 0;
87
+ exports.getTimestampFields = exports.getIndexKeys = exports.keysEqual = exports.indexNameFromKeys = exports.extractTargetNamesFromSrc = void 0;
4
88
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
89
  // SPDX-License-Identifier: Apache-2.0
6
- var buffer_1 = require("buffer");
7
90
  var ulid_1 = require("ulid");
8
91
  var uuid_1 = require("uuid");
9
92
  var immer_1 = require("immer");
10
93
  var types_1 = require("./types");
11
- var amazon_cognito_identity_js_1 = require("amazon-cognito-identity-js");
12
94
  var predicates_1 = require("./predicates");
13
95
  exports.ID = 'id';
14
96
  /**
@@ -46,16 +128,18 @@ var SYNC = NAMESPACES.SYNC;
46
128
  exports.SYNC = SYNC;
47
129
  var STORAGE = NAMESPACES.STORAGE;
48
130
  exports.STORAGE = STORAGE;
49
- exports.exhaustiveCheck = function (obj, throwOnError) {
131
+ var exhaustiveCheck = function (obj, throwOnError) {
50
132
  if (throwOnError === void 0) { throwOnError = true; }
51
133
  if (throwOnError) {
52
- throw new Error("Invalid " + obj);
134
+ throw new Error("Invalid ".concat(obj));
53
135
  }
54
136
  };
55
- exports.isNullOrUndefined = function (val) {
137
+ exports.exhaustiveCheck = exhaustiveCheck;
138
+ var isNullOrUndefined = function (val) {
56
139
  return typeof val === 'undefined' || val === undefined || val === null;
57
140
  };
58
- exports.validatePredicate = function (model, groupType, predicatesOrGroups) {
141
+ exports.isNullOrUndefined = isNullOrUndefined;
142
+ var validatePredicate = function (model, groupType, predicatesOrGroups) {
59
143
  var filterType;
60
144
  var isNegation = false;
61
145
  if (predicatesOrGroups.length === 0) {
@@ -73,23 +157,24 @@ exports.validatePredicate = function (model, groupType, predicatesOrGroups) {
73
157
  filterType = 'some';
74
158
  break;
75
159
  default:
76
- throw new Error("Invalid " + groupType);
160
+ throw new Error("Invalid ".concat(groupType));
77
161
  }
78
162
  var result = predicatesOrGroups[filterType](function (predicateOrGroup) {
79
- if (types_1.isPredicateObj(predicateOrGroup)) {
163
+ if ((0, types_1.isPredicateObj)(predicateOrGroup)) {
80
164
  var field = predicateOrGroup.field, operator = predicateOrGroup.operator, operand = predicateOrGroup.operand;
81
165
  var value = model[field];
82
- return exports.validatePredicateField(value, operator, operand);
166
+ return (0, exports.validatePredicateField)(value, operator, operand);
83
167
  }
84
- if (types_1.isPredicateGroup(predicateOrGroup)) {
168
+ if ((0, types_1.isPredicateGroup)(predicateOrGroup)) {
85
169
  var type = predicateOrGroup.type, predicates = predicateOrGroup.predicates;
86
- return exports.validatePredicate(model, type, predicates);
170
+ return (0, exports.validatePredicate)(model, type, predicates);
87
171
  }
88
172
  throw new Error('Not a predicate or group');
89
173
  });
90
174
  return isNegation ? !result : result;
91
175
  };
92
- exports.validatePredicateField = function (value, operator, operand) {
176
+ exports.validatePredicate = validatePredicate;
177
+ var validatePredicateField = function (value, operator, operand) {
93
178
  switch (operator) {
94
179
  case 'ne':
95
180
  return value !== operand;
@@ -104,34 +189,37 @@ exports.validatePredicateField = function (value, operator, operand) {
104
189
  case 'gt':
105
190
  return value > operand;
106
191
  case 'between':
107
- var _c = tslib_1.__read(operand, 2), min = _c[0], max = _c[1];
192
+ var _c = __read(operand, 2), min = _c[0], max = _c[1];
108
193
  return value >= min && value <= max;
109
194
  case 'beginsWith':
110
- return (!exports.isNullOrUndefined(value) &&
195
+ return (!(0, exports.isNullOrUndefined)(value) &&
111
196
  value.startsWith(operand));
112
197
  case 'contains':
113
- return (!exports.isNullOrUndefined(value) &&
198
+ return (!(0, exports.isNullOrUndefined)(value) &&
114
199
  value.indexOf(operand) > -1);
115
200
  case 'notContains':
116
- return (exports.isNullOrUndefined(value) ||
201
+ return ((0, exports.isNullOrUndefined)(value) ||
117
202
  value.indexOf(operand) === -1);
118
203
  default:
119
204
  return false;
120
205
  }
121
206
  };
122
- exports.isModelConstructor = function (obj) {
207
+ exports.validatePredicateField = validatePredicateField;
208
+ var isModelConstructor = function (obj) {
123
209
  return (obj && typeof obj.copyOf === 'function');
124
210
  };
211
+ exports.isModelConstructor = isModelConstructor;
125
212
  var nonModelClasses = new WeakSet();
126
213
  function registerNonModelClass(clazz) {
127
214
  nonModelClasses.add(clazz);
128
215
  }
129
216
  exports.registerNonModelClass = registerNonModelClass;
130
- exports.isNonModelConstructor = function (obj) {
217
+ var isNonModelConstructor = function (obj) {
131
218
  return nonModelClasses.has(obj);
132
219
  };
220
+ exports.isNonModelConstructor = isNonModelConstructor;
133
221
  var topologicallySortedModels = new WeakMap();
134
- exports.traverseModel = function (srcModelName, instance, namespace, modelInstanceCreator, getModelConstructorByModelName) {
222
+ var traverseModel = function (srcModelName, instance, namespace, modelInstanceCreator, getModelConstructorByModelName) {
135
223
  var modelConstructor = getModelConstructorByModelName(namespace.name, srcModelName);
136
224
  var result = [];
137
225
  var newInstance = modelConstructor.copyOf(instance, function () { });
@@ -149,17 +237,18 @@ exports.traverseModel = function (srcModelName, instance, namespace, modelInstan
149
237
  });
150
238
  return result;
151
239
  };
240
+ exports.traverseModel = traverseModel;
152
241
  var privateModeCheckResult;
153
- exports.isPrivateMode = function () {
242
+ var isPrivateMode = function () {
154
243
  return new Promise(function (resolve) {
155
- var dbname = uuid_1.v4();
244
+ var dbname = (0, uuid_1.v4)();
156
245
  var db;
157
246
  var isPrivate = function () {
158
247
  privateModeCheckResult = false;
159
248
  resolve(true);
160
249
  };
161
- var isNotPrivate = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
162
- return tslib_1.__generator(this, function (_c) {
250
+ var isNotPrivate = function () { return __awaiter(void 0, void 0, void 0, function () {
251
+ return __generator(this, function (_c) {
163
252
  switch (_c.label) {
164
253
  case 0:
165
254
  if (!(db && db.result && typeof db.result.close === 'function')) return [3 /*break*/, 2];
@@ -188,6 +277,7 @@ exports.isPrivateMode = function () {
188
277
  db.onsuccess = isNotPrivate;
189
278
  });
190
279
  };
280
+ exports.isPrivateMode = isPrivateMode;
191
281
  var safariCompatabilityModeResult;
192
282
  /**
193
283
  * Whether the browser's implementation of IndexedDB breaks on array lookups
@@ -199,13 +289,13 @@ var safariCompatabilityModeResult;
199
289
  * In all known, modern Safari browsers as of Q4 2022, the query against an index like
200
290
  * this will *always* return `undefined`. So, the index needs to be created as a scalar.
201
291
  */
202
- exports.isSafariCompatabilityMode = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
292
+ var isSafariCompatabilityMode = function () { return __awaiter(void 0, void 0, void 0, function () {
203
293
  var dbName_1, storeName_1, indexName_1, db_1, rwTx, rwStore, result, error_1;
204
- return tslib_1.__generator(this, function (_c) {
294
+ return __generator(this, function (_c) {
205
295
  switch (_c.label) {
206
296
  case 0:
207
297
  _c.trys.push([0, 6, , 7]);
208
- dbName_1 = uuid_1.v4();
298
+ dbName_1 = (0, uuid_1.v4)();
209
299
  storeName_1 = 'indexedDBFeatureProbeStore';
210
300
  indexName_1 = 'idx';
211
301
  if (indexedDB === null)
@@ -277,12 +367,14 @@ exports.isSafariCompatabilityMode = function () { return tslib_1.__awaiter(void
277
367
  }
278
368
  });
279
369
  }); };
280
- var randomBytes = function (nBytes) {
281
- return buffer_1.Buffer.from(new amazon_cognito_identity_js_1.WordArray().random(nBytes).toString(), 'hex');
282
- };
283
- var prng = function () { return randomBytes(1).readUInt8(0) / 0xff; };
370
+ exports.isSafariCompatabilityMode = isSafariCompatabilityMode;
371
+ // TODO(v6): refactor this random number logic auth -> core
372
+ // const randomBytes = (nBytes: number): Buffer => {
373
+ // return Buffer.from(new WordArray().random(nBytes).toString(), 'hex');
374
+ // };
375
+ var prng = function () { return 10 / 0xff; };
284
376
  function monotonicUlidFactory(seed) {
285
- var ulid = ulid_1.monotonicFactory(prng);
377
+ var ulid = (0, ulid_1.monotonicFactory)(prng);
286
378
  return function () {
287
379
  return ulid(seed);
288
380
  };
@@ -317,7 +409,7 @@ function sortCompareFunction(sortPredicates) {
317
409
  try {
318
410
  // enable multi-field sort by iterating over predicates until
319
411
  // a comparison returns -1 or 1
320
- for (var sortPredicates_1 = tslib_1.__values(sortPredicates), sortPredicates_1_1 = sortPredicates_1.next(); !sortPredicates_1_1.done; sortPredicates_1_1 = sortPredicates_1.next()) {
412
+ for (var sortPredicates_1 = __values(sortPredicates), sortPredicates_1_1 = sortPredicates_1.next(); !sortPredicates_1_1.done; sortPredicates_1_1 = sortPredicates_1.next()) {
321
413
  var predicate = sortPredicates_1_1.value;
322
414
  var field = predicate.field, sortDirection = predicate.sortDirection;
323
415
  // reverse result when direction is descending
@@ -372,8 +464,8 @@ function valuesEqual(valA, valB, nullish) {
372
464
  return false;
373
465
  }
374
466
  if (a instanceof Set && b instanceof Set) {
375
- a = tslib_1.__spread(a);
376
- b = tslib_1.__spread(b);
467
+ a = __spreadArray([], __read(a), false);
468
+ b = __spreadArray([], __read(b), false);
377
469
  }
378
470
  if (a instanceof Map && b instanceof Map) {
379
471
  a = Object.fromEntries(a);
@@ -390,7 +482,7 @@ function valuesEqual(valA, valB, nullish) {
390
482
  // we want to iterate through bKeys
391
483
  var keys = aKeys.length >= bKeys.length ? aKeys : bKeys;
392
484
  try {
393
- for (var keys_1 = tslib_1.__values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
485
+ for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
394
486
  var key = keys_1_1.value;
395
487
  var aVal = a[key];
396
488
  var bVal = b[key];
@@ -441,14 +533,14 @@ exports.inMemoryPagination = inMemoryPagination;
441
533
  * @returns A `Promise<boolean>`, `true` if "some" items match; `false` otherwise.
442
534
  */
443
535
  function asyncSome(items, matches) {
444
- return tslib_1.__awaiter(this, void 0, void 0, function () {
536
+ return __awaiter(this, void 0, void 0, function () {
445
537
  var items_1, items_1_1, item, e_3_1;
446
538
  var e_3, _c;
447
- return tslib_1.__generator(this, function (_d) {
539
+ return __generator(this, function (_d) {
448
540
  switch (_d.label) {
449
541
  case 0:
450
542
  _d.trys.push([0, 5, 6, 7]);
451
- items_1 = tslib_1.__values(items), items_1_1 = items_1.next();
543
+ items_1 = __values(items), items_1_1 = items_1.next();
452
544
  _d.label = 1;
453
545
  case 1:
454
546
  if (!!items_1_1.done) return [3 /*break*/, 4];
@@ -487,14 +579,14 @@ exports.asyncSome = asyncSome;
487
579
  * @returns A `Promise<boolean>`, `true` if every item matches; `false` otherwise.
488
580
  */
489
581
  function asyncEvery(items, matches) {
490
- return tslib_1.__awaiter(this, void 0, void 0, function () {
582
+ return __awaiter(this, void 0, void 0, function () {
491
583
  var items_2, items_2_1, item, e_4_1;
492
584
  var e_4, _c;
493
- return tslib_1.__generator(this, function (_d) {
585
+ return __generator(this, function (_d) {
494
586
  switch (_d.label) {
495
587
  case 0:
496
588
  _d.trys.push([0, 5, 6, 7]);
497
- items_2 = tslib_1.__values(items), items_2_1 = items_2.next();
589
+ items_2 = __values(items), items_2_1 = items_2.next();
498
590
  _d.label = 1;
499
591
  case 1:
500
592
  if (!!items_2_1.done) return [3 /*break*/, 4];
@@ -534,17 +626,17 @@ exports.asyncEvery = asyncEvery;
534
626
  * @returns A `Promise<T>` of matching items.
535
627
  */
536
628
  function asyncFilter(items, matches) {
537
- return tslib_1.__awaiter(this, void 0, void 0, function () {
629
+ return __awaiter(this, void 0, void 0, function () {
538
630
  var results, items_3, items_3_1, item, e_5_1;
539
631
  var e_5, _c;
540
- return tslib_1.__generator(this, function (_d) {
632
+ return __generator(this, function (_d) {
541
633
  switch (_d.label) {
542
634
  case 0:
543
635
  results = [];
544
636
  _d.label = 1;
545
637
  case 1:
546
638
  _d.trys.push([1, 6, 7, 8]);
547
- items_3 = tslib_1.__values(items), items_3_1 = items_3.next();
639
+ items_3 = __values(items), items_3_1 = items_3.next();
548
640
  _d.label = 2;
549
641
  case 2:
550
642
  if (!!items_3_1.done) return [3 /*break*/, 5];
@@ -575,22 +667,27 @@ function asyncFilter(items, matches) {
575
667
  });
576
668
  }
577
669
  exports.asyncFilter = asyncFilter;
578
- exports.isAWSDate = function (val) {
670
+ var isAWSDate = function (val) {
579
671
  return !!/^\d{4}-\d{2}-\d{2}(Z|[+-]\d{2}:\d{2}($|:\d{2}))?$/.exec(val);
580
672
  };
581
- exports.isAWSTime = function (val) {
673
+ exports.isAWSDate = isAWSDate;
674
+ var isAWSTime = function (val) {
582
675
  return !!/^\d{2}:\d{2}(:\d{2}(.\d+)?)?(Z|[+-]\d{2}:\d{2}($|:\d{2}))?$/.exec(val);
583
676
  };
584
- exports.isAWSDateTime = function (val) {
677
+ exports.isAWSTime = isAWSTime;
678
+ var isAWSDateTime = function (val) {
585
679
  return !!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(.\d+)?)?(Z|[+-]\d{2}:\d{2}($|:\d{2}))?$/.exec(val);
586
680
  };
587
- exports.isAWSTimestamp = function (val) {
681
+ exports.isAWSDateTime = isAWSDateTime;
682
+ var isAWSTimestamp = function (val) {
588
683
  return !!/^\d+$/.exec(String(val));
589
684
  };
590
- exports.isAWSEmail = function (val) {
685
+ exports.isAWSTimestamp = isAWSTimestamp;
686
+ var isAWSEmail = function (val) {
591
687
  return !!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.exec(val);
592
688
  };
593
- exports.isAWSJSON = function (val) {
689
+ exports.isAWSEmail = isAWSEmail;
690
+ var isAWSJSON = function (val) {
594
691
  try {
595
692
  JSON.parse(val);
596
693
  return true;
@@ -599,7 +696,8 @@ exports.isAWSJSON = function (val) {
599
696
  return false;
600
697
  }
601
698
  };
602
- exports.isAWSURL = function (val) {
699
+ exports.isAWSJSON = isAWSJSON;
700
+ var isAWSURL = function (val) {
603
701
  try {
604
702
  return !!new URL(val);
605
703
  }
@@ -607,12 +705,15 @@ exports.isAWSURL = function (val) {
607
705
  return false;
608
706
  }
609
707
  };
610
- exports.isAWSPhone = function (val) {
708
+ exports.isAWSURL = isAWSURL;
709
+ var isAWSPhone = function (val) {
611
710
  return !!/^\+?\d[\d\s-]+$/.exec(val);
612
711
  };
613
- exports.isAWSIPAddress = function (val) {
712
+ exports.isAWSPhone = isAWSPhone;
713
+ var isAWSIPAddress = function (val) {
614
714
  return !!/((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?$))$/.exec(val);
615
715
  };
716
+ exports.isAWSIPAddress = isAWSIPAddress;
616
717
  var DeferredPromise = /** @class */ (function () {
617
718
  function DeferredPromise() {
618
719
  var self = this;
@@ -646,9 +747,9 @@ var DeferredCallbackResolver = /** @class */ (function () {
646
747
  });
647
748
  };
648
749
  DeferredCallbackResolver.prototype.racePromises = function () {
649
- return tslib_1.__awaiter(this, void 0, void 0, function () {
750
+ return __awaiter(this, void 0, void 0, function () {
650
751
  var winner, err_1;
651
- return tslib_1.__generator(this, function (_c) {
752
+ return __generator(this, function (_c) {
652
753
  switch (_c.label) {
653
754
  case 0:
654
755
  _c.trys.push([0, 2, 3, 4]);
@@ -710,18 +811,19 @@ exports.DeferredCallbackResolver = DeferredCallbackResolver;
710
811
  function mergePatches(originalSource, oldPatches, newPatches) {
711
812
  var patchesToMerge = oldPatches.concat(newPatches);
712
813
  var patches;
713
- immer_1.produce(originalSource, function (draft) {
714
- immer_1.applyPatches(draft, patchesToMerge);
814
+ (0, immer_1.produce)(originalSource, function (draft) {
815
+ (0, immer_1.applyPatches)(draft, patchesToMerge);
715
816
  }, function (p) {
716
817
  patches = p;
717
818
  });
718
819
  return patches;
719
820
  }
720
821
  exports.mergePatches = mergePatches;
721
- exports.getStorename = function (namespace, modelName) {
722
- var storeName = namespace + "_" + modelName;
822
+ var getStorename = function (namespace, modelName) {
823
+ var storeName = "".concat(namespace, "_").concat(modelName);
723
824
  return storeName;
724
825
  };
826
+ exports.getStorename = getStorename;
725
827
  //#region Key Utils
726
828
  /*
727
829
  When we have GSI(s) with composite sort keys defined on a model
@@ -755,11 +857,11 @@ exports.getStorename = function (namespace, modelName) {
755
857
 
756
858
  See 'processCompositeKeys' test in util.test.ts for more examples
757
859
  */
758
- exports.processCompositeKeys = function (attributes) {
860
+ var processCompositeKeys = function (attributes) {
759
861
  var extractCompositeSortKey = function (_c) {
760
862
  var
761
863
  // ignore the HK (fields[0]) we only need to include the composite sort key fields[1...n]
762
- _d = tslib_1.__read(_c.properties.fields), sortKeyFields = _d.slice(1);
864
+ _d = __read(_c.properties.fields), sortKeyFields = _d.slice(1);
763
865
  return sortKeyFields;
764
866
  };
765
867
  var compositeKeyFields = attributes
@@ -778,10 +880,10 @@ exports.processCompositeKeys = function (attributes) {
778
880
  }
779
881
  // does the current set share values with another set we've already added to `combined`?
780
882
  var intersectingSetIdx = combined.findIndex(function (existingSet) {
781
- return tslib_1.__spread(existingSet).some(function (f) { return sortKeyFieldsSet.has(f); });
883
+ return __spreadArray([], __read(existingSet), false).some(function (f) { return sortKeyFieldsSet.has(f); });
782
884
  });
783
885
  if (intersectingSetIdx > -1) {
784
- var union = new Set(tslib_1.__spread(combined[intersectingSetIdx], sortKeyFieldsSet));
886
+ var union = new Set(__spreadArray(__spreadArray([], __read(combined[intersectingSetIdx]), false), __read(sortKeyFieldsSet), false));
785
887
  // combine the current set with the intersecting set we found above
786
888
  combined[intersectingSetIdx] = union;
787
889
  }
@@ -798,45 +900,52 @@ exports.processCompositeKeys = function (attributes) {
798
900
  var combined = combineIntersecting(initial);
799
901
  return combined;
800
902
  };
801
- exports.extractKeyIfExists = function (modelDefinition) {
903
+ exports.processCompositeKeys = processCompositeKeys;
904
+ var extractKeyIfExists = function (modelDefinition) {
802
905
  var _c;
803
906
  var keyAttribute = (_c = modelDefinition === null || modelDefinition === void 0 ? void 0 : modelDefinition.attributes) === null || _c === void 0 ? void 0 : _c.find(types_1.isModelAttributeKey);
804
907
  return keyAttribute;
805
908
  };
806
- exports.extractPrimaryKeyFieldNames = function (modelDefinition) {
807
- var keyAttribute = exports.extractKeyIfExists(modelDefinition);
808
- if (keyAttribute && types_1.isModelAttributePrimaryKey(keyAttribute)) {
909
+ exports.extractKeyIfExists = extractKeyIfExists;
910
+ var extractPrimaryKeyFieldNames = function (modelDefinition) {
911
+ var keyAttribute = (0, exports.extractKeyIfExists)(modelDefinition);
912
+ if (keyAttribute && (0, types_1.isModelAttributePrimaryKey)(keyAttribute)) {
809
913
  return keyAttribute.properties.fields;
810
914
  }
811
915
  return [exports.ID];
812
916
  };
813
- exports.extractPrimaryKeyValues = function (model, keyFields) {
917
+ exports.extractPrimaryKeyFieldNames = extractPrimaryKeyFieldNames;
918
+ var extractPrimaryKeyValues = function (model, keyFields) {
814
919
  return keyFields.map(function (key) { return model[key]; });
815
920
  };
816
- exports.extractPrimaryKeysAndValues = function (model, keyFields) {
921
+ exports.extractPrimaryKeyValues = extractPrimaryKeyValues;
922
+ var extractPrimaryKeysAndValues = function (model, keyFields) {
817
923
  var primaryKeysAndValues = {};
818
924
  keyFields.forEach(function (key) { return (primaryKeysAndValues[key] = model[key]); });
819
925
  return primaryKeysAndValues;
820
926
  };
927
+ exports.extractPrimaryKeysAndValues = extractPrimaryKeysAndValues;
821
928
  // IdentifierFields<ManagedIdentifier>
822
929
  // Default behavior without explicit @primaryKey defined
823
- exports.isIdManaged = function (modelDefinition) {
824
- var keyAttribute = exports.extractKeyIfExists(modelDefinition);
825
- if (keyAttribute && types_1.isModelAttributePrimaryKey(keyAttribute)) {
930
+ var isIdManaged = function (modelDefinition) {
931
+ var keyAttribute = (0, exports.extractKeyIfExists)(modelDefinition);
932
+ if (keyAttribute && (0, types_1.isModelAttributePrimaryKey)(keyAttribute)) {
826
933
  return false;
827
934
  }
828
935
  return true;
829
936
  };
937
+ exports.isIdManaged = isIdManaged;
830
938
  // IdentifierFields<OptionallyManagedIdentifier>
831
939
  // @primaryKey with explicit `id` in the PK. Single key or composite
832
- exports.isIdOptionallyManaged = function (modelDefinition) {
833
- var keyAttribute = exports.extractKeyIfExists(modelDefinition);
834
- if (keyAttribute && types_1.isModelAttributePrimaryKey(keyAttribute)) {
940
+ var isIdOptionallyManaged = function (modelDefinition) {
941
+ var keyAttribute = (0, exports.extractKeyIfExists)(modelDefinition);
942
+ if (keyAttribute && (0, types_1.isModelAttributePrimaryKey)(keyAttribute)) {
835
943
  return keyAttribute.properties.fields[0] === exports.ID;
836
944
  }
837
945
  return false;
838
946
  };
839
- exports.establishRelationAndKeys = function (namespace) {
947
+ exports.isIdOptionallyManaged = isIdOptionallyManaged;
948
+ var establishRelationAndKeys = function (namespace) {
840
949
  var relationship = {};
841
950
  var keys = {};
842
951
  Object.keys(namespace.models).forEach(function (mKey) {
@@ -858,11 +967,11 @@ exports.establishRelationAndKeys = function (namespace) {
858
967
  associatedWith: fieldAttribute.association['associatedWith'],
859
968
  });
860
969
  if (connectionType === 'BELONGS_TO') {
861
- var targetNames = exports.extractTargetNamesFromSrc(fieldAttribute.association);
970
+ var targetNames = (0, exports.extractTargetNamesFromSrc)(fieldAttribute.association);
862
971
  if (targetNames) {
863
- var idxName_1 = exports.indexNameFromKeys(targetNames);
972
+ var idxName_1 = (0, exports.indexNameFromKeys)(targetNames);
864
973
  var idxExists = relationship[mKey].indexes.find(function (_c) {
865
- var _d = tslib_1.__read(_c, 1), index = _d[0];
974
+ var _d = __read(_c, 1), index = _d[0];
866
975
  return index === idxName_1;
867
976
  });
868
977
  if (!idxExists) {
@@ -873,20 +982,20 @@ exports.establishRelationAndKeys = function (namespace) {
873
982
  }
874
983
  });
875
984
  if (model.attributes) {
876
- keys[mKey].compositeKeys = exports.processCompositeKeys(model.attributes);
985
+ keys[mKey].compositeKeys = (0, exports.processCompositeKeys)(model.attributes);
877
986
  var _loop_1 = function (attribute) {
878
- if (!types_1.isModelAttributeKey(attribute)) {
987
+ if (!(0, types_1.isModelAttributeKey)(attribute)) {
879
988
  return "continue";
880
989
  }
881
990
  var fields = attribute.properties.fields;
882
- if (types_1.isModelAttributePrimaryKey(attribute)) {
991
+ if ((0, types_1.isModelAttributePrimaryKey)(attribute)) {
883
992
  keys[mKey].primaryKey = fields;
884
993
  return "continue";
885
994
  }
886
995
  // create indexes for all other keys
887
- var idxName = exports.indexNameFromKeys(fields);
996
+ var idxName = (0, exports.indexNameFromKeys)(fields);
888
997
  var idxExists = relationship[mKey].indexes.find(function (_c) {
889
- var _d = tslib_1.__read(_c, 1), index = _d[0];
998
+ var _d = __read(_c, 1), index = _d[0];
890
999
  return index === idxName;
891
1000
  });
892
1001
  if (!idxExists) {
@@ -894,7 +1003,7 @@ exports.establishRelationAndKeys = function (namespace) {
894
1003
  }
895
1004
  };
896
1005
  try {
897
- for (var _d = tslib_1.__values(model.attributes), _e = _d.next(); !_e.done; _e = _d.next()) {
1006
+ for (var _d = __values(model.attributes), _e = _d.next(); !_e.done; _e = _d.next()) {
898
1007
  var attribute = _e.value;
899
1008
  _loop_1(attribute);
900
1009
  }
@@ -920,31 +1029,34 @@ exports.establishRelationAndKeys = function (namespace) {
920
1029
  });
921
1030
  return [relationship, keys];
922
1031
  };
923
- exports.getIndex = function (rel, src) {
1032
+ exports.establishRelationAndKeys = establishRelationAndKeys;
1033
+ var getIndex = function (rel, src) {
924
1034
  var indexName;
925
1035
  rel.some(function (relItem) {
926
1036
  if (relItem.modelName === src) {
927
- var targetNames = exports.extractTargetNamesFromSrc(relItem);
928
- indexName = targetNames && exports.indexNameFromKeys(targetNames);
1037
+ var targetNames = (0, exports.extractTargetNamesFromSrc)(relItem);
1038
+ indexName = targetNames && (0, exports.indexNameFromKeys)(targetNames);
929
1039
  return true;
930
1040
  }
931
1041
  });
932
1042
  return indexName;
933
1043
  };
934
- exports.getIndexFromAssociation = function (indexes, src) {
1044
+ exports.getIndex = getIndex;
1045
+ var getIndexFromAssociation = function (indexes, src) {
935
1046
  var indexName;
936
1047
  if (Array.isArray(src)) {
937
- indexName = exports.indexNameFromKeys(src);
1048
+ indexName = (0, exports.indexNameFromKeys)(src);
938
1049
  }
939
1050
  else {
940
1051
  indexName = src;
941
1052
  }
942
1053
  var associationIndex = indexes.find(function (_c) {
943
- var _d = tslib_1.__read(_c, 1), idxName = _d[0];
1054
+ var _d = __read(_c, 1), idxName = _d[0];
944
1055
  return idxName === indexName;
945
1056
  });
946
1057
  return associationIndex && associationIndex[0];
947
1058
  };
1059
+ exports.getIndexFromAssociation = getIndexFromAssociation;
948
1060
  /**
949
1061
  * Backwards-compatability for schema generated prior to custom primary key support:
950
1062
  the single field `targetName` has been replaced with an array of `targetNames`.
@@ -952,7 +1064,7 @@ the single field `targetName` has been replaced with an array of `targetNames`.
952
1064
  * @param src {RelationType | ModelAssociation | undefined}
953
1065
  * @returns array of targetNames, or `undefined`
954
1066
  */
955
- exports.extractTargetNamesFromSrc = function (src) {
1067
+ var extractTargetNamesFromSrc = function (src) {
956
1068
  var targetName = src === null || src === void 0 ? void 0 : src.targetName;
957
1069
  var targetNames = src === null || src === void 0 ? void 0 : src.targetNames;
958
1070
  if (Array.isArray(targetNames)) {
@@ -965,24 +1077,27 @@ exports.extractTargetNamesFromSrc = function (src) {
965
1077
  return undefined;
966
1078
  }
967
1079
  };
1080
+ exports.extractTargetNamesFromSrc = extractTargetNamesFromSrc;
968
1081
  // Generates spinal-cased index name from an array of key field names
969
1082
  // E.g. for keys `[id, title]` => 'id-title'
970
- exports.indexNameFromKeys = function (keys) {
1083
+ var indexNameFromKeys = function (keys) {
971
1084
  return keys.reduce(function (prev, cur, idx) {
972
1085
  if (idx === 0) {
973
1086
  return cur;
974
1087
  }
975
- return "" + prev + exports.IDENTIFIER_KEY_SEPARATOR + cur;
1088
+ return "".concat(prev).concat(exports.IDENTIFIER_KEY_SEPARATOR).concat(cur);
976
1089
  }, '');
977
1090
  };
978
- exports.keysEqual = function (keysA, keysB) {
1091
+ exports.indexNameFromKeys = indexNameFromKeys;
1092
+ var keysEqual = function (keysA, keysB) {
979
1093
  if (keysA.length !== keysB.length) {
980
1094
  return false;
981
1095
  }
982
1096
  return keysA.every(function (key, idx) { return key === keysB[idx]; });
983
1097
  };
1098
+ exports.keysEqual = keysEqual;
984
1099
  // Returns primary keys for a model
985
- exports.getIndexKeys = function (namespace, modelName) {
1100
+ var getIndexKeys = function (namespace, modelName) {
986
1101
  var _c, _d;
987
1102
  var keyPath = (_d = (_c = namespace === null || namespace === void 0 ? void 0 : namespace.keys) === null || _c === void 0 ? void 0 : _c[modelName]) === null || _d === void 0 ? void 0 : _d.primaryKey;
988
1103
  if (keyPath) {
@@ -990,6 +1105,7 @@ exports.getIndexKeys = function (namespace, modelName) {
990
1105
  }
991
1106
  return [exports.ID];
992
1107
  };
1108
+ exports.getIndexKeys = getIndexKeys;
993
1109
  //#endregion
994
1110
  /**
995
1111
  * Determine what the managed timestamp field names are for the given model definition
@@ -1003,7 +1119,7 @@ exports.getIndexKeys = function (namespace, modelName) {
1003
1119
  * @param definition modelDefinition to inspect.
1004
1120
  * @returns An object mapping `createdAt` and `updatedAt` to their field names.
1005
1121
  */
1006
- exports.getTimestampFields = function (definition) {
1122
+ var getTimestampFields = function (definition) {
1007
1123
  var _c, _d;
1008
1124
  var modelAttributes = (_c = definition.attributes) === null || _c === void 0 ? void 0 : _c.find(function (attr) { return attr.type === 'model'; });
1009
1125
  var timestampFieldsMap = (_d = modelAttributes === null || modelAttributes === void 0 ? void 0 : modelAttributes.properties) === null || _d === void 0 ? void 0 : _d.timestamps;
@@ -1012,6 +1128,6 @@ exports.getTimestampFields = function (definition) {
1012
1128
  updatedAt: 'updatedAt',
1013
1129
  };
1014
1130
  var customFields = timestampFieldsMap || {};
1015
- return tslib_1.__assign(tslib_1.__assign({}, defaultFields), customFields);
1131
+ return __assign(__assign({}, defaultFields), customFields);
1016
1132
  };
1017
- //# sourceMappingURL=util.js.map
1133
+ exports.getTimestampFields = getTimestampFields;