@aws-amplify/datastore 4.7.6-api-v6-models.b3abc9b.0 → 5.0.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 (187) 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 +38 -53
  5. package/lib/datastore/datastore.d.ts +4 -5
  6. package/lib/datastore/datastore.js +929 -1284
  7. package/lib/index.d.ts +1 -1
  8. package/lib/index.js +26 -13
  9. package/lib/predicates/index.js +54 -69
  10. package/lib/predicates/next.d.ts +2 -2
  11. package/lib/predicates/next.js +313 -462
  12. package/lib/predicates/sort.js +24 -28
  13. package/lib/ssr/index.js +2 -2
  14. package/lib/storage/adapter/AsyncStorageAdapter.js +120 -342
  15. package/lib/storage/adapter/AsyncStorageDatabase.js +217 -421
  16. package/lib/storage/adapter/InMemoryStore.js +28 -51
  17. package/lib/storage/adapter/InMemoryStore.native.js +5 -3
  18. package/lib/storage/adapter/IndexedDBAdapter.js +466 -871
  19. package/lib/storage/adapter/StorageAdapterBase.js +180 -330
  20. package/lib/storage/adapter/getDefaultAdapter/index.js +8 -10
  21. package/lib/storage/adapter/getDefaultAdapter/index.native.js +5 -4
  22. package/lib/storage/adapter/index.js +0 -1
  23. package/lib/storage/relationship.js +177 -253
  24. package/lib/storage/storage.d.ts +4 -4
  25. package/lib/storage/storage.js +255 -433
  26. package/lib/sync/datastoreConnectivity.d.ts +2 -2
  27. package/lib/sync/datastoreConnectivity.js +29 -39
  28. package/lib/sync/datastoreReachability/index.d.ts +1 -3
  29. package/lib/sync/datastoreReachability/index.js +3 -3
  30. package/lib/sync/datastoreReachability/index.native.d.ts +1 -3
  31. package/lib/sync/datastoreReachability/index.native.js +4 -5
  32. package/lib/sync/index.d.ts +2 -2
  33. package/lib/sync/index.js +522 -827
  34. package/lib/sync/merger.js +31 -63
  35. package/lib/sync/outbox.js +148 -232
  36. package/lib/sync/processors/errorMaps.d.ts +1 -1
  37. package/lib/sync/processors/errorMaps.js +30 -47
  38. package/lib/sync/processors/mutation.d.ts +2 -2
  39. package/lib/sync/processors/mutation.js +343 -502
  40. package/lib/sync/processors/subscription.d.ts +5 -2
  41. package/lib/sync/processors/subscription.js +283 -437
  42. package/lib/sync/processors/sync.d.ts +2 -2
  43. package/lib/sync/processors/sync.js +279 -404
  44. package/lib/sync/utils.d.ts +5 -4
  45. package/lib/sync/utils.js +267 -320
  46. package/lib/tsconfig.tsbuildinfo +1 -0
  47. package/lib/types.d.ts +138 -140
  48. package/lib/types.js +17 -24
  49. package/lib/util.d.ts +9 -17
  50. package/lib/util.js +387 -511
  51. package/lib-esm/authModeStrategies/defaultAuthStrategy.js +1 -2
  52. package/lib-esm/authModeStrategies/index.js +0 -1
  53. package/lib-esm/authModeStrategies/multiAuthStrategy.js +35 -52
  54. package/lib-esm/datastore/datastore.d.ts +4 -5
  55. package/lib-esm/datastore/datastore.js +888 -1247
  56. package/lib-esm/index.d.ts +1 -1
  57. package/lib-esm/index.js +6 -7
  58. package/lib-esm/predicates/index.js +53 -70
  59. package/lib-esm/predicates/next.d.ts +2 -2
  60. package/lib-esm/predicates/next.js +306 -459
  61. package/lib-esm/predicates/sort.js +23 -28
  62. package/lib-esm/ssr/index.js +1 -2
  63. package/lib-esm/storage/adapter/AsyncStorageAdapter.js +111 -338
  64. package/lib-esm/storage/adapter/AsyncStorageDatabase.js +212 -416
  65. package/lib-esm/storage/adapter/InMemoryStore.js +27 -52
  66. package/lib-esm/storage/adapter/InMemoryStore.native.js +0 -1
  67. package/lib-esm/storage/adapter/IndexedDBAdapter.js +438 -866
  68. package/lib-esm/storage/adapter/StorageAdapterBase.js +173 -325
  69. package/lib-esm/storage/adapter/getDefaultAdapter/index.js +2 -6
  70. package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js +1 -2
  71. package/lib-esm/storage/adapter/index.js +1 -1
  72. package/lib-esm/storage/relationship.js +173 -251
  73. package/lib-esm/storage/storage.d.ts +4 -4
  74. package/lib-esm/storage/storage.js +242 -424
  75. package/lib-esm/sync/datastoreConnectivity.d.ts +2 -2
  76. package/lib-esm/sync/datastoreConnectivity.js +28 -39
  77. package/lib-esm/sync/datastoreReachability/index.d.ts +1 -3
  78. package/lib-esm/sync/datastoreReachability/index.js +2 -3
  79. package/lib-esm/sync/datastoreReachability/index.native.d.ts +1 -3
  80. package/lib-esm/sync/datastoreReachability/index.native.js +3 -4
  81. package/lib-esm/sync/index.d.ts +2 -2
  82. package/lib-esm/sync/index.js +502 -812
  83. package/lib-esm/sync/merger.js +28 -61
  84. package/lib-esm/sync/outbox.js +143 -228
  85. package/lib-esm/sync/processors/errorMaps.d.ts +1 -1
  86. package/lib-esm/sync/processors/errorMaps.js +32 -50
  87. package/lib-esm/sync/processors/mutation.d.ts +2 -2
  88. package/lib-esm/sync/processors/mutation.js +329 -490
  89. package/lib-esm/sync/processors/subscription.d.ts +5 -2
  90. package/lib-esm/sync/processors/subscription.js +266 -421
  91. package/lib-esm/sync/processors/sync.d.ts +2 -2
  92. package/lib-esm/sync/processors/sync.js +271 -397
  93. package/lib-esm/sync/utils.d.ts +5 -4
  94. package/lib-esm/sync/utils.js +252 -307
  95. package/lib-esm/tsconfig.tsbuildinfo +1 -0
  96. package/lib-esm/types.d.ts +138 -140
  97. package/lib-esm/types.js +16 -25
  98. package/lib-esm/util.d.ts +9 -17
  99. package/lib-esm/util.js +335 -497
  100. package/package.json +31 -26
  101. package/src/authModeStrategies/multiAuthStrategy.ts +15 -12
  102. package/src/datastore/datastore.ts +36 -35
  103. package/src/predicates/sort.ts +3 -1
  104. package/src/storage/adapter/InMemoryStore.ts +1 -1
  105. package/src/storage/adapter/IndexedDBAdapter.ts +2 -2
  106. package/src/storage/adapter/StorageAdapterBase.ts +2 -2
  107. package/src/storage/adapter/getDefaultAdapter/index.ts +1 -4
  108. package/src/storage/storage.ts +29 -24
  109. package/src/sync/datastoreConnectivity.ts +6 -6
  110. package/src/sync/datastoreReachability/index.native.ts +5 -3
  111. package/src/sync/datastoreReachability/index.ts +1 -1
  112. package/src/sync/index.ts +79 -89
  113. package/src/sync/processors/errorMaps.ts +7 -7
  114. package/src/sync/processors/mutation.ts +19 -13
  115. package/src/sync/processors/subscription.ts +221 -295
  116. package/src/sync/processors/sync.ts +11 -8
  117. package/src/sync/utils.ts +30 -15
  118. package/src/types.ts +4 -8
  119. package/src/util.ts +46 -9
  120. package/lib/.tsbuildinfo +0 -3
  121. package/lib/authModeStrategies/defaultAuthStrategy.js.map +0 -1
  122. package/lib/authModeStrategies/index.js.map +0 -1
  123. package/lib/authModeStrategies/multiAuthStrategy.js.map +0 -1
  124. package/lib/datastore/datastore.js.map +0 -1
  125. package/lib/index.js.map +0 -1
  126. package/lib/predicates/index.js.map +0 -1
  127. package/lib/predicates/next.js.map +0 -1
  128. package/lib/predicates/sort.js.map +0 -1
  129. package/lib/ssr/index.js.map +0 -1
  130. package/lib/storage/adapter/AsyncStorageAdapter.js.map +0 -1
  131. package/lib/storage/adapter/AsyncStorageDatabase.js.map +0 -1
  132. package/lib/storage/adapter/InMemoryStore.js.map +0 -1
  133. package/lib/storage/adapter/InMemoryStore.native.js.map +0 -1
  134. package/lib/storage/adapter/IndexedDBAdapter.js.map +0 -1
  135. package/lib/storage/adapter/StorageAdapterBase.js.map +0 -1
  136. package/lib/storage/adapter/getDefaultAdapter/index.js.map +0 -1
  137. package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
  138. package/lib/storage/adapter/index.js.map +0 -1
  139. package/lib/storage/relationship.js.map +0 -1
  140. package/lib/storage/storage.js.map +0 -1
  141. package/lib/sync/datastoreConnectivity.js.map +0 -1
  142. package/lib/sync/datastoreReachability/index.js.map +0 -1
  143. package/lib/sync/datastoreReachability/index.native.js.map +0 -1
  144. package/lib/sync/index.js.map +0 -1
  145. package/lib/sync/merger.js.map +0 -1
  146. package/lib/sync/outbox.js.map +0 -1
  147. package/lib/sync/processors/errorMaps.js.map +0 -1
  148. package/lib/sync/processors/mutation.js.map +0 -1
  149. package/lib/sync/processors/subscription.js.map +0 -1
  150. package/lib/sync/processors/sync.js.map +0 -1
  151. package/lib/sync/utils.js.map +0 -1
  152. package/lib/types.js.map +0 -1
  153. package/lib/util.js.map +0 -1
  154. package/lib-esm/.tsbuildinfo +0 -3
  155. package/lib-esm/authModeStrategies/defaultAuthStrategy.js.map +0 -1
  156. package/lib-esm/authModeStrategies/index.js.map +0 -1
  157. package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +0 -1
  158. package/lib-esm/datastore/datastore.js.map +0 -1
  159. package/lib-esm/index.js.map +0 -1
  160. package/lib-esm/predicates/index.js.map +0 -1
  161. package/lib-esm/predicates/next.js.map +0 -1
  162. package/lib-esm/predicates/sort.js.map +0 -1
  163. package/lib-esm/ssr/index.js.map +0 -1
  164. package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +0 -1
  165. package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +0 -1
  166. package/lib-esm/storage/adapter/InMemoryStore.js.map +0 -1
  167. package/lib-esm/storage/adapter/InMemoryStore.native.js.map +0 -1
  168. package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +0 -1
  169. package/lib-esm/storage/adapter/StorageAdapterBase.js.map +0 -1
  170. package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +0 -1
  171. package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
  172. package/lib-esm/storage/adapter/index.js.map +0 -1
  173. package/lib-esm/storage/relationship.js.map +0 -1
  174. package/lib-esm/storage/storage.js.map +0 -1
  175. package/lib-esm/sync/datastoreConnectivity.js.map +0 -1
  176. package/lib-esm/sync/datastoreReachability/index.js.map +0 -1
  177. package/lib-esm/sync/datastoreReachability/index.native.js.map +0 -1
  178. package/lib-esm/sync/index.js.map +0 -1
  179. package/lib-esm/sync/merger.js.map +0 -1
  180. package/lib-esm/sync/outbox.js.map +0 -1
  181. package/lib-esm/sync/processors/errorMaps.js.map +0 -1
  182. package/lib-esm/sync/processors/mutation.js.map +0 -1
  183. package/lib-esm/sync/processors/subscription.js.map +0 -1
  184. package/lib-esm/sync/processors/sync.js.map +0 -1
  185. package/lib-esm/sync/utils.js.map +0 -1
  186. package/lib-esm/types.js.map +0 -1
  187. package/lib-esm/util.js.map +0 -1
