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