@aws-amplify/datastore 5.0.1-unstable.cfbde4c.0 → 5.0.1

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 (209) hide show
  1. package/{lib → dist/cjs}/authModeStrategies/defaultAuthStrategy.js +3 -1
  2. package/dist/cjs/authModeStrategies/defaultAuthStrategy.js.map +1 -0
  3. package/{lib → dist/cjs}/authModeStrategies/index.js +3 -1
  4. package/dist/cjs/authModeStrategies/index.js.map +1 -0
  5. package/{lib → dist/cjs}/authModeStrategies/multiAuthStrategy.js +3 -3
  6. package/dist/cjs/authModeStrategies/multiAuthStrategy.js.map +1 -0
  7. package/{lib → dist/cjs}/datastore/datastore.js +5 -3
  8. package/dist/cjs/datastore/datastore.js.map +1 -0
  9. package/{lib → dist/cjs}/index.js +5 -16
  10. package/dist/cjs/index.js.map +1 -0
  11. package/{lib → dist/cjs}/predicates/index.js +3 -1
  12. package/dist/cjs/predicates/index.js.map +1 -0
  13. package/{lib → dist/cjs}/predicates/next.js +3 -1
  14. package/dist/cjs/predicates/next.js.map +1 -0
  15. package/{lib → dist/cjs}/predicates/sort.js +4 -3
  16. package/dist/cjs/predicates/sort.js.map +1 -0
  17. package/{lib → dist/cjs}/storage/adapter/AsyncStorageAdapter.js +5 -5
  18. package/dist/cjs/storage/adapter/AsyncStorageAdapter.js.map +1 -0
  19. package/{lib → dist/cjs}/storage/adapter/AsyncStorageDatabase.js +3 -1
  20. package/dist/cjs/storage/adapter/AsyncStorageDatabase.js.map +1 -0
  21. package/{lib → dist/cjs}/storage/adapter/InMemoryStore.js +3 -1
  22. package/dist/cjs/storage/adapter/InMemoryStore.js.map +1 -0
  23. package/{lib → dist/cjs}/storage/adapter/InMemoryStore.native.js +5 -5
  24. package/dist/cjs/storage/adapter/InMemoryStore.native.js.map +1 -0
  25. package/{lib → dist/cjs}/storage/adapter/IndexedDBAdapter.js +5 -25
  26. package/dist/cjs/storage/adapter/IndexedDBAdapter.js.map +1 -0
  27. package/{lib → dist/cjs}/storage/adapter/StorageAdapterBase.js +3 -1
  28. package/dist/cjs/storage/adapter/StorageAdapterBase.js.map +1 -0
  29. package/{lib → dist/cjs}/storage/adapter/getDefaultAdapter/index.js +6 -6
  30. package/dist/cjs/storage/adapter/getDefaultAdapter/index.js.map +1 -0
  31. package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js +10 -0
  32. package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js.map +1 -0
  33. package/{lib → dist/cjs}/storage/adapter/index.js +3 -1
  34. package/dist/cjs/storage/adapter/index.js.map +1 -0
  35. package/{lib → dist/cjs}/storage/relationship.js +3 -1
  36. package/dist/cjs/storage/relationship.js.map +1 -0
  37. package/{lib → dist/cjs}/storage/storage.js +5 -5
  38. package/dist/cjs/storage/storage.js.map +1 -0
  39. package/{lib → dist/cjs}/sync/datastoreConnectivity.js +4 -2
  40. package/dist/cjs/sync/datastoreConnectivity.js.map +1 -0
  41. package/{lib → dist/cjs}/sync/datastoreReachability/index.js +3 -1
  42. package/dist/cjs/sync/datastoreReachability/index.js.map +1 -0
  43. package/{lib → dist/cjs}/sync/datastoreReachability/index.native.js +3 -1
  44. package/dist/cjs/sync/datastoreReachability/index.native.js.map +1 -0
  45. package/{lib → dist/cjs}/sync/index.js +6 -7
  46. package/dist/cjs/sync/index.js.map +1 -0
  47. package/{lib → dist/cjs}/sync/merger.js +3 -1
  48. package/dist/cjs/sync/merger.js.map +1 -0
  49. package/{lib → dist/cjs}/sync/outbox.js +3 -1
  50. package/dist/cjs/sync/outbox.js.map +1 -0
  51. package/{lib → dist/cjs}/sync/processors/errorMaps.js +4 -4
  52. package/dist/cjs/sync/processors/errorMaps.js.map +1 -0
  53. package/{lib → dist/cjs}/sync/processors/mutation.js +3 -1
  54. package/dist/cjs/sync/processors/mutation.js.map +1 -0
  55. package/{lib → dist/cjs}/sync/processors/subscription.js +4 -4
  56. package/dist/cjs/sync/processors/subscription.js.map +1 -0
  57. package/{lib → dist/cjs}/sync/processors/sync.js +3 -1
  58. package/dist/cjs/sync/processors/sync.js.map +1 -0
  59. package/{lib → dist/cjs}/sync/utils.js +3 -1
  60. package/dist/cjs/sync/utils.js.map +1 -0
  61. package/{lib → dist/cjs}/types.js +12 -21
  62. package/dist/cjs/types.js.map +1 -0
  63. package/{lib → dist/cjs}/util.js +3 -1
  64. package/dist/cjs/util.js.map +1 -0
  65. package/{lib-esm/authModeStrategies/defaultAuthStrategy.js → dist/esm/authModeStrategies/defaultAuthStrategy.mjs} +4 -1
  66. package/dist/esm/authModeStrategies/defaultAuthStrategy.mjs.map +1 -0
  67. package/dist/esm/authModeStrategies/index.mjs +3 -0
  68. package/dist/esm/authModeStrategies/index.mjs.map +1 -0
  69. package/{lib-esm/authModeStrategies/multiAuthStrategy.js → dist/esm/authModeStrategies/multiAuthStrategy.mjs} +7 -5
  70. package/dist/esm/authModeStrategies/multiAuthStrategy.mjs.map +1 -0
  71. package/{lib-esm/datastore/datastore.js → dist/esm/datastore/datastore.mjs} +30 -26
  72. package/dist/esm/datastore/datastore.mjs.map +1 -0
  73. package/dist/esm/index.mjs +19 -0
  74. package/dist/esm/index.mjs.map +1 -0
  75. package/{lib-esm/predicates/index.js → dist/esm/predicates/index.mjs} +10 -7
  76. package/dist/esm/predicates/index.mjs.map +1 -0
  77. package/{lib-esm/predicates/next.js → dist/esm/predicates/next.mjs} +15 -11
  78. package/dist/esm/predicates/next.mjs.map +1 -0
  79. package/{lib-esm/predicates/sort.js → dist/esm/predicates/sort.mjs} +3 -2
  80. package/dist/esm/predicates/sort.mjs.map +1 -0
  81. package/{lib-esm/storage/adapter/AsyncStorageAdapter.js → dist/esm/storage/adapter/AsyncStorageAdapter.mjs} +10 -6
  82. package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs.map +1 -0
  83. package/{lib-esm/storage/adapter/AsyncStorageDatabase.js → dist/esm/storage/adapter/AsyncStorageDatabase.mjs} +7 -4
  84. package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs.map +1 -0
  85. package/{lib-esm/storage/adapter/InMemoryStore.js → dist/esm/storage/adapter/InMemoryStore.mjs} +5 -2
  86. package/dist/esm/storage/adapter/InMemoryStore.mjs.map +1 -0
  87. package/{lib-esm/storage/adapter/InMemoryStore.native.js → dist/esm/storage/adapter/InMemoryStore.native.mjs} +6 -2
  88. package/dist/esm/storage/adapter/InMemoryStore.native.mjs.map +1 -0
  89. package/{lib-esm/storage/adapter/IndexedDBAdapter.js → dist/esm/storage/adapter/IndexedDBAdapter.mjs} +10 -6
  90. package/dist/esm/storage/adapter/IndexedDBAdapter.mjs.map +1 -0
  91. package/{lib-esm/storage/adapter/StorageAdapterBase.js → dist/esm/storage/adapter/StorageAdapterBase.mjs} +9 -5
  92. package/dist/esm/storage/adapter/StorageAdapterBase.mjs.map +1 -0
  93. package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs +13 -0
  94. package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs.map +1 -0
  95. package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs +8 -0
  96. package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs.map +1 -0
  97. package/dist/esm/storage/adapter/index.mjs +2 -0
  98. package/dist/esm/storage/adapter/index.mjs.map +1 -0
  99. package/{lib-esm/storage/relationship.js → dist/esm/storage/relationship.mjs} +6 -2
  100. package/dist/esm/storage/relationship.mjs.map +1 -0
  101. package/{lib-esm/storage/storage.js → dist/esm/storage/storage.mjs} +11 -8
  102. package/dist/esm/storage/storage.mjs.map +1 -0
  103. package/{lib-esm/sync/datastoreConnectivity.js → dist/esm/sync/datastoreConnectivity.mjs} +9 -5
  104. package/dist/esm/sync/datastoreConnectivity.mjs.map +1 -0
  105. package/dist/esm/sync/datastoreReachability/index.d.ts +1 -0
  106. package/{lib-esm/sync/datastoreReachability/index.js → dist/esm/sync/datastoreReachability/index.mjs} +6 -2
  107. package/dist/esm/sync/datastoreReachability/index.mjs.map +1 -0
  108. package/dist/esm/sync/datastoreReachability/index.native.d.ts +1 -0
  109. package/{lib-esm/sync/datastoreReachability/index.native.js → dist/esm/sync/datastoreReachability/index.native.mjs} +7 -3
  110. package/dist/esm/sync/datastoreReachability/index.native.mjs.map +1 -0
  111. package/{lib-esm/sync/index.js → dist/esm/sync/index.mjs} +24 -21
  112. package/dist/esm/sync/index.mjs.map +1 -0
  113. package/{lib-esm/sync/merger.js → dist/esm/sync/merger.mjs} +5 -2
  114. package/dist/esm/sync/merger.mjs.map +1 -0
  115. package/{lib-esm/sync/outbox.js → dist/esm/sync/outbox.mjs} +7 -4
  116. package/dist/esm/sync/outbox.mjs.map +1 -0
  117. package/{lib-esm/sync/processors/errorMaps.js → dist/esm/sync/processors/errorMaps.mjs} +13 -11
  118. package/dist/esm/sync/processors/errorMaps.mjs.map +1 -0
  119. package/{lib → dist/esm}/sync/processors/mutation.d.ts +1 -1
  120. package/{lib-esm/sync/processors/mutation.js → dist/esm/sync/processors/mutation.mjs} +10 -7
  121. package/dist/esm/sync/processors/mutation.mjs.map +1 -0
  122. package/{lib-esm/sync/processors/subscription.js → dist/esm/sync/processors/subscription.mjs} +18 -17
  123. package/dist/esm/sync/processors/subscription.mjs.map +1 -0
  124. package/{lib-esm/sync/processors/sync.js → dist/esm/sync/processors/sync.mjs} +8 -5
  125. package/dist/esm/sync/processors/sync.mjs.map +1 -0
  126. package/{lib-esm/sync/utils.js → dist/esm/sync/utils.mjs} +30 -26
  127. package/dist/esm/sync/utils.mjs.map +1 -0
  128. package/{lib-esm/types.js → dist/esm/types.mjs} +34 -30
  129. package/dist/esm/types.mjs.map +1 -0
  130. package/{lib-esm/util.js → dist/esm/util.mjs} +61 -57
  131. package/dist/esm/util.mjs.map +1 -0
  132. package/package.json +133 -137
  133. package/lib/authModeStrategies/defaultAuthStrategy.d.ts +0 -2
  134. package/lib/authModeStrategies/index.d.ts +0 -2
  135. package/lib/authModeStrategies/multiAuthStrategy.d.ts +0 -13
  136. package/lib/datastore/datastore.d.ts +0 -231
  137. package/lib/index.d.ts +0 -16
  138. package/lib/predicates/index.d.ts +0 -100
  139. package/lib/predicates/next.d.ts +0 -317
  140. package/lib/predicates/sort.d.ts +0 -8
  141. package/lib/ssr/index.d.ts +0 -3
  142. package/lib/ssr/index.js +0 -18
  143. package/lib/storage/adapter/AsyncStorageAdapter.d.ts +0 -40
  144. package/lib/storage/adapter/AsyncStorageDatabase.d.ts +0 -39
  145. package/lib/storage/adapter/InMemoryStore.d.ts +0 -11
  146. package/lib/storage/adapter/InMemoryStore.native.d.ts +0 -1
  147. package/lib/storage/adapter/IndexedDBAdapter.d.ts +0 -70
  148. package/lib/storage/adapter/StorageAdapterBase.d.ts +0 -134
  149. package/lib/storage/adapter/getDefaultAdapter/index.d.ts +0 -3
  150. package/lib/storage/adapter/getDefaultAdapter/index.native.d.ts +0 -3
  151. package/lib/storage/adapter/getDefaultAdapter/index.native.js +0 -10
  152. package/lib/storage/adapter/index.d.ts +0 -9
  153. package/lib/storage/relationship.d.ts +0 -149
  154. package/lib/storage/storage.d.ts +0 -50
  155. package/lib/sync/datastoreConnectivity.d.ts +0 -16
  156. package/lib/sync/datastoreReachability/index.d.ts +0 -1
  157. package/lib/sync/datastoreReachability/index.native.d.ts +0 -1
  158. package/lib/sync/index.d.ts +0 -103
  159. package/lib/sync/merger.d.ts +0 -17
  160. package/lib/sync/outbox.d.ts +0 -27
  161. package/lib/sync/processors/errorMaps.d.ts +0 -17
  162. package/lib/sync/processors/subscription.d.ts +0 -42
  163. package/lib/sync/processors/sync.d.ts +0 -28
  164. package/lib/sync/utils.d.ts +0 -107
  165. package/lib/tsconfig.tsbuildinfo +0 -1
  166. package/lib/types.d.ts +0 -641
  167. package/lib/util.d.ts +0 -196
  168. package/lib-esm/authModeStrategies/index.js +0 -4
  169. package/lib-esm/index.js +0 -14
  170. package/lib-esm/ssr/index.d.ts +0 -3
  171. package/lib-esm/ssr/index.js +0 -13
  172. package/lib-esm/storage/adapter/getDefaultAdapter/index.js +0 -10
  173. package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js +0 -5
  174. package/lib-esm/storage/adapter/index.js +0 -1
  175. package/lib-esm/sync/datastoreReachability/index.d.ts +0 -1
  176. package/lib-esm/sync/datastoreReachability/index.native.d.ts +0 -1
  177. package/lib-esm/sync/processors/mutation.d.ts +0 -67
  178. package/lib-esm/tsconfig.tsbuildinfo +0 -1
  179. package/src/ssr/index.ts +0 -27
  180. package/ssr/package.json +0 -8
  181. /package/{lib-esm → dist/esm}/authModeStrategies/defaultAuthStrategy.d.ts +0 -0
  182. /package/{lib-esm → dist/esm}/authModeStrategies/index.d.ts +0 -0
  183. /package/{lib-esm → dist/esm}/authModeStrategies/multiAuthStrategy.d.ts +0 -0
  184. /package/{lib-esm → dist/esm}/datastore/datastore.d.ts +0 -0
  185. /package/{lib-esm → dist/esm}/index.d.ts +0 -0
  186. /package/{lib-esm → dist/esm}/predicates/index.d.ts +0 -0
  187. /package/{lib-esm → dist/esm}/predicates/next.d.ts +0 -0
  188. /package/{lib-esm → dist/esm}/predicates/sort.d.ts +0 -0
  189. /package/{lib-esm → dist/esm}/storage/adapter/AsyncStorageAdapter.d.ts +0 -0
  190. /package/{lib-esm → dist/esm}/storage/adapter/AsyncStorageDatabase.d.ts +0 -0
  191. /package/{lib-esm → dist/esm}/storage/adapter/InMemoryStore.d.ts +0 -0
  192. /package/{lib-esm → dist/esm}/storage/adapter/InMemoryStore.native.d.ts +0 -0
  193. /package/{lib-esm → dist/esm}/storage/adapter/IndexedDBAdapter.d.ts +0 -0
  194. /package/{lib-esm → dist/esm}/storage/adapter/StorageAdapterBase.d.ts +0 -0
  195. /package/{lib-esm → dist/esm}/storage/adapter/getDefaultAdapter/index.d.ts +0 -0
  196. /package/{lib-esm → dist/esm}/storage/adapter/getDefaultAdapter/index.native.d.ts +0 -0
  197. /package/{lib-esm → dist/esm}/storage/adapter/index.d.ts +0 -0
  198. /package/{lib-esm → dist/esm}/storage/relationship.d.ts +0 -0
  199. /package/{lib-esm → dist/esm}/storage/storage.d.ts +0 -0
  200. /package/{lib-esm → dist/esm}/sync/datastoreConnectivity.d.ts +0 -0
  201. /package/{lib-esm → dist/esm}/sync/index.d.ts +0 -0
  202. /package/{lib-esm → dist/esm}/sync/merger.d.ts +0 -0
  203. /package/{lib-esm → dist/esm}/sync/outbox.d.ts +0 -0
  204. /package/{lib-esm → dist/esm}/sync/processors/errorMaps.d.ts +0 -0
  205. /package/{lib-esm → dist/esm}/sync/processors/subscription.d.ts +0 -0
  206. /package/{lib-esm → dist/esm}/sync/processors/sync.d.ts +0 -0
  207. /package/{lib-esm → dist/esm}/sync/utils.d.ts +0 -0
  208. /package/{lib-esm → dist/esm}/types.d.ts +0 -0
  209. /package/{lib-esm → dist/esm}/util.d.ts +0 -0