package/lib/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export declare const utils: {
9
9
  item: T;
10
10
  instance: T;
11
11
  }[];
12
- validatePredicate: <T_2 extends Readonly<Record<string, any>>>(model: T_2, groupType: "and" | "or" | "not", predicatesOrGroups: (import("./types").PredicateObject<T_2> | import("./types").PredicatesGroup<T_2>)[]) => any;
12
+ validatePredicate: <T_2 extends Readonly<Record<string, any>>>(model: T_2, groupType: keyof import("./types").PredicateGroups<T_2>, predicatesOrGroups: (import("./types").PredicateObject<T_2> | import("./types").PredicatesGroup<T_2>)[]) => any;
13
13
  isNonModelConstructor: (obj: any) => obj is import("./types").NonModelTypeConstructor<any>;
14
14
  isModelConstructor: <T_3 extends Readonly<Record<string, any>>>(obj: any) => obj is import("./types").PersistentModelConstructor<T_3>;
15
15
  };
package/lib/index.js CHANGED
@@ -1,21 +1,35 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
17
+ exports.utils = exports.NAMESPACES = exports.ModelSortPredicateCreator = exports.ModelPredicateCreator = exports.Predicates = exports.AsyncItem = exports.AsyncCollection = exports.initSchema = exports.DataStoreClass = exports.DataStore = void 0;
4
18
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5
19
  // SPDX-License-Identifier: Apache-2.0
