@graphql-tools/delegate 6.0.10-alpha-19feca2.0 → 6.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../dist/delegate/src/symbols.js","../../../dist/delegate/src/Subschema.js","../../../dist/delegate/src/createRequest.js","../../../dist/delegate/src/transforms/ExpandAbstractTypes.js","../../../dist/delegate/src/transforms/WrapConcreteTypes.js","../../../dist/delegate/src/transforms/FilterToSchema.js","../../../dist/delegate/src/transforms/AddFragmentsByField.js","../../../dist/delegate/src/transforms/AddSelectionSetsByField.js","../../../dist/delegate/src/transforms/AddSelectionSetsByType.js","../../../dist/delegate/src/transforms/AddTypenameToAbstract.js","../../../dist/delegate/src/results/handleNull.js","../../../dist/delegate/src/proxiedResult.js","../../../dist/delegate/src/mergeFields.js","../../../dist/delegate/src/results/handleObject.js","../../../dist/delegate/src/results/handleList.js","../../../dist/delegate/src/results/handleResult.js","../../../dist/delegate/src/transforms/CheckResultAndHandleErrors.js","../../../dist/delegate/src/transforms/AddArgumentsAsVariables.js","../../../dist/delegate/src/delegationBindings.js","../../../dist/delegate/src/Transformer.js","../../../dist/delegate/src/delegateToSchema.js","../../../dist/delegate/src/defaultMergedResolver.js","../../../dist/delegate/src/createMergedResolver.js","../../../dist/delegate/src/transforms/ReplaceFieldWithFragment.js"],"sourcesContent":["export const OBJECT_SUBSCHEMA_SYMBOL = Symbol('initialSubschema');\nexport const FIELD_SUBSCHEMA_MAP_SYMBOL = Symbol('subschemaMap');\n//# sourceMappingURL=symbols.js.map","import { applySchemaTransforms } from '@graphql-tools/utils';\nimport { FIELD_SUBSCHEMA_MAP_SYMBOL, OBJECT_SUBSCHEMA_SYMBOL } from './symbols';\nexport function getSubschema(result, responseKey) {\n const subschema = result[FIELD_SUBSCHEMA_MAP_SYMBOL] && result[FIELD_SUBSCHEMA_MAP_SYMBOL][responseKey];\n return subschema || result[OBJECT_SUBSCHEMA_SYMBOL];\n}\nexport function setObjectSubschema(result, subschema) {\n result[OBJECT_SUBSCHEMA_SYMBOL] = subschema;\n}\nexport function isSubschemaConfig(value) {\n return Boolean(value.schema);\n}\nexport function isSubschema(value) {\n return Boolean(value.transformedSchema);\n}\nexport class Subschema {\n constructor(config) {\n var _a;\n this.schema = config.schema;\n this.executor = config.executor;\n this.subscriber = config.subscriber;\n this.createProxyingResolver = config.createProxyingResolver;\n this.transforms = (_a = config.transforms) !== null && _a !== void 0 ? _a : [];\n this.merge = config.merge;\n this.transformedSchema = applySchemaTransforms(this.schema, this.transforms);\n }\n}\n//# sourceMappingURL=Subschema.js.map","import { Kind, typeFromAST, } from 'graphql';\nimport { serializeInputValue, updateArgument } from '@graphql-tools/utils';\nexport function getDelegatingOperation(parentType, schema) {\n if (parentType === schema.getMutationType()) {\n return 'mutation';\n }\n else if (parentType === schema.getSubscriptionType()) {\n return 'subscription';\n }\n return 'query';\n}\nexport function createRequestFromInfo({ info, operation = getDelegatingOperation(info.parentType, info.schema), fieldName = info.fieldName, selectionSet, fieldNodes = info.fieldNodes, }) {\n return createRequest({\n sourceSchema: info.schema,\n sourceParentType: info.parentType,\n sourceFieldName: info.fieldName,\n fragments: info.fragments,\n variableDefinitions: info.operation.variableDefinitions,\n variableValues: info.variableValues,\n targetOperation: operation,\n targetFieldName: fieldName,\n selectionSet,\n fieldNodes,\n });\n}\nexport function createRequest({ sourceSchema, sourceParentType, sourceFieldName, fragments, variableDefinitions, variableValues, targetOperation, targetFieldName, selectionSet, fieldNodes, }) {\n var _a;\n let newSelectionSet = selectionSet;\n let argumentNodeMap;\n if (fieldNodes == null) {\n argumentNodeMap = Object.create(null);\n }\n else {\n const selections = fieldNodes.reduce((acc, fieldNode) => (fieldNode.selectionSet != null ? acc.concat(fieldNode.selectionSet.selections) : acc), []);\n newSelectionSet = selections.length\n ? {\n kind: Kind.SELECTION_SET,\n selections,\n }\n : undefined;\n argumentNodeMap = {};\n const args = (_a = fieldNodes[0]) === null || _a === void 0 ? void 0 : _a.arguments;\n if (args) {\n argumentNodeMap = args.reduce((prev, curr) => ({\n ...prev,\n [curr.name.value]: curr,\n }), argumentNodeMap);\n }\n }\n const newVariables = Object.create(null);\n const variableDefinitionMap = Object.create(null);\n if (sourceSchema != null && variableDefinitions != null) {\n variableDefinitions.forEach(def => {\n const varName = def.variable.name.value;\n variableDefinitionMap[varName] = def;\n const varType = typeFromAST(sourceSchema, def.type);\n const serializedValue = serializeInputValue(varType, variableValues[varName]);\n if (serializedValue !== undefined) {\n newVariables[varName] = serializedValue;\n }\n });\n }\n if (sourceParentType != null) {\n updateArgumentsWithDefaults(sourceParentType, sourceFieldName, argumentNodeMap, variableDefinitionMap, newVariables);\n }\n const rootfieldNode = {\n kind: Kind.FIELD,\n arguments: Object.keys(argumentNodeMap).map(argName => argumentNodeMap[argName]),\n name: {\n kind: Kind.NAME,\n value: targetFieldName || fieldNodes[0].name.value,\n },\n selectionSet: newSelectionSet,\n };\n const operationDefinition = {\n kind: Kind.OPERATION_DEFINITION,\n operation: targetOperation,\n variableDefinitions: Object.keys(variableDefinitionMap).map(varName => variableDefinitionMap[varName]),\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [rootfieldNode],\n },\n };\n let definitions = [operationDefinition];\n if (fragments != null) {\n definitions = definitions.concat(Object.keys(fragments).map(fragmentName => fragments[fragmentName]));\n }\n const document = {\n kind: Kind.DOCUMENT,\n definitions,\n };\n return {\n document,\n variables: newVariables,\n };\n}\nfunction updateArgumentsWithDefaults(sourceParentType, sourceFieldName, argumentNodeMap, variableDefinitionMap, variableValues) {\n const sourceField = sourceParentType.getFields()[sourceFieldName];\n sourceField.args.forEach((argument) => {\n const argName = argument.name;\n const sourceArgType = argument.type;\n if (argumentNodeMap[argName] === undefined) {\n const defaultValue = argument.defaultValue;\n if (defaultValue !== undefined) {\n updateArgument(argName, sourceArgType, argumentNodeMap, variableDefinitionMap, variableValues, serializeInputValue(sourceArgType, defaultValue));\n }\n }\n });\n}\n//# sourceMappingURL=createRequest.js.map","import { Kind, TypeInfo, getNamedType, isAbstractType, visit, visitWithTypeInfo, } from 'graphql';\nimport { implementsAbstractType } from '@graphql-tools/utils';\nexport default class ExpandAbstractTypes {\n constructor(sourceSchema, targetSchema) {\n this.targetSchema = targetSchema;\n this.mapping = extractPossibleTypes(sourceSchema, targetSchema);\n this.reverseMapping = flipMapping(this.mapping);\n }\n transformRequest(originalRequest) {\n const document = expandAbstractTypes(this.targetSchema, this.mapping, this.reverseMapping, originalRequest.document);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction extractPossibleTypes(sourceSchema, targetSchema) {\n const typeMap = sourceSchema.getTypeMap();\n const mapping = Object.create(null);\n Object.keys(typeMap).forEach(typeName => {\n const type = typeMap[typeName];\n if (isAbstractType(type)) {\n const targetType = targetSchema.getType(typeName);\n if (!isAbstractType(targetType)) {\n const implementations = sourceSchema.getPossibleTypes(type);\n mapping[typeName] = implementations.filter(impl => targetSchema.getType(impl.name)).map(impl => impl.name);\n }\n }\n });\n return mapping;\n}\nfunction flipMapping(mapping) {\n const result = Object.create(null);\n Object.keys(mapping).forEach(typeName => {\n const toTypeNames = mapping[typeName];\n toTypeNames.forEach(toTypeName => {\n if (!(toTypeName in result)) {\n result[toTypeName] = [];\n }\n result[toTypeName].push(typeName);\n });\n });\n return result;\n}\nfunction expandAbstractTypes(targetSchema, mapping, reverseMapping, document) {\n const operations = document.definitions.filter(def => def.kind === Kind.OPERATION_DEFINITION);\n const fragments = document.definitions.filter(def => def.kind === Kind.FRAGMENT_DEFINITION);\n const existingFragmentNames = fragments.map(fragment => fragment.name.value);\n let fragmentCounter = 0;\n const generateFragmentName = (typeName) => {\n let fragmentName;\n do {\n fragmentName = `_${typeName}_Fragment${fragmentCounter.toString()}`;\n fragmentCounter++;\n } while (existingFragmentNames.indexOf(fragmentName) !== -1);\n return fragmentName;\n };\n const newFragments = [];\n const fragmentReplacements = Object.create(null);\n fragments.forEach((fragment) => {\n newFragments.push(fragment);\n const possibleTypes = mapping[fragment.typeCondition.name.value];\n if (possibleTypes != null) {\n fragmentReplacements[fragment.name.value] = [];\n possibleTypes.forEach(possibleTypeName => {\n const name = generateFragmentName(possibleTypeName);\n existingFragmentNames.push(name);\n const newFragment = {\n kind: Kind.FRAGMENT_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: name,\n },\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: possibleTypeName,\n },\n },\n selectionSet: fragment.selectionSet,\n };\n newFragments.push(newFragment);\n fragmentReplacements[fragment.name.value].push({\n fragmentName: name,\n typeName: possibleTypeName,\n });\n });\n }\n });\n const newDocument = {\n ...document,\n definitions: [...operations, ...newFragments],\n };\n const typeInfo = new TypeInfo(targetSchema);\n return visit(newDocument, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const newSelections = [...node.selections];\n const maybeType = typeInfo.getParentType();\n if (maybeType != null) {\n const parentType = getNamedType(maybeType);\n node.selections.forEach((selection) => {\n if (selection.kind === Kind.INLINE_FRAGMENT) {\n if (selection.typeCondition != null) {\n const possibleTypes = mapping[selection.typeCondition.name.value];\n if (possibleTypes != null) {\n possibleTypes.forEach(possibleType => {\n const maybePossibleType = targetSchema.getType(possibleType);\n if (maybePossibleType != null &&\n implementsAbstractType(targetSchema, parentType, maybePossibleType)) {\n newSelections.push({\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: possibleType,\n },\n },\n selectionSet: selection.selectionSet,\n });\n }\n });\n }\n }\n }\n else if (selection.kind === Kind.FRAGMENT_SPREAD) {\n const fragmentName = selection.name.value;\n if (fragmentName in fragmentReplacements) {\n fragmentReplacements[fragmentName].forEach(replacement => {\n const typeName = replacement.typeName;\n const maybeReplacementType = targetSchema.getType(typeName);\n if (maybeReplacementType != null && implementsAbstractType(targetSchema, parentType, maybeType)) {\n newSelections.push({\n kind: Kind.FRAGMENT_SPREAD,\n name: {\n kind: Kind.NAME,\n value: replacement.fragmentName,\n },\n });\n }\n });\n }\n }\n });\n if (parentType.name in reverseMapping) {\n newSelections.push({\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n });\n }\n }\n if (newSelections.length !== node.selections.length) {\n return {\n ...node,\n selections: newSelections,\n };\n }\n },\n }));\n}\n//# sourceMappingURL=ExpandAbstractTypes.js.map","import { Kind, getNamedType, isAbstractType, TypeInfo, visit, visitWithTypeInfo, isObjectType, } from 'graphql';\n// For motivation, see https://github.com/ardatan/graphql-tools/issues/751\nexport default class WrapConcreteTypes {\n constructor(returnType, targetSchema) {\n this.returnType = returnType;\n this.targetSchema = targetSchema;\n }\n transformRequest(originalRequest) {\n const document = wrapConcreteTypes(this.returnType, this.targetSchema, originalRequest.document);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction wrapConcreteTypes(returnType, targetSchema, document) {\n const namedType = getNamedType(returnType);\n if (!isObjectType(namedType)) {\n return document;\n }\n const queryRootType = targetSchema.getQueryType();\n const mutationRootType = targetSchema.getMutationType();\n const subscriptionRootType = targetSchema.getSubscriptionType();\n const typeInfo = new TypeInfo(targetSchema);\n const newDocument = visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.FIELD](node) {\n const maybeType = typeInfo.getParentType();\n if (maybeType == null) {\n return false;\n }\n const parentType = getNamedType(maybeType);\n if (parentType !== queryRootType && parentType !== mutationRootType && parentType !== subscriptionRootType) {\n return false;\n }\n if (!isAbstractType(getNamedType(typeInfo.getType()))) {\n return false;\n }\n return {\n ...node,\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [\n {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: namedType.name,\n },\n },\n selectionSet: node.selectionSet,\n },\n ],\n },\n };\n },\n }));\n return newDocument;\n}\n//# sourceMappingURL=WrapConcreteTypes.js.map","import { Kind, TypeNameMetaFieldDef, visit, TypeInfo, visitWithTypeInfo, getNamedType, isObjectType, isInterfaceType, } from 'graphql';\nimport { implementsAbstractType } from '@graphql-tools/utils';\nexport default class FilterToSchema {\n constructor(targetSchema) {\n this.targetSchema = targetSchema;\n }\n transformRequest(originalRequest) {\n return {\n ...originalRequest,\n ...filterToSchema(this.targetSchema, originalRequest.document, originalRequest.variables),\n };\n }\n}\nfunction filterToSchema(targetSchema, document, variables) {\n const operations = document.definitions.filter(def => def.kind === Kind.OPERATION_DEFINITION);\n const fragments = document.definitions.filter(def => def.kind === Kind.FRAGMENT_DEFINITION);\n let usedVariables = [];\n let usedFragments = [];\n const newOperations = [];\n let newFragments = [];\n const validFragments = fragments.filter((fragment) => {\n const typeName = fragment.typeCondition.name.value;\n return Boolean(targetSchema.getType(typeName));\n });\n const validFragmentsWithType = validFragments.reduce((prev, fragment) => ({\n ...prev,\n [fragment.name.value]: targetSchema.getType(fragment.typeCondition.name.value),\n }), {});\n let fragmentSet = Object.create(null);\n operations.forEach((operation) => {\n let type;\n if (operation.operation === 'subscription') {\n type = targetSchema.getSubscriptionType();\n }\n else if (operation.operation === 'mutation') {\n type = targetSchema.getMutationType();\n }\n else {\n type = targetSchema.getQueryType();\n }\n const { selectionSet, usedFragments: operationUsedFragments, usedVariables: operationUsedVariables, } = filterSelectionSet(targetSchema, type, validFragmentsWithType, operation.selectionSet);\n usedFragments = union(usedFragments, operationUsedFragments);\n const { usedVariables: collectedUsedVariables, newFragments: collectedNewFragments, fragmentSet: collectedFragmentSet, } = collectFragmentVariables(targetSchema, fragmentSet, validFragments, validFragmentsWithType, usedFragments);\n const operationOrFragmentVariables = union(operationUsedVariables, collectedUsedVariables);\n usedVariables = union(usedVariables, operationOrFragmentVariables);\n newFragments = collectedNewFragments;\n fragmentSet = collectedFragmentSet;\n const variableDefinitions = operation.variableDefinitions.filter((variable) => operationOrFragmentVariables.indexOf(variable.variable.name.value) !== -1);\n newOperations.push({\n kind: Kind.OPERATION_DEFINITION,\n operation: operation.operation,\n name: operation.name,\n directives: operation.directives,\n variableDefinitions,\n selectionSet,\n });\n });\n const newVariables = usedVariables.reduce((acc, variableName) => {\n const variableValue = variables[variableName];\n if (variableValue !== undefined) {\n acc[variableName] = variableValue;\n }\n return acc;\n }, {});\n return {\n document: {\n kind: Kind.DOCUMENT,\n definitions: [...newOperations, ...newFragments],\n },\n variables: newVariables,\n };\n}\nfunction collectFragmentVariables(targetSchema, fragmentSet, validFragments, validFragmentsWithType, usedFragments) {\n let remainingFragments = usedFragments.slice();\n let usedVariables = [];\n const newFragments = [];\n while (remainingFragments.length !== 0) {\n const nextFragmentName = remainingFragments.pop();\n const fragment = validFragments.find(fr => fr.name.value === nextFragmentName);\n if (fragment != null) {\n const name = nextFragmentName;\n const typeName = fragment.typeCondition.name.value;\n const type = targetSchema.getType(typeName);\n const { selectionSet, usedFragments: fragmentUsedFragments, usedVariables: fragmentUsedVariables, } = filterSelectionSet(targetSchema, type, validFragmentsWithType, fragment.selectionSet);\n remainingFragments = union(remainingFragments, fragmentUsedFragments);\n usedVariables = union(usedVariables, fragmentUsedVariables);\n if (!(name in fragmentSet)) {\n fragmentSet[name] = true;\n newFragments.push({\n kind: Kind.FRAGMENT_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: name,\n },\n typeCondition: fragment.typeCondition,\n selectionSet,\n });\n }\n }\n }\n return {\n usedVariables,\n newFragments,\n fragmentSet,\n };\n}\nfunction filterSelectionSet(schema, type, validFragments, selectionSet) {\n const usedFragments = [];\n const usedVariables = [];\n const typeInfo = new TypeInfo(schema, undefined, type);\n const filteredSelectionSet = visit(selectionSet, visitWithTypeInfo(typeInfo, {\n [Kind.FIELD]: {\n enter(node) {\n const parentType = typeInfo.getParentType();\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n const fields = parentType.getFields();\n const field = node.name.value === '__typename' ? TypeNameMetaFieldDef : fields[node.name.value];\n if (!field) {\n return null;\n }\n const argNames = (field.args != null ? field.args : []).map(arg => arg.name);\n if (node.arguments != null) {\n const args = node.arguments.filter((arg) => argNames.indexOf(arg.name.value) !== -1);\n if (args.length !== node.arguments.length) {\n return {\n ...node,\n arguments: args,\n };\n }\n }\n }\n },\n leave(node) {\n const resolvedType = getNamedType(typeInfo.getType());\n if (isObjectType(resolvedType) || isInterfaceType(resolvedType)) {\n const selections = node.selectionSet != null ? node.selectionSet.selections : null;\n if (selections == null || selections.length === 0) {\n // need to remove any added variables. Is there a better way to do this?\n visit(node, {\n [Kind.VARIABLE](variableNode) {\n const index = usedVariables.indexOf(variableNode.name.value);\n if (index !== -1) {\n usedVariables.splice(index, 1);\n }\n },\n });\n return null;\n }\n }\n },\n },\n [Kind.FRAGMENT_SPREAD](node) {\n if (node.name.value in validFragments) {\n const parentType = typeInfo.getParentType();\n const innerType = validFragments[node.name.value];\n if (!implementsAbstractType(schema, parentType, innerType)) {\n return null;\n }\n usedFragments.push(node.name.value);\n return;\n }\n return null;\n },\n [Kind.INLINE_FRAGMENT]: {\n enter(node) {\n if (node.typeCondition != null) {\n const parentType = typeInfo.getParentType();\n const innerType = schema.getType(node.typeCondition.name.value);\n if (!implementsAbstractType(schema, parentType, innerType)) {\n return null;\n }\n }\n },\n },\n [Kind.VARIABLE](node) {\n usedVariables.push(node.name.value);\n },\n }));\n return {\n selectionSet: filteredSelectionSet,\n usedFragments,\n usedVariables,\n };\n}\nfunction union(...arrays) {\n const cache = Object.create(null);\n const result = [];\n arrays.forEach(array => {\n array.forEach(item => {\n if (!(item in cache)) {\n cache[item] = true;\n result.push(item);\n }\n });\n });\n return result;\n}\n//# sourceMappingURL=FilterToSchema.js.map","import { Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql';\nexport default class AddFragmentsByField {\n constructor(targetSchema, mapping) {\n this.targetSchema = targetSchema;\n this.mapping = mapping;\n }\n transformRequest(originalRequest) {\n const document = addFragmentsByField(this.targetSchema, originalRequest.document, this.mapping);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction addFragmentsByField(targetSchema, document, mapping) {\n const typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n let selections = node.selections;\n if (parentTypeName in mapping) {\n node.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const name = selection.name.value;\n const fragment = mapping[parentTypeName][name];\n if (fragment != null) {\n selections = selections.concat(fragment);\n }\n }\n });\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n }\n },\n }));\n}\n//# sourceMappingURL=AddFragmentsByField.js.map","import { Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql';\nexport default class AddSelectionSetsByField {\n constructor(schema, mapping) {\n this.schema = schema;\n this.mapping = mapping;\n }\n transformRequest(originalRequest) {\n const document = addSelectionSetsByField(this.schema, originalRequest.document, this.mapping);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction addSelectionSetsByField(schema, document, mapping) {\n const typeInfo = new TypeInfo(schema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n let selections = node.selections;\n if (parentTypeName in mapping) {\n node.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const name = selection.name.value;\n const selectionSet = mapping[parentTypeName][name];\n if (selectionSet != null) {\n selections = selections.concat(selectionSet.selections);\n }\n }\n });\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n }\n },\n }));\n}\n//# sourceMappingURL=AddSelectionSetsByField.js.map","import { Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql';\nexport default class AddSelectionSetsByType {\n constructor(targetSchema, mapping) {\n this.targetSchema = targetSchema;\n this.mapping = mapping;\n }\n transformRequest(originalRequest) {\n const document = addSelectionSetsByType(this.targetSchema, originalRequest.document, this.mapping);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction addSelectionSetsByType(targetSchema, document, mapping) {\n const typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n let selections = node.selections;\n if (parentTypeName in mapping) {\n const selectionSet = mapping[parentTypeName];\n if (selectionSet != null) {\n selections = selections.concat(selectionSet.selections);\n }\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n }\n },\n }));\n}\n//# sourceMappingURL=AddSelectionSetsByType.js.map","import { TypeInfo, visit, visitWithTypeInfo, Kind, isAbstractType, } from 'graphql';\nexport default class AddTypenameToAbstract {\n constructor(targetSchema) {\n this.targetSchema = targetSchema;\n }\n transformRequest(originalRequest) {\n const document = addTypenameToAbstract(this.targetSchema, originalRequest.document);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction addTypenameToAbstract(targetSchema, document) {\n const typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n let selections = node.selections;\n if (parentType != null && isAbstractType(parentType)) {\n selections = selections.concat({\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n });\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n },\n }));\n}\n//# sourceMappingURL=AddTypenameToAbstract.js.map","import { getErrorsByPathSegment, CombinedError, relocatedError } from '@graphql-tools/utils';\nexport function handleNull(errors) {\n if (errors.length) {\n if (errors.some(error => !error.path || error.path.length < 2)) {\n if (errors.length > 1) {\n const combinedError = new CombinedError(errors);\n return combinedError;\n }\n const error = errors[0];\n return error.originalError || relocatedError(error, null);\n }\n else if (errors.some(error => typeof error.path[1] === 'string')) {\n const childErrors = getErrorsByPathSegment(errors);\n const result = {};\n Object.keys(childErrors).forEach(pathSegment => {\n result[pathSegment] = handleNull(childErrors[pathSegment]);\n });\n return result;\n }\n const childErrors = getErrorsByPathSegment(errors);\n const result = [];\n Object.keys(childErrors).forEach(pathSegment => {\n result.push(handleNull(childErrors[pathSegment]));\n });\n return result;\n }\n return null;\n}\n//# sourceMappingURL=handleNull.js.map","import { mergeDeep, ERROR_SYMBOL, relocatedError, setErrors, getErrors } from '@graphql-tools/utils';\nimport { handleNull } from './results/handleNull';\nimport { FIELD_SUBSCHEMA_MAP_SYMBOL, OBJECT_SUBSCHEMA_SYMBOL } from './symbols';\nimport { getSubschema, setObjectSubschema } from './Subschema';\nexport function isProxiedResult(result) {\n return result != null ? result[ERROR_SYMBOL] : result;\n}\nexport function unwrapResult(parent, path) {\n let newParent = parent;\n const pathLength = path.length;\n for (let i = 0; i < pathLength; i++) {\n const responseKey = path[i];\n const errors = getErrors(newParent, responseKey);\n const subschema = getSubschema(newParent, responseKey);\n const object = newParent[responseKey];\n if (object == null) {\n return handleNull(errors);\n }\n setErrors(object, errors.map(error => relocatedError(error, error.path != null ? error.path.slice(1) : undefined)));\n setObjectSubschema(object, subschema);\n newParent = object;\n }\n return newParent;\n}\nexport function dehoistResult(parent, delimeter = '__gqltf__') {\n const result = Object.create(null);\n Object.keys(parent).forEach(alias => {\n let obj = result;\n const fieldNames = alias.split(delimeter);\n const fieldName = fieldNames.pop();\n fieldNames.forEach(key => {\n obj = obj[key] = obj[key] || Object.create(null);\n });\n obj[fieldName] = parent[alias];\n });\n result[ERROR_SYMBOL] = parent[ERROR_SYMBOL].map((error) => {\n if (error.path != null) {\n const path = error.path.slice();\n const pathSegment = path.shift();\n const expandedPathSegment = pathSegment.split(delimeter);\n return relocatedError(error, expandedPathSegment.concat(path));\n }\n return error;\n });\n result[OBJECT_SUBSCHEMA_SYMBOL] = parent[OBJECT_SUBSCHEMA_SYMBOL];\n return result;\n}\nexport function mergeProxiedResults(target, ...sources) {\n const errors = target[ERROR_SYMBOL].concat(...sources.map((source) => source[ERROR_SYMBOL]));\n const fieldSubschemaMap = sources.reduce((acc, source) => {\n const subschema = source[OBJECT_SUBSCHEMA_SYMBOL];\n Object.keys(source).forEach(key => {\n acc[key] = subschema;\n });\n return acc;\n }, {});\n const result = sources.reduce(mergeDeep, target);\n result[ERROR_SYMBOL] = errors;\n result[FIELD_SUBSCHEMA_MAP_SYMBOL] = target[FIELD_SUBSCHEMA_MAP_SYMBOL]\n ? mergeDeep(target[FIELD_SUBSCHEMA_MAP_SYMBOL], fieldSubschemaMap)\n : fieldSubschemaMap;\n return result;\n}\n//# sourceMappingURL=proxiedResult.js.map","import { Kind } from 'graphql';\nimport { mergeProxiedResults } from './proxiedResult';\nfunction buildDelegationPlan(mergedTypeInfo, originalSelections, sourceSubschemas, targetSubschemas) {\n // 1. calculate if possible to delegate to given subschema\n // TODO: change logic so that required selection set can be spread across multiple subschemas?\n const proxiableSubschemas = [];\n const nonProxiableSubschemas = [];\n targetSubschemas.forEach(t => {\n if (sourceSubschemas.some(s => {\n const selectionSet = mergedTypeInfo.selectionSets.get(t);\n return mergedTypeInfo.containsSelectionSet.get(s).get(selectionSet);\n })) {\n proxiableSubschemas.push(t);\n }\n else {\n nonProxiableSubschemas.push(t);\n }\n });\n const { uniqueFields, nonUniqueFields } = mergedTypeInfo;\n const unproxiableSelections = [];\n // 2. for each selection:\n const delegationMap = new Map();\n originalSelections.forEach(selection => {\n if (selection.name.value === '__typename') {\n return;\n }\n // 2a. use uniqueFields map to assign fields to subschema if one of possible subschemas\n const uniqueSubschema = uniqueFields[selection.name.value];\n if (uniqueSubschema != null) {\n if (proxiableSubschemas.includes(uniqueSubschema)) {\n const existingSubschema = delegationMap.get(uniqueSubschema);\n if (existingSubschema != null) {\n existingSubschema.push(selection);\n }\n else {\n delegationMap.set(uniqueSubschema, [selection]);\n }\n }\n else {\n unproxiableSelections.push(selection);\n }\n }\n else {\n // 2b. use nonUniqueFields to assign to a possible subschema,\n // preferring one of the subschemas already targets of delegation\n let nonUniqueSubschemas = nonUniqueFields[selection.name.value];\n nonUniqueSubschemas = nonUniqueSubschemas.filter(s => proxiableSubschemas.includes(s));\n if (nonUniqueSubschemas != null) {\n const subschemas = Array.from(delegationMap.keys());\n const existingSubschema = nonUniqueSubschemas.find(s => subschemas.includes(s));\n if (existingSubschema != null) {\n delegationMap.get(existingSubschema).push(selection);\n }\n else {\n delegationMap.set(nonUniqueSubschemas[0], [selection]);\n }\n }\n else {\n unproxiableSelections.push(selection);\n }\n }\n });\n return {\n delegationMap,\n unproxiableSelections,\n proxiableSubschemas,\n nonProxiableSubschemas,\n };\n}\nexport function mergeFields(mergedTypeInfo, typeName, object, originalSelections, sourceSubschemas, targetSubschemas, context, info) {\n if (!originalSelections.length) {\n return object;\n }\n const { delegationMap, unproxiableSelections, proxiableSubschemas, nonProxiableSubschemas } = buildDelegationPlan(mergedTypeInfo, originalSelections, sourceSubschemas, targetSubschemas);\n if (!delegationMap.size) {\n return object;\n }\n const maybePromises = [];\n delegationMap.forEach((selections, s) => {\n const maybePromise = s.merge[typeName].resolve(object, context, info, s, {\n kind: Kind.SELECTION_SET,\n selections,\n });\n maybePromises.push(maybePromise);\n });\n let containsPromises = false;\n for (const maybePromise of maybePromises) {\n if (maybePromise instanceof Promise) {\n containsPromises = true;\n break;\n }\n }\n return containsPromises\n ? Promise.all(maybePromises).then(results => mergeFields(mergedTypeInfo, typeName, mergeProxiedResults(object, ...results), unproxiableSelections, sourceSubschemas.concat(proxiableSubschemas), nonProxiableSubschemas, context, info))\n : mergeFields(mergedTypeInfo, typeName, mergeProxiedResults(object, ...maybePromises), unproxiableSelections, sourceSubschemas.concat(proxiableSubschemas), nonProxiableSubschemas, context, info);\n}\n//# sourceMappingURL=mergeFields.js.map","import { isAbstractType, } from 'graphql';\nimport { collectFields, setErrors, slicedError } from '@graphql-tools/utils';\nimport { setObjectSubschema, isSubschemaConfig } from '../Subschema';\nimport { mergeFields } from '../mergeFields';\nexport function handleObject(type, object, errors, subschema, context, info, skipTypeMerging) {\n var _a;\n const stitchingInfo = (_a = info === null || info === void 0 ? void 0 : info.schema.extensions) === null || _a === void 0 ? void 0 : _a.stitchingInfo;\n setErrors(object, errors.map(error => slicedError(error)));\n setObjectSubschema(object, subschema);\n if (skipTypeMerging || !stitchingInfo) {\n return object;\n }\n const typeName = isAbstractType(type) ? info.schema.getTypeMap()[object.__typename].name : type.name;\n const mergedTypeInfo = stitchingInfo.mergedTypes[typeName];\n let targetSubschemas;\n if (mergedTypeInfo != null) {\n targetSubschemas = mergedTypeInfo.subschemas;\n }\n if (!targetSubschemas) {\n return object;\n }\n targetSubschemas = targetSubschemas.filter(s => s !== subschema);\n if (!targetSubschemas.length) {\n return object;\n }\n const subFields = collectSubFields(info, object.__typename);\n const selections = getFieldsNotInSubschema(subFields, subschema, mergedTypeInfo, object.__typename);\n return mergeFields(mergedTypeInfo, typeName, object, selections, [subschema], targetSubschemas, context, info);\n}\nfunction collectSubFields(info, typeName) {\n let subFieldNodes = Object.create(null);\n const visitedFragmentNames = Object.create(null);\n info.fieldNodes.forEach(fieldNode => {\n subFieldNodes = collectFields({\n schema: info.schema,\n variableValues: info.variableValues,\n fragments: info.fragments,\n }, info.schema.getType(typeName), fieldNode.selectionSet, subFieldNodes, visitedFragmentNames);\n });\n return subFieldNodes;\n}\nfunction getFieldsNotInSubschema(subFieldNodes, subschema, mergedTypeInfo, typeName) {\n const typeMap = isSubschemaConfig(subschema) ? mergedTypeInfo.typeMaps.get(subschema) : subschema.getTypeMap();\n const fields = typeMap[typeName].getFields();\n const fieldsNotInSchema = [];\n Object.keys(subFieldNodes).forEach(responseName => {\n subFieldNodes[responseName].forEach(subFieldNode => {\n if (!(subFieldNode.name.value in fields)) {\n fieldsNotInSchema.push(subFieldNode);\n }\n });\n });\n return fieldsNotInSchema;\n}\n//# sourceMappingURL=handleObject.js.map","import { getNullableType, isLeafType, isCompositeType, isListType, } from 'graphql';\nimport { getErrorsByPathSegment } from '@graphql-tools/utils';\nimport { handleNull } from './handleNull';\nimport { handleObject } from './handleObject';\nexport function handleList(type, list, errors, subschema, context, info, skipTypeMerging) {\n const childErrors = getErrorsByPathSegment(errors);\n return list.map((listMember, index) => handleListMember(getNullableType(type.ofType), listMember, index in childErrors ? childErrors[index] : [], subschema, context, info, skipTypeMerging));\n}\nfunction handleListMember(type, listMember, errors, subschema, context, info, skipTypeMerging) {\n if (listMember == null) {\n return handleNull(errors);\n }\n if (isLeafType(type)) {\n return type.parseValue(listMember);\n }\n else if (isCompositeType(type)) {\n return handleObject(type, listMember, errors, subschema, context, info, skipTypeMerging);\n }\n else if (isListType(type)) {\n return handleList(type, listMember, errors, subschema, context, info, skipTypeMerging);\n }\n}\n//# sourceMappingURL=handleList.js.map","import { getNullableType, isCompositeType, isLeafType, isListType, } from 'graphql';\nimport { handleNull } from './handleNull';\nimport { handleObject } from './handleObject';\nimport { handleList } from './handleList';\nexport function handleResult(result, errors, subschema, context, info, returnType = info.returnType, skipTypeMerging) {\n const type = getNullableType(returnType);\n if (result == null) {\n return handleNull(errors);\n }\n if (isLeafType(type)) {\n return type.parseValue(result);\n }\n else if (isCompositeType(type)) {\n return handleObject(type, result, errors, subschema, context, info, skipTypeMerging);\n }\n else if (isListType(type)) {\n return handleList(type, result, errors, subschema, context, info, skipTypeMerging);\n }\n}\n//# sourceMappingURL=handleResult.js.map","import { getResponseKeyFromInfo } from '@graphql-tools/utils';\nimport { handleResult } from '../results/handleResult';\nexport default class CheckResultAndHandleErrors {\n constructor(info, fieldName, subschema, context, returnType = info.returnType, typeMerge) {\n this.context = context;\n this.info = info;\n this.fieldName = fieldName;\n this.subschema = subschema;\n this.returnType = returnType;\n this.typeMerge = typeMerge;\n }\n transformResult(result) {\n return checkResultAndHandleErrors(result, this.context != null ? this.context : {}, this.info, this.fieldName, this.subschema, this.returnType, this.typeMerge);\n }\n}\nexport function checkResultAndHandleErrors(result, context, info, responseKey = getResponseKeyFromInfo(info), subschema, returnType = info.returnType, skipTypeMerging) {\n const errors = result.errors != null ? result.errors : [];\n const data = result.data != null ? result.data[responseKey] : undefined;\n return handleResult(data, errors, subschema, context, info, returnType, skipTypeMerging);\n}\n//# sourceMappingURL=CheckResultAndHandleErrors.js.map","import { Kind, } from 'graphql';\nimport { serializeInputValue, updateArgument } from '@graphql-tools/utils';\nexport default class AddArgumentsAsVariables {\n constructor(targetSchema, args) {\n this.targetSchema = targetSchema;\n this.args = Object.entries(args).reduce((prev, [key, val]) => ({\n ...prev,\n [key]: val,\n }), {});\n }\n transformRequest(originalRequest) {\n const { document, variables } = addVariablesToRootField(this.targetSchema, originalRequest, this.args);\n return {\n ...originalRequest,\n document,\n variables,\n };\n }\n}\nfunction addVariablesToRootField(targetSchema, originalRequest, args) {\n const document = originalRequest.document;\n const variableValues = originalRequest.variables;\n const operations = document.definitions.filter(def => def.kind === Kind.OPERATION_DEFINITION);\n const fragments = document.definitions.filter(def => def.kind === Kind.FRAGMENT_DEFINITION);\n const newOperations = operations.map((operation) => {\n const variableDefinitionMap = operation.variableDefinitions.reduce((prev, def) => ({\n ...prev,\n [def.variable.name.value]: def,\n }), {});\n let type;\n if (operation.operation === 'subscription') {\n type = targetSchema.getSubscriptionType();\n }\n else if (operation.operation === 'mutation') {\n type = targetSchema.getMutationType();\n }\n else {\n type = targetSchema.getQueryType();\n }\n const newSelectionSet = [];\n operation.selectionSet.selections.forEach((selection) => {\n if (selection.kind === Kind.FIELD) {\n const argumentNodes = selection.arguments;\n const argumentNodeMap = argumentNodes.reduce((prev, argument) => ({\n ...prev,\n [argument.name.value]: argument,\n }), {});\n const targetField = type.getFields()[selection.name.value];\n // excludes __typename\n if (targetField != null) {\n updateArguments(targetField, argumentNodeMap, variableDefinitionMap, variableValues, args);\n }\n newSelectionSet.push({\n ...selection,\n arguments: Object.keys(argumentNodeMap).map(argName => argumentNodeMap[argName]),\n });\n }\n else {\n newSelectionSet.push(selection);\n }\n });\n return {\n ...operation,\n variableDefinitions: Object.keys(variableDefinitionMap).map(varName => variableDefinitionMap[varName]),\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: newSelectionSet,\n },\n };\n });\n return {\n document: {\n ...document,\n definitions: [...newOperations, ...fragments],\n },\n variables: variableValues,\n };\n}\nfunction updateArguments(targetField, argumentNodeMap, variableDefinitionMap, variableValues, newArgs) {\n targetField.args.forEach((argument) => {\n const argName = argument.name;\n const argType = argument.type;\n if (argName in newArgs) {\n updateArgument(argName, argType, argumentNodeMap, variableDefinitionMap, variableValues, serializeInputValue(argType, newArgs[argName]));\n }\n });\n}\n//# sourceMappingURL=AddArgumentsAsVariables.js.map","import ExpandAbstractTypes from './transforms/ExpandAbstractTypes';\nimport WrapConcreteTypes from './transforms/WrapConcreteTypes';\nimport FilterToSchema from './transforms/FilterToSchema';\nimport AddFragmentsByField from './transforms/AddFragmentsByField';\nimport AddSelectionSetsByField from './transforms/AddSelectionSetsByField';\nimport AddSelectionSetsByType from './transforms/AddSelectionSetsByType';\nimport AddTypenameToAbstract from './transforms/AddTypenameToAbstract';\nimport CheckResultAndHandleErrors from './transforms/CheckResultAndHandleErrors';\nimport AddArgumentsAsVariables from './transforms/AddArgumentsAsVariables';\nexport function defaultDelegationBinding(delegationContext) {\n var _a;\n const { subschema: schemaOrSubschemaConfig, targetSchema, fieldName, args, context, info, returnType, transforms = [], skipTypeMerging, } = delegationContext;\n const stitchingInfo = (_a = info === null || info === void 0 ? void 0 : info.schema.extensions) === null || _a === void 0 ? void 0 : _a.stitchingInfo;\n let transformedSchema = stitchingInfo === null || stitchingInfo === void 0 ? void 0 : stitchingInfo.transformedSchemas.get(schemaOrSubschemaConfig);\n if (transformedSchema != null) {\n delegationContext.transformedSchema = transformedSchema;\n }\n else {\n transformedSchema = delegationContext.transformedSchema;\n }\n let delegationTransforms = [\n new CheckResultAndHandleErrors(info, fieldName, schemaOrSubschemaConfig, context, returnType, skipTypeMerging),\n ];\n if (stitchingInfo != null) {\n delegationTransforms = delegationTransforms.concat([\n new AddSelectionSetsByField(info.schema, stitchingInfo.selectionSetsByField),\n new AddSelectionSetsByType(info.schema, stitchingInfo.selectionSetsByType),\n new WrapConcreteTypes(returnType, transformedSchema),\n new ExpandAbstractTypes(info.schema, transformedSchema),\n ]);\n }\n else if (info != null) {\n delegationTransforms = delegationTransforms.concat([\n new WrapConcreteTypes(returnType, transformedSchema),\n new ExpandAbstractTypes(info.schema, transformedSchema),\n ]);\n }\n else {\n delegationTransforms.push(new WrapConcreteTypes(returnType, transformedSchema));\n }\n delegationTransforms = delegationTransforms.concat(transforms.slice().reverse());\n if (stitchingInfo != null) {\n delegationTransforms.push(new AddFragmentsByField(targetSchema, stitchingInfo.fragmentsByField));\n }\n if (args != null) {\n delegationTransforms.push(new AddArgumentsAsVariables(targetSchema, args));\n }\n delegationTransforms = delegationTransforms.concat([\n new FilterToSchema(targetSchema),\n new AddTypenameToAbstract(targetSchema),\n ]);\n return delegationTransforms;\n}\n//# sourceMappingURL=delegationBindings.js.map","import { defaultDelegationBinding } from './delegationBindings';\nexport class Transformer {\n constructor(context, binding = defaultDelegationBinding) {\n this.transformations = [];\n this.delegationContext = context;\n const delegationTransforms = binding(this.delegationContext);\n delegationTransforms.forEach(transform => this.addTransform(transform, {}));\n }\n addTransform(transform, context = {}) {\n this.transformations.push({ transform, context });\n }\n transformRequest(originalRequest) {\n return this.transformations.reduce((request, transformation) => transformation.transform.transformRequest != null\n ? transformation.transform.transformRequest(request, this.delegationContext, transformation.context)\n : request, originalRequest);\n }\n transformResult(originalResult) {\n return this.transformations.reduceRight((result, transformation) => transformation.transform.transformResult != null\n ? transformation.transform.transformResult(result, this.delegationContext, transformation.context)\n : result, originalResult);\n }\n}\n//# sourceMappingURL=Transformer.js.map","import { subscribe, execute, validate, isSchema, getOperationAST, } from 'graphql';\nimport { mapAsyncIterator, CombinedError } from '@graphql-tools/utils';\nimport { isSubschemaConfig } from './Subschema';\nimport { createRequestFromInfo, getDelegatingOperation } from './createRequest';\nimport { Transformer } from './Transformer';\nexport function delegateToSchema(options) {\n if (isSchema(options)) {\n throw new Error('Passing positional arguments to delegateToSchema is deprecated. ' + 'Please pass named parameters instead.');\n }\n const { info, operation = getDelegatingOperation(info.parentType, info.schema), fieldName = info.fieldName, returnType = info.returnType, selectionSet, fieldNodes, } = options;\n const request = createRequestFromInfo({\n info,\n operation,\n fieldName,\n selectionSet,\n fieldNodes,\n });\n return delegateRequest({\n ...options,\n request,\n operation,\n fieldName,\n returnType,\n });\n}\nfunction getDelegationReturnType(targetSchema, operation, fieldName) {\n let rootType;\n if (operation === 'query') {\n rootType = targetSchema.getQueryType();\n }\n else if (operation === 'mutation') {\n rootType = targetSchema.getMutationType();\n }\n else {\n rootType = targetSchema.getSubscriptionType();\n }\n return rootType.getFields()[fieldName].type;\n}\nexport function delegateRequest({ request, schema: subschemaOrSubschemaConfig, rootValue, info, operation, fieldName, args, returnType, context, transforms = [], transformedSchema, skipValidation, skipTypeMerging, binding, }) {\n var _a, _b;\n let operationDefinition;\n let targetOperation;\n let targetFieldName;\n if (operation == null) {\n operationDefinition = getOperationAST(request.document, undefined);\n targetOperation = operationDefinition.operation;\n }\n else {\n targetOperation = operation;\n }\n if (fieldName == null) {\n operationDefinition = operationDefinition !== null && operationDefinition !== void 0 ? operationDefinition : getOperationAST(request.document, undefined);\n targetFieldName = operationDefinition.selectionSet.selections[0].name.value;\n }\n else {\n targetFieldName = fieldName;\n }\n let targetSchema;\n let targetRootValue;\n let subschemaConfig;\n let allTransforms;\n if (isSubschemaConfig(subschemaOrSubschemaConfig)) {\n subschemaConfig = subschemaOrSubschemaConfig;\n targetSchema = subschemaConfig.schema;\n targetRootValue = (_a = rootValue !== null && rootValue !== void 0 ? rootValue : subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.rootValue) !== null && _a !== void 0 ? _a : info === null || info === void 0 ? void 0 : info.rootValue;\n allTransforms =\n subschemaOrSubschemaConfig.transforms != null\n ? subschemaOrSubschemaConfig.transforms.concat(transforms)\n : transforms;\n }\n else {\n targetSchema = subschemaOrSubschemaConfig;\n targetRootValue = rootValue !== null && rootValue !== void 0 ? rootValue : info === null || info === void 0 ? void 0 : info.rootValue;\n allTransforms = transforms;\n }\n const delegationContext = {\n subschema: subschemaOrSubschemaConfig,\n targetSchema,\n operation: targetOperation,\n fieldName: targetFieldName,\n args,\n context,\n info,\n returnType: (_b = returnType !== null && returnType !== void 0 ? returnType : info === null || info === void 0 ? void 0 : info.returnType) !== null && _b !== void 0 ? _b : getDelegationReturnType(targetSchema, targetOperation, targetFieldName),\n transforms: allTransforms,\n transformedSchema: transformedSchema !== null && transformedSchema !== void 0 ? transformedSchema : targetSchema,\n skipTypeMerging,\n };\n const transformer = new Transformer(delegationContext, binding);\n const processedRequest = transformer.transformRequest(request);\n if (!skipValidation) {\n validateRequest(targetSchema, processedRequest.document);\n }\n if (targetOperation === 'query' || targetOperation === 'mutation') {\n const executor = (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.executor) || createDefaultExecutor(targetSchema, (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.rootValue) || targetRootValue);\n const executionResult = executor({\n document: processedRequest.document,\n variables: processedRequest.variables,\n context,\n info,\n });\n if (executionResult instanceof Promise) {\n return executionResult.then(originalResult => transformer.transformResult(originalResult));\n }\n return transformer.transformResult(executionResult);\n }\n const subscriber = (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.subscriber) || createDefaultSubscriber(targetSchema, (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.rootValue) || targetRootValue);\n return subscriber({\n document: processedRequest.document,\n variables: processedRequest.variables,\n context,\n info,\n }).then((subscriptionResult) => {\n if (Symbol.asyncIterator in subscriptionResult) {\n // \"subscribe\" to the subscription result and map the result through the transforms\n return mapAsyncIterator(subscriptionResult, originalResult => ({\n [targetFieldName]: transformer.transformResult(originalResult),\n }));\n }\n return transformer.transformResult(subscriptionResult);\n });\n}\nfunction validateRequest(targetSchema, document) {\n const errors = validate(targetSchema, document);\n if (errors.length > 0) {\n if (errors.length > 1) {\n const combinedError = new CombinedError(errors);\n throw combinedError;\n }\n const error = errors[0];\n throw error.originalError || error;\n }\n}\nfunction createDefaultExecutor(schema, rootValue) {\n return ({ document, context, variables, info }) => execute({\n schema,\n document,\n contextValue: context,\n variableValues: variables,\n rootValue: rootValue !== null && rootValue !== void 0 ? rootValue : info === null || info === void 0 ? void 0 : info.rootValue,\n });\n}\nfunction createDefaultSubscriber(schema, rootValue) {\n return ({ document, context, variables, info }) => subscribe({\n schema,\n document,\n contextValue: context,\n variableValues: variables,\n rootValue: rootValue !== null && rootValue !== void 0 ? rootValue : info === null || info === void 0 ? void 0 : info.rootValue,\n });\n}\n//# sourceMappingURL=delegateToSchema.js.map","import { defaultFieldResolver } from 'graphql';\nimport { getResponseKeyFromInfo, getErrors } from '@graphql-tools/utils';\nimport { handleResult } from './results/handleResult';\nimport { getSubschema } from './Subschema';\n/**\n * Resolver that knows how to:\n * a) handle aliases for proxied schemas\n * b) handle errors from proxied schemas\n * c) handle external to internal enum coversion\n */\nexport function defaultMergedResolver(parent, args, context, info) {\n if (!parent) {\n return null;\n }\n const responseKey = getResponseKeyFromInfo(info);\n const errors = getErrors(parent, responseKey);\n // check to see if parent is not a proxied result, i.e. if parent resolver was manually overwritten\n // See https://github.com/apollographql/graphql-tools/issues/967\n if (!errors) {\n return defaultFieldResolver(parent, args, context, info);\n }\n const result = parent[responseKey];\n const subschema = getSubschema(parent, responseKey);\n return handleResult(result, errors, subschema, context, info);\n}\n//# sourceMappingURL=defaultMergedResolver.js.map","import { unwrapResult, dehoistResult } from './proxiedResult';\nimport { defaultMergedResolver } from './defaultMergedResolver';\nexport function createMergedResolver({ fromPath, dehoist, delimeter = '__gqltf__', }) {\n const parentErrorResolver = (parent, args, context, info) => parent instanceof Error ? parent : defaultMergedResolver(parent, args, context, info);\n const unwrappingResolver = fromPath != null\n ? (parent, args, context, info) => parentErrorResolver(unwrapResult(parent, fromPath), args, context, info)\n : parentErrorResolver;\n const dehoistingResolver = dehoist\n ? (parent, args, context, info) => unwrappingResolver(dehoistResult(parent, delimeter), args, context, info)\n : unwrappingResolver;\n const noParentResolver = (parent, args, context, info) => parent ? dehoistingResolver(parent, args, context, info) : {};\n return noParentResolver;\n}\n//# sourceMappingURL=createMergedResolver.js.map","import { Kind, TypeInfo, parse, visit, visitWithTypeInfo, } from 'graphql';\nimport { concatInlineFragments } from '@graphql-tools/utils';\nexport default class ReplaceFieldWithFragment {\n constructor(targetSchema, fragments) {\n this.targetSchema = targetSchema;\n this.mapping = {};\n for (const { field, fragment } of fragments) {\n const parsedFragment = parseFragmentToInlineFragment(fragment);\n const actualTypeName = parsedFragment.typeCondition.name.value;\n if (!(actualTypeName in this.mapping)) {\n this.mapping[actualTypeName] = Object.create(null);\n }\n const typeMapping = this.mapping[actualTypeName];\n if (!(field in typeMapping)) {\n typeMapping[field] = [parsedFragment];\n }\n else {\n typeMapping[field].push(parsedFragment);\n }\n }\n }\n transformRequest(originalRequest) {\n const document = replaceFieldsWithFragments(this.targetSchema, originalRequest.document, this.mapping);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction replaceFieldsWithFragments(targetSchema, document, mapping) {\n const typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n let selections = node.selections;\n if (parentTypeName in mapping) {\n node.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const name = selection.name.value;\n const fragments = mapping[parentTypeName][name];\n if (fragments != null && fragments.length > 0) {\n const fragment = concatInlineFragments(parentTypeName, fragments);\n selections = selections.concat(fragment);\n }\n }\n });\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n }\n },\n }));\n}\nfunction parseFragmentToInlineFragment(definitions) {\n if (definitions.trim().startsWith('fragment')) {\n const document = parse(definitions);\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: definition.typeCondition,\n selectionSet: definition.selectionSet,\n };\n }\n }\n }\n const query = parse(`{${definitions}}`).definitions[0];\n for (const selection of query.selectionSet.selections) {\n if (selection.kind === Kind.INLINE_FRAGMENT) {\n return selection;\n }\n }\n throw new Error('Could not parse fragment');\n}\n//# sourceMappingURL=ReplaceFieldWithFragment.js.map"],"names":["applySchemaTransforms","Kind","typeFromAST","serializeInputValue","updateArgument","isAbstractType","TypeInfo","visit","visitWithTypeInfo","getNamedType","implementsAbstractType","isObjectType","isInterfaceType","TypeNameMetaFieldDef","CombinedError","relocatedError","getErrorsByPathSegment","getErrors","setErrors","ERROR_SYMBOL","mergeDeep","slicedError","collectFields","getNullableType","isLeafType","isCompositeType","isListType","getResponseKeyFromInfo","isSchema","getOperationAST","mapAsyncIterator","validate","execute","subscribe","defaultFieldResolver","concatInlineFragments","parse"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../dist/delegate/src/symbols.js","../../../dist/delegate/src/Subschema.js","../../../dist/delegate/src/createRequest.js","../../../dist/delegate/src/transforms/ExpandAbstractTypes.js","../../../dist/delegate/src/transforms/WrapConcreteTypes.js","../../../dist/delegate/src/transforms/FilterToSchema.js","../../../dist/delegate/src/transforms/AddFragmentsByField.js","../../../dist/delegate/src/transforms/AddSelectionSetsByField.js","../../../dist/delegate/src/transforms/AddSelectionSetsByType.js","../../../dist/delegate/src/transforms/AddTypenameToAbstract.js","../../../dist/delegate/src/results/handleNull.js","../../../dist/delegate/src/proxiedResult.js","../../../dist/delegate/src/mergeFields.js","../../../dist/delegate/src/results/handleObject.js","../../../dist/delegate/src/results/handleList.js","../../../dist/delegate/src/results/handleResult.js","../../../dist/delegate/src/transforms/CheckResultAndHandleErrors.js","../../../dist/delegate/src/transforms/AddArgumentsAsVariables.js","../../../dist/delegate/src/delegationBindings.js","../../../dist/delegate/src/Transformer.js","../../../dist/delegate/src/delegateToSchema.js","../../../dist/delegate/src/defaultMergedResolver.js","../../../dist/delegate/src/createMergedResolver.js","../../../dist/delegate/src/transforms/ReplaceFieldWithFragment.js"],"sourcesContent":["export const OBJECT_SUBSCHEMA_SYMBOL = Symbol('initialSubschema');\nexport const FIELD_SUBSCHEMA_MAP_SYMBOL = Symbol('subschemaMap');\n//# sourceMappingURL=symbols.js.map","import { applySchemaTransforms } from '@graphql-tools/utils';\nimport { FIELD_SUBSCHEMA_MAP_SYMBOL, OBJECT_SUBSCHEMA_SYMBOL } from './symbols';\nexport function getSubschema(result, responseKey) {\n const subschema = result[FIELD_SUBSCHEMA_MAP_SYMBOL] && result[FIELD_SUBSCHEMA_MAP_SYMBOL][responseKey];\n return subschema || result[OBJECT_SUBSCHEMA_SYMBOL];\n}\nexport function setObjectSubschema(result, subschema) {\n result[OBJECT_SUBSCHEMA_SYMBOL] = subschema;\n}\nexport function isSubschemaConfig(value) {\n return Boolean(value.schema);\n}\nexport function isSubschema(value) {\n return Boolean(value.transformedSchema);\n}\nexport class Subschema {\n constructor(config) {\n var _a;\n this.schema = config.schema;\n this.executor = config.executor;\n this.subscriber = config.subscriber;\n this.createProxyingResolver = config.createProxyingResolver;\n this.transforms = (_a = config.transforms) !== null && _a !== void 0 ? _a : [];\n this.merge = config.merge;\n this.transformedSchema = applySchemaTransforms(this.schema, this.transforms);\n }\n}\n//# sourceMappingURL=Subschema.js.map","import { Kind, typeFromAST, } from 'graphql';\nimport { serializeInputValue, updateArgument } from '@graphql-tools/utils';\nexport function getDelegatingOperation(parentType, schema) {\n if (parentType === schema.getMutationType()) {\n return 'mutation';\n }\n else if (parentType === schema.getSubscriptionType()) {\n return 'subscription';\n }\n return 'query';\n}\nexport function createRequestFromInfo({ info, operation = getDelegatingOperation(info.parentType, info.schema), fieldName = info.fieldName, selectionSet, fieldNodes = info.fieldNodes, }) {\n return createRequest({\n sourceSchema: info.schema,\n sourceParentType: info.parentType,\n sourceFieldName: info.fieldName,\n fragments: info.fragments,\n variableDefinitions: info.operation.variableDefinitions,\n variableValues: info.variableValues,\n targetOperation: operation,\n targetFieldName: fieldName,\n selectionSet,\n fieldNodes,\n });\n}\nexport function createRequest({ sourceSchema, sourceParentType, sourceFieldName, fragments, variableDefinitions, variableValues, targetOperation, targetFieldName, selectionSet, fieldNodes, }) {\n var _a;\n let newSelectionSet = selectionSet;\n let argumentNodeMap;\n if (fieldNodes == null) {\n argumentNodeMap = Object.create(null);\n }\n else {\n const selections = fieldNodes.reduce((acc, fieldNode) => (fieldNode.selectionSet != null ? acc.concat(fieldNode.selectionSet.selections) : acc), []);\n newSelectionSet = selections.length\n ? {\n kind: Kind.SELECTION_SET,\n selections,\n }\n : undefined;\n argumentNodeMap = {};\n const args = (_a = fieldNodes[0]) === null || _a === void 0 ? void 0 : _a.arguments;\n if (args) {\n argumentNodeMap = args.reduce((prev, curr) => ({\n ...prev,\n [curr.name.value]: curr,\n }), argumentNodeMap);\n }\n }\n const newVariables = Object.create(null);\n const variableDefinitionMap = Object.create(null);\n if (sourceSchema != null && variableDefinitions != null) {\n variableDefinitions.forEach(def => {\n const varName = def.variable.name.value;\n variableDefinitionMap[varName] = def;\n const varType = typeFromAST(sourceSchema, def.type);\n const serializedValue = serializeInputValue(varType, variableValues[varName]);\n if (serializedValue !== undefined) {\n newVariables[varName] = serializedValue;\n }\n });\n }\n if (sourceParentType != null) {\n updateArgumentsWithDefaults(sourceParentType, sourceFieldName, argumentNodeMap, variableDefinitionMap, newVariables);\n }\n const rootfieldNode = {\n kind: Kind.FIELD,\n arguments: Object.keys(argumentNodeMap).map(argName => argumentNodeMap[argName]),\n name: {\n kind: Kind.NAME,\n value: targetFieldName || fieldNodes[0].name.value,\n },\n selectionSet: newSelectionSet,\n };\n const operationDefinition = {\n kind: Kind.OPERATION_DEFINITION,\n operation: targetOperation,\n variableDefinitions: Object.keys(variableDefinitionMap).map(varName => variableDefinitionMap[varName]),\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [rootfieldNode],\n },\n };\n let definitions = [operationDefinition];\n if (fragments != null) {\n definitions = definitions.concat(Object.keys(fragments).map(fragmentName => fragments[fragmentName]));\n }\n const document = {\n kind: Kind.DOCUMENT,\n definitions,\n };\n return {\n document,\n variables: newVariables,\n };\n}\nfunction updateArgumentsWithDefaults(sourceParentType, sourceFieldName, argumentNodeMap, variableDefinitionMap, variableValues) {\n const sourceField = sourceParentType.getFields()[sourceFieldName];\n sourceField.args.forEach((argument) => {\n const argName = argument.name;\n const sourceArgType = argument.type;\n if (argumentNodeMap[argName] === undefined) {\n const defaultValue = argument.defaultValue;\n if (defaultValue !== undefined) {\n updateArgument(argName, sourceArgType, argumentNodeMap, variableDefinitionMap, variableValues, serializeInputValue(sourceArgType, defaultValue));\n }\n }\n });\n}\n//# sourceMappingURL=createRequest.js.map","import { Kind, TypeInfo, getNamedType, isAbstractType, visit, visitWithTypeInfo, } from 'graphql';\nimport { implementsAbstractType } from '@graphql-tools/utils';\nexport default class ExpandAbstractTypes {\n constructor(sourceSchema, targetSchema) {\n this.targetSchema = targetSchema;\n this.mapping = extractPossibleTypes(sourceSchema, targetSchema);\n this.reverseMapping = flipMapping(this.mapping);\n }\n transformRequest(originalRequest) {\n const document = expandAbstractTypes(this.targetSchema, this.mapping, this.reverseMapping, originalRequest.document);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction extractPossibleTypes(sourceSchema, targetSchema) {\n const typeMap = sourceSchema.getTypeMap();\n const mapping = Object.create(null);\n Object.keys(typeMap).forEach(typeName => {\n const type = typeMap[typeName];\n if (isAbstractType(type)) {\n const targetType = targetSchema.getType(typeName);\n if (!isAbstractType(targetType)) {\n const implementations = sourceSchema.getPossibleTypes(type);\n mapping[typeName] = implementations.filter(impl => targetSchema.getType(impl.name)).map(impl => impl.name);\n }\n }\n });\n return mapping;\n}\nfunction flipMapping(mapping) {\n const result = Object.create(null);\n Object.keys(mapping).forEach(typeName => {\n const toTypeNames = mapping[typeName];\n toTypeNames.forEach(toTypeName => {\n if (!(toTypeName in result)) {\n result[toTypeName] = [];\n }\n result[toTypeName].push(typeName);\n });\n });\n return result;\n}\nfunction expandAbstractTypes(targetSchema, mapping, reverseMapping, document) {\n const operations = document.definitions.filter(def => def.kind === Kind.OPERATION_DEFINITION);\n const fragments = document.definitions.filter(def => def.kind === Kind.FRAGMENT_DEFINITION);\n const existingFragmentNames = fragments.map(fragment => fragment.name.value);\n let fragmentCounter = 0;\n const generateFragmentName = (typeName) => {\n let fragmentName;\n do {\n fragmentName = `_${typeName}_Fragment${fragmentCounter.toString()}`;\n fragmentCounter++;\n } while (existingFragmentNames.indexOf(fragmentName) !== -1);\n return fragmentName;\n };\n const newFragments = [];\n const fragmentReplacements = Object.create(null);\n fragments.forEach((fragment) => {\n newFragments.push(fragment);\n const possibleTypes = mapping[fragment.typeCondition.name.value];\n if (possibleTypes != null) {\n fragmentReplacements[fragment.name.value] = [];\n possibleTypes.forEach(possibleTypeName => {\n const name = generateFragmentName(possibleTypeName);\n existingFragmentNames.push(name);\n const newFragment = {\n kind: Kind.FRAGMENT_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: name,\n },\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: possibleTypeName,\n },\n },\n selectionSet: fragment.selectionSet,\n };\n newFragments.push(newFragment);\n fragmentReplacements[fragment.name.value].push({\n fragmentName: name,\n typeName: possibleTypeName,\n });\n });\n }\n });\n const newDocument = {\n ...document,\n definitions: [...operations, ...newFragments],\n };\n const typeInfo = new TypeInfo(targetSchema);\n return visit(newDocument, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const newSelections = [...node.selections];\n const maybeType = typeInfo.getParentType();\n if (maybeType != null) {\n const parentType = getNamedType(maybeType);\n node.selections.forEach((selection) => {\n if (selection.kind === Kind.INLINE_FRAGMENT) {\n if (selection.typeCondition != null) {\n const possibleTypes = mapping[selection.typeCondition.name.value];\n if (possibleTypes != null) {\n possibleTypes.forEach(possibleType => {\n const maybePossibleType = targetSchema.getType(possibleType);\n if (maybePossibleType != null &&\n implementsAbstractType(targetSchema, parentType, maybePossibleType)) {\n newSelections.push({\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: possibleType,\n },\n },\n selectionSet: selection.selectionSet,\n });\n }\n });\n }\n }\n }\n else if (selection.kind === Kind.FRAGMENT_SPREAD) {\n const fragmentName = selection.name.value;\n if (fragmentName in fragmentReplacements) {\n fragmentReplacements[fragmentName].forEach(replacement => {\n const typeName = replacement.typeName;\n const maybeReplacementType = targetSchema.getType(typeName);\n if (maybeReplacementType != null && implementsAbstractType(targetSchema, parentType, maybeType)) {\n newSelections.push({\n kind: Kind.FRAGMENT_SPREAD,\n name: {\n kind: Kind.NAME,\n value: replacement.fragmentName,\n },\n });\n }\n });\n }\n }\n });\n if (parentType.name in reverseMapping) {\n newSelections.push({\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n });\n }\n }\n if (newSelections.length !== node.selections.length) {\n return {\n ...node,\n selections: newSelections,\n };\n }\n },\n }));\n}\n//# sourceMappingURL=ExpandAbstractTypes.js.map","import { Kind, getNamedType, isAbstractType, TypeInfo, visit, visitWithTypeInfo, isObjectType, } from 'graphql';\n// For motivation, see https://github.com/ardatan/graphql-tools/issues/751\nexport default class WrapConcreteTypes {\n constructor(returnType, targetSchema) {\n this.returnType = returnType;\n this.targetSchema = targetSchema;\n }\n transformRequest(originalRequest) {\n const document = wrapConcreteTypes(this.returnType, this.targetSchema, originalRequest.document);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction wrapConcreteTypes(returnType, targetSchema, document) {\n const namedType = getNamedType(returnType);\n if (!isObjectType(namedType)) {\n return document;\n }\n const queryRootType = targetSchema.getQueryType();\n const mutationRootType = targetSchema.getMutationType();\n const subscriptionRootType = targetSchema.getSubscriptionType();\n const typeInfo = new TypeInfo(targetSchema);\n const newDocument = visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.FIELD](node) {\n const maybeType = typeInfo.getParentType();\n if (maybeType == null) {\n return false;\n }\n const parentType = getNamedType(maybeType);\n if (parentType !== queryRootType && parentType !== mutationRootType && parentType !== subscriptionRootType) {\n return false;\n }\n if (!isAbstractType(getNamedType(typeInfo.getType()))) {\n return false;\n }\n return {\n ...node,\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [\n {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: namedType.name,\n },\n },\n selectionSet: node.selectionSet,\n },\n ],\n },\n };\n },\n }));\n return newDocument;\n}\n//# sourceMappingURL=WrapConcreteTypes.js.map","import { Kind, TypeNameMetaFieldDef, visit, TypeInfo, visitWithTypeInfo, getNamedType, isObjectType, isInterfaceType, } from 'graphql';\nimport { implementsAbstractType } from '@graphql-tools/utils';\nexport default class FilterToSchema {\n constructor(targetSchema) {\n this.targetSchema = targetSchema;\n }\n transformRequest(originalRequest) {\n return {\n ...originalRequest,\n ...filterToSchema(this.targetSchema, originalRequest.document, originalRequest.variables),\n };\n }\n}\nfunction filterToSchema(targetSchema, document, variables) {\n const operations = document.definitions.filter(def => def.kind === Kind.OPERATION_DEFINITION);\n const fragments = document.definitions.filter(def => def.kind === Kind.FRAGMENT_DEFINITION);\n let usedVariables = [];\n let usedFragments = [];\n const newOperations = [];\n let newFragments = [];\n const validFragments = fragments.filter((fragment) => {\n const typeName = fragment.typeCondition.name.value;\n return Boolean(targetSchema.getType(typeName));\n });\n const validFragmentsWithType = validFragments.reduce((prev, fragment) => ({\n ...prev,\n [fragment.name.value]: targetSchema.getType(fragment.typeCondition.name.value),\n }), {});\n let fragmentSet = Object.create(null);\n operations.forEach((operation) => {\n let type;\n if (operation.operation === 'subscription') {\n type = targetSchema.getSubscriptionType();\n }\n else if (operation.operation === 'mutation') {\n type = targetSchema.getMutationType();\n }\n else {\n type = targetSchema.getQueryType();\n }\n const { selectionSet, usedFragments: operationUsedFragments, usedVariables: operationUsedVariables, } = filterSelectionSet(targetSchema, type, validFragmentsWithType, operation.selectionSet);\n usedFragments = union(usedFragments, operationUsedFragments);\n const { usedVariables: collectedUsedVariables, newFragments: collectedNewFragments, fragmentSet: collectedFragmentSet, } = collectFragmentVariables(targetSchema, fragmentSet, validFragments, validFragmentsWithType, usedFragments);\n const operationOrFragmentVariables = union(operationUsedVariables, collectedUsedVariables);\n usedVariables = union(usedVariables, operationOrFragmentVariables);\n newFragments = collectedNewFragments;\n fragmentSet = collectedFragmentSet;\n const variableDefinitions = operation.variableDefinitions.filter((variable) => operationOrFragmentVariables.indexOf(variable.variable.name.value) !== -1);\n newOperations.push({\n kind: Kind.OPERATION_DEFINITION,\n operation: operation.operation,\n name: operation.name,\n directives: operation.directives,\n variableDefinitions,\n selectionSet,\n });\n });\n const newVariables = usedVariables.reduce((acc, variableName) => {\n const variableValue = variables[variableName];\n if (variableValue !== undefined) {\n acc[variableName] = variableValue;\n }\n return acc;\n }, {});\n return {\n document: {\n kind: Kind.DOCUMENT,\n definitions: [...newOperations, ...newFragments],\n },\n variables: newVariables,\n };\n}\nfunction collectFragmentVariables(targetSchema, fragmentSet, validFragments, validFragmentsWithType, usedFragments) {\n let remainingFragments = usedFragments.slice();\n let usedVariables = [];\n const newFragments = [];\n while (remainingFragments.length !== 0) {\n const nextFragmentName = remainingFragments.pop();\n const fragment = validFragments.find(fr => fr.name.value === nextFragmentName);\n if (fragment != null) {\n const name = nextFragmentName;\n const typeName = fragment.typeCondition.name.value;\n const type = targetSchema.getType(typeName);\n const { selectionSet, usedFragments: fragmentUsedFragments, usedVariables: fragmentUsedVariables, } = filterSelectionSet(targetSchema, type, validFragmentsWithType, fragment.selectionSet);\n remainingFragments = union(remainingFragments, fragmentUsedFragments);\n usedVariables = union(usedVariables, fragmentUsedVariables);\n if (!(name in fragmentSet)) {\n fragmentSet[name] = true;\n newFragments.push({\n kind: Kind.FRAGMENT_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: name,\n },\n typeCondition: fragment.typeCondition,\n selectionSet,\n });\n }\n }\n }\n return {\n usedVariables,\n newFragments,\n fragmentSet,\n };\n}\nfunction filterSelectionSet(schema, type, validFragments, selectionSet) {\n const usedFragments = [];\n const usedVariables = [];\n const typeInfo = new TypeInfo(schema, undefined, type);\n const filteredSelectionSet = visit(selectionSet, visitWithTypeInfo(typeInfo, {\n [Kind.FIELD]: {\n enter(node) {\n const parentType = typeInfo.getParentType();\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n const fields = parentType.getFields();\n const field = node.name.value === '__typename' ? TypeNameMetaFieldDef : fields[node.name.value];\n if (!field) {\n return null;\n }\n const argNames = (field.args != null ? field.args : []).map(arg => arg.name);\n if (node.arguments != null) {\n const args = node.arguments.filter((arg) => argNames.indexOf(arg.name.value) !== -1);\n if (args.length !== node.arguments.length) {\n return {\n ...node,\n arguments: args,\n };\n }\n }\n }\n },\n leave(node) {\n const resolvedType = getNamedType(typeInfo.getType());\n if (isObjectType(resolvedType) || isInterfaceType(resolvedType)) {\n const selections = node.selectionSet != null ? node.selectionSet.selections : null;\n if (selections == null || selections.length === 0) {\n // need to remove any added variables. Is there a better way to do this?\n visit(node, {\n [Kind.VARIABLE](variableNode) {\n const index = usedVariables.indexOf(variableNode.name.value);\n if (index !== -1) {\n usedVariables.splice(index, 1);\n }\n },\n });\n return null;\n }\n }\n },\n },\n [Kind.FRAGMENT_SPREAD](node) {\n if (node.name.value in validFragments) {\n const parentType = typeInfo.getParentType();\n const innerType = validFragments[node.name.value];\n if (!implementsAbstractType(schema, parentType, innerType)) {\n return null;\n }\n usedFragments.push(node.name.value);\n return;\n }\n return null;\n },\n [Kind.INLINE_FRAGMENT]: {\n enter(node) {\n if (node.typeCondition != null) {\n const parentType = typeInfo.getParentType();\n const innerType = schema.getType(node.typeCondition.name.value);\n if (!implementsAbstractType(schema, parentType, innerType)) {\n return null;\n }\n }\n },\n },\n [Kind.VARIABLE](node) {\n usedVariables.push(node.name.value);\n },\n }));\n return {\n selectionSet: filteredSelectionSet,\n usedFragments,\n usedVariables,\n };\n}\nfunction union(...arrays) {\n const cache = Object.create(null);\n const result = [];\n arrays.forEach(array => {\n array.forEach(item => {\n if (!(item in cache)) {\n cache[item] = true;\n result.push(item);\n }\n });\n });\n return result;\n}\n//# sourceMappingURL=FilterToSchema.js.map","import { Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql';\nexport default class AddFragmentsByField {\n constructor(targetSchema, mapping) {\n this.targetSchema = targetSchema;\n this.mapping = mapping;\n }\n transformRequest(originalRequest) {\n const document = addFragmentsByField(this.targetSchema, originalRequest.document, this.mapping);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction addFragmentsByField(targetSchema, document, mapping) {\n const typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n let selections = node.selections;\n if (parentTypeName in mapping) {\n node.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const name = selection.name.value;\n const fragment = mapping[parentTypeName][name];\n if (fragment != null) {\n selections = selections.concat(fragment);\n }\n }\n });\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n }\n },\n }));\n}\n//# sourceMappingURL=AddFragmentsByField.js.map","import { Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql';\nexport default class AddSelectionSetsByField {\n constructor(schema, mapping) {\n this.schema = schema;\n this.mapping = mapping;\n }\n transformRequest(originalRequest) {\n const document = addSelectionSetsByField(this.schema, originalRequest.document, this.mapping);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction addSelectionSetsByField(schema, document, mapping) {\n const typeInfo = new TypeInfo(schema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n let selections = node.selections;\n if (parentTypeName in mapping) {\n node.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const name = selection.name.value;\n const selectionSet = mapping[parentTypeName][name];\n if (selectionSet != null) {\n selections = selections.concat(selectionSet.selections);\n }\n }\n });\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n }\n },\n }));\n}\n//# sourceMappingURL=AddSelectionSetsByField.js.map","import { Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql';\nexport default class AddSelectionSetsByType {\n constructor(targetSchema, mapping) {\n this.targetSchema = targetSchema;\n this.mapping = mapping;\n }\n transformRequest(originalRequest) {\n const document = addSelectionSetsByType(this.targetSchema, originalRequest.document, this.mapping);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction addSelectionSetsByType(targetSchema, document, mapping) {\n const typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n let selections = node.selections;\n if (parentTypeName in mapping) {\n const selectionSet = mapping[parentTypeName];\n if (selectionSet != null) {\n selections = selections.concat(selectionSet.selections);\n }\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n }\n },\n }));\n}\n//# sourceMappingURL=AddSelectionSetsByType.js.map","import { TypeInfo, visit, visitWithTypeInfo, Kind, isAbstractType, } from 'graphql';\nexport default class AddTypenameToAbstract {\n constructor(targetSchema) {\n this.targetSchema = targetSchema;\n }\n transformRequest(originalRequest) {\n const document = addTypenameToAbstract(this.targetSchema, originalRequest.document);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction addTypenameToAbstract(targetSchema, document) {\n const typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n let selections = node.selections;\n if (parentType != null && isAbstractType(parentType)) {\n selections = selections.concat({\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n });\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n },\n }));\n}\n//# sourceMappingURL=AddTypenameToAbstract.js.map","import AggregateError from 'aggregate-error';\nimport { getErrorsByPathSegment, relocatedError } from '@graphql-tools/utils';\nexport function handleNull(errors) {\n if (errors.length) {\n if (errors.some(error => !error.path || error.path.length < 2)) {\n if (errors.length > 1) {\n const combinedError = new AggregateError(errors);\n return combinedError;\n }\n const error = errors[0];\n return error.originalError || relocatedError(error, null);\n }\n else if (errors.some(error => typeof error.path[1] === 'string')) {\n const childErrors = getErrorsByPathSegment(errors);\n const result = {};\n Object.keys(childErrors).forEach(pathSegment => {\n result[pathSegment] = handleNull(childErrors[pathSegment]);\n });\n return result;\n }\n const childErrors = getErrorsByPathSegment(errors);\n const result = [];\n Object.keys(childErrors).forEach(pathSegment => {\n result.push(handleNull(childErrors[pathSegment]));\n });\n return result;\n }\n return null;\n}\n//# sourceMappingURL=handleNull.js.map","import { mergeDeep, ERROR_SYMBOL, relocatedError, setErrors, getErrors } from '@graphql-tools/utils';\nimport { handleNull } from './results/handleNull';\nimport { FIELD_SUBSCHEMA_MAP_SYMBOL, OBJECT_SUBSCHEMA_SYMBOL } from './symbols';\nimport { getSubschema, setObjectSubschema } from './Subschema';\nexport function isProxiedResult(result) {\n return result != null ? result[ERROR_SYMBOL] : result;\n}\nexport function unwrapResult(parent, path) {\n let newParent = parent;\n const pathLength = path.length;\n for (let i = 0; i < pathLength; i++) {\n const responseKey = path[i];\n const errors = getErrors(newParent, responseKey);\n const subschema = getSubschema(newParent, responseKey);\n const object = newParent[responseKey];\n if (object == null) {\n return handleNull(errors);\n }\n setErrors(object, errors.map(error => relocatedError(error, error.path != null ? error.path.slice(1) : undefined)));\n setObjectSubschema(object, subschema);\n newParent = object;\n }\n return newParent;\n}\nexport function dehoistResult(parent, delimeter = '__gqltf__') {\n const result = Object.create(null);\n Object.keys(parent).forEach(alias => {\n let obj = result;\n const fieldNames = alias.split(delimeter);\n const fieldName = fieldNames.pop();\n fieldNames.forEach(key => {\n obj = obj[key] = obj[key] || Object.create(null);\n });\n obj[fieldName] = parent[alias];\n });\n result[ERROR_SYMBOL] = parent[ERROR_SYMBOL].map((error) => {\n if (error.path != null) {\n const path = error.path.slice();\n const pathSegment = path.shift();\n const expandedPathSegment = pathSegment.split(delimeter);\n return relocatedError(error, expandedPathSegment.concat(path));\n }\n return error;\n });\n result[OBJECT_SUBSCHEMA_SYMBOL] = parent[OBJECT_SUBSCHEMA_SYMBOL];\n return result;\n}\nexport function mergeProxiedResults(target, ...sources) {\n const errors = target[ERROR_SYMBOL].concat(...sources.map((source) => source[ERROR_SYMBOL]));\n const fieldSubschemaMap = sources.reduce((acc, source) => {\n const subschema = source[OBJECT_SUBSCHEMA_SYMBOL];\n Object.keys(source).forEach(key => {\n acc[key] = subschema;\n });\n return acc;\n }, {});\n const result = sources.reduce(mergeDeep, target);\n result[ERROR_SYMBOL] = errors;\n result[FIELD_SUBSCHEMA_MAP_SYMBOL] = target[FIELD_SUBSCHEMA_MAP_SYMBOL]\n ? mergeDeep(target[FIELD_SUBSCHEMA_MAP_SYMBOL], fieldSubschemaMap)\n : fieldSubschemaMap;\n return result;\n}\n//# sourceMappingURL=proxiedResult.js.map","import { Kind } from 'graphql';\nimport { mergeProxiedResults } from './proxiedResult';\nfunction buildDelegationPlan(mergedTypeInfo, originalSelections, sourceSubschemas, targetSubschemas) {\n // 1. calculate if possible to delegate to given subschema\n // TODO: change logic so that required selection set can be spread across multiple subschemas?\n const proxiableSubschemas = [];\n const nonProxiableSubschemas = [];\n targetSubschemas.forEach(t => {\n if (sourceSubschemas.some(s => {\n const selectionSet = mergedTypeInfo.selectionSets.get(t);\n return mergedTypeInfo.containsSelectionSet.get(s).get(selectionSet);\n })) {\n proxiableSubschemas.push(t);\n }\n else {\n nonProxiableSubschemas.push(t);\n }\n });\n const { uniqueFields, nonUniqueFields } = mergedTypeInfo;\n const unproxiableSelections = [];\n // 2. for each selection:\n const delegationMap = new Map();\n originalSelections.forEach(selection => {\n if (selection.name.value === '__typename') {\n return;\n }\n // 2a. use uniqueFields map to assign fields to subschema if one of possible subschemas\n const uniqueSubschema = uniqueFields[selection.name.value];\n if (uniqueSubschema != null) {\n if (proxiableSubschemas.includes(uniqueSubschema)) {\n const existingSubschema = delegationMap.get(uniqueSubschema);\n if (existingSubschema != null) {\n existingSubschema.push(selection);\n }\n else {\n delegationMap.set(uniqueSubschema, [selection]);\n }\n }\n else {\n unproxiableSelections.push(selection);\n }\n }\n else {\n // 2b. use nonUniqueFields to assign to a possible subschema,\n // preferring one of the subschemas already targets of delegation\n let nonUniqueSubschemas = nonUniqueFields[selection.name.value];\n nonUniqueSubschemas = nonUniqueSubschemas.filter(s => proxiableSubschemas.includes(s));\n if (nonUniqueSubschemas != null) {\n const subschemas = Array.from(delegationMap.keys());\n const existingSubschema = nonUniqueSubschemas.find(s => subschemas.includes(s));\n if (existingSubschema != null) {\n delegationMap.get(existingSubschema).push(selection);\n }\n else {\n delegationMap.set(nonUniqueSubschemas[0], [selection]);\n }\n }\n else {\n unproxiableSelections.push(selection);\n }\n }\n });\n return {\n delegationMap,\n unproxiableSelections,\n proxiableSubschemas,\n nonProxiableSubschemas,\n };\n}\nexport function mergeFields(mergedTypeInfo, typeName, object, originalSelections, sourceSubschemas, targetSubschemas, context, info) {\n if (!originalSelections.length) {\n return object;\n }\n const { delegationMap, unproxiableSelections, proxiableSubschemas, nonProxiableSubschemas } = buildDelegationPlan(mergedTypeInfo, originalSelections, sourceSubschemas, targetSubschemas);\n if (!delegationMap.size) {\n return object;\n }\n const maybePromises = [];\n delegationMap.forEach((selections, s) => {\n const maybePromise = s.merge[typeName].resolve(object, context, info, s, {\n kind: Kind.SELECTION_SET,\n selections,\n });\n maybePromises.push(maybePromise);\n });\n let containsPromises = false;\n for (const maybePromise of maybePromises) {\n if (maybePromise instanceof Promise) {\n containsPromises = true;\n break;\n }\n }\n return containsPromises\n ? Promise.all(maybePromises).then(results => mergeFields(mergedTypeInfo, typeName, mergeProxiedResults(object, ...results), unproxiableSelections, sourceSubschemas.concat(proxiableSubschemas), nonProxiableSubschemas, context, info))\n : mergeFields(mergedTypeInfo, typeName, mergeProxiedResults(object, ...maybePromises), unproxiableSelections, sourceSubschemas.concat(proxiableSubschemas), nonProxiableSubschemas, context, info);\n}\n//# sourceMappingURL=mergeFields.js.map","import { isAbstractType, } from 'graphql';\nimport { collectFields, setErrors, slicedError } from '@graphql-tools/utils';\nimport { setObjectSubschema, isSubschemaConfig } from '../Subschema';\nimport { mergeFields } from '../mergeFields';\nexport function handleObject(type, object, errors, subschema, context, info, skipTypeMerging) {\n var _a;\n const stitchingInfo = (_a = info === null || info === void 0 ? void 0 : info.schema.extensions) === null || _a === void 0 ? void 0 : _a.stitchingInfo;\n setErrors(object, errors.map(error => slicedError(error)));\n setObjectSubschema(object, subschema);\n if (skipTypeMerging || !stitchingInfo) {\n return object;\n }\n const typeName = isAbstractType(type) ? info.schema.getTypeMap()[object.__typename].name : type.name;\n const mergedTypeInfo = stitchingInfo.mergedTypes[typeName];\n let targetSubschemas;\n if (mergedTypeInfo != null) {\n targetSubschemas = mergedTypeInfo.subschemas;\n }\n if (!targetSubschemas) {\n return object;\n }\n targetSubschemas = targetSubschemas.filter(s => s !== subschema);\n if (!targetSubschemas.length) {\n return object;\n }\n const subFields = collectSubFields(info, object.__typename);\n const selections = getFieldsNotInSubschema(subFields, subschema, mergedTypeInfo, object.__typename);\n return mergeFields(mergedTypeInfo, typeName, object, selections, [subschema], targetSubschemas, context, info);\n}\nfunction collectSubFields(info, typeName) {\n let subFieldNodes = Object.create(null);\n const visitedFragmentNames = Object.create(null);\n info.fieldNodes.forEach(fieldNode => {\n subFieldNodes = collectFields({\n schema: info.schema,\n variableValues: info.variableValues,\n fragments: info.fragments,\n }, info.schema.getType(typeName), fieldNode.selectionSet, subFieldNodes, visitedFragmentNames);\n });\n return subFieldNodes;\n}\nfunction getFieldsNotInSubschema(subFieldNodes, subschema, mergedTypeInfo, typeName) {\n const typeMap = isSubschemaConfig(subschema) ? mergedTypeInfo.typeMaps.get(subschema) : subschema.getTypeMap();\n const fields = typeMap[typeName].getFields();\n const fieldsNotInSchema = [];\n Object.keys(subFieldNodes).forEach(responseName => {\n subFieldNodes[responseName].forEach(subFieldNode => {\n if (!(subFieldNode.name.value in fields)) {\n fieldsNotInSchema.push(subFieldNode);\n }\n });\n });\n return fieldsNotInSchema;\n}\n//# sourceMappingURL=handleObject.js.map","import { getNullableType, isLeafType, isCompositeType, isListType, } from 'graphql';\nimport { getErrorsByPathSegment } from '@graphql-tools/utils';\nimport { handleNull } from './handleNull';\nimport { handleObject } from './handleObject';\nexport function handleList(type, list, errors, subschema, context, info, skipTypeMerging) {\n const childErrors = getErrorsByPathSegment(errors);\n return list.map((listMember, index) => handleListMember(getNullableType(type.ofType), listMember, index in childErrors ? childErrors[index] : [], subschema, context, info, skipTypeMerging));\n}\nfunction handleListMember(type, listMember, errors, subschema, context, info, skipTypeMerging) {\n if (listMember == null) {\n return handleNull(errors);\n }\n if (isLeafType(type)) {\n return type.parseValue(listMember);\n }\n else if (isCompositeType(type)) {\n return handleObject(type, listMember, errors, subschema, context, info, skipTypeMerging);\n }\n else if (isListType(type)) {\n return handleList(type, listMember, errors, subschema, context, info, skipTypeMerging);\n }\n}\n//# sourceMappingURL=handleList.js.map","import { getNullableType, isCompositeType, isLeafType, isListType, } from 'graphql';\nimport { handleNull } from './handleNull';\nimport { handleObject } from './handleObject';\nimport { handleList } from './handleList';\nexport function handleResult(result, errors, subschema, context, info, returnType = info.returnType, skipTypeMerging) {\n const type = getNullableType(returnType);\n if (result == null) {\n return handleNull(errors);\n }\n if (isLeafType(type)) {\n return type.parseValue(result);\n }\n else if (isCompositeType(type)) {\n return handleObject(type, result, errors, subschema, context, info, skipTypeMerging);\n }\n else if (isListType(type)) {\n return handleList(type, result, errors, subschema, context, info, skipTypeMerging);\n }\n}\n//# sourceMappingURL=handleResult.js.map","import { getResponseKeyFromInfo } from '@graphql-tools/utils';\nimport { handleResult } from '../results/handleResult';\nexport default class CheckResultAndHandleErrors {\n constructor(info, fieldName, subschema, context, returnType = info.returnType, typeMerge) {\n this.context = context;\n this.info = info;\n this.fieldName = fieldName;\n this.subschema = subschema;\n this.returnType = returnType;\n this.typeMerge = typeMerge;\n }\n transformResult(result) {\n return checkResultAndHandleErrors(result, this.context != null ? this.context : {}, this.info, this.fieldName, this.subschema, this.returnType, this.typeMerge);\n }\n}\nexport function checkResultAndHandleErrors(result, context, info, responseKey = getResponseKeyFromInfo(info), subschema, returnType = info.returnType, skipTypeMerging) {\n const errors = result.errors != null ? result.errors : [];\n const data = result.data != null ? result.data[responseKey] : undefined;\n return handleResult(data, errors, subschema, context, info, returnType, skipTypeMerging);\n}\n//# sourceMappingURL=CheckResultAndHandleErrors.js.map","import { Kind, } from 'graphql';\nimport { serializeInputValue, updateArgument } from '@graphql-tools/utils';\nexport default class AddArgumentsAsVariables {\n constructor(targetSchema, args) {\n this.targetSchema = targetSchema;\n this.args = Object.entries(args).reduce((prev, [key, val]) => ({\n ...prev,\n [key]: val,\n }), {});\n }\n transformRequest(originalRequest) {\n const { document, variables } = addVariablesToRootField(this.targetSchema, originalRequest, this.args);\n return {\n ...originalRequest,\n document,\n variables,\n };\n }\n}\nfunction addVariablesToRootField(targetSchema, originalRequest, args) {\n const document = originalRequest.document;\n const variableValues = originalRequest.variables;\n const operations = document.definitions.filter(def => def.kind === Kind.OPERATION_DEFINITION);\n const fragments = document.definitions.filter(def => def.kind === Kind.FRAGMENT_DEFINITION);\n const newOperations = operations.map((operation) => {\n const variableDefinitionMap = operation.variableDefinitions.reduce((prev, def) => ({\n ...prev,\n [def.variable.name.value]: def,\n }), {});\n let type;\n if (operation.operation === 'subscription') {\n type = targetSchema.getSubscriptionType();\n }\n else if (operation.operation === 'mutation') {\n type = targetSchema.getMutationType();\n }\n else {\n type = targetSchema.getQueryType();\n }\n const newSelectionSet = [];\n operation.selectionSet.selections.forEach((selection) => {\n if (selection.kind === Kind.FIELD) {\n const argumentNodes = selection.arguments;\n const argumentNodeMap = argumentNodes.reduce((prev, argument) => ({\n ...prev,\n [argument.name.value]: argument,\n }), {});\n const targetField = type.getFields()[selection.name.value];\n // excludes __typename\n if (targetField != null) {\n updateArguments(targetField, argumentNodeMap, variableDefinitionMap, variableValues, args);\n }\n newSelectionSet.push({\n ...selection,\n arguments: Object.keys(argumentNodeMap).map(argName => argumentNodeMap[argName]),\n });\n }\n else {\n newSelectionSet.push(selection);\n }\n });\n return {\n ...operation,\n variableDefinitions: Object.keys(variableDefinitionMap).map(varName => variableDefinitionMap[varName]),\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: newSelectionSet,\n },\n };\n });\n return {\n document: {\n ...document,\n definitions: [...newOperations, ...fragments],\n },\n variables: variableValues,\n };\n}\nfunction updateArguments(targetField, argumentNodeMap, variableDefinitionMap, variableValues, newArgs) {\n targetField.args.forEach((argument) => {\n const argName = argument.name;\n const argType = argument.type;\n if (argName in newArgs) {\n updateArgument(argName, argType, argumentNodeMap, variableDefinitionMap, variableValues, serializeInputValue(argType, newArgs[argName]));\n }\n });\n}\n//# sourceMappingURL=AddArgumentsAsVariables.js.map","import ExpandAbstractTypes from './transforms/ExpandAbstractTypes';\nimport WrapConcreteTypes from './transforms/WrapConcreteTypes';\nimport FilterToSchema from './transforms/FilterToSchema';\nimport AddFragmentsByField from './transforms/AddFragmentsByField';\nimport AddSelectionSetsByField from './transforms/AddSelectionSetsByField';\nimport AddSelectionSetsByType from './transforms/AddSelectionSetsByType';\nimport AddTypenameToAbstract from './transforms/AddTypenameToAbstract';\nimport CheckResultAndHandleErrors from './transforms/CheckResultAndHandleErrors';\nimport AddArgumentsAsVariables from './transforms/AddArgumentsAsVariables';\nexport function defaultDelegationBinding(delegationContext) {\n var _a;\n const { subschema: schemaOrSubschemaConfig, targetSchema, fieldName, args, context, info, returnType, transforms = [], skipTypeMerging, } = delegationContext;\n const stitchingInfo = (_a = info === null || info === void 0 ? void 0 : info.schema.extensions) === null || _a === void 0 ? void 0 : _a.stitchingInfo;\n let transformedSchema = stitchingInfo === null || stitchingInfo === void 0 ? void 0 : stitchingInfo.transformedSchemas.get(schemaOrSubschemaConfig);\n if (transformedSchema != null) {\n delegationContext.transformedSchema = transformedSchema;\n }\n else {\n transformedSchema = delegationContext.transformedSchema;\n }\n let delegationTransforms = [\n new CheckResultAndHandleErrors(info, fieldName, schemaOrSubschemaConfig, context, returnType, skipTypeMerging),\n ];\n if (stitchingInfo != null) {\n delegationTransforms = delegationTransforms.concat([\n new AddSelectionSetsByField(info.schema, stitchingInfo.selectionSetsByField),\n new AddSelectionSetsByType(info.schema, stitchingInfo.selectionSetsByType),\n new WrapConcreteTypes(returnType, transformedSchema),\n new ExpandAbstractTypes(info.schema, transformedSchema),\n ]);\n }\n else if (info != null) {\n delegationTransforms = delegationTransforms.concat([\n new WrapConcreteTypes(returnType, transformedSchema),\n new ExpandAbstractTypes(info.schema, transformedSchema),\n ]);\n }\n else {\n delegationTransforms.push(new WrapConcreteTypes(returnType, transformedSchema));\n }\n delegationTransforms = delegationTransforms.concat(transforms.slice().reverse());\n if (stitchingInfo != null) {\n delegationTransforms.push(new AddFragmentsByField(targetSchema, stitchingInfo.fragmentsByField));\n }\n if (args != null) {\n delegationTransforms.push(new AddArgumentsAsVariables(targetSchema, args));\n }\n delegationTransforms = delegationTransforms.concat([\n new FilterToSchema(targetSchema),\n new AddTypenameToAbstract(targetSchema),\n ]);\n return delegationTransforms;\n}\n//# sourceMappingURL=delegationBindings.js.map","import { defaultDelegationBinding } from './delegationBindings';\nexport class Transformer {\n constructor(context, binding = defaultDelegationBinding) {\n this.transformations = [];\n this.delegationContext = context;\n const delegationTransforms = binding(this.delegationContext);\n delegationTransforms.forEach(transform => this.addTransform(transform, {}));\n }\n addTransform(transform, context = {}) {\n this.transformations.push({ transform, context });\n }\n transformRequest(originalRequest) {\n return this.transformations.reduce((request, transformation) => transformation.transform.transformRequest != null\n ? transformation.transform.transformRequest(request, this.delegationContext, transformation.context)\n : request, originalRequest);\n }\n transformResult(originalResult) {\n return this.transformations.reduceRight((result, transformation) => transformation.transform.transformResult != null\n ? transformation.transform.transformResult(result, this.delegationContext, transformation.context)\n : result, originalResult);\n }\n}\n//# sourceMappingURL=Transformer.js.map","import { subscribe, execute, validate, isSchema, getOperationAST, } from 'graphql';\nimport { mapAsyncIterator } from '@graphql-tools/utils';\nimport { isSubschemaConfig } from './Subschema';\nimport { createRequestFromInfo, getDelegatingOperation } from './createRequest';\nimport { Transformer } from './Transformer';\nimport AggregateError from 'aggregate-error';\nexport function delegateToSchema(options) {\n if (isSchema(options)) {\n throw new Error('Passing positional arguments to delegateToSchema is deprecated. ' + 'Please pass named parameters instead.');\n }\n const { info, operation = getDelegatingOperation(info.parentType, info.schema), fieldName = info.fieldName, returnType = info.returnType, selectionSet, fieldNodes, } = options;\n const request = createRequestFromInfo({\n info,\n operation,\n fieldName,\n selectionSet,\n fieldNodes,\n });\n return delegateRequest({\n ...options,\n request,\n operation,\n fieldName,\n returnType,\n });\n}\nfunction getDelegationReturnType(targetSchema, operation, fieldName) {\n let rootType;\n if (operation === 'query') {\n rootType = targetSchema.getQueryType();\n }\n else if (operation === 'mutation') {\n rootType = targetSchema.getMutationType();\n }\n else {\n rootType = targetSchema.getSubscriptionType();\n }\n return rootType.getFields()[fieldName].type;\n}\nexport function delegateRequest({ request, schema: subschemaOrSubschemaConfig, rootValue, info, operation, fieldName, args, returnType, context, transforms = [], transformedSchema, skipValidation, skipTypeMerging, binding, }) {\n var _a, _b;\n let operationDefinition;\n let targetOperation;\n let targetFieldName;\n if (operation == null) {\n operationDefinition = getOperationAST(request.document, undefined);\n targetOperation = operationDefinition.operation;\n }\n else {\n targetOperation = operation;\n }\n if (fieldName == null) {\n operationDefinition = operationDefinition !== null && operationDefinition !== void 0 ? operationDefinition : getOperationAST(request.document, undefined);\n targetFieldName = operationDefinition.selectionSet.selections[0].name.value;\n }\n else {\n targetFieldName = fieldName;\n }\n let targetSchema;\n let targetRootValue;\n let subschemaConfig;\n let allTransforms;\n if (isSubschemaConfig(subschemaOrSubschemaConfig)) {\n subschemaConfig = subschemaOrSubschemaConfig;\n targetSchema = subschemaConfig.schema;\n targetRootValue = (_a = rootValue !== null && rootValue !== void 0 ? rootValue : subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.rootValue) !== null && _a !== void 0 ? _a : info === null || info === void 0 ? void 0 : info.rootValue;\n allTransforms =\n subschemaOrSubschemaConfig.transforms != null\n ? subschemaOrSubschemaConfig.transforms.concat(transforms)\n : transforms;\n }\n else {\n targetSchema = subschemaOrSubschemaConfig;\n targetRootValue = rootValue !== null && rootValue !== void 0 ? rootValue : info === null || info === void 0 ? void 0 : info.rootValue;\n allTransforms = transforms;\n }\n const delegationContext = {\n subschema: subschemaOrSubschemaConfig,\n targetSchema,\n operation: targetOperation,\n fieldName: targetFieldName,\n args,\n context,\n info,\n returnType: (_b = returnType !== null && returnType !== void 0 ? returnType : info === null || info === void 0 ? void 0 : info.returnType) !== null && _b !== void 0 ? _b : getDelegationReturnType(targetSchema, targetOperation, targetFieldName),\n transforms: allTransforms,\n transformedSchema: transformedSchema !== null && transformedSchema !== void 0 ? transformedSchema : targetSchema,\n skipTypeMerging,\n };\n const transformer = new Transformer(delegationContext, binding);\n const processedRequest = transformer.transformRequest(request);\n if (!skipValidation) {\n validateRequest(targetSchema, processedRequest.document);\n }\n if (targetOperation === 'query' || targetOperation === 'mutation') {\n const executor = (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.executor) || createDefaultExecutor(targetSchema, (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.rootValue) || targetRootValue);\n const executionResult = executor({\n document: processedRequest.document,\n variables: processedRequest.variables,\n context,\n info,\n });\n if (executionResult instanceof Promise) {\n return executionResult.then(originalResult => transformer.transformResult(originalResult));\n }\n return transformer.transformResult(executionResult);\n }\n const subscriber = (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.subscriber) || createDefaultSubscriber(targetSchema, (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.rootValue) || targetRootValue);\n return subscriber({\n document: processedRequest.document,\n variables: processedRequest.variables,\n context,\n info,\n }).then((subscriptionResult) => {\n if (Symbol.asyncIterator in subscriptionResult) {\n // \"subscribe\" to the subscription result and map the result through the transforms\n return mapAsyncIterator(subscriptionResult, originalResult => ({\n [targetFieldName]: transformer.transformResult(originalResult),\n }));\n }\n return transformer.transformResult(subscriptionResult);\n });\n}\nfunction validateRequest(targetSchema, document) {\n const errors = validate(targetSchema, document);\n if (errors.length > 0) {\n if (errors.length > 1) {\n const combinedError = new AggregateError(errors);\n throw combinedError;\n }\n const error = errors[0];\n throw error.originalError || error;\n }\n}\nfunction createDefaultExecutor(schema, rootValue) {\n return ({ document, context, variables, info }) => execute({\n schema,\n document,\n contextValue: context,\n variableValues: variables,\n rootValue: rootValue !== null && rootValue !== void 0 ? rootValue : info === null || info === void 0 ? void 0 : info.rootValue,\n });\n}\nfunction createDefaultSubscriber(schema, rootValue) {\n return ({ document, context, variables, info }) => subscribe({\n schema,\n document,\n contextValue: context,\n variableValues: variables,\n rootValue: rootValue !== null && rootValue !== void 0 ? rootValue : info === null || info === void 0 ? void 0 : info.rootValue,\n });\n}\n//# sourceMappingURL=delegateToSchema.js.map","import { defaultFieldResolver } from 'graphql';\nimport { getResponseKeyFromInfo, getErrors } from '@graphql-tools/utils';\nimport { handleResult } from './results/handleResult';\nimport { getSubschema } from './Subschema';\n/**\n * Resolver that knows how to:\n * a) handle aliases for proxied schemas\n * b) handle errors from proxied schemas\n * c) handle external to internal enum coversion\n */\nexport function defaultMergedResolver(parent, args, context, info) {\n if (!parent) {\n return null;\n }\n const responseKey = getResponseKeyFromInfo(info);\n const errors = getErrors(parent, responseKey);\n // check to see if parent is not a proxied result, i.e. if parent resolver was manually overwritten\n // See https://github.com/apollographql/graphql-tools/issues/967\n if (!errors) {\n return defaultFieldResolver(parent, args, context, info);\n }\n const result = parent[responseKey];\n const subschema = getSubschema(parent, responseKey);\n return handleResult(result, errors, subschema, context, info);\n}\n//# sourceMappingURL=defaultMergedResolver.js.map","import { unwrapResult, dehoistResult } from './proxiedResult';\nimport { defaultMergedResolver } from './defaultMergedResolver';\nexport function createMergedResolver({ fromPath, dehoist, delimeter = '__gqltf__', }) {\n const parentErrorResolver = (parent, args, context, info) => parent instanceof Error ? parent : defaultMergedResolver(parent, args, context, info);\n const unwrappingResolver = fromPath != null\n ? (parent, args, context, info) => parentErrorResolver(unwrapResult(parent, fromPath), args, context, info)\n : parentErrorResolver;\n const dehoistingResolver = dehoist\n ? (parent, args, context, info) => unwrappingResolver(dehoistResult(parent, delimeter), args, context, info)\n : unwrappingResolver;\n const noParentResolver = (parent, args, context, info) => parent ? dehoistingResolver(parent, args, context, info) : {};\n return noParentResolver;\n}\n//# sourceMappingURL=createMergedResolver.js.map","import { Kind, TypeInfo, parse, visit, visitWithTypeInfo, } from 'graphql';\nimport { concatInlineFragments } from '@graphql-tools/utils';\nexport default class ReplaceFieldWithFragment {\n constructor(targetSchema, fragments) {\n this.targetSchema = targetSchema;\n this.mapping = {};\n for (const { field, fragment } of fragments) {\n const parsedFragment = parseFragmentToInlineFragment(fragment);\n const actualTypeName = parsedFragment.typeCondition.name.value;\n if (!(actualTypeName in this.mapping)) {\n this.mapping[actualTypeName] = Object.create(null);\n }\n const typeMapping = this.mapping[actualTypeName];\n if (!(field in typeMapping)) {\n typeMapping[field] = [parsedFragment];\n }\n else {\n typeMapping[field].push(parsedFragment);\n }\n }\n }\n transformRequest(originalRequest) {\n const document = replaceFieldsWithFragments(this.targetSchema, originalRequest.document, this.mapping);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction replaceFieldsWithFragments(targetSchema, document, mapping) {\n const typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET](node) {\n const parentType = typeInfo.getParentType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n let selections = node.selections;\n if (parentTypeName in mapping) {\n node.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const name = selection.name.value;\n const fragments = mapping[parentTypeName][name];\n if (fragments != null && fragments.length > 0) {\n const fragment = concatInlineFragments(parentTypeName, fragments);\n selections = selections.concat(fragment);\n }\n }\n });\n }\n if (selections !== node.selections) {\n return {\n ...node,\n selections,\n };\n }\n }\n },\n }));\n}\nfunction parseFragmentToInlineFragment(definitions) {\n if (definitions.trim().startsWith('fragment')) {\n const document = parse(definitions);\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: definition.typeCondition,\n selectionSet: definition.selectionSet,\n };\n }\n }\n }\n const query = parse(`{${definitions}}`).definitions[0];\n for (const selection of query.selectionSet.selections) {\n if (selection.kind === Kind.INLINE_FRAGMENT) {\n return selection;\n }\n }\n throw new Error('Could not parse fragment');\n}\n//# sourceMappingURL=ReplaceFieldWithFragment.js.map"],"names":["applySchemaTransforms","Kind","typeFromAST","serializeInputValue","updateArgument","isAbstractType","TypeInfo","visit","visitWithTypeInfo","getNamedType","implementsAbstractType","isObjectType","isInterfaceType","TypeNameMetaFieldDef","relocatedError","getErrorsByPathSegment","getErrors","setErrors","ERROR_SYMBOL","mergeDeep","slicedError","collectFields","getNullableType","isLeafType","isCompositeType","isListType","getResponseKeyFromInfo","isSchema","getOperationAST","mapAsyncIterator","validate","execute","subscribe","defaultFieldResolver","concatInlineFragments","parse"],"mappings":"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"}