@@ -1,9 +0,0 @@
1
- import { ModelInstanceMetadata, ModelPredicate, OpType, PaginationInput, PersistentModel, PersistentModelConstructor, QueryOne, SystemComponent } from '../../types';
2
- export interface Adapter extends SystemComponent {
3
- clear(): Promise<void>;
4
- save<T extends PersistentModel>(model: T, condition?: ModelPredicate<T>): Promise<[T, OpType.INSERT | OpType.UPDATE][]>;
5
- delete: <T extends PersistentModel>(modelOrModelConstructor: T | PersistentModelConstructor<T>, condition?: ModelPredicate<T>) => Promise<[T[], T[]]>;
6
- query<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, predicate?: ModelPredicate<T>, pagination?: PaginationInput<T>): Promise<T[]>;
7
- queryOne<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, firstOrLast: QueryOne): Promise<T | undefined>;
8
- batchSave<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, items: ModelInstanceMetadata[]): Promise<[T, OpType][]>;
9
- }
@@ -1,149 +0,0 @@
1
- import { ModelMeta } from '../types';
2
- /**
3
- * Defines a relationship from a LOCAL model.field to a REMOTE model.field and helps
4
- * navigate the relationship, providing a simplified peek at the relationship details
5
- * pertinent to setting FK's and constructing join conditions.
6
- *
7
- * Because I mean, relationships are tough.
8
- *
9
- */
10
- export declare class ModelRelationship<T> {
11
- private localModel;
12
- private _field;
13
- /**
14
- * @param modelDefinition The "local" model.
15
- * @param field The "local" model field.
16
- */
17
- constructor(model: ModelMeta<T>, field: string);
18
- /**
19
- * Returns a ModelRelationship for the the given model and field if the pair
20
- * indicates a relationship to another model. Else, returns `null`.
21
- *
22
- * @param model The model the relationship field exists in.
23
- * @param field The field that may relates the local model to the remote model.
24
- */
25
- static from<T>(model: ModelMeta<T>, field: string): ModelRelationship<T>;
26
- /**
27
- * Enumerates all valid `ModelRelationship`'s on the given model.
28
- *
29
- * @param model The model definition to enumerate relationships of.
30
- */
31
- static allFrom<T>(model: ModelMeta<T>): ModelRelationship<T>[];
32
- private get localDefinition();
33
- /**
34
- * The virtual/computed field on the local model that should contain
35
- * the related model.
36
- */
37
- get field(): string;
38
- /**
39
- * The constructor that can be used to query DataStore or create instance for
40
- * the local model.
41
- */
42
- get localConstructor(): import("../types").PersistentModelConstructor<T>;
43
- /**
44
- * The name/type of the relationship the local model has with the remote model
45
- * via the defined local model field.
46
- */
47
- get type(): "HAS_MANY" | "HAS_ONE" | "BELONGS_TO";
48
- /**
49
- * Raw details about the local FK as-is from the local model's field definition in
50
- * the schema. This field requires interpretation.
51
- *
52
- * @see localJoinFields
53
- * @see localAssociatedWith
54
- */
55
- private get localAssocation();
56
- /**
57
- * The field names on the local model that can be used to query or queried to match
58
- * with instances of the remote model.
59
- *
60
- * Fields are returned in-order to match the order of `this.remoteKeyFields`.
61
- */
62
- get localJoinFields(): string[];
63
- /**
64
- * The field names on the local model that uniquely identify it.
65
- *
66
- * These fields may or may not be relevant to the join fields.
67
- */
68
- get localPKFields(): string[];
69
- get remoteDefinition(): import("../types").SchemaModel;
70
- private get remoteModelType();
71
- /**
72
- * Constructor that can be used to query DataStore or create instances for
73
- * the remote model.
74
- */
75
- get remoteModelConstructor(): import("../types").PersistentModelConstructor<Readonly<Record<string, any>>>;
76
- /**
77
- * The field names on the remote model that uniquely identify it.
78
- *
79
- * These fields may or may not be relevant to the join fields.
80
- */
81
- get remotePKFields(): string[];
82
- /**
83
- * The `associatedWith` fields from the local perspective.
84
- *
85
- * When present, these fields indicate which fields on the remote model to use
86
- * when looking for a remote association and/or determining the final remote
87
- * key fields.
88
- */
89
- private get localAssociatedWith();
90
- /**
91
- * The `remote` model's associated field's `assocation` metadata, if
92
- * present.
93
- *
94
- * This is used when determining if the remote model's associated field
95
- * specifies which FK fields to use. If this value is `undefined`, the
96
- * name of the remote field (`this.localAssociatedWith`) *is* the remote
97
- * key field.
98
- */
99
- private get explicitRemoteAssociation();
100
- /**
101
- * The field names on the remote model that can used to query or queried to match
102
- * with instances of the local model.
103
- *
104
- * Fields are returned in-order to match the order of `this.localKeyFields`.
105
- */
106
- get remoteJoinFields(): string[];
107
- /**
108
- * Whether this relationship everything necessary to get, set, and query from
109
- * the perspective of the local model provided at instantiation.
110
- */
111
- get isComplete(): boolean;
112
- /**
113
- * Creates an FK mapper object with respect to the given related instance.
114
- *
115
- * E.g., if the local FK fields are `[parentId, parentName]` and point to
116
- * `[customId, name]` on the remote model, `createLocalFKObject(remote)`
117
- * will return:
118
- *
119
- * ```
120
- * {
121
- * parentId: remote.customId,
122
- * parentName: remote.name
123
- * }
124
- * ```
125
- *
126
- * @param remote The remote related instance.
127
- */
128
- createLocalFKObject(remote: any): Record<string, string>;
129
- /**
130
- * Creates an query mapper object to help fetch the remote instance(s) or
131
- * `null` if any of the necessary local fields are `null` or `undefined`.
132
- *
133
- * E.g., if the local FK fields are `[parentId, parentName]` and point to
134
- * `[customId, name]` on the remote model, `createLocalFKObject(remote)`
135
- * will return:
136
- *
137
- * ```
138
- * {
139
- * customId: local.parentId
140
- * name: local.parentName
141
- * }
142
- * ```
143
- *
144
- * If the local fields are not populated, returns
145
- *
146
- * @param local The local instance.
147
- */
148
- createRemoteQueryObject(local: T): Record<string, string>;
149
- }
@@ -1,50 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { Patch } from 'immer';
3
- import { ModelInstanceCreator } from '../datastore/datastore';
4
- import { InternalSchema, ModelInstanceMetadata, ModelPredicate, NamespaceResolver, OpType, PaginationInput, PersistentModel, PersistentModelConstructor, QueryOne, SchemaNamespace, InternalSubscriptionMessage, SubscriptionMessage } from '../types';
5
- import { NAMESPACES } from '../util';
6
- import { Adapter } from './adapter';
7
- export type StorageSubscriptionMessage<T extends PersistentModel> = InternalSubscriptionMessage<T> & {
8
- mutator?: Symbol;
9
- };
10
- export type StorageFacade = Omit<Adapter, 'setUp'>;
11
- export type Storage = InstanceType<typeof StorageClass>;
12
- declare class StorageClass implements StorageFacade {
13
- private readonly schema;
14
- private readonly namespaceResolver;
15
- private readonly getModelConstructorByModelName;
16
- private readonly modelInstanceCreator;
17
- private readonly adapter?;
18
- private readonly sessionId?;
19
- private initialized;
20
- private readonly pushStream;
21
- constructor(schema: InternalSchema, namespaceResolver: NamespaceResolver, getModelConstructorByModelName: (namsespaceName: NAMESPACES, modelName: string) => PersistentModelConstructor<any>, modelInstanceCreator: ModelInstanceCreator, adapter?: Adapter, sessionId?: string);
22
- static getNamespace(): SchemaNamespace;
23
- init(): Promise<void>;
24
- save<T extends PersistentModel>(model: T, condition?: ModelPredicate<T>, mutator?: Symbol, patchesTuple?: [Patch[], PersistentModel]): Promise<[T, OpType.INSERT | OpType.UPDATE][]>;
25
- delete<T extends PersistentModel>(model: T, condition?: ModelPredicate<T>, mutator?: Symbol): Promise<[T[], T[]]>;
26
- delete<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, condition?: ModelPredicate<T>, mutator?: Symbol): Promise<[T[], T[]]>;
27
- query<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, predicate?: ModelPredicate<T>, pagination?: PaginationInput<T>): Promise<T[]>;
28
- queryOne<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, firstOrLast?: QueryOne): Promise<T | undefined>;
29
- observe<T extends PersistentModel>(modelConstructor?: PersistentModelConstructor<T> | null, predicate?: ModelPredicate<T> | null, skipOwn?: Symbol): Observable<SubscriptionMessage<T>>;
30
- clear(completeObservable?: boolean): Promise<void>;
31
- batchSave<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<any>, items: ModelInstanceMetadata[], mutator?: Symbol): Promise<[T, OpType][]>;
32
- private getChangedFieldsInput;
33
- }
34
- declare class ExclusiveStorage implements StorageFacade {
35
- private storage;
36
- private readonly mutex;
37
- constructor(schema: InternalSchema, namespaceResolver: NamespaceResolver, getModelConstructorByModelName: (namsespaceName: NAMESPACES, modelName: string) => PersistentModelConstructor<any>, modelInstanceCreator: ModelInstanceCreator, adapter?: Adapter, sessionId?: string);
38
- runExclusive<T>(fn: (storage: StorageClass) => Promise<T>): Promise<T>;
39
- save<T extends PersistentModel>(model: T, condition?: ModelPredicate<T>, mutator?: Symbol, patchesTuple?: [Patch[], PersistentModel]): Promise<[T, OpType.INSERT | OpType.UPDATE][]>;
40
- delete<T extends PersistentModel>(model: T, condition?: ModelPredicate<T>, mutator?: Symbol): Promise<[T[], T[]]>;
41
- delete<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, condition?: ModelPredicate<T>, mutator?: Symbol): Promise<[T[], T[]]>;
42
- query<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, predicate?: ModelPredicate<T>, pagination?: PaginationInput<T>): Promise<T[]>;
43
- queryOne<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, firstOrLast?: QueryOne): Promise<T | undefined>;
44
- static getNamespace(): SchemaNamespace;
45
- observe<T extends PersistentModel>(modelConstructor?: PersistentModelConstructor<T> | null, predicate?: ModelPredicate<T> | null, skipOwn?: Symbol): Observable<SubscriptionMessage<T>>;
46
- clear(): Promise<void>;
47
- batchSave<T extends PersistentModel>(modelConstructor: PersistentModelConstructor<T>, items: ModelInstanceMetadata[]): Promise<[T, OpType][]>;
48
- init(): Promise<void>;
49
- }
50
- export { ExclusiveStorage };
@@ -1,16 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- type ConnectionStatus = {
3
- online: boolean;
4
- };
5
- export default class DataStoreConnectivity {
6
- private connectionStatus;
7
- private observer;
8
- private subscription;
9
- private timeout;
10
- constructor();
11
- status(): Observable<ConnectionStatus>;
12
- unsubscribe(): void;
13
- stop(): Promise<void>;
14
- socketDisconnected(): void;
15
- }
16
- export {};
@@ -1 +0,0 @@
1
- export declare const ReachabilityMonitor: import("rxjs").Observable<import("@aws-amplify/core/lib-esm/Reachability/types").NetworkStatus>;
@@ -1 +0,0 @@
1
- export declare const ReachabilityMonitor: import("rxjs").Observable<import("@aws-amplify/core/lib-esm/Reachability/types").NetworkStatus>;
@@ -1,103 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { ModelInstanceCreator } from '../datastore/datastore';
3
- import { ExclusiveStorage as Storage } from '../storage/storage';
4
- import { ConflictHandler, ControlMessageType, ErrorHandler, InternalSchema, ModelInit, MutableModel, NamespaceResolver, PersistentModelConstructor, SchemaModel, SchemaNamespace, TypeConstructorMap, ModelPredicate, AuthModeStrategy, ManagedIdentifier, OptionallyManagedIdentifier, AmplifyContext } from '../types';
5
- import type { __modelMeta__ } from '../types';
6
- import DataStoreConnectivity from './datastoreConnectivity';
7
- import { TransformerMutationType } from './utils';
8
- type StartParams = {
9
- fullSyncInterval: number;
10
- };
11
- export declare class MutationEvent {
12
- readonly [__modelMeta__]: {
13
- identifier: OptionallyManagedIdentifier<MutationEvent, 'id'>;
14
- };
15
- readonly id: string;
16
- readonly model: string;
17
- readonly operation: TransformerMutationType;
18
- readonly modelId: string;
19
- readonly condition: string;
20
- readonly data: string;
21
- constructor(init: ModelInit<MutationEvent>);
22
- static copyOf(src: MutationEvent, mutator: (draft: MutableModel<MutationEvent>) => void | MutationEvent): MutationEvent;
23
- }
24
- export declare class ModelMetadata {
25
- readonly [__modelMeta__]: {
26
- identifier: ManagedIdentifier<ModelMetadata, 'id'>;
27
- };
28
- readonly id: string;
29
- readonly namespace: string;
30
- readonly model: string;
31
- readonly fullSyncInterval: number;
32
- readonly lastSync?: number;
33
- readonly lastFullSync?: number;
34
- readonly lastSyncPredicate?: null | string;
35
- constructor(init: ModelInit<ModelMetadata>);
36
- static copyOf(src: ModelMetadata, mutator: (draft: MutableModel<ModelMetadata>) => void | ModelMetadata): ModelMetadata;
37
- }
38
- export declare enum ControlMessage {
39
- SYNC_ENGINE_STORAGE_SUBSCRIBED = "storageSubscribed",
40
- SYNC_ENGINE_SUBSCRIPTIONS_ESTABLISHED = "subscriptionsEstablished",
41
- SYNC_ENGINE_SYNC_QUERIES_STARTED = "syncQueriesStarted",
42
- SYNC_ENGINE_SYNC_QUERIES_READY = "syncQueriesReady",
43
- SYNC_ENGINE_MODEL_SYNCED = "modelSynced",
44
- SYNC_ENGINE_OUTBOX_MUTATION_ENQUEUED = "outboxMutationEnqueued",
45
- SYNC_ENGINE_OUTBOX_MUTATION_PROCESSED = "outboxMutationProcessed",
46
- SYNC_ENGINE_OUTBOX_STATUS = "outboxStatus",
47
- SYNC_ENGINE_NETWORK_STATUS = "networkStatus",
48
- SYNC_ENGINE_READY = "ready"
49
- }
50
- export declare class SyncEngine {
51
- private readonly schema;
52
- private readonly namespaceResolver;
53
- private readonly modelClasses;
54
- private readonly userModelClasses;
55
- private readonly storage;
56
- private readonly modelInstanceCreator;
57
- private readonly syncPredicates;
58
- private readonly amplifyConfig;
59
- private readonly authModeStrategy;
60
- private readonly amplifyContext;
61
- private readonly connectivityMonitor?;
62
- private online;
63
- private readonly syncQueriesProcessor;
64
- private readonly subscriptionsProcessor;
65
- private readonly mutationsProcessor;
66
- private readonly modelMerger;
67
- private readonly outbox;
68
- private readonly datastoreConnectivity;
69
- private readonly modelSyncedStatus;
70
- private unsleepSyncQueriesObservable;
71
- private waitForSleepState;
72
- private syncQueriesObservableStartSleeping;
73
- private stopDisruptionListener;
74
- private connectionDisrupted;
75
- private runningProcesses;
76
- getModelSyncedStatus(modelConstructor: PersistentModelConstructor<any>): boolean;
77
- constructor(schema: InternalSchema, namespaceResolver: NamespaceResolver, modelClasses: TypeConstructorMap, userModelClasses: TypeConstructorMap, storage: Storage, modelInstanceCreator: ModelInstanceCreator, conflictHandler: ConflictHandler, errorHandler: ErrorHandler, syncPredicates: WeakMap<SchemaModel, ModelPredicate<any> | null>, amplifyConfig: Record<string, any>, authModeStrategy: AuthModeStrategy, amplifyContext: AmplifyContext, connectivityMonitor?: DataStoreConnectivity);
78
- start(params: StartParams): Observable<ControlMessageType<ControlMessage>>;
79
- private getModelsMetadataWithNextFullSync;
80
- private syncQueriesObservable;
81
- private disconnectionHandler;
82
- unsubscribeConnectivity(): void;
83
- /**
84
- * Stops all subscription activities and resolves when all activies report
85
- * that they're disconnected, done retrying, etc..
86
- */
87
- stop(): Promise<void>;
88
- private setupModels;
89
- private getModelsMetadata;
90
- private getModelMetadata;
91
- private getModelDefinition;
92
- static getNamespace(): SchemaNamespace;
93
- /**
94
- * listen for websocket connection disruption
95
- *
96
- * May indicate there was a period of time where messages
97
- * from AppSync were missed. A sync needs to be triggered to
98
- * retrieve the missed data.
99
- */
100
- private startDisruptionListener;
101
- private scheduleSync;
102
- }
103
- export {};
@@ -1,17 +0,0 @@
1
- import { Storage } from '../storage/storage';
2
- import { ModelInstanceMetadata, OpType, PersistentModelConstructor, SchemaModel } from '../types';
3
- import { MutationEventOutbox } from './outbox';
4
- declare class ModelMerger {
5
- private readonly outbox;
6
- private readonly ownSymbol;
7
- constructor(outbox: MutationEventOutbox, ownSymbol: Symbol);
8
- /**
9
- *
10
- * @param storage Storage adapter that contains the data.
11
- * @param model The model from an outbox mutation.
12
- * @returns The type of operation (INSERT/UPDATE/DELETE)
13
- */
14
- merge<T extends ModelInstanceMetadata>(storage: Storage, model: T, modelDefinition: SchemaModel): Promise<OpType>;
15
- mergePage(storage: Storage, modelConstructor: PersistentModelConstructor<any>, items: ModelInstanceMetadata[], modelDefinition: SchemaModel): Promise<[ModelInstanceMetadata, OpType][]>;
16
- }
17
- export { ModelMerger };
@@ -1,27 +0,0 @@
1
- import { MutationEvent } from './index';
2
- import { ExclusiveStorage as Storage, StorageFacade, Storage as StorageClass } from '../storage/storage';
3
- import { ModelInstanceCreator } from '../datastore/datastore';
4
- import { InternalSchema, PersistentModel, PersistentModelConstructor, SchemaModel } from '../types';
5
- import { TransformerMutationType } from './utils';
6
- declare class MutationEventOutbox {
7
- private readonly schema;
8
- private readonly MutationEvent;
9
- private readonly modelInstanceCreator;
10
- private readonly ownSymbol;
11
- private inProgressMutationEventId;
12
- constructor(schema: InternalSchema, MutationEvent: PersistentModelConstructor<MutationEvent>, modelInstanceCreator: ModelInstanceCreator, ownSymbol: Symbol);
13
- enqueue(storage: Storage, mutationEvent: MutationEvent): Promise<void>;
14
- dequeue(storage: StorageClass, record?: PersistentModel, recordOp?: TransformerMutationType): Promise<MutationEvent>;
15
- /**
16
- * Doing a peek() implies that the mutation goes "inProgress"
17
- *
18
- * @param storage
19
- */
20
- peek(storage: StorageFacade): Promise<MutationEvent>;
21
- getForModel<T extends PersistentModel>(storage: StorageFacade, model: T, userModelDefinition: SchemaModel): Promise<MutationEvent[]>;
22
- getModelIds(storage: StorageFacade): Promise<Set<string>>;
23
- private syncOutboxVersionsOnDequeue;
24
- private mergeUserFields;
25
- private removeTimestampFields;
26
- }
27
- export { MutationEventOutbox };
@@ -1,17 +0,0 @@
1
- import { ErrorType } from '../../types';
2
- export type ErrorMap = Partial<{
3
- [key in ErrorType]: (error: Error) => boolean;
4
- }>;
5
- export declare const mutationErrorMap: ErrorMap;
6
- export declare const subscriptionErrorMap: ErrorMap;
7
- export declare const syncErrorMap: ErrorMap;
8
- export declare function getMutationErrorType(error: Error): ErrorType;
9
- export declare function getSubscriptionErrorType(error: Error): ErrorType;
10
- export declare function getSyncErrorType(error: Error): ErrorType;
11
- /**
12
- * Categorizes an error with a broad error type, intended to make
13
- * customer error handling code simpler.
14
- * @param errorMap Error names and a list of patterns that indicate them (each pattern as a regex or function)
15
- * @param error The underying error to categorize.
16
- */
17
- export declare function mapErrorToType(errorMap: ErrorMap, error: Error): ErrorType;
@@ -1,42 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { InternalSchema, PersistentModel, SchemaModel, ModelPredicate, AuthModeStrategy, ErrorHandler, AmplifyContext } from '../../types';
3
- import { TransformerMutationType } from '../utils';
4
- export declare enum CONTROL_MSG {
5
- CONNECTED = "CONNECTED"
6
- }
7
- export declare enum USER_CREDENTIALS {
8
- 'none' = 0,
9
- 'unauth' = 1,
10
- 'auth' = 2
11
- }
12
- declare class SubscriptionProcessor {
13
- private readonly schema;
14
- private readonly syncPredicates;
15
- private readonly amplifyConfig;
16
- private readonly authModeStrategy;
17
- private readonly errorHandler;
18
- private readonly amplifyContext;
19
- private readonly typeQuery;
20
- private buffer;
21
- private dataObserver;
22
- private runningProcesses;
23
- constructor(schema: InternalSchema, syncPredicates: WeakMap<SchemaModel, ModelPredicate<any> | null>, amplifyConfig: Record<string, any>, authModeStrategy: AuthModeStrategy, errorHandler: ErrorHandler, amplifyContext?: AmplifyContext);
24
- private buildSubscription;
25
- private getAuthorizationInfo;
26
- private hubQueryCompletionListener;
27
- start(): [
28
- Observable<CONTROL_MSG>,
29
- Observable<[TransformerMutationType, SchemaModel, PersistentModel]>
30
- ];
31
- stop(): Promise<void>;
32
- private passesPredicateValidation;
33
- private pushToBuffer;
34
- private drainBuffer;
35
- /**
36
- * @returns true if the service returned an RTF subscription error
37
- * @remarks logs a warning with remediation instructions
38
- *
39
- */
40
- private catchRTFError;
41
- }
42
- export { SubscriptionProcessor };
@@ -1,28 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { InternalSchema, ModelInstanceMetadata, SchemaModel, ModelPredicate, AuthModeStrategy, ErrorHandler, AmplifyContext } from '../../types';
3
- declare class SyncProcessor {
4
- private readonly schema;
5
- private readonly syncPredicates;
6
- private readonly amplifyConfig;
7
- private readonly authModeStrategy;
8
- private readonly errorHandler;
9
- private readonly amplifyContext;
10
- private readonly typeQuery;
11
- private runningProcesses;
12
- constructor(schema: InternalSchema, syncPredicates: WeakMap<SchemaModel, ModelPredicate<any> | null>, amplifyConfig: Record<string, any>, authModeStrategy: AuthModeStrategy, errorHandler: ErrorHandler, amplifyContext: AmplifyContext);
13
- private generateQueries;
14
- private graphqlFilterFromPredicate;
15
- private retrievePage;
16
- private jitteredRetry;
17
- start(typesLastSync: Map<SchemaModel, [string, number]>): Observable<SyncModelPage>;
18
- stop(): Promise<void>;
19
- }
20
- export type SyncModelPage = {
21
- namespace: string;
22
- modelDefinition: SchemaModel;
23
- items: ModelInstanceMetadata[];
24
- startedAt: number;
25
- done: boolean;
26
- isFullSync: boolean;
27
- };
28
- export { SyncProcessor };
@@ -1,107 +0,0 @@
1
- import { GraphQLAuthError } from '@aws-amplify/api';
2
- import { GraphQLAuthMode } from '@aws-amplify/core/internals/utils';
3
- import { ModelInstanceCreator } from '../datastore/datastore';
4
- import { AuthorizationRule, GraphQLCondition, GraphQLFilter, ModelInstanceMetadata, OpType, PersistentModel, PersistentModelConstructor, PredicatesGroup, RelationshipType, SchemaModel, SchemaNamespace, SchemaNonModel, ModelOperation, InternalSchema, AuthModeStrategy } from '../types';
5
- import { MutationEvent } from './';
6
- declare enum GraphQLOperationType {
7
- LIST = "query",
8
- CREATE = "mutation",
9
- UPDATE = "mutation",
10
- DELETE = "mutation",
11
- GET = "query"
12
- }
13
- export declare enum TransformerMutationType {
14
- CREATE = "Create",
15
- UPDATE = "Update",
16
- DELETE = "Delete",
17
- GET = "Get"
18
- }
19
- export declare function getMetadataFields(): ReadonlyArray<string>;
20
- export declare function generateSelectionSet(namespace: SchemaNamespace, modelDefinition: SchemaModel | SchemaNonModel): string;
21
- export declare function getAuthorizationRules(modelDefinition: SchemaModel): AuthorizationRule[];
22
- export declare function buildSubscriptionGraphQLOperation(namespace: SchemaNamespace, modelDefinition: SchemaModel, transformerMutationType: TransformerMutationType, isOwnerAuthorization: boolean, ownerField: string, filterArg?: boolean): [TransformerMutationType, string, string];
23
- export declare function buildGraphQLOperation(namespace: SchemaNamespace, modelDefinition: SchemaModel, graphQLOpType: keyof typeof GraphQLOperationType): [TransformerMutationType, string, string][];
24
- export declare function createMutationInstanceFromModelOperation<T extends PersistentModel>(relationships: RelationshipType, modelDefinition: SchemaModel, opType: OpType, model: PersistentModelConstructor<T>, element: T, condition: GraphQLCondition, MutationEventConstructor: PersistentModelConstructor<MutationEvent>, modelInstanceCreator: ModelInstanceCreator, id?: string): MutationEvent;
25
- export declare function predicateToGraphQLCondition(predicate: PredicatesGroup<any>, modelDefinition: SchemaModel): GraphQLCondition;
26
- /**
27
- * @param predicatesGroup - Predicate Group
28
- @returns GQL Filter Expression from Predicate Group
29
-
30
- @remarks Flattens redundant list predicates
31
- @example
32
-
33
- ```js
34
- { and:[{ and:[{ username: { eq: 'bob' }}] }] }
35
- ```
36
- Becomes
37
- ```js
38
- { and:[{ username: { eq: 'bob' }}] }
39
- ```
40
- */
41
- export declare function predicateToGraphQLFilter(predicatesGroup: PredicatesGroup<any>, fieldsToOmit?: string[], root?: boolean): GraphQLFilter;
42
- /**
43
- *
44
- * @param group - selective sync predicate group
45
- * @returns set of distinct field names in the filter group
46
- */
47
- export declare function filterFields(group?: PredicatesGroup<any>): Set<string>;
48
- /**
49
- *
50
- * @param modelDefinition
51
- * @returns set of field names used with dynamic auth modes configured for the provided model definition
52
- */
53
- export declare function dynamicAuthFields(modelDefinition: SchemaModel): Set<string>;
54
- /**
55
- *
56
- * @param group - selective sync predicate group
57
- * @returns the total number of OR'd predicates in the filter group
58
- *
59
- * @example returns 2
60
- * ```js
61
- * { type: "or", predicates: [
62
- * { field: "username", operator: "beginsWith", operand: "a" },
63
- * { field: "title", operator: "contains", operand: "abc" },
64
- * ]}
65
- * ```
66
- */
67
- export declare function countFilterCombinations(group?: PredicatesGroup<any>): number;
68
- /**
69
- *
70
- * @param group - selective sync predicate group
71
- * @returns name of repeated field | null
72
- *
73
- * @example returns "username"
74
- * ```js
75
- * { type: "and", predicates: [
76
- * { field: "username", operator: "beginsWith", operand: "a" },
77
- * { field: "username", operator: "contains", operand: "abc" },
78
- * ] }
79
- * ```
80
- */
81
- export declare function repeatedFieldInGroup(group?: PredicatesGroup<any>): string | null;
82
- export declare enum RTFError {
83
- UnknownField = 0,
84
- MaxAttributes = 1,
85
- MaxCombinations = 2,
86
- RepeatedFieldname = 3,
87
- NotGroup = 4,
88
- FieldNotInType = 5
89
- }
90
- export declare function generateRTFRemediation(errorType: RTFError, modelDefinition: SchemaModel, predicatesGroup: PredicatesGroup<any> | undefined): string;
91
- export declare function getUserGroupsFromToken(token: {
92
- [field: string]: any;
93
- }, rule: AuthorizationRule): string[];
94
- export declare function getModelAuthModes({ authModeStrategy, defaultAuthMode, modelName, schema, }: {
95
- authModeStrategy: AuthModeStrategy;
96
- defaultAuthMode: GraphQLAuthMode;
97
- modelName: string;
98
- schema: InternalSchema;
99
- }): Promise<{
100
- [key in ModelOperation]: GraphQLAuthMode[];
101
- }>;
102
- export declare function getForbiddenError(error: any): any;
103
- export declare function resolveServiceErrorStatusCode(error: unknown): number | null;
104
- export declare function getClientSideAuthError(error: any): GraphQLAuthError;
105
- export declare function getTokenForCustomAuth(authMode: GraphQLAuthMode, amplifyConfig?: Record<string, any>): Promise<string | undefined>;
106
- export declare function getIdentifierValue(modelDefinition: SchemaModel, model: ModelInstanceMetadata | PersistentModel): string;
107
- export {};