@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.
Files changed (103) hide show
  1. package/dist/cjs/Authorization.js.map +1 -1
  2. package/dist/cjs/CombineSchema.js.map +1 -1
  3. package/dist/cjs/CustomOperation.js.map +1 -1
  4. package/dist/cjs/Handler.js.map +1 -1
  5. package/dist/cjs/ModelField.js.map +1 -1
  6. package/dist/cjs/ModelIndex.js.map +1 -1
  7. package/dist/cjs/ModelRelationshipField.js.map +1 -1
  8. package/dist/cjs/ModelSchema.js.map +1 -1
  9. package/dist/cjs/ModelType.js.map +1 -1
  10. package/dist/cjs/RefType.js.map +1 -1
  11. package/dist/cjs/SchemaProcessor.js.map +1 -1
  12. package/dist/cjs/Validate.js.map +1 -1
  13. package/dist/cjs/a.js.map +1 -1
  14. package/dist/cjs/ai/ConversationSchemaProcessor.js.map +1 -1
  15. package/dist/cjs/ai/ConversationType.js.map +1 -1
  16. package/dist/cjs/internals/index.js.map +1 -1
  17. package/dist/cjs/runtime/addSchemaToClientWithInstance.js.map +1 -1
  18. package/dist/cjs/runtime/client/index.js.map +1 -1
  19. package/dist/cjs/runtime/client/index.v3.js.map +1 -1
  20. package/dist/cjs/runtime/index.js.map +1 -1
  21. package/dist/cjs/runtime/internals/APIClient.js.map +1 -1
  22. package/dist/cjs/runtime/internals/ai/conversationMessageDeserializers.js.map +1 -1
  23. package/dist/cjs/runtime/internals/ai/conversationMessageSerializers.js.map +1 -1
  24. package/dist/cjs/runtime/internals/ai/conversationStreamEventDeserializers.js.map +1 -1
  25. package/dist/cjs/runtime/internals/ai/convertItemToConversation.js.map +1 -1
  26. package/dist/cjs/runtime/internals/ai/createListConversationsFunction.js.map +1 -1
  27. package/dist/cjs/runtime/internals/ai/createOnStreamEventFunction.js.map +1 -1
  28. package/dist/cjs/runtime/internals/ai/createSendMessageFunction.js.map +1 -1
  29. package/dist/cjs/runtime/internals/cancellation.js.map +1 -1
  30. package/dist/cjs/runtime/internals/clientUtils.js.map +1 -1
  31. package/dist/cjs/runtime/internals/generateCustomOperationsProperty.js.map +1 -1
  32. package/dist/cjs/runtime/internals/index.js.map +1 -1
  33. package/dist/cjs/runtime/internals/operations/custom.js.map +1 -1
  34. package/dist/cjs/runtime/internals/operations/get.js.map +1 -1
  35. package/dist/cjs/runtime/internals/operations/indexQuery.js.map +1 -1
  36. package/dist/cjs/runtime/internals/operations/list.js.map +1 -1
  37. package/dist/cjs/runtime/internals/operations/observeQuery.js.map +1 -1
  38. package/dist/cjs/runtime/internals/operations/subscription.js.map +1 -1
  39. package/dist/cjs/runtime/internals/operations/utils.js.map +1 -1
  40. package/dist/cjs/runtime/internals/server/generateModelsProperty.js.map +1 -1
  41. package/dist/cjs/runtime/internals/utils/clientProperties/generateConversationsProperty.js.map +1 -1
  42. package/dist/cjs/runtime/internals/utils/clientProperties/generateEnumsProperty.js.map +1 -1
  43. package/dist/cjs/runtime/internals/utils/clientProperties/generateGenerationsProperty.js.map +1 -1
  44. package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js.map +1 -1
  45. package/dist/cjs/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.js.map +1 -1
  46. package/dist/cjs/runtime/utils/findIndexByFields.js.map +1 -1
  47. package/dist/cjs/runtime/utils/index.js.map +1 -1
  48. package/dist/cjs/runtime/utils/resolveOwnerFields.js.map +1 -1
  49. package/dist/cjs/runtime/utils/selfAwareAsync.js.map +1 -1
  50. package/dist/cjs/util/index.js.map +1 -1
  51. package/dist/esm/Authorization.mjs.map +1 -1
  52. package/dist/esm/ClientSchema/Core/ClientModel.d.ts +4 -1
  53. package/dist/esm/ClientSchema/utilities/ResolveField.d.ts +33 -3
  54. package/dist/esm/CombineSchema.mjs.map +1 -1
  55. package/dist/esm/CustomOperation.mjs.map +1 -1
  56. package/dist/esm/Handler.mjs.map +1 -1
  57. package/dist/esm/ModelField.mjs.map +1 -1
  58. package/dist/esm/ModelIndex.mjs.map +1 -1
  59. package/dist/esm/ModelRelationshipField.mjs.map +1 -1
  60. package/dist/esm/ModelSchema.mjs.map +1 -1
  61. package/dist/esm/ModelType.mjs.map +1 -1
  62. package/dist/esm/RefType.mjs.map +1 -1
  63. package/dist/esm/SchemaProcessor.mjs.map +1 -1
  64. package/dist/esm/Validate.mjs.map +1 -1
  65. package/dist/esm/ai/ConversationSchemaProcessor.mjs.map +1 -1
  66. package/dist/esm/ai/ConversationType.mjs.map +1 -1
  67. package/dist/esm/runtime/addSchemaToClientWithInstance.mjs.map +1 -1
  68. package/dist/esm/runtime/client/index.d.ts +8 -54
  69. package/dist/esm/runtime/internals/APIClient.mjs.map +1 -1
  70. package/dist/esm/runtime/internals/ai/conversationMessageDeserializers.mjs.map +1 -1
  71. package/dist/esm/runtime/internals/ai/conversationMessageSerializers.mjs.map +1 -1
  72. package/dist/esm/runtime/internals/ai/conversationStreamEventDeserializers.mjs.map +1 -1
  73. package/dist/esm/runtime/internals/ai/convertItemToConversation.mjs.map +1 -1
  74. package/dist/esm/runtime/internals/ai/createListConversationsFunction.mjs.map +1 -1
  75. package/dist/esm/runtime/internals/ai/createOnStreamEventFunction.mjs.map +1 -1
  76. package/dist/esm/runtime/internals/ai/createSendMessageFunction.mjs.map +1 -1
  77. package/dist/esm/runtime/internals/cancellation.mjs.map +1 -1
  78. package/dist/esm/runtime/internals/clientUtils.mjs.map +1 -1
  79. package/dist/esm/runtime/internals/generateCustomOperationsProperty.mjs.map +1 -1
  80. package/dist/esm/runtime/internals/operations/custom.mjs.map +1 -1
  81. package/dist/esm/runtime/internals/operations/get.mjs.map +1 -1
  82. package/dist/esm/runtime/internals/operations/indexQuery.mjs +1 -1
  83. package/dist/esm/runtime/internals/operations/indexQuery.mjs.map +1 -1
  84. package/dist/esm/runtime/internals/operations/list.mjs.map +1 -1
  85. package/dist/esm/runtime/internals/operations/observeQuery.mjs.map +1 -1
  86. package/dist/esm/runtime/internals/operations/subscription.mjs.map +1 -1
  87. package/dist/esm/runtime/internals/operations/utils.mjs.map +1 -1
  88. package/dist/esm/runtime/internals/server/generateModelsProperty.mjs.map +1 -1
  89. package/dist/esm/runtime/internals/utils/clientProperties/generateConversationsProperty.mjs.map +1 -1
  90. package/dist/esm/runtime/internals/utils/clientProperties/generateEnumsProperty.mjs.map +1 -1
  91. package/dist/esm/runtime/internals/utils/clientProperties/generateGenerationsProperty.mjs.map +1 -1
  92. package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs.map +1 -1
  93. package/dist/esm/runtime/internals/utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs.map +1 -1
  94. package/dist/esm/runtime/utils/findIndexByFields.mjs.map +1 -1
  95. package/dist/esm/runtime/utils/resolveOwnerFields.mjs.map +1 -1
  96. package/dist/esm/runtime/utils/selfAwareAsync.mjs.map +1 -1
  97. package/dist/esm/util/Filters.d.ts +2 -2
  98. package/dist/meta/cjs.tsbuildinfo +1 -1
  99. package/package.json +2 -2
  100. package/src/ClientSchema/Core/ClientModel.ts +21 -1
  101. package/src/ClientSchema/utilities/ResolveField.ts +85 -11
  102. package/src/runtime/client/index.ts +33 -102
  103. 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.24.0",
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.22.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 { SchemaMetadata, ResolveFields } from '../utilities';
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<Bag extends Record<string, any>, T> =
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
- * Resolves to never if the related model has disabled list or get ops for hasOne/hasMany or belongsTo respectively
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
- DependentLazyLoaderOpIsAvailable<Bag, RelationshipShape> extends true
62
- ? LazyLoader<
63
- RelationshipShape['valueRequired'] extends true
64
- ? Bag[RelationshipShape['relatedModel']]['type']
65
- : Bag[RelationshipShape['relatedModel']]['type'] | null,
66
- RelationshipShape['array']
67
- >
68
- : never;
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
- export type ModelPath<
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}.${ModelPath<
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
- * Flattens model instance type and unwraps async functions into resolved GraphQL shape
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 extends Record<string, unknown>,
281
+ Model,
341
282
  Path extends ReadonlyArray<ModelPath<FlatModel>>,
342
- FlatModel extends Record<string, unknown> = ResolvedModel<Model>,
343
- > = WithOptionalsAsNullishOnly<
344
- CustomSelectionSetReturnValue<FlatModel, Path[number]>
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> = ResolvedModel<Model['type']>,
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> = ResolvedModel<Model['type']>,
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> = ResolvedModel<Model['type']>,
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> = ResolvedModel<Model['type']>,
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?: {
@@ -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
  };