@aws-amplify/data-schema 1.24.0 → 1.25.1
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/Authorization.js.map +1 -1
- package/dist/cjs/CombineSchema.js.map +1 -1
- package/dist/cjs/CustomOperation.js.map +1 -1
- package/dist/cjs/Handler.js.map +1 -1
- package/dist/cjs/ModelField.js.map +1 -1
- package/dist/cjs/ModelIndex.js.map +1 -1
- package/dist/cjs/ModelRelationshipField.js.map +1 -1
- package/dist/cjs/ModelSchema.js.map +1 -1
- package/dist/cjs/ModelType.js.map +1 -1
- package/dist/cjs/RefType.js.map +1 -1
- package/dist/cjs/SchemaProcessor.js.map +1 -1
- package/dist/cjs/Validate.js.map +1 -1
- package/dist/cjs/a.js.map +1 -1
- package/dist/cjs/ai/ConversationSchemaProcessor.js.map +1 -1
- package/dist/cjs/ai/ConversationType.js.map +1 -1
- package/dist/cjs/internals/index.js.map +1 -1
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js.map +1 -1
- package/dist/cjs/runtime/client/index.js.map +1 -1
- package/dist/cjs/runtime/client/index.v3.js.map +1 -1
- package/dist/cjs/runtime/index.js.map +1 -1
- package/dist/cjs/runtime/internals/APIClient.js.map +1 -1
- package/dist/cjs/runtime/internals/ai/conversationMessageDeserializers.js.map +1 -1
- package/dist/cjs/runtime/internals/ai/conversationMessageSerializers.js.map +1 -1
- package/dist/cjs/runtime/internals/ai/conversationStreamEventDeserializers.js.map +1 -1
- package/dist/cjs/runtime/internals/ai/convertItemToConversation.js.map +1 -1
- package/dist/cjs/runtime/internals/ai/createListConversationsFunction.js.map +1 -1
- package/dist/cjs/runtime/internals/ai/createOnStreamEventFunction.js.map +1 -1
- package/dist/cjs/runtime/internals/ai/createSendMessageFunction.js.map +1 -1
- package/dist/cjs/runtime/internals/cancellation.js.map +1 -1
- package/dist/cjs/runtime/internals/clientUtils.js.map +1 -1
- package/dist/cjs/runtime/internals/generateCustomOperationsProperty.js.map +1 -1
- package/dist/cjs/runtime/internals/index.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/custom.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/get.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/indexQuery.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/list.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/observeQuery.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/subscription.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/utils.js.map +1 -1
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js.map +1 -1
- package/dist/cjs/runtime/internals/utils/clientProperties/generateConversationsProperty.js.map +1 -1
- package/dist/cjs/runtime/internals/utils/clientProperties/generateEnumsProperty.js.map +1 -1
- package/dist/cjs/runtime/internals/utils/clientProperties/generateGenerationsProperty.js.map +1 -1
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js.map +1 -1
- package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.js.map +1 -1
- package/dist/cjs/runtime/utils/findIndexByFields.js.map +1 -1
- package/dist/cjs/runtime/utils/index.js.map +1 -1
- package/dist/cjs/runtime/utils/resolveOwnerFields.js.map +1 -1
- package/dist/cjs/runtime/utils/selfAwareAsync.js.map +1 -1
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/esm/Authorization.mjs.map +1 -1
- package/dist/esm/ClientSchema/Core/ClientModel.d.ts +4 -1
- package/dist/esm/ClientSchema/utilities/ResolveField.d.ts +33 -3
- package/dist/esm/CombineSchema.mjs.map +1 -1
- package/dist/esm/CustomOperation.mjs.map +1 -1
- package/dist/esm/Handler.mjs.map +1 -1
- package/dist/esm/ModelField.mjs.map +1 -1
- package/dist/esm/ModelIndex.mjs.map +1 -1
- package/dist/esm/ModelRelationshipField.mjs.map +1 -1
- package/dist/esm/ModelSchema.mjs.map +1 -1
- package/dist/esm/ModelType.mjs.map +1 -1
- package/dist/esm/RefType.mjs.map +1 -1
- package/dist/esm/SchemaProcessor.mjs.map +1 -1
- package/dist/esm/Validate.mjs.map +1 -1
- package/dist/esm/ai/ConversationSchemaProcessor.mjs.map +1 -1
- package/dist/esm/ai/ConversationType.mjs.map +1 -1
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs.map +1 -1
- package/dist/esm/runtime/client/index.d.ts +8 -54
- package/dist/esm/runtime/internals/APIClient.mjs.map +1 -1
- package/dist/esm/runtime/internals/ai/conversationMessageDeserializers.mjs.map +1 -1
- package/dist/esm/runtime/internals/ai/conversationMessageSerializers.mjs.map +1 -1
- package/dist/esm/runtime/internals/ai/conversationStreamEventDeserializers.mjs.map +1 -1
- package/dist/esm/runtime/internals/ai/convertItemToConversation.mjs.map +1 -1
- package/dist/esm/runtime/internals/ai/createListConversationsFunction.mjs.map +1 -1
- package/dist/esm/runtime/internals/ai/createOnStreamEventFunction.mjs.map +1 -1
- package/dist/esm/runtime/internals/ai/createSendMessageFunction.mjs.map +1 -1
- package/dist/esm/runtime/internals/cancellation.mjs.map +1 -1
- package/dist/esm/runtime/internals/clientUtils.mjs.map +1 -1
- package/dist/esm/runtime/internals/generateCustomOperationsProperty.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/custom.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/get.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/indexQuery.mjs +1 -1
- package/dist/esm/runtime/internals/operations/indexQuery.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/list.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/observeQuery.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/subscription.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/utils.mjs.map +1 -1
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs.map +1 -1
- package/dist/esm/runtime/internals/utils/clientProperties/generateConversationsProperty.mjs.map +1 -1
- package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.mjs.map +1 -1
- package/dist/esm/runtime/internals/utils/clientProperties/generateGenerationsProperty.mjs.map +1 -1
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs.map +1 -1
- package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs.map +1 -1
- package/dist/esm/runtime/utils/findIndexByFields.mjs.map +1 -1
- package/dist/esm/runtime/utils/resolveOwnerFields.mjs.map +1 -1
- package/dist/esm/runtime/utils/selfAwareAsync.mjs.map +1 -1
- package/dist/esm/util/Filters.d.ts +2 -2
- package/dist/meta/cjs.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/ClientSchema/Core/ClientModel.ts +21 -1
- package/src/ClientSchema/utilities/ResolveField.ts +85 -11
- package/src/runtime/client/index.ts +33 -102
- package/src/util/Filters.ts +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/data-schema",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"jest": "^29.7.0",
|
|
64
64
|
"jest-tsd": "^0.2.2",
|
|
65
65
|
"rimraf": "^5.0.5",
|
|
66
|
-
"rollup": "^4.
|
|
66
|
+
"rollup": "^4.59.0",
|
|
67
67
|
"ts-jest": "^29.1.1",
|
|
68
68
|
"turbo": "^1.10.14",
|
|
69
69
|
"typescript": "^5.1.6"
|
|
@@ -6,7 +6,11 @@ import type {
|
|
|
6
6
|
} from '../../ModelType';
|
|
7
7
|
import type { ClientSchemaProperty } from './ClientSchemaProperty';
|
|
8
8
|
import type { Authorization, ImpliedAuthFields } from '../../Authorization';
|
|
9
|
-
import type {
|
|
9
|
+
import type {
|
|
10
|
+
SchemaMetadata,
|
|
11
|
+
ResolveFields,
|
|
12
|
+
FlatResolveFields,
|
|
13
|
+
} from '../utilities';
|
|
10
14
|
import type {
|
|
11
15
|
IsEmptyStringOrNever,
|
|
12
16
|
UnionToIntersection,
|
|
@@ -50,6 +54,11 @@ export interface ClientModel<
|
|
|
50
54
|
secondaryIndexes: IndexQueryMethodsFromIR<Bag, T['secondaryIndexes'], K>;
|
|
51
55
|
__meta: {
|
|
52
56
|
listOptionsPkParams: ListOptionsPkParams<Bag, T>;
|
|
57
|
+
// retaining a reference to the un-resolved schema builder type;
|
|
58
|
+
// this retains generic arg metadata that can be referenced in transformations downstream
|
|
59
|
+
rawType: T;
|
|
60
|
+
// custom selection set-optimized type with limited depth and flattened relationships
|
|
61
|
+
flatModel: FlatClientFields<Bag, Metadata, false, T, K>;
|
|
53
62
|
disabledOperations: DisabledOpsToMap<T['disabledOperations']>;
|
|
54
63
|
};
|
|
55
64
|
}
|
|
@@ -91,6 +100,17 @@ type ClientFields<
|
|
|
91
100
|
AuthFields<Metadata, T> &
|
|
92
101
|
Omit<SystemFields<IsRDS>, keyof ResolveFields<Bag, T['fields']>>;
|
|
93
102
|
|
|
103
|
+
type FlatClientFields<
|
|
104
|
+
Bag extends Record<string, unknown>,
|
|
105
|
+
Metadata extends SchemaMetadata<any>,
|
|
106
|
+
IsRDS extends boolean,
|
|
107
|
+
T extends ModelTypeParamShape,
|
|
108
|
+
ModelName extends keyof Bag & string,
|
|
109
|
+
> = FlatResolveFields<Bag, T['fields'], ModelName> &
|
|
110
|
+
If<Not<IsRDS>, ImplicitIdentifier<T>> &
|
|
111
|
+
AuthFields<Metadata, T> &
|
|
112
|
+
Omit<SystemFields<IsRDS>, keyof ResolveFields<Bag, T['fields']>>;
|
|
113
|
+
|
|
94
114
|
type SystemFields<IsRDS extends boolean> = IsRDS extends false
|
|
95
115
|
? {
|
|
96
116
|
readonly createdAt: string;
|
|
@@ -8,6 +8,9 @@ import { CustomType } from '../../CustomType';
|
|
|
8
8
|
import { RefType, RefTypeParamShape } from '../../RefType';
|
|
9
9
|
import { ResolveRef } from './ResolveRef';
|
|
10
10
|
import { LazyLoader } from '../../runtime';
|
|
11
|
+
import type { ModelTypeParamShape } from '../../ModelType';
|
|
12
|
+
|
|
13
|
+
type ExtendsNever<T> = [T] extends [never] ? true : false;
|
|
11
14
|
|
|
12
15
|
/**
|
|
13
16
|
* Takes a `ReturnType<typeof a.model()>` and turns it into a client-consumable type. Fields
|
|
@@ -30,6 +33,14 @@ export type ResolveFields<Bag extends Record<string, any>, T> = ShallowPretty<
|
|
|
30
33
|
}
|
|
31
34
|
>;
|
|
32
35
|
|
|
36
|
+
export type FlatResolveFields<
|
|
37
|
+
Bag extends Record<string, any>,
|
|
38
|
+
T,
|
|
39
|
+
FlatModelName extends keyof Bag & string = never,
|
|
40
|
+
> = ShallowPretty<{
|
|
41
|
+
[K in keyof T]: ResolveIndividualField<Bag, T[K], FlatModelName>;
|
|
42
|
+
}>;
|
|
43
|
+
|
|
33
44
|
// TODO: Remove ShallowPretty from this layer of resolution. Re-incorporate prettification
|
|
34
45
|
// down the line *as-needed*. Performing this *here* is somehow essential to getting 2 unit
|
|
35
46
|
// tests to pass, but hurts performance significantly. E.g., p50/operations/p50-prod-CRUDL.bench.ts
|
|
@@ -38,13 +49,17 @@ type ShallowPretty<T> = {
|
|
|
38
49
|
[K in keyof T]: T[K];
|
|
39
50
|
};
|
|
40
51
|
|
|
41
|
-
export type ResolveIndividualField<
|
|
52
|
+
export type ResolveIndividualField<
|
|
53
|
+
Bag extends Record<string, any>,
|
|
54
|
+
T,
|
|
55
|
+
FlatModelName extends keyof Bag & string = never,
|
|
56
|
+
> =
|
|
42
57
|
T extends BaseModelField<infer FieldShape>
|
|
43
58
|
? FieldShape
|
|
44
59
|
: T extends RefType<infer RefShape, any, any>
|
|
45
60
|
? ResolveRef<RefShape, Bag>
|
|
46
61
|
: T extends ModelRelationshipField<infer RelationshipShape, any, any, any>
|
|
47
|
-
? ResolveRelationship<Bag, RelationshipShape>
|
|
62
|
+
? ResolveRelationship<Bag, RelationshipShape, FlatModelName>
|
|
48
63
|
: T extends CustomType<infer CT>
|
|
49
64
|
? ResolveFields<Bag, CT['fields']> | null
|
|
50
65
|
: T extends EnumType<infer values>
|
|
@@ -52,20 +67,79 @@ export type ResolveIndividualField<Bag extends Record<string, any>, T> =
|
|
|
52
67
|
: never;
|
|
53
68
|
|
|
54
69
|
/**
|
|
55
|
-
*
|
|
70
|
+
* This mapped type eliminates redundant recursive types when
|
|
71
|
+
* generating the ['__meta']['flatModel'] type that serves as the
|
|
72
|
+
* basis for custom selection set path type generation
|
|
73
|
+
*
|
|
74
|
+
* It drops belongsTo relational fields that match the source model
|
|
75
|
+
*
|
|
76
|
+
* For example, assuming the typical Post->Comment bi-directional hasMany relationship,
|
|
77
|
+
* The generated structure will be
|
|
78
|
+
* {
|
|
79
|
+
* id: string;
|
|
80
|
+
* title: string;
|
|
81
|
+
* createdAt: string;
|
|
82
|
+
* updatedAt: string;
|
|
83
|
+
* comments: {
|
|
84
|
+
* id: string;
|
|
85
|
+
* createdAt: string;
|
|
86
|
+
* updatedAt: string;
|
|
87
|
+
* content: string;
|
|
88
|
+
* postId: string;
|
|
89
|
+
* ~~post~~ is dropped because data would be the same as top level object
|
|
90
|
+
* }[]
|
|
91
|
+
* }
|
|
92
|
+
*
|
|
56
93
|
*/
|
|
94
|
+
type ShortCircuitBiDirectionalRelationship<
|
|
95
|
+
Model extends Record<string, any>,
|
|
96
|
+
ParentModelName extends string,
|
|
97
|
+
Raw extends ModelTypeParamShape['fields'],
|
|
98
|
+
> = {
|
|
99
|
+
[Field in keyof Model as Field extends keyof Raw
|
|
100
|
+
? Raw[Field] extends ModelRelationshipField<
|
|
101
|
+
infer RelationshipShape,
|
|
102
|
+
any,
|
|
103
|
+
any,
|
|
104
|
+
any
|
|
105
|
+
>
|
|
106
|
+
? RelationshipShape['relationshipType'] extends 'belongsTo'
|
|
107
|
+
? RelationshipShape['relatedModel'] extends ParentModelName
|
|
108
|
+
? never
|
|
109
|
+
: Field
|
|
110
|
+
: Field
|
|
111
|
+
: Field
|
|
112
|
+
: Field]: Model[Field];
|
|
113
|
+
};
|
|
114
|
+
|
|
57
115
|
type ResolveRelationship<
|
|
58
116
|
Bag extends Record<string, any>,
|
|
59
117
|
RelationshipShape extends ModelRelationshipFieldParamShape,
|
|
118
|
+
ParentModelName extends keyof Bag & string = never,
|
|
60
119
|
> =
|
|
61
|
-
|
|
62
|
-
?
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
120
|
+
ExtendsNever<ParentModelName> extends true
|
|
121
|
+
? DependentLazyLoaderOpIsAvailable<Bag, RelationshipShape> extends true
|
|
122
|
+
? LazyLoader<
|
|
123
|
+
RelationshipShape['valueRequired'] extends true
|
|
124
|
+
? Bag[RelationshipShape['relatedModel']]['type']
|
|
125
|
+
: Bag[RelationshipShape['relatedModel']]['type'] | null,
|
|
126
|
+
RelationshipShape['array']
|
|
127
|
+
>
|
|
128
|
+
: never
|
|
129
|
+
: // Array-ing inline here vs. (inside of ShortCircuitBiDirectionalRelationship or in a separate conditional type) is significantly more performant
|
|
130
|
+
RelationshipShape['array'] extends true
|
|
131
|
+
? Array<
|
|
132
|
+
ShortCircuitBiDirectionalRelationship<
|
|
133
|
+
Bag[RelationshipShape['relatedModel']]['__meta']['flatModel'],
|
|
134
|
+
ParentModelName,
|
|
135
|
+
Bag[RelationshipShape['relatedModel']]['__meta']['rawType']['fields']
|
|
136
|
+
>
|
|
137
|
+
>
|
|
138
|
+
: ShortCircuitBiDirectionalRelationship<
|
|
139
|
+
Bag[RelationshipShape['relatedModel']]['__meta']['flatModel'],
|
|
140
|
+
ParentModelName,
|
|
141
|
+
Bag[RelationshipShape['relatedModel']]['__meta']['rawType']['fields']
|
|
142
|
+
>;
|
|
69
143
|
|
|
70
144
|
type DependentLazyLoaderOpIsAvailable<
|
|
71
145
|
Bag extends Record<string, any>,
|
|
@@ -252,7 +252,7 @@ type FlattenArrays<T> = {
|
|
|
252
252
|
* and especially for bi-directional relationships which are infinitely recursable by their nature
|
|
253
253
|
*
|
|
254
254
|
*/
|
|
255
|
-
|
|
255
|
+
type ModelPathInner<
|
|
256
256
|
FlatModel extends Record<string, unknown>,
|
|
257
257
|
// actual recursive Depth is 6, since we decrement down to 0
|
|
258
258
|
Depth extends number = 5, // think of this as the initialization expr. in a for loop (e.g. `let depth = 5`)
|
|
@@ -263,7 +263,7 @@ export type ModelPath<
|
|
|
263
263
|
recur: Field extends string
|
|
264
264
|
? NonNullable<UnwrapArray<FlatModel[Field]>> extends Record<string, unknown>
|
|
265
265
|
?
|
|
266
|
-
| `${Field}.${
|
|
266
|
+
| `${Field}.${ModelPathInner<
|
|
267
267
|
NonNullable<UnwrapArray<FlatModel[Field]>>,
|
|
268
268
|
// this decrements `Depth` by 1 in each recursive call; it's equivalent to the update expr. afterthought in a for loop (e.g. `depth -= 1`)
|
|
269
269
|
RecursionLoop[Depth]
|
|
@@ -274,75 +274,26 @@ export type ModelPath<
|
|
|
274
274
|
// this is equivalent to the condition expr. in a for loop (e.g. `depth !== -1`)
|
|
275
275
|
}[Depth extends -1 ? 'done' : 'recur'];
|
|
276
276
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
*
|
|
280
|
-
* This type is used for generating the base shape for custom selection set input and its return value
|
|
281
|
-
* Uses same pattern as above to limit recursion depth to maximum usable for selection set.
|
|
282
|
-
*
|
|
283
|
-
* @example
|
|
284
|
-
* ### Given
|
|
285
|
-
* ```ts
|
|
286
|
-
* Model = {
|
|
287
|
-
title: string;
|
|
288
|
-
comments: () => ListReturnValue<({
|
|
289
|
-
content: string;
|
|
290
|
-
readonly id: string;
|
|
291
|
-
readonly createdAt: string;
|
|
292
|
-
readonly updatedAt: string;
|
|
293
|
-
} | null | undefined)[]>;
|
|
294
|
-
readonly id: string;
|
|
295
|
-
readonly createdAt: string;
|
|
296
|
-
readonly updatedAt: string;
|
|
297
|
-
description?: string | ... 1 more ... | undefined;
|
|
298
|
-
}
|
|
299
|
-
* ```
|
|
300
|
-
* ### Returns
|
|
301
|
-
* ```ts
|
|
302
|
-
* {
|
|
303
|
-
title: string;
|
|
304
|
-
comments: {
|
|
305
|
-
content: string;
|
|
306
|
-
readonly id: string;
|
|
307
|
-
readonly createdAt: string;
|
|
308
|
-
readonly updatedAt: string;
|
|
309
|
-
}[];
|
|
310
|
-
readonly id: string;
|
|
311
|
-
readonly createdAt: string;
|
|
312
|
-
readonly updatedAt: string;
|
|
313
|
-
description: string | null | undefined;
|
|
314
|
-
}
|
|
315
|
-
*
|
|
316
|
-
* ```
|
|
317
|
-
*/
|
|
318
|
-
type ResolvedModel<
|
|
319
|
-
Model extends Record<string, unknown>,
|
|
320
|
-
Depth extends number = 7,
|
|
321
|
-
RecursionLoop extends number[] = [-1, 0, 1, 2, 3, 4, 5, 6],
|
|
322
|
-
> = {
|
|
323
|
-
done: NonRelationshipFields<Model>;
|
|
324
|
-
recur: {
|
|
325
|
-
[Field in keyof Model]: Model[Field] extends (
|
|
326
|
-
...args: any
|
|
327
|
-
) => ListReturnValue<infer M>
|
|
328
|
-
? NonNullable<M> extends Record<string, any>
|
|
329
|
-
? ResolvedModel<NonNullable<M>, RecursionLoop[Depth]>[]
|
|
330
|
-
: never
|
|
331
|
-
: Model[Field] extends (...args: any) => SingularReturnValue<infer M>
|
|
332
|
-
? NonNullable<M> extends Record<string, any>
|
|
333
|
-
? ResolvedModel<NonNullable<M>, RecursionLoop[Depth]>
|
|
334
|
-
: never
|
|
335
|
-
: Model[Field];
|
|
336
|
-
};
|
|
337
|
-
}[Depth extends -1 ? 'done' : 'recur'];
|
|
277
|
+
export type ModelPath<FlatModel extends Record<string, unknown>> =
|
|
278
|
+
ModelPathInner<FlatModel>;
|
|
338
279
|
|
|
339
280
|
export type SelectionSet<
|
|
340
|
-
Model
|
|
281
|
+
Model,
|
|
341
282
|
Path extends ReadonlyArray<ModelPath<FlatModel>>,
|
|
342
|
-
FlatModel extends Record<
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
283
|
+
FlatModel extends Record<
|
|
284
|
+
string,
|
|
285
|
+
unknown
|
|
286
|
+
// Remove conditional in next major version
|
|
287
|
+
> = Model extends ClientSchemaByEntityTypeBaseShape['models'][string]
|
|
288
|
+
? Model['__meta']['flatModel']
|
|
289
|
+
: Record<string, any>,
|
|
290
|
+
> =
|
|
291
|
+
// Remove conditional in next major version
|
|
292
|
+
Model extends ClientSchemaByEntityTypeBaseShape['models'][string]
|
|
293
|
+
? WithOptionalsAsNullishOnly<
|
|
294
|
+
CustomSelectionSetReturnValue<FlatModel, Path[number]>
|
|
295
|
+
>
|
|
296
|
+
: any;
|
|
346
297
|
// #endregion
|
|
347
298
|
|
|
348
299
|
// #region Interfaces copied from `graphql` package
|
|
@@ -520,7 +471,7 @@ type IndexQueryMethod<
|
|
|
520
471
|
Model extends ClientSchemaByEntityTypeBaseShape['models'][string],
|
|
521
472
|
Method extends ClientSecondaryIndexField,
|
|
522
473
|
Context extends ContextType = 'CLIENT',
|
|
523
|
-
FlatModel extends Record<string, unknown> =
|
|
474
|
+
FlatModel extends Record<string, unknown> = Model['__meta']['flatModel'],
|
|
524
475
|
> = Context extends 'CLIENT' | 'COOKIES'
|
|
525
476
|
? <SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
526
477
|
input: Method['input'],
|
|
@@ -552,14 +503,12 @@ type IndexQueryMethod<
|
|
|
552
503
|
|
|
553
504
|
type ModelTypesClient<
|
|
554
505
|
Model extends ClientSchemaByEntityTypeBaseShape['models'][string],
|
|
555
|
-
FlatModel extends Record<string, unknown> =
|
|
506
|
+
FlatModel extends Record<string, unknown> = Model['__meta']['flatModel'],
|
|
556
507
|
> = IndexQueryMethods<Model> &
|
|
557
508
|
// Omit any disabled operations
|
|
558
509
|
Omit<
|
|
559
510
|
{
|
|
560
|
-
create<
|
|
561
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
562
|
-
>(
|
|
511
|
+
create<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
563
512
|
model: Model['createType'],
|
|
564
513
|
options?: {
|
|
565
514
|
selectionSet?: SelectionSet;
|
|
@@ -570,9 +519,7 @@ type ModelTypesClient<
|
|
|
570
519
|
): SingularReturnValue<
|
|
571
520
|
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
572
521
|
>;
|
|
573
|
-
update<
|
|
574
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
575
|
-
>(
|
|
522
|
+
update<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
576
523
|
model: Model['updateType'],
|
|
577
524
|
options?: {
|
|
578
525
|
selectionSet?: SelectionSet;
|
|
@@ -583,9 +530,7 @@ type ModelTypesClient<
|
|
|
583
530
|
): SingularReturnValue<
|
|
584
531
|
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
585
532
|
>;
|
|
586
|
-
delete<
|
|
587
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
588
|
-
>(
|
|
533
|
+
delete<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
589
534
|
identifier: Model['deleteType'],
|
|
590
535
|
options?: {
|
|
591
536
|
selectionSet?: SelectionSet;
|
|
@@ -651,9 +596,7 @@ type ModelTypesClient<
|
|
|
651
596
|
}): ObservedReturnValue<
|
|
652
597
|
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
653
598
|
>;
|
|
654
|
-
observeQuery<
|
|
655
|
-
SelectionSet extends ModelPath<FlatModel>[] = never[],
|
|
656
|
-
>(options?: {
|
|
599
|
+
observeQuery<SelectionSet extends ModelPath<FlatModel>[] = never[]>(options?: {
|
|
657
600
|
filter?: ModelFilter<Model>;
|
|
658
601
|
selectionSet?: SelectionSet;
|
|
659
602
|
authMode?: AuthMode;
|
|
@@ -667,14 +610,12 @@ type ModelTypesClient<
|
|
|
667
610
|
|
|
668
611
|
type ModelTypesSSRCookies<
|
|
669
612
|
Model extends ClientSchemaByEntityTypeBaseShape['models'][string],
|
|
670
|
-
FlatModel extends Record<string, unknown> =
|
|
613
|
+
FlatModel extends Record<string, unknown> = Model['__meta']['flatModel'],
|
|
671
614
|
> = IndexQueryMethods<Model> &
|
|
672
615
|
// Omit any disabled operations
|
|
673
616
|
Omit<
|
|
674
617
|
{
|
|
675
|
-
create<
|
|
676
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
677
|
-
>(
|
|
618
|
+
create<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
678
619
|
model: Model['createType'],
|
|
679
620
|
options?: {
|
|
680
621
|
selectionSet?: SelectionSet;
|
|
@@ -685,9 +626,7 @@ type ModelTypesSSRCookies<
|
|
|
685
626
|
): SingularReturnValue<
|
|
686
627
|
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
687
628
|
>;
|
|
688
|
-
update<
|
|
689
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
690
|
-
>(
|
|
629
|
+
update<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
691
630
|
model: Model['updateType'],
|
|
692
631
|
options?: {
|
|
693
632
|
selectionSet?: SelectionSet;
|
|
@@ -698,9 +637,7 @@ type ModelTypesSSRCookies<
|
|
|
698
637
|
): SingularReturnValue<
|
|
699
638
|
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
700
639
|
>;
|
|
701
|
-
delete<
|
|
702
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
703
|
-
>(
|
|
640
|
+
delete<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
704
641
|
identifier: Model['deleteType'],
|
|
705
642
|
options?: {
|
|
706
643
|
selectionSet?: SelectionSet;
|
|
@@ -740,14 +677,12 @@ type ModelTypesSSRCookies<
|
|
|
740
677
|
|
|
741
678
|
type ModelTypesSSRRequest<
|
|
742
679
|
Model extends ClientSchemaByEntityTypeBaseShape['models'][string],
|
|
743
|
-
FlatModel extends Record<string, unknown> =
|
|
680
|
+
FlatModel extends Record<string, unknown> = Model['__meta']['flatModel'],
|
|
744
681
|
> = IndexQueryMethods<Model, 'REQUEST'> &
|
|
745
682
|
// Omit any disabled operations
|
|
746
683
|
Omit<
|
|
747
684
|
{
|
|
748
|
-
create<
|
|
749
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
750
|
-
>(
|
|
685
|
+
create<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
751
686
|
contextSpec: AmplifyServer.ContextSpec,
|
|
752
687
|
model: Model['createType'],
|
|
753
688
|
options?: {
|
|
@@ -759,9 +694,7 @@ type ModelTypesSSRRequest<
|
|
|
759
694
|
): SingularReturnValue<
|
|
760
695
|
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
761
696
|
>;
|
|
762
|
-
update<
|
|
763
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
764
|
-
>(
|
|
697
|
+
update<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
765
698
|
contextSpec: AmplifyServer.ContextSpec,
|
|
766
699
|
model: Model['updateType'],
|
|
767
700
|
options?: {
|
|
@@ -773,9 +706,7 @@ type ModelTypesSSRRequest<
|
|
|
773
706
|
): SingularReturnValue<
|
|
774
707
|
Prettify<ReturnValue<Model, FlatModel, SelectionSet>>
|
|
775
708
|
>;
|
|
776
|
-
delete<
|
|
777
|
-
SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
|
|
778
|
-
>(
|
|
709
|
+
delete<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
|
|
779
710
|
contextSpec: AmplifyServer.ContextSpec,
|
|
780
711
|
identifier: Model['deleteType'],
|
|
781
712
|
options?: {
|
package/src/util/Filters.ts
CHANGED
|
@@ -125,7 +125,7 @@ export type SubscriptionBooleanFilters = {
|
|
|
125
125
|
* lt: {sk1: string; sk2: number};
|
|
126
126
|
* ge: {sk1: string; sk2: number};
|
|
127
127
|
* gt: {sk1: string; sk2: number};
|
|
128
|
-
* between: [ {sk1: string; sk2: number} ];
|
|
128
|
+
* between: [ {sk1: string; sk2: number}, {sk1: string; sk2: number} ];
|
|
129
129
|
* beginsWith: {sk1: string; sk2: number};
|
|
130
130
|
* }
|
|
131
131
|
* ```
|
|
@@ -141,6 +141,6 @@ export type ModelPrimaryCompositeKeyInput<
|
|
|
141
141
|
lt?: SkIr;
|
|
142
142
|
ge?: SkIr;
|
|
143
143
|
gt?: SkIr;
|
|
144
|
-
between?: [SkIr];
|
|
144
|
+
between?: [SkIr, SkIr];
|
|
145
145
|
beginsWith?: SkIr;
|
|
146
146
|
};
|