@aws-amplify/datastore 5.0.32 → 5.0.33-s-auth.30d0cd2.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 (149) hide show
  1. package/dist/cjs/authModeStrategies/multiAuthStrategy.js +1 -1
  2. package/dist/cjs/authModeStrategies/multiAuthStrategy.js.map +1 -1
  3. package/dist/cjs/datastore/datastore.js +46 -41
  4. package/dist/cjs/datastore/datastore.js.map +1 -1
  5. package/dist/cjs/index.js +3 -1
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/predicates/index.js +1 -0
  8. package/dist/cjs/predicates/index.js.map +1 -1
  9. package/dist/cjs/predicates/next.js +13 -12
  10. package/dist/cjs/predicates/next.js.map +1 -1
  11. package/dist/cjs/predicates/sort.js +2 -2
  12. package/dist/cjs/predicates/sort.js.map +1 -1
  13. package/dist/cjs/storage/adapter/AsyncStorageAdapter.js +21 -18
  14. package/dist/cjs/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  15. package/dist/cjs/storage/adapter/AsyncStorageDatabase.js +10 -9
  16. package/dist/cjs/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  17. package/dist/cjs/storage/adapter/InMemoryStore.js +4 -1
  18. package/dist/cjs/storage/adapter/InMemoryStore.js.map +1 -1
  19. package/dist/cjs/storage/adapter/IndexedDBAdapter.js +21 -23
  20. package/dist/cjs/storage/adapter/IndexedDBAdapter.js.map +1 -1
  21. package/dist/cjs/storage/adapter/StorageAdapterBase.js +7 -7
  22. package/dist/cjs/storage/adapter/StorageAdapterBase.js.map +1 -1
  23. package/dist/cjs/storage/adapter/getDefaultAdapter/index.js +4 -1
  24. package/dist/cjs/storage/adapter/getDefaultAdapter/index.js.map +1 -1
  25. package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js +1 -0
  26. package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
  27. package/dist/cjs/storage/relationship.js +1 -0
  28. package/dist/cjs/storage/relationship.js.map +1 -1
  29. package/dist/cjs/storage/storage.js +14 -14
  30. package/dist/cjs/storage/storage.js.map +1 -1
  31. package/dist/cjs/sync/datastoreConnectivity.js +0 -3
  32. package/dist/cjs/sync/datastoreConnectivity.js.map +1 -1
  33. package/dist/cjs/sync/index.js +47 -43
  34. package/dist/cjs/sync/index.js.map +1 -1
  35. package/dist/cjs/sync/merger.js +1 -1
  36. package/dist/cjs/sync/merger.js.map +1 -1
  37. package/dist/cjs/sync/outbox.js +19 -17
  38. package/dist/cjs/sync/outbox.js.map +1 -1
  39. package/dist/cjs/sync/processors/errorMaps.js.map +1 -1
  40. package/dist/cjs/sync/processors/mutation.js +31 -28
  41. package/dist/cjs/sync/processors/mutation.js.map +1 -1
  42. package/dist/cjs/sync/processors/subscription.js +21 -12
  43. package/dist/cjs/sync/processors/subscription.js.map +1 -1
  44. package/dist/cjs/sync/processors/sync.js +25 -21
  45. package/dist/cjs/sync/processors/sync.js.map +1 -1
  46. package/dist/cjs/sync/utils.js +20 -21
  47. package/dist/cjs/sync/utils.js.map +1 -1
  48. package/dist/cjs/types.js +1 -0
  49. package/dist/cjs/types.js.map +1 -1
  50. package/dist/cjs/util.js +46 -25
  51. package/dist/cjs/util.js.map +1 -1
  52. package/dist/esm/authModeStrategies/multiAuthStrategy.d.ts +1 -1
  53. package/dist/esm/authModeStrategies/multiAuthStrategy.mjs +1 -1
  54. package/dist/esm/authModeStrategies/multiAuthStrategy.mjs.map +1 -1
  55. package/dist/esm/datastore/datastore.d.ts +4 -6
  56. package/dist/esm/datastore/datastore.mjs +42 -34
  57. package/dist/esm/datastore/datastore.mjs.map +1 -1
  58. package/dist/esm/index.d.ts +1 -1
  59. package/dist/esm/index.mjs +2 -2
  60. package/dist/esm/index.mjs.map +1 -1
  61. package/dist/esm/predicates/index.mjs +1 -0
  62. package/dist/esm/predicates/index.mjs.map +1 -1
  63. package/dist/esm/predicates/next.d.ts +7 -7
  64. package/dist/esm/predicates/next.mjs +13 -12
  65. package/dist/esm/predicates/next.mjs.map +1 -1
  66. package/dist/esm/predicates/sort.d.ts +1 -1
  67. package/dist/esm/predicates/sort.mjs +2 -2
  68. package/dist/esm/predicates/sort.mjs.map +1 -1
  69. package/dist/esm/storage/adapter/AsyncStorageAdapter.d.ts +1 -1
  70. package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs +21 -18
  71. package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs.map +1 -1
  72. package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs +10 -9
  73. package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs.map +1 -1
  74. package/dist/esm/storage/adapter/InMemoryStore.mjs +4 -1
  75. package/dist/esm/storage/adapter/InMemoryStore.mjs.map +1 -1
  76. package/dist/esm/storage/adapter/IndexedDBAdapter.mjs +21 -23
  77. package/dist/esm/storage/adapter/IndexedDBAdapter.mjs.map +1 -1
  78. package/dist/esm/storage/adapter/StorageAdapterBase.d.ts +2 -2
  79. package/dist/esm/storage/adapter/StorageAdapterBase.mjs +7 -7
  80. package/dist/esm/storage/adapter/StorageAdapterBase.mjs.map +1 -1
  81. package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs +3 -1
  82. package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs.map +1 -1
  83. package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs +1 -0
  84. package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs.map +1 -1
  85. package/dist/esm/storage/adapter/index.d.ts +1 -1
  86. package/dist/esm/storage/relationship.mjs +1 -0
  87. package/dist/esm/storage/relationship.mjs.map +1 -1
  88. package/dist/esm/storage/storage.d.ts +11 -11
  89. package/dist/esm/storage/storage.mjs +10 -10
  90. package/dist/esm/storage/storage.mjs.map +1 -1
  91. package/dist/esm/sync/datastoreConnectivity.d.ts +2 -2
  92. package/dist/esm/sync/datastoreConnectivity.mjs +0 -3
  93. package/dist/esm/sync/datastoreConnectivity.mjs.map +1 -1
  94. package/dist/esm/sync/index.d.ts +3 -3
  95. package/dist/esm/sync/index.mjs +47 -43
  96. package/dist/esm/sync/index.mjs.map +1 -1
  97. package/dist/esm/sync/merger.d.ts +1 -1
  98. package/dist/esm/sync/merger.mjs +1 -1
  99. package/dist/esm/sync/merger.mjs.map +1 -1
  100. package/dist/esm/sync/outbox.d.ts +4 -4
  101. package/dist/esm/sync/outbox.mjs +19 -17
  102. package/dist/esm/sync/outbox.mjs.map +1 -1
  103. package/dist/esm/sync/processors/errorMaps.mjs.map +1 -1
  104. package/dist/esm/sync/processors/mutation.d.ts +5 -5
  105. package/dist/esm/sync/processors/mutation.mjs +31 -28
  106. package/dist/esm/sync/processors/mutation.mjs.map +1 -1
  107. package/dist/esm/sync/processors/subscription.d.ts +1 -1
  108. package/dist/esm/sync/processors/subscription.mjs +21 -12
  109. package/dist/esm/sync/processors/subscription.mjs.map +1 -1
  110. package/dist/esm/sync/processors/sync.d.ts +3 -3
  111. package/dist/esm/sync/processors/sync.mjs +13 -9
  112. package/dist/esm/sync/processors/sync.mjs.map +1 -1
  113. package/dist/esm/sync/utils.d.ts +11 -13
  114. package/dist/esm/sync/utils.mjs +20 -21
  115. package/dist/esm/sync/utils.mjs.map +1 -1
  116. package/dist/esm/types.d.ts +121 -131
  117. package/dist/esm/types.mjs +3 -2
  118. package/dist/esm/types.mjs.map +1 -1
  119. package/dist/esm/util.d.ts +5 -5
  120. package/dist/esm/util.mjs +46 -25
  121. package/dist/esm/util.mjs.map +1 -1
  122. package/package.json +74 -73
  123. package/src/authModeStrategies/multiAuthStrategy.ts +8 -4
  124. package/src/datastore/datastore.ts +145 -123
  125. package/src/index.ts +10 -8
  126. package/src/predicates/index.ts +10 -2
  127. package/src/predicates/next.ts +39 -28
  128. package/src/predicates/sort.ts +23 -26
  129. package/src/storage/adapter/AsyncStorageAdapter.ts +43 -25
  130. package/src/storage/adapter/AsyncStorageDatabase.ts +18 -10
  131. package/src/storage/adapter/InMemoryStore.ts +5 -1
  132. package/src/storage/adapter/IndexedDBAdapter.ts +50 -37
  133. package/src/storage/adapter/StorageAdapterBase.ts +24 -18
  134. package/src/storage/adapter/getDefaultAdapter/index.native.ts +1 -0
  135. package/src/storage/adapter/getDefaultAdapter/index.ts +4 -1
  136. package/src/storage/adapter/index.ts +2 -2
  137. package/src/storage/relationship.ts +5 -1
  138. package/src/storage/storage.ts +38 -30
  139. package/src/sync/datastoreConnectivity.ts +4 -6
  140. package/src/sync/index.ts +228 -230
  141. package/src/sync/merger.ts +4 -3
  142. package/src/sync/outbox.ts +26 -24
  143. package/src/sync/processors/errorMaps.ts +5 -0
  144. package/src/sync/processors/mutation.ts +80 -72
  145. package/src/sync/processors/subscription.ts +69 -53
  146. package/src/sync/processors/sync.ts +49 -37
  147. package/src/sync/utils.ts +60 -41
  148. package/src/types.ts +165 -165
  149. package/src/util.ts +89 -53
