@aws-amplify/data-schema 1.9.2 → 1.10.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 (65) hide show
  1. package/dist/cjs/{ModelRelationalField.js → ModelRelationshipField.js} +8 -5
  2. package/dist/cjs/ModelRelationshipField.js.map +1 -0
  3. package/dist/cjs/SchemaProcessor.js +31 -24
  4. package/dist/cjs/SchemaProcessor.js.map +1 -1
  5. package/dist/cjs/a.js +4 -4
  6. package/dist/cjs/a.js.map +1 -1
  7. package/dist/cjs/ai/ConversationSchemaTypes.js +7 -5
  8. package/dist/cjs/ai/ConversationSchemaTypes.js.map +1 -1
  9. package/dist/cjs/runtime/internals/APIClient.js +8 -8
  10. package/dist/cjs/runtime/internals/APIClient.js.map +1 -1
  11. package/dist/esm/Authorization.d.ts +7 -0
  12. package/dist/esm/ClientSchema/Core/ClientModel.d.ts +3 -3
  13. package/dist/esm/ClientSchema/utilities/ResolveField.d.ts +5 -5
  14. package/dist/esm/CustomOperation.d.ts +7 -0
  15. package/dist/esm/CustomType.d.ts +5 -0
  16. package/dist/esm/EnumType.d.ts +5 -0
  17. package/dist/esm/Handler.d.ts +1 -1
  18. package/dist/esm/MappedTypes/ModelMetadata.d.ts +5 -5
  19. package/dist/esm/MappedTypes/ResolveFieldProperties.d.ts +9 -9
  20. package/dist/esm/MappedTypes/ResolveSchema.d.ts +3 -3
  21. package/dist/esm/ModelField.d.ts +5 -0
  22. package/dist/esm/{ModelRelationalField.d.ts → ModelRelationshipField.d.ts} +31 -14
  23. package/dist/esm/{ModelRelationalField.mjs → ModelRelationshipField.mjs} +8 -5
  24. package/dist/esm/ModelRelationshipField.mjs.map +1 -0
  25. package/dist/esm/ModelSchema.d.ts +9 -3
  26. package/dist/esm/ModelType.d.ts +18 -5
  27. package/dist/esm/RefType.d.ts +6 -0
  28. package/dist/esm/SchemaProcessor.mjs +23 -16
  29. package/dist/esm/SchemaProcessor.mjs.map +1 -1
  30. package/dist/esm/a.d.ts +1 -1
  31. package/dist/esm/a.mjs +1 -1
  32. package/dist/esm/a.mjs.map +1 -1
  33. package/dist/esm/ai/ConversationSchemaTypes.mjs +7 -5
  34. package/dist/esm/ai/ConversationSchemaTypes.mjs.map +1 -1
  35. package/dist/esm/ai/ConversationType.d.ts +6 -2
  36. package/dist/esm/index.d.ts +9 -0
  37. package/dist/esm/runtime/client/index.d.ts +3 -3
  38. package/dist/esm/runtime/internals/APIClient.mjs +8 -8
  39. package/dist/esm/runtime/internals/APIClient.mjs.map +1 -1
  40. package/dist/meta/cjs.tsbuildinfo +1 -1
  41. package/package.json +1 -1
  42. package/src/Authorization.ts +7 -0
  43. package/src/ClientSchema/Core/ClientModel.ts +3 -3
  44. package/src/ClientSchema/utilities/ResolveField.ts +11 -12
  45. package/src/CustomOperation.ts +7 -0
  46. package/src/CustomType.ts +8 -3
  47. package/src/EnumType.ts +5 -0
  48. package/src/Handler.ts +1 -1
  49. package/src/MappedTypes/ModelMetadata.ts +7 -7
  50. package/src/MappedTypes/ResolveFieldProperties.ts +13 -13
  51. package/src/MappedTypes/ResolveSchema.ts +5 -5
  52. package/src/ModelField.ts +5 -3
  53. package/src/{ModelRelationalField.ts → ModelRelationshipField.ts} +55 -35
  54. package/src/ModelSchema.ts +16 -6
  55. package/src/ModelType.ts +21 -8
  56. package/src/RefType.ts +6 -0
  57. package/src/SchemaProcessor.ts +45 -25
  58. package/src/a.ts +1 -1
  59. package/src/ai/ConversationSchemaTypes.ts +8 -6
  60. package/src/ai/ConversationType.ts +11 -2
  61. package/src/index.ts +14 -0
  62. package/src/runtime/client/index.ts +7 -3
  63. package/src/runtime/internals/APIClient.ts +8 -8
  64. package/dist/cjs/ModelRelationalField.js.map +0 -1
  65. package/dist/esm/ModelRelationalField.mjs.map +0 -1
