@aws-amplify/datastore 5.0.32 → 5.0.33-s-auth.30d0cd2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/cjs/authModeStrategies/multiAuthStrategy.js +1 -1
  2. package/dist/cjs/authModeStrategies/multiAuthStrategy.js.map +1 -1
  3. package/dist/cjs/datastore/datastore.js +46 -41
  4. package/dist/cjs/datastore/datastore.js.map +1 -1
  5. package/dist/cjs/index.js +3 -1
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/predicates/index.js +1 -0
  8. package/dist/cjs/predicates/index.js.map +1 -1
  9. package/dist/cjs/predicates/next.js +13 -12
  10. package/dist/cjs/predicates/next.js.map +1 -1
  11. package/dist/cjs/predicates/sort.js +2 -2
  12. package/dist/cjs/predicates/sort.js.map +1 -1
  13. package/dist/cjs/storage/adapter/AsyncStorageAdapter.js +21 -18
  14. package/dist/cjs/storage/adapter/AsyncStorageAdapter.js.map +1 -1
  15. package/dist/cjs/storage/adapter/AsyncStorageDatabase.js +10 -9
  16. package/dist/cjs/storage/adapter/AsyncStorageDatabase.js.map +1 -1
  17. package/dist/cjs/storage/adapter/InMemoryStore.js +4 -1
  18. package/dist/cjs/storage/adapter/InMemoryStore.js.map +1 -1
  19. package/dist/cjs/storage/adapter/IndexedDBAdapter.js +21 -23
  20. package/dist/cjs/storage/adapter/IndexedDBAdapter.js.map +1 -1
  21. package/dist/cjs/storage/adapter/StorageAdapterBase.js +7 -7
  22. package/dist/cjs/storage/adapter/StorageAdapterBase.js.map +1 -1
  23. package/dist/cjs/storage/adapter/getDefaultAdapter/index.js +4 -1
  24. package/dist/cjs/storage/adapter/getDefaultAdapter/index.js.map +1 -1
  25. package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js +1 -0
  26. package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
  27. package/dist/cjs/storage/relationship.js +1 -0
  28. package/dist/cjs/storage/relationship.js.map +1 -1
  29. package/dist/cjs/storage/storage.js +14 -14
  30. package/dist/cjs/storage/storage.js.map +1 -1
  31. package/dist/cjs/sync/datastoreConnectivity.js +0 -3
  32. package/dist/cjs/sync/datastoreConnectivity.js.map +1 -1
  33. package/dist/cjs/sync/index.js +47 -43
  34. package/dist/cjs/sync/index.js.map +1 -1
  35. package/dist/cjs/sync/merger.js +1 -1
  36. package/dist/cjs/sync/merger.js.map +1 -1
  37. package/dist/cjs/sync/outbox.js +19 -17
  38. package/dist/cjs/sync/outbox.js.map +1 -1
  39. package/dist/cjs/sync/processors/errorMaps.js.map +1 -1
  40. package/dist/cjs/sync/processors/mutation.js +31 -28
  41. package/dist/cjs/sync/processors/mutation.js.map +1 -1
  42. package/dist/cjs/sync/processors/subscription.js +21 -12
  43. package/dist/cjs/sync/processors/subscription.js.map +1 -1
  44. package/dist/cjs/sync/processors/sync.js +25 -21
  45. package/dist/cjs/sync/processors/sync.js.map +1 -1
  46. package/dist/cjs/sync/utils.js +20 -21
  47. package/dist/cjs/sync/utils.js.map +1 -1
  48. package/dist/cjs/types.js +1 -0
  49. package/dist/cjs/types.js.map +1 -1
  50. package/dist/cjs/util.js +46 -25
  51. package/dist/cjs/util.js.map +1 -1
  52. package/dist/esm/authModeStrategies/multiAuthStrategy.d.ts +1 -1
  53. package/dist/esm/authModeStrategies/multiAuthStrategy.mjs +1 -1
  54. package/dist/esm/authModeStrategies/multiAuthStrategy.mjs.map +1 -1
  55. package/dist/esm/datastore/datastore.d.ts +4 -6
  56. package/dist/esm/datastore/datastore.mjs +42 -34
  57. package/dist/esm/datastore/datastore.mjs.map +1 -1
  58. package/dist/esm/index.d.ts +1 -1
  59. package/dist/esm/index.mjs +2 -2
  60. package/dist/esm/index.mjs.map +1 -1
  61. package/dist/esm/predicates/index.mjs +1 -0
  62. package/dist/esm/predicates/index.mjs.map +1 -1
  63. package/dist/esm/predicates/next.d.ts +7 -7
  64. package/dist/esm/predicates/next.mjs +13 -12
  65. package/dist/esm/predicates/next.mjs.map +1 -1
  66. package/dist/esm/predicates/sort.d.ts +1 -1
  67. package/dist/esm/predicates/sort.mjs +2 -2
  68. package/dist/esm/predicates/sort.mjs.map +1 -1
  69. package/dist/esm/storage/adapter/AsyncStorageAdapter.d.ts +1 -1
  70. package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs +21 -18
  71. package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs.map +1 -1
  72. package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs +10 -9
  73. package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs.map +1 -1
  74. package/dist/esm/storage/adapter/InMemoryStore.mjs +4 -1
  75. package/dist/esm/storage/adapter/InMemoryStore.mjs.map +1 -1
  76. package/dist/esm/storage/adapter/IndexedDBAdapter.mjs +21 -23
  77. package/dist/esm/storage/adapter/IndexedDBAdapter.mjs.map +1 -1
  78. package/dist/esm/storage/adapter/StorageAdapterBase.d.ts +2 -2
  79. package/dist/esm/storage/adapter/StorageAdapterBase.mjs +7 -7
  80. package/dist/esm/storage/adapter/StorageAdapterBase.mjs.map +1 -1
  81. package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs +3 -1
  82. package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs.map +1 -1
  83. package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs +1 -0
  84. package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs.map +1 -1
  85. package/dist/esm/storage/adapter/index.d.ts +1 -1
  86. package/dist/esm/storage/relationship.mjs +1 -0
  87. package/dist/esm/storage/relationship.mjs.map +1 -1
  88. package/dist/esm/storage/storage.d.ts +11 -11
  89. package/dist/esm/storage/storage.mjs +10 -10
  90. package/dist/esm/storage/storage.mjs.map +1 -1
  91. package/dist/esm/sync/datastoreConnectivity.d.ts +2 -2
  92. package/dist/esm/sync/datastoreConnectivity.mjs +0 -3
  93. package/dist/esm/sync/datastoreConnectivity.mjs.map +1 -1
  94. package/dist/esm/sync/index.d.ts +3 -3
  95. package/dist/esm/sync/index.mjs +47 -43
  96. package/dist/esm/sync/index.mjs.map +1 -1
  97. package/dist/esm/sync/merger.d.ts +1 -1
  98. package/dist/esm/sync/merger.mjs +1 -1
  99. package/dist/esm/sync/merger.mjs.map +1 -1
  100. package/dist/esm/sync/outbox.d.ts +4 -4
  101. package/dist/esm/sync/outbox.mjs +19 -17
  102. package/dist/esm/sync/outbox.mjs.map +1 -1
  103. package/dist/esm/sync/processors/errorMaps.mjs.map +1 -1
  104. package/dist/esm/sync/processors/mutation.d.ts +5 -5
  105. package/dist/esm/sync/processors/mutation.mjs +31 -28
  106. package/dist/esm/sync/processors/mutation.mjs.map +1 -1
  107. package/dist/esm/sync/processors/subscription.d.ts +1 -1
  108. package/dist/esm/sync/processors/subscription.mjs +21 -12
  109. package/dist/esm/sync/processors/subscription.mjs.map +1 -1
  110. package/dist/esm/sync/processors/sync.d.ts +3 -3
  111. package/dist/esm/sync/processors/sync.mjs +13 -9
  112. package/dist/esm/sync/processors/sync.mjs.map +1 -1
  113. package/dist/esm/sync/utils.d.ts +11 -13
  114. package/dist/esm/sync/utils.mjs +20 -21
  115. package/dist/esm/sync/utils.mjs.map +1 -1
  116. package/dist/esm/types.d.ts +121 -131
  117. package/dist/esm/types.mjs +3 -2
  118. package/dist/esm/types.mjs.map +1 -1
  119. package/dist/esm/util.d.ts +5 -5
  120. package/dist/esm/util.mjs +46 -25
  121. package/dist/esm/util.mjs.map +1 -1
  122. package/package.json +74 -73
  123. package/src/authModeStrategies/multiAuthStrategy.ts +8 -4
  124. package/src/datastore/datastore.ts +145 -123
  125. package/src/index.ts +10 -8
  126. package/src/predicates/index.ts +10 -2
  127. package/src/predicates/next.ts +39 -28
  128. package/src/predicates/sort.ts +23 -26
  129. package/src/storage/adapter/AsyncStorageAdapter.ts +43 -25
  130. package/src/storage/adapter/AsyncStorageDatabase.ts +18 -10
  131. package/src/storage/adapter/InMemoryStore.ts +5 -1
  132. package/src/storage/adapter/IndexedDBAdapter.ts +50 -37
  133. package/src/storage/adapter/StorageAdapterBase.ts +24 -18
  134. package/src/storage/adapter/getDefaultAdapter/index.native.ts +1 -0
  135. package/src/storage/adapter/getDefaultAdapter/index.ts +4 -1
  136. package/src/storage/adapter/index.ts +2 -2
  137. package/src/storage/relationship.ts +5 -1
  138. package/src/storage/storage.ts +38 -30
  139. package/src/sync/datastoreConnectivity.ts +4 -6
  140. package/src/sync/index.ts +228 -230
  141. package/src/sync/merger.ts +4 -3
  142. package/src/sync/outbox.ts +26 -24
  143. package/src/sync/processors/errorMaps.ts +5 -0
  144. package/src/sync/processors/mutation.ts +80 -72
  145. package/src/sync/processors/subscription.ts +69 -53
  146. package/src/sync/processors/sync.ts +49 -37
  147. package/src/sync/utils.ts +60 -41
  148. package/src/types.ts +165 -165
  149. package/src/util.ts +89 -53
