@aws-amplify/datastore 3.12.12 → 3.12.13-ds-allow-applicable-data.6

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 (131) hide show
  1. package/CHANGELOG.md +19 -114
  2. package/dist/aws-amplify-datastore.js +4815 -2572
  3. package/dist/aws-amplify-datastore.js.map +1 -1
  4. package/dist/aws-amplify-datastore.min.js +9 -9
  5. package/dist/aws-amplify-datastore.min.js.map +1 -1
  6. package/lib/authModeStrategies/multiAuthStrategy.d.ts +11 -0
  7. package/lib/authModeStrategies/multiAuthStrategy.js +11 -0
  8. package/lib/authModeStrategies/multiAuthStrategy.js.map +1 -1
  9. package/lib/datastore/datastore.d.ts +91 -17
  10. package/lib/datastore/datastore.js +535 -332
  11. package/lib/datastore/datastore.js.map +1 -1
  12. package/lib/index.d.ts +3 -19
  13. package/lib/predicates/index.d.ts +3 -2
  14. package/lib/predicates/index.js +12 -2
  15. package/lib/predicates/index.js.map +1 -1
  16. package/lib/storage/adapter/AsyncStorageAdapter.d.ts +4 -3
  17. package/lib/storage/adapter/AsyncStorageAdapter.js +354 -203
  18. package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  19. package/lib/storage/adapter/AsyncStorageDatabase.d.ts +14 -4
  20. package/lib/storage/adapter/AsyncStorageDatabase.js +65 -28
  21. package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  22. package/lib/storage/adapter/IndexedDBAdapter.d.ts +5 -4
  23. package/lib/storage/adapter/IndexedDBAdapter.js +389 -267
  24. package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
  25. package/lib/storage/adapter/index.d.ts +1 -1
  26. package/lib/storage/storage.d.ts +1 -1
  27. package/lib/storage/storage.js +93 -28
  28. package/lib/storage/storage.js.map +1 -1
  29. package/lib/sync/datastoreConnectivity.d.ts +1 -0
  30. package/lib/sync/datastoreConnectivity.js +45 -0
  31. package/lib/sync/datastoreConnectivity.js.map +1 -1
  32. package/lib/sync/index.d.ts +27 -4
  33. package/lib/sync/index.js +354 -210
  34. package/lib/sync/index.js.map +1 -1
  35. package/lib/sync/merger.d.ts +9 -3
  36. package/lib/sync/merger.js +13 -6
  37. package/lib/sync/merger.js.map +1 -1
  38. package/lib/sync/outbox.d.ts +2 -2
  39. package/lib/sync/outbox.js +77 -71
  40. package/lib/sync/outbox.js.map +1 -1
  41. package/lib/sync/processors/mutation.d.ts +2 -0
  42. package/lib/sync/processors/mutation.js +256 -200
  43. package/lib/sync/processors/mutation.js.map +1 -1
  44. package/lib/sync/processors/subscription.d.ts +2 -0
  45. package/lib/sync/processors/subscription.js +212 -171
  46. package/lib/sync/processors/subscription.js.map +1 -1
  47. package/lib/sync/processors/sync.d.ts +2 -1
  48. package/lib/sync/processors/sync.js +88 -67
  49. package/lib/sync/processors/sync.js.map +1 -1
  50. package/lib/sync/utils.d.ts +3 -2
  51. package/lib/sync/utils.js +59 -8
  52. package/lib/sync/utils.js.map +1 -1
  53. package/lib/types.d.ts +64 -25
  54. package/lib/types.js +10 -1
  55. package/lib/types.js.map +1 -1
  56. package/lib/util.d.ts +56 -24
  57. package/lib/util.js +334 -170
  58. package/lib/util.js.map +1 -1
  59. package/lib-esm/authModeStrategies/multiAuthStrategy.d.ts +11 -0
  60. package/lib-esm/authModeStrategies/multiAuthStrategy.js +11 -0
  61. package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +1 -1
  62. package/lib-esm/datastore/datastore.d.ts +91 -17
  63. package/lib-esm/datastore/datastore.js +537 -334
  64. package/lib-esm/datastore/datastore.js.map +1 -1
  65. package/lib-esm/index.d.ts +3 -19
  66. package/lib-esm/predicates/index.d.ts +3 -2
  67. package/lib-esm/predicates/index.js +13 -3
  68. package/lib-esm/predicates/index.js.map +1 -1
  69. package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +4 -3
  70. package/lib-esm/storage/adapter/AsyncStorageAdapter.js +355 -204
  71. package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  72. package/lib-esm/storage/adapter/AsyncStorageDatabase.d.ts +14 -4
  73. package/lib-esm/storage/adapter/AsyncStorageDatabase.js +66 -29
  74. package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  75. package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +5 -4
  76. package/lib-esm/storage/adapter/IndexedDBAdapter.js +390 -268
  77. package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +1 -1
  78. package/lib-esm/storage/adapter/index.d.ts +1 -1
  79. package/lib-esm/storage/storage.d.ts +1 -1
  80. package/lib-esm/storage/storage.js +93 -28
  81. package/lib-esm/storage/storage.js.map +1 -1
  82. package/lib-esm/sync/datastoreConnectivity.d.ts +1 -0
  83. package/lib-esm/sync/datastoreConnectivity.js +45 -0
  84. package/lib-esm/sync/datastoreConnectivity.js.map +1 -1
  85. package/lib-esm/sync/index.d.ts +27 -4
  86. package/lib-esm/sync/index.js +357 -213
  87. package/lib-esm/sync/index.js.map +1 -1
  88. package/lib-esm/sync/merger.d.ts +9 -3
  89. package/lib-esm/sync/merger.js +13 -6
  90. package/lib-esm/sync/merger.js.map +1 -1
  91. package/lib-esm/sync/outbox.d.ts +2 -2
  92. package/lib-esm/sync/outbox.js +78 -72
  93. package/lib-esm/sync/outbox.js.map +1 -1
  94. package/lib-esm/sync/processors/mutation.d.ts +2 -0
  95. package/lib-esm/sync/processors/mutation.js +258 -202
  96. package/lib-esm/sync/processors/mutation.js.map +1 -1
  97. package/lib-esm/sync/processors/subscription.d.ts +2 -0
  98. package/lib-esm/sync/processors/subscription.js +213 -172
  99. package/lib-esm/sync/processors/subscription.js.map +1 -1
  100. package/lib-esm/sync/processors/sync.d.ts +2 -1
  101. package/lib-esm/sync/processors/sync.js +89 -68
  102. package/lib-esm/sync/processors/sync.js.map +1 -1
  103. package/lib-esm/sync/utils.d.ts +3 -2
  104. package/lib-esm/sync/utils.js +60 -10
  105. package/lib-esm/sync/utils.js.map +1 -1
  106. package/lib-esm/types.d.ts +64 -25
  107. package/lib-esm/types.js +9 -2
  108. package/lib-esm/types.js.map +1 -1
  109. package/lib-esm/util.d.ts +56 -24
  110. package/lib-esm/util.js +334 -170
  111. package/lib-esm/util.js.map +1 -1
  112. package/not-tsconfig.json +32 -0
  113. package/package.json +7 -7
  114. package/src/authModeStrategies/multiAuthStrategy.ts +11 -0
  115. package/src/datastore/datastore.ts +672 -391
  116. package/src/predicates/index.ts +32 -10
  117. package/src/storage/adapter/AsyncStorageAdapter.ts +309 -93
  118. package/src/storage/adapter/AsyncStorageDatabase.ts +74 -26
  119. package/src/storage/adapter/IndexedDBAdapter.ts +319 -136
  120. package/src/storage/adapter/index.ts +1 -1
  121. package/src/storage/storage.ts +69 -22
  122. package/src/sync/datastoreConnectivity.ts +6 -0
  123. package/src/sync/index.ts +473 -353
  124. package/src/sync/merger.ts +20 -4
  125. package/src/sync/outbox.ts +22 -9
  126. package/src/sync/processors/mutation.ts +194 -149
  127. package/src/sync/processors/subscription.ts +279 -246
  128. package/src/sync/processors/sync.ts +162 -138
  129. package/src/sync/utils.ts +67 -12
  130. package/src/types.ts +181 -29
  131. package/src/util.ts +415 -176