@@ -7,6 +7,9 @@ const Authorization_1 = require("./Authorization");
7
7
  * Used to "attach" auth types to ModelField without exposing them on the builder.
8
8
  */
9
9
  exports.__auth = Symbol('__auth');
10
+ /**
11
+ * Model relationship types
12
+ */
10
13
  var ModelRelationshipTypes;
11
14
  (function (ModelRelationshipTypes) {
12
15
  ModelRelationshipTypes["hasOne"] = "hasOne";
@@ -18,7 +21,7 @@ const relationModifierMap = {
18
21
  hasMany: ['valueRequired', 'authorization'],
19
22
  hasOne: ['required', 'authorization'],
20
23
  };
21
- function _modelRelationalField(type, relatedModel, references) {
24
+ function _modelRelationshipField(type, relatedModel, references) {
22
25
  const data = {
23
26
  relatedModel,
24
27
  type,
@@ -80,7 +83,7 @@ function _modelRelationalField(type, relatedModel, references) {
80
83
  * @returns a one-to-one relationship definition
81
84
  */
82
85
  function hasOne(relatedModel, references) {
83
- return _modelRelationalField(ModelRelationshipTypes.hasOne, relatedModel, Array.isArray(references) ? references : [references]);
86
+ return _modelRelationshipField(ModelRelationshipTypes.hasOne, relatedModel, Array.isArray(references) ? references : [references]);
84
87
  }
85
88
  exports.hasOne = hasOne;
86
89
  /**
@@ -110,7 +113,7 @@ exports.hasOne = hasOne;
110
113
  * @returns a one-to-many relationship definition
111
114
  */
112
115
  function hasMany(relatedModel, references) {
113
- return _modelRelationalField(ModelRelationshipTypes.hasMany, relatedModel, Array.isArray(references) ? references : [references]);
116
+ return _modelRelationshipField(ModelRelationshipTypes.hasMany, relatedModel, Array.isArray(references) ? references : [references]);
114
117
  }
115
118
  exports.hasMany = hasMany;
116
119
  /**
@@ -161,7 +164,7 @@ exports.hasMany = hasMany;
161
164
  * @returns a belong-to relationship definition
162
165
  */
163
166
  function belongsTo(relatedModel, references) {
164
- return _modelRelationalField(ModelRelationshipTypes.belongsTo, relatedModel, Array.isArray(references) ? references : [references]);
167
+ return _modelRelationshipField(ModelRelationshipTypes.belongsTo, relatedModel, Array.isArray(references) ? references : [references]);
165
168
  }
166
169
  exports.belongsTo = belongsTo;
167
- //# sourceMappingURL=ModelRelationalField.js.map
170
+ //# sourceMappingURL=ModelRelationshipField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelRelationshipField.js","sources":["../../src/ModelRelationshipField.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.belongsTo = exports.hasMany = exports.hasOne = exports.ModelRelationshipTypes = exports.__auth = void 0;\nconst Authorization_1 = require(\"./Authorization\");\n/**\n * Used to \"attach\" auth types to ModelField without exposing them on the builder.\n */\nexports.__auth = Symbol('__auth');\nconst brandName = 'modelRelationshipField';\n/**\n * Model relationship types\n */\nvar ModelRelationshipTypes;\n(function (ModelRelationshipTypes) {\n ModelRelationshipTypes[\"hasOne\"] = \"hasOne\";\n ModelRelationshipTypes[\"hasMany\"] = \"hasMany\";\n ModelRelationshipTypes[\"belongsTo\"] = \"belongsTo\";\n})(ModelRelationshipTypes || (exports.ModelRelationshipTypes = ModelRelationshipTypes = {}));\nconst relationshipModifiers = [\n 'required',\n 'valueRequired',\n 'authorization',\n];\nconst relationModifierMap = {\n belongsTo: ['authorization'],\n hasMany: ['valueRequired', 'authorization'],\n hasOne: ['required', 'authorization'],\n};\nfunction _modelRelationshipField(type, relatedModel, references) {\n const data = {\n relatedModel,\n type,\n fieldType: 'model',\n array: false,\n valueRequired: false,\n arrayRequired: false,\n references,\n authorization: [],\n };\n data.array = type === 'hasMany';\n const relationshipBuilderFunctions = {\n required() {\n data.arrayRequired = true;\n return this;\n },\n valueRequired() {\n data.valueRequired = true;\n return this;\n },\n authorization(callback) {\n const rules = callback(Authorization_1.allow);\n data.authorization = Array.isArray(rules) ? rules : [rules];\n return this;\n },\n };\n const builder = Object.fromEntries(relationModifierMap[type].map((key) => [\n key,\n relationshipBuilderFunctions[key],\n ]));\n return {\n ...builder,\n data,\n };\n}\n/**\n * Create one-to-one relationship between two models using the `hasOne(\"MODEL_NAME\", \"REFERENCE_FIELD(s)\")` method.\n * A hasOne relationship always uses a reference to the related model's identifier. Typically this is the `id` field\n * unless overwritten with the `identifier()` method.\n * @example\n * const schema = a.schema({\n * Cart: a.model({\n * items: a.string().required().array(),\n * // 1. Create reference field\n * customerId: a.id(),\n * // 2. Create relationship field with the reference field\n * customer: a.belongsTo('Customer', 'customerId'),\n * }),\n * Customer: a.model({\n * name: a.string(),\n * // 3. Create relationship field with the reference field\n * // from the Cart model\n * activeCart: a.hasOne('Cart', 'customerId')\n * }),\n * });\n * @see {@link https://docs.amplify.aws/react/build-a-backend/data/data-modeling/relationships/#model-a-one-to-one-relationship}\n * @param relatedModel the name of the related model\n * @param references the field(s) that should be used to reference the related model\n * @returns a one-to-one relationship definition\n */\nfunction hasOne(relatedModel, references) {\n return _modelRelationshipField(ModelRelationshipTypes.hasOne, relatedModel, Array.isArray(references) ? references : [references]);\n}\nexports.hasOne = hasOne;\n/**\n * Create a one-directional one-to-many relationship between two models using the `hasMany(\"MODEL_NAME\", \"REFERENCE_FIELD(s)\")` method.\n * @example\n * const schema = a.schema({\n * Member: a.model({\n * name: a.string().required(),\n * // 1. Create a reference field\n * teamId: a.id(),\n * // 2. Create a belongsTo relationship with the reference field\n * team: a.belongsTo('Team', 'teamId'),\n * })\n * .authorization(allow => [allow.publicApiKey()]),\n *\n * Team: a.model({\n * mantra: a.string().required(),\n * // 3. Create a hasMany relationship with the reference field\n * // from the `Member`s model.\n * members: a.hasMany('Member', 'teamId'),\n * })\n * .authorization(allow => [allow.publicApiKey()]),\n * });\n * @see {@link https://docs.amplify.aws/react/build-a-backend/data/data-modeling/relationships/#model-one-to-many-relationships}\n * @param relatedModel the name of the related model\n * @param references the field(s) that should be used to reference the related model\n * @returns a one-to-many relationship definition\n */\nfunction hasMany(relatedModel, references) {\n return _modelRelationshipField(ModelRelationshipTypes.hasMany, relatedModel, Array.isArray(references) ? references : [references]);\n}\nexports.hasMany = hasMany;\n/**\n * Use `belongsTo()` to create a field to query the related `hasOne()` or `hasMany()` relationship.\n * The belongsTo() method requires that a hasOne() or hasMany() relationship already exists from\n * parent to the related model.\n *\n * @example\n * // one-to-many relationship\n * const schema = a.schema({\n * Member: a.model({\n * name: a.string().required(),\n * // 1. Create a reference field\n * teamId: a.id(),\n * // 2. Create a belongsTo relationship with the reference field\n * team: a.belongsTo('Team', 'teamId'),\n * })\n * .authorization(allow => [allow.publicApiKey()]),\n *\n * Team: a.model({\n * mantra: a.string().required(),\n * // 3. Create a hasMany relationship with the reference field\n * // from the `Member`s model.\n * members: a.hasMany('Member', 'teamId'),\n * })\n * .authorization(allow => [allow.publicApiKey()]),\n * });\n * @example\n * // one-to-one relationship\n * const schema = a.schema({\n * Cart: a.model({\n * items: a.string().required().array(),\n * // 1. Create reference field\n * customerId: a.id(),\n * // 2. Create relationship field with the reference field\n * customer: a.belongsTo('Customer', 'customerId'),\n * }),\n * Customer: a.model({\n * name: a.string(),\n * // 3. Create relationship field with the reference field\n * // from the Cart model\n * activeCart: a.hasOne('Cart', 'customerId')\n * }),\n * });\n * @see {@link https://docs.amplify.aws/react/build-a-backend/data/data-modeling/relationships/}\n * @param relatedModel name of the related `.hasOne()` or `.hasMany()` model\n * @param references the field(s) that should be used to reference the related model\n * @returns a belong-to relationship definition\n */\nfunction belongsTo(relatedModel, references) {\n return _modelRelationshipField(ModelRelationshipTypes.belongsTo, relatedModel, Array.isArray(references) ? references : [references]);\n}\nexports.belongsTo = belongsTo;\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.processSchema = void 0;
5
5
  const tslib_1 = require("tslib");
6
6
  const ModelField_1 = require("./ModelField");
7
- const ModelRelationalField_1 = require("./ModelRelationalField");
7
+ const ModelRelationshipField_1 = require("./ModelRelationshipField");
8
8
  const Authorization_1 = require("./Authorization");
9
9
  const CustomOperation_1 = require("./CustomOperation");
10
10
  const util_1 = require("./util");
@@ -163,7 +163,9 @@ function transformFunctionHandler(handlers, functionFieldName) {
163
163
  else if (typeof handlerData.handler.getInstance === 'function') {
164
164
  const fnName = `Fn${capitalize(functionFieldName)}${idx === 0 ? '' : `${idx + 1}`}`;
165
165
  lambdaFunctionDefinition[fnName] = handlerData.handler;
166
- const invocationTypeArg = handlerData.invocationType === 'Event' ? ', invocationType: Event)' : ')';
166
+ const invocationTypeArg = handlerData.invocationType === 'Event'
167
+ ? ', invocationType: Event)'
168
+ : ')';
167
169
  gqlHandlerContent += `@function(name: "${fnName}"${invocationTypeArg} `;
168
170
  }
169
171
  else {
@@ -842,11 +844,12 @@ const schemaPreprocessor = (schema) => {
842
844
  // - it only happens once per schema
843
845
  // - downstream validation based on `getRefTypeForSchema` finds the EventInvocationResponse type
844
846
  const containsAsyncLambdaCustomOperation = Object.entries(schema.data.types).find(([_, typeDef]) => {
845
- return isCustomOperation(typeDef)
846
- && finalHandlerIsAsyncFunctionHandler(typeDef.data.handlers);
847
+ return (isCustomOperation(typeDef) &&
848
+ finalHandlerIsAsyncFunctionHandler(typeDef.data.handlers));
847
849
  });
848
850
  if (containsAsyncLambdaCustomOperation) {
849
- schema.data.types['EventInvocationResponse'] = eventInvocationResponseCustomType;
851
+ schema.data.types['EventInvocationResponse'] =
852
+ eventInvocationResponseCustomType;
850
853
  }
851
854
  const topLevelTypes = sortTopLevelTypes(Object.entries(schema.data.types));
852
855
  const { schemaAuth, functionSchemaAccess } = extractFunctionSchemaAccess(schema.data.authorization);
@@ -1024,7 +1027,9 @@ function validateCustomOperations(typeDef, typeName, authRules, getRefType) {
1024
1027
  (opType === 'Query' || opType === 'Mutation' || opType === 'Generation')) {
1025
1028
  // TODO: There should be a more elegant and readable way to handle this check.
1026
1029
  // Maybe it's not even necessary anymore since we're the setting returnType in the handler() method.
1027
- if (!handlers || handlers.length === 0 || handlers[handlers.length - 1][Brand_1.brandSymbol] !== 'asyncFunctionHandler') {
1030
+ if (!handlers ||
1031
+ handlers.length === 0 ||
1032
+ handlers[handlers.length - 1][Brand_1.brandSymbol] !== 'asyncFunctionHandler') {
1028
1033
  const typeDescription = opType === 'Generation' ? 'Generation Route' : `Custom ${opType}`;
1029
1034
  throw new Error(`Invalid ${typeDescription} definition. A ${typeDescription} must include a return type. ${typeName} has no return type specified.`);
1030
1035
  }
@@ -1082,10 +1087,12 @@ const isCustomHandler = (handler) => {
1082
1087
  return Array.isArray(handler) && (0, util_1.getBrand)(handler[0]) === 'customHandler';
1083
1088
  };
1084
1089
  const isFunctionHandler = (handler) => {
1085
- return Array.isArray(handler) && ['functionHandler', 'asyncFunctionHandler'].includes((0, util_1.getBrand)(handler[0]));
1090
+ return (Array.isArray(handler) &&
1091
+ ['functionHandler', 'asyncFunctionHandler'].includes((0, util_1.getBrand)(handler[0])));
1086
1092
  };
1087
1093
  const finalHandlerIsAsyncFunctionHandler = (handler) => {
1088
- return Array.isArray(handler) && (0, util_1.getBrand)(handler[handler.length - 1]) === 'asyncFunctionHandler';
1094
+ return (Array.isArray(handler) &&
1095
+ (0, util_1.getBrand)(handler[handler.length - 1]) === 'asyncFunctionHandler');
1089
1096
  };
1090
1097
  const normalizeDataSourceName = (dataSource) => {
1091
1098
  // default data source
@@ -1148,11 +1155,11 @@ const eventInvocationResponseCustomType = {
1148
1155
  required: true,
1149
1156
  array: false,
1150
1157
  arrayRequired: false,
1151
- }
1152
- }
1158
+ },
1159
+ },
1153
1160
  },
1154
- type: 'customType'
1155
- }
1161
+ type: 'customType',
1162
+ },
1156
1163
  };
1157
1164
  function transformCustomOperations(typeDef, typeName, authRules, databaseType, getRefType) {
1158
1165
  const { typeName: opType, handlers } = typeDef.data;
@@ -1244,8 +1251,8 @@ function validateRelationships(typeName, record, getInternalModel) {
1244
1251
  // Create a structure representing the relationship for validation.
1245
1252
  const relationship = getModelRelationship(typeName, { name: name, def: field.data }, getInternalModel);
1246
1253
  // Validate that the references defined in the relationship follow the
1247
- // relational definition rules.
1248
- validateRelationalReferences(relationship);
1254
+ // relationship definition rules.
1255
+ validateRelationshipReferences(relationship);
1249
1256
  }
1250
1257
  }
1251
1258
  /**
@@ -1271,7 +1278,7 @@ function describeConnectFieldRelationship(sourceField, sourceModelName) {
1271
1278
  * Validates that the types of child model's reference fields match the types of the parent model's identifier fields.
1272
1279
  * @param relationship The {@link ModelRelationship} to validate.
1273
1280
  */
1274
- function validateRelationalReferences(relationship) {
1281
+ function validateRelationshipReferences(relationship) {
1275
1282
  const { parent, parentConnectionField, child, childConnectionField, references, } = relationship;
1276
1283
  const parentIdentifiers = getIndentifierTypes(parent);
1277
1284
  const childReferenceTypes = [];
@@ -1326,11 +1333,11 @@ function validateRelationalReferences(relationship) {
1326
1333
  */
1327
1334
  function associatedRelationshipTypes(relationshipType) {
1328
1335
  switch (relationshipType) {
1329
- case ModelRelationalField_1.ModelRelationshipTypes.hasOne:
1330
- case ModelRelationalField_1.ModelRelationshipTypes.hasMany:
1331
- return [ModelRelationalField_1.ModelRelationshipTypes.belongsTo];
1332
- case ModelRelationalField_1.ModelRelationshipTypes.belongsTo:
1333
- return [ModelRelationalField_1.ModelRelationshipTypes.hasOne, ModelRelationalField_1.ModelRelationshipTypes.hasMany];
1336
+ case ModelRelationshipField_1.ModelRelationshipTypes.hasOne:
1337
+ case ModelRelationshipField_1.ModelRelationshipTypes.hasMany:
1338
+ return [ModelRelationshipField_1.ModelRelationshipTypes.belongsTo];
1339
+ case ModelRelationshipField_1.ModelRelationshipTypes.belongsTo:
1340
+ return [ModelRelationshipField_1.ModelRelationshipTypes.hasOne, ModelRelationshipField_1.ModelRelationshipTypes.hasMany];
1334
1341
  default:
1335
1342
  return []; // TODO: Remove this case on types are updated.
1336
1343
  }
@@ -1378,7 +1385,7 @@ function getAssociatedConnectionField(sourceModelName, sourceConnectionField, as
1378
1385
  }
1379
1386
  // In order to find that associated connection field, we need to do some validation that we'll depend on further downstream.
1380
1387
  // 1. Field type matches the source model's type.
1381
- // 2. A valid counterpart relational modifier is defined on the field. See `associatedRelationshipTypes` for more information.
1388
+ // 2. A valid counterpart relationship modifier is defined on the field. See `associatedRelationshipTypes` for more information.
1382
1389
  // 3. The reference arguments provided to the field match (element count + string comparison) references passed to the source connection field.
1383
1390
  return (connectionField.data.relatedModel === sourceModelName &&
1384
1391
  associatedRelationshipOptions.includes(connectionField.data.type) &&
@@ -1427,8 +1434,8 @@ function getModelRelationship(sourceModelName, sourceModelConnectionField, getIn
1427
1434
  const associatedModel = getInternalModel(sourceModelConnectionField.def.relatedModel, sourceModelName);
1428
1435
  const relatedModelConnectionField = getAssociatedConnectionField(sourceModelName, sourceModelConnectionField, associatedModel);
1429
1436
  switch (sourceModelConnectionField.def.type) {
1430
- case ModelRelationalField_1.ModelRelationshipTypes.hasOne:
1431
- case ModelRelationalField_1.ModelRelationshipTypes.hasMany:
1437
+ case ModelRelationshipField_1.ModelRelationshipTypes.hasOne:
1438
+ case ModelRelationshipField_1.ModelRelationshipTypes.hasMany:
1432
1439
  return {
1433
1440
  parent: sourceModel,
1434
1441
  parentConnectionField: sourceModelConnectionField,
@@ -1436,7 +1443,7 @@ function getModelRelationship(sourceModelName, sourceModelConnectionField, getIn
1436
1443
  childConnectionField: relatedModelConnectionField,
1437
1444
  references: sourceModelConnectionField.def.references,
1438
1445
  };
1439
- case ModelRelationalField_1.ModelRelationshipTypes.belongsTo:
1446
+ case ModelRelationshipField_1.ModelRelationshipTypes.belongsTo:
1440
1447
  return {
1441
1448
  parent: associatedModel,
1442
1449
  parentConnectionField: relatedModelConnectionField,