@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.
- package/lib-esm/src/ClientSchema.d.ts +1 -1
- package/lib-esm/src/ClientSchema.d.ts.map +1 -1
- package/lib-esm/src/CombineSchema.d.ts +2 -2
- package/lib-esm/src/CombineSchema.d.ts.map +1 -1
- package/lib-esm/src/CombineSchema.js +2 -34
- package/lib-esm/src/Handler.d.ts +6 -2
- package/lib-esm/src/Handler.d.ts.map +1 -1
- package/lib-esm/src/Handler.js +7 -2
- package/lib-esm/src/ModelSchema.d.ts +22 -45
- package/lib-esm/src/ModelSchema.d.ts.map +1 -1
- package/lib-esm/src/ModelSchema.js +19 -6
- package/lib-esm/src/ModelType.d.ts +7 -6
- package/lib-esm/src/ModelType.d.ts.map +1 -1
- package/lib-esm/src/SchemaProcessor.d.ts +1 -1
- package/lib-esm/src/SchemaProcessor.d.ts.map +1 -1
- package/lib-esm/src/SchemaProcessor.js +48 -14
- package/lib-esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -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 ?
|
|
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 {
|
|
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
|
-
}
|
|
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":"
|
|
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) {
|
package/lib-esm/src/Handler.d.ts
CHANGED
|
@@ -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]:
|
|
19
|
+
[dataSymbol]: SqlReferenceHandlerData;
|
|
16
20
|
} & Brand<typeof sqlReferenceBrand>;
|
|
17
|
-
declare function sqlReference(
|
|
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;
|
|
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"}
|
package/lib-esm/src/Handler.js
CHANGED
|
@@ -18,8 +18,13 @@ function inlineSql(sql) {
|
|
|
18
18
|
//#endregion
|
|
19
19
|
//#region handler.sqlReference
|
|
20
20
|
const sqlReferenceBrand = 'sqlReference';
|
|
21
|
-
function sqlReference(
|
|
22
|
-
|
|
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:
|
|
20
|
+
configuration: SchemaConfiguration<any, any>;
|
|
51
21
|
};
|
|
52
22
|
export type RDSModelSchemaParamShape = ModelSchemaParamShape & {
|
|
53
|
-
|
|
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:
|
|
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 = '
|
|
74
|
-
export type RDSModelSchema<T extends RDSModelSchemaParamShape, UsedMethods extends RDSModelSchemaFunctions = never
|
|
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'
|
|
80
|
-
|
|
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:
|
|
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,
|
|
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
|
|
54
|
-
addRelationships
|
|
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
|
|
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,
|
|
1
|
+
{"version":3,"file":"ModelType.d.ts","sourceRoot":"","sources":["../../src/ModelType.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaProcessor.d.ts","sourceRoot":"","sources":["../../src/SchemaProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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 (
|
|
251
|
-
|
|
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(
|
|
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 {
|
|
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
|
|
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
|
|
1037
|
+
throw new Error(errorMessage);
|
|
1011
1038
|
}
|
|
1012
1039
|
const stackTraceLines = sanitizeStackTrace(data.stack);
|
|
1013
1040
|
if (stackTraceLines.length < 2) {
|
|
1014
|
-
throw
|
|
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:
|
|
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 {
|
|
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;
|