This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
admin-panel/graphql-types/node_modules/@graphql-tools/delegate/index.esm.js.map

1 line
148 KiB
Plaintext

{"version":3,"file":"index.esm.js","sources":["../../../dist/delegate/src/applySchemaTransforms.js","../../../dist/delegate/src/Subschema.js","../../../dist/delegate/src/createRequest.js","../../../dist/delegate/src/symbols.js","../../../dist/delegate/src/externalObjects.js","../../../dist/delegate/src/subschemaConfig.js","../../../dist/delegate/src/memoize.js","../../../dist/delegate/src/getFieldsNotInSubschema.js","../../../dist/delegate/src/mergeFields.js","../../../dist/delegate/src/resolveExternalValue.js","../../../dist/delegate/src/defaultMergedResolver.js","../../../dist/delegate/src/transforms/VisitSelectionSets.js","../../../dist/delegate/src/transforms/AddSelectionSets.js","../../../dist/delegate/src/transforms/ExpandAbstractTypes.js","../../../dist/delegate/src/transforms/WrapConcreteTypes.js","../../../dist/delegate/src/transforms/FilterToSchema.js","../../../dist/delegate/src/transforms/AddTypenameToAbstract.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"],"sourcesContent":["import { cloneSchema } from '@graphql-tools/utils';\nexport function applySchemaTransforms(originalWrappingSchema, subschemaConfig, transformedSchema) {\n const schemaTransforms = subschemaConfig.transforms;\n if (schemaTransforms == null) {\n return originalWrappingSchema;\n }\n return schemaTransforms.reduce((schema, transform) => transform.transformSchema != null\n ? transform.transformSchema(cloneSchema(schema), subschemaConfig, transformedSchema)\n : schema, originalWrappingSchema);\n}\n//# sourceMappingURL=applySchemaTransforms.js.map","import { applySchemaTransforms } from './applySchemaTransforms';\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.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}\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, operationName, 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 targetOperationName: operationName,\n targetOperation: operation,\n targetFieldName: fieldName,\n selectionSet,\n fieldNodes,\n });\n}\nexport function createRequest({ sourceSchema, sourceParentType, sourceFieldName, fragments, variableDefinitions, variableValues, targetOperationName, targetOperation, targetFieldName, selectionSet, fieldNodes, }) {\n var _a;\n let newSelectionSet;\n let argumentNodeMap;\n if (selectionSet != null) {\n newSelectionSet = selectionSet;\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 operationName = targetOperationName\n ? {\n kind: Kind.NAME,\n value: targetOperationName,\n }\n : undefined;\n const operationDefinition = {\n kind: Kind.OPERATION_DEFINITION,\n name: operationName,\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","export const UNPATHED_ERRORS_SYMBOL = Symbol('subschemaErrors');\nexport const OBJECT_SUBSCHEMA_SYMBOL = Symbol('initialSubschema');\nexport const FIELD_SUBSCHEMA_MAP_SYMBOL = Symbol('subschemaMap');\n//# sourceMappingURL=symbols.js.map","import { GraphQLError } 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 Object.defineProperties(object, {\n [OBJECT_SUBSCHEMA_SYMBOL]: { value: subschema },\n [FIELD_SUBSCHEMA_MAP_SYMBOL]: { value: Object.create(null) },\n [UNPATHED_ERRORS_SYMBOL]: { value: errors },\n });\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 const results = [];\n let errors = [];\n sources.forEach((source, index) => {\n if (source instanceof GraphQLError || source === null) {\n const selectionSet = selectionSets[index];\n const fieldNodes = collectFields({\n schema,\n variableValues: {},\n fragments: {},\n }, schema.getType(typeName), selectionSet, Object.create(null), Object.create(null));\n const nullResult = {};\n Object.keys(fieldNodes).forEach(responseKey => {\n nullResult[responseKey] =\n source instanceof GraphQLError ? relocatedError(source, path.concat([responseKey])) : null;\n });\n results.push(nullResult);\n }\n else {\n errors = errors.concat(source[UNPATHED_ERRORS_SYMBOL]);\n results.push(source);\n }\n });\n const combinedResult = results.reduce(mergeDeep, target);\n const newFieldSubschemaMap = (_a = target[FIELD_SUBSCHEMA_MAP_SYMBOL]) !== null && _a !== void 0 ? _a : Object.create(null);\n results.forEach((source) => {\n const objectSubschema = source[OBJECT_SUBSCHEMA_SYMBOL];\n const fieldSubschemaMap = source[FIELD_SUBSCHEMA_MAP_SYMBOL];\n if (fieldSubschemaMap === undefined) {\n Object.keys(source).forEach(responseKey => {\n newFieldSubschemaMap[responseKey] = objectSubschema;\n });\n }\n else {\n Object.keys(source).forEach(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","export function isSubschemaConfig(value) {\n return Boolean(value === null || value === void 0 ? void 0 : value.schema);\n}\nexport function cloneSubschemaConfig(subschemaConfig) {\n const newSubschemaConfig = {\n ...subschemaConfig,\n transforms: subschemaConfig.transforms != null ? [...subschemaConfig.transforms] : undefined,\n };\n if (newSubschemaConfig.merge != null) {\n newSubschemaConfig.merge = { ...subschemaConfig.merge };\n Object.keys(newSubschemaConfig.merge).forEach(typeName => {\n newSubschemaConfig.merge[typeName] = { ...subschemaConfig.merge[typeName] };\n const fields = newSubschemaConfig.merge[typeName].fields;\n if (fields != null) {\n Object.keys(fields).forEach(fieldName => {\n fields[fieldName] = { ...fields[fieldName] };\n });\n }\n });\n }\n return newSubschemaConfig;\n}\n//# sourceMappingURL=subschemaConfig.js.map","export function memoizeInfoAnd2Objects(fn) {\n let cache1;\n function memoized(a1, a2, a3) {\n if (!cache1) {\n cache1 = new WeakMap();\n const cache2 = new WeakMap();\n cache1.set(a1.fieldNodes, cache2);\n const cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n let cache2 = cache1.get(a1.fieldNodes);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1.fieldNodes, cache2);\n const cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n let cache3 = cache2.get(a2);\n if (!cache3) {\n cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n const cachedValue = cache3.get(a3);\n if (cachedValue === undefined) {\n const 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 let cache1;\n function memoized(a1, a2, a3, a4) {\n if (!cache1) {\n cache1 = new WeakMap();\n const cache2 = new WeakMap();\n cache1.set(a1, cache2);\n const cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const cache4 = new WeakMap();\n cache3.set(a3, cache4);\n const newValue = fn(a1, a2, a3, a4);\n cache4.set(a4, newValue);\n return newValue;\n }\n let cache2 = cache1.get(a1);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1, cache2);\n const cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const cache4 = new WeakMap();\n cache3.set(a3, cache4);\n const newValue = fn(a1, a2, a3, a4);\n cache4.set(a4, newValue);\n return newValue;\n }\n let cache3 = cache2.get(a2);\n if (!cache3) {\n cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const cache4 = new WeakMap();\n cache3.set(a3, cache4);\n const newValue = fn(a1, a2, a3, a4);\n cache4.set(a4, newValue);\n return newValue;\n }\n const cache4 = cache3.get(a3);\n if (!cache4) {\n const cache4 = new WeakMap();\n cache3.set(a3, cache4);\n const newValue = fn(a1, a2, a3, a4);\n cache4.set(a4, newValue);\n return newValue;\n }\n const cachedValue = cache4.get(a4);\n if (cachedValue === undefined) {\n const 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 let cache1;\n function memoized(a1, a2, a3) {\n if (!cache1) {\n cache1 = new WeakMap();\n const cache2 = new WeakMap();\n cache1.set(a1, cache2);\n const cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n let cache2 = cache1.get(a1);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1, cache2);\n const cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n let cache3 = cache2.get(a2);\n if (!cache3) {\n cache3 = new WeakMap();\n cache2.set(a2, cache3);\n const newValue = fn(a1, a2, a3);\n cache3.set(a3, newValue);\n return newValue;\n }\n const cachedValue = cache3.get(a3);\n if (cachedValue === undefined) {\n const 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 let cache1;\n function memoized(a1, a2) {\n if (!cache1) {\n cache1 = new WeakMap();\n const cache2 = new WeakMap();\n cache1.set(a1, cache2);\n const newValue = fn(a1, a2);\n cache2.set(a2, newValue);\n return newValue;\n }\n let cache2 = cache1.get(a1);\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a1, cache2);\n const newValue = fn(a1, a2);\n cache2.set(a2, newValue);\n return newValue;\n }\n const cachedValue = cache2.get(a2);\n if (cachedValue === undefined) {\n const 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 let subFieldNodes = Object.create(null);\n const visitedFragmentNames = Object.create(null);\n const type = info.schema.getType(typeName);\n const partialExecutionContext = {\n schema: info.schema,\n variableValues: info.variableValues,\n fragments: info.fragments,\n };\n info.fieldNodes.forEach(fieldNode => {\n subFieldNodes = collectFields(partialExecutionContext, type, fieldNode.selectionSet, subFieldNodes, visitedFragmentNames);\n });\n const stitchingInfo = info.schema.extensions.stitchingInfo;\n const selectionSetsByField = stitchingInfo.selectionSetsByField;\n Object.keys(subFieldNodes).forEach(responseName => {\n var _a;\n const fieldName = subFieldNodes[responseName][0].name.value;\n const 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 const getFieldsNotInSubschema = memoizeInfoAnd2Objects(function (info, subschema, mergedTypeInfo) {\n const typeMap = isSubschemaConfig(subschema) ? mergedTypeInfo.typeMaps.get(subschema) : subschema.getTypeMap();\n const typeName = mergedTypeInfo.typeName;\n const fields = typeMap[typeName].getFields();\n const subFieldNodes = collectSubFields(info, typeName);\n let fieldsNotInSchema = [];\n Object.keys(subFieldNodes).forEach(responseName => {\n const 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 { Kind, responsePathAsArray, getNamedType, } from 'graphql';\nimport isPromise from 'is-promise';\nimport { memoize4, memoize3, memoize2 } from './memoize';\nimport { mergeExternalObjects } from './externalObjects';\nconst sortSubschemasByProxiability = memoize4(function (mergedTypeInfo, sourceSubschemaOrSourceSubschemas, targetSubschemas, fieldNodes) {\n // 1. calculate if possible to delegate to given subschema\n const proxiableSubschemas = [];\n const nonProxiableSubschemas = [];\n targetSubschemas.forEach(t => {\n const selectionSet = mergedTypeInfo.selectionSets.get(t);\n const 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(fieldNode => {\n const fieldName = fieldNode.name.value;\n const 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,\n nonProxiableSubschemas,\n };\n});\nconst buildDelegationPlan = memoize3(function (mergedTypeInfo, fieldNodes, proxiableSubschemas) {\n const { uniqueFields, nonUniqueFields } = mergedTypeInfo;\n const unproxiableFieldNodes = [];\n // 2. for each selection:\n const delegationMap = new Map();\n fieldNodes.forEach(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 const uniqueSubschema = uniqueFields[fieldNode.name.value];\n if (uniqueSubschema != null) {\n if (!proxiableSubschemas.includes(uniqueSubschema)) {\n unproxiableFieldNodes.push(fieldNode);\n return;\n }\n const existingSubschema = delegationMap.get(uniqueSubschema);\n if (existingSubschema != null) {\n existingSubschema.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 let nonUniqueSubschemas = nonUniqueFields[fieldNode.name.value];\n if (nonUniqueSubschemas == null) {\n unproxiableFieldNodes.push(fieldNode);\n return;\n }\n nonUniqueSubschemas = nonUniqueSubschemas.filter(s => proxiableSubschemas.includes(s));\n if (!nonUniqueSubschemas.length) {\n unproxiableFieldNodes.push(fieldNode);\n return;\n }\n const existingSubschema = nonUniqueSubschemas.find(s => 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 const finalDelegationMap = new Map();\n delegationMap.forEach((selections, subschema) => {\n finalDelegationMap.set(subschema, {\n kind: Kind.SELECTION_SET,\n selections,\n });\n });\n return {\n delegationMap: finalDelegationMap,\n unproxiableFieldNodes,\n };\n});\nconst 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 const { proxiableSubschemas, nonProxiableSubschemas } = sortSubschemasByProxiability(mergedTypeInfo, sourceSubschemaOrSourceSubschemas, targetSubschemas, fieldNodes);\n const { delegationMap, unproxiableFieldNodes } = buildDelegationPlan(mergedTypeInfo, fieldNodes, proxiableSubschemas);\n if (!delegationMap.size) {\n return object;\n }\n let containsPromises = false;\n const resultMap = new Map();\n delegationMap.forEach((selectionSet, s) => {\n const resolver = mergedTypeInfo.resolvers.get(s);\n let maybePromise = resolver(object, context, info, s, selectionSet);\n if (isPromise(maybePromise)) {\n containsPromises = true;\n maybePromise = maybePromise.then(undefined, error => error);\n }\n resultMap.set(maybePromise, selectionSet);\n });\n return containsPromises\n ? Promise.all(resultMap.keys()).then(results => 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 : mergeFields(mergedTypeInfo, typeName, mergeExternalObjects(info.schema, responsePathAsArray(info.path), object.__typename, object, Array.from(resultMap.keys()), Array.from(resultMap.values())), unproxiableFieldNodes, combineSubschemas(sourceSubschemaOrSourceSubschemas, proxiableSubschemas), nonProxiableSubschemas, context, info);\n}\nconst subschemaTypesContainSelectionSet = memoize3(function (mergedTypeInfo, sourceSubschemaOrSourceSubschemas, selectionSet) {\n if (Array.isArray(sourceSubschemaOrSourceSubschemas)) {\n return typesContainSelectionSet(sourceSubschemaOrSourceSubschemas.map(sourceSubschema => sourceSubschema.transformedSchema.getType(mergedTypeInfo.typeName)), selectionSet);\n }\n return typesContainSelectionSet([sourceSubschemaOrSourceSubschemas.transformedSchema.getType(mergedTypeInfo.typeName)], selectionSet);\n});\nfunction typesContainSelectionSet(types, selectionSet) {\n const fieldMaps = types.map(type => type.getFields());\n for (const selection of selectionSet.selections) {\n if (selection.kind === Kind.FIELD) {\n const fields = fieldMaps.map(fieldMap => fieldMap[selection.name.value]).filter(field => field != null);\n if (!fields.length) {\n return false;\n }\n if (selection.selectionSet != null) {\n return typesContainSelectionSet(fields.map(field => getNamedType(field.type)), selection.selectionSet);\n }\n }\n else if (selection.kind === Kind.INLINE_FRAGMENT && selection.typeCondition.name.value === types[0].name) {\n return typesContainSelectionSet(types, selection.selectionSet);\n }\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 = info.returnType, skipTypeMerging) {\n const 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 const 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 let typeName;\n if (isAbstractType(type)) {\n const 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 const mergedTypeInfo = stitchingInfo.mergedTypes[typeName];\n let 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 const 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(listMember => resolveExternalListMember(getNullableType(type.ofType), listMember, unpathedErrors, subschema, context, info, skipTypeMerging));\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}\nconst reportedErrors = new Map();\nfunction reportUnpathedErrorsViaNull(unpathedErrors) {\n if (unpathedErrors.length) {\n const unreportedErrors = [];\n unpathedErrors.forEach(error => {\n if (!reportedErrors.has(error)) {\n unreportedErrors.push(error);\n reportedErrors.set(error, true);\n }\n });\n if (unreportedErrors.length) {\n if (unreportedErrors.length === 1) {\n return unreportedErrors[0];\n }\n const combinedError = new AggregateError(unreportedErrors);\n return locatedError(combinedError, undefined, unreportedErrors[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 coversion\n */\nexport function defaultMergedResolver(parent, args, context, info) {\n if (!parent) {\n return null;\n }\n const 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 const data = parent[responseKey];\n const unpathedErrors = getUnpathedErrors(parent);\n const subschema = getSubschema(parent, responseKey);\n return resolveExternalValue(data, unpathedErrors, subschema, context, info);\n}\n//# sourceMappingURL=defaultMergedResolver.js.map","import { Kind, TypeInfo, visit, visitWithTypeInfo, } from 'graphql';\nimport { collectFields } from '@graphql-tools/utils';\nexport default class VisitSelectionSets {\n constructor(visitor) {\n this.visitor = visitor;\n }\n transformRequest(originalRequest, delegationContext, _transformationContext) {\n const document = visitSelectionSets(originalRequest, delegationContext.info.schema, delegationContext.returnType, this.visitor);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction visitSelectionSets(request, schema, initialType, visitor) {\n const { document, variables } = request;\n const operations = [];\n const fragments = Object.create(null);\n document.definitions.forEach(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 const partialExecutionContext = {\n schema,\n variableValues: variables,\n fragments,\n };\n const typeInfo = new TypeInfo(schema, undefined, initialType);\n const newDefinitions = operations.map(operation => {\n const type = operation.operation === 'query'\n ? schema.getQueryType()\n : operation.operation === 'mutation'\n ? schema.getMutationType()\n : schema.getSubscriptionType();\n const fields = collectFields(partialExecutionContext, type, operation.selectionSet, Object.create(null), Object.create(null));\n const newSelections = [];\n Object.keys(fields).forEach(responseKey => {\n const fieldNodes = fields[responseKey];\n fieldNodes.forEach(fieldNode => {\n const selectionSet = fieldNode.selectionSet;\n if (selectionSet == null) {\n newSelections.push(fieldNode);\n return;\n }\n const newSelectionSet = visit(selectionSet, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET]: node => visitor(node, typeInfo),\n }));\n if (newSelectionSet === selectionSet) {\n newSelections.push(fieldNode);\n return;\n }\n newSelections.push({\n ...fieldNode,\n selectionSet: newSelectionSet,\n });\n });\n });\n return {\n ...operation,\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: newSelections,\n },\n };\n });\n Object.values(fragments).forEach(fragment => {\n newDefinitions.push(visit(fragment, visitWithTypeInfo(typeInfo, {\n [Kind.SELECTION_SET]: node => visitor(node, typeInfo),\n })));\n });\n return {\n ...document,\n definitions: newDefinitions,\n };\n}\n//# sourceMappingURL=VisitSelectionSets.js.map","import { Kind, print } from 'graphql';\nimport { memoize2 } from '../memoize';\nimport VisitSelectionSets from './VisitSelectionSets';\nexport default class AddSelectionSets {\n constructor(selectionSetsByType, selectionSetsByField, dynamicSelectionSetsByField) {\n this.transformer = new VisitSelectionSets((node, typeInfo) => visitSelectionSet(node, typeInfo, selectionSetsByType, selectionSetsByField, dynamicSelectionSetsByField));\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n}\nfunction visitSelectionSet(node, typeInfo, selectionSetsByType, selectionSetsByField, dynamicSelectionSetsByField) {\n const parentType = typeInfo.getParentType();\n const newSelections = new Map();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n addSelectionsToMap(newSelections, node);\n if (parentTypeName in selectionSetsByType) {\n const selectionSet = selectionSetsByType[parentTypeName];\n addSelectionsToMap(newSelections, selectionSet);\n }\n if (parentTypeName in selectionSetsByField) {\n node.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const name = selection.name.value;\n const selectionSet = selectionSetsByField[parentTypeName][name];\n if (selectionSet != null) {\n addSelectionsToMap(newSelections, selectionSet);\n }\n }\n });\n }\n if (parentTypeName in dynamicSelectionSetsByField) {\n node.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const name = selection.name.value;\n const dynamicSelectionSets = dynamicSelectionSetsByField[parentTypeName][name];\n if (dynamicSelectionSets != null) {\n dynamicSelectionSets.forEach(selectionSetFn => {\n const selectionSet = selectionSetFn(selection);\n if (selectionSet != null) {\n addSelectionsToMap(newSelections, selectionSet);\n }\n });\n }\n }\n });\n }\n return {\n ...node,\n selections: Array.from(newSelections.values()),\n };\n }\n}\nconst addSelectionsToMap = memoize2(function (map, selectionSet) {\n selectionSet.selections.forEach(selection => {\n map.set(print(selection), selection);\n });\n});\n//# sourceMappingURL=AddSelectionSets.js.map","import { Kind, TypeInfo, getNamedType, isAbstractType, isInterfaceType, visit, visitWithTypeInfo, } from 'graphql';\nimport { implementsAbstractType } from '@graphql-tools/utils';\nexport default class ExpandAbstractTypes {\n transformRequest(originalRequest, delegationContext, _transformationContext) {\n const targetSchema = delegationContext.targetSchema;\n const { possibleTypesMap, interfaceExtensionsMap } = extractPossibleTypes(delegationContext.info.schema, targetSchema);\n const reversePossibleTypesMap = flipMapping(possibleTypesMap);\n const document = expandAbstractTypes(targetSchema, possibleTypesMap, reversePossibleTypesMap, interfaceExtensionsMap, originalRequest.document);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction extractPossibleTypes(sourceSchema, targetSchema) {\n const typeMap = sourceSchema.getTypeMap();\n const possibleTypesMap = Object.create(null);\n const interfaceExtensionsMap = 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 (isInterfaceType(type) && isInterfaceType(targetType)) {\n const targetTypeFields = targetType.getFields();\n const extensionFields = Object.create(null);\n Object.keys(type.getFields()).forEach((fieldName) => {\n if (!targetTypeFields[fieldName]) {\n extensionFields[fieldName] = true;\n }\n });\n if (Object.keys(extensionFields).length) {\n interfaceExtensionsMap[typeName] = extensionFields;\n }\n }\n if (!isAbstractType(targetType) || typeName in interfaceExtensionsMap) {\n const implementations = sourceSchema.getPossibleTypes(type);\n possibleTypesMap[typeName] = implementations\n .filter(impl => targetSchema.getType(impl.name))\n .map(impl => impl.name);\n }\n }\n });\n return { possibleTypesMap, interfaceExtensionsMap };\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, possibleTypesMap, reversePossibleTypesMap, interfaceExtensionsMap, 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 generateInlineFragment = (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,\n };\n };\n const newFragments = [];\n const fragmentReplacements = Object.create(null);\n fragments.forEach((fragment) => {\n newFragments.push(fragment);\n const possibleTypes = possibleTypesMap[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 let newSelections = node.selections;\n const addedSelections = [];\n const maybeType = typeInfo.getParentType();\n if (maybeType != null) {\n const parentType = getNamedType(maybeType);\n const interfaceExtension = interfaceExtensionsMap[parentType.name];\n const interfaceExtensionFields = [];\n node.selections.forEach((selection) => {\n if (selection.kind === Kind.INLINE_FRAGMENT) {\n if (selection.typeCondition != null) {\n const possibleTypes = possibleTypesMap[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 addedSelections.push(generateInlineFragment(possibleType, selection.selectionSet));\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 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 != null &&\n interfaceExtension[selection.name.value] &&\n selection.kind === Kind.FIELD) {\n interfaceExtensionFields.push(selection);\n }\n });\n if (parentType.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.length) {\n const possibleTypes = possibleTypesMap[parentType.name];\n if (possibleTypes != null) {\n possibleTypes.forEach(possibleType => {\n addedSelections.push(generateInlineFragment(possibleType, {\n kind: Kind.SELECTION_SET,\n selections: interfaceExtensionFields,\n }));\n });\n newSelections = newSelections.filter((selection) => !(selection.kind === Kind.FIELD && interfaceExtension[selection.name.value]));\n }\n }\n }\n if (addedSelections.length) {\n return {\n ...node,\n selections: newSelections.concat(addedSelections),\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 transformRequest(originalRequest, delegationContext, _transformationContext) {\n const document = wrapConcreteTypes(delegationContext.returnType, delegationContext.targetSchema, originalRequest.document);\n return {\n ...originalRequest,\n document,\n };\n }\n}\nfunction wrapConcreteTypes(returnType, targetSchema, document) {\n var _a, _b, _c;\n const namedType = getNamedType(returnType);\n if (!isObjectType(namedType)) {\n return document;\n }\n const queryTypeName = (_a = targetSchema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name;\n const mutationTypeName = (_b = targetSchema.getMutationType()) === null || _b === void 0 ? void 0 : _b.name;\n const subscriptionTypeName = (_c = targetSchema.getSubscriptionType()) === null || _c === void 0 ? void 0 : _c.name;\n const typeInfo = new TypeInfo(targetSchema);\n const newDocument = visit(document, visitWithTypeInfo(typeInfo, {\n [Kind.FRAGMENT_DEFINITION]: (node) => {\n const typeName = node.typeCondition.name.value;\n if (typeName !== queryTypeName && typeName !== mutationTypeName && typeName !== subscriptionTypeName) {\n return false;\n }\n },\n [Kind.FIELD]: (node) => {\n if (isAbstractType(getNamedType(typeInfo.getType()))) {\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 }), \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 { Kind, TypeNameMetaFieldDef, visit, TypeInfo, visitWithTypeInfo, getNamedType, isObjectType, isInterfaceType, } from 'graphql';\nimport { implementsAbstractType } from '@graphql-tools/utils';\nexport default class FilterToSchema {\n transformRequest(originalRequest, delegationContext, _transformationContext) {\n return {\n ...originalRequest,\n ...filterToSchema(delegationContext.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 { TypeInfo, visit, visitWithTypeInfo, Kind, isAbstractType, } from 'graphql';\nexport default class AddTypenameToAbstract {\n transformRequest(originalRequest, delegationContext, _transformationContext) {\n const document = addTypenameToAbstract(delegationContext.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 { responsePathAsArray, locatedError, } from 'graphql';\nimport AggregateError from '@ardatan/aggregate-error';\nimport { getResponseKeyFromInfo, relocatedError } from '@graphql-tools/utils';\nimport { resolveExternalValue } from '../resolveExternalValue';\nexport default class CheckResultAndHandleErrors {\n transformResult(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}\nexport function checkResultAndHandleErrors(result, context, info, responseKey = getResponseKeyFromInfo(info), subschema, returnType = info.returnType, skipTypeMerging, onLocatedError) {\n const { data, unpathedErrors } = mergeDataAndErrors(result.data == null ? undefined : result.data[responseKey], result.errors == null ? [] : result.errors, info ? responsePathAsArray(info.path) : undefined, onLocatedError);\n return resolveExternalValue(data, unpathedErrors, subschema, context, info, returnType, skipTypeMerging);\n}\nexport function mergeDataAndErrors(data, errors, path, onLocatedError, index = 1) {\n if (data == null) {\n if (!errors.length) {\n return { data: null, unpathedErrors: [] };\n }\n if (errors.length === 1) {\n const error = onLocatedError ? onLocatedError(errors[0]) : errors[0];\n const 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 const newError = locatedError(new AggregateError(errors), undefined, path);\n return { data: newError, unpathedErrors: [] };\n }\n if (!errors.length) {\n return { data, unpathedErrors: [] };\n }\n let unpathedErrors = [];\n const errorMap = Object.create(null);\n errors.forEach(error => {\n var _a;\n const pathSegment = (_a = error.path) === null || _a === void 0 ? void 0 : _a[index];\n if (pathSegment != null) {\n const 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(pathSegment => {\n if (data[pathSegment] !== undefined) {\n const { data: newData, unpathedErrors: newErrors } = mergeDataAndErrors(data[pathSegment], errorMap[pathSegment], path, onLocatedError, index + 1);\n data[pathSegment] = newData;\n unpathedErrors = unpathedErrors.concat(newErrors);\n }\n else {\n unpathedErrors = unpathedErrors.concat(errorMap[pathSegment]);\n }\n });\n return { data, unpathedErrors };\n}\n//# sourceMappingURL=CheckResultAndHandleErrors.js.map","import { Kind, } from 'graphql';\nimport { serializeInputValue, updateArgument } from '@graphql-tools/utils';\nexport default class AddArgumentsAsVariables {\n constructor(args) {\n this.args = Object.entries(args).reduce((prev, [key, val]) => ({\n ...prev,\n [key]: val,\n }), {});\n }\n transformRequest(originalRequest, delegationContext, _transformationContext) {\n const { document, variables } = addVariablesToRootField(delegationContext.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 var _a;\n if (selection.kind === Kind.FIELD) {\n const argumentNodes = (_a = selection.arguments) !== null && _a !== void 0 ? _a : [];\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 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 let delegationTransforms = [new CheckResultAndHandleErrors()];\n const info = delegationContext.info;\n const 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 const transforms = delegationContext.transforms;\n if (transforms != null) {\n delegationTransforms = delegationTransforms.concat(transforms.slice().reverse());\n }\n const 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';\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, getOperationAST, } from 'graphql';\nimport isPromise from 'is-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 const { info, operationName, 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 operationName,\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, onLocatedError, context, transforms = [], transformedSchema, skipValidation, skipTypeMerging, binding, }) {\n var _a, _b, _c;\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 const { targetSchema, targetRootValue, subschemaConfig, allTransforms } = collectTargetParameters(subschemaOrSubschemaConfig, rootValue, info, transforms);\n const delegationContext = {\n subschema: subschemaOrSubschemaConfig,\n targetSchema,\n operation: targetOperation,\n fieldName: targetFieldName,\n args,\n context,\n info,\n returnType: (_a = returnType !== null && returnType !== void 0 ? returnType : info === null || info === void 0 ? void 0 : info.returnType) !== null && _a !== void 0 ? _a : getDelegationReturnType(targetSchema, targetOperation, targetFieldName),\n onLocatedError,\n transforms: allTransforms,\n transformedSchema: (_c = transformedSchema !== null && transformedSchema !== void 0 ? transformedSchema : (_b = subschemaConfig) === null || _b === void 0 ? void 0 : _b.transformedSchema) !== null && _c !== void 0 ? _c : 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 let executor = (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 const batchingOptions = subschemaConfig === null || subschemaConfig === void 0 ? void 0 : subschemaConfig.batchingOptions;\n executor = getBatchingExecutor(context, executor, batchingOptions === null || batchingOptions === void 0 ? void 0 : batchingOptions.dataLoaderOptions, batchingOptions === null || batchingOptions === void 0 ? void 0 : batchingOptions.extensionsReducer);\n }\n const executionResult = executor({\n ...processedRequest,\n context,\n info,\n });\n if (isPromise(executionResult)) {\n return executionResult.then(originalResult => {\n return transformer.transformResult(originalResult);\n });\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 ...processedRequest,\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}\nconst emptyObject = {};\nfunction collectTargetParameters(subschema, rootValue, info, transforms = []) {\n var _a, _b, _c, _d, _e;\n const stitchingInfo = (_a = info === null || info === void 0 ? void 0 : info.schema.extensions) === null || _a === void 0 ? void 0 : _a.stitchingInfo;\n const 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 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}\nconst createDefaultExecutor = memoize2(function (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"],"names":[],"mappings":"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"}