@@ -1,11 +1,15 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import { Observable, filter, map, Subject } from 'rxjs';
3
+ import { Observable, Subject, filter, map } from 'rxjs';
4
4
  import { Patch } from 'immer';
5
+ import { Mutex } from '@aws-amplify/core/internals/utils';
6
+ import { ConsoleLogger } from '@aws-amplify/core';
7
+
5
8
  import { ModelInstanceCreator } from '../datastore/datastore';
6
9
  import { ModelPredicateCreator } from '../predicates';
7
10
  import {
8
11
  InternalSchema,
12
+ InternalSubscriptionMessage,
9
13
  ModelInstanceMetadata,
10
14
  ModelPredicate,
11
15
  NamespaceResolver,
@@ -16,26 +20,24 @@ import {
16
20
  PredicatesGroup,
17
21
  QueryOne,
18
22
  SchemaNamespace,
19
- InternalSubscriptionMessage,
20
23
  SubscriptionMessage,
21
24
  isTargetNameAssociation,
22
25
  } from '../types';
23
26
  import {
24
- isModelConstructor,
27
+ NAMESPACES,
25
28
  STORAGE,
29
+ isModelConstructor,
26
30
  validatePredicate,
27
31
  valuesEqual,
28
- NAMESPACES,
29
32
  } from '../util';
30
33
  import { getIdentifierValue } from '../sync/utils';
34
+
31
35
  import { Adapter } from './adapter';
32
36
  import getDefaultAdapter from './adapter/getDefaultAdapter';
33
- import { Mutex } from '@aws-amplify/core/internals/utils';
34
- import { ConsoleLogger } from '@aws-amplify/core';
35
37
 
36
38
  export type StorageSubscriptionMessage<T extends PersistentModel> =
37
39
  InternalSubscriptionMessage<T> & {
38
- mutator?: Symbol;
40
+ mutator?: symbol;
39
41
  };
40
42
 
41
43
  export type StorageFacade = Omit<Adapter, 'setUp'>;
@@ -78,6 +80,7 @@ class StorageClass implements StorageFacade {
78
80
  async init() {
79
81
  if (this.initialized !== undefined) {
80
82
  await this.initialized;
83
+
81
84
  return;
82
85
  }
83
86
  logger.debug('Starting Storage');
@@ -85,9 +88,9 @@ class StorageClass implements StorageFacade {
85
88
  let resolve: (value?: void | PromiseLike<void>) => void;
86
89
  let reject: (value?: void | PromiseLike<void>) => void;
87
90
 
88
- this.initialized = new Promise<void>((res, rej) => {
89
- resolve = res;
90
- reject = rej;
91
+ this.initialized = new Promise<void>((_resolve, _reject) => {
92
+ resolve = _resolve;
93
+ reject = _reject;
91
94
  });
92
95
 
93
96
  this.adapter!.setUp(
@@ -104,7 +107,7 @@ class StorageClass implements StorageFacade {
104
107
  async save<T extends PersistentModel>(
105
108
  model: T,
106
109
  condition?: ModelPredicate<T>,
107
- mutator?: Symbol,
110
+ mutator?: symbol,
108
111
  patchesTuple?: [Patch[], PersistentModel],
109
112
  ): Promise<[T, OpType.INSERT | OpType.UPDATE][]> {
110
113
  await this.init();
@@ -153,7 +156,7 @@ class StorageClass implements StorageFacade {
153
156
 
154
157
  const element = updateMutationInput || savedElement;
155
158
 
156
- const modelConstructor = (Object.getPrototypeOf(savedElement) as Object)
159
+ const modelConstructor = (Object.getPrototypeOf(savedElement) as object)
157
160
  .constructor as PersistentModelConstructor<T>;
158
161
 
159
162
  this.pushStream.next({
@@ -175,17 +178,19 @@ class StorageClass implements StorageFacade {
175
178
  delete<T extends PersistentModel>(
176
179
  model: T,
177
180
  condition?: ModelPredicate<T>,
178
- mutator?: Symbol,
181
+ mutator?: symbol,
179
182
  ): Promise<[T[], T[]]>;
183
+
180
184
  delete<T extends PersistentModel>(
181
185
  modelConstructor: PersistentModelConstructor<T>,
182
186
  condition?: ModelPredicate<T>,
183
- mutator?: Symbol,
187
+ mutator?: symbol,
184
188
  ): Promise<[T[], T[]]>;
189
+
185
190
  async delete<T extends PersistentModel>(
186
191
  modelOrModelConstructor: T | PersistentModelConstructor<T>,
187
192
  condition?: ModelPredicate<T>,
188
- mutator?: Symbol,
193
+ mutator?: symbol,
189
194
  ): Promise<[T[], T[]]> {
190
195
  await this.init();
191
196
  if (!this.adapter) {
@@ -212,6 +217,7 @@ class StorageClass implements StorageFacade {
212
217
  const modelIds = new Set(
213
218
  models.map(model => {
214
219
  const modelId = getIdentifierValue(modelDefinition, model);
220
+
215
221
  return modelId;
216
222
  }),
217
223
  );
@@ -224,7 +230,7 @@ class StorageClass implements StorageFacade {
224
230
  }
225
231
 
226
232
  deleted.forEach(model => {
227
- const modelConstructor = (Object.getPrototypeOf(model) as Object)
233
+ const resolvedModelConstructor = (Object.getPrototypeOf(model) as object)
228
234
  .constructor as PersistentModelConstructor<T>;
229
235
 
230
236
  let theCondition: PredicatesGroup<any> | undefined;
@@ -237,7 +243,7 @@ class StorageClass implements StorageFacade {
237
243
  }
238
244
 
239
245
  this.pushStream.next({
240
- model: modelConstructor,
246
+ model: resolvedModelConstructor,
241
247
  opType: OpType.DELETE,
242
248
  element: model,
243
249
  mutator,
@@ -258,7 +264,7 @@ class StorageClass implements StorageFacade {
258
264
  throw new Error('Storage adapter is missing');
259
265
  }
260
266
 
261
- return await this.adapter.query(modelConstructor, predicate, pagination);
267
+ return this.adapter.query(modelConstructor, predicate, pagination);
262
268
  }
263
269
 
264
270
  async queryOne<T extends PersistentModel>(
@@ -270,13 +276,13 @@ class StorageClass implements StorageFacade {
270
276
  throw new Error('Storage adapter is missing');
271
277
  }
272
278
 
273
- return await this.adapter.queryOne(modelConstructor, firstOrLast);
279
+ return this.adapter.queryOne(modelConstructor, firstOrLast);
274
280
  }
275
281
 
276
282
  observe<T extends PersistentModel>(
277
283
  modelConstructor?: PersistentModelConstructor<T> | null,
278
284
  predicate?: ModelPredicate<T> | null,
279
- skipOwn?: Symbol,
285
+ skipOwn?: symbol,
280
286
  ): Observable<SubscriptionMessage<T>> {
281
287
  const listenToAll = !modelConstructor;
282
288
  const { predicates, type } =
@@ -331,7 +337,7 @@ class StorageClass implements StorageFacade {
331
337
  async batchSave<T extends PersistentModel>(
332
338
  modelConstructor: PersistentModelConstructor<any>,
333
339
  items: ModelInstanceMetadata[],
334
- mutator?: Symbol,
340
+ mutator?: symbol,
335
341
  ): Promise<[T, OpType][]> {
336
342
  await this.init();
337
343
  if (!this.adapter) {
@@ -367,9 +373,9 @@ class StorageClass implements StorageFacade {
367
373
  const [patches, source] = patchesTuple!;
368
374
  const updatedElement = {};
369
375
  // extract array of updated fields from patches
370
- const updatedFields = <string[]>(
371
- patches.map(patch => patch.path && patch.path[0])
372
- );
376
+ const updatedFields = patches.map(
377
+ patch => patch.path && patch.path[0],
378
+ ) as string[];
373
379
 
374
380
  // check model def for association and replace with targetName if exists
375
381
  const modelConstructor = Object.getPrototypeOf(model)
@@ -487,13 +493,13 @@ class ExclusiveStorage implements StorageFacade {
487
493
  }
488
494
 
489
495
  runExclusive<T>(fn: (storage: StorageClass) => Promise<T>) {
490
- return <Promise<T>>this.mutex.runExclusive(fn.bind(this, this.storage));
496
+ return this.mutex.runExclusive(fn.bind(this, this.storage)) as Promise<T>;
491
497
  }
492
498
 
493
499
  async save<T extends PersistentModel>(
494
500
  model: T,
495
501
  condition?: ModelPredicate<T>,
496
- mutator?: Symbol,
502
+ mutator?: symbol,
497
503
  patchesTuple?: [Patch[], PersistentModel],
498
504
  ): Promise<[T, OpType.INSERT | OpType.UPDATE][]> {
499
505
  return this.runExclusive<[T, OpType.INSERT | OpType.UPDATE][]>(storage =>
@@ -504,17 +510,19 @@ class ExclusiveStorage implements StorageFacade {
504
510
  async delete<T extends PersistentModel>(
505
511
  model: T,
506
512
  condition?: ModelPredicate<T>,
507
- mutator?: Symbol,
513
+ mutator?: symbol,
508
514
  ): Promise<[T[], T[]]>;
515
+
509
516
  async delete<T extends PersistentModel>(
510
517
  modelConstructor: PersistentModelConstructor<T>,
511
518
  condition?: ModelPredicate<T>,
512
- mutator?: Symbol,
519
+ mutator?: symbol,
513
520
  ): Promise<[T[], T[]]>;
521
+
514
522
  async delete<T extends PersistentModel>(
515
523
  modelOrModelConstructor: T | PersistentModelConstructor<T>,
516
524
  condition?: ModelPredicate<T>,
517
- mutator?: Symbol,
525
+ mutator?: symbol,
518
526
  ): Promise<[T[], T[]]> {
519
527
  return this.runExclusive<[T[], T[]]>(storage => {
520
528
  if (isModelConstructor(modelOrModelConstructor)) {
@@ -555,7 +563,7 @@ class ExclusiveStorage implements StorageFacade {
555
563
  observe<T extends PersistentModel>(
556
564
  modelConstructor?: PersistentModelConstructor<T> | null,
557
565
  predicate?: ModelPredicate<T> | null,
558
- skipOwn?: Symbol,
566
+ skipOwn?: symbol,
559
567
  ): Observable<SubscriptionMessage<T>> {
560
568
  return this.storage.observe(modelConstructor, predicate, skipOwn);
561
569
  }
@@ -1,17 +1,15 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { Observable, Observer, SubscriptionLike } from 'rxjs';
4
- import { ReachabilityMonitor } from './datastoreReachability';
5
- import { ConsoleLogger } from '@aws-amplify/core';
6
4
 
7
- const logger = new ConsoleLogger('DataStore');
5
+ import { ReachabilityMonitor } from './datastoreReachability';
8
6
 
9
7
  const RECONNECTING_IN = 5000; // 5s this may be configurable in the future
10
8
 
11
- type ConnectionStatus = {
9
+ interface ConnectionStatus {
12
10
  // Might add other params in the future
13
11
  online: boolean;
14
- };
12
+ }
15
13
 
16
14
  export default class DataStoreConnectivity {
17
15
  private connectionStatus: ConnectionStatus;
@@ -28,6 +26,7 @@ export default class DataStoreConnectivity {
28
26
  if (this.observer) {
29
27
  throw new Error('Subscriber already exists');
30
28
  }
29
+
31
30
  return new Observable(observer => {
32
31
  this.observer = observer;
33
32
  // Will be used to forward socket connection changes, enhancing Reachability
@@ -57,7 +56,6 @@ export default class DataStoreConnectivity {
57
56
  // for consistency with other background processors.
58
57
  async stop() {
59
58
  this.unsubscribe();
60
- return;
61
59
  }
62
60
 
63
61
  socketDisconnected() {