@@ -1,2 +1,13 @@
1
1
  import { AuthModeStrategy, AmplifyContext } from '../types';
2
+ /**
3
+ * Returns an array of auth modes to try based on the schema, model, and
4
+ * authenticated user (or lack thereof). Rules are sourced from `getAuthRules`
5
+ * and returned in the order they ought to be attempted.
6
+ *
7
+ * @see sortAuthRulesWithPriority
8
+ * @see getAuthRules
9
+ *
10
+ * @param param0 The `{schema, modelName}` to inspect.
11
+ * @returns A sorted array of auth modes to attempt.
12
+ */
2
13
  export declare const multiAuthStrategy: (amplifyContext: AmplifyContext) => AuthModeStrategy;
@@ -153,6 +153,17 @@ function getAuthRules(_a) {
153
153
  });
154
154
  return Array.from(authModes);
155
155
  }
156
+ /**
157
+ * Returns an array of auth modes to try based on the schema, model, and
158
+ * authenticated user (or lack thereof). Rules are sourced from `getAuthRules`
159
+ * and returned in the order they ought to be attempted.
160
+ *
161
+ * @see sortAuthRulesWithPriority
162
+ * @see getAuthRules
163
+ *
164
+ * @param param0 The `{schema, modelName}` to inspect.
165
+ * @returns A sorted array of auth modes to attempt.
166
+ */
156
167
  exports.multiAuthStrategy = function (amplifyContext) {
157
168
  return function (_a) {
158
169
  var schema = _a.schema, modelName = _a.modelName;
@@ -1 +1 @@
1
- {"version":3,"file":"multiAuthStrategy.js","sourceRoot":"","sources":["../../src/authModeStrategies/multiAuthStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multiAuthStrategy.js","sourceRoot":"","sources":["../../src/authModeStrategies/multiAuthStrategy.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,19 @@
1
1
  import Observable from 'zen-observable-ts';
2
2
  import { PredicateAll } from '../predicates';
3
- import { ConflictHandler, DataStoreConfig, ModelInit, ModelInstanceMetadata, NonModelTypeConstructor, ProducerPaginationInput, PersistentModel, PersistentModelConstructor, ProducerModelPredicate, Schema, SubscriptionMessage, DataStoreSnapshot, TypeConstructorMap, ErrorHandler, ObserveQueryOptions } from '../types';
3
+ import { ConflictHandler, DataStoreConfig, NonModelTypeConstructor, ProducerPaginationInput, PersistentModel, PersistentModelConstructor, ProducerModelPredicate, Schema, SubscriptionMessage, DataStoreSnapshot, TypeConstructorMap, ErrorHandler, ObserveQueryOptions, PersistentModelMetaData, IdentifierFieldOrIdentifierObject } from '../types';
4
4
  export declare let syncClasses: TypeConstructorMap;
5
- declare const initSchema: (userSchema: Schema) => Record<string, NonModelTypeConstructor<any> | PersistentModelConstructor<any, {
6
- readOnlyFields: "createdAt" | "updatedAt";
7
- }>>;
5
+ declare const initSchema: (userSchema: Schema) => Record<string, PersistentModelConstructor<any> | NonModelTypeConstructor<unknown>>;
6
+ /**
7
+ * Constructs a model and records it with its metadata in a weakset. Allows for
8
+ * the separate storage of core model fields and Amplify/DataStore metadata
9
+ * fields that the customer app does not want exposed.
10
+ *
11
+ * @param modelConstructor The model constructor.
12
+ * @param init Init data that would normally be passed to the constructor.
13
+ * @returns The initialized model.
14
+ */
8
15
  export declare type ModelInstanceCreator = typeof modelInstanceCreator;
9
- declare function modelInstanceCreator<T extends PersistentModel = PersistentModel>(modelConstructor: PersistentModelConstructor<T>, init: ModelInit<T> & Partial<ModelInstanceMetadata>): T;
16
+ declare function modelInstanceCreator<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, init: Partial<T>): T;
10
17
  declare class DataStore {
11
18
  private Auth;
12
19
  private API;
@@ -16,50 +23,117 @@ declare class DataStore {
16
23
  private conflictHandler;
17
24
  private errorHandler;
18
25
  private fullSyncInterval;
19
- private initialized;
26
+ private initialized?;
20
27
  private initReject;
21
28
  private initResolve;
22
29
  private maxRecordsToSync;
23
- private storage;
24
- private sync;
30
+ private storage?;
31
+ private sync?;
25
32
  private syncPageSize;
26
33
  private syncExpressions;
27
34
  private syncPredicates;
28
35
  private sessionId;
29
36
  private storageAdapter;
30
37
  private amplifyContext;
38
+ /**
39
+ * **IMPORTANT!**
40
+ *
41
+ * Accumulator for backgrouns things that can **and MUST** be called when
42
+ * DataStore stops.
43
+ *
44
+ * These jobs **MUST** be *idempotent promises* that resolve ONLY
45
+ * once the intended jobs are completely finished and/or otherwise destroyed
46
+ * and cleaned up with ZERO outstanding:
47
+ *
48
+ * 1. side effects (e.g., state changes)
49
+ * 1. callbacks
50
+ * 1. subscriptions
51
+ * 1. calls to storage
52
+ * 1. *etc.*
53
+ *
54
+ * Methods that create pending promises, subscriptions, callbacks, or any
55
+ * type of side effect **MUST** be registered with the manager. And, a new
56
+ * manager must be created after each `exit()`.
57
+ *
58
+ * Failure to comply will put DataStore into a highly unpredictable state
59
+ * when it needs to stop or clear -- which occurs when restarting with new
60
+ * sync expressions, during testing, and potentially during app code
61
+ * recovery handling, etc..
62
+ *
63
+ * It is up to the discretion of each disposer whether to wait for job
64
+ * completion or to cancel operations and issue failures *as long as the
65
+ * disposer returns in a reasonable amount of time.*
66
+ *
67
+ * (Reasonable = *seconds*, not minutes.)
68
+ */
69
+ private runningProcesses;
31
70
  getModuleName(): string;
71
+ /**
72
+ * If not already done:
73
+ * 1. Attaches and initializes storage.
74
+ * 1. Loads the schema and records metadata.
75
+ * 1. If `this.amplifyConfig.aws_appsync_graphqlEndpoint` contains a URL,
76
+ * attaches a sync engine, starts it, and subscribes.
77
+ */
32
78
  start: () => Promise<void>;
33
79
  query: {
34
- <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, id: string): Promise<T | undefined>;
80
+ <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, identifier: IdentifierFieldOrIdentifierObject<T, PersistentModelMetaData<T>>): Promise<T | undefined>;
35
81
  <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, criteria?: ProducerModelPredicate<T> | typeof PredicateAll, paginationProducer?: ProducerPaginationInput<T>): Promise<T[]>;
36
82
  };
37
- save: <T extends Readonly<{
38
- id: string;
39
- } & Record<string, any>>>(model: T, condition?: ProducerModelPredicate<T>) => Promise<T>;
83
+ save: <T extends Readonly<Record<string, any>>>(model: T, condition?: ProducerModelPredicate<T>) => Promise<T>;
40
84
  setConflictHandler: (config: DataStoreConfig) => ConflictHandler;
41
85
  setErrorHandler: (config: DataStoreConfig) => ErrorHandler;
42
86
  delete: {
43
- <T extends PersistentModel>(model: T, condition?: ProducerModelPredicate<T>): Promise<T>;
44
- <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, id: string): Promise<T[]>;
87
+ <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, identifier: IdentifierFieldOrIdentifierObject<T, PersistentModelMetaData<T>>): Promise<T[]>;
45
88
  <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, condition: ProducerModelPredicate<T> | typeof PredicateAll): Promise<T[]>;
89
+ <T extends PersistentModel>(model: T, condition?: ProducerModelPredicate<T>): Promise<T>;
46
90
  };
