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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +4 -0
  2. package/lib/authModeStrategies/defaultAuthStrategy.js +3 -2
  3. package/lib/authModeStrategies/index.js +3 -3
  4. package/lib/authModeStrategies/multiAuthStrategy.js +81 -24
  5. package/lib/datastore/datastore.d.ts +3 -4
  6. package/lib/datastore/datastore.js +361 -227
  7. package/lib/index.d.ts +1 -1
  8. package/lib/index.js +25 -12
  9. package/lib/predicates/index.js +46 -12
  10. package/lib/predicates/next.d.ts +2 -2
  11. package/lib/predicates/next.js +172 -74
  12. package/lib/predicates/sort.js +3 -4
  13. package/lib/ssr/index.js +1 -1
  14. package/lib/storage/adapter/AsyncStorageAdapter.js +240 -128
  15. package/lib/storage/adapter/AsyncStorageDatabase.js +100 -39
  16. package/lib/storage/adapter/InMemoryStore.js +68 -17
  17. package/lib/storage/adapter/InMemoryStore.native.js +5 -3
  18. package/lib/storage/adapter/IndexedDBAdapter.js +355 -199
  19. package/lib/storage/adapter/StorageAdapterBase.js +154 -85
  20. package/lib/storage/adapter/getDefaultAdapter/index.js +8 -9
  21. package/lib/storage/adapter/getDefaultAdapter/index.native.js +4 -3
  22. package/lib/storage/adapter/index.js +0 -1
  23. package/lib/storage/relationship.js +31 -21
  24. package/lib/storage/storage.d.ts +3 -3
  25. package/lib/storage/storage.js +143 -61
  26. package/lib/sync/datastoreConnectivity.d.ts +1 -1
  27. package/lib/sync/datastoreConnectivity.js +57 -9
  28. package/lib/sync/datastoreReachability/index.js +3 -3
  29. package/lib/sync/datastoreReachability/index.native.js +7 -5
  30. package/lib/sync/index.d.ts +1 -1
  31. package/lib/sync/index.js +193 -125
  32. package/lib/sync/merger.js +81 -10
  33. package/lib/sync/outbox.js +101 -30
  34. package/lib/sync/processors/errorMaps.d.ts +1 -1
  35. package/lib/sync/processors/errorMaps.js +41 -6
  36. package/lib/sync/processors/mutation.d.ts +1 -1
  37. package/lib/sync/processors/mutation.js +192 -101
  38. package/lib/sync/processors/subscription.d.ts +4 -1
  39. package/lib/sync/processors/subscription.js +190 -178
  40. package/lib/sync/processors/sync.d.ts +1 -1
  41. package/lib/sync/processors/sync.js +113 -47
  42. package/lib/sync/utils.d.ts +4 -4
  43. package/lib/sync/utils.js +162 -81
  44. package/lib/tsconfig.tsbuildinfo +1 -0
  45. package/lib/types.d.ts +138 -140
  46. package/lib/types.js +40 -5
  47. package/lib/util.d.ts +9 -17
  48. package/lib/util.js +216 -100
  49. package/lib-esm/authModeStrategies/defaultAuthStrategy.js +0 -1
  50. package/lib-esm/authModeStrategies/index.js +0 -1
  51. package/lib-esm/authModeStrategies/multiAuthStrategy.js +76 -21
  52. package/lib-esm/datastore/datastore.d.ts +3 -4
  53. package/lib-esm/datastore/datastore.js +206 -77
  54. package/lib-esm/index.d.ts +1 -1
  55. package/lib-esm/index.js +0 -1
  56. package/lib-esm/predicates/index.js +40 -7
  57. package/lib-esm/predicates/next.d.ts +2 -2
  58. package/lib-esm/predicates/next.js +148 -52
  59. package/lib-esm/predicates/sort.js +2 -4
  60. package/lib-esm/ssr/index.js +0 -1
  61. package/lib-esm/storage/adapter/AsyncStorageAdapter.js +203 -95
  62. package/lib-esm/storage/adapter/AsyncStorageDatabase.js +66 -5
  63. package/lib-esm/storage/adapter/InMemoryStore.js +52 -2
  64. package/lib-esm/storage/adapter/InMemoryStore.native.js +0 -1
  65. package/lib-esm/storage/adapter/IndexedDBAdapter.js +271 -138
  66. package/lib-esm/storage/adapter/StorageAdapterBase.js +130 -62
  67. package/lib-esm/storage/adapter/getDefaultAdapter/index.js +2 -5
  68. package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js +0 -1
  69. package/lib-esm/storage/adapter/index.js +1 -1
  70. package/lib-esm/storage/relationship.js +27 -18
  71. package/lib-esm/storage/storage.d.ts +3 -3
  72. package/lib-esm/storage/storage.js +87 -9
  73. package/lib-esm/sync/datastoreConnectivity.d.ts +1 -1
  74. package/lib-esm/sync/datastoreConnectivity.js +48 -3
  75. package/lib-esm/sync/datastoreReachability/index.js +1 -2
  76. package/lib-esm/sync/datastoreReachability/index.native.js +1 -2
  77. package/lib-esm/sync/index.d.ts +1 -1
  78. package/lib-esm/sync/index.js +136 -72
  79. package/lib-esm/sync/merger.js +73 -3
  80. package/lib-esm/sync/outbox.js +75 -5
  81. package/lib-esm/sync/processors/errorMaps.d.ts +1 -1
  82. package/lib-esm/sync/processors/errorMaps.js +39 -5
  83. package/lib-esm/sync/processors/mutation.d.ts +1 -1
  84. package/lib-esm/sync/processors/mutation.js +130 -44
  85. package/lib-esm/sync/processors/subscription.d.ts +4 -1
  86. package/lib-esm/sync/processors/subscription.js +134 -126
  87. package/lib-esm/sync/processors/sync.d.ts +1 -1
  88. package/lib-esm/sync/processors/sync.js +74 -12
  89. package/lib-esm/sync/utils.d.ts +4 -4
  90. package/lib-esm/sync/utils.js +135 -55
  91. package/lib-esm/tsconfig.tsbuildinfo +1 -0
  92. package/lib-esm/types.d.ts +138 -140
  93. package/lib-esm/types.js +36 -2
  94. package/lib-esm/util.d.ts +9 -17
  95. package/lib-esm/util.js +96 -16
  96. package/package.json +139 -132
  97. package/src/authModeStrategies/multiAuthStrategy.ts +11 -12
  98. package/src/datastore/datastore.ts +32 -25
  99. package/src/predicates/sort.ts +3 -1
  100. package/src/storage/adapter/InMemoryStore.ts +1 -1
  101. package/src/storage/adapter/IndexedDBAdapter.ts +1 -1
  102. package/src/storage/adapter/StorageAdapterBase.ts +1 -1
  103. package/src/storage/adapter/getDefaultAdapter/index.ts +2 -3
  104. package/src/storage/storage.ts +1 -1
  105. package/src/sync/datastoreConnectivity.ts +2 -2
  106. package/src/sync/datastoreReachability/index.native.ts +1 -1
  107. package/src/sync/datastoreReachability/index.ts +1 -1
  108. package/src/sync/index.ts +69 -78
  109. package/src/sync/processors/mutation.ts +16 -10
  110. package/src/sync/processors/subscription.ts +55 -127
  111. package/src/sync/processors/sync.ts +8 -4
  112. package/src/sync/utils.ts +7 -8
  113. package/src/types.ts +4 -8
  114. package/src/util.ts +5 -6
  115. package/lib/.tsbuildinfo +0 -3
  116. package/lib/authModeStrategies/defaultAuthStrategy.js.map +0 -1
  117. package/lib/authModeStrategies/index.js.map +0 -1
  118. package/lib/authModeStrategies/multiAuthStrategy.js.map +0 -1
  119. package/lib/datastore/datastore.js.map +0 -1
  120. package/lib/index.js.map +0 -1
  121. package/lib/predicates/index.js.map +0 -1
  122. package/lib/predicates/next.js.map +0 -1
  123. package/lib/predicates/sort.js.map +0 -1
  124. package/lib/ssr/index.js.map +0 -1
  125. package/lib/storage/adapter/AsyncStorageAdapter.js.map +0 -1
  126. package/lib/storage/adapter/AsyncStorageDatabase.js.map +0 -1
  127. package/lib/storage/adapter/InMemoryStore.js.map +0 -1
  128. package/lib/storage/adapter/InMemoryStore.native.js.map +0 -1
  129. package/lib/storage/adapter/IndexedDBAdapter.js.map +0 -1
  130. package/lib/storage/adapter/StorageAdapterBase.js.map +0 -1
  131. package/lib/storage/adapter/getDefaultAdapter/index.js.map +0 -1
  132. package/lib/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
  133. package/lib/storage/adapter/index.js.map +0 -1
  134. package/lib/storage/relationship.js.map +0 -1
  135. package/lib/storage/storage.js.map +0 -1
  136. package/lib/sync/datastoreConnectivity.js.map +0 -1
  137. package/lib/sync/datastoreReachability/index.js.map +0 -1
  138. package/lib/sync/datastoreReachability/index.native.js.map +0 -1
  139. package/lib/sync/index.js.map +0 -1
  140. package/lib/sync/merger.js.map +0 -1
  141. package/lib/sync/outbox.js.map +0 -1
  142. package/lib/sync/processors/errorMaps.js.map +0 -1
  143. package/lib/sync/processors/mutation.js.map +0 -1
  144. package/lib/sync/processors/subscription.js.map +0 -1
  145. package/lib/sync/processors/sync.js.map +0 -1
  146. package/lib/sync/utils.js.map +0 -1
  147. package/lib/types.js.map +0 -1
  148. package/lib/util.js.map +0 -1
  149. package/lib-esm/.tsbuildinfo +0 -3
  150. package/lib-esm/authModeStrategies/defaultAuthStrategy.js.map +0 -1
  151. package/lib-esm/authModeStrategies/index.js.map +0 -1
  152. package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +0 -1
  153. package/lib-esm/datastore/datastore.js.map +0 -1
  154. package/lib-esm/index.js.map +0 -1
  155. package/lib-esm/predicates/index.js.map +0 -1
  156. package/lib-esm/predicates/next.js.map +0 -1
  157. package/lib-esm/predicates/sort.js.map +0 -1
  158. package/lib-esm/ssr/index.js.map +0 -1
  159. package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +0 -1
  160. package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +0 -1
  161. package/lib-esm/storage/adapter/InMemoryStore.js.map +0 -1
  162. package/lib-esm/storage/adapter/InMemoryStore.native.js.map +0 -1
  163. package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +0 -1
  164. package/lib-esm/storage/adapter/StorageAdapterBase.js.map +0 -1
  165. package/lib-esm/storage/adapter/getDefaultAdapter/index.js.map +0 -1
  166. package/lib-esm/storage/adapter/getDefaultAdapter/index.native.js.map +0 -1
  167. package/lib-esm/storage/adapter/index.js.map +0 -1
  168. package/lib-esm/storage/relationship.js.map +0 -1
  169. package/lib-esm/storage/storage.js.map +0 -1
  170. package/lib-esm/sync/datastoreConnectivity.js.map +0 -1
  171. package/lib-esm/sync/datastoreReachability/index.js.map +0 -1
  172. package/lib-esm/sync/datastoreReachability/index.native.js.map +0 -1
  173. package/lib-esm/sync/index.js.map +0 -1
  174. package/lib-esm/sync/merger.js.map +0 -1
  175. package/lib-esm/sync/outbox.js.map +0 -1
  176. package/lib-esm/sync/processors/errorMaps.js.map +0 -1
  177. package/lib-esm/sync/processors/mutation.js.map +0 -1
  178. package/lib-esm/sync/processors/subscription.js.map +0 -1
  179. package/lib-esm/sync/processors/sync.js.map +0 -1
  180. package/lib-esm/sync/utils.js.map +0 -1
  181. package/lib-esm/types.js.map +0 -1
  182. package/lib-esm/util.js.map +0 -1
