@aws-amplify/data-schema 1.8.0 → 1.9.0

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 (43) hide show
  1. package/dist/cjs/ModelField.js +6 -2
  2. package/dist/cjs/ModelField.js.map +1 -1
  3. package/dist/cjs/SchemaProcessor.js +4 -1
  4. package/dist/cjs/SchemaProcessor.js.map +1 -1
  5. package/dist/cjs/runtime/internals/ai/convertItemToConversation.js +5 -1
  6. package/dist/cjs/runtime/internals/ai/convertItemToConversation.js.map +1 -1
  7. package/dist/cjs/runtime/internals/ai/createCreateConversationFunction.js +1 -1
  8. package/dist/cjs/runtime/internals/ai/createCreateConversationFunction.js.map +1 -1
  9. package/dist/cjs/runtime/internals/ai/createDeleteConversationFunction.js +1 -1
  10. package/dist/cjs/runtime/internals/ai/createDeleteConversationFunction.js.map +1 -1
  11. package/dist/cjs/runtime/internals/ai/createGetConversationFunction.js +1 -1
  12. package/dist/cjs/runtime/internals/ai/createGetConversationFunction.js.map +1 -1
  13. package/dist/cjs/runtime/internals/ai/createListConversationsFunction.js +1 -1
  14. package/dist/cjs/runtime/internals/ai/createListConversationsFunction.js.map +1 -1
  15. package/dist/cjs/runtime/internals/ai/createSendMessageFunction.js.map +1 -1
  16. package/dist/esm/ModelField.d.ts +6 -2
  17. package/dist/esm/ModelField.mjs +6 -2
  18. package/dist/esm/ModelField.mjs.map +1 -1
  19. package/dist/esm/SchemaProcessor.mjs +5 -2
  20. package/dist/esm/SchemaProcessor.mjs.map +1 -1
  21. package/dist/esm/ai/ConversationType.d.ts +6 -1
  22. package/dist/esm/runtime/internals/ai/convertItemToConversation.d.ts +1 -1
  23. package/dist/esm/runtime/internals/ai/convertItemToConversation.mjs +5 -1
  24. package/dist/esm/runtime/internals/ai/convertItemToConversation.mjs.map +1 -1
  25. package/dist/esm/runtime/internals/ai/createCreateConversationFunction.mjs +1 -1
  26. package/dist/esm/runtime/internals/ai/createCreateConversationFunction.mjs.map +1 -1
  27. package/dist/esm/runtime/internals/ai/createDeleteConversationFunction.mjs +1 -1
  28. package/dist/esm/runtime/internals/ai/createDeleteConversationFunction.mjs.map +1 -1
  29. package/dist/esm/runtime/internals/ai/createGetConversationFunction.mjs +1 -1
  30. package/dist/esm/runtime/internals/ai/createGetConversationFunction.mjs.map +1 -1
  31. package/dist/esm/runtime/internals/ai/createListConversationsFunction.mjs +1 -1
  32. package/dist/esm/runtime/internals/ai/createListConversationsFunction.mjs.map +1 -1
  33. package/dist/esm/runtime/internals/ai/createSendMessageFunction.mjs.map +1 -1
  34. package/dist/meta/cjs.tsbuildinfo +1 -1
  35. package/package.json +2 -2
  36. package/src/ModelField.ts +8 -3
  37. package/src/SchemaProcessor.ts +4 -1
  38. package/src/ai/ConversationType.ts +8 -1
  39. package/src/runtime/internals/ai/convertItemToConversation.ts +8 -0
  40. package/src/runtime/internals/ai/createCreateConversationFunction.ts +4 -0
  41. package/src/runtime/internals/ai/createDeleteConversationFunction.ts +4 -0
  42. package/src/runtime/internals/ai/createGetConversationFunction.ts +4 -0
  43. package/src/runtime/internals/ai/createListConversationsFunction.ts +4 -0
@@ -1,13 +1,17 @@
1
1
  'use strict';
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ipAddress = exports.url = exports.phone = exports.json = exports.email = exports.timestamp = exports.datetime = exports.time = exports.date = exports.boolean = exports.float = exports.integer = exports.string = exports.id = exports.ModelFieldDataType = exports.ModelFieldType = exports.__auth = void 0;
4
+ exports.ipAddress = exports.url = exports.phone = exports.json = exports.email = exports.timestamp = exports.datetime = exports.time = exports.date = exports.boolean = exports.float = exports.integer = exports.string = exports.id = exports.ModelFieldDataType = exports.ModelFieldType = exports.__generated = exports.__auth = void 0;
5
5
  const util_1 = require("./util");