47
91
  observe: {
48
92
  (): Observable<SubscriptionMessage<PersistentModel>>;
93
+ <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, identifier: string): Observable<SubscriptionMessage<T>>;
94
+ <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, criteria?: ProducerModelPredicate<T> | typeof PredicateAll): Observable<SubscriptionMessage<T>>;
49
95
  <T extends PersistentModel>(model: T): Observable<SubscriptionMessage<T>>;
50
- <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, criteria?: string | ProducerModelPredicate<T>): Observable<SubscriptionMessage<T>>;
51
96
  };
52
97
  observeQuery: {
53
98
  <T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, criteria?: ProducerModelPredicate<T> | typeof PredicateAll, paginationProducer?: ObserveQueryOptions<T>): Observable<DataStoreSnapshot<T>>;
54
99
  };
55
100
  configure: (config?: DataStoreConfig) => void;
56
- clear: () => Promise<void>;
57
- stop: () => Promise<void>;
101
+ /**
102
+ * Clears all data from storage and removes all data, schema info, other
103
+ * initialization details, and then stops DataStore.
104
+ *
105
+ * That said, reinitialization is required after clearing. This can be done
106
+ * by explicitiliy calling `start()` or any method that implicitly starts
107
+ * DataStore, such as `query()`, `save()`, or `delete()`.
108
+ */
109
+ clear(): Promise<void>;
110
+ /**
111
+ * Stops all DataStore sync activities.
112
+ *
113
+ * TODO: "Waits for graceful termination of
114
+ * running queries and terminates subscriptions."
115
+ */
116
+ stop(this: InstanceType<typeof DataStore>): Promise<void>;
117
+ /**
118
+ * Validates given pagination input from a query and creates a pagination
119
+ * argument for use against the storage layer.
120
+ *
121
+ * @param modelDefinition
122
+ * @param paginationProducer
123
+ */
58
124
  private processPagination;
125
+ /**
126
+ * Examines the configured `syncExpressions` and produces a WeakMap of
127
+ * SchemaModel -> predicate to use during sync.
128
+ */
59
129
  private processSyncExpressions;
60
130
  private createFromCondition;
61
131
  private unwrapPromise;
62
132
  private weakMapFromEntries;
133
+ /**
134
+ * A session ID to allow CMS to open databases against multiple apps.
135
+ * This session ID is only expected be set by AWS Amplify Studio.
136
+ */
63
137
  private retrieveSessionId;
64
138
  }
65
139
  declare const instance: DataStore;