@aws-amplify/data-schema 1.1.3 → 1.1.5

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 (55) hide show
  1. package/dist/cjs/CustomOperation.js +46 -0
  2. package/dist/cjs/CustomOperation.js.map +1 -1
  3. package/dist/cjs/CustomType.js +32 -0
  4. package/dist/cjs/CustomType.js.map +1 -1
  5. package/dist/cjs/Handler.js +62 -0
  6. package/dist/cjs/Handler.js.map +1 -1
  7. package/dist/cjs/MappedTypes/{MapSecondaryIndexes.js → MapIndexes.js} +1 -1
  8. package/dist/cjs/MappedTypes/MapIndexes.js.map +1 -0
  9. package/dist/cjs/ModelRelationalField.js +82 -3
  10. package/dist/cjs/ModelRelationalField.js.map +1 -1
  11. package/dist/cjs/SchemaProcessor.js +3 -1
  12. package/dist/cjs/SchemaProcessor.js.map +1 -1
  13. package/dist/esm/Authorization.d.ts +2 -2
  14. package/dist/esm/CustomOperation.d.ts +46 -0
  15. package/dist/esm/CustomOperation.mjs +46 -0
  16. package/dist/esm/CustomOperation.mjs.map +1 -1
  17. package/dist/esm/CustomType.d.ts +32 -0
  18. package/dist/esm/CustomType.mjs +32 -0
  19. package/dist/esm/CustomType.mjs.map +1 -1
  20. package/dist/esm/Handler.d.ts +62 -0
  21. package/dist/esm/Handler.mjs +62 -0
  22. package/dist/esm/Handler.mjs.map +1 -1
  23. package/dist/esm/MappedTypes/ImplicitFieldInjector.d.ts +15 -5
  24. package/dist/esm/MappedTypes/{MapSecondaryIndexes.d.ts → MapIndexes.d.ts} +6 -0
  25. package/dist/esm/MappedTypes/MapIndexes.mjs +2 -0
  26. package/dist/esm/MappedTypes/MapIndexes.mjs.map +1 -0
  27. package/dist/esm/MappedTypes/ModelMetadata.d.ts +12 -5
  28. package/dist/esm/MappedTypes/ResolveFieldProperties.d.ts +3 -2
  29. package/dist/esm/ModelField.d.ts +1 -1
  30. package/dist/esm/ModelRelationalField.d.ts +83 -4
  31. package/dist/esm/ModelRelationalField.mjs +82 -3
  32. package/dist/esm/ModelRelationalField.mjs.map +1 -1
  33. package/dist/esm/ModelType.d.ts +22 -25
  34. package/dist/esm/RefType.d.ts +1 -1
  35. package/dist/esm/SchemaProcessor.mjs +3 -1
  36. package/dist/esm/SchemaProcessor.mjs.map +1 -1
  37. package/dist/esm/runtime/client/index.d.ts +26 -15
  38. package/dist/meta/cjs.tsbuildinfo +1 -1
  39. package/package.json +1 -1
  40. package/src/CustomOperation.ts +46 -0
  41. package/src/CustomType.ts +32 -0
  42. package/src/Handler.ts +62 -0
  43. package/src/MappedTypes/ImplicitFieldInjector.ts +22 -14
  44. package/src/MappedTypes/{MapSecondaryIndexes.ts → MapIndexes.ts} +16 -0
  45. package/src/MappedTypes/ModelMetadata.ts +17 -12
  46. package/src/MappedTypes/ResolveFieldProperties.ts +3 -2
  47. package/src/ModelField.ts +1 -1
  48. package/src/ModelRelationalField.ts +83 -4
  49. package/src/ModelType.ts +45 -46
  50. package/src/RefType.ts +1 -1
  51. package/src/SchemaProcessor.ts +5 -3
  52. package/src/runtime/client/index.ts +52 -25
  53. package/dist/cjs/MappedTypes/MapSecondaryIndexes.js.map +0 -1
  54. package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs +0 -2
  55. package/dist/esm/MappedTypes/MapSecondaryIndexes.mjs.map +0 -1
@@ -271,9 +271,12 @@ export type SelectionSet<
271
271
  // #endregion
272
272
 
273
273
  // #region Input mapped types
274
- export type ModelIdentifier<Model extends Record<any, any>> = Prettify<
275
- Record<Model['identifier'] & string, string>
276
- >;
274
+
275
+ export type ModelIdentifier<ModelMeta extends ModelMetaShape> =
276
+ ModelMeta['identifier']['pk'] &
277
+ (ModelMeta['identifier']['sk'] extends never
278
+ ? unknown // unknown collapses in an intersection
279
+ : ModelMeta['identifier']['sk']);
277
280
 
278
281
  type IfEquals<X, Y, A = X, B = never> =
279
282
  (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? A : B;
@@ -306,7 +309,7 @@ type MutationInput<
306
309
  */
307
310
  type CreateModelInput<
308
311
  Model extends Record<string, unknown>,
309
- ModelMeta extends Record<string, unknown>,
312
+ ModelMeta extends ModelMetaShape,
310
313
  > =
311
314
  Equal<ModelIdentifier<ModelMeta>, { id: string }> extends true
312
315
  ? Partial<ModelIdentifier<ModelMeta>> & Omit<MutationInput<Model>, 'id'>
@@ -492,7 +495,7 @@ export type ModelSortDirection = 'ASC' | 'DESC';
492
495
 
493
496
  type ModelMetaShape = {
494
497
  secondaryIndexes: SecondaryIndexIrShape[];
495
- identifier: string;
498
+ identifier: PrimaryIndexIrShape;
496
499
  };
497
500
 
498
501
  // TODO: remove export. added for debugging.
@@ -542,9 +545,8 @@ export type ModelTypesClient<
542
545
  },