package/lib/types.d.ts CHANGED
@@ -1,17 +1,15 @@
1
1
  import { ModelInstanceCreator } from './datastore/datastore';
2
2
  import { NAMESPACES } from './util';
3
3
  import { PredicateAll } from './predicates';
4
- import { GRAPHQL_AUTH_MODE } from '@aws-amplify/api-graphql';
5
- import { Auth } from '@aws-amplify/auth';
6
4
  import { InternalAPI } from '@aws-amplify/api/internals';
7
- import { Cache } from '@aws-amplify/cache';
8
5
  import { Adapter } from './storage/adapter';
9
- export declare type Scalar<T> = T extends Array<infer InnerType> ? InnerType : T;
10
- export declare type Schema = UserSchema & {
6
+ import { GraphQLAuthModeKeys } from '@aws-amplify/core/internals/utils';
7
+ export type Scalar<T> = T extends Array<infer InnerType> ? InnerType : T;
8
+ export type Schema = UserSchema & {
11
9
  version: string;
12
10
  codegenVersion: string;
13
11
  };
14
- export declare type UserSchema = {
12
+ export type UserSchema = {
15
13
  models: SchemaModels;
16
14
  nonModels?: SchemaNonModels;
17
15
  relationships?: RelationshipType;
@@ -19,17 +17,17 @@ export declare type UserSchema = {
19
17
  enums: SchemaEnums;
20
18
  modelTopologicalOrdering?: Map<string, string[]>;
21
19
  };
22
- export declare type InternalSchema = {
20
+ export type InternalSchema = {
23
21
  namespaces: SchemaNamespaces;
24
22
  version: string;
25
23
  codegenVersion: string;
26
24
  };
27
- export declare type SchemaNamespaces = Record<string, SchemaNamespace>;
28
- export declare type SchemaNamespace = UserSchema & {
25
+ export type SchemaNamespaces = Record<string, SchemaNamespace>;
26
+ export type SchemaNamespace = UserSchema & {
29
27
  name: string;
30
28
  };
31
- export declare type SchemaModels = Record<string, SchemaModel>;
32
- export declare type SchemaModel = {
29
+ export type SchemaModels = Record<string, SchemaModel>;
30
+ export type SchemaModel = {
33
31
  name: string;
34
32
  pluralName: string;
35
33
  attributes?: ModelAttributes;
@@ -45,45 +43,45 @@ export declare type SchemaModel = {
45
43
  };
46
44
  export declare function isSchemaModel(obj: any): obj is SchemaModel;
47
45
  export declare function isSchemaModelWithAttributes(m: SchemaModel | SchemaNonModel): m is SchemaModel;
48
- export declare type SchemaNonModels = Record<string, SchemaNonModel>;
49
- export declare type SchemaNonModel = {
46
+ export type SchemaNonModels = Record<string, SchemaNonModel>;
47
+ export type SchemaNonModel = {
50
48
  name: string;
51
49
  fields: ModelFields;
52
50
  };
53
- declare type SchemaEnums = Record<string, SchemaEnum>;
54
- declare type SchemaEnum = {
51
+ type SchemaEnums = Record<string, SchemaEnum>;
52
+ type SchemaEnum = {
55
53
  name: string;
56
54
  values: string[];
57
55
  };
58
- export declare type ModelMeta<T extends PersistentModel> = {
56
+ export type ModelMeta<T extends PersistentModel> = {
59
57
  builder: PersistentModelConstructor<T>;
60
58
  schema: SchemaModel;
61
59
  pkField: string[];
62
60
  };
63
- export declare type ModelAssociation = AssociatedWith | TargetNameAssociation;
64
- declare type AssociatedWith = {
61
+ export type ModelAssociation = AssociatedWith | TargetNameAssociation;
62
+ type AssociatedWith = {
65
63
  connectionType: 'HAS_MANY' | 'HAS_ONE';
66
64
  associatedWith: string | string[];
67
65
  targetName?: string;
68
66
  targetNames?: string[];
69
67
  };
70
68
  export declare function isAssociatedWith(obj: any): obj is AssociatedWith;
71
- declare type TargetNameAssociation = {
69
+ type TargetNameAssociation = {
72
70
  connectionType: 'BELONGS_TO';
73
71
  targetName?: string;
74
72
  targetNames?: string[];
75
73
  };
76
74
  export declare function isTargetNameAssociation(obj: any): obj is TargetNameAssociation;
77
- declare type FieldAssociation = {
75
+ type FieldAssociation = {
78
76
  connectionType: 'HAS_ONE' | 'BELONGS_TO' | 'HAS_MANY';
79
77
  };
80
78
  export declare function isFieldAssociation(obj: any, fieldName: string): obj is FieldAssociation;
81
- export declare type ModelAttributes = ModelAttribute[];
82
- export declare type ModelAttribute = {
79
+ export type ModelAttributes = ModelAttribute[];
80
+ export type ModelAttribute = {
83
81
  type: string;
84
82
  properties?: Record<string, any>;
85
83
  };
86
- export declare type ModelAuthRule = {
84
+ export type ModelAuthRule = {
87
85
  allow: string;
88
86
  provider?: string;
89
87
  operations?: string[];
@@ -93,28 +91,28 @@ export declare type ModelAuthRule = {
93
91
  groupClaim?: string;
94
92
  groupsField?: string;
95
93
  };
96
- export declare type ModelAttributeAuth = {
94
+ export type ModelAttributeAuth = {
97
95
  type: 'auth';
98
96
  properties: {
99
97
  rules: ModelAuthRule[];
100
98
  };
101
99
  };
102
100
  export declare function isModelAttributeAuth(attr: ModelAttribute): attr is ModelAttributeAuth;
103
- declare type ModelAttributeKey = {
101
+ type ModelAttributeKey = {
104
102
  type: 'key';
105
103
  properties: {
106
104
  name?: string;
107
105
  fields: string[];
108
106
  };
109
107
  };
110
- declare type ModelAttributePrimaryKey = {
108
+ type ModelAttributePrimaryKey = {
111
109
  type: 'key';
112
110
  properties: {
113
111
  name: never;
114
112
  fields: string[];
115
113
  };
116
114
  };
117
- declare type ModelAttributeCompositeKey = {
115
+ type ModelAttributeCompositeKey = {
118
116
  type: 'key';
119
117
  properties: {
120
118
  name: string;
@@ -124,7 +122,7 @@ declare type ModelAttributeCompositeKey = {
124
122
  export declare function isModelAttributeKey(attr: ModelAttribute): attr is ModelAttributeKey;
125
123
  export declare function isModelAttributePrimaryKey(attr: ModelAttribute): attr is ModelAttributePrimaryKey;
126
124
  export declare function isModelAttributeCompositeKey(attr: ModelAttribute): attr is ModelAttributeCompositeKey;
127
- export declare type ModelAttributeAuthProperty = {
125
+ export type ModelAttributeAuthProperty = {
128
126
  allow: ModelAttributeAuthAllow;
129
127
  identityClaim?: string;
130
128
  groupClaim?: string;
@@ -147,7 +145,7 @@ export declare enum ModelAttributeAuthProvider {
147
145
  IAM = "iam",
148
146
  API_KEY = "apiKey"
149
147
  }
150
- export declare type ModelFields = Record<string, ModelField>;
148
+ export type ModelFields = Record<string, ModelField>;
151
149
  export declare enum GraphQLScalarType {
152
150
  ID = 0,
153
151
  String = 1,
@@ -165,10 +163,10 @@ export declare enum GraphQLScalarType {
165
163
  AWSIPAddress = 13
166
164
  }
167
165
  export declare namespace GraphQLScalarType {
168
- function getJSType(scalar: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'>): "object" | "string" | "number" | "boolean";
166
+ function getJSType(scalar: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'>): "string" | "number" | "boolean" | "object";
169
167
  function getValidationFunction(scalar: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'>): ((val: string) => boolean) | ((val: number) => boolean) | undefined;
170
168
  }
171
- export declare type AuthorizationRule = {
169
+ export type AuthorizationRule = {
172
170
  identityClaim: string;
173
171
  ownerField: string;
174
172
  provider: 'userPools' | 'oidc' | 'iam' | 'apiKey';
@@ -179,20 +177,20 @@ export declare type AuthorizationRule = {
179
177
  areSubscriptionsPublic: boolean;
180
178
  };
181
179
  export declare function isGraphQLScalarType(obj: any): obj is keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'>;
182
- export declare type ModelFieldType = {
180
+ export type ModelFieldType = {
183
181
  model: string;
184
182
  modelConstructor?: ModelMeta<PersistentModel>;
185
183
  };
186
184
  export declare function isModelFieldType<T extends PersistentModel>(obj: any): obj is ModelFieldType;
187
- export declare type NonModelFieldType = {
185
+ export type NonModelFieldType = {
188
186
  nonModel: string;
189
187
  };
190
188
  export declare function isNonModelFieldType(obj: any): obj is NonModelFieldType;
191
- declare type EnumFieldType = {
189
+ type EnumFieldType = {
192
190
  enum: string;
193
191
  };
194
192
  export declare function isEnumFieldType(obj: any): obj is EnumFieldType;
195
- export declare type ModelField = {
193
+ export type ModelField = {
196
194
  name: string;
197
195
  type: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'> | ModelFieldType | NonModelFieldType | EnumFieldType;
198
196
  isArray: boolean;
@@ -202,10 +200,10 @@ export declare type ModelField = {
202
200
  association?: ModelAssociation;
203
201
  attributes?: ModelAttributes[];
204
202
  };
205
- export declare type NonModelTypeConstructor<T> = {
203
+ export type NonModelTypeConstructor<T> = {
206
204
  new (init: T): T;
207
205
  };
208
- export declare type PersistentModelConstructor<T extends PersistentModel> = {
206
+ export type PersistentModelConstructor<T extends PersistentModel> = {
209
207
  new (init: ModelInit<T, PersistentModelMetaData<T>>): T;
210
208
  copyOf(src: T, mutator: (draft: MutableModel<T, PersistentModelMetaData<T>>) => void): T;
211
209
  };
@@ -226,33 +224,35 @@ export declare class LazyLoadingDisabled {
226
224
  */
227
225
  export declare class LazyLoading {
228
226
  }
229
- export declare type TypeConstructorMap = Record<string, PersistentModelConstructor<any> | NonModelTypeConstructor<unknown>>;
227
+ export type TypeConstructorMap = Record<string, PersistentModelConstructor<any> | NonModelTypeConstructor<unknown>>;
230
228
  /**
231
229
  * Each identifier type is represented using nominal types, see:
232
230
  * https://basarat.gitbook.io/typescript/main-1/nominaltyping
233
231
  */
234
232
  export declare const __identifierBrand__: unique symbol;
235
- export declare type IdentifierBrand<T, K> = T & {
233
+ export type IdentifierBrand<T, K> = T & {
236
234
  [__identifierBrand__]: K;
237
235
  };
238
- export declare type ManagedIdentifier<T, F extends keyof T> = IdentifierBrand<{
236
+ export type ManagedIdentifier<T, F extends keyof T> = IdentifierBrand<{
239
237
  field: F extends string ? F : never;
240
238
  type: T;
241
239
  }, 'ManagedIdentifier'>;
242
- export declare type OptionallyManagedIdentifier<T, F extends keyof T> = IdentifierBrand<{
240
+ export type OptionallyManagedIdentifier<T, F extends keyof T> = IdentifierBrand<{
243
241
  field: F extends string ? F : never;
244
242
  type: T;
245
243
  }, 'OptionallyManagedIdentifier'>;
246
- export declare type CompositeIdentifier<T, K extends Array<keyof T>> = IdentifierBrand<{
244
+ export type CompositeIdentifier<T, K extends Array<keyof T>> = IdentifierBrand<{
247
245
  fields: K;
248
246
  type: T;
249
247
  }, 'CompositeIdentifier'>;
250
- export declare type CustomIdentifier<T, K extends keyof T> = CompositeIdentifier<T, [K]>;
251
- export declare type Identifier<T> = ManagedIdentifier<T, any> | OptionallyManagedIdentifier<T, any> | CompositeIdentifier<T, any> | CustomIdentifier<T, any>;
252
- export declare type IdentifierFields<T extends PersistentModel, M extends PersistentModelMetaData<T> = never> = (MetadataOrDefault<T, M>['identifier'] extends ManagedIdentifier<any, any> | OptionallyManagedIdentifier<any, any> ? MetadataOrDefault<T, M>['identifier']['field'] : MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, infer B> ? B[number] : MetadataOrDefault<T, M>['identifier']['field']) & string;
253
- export declare type IdentifierFieldsForInit<T extends PersistentModel, M extends PersistentModelMetaData<T>> = MetadataOrDefault<T, M>['identifier'] extends DefaultPersistentModelMetaData | ManagedIdentifier<T, any> ? never : MetadataOrDefault<T, M>['identifier'] extends OptionallyManagedIdentifier<T, any> ? IdentifierFields<T, M> : MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, any> ? IdentifierFields<T, M> : never;
248
+ export type CustomIdentifier<T, K extends keyof T> = CompositeIdentifier<T, [
249
+ K
250
+ ]>;
251
+ export type Identifier<T> = ManagedIdentifier<T, any> | OptionallyManagedIdentifier<T, any> | CompositeIdentifier<T, any> | CustomIdentifier<T, any>;
252
+ export type IdentifierFields<T extends PersistentModel, M extends PersistentModelMetaData<T> = never> = (MetadataOrDefault<T, M>['identifier'] extends ManagedIdentifier<any, any> | OptionallyManagedIdentifier<any, any> ? MetadataOrDefault<T, M>['identifier']['field'] : MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, infer B> ? B[number] : MetadataOrDefault<T, M>['identifier']['field']) & string;
253
+ export type IdentifierFieldsForInit<T extends PersistentModel, M extends PersistentModelMetaData<T>> = MetadataOrDefault<T, M>['identifier'] extends DefaultPersistentModelMetaData | ManagedIdentifier<T, any> ? never : MetadataOrDefault<T, M>['identifier'] extends OptionallyManagedIdentifier<T, any> ? IdentifierFields<T, M> : MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, any> ? IdentifierFields<T, M> : never;
254
254
  export declare const __modelMeta__: unique symbol;
255
- export declare type PersistentModelMetaData<T> = {
255
+ export type PersistentModelMetaData<T> = {
256
256
  identifier?: Identifier<T>;
257
257
  readOnlyFields?: string;
258
258
  };
@@ -261,89 +261,89 @@ export interface AsyncCollection<T> extends AsyncIterable<T> {
261
261
  max?: number;
262
262
  }): Promise<T[]>;
263
263
  }
264
- export declare type SettableFieldType<T> = T extends Promise<infer InnerPromiseType> ? undefined extends InnerPromiseType ? InnerPromiseType | null : InnerPromiseType : T extends AsyncCollection<infer InnerCollectionType> ? InnerCollectionType[] | undefined : undefined extends T ? T | null : T;
265
- export declare type PredicateFieldType<T> = NonNullable<Scalar<T extends Promise<infer InnerPromiseType> ? InnerPromiseType : T extends AsyncCollection<infer InnerCollectionType> ? InnerCollectionType : T>>;
266
- declare type KeysOfType<T, FilterType> = {
264
+ export type SettableFieldType<T> = T extends Promise<infer InnerPromiseType> ? undefined extends InnerPromiseType ? InnerPromiseType | null : InnerPromiseType : T extends AsyncCollection<infer InnerCollectionType> ? InnerCollectionType[] | undefined : undefined extends T ? T | null : T;
265
+ export type PredicateFieldType<T> = NonNullable<Scalar<T extends Promise<infer InnerPromiseType> ? InnerPromiseType : T extends AsyncCollection<infer InnerCollectionType> ? InnerCollectionType : T>>;
266
+ type KeysOfType<T, FilterType> = {
267
267
  [P in keyof T]: T[P] extends FilterType ? P : never;
268
268
  }[keyof T];
269
- declare type KeysOfSuperType<T, FilterType> = {
269
+ type KeysOfSuperType<T, FilterType> = {
270
270
  [P in keyof T]: FilterType extends T[P] ? P : never;
271
271
  }[keyof T];
272
- declare type OptionalRelativesOf<T> = KeysOfType<T, AsyncCollection<any>> | KeysOfSuperType<T, Promise<undefined>>;
273
- declare type OmitOptionalRelatives<T> = Omit<T, OptionalRelativesOf<T>>;
274
- declare type PickOptionalRelatives<T> = Pick<T, OptionalRelativesOf<T>>;
275
- export declare type DefaultPersistentModelMetaData = {
272
+ type OptionalRelativesOf<T> = KeysOfType<T, AsyncCollection<any>> | KeysOfSuperType<T, Promise<undefined>>;
273
+ type OmitOptionalRelatives<T> = Omit<T, OptionalRelativesOf<T>>;
274
+ type PickOptionalRelatives<T> = Pick<T, OptionalRelativesOf<T>>;
275
+ export type DefaultPersistentModelMetaData = {
276
276
  identifier: ManagedIdentifier<{
277
277
  id: string;
278
278
  }, 'id'>;
279
279
  readOnlyFields: never;
280
280
  };
281
- export declare type MetadataOrDefault<T extends PersistentModel, _ extends PersistentModelMetaData<T> = never> = T extends {
281
+ export type MetadataOrDefault<T extends PersistentModel, _ extends PersistentModelMetaData<T> = never> = T extends {
282
282
  [__modelMeta__]: PersistentModelMetaData<T>;
283
283
  } ? T[typeof __modelMeta__] : DefaultPersistentModelMetaData;
284
- export declare type PersistentModel = Readonly<Record<string, any>>;
285
- export declare type MetadataReadOnlyFields<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Extract<MetadataOrDefault<T, M>['readOnlyFields'] | M['readOnlyFields'], keyof T>;
286
- export declare type ModelInitBase<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = Omit<T, typeof __modelMeta__ | IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>> & (MetadataOrDefault<T, M>['identifier'] extends OptionallyManagedIdentifier<T, any> ? Partial<Pick<T, IdentifierFieldsForInit<T, M>>> : Required<Pick<T, IdentifierFieldsForInit<T, M>>>);
287
- export declare type ModelInit<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = {
284
+ export type PersistentModel = Readonly<Record<string, any>>;
285
+ export type MetadataReadOnlyFields<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Extract<MetadataOrDefault<T, M>['readOnlyFields'] | M['readOnlyFields'], keyof T>;
286
+ export type ModelInitBase<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = Omit<T, typeof __modelMeta__ | IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>> & (MetadataOrDefault<T, M>['identifier'] extends OptionallyManagedIdentifier<T, any> ? Partial<Pick<T, IdentifierFieldsForInit<T, M>>> : Required<Pick<T, IdentifierFieldsForInit<T, M>>>);
287
+ export type ModelInit<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = {
288
288
  [P in keyof OmitOptionalRelatives<ModelInitBase<T, M>>]: SettableFieldType<ModelInitBase<T, M>[P]>;
289
289
  } & {
290
290
  [P in keyof PickOptionalRelatives<ModelInitBase<T, M>>]+?: SettableFieldType<ModelInitBase<T, M>[P]>;
291
291
  };
292
- declare type DeepWritable<T> = {
292
+ type DeepWritable<T> = {
293
293
  -readonly [P in keyof T]: T[P] extends TypeName<T[P]> ? T[P] : T[P] extends Promise<infer InnerPromiseType> ? undefined extends InnerPromiseType ? InnerPromiseType | null : InnerPromiseType : T[P] extends AsyncCollection<infer InnerCollectionType> ? InnerCollectionType[] | undefined | null : DeepWritable<T[P]>;
294
294
  };
295
- export declare type MutableModel<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = DeepWritable<Omit<T, IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>>> & Readonly<Pick<T, IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>>>;
296
- export declare type ModelInstanceMetadata = {
295
+ export type MutableModel<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = DeepWritable<Omit<T, IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>>> & Readonly<Pick<T, IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>>>;
296
+ export type ModelInstanceMetadata = {
297
297
  _version: number;
298
298
  _lastChangedAt: number;
299
299
  _deleted: boolean;
300
300
  };
301
- export declare type IdentifierFieldValue<T extends PersistentModel, M extends PersistentModelMetaData<T>> = MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, any> ? MetadataOrDefault<T, M>['identifier']['fields'] extends [any] ? T[MetadataOrDefault<T, M>['identifier']['fields'][0]] : never : T[MetadataOrDefault<T, M>['identifier']['field']];
302
- export declare type IdentifierFieldOrIdentifierObject<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Pick<T, IdentifierFields<T, M>> | IdentifierFieldValue<T, M>;
301
+ export type IdentifierFieldValue<T extends PersistentModel, M extends PersistentModelMetaData<T>> = MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, any> ? MetadataOrDefault<T, M>['identifier']['fields'] extends [any] ? T[MetadataOrDefault<T, M>['identifier']['fields'][0]] : never : T[MetadataOrDefault<T, M>['identifier']['field']];
302
+ export type IdentifierFieldOrIdentifierObject<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Pick<T, IdentifierFields<T, M>> | IdentifierFieldValue<T, M>;
303
303
  export declare function isIdentifierObject<T extends PersistentModel>(obj: any, modelDefinition: SchemaModel): obj is IdentifierFields<T extends PersistentModel ? T : never, any>;
304
304
  export declare enum OpType {
305
305
  INSERT = "INSERT",
306
306
  UPDATE = "UPDATE",
307
307
  DELETE = "DELETE"
308
308
  }
309
- export declare type SubscriptionMessage<T extends PersistentModel> = Pick<InternalSubscriptionMessage<T>, 'opType' | 'element' | 'model' | 'condition'>;
310
- export declare type InternalSubscriptionMessage<T extends PersistentModel> = {
309
+ export type SubscriptionMessage<T extends PersistentModel> = Pick<InternalSubscriptionMessage<T>, 'opType' | 'element' | 'model' | 'condition'>;
310
+ export type InternalSubscriptionMessage<T extends PersistentModel> = {
311
311
  opType: OpType;
312
312
  element: T;
313
313
  model: PersistentModelConstructor<T>;
314
314
  condition: PredicatesGroup<T> | null;
315
315
  savedElement?: T;
316
316
  };
317
- export declare type DataStoreSnapshot<T extends PersistentModel> = {
317
+ export type DataStoreSnapshot<T extends PersistentModel> = {
318
318
  items: T[];
319
319
  isSynced: boolean;
320
320
  };
321
- export declare type PredicateExpression<M extends PersistentModel, FT> = TypeName<FT> extends keyof MapTypeToOperands<FT> ? (operator: keyof MapTypeToOperands<FT>[TypeName<FT>], operand: MapTypeToOperands<FT>[TypeName<FT>][keyof MapTypeToOperands<FT>[TypeName<FT>]]) => ModelPredicate<M> : never;
322
- declare type EqualityOperators<T> = {
321
+ export type PredicateExpression<M extends PersistentModel, FT> = TypeName<FT> extends keyof MapTypeToOperands<FT> ? (operator: keyof MapTypeToOperands<FT>[TypeName<FT>], operand: MapTypeToOperands<FT>[TypeName<FT>][keyof MapTypeToOperands<FT>[TypeName<FT>]]) => ModelPredicate<M> : never;
322
+ type EqualityOperators<T> = {
323
323
  ne: T;
324
324
  eq: T;
325
325
  };
326
- declare type ScalarNumberOperators<T> = EqualityOperators<T> & {
326
+ type ScalarNumberOperators<T> = EqualityOperators<T> & {
327
327
  le: T;
328
328
  lt: T;
329
329
  ge: T;
330
330
  gt: T;
331
331
  };
332
- declare type NumberOperators<T> = ScalarNumberOperators<T> & {
332
+ type NumberOperators<T> = ScalarNumberOperators<T> & {
333
333
  between: [T, T];
334
334
  };
335
- declare type StringOperators<T> = ScalarNumberOperators<T> & {
335
+ type StringOperators<T> = ScalarNumberOperators<T> & {
336
336
  beginsWith: T;
337
337
  contains: T;
338
338
  notContains: T;
339
339
  };
340
- declare type BooleanOperators<T> = EqualityOperators<T>;
341
- declare type ArrayOperators<T> = {
340
+ type BooleanOperators<T> = EqualityOperators<T>;
341
+ type ArrayOperators<T> = {
342
342
  contains: T;
343
343
  notContains: T;
344
344
  };
345
- export declare type AllOperators = NumberOperators<any> & StringOperators<any> & ArrayOperators<any>;
346
- declare type MapTypeToOperands<T> = {
345
+ export type AllOperators = NumberOperators<any> & StringOperators<any> & ArrayOperators<any>;
346
+ type MapTypeToOperands<T> = {
347
347
  number: NumberOperators<NonNullable<T>>;
348
348
  string: StringOperators<NonNullable<T>>;
349
349
  boolean: BooleanOperators<NonNullable<T>>;
@@ -351,23 +351,23 @@ declare type MapTypeToOperands<T> = {
351
351
  'string[]': ArrayOperators<string>;
352
352
  'boolean[]': ArrayOperators<boolean>;
353
353
  };
354
- declare type TypeName<T> = T extends string ? 'string' : T extends number ? 'number' : T extends boolean ? 'boolean' : T extends string[] ? 'string[]' : T extends number[] ? 'number[]' : T extends boolean[] ? 'boolean[]' : never;
355
- export declare type PredicateGroups<T extends PersistentModel> = {
354
+ type TypeName<T> = T extends string ? 'string' : T extends number ? 'number' : T extends boolean ? 'boolean' : T extends string[] ? 'string[]' : T extends number[] ? 'number[]' : T extends boolean[] ? 'boolean[]' : never;
355
+ export type PredicateGroups<T extends PersistentModel> = {
356
356
  and: (predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>) => ModelPredicate<T>;
357
357
  or: (predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>) => ModelPredicate<T>;
358
358
  not: (predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>) => ModelPredicate<T>;
359
359
  };
360
- export declare type ModelPredicate<M extends PersistentModel> = {
360
+ export type ModelPredicate<M extends PersistentModel> = {
361
361
  [K in keyof M]-?: PredicateExpression<M, NonNullable<M[K]>>;
362
362
  } & PredicateGroups<M>;
363
- export declare type ProducerModelPredicate<M extends PersistentModel> = (condition: ModelPredicate<M>) => ModelPredicate<M>;
364
- export declare type PredicatesGroup<T extends PersistentModel> = {
363
+ export type ProducerModelPredicate<M extends PersistentModel> = (condition: ModelPredicate<M>) => ModelPredicate<M>;
364
+ export type PredicatesGroup<T extends PersistentModel> = {
365
365
  type: keyof PredicateGroups<T>;
366
366
  predicates: (PredicateObject<T> | PredicatesGroup<T>)[];
367
367
  };
368
368
  export declare function isPredicateObj<T extends PersistentModel>(obj: any): obj is PredicateObject<T>;
369
369
  export declare function isPredicateGroup<T extends PersistentModel>(obj: any): obj is PredicatesGroup<T>;
370
- export declare type PredicateObject<T extends PersistentModel> = {
370
+ export type PredicateObject<T extends PersistentModel> = {
371
371
  field: keyof T;
372
372
  operator: keyof AllOperators;
373
373
  operand: any;
@@ -376,57 +376,57 @@ export declare enum QueryOne {
376
376
  FIRST = 0,
377
377
  LAST = 1
378
378
  }
379
- export declare type GraphQLField = {
379
+ export type GraphQLField = {
380
380
  [field: string]: {
381
381
  [operator: string]: string | number | [number, number];
382
382
  };
383
383
  };
384
- export declare type GraphQLCondition = Partial<GraphQLField | {
384
+ export type GraphQLCondition = Partial<GraphQLField | {
385
385
  and: [GraphQLCondition];
386
386
  or: [GraphQLCondition];
387
387
  not: GraphQLCondition;
388
388
  }>;
389
- export declare type GraphQLFilter = Partial<GraphQLField | {
389
+ export type GraphQLFilter = Partial<GraphQLField | {
390
390
  and: GraphQLFilter[];
391
391
  } | {
392
392
  or: GraphQLFilter[];
393
393
  } | {
394
394
  not: GraphQLFilter;
395
395
  }>;
396
- export declare type ProducerPaginationInput<T extends PersistentModel> = {
396
+ export type ProducerPaginationInput<T extends PersistentModel> = {
397
397
  sort?: ProducerSortPredicate<T>;
398
398
  limit?: number;
399
399
  page?: number;
400
400
  };
401
- export declare type ObserveQueryOptions<T extends PersistentModel> = Pick<ProducerPaginationInput<T>, 'sort'>;
402
- export declare type PaginationInput<T extends PersistentModel> = {
401
+ export type ObserveQueryOptions<T extends PersistentModel> = Pick<ProducerPaginationInput<T>, 'sort'>;
402
+ export type PaginationInput<T extends PersistentModel> = {
403
403
  sort?: SortPredicate<T>;
404
404
  limit?: number;
405
405
  page?: number;
406
406
  };
407
- export declare type ProducerSortPredicate<M extends PersistentModel> = (condition: SortPredicate<M>) => SortPredicate<M>;
408
- export declare type SortPredicate<T extends PersistentModel> = {
407
+ export type ProducerSortPredicate<M extends PersistentModel> = (condition: SortPredicate<M>) => SortPredicate<M>;
408
+ export type SortPredicate<T extends PersistentModel> = {
409
409
  [K in keyof T]-?: SortPredicateExpression<T, NonNullable<T[K]>>;
410
410
  };
411
- export declare type SortPredicateExpression<M extends PersistentModel, FT> = TypeName<FT> extends keyof MapTypeToOperands<FT> ? (sortDirection: keyof typeof SortDirection) => SortPredicate<M> : never;
411
+ export type SortPredicateExpression<M extends PersistentModel, FT> = TypeName<FT> extends keyof MapTypeToOperands<FT> ? (sortDirection: keyof typeof SortDirection) => SortPredicate<M> : never;
412
412
  export declare enum SortDirection {
413
413
  ASCENDING = "ASCENDING",
414
414
  DESCENDING = "DESCENDING"
415
415
  }
416
- export declare type SortPredicatesGroup<T extends PersistentModel> = SortPredicateObject<T>[];
417
- export declare type SortPredicateObject<T extends PersistentModel> = {
416
+ export type SortPredicatesGroup<T extends PersistentModel> = SortPredicateObject<T>[];
417
+ export type SortPredicateObject<T extends PersistentModel> = {
418
418
  field: keyof T;
419
419
  sortDirection: keyof typeof SortDirection;
420
420
  };
421
- export declare type SystemComponent = {
421
+ export type SystemComponent = {
422
422
  setUp(schema: InternalSchema, namespaceResolver: NamespaceResolver, modelInstanceCreator: ModelInstanceCreator, getModelConstructorByModelName: (namsespaceName: NAMESPACES, modelName: string) => PersistentModelConstructor<any>, appId?: string): Promise<void>;
423
423
  };
424
- export declare type NamespaceResolver = (modelConstructor: PersistentModelConstructor<any>) => string;
425
- export declare type ControlMessageType<T> = {
424
+ export type NamespaceResolver = (modelConstructor: PersistentModelConstructor<any>) => string;
425
+ export type ControlMessageType<T> = {
426
426
  type: T;
427
427
  data?: any;
428
428
  };
429
- export declare type RelationType = {
429
+ export type RelationType = {
430
430
  fieldName: string;
431
431
  modelName: string;
432
432
  relationType: 'HAS_ONE' | 'HAS_MANY' | 'BELONGS_TO';
@@ -434,24 +434,24 @@ export declare type RelationType = {
434
434
  targetNames?: string[];
435
435
  associatedWith?: string | string[];
436
436
  };
437
- declare type IndexOptions = {
437
+ type IndexOptions = {
438
438
  unique?: boolean;
439
439
  };
440
- export declare type IndexesType = Array<[string, string[], IndexOptions?]>;
441
- export declare type RelationshipType = {
440
+ export type IndexesType = Array<[string, string[], IndexOptions?]>;
441
+ export type RelationshipType = {
442
442
  [modelName: string]: {
443
443
  indexes: IndexesType;
444
444
  relationTypes: RelationType[];
445
445
  };
446
446
  };
447
- export declare type KeyType = {
447
+ export type KeyType = {
448
448
  primaryKey?: string[];
449
449
  compositeKeys?: Set<string>[];
450
450
  };
451
- export declare type ModelKeys = {
451
+ export type ModelKeys = {
452
452
  [modelName: string]: KeyType;
453
453
  };
454
- export declare type DataStoreConfig = {
454
+ export type DataStoreConfig = {
455
455
  DataStore?: {
456
456
  authModeStrategyType?: AuthModeStrategyType;
457
457
  conflictHandler?: ConflictHandler;
@@ -473,7 +473,7 @@ export declare type DataStoreConfig = {
473
473
  authProviders?: AuthProviders;
474
474
  storageAdapter?: Adapter;
475
475
  };
476
- export declare type AuthProviders = {
476
+ export type AuthProviders = {
477
477
  functionAuthProvider: () => {
478
478
  token: string;
479
479
  } | Promise<{
@@ -484,46 +484,46 @@ export declare enum AuthModeStrategyType {
484
484
  DEFAULT = "DEFAULT",
485
485
  MULTI_AUTH = "MULTI_AUTH"
486
486
  }
487
- export declare type AuthModeStrategyReturn = GRAPHQL_AUTH_MODE | GRAPHQL_AUTH_MODE[] | undefined | null;
488
- export declare type AuthModeStrategyParams = {
487
+ export type AuthModeStrategyReturn = GraphQLAuthModeKeys | GraphQLAuthModeKeys[] | undefined | null;
488
+ export type AuthModeStrategyParams = {
489
489
  schema: InternalSchema;
490
490
  modelName: string;
491
491
  operation: ModelOperation;
492
492
  };
493
- export declare type AuthModeStrategy = (authModeStrategyParams: AuthModeStrategyParams) => AuthModeStrategyReturn | Promise<AuthModeStrategyReturn>;
493
+ export type AuthModeStrategy = (authModeStrategyParams: AuthModeStrategyParams) => AuthModeStrategyReturn | Promise<AuthModeStrategyReturn>;
494
494
  export declare enum ModelOperation {
495
495
  CREATE = "CREATE",
496
496
  READ = "READ",
497
497
  UPDATE = "UPDATE",
498
498
  DELETE = "DELETE"
499
499
  }
500
- export declare type ModelAuthModes = Record<string, {
501
- [Property in ModelOperation]: GRAPHQL_AUTH_MODE[];
500
+ export type ModelAuthModes = Record<string, {
501
+ [Property in ModelOperation]: GraphQLAuthModeKeys[];
502
502
  }>;
503
- export declare type SyncExpression = Promise<{
503
+ export type SyncExpression = Promise<{
504
504
  modelConstructor: any;
505
505
  conditionProducer: (c?: any) => any;
506
506
  }>;
507
- declare type Option0 = [];
508
- declare type Option1<T extends PersistentModel> = [V5ModelPredicate<T> | undefined];
509
- declare type Option<T extends PersistentModel> = Option0 | Option1<T>;
510
- declare type Lookup<T extends PersistentModel> = {
507
+ type Option0 = [];
508
+ type Option1<T extends PersistentModel> = [V5ModelPredicate<T> | undefined];
509
+ type Option<T extends PersistentModel> = Option0 | Option1<T>;
510
+ type Lookup<T extends PersistentModel> = {
511
511
  0: ModelPredicateExtender<T> | Promise<ModelPredicateExtender<T>> | typeof PredicateAll | Promise<typeof PredicateAll | symbol>;
512
512
  1: PredicateInternalsKey | undefined;
513
513
  };
514
- declare type ConditionProducer<T extends PersistentModel, A extends Option<T>> = (...args: A) => A['length'] extends keyof Lookup<T> ? Lookup<T>[A['length']] : never;
514
+ type ConditionProducer<T extends PersistentModel, A extends Option<T>> = (...args: A) => A['length'] extends keyof Lookup<T> ? Lookup<T>[A['length']] : never;
515
515
  export declare function syncExpression<T extends PersistentModel, A extends Option<T>>(modelConstructor: PersistentModelConstructor<T>, conditionProducer: ConditionProducer<T, A>): Promise<{
516
516
  modelConstructor: PersistentModelConstructor<T>;
517
517
  conditionProducer: ConditionProducer<T, A>;
518
518
  }>;
519
- export declare type SyncConflict = {
519
+ export type SyncConflict = {
520
520
  modelConstructor: PersistentModelConstructor<any>;
521
521
  localModel: PersistentModel;
522
522
  remoteModel: PersistentModel;
523
523
  operation: OpType;
524
524
  attempts: number;
525
525
  };
526
- export declare type SyncError<T extends PersistentModel> = {
526
+ export type SyncError<T extends PersistentModel> = {
527
527
  message: string;
528
528
  errorType: ErrorType;
529
529
  errorInfo?: string;
@@ -535,16 +535,16 @@ export declare type SyncError<T extends PersistentModel> = {
535
535
  operation: string;
536
536
  cause?: Error;
537
537
  };
538
- export declare type ErrorType = 'ConfigError' | 'BadModel' | 'BadRecord' | 'Unauthorized' | 'Transient' | 'Unknown';
538
+ export type ErrorType = 'ConfigError' | 'BadModel' | 'BadRecord' | 'Unauthorized' | 'Transient' | 'Unknown';
539
539
  export declare enum ProcessName {
540
540
  'sync' = "sync",
541
541
  'mutate' = "mutate",
542
542
  'subscribe' = "subscribe"
543
543
  }
544
544
  export declare const DISCARD: unique symbol;
545
- export declare type ConflictHandler = (conflict: SyncConflict) => Promise<PersistentModel | typeof DISCARD> | PersistentModel | typeof DISCARD;
546
- export declare type ErrorHandler = (error: SyncError<PersistentModel>) => void;
547
- export declare type DeferredCallbackResolverOptions = {
545
+ export type ConflictHandler = (conflict: SyncConflict) => Promise<PersistentModel | typeof DISCARD> | PersistentModel | typeof DISCARD;
546
+ export type ErrorHandler = (error: SyncError<PersistentModel>) => void;
547
+ export type DeferredCallbackResolverOptions = {
548
548
  callback: () => void;
549
549
  maxInterval?: number;
550
550
  errorHandler?: (error: string) => void;
@@ -553,17 +553,15 @@ export declare enum LimitTimerRaceResolvedValues {
553
553
  LIMIT = "LIMIT",
554
554
  TIMER = "TIMER"
555
555
  }
556
- export declare type AmplifyContext = {
557
- Auth: typeof Auth;
556
+ export type AmplifyContext = {
558
557
  InternalAPI: typeof InternalAPI;
559
- Cache: typeof Cache;
560
558
  };
561
- export declare type MatchableTypes = string | string[] | number | number[] | boolean | boolean[];
562
- export declare type AllFieldOperators = keyof AllOperators;
563
- export declare type NonNeverKeys<T> = {
559
+ export type MatchableTypes = string | string[] | number | number[] | boolean | boolean[];
560
+ export type AllFieldOperators = keyof AllOperators;
561
+ export type NonNeverKeys<T> = {
564
562
  [K in keyof T]: T[K] extends never ? never : K;
565
563
  }[keyof T];
566
- export declare type WithoutNevers<T> = Pick<T, NonNeverKeys<T>>;
564
+ export type WithoutNevers<T> = Pick<T, NonNeverKeys<T>>;
567
565
  /**
568
566
  * A function that accepts a RecursiveModelPrecicate<T>, which it must use to
569
567
  * return a final condition.
@@ -587,11 +585,11 @@ export declare type WithoutNevers<T> = Pick<T, NonNeverKeys<T>>;
587
585
  * ]))
588
586
  * ```
589
587
  */
590
- export declare type RecursiveModelPredicateExtender<RT extends PersistentModel> = (lambda: RecursiveModelPredicate<RT>) => PredicateInternalsKey;
591
- export declare type RecursiveModelPredicateAggregateExtender<RT extends PersistentModel> = (lambda: RecursiveModelPredicate<RT>) => PredicateInternalsKey[];
592
- export declare type RecursiveModelPredicateOperator<RT extends PersistentModel> = (predicates: RecursiveModelPredicateAggregateExtender<RT>) => PredicateInternalsKey;
593
- export declare type RecursiveModelPredicateNegation<RT extends PersistentModel> = (predicate: RecursiveModelPredicateExtender<RT>) => PredicateInternalsKey;
594
- export declare type RecursiveModelPredicate<RT extends PersistentModel> = {
588
+ export type RecursiveModelPredicateExtender<RT extends PersistentModel> = (lambda: RecursiveModelPredicate<RT>) => PredicateInternalsKey;
589
+ export type RecursiveModelPredicateAggregateExtender<RT extends PersistentModel> = (lambda: RecursiveModelPredicate<RT>) => PredicateInternalsKey[];
590
+ export type RecursiveModelPredicateOperator<RT extends PersistentModel> = (predicates: RecursiveModelPredicateAggregateExtender<RT>) => PredicateInternalsKey;
591
+ export type RecursiveModelPredicateNegation<RT extends PersistentModel> = (predicate: RecursiveModelPredicateExtender<RT>) => PredicateInternalsKey;
592
+ export type RecursiveModelPredicate<RT extends PersistentModel> = {
595
593
  [K in keyof RT]-?: PredicateFieldType<RT[K]> extends PersistentModel ? RecursiveModelPredicate<PredicateFieldType<RT[K]>> : ValuePredicate<RT, RT[K]>;
596
594
  } & {
597
595
  or: RecursiveModelPredicateOperator<RT>;
@@ -619,20 +617,20 @@ export declare type RecursiveModelPredicate<RT extends PersistentModel> = {
619
617
  * ]))
620
618
  * ```
621
619
  */
622
- export declare type ModelPredicateExtender<RT extends PersistentModel> = (lambda: V5ModelPredicate<RT>) => PredicateInternalsKey;
623
- export declare type ModelPredicateAggregateExtender<RT extends PersistentModel> = (lambda: V5ModelPredicate<RT>) => PredicateInternalsKey[];
624
- export declare type ValuePredicate<RT extends PersistentModel, MT extends MatchableTypes> = {
620
+ export type ModelPredicateExtender<RT extends PersistentModel> = (lambda: V5ModelPredicate<RT>) => PredicateInternalsKey;
621
+ export type ModelPredicateAggregateExtender<RT extends PersistentModel> = (lambda: V5ModelPredicate<RT>) => PredicateInternalsKey[];
622
+ export type ValuePredicate<RT extends PersistentModel, MT extends MatchableTypes> = {
625
623
  [K in AllFieldOperators]: K extends 'between' ? (inclusiveLowerBound: Scalar<MT>, inclusiveUpperBound: Scalar<MT>) => PredicateInternalsKey : (operand: Scalar<MT>) => PredicateInternalsKey;
626
624
  };
627
- export declare type V5ModelPredicate<RT extends PersistentModel> = WithoutNevers<{
625
+ export type V5ModelPredicate<RT extends PersistentModel> = WithoutNevers<{
628
626
  [K in keyof RT]-?: PredicateFieldType<RT[K]> extends PersistentModel ? never : ValuePredicate<RT, RT[K]>;
629
627
  }> & {
630
628
  or: ModelPredicateOperator<RT>;
631
629
  and: ModelPredicateOperator<RT>;
632
630
  not: ModelPredicateNegation<RT>;
633
631
  } & PredicateInternalsKey;
634
- export declare type ModelPredicateOperator<RT extends PersistentModel> = (predicates: ModelPredicateAggregateExtender<RT>) => PredicateInternalsKey;
635
- export declare type ModelPredicateNegation<RT extends PersistentModel> = (predicate: ModelPredicateExtender<RT>) => PredicateInternalsKey;
632
+ export type ModelPredicateOperator<RT extends PersistentModel> = (predicates: ModelPredicateAggregateExtender<RT>) => PredicateInternalsKey;
633
+ export type ModelPredicateNegation<RT extends PersistentModel> = (predicate: ModelPredicateExtender<RT>) => PredicateInternalsKey;
636
634
  /**
637
635
  * A pointer used by DataStore internally to lookup predicate details
638
636
  * that should not be exposed on public customer interfaces.