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