@@ -1,10 +1,10 @@
1
+ import { InternalAPI } from '@aws-amplify/api/internals';
2
+ import { GraphQLAuthMode } from '@aws-amplify/core/internals/utils';
1
3
  import { ModelInstanceCreator } from './datastore/datastore';
2
4
  import { NAMESPACES } from './util';
3
5
  import { PredicateAll } from './predicates';
4
- import { InternalAPI } from '@aws-amplify/api/internals';
5
6
  import { Adapter } from './storage/adapter';
6
- import { GraphQLAuthMode } from '@aws-amplify/core/internals/utils';
7
- export type Scalar<T> = T extends Array<infer InnerType> ? InnerType : T;
7
+ export type Scalar<T> = T extends (infer InnerType)[] ? InnerType : T;
8
8
  /**
9
9
  * @deprecated If you intended to use the Schema for `generateClient`, then you've imported the wrong Schema type.
10
10
  * Use `import { type Schema } from '../amplify/data/resource' instead. If you intended to import the type for DataStore
@@ -15,25 +15,25 @@ export type DataStoreSchema = UserSchema & {
15
15
  version: string;
16
16
  codegenVersion: string;
17
17
  };
18
- export type UserSchema = {
18
+ export interface UserSchema {
19
19
  models: SchemaModels;
20
20
  nonModels?: SchemaNonModels;
21
21
  relationships?: RelationshipType;
22
22
  keys?: ModelKeys;
23
23
  enums: SchemaEnums;
24
24
  modelTopologicalOrdering?: Map<string, string[]>;
25
- };
26
- export type InternalSchema = {
25
+ }
26
+ export interface InternalSchema {
27
27
  namespaces: SchemaNamespaces;
28
28
  version: string;
29
29
  codegenVersion: string;
30
- };
30
+ }
31
31
  export type SchemaNamespaces = Record<string, SchemaNamespace>;
32
32
  export type SchemaNamespace = UserSchema & {
33
33
  name: string;
34
34
  };
35
35
  export type SchemaModels = Record<string, SchemaModel>;
36
- export type SchemaModel = {
36
+ export interface SchemaModel {
37
37
  name: string;
38
38
  pluralName: string;
39
39
  attributes?: ModelAttributes;
@@ -46,48 +46,48 @@ export type SchemaModel = {
46
46
  */