543
546
  ): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
544
547
  list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
545
- options?: Partial<ModelIdentifier<ModelMeta>> & {
548
+ options?: ListPkOptions<ModelMeta, Enums> & {
546
549
  filter?: ModelFilter<Model>;
547
- sortDirection?: ModelSortDirection;
548
550
  limit?: number;
549
551
  nextToken?: string | null;
550
552
  selectionSet?: SelectionSet;
@@ -644,7 +646,7 @@ type ModelTypesSSRCookies<
644
646
  },
645
647
  ): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
646
648
  list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
647
- options?: Partial<ModelIdentifier<ModelMeta>> & {
649
+ options?: ListPkOptions<ModelMeta, Enums> & {
648
650
  filter?: ModelFilter<Model>;
649
651
  sortDirection?: ModelSortDirection;
650
652
  limit?: number;
@@ -709,7 +711,7 @@ type ModelTypesSSRRequest<
709
711
  ): SingularReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
710
712
  list<SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[]>(
711
713
  contextSpec: any,
712
- options?: Partial<ModelIdentifier<ModelMeta>> & {
714
+ options?: ListPkOptions<ModelMeta, Enums> & {
713
715
  filter?: ModelFilter<Model>;
714
716
  sortDirection?: ModelSortDirection;
715
717
  limit?: number;
@@ -883,14 +885,20 @@ export type CustomHeaders =
883
885
  | ((requestOptions?: RequestOptions) => Promise<Record<string, string>>);
884
886
 
885
887
  /**
886
- * SecondaryIndex index types and query methods
888
+ * PrimaryIndex field types and query methods
889
+ */
890
+ export interface PrimaryIndexIrShape {
891
+ pk: { [key: string]: string | number };
892
+ sk: { [key: string]: string | number } | never;
893
+ }
894
+
895
+ /**
896
+ * SecondaryIndex field types and query methods
887
897
  */
888
- export type SecondaryIndexIrShape = {
898
+ export interface SecondaryIndexIrShape extends PrimaryIndexIrShape {
889
899
  defaultQueryFieldSuffix: string;
890
900
  queryField: string;
891
- pk: { [key: string]: string | number };
892
- sk: { [key: string]: string | number };
893
- };
901
+ }
894
902
 
895
903
  type IndexQueryMethodsFromIR<
896
904
  SecondaryIdxTuple extends SecondaryIndexIrShape[],
@@ -911,6 +919,35 @@ type IndexQueryMethodsFromIR<
911
919
  >
912
920
  : Res;
913
921
 
922
+ type ListPkOptions<
923
+ ModelMeta extends ModelMetaShape,
924
+ Enums extends Record<string, string>,
925
+ > = ModelMeta['identifier']['sk'] extends never
926
+ ? unknown
927
+ : Prettify<
928
+ Partial<IndexQueryInput<ModelMeta['identifier'], Enums>> & {
929
+ sortDirection?: ModelSortDirection;
930
+ }
931
+ >;
932
+
933
+ /**
934
+ * Accepts a PrimaryIndexIr or SecondaryIndexIr and returns resolved parameters
935
+ */
936
+ type IndexQueryInput<
937
+ Idx extends PrimaryIndexIrShape,
938
+ Enums extends Record<string, string>,
939
+ > = {
940
+ [PKField in keyof Idx['pk']]: Idx['pk'][PKField] extends `${deferredRefResolvingPrefix}${infer R}`
941
+ ? Enums[R]
942
+ : Idx['pk'][PKField];
943
+ } & {
944
+ [SKField in keyof Idx['sk']]+?: number extends Idx['sk'][SKField]
945
+ ? NumericFilter
946
+ : Idx['sk'][SKField] extends `${deferredRefResolvingPrefix}${infer R}`
947
+ ? StringFilter<Enums[R]>
948
+ : StringFilter<Idx['sk'][SKField] & string>;
949
+ };
950
+
914
951
  type IndexQueryMethodSignature<
915
952
  Idx extends SecondaryIndexIrShape,
916
953
  ModelName extends string,
@@ -924,17 +961,7 @@ type IndexQueryMethodSignature<
924
961
  FlatModel extends Record<string, unknown> = ResolvedModel<Model>,
925
962
  SelectionSet extends ReadonlyArray<ModelPath<FlatModel>> = never[],
926
963
  >(
927
- input: {
928
- [PKField in keyof Idx['pk']]: Idx['pk'][PKField] extends `${deferredRefResolvingPrefix}${infer R}`
929
- ? Enums[R]
930
- : Idx['pk'][PKField];
931
- } & {
932
- [SKField in keyof Idx['sk']]+?: number extends Idx['sk'][SKField]
933
- ? NumericFilter
934
- : Idx['sk'][SKField] extends `${deferredRefResolvingPrefix}${infer R}`
935
- ? StringFilter<Enums[R]>
936
- : StringFilter<Idx['sk'][SKField] & string>;
937
- },
964
+ input: IndexQueryInput<Idx, Enums>,
938
965
  options?: {
939
966
  filter?: ModelFilter<Model>;
940
967
  sortDirection?: ModelSortDirection;
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapSecondaryIndexes.js","sources":["../../../src/MappedTypes/MapSecondaryIndexes.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;"}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=MapSecondaryIndexes.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapSecondaryIndexes.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}