UNPKG

168 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.cjs.js","sources":["../../../dist-es5/delegate/src/applySchemaTransforms.js","../../../dist-es5/delegate/src/Subschema.js","../../../dist-es5/delegate/src/createRequest.js","../../../dist-es5/delegate/src/symbols.js","../../../dist-es5/delegate/src/externalObjects.js","../../../dist-es5/delegate/src/subschemaConfig.js","../../../dist-es5/delegate/src/memoize.js","../../../dist-es5/delegate/src/getFieldsNotInSubschema.js","../../../dist-es5/delegate/src/mergeFields.js","../../../dist-es5/delegate/src/resolveExternalValue.js","../../../dist-es5/delegate/src/defaultMergedResolver.js","../../../dist-es5/delegate/src/transforms/VisitSelectionSets.js","../../../dist-es5/delegate/src/transforms/AddSelectionSets.js","../../../dist-es5/delegate/src/transforms/ExpandAbstractTypes.js","../../../dist-es5/delegate/src/transforms/WrapConcreteTypes.js","../../../dist-es5/delegate/src/transforms/FilterToSchema.js","../../../dist-es5/delegate/src/transforms/AddTypenameToAbstract.js","../../../dist-es5/delegate/src/transforms/CheckResultAndHandleErrors.js","../../../dist-es5/delegate/src/transforms/AddArgumentsAsVariables.js","../../../dist-es5/delegate/src/delegationBindings.js","../../../dist-es5/delegate/src/Transformer.js","../../../dist-es5/delegate/src/delegateToSchema.js"],"sourcesContent":["import { cloneSchema } from '@graphql-tools/utils';\nexport function applySchemaTransforms(originalWrappingSchema, subschemaConfig, transformedSchema) {\n var schemaTransforms = subschemaConfig.transforms;\n if (schemaTransforms == null) {\n return originalWrappingSchema;\n }\n return schemaTransforms.reduce(function (schema, transform) {\n return transform.transformSchema != null\n ? transform.transformSchema(cloneSchema(schema), subschemaConfig, transformedSchema)\n : schema;\n }, originalWrappingSchema);\n}\n//# sourceMappingURL=applySchemaTransforms.js.map","import { applySchemaTransforms } from './applySchemaTransforms';\nexport function isSubschema(value) {\n return Boolean(value.transformedSchema);\n}\nvar Subschema = /** @class */ (function () {\n function Subschema(config) {\n var _a;\n this.schema = config.schema;\n this.rootValue = config.rootValue;\n this.executor = config.executor;\n this.subscriber = config.subscriber;\n this.batch = config.batch;\n this.batchingOptions = config.batchingOptions;\n this.createProxyingResolver = config.createProxyingResolver;\n this.transforms = (_a = config.transforms) !== null && _a !== void 0 ? _a : [];\n this.transformedSchema = applySchemaTransforms(this.schema, config);\n this.merge = config.merge;\n }\n return Subschema;\n}());\nexport { Subschema };\n//# sourceMappingURL=Subschema.js.map","import { __assign } from \"tslib\";\nimport { 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(_a) {\n var info = _a.info, operationName = _a.operationName, _b = _a.operation, operation = _b === void 0 ? getDelegatingOperation(info.parentType, info.schema) : _b, _c = _a.fieldName, fieldName = _c === void 0 ? info.fieldName : _c, selectionSet = _a.selectionSet, _d = _a.fieldNodes, fieldNodes = _d === void 0 ? info.fieldNodes : _d;\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 targetOperationName: operationName,\n targetOperation: operation,\n targetFieldName: fieldName,\n selectionSet: selectionSet,\n fieldNodes: fieldNodes,\n });\n}\nexport function createRequest(_a) {\n var _b;\n var sourceSchema = _a.sourceSchema, sourceParentType = _a.sourceParentType, sourceFieldName = _a.sourceFieldName, fragments = _a.fragments, variableDefinitions = _a.variableDefinitions, variableValues = _a.variableValues, targetOperationName = _a.targetOperationName, targetOperation = _a.targetOperation, targetFieldName = _a.targetFieldName, selectionSet = _a.selectionSet, fieldNodes = _a.fieldNodes;\n var newSelectionSet;\n var argumentNodeMap;\n if (selectionSet != null) {\n newSelectionSet = selectionSet;\n argumentNodeMap = Object.create(null);\n }\n else {\n var selections = fieldNodes.reduce(function (acc, fieldNode) { return (fieldNode.selectionSet != null ? acc.concat(fieldNode.selectionSet.selections) : acc); }, []);\n newSelectionSet = selections.length\n ? {\n kind: Kind.SELECTION_SET,\n selections: selections,\n }\n : undefined;\n argumentNodeMap = {};\n var args = (_b = fieldNodes[0]) === null || _b === void 0 ? void 0 : _b.arguments;\n if (args) {\n argumentNodeMap = args.reduce(function (prev, curr) {\n var _a;\n return (__assign(__assign({}, prev), (_a = {}, _a[curr.name.value] = curr, _a)));\n }, argumentNodeMap);\n }\n }\n var newVariables = Object.create(null);\n var variableDefinitionMap = Object.create(null);\n if (sourceSchema != null && variableDefinitions != null) {\n variableDefinitions.forEach(function (def) {\n var varName = def.variable.name.value;\n variableDefinitionMap[varName] = def;\n var varType = typeFromAST(sourceSchema, def.type);\n var 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 var rootfieldNode = {\n kind: Kind.FIELD,\n arguments: Object.keys(argumentNodeMap).map(function (argName) { return argumentNodeMap[argName]; }),\n name: {\n kind: Kind.NAME,\n value: targetFieldName || fieldNodes[0].name.value,\n },\n selectionSet: newSelectionSet,\n };\n var operationName = targetOperationName\n ? {\n kind: Kind.NAME,\n value: targetOperationName,\n }\n : undefined;\n var operationDefinition = {\n kind: Kind.OPERATION_DEFINITION,\n name: operationName,\n operation: targetOperation,\n variableDefinitions: Object.keys(variableDefinitionMap).map(function (varName) { return variableDefinitionMap[varName]; }),\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [rootfieldNode],\n },\n };\n var definitions = [operationDefinition];\n if (fragments != null) {\n definitions = definitions.concat(Object.keys(fragments).map(function (fragmentName) { return fragments[fragmentName]; }));\n }\n var document = {\n kind: Kind.DOCUMENT,\n definitions: definitions,\n };\n return {\n document: document,\n variables: newVariables,\n };\n}\nfunction updateArgumentsWithDefaults(sourceParentType, sourceFieldName, argumentNodeMap, variableDefinitionMap, variableValues) {\n var sourceField = sourceParentType.getFields()[sourceFieldName];\n sourceField.args.forEach(function (argument) {\n var argName = argument.name;\n var sourceArgType = argument.type;\n if (argumentNodeMap[argName] === undefined) {\n var 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","export var UNPATHED_ERRORS_SYMBOL = Symbol('subschemaErrors');\nexport var OBJECT_SUBSCHEMA_SYMBOL = Symbol('initialSubschema');\nexport var FIELD_SUBSCHEMA_MAP_SYMBOL = Symbol('subschemaMap');\n//# sourceMappingURL=symbols.js.map","import { GraphQLError, locatedError } from 'graphql';\nimport { mergeDeep, relocatedError, collectFields } from '@graphql-tools/utils';\nimport { OBJECT_SUBSCHEMA_SYMBOL, FIELD_SUBSCHEMA_MAP_SYMBOL, UNPATHED_ERRORS_SYMBOL } from './symbols';\nexport function isExternalObject(data) {\n return data[UNPATHED_ERRORS_SYMBOL] !== undefined;\n}\nexport function annotateExternalObject(object, errors, subschema) {\n var _a;\n Object.defineProperties(object, (_a = {},\n _a[OBJECT_SUBSCHEMA_SYMBOL] = { value: subschema },\n _a[FIELD_SUBSCHEMA_MAP_SYMBOL] = { value: Object.create(null) },\n _a[UNPATHED_ERRORS_SYMBOL] = { value: errors },\n _a));\n return object;\n}\nexport function getSubschema(object, responseKey) {\n var _a;\n return (_a = object[FIELD_SUBSCHEMA_MAP_SYMBOL][responseKey]) !== null && _a !== void 0 ? _a : object[OBJECT_SUBSCHEMA_SYMBOL];\n}\nexport function getUnpathedErrors(object) {\n return object[UNPATHED_ERRORS_SYMBOL];\n}\nexport function mergeExternalObjects(schema, path, typeName, target, sources, selectionSets) {\n var _a;\n var results = [];\n var errors = [];\n sources.forEach(function (source, index) {\n if (source instanceof Error || source === null) {\n var selectionSet = selectionSets[index];\n var fieldNodes_1 = collectFields({\n schema: schema,\n variableValues: {},\n fragments: {},\n }, schema.getType(typeName), selectionSet, Object.create(null), Object.create(null));\n var nullResult_1 = {};\n Object.keys(fieldNodes_1).forEach(function (responseKey) {\n if (source instanceof GraphQLError) {\n nullResult_1[responseKey] = relocatedError(source, path.concat([responseKey]));\n }\n else if (source instanceof Error) {\n nullResult_1[responseKey] = locatedError(source, fieldNodes_1[responseKey], path.concat([responseKey]));\n }\n else {\n nullResult_1[responseKey] = null;\n }\n });\n results.push(nullResult_1);\n }\n else {\n errors = errors.concat(source[UNPATHED_ERRORS_SYMBOL]);\n results.push(source);\n }\n });\n var combinedResult = results.reduce(mergeDeep, target);\n var newFieldSubschemaMap = (_a = target[FIELD_SUBSCHEMA_MAP_SYMBOL]) !== null && _a !== void 0 ? _a : Object.create(null);\n results.forEach(function (source) {\n var objectSubschema = source[OBJECT_SUBSCHEMA_SYMBOL];\n var fieldSubschemaMap = source[FIELD_SUBSCHEMA_MAP_SYMBOL];\n if (fieldSubschemaMap === undefined) {\n Object.keys(source).forEach(function (responseKey) {\n newFieldSubschemaMap[responseKey] = objectSubschema;\n });\n }\n else {\n Object.keys(source).forEach(function (responseKey) {\n var _a;\n newFieldSubschemaMap[responseKey] = (_a = fieldSubschemaMap[responseKey]) !== null && _a !== void 0 ? _a : objectSubschema;\n });\n }\n });\n combinedResult[FIELD_SUBSCHEMA_MAP_SYMBOL] = newFieldSubschemaMap;\n combinedResult[OBJECT_SUBSCHEMA_SYMBOL] = target[OBJECT_SUBSCHEMA_SYMBOL];\n combinedResult[UNPATHED_ERRORS_SYMBOL] = target[UNPATHED_ERRORS_SYMBOL].concat(errors);\n return combinedResult;\n}\n//# sourceMappingURL=externalObjects.js.map","import { __assign, __read, __spreadArray } from \"tslib\";\nexport function isSubschemaConfig(value) {\n return Boolean(value === null || value === void 0 ? void 0 : value.schema);\n}\nexport function cloneSubschemaConfig(subschemaConfig) {\n var newSubschemaConfig = __assign(__assign({}, subschemaConfig), { transforms: subschemaConfig.transforms != null ? __spreadArray([], __read(subschemaConfig.transforms)) : undefined });\n if (newSubschemaConfig.merge != null) {\n newSubschemaConfig.merge = __assign({}, subschemaConfig.merge);\n Object.keys(newSubschemaConfig.merge).forEach(function (typeName) {\n var mergedTypeConfig = (newSubschemaConfig.merge[typeName] = __assign({}, subschemaConfig.merge[typeName]));\n if (mergedTypeConfig.entryPoints != null) {\n mergedTypeConfig.entryPoints = mergedTypeConfig.entryPoints.map(function (entryPoint) { return (__assign({}, entryPoint)); });\n }\n if (mergedTypeConfig.fields != null) {\n var fields_1 = (mergedTypeConfig.fields = __assign({}, mergedTypeConfig.fields));\n Object.keys(fields_1).forEach(function (fieldName) {\n fields_1[fieldName] = __assign({}, fields_1[fieldName]);\n });\n }\n });\n }\n return newSubschemaConfig;\n}\n//# sourceMappingURL=subschemaConfig.js.map","export function memoizeInfoAnd2Objects(fn) {\n var cache1;\n function memoized(a1, a2, a3) {\n if (!cache1) {\n cache1 = new WeakMap();\n var cache2_1 = new WeakMap();\n cache1.set(a1.fieldNodes, cache2_1);\n var cache3_1 = new WeakMap();\n cache2_1.set(a2, cache3_1);\n var newValue = fn(a1, a2, a3);\n cache3_1.set(a3, newValue);\n return newValue;\n }\n var cache2 = cache1.get(a1.fieldNodes);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1.fieldNodes, cache2);\n var cache3_2 = new WeakMap();\n cache2.set(a2, cache3_2);\n var newValue = fn(a1, a2, a3);\n cache3_2.set(a3, newValue);\n return newValue;\n }\n var cache3 = cache2.get(a2);\n if (!cache3) {\n cache3 = new WeakMap();\n cache2.set(a2, cache3);\n var newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n var cachedValue = cache3.get(a3);\n if (cachedValue === undefined) {\n var newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n return cachedValue;\n }\n return memoized;\n}\nexport function memoize4(fn) {\n var cache1;\n function memoized(a1, a2, a3, a4) {\n if (!cache1) {\n cache1 = new WeakMap();\n var cache2_2 = new WeakMap();\n cache1.set(a1, cache2_2);\n var cache3_3 = new WeakMap();\n cache2_2.set(a2, cache3_3);\n var cache4_1 = new WeakMap();\n cache3_3.set(a3, cache4_1);\n var newValue = fn(a1, a2, a3, a4);\n cache4_1.set(a4, newValue);\n return newValue;\n }\n var cache2 = cache1.get(a1);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1, cache2);\n var cache3_4 = new WeakMap();\n cache2.set(a2, cache3_4);\n var cache4_2 = new WeakMap();\n cache3_4.set(a3, cache4_2);\n var newValue = fn(a1, a2, a3, a4);\n cache4_2.set(a4, newValue);\n return newValue;\n }\n var cache3 = cache2.get(a2);\n if (!cache3) {\n cache3 = new WeakMap();\n cache2.set(a2, cache3);\n var cache4_3 = new WeakMap();\n cache3.set(a3, cache4_3);\n var newValue = fn(a1, a2, a3, a4);\n cache4_3.set(a4, newValue);\n return newValue;\n }\n var cache4 = cache3.get(a3);\n if (!cache4) {\n var cache4_4 = new WeakMap();\n cache3.set(a3, cache4_4);\n var newValue = fn(a1, a2, a3, a4);\n cache4_4.set(a4, newValue);\n return newValue;\n }\n var cachedValue = cache4.get(a4);\n if (cachedValue === undefined) {\n var newValue = fn(a1, a2, a3, a4);\n cache4.set(a4, newValue);\n return newValue;\n }\n return cachedValue;\n }\n return memoized;\n}\nexport function memoize3(fn) {\n var cache1;\n function memoized(a1, a2, a3) {\n if (!cache1) {\n cache1 = new WeakMap();\n var cache2_3 = new WeakMap();\n cache1.set(a1, cache2_3);\n var cache3_5 = new WeakMap();\n cache2_3.set(a2, cache3_5);\n var newValue = fn(a1, a2, a3);\n cache3_5.set(a3, newValue);\n return newValue;\n }\n var cache2 = cache1.get(a1);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1, cache2);\n var cache3_6 = new WeakMap();\n cache2.set(a2, cache3_6);\n var newValue = fn(a1, a2, a3);\n cache3_6.set(a3, newValue);\n return newValue;\n }\n var cache3 = cache2.get(a2);\n if (!cache3) {\n cache3 = new WeakMap();\n cache2.set(a2, cache3);\n var newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n var cachedValue = cache3.get(a3);\n if (cachedValue === undefined) {\n var newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n return cachedValue;\n }\n return memoized;\n}\nexport function memoize2(fn) {\n var cache1;\n function memoized(a1, a2) {\n if (!cache1) {\n cache1 = new WeakMap();\n var cache2_4 = new WeakMap();\n cache1.set(a1, cache2_4);\n var newValue = fn(a1, a2);\n cache2_4.set(a2, newValue);\n return newValue;\n }\n var cache2 = cache1.get(a1);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1, cache2);\n var newValue = fn(a1, a2);\n cache2.set(a2, newValue);\n return newValue;\n }\n var cachedValue = cache2.get(a2);\n if (cachedValue === undefined) {\n var newValue = fn(a1, a2);\n cache2.set(a2, newValue);\n return newValue;\n }\n return cachedValue;\n }\n return memoized;\n}\n//# sourceMappingURL=memoize.js.map","import { collectFields } from '@graphql-tools/utils';\nimport { isSubschemaConfig } from './subschemaConfig';\nimport { memoizeInfoAnd2Objects } from './memoize';\nfunction collectSubFields(info, typeName) {\n var subFieldNodes = Object.create(null);\n var visitedFragmentNames = Object.create(null);\n var type = info.schema.getType(typeName);\n var partialExecutionContext = {\n schema: info.schema,\n variableValues: info.variableValues,\n fragments: info.fragments,\n };\n info.fieldNodes.forEach(function (fieldNode) {\n subFieldNodes = collectFields(partialExecutionContext, type, fieldNode.selectionSet, subFieldNodes, visitedFragmentNames);\n });\n var stitchingInfo = info.schema.extensions.stitchingInfo;\n var selectionSetsByField = stitchingInfo.selectionSetsByField;\n Object.keys(subFieldNodes).forEach(function (responseName) {\n var _a;\n var fieldName = subFieldNodes[responseName][0].name.value;\n var fieldSelectionSet = (_a = selectionSetsByField === null || selectionSetsByField === void 0 ? void 0 : selectionSetsByField[typeName]) === null || _a === void 0 ? void 0 : _a[fieldName];\n if (fieldSelectionSet != null) {\n subFieldNodes = collectFields(partialExecutionContext, type, fieldSelectionSet, subFieldNodes, visitedFragmentNames);\n }\n });\n return subFieldNodes;\n}\nexport var getFieldsNotInSubschema = memoizeInfoAnd2Objects(function (info, subschema, mergedTypeInfo) {\n var typeMap = isSubschemaConfig(subschema) ? mergedTypeInfo.typeMaps.get(subschema) : subschema.getTypeMap();\n var typeName = mergedTypeInfo.typeName;\n var fields = typeMap[typeName].getFields();\n var subFieldNodes = collectSubFields(info, typeName);\n var fieldsNotInSchema = [];\n Object.keys(subFieldNodes).forEach(function (responseName) {\n var fieldName = subFieldNodes[responseName][0].name.value;\n if (!(fieldName in fields)) {\n fieldsNotInSchema = fieldsNotInSchema.concat(subFieldNodes[responseName]);\n }\n });\n return fieldsNotInSchema;\n});\n//# sourceMappingURL=getFieldsNotInSubschema.js.map","import { __values } from \"tslib\";\nimport { Kind, responsePathAsArray, getNamedType, } from 'graphql';\nimport { ValueOrPromise } from 'value-or-promise';\nimport { memoize4, memoize3, memoize2 } from './memoize';\nimport { mergeExternalObjects } from './externalObjects';\nvar sortSubschemasByProxiability = memoize4(function (mergedTypeInfo, sourceSubschemaOrSourceSubschemas, targetSubschemas, fieldNodes) {\n // 1. calculate if possible to delegate to given subschema\n var proxiableSubschemas = [];\n var nonProxiableSubschemas = [];\n targetSubschemas.forEach(function (t) {\n var selectionSet = mergedTypeInfo.selectionSets.get(t);\n var fieldSelectionSets = mergedTypeInfo.fieldSelectionSets.get(t);\n if (selectionSet != null &&\n !subschemaTypesContainSelectionSet(mergedTypeInfo, sourceSubschemaOrSourceSubschemas, selectionSet)) {\n nonProxiableSubschemas.push(t);\n }\n else {\n if (fieldSelectionSets == null ||\n fieldNodes.every(function (fieldNode) {\n var fieldName = fieldNode.name.value;\n var fieldSelectionSet = fieldSelectionSets[fieldName];\n return (fieldSelectionSet == null ||\n subschemaTypesContainSelectionSet(mergedTypeInfo, sourceSubschemaOrSourceSubschemas, fieldSelectionSet));\n })) {\n proxiableSubschemas.push(t);\n }\n else {\n nonProxiableSubschemas.push(t);\n }\n }\n });\n return {\n proxiableSubschemas: proxiableSubschemas,\n nonProxiableSubschemas: nonProxiableSubschemas,\n };\n});\nvar buildDelegationPlan = memoize3(function (mergedTypeInfo, fieldNodes, proxiableSubschemas) {\n var uniqueFields = mergedTypeInfo.uniqueFields, nonUniqueFields = mergedTypeInfo.nonUniqueFields;\n var unproxiableFieldNodes = [];\n // 2. for each selection:\n var delegationMap = new Map();\n fieldNodes.forEach(function (fieldNode) {\n if (fieldNode.name.value === '__typename') {\n return;\n }\n // 2a. use uniqueFields map to assign fields to subschema if one of possible subschemas\n var uniqueSubschema = uniqueFields[fieldNode.name.value];\n if (uniqueSubschema != null) {\n if (!proxiableSubschemas.includes(uniqueSubschema)) {\n unproxiableFieldNodes.push(fieldNode);\n return;\n }\n var existingSubschema_1 = delegationMap.get(uniqueSubschema);\n if (existingSubschema_1 != null) {\n existingSubschema_1.push(fieldNode);\n }\n else {\n delegationMap.set(uniqueSubschema, [fieldNode]);\n }\n return;\n }\n // 2b. use nonUniqueFields to assign to a possible subschema,\n // preferring one of the subschemas already targets of delegation\n var nonUniqueSubschemas = nonUniqueFields[fieldNode.name.value];\n if (nonUniqueSubschemas == null) {\n unproxiableFieldNodes.push(fieldNode);\n return;\n }\n nonUniqueSubschemas = nonUniqueSubschemas.filter(function (s) { return proxiableSubschemas.includes(s); });\n if (!nonUniqueSubschemas.length) {\n unproxiableFieldNodes.push(fieldNode);\n return;\n }\n var existingSubschema = nonUniqueSubschemas.find(function (s) { return delegationMap.has(s); });\n if (existingSubschema != null) {\n delegationMap.get(existingSubschema).push(fieldNode);\n }\n else {\n delegationMap.set(nonUniqueSubschemas[0], [fieldNode]);\n }\n });\n var finalDelegationMap = new Map();\n delegationMap.forEach(function (selections, subschema) {\n finalDelegationMap.set(subschema, {\n kind: Kind.SELECTION_SET,\n selections: selections,\n });\n });\n return {\n delegationMap: finalDelegationMap,\n unproxiableFieldNodes: unproxiableFieldNodes,\n };\n});\nvar combineSubschemas = memoize2(function (subschemaOrSubschemas, additionalSubschemas) {\n return Array.isArray(subschemaOrSubschemas)\n ? subschemaOrSubschemas.concat(additionalSubschemas)\n : [subschemaOrSubschemas].concat(additionalSubschemas);\n});\nexport function mergeFields(mergedTypeInfo, typeName, object, fieldNodes, sourceSubschemaOrSourceSubschemas, targetSubschemas, context, info) {\n if (!fieldNodes.length) {\n return object;\n }\n var _a = sortSubschemasByProxiability(mergedTypeInfo, sourceSubschemaOrSourceSubschemas, targetSubschemas, fieldNodes), proxiableSubschemas = _a.proxiableSubschemas, nonProxiableSubschemas = _a.nonProxiableSubschemas;\n var _b = buildDelegationPlan(mergedTypeInfo, fieldNodes, proxiableSubschemas), delegationMap = _b.delegationMap, unproxiableFieldNodes = _b.unproxiableFieldNodes;\n if (!delegationMap.size) {\n return object;\n }\n var resultMap = new Map();\n delegationMap.forEach(function (selectionSet, s) {\n var resolver = mergedTypeInfo.resolvers.get(s);\n var valueOrPromise = new ValueOrPromise(function () { return resolver(object, context, info, s, selectionSet); }).catch(function (error) { return error; });\n resultMap.set(valueOrPromise, selectionSet);\n });\n return ValueOrPromise.all(Array.from(resultMap.keys())).then(function (results) {\n return mergeFields(mergedTypeInfo, typeName, mergeExternalObjects(info.schema, responsePathAsArray(info.path), object.__typename, object, results, Array.from(resultMap.values())), unproxiableFieldNodes, combineSubschemas(sourceSubschemaOrSourceSubschemas, proxiableSubschemas), nonProxiableSubschemas, context, info);\n }).resolve();\n}\nvar subschemaTypesContainSelectionSet = memoize3(function (mergedTypeInfo, sourceSubschemaOrSourceSubschemas, selectionSet) {\n if (Array.isArray(sourceSubschemaOrSourceSubschemas)) {\n return typesContainSelectionSet(sourceSubschemaOrSourceSubschemas.map(function (sourceSubschema) { return sourceSubschema.transformedSchema.getType(mergedTypeInfo.typeName); }), selectionSet);\n }\n return typesContainSelectionSet([sourceSubschemaOrSourceSubschemas.transformedSchema.getType(mergedTypeInfo.typeName)], selectionSet);\n});\nfunction typesContainSelectionSet(types, selectionSet) {\n var e_1, _a;\n var fieldMaps = types.map(function (type) { return type.getFields(); });\n var _loop_1 = function (selection) {\n if (selection.kind === Kind.FIELD) {\n var fields = fieldMaps.map(function (fieldMap) { return fieldMap[selection.name.value]; }).filter(function (field) { return field != null; });\n if (!fields.length) {\n return { value: false };\n }\n if (selection.selectionSet != null) {\n return { value: typesContainSelectionSet(fields.map(function (field) { return getNamedType(field.type); }), selection.selectionSet) };\n }\n }\n else if (selection.kind === Kind.INLINE_FRAGMENT && selection.typeCondition.name.value === types[0].name) {\n return { value: typesContainSelectionSet(types, selection.selectionSet) };\n }\n };\n try {\n for (var _b = __values(selectionSet.selections), _c = _b.next(); !_c.done; _c = _b.next()) {\n var selection = _c.value;\n var state_1 = _loop_1(selection);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n}\n//# sourceMappingURL=mergeFields.js.map","import { getNullableType, isCompositeType, isLeafType, isListType, isAbstractType, locatedError, } from 'graphql';\nimport AggregateError from '@ardatan/aggregate-error';\nimport { annotateExternalObject, isExternalObject } from './externalObjects';\nimport { getFieldsNotInSubschema } from './getFieldsNotInSubschema';\nimport { mergeFields } from './mergeFields';\nexport function resolveExternalValue(result, unpathedErrors, subschema, context, info, returnType, skipTypeMerging) {\n if (returnType === void 0) { returnType = info.returnType; }\n var type = getNullableType(returnType);\n if (result instanceof Error) {\n return result;\n }\n if (result == null) {\n return reportUnpathedErrorsViaNull(unpathedErrors);\n }\n if (isLeafType(type)) {\n return type.parseValue(result);\n }\n else if (isCompositeType(type)) {\n return resolveExternalObject(type, result, unpathedErrors, subschema, context, info, skipTypeMerging);\n }\n else if (isListType(type)) {\n return resolveExternalList(type, result, unpathedErrors, subschema, context, info, skipTypeMerging);\n }\n}\nfunction resolveExternalObject(type, object, unpathedErrors, subschema, context, info, skipTypeMerging) {\n var _a;\n // if we have already resolved this object, for example, when the identical object appears twice\n // in a list, see https://github.com/ardatan/graphql-tools/issues/2304\n if (isExternalObject(object)) {\n return object;\n }\n annotateExternalObject(object, unpathedErrors, subschema);\n var stitchingInfo = (_a = info === null || info === void 0 ? void 0 : info.schema.extensions) === null || _a === void 0 ? void 0 : _a.stitchingInfo;\n if (skipTypeMerging || !stitchingInfo) {\n return object;\n }\n var typeName;\n if (isAbstractType(type)) {\n var resolvedType = info.schema.getTypeMap()[object.__typename];\n if (resolvedType == null) {\n throw new Error(\"Unable to resolve type '\" + object.__typename + \"'. Did you forget to include a transform that renames types? Did you delegate to the original subschema rather that the subschema config object containing the transform?\");\n }\n typeName = resolvedType.name;\n }\n else {\n typeName = type.name;\n }\n var mergedTypeInfo = stitchingInfo.mergedTypes[typeName];\n var targetSubschemas;\n // Within the stitching context, delegation to a stitched GraphQLSchema or SubschemaConfig\n // will be redirected to the appropriate Subschema object, from which merge targets can be queried.\n if (mergedTypeInfo != null) {\n targetSubschemas = mergedTypeInfo.targetSubschemas.get(subschema);\n }\n // If there are no merge targets from the subschema, return.\n if (!targetSubschemas) {\n return object;\n }\n var fieldNodes = getFieldsNotInSubschema(info, subschema, mergedTypeInfo);\n return mergeFields(mergedTypeInfo, typeName, object, fieldNodes, subschema, targetSubschemas, context, info);\n}\nfunction resolveExternalList(type, list, unpathedErrors, subschema, context, info, skipTypeMerging) {\n return list.map(function (listMember) {\n return resolveExternalListMember(getNullableType(type.ofType), listMember, unpathedErrors, subschema, context, info, skipTypeMerging);\n });\n}\nfunction resolveExternalListMember(type, listMember, unpathedErrors, subschema, context, info, skipTypeMerging) {\n if (listMember instanceof Error) {\n return listMember;\n }\n if (listMember == null) {\n return reportUnpathedErrorsViaNull(unpathedErrors);\n }\n if (isLeafType(type)) {\n return type.parseValue(listMember);\n }\n else if (isCompositeType(type)) {\n return resolveExternalObject(type, listMember, unpathedErrors, subschema, context, info, skipTypeMerging);\n }\n else if (isListType(type)) {\n return resolveExternalList(type, listMember, unpathedErrors, subschema, context, info, skipTypeMerging);\n }\n}\nvar reportedErrors = new Map();\nfunction reportUnpathedErrorsViaNull(unpathedErrors) {\n if (unpathedErrors.length) {\n var unreportedErrors_1 = [];\n unpathedErrors.forEach(function (error) {\n if (!reportedErrors.has(error)) {\n unreportedErrors_1.push(error);\n reportedErrors.set(error, true);\n }\n });\n if (unreportedErrors_1.length) {\n if (unreportedErrors_1.length === 1) {\n return unreportedErrors_1[0];\n }\n var combinedError = new AggregateError(unreportedErrors_1);\n return locatedError(combinedError, undefined, unreportedErrors_1[0].path);\n }\n }\n return null;\n}\n//# sourceMappingURL=resolveExternalValue.js.map","import { defaultFieldResolver } from 'graphql';\nimport { getResponseKeyFromInfo } from '@graphql-tools/utils';\nimport { resolveExternalValue } from './resolveExternalValue';\nimport { getSubschema, getUnpathedErrors, isExternalObject } from './externalObjects';\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 conversion\n */\nexport function defaultMergedResolver(parent, args, context, info) {\n if (!parent) {\n return null;\n }\n var responseKey = getResponseKeyFromInfo(info);\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 (!isExternalObject(parent)) {\n return defaultFieldResolver(parent, args, context, info);\n }\n var data = parent[responseKey];\n var unpathedErrors = getUnpathedErrors(parent);\n var subschema = getSubschema(parent, responseKey);\n return resolveExternalValue(data, unpathedErrors, subschema, context, info);\n}\n//# sourceMappingURL=defaultMergedResolver.js.map","import { __assign } from \"tslib\";\nimport { Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql';\nimport { collectFields } from '@graphql-tools/utils';\nvar VisitSelectionSets = /** @class */ (function () {\n function VisitSelectionSets(visitor) {\n this.visitor = visitor;\n }\n VisitSelectionSets.prototype.transformRequest = function (originalRequest, delegationContext, _transformationContext) {\n var document = visitSelectionSets(originalRequest, delegationContext.info.schema, delegationContext.returnType, this.visitor);\n return __assign(__assign({}, originalRequest), { document: document });\n };\n return VisitSelectionSets;\n}());\nexport default VisitSelectionSets;\nfunction visitSelectionSets(request, schema, initialType, visitor) {\n var document = request.document, variables = request.variables;\n var operations = [];\n var fragments = Object.create(null);\n document.definitions.forEach(function (def) {\n if (def.kind === Kind.OPERATION_DEFINITION) {\n operations.push(def);\n }\n else if (def.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[def.name.value] = def;\n }\n });\n var partialExecutionContext = {\n schema: schema,\n variableValues: variables,\n fragments: fragments,\n };\n var typeInfo = new TypeInfo(schema, undefined, initialType);\n var newDefinitions = operations.map(function (operation) {\n var type = operation.operation === 'query'\n ? schema.getQueryType()\n : operation.operation === 'mutation'\n ? schema.getMutationType()\n : schema.getSubscriptionType();\n var fields = collectFields(partialExecutionContext, type, operation.selectionSet, Object.create(null), Object.create(null));\n var newSelections = [];\n Object.keys(fields).forEach(function (responseKey) {\n var fieldNodes = fields[responseKey];\n fieldNodes.forEach(function (fieldNode) {\n var _a;\n var selectionSet = fieldNode.selectionSet;\n if (selectionSet == null) {\n newSelections.push(fieldNode);\n return;\n }\n var newSelectionSet = visit(selectionSet, visitWithTypeInfo(typeInfo, (_a = {},\n _a[Kind.SELECTION_SET] = function (node) { return visitor(node, typeInfo); },\n _a)));\n if (newSelectionSet === selectionSet) {\n newSelections.push(fieldNode);\n return;\n }\n newSelections.push(__assign(__assign({}, fieldNode), { selectionSet: newSelectionSet }));\n });\n });\n return __assign(__assign({}, operation), { selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: newSelections,\n } });\n });\n Object.values(fragments).forEach(function (fragment) {\n var _a;\n newDefinitions.push(visit(fragment, visitWithTypeInfo(typeInfo, (_a = {},\n _a[Kind.SELECTION_SET] = function (node) { return visitor(node, typeInfo); },\n _a))));\n });\n return __assign(__assign({}, document), { definitions: newDefinitions });\n}\n//# sourceMappingURL=VisitSelectionSets.js.map","import { __assign } from \"tslib\";\nimport { Kind, print } from 'graphql';\nimport { memoize2 } from '../memoize';\nimport VisitSelectionSets from './VisitSelectionSets';\nvar AddSelectionSets = /** @class */ (function () {\n function AddSelectionSets(selectionSetsByType, selectionSetsByField, dynamicSelectionSetsByField) {\n this.transformer = new VisitSelectionSets(function (node, typeInfo) {\n return visitSelectionSet(node, typeInfo, selectionSetsByType, selectionSetsByField, dynamicSelectionSetsByField);\n });\n }\n AddSelectionSets.prototype.transformRequest = function (originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n };\n return AddSelectionSets;\n}());\nexport default AddSelectionSets;\nfunction visitSelectionSet(node, typeInfo, selectionSetsByType, selectionSetsByField, dynamicSelectionSetsByField) {\n var parentType = typeInfo.getParentType();\n var newSelections = new Map();\n if (parentType != null) {\n var parentTypeName_1 = parentType.name;\n addSelectionsToMap(newSelections, node);\n if (parentTypeName_1 in selectionSetsByType) {\n var selectionSet = selectionSetsByType[parentTypeName_1];\n addSelectionsToMap(newSelections, selectionSet);\n }\n if (parentTypeName_1 in selectionSetsByField) {\n node.selections.forEach(function (selection) {\n if (selection.kind === Kind.FIELD) {\n var name_1 = selection.name.value;\n var selectionSet = selectionSetsByField[parentTypeName_1][name_1];\n if (selectionSet != null) {\n addSelectionsToMap(newSelections, selectionSet);\n }\n }\n });\n }\n if (parentTypeName_1 in dynamicSelectionSetsByField) {\n node.selections.forEach(function (selection) {\n if (selection.kind === Kind.FIELD) {\n var name_2 = selection.name.value;\n var dynamicSelectionSets = dynamicSelectionSetsByField[parentTypeName_1][name_2];\n if (dynamicSelectionSets != null) {\n dynamicSelectionSets.forEach(function (selectionSetFn) {\n var selectionSet = selectionSetFn(selection);\n if (selectionSet != null) {\n addSelectionsToMap(newSelections, selectionSet);\n }\n });\n }\n }\n });\n }\n return __assign(__assign({}, node), { selections: Array.from(newSelections.values()) });\n }\n}\nvar addSelectionsToMap = memoize2(function (map, selectionSet) {\n selectionSet.selections.forEach(function (selection) {\n map.set(print(selection), selection);\n });\n});\n//# sourceMappingURL=AddSelectionSets.js.map","import { __assign, __read, __spreadArray } from \"tslib\";\nimport { Kind, TypeInfo, getNamedType, isAbstractType, isInterfaceType, visit, visitWithTypeInfo, } from 'graphql';\nimport { implementsAbstractType } from '@graphql-tools/utils';\nvar ExpandAbstractTypes = /** @class */ (function () {\n function ExpandAbstractTypes() {\n }\n ExpandAbstractTypes.prototype.transformRequest = function (originalRequest, delegationContext, _transformationContext) {\n var targetSchema = delegationContext.targetSchema;\n var _a = extractPossibleTypes(delegationContext.info.schema, targetSchema), possibleTypesMap = _a.possibleTypesMap, interfaceExtensionsMap = _a.interfaceExtensionsMap;\n var reversePossibleTypesMap = flipMapping(possibleTypesMap);\n var document = expandAbstractTypes(targetSchema, possibleTypesMap, reversePossibleTypesMap, interfaceExtensionsMap, originalRequest.document);\n return __assign(__assign({}, originalRequest), { document: document });\n };\n return ExpandAbstractTypes;\n}());\nexport default ExpandAbstractTypes;\nfunction extractPossibleTypes(sourceSchema, targetSchema) {\n var typeMap = sourceSchema.getTypeMap();\n var possibleTypesMap = Object.create(null);\n var interfaceExtensionsMap = Object.create(null);\n Object.keys(typeMap).forEach(function (typeName) {\n var type = typeMap[typeName];\n if (isAbstractType(type)) {\n var targetType = targetSchema.getType(typeName);\n if (isInterfaceType(type) && isInterfaceType(targetType)) {\n var targetTypeFields_1 = targetType.getFields();\n var extensionFields_1 = Object.create(null);\n Object.keys(type.getFields()).forEach(function (fieldName) {\n if (!targetTypeFields_1[fieldName]) {\n extensionFields_1[fieldName] = true;\n }\n });\n if (Object.keys(extensionFields_1).length) {\n interfaceExtensionsMap[typeName] = extensionFields_1;\n }\n }\n if (!isAbstractType(targetType) || typeName in interfaceExtensionsMap) {\n var implementations = sourceSchema.getPossibleTypes(type);\n possibleTypesMap[typeName] = implementations\n .filter(function (impl) { return targetSchema.getType(impl.name); })\n .map(function (impl) { return impl.name; });\n }\n }\n });\n return { possibleTypesMap: possibleTypesMap, interfaceExtensionsMap: interfaceExtensionsMap };\n}\nfunction flipMapping(mapping) {\n var result = Object.create(null);\n Object.keys(mapping).forEach(function (typeName) {\n var toTypeNames = mapping[typeName];\n toTypeNames.forEach(function (toTypeName) {\n if (!(toTypeName in result)) {\n result[toTypeName] = [];\n }\n result[toTypeName].push(typeName);\n });\n });\n return result;\n}\nfunction expandAbstractTypes(targetSchema, possibleTypesMap, reversePossibleTypesMap, interfaceExtensionsMap, document) {\n var _a;\n var operations = document.definitions.filter(function (def) { return def.kind === Kind.OPERATION_DEFINITION; });\n var fragments = document.definitions.filter(function (def) { return def.kind === Kind.FRAGMENT_DEFINITION; });\n var existingFragmentNames = fragments.map(function (fragment) { return fragment.name.value; });\n var fragmentCounter = 0;\n var generateFragmentName = function (typeName) {\n var fragmentName;\n do {\n fragmentName = \"_\" + typeName + \"_Fragment\" + fragmentCounter.toString();\n fragmentCounter++;\n } while (existingFragmentNames.indexOf(fragmentName) !== -1);\n return fragmentName;\n };\n var generateInlineFragment = function (typeName, selectionSet) {\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: typeName,\n },\n },\n selectionSet: selectionSet,\n };\n };\n var newFragments = [];\n var fragmentReplacements = Object.create(null);\n fragments.forEach(function (fragment) {\n newFragments.push(fragment);\n var possibleTypes = possibleTypesMap[fragment.typeCondition.name.value];\n if (possibleTypes != null) {\n fragmentReplacements[fragment.name.value] = [];\n possibleTypes.forEach(function (possibleTypeName) {\n var name = generateFragmentName(possibleTypeName);\n existingFragmentNames.push(name);\n var 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 var newDocument = __assign(__assign({}, document), { definitions: __spreadArray(__spreadArray([], __read(operations)), __read(newFragments)) });\n var typeInfo = new TypeInfo(targetSchema);\n return visit(newDocument, visitWithTypeInfo(typeInfo, (_a = {},\n _a[Kind.SELECTION_SET] = function (node) {\n var newSelections = node.selections;\n var addedSelections = [];\n var maybeType = typeInfo.getParentType();\n if (maybeType != null) {\n var parentType_1 = getNamedType(maybeType);\n var interfaceExtension_1 = interfaceExtensionsMap[parentType_1.name];\n var interfaceExtensionFields_1 = [];\n node.selections.forEach(function (selection) {\n if (selection.kind === Kind.INLINE_FRAGMENT) {\n if (selection.typeCondition != null) {\n var possibleTypes = possibleTypesMap[selection.typeCondition.name.value];\n if (possibleTypes != null) {\n possibleTypes.forEach(function (possibleType) {\n var maybePossibleType = targetSchema.getType(possibleType);\n if (maybePossibleType != null &&\n implementsAbstractType(targetSchema, parentType_1, maybePossibleType)) {\n addedSelections.push(generateInlineFragment(possibleType, selection.selectionSet));\n }\n });\n }\n }\n }\n else if (selection.kind === Kind.FRAGMENT_SPREAD) {\n var fragmentName = selection.name.value;\n if (fragmentName in fragmentReplacements) {\n fragmentReplacements[fragmentName].forEach(function (replacement) {\n var typeName = replacement.typeName;\n var maybeReplacementType = targetSchema.getType(typeName);\n if (maybeReplacementType != null && implementsAbstractType(targetSchema, parentType_1, maybeType)) {\n addedSelections.push({\n kind: Kind.FRAGMENT_SPREAD,\n name: {\n kind: Kind.NAME,\n value: replacement.fragmentName,\n },\n });\n }\n });\n }\n }\n else if (interfaceExtension_1 != null &&\n interfaceExtension_1[selection.name.value] &&\n selection.kind === Kind.FIELD) {\n interfaceExtensionFields_1.push(selection);\n }\n });\n if (parentType_1.name in reversePossibleTypesMap) {\n addedSelections.push({\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n });\n }\n if (interfaceExtensionFields_1.length) {\n var possibleTypes = possibleTypesMap[parentType_1.name];\n if (possibleTypes != null) {\n possibleTypes.forEach(function (possibleType) {\n addedSelections.push(generateInlineFragment(possibleType, {\n kind: Kind.SELECTION_SET,\n selections: interfaceExtensionFields_1,\n }));\n });\n newSelections = newSelections.filter(function (selection) {\n return !(selection.kind === Kind.FIELD && interfaceExtension_1[selection.name.value]);\n });\n }\n }\n }\n if (addedSelections.length) {\n return __assign(__assign({}, node), { selections: newSelections.concat(addedSelections) });\n }\n },\n _a)));\n}\n//# sourceMappingURL=ExpandAbstractTypes.js.map","import { __assign } from \"tslib\";\nimport { Kind, getNamedType, isAbstractType, TypeInfo, visit, visitWithTypeInfo, isObjectType, } from 'graphql';\n// For motivation, see https://github.com/ardatan/graphql-tools/issues/751\nvar WrapConcreteTypes = /** @class */ (function () {\n function WrapConcreteTypes() {\n }\n WrapConcreteTypes.prototype.transformRequest = function (originalRequest, delegationContext, _transformationContext) {\n var document = wrapConcreteTypes(delegationContext.returnType, delegationContext.targetSchema, originalRequest.document);\n return __assign(__assign({}, originalRequest), { document: document });\n };\n return WrapConcreteTypes;\n}());\nexport default WrapConcreteTypes;\nfunction wrapConcreteTypes(returnType, targetSchema, document) {\n var _a;\n var _b, _c, _d;\n var namedType = getNamedType(returnType);\n if (!isObjectType(namedType)) {\n return document;\n }\n var queryTypeName = (_b = targetSchema.getQueryType()) === null || _b === void 0 ? void 0 : _b.name;\n var mutationTypeName = (_c = targetSchema.getMutationType()) === null || _c === void 0 ? void 0 : _c.name;\n var subscriptionTypeName = (_d = targetSchema.getSubscriptionType()) === null || _d === void 0 ? void 0 : _d.name;\n var typeInfo = new TypeInfo(targetSchema);\n var newDocument = visit(document, visitWithTypeInfo(typeInfo, (_a = {},\n _a[Kind.FRAGMENT_DEFINITION] = function (node) {\n var typeName = node.typeCondition.name.value;\n if (typeName !== queryTypeName && typeName !== mutationTypeName && typeName !== subscriptionTypeName) {\n return false;\n }\n },\n _a[Kind.FIELD] = function (node) {\n if (isAbstractType(getNamedType(typeInfo.getType()))) {\n return __assign(__assign({}, node), { 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 _a)), \n // visitorKeys argument usage a la https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-graphql/src/batching/merge-queries.js\n // empty keys cannot be removed only because of typescript errors\n // will hopefully be fixed in future version of graphql-js to be optional\n {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['selectionSet'],\n VariableDefinition: [],\n Variable: [],\n SelectionSet: ['selections'],\n Field: [],\n Argument: [],\n FragmentSpread: [],\n InlineFragment: ['selectionSet'],\n FragmentDefinition: ['selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: [],\n ObjectValue: [],\n ObjectField: [],\n Directive: [],\n NamedType: [],\n ListType: [],\n NonNullType: [],\n SchemaDefinition: [],\n OperationTypeDefinition: [],\n ScalarTypeDefinition: [],\n ObjectTypeDefinition: [],\n FieldDefinition: [],\n InputValueDefinition: [],\n InterfaceTypeDefinition: [],\n UnionTypeDefinition: [],\n EnumTypeDefinition: [],\n EnumValueDefinition: [],\n InputObjectTypeDefinition: [],\n DirectiveDefinition: [],\n SchemaExtension: [],\n ScalarTypeExtension: [],\n ObjectTypeExtension: [],\n InterfaceTypeExtension: [],\n UnionTypeExtension: [],\n EnumTypeExtension: [],\n InputObjectTypeExtension: [],\n });\n return newDocument;\n}\n//# sourceMappingURL=WrapConcreteTypes.js.map","import { __assign, __read, __spreadArray } from \"tslib\";\nimport { Kind, TypeNameMetaFieldDef, visit, TypeInfo, visitWithTypeInfo, getNamedType, isObjectType, isInterfaceType, } from 'graphql';\nimport { implementsAbstractType } from '@graphql-tools/utils';\nvar FilterToSchema = /** @class */ (function () {\n function FilterToSchema() {\n }\n FilterToSchema.prototype.transformRequest = function (originalRequest, delegationContext, _transformationContext) {\n return __assign(__assign({}, originalRequest), filterToSchema(delegationContext.targetSchema, originalRequest.document, originalRequest.variables));\n };\n return FilterToSchema;\n}());\nexport default FilterToSchema;\nfunction filterToSchema(targetSchema, document, variables) {\n var operations = document.definitions.filter(function (def) { return def.kind === Kind.OPERATION_DEFINITION; });\n var fragments = document.definitions.filter(function (def) { return def.kind === Kind.FRAGMENT_DEFINITION; });\n var usedVariables = [];\n var usedFragments = [];\n var newOperations = [];\n var newFragments = [];\n var validFragments = fragments.filter(function (fragment) {\n var typeName = fragment.typeCondition.name.value;\n return Boolean(targetSchema.getType(typeName));\n });\n var validFragmentsWithType = validFragments.reduce(function (prev, fragment) {\n var _a;\n return (__assign(__assign({}, prev), (_a = {}, _a[fragment.name.value] = targetSchema.getType(fragment.typeCondition.name.value), _a)));\n }, {});\n var fragmentSet = Object.create(null);\n operations.forEach(function (operation) {\n var 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 var _a = filterSelectionSet(targetSchema, type, validFragmentsWithType, operation.selectionSet), selectionSet = _a.selectionSet, operationUsedFragments = _a.usedFragments, operationUsedVariables = _a.usedVariables;\n usedFragments = union(usedFragments, operationUsedFragments);\n var _b = collectFragmentVariables(targetSchema, fragmentSet, validFragments, validFragmentsWithType, usedFragments), collectedUsedVariables = _b.usedVariables, collectedNewFragments = _b.newFragments, collectedFragmentSet = _b.fragmentSet;\n var operationOrFragmentVariables = union(operationUsedVariables, collectedUsedVariables);\n usedVariables = union(usedVariables, operationOrFragmentVariables);\n newFragments = collectedNewFragments;\n fragmentSet = collectedFragmentSet;\n var variableDefinitions = operation.variableDefinitions.filter(function (variable) { return 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: variableDefinitions,\n selectionSet: selectionSet,\n });\n });\n var newVariables = usedVariables.reduce(function (acc, variableName) {\n var 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: __spreadArray(__spreadArray([], __read(newOperations)), __read(newFragments)),\n },\n variables: newVariables,\n };\n}\nfunction collectFragmentVariables(targetSchema, fragmentSet, validFragments, validFragmentsWithType, usedFragments) {\n var remainingFragments = usedFragments.slice();\n var usedVariables = [];\n var newFragments = [];\n var _loop_1 = function () {\n var nextFragmentName = remainingFragments.pop();\n var fragment = validFragments.find(function (fr) { return fr.name.value === nextFragmentName; });\n if (fragment != null) {\n var name_1 = nextFragmentName;\n var typeName = fragment.typeCondition.name.value;\n var type = targetSchema.getType(typeName);\n var _a = filterSelectionSet(targetSchema, type, validFragmentsWithType, fragment.selectionSet), selectionSet = _a.selectionSet, fragmentUsedFragments = _a.usedFragments, fragmentUsedVariables = _a.usedVariables;\n remainingFragments = union(remainingFragments, fragmentUsedFragments);\n usedVariables = union(usedVariables, fragmentUsedVariables);\n if (!(name_1 in fragmentSet)) {\n fragmentSet[name_1] = true;\n newFragments.push({\n kind: Kind.FRAGMENT_DEFINITION,\n name: {\n kind: Kind.NAME,\n value: name_1,\n },\n typeCondition: fragment.typeCondition,\n selectionSet: selectionSet,\n });\n }\n }\n };\n while (remainingFragments.length !== 0) {\n _loop_1();\n }\n return {\n usedVariables: usedVariables,\n newFragments: newFragments,\n fragmentSet: fragmentSet,\n };\n}\nfunction filterSelectionSet(schema, type, validFragments, selectionSet) {\n var _a;\n var usedFragments = [];\n var usedVariables = [];\n var typeInfo = new TypeInfo(schema, undefined, type);\n var filteredSelectionSet = visit(selectionSet, visitWithTypeInfo(typeInfo, (_a = {},\n _a[Kind.FIELD] = {\n enter: function (node) {\n var parentType = typeInfo.getParentType();\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n var fields = parentType.getFields();\n var field = node.name.value === '__typename' ? TypeNameMetaFieldDef : fields[node.name.value];\n if (!field) {\n return null;\n }\n var argNames_1 = (field.args != null ? field.args : []).map(function (arg) { return arg.name; });\n if (node.arguments != null) {\n var args = node.arguments.filter(function (arg) { return argNames_1.indexOf(arg.name.value) !== -1; });\n if (args.length !== node.arguments.length) {\n return __assign(__assign({}, node), { arguments: args });\n }\n }\n }\n },\n leave: function (node) {\n var _a;\n var resolvedType = getNamedType(typeInfo.getType());\n if (isObjectType(resolvedType) || isInterfaceType(resolvedType)) {\n var 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, (_a = {},\n _a[Kind.VARIABLE] = function (variableNode) {\n var index = usedVariables.indexOf(variableNode.name.value);\n if (index !== -1) {\n usedVariables.splice(index, 1);\n }\n },\n _a));\n return null;\n }\n }\n },\n },\n _a[Kind.FRAGMENT_SPREAD] = function (node) {\n if (node.name.value in validFragments) {\n var parentType = typeInfo.getParentType();\n var 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 _a[Kind.INLINE_FRAGMENT] = {\n enter: function (node) {\n if (node.typeCondition != null) {\n var parentType = typeInfo.getParentType();\n var innerType = schema.getType(node.typeCondition.name.value);\n if (!implementsAbstractType(schema, parentType, innerType)) {\n return null;\n }\n }\n },\n },\n _a[Kind.VARIABLE] = function (node) {\n usedVariables.push(node.name.value);\n },\n _a)));\n return {\n selectionSet: filteredSelectionSet,\n usedFragments: usedFragments,\n usedVariables: usedVariables,\n };\n}\nfunction union() {\n var arrays = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n arrays[_i] = arguments[_i];\n }\n var cache = Object.create(null);\n var result = [];\n arrays.forEach(function (array) {\n array.forEach(function (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 { __assign } from \"tslib\";\nimport { TypeInfo, visit, visitWithTypeInfo, Kind, isAbstractType, } from 'graphql';\nvar AddTypenameToAbstract = /** @class */ (function () {\n function AddTypenameToAbstract() {\n }\n AddTypenameToAbstract.prototype.transformRequest = function (originalRequest, delegationContext, _transformationContext) {\n var document = addTypenameToAbstract(delegationContext.targetSchema, originalRequest.document);\n return __assign(__assign({}, originalRequest), { document: document });\n };\n return AddTypenameToAbstract;\n}());\nexport default AddTypenameToAbstract;\nfunction addTypenameToAbstract(targetSchema, document) {\n var _a;\n var typeInfo = new TypeInfo(targetSchema);\n return visit(document, visitWithTypeInfo(typeInfo, (_a = {},\n _a[Kind.SELECTION_SET] = function (node) {\n var parentType = typeInfo.getParentType();\n var 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 __assign(__assign({}, node), { selections: selections });\n }\n },\n _a)));\n}\n//# sourceMappingURL=AddTypenameToAbstract.js.map","import { responsePathAsArray, locatedError, } from 'graphql';\nimport AggregateError from '@ardatan/aggregate-error';\nimport { getResponseKeyFromInfo, relocatedError } from '@graphql-tools/utils';\nimport { resolveExternalValue } from '../resolveExternalValue';\nvar CheckResultAndHandleErrors = /** @class */ (function () {\n function CheckResultAndHandleErrors() {\n }\n CheckResultAndHandleErrors.prototype.transformResult = function (originalResult, delegationContext, _transformationContext) {\n return checkResultAndHandleErrors(originalResult, delegationContext.context != null ? delegationContext.context : {}, delegationContext.info, delegationContext.fieldName, delegationContext.subschema, delegationContext.returnType, delegationContext.skipTypeMerging, delegationContext.onLocatedError);\n };\n return CheckResultAndHandleErrors;\n}());\nexport default CheckResultAndHandleErrors;\nexport function checkResultAndHandleErrors(result, context, info, responseKey, subschema, returnType, skipTypeMerging, onLocatedError) {\n if (responseKey === void 0) { responseKey = getResponseKeyFromInfo(info); }\n if (returnType === void 0) { returnType = info.returnType; }\n var _a = mergeDataAndErrors(result.data == null ? undefined : result.data[responseKey], result.errors == null ? [] : result.errors, info ? responsePathAsArray(info.path) : undefined, onLocatedError), data = _a.data, unpathedErrors = _a.unpathedErrors;\n return resolveExternalValue(data, unpathedErrors, subschema, context, info, returnType, skipTypeMerging);\n}\nexport function mergeDataAndErrors(data, errors, path, onLocatedError, index) {\n if (index === void 0) { index = 1; }\n if (data == null) {\n if (!errors.length) {\n return { data: null, unpathedErrors: [] };\n }\n if (errors.length === 1) {\n var error = onLocatedError ? onLocatedError(errors[0]) : errors[0];\n var newPath = path === undefined ? error.path : error.path === undefined ? path : path.concat(error.path.slice(1));\n return { data: relocatedError(errors[0], newPath), unpathedErrors: [] };\n }\n var newError = locatedError(new AggregateError(errors), undefined, path);\n return { data: newError, unpathedErrors: [] };\n }\n if (!errors.length) {\n return { data: data, unpathedErrors: [] };\n }\n var unpathedErrors = [];\n var errorMap = Object.create(null);\n errors.forEach(function (error) {\n var _a;\n var pathSegment = (_a = error.path) === null || _a === void 0 ? void 0 : _a[index];\n if (pathSegment != null) {\n var pathSegmentErrors = errorMap[pathSegment];\n if (pathSegmentErrors === undefined) {\n errorMap[pathSegment] = [error];\n }\n else {\n pathSegmentErrors.push(error);\n }\n }\n else {\n unpathedErrors.push(error);\n }\n });\n Object.keys(errorMap).forEach(function (pathSegment) {\n if (data[pathSegment] !== undefined) {\n var _a = mergeDataAndErrors(data[pathSegment], errorMap[pathSegment], path, onLocatedError, index + 1), newData = _a.data, newErrors = _a.unpathedErrors;\n data[pathSegment] = newData;\n unpathedErrors = unpathedErrors.concat(newErrors);\n }\n else {\n unpathedErrors = unpathedErrors.concat(errorMap[pathSegment]);\n }\n });\n return { data: data, unpathedErrors: unpathedErrors };\n}\n//# sourceMappingURL=CheckResultAndHandleErrors.js.map","import { __assign, __read, __spreadArray } from \"tslib\";\nimport { Kind, } from 'graphql';\nimport { serializeInputValue, updateArgument } from '@graphql-tools/utils';\nvar AddArgumentsAsVariables = /** @class */ (function () {\n function AddArgumentsAsVariables(args) {\n this.args = Object.entries(args).reduce(function (prev, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], val = _c[1];\n return (__assign(__assign({}, prev), (_b = {}, _b[key] = val, _b)));\n }, {});\n }\n AddArgumentsAsVariables.prototype.transformRequest = function (originalRequest, delegationContext, _transformationContext) {\n var _a = addVariablesToRootField(delegationContext.targetSchema, originalRequest, this.args), document = _a.document, variables = _a.variables;\n return __assign(__assign({}, originalRequest), { document: document,\n variables: variables });\n };\n return AddArgumentsAsVariables;\n}());\nexport default AddArgumentsAsVariables;\nfunction addVariablesToRootField(targetSchema, originalRequest, args) {\n var document = originalRequest.document;\n var variableValues = originalRequest.variables;\n var operations = document.definitions.filter(function (def) { return def.kind === Kind.OPERATION_DEFINITION; });\n var fragments = document.definitions.filter(function (def) { return def.kind === Kind.FRAGMENT_DEFINITION; });\n var newOperations = operations.map(function (operation) {\n var variableDefinitionMap = operation.variableDefinitions.reduce(function (prev, def) {\n var _a;\n return (__assign(__assign({}, prev), (_a = {}, _a[def.variable.name.value] = def, _a)));\n }, {});\n var 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 var newSelectionSet = [];\n operation.selectionSet.selections.forEach(function (selection) {\n var _a;\n if (selection.kind === Kind.FIELD) {\n var argumentNodes = (_a = selection.arguments) !== null && _a !== void 0 ? _a : [];\n var argumentNodeMap_1 = argumentNodes.reduce(function (prev, argument) {\n var _a;\n return (__assign(__assign({}, prev), (_a = {}, _a[argument.name.value] = argument, _a)));\n }, {});\n var targetField = type.getFields()[selection.name.value];\n // excludes __typename\n if (targetField != null) {\n updateArguments(targetField, argumentNodeMap_1, variableDefinitionMap, variableValues, args);\n }\n newSelectionSet.push(__assign(__assign({}, selection), { arguments: Object.keys(argumentNodeMap_1).map(function (argName) { return argumentNodeMap_1[argName]; }) }));\n }\n else {\n newSelectionSet.push(selection);\n }\n });\n return __assign(__assign({}, operation), { variableDefinitions: Object.keys(variableDefinitionMap).map(function (varName) { return variableDefinitionMap[varName]; }), selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: newSelectionSet,\n } });\n });\n return {\n document: __assign(__assign({}, document), { definitions: __spreadArray(__spreadArray([], __read(newOperations)), __read(fragments)) }),\n variables: variableValues,\n };\n}\nfunction updateArguments(targetField, argumentNodeMap, variableDefinitionMap, variableValues, newArgs) {\n targetField.args.forEach(function (argument) {\n var argName = argument.name;\n var 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 AddSelectionSets from './transforms/AddSelectionSets';\nimport ExpandAbstractTypes from './transforms/ExpandAbstractTypes';\nimport WrapConcreteTypes from './transforms/WrapConcreteTypes';\nimport FilterToSchema from './transforms/FilterToSchema';\nimport AddTypenameToAbstract from './transforms/AddTypenameToAbstract';\nimport CheckResultAndHandleErrors from './transforms/CheckResultAndHandleErrors';\nimport AddArgumentsAsVariables from './transforms/AddArgumentsAsVariables';\nexport function defaultDelegationBinding(delegationContext) {\n var _a;\n var delegationTransforms = [new CheckResultAndHandleErrors()];\n var info = delegationContext.info;\n var stitchingInfo = (_a = info === null || info === void 0 ? void 0 : info.schema.extensions) === null || _a === void 0 ? void 0 : _a.stitchingInfo;\n if (stitchingInfo != null) {\n delegationTransforms = delegationTransforms.concat([\n new ExpandAbstractTypes(),\n new AddSelectionSets(stitchingInfo.selectionSetsByType, stitchingInfo.selectionSetsByField, stitchingInfo.dynamicSelectionSetsByField),\n new WrapConcreteTypes(),\n ]);\n }\n else if (info != null) {\n delegationTransforms = delegationTransforms.concat([new WrapConcreteTypes(), new ExpandAbstractTypes()]);\n }\n else {\n delegationTransforms.push(new WrapConcreteTypes());\n }\n var transforms = delegationContext.transforms;\n if (transforms != null) {\n delegationTransforms = delegationTransforms.concat(transforms.slice().reverse());\n }\n var args = delegationContext.args;\n if (args != null) {\n delegationTransforms.push(new AddArgumentsAsVariables(args));\n }\n delegationTransforms = delegationTransforms.concat([new FilterToSchema(), new AddTypenameToAbstract()]);\n return delegationTransforms;\n}\n//# sourceMappingURL=delegationBindings.js.map","import { defaultDelegationBinding } from './delegationBindings';\nvar Transformer = /** @class */ (function () {\n function Transformer(context, binding) {\n var _this = this;\n if (binding === void 0) { binding = defaultDelegationBinding; }\n this.transformations = [];\n this.delegationContext = context;\n var delegationTransforms = binding(this.delegationContext);\n delegationTransforms.forEach(function (transform) { return _this.addTransform(transform, {}); });\n }\n Transformer.prototype.addTransform = function (transform, context) {\n if (context === void 0) { context = {}; }\n this.transformations.push({ transform: transform, context: context });\n };\n Transformer.prototype.transformRequest = function (originalRequest) {\n var _this = this;\n return this.transformations.reduce(function (request, transformation) {\n return transformation.transform.transformRequest != null\n ? transformation.transform.transformRequest(request, _this.delegationContext, transformation.context)\n : request;\n }, originalRequest);\n };\n Transformer.prototype.transformResult = function (originalResult) {\n var _this = this;\n return this.transformations.reduceRight(function (result, transformation) {\n return transformation.transform.transformResult != null\n ? transformation.transform.transformResult(result, _this.delegationContext, transformation.context)\n : result;\n }, originalResult);\n };\n return Transformer;\n}());\nexport { Transformer };\n//# sourceMappingURL=Transformer.js.map","import { __assign } from \"tslib\";\nimport { subscribe, execute, validate, getOperationAST, } from 'graphql';\nimport { ValueOrPromise } from 'value-or-promise';\nimport AggregateError from '@ardatan/aggregate-error';\nimport { getBatchingExecutor } from '@graphql-tools/batch-execute';\nimport { mapAsyncIterator } from '@graphql-tools/utils';\nimport { isSubschemaConfig } from './subschemaConfig';\nimport { createRequestFromInfo, getDelegatingOperation } from './createRequest';\nimport { Transformer } from './Transformer';\nimport { memoize2 } from './memoize';\nexport function delegateToSchema(options) {\n var info = options.info, operationName = options.operationName, _a = options.operation, operation = _a === void 0 ? getDelegatingOperation(info.parentType, info.schema) : _a, _b = options.fieldName, fieldName = _b === void 0 ? info.fieldName : _b, _c = options.returnType, returnType = _c === void 0 ? info.returnType : _c, selectionSet = options.selectionSet, fieldNodes = options.fieldNodes;\n var request = createRequestFromInfo({\n info: info,\n operation: operation,\n fieldName: fieldName,\n selectionSet: selectionSet,\n fieldNodes: fieldNodes,\n operationName: operationName,\n });\n return delegateRequest(__assign(__assign({}, options), { request: request,\n operation: operation,\n fieldName: fieldName,\n returnType: returnType }));\n}\nfunction getDelegationReturnType(targetSchema, operation, fieldName) {\n var 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(_a) {\n var _b, _c, _d;\n var request = _a.request, subschemaOrSubschemaConfig = _a.schema, rootValue = _a.rootValue, info = _a.info, operation = _a.operation, fieldName = _a.fieldName, args = _a.args, returnType = _a.returnType, onLocatedError = _a.onLocatedError, context = _a.context, _e = _a.transforms, transforms = _e === void 0 ? [] : _e, transformedSchema = _a.transformedSchema, skipValidation = _a.skipValidation, skipTypeMerging = _a.skipTypeMerging, binding = _a.binding;\n var operationDefinition;\n var targetOperation;\n var 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 var _f = collectTargetParameters(subschemaOrSubschemaConfig, rootValue, info, transforms), targetSchema = _f.targetSchema, targetRootValue = _f.targetRootValue, subschemaConfig = _f.subschemaConfig, allTransforms = _f.allTransforms;\n var delegationContext = {\n subschema: subschemaOrSubschemaConfig,\n targetSchema: targetSchema,\n operation: targetOperation,\n fieldName: targetFieldName,\n args: args,\n context: context,\n info: 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 onLocatedError: onLocatedError,\n transforms: allTransforms,\n transformedSchema: (_d = transformedSchema !== null && transformedSchema !== void 0 ? transformedSchema : (_c = subschemaConfig) === null || _c === void 0 ? void 0 : _c.transformedSchema) !== null && _d !== void 0 ? _d : targetSchema,\n skipTypeMerging: skipTypeMerging,\n };\n var transformer = new Transformer(delegationContext, binding);\n var processedRequest = transformer.transformRequest(request);\n if (!skipValidation) {\n validateRequest(targetSchema, processedRequest.document);\n }\n if (targetOperation === 'query' || targetOperation === 'mutation') {\n var executor_1 = (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.executor) || createDefaultExecutor(targetSchema, (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.rootValue) || targetRootValue);\n if (subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.batch) {\n var batchingOptions = subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.batchingOptions;\n executor_1 = getBatchingExecutor(context, executor_1, batchingOptions === null || batchingOptions === void 0 ? void 0 : batchingOptions.dataLoaderOptions, batchingOptions === null || batchingOptions === void 0 ? void 0 : batchingOptions.extensionsReducer);\n }\n return new ValueOrPromise(function () { return executor_1(__assign(__assign({}, processedRequest), { context: context,\n info: info })); }).then(function (originalResult) { return transformer.transformResult(originalResult); }).resolve();\n }\n var 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(__assign(__assign({}, processedRequest), { context: context,\n info: info })).then(function (subscriptionResult) {\n if (Symbol.asyncIterator in subscriptionResult) {\n // \"subscribe\" to the subscription result and map the result through the transforms\n return mapAsyncIterator(subscriptionResult, function (originalResult) {\n var _a;\n return (_a = {},\n _a[targetFieldName] = transformer.transformResult(originalResult),\n _a);\n });\n }\n return transformer.transformResult(subscriptionResult);\n });\n}\nvar emptyObject = {};\nfunction collectTargetParameters(subschema, rootValue, info, transforms) {\n var _a, _b, _c, _d, _e;\n if (transforms === void 0) { transforms = []; }\n var stitchingInfo = (_a = info === null || info === void 0 ? void 0 : info.schema.extensions) === null || _a === void 0 ? void 0 : _a.stitchingInfo;\n var subschemaOrSubschemaConfig = (_b = stitchingInfo === null || stitchingInfo === void 0 ? void 0 : stitchingInfo.subschemaMap.get(subschema)) !== null && _b !== void 0 ? _b : subschema;\n if (isSubschemaConfig(subschemaOrSubschemaConfig)) {\n return {\n targetSchema: subschemaOrSubschemaConfig.schema,\n targetRootValue: (_d = (_c = rootValue !== null && rootValue !== void 0 ? rootValue : subschemaOrSubschemaConfig === null || subschemaOrSubschemaConfig === void 0 ? void 0 : subschemaOrSubschemaConfig.rootValue) !== null && _c !== void 0 ? _c : info === null || info === void 0 ? void 0 : info.rootValue) !== null && _d !== void 0 ? _d : emptyObject,\n subschemaConfig: subschemaOrSubschemaConfig,\n allTransforms: subschemaOrSubschemaConfig.transforms != null\n ? subschemaOrSubschemaConfig.transforms.concat(transforms)\n : transforms,\n };\n }\n return {\n targetSchema: subschemaOrSubschemaConfig,\n targetRootValue: (_e = rootValue !== null && rootValue !== void 0 ? rootValue : info === null || info === void 0 ? void 0 : info.rootValue) !== null && _e !== void 0 ? _e : emptyObject,\n allTransforms: transforms,\n };\n}\nfunction validateRequest(targetSchema, document) {\n var errors = validate(targetSchema, document);\n if (errors.length > 0) {\n if (errors.length > 1) {\n var combinedError = new AggregateError(errors);\n throw combinedError;\n }\n var error = errors[0];\n throw error.originalError || error;\n }\n}\nvar createDefaultExecutor = memoize2(function (schema, rootValue) {\n return (function (_a) {\n var document = _a.document, context = _a.context, variables = _a.variables, info = _a.info;\n return execute({\n schema: schema,\n document: 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});\nfunction createDefaultSubscriber(schema, rootValue) {\n return function (_a) {\n var document = _a.document, context = _a.context, variables = _a.variables, info = _a.info;\n return subscribe({\n schema: schema,\n document: 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}\n//# sourceMappingURL=delegateToSchema.js.map"],"names":["cloneSchema","Kind","__assign","typeFromAST","serializeInputValue","updateArgument","collectFields","GraphQLError","relocatedError","locatedError","mergeDeep","__spreadArray","__read","valueOrPromise","ValueOrPromise","responsePathAsArray","getNamedType","__values","getNullableType","isLeafType","isCompositeType","isListType","isAbstractType","getResponseKeyFromInfo","defaultFieldResolver","TypeInfo","visit","visitWithTypeInfo","print","isInterfaceType","implementsAbstractType","isObjectType","TypeNameMetaFieldDef","getOperationAST","getBatchingExecutor","mapAsyncIterator","validate","execute","subscribe"],"mappings":"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"}
\No newline at end of file