47
47
  allFields?: ModelFields;
48
48
  syncable?: boolean;
49
- };
49
+ }
50
50
  export declare function isSchemaModel(obj: any): obj is SchemaModel;
51
51
  export declare function isSchemaModelWithAttributes(m: SchemaModel | SchemaNonModel): m is SchemaModel;
52
52
  export type SchemaNonModels = Record<string, SchemaNonModel>;
53
- export type SchemaNonModel = {
53
+ export interface SchemaNonModel {
54
54
  name: string;
55
55
  fields: ModelFields;
56
- };
56
+ }
57
57
  type SchemaEnums = Record<string, SchemaEnum>;
58
- type SchemaEnum = {
58
+ interface SchemaEnum {
59
59
  name: string;
60
60
  values: string[];
61
- };
62
- export type ModelMeta<T extends PersistentModel> = {
61
+ }
62
+ export interface ModelMeta<T extends PersistentModel> {
63
63
  builder: PersistentModelConstructor<T>;
64
64
  schema: SchemaModel;
65
65
  pkField: string[];
66
- };
66
+ }
67
67
  export type ModelAssociation = AssociatedWith | TargetNameAssociation;
68
- type AssociatedWith = {
68
+ interface AssociatedWith {
69
69
  connectionType: 'HAS_MANY' | 'HAS_ONE';
70
70
  associatedWith: string | string[];
71
71
  targetName?: string;
72
72
  targetNames?: string[];
73
- };
73
+ }
74
74
  export declare function isAssociatedWith(obj: any): obj is AssociatedWith;
75
- type TargetNameAssociation = {
75
+ interface TargetNameAssociation {
76
76
  connectionType: 'BELONGS_TO';
77
77
  targetName?: string;
78
78
  targetNames?: string[];
79
- };
79
+ }
80
80
  export declare function isTargetNameAssociation(obj: any): obj is TargetNameAssociation;
81
- type FieldAssociation = {
81
+ interface FieldAssociation {
82
82
  connectionType: 'HAS_ONE' | 'BELONGS_TO' | 'HAS_MANY';
83
- };
83
+ }
84
84
  export declare function isFieldAssociation(obj: any, fieldName: string): obj is FieldAssociation;
85
85
  export type ModelAttributes = ModelAttribute[];