6
20
  var datastore_1 = require("./datastore/datastore");
7
- exports.DataStore = datastore_1.DataStore;
8
- exports.DataStoreClass = datastore_1.DataStoreClass;
9
- exports.initSchema = datastore_1.initSchema;
10
- exports.AsyncCollection = datastore_1.AsyncCollection;
11
- exports.AsyncItem = datastore_1.AsyncItem;
21
+ Object.defineProperty(exports, "DataStore", { enumerable: true, get: function () { return datastore_1.DataStore; } });
22
+ Object.defineProperty(exports, "DataStoreClass", { enumerable: true, get: function () { return datastore_1.DataStoreClass; } });
23
+ Object.defineProperty(exports, "initSchema", { enumerable: true, get: function () { return datastore_1.initSchema; } });
24
+ Object.defineProperty(exports, "AsyncCollection", { enumerable: true, get: function () { return datastore_1.AsyncCollection; } });
25
+ Object.defineProperty(exports, "AsyncItem", { enumerable: true, get: function () { return datastore_1.AsyncItem; } });
12
26
  var predicates_1 = require("./predicates");
13
- exports.Predicates = predicates_1.Predicates;
14
- exports.ModelPredicateCreator = predicates_1.ModelPredicateCreator;
15
- exports.ModelSortPredicateCreator = predicates_1.ModelSortPredicateCreator;
16
- var util_1 = require("./util");
27
+ Object.defineProperty(exports, "Predicates", { enumerable: true, get: function () { return predicates_1.Predicates; } });
28
+ Object.defineProperty(exports, "ModelPredicateCreator", { enumerable: true, get: function () { return predicates_1.ModelPredicateCreator; } });
29
+ Object.defineProperty(exports, "ModelSortPredicateCreator", { enumerable: true, get: function () { return predicates_1.ModelSortPredicateCreator; } });
30
+ const util_1 = require("./util");
17
31
  var util_2 = require("./util");
