@aws-amplify/data-schema 1.25.2 → 1.25.4
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/dist/cjs/CombineSchema.js.map +1 -1
- package/dist/cjs/ModelRelationshipField.js.map +1 -1
- package/dist/cjs/RefType.js.map +1 -1
- package/dist/cjs/ai/ConversationSchemaProcessor.js +28 -4
- package/dist/cjs/ai/ConversationSchemaProcessor.js.map +1 -1
- package/dist/cjs/ai/ModelType.js +3 -0
- package/dist/cjs/ai/ModelType.js.map +1 -1
- package/dist/cjs/runtime/internals/APIClient.js +0 -5
- package/dist/cjs/runtime/internals/APIClient.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/indexQuery.js +2 -0
- package/dist/cjs/runtime/internals/operations/indexQuery.js.map +1 -1
- package/dist/esm/CombineSchema.d.ts +2 -2
- package/dist/esm/CombineSchema.mjs.map +1 -1
- package/dist/esm/ModelRelationshipField.d.ts +2 -2
- package/dist/esm/ModelRelationshipField.mjs.map +1 -1
- package/dist/esm/RefType.d.ts +2 -2
- package/dist/esm/RefType.mjs.map +1 -1
- package/dist/esm/ai/ConversationSchemaProcessor.mjs +28 -4
- package/dist/esm/ai/ConversationSchemaProcessor.mjs.map +1 -1
- package/dist/esm/ai/ModelType.d.ts +2 -0
- package/dist/esm/ai/ModelType.mjs +3 -0
- package/dist/esm/ai/ModelType.mjs.map +1 -1
- package/dist/esm/runtime/internals/APIClient.mjs +0 -5
- package/dist/esm/runtime/internals/APIClient.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/indexQuery.mjs +2 -0
- package/dist/esm/runtime/internals/operations/indexQuery.mjs.map +1 -1
- package/dist/meta/cjs.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/CombineSchema.ts +2 -2
- package/src/ModelRelationshipField.ts +4 -4
- package/src/RefType.ts +2 -2
- package/src/ai/ConversationSchemaProcessor.ts +37 -4
- package/src/ai/ModelType.ts +3 -0
- package/src/runtime/internals/APIClient.ts +0 -5
- package/src/runtime/internals/operations/indexQuery.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIClient.js","sources":["../../../../src/runtime/internals/APIClient.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultSelectionSetForNonModelWithIR = exports.graphQLOperationsInfo = exports.flattenItems = void 0;\nexports.initializeModel = initializeModel;\nexports.customSelectionSetToIR = customSelectionSetToIR;\nexports.selectionSetIRToString = selectionSetIRToString;\nexports.generateSelectionSet = generateSelectionSet;\nexports.generateGraphQLDocument = generateGraphQLDocument;\nexports.buildGraphQLVariables = buildGraphQLVariables;\nexports.normalizeMutationInput = normalizeMutationInput;\nexports.authModeParams = authModeParams;\nexports.getCustomHeaders = getCustomHeaders;\nconst utils_1 = require(\"../utils\");\nconst cancellation_1 = require(\"./cancellation\");\nconst connectionType = {\n HAS_ONE: 'HAS_ONE',\n HAS_MANY: 'HAS_MANY',\n BELONGS_TO: 'BELONGS_TO',\n};\n// When generating an SK's KeyConditionInput name, string-like types map to String\nconst skGraphQlFieldTypeMap = {\n ID: 'ID',\n String: 'String',\n AWSDate: 'String',\n AWSTime: 'String',\n AWSDateTime: 'String',\n AWSTimestamp: 'Int',\n AWSEmail: 'String',\n AWSPhone: 'String',\n AWSURL: 'String',\n AWSIPAddress: 'String',\n AWSJSON: 'String',\n Boolean: 'Boolean',\n Int: 'Int',\n Float: 'Float',\n};\n// move to util\nconst resolvedSkName = (sk) => {\n if (sk.length === 1) {\n return sk[0];\n }\n else {\n return sk.reduce((acc, curr, idx) => {\n if (idx === 0) {\n return curr;\n }\n else {\n return acc + (0, utils_1.capitalize)(curr);\n }\n }, '');\n }\n};\n/**\n * Crawls a model tree, starting with a given **individual** model instance record, looking\n * for related hasMany children to extract from their `items` containers.\n *\n * E.g., if we have a record like this:\n *\n * ```js\n * {\n * id: 'some-id',\n * children: {\n * items: [\n * { name: 'a' }\n * { name: 'b' }\n * { name: 'c' }\n * ]\n * }\n * }\n * ```\n *\n * And if `children` refers to *an array of another model* (as opposed to a custom type),\n * the `items` will be extracted. We do this because `items` is just the mechanism for nesting\n * child records -- we don't want customers to have to dig the items out in application code.\n * Ultimately, we return this \"flattened\" structure:\n *\n * ```js\n * {\n * id: 'some-id',\n * children: [\n * { name: 'a' }\n * { name: 'b' }\n * { name: 'c' }\n * ]\n * }\n * ```\n *\n * Notably, an identical record could be the result of a nested custom type that contains an\n * `items` property. This will *not* be flattened, because in that case the `items` property is\n * actually part of the customer's schema. Similarly if a model contains an explicit `items` field.\n *\n * @param modelIntrospection Top-level model introspection schema.\n * @param modelName The name of the model. Can be `undefined`. E.g., for customOperation return types.\n * @param modelRecord The individual \"model instance record\" to normalize.\n */\nconst flattenItems = (modelIntrospection, modelName, modelRecord) => {\n if (!modelRecord)\n return null;\n const mapped = {};\n for (const [fieldName, value] of Object.entries(modelRecord)) {\n const fieldDef = modelName\n ? modelIntrospection.models[modelName]?.fields[fieldName]\n : undefined;\n const dvPair = { fieldDef, value };\n if (isRelatedModelItemsArrayPair(dvPair)) {\n mapped[fieldName] = dvPair.value.items.map((itemValue) => (0, exports.flattenItems)(modelIntrospection, dvPair.fieldDef.type.model, itemValue));\n }\n else if (isRelatedModelProperty(fieldDef)) {\n mapped[fieldName] = (0, exports.flattenItems)(modelIntrospection, fieldDef.type.model, value);\n }\n else {\n mapped[fieldName] = value;\n }\n }\n return mapped;\n};\nexports.flattenItems = flattenItems;\n/**\n * Determines whether the given field definition and associated result value\n * represent a related model array from a HasMany-type relationship.\n *\n * @param dv Pair of field definition and associated result value\n * @returns\n */\nfunction isRelatedModelItemsArrayPair(dv) {\n return (typeof dv.fieldDef?.type === 'object' &&\n 'model' in dv.fieldDef.type &&\n typeof dv.fieldDef.type.model === 'string' &&\n dv.fieldDef.isArray &&\n Array.isArray(dv.value?.items));\n}\n/**\n * Determines whether the given field definition represents a relationship\n * to another model.\n *\n * @param fieldDef\n * @returns\n */\nfunction isRelatedModelProperty(fieldDef) {\n return (typeof fieldDef?.type === 'object' &&\n 'model' in fieldDef.type &&\n typeof fieldDef.type.model === 'string');\n}\n// TODO: this should accept single result to support CRUD methods; create helper for array/list\nfunction initializeModel(client, modelName, result, modelIntrospection, authMode, authToken, context = false) {\n const introModel = modelIntrospection.models[modelName];\n const introModelFields = introModel.fields;\n const modelFields = Object.entries(introModelFields)\n .filter(([_, field]) => field?.type?.model !== undefined)\n .map(([fieldName]) => fieldName);\n return result.map((record) => {\n if (record === null || record === undefined) {\n return record;\n }\n const initializedRelationshipFields = {};\n for (const fieldName of modelFields) {\n const modelField = introModelFields[fieldName];\n const modelFieldType = modelField?.type;\n const relatedModelName = modelFieldType.model;\n const relatedModel = modelIntrospection.models[relatedModelName];\n const relatedModelPKFieldName = relatedModel.primaryKeyInfo.primaryKeyFieldName;\n const relatedModelSKFieldNames = relatedModel.primaryKeyInfo.sortKeyFieldNames;\n const relationType = modelField.association?.connectionType;\n let connectionFields = [];\n if (modelField.association &&\n 'associatedWith' in modelField.association) {\n connectionFields = modelField.association.associatedWith;\n }\n const targetNames = [];\n if (modelField.association && 'targetNames' in modelField.association) {\n targetNames.push(...modelField.association.targetNames);\n }\n switch (relationType) {\n case connectionType.BELONGS_TO: {\n const sortKeyValues = relatedModelSKFieldNames.reduce(\n // TODO(Eslint): is this implementation correct?\n // eslint-disable-next-line array-callback-return\n (acc, curVal) => {\n if (record[curVal]) {\n acc[curVal] = record[curVal];\n }\n return acc;\n }, {});\n // if get is disabled on the related model\n if (client.models[relatedModelName]?.get === undefined) {\n break;\n }\n if (context) {\n initializedRelationshipFields[fieldName] = (contextSpec, options) => {\n if (record[targetNames[0]]) {\n return client.models[relatedModelName].get(contextSpec, {\n [relatedModelPKFieldName]: record[targetNames[0]],\n ...sortKeyValues,\n }, {\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n }\n return { data: null };\n };\n }\n else {\n initializedRelationshipFields[fieldName] = (options) => {\n if (record[targetNames[0]]) {\n return client.models[relatedModelName].get({\n [relatedModelPKFieldName]: record[targetNames[0]],\n ...sortKeyValues,\n }, {\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n }\n return { data: null };\n };\n }\n break;\n }\n case connectionType.HAS_ONE:\n case connectionType.HAS_MANY: {\n /**\n * If the loader is a HAS_ONE, we just need to attempt to grab the first item\n * from the result.\n */\n const mapResult = relationType === connectionType.HAS_ONE\n ? (result) => {\n return {\n data: result?.data.shift() || null,\n errors: result.errors,\n extensions: result.extensions,\n };\n }\n : (result) => result;\n const parentPk = introModel.primaryKeyInfo.primaryKeyFieldName;\n const parentSK = introModel.primaryKeyInfo.sortKeyFieldNames;\n // M:N check - TODO: refactor\n const relatedModelField = relatedModel.fields[connectionFields[0]];\n const relatedModelFieldType = relatedModelField.type;\n if (relatedModelFieldType.model) {\n let relatedTargetNames = [];\n if (relatedModelField.association &&\n 'targetNames' in relatedModelField.association) {\n relatedTargetNames = relatedModelField.association?.targetNames;\n }\n const hasManyFilter = relatedTargetNames.map((field, idx) => {\n if (idx === 0) {\n return { [field]: { eq: record[parentPk] } };\n }\n return { [field]: { eq: record[parentSK[idx - 1]] } };\n });\n // if list is disabled on the related model\n if (client.models[relatedModelName]?.list === undefined) {\n break;\n }\n if (context) {\n initializedRelationshipFields[fieldName] = (contextSpec, options) => {\n if (record[parentPk]) {\n return (0, utils_1.selfAwareAsync)(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list(contextSpec, {\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n else {\n initializedRelationshipFields[fieldName] = (options) => {\n if (record[parentPk]) {\n return (0, utils_1.selfAwareAsync)(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list({\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n break;\n }\n const hasManyFilter = connectionFields.map((field, idx) => {\n if (idx === 0) {\n return { [field]: { eq: record[parentPk] } };\n }\n return { [field]: { eq: record[parentSK[idx - 1]] } };\n });\n // if list is disabled on the related model\n if (client.models[relatedModelName]?.list === undefined) {\n break;\n }\n if (context) {\n initializedRelationshipFields[fieldName] = (contextSpec, options) => {\n if (record[parentPk]) {\n return (0, utils_1.selfAwareAsync)(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list(contextSpec, {\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n else {\n initializedRelationshipFields[fieldName] = (options) => {\n if (record[parentPk]) {\n return (0, utils_1.selfAwareAsync)(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list({\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n break;\n }\n default:\n break;\n }\n }\n return { ...record, ...initializedRelationshipFields };\n });\n}\nexports.graphQLOperationsInfo = {\n CREATE: { operationPrefix: 'create', usePlural: false },\n GET: { operationPrefix: 'get', usePlural: false },\n UPDATE: { operationPrefix: 'update', usePlural: false },\n DELETE: { operationPrefix: 'delete', usePlural: false },\n LIST: { operationPrefix: 'list', usePlural: true },\n INDEX_QUERY: { operationPrefix: '', usePlural: false },\n ONCREATE: { operationPrefix: 'onCreate', usePlural: false },\n ONUPDATE: { operationPrefix: 'onUpdate', usePlural: false },\n ONDELETE: { operationPrefix: 'onDelete', usePlural: false },\n OBSERVEQUERY: { operationPrefix: 'observeQuery', usePlural: false },\n};\nconst SELECTION_SET_WILDCARD = '*';\nconst getDefaultSelectionSetForNonModelWithIR = (nonModelDefinition, modelIntrospection) => {\n const { fields } = nonModelDefinition;\n const mappedFields = Object.values(fields)\n .map(({ type, name }) => {\n if (typeof type.enum === 'string') {\n return [name, FIELD_IR];\n }\n if (typeof type.nonModel === 'string') {\n return [\n name,\n (0, exports.getDefaultSelectionSetForNonModelWithIR)(modelIntrospection.nonModels[type.nonModel], modelIntrospection),\n ];\n }\n if (typeof type === 'string') {\n return [name, FIELD_IR];\n }\n return undefined;\n })\n .filter((pair) => pair !== undefined);\n return Object.fromEntries(mappedFields);\n};\nexports.getDefaultSelectionSetForNonModelWithIR = getDefaultSelectionSetForNonModelWithIR;\nconst getDefaultSelectionSetForModelWithIR = (modelDefinition, modelIntrospection) => {\n const { fields } = modelDefinition;\n const mappedFields = Object.values(fields)\n .map(({ type, name }) => {\n if (typeof type.enum === 'string' ||\n typeof type === 'string') {\n return [name, FIELD_IR];\n }\n if (typeof type.nonModel === 'string') {\n return [\n name,\n (0, exports.getDefaultSelectionSetForNonModelWithIR)(modelIntrospection.nonModels[type.nonModel], modelIntrospection),\n ];\n }\n return undefined;\n })\n .filter((pair) => pair !== undefined);\n const ownerFields = (0, utils_1.resolveOwnerFields)(modelDefinition).map((field) => [\n field,\n FIELD_IR,\n ]);\n return Object.fromEntries(mappedFields.concat(ownerFields));\n};\nfunction defaultSelectionSetForModel(modelDefinition) {\n // fields that are explicitly part of the graphql schema; not\n // inferred from owner auth rules.\n const { fields } = modelDefinition;\n const explicitFields = Object.values(fields)\n // Default selection set omits model fields\n .map(({ type, name }) => {\n if (typeof type === 'string')\n return name;\n if (typeof type === 'object') {\n if (typeof type?.enum === 'string') {\n return name;\n }\n else if (typeof type?.nonModel === 'string') {\n return `${name}.${SELECTION_SET_WILDCARD}`;\n }\n }\n return undefined;\n })\n .filter(Boolean);\n // fields used for owner auth rules that may or may not also\n // be explicit on the model.\n const ownerFields = (0, utils_1.resolveOwnerFields)(modelDefinition);\n return Array.from(new Set(explicitFields.concat(ownerFields)));\n}\nconst FIELD_IR = '';\n/**\n * Generates nested Custom Selection Set IR from path\n *\n * @param modelDefinitions\n * @param modelName\n * @param selectionSet - array of object paths\n * @example\n * ### Given\n * `selectionSet = ['id', 'comments.post.id']`\n * ### Returns\n * ```ts\n * {\n * id: '',\n * comments: {\n * items: { post: { id: '' } }\n * }\n * }\n * ```\n */\nfunction customSelectionSetToIR(modelIntrospection, modelName, selectionSet) {\n const dotNotationToObject = (path, modelOrNonModelName) => {\n const [fieldName, ...rest] = path.split('.');\n const nested = rest[0];\n const modelOrNonModelDefinition = modelIntrospection.models[modelOrNonModelName] ??\n modelIntrospection.nonModels[modelOrNonModelName];\n const modelOrNonModelFields = modelOrNonModelDefinition?.fields;\n const relatedModel = modelOrNonModelFields?.[fieldName]?.type?.model;\n const relatedModelDefinition = modelIntrospection.models[relatedModel];\n const relatedNonModel = modelOrNonModelFields?.[fieldName]?.type?.nonModel;\n const relatedNonModelDefinition = modelIntrospection.nonModels[relatedNonModel];\n const isModelOrNonModelOrFieldType = relatedModelDefinition\n ? 'model'\n : relatedNonModelDefinition\n ? 'nonModel'\n : 'field';\n if (isModelOrNonModelOrFieldType === 'nonModel') {\n let result = {};\n if (!nested) {\n throw Error(`${fieldName} must declare a wildcard (*) or a field of custom type ${relatedNonModel}`);\n }\n if (nested === SELECTION_SET_WILDCARD) {\n result = {\n [fieldName]: (0, exports.getDefaultSelectionSetForNonModelWithIR)(relatedNonModelDefinition, modelIntrospection),\n };\n }\n else {\n result = {\n [fieldName]: dotNotationToObject(rest.join('.'), relatedNonModel),\n };\n }\n return result;\n }\n else if (isModelOrNonModelOrFieldType === 'model') {\n let result = {};\n if (!nested) {\n throw Error(`${fieldName} must declare a wildcard (*) or a field of model ${relatedModel}`);\n }\n if (nested === SELECTION_SET_WILDCARD) {\n const nestedRelatedModelDefinition = modelIntrospection.models[relatedModel];\n result = {\n [fieldName]: getDefaultSelectionSetForModelWithIR(nestedRelatedModelDefinition, modelIntrospection),\n };\n }\n else {\n result = {\n [fieldName]: dotNotationToObject(rest.join('.'), relatedModel),\n };\n }\n if (modelOrNonModelFields[fieldName]?.isArray) {\n result = {\n [fieldName]: {\n items: result[fieldName],\n },\n };\n }\n return result;\n }\n else {\n const modelField = modelOrNonModelFields?.[fieldName];\n const nonModelDefinition = modelIntrospection.nonModels[modelOrNonModelName];\n const nonModelField = nonModelDefinition?.fields?.[fieldName];\n if (!nonModelDefinition) {\n const isOwnerField = (0, utils_1.resolveOwnerFields)(modelOrNonModelDefinition).includes(fieldName);\n if (!modelField && !isOwnerField) {\n throw Error(`${fieldName} is not a field of model ${modelOrNonModelName}`);\n }\n }\n else {\n if (!nonModelField) {\n throw Error(`${fieldName} is not a field of custom type ${modelOrNonModelName}`);\n }\n }\n return { [fieldName]: FIELD_IR };\n }\n };\n return selectionSet.reduce((resultObj, path) => deepMergeSelectionSetObjects(dotNotationToObject(path, modelName), resultObj), {});\n}\n/**\n * Stringifies selection set IR\n * * @example\n * ### Given\n * ```ts\n * {\n * id: '',\n * comments: {\n * items: { post: { id: '' } }\n * }\n * }\n * ```\n * ### Returns\n * `'id comments { items { post { id } } }'`\n */\nfunction selectionSetIRToString(obj) {\n const res = [];\n Object.entries(obj).forEach(([fieldName, value]) => {\n if (value === FIELD_IR) {\n res.push(fieldName);\n }\n else if (typeof value === 'object' && value !== null) {\n if (value?.items) {\n res.push(fieldName, '{', 'items', '{', selectionSetIRToString(value.items), '}', '}');\n }\n else {\n res.push(fieldName, '{', selectionSetIRToString(value), '}');\n }\n }\n });\n return res.join(' ');\n}\n/**\n * Recursively merges selection set objects from `source` onto `target`.\n *\n * `target` will be updated. `source` will be left alone.\n *\n * @param source The object to merge into target.\n * @param target The object to be mutated.\n */\nfunction deepMergeSelectionSetObjects(source, target) {\n const isObject = (obj) => obj && typeof obj === 'object';\n for (const key in source) {\n // This verification avoids 'Prototype Pollution' issue\n if (!Object.prototype.hasOwnProperty.call(source, key))\n continue;\n if (Object.prototype.hasOwnProperty.call(target, key) &&\n isObject(target[key])) {\n deepMergeSelectionSetObjects(source[key], target[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction generateSelectionSet(modelIntrospection, modelName, selectionSet) {\n const modelDefinition = modelIntrospection.models[modelName];\n const selSetIr = customSelectionSetToIR(modelIntrospection, modelName, selectionSet ?? defaultSelectionSetForModel(modelDefinition));\n const selSetString = selectionSetIRToString(selSetIr);\n return selSetString;\n}\nfunction generateGraphQLDocument(modelIntrospection, modelDefinition, modelOperation, listArgs, indexMeta) {\n const { name, pluralName, fields, primaryKeyInfo: { isCustomPrimaryKey, primaryKeyFieldName, sortKeyFieldNames, }, attributes, } = modelDefinition;\n // Use pascal case of the model name to generate the operations and the arguments.\n // This is required to be in sync with the resources generated by the GraphQL transformers.\n const namePascalCase = name.charAt(0).toUpperCase() + name.slice(1);\n const pluralNamePascalCase = pluralName.charAt(0).toUpperCase() + pluralName.slice(1);\n const { operationPrefix, usePlural } = exports.graphQLOperationsInfo[modelOperation];\n const { selectionSet } = listArgs || {};\n let graphQLFieldName;\n let indexQueryArgs;\n if (operationPrefix) {\n graphQLFieldName = `${operationPrefix}${usePlural ? pluralNamePascalCase : namePascalCase}`;\n }\n else if (indexMeta) {\n const { queryField, pk, sk = [] } = indexMeta;\n graphQLFieldName = queryField;\n /**\n * **a. Single field SK** -> single arg where name is the field name and the type is `Model${gqlFieldType}KeyConditionInput` (nullable)\n * Note: string-like data types e.g., AWSDateTime, AWSEmail, AWSPhone, etc. should map to String. See `skGraphQlFieldTypeMap` above\n * @example\n * ```\n * sk1: ModelStringKeyConditionInput\n * ```\n *\n * **b. Composite SK** -> single arg where the name is camelCase concatenation of all the field names that comprise the SK\n * and the type is `Model${modelName}${keyAttributeName}CompositeKeyConditionInput` (nullable)\n * @example\n * ```\n * sk1Sk2: ModelMyModelMyModelByPkAndSk1AndSk2CompositeKeyConditionInput\n */\n let skQueryArgs = {};\n if (sk.length === 1) {\n const [skField] = sk;\n const type = (typeof fields[skField].type === 'string'\n ? fields[skField].type\n : 'String');\n const normalizedType = skGraphQlFieldTypeMap[type];\n skQueryArgs = {\n [skField]: `Model${normalizedType}KeyConditionInput`,\n };\n }\n else if (sk.length > 1) {\n const compositeSkArgName = resolvedSkName(sk);\n const keyName = attributes?.find((attr) => attr?.properties?.queryField === queryField)?.properties?.name;\n skQueryArgs = {\n [compositeSkArgName]: `Model${(0, utils_1.capitalize)(name)}${(0, utils_1.capitalize)(keyName)}CompositeKeyConditionInput`,\n };\n }\n indexQueryArgs = {\n [pk]: `${Object.prototype.hasOwnProperty.call(fields[pk].type, 'enum')\n ? fields[pk].type.enum // AppSync schema sets enum type as the type of the enum fields that's used as PK\n : fields[pk].type}!`,\n ...skQueryArgs,\n };\n }\n else {\n throw new Error('Error generating GraphQL Document - invalid operation name');\n }\n let graphQLOperationType;\n let graphQLSelectionSet;\n let graphQLArguments;\n const selectionSetFields = generateSelectionSet(modelIntrospection, name, selectionSet);\n // default PK args for get and list operations\n // modified below for CPK\n const getPkArgs = {\n [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}!`,\n };\n const listPkArgs = {};\n /**\n * Generate query field args for the SK if it's defined\n *\n * **1. Get queries** require each SK field to be present as a separate arg where the type is the field's GraphQL scalar type (non-nullable)\n * @example\n * ```\n * sk1: String!, sk2: Int!\n * ```\n *\n * **2. List queries**\n *\n * **a. Single field SK** -> single arg where name is the field name and the type is `Model${gqlFieldType}KeyConditionInput` (nullable)\n * Note: string-like data types e.g., AWSDateTime, AWSEmail, AWSPhone, etc. should map to String. See `skGraphQlFieldTypeMap` above\n * @example\n * ```\n * sk1: ModelStringKeyConditionInput\n * ```\n *\n * **b. Composite SK** -> single arg where the name is camelCase concatenation of all the field names that comprise the SK\n * and the type is `Model${modelName}PrimaryCompositeKeyConditionInput` (nullable)\n * @example\n * ```\n * sk1Sk2: ModelMyModelPrimaryCompositeKeyConditionInput\n * ```\n */\n const generateSkArgs = (op) => {\n if (sortKeyFieldNames.length === 0)\n return {};\n if (op === 'get') {\n return sortKeyFieldNames.reduce((acc, fieldName) => {\n const fieldType = fields[fieldName].type;\n if (op === 'get') {\n acc[fieldName] = `${fieldType}!`; // ! - SK args are non-nullable in Get queries\n }\n return acc;\n }, {});\n }\n else {\n // list SK\n if (sortKeyFieldNames.length === 1) {\n // Single SK\n const [sk] = sortKeyFieldNames;\n const type = (typeof fields[sk].type === 'string' ? fields[sk].type : 'String');\n const normalizedType = skGraphQlFieldTypeMap[type];\n return {\n [sk]: `Model${normalizedType}KeyConditionInput`,\n };\n }\n else {\n // Composite SK\n const compositeSkArgName = resolvedSkName(sortKeyFieldNames);\n return {\n [compositeSkArgName]: `Model${(0, utils_1.capitalize)(name)}PrimaryCompositeKeyConditionInput`,\n };\n }\n }\n };\n if (isCustomPrimaryKey) {\n Object.assign(getPkArgs, generateSkArgs('get'));\n Object.assign(listPkArgs, {\n // PK is only included in list query field args in the generated GQL\n // when explicitly specifying PK with .identifier(['fieldName']) or @primaryKey in the schema definition\n [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}`, // PK is always a nullable arg for list (no `!` after the type)\n sortDirection: 'ModelSortDirection',\n }, generateSkArgs('list'));\n }\n switch (modelOperation) {\n case 'CREATE':\n case 'UPDATE':\n case 'DELETE':\n graphQLArguments ??\n (graphQLArguments = {\n input: `${operationPrefix.charAt(0).toLocaleUpperCase() +\n operationPrefix.slice(1)}${namePascalCase}Input!`,\n });\n graphQLOperationType ?? (graphQLOperationType = 'mutation');\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'GET':\n graphQLArguments ?? (graphQLArguments = getPkArgs);\n graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'LIST':\n graphQLArguments ??\n (graphQLArguments = {\n ...listPkArgs,\n // eslint doesn't like the ts-ignore, because it thinks it's unnecessary.\n // But TS doesn't like the `filter: ...` because it think it will always be\n // overwritten. (it won't be.) so, we need to ignore the TS error and then\n // ignore the eslint error on the ts-ignore.\n // eslint-disable-next-line\n // @ts-ignore\n filter: `Model${namePascalCase}FilterInput`,\n limit: 'Int',\n nextToken: 'String',\n });\n graphQLOperationType ?? (graphQLOperationType = 'query');\n graphQLSelectionSet ??\n (graphQLSelectionSet = `items { ${selectionSetFields} } nextToken __typename`);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'INDEX_QUERY':\n graphQLArguments ??\n (graphQLArguments = {\n ...indexQueryArgs,\n filter: `Model${namePascalCase}FilterInput`,\n sortDirection: 'ModelSortDirection',\n limit: 'Int',\n nextToken: 'String',\n });\n graphQLOperationType ?? (graphQLOperationType = 'query');\n graphQLSelectionSet ??\n (graphQLSelectionSet = `items { ${selectionSetFields} } nextToken __typename`);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'ONCREATE':\n case 'ONUPDATE':\n case 'ONDELETE':\n graphQLArguments ??\n (graphQLArguments = {\n filter: `ModelSubscription${namePascalCase}FilterInput`,\n });\n graphQLOperationType ?? (graphQLOperationType = 'subscription');\n graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);\n break;\n case 'OBSERVEQUERY':\n default:\n throw new Error('Internal error: Attempted to generate graphql document for observeQuery. Please report this error.');\n }\n const graphQLDocument = `${graphQLOperationType}${graphQLArguments\n ? `(${Object.entries(graphQLArguments).map(([fieldName, type]) => `$${fieldName}: ${type}`)})`\n : ''} { ${graphQLFieldName}${graphQLArguments\n ? `(${Object.keys(graphQLArguments).map((fieldName) => `${fieldName}: $${fieldName}`)})`\n : ''} { ${graphQLSelectionSet} } }`;\n return graphQLDocument;\n}\nfunction buildGraphQLVariables(modelDefinition, operation, arg, modelIntrospection, indexMeta) {\n const { fields, primaryKeyInfo: { isCustomPrimaryKey, primaryKeyFieldName, sortKeyFieldNames, }, } = modelDefinition;\n const skName = sortKeyFieldNames?.length && resolvedSkName(sortKeyFieldNames);\n let variables = {};\n // TODO: process input\n switch (operation) {\n case 'CREATE':\n variables = {\n input: arg\n ? normalizeMutationInput(arg, modelDefinition, modelIntrospection)\n : {},\n };\n break;\n case 'UPDATE':\n // readonly fields are not updated\n variables = {\n input: arg\n ? Object.fromEntries(Object.entries(normalizeMutationInput(arg, modelDefinition, modelIntrospection)).filter(([fieldName]) => {\n // omit field from update input\n // if exists in fields and marked read only\n // if does not exist in fields but implicitly added to schema via ownership\n return fields[fieldName]\n ? !fields[fieldName].isReadOnly\n : !(0, utils_1.resolveOwnerFields)(modelDefinition).includes(fieldName);\n }))\n : {},\n };\n break;\n case 'GET':\n case 'DELETE':\n // only identifiers are sent\n if (arg) {\n variables = isCustomPrimaryKey\n ? [primaryKeyFieldName, ...sortKeyFieldNames].reduce((acc, fieldName) => {\n acc[fieldName] = arg[fieldName];\n return acc;\n }, {})\n : { [primaryKeyFieldName]: arg[primaryKeyFieldName] };\n }\n if (operation === 'DELETE') {\n variables = { input: variables };\n }\n break;\n case 'LIST':\n if (arg?.filter) {\n variables.filter = arg.filter;\n }\n if (arg?.sortDirection) {\n variables.sortDirection = arg.sortDirection;\n }\n if (arg && arg[primaryKeyFieldName]) {\n variables[primaryKeyFieldName] = arg[primaryKeyFieldName];\n }\n if (skName && arg && arg[skName]) {\n variables[skName] = arg[skName];\n }\n if (arg?.nextToken) {\n variables.nextToken = arg.nextToken;\n }\n if (arg?.limit) {\n variables.limit = arg.limit;\n }\n break;\n case 'INDEX_QUERY': {\n const { pk, sk = [] } = indexMeta;\n const indexQuerySkName = sk?.length && resolvedSkName(sk);\n variables[pk] = arg[pk];\n if (indexQuerySkName && arg && arg[indexQuerySkName]) {\n variables[indexQuerySkName] = arg[indexQuerySkName];\n }\n if (arg?.filter) {\n variables.filter = arg.filter;\n }\n if (arg?.sortDirection) {\n variables.sortDirection = arg.sortDirection;\n }\n if (arg?.nextToken) {\n variables.nextToken = arg.nextToken;\n }\n if (arg?.limit) {\n variables.limit = arg.limit;\n }\n break;\n }\n case 'ONCREATE':\n case 'ONUPDATE':\n case 'ONDELETE':\n if (arg?.filter) {\n variables = { filter: arg.filter };\n }\n break;\n case 'OBSERVEQUERY':\n throw new Error('Internal error: Attempted to build variables for observeQuery. Please report this error.');\n default: {\n const exhaustiveCheck = operation;\n throw new Error(`Unhandled operation case: ${exhaustiveCheck}`);\n }\n }\n return variables;\n}\n/**\n * Iterates over mutation input values and resolves any model inputs to their corresponding join fields/values\n *\n * @example\n * ### Usage\n * ```ts\n * const result = normalizeMutationInput({ post: post }, model, modelDefinition);\n * ```\n * ### Result\n * ```ts\n * { postId: \"abc123\" }\n * ```\n *\n */\nfunction normalizeMutationInput(mutationInput, model, modelIntrospection) {\n const { fields } = model;\n const normalized = {};\n Object.entries(mutationInput).forEach(([inputFieldName, inputValue]) => {\n const fieldType = fields[inputFieldName]?.type;\n const relatedModelName = fieldType?.model;\n if (relatedModelName) {\n const association = fields[inputFieldName]?.association;\n const relatedModelDef = modelIntrospection.models[relatedModelName];\n const relatedModelPkInfo = relatedModelDef.primaryKeyInfo;\n if (association?.connectionType === connectionType.HAS_ONE) {\n const associationHasOne = association;\n associationHasOne.targetNames.forEach((targetName, idx) => {\n const associatedFieldName = associationHasOne.associatedWith[idx];\n normalized[targetName] = inputValue[associatedFieldName];\n });\n }\n if (association?.connectionType === connectionType.BELONGS_TO) {\n const associationBelongsTo = association;\n associationBelongsTo.targetNames.forEach((targetName, idx) => {\n if (idx === 0) {\n const associatedFieldName = relatedModelPkInfo.primaryKeyFieldName;\n normalized[targetName] = inputValue[associatedFieldName];\n }\n else {\n const associatedFieldName = relatedModelPkInfo.sortKeyFieldNames[idx - 1];\n normalized[targetName] = inputValue[associatedFieldName];\n }\n });\n }\n }\n else {\n normalized[inputFieldName] = inputValue;\n }\n });\n return normalized;\n}\n/**\n * Produces a parameter object that can contains auth mode/token overrides\n * only if present in either `options` (first) or configured on the `client`\n * as a fallback.\n *\n * @param client Configured client from `generateClient`\n * @param options Args/Options object from call site.\n * @returns\n */\nfunction authModeParams(client, getInternals, options = {}) {\n const internals = getInternals(client);\n return {\n authMode: options.authMode || internals.authMode,\n authToken: options.authToken || internals.authToken,\n };\n}\n/**\n * Retrieves custom headers from either the client or request options.\n * @param client V6Client | V6ClientSSRRequest | V6ClientSSRCookies - for extracting client headers\n * @param requestHeaders {@link CustomHeaders} - request headers\n * @returns custom headers as {@link CustomHeaders}\n */\nfunction getCustomHeaders(client, getInternals, requestHeaders) {\n let headers = getInternals(client).headers || {};\n // Individual request headers will take precedence over client headers.\n // We intentionally do *not* merge client and request headers.\n if (requestHeaders) {\n headers = requestHeaders;\n }\n return headers;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"APIClient.js","sources":["../../../../src/runtime/internals/APIClient.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultSelectionSetForNonModelWithIR = exports.graphQLOperationsInfo = exports.flattenItems = void 0;\nexports.initializeModel = initializeModel;\nexports.customSelectionSetToIR = customSelectionSetToIR;\nexports.selectionSetIRToString = selectionSetIRToString;\nexports.generateSelectionSet = generateSelectionSet;\nexports.generateGraphQLDocument = generateGraphQLDocument;\nexports.buildGraphQLVariables = buildGraphQLVariables;\nexports.normalizeMutationInput = normalizeMutationInput;\nexports.authModeParams = authModeParams;\nexports.getCustomHeaders = getCustomHeaders;\nconst utils_1 = require(\"../utils\");\nconst cancellation_1 = require(\"./cancellation\");\nconst connectionType = {\n HAS_ONE: 'HAS_ONE',\n HAS_MANY: 'HAS_MANY',\n BELONGS_TO: 'BELONGS_TO',\n};\n// When generating an SK's KeyConditionInput name, string-like types map to String\nconst skGraphQlFieldTypeMap = {\n ID: 'ID',\n String: 'String',\n AWSDate: 'String',\n AWSTime: 'String',\n AWSDateTime: 'String',\n AWSTimestamp: 'Int',\n AWSEmail: 'String',\n AWSPhone: 'String',\n AWSURL: 'String',\n AWSIPAddress: 'String',\n AWSJSON: 'String',\n Boolean: 'Boolean',\n Int: 'Int',\n Float: 'Float',\n};\n// move to util\nconst resolvedSkName = (sk) => {\n if (sk.length === 1) {\n return sk[0];\n }\n else {\n return sk.reduce((acc, curr, idx) => {\n if (idx === 0) {\n return curr;\n }\n else {\n return acc + (0, utils_1.capitalize)(curr);\n }\n }, '');\n }\n};\n/**\n * Crawls a model tree, starting with a given **individual** model instance record, looking\n * for related hasMany children to extract from their `items` containers.\n *\n * E.g., if we have a record like this:\n *\n * ```js\n * {\n * id: 'some-id',\n * children: {\n * items: [\n * { name: 'a' }\n * { name: 'b' }\n * { name: 'c' }\n * ]\n * }\n * }\n * ```\n *\n * And if `children` refers to *an array of another model* (as opposed to a custom type),\n * the `items` will be extracted. We do this because `items` is just the mechanism for nesting\n * child records -- we don't want customers to have to dig the items out in application code.\n * Ultimately, we return this \"flattened\" structure:\n *\n * ```js\n * {\n * id: 'some-id',\n * children: [\n * { name: 'a' }\n * { name: 'b' }\n * { name: 'c' }\n * ]\n * }\n * ```\n *\n * Notably, an identical record could be the result of a nested custom type that contains an\n * `items` property. This will *not* be flattened, because in that case the `items` property is\n * actually part of the customer's schema. Similarly if a model contains an explicit `items` field.\n *\n * @param modelIntrospection Top-level model introspection schema.\n * @param modelName The name of the model. Can be `undefined`. E.g., for customOperation return types.\n * @param modelRecord The individual \"model instance record\" to normalize.\n */\nconst flattenItems = (modelIntrospection, modelName, modelRecord) => {\n if (!modelRecord)\n return null;\n const mapped = {};\n for (const [fieldName, value] of Object.entries(modelRecord)) {\n const fieldDef = modelName\n ? modelIntrospection.models[modelName]?.fields[fieldName]\n : undefined;\n const dvPair = { fieldDef, value };\n if (isRelatedModelItemsArrayPair(dvPair)) {\n mapped[fieldName] = dvPair.value.items.map((itemValue) => (0, exports.flattenItems)(modelIntrospection, dvPair.fieldDef.type.model, itemValue));\n }\n else if (isRelatedModelProperty(fieldDef)) {\n mapped[fieldName] = (0, exports.flattenItems)(modelIntrospection, fieldDef.type.model, value);\n }\n else {\n mapped[fieldName] = value;\n }\n }\n return mapped;\n};\nexports.flattenItems = flattenItems;\n/**\n * Determines whether the given field definition and associated result value\n * represent a related model array from a HasMany-type relationship.\n *\n * @param dv Pair of field definition and associated result value\n * @returns\n */\nfunction isRelatedModelItemsArrayPair(dv) {\n return (typeof dv.fieldDef?.type === 'object' &&\n 'model' in dv.fieldDef.type &&\n typeof dv.fieldDef.type.model === 'string' &&\n dv.fieldDef.isArray &&\n Array.isArray(dv.value?.items));\n}\n/**\n * Determines whether the given field definition represents a relationship\n * to another model.\n *\n * @param fieldDef\n * @returns\n */\nfunction isRelatedModelProperty(fieldDef) {\n return (typeof fieldDef?.type === 'object' &&\n 'model' in fieldDef.type &&\n typeof fieldDef.type.model === 'string');\n}\n// TODO: this should accept single result to support CRUD methods; create helper for array/list\nfunction initializeModel(client, modelName, result, modelIntrospection, authMode, authToken, context = false) {\n const introModel = modelIntrospection.models[modelName];\n const introModelFields = introModel.fields;\n const modelFields = Object.entries(introModelFields)\n .filter(([_, field]) => field?.type?.model !== undefined)\n .map(([fieldName]) => fieldName);\n return result.map((record) => {\n if (record === null || record === undefined) {\n return record;\n }\n const initializedRelationshipFields = {};\n for (const fieldName of modelFields) {\n const modelField = introModelFields[fieldName];\n const modelFieldType = modelField?.type;\n const relatedModelName = modelFieldType.model;\n const relatedModel = modelIntrospection.models[relatedModelName];\n const relatedModelPKFieldName = relatedModel.primaryKeyInfo.primaryKeyFieldName;\n const relatedModelSKFieldNames = relatedModel.primaryKeyInfo.sortKeyFieldNames;\n const relationType = modelField.association?.connectionType;\n let connectionFields = [];\n if (modelField.association &&\n 'associatedWith' in modelField.association) {\n connectionFields = modelField.association.associatedWith;\n }\n const targetNames = [];\n if (modelField.association && 'targetNames' in modelField.association) {\n targetNames.push(...modelField.association.targetNames);\n }\n switch (relationType) {\n case connectionType.BELONGS_TO: {\n const sortKeyValues = relatedModelSKFieldNames.reduce(\n // TODO(Eslint): is this implementation correct?\n (acc, curVal) => {\n if (record[curVal]) {\n acc[curVal] = record[curVal];\n }\n return acc;\n }, {});\n // if get is disabled on the related model\n if (client.models[relatedModelName]?.get === undefined) {\n break;\n }\n if (context) {\n initializedRelationshipFields[fieldName] = (contextSpec, options) => {\n if (record[targetNames[0]]) {\n return client.models[relatedModelName].get(contextSpec, {\n [relatedModelPKFieldName]: record[targetNames[0]],\n ...sortKeyValues,\n }, {\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n }\n return { data: null };\n };\n }\n else {\n initializedRelationshipFields[fieldName] = (options) => {\n if (record[targetNames[0]]) {\n return client.models[relatedModelName].get({\n [relatedModelPKFieldName]: record[targetNames[0]],\n ...sortKeyValues,\n }, {\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n }\n return { data: null };\n };\n }\n break;\n }\n case connectionType.HAS_ONE:\n case connectionType.HAS_MANY: {\n /**\n * If the loader is a HAS_ONE, we just need to attempt to grab the first item\n * from the result.\n */\n const mapResult = relationType === connectionType.HAS_ONE\n ? (result) => {\n return {\n data: result?.data.shift() || null,\n errors: result.errors,\n extensions: result.extensions,\n };\n }\n : (result) => result;\n const parentPk = introModel.primaryKeyInfo.primaryKeyFieldName;\n const parentSK = introModel.primaryKeyInfo.sortKeyFieldNames;\n // M:N check - TODO: refactor\n const relatedModelField = relatedModel.fields[connectionFields[0]];\n const relatedModelFieldType = relatedModelField.type;\n if (relatedModelFieldType.model) {\n let relatedTargetNames = [];\n if (relatedModelField.association &&\n 'targetNames' in relatedModelField.association) {\n relatedTargetNames = relatedModelField.association?.targetNames;\n }\n const hasManyFilter = relatedTargetNames.map((field, idx) => {\n if (idx === 0) {\n return { [field]: { eq: record[parentPk] } };\n }\n return { [field]: { eq: record[parentSK[idx - 1]] } };\n });\n // if list is disabled on the related model\n if (client.models[relatedModelName]?.list === undefined) {\n break;\n }\n if (context) {\n initializedRelationshipFields[fieldName] = (contextSpec, options) => {\n if (record[parentPk]) {\n return (0, utils_1.selfAwareAsync)(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list(contextSpec, {\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n else {\n initializedRelationshipFields[fieldName] = (options) => {\n if (record[parentPk]) {\n return (0, utils_1.selfAwareAsync)(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list({\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n break;\n }\n const hasManyFilter = connectionFields.map((field, idx) => {\n if (idx === 0) {\n return { [field]: { eq: record[parentPk] } };\n }\n return { [field]: { eq: record[parentSK[idx - 1]] } };\n });\n // if list is disabled on the related model\n if (client.models[relatedModelName]?.list === undefined) {\n break;\n }\n if (context) {\n initializedRelationshipFields[fieldName] = (contextSpec, options) => {\n if (record[parentPk]) {\n return (0, utils_1.selfAwareAsync)(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list(contextSpec, {\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n else {\n initializedRelationshipFields[fieldName] = (options) => {\n if (record[parentPk]) {\n return (0, utils_1.selfAwareAsync)(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list({\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n break;\n }\n default:\n break;\n }\n }\n return { ...record, ...initializedRelationshipFields };\n });\n}\nexports.graphQLOperationsInfo = {\n CREATE: { operationPrefix: 'create', usePlural: false },\n GET: { operationPrefix: 'get', usePlural: false },\n UPDATE: { operationPrefix: 'update', usePlural: false },\n DELETE: { operationPrefix: 'delete', usePlural: false },\n LIST: { operationPrefix: 'list', usePlural: true },\n INDEX_QUERY: { operationPrefix: '', usePlural: false },\n ONCREATE: { operationPrefix: 'onCreate', usePlural: false },\n ONUPDATE: { operationPrefix: 'onUpdate', usePlural: false },\n ONDELETE: { operationPrefix: 'onDelete', usePlural: false },\n OBSERVEQUERY: { operationPrefix: 'observeQuery', usePlural: false },\n};\nconst SELECTION_SET_WILDCARD = '*';\nconst getDefaultSelectionSetForNonModelWithIR = (nonModelDefinition, modelIntrospection) => {\n const { fields } = nonModelDefinition;\n const mappedFields = Object.values(fields)\n .map(({ type, name }) => {\n if (typeof type.enum === 'string') {\n return [name, FIELD_IR];\n }\n if (typeof type.nonModel === 'string') {\n return [\n name,\n (0, exports.getDefaultSelectionSetForNonModelWithIR)(modelIntrospection.nonModels[type.nonModel], modelIntrospection),\n ];\n }\n if (typeof type === 'string') {\n return [name, FIELD_IR];\n }\n return undefined;\n })\n .filter((pair) => pair !== undefined);\n return Object.fromEntries(mappedFields);\n};\nexports.getDefaultSelectionSetForNonModelWithIR = getDefaultSelectionSetForNonModelWithIR;\nconst getDefaultSelectionSetForModelWithIR = (modelDefinition, modelIntrospection) => {\n const { fields } = modelDefinition;\n const mappedFields = Object.values(fields)\n .map(({ type, name }) => {\n if (typeof type.enum === 'string' ||\n typeof type === 'string') {\n return [name, FIELD_IR];\n }\n if (typeof type.nonModel === 'string') {\n return [\n name,\n (0, exports.getDefaultSelectionSetForNonModelWithIR)(modelIntrospection.nonModels[type.nonModel], modelIntrospection),\n ];\n }\n return undefined;\n })\n .filter((pair) => pair !== undefined);\n const ownerFields = (0, utils_1.resolveOwnerFields)(modelDefinition).map((field) => [\n field,\n FIELD_IR,\n ]);\n return Object.fromEntries(mappedFields.concat(ownerFields));\n};\nfunction defaultSelectionSetForModel(modelDefinition) {\n // fields that are explicitly part of the graphql schema; not\n // inferred from owner auth rules.\n const { fields } = modelDefinition;\n const explicitFields = Object.values(fields)\n // Default selection set omits model fields\n .map(({ type, name }) => {\n if (typeof type === 'string')\n return name;\n if (typeof type === 'object') {\n if (typeof type?.enum === 'string') {\n return name;\n }\n else if (typeof type?.nonModel === 'string') {\n return `${name}.${SELECTION_SET_WILDCARD}`;\n }\n }\n return undefined;\n })\n .filter(Boolean);\n // fields used for owner auth rules that may or may not also\n // be explicit on the model.\n const ownerFields = (0, utils_1.resolveOwnerFields)(modelDefinition);\n return Array.from(new Set(explicitFields.concat(ownerFields)));\n}\nconst FIELD_IR = '';\n/**\n * Generates nested Custom Selection Set IR from path\n *\n * @param modelDefinitions\n * @param modelName\n * @param selectionSet - array of object paths\n * @example\n * ### Given\n * `selectionSet = ['id', 'comments.post.id']`\n * ### Returns\n * ```ts\n * {\n * id: '',\n * comments: {\n * items: { post: { id: '' } }\n * }\n * }\n * ```\n */\nfunction customSelectionSetToIR(modelIntrospection, modelName, selectionSet) {\n const dotNotationToObject = (path, modelOrNonModelName) => {\n const [fieldName, ...rest] = path.split('.');\n const nested = rest[0];\n const modelOrNonModelDefinition = modelIntrospection.models[modelOrNonModelName] ??\n modelIntrospection.nonModels[modelOrNonModelName];\n const modelOrNonModelFields = modelOrNonModelDefinition?.fields;\n const relatedModel = modelOrNonModelFields?.[fieldName]?.type?.model;\n const relatedModelDefinition = modelIntrospection.models[relatedModel];\n const relatedNonModel = modelOrNonModelFields?.[fieldName]?.type?.nonModel;\n const relatedNonModelDefinition = modelIntrospection.nonModels[relatedNonModel];\n const isModelOrNonModelOrFieldType = relatedModelDefinition\n ? 'model'\n : relatedNonModelDefinition\n ? 'nonModel'\n : 'field';\n if (isModelOrNonModelOrFieldType === 'nonModel') {\n let result = {};\n if (!nested) {\n throw Error(`${fieldName} must declare a wildcard (*) or a field of custom type ${relatedNonModel}`);\n }\n if (nested === SELECTION_SET_WILDCARD) {\n result = {\n [fieldName]: (0, exports.getDefaultSelectionSetForNonModelWithIR)(relatedNonModelDefinition, modelIntrospection),\n };\n }\n else {\n result = {\n [fieldName]: dotNotationToObject(rest.join('.'), relatedNonModel),\n };\n }\n return result;\n }\n else if (isModelOrNonModelOrFieldType === 'model') {\n let result = {};\n if (!nested) {\n throw Error(`${fieldName} must declare a wildcard (*) or a field of model ${relatedModel}`);\n }\n if (nested === SELECTION_SET_WILDCARD) {\n const nestedRelatedModelDefinition = modelIntrospection.models[relatedModel];\n result = {\n [fieldName]: getDefaultSelectionSetForModelWithIR(nestedRelatedModelDefinition, modelIntrospection),\n };\n }\n else {\n result = {\n [fieldName]: dotNotationToObject(rest.join('.'), relatedModel),\n };\n }\n if (modelOrNonModelFields[fieldName]?.isArray) {\n result = {\n [fieldName]: {\n items: result[fieldName],\n },\n };\n }\n return result;\n }\n else {\n const modelField = modelOrNonModelFields?.[fieldName];\n const nonModelDefinition = modelIntrospection.nonModels[modelOrNonModelName];\n const nonModelField = nonModelDefinition?.fields?.[fieldName];\n if (!nonModelDefinition) {\n const isOwnerField = (0, utils_1.resolveOwnerFields)(modelOrNonModelDefinition).includes(fieldName);\n if (!modelField && !isOwnerField) {\n throw Error(`${fieldName} is not a field of model ${modelOrNonModelName}`);\n }\n }\n else {\n if (!nonModelField) {\n throw Error(`${fieldName} is not a field of custom type ${modelOrNonModelName}`);\n }\n }\n return { [fieldName]: FIELD_IR };\n }\n };\n return selectionSet.reduce((resultObj, path) => deepMergeSelectionSetObjects(dotNotationToObject(path, modelName), resultObj), {});\n}\n/**\n * Stringifies selection set IR\n * * @example\n * ### Given\n * ```ts\n * {\n * id: '',\n * comments: {\n * items: { post: { id: '' } }\n * }\n * }\n * ```\n * ### Returns\n * `'id comments { items { post { id } } }'`\n */\nfunction selectionSetIRToString(obj) {\n const res = [];\n Object.entries(obj).forEach(([fieldName, value]) => {\n if (value === FIELD_IR) {\n res.push(fieldName);\n }\n else if (typeof value === 'object' && value !== null) {\n if (value?.items) {\n res.push(fieldName, '{', 'items', '{', selectionSetIRToString(value.items), '}', '}');\n }\n else {\n res.push(fieldName, '{', selectionSetIRToString(value), '}');\n }\n }\n });\n return res.join(' ');\n}\n/**\n * Recursively merges selection set objects from `source` onto `target`.\n *\n * `target` will be updated. `source` will be left alone.\n *\n * @param source The object to merge into target.\n * @param target The object to be mutated.\n */\nfunction deepMergeSelectionSetObjects(source, target) {\n const isObject = (obj) => obj && typeof obj === 'object';\n for (const key in source) {\n // This verification avoids 'Prototype Pollution' issue\n if (!Object.prototype.hasOwnProperty.call(source, key))\n continue;\n if (Object.prototype.hasOwnProperty.call(target, key) &&\n isObject(target[key])) {\n deepMergeSelectionSetObjects(source[key], target[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction generateSelectionSet(modelIntrospection, modelName, selectionSet) {\n const modelDefinition = modelIntrospection.models[modelName];\n const selSetIr = customSelectionSetToIR(modelIntrospection, modelName, selectionSet ?? defaultSelectionSetForModel(modelDefinition));\n const selSetString = selectionSetIRToString(selSetIr);\n return selSetString;\n}\nfunction generateGraphQLDocument(modelIntrospection, modelDefinition, modelOperation, listArgs, indexMeta) {\n const { name, pluralName, fields, primaryKeyInfo: { isCustomPrimaryKey, primaryKeyFieldName, sortKeyFieldNames, }, attributes, } = modelDefinition;\n // Use pascal case of the model name to generate the operations and the arguments.\n // This is required to be in sync with the resources generated by the GraphQL transformers.\n const namePascalCase = name.charAt(0).toUpperCase() + name.slice(1);\n const pluralNamePascalCase = pluralName.charAt(0).toUpperCase() + pluralName.slice(1);\n const { operationPrefix, usePlural } = exports.graphQLOperationsInfo[modelOperation];\n const { selectionSet } = listArgs || {};\n let graphQLFieldName;\n let indexQueryArgs;\n if (operationPrefix) {\n graphQLFieldName = `${operationPrefix}${usePlural ? pluralNamePascalCase : namePascalCase}`;\n }\n else if (indexMeta) {\n const { queryField, pk, sk = [] } = indexMeta;\n graphQLFieldName = queryField;\n /**\n * **a. Single field SK** -> single arg where name is the field name and the type is `Model${gqlFieldType}KeyConditionInput` (nullable)\n * Note: string-like data types e.g., AWSDateTime, AWSEmail, AWSPhone, etc. should map to String. See `skGraphQlFieldTypeMap` above\n * @example\n * ```\n * sk1: ModelStringKeyConditionInput\n * ```\n *\n * **b. Composite SK** -> single arg where the name is camelCase concatenation of all the field names that comprise the SK\n * and the type is `Model${modelName}${keyAttributeName}CompositeKeyConditionInput` (nullable)\n * @example\n * ```\n * sk1Sk2: ModelMyModelMyModelByPkAndSk1AndSk2CompositeKeyConditionInput\n */\n let skQueryArgs = {};\n if (sk.length === 1) {\n const [skField] = sk;\n const type = (typeof fields[skField].type === 'string'\n ? fields[skField].type\n : 'String');\n const normalizedType = skGraphQlFieldTypeMap[type];\n skQueryArgs = {\n [skField]: `Model${normalizedType}KeyConditionInput`,\n };\n }\n else if (sk.length > 1) {\n const compositeSkArgName = resolvedSkName(sk);\n const keyName = attributes?.find((attr) => attr?.properties?.queryField === queryField)?.properties?.name;\n skQueryArgs = {\n [compositeSkArgName]: `Model${(0, utils_1.capitalize)(name)}${(0, utils_1.capitalize)(keyName)}CompositeKeyConditionInput`,\n };\n }\n indexQueryArgs = {\n [pk]: `${Object.prototype.hasOwnProperty.call(fields[pk].type, 'enum')\n ? fields[pk].type.enum // AppSync schema sets enum type as the type of the enum fields that's used as PK\n : fields[pk].type}!`,\n ...skQueryArgs,\n };\n }\n else {\n throw new Error('Error generating GraphQL Document - invalid operation name');\n }\n let graphQLOperationType;\n let graphQLSelectionSet;\n let graphQLArguments;\n const selectionSetFields = generateSelectionSet(modelIntrospection, name, selectionSet);\n // default PK args for get and list operations\n // modified below for CPK\n const getPkArgs = {\n [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}!`,\n };\n const listPkArgs = {};\n /**\n * Generate query field args for the SK if it's defined\n *\n * **1. Get queries** require each SK field to be present as a separate arg where the type is the field's GraphQL scalar type (non-nullable)\n * @example\n * ```\n * sk1: String!, sk2: Int!\n * ```\n *\n * **2. List queries**\n *\n * **a. Single field SK** -> single arg where name is the field name and the type is `Model${gqlFieldType}KeyConditionInput` (nullable)\n * Note: string-like data types e.g., AWSDateTime, AWSEmail, AWSPhone, etc. should map to String. See `skGraphQlFieldTypeMap` above\n * @example\n * ```\n * sk1: ModelStringKeyConditionInput\n * ```\n *\n * **b. Composite SK** -> single arg where the name is camelCase concatenation of all the field names that comprise the SK\n * and the type is `Model${modelName}PrimaryCompositeKeyConditionInput` (nullable)\n * @example\n * ```\n * sk1Sk2: ModelMyModelPrimaryCompositeKeyConditionInput\n * ```\n */\n const generateSkArgs = (op) => {\n if (sortKeyFieldNames.length === 0)\n return {};\n if (op === 'get') {\n return sortKeyFieldNames.reduce((acc, fieldName) => {\n const fieldType = fields[fieldName].type;\n if (op === 'get') {\n acc[fieldName] = `${fieldType}!`; // ! - SK args are non-nullable in Get queries\n }\n return acc;\n }, {});\n }\n else {\n // list SK\n if (sortKeyFieldNames.length === 1) {\n // Single SK\n const [sk] = sortKeyFieldNames;\n const type = (typeof fields[sk].type === 'string' ? fields[sk].type : 'String');\n const normalizedType = skGraphQlFieldTypeMap[type];\n return {\n [sk]: `Model${normalizedType}KeyConditionInput`,\n };\n }\n else {\n // Composite SK\n const compositeSkArgName = resolvedSkName(sortKeyFieldNames);\n return {\n [compositeSkArgName]: `Model${(0, utils_1.capitalize)(name)}PrimaryCompositeKeyConditionInput`,\n };\n }\n }\n };\n if (isCustomPrimaryKey) {\n Object.assign(getPkArgs, generateSkArgs('get'));\n Object.assign(listPkArgs, {\n // PK is only included in list query field args in the generated GQL\n // when explicitly specifying PK with .identifier(['fieldName']) or @primaryKey in the schema definition\n [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}`, // PK is always a nullable arg for list (no `!` after the type)\n sortDirection: 'ModelSortDirection',\n }, generateSkArgs('list'));\n }\n switch (modelOperation) {\n case 'CREATE':\n case 'UPDATE':\n case 'DELETE':\n graphQLArguments ??\n (graphQLArguments = {\n input: `${operationPrefix.charAt(0).toLocaleUpperCase() +\n operationPrefix.slice(1)}${namePascalCase}Input!`,\n });\n graphQLOperationType ?? (graphQLOperationType = 'mutation');\n // TODO(Eslint): this this case clause correct without the break statement?\n case 'GET':\n graphQLArguments ?? (graphQLArguments = getPkArgs);\n graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);\n // TODO(Eslint): this this case clause correct without the break statement?\n case 'LIST':\n graphQLArguments ??\n (graphQLArguments = {\n ...listPkArgs,\n // eslint doesn't like the ts-ignore, because it thinks it's unnecessary.\n // But TS doesn't like the `filter: ...` because it think it will always be\n // overwritten. (it won't be.) so, we need to ignore the TS error and then\n // ignore the eslint error on the ts-ignore.\n // eslint-disable-next-line\n // @ts-ignore\n filter: `Model${namePascalCase}FilterInput`,\n limit: 'Int',\n nextToken: 'String',\n });\n graphQLOperationType ?? (graphQLOperationType = 'query');\n graphQLSelectionSet ??\n (graphQLSelectionSet = `items { ${selectionSetFields} } nextToken __typename`);\n // TODO(Eslint): this this case clause correct without the break statement?\n case 'INDEX_QUERY':\n graphQLArguments ??\n (graphQLArguments = {\n ...indexQueryArgs,\n filter: `Model${namePascalCase}FilterInput`,\n sortDirection: 'ModelSortDirection',\n limit: 'Int',\n nextToken: 'String',\n });\n graphQLOperationType ?? (graphQLOperationType = 'query');\n graphQLSelectionSet ??\n (graphQLSelectionSet = `items { ${selectionSetFields} } nextToken __typename`);\n // TODO(Eslint): this this case clause correct without the break statement?\n case 'ONCREATE':\n case 'ONUPDATE':\n case 'ONDELETE':\n graphQLArguments ??\n (graphQLArguments = {\n filter: `ModelSubscription${namePascalCase}FilterInput`,\n });\n graphQLOperationType ?? (graphQLOperationType = 'subscription');\n graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);\n break;\n case 'OBSERVEQUERY':\n default:\n throw new Error('Internal error: Attempted to generate graphql document for observeQuery. Please report this error.');\n }\n const graphQLDocument = `${graphQLOperationType}${graphQLArguments\n ? `(${Object.entries(graphQLArguments).map(([fieldName, type]) => `$${fieldName}: ${type}`)})`\n : ''} { ${graphQLFieldName}${graphQLArguments\n ? `(${Object.keys(graphQLArguments).map((fieldName) => `${fieldName}: $${fieldName}`)})`\n : ''} { ${graphQLSelectionSet} } }`;\n return graphQLDocument;\n}\nfunction buildGraphQLVariables(modelDefinition, operation, arg, modelIntrospection, indexMeta) {\n const { fields, primaryKeyInfo: { isCustomPrimaryKey, primaryKeyFieldName, sortKeyFieldNames, }, } = modelDefinition;\n const skName = sortKeyFieldNames?.length && resolvedSkName(sortKeyFieldNames);\n let variables = {};\n // TODO: process input\n switch (operation) {\n case 'CREATE':\n variables = {\n input: arg\n ? normalizeMutationInput(arg, modelDefinition, modelIntrospection)\n : {},\n };\n break;\n case 'UPDATE':\n // readonly fields are not updated\n variables = {\n input: arg\n ? Object.fromEntries(Object.entries(normalizeMutationInput(arg, modelDefinition, modelIntrospection)).filter(([fieldName]) => {\n // omit field from update input\n // if exists in fields and marked read only\n // if does not exist in fields but implicitly added to schema via ownership\n return fields[fieldName]\n ? !fields[fieldName].isReadOnly\n : !(0, utils_1.resolveOwnerFields)(modelDefinition).includes(fieldName);\n }))\n : {},\n };\n break;\n case 'GET':\n case 'DELETE':\n // only identifiers are sent\n if (arg) {\n variables = isCustomPrimaryKey\n ? [primaryKeyFieldName, ...sortKeyFieldNames].reduce((acc, fieldName) => {\n acc[fieldName] = arg[fieldName];\n return acc;\n }, {})\n : { [primaryKeyFieldName]: arg[primaryKeyFieldName] };\n }\n if (operation === 'DELETE') {\n variables = { input: variables };\n }\n break;\n case 'LIST':\n if (arg?.filter) {\n variables.filter = arg.filter;\n }\n if (arg?.sortDirection) {\n variables.sortDirection = arg.sortDirection;\n }\n if (arg && arg[primaryKeyFieldName]) {\n variables[primaryKeyFieldName] = arg[primaryKeyFieldName];\n }\n if (skName && arg && arg[skName]) {\n variables[skName] = arg[skName];\n }\n if (arg?.nextToken) {\n variables.nextToken = arg.nextToken;\n }\n if (arg?.limit) {\n variables.limit = arg.limit;\n }\n break;\n case 'INDEX_QUERY': {\n const { pk, sk = [] } = indexMeta;\n const indexQuerySkName = sk?.length && resolvedSkName(sk);\n variables[pk] = arg[pk];\n if (indexQuerySkName && arg && arg[indexQuerySkName]) {\n variables[indexQuerySkName] = arg[indexQuerySkName];\n }\n if (arg?.filter) {\n variables.filter = arg.filter;\n }\n if (arg?.sortDirection) {\n variables.sortDirection = arg.sortDirection;\n }\n if (arg?.nextToken) {\n variables.nextToken = arg.nextToken;\n }\n if (arg?.limit) {\n variables.limit = arg.limit;\n }\n break;\n }\n case 'ONCREATE':\n case 'ONUPDATE':\n case 'ONDELETE':\n if (arg?.filter) {\n variables = { filter: arg.filter };\n }\n break;\n case 'OBSERVEQUERY':\n throw new Error('Internal error: Attempted to build variables for observeQuery. Please report this error.');\n default: {\n const exhaustiveCheck = operation;\n throw new Error(`Unhandled operation case: ${exhaustiveCheck}`);\n }\n }\n return variables;\n}\n/**\n * Iterates over mutation input values and resolves any model inputs to their corresponding join fields/values\n *\n * @example\n * ### Usage\n * ```ts\n * const result = normalizeMutationInput({ post: post }, model, modelDefinition);\n * ```\n * ### Result\n * ```ts\n * { postId: \"abc123\" }\n * ```\n *\n */\nfunction normalizeMutationInput(mutationInput, model, modelIntrospection) {\n const { fields } = model;\n const normalized = {};\n Object.entries(mutationInput).forEach(([inputFieldName, inputValue]) => {\n const fieldType = fields[inputFieldName]?.type;\n const relatedModelName = fieldType?.model;\n if (relatedModelName) {\n const association = fields[inputFieldName]?.association;\n const relatedModelDef = modelIntrospection.models[relatedModelName];\n const relatedModelPkInfo = relatedModelDef.primaryKeyInfo;\n if (association?.connectionType === connectionType.HAS_ONE) {\n const associationHasOne = association;\n associationHasOne.targetNames.forEach((targetName, idx) => {\n const associatedFieldName = associationHasOne.associatedWith[idx];\n normalized[targetName] = inputValue[associatedFieldName];\n });\n }\n if (association?.connectionType === connectionType.BELONGS_TO) {\n const associationBelongsTo = association;\n associationBelongsTo.targetNames.forEach((targetName, idx) => {\n if (idx === 0) {\n const associatedFieldName = relatedModelPkInfo.primaryKeyFieldName;\n normalized[targetName] = inputValue[associatedFieldName];\n }\n else {\n const associatedFieldName = relatedModelPkInfo.sortKeyFieldNames[idx - 1];\n normalized[targetName] = inputValue[associatedFieldName];\n }\n });\n }\n }\n else {\n normalized[inputFieldName] = inputValue;\n }\n });\n return normalized;\n}\n/**\n * Produces a parameter object that can contains auth mode/token overrides\n * only if present in either `options` (first) or configured on the `client`\n * as a fallback.\n *\n * @param client Configured client from `generateClient`\n * @param options Args/Options object from call site.\n * @returns\n */\nfunction authModeParams(client, getInternals, options = {}) {\n const internals = getInternals(client);\n return {\n authMode: options.authMode || internals.authMode,\n authToken: options.authToken || internals.authToken,\n };\n}\n/**\n * Retrieves custom headers from either the client or request options.\n * @param client V6Client | V6ClientSSRRequest | V6ClientSSRCookies - for extracting client headers\n * @param requestHeaders {@link CustomHeaders} - request headers\n * @returns custom headers as {@link CustomHeaders}\n */\nfunction getCustomHeaders(client, getInternals, requestHeaders) {\n let headers = getInternals(client).headers || {};\n // Individual request headers will take precedence over client headers.\n // We intentionally do *not* merge client and request headers.\n if (requestHeaders) {\n headers = requestHeaders;\n }\n return headers;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -93,6 +93,7 @@ function _indexQuery(client, modelIntrospection, model, indexMeta, getInternals,
|
|
|
93
93
|
? flattenedResult
|
|
94
94
|
: modelInitializer(flattenedResult),
|
|
95
95
|
nextToken: data[key]?.nextToken,
|
|
96
|
+
errors,
|
|
96
97
|
};
|
|
97
98
|
}
|
|
98
99
|
}
|
|
@@ -100,6 +101,7 @@ function _indexQuery(client, modelIntrospection, model, indexMeta, getInternals,
|
|
|
100
101
|
return {
|
|
101
102
|
data: data[key],
|
|
102
103
|
nextToken: data[key]?.nextToken,
|
|
104
|
+
errors,
|
|
103
105
|
};
|
|
104
106
|
}
|
|
105
107
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexQuery.js","sources":["../../../../../src/runtime/internals/operations/indexQuery.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.indexQueryFactory = indexQueryFactory;\nconst APIClient_1 = require(\"../APIClient\");\nconst utils_1 = require(\"./utils\");\nconst utils_2 = require(\"../../utils\");\nconst cancellation_1 = require(\"../cancellation\");\nfunction indexQueryFactory(client, modelIntrospection, model, indexMeta, getInternals, context = false) {\n const indexQueryWithContext = (contextSpec, args, options) => {\n return _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, {\n ...args,\n ...options,\n }, contextSpec);\n };\n const indexQuery = (args, options) => {\n return _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, {\n ...args,\n ...options,\n });\n };\n return context ? indexQueryWithContext : indexQuery;\n}\nfunction processGraphQlResponse(modelIntroSchema, modelName, result, selectionSet, modelInitializer) {\n const { data, extensions } = result;\n const [key] = Object.keys(data);\n if (data[key].items) {\n const flattenedResult = data[key].items.map((value) => (0, APIClient_1.flattenItems)(modelIntroSchema, modelName, value));\n return {\n data: selectionSet ? flattenedResult : modelInitializer(flattenedResult),\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n // Index queries are always list queries. No `items`? No flattening needed.\n return {\n data: data[key],\n nextToken: data[key].nextToken,\n extensions,\n };\n}\nfunction _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, args, contextSpec) {\n return (0, utils_2.selfAwareAsync)(async (resultPromise) => {\n const { name } = model;\n const query = (0, APIClient_1.generateGraphQLDocument)(modelIntrospection, model, 'INDEX_QUERY', args, indexMeta);\n const variables = (0, APIClient_1.buildGraphQLVariables)(model, 'INDEX_QUERY', args, modelIntrospection, indexMeta);\n const auth = (0, APIClient_1.authModeParams)(client, getInternals, args);\n const modelInitializer = (flattenedResult) => (0, APIClient_1.initializeModel)(client, name, flattenedResult, modelIntrospection, auth.authMode, auth.authToken, !!contextSpec);\n try {\n const headers = (0, APIClient_1.getCustomHeaders)(client, getInternals, args?.headers);\n const graphQlParams = {\n ...auth,\n query,\n variables,\n };\n const requestArgs = [graphQlParams, headers];\n if (contextSpec !== undefined) {\n requestArgs.unshift(contextSpec);\n }\n const basePromise = client.graphql(...requestArgs);\n const extendedPromise = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n const response = await extendedPromise;\n if (response.data !== undefined) {\n return processGraphQlResponse(modelIntrospection, name, response, args?.selectionSet, modelInitializer);\n }\n }\n catch (error) {\n /**\n * The `data` type returned by `error` here could be:\n * 1) `null`\n * 2) an empty object\n * 3) \"populated\" but with a `null` value:\n * `data: { listByExampleId: null }`\n * 4) an actual record:\n * `data: { listByExampleId: items: [{ id: '1', ...etc } }]`\n */\n const { data, errors } = error;\n // `data` is not `null`, and is not an empty object:\n if (data !== undefined &&\n data !== null &&\n Object.keys(data).length !== 0 &&\n errors) {\n const [key] = Object.keys(data);\n if (data[key]?.items) {\n const flattenedResult = data[key]?.items.map((value) => (0, APIClient_1.flattenItems)(modelIntrospection, name, value));\n /**\n * Check exists since `flattenedResult` could be `null`.\n * if `flattenedResult` exists, result is an actual record.\n */\n if (flattenedResult) {\n return {\n data: args?.selectionSet\n ? flattenedResult\n : modelInitializer(flattenedResult),\n nextToken: data[key]?.nextToken,\n };\n }\n }\n // response is of type `data: { listByExampleId: null }`\n return {\n data: data[key],\n nextToken: data[key]?.nextToken,\n };\n }\n else {\n // `data` is `null` or an empty object:\n return (0, utils_1.handleListGraphQlError)(error);\n }\n }\n });\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexQuery.js","sources":["../../../../../src/runtime/internals/operations/indexQuery.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.indexQueryFactory = indexQueryFactory;\nconst APIClient_1 = require(\"../APIClient\");\nconst utils_1 = require(\"./utils\");\nconst utils_2 = require(\"../../utils\");\nconst cancellation_1 = require(\"../cancellation\");\nfunction indexQueryFactory(client, modelIntrospection, model, indexMeta, getInternals, context = false) {\n const indexQueryWithContext = (contextSpec, args, options) => {\n return _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, {\n ...args,\n ...options,\n }, contextSpec);\n };\n const indexQuery = (args, options) => {\n return _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, {\n ...args,\n ...options,\n });\n };\n return context ? indexQueryWithContext : indexQuery;\n}\nfunction processGraphQlResponse(modelIntroSchema, modelName, result, selectionSet, modelInitializer) {\n const { data, extensions } = result;\n const [key] = Object.keys(data);\n if (data[key].items) {\n const flattenedResult = data[key].items.map((value) => (0, APIClient_1.flattenItems)(modelIntroSchema, modelName, value));\n return {\n data: selectionSet ? flattenedResult : modelInitializer(flattenedResult),\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n // Index queries are always list queries. No `items`? No flattening needed.\n return {\n data: data[key],\n nextToken: data[key].nextToken,\n extensions,\n };\n}\nfunction _indexQuery(client, modelIntrospection, model, indexMeta, getInternals, args, contextSpec) {\n return (0, utils_2.selfAwareAsync)(async (resultPromise) => {\n const { name } = model;\n const query = (0, APIClient_1.generateGraphQLDocument)(modelIntrospection, model, 'INDEX_QUERY', args, indexMeta);\n const variables = (0, APIClient_1.buildGraphQLVariables)(model, 'INDEX_QUERY', args, modelIntrospection, indexMeta);\n const auth = (0, APIClient_1.authModeParams)(client, getInternals, args);\n const modelInitializer = (flattenedResult) => (0, APIClient_1.initializeModel)(client, name, flattenedResult, modelIntrospection, auth.authMode, auth.authToken, !!contextSpec);\n try {\n const headers = (0, APIClient_1.getCustomHeaders)(client, getInternals, args?.headers);\n const graphQlParams = {\n ...auth,\n query,\n variables,\n };\n const requestArgs = [graphQlParams, headers];\n if (contextSpec !== undefined) {\n requestArgs.unshift(contextSpec);\n }\n const basePromise = client.graphql(...requestArgs);\n const extendedPromise = (0, cancellation_1.extendCancellability)(basePromise, resultPromise);\n const response = await extendedPromise;\n if (response.data !== undefined) {\n return processGraphQlResponse(modelIntrospection, name, response, args?.selectionSet, modelInitializer);\n }\n }\n catch (error) {\n /**\n * The `data` type returned by `error` here could be:\n * 1) `null`\n * 2) an empty object\n * 3) \"populated\" but with a `null` value:\n * `data: { listByExampleId: null }`\n * 4) an actual record:\n * `data: { listByExampleId: items: [{ id: '1', ...etc } }]`\n */\n const { data, errors } = error;\n // `data` is not `null`, and is not an empty object:\n if (data !== undefined &&\n data !== null &&\n Object.keys(data).length !== 0 &&\n errors) {\n const [key] = Object.keys(data);\n if (data[key]?.items) {\n const flattenedResult = data[key]?.items.map((value) => (0, APIClient_1.flattenItems)(modelIntrospection, name, value));\n /**\n * Check exists since `flattenedResult` could be `null`.\n * if `flattenedResult` exists, result is an actual record.\n */\n if (flattenedResult) {\n return {\n data: args?.selectionSet\n ? flattenedResult\n : modelInitializer(flattenedResult),\n nextToken: data[key]?.nextToken,\n errors,\n };\n }\n }\n // response is of type `data: { listByExampleId: null }`\n return {\n data: data[key],\n nextToken: data[key]?.nextToken,\n errors,\n };\n }\n else {\n // `data` is `null` or an empty object:\n return (0, utils_1.handleListGraphQlError)(error);\n }\n }\n });\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GenericModelSchema } from './ModelSchema';
|
|
2
2
|
import { Brand, IndexLimitUnion } from './util';
|
|
3
|
-
declare const
|
|
4
|
-
export type CombinedSchemaIndexesUnion = IndexLimitUnion<typeof
|
|
3
|
+
declare const _COMBINED_SCHEMA_LIMIT = 50;
|
|
4
|
+
export type CombinedSchemaIndexesUnion = IndexLimitUnion<typeof _COMBINED_SCHEMA_LIMIT>[number];
|
|
5
5
|
declare const CombinedSchemaBrandName = "CombinedSchema";
|
|
6
6
|
export declare const combinedSchemaBrand: Brand<"CombinedSchema">;
|
|
7
7
|
export type CombinedSchemaBrand = Brand<typeof CombinedSchemaBrandName>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CombineSchema.mjs","sources":["../../src/CombineSchema.ts"],"sourcesContent":["import { brand } from './util';\nconst
|
|
1
|
+
{"version":3,"file":"CombineSchema.mjs","sources":["../../src/CombineSchema.ts"],"sourcesContent":["import { brand } from './util';\nconst _COMBINED_SCHEMA_LIMIT = 50;\nconst CombinedSchemaBrandName = 'CombinedSchema';\nexport const combinedSchemaBrand = brand(CombinedSchemaBrandName);\n/**\n * The interface for merging up to 50 schemas into a single API.\n * @param schemas The schemas to combine into a single API\n * @returns An API and data model definition to be deployed with Amplify (Gen 2) experience (`processSchema(...)`)\n * or with the Amplify Data CDK construct (`@aws-amplify/data-construct`)\n */\nexport function combine(schemas) {\n return internalCombine(schemas);\n}\nfunction internalCombine(schemas) {\n validateDuplicateTypeNames(schemas);\n const combined = {\n ...combinedSchemaBrand,\n schemas: schemas,\n };\n for (const schema of combined.schemas) {\n schema.context = combined;\n }\n return combined;\n}\nfunction validateDuplicateTypeNames(schemas) {\n const allSchemaKeys = schemas.flatMap((s) => Object.keys(s.data.types));\n const keySet = new Set();\n const duplicateKeySet = new Set();\n allSchemaKeys.forEach((key) => {\n if (keySet.has(key)) {\n duplicateKeySet.add(key);\n }\n else {\n keySet.add(key);\n }\n });\n if (duplicateKeySet.size > 0) {\n throw new Error(`The schemas you are attempting to combine have a name collision. Please remove or rename ${Array.from(duplicateKeySet).join(', ')}.`);\n }\n}\n"],"names":[],"mappings":";;AAEA,MAAM,uBAAuB,GAAG,gBAAgB;AACpC,MAAC,mBAAmB,GAAG,KAAK,CAAC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,OAAO,CAAC,OAAO,EAAE;AACjC,IAAI,OAAO,eAAe,CAAC,OAAO,CAAC;AACnC;AACA,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,IAAI,0BAA0B,CAAC,OAAO,CAAC;AACvC,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,GAAG,mBAAmB;AAC9B,QAAQ,OAAO,EAAE,OAAO;AACxB,KAAK;AACL,IAAI,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC3C,QAAQ,MAAM,CAAC,OAAO,GAAG,QAAQ;AACjC,IAAI;AACJ,IAAI,OAAO,QAAQ;AACnB;AACA,SAAS,0BAA0B,CAAC,OAAO,EAAE;AAC7C,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3E,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE;AAC5B,IAAI,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE;AACrC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACnC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC7B,YAAY,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC3B,QAAQ;AACR,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE;AAClC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,yFAAyF,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9J,IAAI;AACJ;;;;"}
|
|
@@ -5,7 +5,7 @@ import { AllowModifier, Authorization } from './Authorization';
|
|
|
5
5
|
* Used to "attach" auth types to ModelField without exposing them on the builder.
|
|
6
6
|
*/
|
|
7
7
|
export declare const __auth: unique symbol;
|
|
8
|
-
declare const
|
|
8
|
+
declare const _brandName = "modelRelationshipField";
|
|
9
9
|
/**
|
|
10
10
|
* Model relationship types
|
|
11
11
|
*/
|
|
@@ -58,7 +58,7 @@ type ModelRelationshipFieldFunctions<T extends ModelRelationshipFieldParamShape,
|
|
|
58
58
|
*/
|
|
59
59
|
export type ModelRelationshipField<T extends ModelRelationshipFieldParamShape, RM extends string | symbol, K extends keyof ModelRelationshipField<T, RM> = never, Auth = undefined> = Omit<ModelRelationshipFieldFunctions<T, RM, K>, K> & {
|
|
60
60
|
[__auth]?: Auth;
|
|
61
|
-
} & Brand<typeof
|
|
61
|
+
} & Brand<typeof _brandName>;
|
|
62
62
|
/**
|
|
63
63
|
* Internal representation of Model Field that exposes the `data` property.
|
|
64
64
|
* Used at buildtime.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelRelationshipField.mjs","sources":["../../src/ModelRelationshipField.ts"],"sourcesContent":["import { allow } from './Authorization';\n/**\n * Used to \"attach\" auth types to ModelField without exposing them on the builder.\n */\nexport const __auth = Symbol('__auth');\nconst
|
|
1
|
+
{"version":3,"file":"ModelRelationshipField.mjs","sources":["../../src/ModelRelationshipField.ts"],"sourcesContent":["import { allow } from './Authorization';\n/**\n * Used to \"attach\" auth types to ModelField without exposing them on the builder.\n */\nexport const __auth = Symbol('__auth');\nconst _brandName = 'modelRelationshipField';\n/**\n * Model relationship types\n */\nexport var ModelRelationshipTypes;\n(function (ModelRelationshipTypes) {\n ModelRelationshipTypes[\"hasOne\"] = \"hasOne\";\n ModelRelationshipTypes[\"hasMany\"] = \"hasMany\";\n ModelRelationshipTypes[\"belongsTo\"] = \"belongsTo\";\n})(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(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 */\nexport function hasOne(relatedModel, references) {\n return _modelRelationshipField(ModelRelationshipTypes.hasOne, relatedModel, Array.isArray(references) ? references : [references]);\n}\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 */\nexport function hasMany(relatedModel, references) {\n return _modelRelationshipField(ModelRelationshipTypes.hasMany, relatedModel, Array.isArray(references) ? references : [references]);\n}\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 */\nexport function belongsTo(relatedModel, references) {\n return _modelRelationshipField(ModelRelationshipTypes.belongsTo, relatedModel, Array.isArray(references) ? references : [references]);\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/RefType.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { SetTypeSubArg } from '@aws-amplify/data-schema-types';
|
|
|
2
2
|
import { Brand } from './util';
|
|
3
3
|
import { AllowModifier, Authorization } from './Authorization';
|
|
4
4
|
import { __auth } from './ModelField';
|
|
5
|
-
declare const
|
|
5
|
+
declare const _brandName = "ref";
|
|
6
6
|
type RefTypeData = {
|
|
7
7
|
type: 'ref';
|
|
8
8
|
link: string;
|
|
@@ -44,7 +44,7 @@ export type RefType<T extends RefTypeParamShape, K extends keyof RefType<T> = ne
|
|
|
44
44
|
mutations(operations: MutationOperations[]): RefType<T, K | 'mutations'>;
|
|
45
45
|
}, K> & {
|
|
46
46
|
[__auth]?: Auth;
|
|
47
|
-
} & Brand<typeof
|
|
47
|
+
} & Brand<typeof _brandName>;
|
|
48
48
|
/**
|
|
49
49
|
* Internal representation of Ref that exposes the `data` property.
|
|
50
50
|
* Used at buildtime.
|
package/dist/esm/RefType.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefType.mjs","sources":["../../src/RefType.ts"],"sourcesContent":["import { allow } from './Authorization';\nimport { __auth } from './ModelField';\nconst
|
|
1
|
+
{"version":3,"file":"RefType.mjs","sources":["../../src/RefType.ts"],"sourcesContent":["import { allow } from './Authorization';\nimport { __auth } from './ModelField';\nconst _brandName = 'ref';\nfunction brandedBuilder(builder) {\n return builder;\n}\nfunction _ref(link) {\n const data = {\n type: 'ref',\n link,\n valueRequired: false,\n array: false,\n arrayRequired: false,\n mutationOperations: [],\n authorization: [],\n };\n const builder = brandedBuilder({\n required() {\n if (data.array) {\n data.arrayRequired = true;\n }\n else {\n data.valueRequired = true;\n }\n return this;\n },\n array() {\n data.array = true;\n return this;\n },\n authorization(callback) {\n const rules = callback(allow);\n data.authorization = Array.isArray(rules) ? rules : [rules];\n return this;\n },\n mutations(operations) {\n data.mutationOperations = operations;\n return this;\n },\n });\n return { ...builder, data };\n}\nexport function ref(link) {\n return _ref(link);\n}\n"],"names":[],"mappings":";;;AAGA,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,IAAI,OAAO,OAAO;AAClB;AACA,SAAS,IAAI,CAAC,IAAI,EAAE;AACpB,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,IAAI;AACZ,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,kBAAkB,EAAE,EAAE;AAC9B,QAAQ,aAAa,EAAE,EAAE;AACzB,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,cAAc,CAAC;AACnC,QAAQ,QAAQ,GAAG;AACnB,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI;AACzC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI;AACzC,YAAY;AACZ,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC;AACT,QAAQ,KAAK,GAAG;AAChB,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI;AAC7B,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC;AACT,QAAQ,aAAa,CAAC,QAAQ,EAAE;AAChC,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACzC,YAAY,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AACvE,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC;AACT,QAAQ,SAAS,CAAC,UAAU,EAAE;AAC9B,YAAY,IAAI,CAAC,kBAAkB,GAAG,UAAU;AAChD,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC;AACT,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE;AAC/B;AACO,SAAS,GAAG,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB;;;;"}
|
|
@@ -2,7 +2,7 @@ import { accessData } from '../Authorization.mjs';
|
|
|
2
2
|
import { capitalize } from '../runtime/utils/stringTransformation.mjs';
|
|
3
3
|
|
|
4
4
|
const createConversationField = (typeDef, typeName) => {
|
|
5
|
-
const { aiModel, systemPrompt, handler, tools } = typeDef;
|
|
5
|
+
const { aiModel, systemPrompt, inferenceConfiguration, handler, tools } = typeDef;
|
|
6
6
|
const { strategy, provider } = extractAuthorization(typeDef, typeName);
|
|
7
7
|
const args = {
|
|
8
8
|
aiModel: aiModel.resourcePath,
|
|
@@ -17,9 +17,17 @@ const createConversationField = (typeDef, typeName) => {
|
|
|
17
17
|
// It doesn't affect non multi-line string inputs for system prompts
|
|
18
18
|
systemPrompt: systemPrompt.replace(/\r?\n/g, '\\n'),
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
// Add each arg with quotes (aiModel and systemPrompt)
|
|
21
|
+
const argsParts = [];
|
|
22
|
+
for (const [key, value] of Object.entries(args)) {
|
|
23
|
+
argsParts.push(`${key}: "${value}"`);
|
|
24
|
+
}
|
|
25
|
+
// Add inferenceConfiguration (do nothing if it doesn't exist or is empty)
|
|
26
|
+
const formattedInferenceConfig = formatInferenceConfig(inferenceConfiguration);
|
|
27
|
+
if (formattedInferenceConfig) {
|
|
28
|
+
argsParts.push(`inferenceConfiguration: ${formattedInferenceConfig}`);
|
|
29
|
+
}
|
|
30
|
+
const argsString = argsParts.join(', ');
|
|
23
31
|
const authString = `, auth: { strategy: ${strategy}, provider: ${provider} }`;
|
|
24
32
|
const functionHandler = {};
|
|
25
33
|
let handlerString = '';
|
|
@@ -36,6 +44,22 @@ const createConversationField = (typeDef, typeName) => {
|
|
|
36
44
|
const field = `${typeName}(conversationId: ID!, content: [AmplifyAIContentBlockInput], aiContext: AWSJSON, toolConfiguration: AmplifyAIToolConfigurationInput): AmplifyAIConversationMessage ${conversationDirective} @aws_cognito_user_pools`;
|
|
37
45
|
return { field, functionHandler };
|
|
38
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* Format inferenceConfiguration as GraphQL input syntax.
|
|
49
|
+
* Returns null if config is undefined or has no valid properties.
|
|
50
|
+
*/
|
|
51
|
+
const formatInferenceConfig = (config) => {
|
|
52
|
+
if (!config)
|
|
53
|
+
return null;
|
|
54
|
+
const parts = [];
|
|
55
|
+
if (config.temperature !== undefined)
|
|
56
|
+
parts.push(`temperature: ${config.temperature}`);
|
|
57
|
+
if (config.maxTokens !== undefined)
|
|
58
|
+
parts.push(`maxTokens: ${config.maxTokens}`);
|
|
59
|
+
if (config.topP !== undefined)
|
|
60
|
+
parts.push(`topP: ${config.topP}`);
|
|
61
|
+
return parts.length > 0 ? `{ ${parts.join(', ')} }` : null;
|
|
62
|
+
};
|
|
39
63
|
const isRef = (query) => query?.data?.type === 'ref';
|
|
40
64
|
const extractAuthorization = (typeDef, typeName) => {
|
|
41
65
|
const { authorization } = typeDef.data;
|