@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.
- package/dist/cjs/authModeStrategies/multiAuthStrategy.js +1 -1
- package/dist/cjs/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/dist/cjs/datastore/datastore.js +46 -41
- package/dist/cjs/datastore/datastore.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/predicates/index.js +1 -0
- package/dist/cjs/predicates/index.js.map +1 -1
- package/dist/cjs/predicates/next.js +13 -12
- package/dist/cjs/predicates/next.js.map +1 -1
- package/dist/cjs/predicates/sort.js +2 -2
- package/dist/cjs/predicates/sort.js.map +1 -1
- package/dist/cjs/storage/adapter/AsyncStorageAdapter.js +21 -18
- package/dist/cjs/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/dist/cjs/storage/adapter/AsyncStorageDatabase.js +10 -9
- package/dist/cjs/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/dist/cjs/storage/adapter/InMemoryStore.js +4 -1
- package/dist/cjs/storage/adapter/InMemoryStore.js.map +1 -1
- package/dist/cjs/storage/adapter/IndexedDBAdapter.js +21 -23
- package/dist/cjs/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/dist/cjs/storage/adapter/StorageAdapterBase.js +7 -7
- package/dist/cjs/storage/adapter/StorageAdapterBase.js.map +1 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.js +4 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.js.map +1 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js +1 -0
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
- package/dist/cjs/storage/relationship.js +1 -0
- package/dist/cjs/storage/relationship.js.map +1 -1
- package/dist/cjs/storage/storage.js +14 -14
- package/dist/cjs/storage/storage.js.map +1 -1
- package/dist/cjs/sync/datastoreConnectivity.js +0 -3
- package/dist/cjs/sync/datastoreConnectivity.js.map +1 -1
- package/dist/cjs/sync/index.js +47 -43
- package/dist/cjs/sync/index.js.map +1 -1
- package/dist/cjs/sync/merger.js +1 -1
- package/dist/cjs/sync/merger.js.map +1 -1
- package/dist/cjs/sync/outbox.js +19 -17
- package/dist/cjs/sync/outbox.js.map +1 -1
- package/dist/cjs/sync/processors/errorMaps.js.map +1 -1
- package/dist/cjs/sync/processors/mutation.js +31 -28
- package/dist/cjs/sync/processors/mutation.js.map +1 -1
- package/dist/cjs/sync/processors/subscription.js +21 -12
- package/dist/cjs/sync/processors/subscription.js.map +1 -1
- package/dist/cjs/sync/processors/sync.js +25 -21
- package/dist/cjs/sync/processors/sync.js.map +1 -1
- package/dist/cjs/sync/utils.js +20 -21
- package/dist/cjs/sync/utils.js.map +1 -1
- package/dist/cjs/types.js +1 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/util.js +46 -25
- package/dist/cjs/util.js.map +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.d.ts +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.mjs +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.mjs.map +1 -1
- package/dist/esm/datastore/datastore.d.ts +4 -6
- package/dist/esm/datastore/datastore.mjs +42 -34
- package/dist/esm/datastore/datastore.mjs.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/predicates/index.mjs +1 -0
- package/dist/esm/predicates/index.mjs.map +1 -1
- package/dist/esm/predicates/next.d.ts +7 -7
- package/dist/esm/predicates/next.mjs +13 -12
- package/dist/esm/predicates/next.mjs.map +1 -1
- package/dist/esm/predicates/sort.d.ts +1 -1
- package/dist/esm/predicates/sort.mjs +2 -2
- package/dist/esm/predicates/sort.mjs.map +1 -1
- package/dist/esm/storage/adapter/AsyncStorageAdapter.d.ts +1 -1
- package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs +21 -18
- package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs.map +1 -1
- package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs +10 -9
- package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs.map +1 -1
- package/dist/esm/storage/adapter/InMemoryStore.mjs +4 -1
- package/dist/esm/storage/adapter/InMemoryStore.mjs.map +1 -1
- package/dist/esm/storage/adapter/IndexedDBAdapter.mjs +21 -23
- package/dist/esm/storage/adapter/IndexedDBAdapter.mjs.map +1 -1
- package/dist/esm/storage/adapter/StorageAdapterBase.d.ts +2 -2
- package/dist/esm/storage/adapter/StorageAdapterBase.mjs +7 -7
- package/dist/esm/storage/adapter/StorageAdapterBase.mjs.map +1 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs +3 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs.map +1 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs +1 -0
- package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs.map +1 -1
- package/dist/esm/storage/adapter/index.d.ts +1 -1
- package/dist/esm/storage/relationship.mjs +1 -0
- package/dist/esm/storage/relationship.mjs.map +1 -1
- package/dist/esm/storage/storage.d.ts +11 -11
- package/dist/esm/storage/storage.mjs +10 -10
- package/dist/esm/storage/storage.mjs.map +1 -1
- package/dist/esm/sync/datastoreConnectivity.d.ts +2 -2
- package/dist/esm/sync/datastoreConnectivity.mjs +0 -3
- package/dist/esm/sync/datastoreConnectivity.mjs.map +1 -1
- package/dist/esm/sync/index.d.ts +3 -3
- package/dist/esm/sync/index.mjs +47 -43
- package/dist/esm/sync/index.mjs.map +1 -1
- package/dist/esm/sync/merger.d.ts +1 -1
- package/dist/esm/sync/merger.mjs +1 -1
- package/dist/esm/sync/merger.mjs.map +1 -1
- package/dist/esm/sync/outbox.d.ts +4 -4
- package/dist/esm/sync/outbox.mjs +19 -17
- package/dist/esm/sync/outbox.mjs.map +1 -1
- package/dist/esm/sync/processors/errorMaps.mjs.map +1 -1
- package/dist/esm/sync/processors/mutation.d.ts +5 -5
- package/dist/esm/sync/processors/mutation.mjs +31 -28
- package/dist/esm/sync/processors/mutation.mjs.map +1 -1
- package/dist/esm/sync/processors/subscription.d.ts +1 -1
- package/dist/esm/sync/processors/subscription.mjs +21 -12
- package/dist/esm/sync/processors/subscription.mjs.map +1 -1
- package/dist/esm/sync/processors/sync.d.ts +3 -3
- package/dist/esm/sync/processors/sync.mjs +13 -9
- package/dist/esm/sync/processors/sync.mjs.map +1 -1
- package/dist/esm/sync/utils.d.ts +11 -13
- package/dist/esm/sync/utils.mjs +20 -21
- package/dist/esm/sync/utils.mjs.map +1 -1
- package/dist/esm/types.d.ts +121 -131
- package/dist/esm/types.mjs +3 -2
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/util.d.ts +5 -5
- package/dist/esm/util.mjs +46 -25
- package/dist/esm/util.mjs.map +1 -1
- package/package.json +74 -73
- package/src/authModeStrategies/multiAuthStrategy.ts +8 -4
- package/src/datastore/datastore.ts +145 -123
- package/src/index.ts +10 -8
- package/src/predicates/index.ts +10 -2
- package/src/predicates/next.ts +39 -28
- package/src/predicates/sort.ts +23 -26
- package/src/storage/adapter/AsyncStorageAdapter.ts +43 -25
- package/src/storage/adapter/AsyncStorageDatabase.ts +18 -10
- package/src/storage/adapter/InMemoryStore.ts +5 -1
- package/src/storage/adapter/IndexedDBAdapter.ts +50 -37
- package/src/storage/adapter/StorageAdapterBase.ts +24 -18
- package/src/storage/adapter/getDefaultAdapter/index.native.ts +1 -0
- package/src/storage/adapter/getDefaultAdapter/index.ts +4 -1
- package/src/storage/adapter/index.ts +2 -2
- package/src/storage/relationship.ts +5 -1
- package/src/storage/storage.ts +38 -30
- package/src/sync/datastoreConnectivity.ts +4 -6
- package/src/sync/index.ts +228 -230
- package/src/sync/merger.ts +4 -3
- package/src/sync/outbox.ts +26 -24
- package/src/sync/processors/errorMaps.ts +5 -0
- package/src/sync/processors/mutation.ts +80 -72
- package/src/sync/processors/subscription.ts +69 -53
- package/src/sync/processors/sync.ts +49 -37
- package/src/sync/utils.ts +60 -41
- package/src/types.ts +165 -165
- package/src/util.ts +89 -53
package/dist/esm/types.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
53
|
+
export interface SchemaNonModel {
|
|
54
54
|
name: string;
|
|
55
55
|
fields: ModelFields;
|
|
56
|
-
}
|
|
56
|
+
}
|
|
57
57
|
type SchemaEnums = Record<string, SchemaEnum>;
|
|
58
|
-
|
|
58
|
+
interface SchemaEnum {
|
|
59
59
|
name: string;
|
|
60
60
|
values: string[];
|
|
61
|
-
}
|
|
62
|
-
export
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
86
|
+
export interface ModelAttribute {
|
|
87
87
|
type: string;
|
|
88
88
|
properties?: Record<string, any>;
|
|
89
|
-
}
|
|
90
|
-
export
|
|
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
|
|
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
|
-
|
|
107
|
+
interface ModelAttributeKey {
|
|
108
108
|
type: 'key';
|
|
109
109
|
properties: {
|
|
110
110
|
name?: string;
|
|
111
111
|
fields: string[];
|
|
112
112
|
};
|
|
113
|
-
}
|
|
114
|
-
|
|
113
|
+
}
|
|
114
|
+
interface ModelAttributePrimaryKey {
|
|
115
115
|
type: 'key';
|
|
116
116
|
properties: {
|
|
117
117
|
name: never;
|
|
118
118
|
fields: string[];
|
|
119
119
|
};
|
|
120
|
-
}
|
|
121
|
-
|
|
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
|
|
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
|
|
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
|
|
186
|
+
export interface ModelFieldType {
|
|
187
187
|
model: string;
|
|
188
188
|
modelConstructor?: ModelMeta<PersistentModel>;
|
|
189
|
-
}
|
|
190
|
-
export declare function isModelFieldType<
|
|
191
|
-
export
|
|
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
|
-
|
|
195
|
+
interface EnumFieldType {
|
|
196
196
|
enum: string;
|
|
197
|
-
}
|
|
197
|
+
}
|
|
198
198
|
export declare function isEnumFieldType(obj: any): obj is EnumFieldType;
|
|
199
|
-
export
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
362
|
-
and
|
|
363
|
-
or
|
|
364
|
-
not
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
417
|
+
export interface SortPredicateObject<T extends PersistentModel> {
|
|
424
418
|
field: keyof T;
|
|
425
419
|
sortDirection: keyof typeof SortDirection;
|
|
426
|
-
}
|
|
427
|
-
export
|
|
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
|
|
425
|
+
export interface ControlMessageType<T> {
|
|
432
426
|
type: T;
|
|
433
427
|
data?: any;
|
|
434
|
-
}
|
|
435
|
-
export
|
|
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
|
-
|
|
436
|
+
}
|
|
437
|
+
interface IndexOptions {
|
|
444
438
|
unique?: boolean;
|
|
445
|
-
}
|
|
446
|
-
export type IndexesType =
|
|
447
|
-
export type RelationshipType = {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
554
|
-
callback
|
|
543
|
+
export interface DeferredCallbackResolverOptions {
|
|
544
|
+
callback(): void;
|
|
555
545
|
maxInterval?: number;
|
|
556
|
-
errorHandler
|
|
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
|
|
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<
|
|
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<{
|
package/dist/esm/types.mjs
CHANGED
|
@@ -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
|
-
|
|
149
|
-
|
|
149
|
+
// #endregion
|
|
150
|
+
// #region Subscription messages
|
|
150
151
|
var OpType;
|
|
151
152
|
(function (OpType) {
|
|
152
153
|
OpType["INSERT"] = "INSERT";
|