18
- exports.NAMESPACES = util_2.NAMESPACES;
32
+ Object.defineProperty(exports, "NAMESPACES", { enumerable: true, get: function () { return util_2.NAMESPACES; } });
19
33
  exports.utils = {
20
34
  USER: util_1.USER,
21
35
  traverseModel: util_1.traverseModel,
@@ -23,5 +37,4 @@ exports.utils = {
23
37
  isNonModelConstructor: util_1.isNonModelConstructor,
24
38
  isModelConstructor: util_1.isModelConstructor,
25
39
  };
26
- tslib_1.__exportStar(require("./types"), exports);
27
- //# sourceMappingURL=index.js.map
40
+ __exportStar(require("./types"), exports);
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var util_1 = require("../util");
3
+ exports.ModelPredicateCreator = exports.Predicates = exports.PredicateAll = exports.comparisonKeys = exports.isPredicatesAll = exports.ModelSortPredicateCreator = void 0;
4
+ const util_1 = require("../util");
5
5
  var sort_1 = require("./sort");
6
- exports.ModelSortPredicateCreator = sort_1.ModelSortPredicateCreator;
7
- var predicatesAllSet = new WeakSet();
6
+ Object.defineProperty(exports, "ModelSortPredicateCreator", { enumerable: true, get: function () { return sort_1.ModelSortPredicateCreator; } });
7
+ const predicatesAllSet = new WeakSet();
8
8
  function isPredicatesAll(predicate) {
9
9
  return predicatesAllSet.has(predicate);
10
10
  }
@@ -12,7 +12,7 @@ exports.isPredicatesAll = isPredicatesAll;
12
12
  /**
13
13
  * The valid logical grouping keys for a predicate group.
14
14
  */
15
- var groupKeys = new Set(['and', 'or', 'not']);
15
+ const groupKeys = new Set(['and', 'or', 'not']);
16
16
  /**
17
17
  * Determines whether an object is a GraphQL style predicate "group", which must be an
18
18
  * object containing a single "group key", which then contains the child condition(s).
@@ -26,8 +26,8 @@ var groupKeys = new Set(['and', 'or', 'not']);
26
26
  *
27
27
  * @param o The object to test.
28
28
  */
29
- var isGroup = function (o) {
30
- var keys = tslib_1.__spread(Object.keys(o));
29
+ const isGroup = o => {
30
+ const keys = [...Object.keys(o)];
31
31
  return keys.length === 1 && groupKeys.has(keys[0]);
32
32
  };
33
33
  /**
@@ -36,7 +36,7 @@ var isGroup = function (o) {
36
36
  *
37
37
  * @param o The object to test.
38
38
  */
39
- var isEmpty = function (o) {
39
+ const isEmpty = o => {
40
40
  return !Array.isArray(o) && Object.keys(o).length === 0;
41
41
  };
42
42
  /**
@@ -61,8 +61,8 @@ exports.comparisonKeys = new Set([
61
61
  *
62
62
  * @param o The object to test.
63
63
  */
64
- var isComparison = function (o) {
65
- var keys = tslib_1.__spread(Object.keys(o));
64
+ const isComparison = o => {
65
+ const keys = [...Object.keys(o)];
66
66
  return !Array.isArray(o) && keys.length === 1 && exports.comparisonKeys.has(keys[0]);
67
67
  };
68
68
  /**
@@ -70,9 +70,9 @@ var isComparison = function (o) {
70
70
  *
71
71
  * @param o The object to test.
72
72
  */
73
- var isValid = function (o) {
73
+ const isValid = o => {
74
74
  if (Array.isArray(o)) {
75
- return o.every(function (v) { return isValid(v); });
75
+ return o.every(v => isValid(v));
76
76
  }
77
77
  else {
78
78
  return Object.keys(o).length <= 1;
@@ -80,33 +80,24 @@ var isValid = function (o) {
80
80
  };
81
81
  // This symbol is not used at runtime, only its type (unique symbol)
82
82
  exports.PredicateAll = Symbol('A predicate that matches all records');
83
- var Predicates = /** @class */ (function () {
84
- function Predicates() {
83
+ class Predicates {
84
+ static get ALL() {
85
+ const predicate = (c => c);
86
+ predicatesAllSet.add(predicate);
87
+ return predicate;
85
88
  }
86
- Object.defineProperty(Predicates, "ALL", {
87
- get: function () {
88
- var predicate = (function (c) { return c; });
89
- predicatesAllSet.add(predicate);
90
- return predicate;
91
- },
92
- enumerable: true,
93
- configurable: true
94
- });
95
- return Predicates;
96
- }());
89
+ }
97
90
  exports.Predicates = Predicates;
98
- var ModelPredicateCreator = /** @class */ (function () {
99
- function ModelPredicateCreator() {
100
- }
91
+ class ModelPredicateCreator {
101
92
  /**
102
93
  * Determines whether the given storage predicate (lookup key) is a predicate
103
94
  * key that DataStore recognizes.
104
95
  *
105
96
  * @param predicate The storage predicate (lookup key) to test.
106
97
  */
107
- ModelPredicateCreator.isValidPredicate = function (predicate) {
98
+ static isValidPredicate(predicate) {
108
99
  return ModelPredicateCreator.predicateGroupsMap.has(predicate);
109
- };
100
+ }
110
101
  /**
111
102
  * Looks for the storage predicate AST that corresponds to a given storage
112
103
  * predicate key.
@@ -118,13 +109,12 @@ var ModelPredicateCreator = /** @class */ (function () {
118
109
  * @param throwOnInvalid Whether to throw an exception if the predicate
119
110
  * isn't a valid DataStore predicate.
120
111
  */
121
- ModelPredicateCreator.getPredicates = function (predicate, throwOnInvalid) {
122
- if (throwOnInvalid === void 0) { throwOnInvalid = true; }
112
+ static getPredicates(predicate, throwOnInvalid = true) {
123
113
  if (throwOnInvalid && !ModelPredicateCreator.isValidPredicate(predicate)) {
124
114
  throw new Error('The predicate is not valid');
125
115
  }
126
116
  return ModelPredicateCreator.predicateGroupsMap.get(predicate);
127
- };
117
+ }
128
118
  /**
129
119
  * using the PK values from the given `model` (which can be a partial of T
130
120
  * Creates a predicate that matches an instance described by `modelDefinition`
@@ -133,18 +123,17 @@ var ModelPredicateCreator = /** @class */ (function () {
133
123
  * @param modelDefinition The model definition to create a predicate for.
134
124
  * @param model The model instance to extract value equalities from.
135
125
  */
136
- ModelPredicateCreator.createForPk = function (modelDefinition, model) {
137
- var keyFields = util_1.extractPrimaryKeyFieldNames(modelDefinition);
138
- var keyValues = util_1.extractPrimaryKeyValues(model, keyFields);
139
- var predicate = this.createFromAST(modelDefinition, {
140
- and: keyFields.map(function (field, idx) {
141
- var _a;
142
- var operand = keyValues[idx];
143
- return _a = {}, _a[field] = { eq: operand }, _a;
126
+ static createForPk(modelDefinition, model) {
127
+ const keyFields = (0, util_1.extractPrimaryKeyFieldNames)(modelDefinition);
128
+ const keyValues = (0, util_1.extractPrimaryKeyValues)(model, keyFields);
129
+ const predicate = this.createFromAST(modelDefinition, {
130
+ and: keyFields.map((field, idx) => {
131
+ const operand = keyValues[idx];
132
+ return { [field]: { eq: operand } };
144
133
  }),
145
134
  });
146
135
  return predicate;
147
- };
136
+ }
148
137
  /**
149
138
  * Searches a `Model` table for records matching the given equalities object.
150
139
  *
@@ -154,16 +143,12 @@ var ModelPredicateCreator = /** @class */ (function () {
154
143
  * @param modelDefinition The model we need a predicate for.
155
144
  * @param flatEqualities An object holding field equalities to search for.
156
145
  */
157
- ModelPredicateCreator.createFromFlatEqualities = function (modelDefinition, flatEqualities) {
158
- var ast = {
159
- and: Object.entries(flatEqualities).map(function (_a) {
160
- var _b;
161
- var _c = tslib_1.__read(_a, 2), k = _c[0], v = _c[1];
162
- return (_b = {}, _b[k] = { eq: v }, _b);
163
- }),
146
+ static createFromFlatEqualities(modelDefinition, flatEqualities) {
147
+ const ast = {
148
+ and: Object.entries(flatEqualities).map(([k, v]) => ({ [k]: { eq: v } })),
164
149
  };
165
150
  return this.createFromAST(modelDefinition, ast);
166
- };
151
+ }
167
152
  /**
168
153
  * Accepts a GraphQL style filter predicate tree and transforms it into an
169
154
  * AST that can be used for a storage adapter predicate. Example input:
@@ -185,8 +170,7 @@ var ModelPredicateCreator = /** @class */ (function () {
185
170
  *
186
171
  * @param gql GraphQL style filter node.
187
172
  */
188
- ModelPredicateCreator.transformGraphQLFilterNodeToPredicateAST = function (gql) {
189
- var _this = this;
173
+ static transformGraphQLFilterNodeToPredicateAST(gql) {
190
174
  if (!isValid(gql)) {
191
175
  throw new Error('Invalid GraphQL Condition or subtree: ' + JSON.stringify(gql));
192
176
  }
@@ -197,15 +181,15 @@ var ModelPredicateCreator = /** @class */ (function () {
197
181
  };
198
182
  }
199
183
  else if (isGroup(gql)) {
200
- var groupkey = Object.keys(gql)[0];
201
- var children = this.transformGraphQLFilterNodeToPredicateAST(gql[groupkey]);
184
+ const groupkey = Object.keys(gql)[0];
185
+ const children = this.transformGraphQLFilterNodeToPredicateAST(gql[groupkey]);
202
186
  return {
203
187
  type: groupkey,
204
188
  predicates: Array.isArray(children) ? children : [children],
205
189
  };
206
190
  }
207
191
  else if (isComparison(gql)) {
208
- var operatorKey = Object.keys(gql)[0];
192
+ const operatorKey = Object.keys(gql)[0];
209
193
  return {
210
194
  operator: operatorKey,
211
195
  operand: gql[operatorKey],
@@ -213,14 +197,17 @@ var ModelPredicateCreator = /** @class */ (function () {
213
197
  }
214
198
  else {
215
199
  if (Array.isArray(gql)) {
216
- return gql.map(function (o) { return _this.transformGraphQLFilterNodeToPredicateAST(o); });
200
+ return gql.map(o => this.transformGraphQLFilterNodeToPredicateAST(o));
217
201
  }
218
202
  else {
219
- var fieldKey = Object.keys(gql)[0];
220
- return tslib_1.__assign({ field: fieldKey }, this.transformGraphQLFilterNodeToPredicateAST(gql[fieldKey]));
203
+ const fieldKey = Object.keys(gql)[0];
204
+ return {
205
+ field: fieldKey,
206
+ ...this.transformGraphQLFilterNodeToPredicateAST(gql[fieldKey]),
207
+ };
221
208
  }
222
209
  }
223
- };
210
+ }
224
211
  /**
225
212
  * Accepts a GraphQL style filter predicate tree and transforms it into a predicate
226
213
  * that storage adapters understand. Example input:
@@ -243,16 +230,14 @@ var ModelPredicateCreator = /** @class */ (function () {
243
230
  * @param modelDefinition The model that the AST/predicate must be compatible with.
244
231
  * @param ast The graphQL style AST that should specify conditions for `modelDefinition`.
245
232
  */
246
- ModelPredicateCreator.createFromAST = function (modelDefinition, ast) {
247
- var key = {};
233
+ static createFromAST(modelDefinition, ast) {
234
+ const key = {};
248
235
  ModelPredicateCreator.predicateGroupsMap.set(key, this.transformGraphQLFilterNodeToPredicateAST(ast));
249
236
  return key;
250
- };
251
- /**
252
- * Map of storage predicates (key objects) to storage predicate AST's.
253
- */
254
- ModelPredicateCreator.predicateGroupsMap = new WeakMap();
255
- return ModelPredicateCreator;
256
- }());
237
+ }
238
+ }
239
+ /**
240
+ * Map of storage predicates (key objects) to storage predicate AST's.
241
+ */
242
+ ModelPredicateCreator.predicateGroupsMap = new WeakMap();
257
243
  exports.ModelPredicateCreator = ModelPredicateCreator;
258
- //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  import { PersistentModel, ModelMeta, ModelPredicate as StoragePredicate, PredicateInternalsKey, V5ModelPredicate as ModelPredicate, RecursiveModelPredicate } from '../types';
2
2
  import { ExclusiveStorage as StorageAdapter } from '../storage/storage';
3
- declare type GroupOperator = 'and' | 'or' | 'not';
4
- declare type UntypedCondition = {
3
+ type GroupOperator = 'and' | 'or' | 'not';
4
+ type UntypedCondition = {
5
5
  fetch: (storage: StorageAdapter) => Promise<Record<string, any>[]>;
6
6
  matches: (item: Record<string, any>) => Promise<boolean>;
7
7
  copy(extract?: GroupCondition): [UntypedCondition, GroupCondition | undefined];