86
- export type ModelAttribute = {
86
+ export interface ModelAttribute {
87
87
  type: string;
88
88
  properties?: Record<string, any>;
89
- };
90
- export type ModelAuthRule = {
89
+ }
90
+ export interface ModelAuthRule {
91
91
  allow: string;
92
92
  provider?: string;
93
93
  operations?: string[];
@@ -96,39 +96,39 @@ export type ModelAuthRule = {
96
96
  groups?: string[];
97
97
  groupClaim?: string;
98
98
  groupsField?: string;
99
- };
100
- export type ModelAttributeAuth = {
99
+ }
100
+ export interface ModelAttributeAuth {
101
101
  type: 'auth';
102
102
  properties: {
103
103
  rules: ModelAuthRule[];
104
104
  };
105
- };
105
+ }
106
106
  export declare function isModelAttributeAuth(attr: ModelAttribute): attr is ModelAttributeAuth;
107
- type ModelAttributeKey = {
107
+ interface ModelAttributeKey {
108
108
  type: 'key';
109
109
  properties: {
110
110
  name?: string;
111
111
  fields: string[];
112
112
  };
113
- };
114
- type ModelAttributePrimaryKey = {
113
+ }
114
+ interface ModelAttributePrimaryKey {
115
115
  type: 'key';
116
116
  properties: {
117
117
  name: never;
118
118
  fields: string[];
119
119
  };
120
- };
121
- type ModelAttributeCompositeKey = {
120
+ }
121
+ interface ModelAttributeCompositeKey {
122
122
  type: 'key';
123
123
  properties: {
124
124
  name: string;
125
125
  fields: [string, string, string, string?, string?];
126
126
  };
127
- };
127
+ }
128
128
  export declare function isModelAttributeKey(attr: ModelAttribute): attr is ModelAttributeKey;
129
129
  export declare function isModelAttributePrimaryKey(attr: ModelAttribute): attr is ModelAttributePrimaryKey;
130
130
  export declare function isModelAttributeCompositeKey(attr: ModelAttribute): attr is ModelAttributeCompositeKey;
131
- export type ModelAttributeAuthProperty = {
131
+ export interface ModelAttributeAuthProperty {
132
132
  allow: ModelAttributeAuthAllow;
133
133
  identityClaim?: string;
134
134
  groupClaim?: string;
@@ -136,7 +136,7 @@ export type ModelAttributeAuthProperty = {
136
136
  operations?: string[];
137
137
  ownerField?: string;
138
138
  provider?: ModelAttributeAuthProvider;
139
- };
139
+ }
140
140
  export declare enum ModelAttributeAuthAllow {
141
141
  CUSTOM = "custom",
142
142
  OWNER = "owner",
@@ -172,7 +172,7 @@ export declare namespace GraphQLScalarType {
172
172
  function getJSType(scalar: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'>): "string" | "number" | "boolean" | "object";
173
173
  function getValidationFunction(scalar: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'>): ((val: string) => boolean) | ((val: number) => boolean) | undefined;
174
174
  }
175
- export type AuthorizationRule = {
175
+ export interface AuthorizationRule {
176
176
  identityClaim: string;
177
177
  ownerField: string;
178
178
  provider: 'userPools' | 'oidc' | 'iam' | 'apiKey';
@@ -181,22 +181,22 @@ export type AuthorizationRule = {
181
181
  groupsField: string;
182
182
  authStrategy: 'owner' | 'groups' | 'private' | 'public';
183
183
  areSubscriptionsPublic: boolean;
184
- };
184
+ }
185
185
  export declare function isGraphQLScalarType(obj: any): obj is keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'>;
186
- export type ModelFieldType = {
186
+ export interface ModelFieldType {
187
187
  model: string;
188
188
  modelConstructor?: ModelMeta<PersistentModel>;
189
- };
190
- export declare function isModelFieldType<T extends PersistentModel>(obj: any): obj is ModelFieldType;
191
- export type NonModelFieldType = {
189
+ }
190
+ export declare function isModelFieldType<_ extends PersistentModel>(obj: any): obj is ModelFieldType;
191
+ export interface NonModelFieldType {
192
192
  nonModel: string;
193
- };
193
+ }
194
194
  export declare function isNonModelFieldType(obj: any): obj is NonModelFieldType;
195
- type EnumFieldType = {
195
+ interface EnumFieldType {
196
196
  enum: string;
197
- };
197
+ }
198
198
  export declare function isEnumFieldType(obj: any): obj is EnumFieldType;
199
- export type ModelField = {
199
+ export interface ModelField {
200
200
  name: string;
201
201
  type: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction'> | ModelFieldType | NonModelFieldType | EnumFieldType;
202
202
  isArray: boolean;
@@ -205,14 +205,12 @@ export type ModelField = {
205
205
  isArrayNullable?: boolean;
206
206
  association?: ModelAssociation;
207
207
  attributes?: ModelAttributes[];
208
- };
209
- export type NonModelTypeConstructor<T> = {
210
- new (init: T): T;
211
- };
212
- export type PersistentModelConstructor<T extends PersistentModel> = {
208
+ }
209
+ export type NonModelTypeConstructor<T> = new (init: T) => T;
210
+ export interface PersistentModelConstructor<T extends PersistentModel> {
213
211
  new (init: ModelInit<T, PersistentModelMetaData<T>>): T;
214
212
  copyOf(src: T, mutator: (draft: MutableModel<T, PersistentModelMetaData<T>>) => void): T;
215
- };
213
+ }
216
214
  /**
217
215
  * @private
218
216
  * Internal use of Amplify only.
@@ -247,7 +245,7 @@ export type OptionallyManagedIdentifier<T, F extends keyof T> = IdentifierBrand<
247
245
  field: F extends string ? F : never;
248
246
  type: T;
249
247
  }, 'OptionallyManagedIdentifier'>;
250
- export type CompositeIdentifier<T, K extends Array<keyof T>> = IdentifierBrand<{
248
+ export type CompositeIdentifier<T, K extends (keyof T)[]> = IdentifierBrand<{
251
249
  fields: K;
252
250
  type: T;
253
251
  }, 'CompositeIdentifier'>;
@@ -258,10 +256,10 @@ export type Identifier<T> = ManagedIdentifier<T, any> | OptionallyManagedIdentif
258
256
  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;
259
257
  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;
260
258
  export declare const __modelMeta__: unique symbol;
261
- export type PersistentModelMetaData<T> = {
259
+ export interface PersistentModelMetaData<T> {
262
260
  identifier?: Identifier<T>;
263
261
  readOnlyFields?: string;
264
- };
262
+ }
265
263
  export interface AsyncCollection<T> extends AsyncIterable<T> {
266
264
  toArray(options?: {
267
265
  max?: number;
@@ -278,12 +276,12 @@ type KeysOfSuperType<T, FilterType> = {
278
276
  type OptionalRelativesOf<T> = KeysOfType<T, AsyncCollection<any>> | KeysOfSuperType<T, Promise<undefined>>;
279
277
  type OmitOptionalRelatives<T> = Omit<T, OptionalRelativesOf<T>>;
280
278
  type PickOptionalRelatives<T> = Pick<T, OptionalRelativesOf<T>>;
281
- export type DefaultPersistentModelMetaData = {
279
+ export interface DefaultPersistentModelMetaData {
282
280
  identifier: ManagedIdentifier<{
283
281
  id: string;
284
282
  }, 'id'>;
285
283
  readOnlyFields: never;
286
- };
284
+ }
287
285
  export type MetadataOrDefault<T extends PersistentModel, _ extends PersistentModelMetaData<T> = never> = T extends {
288
286
  [__modelMeta__]: PersistentModelMetaData<T>;
289
287
  } ? T[typeof __modelMeta__] : DefaultPersistentModelMetaData;
@@ -299,11 +297,11 @@ type DeepWritable<T> = {
299
297
  -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]>;
300
298
  };
301
299
  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>>>;
302
- export type ModelInstanceMetadata = {
300
+ export interface ModelInstanceMetadata {
303
301
  _version: number;
304
302
  _lastChangedAt: number;
305
303
  _deleted: boolean;
306
- };
304
+ }
307
305
  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']];
308
306
  export type IdentifierFieldOrIdentifierObject<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Pick<T, IdentifierFields<T, M>> | IdentifierFieldValue<T, M>;
309
307
  export declare function isIdentifierObject<T extends PersistentModel>(obj: any, modelDefinition: SchemaModel): obj is IdentifierFields<T extends PersistentModel ? T : never, any>;
@@ -313,22 +311,22 @@ export declare enum OpType {
313
311
  DELETE = "DELETE"
314
312
  }
315
313
  export type SubscriptionMessage<T extends PersistentModel> = Pick<InternalSubscriptionMessage<T>, 'opType' | 'element' | 'model' | 'condition'>;
316
- export type InternalSubscriptionMessage<T extends PersistentModel> = {
314
+ export interface InternalSubscriptionMessage<T extends PersistentModel> {
317
315
  opType: OpType;
318
316
  element: T;
319
317
  model: PersistentModelConstructor<T>;
320
318
  condition: PredicatesGroup<T> | null;
321
319
  savedElement?: T;
322
- };
323
- export type DataStoreSnapshot<T extends PersistentModel> = {
320
+ }
321
+ export interface DataStoreSnapshot<T extends PersistentModel> {
324
322
  items: T[];
325
323
  isSynced: boolean;
326
- };
324
+ }
327
325
  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;
328
- type EqualityOperators<T> = {
326
+ interface EqualityOperators<T> {
329
327
  ne: T;
330
328
  eq: T;
331
- };
329
+ }
332
330
  type ScalarNumberOperators<T> = EqualityOperators<T> & {
333
331
  le: T;
334
332
  lt: T;
@@ -344,49 +342,45 @@ type StringOperators<T> = ScalarNumberOperators<T> & {
344
342
  notContains: T;
345
343
  };
346
344
  type BooleanOperators<T> = EqualityOperators<T>;
347
- type ArrayOperators<T> = {
345
+ interface ArrayOperators<T> {
348
346
  contains: T;
349
347
  notContains: T;
350
- };
348
+ }
351
349
  export type AllOperators = NumberOperators<any> & StringOperators<any> & ArrayOperators<any>;
352
- type MapTypeToOperands<T> = {
350
+ interface MapTypeToOperands<T> {
353
351
  number: NumberOperators<NonNullable<T>>;
354
352
  string: StringOperators<NonNullable<T>>;
355
353
  boolean: BooleanOperators<NonNullable<T>>;
356
354
  'number[]': ArrayOperators<number>;
357
355
  'string[]': ArrayOperators<string>;
358
356
  'boolean[]': ArrayOperators<boolean>;
359
- };
357
+ }
360
358
  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;
361
- export type PredicateGroups<T extends PersistentModel> = {
362
- and: (predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>) => ModelPredicate<T>;
363
- or: (predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>) => ModelPredicate<T>;
364
- not: (predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>) => ModelPredicate<T>;
365
- };
359
+ export interface PredicateGroups<T extends PersistentModel> {
360
+ and(predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>): ModelPredicate<T>;
361
+ or(predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>): ModelPredicate<T>;
362
+ not(predicate: (predicate: ModelPredicate<T>) => ModelPredicate<T>): ModelPredicate<T>;
363
+ }
366
364
  export type ModelPredicate<M extends PersistentModel> = {
367
365
  [K in keyof M]-?: PredicateExpression<M, NonNullable<M[K]>>;
368
366
  } & PredicateGroups<M>;
369
367
  export type ProducerModelPredicate<M extends PersistentModel> = (condition: ModelPredicate<M>) => ModelPredicate<M>;
370
- export type PredicatesGroup<T extends PersistentModel> = {
368
+ export interface PredicatesGroup<T extends PersistentModel> {
371
369
  type: keyof PredicateGroups<T>;
372
370
  predicates: (PredicateObject<T> | PredicatesGroup<T>)[];
373
- };
371
+ }
374
372
  export declare function isPredicateObj<T extends PersistentModel>(obj: any): obj is PredicateObject<T>;
375
373
  export declare function isPredicateGroup<T extends PersistentModel>(obj: any): obj is PredicatesGroup<T>;
376
- export type PredicateObject<T extends PersistentModel> = {
374
+ export interface PredicateObject<T extends PersistentModel> {
377
375
  field: keyof T;
378
376
  operator: keyof AllOperators;
379
377
  operand: any;
380
- };
378
+ }
381
379
  export declare enum QueryOne {
382
380
  FIRST = 0,
383
381
  LAST = 1
384
382
  }
385
- export type GraphQLField = {
386
- [field: string]: {
387
- [operator: string]: string | number | [number, number];
388
- };
389
- };
383
+ export type GraphQLField = Record<string, Record<string, string | number | [number, number]>>;
390
384
  export type GraphQLCondition = Partial<GraphQLField | {
391
385
  and: [GraphQLCondition];
392
386
  or: [GraphQLCondition];
@@ -399,17 +393,17 @@ export type GraphQLFilter = Partial<GraphQLField | {
399
393
  } | {
400
394
  not: GraphQLFilter;
401
395
  }>;
402
- export type ProducerPaginationInput<T extends PersistentModel> = {
396
+ export interface ProducerPaginationInput<T extends PersistentModel> {
403
397
  sort?: ProducerSortPredicate<T>;
404
398
  limit?: number;
405
399
  page?: number;
406
- };
400
+ }
407
401
  export type ObserveQueryOptions<T extends PersistentModel> = Pick<ProducerPaginationInput<T>, 'sort'>;
408
- export type PaginationInput<T extends PersistentModel> = {
402
+ export interface PaginationInput<T extends PersistentModel> {
409
403
  sort?: SortPredicate<T>;
410
404
  limit?: number;
411
405
  page?: number;
412
- };
406
+ }
413
407
  export type ProducerSortPredicate<M extends PersistentModel> = (condition: SortPredicate<M>) => SortPredicate<M>;
414
408
  export type SortPredicate<T extends PersistentModel> = {
415
409
  [K in keyof T]-?: SortPredicateExpression<T, NonNullable<T[K]>>;
@@ -420,48 +414,44 @@ export declare enum SortDirection {
420
414
  DESCENDING = "DESCENDING"
421
415
  }
422
416
  export type SortPredicatesGroup<T extends PersistentModel> = SortPredicateObject<T>[];
423
- export type SortPredicateObject<T extends PersistentModel> = {
417
+ export interface SortPredicateObject<T extends PersistentModel> {
424
418
  field: keyof T;
425
419
  sortDirection: keyof typeof SortDirection;
426
- };
427
- export type SystemComponent = {
420
+ }
421
+ export interface SystemComponent {
428
422
  setUp(schema: InternalSchema, namespaceResolver: NamespaceResolver, modelInstanceCreator: ModelInstanceCreator, getModelConstructorByModelName: (namsespaceName: NAMESPACES, modelName: string) => PersistentModelConstructor<any>, appId?: string): Promise<void>;
429
- };
423
+ }
430
424
  export type NamespaceResolver = (modelConstructor: PersistentModelConstructor<any>) => string;
431
- export type ControlMessageType<T> = {
425
+ export interface ControlMessageType<T> {
432
426
  type: T;
433
427
  data?: any;
434
- };
435
- export type RelationType = {
428
+ }
429
+ export interface RelationType {
436
430
  fieldName: string;
437
431
  modelName: string;
438
432
  relationType: 'HAS_ONE' | 'HAS_MANY' | 'BELONGS_TO';
439
433
  targetName?: string;
440
434
  targetNames?: string[];
441
435
  associatedWith?: string | string[];
442
- };
443
- type IndexOptions = {
436
+ }
437
+ interface IndexOptions {
444
438
  unique?: boolean;
445
- };
446
- export type IndexesType = Array<[string, string[], IndexOptions?]>;
447
- export type RelationshipType = {
448
- [modelName: string]: {
449
- indexes: IndexesType;
450
- relationTypes: RelationType[];
451
- };
452
- };
453
- export type KeyType = {
439
+ }
440
+ export type IndexesType = [string, string[], IndexOptions?][];
441
+ export type RelationshipType = Record<string, {
442
+ indexes: IndexesType;
443
+ relationTypes: RelationType[];
444
+ }>;
445
+ export interface KeyType {
454
446
  primaryKey?: string[];
455
447
  compositeKeys?: Set<string>[];
456
- };
457
- export type ModelKeys = {
458
- [modelName: string]: KeyType;
459
- };
460
- export type DataStoreConfig = {
448
+ }
449
+ export type ModelKeys = Record<string, KeyType>;
450
+ export interface DataStoreConfig {
461
451
  DataStore?: {
462
452
  authModeStrategyType?: AuthModeStrategyType;
463
453
  conflictHandler?: ConflictHandler;
464
- errorHandler?: (error: SyncError<PersistentModel>) => void;
454
+ errorHandler?(error: SyncError<PersistentModel>): void;
465
455
  maxRecordsToSync?: number;
466
456
  syncPageSize?: number;
467
457
  fullSyncInterval?: number;
@@ -471,31 +461,31 @@ export type DataStoreConfig = {
471
461
  };
472
462
  authModeStrategyType?: AuthModeStrategyType;
473
463
  conflictHandler?: ConflictHandler;
474
- errorHandler?: (error: SyncError<PersistentModel>) => void;
464
+ errorHandler?(error: SyncError<PersistentModel>): void;
475
465
  maxRecordsToSync?: number;
476
466
  syncPageSize?: number;
477
467
  fullSyncInterval?: number;
478
468
  syncExpressions?: SyncExpression[];
479
469
  authProviders?: AuthProviders;
480
470
  storageAdapter?: Adapter;
481
- };
482
- export type AuthProviders = {
483
- functionAuthProvider: () => {
471
+ }
472
+ export interface AuthProviders {
473
+ functionAuthProvider(): {
484
474
  token: string;
485
475
  } | Promise<{
486
476
  token: string;
487
477
  }>;
488
- };
478
+ }
489
479
  export declare enum AuthModeStrategyType {
490
480
  DEFAULT = "DEFAULT",
491
481
  MULTI_AUTH = "MULTI_AUTH"
492
482
  }
493
483
  export type AuthModeStrategyReturn = GraphQLAuthMode | GraphQLAuthMode[] | undefined | null;
494
- export type AuthModeStrategyParams = {
484
+ export interface AuthModeStrategyParams {
495
485
  schema: InternalSchema;
496
486
  modelName: string;
497
487
  operation: ModelOperation;
498
- };
488
+ }
499
489
  export type AuthModeStrategy = (authModeStrategyParams: AuthModeStrategyParams) => AuthModeStrategyReturn | Promise<AuthModeStrategyReturn>;
500
490
  export declare enum ModelOperation {
501
491
  CREATE = "CREATE",
@@ -508,28 +498,28 @@ export type ModelAuthModes = Record<string, {
508
498
  }>;
509
499
  export type SyncExpression = Promise<{
510
500
  modelConstructor: any;
511
- conditionProducer: (c?: any) => any;
501
+ conditionProducer(c?: any): any;
512
502
  }>;
513
503
  type Option0 = [];
514
504
  type Option1<T extends PersistentModel> = [V5ModelPredicate<T> | undefined];
515
505
  type Option<T extends PersistentModel> = Option0 | Option1<T>;
516
- type Lookup<T extends PersistentModel> = {
506
+ interface Lookup<T extends PersistentModel> {
517
507
  0: ModelPredicateExtender<T> | Promise<ModelPredicateExtender<T>> | typeof PredicateAll | Promise<typeof PredicateAll | symbol>;
518
508
  1: PredicateInternalsKey | undefined;
519
- };
509
+ }
520
510
  type ConditionProducer<T extends PersistentModel, A extends Option<T>> = (...args: A) => A['length'] extends keyof Lookup<T> ? Lookup<T>[A['length']] : never;
521
511
  export declare function syncExpression<T extends PersistentModel, A extends Option<T>>(modelConstructor: PersistentModelConstructor<T>, conditionProducer: ConditionProducer<T, A>): Promise<{
522
512
  modelConstructor: PersistentModelConstructor<T>;
523
513
  conditionProducer: ConditionProducer<T, A>;
524
514
  }>;
525
- export type SyncConflict = {
515
+ export interface SyncConflict {
526
516
  modelConstructor: PersistentModelConstructor<any>;
527
517
  localModel: PersistentModel;
528
518
  remoteModel: PersistentModel;
529
519
  operation: OpType;
530
520
  attempts: number;
531
- };
532
- export type SyncError<T extends PersistentModel> = {
521
+ }
522
+ export interface SyncError<T extends PersistentModel> {
533
523
  message: string;
534
524
  errorType: ErrorType;
535
525
  errorInfo?: string;
@@ -540,7 +530,7 @@ export type SyncError<T extends PersistentModel> = {
540
530
  process: ProcessName;
541
531
  operation: string;
542
532
  cause?: Error;
543
- };
533
+ }
544
534
  export type ErrorType = 'ConfigError' | 'BadModel' | 'BadRecord' | 'Unauthorized' | 'Transient' | 'Unknown';
545
535
  export declare enum ProcessName {
546
536
  'sync' = "sync",
@@ -550,18 +540,18 @@ export declare enum ProcessName {
550
540
  export declare const DISCARD: unique symbol;
551
541
  export type ConflictHandler = (conflict: SyncConflict) => Promise<PersistentModel | typeof DISCARD> | PersistentModel | typeof DISCARD;
552
542
  export type ErrorHandler = (error: SyncError<PersistentModel>) => void;
553
- export type DeferredCallbackResolverOptions = {
554
- callback: () => void;
543
+ export interface DeferredCallbackResolverOptions {
544
+ callback(): void;
555
545
  maxInterval?: number;
556
- errorHandler?: (error: string) => void;
557
- };
546
+ errorHandler?(error: string): void;
547
+ }
558
548
  export declare enum LimitTimerRaceResolvedValues {
559
549
  LIMIT = "LIMIT",
560
550
  TIMER = "TIMER"
561
551
  }
562
- export type AmplifyContext = {
552
+ export interface AmplifyContext {
563
553
  InternalAPI: typeof InternalAPI;
564
- };
554
+ }
565
555
  export type MatchableTypes = string | string[] | number | number[] | boolean | boolean[];
566
556
  export type AllFieldOperators = keyof AllOperators;
567
557
  export type NonNeverKeys<T> = {
@@ -625,7 +615,7 @@ export type RecursiveModelPredicate<RT extends PersistentModel> = {
625
615
  */
626
616
  export type ModelPredicateExtender<RT extends PersistentModel> = (lambda: V5ModelPredicate<RT>) => PredicateInternalsKey;
627
617
  export type ModelPredicateAggregateExtender<RT extends PersistentModel> = (lambda: V5ModelPredicate<RT>) => PredicateInternalsKey[];
628
- export type ValuePredicate<RT extends PersistentModel, MT extends MatchableTypes> = {
618
+ export type ValuePredicate<_RT extends PersistentModel, MT extends MatchableTypes> = {
629
619
  [K in AllFieldOperators]: K extends 'between' ? (inclusiveLowerBound: Scalar<MT>, inclusiveUpperBound: Scalar<MT>) => PredicateInternalsKey : (operand: Scalar<MT>) => PredicateInternalsKey;
630
620
  };
631
621
  export type V5ModelPredicate<RT extends PersistentModel> = WithoutNevers<{
@@ -68,6 +68,7 @@ var GraphQLScalarType;
68
68
  GraphQLScalarType[GraphQLScalarType["AWSPhone"] = 12] = "AWSPhone";
69
69
  GraphQLScalarType[GraphQLScalarType["AWSIPAddress"] = 13] = "AWSIPAddress";
70
70
  })(GraphQLScalarType || (GraphQLScalarType = {}));
71
+ // eslint-disable-next-line @typescript-eslint/no-namespace
71
72
  (function (GraphQLScalarType) {
72
73
  function getJSType(scalar) {
73
74
  switch (scalar) {
@@ -145,8 +146,8 @@ function isIdentifierObject(obj, modelDefinition) {
145
146
  const keys = extractPrimaryKeyFieldNames(modelDefinition);
146
147
  return (typeof obj === 'object' && obj && keys.every(k => obj[k] !== undefined));
147
148
  }
148
- //#endregion
149
- //#region Subscription messages
149
+ // #endregion
150
+ // #region Subscription messages
150
151
  var OpType;
151
152
  (function (OpType) {
152
153
  OpType["INSERT"] = "INSERT";