6
6
  const Authorization_1 = require("./Authorization");
7
7
  /**
8
8
  * Used to "attach" auth types to ModelField without exposing them on the builder.
9
9
  */
10
10
  exports.__auth = Symbol('__auth');
11
+ /**
12
+ * Used by `.default()` to represent a generated field (SQL).
13
+ */
14
+ exports.__generated = Symbol('__generated');
11
15
  const brandName = 'modelField';
12
16
  var ModelFieldType;
13
17
  (function (ModelFieldType) {
@@ -75,7 +79,7 @@ function _field(fieldType) {
75
79
  return this;
76
80
  },
77
81
  default(val) {
78
- data.default = val;
82
+ data.default = typeof val === 'undefined' ? exports.__generated : val;
79
83
  _meta.lastInvokedMethod = 'default';
80
84
  return this;
81
85
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ModelField.js","sources":["../../src/ModelField.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ipAddress = exports.url = exports.phone = exports.json = exports.email = exports.timestamp = exports.datetime = exports.time = exports.date = exports.boolean = exports.float = exports.integer = exports.string = exports.id = exports.ModelFieldDataType = exports.ModelFieldType = exports.__auth = void 0;\nconst util_1 = require(\"./util\");\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 = 'modelField';\nvar ModelFieldType;\n(function (ModelFieldType) {\n ModelFieldType[\"Id\"] = \"ID\";\n ModelFieldType[\"String\"] = \"String\";\n ModelFieldType[\"Integer\"] = \"Int\";\n ModelFieldType[\"Float\"] = \"Float\";\n ModelFieldType[\"Boolean\"] = \"Boolean\";\n ModelFieldType[\"Date\"] = \"AWSDate\";\n ModelFieldType[\"Time\"] = \"AWSTime\";\n ModelFieldType[\"DateTime\"] = \"AWSDateTime\";\n ModelFieldType[\"Timestamp\"] = \"AWSTimestamp\";\n ModelFieldType[\"Email\"] = \"AWSEmail\";\n ModelFieldType[\"JSON\"] = \"AWSJSON\";\n ModelFieldType[\"Phone\"] = \"AWSPhone\";\n ModelFieldType[\"Url\"] = \"AWSURL\";\n ModelFieldType[\"IPAddress\"] = \"AWSIPAddress\";\n})(ModelFieldType || (exports.ModelFieldType = ModelFieldType = {}));\nvar ModelFieldDataType;\n(function (ModelFieldDataType) {\n ModelFieldDataType[\"String\"] = \"string\";\n ModelFieldDataType[\"Number\"] = \"number\";\n ModelFieldDataType[\"Boolean\"] = \"boolean\";\n ModelFieldDataType[\"Date\"] = \"Date\";\n ModelFieldDataType[\"JSON\"] = \"any\";\n})(ModelFieldDataType || (exports.ModelFieldDataType = ModelFieldDataType = {}));\n/**\n * Model Field Implementation\n *\n * @typeParam T - holds the JS data type of the field; invoking the public methods changes this type accordingly\n * @example\n * string() => T = string | null\n * string().array() => T = Array<string | null> | null\n * string().array().required() => T = Array<string | null>\n * string().required().array().required() => T = Array<string>\n *\n * @param fieldType - stores the GraphQL data type of the field\n */\nfunction _field(fieldType) {\n const _meta = {\n lastInvokedMethod: null,\n };\n const data = {\n fieldType,\n required: false,\n array: false,\n arrayRequired: false,\n default: undefined,\n authorization: [],\n };\n const builder = {\n required() {\n if (_meta.lastInvokedMethod === 'array') {\n data.arrayRequired = true;\n }\n else {\n data.required = true;\n }\n _meta.lastInvokedMethod = 'required';\n return this;\n },\n array() {\n data.array = true;\n _meta.lastInvokedMethod = 'array';\n return this;\n },\n default(val) {\n data.default = val;\n _meta.lastInvokedMethod = 'default';\n return this;\n },\n authorization(callback) {\n const { resource: _, ...rest } = Authorization_1.allow;\n const rules = callback(rest);\n data.authorization = Array.isArray(rules) ? rules : [rules];\n _meta.lastInvokedMethod = 'authorization';\n return this;\n },\n ...(0, util_1.brand)(brandName),\n };\n // this double cast gives us a Subtyping Constraint i.e., hides `data` from the public API,\n // but makes it available internally when needed\n return { ...builder, data };\n}\n/**\n * A unique identifier scalar type. This scalar is serialized like a String but isn't meant to be human-readable.\n * If not specified on create operations, a ULID will be auto-generated service-side.\n * @returns ID field definition\n */\nfunction id() {\n return _field(ModelFieldType.Id);\n}\nexports.id = id;\n/**\n * A string scalar type that is represented server-side as a UTF-8 character sequence.\n * @returns string field definition\n */\nfunction string() {\n return _field(ModelFieldType.String);\n}\nexports.string = string;\n/**\n * An integer scalar type with a supported value range between -(2^31) and 2^31-1.\n * @returns integer field definition\n */\nfunction integer() {\n return _field(ModelFieldType.Integer);\n}\nexports.integer = integer;\n/**\n * A float scalar type following represented server-side as an IEEE 754 floating point value.\n * @returns float field definition\n */\nfunction float() {\n return _field(ModelFieldType.Float);\n}\nexports.float = float;\n/**\n * A boolean scalar type that can be either true or false.\n * @returns boolean field definition\n */\nfunction boolean() {\n return _field(ModelFieldType.Boolean);\n}\nexports.boolean = boolean;\n/**\n * A date scalar type that is represented server-side as an extended ISO 8601 date string in the format `YYYY-MM-DD`.\n * @returns date field definition\n */\nfunction date() {\n return _field(ModelFieldType.Date);\n}\nexports.date = date;\n/**\n * A time scalar type that is represented server-side as an extended ISO 8601 time string in the format `hh:mm:ss.sss`.\n * @returns time field definition\n */\nfunction time() {\n return _field(ModelFieldType.Time);\n}\nexports.time = time;\n/**\n * A date time scalar type that is represented server-side as an extended ISO 8601 date and time string in the format `YYYY-MM-DDThh:mm:ss.sssZ`.\n * @returns datetime field definition\n */\nfunction datetime() {\n return _field(ModelFieldType.DateTime);\n}\nexports.datetime = datetime;\n/**\n * A timestamp scalar type that is represented by an integer value of the number of seconds before or after `1970-01-01-T00:00Z`.\n * @returns timestamp field definition\n */\nfunction timestamp() {\n return _field(ModelFieldType.Timestamp);\n}\nexports.timestamp = timestamp;\n/**\n * An email scalar type that is represented server-side in the format `local-part@domain-part` as defined by RFC 822.\n * @returns email field definition\n */\nfunction email() {\n return _field(ModelFieldType.Email);\n}\nexports.email = email;\n/**\n * A JSON scalar type that is automatically parsed and loaded server-side as maps, lists, or scalar values\n * rather than as the literal input strings.\n * @returns JSON field definition\n */\nfunction json() {\n return _field(ModelFieldType.JSON);\n}\nexports.json = json;\n/**\n * A phone number scalar type thas is stored as a string server-side. Phone numbers can contain either spaces\n * or hyphens to separate digit groups. Phone numbers without a country code are assumed to be US/North American numbers adhering\n * to the North American Numbering Plan.\n * @returns phone number field definition\n */\nfunction phone() {\n return _field(ModelFieldType.Phone);\n}\nexports.phone = phone;\n/**\n * A URL scalar type as defined by RFC 1738. For example, https://www.amazon.com/dp/B000NZW3KC/ or mailto:example@example.com.\n * URLs must contain a schema (http, mailto) and can't contain two forward slashes (//) in the path part.\n * @returns URL field definition\n */\nfunction url() {\n return _field(ModelFieldType.Url);\n}\nexports.url = url;\n/**\n * A valid IPv4 or IPv6 address scalar type. IPv4 addresses are expected in quad-dotted notation (123.12.34.56). IPv6 addresses\n * are expected in non-bracketed, colon-separated format (1a2b:3c4b:🔢4567). You can include an optional CIDR suffix (123.45.67.89/16)\n * to indicate subnet mask.\n * @returns IP address field definition\n */\nfunction ipAddress() {\n return _field(ModelFieldType.IPAddress);\n}\nexports.ipAddress = ipAddress;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelField.js","sources":["../../src/ModelField.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ipAddress = exports.url = exports.phone = exports.json = exports.email = exports.timestamp = exports.datetime = exports.time = exports.date = exports.boolean = exports.float = exports.integer = exports.string = exports.id = exports.ModelFieldDataType = exports.ModelFieldType = exports.__generated = exports.__auth = void 0;\nconst util_1 = require(\"./util\");\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');\n/**\n * Used by `.default()` to represent a generated field (SQL).\n */\nexports.__generated = Symbol('__generated');\nconst brandName = 'modelField';\nvar ModelFieldType;\n(function (ModelFieldType) {\n ModelFieldType[\"Id\"] = \"ID\";\n ModelFieldType[\"String\"] = \"String\";\n ModelFieldType[\"Integer\"] = \"Int\";\n ModelFieldType[\"Float\"] = \"Float\";\n ModelFieldType[\"Boolean\"] = \"Boolean\";\n ModelFieldType[\"Date\"] = \"AWSDate\";\n ModelFieldType[\"Time\"] = \"AWSTime\";\n ModelFieldType[\"DateTime\"] = \"AWSDateTime\";\n ModelFieldType[\"Timestamp\"] = \"AWSTimestamp\";\n ModelFieldType[\"Email\"] = \"AWSEmail\";\n ModelFieldType[\"JSON\"] = \"AWSJSON\";\n ModelFieldType[\"Phone\"] = \"AWSPhone\";\n ModelFieldType[\"Url\"] = \"AWSURL\";\n ModelFieldType[\"IPAddress\"] = \"AWSIPAddress\";\n})(ModelFieldType || (exports.ModelFieldType = ModelFieldType = {}));\nvar ModelFieldDataType;\n(function (ModelFieldDataType) {\n ModelFieldDataType[\"String\"] = \"string\";\n ModelFieldDataType[\"Number\"] = \"number\";\n ModelFieldDataType[\"Boolean\"] = \"boolean\";\n ModelFieldDataType[\"Date\"] = \"Date\";\n ModelFieldDataType[\"JSON\"] = \"any\";\n})(ModelFieldDataType || (exports.ModelFieldDataType = ModelFieldDataType = {}));\n/**\n * Model Field Implementation\n *\n * @typeParam T - holds the JS data type of the field; invoking the public methods changes this type accordingly\n * @example\n * string() => T = string | null\n * string().array() => T = Array<string | null> | null\n * string().array().required() => T = Array<string | null>\n * string().required().array().required() => T = Array<string>\n *\n * @param fieldType - stores the GraphQL data type of the field\n */\nfunction _field(fieldType) {\n const _meta = {\n lastInvokedMethod: null,\n };\n const data = {\n fieldType,\n required: false,\n array: false,\n arrayRequired: false,\n default: undefined,\n authorization: [],\n };\n const builder = {\n required() {\n if (_meta.lastInvokedMethod === 'array') {\n data.arrayRequired = true;\n }\n else {\n data.required = true;\n }\n _meta.lastInvokedMethod = 'required';\n return this;\n },\n array() {\n data.array = true;\n _meta.lastInvokedMethod = 'array';\n return this;\n },\n default(val) {\n data.default = typeof val === 'undefined' ? exports.__generated : val;\n _meta.lastInvokedMethod = 'default';\n return this;\n },\n authorization(callback) {\n const { resource: _, ...rest } = Authorization_1.allow;\n const rules = callback(rest);\n data.authorization = Array.isArray(rules) ? rules : [rules];\n _meta.lastInvokedMethod = 'authorization';\n return this;\n },\n ...(0, util_1.brand)(brandName),\n };\n // this double cast gives us a Subtyping Constraint i.e., hides `data` from the public API,\n // but makes it available internally when needed\n return { ...builder, data };\n}\n/**\n * A unique identifier scalar type. This scalar is serialized like a String but isn't meant to be human-readable.\n * If not specified on create operations, a ULID will be auto-generated service-side.\n * @returns ID field definition\n */\nfunction id() {\n return _field(ModelFieldType.Id);\n}\nexports.id = id;\n/**\n * A string scalar type that is represented server-side as a UTF-8 character sequence.\n * @returns string field definition\n */\nfunction string() {\n return _field(ModelFieldType.String);\n}\nexports.string = string;\n/**\n * An integer scalar type with a supported value range between -(2^31) and 2^31-1.\n * @returns integer field definition\n */\nfunction integer() {\n return _field(ModelFieldType.Integer);\n}\nexports.integer = integer;\n/**\n * A float scalar type following represented server-side as an IEEE 754 floating point value.\n * @returns float field definition\n */\nfunction float() {\n return _field(ModelFieldType.Float);\n}\nexports.float = float;\n/**\n * A boolean scalar type that can be either true or false.\n * @returns boolean field definition\n */\nfunction boolean() {\n return _field(ModelFieldType.Boolean);\n}\nexports.boolean = boolean;\n/**\n * A date scalar type that is represented server-side as an extended ISO 8601 date string in the format `YYYY-MM-DD`.\n * @returns date field definition\n */\nfunction date() {\n return _field(ModelFieldType.Date);\n}\nexports.date = date;\n/**\n * A time scalar type that is represented server-side as an extended ISO 8601 time string in the format `hh:mm:ss.sss`.\n * @returns time field definition\n */\nfunction time() {\n return _field(ModelFieldType.Time);\n}\nexports.time = time;\n/**\n * A date time scalar type that is represented server-side as an extended ISO 8601 date and time string in the format `YYYY-MM-DDThh:mm:ss.sssZ`.\n * @returns datetime field definition\n */\nfunction datetime() {\n return _field(ModelFieldType.DateTime);\n}\nexports.datetime = datetime;\n/**\n * A timestamp scalar type that is represented by an integer value of the number of seconds before or after `1970-01-01-T00:00Z`.\n * @returns timestamp field definition\n */\nfunction timestamp() {\n return _field(ModelFieldType.Timestamp);\n}\nexports.timestamp = timestamp;\n/**\n * An email scalar type that is represented server-side in the format `local-part@domain-part` as defined by RFC 822.\n * @returns email field definition\n */\nfunction email() {\n return _field(ModelFieldType.Email);\n}\nexports.email = email;\n/**\n * A JSON scalar type that is automatically parsed and loaded server-side as maps, lists, or scalar values\n * rather than as the literal input strings.\n * @returns JSON field definition\n */\nfunction json() {\n return _field(ModelFieldType.JSON);\n}\nexports.json = json;\n/**\n * A phone number scalar type thas is stored as a string server-side. Phone numbers can contain either spaces\n * or hyphens to separate digit groups. Phone numbers without a country code are assumed to be US/North American numbers adhering\n * to the North American Numbering Plan.\n * @returns phone number field definition\n */\nfunction phone() {\n return _field(ModelFieldType.Phone);\n}\nexports.phone = phone;\n/**\n * A URL scalar type as defined by RFC 1738. For example, https://www.amazon.com/dp/B000NZW3KC/ or mailto:example@example.com.\n * URLs must contain a schema (http, mailto) and can't contain two forward slashes (//) in the path part.\n * @returns URL field definition\n */\nfunction url() {\n return _field(ModelFieldType.Url);\n}\nexports.url = url;\n/**\n * A valid IPv4 or IPv6 address scalar type. IPv4 addresses are expected in quad-dotted notation (123.12.34.56). IPv6 addresses\n * are expected in non-bracketed, colon-separated format (1a2b:3c4b:🔢4567). You can include an optional CIDR suffix (123.45.67.89/16)\n * to indicate subnet mask.\n * @returns IP address field definition\n */\nfunction ipAddress() {\n return _field(ModelFieldType.IPAddress);\n}\nexports.ipAddress = ipAddress;\n"],"names":[],"mappings":"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"}
@@ -97,7 +97,10 @@ function scalarFieldToGql(fieldDef, identifier, secondaryIndexes = []) {
97
97
  field += '!';
98
98
  }
99
99
  }
100
- if (_default !== undefined) {
100
+ if (_default === ModelField_1.__generated) {
101
+ field += ` @default`;
102
+ }
103
+ else if (_default !== undefined) {
101
104
  field += ` @default(value: "${_default?.toString()}")`;
102
105
  }
103
106
  for (const index of secondaryIndexes) {