@aws-amplify/data-schema 0.14.8 → 0.14.10

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.
@@ -44,7 +44,7 @@ type CombinedClientSchemas<Schemas extends CombinedModelSchema<any>['schemas']>
44
44
  * @internal @typeParam ClientSchemas - The tuple of client schemas to combine
45
45
  */
46
46
  type InternalCombinedSchema<Combined extends CombinedModelSchema<any>, ClientSchemas extends [...any] = CombinedClientSchemas<Combined['schemas']>> = SpreadTuple<{
47
- [I in keyof ClientSchemas]: I extends CombinedSchemaIndexesUnion ? Exclude<ClientSchemas[I], typeof __modelMeta__> : never;
47
+ [I in keyof ClientSchemas]: I extends CombinedSchemaIndexesUnion ? Omit<ClientSchemas[I], typeof __modelMeta__> : never;
48
48
  }> & {
49
49
  [__modelMeta__]: SpreadTuple<{
50
50
  [I in keyof ClientSchemas]: I extends CombinedSchemaIndexesUnion ? ClientSchemas[I][typeof __modelMeta__] : never;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSchema.d.ts","sourceRoot":"","sources":["../../src/ClientSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientSchema.d.ts","sourceRoot":"","sources":["../../src/ClientSchema.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { BaseSchema, GenericModelSchema } from './ModelSchema';
1
+ import { GenericModelSchema } from './ModelSchema';
2
2
  import { Brand, IndexLimitUnion } from './util';
3
3
  declare const COMBINED_SCHEMA_LIMIT = 50;
4
4
  export type CombinedSchemaIndexesUnion = IndexLimitUnion<typeof COMBINED_SCHEMA_LIMIT>[number];
@@ -7,7 +7,7 @@ export declare const combinedSchemaBrand: Brand<"CombinedSchema">;
7
7
  export type CombinedSchemaBrand = Brand<typeof CombinedSchemaBrandName>;
8
8
  export type CombinedModelSchema<Schemas extends GenericModelSchema<any>[]> = CombinedSchemaBrand & {
9
9
  schemas: [...Schemas];
10
- } & BaseSchema<any>;
10
+ };
11
11
  /**
12
12
  * The interface for merging up to 50 schemas into a single API.
13
13
  * @param schemas The schemas to combine into a single API
@@ -1 +1 @@
1
- {"version":3,"file":"CombineSchema.d.ts","sourceRoot":"","sources":["../../src/CombineSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAS,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEvD,QAAA,MAAM,qBAAqB,KAAK,CAAC;AAEjC,MAAM,MAAM,0BAA0B,GAAG,eAAe,CACtD,OAAO,qBAAqB,CAC7B,CAAC,MAAM,CAAC,CAAC;AAEV,QAAA,MAAM,uBAAuB,mBAAmB,CAAC;AACjD,eAAO,MAAM,mBAAmB,yBAAiC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,EAAE,IACvE,mBAAmB,GAAG;IAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAA;CAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,SAAS,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAC9D,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,GACnB,mBAAmB,CAAC,MAAM,CAAC,CAE7B"}
1
+ {"version":3,"file":"CombineSchema.d.ts","sourceRoot":"","sources":["../../src/CombineSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAS,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEvD,QAAA,MAAM,qBAAqB,KAAK,CAAC;AAEjC,MAAM,MAAM,0BAA0B,GAAG,eAAe,CACtD,OAAO,qBAAqB,CAC7B,CAAC,MAAM,CAAC,CAAC;AAEV,QAAA,MAAM,uBAAuB,mBAAmB,CAAC;AACjD,eAAO,MAAM,mBAAmB,yBAAiC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,kBAAkB,CAAC,GAAG,CAAC,EAAE,IACvE,mBAAmB,GAAG;IAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAA;CAAE,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,SAAS,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAC9D,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,GACnB,mBAAmB,CAAC,MAAM,CAAC,CAE7B"}
@@ -16,42 +16,10 @@ function combine(schemas) {
16
16
  }
17
17
  exports.combine = combine;
18
18
  function internalCombine(schemas) {
19
+ validateDuplicateTypeNames(schemas);
19
20
  return {
20
- schemas: schemas,
21
- data: {
22
- types: schemas.reduce((prev, schema) => ({ ...prev, ...schema.data.types }), {}),
23
- },
24
- models: schemas.reduce((prev, schema) => ({ ...prev, ...schema.models }), {}),
25
- transform() {
26
- validateDuplicateTypeNames(schemas);
27
- const baseDefinition = {
28
- functionSlots: [],
29
- jsFunctions: [],
30
- schema: '',
31
- functionSchemaAccess: [],
32
- lambdaFunctions: {},
33
- };
34
- return schemas.reduce((prev, schema) => {
35
- const transformedSchema = schema.transform();
36
- return {
37
- functionSlots: [
38
- ...prev.functionSlots,
39
- ...transformedSchema.functionSlots,
40
- ],
41
- jsFunctions: [...prev.jsFunctions, ...transformedSchema.jsFunctions],
42
- schema: [prev.schema, transformedSchema.schema].join('\n'),
43
- functionSchemaAccess: [
44
- ...prev.functionSchemaAccess,
45
- ...transformedSchema.functionSchemaAccess,
46
- ],
47
- lambdaFunctions: {
48
- ...prev.lambdaFunctions,
49
- ...transformedSchema.lambdaFunctions,
50
- },
51
- };
52
- }, baseDefinition);
53
- },
54
21
  ...exports.combinedSchemaBrand,
22
+ schemas: schemas,
55
23
  };
56
24
  }
57
25
  function validateDuplicateTypeNames(schemas) {
@@ -11,10 +11,14 @@ export type InlineSqlHandler = {
11
11
  } & Brand<typeof inlineSqlBrand>;
12
12
  declare function inlineSql(sql: string): InlineSqlHandler;
13
13
  declare const sqlReferenceBrand = "sqlReference";
14
+ export type SqlReferenceHandlerData = {
15
+ entry: string;
16
+ stack: string | undefined;
17
+ };
14
18
  export type SqlReferenceHandler = {
15
- [dataSymbol]: string;
19
+ [dataSymbol]: SqlReferenceHandlerData;
16
20
  } & Brand<typeof sqlReferenceBrand>;
17
- declare function sqlReference(sqlReference: string): SqlReferenceHandler;
21
+ declare function sqlReference(sqlFilePath: string): SqlReferenceHandler;
18
22
  type CustomHandlerInput = {
19
23
  /**
20
24
  * The data source used by the function.
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAS,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,WAAW,GACnB,gBAAgB,GAChB,mBAAmB,GACnB,aAAa,GACb,eAAe,CAAC;AAEpB,QAAA,MAAM,UAAU,eAAiB,CAAC;AAMlC,KAAK,WAAW,GACZ,gBAAgB,GAChB,mBAAmB,GACnB,aAAa,GACb,eAAe,CAAC;AAEpB,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAClD,OAAO,EAAE,CAAC,GACT,CAAC,CAAC,OAAO,UAAU,CAAC,CAEtB;AAID,QAAA,MAAM,cAAc,cAAc,CAAC;AAEnC,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAC7D,OAAO,cAAc,CACtB,CAAC;AAEF,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAEhD;AAMD,QAAA,MAAM,iBAAiB,iBAAiB,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG;IAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAChE,OAAO,iBAAiB,CACzB,CAAC;AAEF,iBAAS,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,CAE/D;AAMD,KAAK,kBAAkB,GAAG;IACxB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IACnD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,kBAAkB,kBAAkB,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,KAAK,CACrE,OAAO,kBAAkB,CAC1B,CAAC;AAEF,iBAAS,MAAM,CAAC,aAAa,EAAE,kBAAkB,GAAG,aAAa,CAOhE;AAMD,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,MAAM,CAAC;AAE1D,QAAA,MAAM,oBAAoB,oBAAoB,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CACnC,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvC,iBAAS,GAAG,CAAC,EAAE,EAAE,mBAAmB,GAAG,eAAe,CAErD;AAID,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC"}
1
+ {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../src/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAS,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,WAAW,GACnB,gBAAgB,GAChB,mBAAmB,GACnB,aAAa,GACb,eAAe,CAAC;AAEpB,QAAA,MAAM,UAAU,eAAiB,CAAC;AAMlC,KAAK,WAAW,GACZ,gBAAgB,GAChB,mBAAmB,GACnB,aAAa,GACb,eAAe,CAAC;AAEpB,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAClD,OAAO,EAAE,CAAC,GACT,CAAC,CAAC,OAAO,UAAU,CAAC,CAEtB;AAID,QAAA,MAAM,cAAc,cAAc,CAAC;AAEnC,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAC7D,OAAO,cAAc,CACtB,CAAC;AAEF,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAEhD;AAMD,QAAA,MAAM,iBAAiB,iBAAiB,CAAC;AAEzC,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACvC,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEpC,iBAAS,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAO9D;AAMD,KAAK,kBAAkB,GAAG;IACxB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IACnD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,kBAAkB,kBAAkB,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,KAAK,CACrE,OAAO,kBAAkB,CAC1B,CAAC;AAEF,iBAAS,MAAM,CAAC,aAAa,EAAE,kBAAkB,GAAG,aAAa,CAOhE;AAMD,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,MAAM,CAAC;AAE1D,QAAA,MAAM,oBAAoB,oBAAoB,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CACnC,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvC,iBAAS,GAAG,CAAC,EAAE,EAAE,mBAAmB,GAAG,eAAe,CAErD;AAID,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC"}
@@ -18,8 +18,13 @@ function inlineSql(sql) {
18
18
  //#endregion
19
19
  //#region handler.sqlReference
20
20
  const sqlReferenceBrand = 'sqlReference';
21
- function sqlReference(sqlReference) {
22
- return { [dataSymbol]: sqlReference, ...buildHandler(sqlReferenceBrand) };
21
+ function sqlReference(sqlFilePath) {
22
+ // used to determine caller directory in order to resolve relative path downstream
23
+ const stack = new Error().stack;
24
+ return {
25
+ [dataSymbol]: { stack, entry: sqlFilePath },
26
+ ...buildHandler(sqlReferenceBrand),
27
+ };
23
28
  }
24
29
  const customHandlerBrand = 'customHandler';
25
30
  function custom(customHandler) {
@@ -1,10 +1,11 @@
1
- import type { DerivedApiDefinition, SetTypeSubArg } from '@aws-amplify/data-schema-types';
2
- import { type ModelType, type ModelTypeParamShape, type InternalModel, SchemaModelType } from './ModelType';
1
+ import type { DerivedApiDefinition, SetTypeSubArg, SchemaConfiguration, DataSourceConfiguration, DatasourceEngine, UnionToIntersection } from '@aws-amplify/data-schema-types';
2
+ import { type ModelType, type ModelTypeParamShape, type InternalModel, SchemaModelType, AddRelationshipFieldsToModelTypeFields } from './ModelType';
3
3
  import type { EnumType, EnumTypeParamShape } from './EnumType';
4
4
  import type { CustomType, CustomTypeParamShape } from './CustomType';
5
5
  import type { CustomOperation, CustomOperationParamShape, InternalCustom, MutationCustomOperation, QueryCustomOperation, SubscriptionCustomOperation } from './CustomOperation';
6
6
  import { SchemaAuthorization } from './Authorization';
7
7
  import { Brand } from './util';
8
+ import { ModelRelationalField, ModelRelationalFieldParamShape } from './ModelRelationalField';
8
9
  export declare const rdsSchemaBrandName = "RDSSchema";
9
10
  export declare const rdsSchemaBrand: Brand<"RDSSchema">;
10
11
  export type RDSSchemaBrand = Brand<typeof rdsSchemaBrandName>;
@@ -13,71 +14,42 @@ export type DDBSchemaBrand = Brand<typeof ddbSchemaBrandName>;
13
14
  type SchemaContent = ModelType<ModelTypeParamShape, any> | CustomType<CustomTypeParamShape> | EnumType<EnumTypeParamShape> | CustomOperation<CustomOperationParamShape, any>;
14
15
  type ModelSchemaContents = Record<string, SchemaContent>;
15
16
  type InternalSchemaModels = Record<string, InternalModel | EnumType<any> | CustomType<any> | InternalCustom>;
16
- /**
17
- * Importing the full objects from @aws-amplify/plugin-types
18
- * more than doubles dev env runtime. This type replacement
19
- * will contain the content for config without the negative
20
- * side-effects. We may need to re-approach if customers interact
21
- * with these programmatically to avoid forcing narrowing.
22
- */
23
- type BackendSecret = {
24
- resolve: (scope: any, backendIdentifier: any) => any;
25
- resolvePath: (backendIdentifier: any) => any;
26
- };
27
- export type DatasourceEngine = 'mysql' | 'postgresql' | 'dynamodb';
28
- type SubnetAZ = {
29
- subnetId: string;
30
- availabilityZone: string;
31
- };
32
- type VpcConfig = {
33
- vpcId: string;
34
- securityGroupIds: string[];
35
- subnetAvailabilityZones: SubnetAZ[];
36
- };
37
- type DatasourceConfig<DE extends DatasourceEngine> = DE extends 'dynamodb' ? {
38
- engine: DE;
39
- } : {
40
- engine: DE;
41
- connectionUri: BackendSecret;
42
- vpcConfig?: VpcConfig;
43
- };
44
- export type SchemaConfig<DE extends DatasourceEngine, DC extends DatasourceConfig<DE>> = {
45
- database: DC;
46
- };
47
17
  export type ModelSchemaParamShape = {
48
18
  types: ModelSchemaContents;
49
19
  authorization: SchemaAuthorization<any, any, any>[];
50
- configuration: SchemaConfig<any, any>;
20
+ configuration: SchemaConfiguration<any, any>;
51
21
  };
52
22
  export type RDSModelSchemaParamShape = ModelSchemaParamShape & {
53
- setSqlStatementFolderPath?: string;
23
+ sqlStatementFolderPath?: CustomPathData;
54
24
  };
55
25
  export type InternalSchema = {
56
26
  data: {
57
27
  types: InternalSchemaModels;
58
28
  authorization: SchemaAuthorization<any, any, any>[];
59
- configuration: SchemaConfig<any, any>;
29
+ configuration: SchemaConfiguration<any, any>;
60
30
  };
61
31
  };
62
- export type BaseSchema<T extends ModelSchemaParamShape> = {
32
+ export type BaseSchema<T extends ModelSchemaParamShape, IsRDS extends boolean = false> = {
63
33
  data: T;
64
34
  models: {
65
- [TypeKey in keyof T['types']]: T['types'][TypeKey] extends ModelType<ModelTypeParamShape> ? SchemaModelType<T['types'][TypeKey]> : never;
35
+ [TypeKey in keyof T['types']]: T['types'][TypeKey] extends ModelType<ModelTypeParamShape> ? SchemaModelType<T['types'][TypeKey], TypeKey & string, IsRDS> : never;
66
36
  };
67
37
  transform: () => DerivedApiDefinition;
68
38
  };
69
39
  export type GenericModelSchema<T extends ModelSchemaParamShape> = BaseSchema<T> & Brand<typeof rdsSchemaBrandName | typeof ddbSchemaBrandName>;
70
- export type ModelSchema<T extends ModelSchemaParamShape, UsedMethods extends 'authorization' = never> = Omit<{
40
+ export type ModelSchema<T extends ModelSchemaParamShape, UsedMethods extends 'authorization' | 'addRelationships' = never> = Omit<{
71
41
  authorization: <AuthRules extends SchemaAuthorization<any, any, any>>(auth: AuthRules[]) => ModelSchema<SetTypeSubArg<T, 'authorization', AuthRules[]>, UsedMethods | 'authorization'>;
72
42
  }, UsedMethods> & BaseSchema<T> & DDBSchemaBrand;
73
- type RDSModelSchemaFunctions = 'setSqlStatementFolderPath' | 'addQueries' | 'addMutations' | 'addSubscriptions' | 'authorization';
74
- export type RDSModelSchema<T extends RDSModelSchemaParamShape, UsedMethods extends RDSModelSchemaFunctions = never> = Omit<{
75
- setSqlStatementFolderPath: <Path extends string>(path: Path) => RDSModelSchema<SetTypeSubArg<T, 'setSqlStatementFolderPath', Path>, UsedMethods | 'setSqlStatementFolderPath'>;
43
+ type RDSModelSchemaFunctions = 'addQueries' | 'addMutations' | 'addSubscriptions' | 'authorization' | 'relationships';
44
+ export type RDSModelSchema<T extends RDSModelSchemaParamShape, UsedMethods extends RDSModelSchemaFunctions = never, RelationshipTemplate extends Record<string, ModelRelationalField<ModelRelationalFieldParamShape, string, any, any>> = Record<string, ModelRelationalField<ModelRelationalFieldParamShape, string, any, any>>> = Omit<{
76
45
  addQueries: <Queries extends Record<string, QueryCustomOperation>>(types: Queries) => RDSModelSchema<SetTypeSubArg<T, 'types', T['types'] & Queries>, UsedMethods | 'addQueries'>;
77
46
  addMutations: <Mutations extends Record<string, MutationCustomOperation>>(types: Mutations) => RDSModelSchema<SetTypeSubArg<T, 'types', T['types'] & Mutations>, UsedMethods | 'addMutations'>;
78
47
  addSubscriptions: <Subscriptions extends Record<string, SubscriptionCustomOperation>>(types: Subscriptions) => RDSModelSchema<SetTypeSubArg<T, 'types', T['types'] & Subscriptions>, UsedMethods | 'addSubscriptions'>;
79
- authorization: <AuthRules extends SchemaAuthorization<any, any, any>>(auth: AuthRules[]) => RDSModelSchema<SetTypeSubArg<T, 'authorization', AuthRules[]>, UsedMethods | 'authorization'> & RDSSchemaBrand;
80
- }, UsedMethods> & BaseSchema<T> & RDSSchemaBrand;
48
+ authorization: <AuthRules extends SchemaAuthorization<any, any, any>>(auth: AuthRules[]) => RDSModelSchema<SetTypeSubArg<T, 'authorization', AuthRules[]>, UsedMethods | 'authorization'>;
49
+ relationships: <Relationships extends ReadonlyArray<Partial<Record<keyof T['types'], RelationshipTemplate>>>>(callback: (models: BaseSchema<T, true>['models']) => Relationships) => RDSModelSchema<UnionToIntersection<Relationships[number]> extends infer RelationshipsDefs ? RelationshipsDefs extends Record<string, RelationshipTemplate> ? SetTypeSubArg<T, 'types', {
50
+ [ModelName in keyof T['types']]: ModelName extends keyof RelationshipsDefs ? AddRelationshipFieldsToModelTypeFields<T['types'][ModelName], RelationshipsDefs[ModelName]> : T['types'][ModelName];
51
+ }> : T : T, UsedMethods | 'relationships'>;
52
+ }, UsedMethods> & BaseSchema<T, true> & RDSSchemaBrand;
81
53
  /**
82
54
  * Amplify API Next Model Schema shape
83
55
  */
@@ -116,8 +88,13 @@ export declare const schema: <Types extends ModelSchemaContents>(types: Types) =
116
88
  * @param config The SchemaConfig augments the schema with content like the database type
117
89
  * @returns
118
90
  */
119
- export declare function configure<DE extends DatasourceEngine>(config: SchemaConfig<DE, DatasourceConfig<DE>>): {
91
+ export declare function configure<DE extends DatasourceEngine>(config: SchemaConfiguration<DE, DataSourceConfiguration<DE>>): {
120
92
  schema: <Types extends ModelSchemaContents>(types: Types) => SchemaReturnType<DE, Types>;
121
93
  };
94
+ export declare function isCustomPathData(obj: any): obj is CustomPathData;
95
+ export type CustomPathData = {
96
+ stack: string | undefined;
97
+ entry: string;
98
+ };
122
99
  export {};
123
100
  //# sourceMappingURL=ModelSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSchema.d.ts","sourceRoot":"","sources":["../../src/ModelSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAElB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAS,MAAM,QAAQ,CAAC;AAEtC,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAC9C,eAAO,MAAM,cAAc,oBAA4B,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,KAAK,aAAa,GACd,SAAS,CAAC,mBAAmB,EAAE,GAAG,CAAC,GACnC,UAAU,CAAC,oBAAoB,CAAC,GAChC,QAAQ,CAAC,kBAAkB,CAAC,GAC5B,eAAe,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AAEpD,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACzD,KAAK,oBAAoB,GAAG,MAAM,CAChC,MAAM,EACN,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CACjE,CAAC;AAEF;;;;;;GAMG;AACH,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,KAAK,GAAG,CAAC;IACrD,WAAW,EAAE,CAAC,iBAAiB,EAAE,GAAG,KAAK,GAAG,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAC;AAEnE,KAAK,QAAQ,GAAG;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,uBAAuB,EAAE,QAAQ,EAAE,CAAC;CACrC,CAAC;AAEF,KAAK,gBAAgB,CAAC,EAAE,SAAS,gBAAgB,IAAI,EAAE,SAAS,UAAU,GACtE;IAAE,MAAM,EAAE,EAAE,CAAA;CAAE,GACd;IACE,MAAM,EAAE,EAAE,CAAC;IACX,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEN,MAAM,MAAM,YAAY,CACtB,EAAE,SAAS,gBAAgB,EAC3B,EAAE,SAAS,gBAAgB,CAAC,EAAE,CAAC,IAC7B;IACF,QAAQ,EAAE,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,aAAa,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACpD,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,qBAAqB,GAAG;IAC7D,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE;QACJ,KAAK,EAAE,oBAAoB,CAAC;QAC5B,aAAa,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QACpD,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACvC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,qBAAqB,IAAI;IACxD,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE;SACL,OAAO,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,SAAS,CAAC,mBAAmB,CAAC,GACrF,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GACpC,KAAK;KACV,CAAC;IACF,SAAS,EAAE,MAAM,oBAAoB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,qBAAqB,IAC5D,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,CAAC;AAE/E,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,qBAAqB,EAC/B,WAAW,SAAS,eAAe,GAAG,KAAK,IACzC,IAAI,CACN;IACE,aAAa,EAAE,CAAC,SAAS,SAAS,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAClE,IAAI,EAAE,SAAS,EAAE,KACd,WAAW,CACd,aAAa,CAAC,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAC9C,WAAW,GAAG,eAAe,CAC9B,CAAC;CACH,EACD,WAAW,CACZ,GACC,UAAU,CAAC,CAAC,CAAC,GACb,cAAc,CAAC;AAEjB,KAAK,uBAAuB,GACxB,2BAA2B,GAC3B,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,eAAe,CAAC;AAEpB,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,wBAAwB,EAClC,WAAW,SAAS,uBAAuB,GAAG,KAAK,IACjD,IAAI,CACN;IACE,yBAAyB,EAAE,CAAC,IAAI,SAAS,MAAM,EAC7C,IAAI,EAAE,IAAI,KACP,cAAc,CACjB,aAAa,CAAC,CAAC,EAAE,2BAA2B,EAAE,IAAI,CAAC,EACnD,WAAW,GAAG,2BAA2B,CAC1C,CAAC;IACF,UAAU,EAAE,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC/D,KAAK,EAAE,OAAO,KACX,cAAc,CACjB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,EAC/C,WAAW,GAAG,YAAY,CAC3B,CAAC;IACF,YAAY,EAAE,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,EACtE,KAAK,EAAE,SAAS,KACb,cAAc,CACjB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,EACjD,WAAW,GAAG,cAAc,CAC7B,CAAC;IACF,gBAAgB,EAAE,CAChB,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAEjE,KAAK,EAAE,aAAa,KACjB,cAAc,CACjB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,EACrD,WAAW,GAAG,kBAAkB,CACjC,CAAC;IACF,aAAa,EAAE,CAAC,SAAS,SAAS,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAClE,IAAI,EAAE,SAAS,EAAE,KACd,cAAc,CACjB,aAAa,CAAC,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAC9C,WAAW,GAAG,eAAe,CAC9B,GACC,cAAc,CAAC;CAClB,EACD,WAAW,CACZ,GACC,UAAU,CAAC,CAAC,CAAC,GACb,cAAc,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAwBjE;;;;GAIG;AACH,eAAO,MAAM,aAAa,WAChB,MAAM,GAAG,eAAe,8BAGjC,CAAC;AAyEF,KAAK,gBAAgB,CACnB,EAAE,SAAS,gBAAgB,EAC3B,KAAK,SAAS,mBAAmB,IAC/B,EAAE,SAAS,UAAU,GACrB,WAAW,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,EAAE,CAAC;IAAC,aAAa,EAAE,GAAG,CAAA;CAAE,CAAC,GACpE,cAAc,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,EAAE,CAAC;IAAC,aAAa,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC;AAgB5E;;;;;;GAMG;AACH,eAAO,MAAM,MAAM;;mBAxB4B,EAAE;mBAAiB,GAAG;SAwBS,CAAC;AAE/E;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,gBAAgB,EACnD,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,GAC7C;IACD,MAAM,EAAE,CAAC,KAAK,SAAS,mBAAmB,EACxC,KAAK,EAAE,KAAK,KACT,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;CAClC,CAIA"}
1
+ {"version":3,"file":"ModelSchema.d.ts","sourceRoot":"","sources":["../../src/ModelSchema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configure = exports.schema = exports.isModelSchema = exports.ddbSchemaBrandName = exports.rdsSchemaBrand = exports.rdsSchemaBrandName = void 0;
3
+ exports.isCustomPathData = exports.configure = exports.schema = exports.isModelSchema = exports.ddbSchemaBrandName = exports.rdsSchemaBrand = exports.rdsSchemaBrandName = void 0;
4
4
  const ModelType_1 = require("./ModelType");
5
5
  const SchemaProcessor_1 = require("./SchemaProcessor");
6
6
  const util_1 = require("./util");
@@ -40,8 +40,10 @@ function _rdsSchema(types, config) {
40
40
  authorization: [],
41
41
  configuration: config,
42
42
  };
43
+ const models = filterSchemaModelTypes(data.types);
43
44
  return {
44
45
  data,
46
+ models,
45
47
  transform() {
46
48
  const internalSchema = { data };
47
49
  return (0, SchemaProcessor_1.processSchema)({ schema: internalSchema });
@@ -51,11 +53,6 @@ function _rdsSchema(types, config) {
51
53
  const { authorization: _, ...rest } = this;
52
54
  return rest;
53
55
  },
54
- setSqlStatementFolderPath(path) {
55
- this.data.setSqlStatementFolderPath = path;
56
- const { setSqlStatementFolderPath: _, ...rest } = this;
57
- return rest;
58
- },
59
56
  addQueries(types) {
60
57
  this.data.types = { ...this.data.types, ...types };
61
58
  const { addQueries: _, ...rest } = this;
@@ -71,6 +68,15 @@ function _rdsSchema(types, config) {
71
68
  const { addSubscriptions: _, ...rest } = this;
72
69
  return rest;
73
70
  },
71
+ relationships(callback) {
72
+ const { relationships: _, ...rest } = this;
73
+ // The relationships are added via `models.<Model>.addRelationships`
74
+ // modifiers that's being called within the callback. They are modifying
75
+ // by references on each model, so there is not anything else to be done
76
+ // here.
77
+ callback(models);
78
+ return rest;
79
+ },
74
80
  ...exports.rdsSchemaBrand,
75
81
  };
76
82
  }
@@ -123,3 +129,10 @@ function configure(config) {
123
129
  };
124
130
  }
125
131
  exports.configure = configure;
132
+ function isCustomPathData(obj) {
133
+ return ('stack' in obj &&
134
+ (typeof obj.stack === 'undefined' || typeof obj.stack === 'string') &&
135
+ 'entry' in obj &&
136
+ typeof obj.entry === 'string');
137
+ }
138
+ exports.isCustomPathData = isCustomPathData;
@@ -1,7 +1,7 @@
1
1
  import type { SetTypeSubArg, SecondaryIndexIrShape } from '@aws-amplify/data-schema-types';
2
2
  import { Brand } from './util';
3
3
  import { ModelField, InternalField } from './ModelField';
4
- import type { ModelRelationalField, InternalRelationalField } from './ModelRelationalField';
4
+ import type { ModelRelationalField, InternalRelationalField, ModelRelationalFieldParamShape } from './ModelRelationalField';
5
5
  import { Authorization } from './Authorization';
6
6
  import { RefType } from './RefType';
7
7
  import { EnumType, EnumTypeParamShape } from './EnumType';
@@ -41,6 +41,7 @@ type GetRequiredFields<T> = {
41
41
  type IdentifierMap<T extends ModelTypeParamShape> = GetRequiredFields<ExtractType<T>>;
42
42
  type IdentifierFields<T extends ModelTypeParamShape> = keyof IdentifierMap<T> & string;
43
43
  type IdentifierType<T extends ModelTypeParamShape, Fields extends string = IdentifierFields<T>> = Array<Fields>;
44
+ export type AddRelationshipFieldsToModelTypeFields<Model, RelationshipFields extends Record<string, ModelRelationalField<ModelRelationalFieldParamShape, string, any, any>>> = Model extends ModelType<infer ModelParam extends ModelTypeParamShape, infer HiddenKeys> ? ModelType<SetTypeSubArg<ModelParam, 'fields', ModelParam['fields'] & RelationshipFields>, HiddenKeys> : never;
44
45
  export type ModelType<T extends ModelTypeParamShape, K extends keyof ModelType<T> = never> = Omit<{
45
46
  identifier<ID extends IdentifierType<T> = []>(identifier: ID): ModelType<SetTypeSubArg<T, 'identifier', ID>, K | 'identifier'>;
46
47
  secondaryIndexes<const SecondaryIndexPKPool extends string = SecondaryIndexFields<ExtractType<T>>, const Indexes extends readonly ModelIndexType<string, string, unknown, readonly [], any>[] = readonly [], const IndexesIR extends readonly any[] = SecondaryIndexToIR<Indexes, ExtractType<T>>>(callback: (index: <PK extends SecondaryIndexPKPool>(pk: PK) => ModelIndexType<SecondaryIndexPKPool, PK, ReadonlyArray<Exclude<SecondaryIndexPKPool, PK>>>) => Indexes): ModelType<SetTypeSubArg<T, 'secondaryIndexes', IndexesIR>, K | 'secondaryIndexes'>;
@@ -50,14 +51,14 @@ export type ModelType<T extends ModelTypeParamShape, K extends keyof ModelType<T
50
51
  * External representation of Model Type that exposes the `addRelationships` modifier.
51
52
  * Used on the complete schema object.
52
53
  */
53
- export type SchemaModelType<T extends ModelType<ModelTypeParamShape> = ModelType<ModelTypeParamShape>> = T & {
54
- addRelationships(relationships: Record<string, ModelRelationalField<any, string, any, any>>): void;
55
- };
54
+ export type SchemaModelType<T extends ModelType<ModelTypeParamShape> = ModelType<ModelTypeParamShape>, ModelName extends string = string, IsRDS extends boolean = false> = IsRDS extends true ? T & {
55
+ addRelationships<Param extends Record<string, ModelRelationalField<any, string, any, any>> = Record<never, never>>(relationships: Param): Record<ModelName, Param>;
56
+ } : T;
56
57
  /**
57
58
  * Internal representation of Model Type that exposes the `data` property.
58
59
  * Used at buildtime.
59
60
  */
60
- export type InternalModel = SchemaModelType & {
61
+ export type InternalModel = SchemaModelType<ModelType<ModelTypeParamShape>, string, true> & {
61
62
  data: InternalModelData;
62
63
  };
63
64
  /**
@@ -65,7 +66,7 @@ export type InternalModel = SchemaModelType & {
65
66
  * @param modelType - api-next ModelType
66
67
  * @returns true if the given value is a ModelSchema
67
68
  */
68
- export declare const isSchemaModelType: (modelType: any | SchemaModelType) => modelType is SchemaModelType<ModelType<ModelTypeParamShape, never>>;
69
+ export declare const isSchemaModelType: (modelType: any | SchemaModelType) => modelType is ModelType<ModelTypeParamShape, never>;
69
70
  /**
70
71
  * A data model that creates a matching Amazon DynamoDB table and provides create, read (list and get), update,
71
72
  * delete, and subscription APIs.
@@ -1 +1 @@
1
- {"version":3,"file":"ModelType.d.ts","sourceRoot":"","sources":["../../src/ModelType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,EAAS,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,cAAc,EACd,sBAAsB,EAEvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,QAAA,MAAM,SAAS,cAAc,CAAC;AAE9B,KAAK,WAAW,GAAG,MAAM,CACvB,MAAM,EACJ,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACzB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAC3C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACtB,QAAQ,CAAC,kBAAkB,CAAC,GAC5B,UAAU,CAAC,oBAAoB,CAAC,CACnC,CAAC;AAEF,KAAK,mBAAmB,GAAG,MAAM,CAC/B,MAAM,EACN,aAAa,GAAG,uBAAuB,CACxC,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACzE,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAC/C,CAAC;AAEF,KAAK,iBAAiB,GAAG,SAAS,GAAG;IACnC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACxD,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACvD,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAC/C,CAAC;AAIF,KAAK,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM;KAClE,KAAK,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAC9D,KAAK,GACL,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;CACrB,GACC,MAAM,CAAC;AAET,KAAK,WAAW,CAAC,CAAC,SAAS,mBAAmB,IAAI;KAC/C,SAAS,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,UAAU,CAC1E,GAAG,EACH,GAAG,EACH,GAAG,CACJ,GACG,SAAS,GACT,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GACpE,CAAC,GACD,KAAK;CACV,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,IAAI;KACzB,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GACnE,SAAS,GACT,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,mBAAmB,IAAI,iBAAiB,CACnE,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;AAIF,KAAK,gBAAgB,CAAC,CAAC,SAAS,mBAAmB,IAAI,MAAM,aAAa,CAAC,CAAC,CAAC,GAC3E,MAAM,CAAC;AAET,KAAK,cAAc,CACjB,CAAC,SAAS,mBAAmB,EAC7B,MAAM,SAAS,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,IACzC,KAAK,CAAC,MAAM,CAAC,CAAC;AA+DlB,MAAM,MAAM,SAAS,CACnB,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,IAClC,IAAI,CACN;IACE,UAAU,CAAC,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,EAC1C,UAAU,EAAE,EAAE,GACb,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC;IACnE,gBAAgB,CACd,KAAK,CAAC,oBAAoB,SAAS,MAAM,GAAG,oBAAoB,CAC9D,WAAW,CAAC,CAAC,CAAC,CACf,EACD,KAAK,CAAC,OAAO,SAAS,SAAS,cAAc,CAC3C,MAAM,EACN,MAAM,EACN,OAAO,EACP,SAAS,EAAE,EACX,GAAG,CACJ,EAAE,GAAG,SAAS,EAAE,EACjB,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,EAAE,GAAG,kBAAkB,CACzD,OAAO,EACP,WAAW,CAAC,CAAC,CAAC,CACf,EAED,QAAQ,EAAE,CACR,KAAK,EAAE,CAAC,EAAE,SAAS,oBAAoB,EACrC,EAAE,EAAE,EAAE,KACH,cAAc,CACjB,oBAAoB,EACpB,EAAE,EACF,aAAa,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CACjD,KACE,OAAO,GACX,SAAS,CACV,aAAa,CAAC,CAAC,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAC/C,CAAC,GAAG,kBAAkB,CACvB,CAAC;IACF,aAAa,CAAC,YAAY,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7D,KAAK,EAAE,YAAY,EAAE,GACpB,SAAS,CACV,aAAa,CAAC,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,EACjD,CAAC,GAAG,eAAe,CACpB,CAAC;CACH,EACD,CAAC,CACF,GACC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAE1B;;;GAGG;AACH,MAAM,MAAM,eAAe,CACzB,CAAC,SAAS,SAAS,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,mBAAmB,CAAC,IACvE,CAAC,GAAG;IACN,gBAAgB,CACd,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GACzE,IAAI,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC;AAsCF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,cACjB,GAAG,GAAG,eAAe,wEAYjC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,EACzC,MAAM,EAAE,CAAC,GACR,SAAS,CAAC;IACX,MAAM,EAAE,CAAC,CAAC;IACV,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,gBAAgB,EAAE,EAAE,CAAC;IACrB,aAAa,EAAE,EAAE,CAAC;CACnB,CAAC,CAED"}
1
+ {"version":3,"file":"ModelType.d.ts","sourceRoot":"","sources":["../../src/ModelType.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { InternalSchema } from './ModelSchema';
1
+ import { type InternalSchema } from './ModelSchema';
2
2
  import { DerivedApiDefinition } from '@aws-amplify/data-schema-types';
3
3
  /**
4
4
  * Returns API definition from ModelSchema or string schema
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaProcessor.d.ts","sourceRoot":"","sources":["../../src/SchemaProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAsBpD,OAAO,EACL,oBAAoB,EAKrB,MAAM,gCAAgC,CAAC;AA6kDxC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE;IACjC,MAAM,EAAE,cAAc,CAAC;CACxB,GAAG,oBAAoB,CAWvB"}
1
+ {"version":3,"file":"SchemaProcessor.d.ts","sourceRoot":"","sources":["../../src/SchemaProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAsBzE,OAAO,EACL,oBAAoB,EAMrB,MAAM,gCAAgC,CAAC;AA8nDxC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE;IACjC,MAAM,EAAE,cAAc,CAAC;CACxB,GAAG,oBAAoB,CAiBvB"}
@@ -238,6 +238,7 @@ function customOperationToGql(typeName, typeDef, authorization, isCustom = false
238
238
  const brand = handler && (0, util_1.getBrand)(handler);
239
239
  let gqlHandlerContent = '';
240
240
  let lambdaFunctionDefinition = {};
241
+ let customSqlDataSourceStrategy;
241
242
  if (isFunctionHandler(handlers)) {
242
243
  ({ gqlHandlerContent, lambdaFunctionDefinition } = transformFunctionHandler(handlers, callSignature));
243
244
  }
@@ -246,9 +247,21 @@ function customOperationToGql(typeName, typeDef, authorization, isCustom = false
246
247
  }
247
248
  else if (databaseType === 'sql' && handler && brand === 'inlineSql') {
248
249
  gqlHandlerContent = `@sql(statement: ${escapeGraphQlString(String((0, Handler_1.getHandlerData)(handler)))}) `;
250
+ customSqlDataSourceStrategy = {
251
+ typeName: opType,
252
+ fieldName: typeName,
253
+ };
249
254
  }
250
- else if (databaseType === 'sql' && handler && brand === 'sqlReference') {
251
- gqlHandlerContent = `@sql(reference: "${(0, Handler_1.getHandlerData)(handler)}") `;
255
+ else if (isSqlReferenceHandler(handlers)) {
256
+ const handlerData = (0, Handler_1.getHandlerData)(handlers[0]);
257
+ const entry = resolveEntryPath(handlerData, 'Could not determine import path to construct absolute code path for sql reference handler. Consider using an absolute path instead.');
258
+ const reference = typeof entry === 'string' ? entry : entry.relativePath;
259
+ customSqlDataSourceStrategy = {
260
+ typeName: opType,
261
+ fieldName: typeName,
262
+ entry,
263
+ };
264
+ gqlHandlerContent = `@sql(reference: "${reference}") `;
252
265
  }
253
266
  if (opType === 'Subscription') {
254
267
  const subscriptionSources = subscriptionSource
@@ -259,14 +272,21 @@ function customOperationToGql(typeName, typeDef, authorization, isCustom = false
259
272
  return refTarget;
260
273
  }
261
274
  if (type === 'Model') {
262
- return source.data.mutationOperations.map((op) => `${op}${refTarget}`);
275
+ return source.data.mutationOperations.map(
276
+ // capitalize explicitly in case customer used lowercase model name
277
+ (op) => `${op}${capitalize(refTarget)}`);
263
278
  }
264
279
  })
265
280
  .join('", "');
266
281
  gqlHandlerContent += `@aws_subscribe(mutations: ["${subscriptionSources}"]) `;
267
282
  }
268
283
  const gqlField = `${callSignature}: ${returnTypeName} ${gqlHandlerContent}${authString}`;
269
- return { gqlField, models: implicitModels, lambdaFunctionDefinition };
284
+ return {
285
+ gqlField,
286
+ models: implicitModels,
287
+ lambdaFunctionDefinition,
288
+ customSqlDataSourceStrategy,
289
+ };
270
290
  }
271
291
  /**
272
292
  * Escape a string that will be used inside of a graphql string.
@@ -802,11 +822,12 @@ const schemaPreprocessor = (schema) => {
802
822
  const customSubscriptions = [];
803
823
  const jsFunctions = [];
804
824
  let lambdaFunctions = {};
825
+ const customSqlDataSourceStrategies = [];
805
826
  const databaseType = schema.data.configuration.database.engine === 'dynamodb'
806
827
  ? 'dynamodb'
807
828
  : 'sql';
808
829
  const staticSchema = schema.data.configuration.database.engine === 'dynamodb' ? false : true;
809
- const fkFields = allImpliedFKs(schema);
830
+ const fkFields = staticSchema ? {} : allImpliedFKs(schema);
810
831
  const topLevelTypes = Object.entries(schema.data.types);
811
832
  const { schemaAuth, functionSchemaAccess } = extractFunctionSchemaAccess(schema.data.authorization);
812
833
  const getRefType = getRefTypeForSchema(schema);
@@ -837,12 +858,15 @@ const schemaPreprocessor = (schema) => {
837
858
  }
838
859
  else if (isCustomOperation(typeDef)) {
839
860
  const { typeName: opType } = typeDef.data;
840
- const { gqlField, models, jsFunctionForField, lambdaFunctionDefinition, } = transformCustomOperations(typeDef, typeName, mostRelevantAuthRules, databaseType, getRefType);
861
+ const { gqlField, models, jsFunctionForField, lambdaFunctionDefinition, customSqlDataSourceStrategy, } = transformCustomOperations(typeDef, typeName, mostRelevantAuthRules, databaseType, getRefType);
841
862
  lambdaFunctions = lambdaFunctionDefinition;
842
863
  topLevelTypes.push(...models);
843
864
  if (jsFunctionForField) {
844
865
  jsFunctions.push(jsFunctionForField);
845
866
  }
867
+ if (customSqlDataSourceStrategy) {
868
+ customSqlDataSourceStrategies.push(customSqlDataSourceStrategy);
869
+ }
846
870
  switch (opType) {
847
871
  case 'Query':
848
872
  customQueries.push(gqlField);
@@ -904,6 +928,7 @@ const schemaPreprocessor = (schema) => {
904
928
  jsFunctions,
905
929
  functionSchemaAccess,
906
930
  lambdaFunctions,
931
+ customSqlDataSourceStrategies,
907
932
  };
908
933
  };
909
934
  function validateCustomOperations(typeDef, typeName, authRules, getRefType) {
@@ -973,6 +998,9 @@ function validateCustomOperations(typeDef, typeName, authRules, getRefType) {
973
998
  }
974
999
  }
975
1000
  }
1001
+ const isSqlReferenceHandler = (handler) => {
1002
+ return Array.isArray(handler) && (0, util_1.getBrand)(handler[0]) === 'sqlReference';
1003
+ };
976
1004
  const isCustomHandler = (handler) => {
977
1005
  return Array.isArray(handler) && (0, util_1.getBrand)(handler[0]) === 'customHandler';
978
1006
  };
@@ -1001,17 +1029,16 @@ const sanitizeStackTrace = (stackTrace) => {
1001
1029
  };
1002
1030
  // copied from the defineFunction path resolution impl:
1003
1031
  // https://github.com/aws-amplify/amplify-backend/blob/main/packages/backend-function/src/get_caller_directory.ts
1004
- const resolveCustomHandlerEntryPath = (data) => {
1032
+ const resolveEntryPath = (data, errorMessage) => {
1005
1033
  if (path.isAbsolute(data.entry)) {
1006
1034
  return data.entry;
1007
1035
  }
1008
- const unresolvedImportLocationError = new Error('Could not determine import path to construct absolute code path for custom handler. Consider using an absolute path instead.');
1009
1036
  if (!data.stack) {
1010
- throw unresolvedImportLocationError;
1037
+ throw new Error(errorMessage);
1011
1038
  }
1012
1039
  const stackTraceLines = sanitizeStackTrace(data.stack);
1013
1040
  if (stackTraceLines.length < 2) {
1014
- throw unresolvedImportLocationError;
1041
+ throw new Error(errorMessage);
1015
1042
  }
1016
1043
  const stackTraceImportLine = stackTraceLines[1]; // the first entry is the file where the error was initialized (our code). The second entry is where the customer called our code which is what we are interested in
1017
1044
  // if entry is relative, compute with respect to the caller directory
@@ -1022,7 +1049,7 @@ const handleCustom = (handlers, opType, typeName) => {
1022
1049
  const handlerData = (0, Handler_1.getHandlerData)(handler);
1023
1050
  return {
1024
1051
  dataSource: normalizeDataSourceName(handlerData.dataSource),
1025
- entry: resolveCustomHandlerEntryPath(handlerData),
1052
+ entry: resolveEntryPath(handlerData, 'Could not determine import path to construct absolute code path for custom handler. Consider using an absolute path instead.'),
1026
1053
  };
1027
1054
  });
1028
1055
  const jsFn = {
@@ -1040,8 +1067,14 @@ function transformCustomOperations(typeDef, typeName, authRules, databaseType, g
1040
1067
  jsFunctionForField = handleCustom(handlers, opType, typeName);
1041
1068
  }
1042
1069
  const isCustom = Boolean(jsFunctionForField);
1043
- const { gqlField, models, lambdaFunctionDefinition } = customOperationToGql(typeName, typeDef, authRules, isCustom, databaseType, getRefType);
1044
- return { gqlField, models, jsFunctionForField, lambdaFunctionDefinition };
1070
+ const { gqlField, models, lambdaFunctionDefinition, customSqlDataSourceStrategy, } = customOperationToGql(typeName, typeDef, authRules, isCustom, databaseType, getRefType);
1071
+ return {
1072
+ gqlField,
1073
+ models,
1074
+ jsFunctionForField,
1075
+ lambdaFunctionDefinition,
1076
+ customSqlDataSourceStrategy,
1077
+ };
1045
1078
  }
1046
1079
  function generateCustomOperationTypes({ queries, mutations, subscriptions, }) {
1047
1080
  const types = [];
@@ -1062,13 +1095,14 @@ function generateCustomOperationTypes({ queries, mutations, subscriptions, }) {
1062
1095
  * @returns DerivedApiDefinition that conforms to IAmplifyGraphqlDefinition
1063
1096
  */
1064
1097
  function processSchema(arg) {
1065
- const { schema, jsFunctions, functionSchemaAccess, lambdaFunctions } = schemaPreprocessor(arg.schema);
1098
+ const { schema, jsFunctions, functionSchemaAccess, lambdaFunctions, customSqlDataSourceStrategies, } = schemaPreprocessor(arg.schema);
1066
1099
  return {
1067
1100
  schema,
1068
1101
  functionSlots: [],
1069
1102
  jsFunctions,
1070
1103
  functionSchemaAccess,
1071
1104
  lambdaFunctions,
1105
+ customSqlDataSourceStrategies,
1072
1106
  };
1073
1107
  }
1074
1108
  exports.processSchema = processSchema;