UNPKG

143 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.cjs.js","sources":["../../../dist/wrap/src/generateProxyingResolvers.js","../../../dist/wrap/src/wrapSchema.js","../../../dist/wrap/src/transforms/RenameTypes.js","../../../dist/wrap/src/transforms/FilterTypes.js","../../../dist/wrap/src/transforms/RenameRootTypes.js","../../../dist/wrap/src/transforms/TransformCompositeFields.js","../../../dist/wrap/src/transforms/TransformObjectFields.js","../../../dist/wrap/src/transforms/TransformRootFields.js","../../../dist/wrap/src/transforms/RenameRootFields.js","../../../dist/wrap/src/transforms/FilterRootFields.js","../../../dist/wrap/src/transforms/RenameObjectFields.js","../../../dist/wrap/src/transforms/FilterObjectFields.js","../../../dist/wrap/src/transforms/TransformInterfaceFields.js","../../../dist/wrap/src/transforms/RenameInterfaceFields.js","../../../dist/wrap/src/transforms/FilterInterfaceFields.js","../../../dist/wrap/src/transforms/TransformInputObjectFields.js","../../../dist/wrap/src/transforms/RenameInputObjectFields.js","../../../dist/wrap/src/transforms/FilterInputObjectFields.js","../../../dist/wrap/src/transforms/MapLeafValues.js","../../../dist/wrap/src/transforms/TransformEnumValues.js","../../../dist/wrap/src/transforms/TransformQuery.js","../../../dist/wrap/src/transforms/FilterObjectFieldDirectives.js","../../../dist/wrap/src/transforms/RemoveObjectFieldDirectives.js","../../../dist/wrap/src/transforms/RemoveObjectFieldsWithDirective.js","../../../dist/wrap/src/transforms/RemoveObjectFieldDeprecations.js","../../../dist/wrap/src/transforms/RemoveObjectFieldsWithDeprecation.js","../../../dist/wrap/src/transforms/MapFields.js","../../../dist/wrap/src/transforms/ExtendSchema.js","../../../dist/wrap/src/transforms/PruneSchema.js","../../../dist/wrap/src/transforms/WrapFields.js","../../../dist/wrap/src/transforms/WrapType.js","../../../dist/wrap/src/transforms/HoistField.js","../../../dist/wrap/src/transforms/WrapQuery.js","../../../dist/wrap/src/transforms/ExtractField.js","../../../dist/wrap/src/makeRemoteExecutableSchema.js","../../../node_modules/@ardatan/aggregate-error/index.esm.js","../../../dist/wrap/src/introspect.js"],"sourcesContent":["import { getResponseKeyFromInfo, getErrors, applySchemaTransforms } from '@graphql-tools/utils';\nimport { delegateToSchema, getSubschema, handleResult, isSubschemaConfig, } from '@graphql-tools/delegate';\nexport function generateProxyingResolvers(subschemaOrSubschemaConfig, transforms) {\n var _a;\n let targetSchema;\n let schemaTransforms = [];\n let createProxyingResolver;\n if (isSubschemaConfig(subschemaOrSubschemaConfig)) {\n targetSchema = subschemaOrSubschemaConfig.schema;\n createProxyingResolver = (_a = subschemaOrSubschemaConfig.createProxyingResolver) !== null && _a !== void 0 ? _a : defaultCreateProxyingResolver;\n if (subschemaOrSubschemaConfig.transforms != null) {\n schemaTransforms = schemaTransforms.concat(subschemaOrSubschemaConfig.transforms);\n }\n }\n else {\n targetSchema = subschemaOrSubschemaConfig;\n createProxyingResolver = defaultCreateProxyingResolver;\n }\n if (transforms != null) {\n schemaTransforms = schemaTransforms.concat(transforms);\n }\n const transformedSchema = applySchemaTransforms(targetSchema, schemaTransforms);\n const operationTypes = {\n query: targetSchema.getQueryType(),\n mutation: targetSchema.getMutationType(),\n subscription: targetSchema.getSubscriptionType(),\n };\n const resolvers = {};\n Object.keys(operationTypes).forEach((operation) => {\n const rootType = operationTypes[operation];\n if (rootType != null) {\n const typeName = rootType.name;\n const fields = rootType.getFields();\n resolvers[typeName] = {};\n Object.keys(fields).forEach(fieldName => {\n const proxyingResolver = createProxyingResolver({\n schema: subschemaOrSubschemaConfig,\n transforms,\n transformedSchema,\n operation,\n fieldName,\n });\n const finalResolver = createPossiblyNestedProxyingResolver(subschemaOrSubschemaConfig, proxyingResolver);\n if (operation === 'subscription') {\n resolvers[typeName][fieldName] = {\n subscribe: finalResolver,\n resolve: (payload, _, __, { fieldName: targetFieldName }) => payload[targetFieldName],\n };\n }\n else {\n resolvers[typeName][fieldName] = {\n resolve: finalResolver,\n };\n }\n });\n }\n });\n return resolvers;\n}\nfunction createPossiblyNestedProxyingResolver(subschemaOrSubschemaConfig, proxyingResolver) {\n return (parent, args, context, info) => {\n if (parent != null) {\n const responseKey = getResponseKeyFromInfo(info);\n const errors = getErrors(parent, responseKey);\n // Check to see if the parent contains a proxied result\n if (errors != null) {\n const subschema = getSubschema(parent, responseKey);\n // If there is a proxied result from this subschema, return it\n // This can happen even for a root field when the root type ia\n // also nested as a field within a different type.\n if (subschemaOrSubschemaConfig === subschema && parent[responseKey] !== undefined) {\n return handleResult(parent[responseKey], errors, subschema, context, info);\n }\n }\n }\n return proxyingResolver(parent, args, context, info);\n };\n}\nexport function defaultCreateProxyingResolver({ schema, operation, transforms, transformedSchema, }) {\n return (_parent, _args, context, info) => delegateToSchema({\n schema,\n operation,\n context,\n info,\n transforms,\n transformedSchema,\n });\n}\n//# sourceMappingURL=generateProxyingResolvers.js.map","import { GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, } from 'graphql';\nimport { MapperKind, mapSchema, applySchemaTransforms } from '@graphql-tools/utils';\nimport { isSubschemaConfig, defaultMergedResolver } from '@graphql-tools/delegate';\nimport { generateProxyingResolvers } from './generateProxyingResolvers';\nexport function wrapSchema(subschemaOrSubschemaConfig, transforms) {\n let targetSchema;\n let schemaTransforms = [];\n if (isSubschemaConfig(subschemaOrSubschemaConfig)) {\n targetSchema = subschemaOrSubschemaConfig.schema;\n if (subschemaOrSubschemaConfig.transforms != null) {\n schemaTransforms = schemaTransforms.concat(subschemaOrSubschemaConfig.transforms);\n }\n }\n else {\n targetSchema = subschemaOrSubschemaConfig;\n }\n if (transforms != null) {\n schemaTransforms = schemaTransforms.concat(transforms);\n }\n const proxyingResolvers = generateProxyingResolvers(subschemaOrSubschemaConfig, transforms);\n const schema = createWrappingSchema(targetSchema, proxyingResolvers);\n return applySchemaTransforms(schema, schemaTransforms);\n}\nfunction createWrappingSchema(schema, proxyingResolvers) {\n return mapSchema(schema, {\n [MapperKind.ROOT_OBJECT]: type => {\n const config = type.toConfig();\n const fieldConfigMap = config.fields;\n Object.keys(fieldConfigMap).forEach(fieldName => {\n fieldConfigMap[fieldName] = {\n ...fieldConfigMap[fieldName],\n ...proxyingResolvers[type.name][fieldName],\n };\n });\n return new GraphQLObjectType(config);\n },\n [MapperKind.OBJECT_TYPE]: type => {\n const config = type.toConfig();\n config.isTypeOf = undefined;\n Object.keys(config.fields).forEach(fieldName => {\n config.fields[fieldName].resolve = defaultMergedResolver;\n config.fields[fieldName].subscribe = null;\n });\n return new GraphQLObjectType(config);\n },\n [MapperKind.INTERFACE_TYPE]: type => {\n const config = type.toConfig();\n delete config.resolveType;\n return new GraphQLInterfaceType(config);\n },\n [MapperKind.UNION_TYPE]: type => {\n const config = type.toConfig();\n delete config.resolveType;\n return new GraphQLUnionType(config);\n },\n });\n}\n//# sourceMappingURL=wrapSchema.js.map","import { Kind, isScalarType, isSpecifiedScalarType, visit, } from 'graphql';\nimport { MapperKind, mapSchema, visitData, renameType, } from '@graphql-tools/utils';\nexport default class RenameTypes {\n constructor(renamer, options) {\n this.renamer = renamer;\n this.map = Object.create(null);\n this.reverseMap = Object.create(null);\n const { renameBuiltins = false, renameScalars = true } = options != null ? options : {};\n this.renameBuiltins = renameBuiltins;\n this.renameScalars = renameScalars;\n }\n transformSchema(originalSchema) {\n return mapSchema(originalSchema, {\n [MapperKind.TYPE]: (type) => {\n if (isSpecifiedScalarType(type) && !this.renameBuiltins) {\n return undefined;\n }\n if (isScalarType(type) && !this.renameScalars) {\n return undefined;\n }\n const oldName = type.name;\n const newName = this.renamer(oldName);\n if (newName !== undefined && newName !== oldName) {\n this.map[oldName] = newName;\n this.reverseMap[newName] = oldName;\n return renameType(type, newName);\n }\n },\n [MapperKind.ROOT_OBJECT]() {\n return undefined;\n },\n });\n }\n transformRequest(originalRequest) {\n const document = visit(originalRequest.document, {\n [Kind.NAMED_TYPE]: (node) => {\n const name = node.name.value;\n if (name in this.reverseMap) {\n return {\n ...node,\n name: {\n kind: Kind.NAME,\n value: this.reverseMap[name],\n },\n };\n }\n },\n });\n return {\n ...originalRequest,\n document,\n };\n }\n transformResult(result) {\n return {\n ...result,\n data: visitData(result.data, object => {\n const typeName = object === null || object === void 0 ? void 0 : object.__typename;\n if (typeName != null && typeName in this.map) {\n object.__typename = this.map[typeName];\n }\n return object;\n }),\n };\n }\n}\n//# sourceMappingURL=RenameTypes.js.map","import { mapSchema, MapperKind } from '@graphql-tools/utils';\nexport default class FilterTypes {\n constructor(filter) {\n this.filter = filter;\n }\n transformSchema(schema) {\n return mapSchema(schema, {\n [MapperKind.TYPE]: (type) => {\n if (this.filter(type)) {\n return undefined;\n }\n return null;\n },\n });\n }\n}\n//# sourceMappingURL=FilterTypes.js.map","import { visit, Kind } from 'graphql';\nimport { MapperKind, mapSchema, renameType, visitData, } from '@graphql-tools/utils';\nexport default class RenameRootTypes {\n constructor(renamer) {\n this.renamer = renamer;\n this.map = Object.create(null);\n this.reverseMap = Object.create(null);\n }\n transformSchema(originalSchema) {\n return mapSchema(originalSchema, {\n [MapperKind.ROOT_OBJECT]: type => {\n const oldName = type.name;\n const newName = this.renamer(oldName);\n if (newName !== undefined && newName !== oldName) {\n this.map[oldName] = newName;\n this.reverseMap[newName] = oldName;\n return renameType(type, newName);\n }\n },\n });\n }\n transformRequest(originalRequest) {\n const document = visit(originalRequest.document, {\n [Kind.NAMED_TYPE]: (node) => {\n const name = node.name.value;\n if (name in this.reverseMap) {\n return {\n ...node,\n name: {\n kind: Kind.NAME,\n value: this.reverseMap[name],\n },\n };\n }\n },\n });\n return {\n ...originalRequest,\n document,\n };\n }\n transformResult(result) {\n return {\n ...result,\n data: visitData(result.data, object => {\n const typeName = object === null || object === void 0 ? void 0 : object.__typename;\n if (typeName != null && typeName in this.map) {\n object.__typename = this.map[typeName];\n }\n return object;\n }),\n };\n }\n}\n//# sourceMappingURL=RenameRootTypes.js.map","import { TypeInfo, visit, visitWithTypeInfo, Kind, } from 'graphql';\nimport { MapperKind, mapSchema, visitData } from '@graphql-tools/utils';\nexport default class TransformCompositeFields {\n constructor(fieldTransformer, fieldNodeTransformer, dataTransformer, errorsTransformer) {\n this.fieldTransformer = fieldTransformer;\n this.fieldNodeTransformer = fieldNodeTransformer;\n this.dataTransformer = dataTransformer;\n this.errorsTransformer = errorsTransformer;\n this.mapping = {};\n }\n transformSchema(originalSchema) {\n this.transformedSchema = mapSchema(originalSchema, {\n [MapperKind.COMPOSITE_FIELD]: (fieldConfig, fieldName, typeName) => {\n const transformedField = this.fieldTransformer(typeName, fieldName, fieldConfig);\n if (Array.isArray(transformedField)) {\n const newFieldName = transformedField[0];\n if (newFieldName !== fieldName) {\n if (!(typeName in this.mapping)) {\n this.mapping[typeName] = {};\n }\n this.mapping[typeName][newFieldName] = fieldName;\n }\n }\n return transformedField;\n },\n });\n this.typeInfo = new TypeInfo(this.transformedSchema);\n return this.transformedSchema;\n }\n transformRequest(originalRequest, _delegationContext, transformationContext) {\n const document = originalRequest.document;\n const fragments = Object.create(null);\n document.definitions.forEach(def => {\n if (def.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[def.name.value] = def;\n }\n });\n return {\n ...originalRequest,\n document: this.transformDocument(document, fragments, transformationContext),\n };\n }\n transformResult(result, _delegationContext, transformationContext) {\n if (this.dataTransformer != null) {\n result.data = visitData(result.data, value => this.dataTransformer(value, transformationContext));\n }\n if (this.errorsTransformer != null) {\n result.errors = this.errorsTransformer(result.errors, transformationContext);\n }\n return result;\n }\n transformDocument(document, fragments, transformationContext) {\n return visit(document, visitWithTypeInfo(this.typeInfo, {\n leave: {\n [Kind.SELECTION_SET]: node => this.transformSelectionSet(node, this.typeInfo, fragments, transformationContext),\n },\n }));\n }\n transformSelectionSet(node, typeInfo, fragments, transformationContext) {\n const parentType = typeInfo.getParentType();\n if (parentType == null) {\n return undefined;\n }\n const parentTypeName = parentType.name;\n let newSelections = [];\n node.selections.forEach(selection => {\n var _a, _b;\n if (selection.kind !== Kind.FIELD) {\n newSelections.push(selection);\n return;\n }\n const newName = selection.name.value;\n if (this.dataTransformer != null || this.errorsTransformer != null) {\n newSelections.push({\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n });\n }\n let transformedSelection;\n if (this.fieldNodeTransformer == null) {\n transformedSelection = selection;\n }\n else {\n transformedSelection = this.fieldNodeTransformer(parentTypeName, newName, selection, fragments, transformationContext);\n transformedSelection = transformedSelection === undefined ? selection : transformedSelection;\n }\n if (Array.isArray(transformedSelection)) {\n newSelections = newSelections.concat(transformedSelection);\n return;\n }\n if (transformedSelection.kind !== Kind.FIELD) {\n newSelections.push(transformedSelection);\n return;\n }\n const typeMapping = this.mapping[parentTypeName];\n if (typeMapping == null) {\n newSelections.push(transformedSelection);\n return;\n }\n const oldName = this.mapping[parentTypeName][newName];\n if (oldName == null) {\n newSelections.push(transformedSelection);\n return;\n }\n newSelections.push({\n ...transformedSelection,\n name: {\n kind: Kind.NAME,\n value: oldName,\n },\n alias: {\n kind: Kind.NAME,\n value: (_b = (_a = transformedSelection.alias) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : newName,\n },\n });\n });\n return {\n ...node,\n selections: newSelections,\n };\n }\n}\n//# sourceMappingURL=TransformCompositeFields.js.map","import { isObjectType } from 'graphql';\nimport TransformCompositeFields from './TransformCompositeFields';\nexport default class TransformObjectFields {\n constructor(objectFieldTransformer, fieldNodeTransformer) {\n this.objectFieldTransformer = objectFieldTransformer;\n this.fieldNodeTransformer = fieldNodeTransformer;\n }\n transformSchema(originalSchema) {\n const compositeToObjectFieldTransformer = (typeName, fieldName, fieldConfig) => {\n if (isObjectType(originalSchema.getType(typeName))) {\n return this.objectFieldTransformer(typeName, fieldName, fieldConfig);\n }\n return undefined;\n };\n this.transformer = new TransformCompositeFields(compositeToObjectFieldTransformer, this.fieldNodeTransformer);\n return this.transformer.transformSchema(originalSchema);\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n}\n//# sourceMappingURL=TransformObjectFields.js.map","import TransformObjectFields from './TransformObjectFields';\nexport default class TransformRootFields {\n constructor(rootFieldTransformer, fieldNodeTransformer) {\n this.rootFieldTransformer = rootFieldTransformer;\n this.fieldNodeTransformer = fieldNodeTransformer;\n }\n transformSchema(originalSchema) {\n var _a, _b, _c;\n const queryTypeName = (_a = originalSchema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name;\n const mutationTypeName = (_b = originalSchema.getMutationType()) === null || _b === void 0 ? void 0 : _b.name;\n const subscriptionTypeName = (_c = originalSchema.getSubscriptionType()) === null || _c === void 0 ? void 0 : _c.name;\n const rootToObjectFieldTransformer = (typeName, fieldName, fieldConfig) => {\n if (typeName === queryTypeName) {\n return this.rootFieldTransformer('Query', fieldName, fieldConfig);\n }\n if (typeName === mutationTypeName) {\n return this.rootFieldTransformer('Mutation', fieldName, fieldConfig);\n }\n if (typeName === subscriptionTypeName) {\n return this.rootFieldTransformer('Subscription', fieldName, fieldConfig);\n }\n return undefined;\n };\n this.transformer = new TransformObjectFields(rootToObjectFieldTransformer, this.fieldNodeTransformer);\n return this.transformer.transformSchema(originalSchema);\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n}\n//# sourceMappingURL=TransformRootFields.js.map","import TransformRootFields from './TransformRootFields';\nexport default class RenameRootFields {\n constructor(renamer) {\n this.transformer = new TransformRootFields((operation, fieldName, fieldConfig) => [renamer(operation, fieldName, fieldConfig), fieldConfig]);\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n transformRequest(originalRequest) {\n return this.transformer.transformRequest(originalRequest);\n }\n}\n//# sourceMappingURL=RenameRootFields.js.map","import TransformRootFields from './TransformRootFields';\nexport default class FilterRootFields {\n constructor(filter) {\n this.transformer = new TransformRootFields((operation, fieldName, fieldConfig) => {\n if (filter(operation, fieldName, fieldConfig)) {\n return undefined;\n }\n return null;\n });\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n}\n//# sourceMappingURL=FilterRootFields.js.map","import TransformObjectFields from './TransformObjectFields';\nexport default class RenameObjectFields {\n constructor(renamer) {\n this.transformer = new TransformObjectFields((typeName, fieldName, fieldConfig) => [\n renamer(typeName, fieldName, fieldConfig),\n fieldConfig,\n ]);\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n transformRequest(originalRequest) {\n return this.transformer.transformRequest(originalRequest);\n }\n}\n//# sourceMappingURL=RenameObjectFields.js.map","import TransformObjectFields from './TransformObjectFields';\nexport default class FilterObjectFields {\n constructor(filter) {\n this.transformer = new TransformObjectFields((typeName, fieldName, fieldConfig) => filter(typeName, fieldName, fieldConfig) ? undefined : null);\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n}\n//# sourceMappingURL=FilterObjectFields.js.map","import { isInterfaceType } from 'graphql';\nimport TransformCompositeFields from './TransformCompositeFields';\nexport default class TransformInterfaceFields {\n constructor(interfaceFieldTransformer, fieldNodeTransformer) {\n this.interfaceFieldTransformer = interfaceFieldTransformer;\n this.fieldNodeTransformer = fieldNodeTransformer;\n }\n transformSchema(originalSchema) {\n const compositeToObjectFieldTransformer = (typeName, fieldName, fieldConfig) => {\n if (isInterfaceType(originalSchema.getType(typeName))) {\n return this.interfaceFieldTransformer(typeName, fieldName, fieldConfig);\n }\n return undefined;\n };\n this.transformer = new TransformCompositeFields(compositeToObjectFieldTransformer, this.fieldNodeTransformer);\n return this.transformer.transformSchema(originalSchema);\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n}\n//# sourceMappingURL=TransformInterfaceFields.js.map","import TransformInterfaceFields from './TransformInterfaceFields';\nexport default class RenameInterfaceFields {\n constructor(renamer) {\n this.transformer = new TransformInterfaceFields((typeName, fieldName, fieldConfig) => [\n renamer(typeName, fieldName, fieldConfig),\n fieldConfig,\n ]);\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n transformRequest(originalRequest) {\n return this.transformer.transformRequest(originalRequest);\n }\n}\n//# sourceMappingURL=RenameInterfaceFields.js.map","import TransformInterfaceFields from './TransformInterfaceFields';\nexport default class FilterInterfaceFields {\n constructor(filter) {\n this.transformer = new TransformInterfaceFields((typeName, fieldName, fieldConfig) => filter(typeName, fieldName, fieldConfig) ? undefined : null);\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n}\n//# sourceMappingURL=FilterInterfaceFields.js.map","import { TypeInfo, visit, visitWithTypeInfo, Kind, } from 'graphql';\nimport { MapperKind, mapSchema } from '@graphql-tools/utils';\nexport default class TransformInputObjectFields {\n constructor(inputFieldTransformer, inputFieldNodeTransformer, inputObjectNodeTransformer) {\n this.inputFieldTransformer = inputFieldTransformer;\n this.inputFieldNodeTransformer = inputFieldNodeTransformer;\n this.inputObjectNodeTransformer = inputObjectNodeTransformer;\n this.mapping = {};\n }\n transformSchema(originalSchema) {\n this.transformedSchema = mapSchema(originalSchema, {\n [MapperKind.INPUT_OBJECT_FIELD]: (inputFieldConfig, fieldName, typeName) => {\n const transformedInputField = this.inputFieldTransformer(typeName, fieldName, inputFieldConfig);\n if (Array.isArray(transformedInputField)) {\n const newFieldName = transformedInputField[0];\n if (newFieldName !== fieldName) {\n if (!(typeName in this.mapping)) {\n this.mapping[typeName] = {};\n }\n this.mapping[typeName][newFieldName] = fieldName;\n }\n }\n return transformedInputField;\n },\n });\n return this.transformedSchema;\n }\n transformRequest(originalRequest, delegationContext) {\n const fragments = Object.create(null);\n originalRequest.document.definitions\n .filter(def => def.kind === Kind.FRAGMENT_DEFINITION)\n .forEach(def => {\n fragments[def.name.value] = def;\n });\n const document = this.transformDocument(originalRequest.document, this.mapping, this.inputFieldNodeTransformer, this.inputObjectNodeTransformer, originalRequest, \n // cast to DelegationContext as workaround to avoid breaking change in types until next major version\n delegationContext);\n return {\n ...originalRequest,\n document,\n };\n }\n transformDocument(document, mapping, inputFieldNodeTransformer, inputObjectNodeTransformer, request, delegationContext) {\n const typeInfo = new TypeInfo(this.transformedSchema);\n const newDocument = visit(document, visitWithTypeInfo(typeInfo, {\n leave: {\n [Kind.OBJECT]: (node) => {\n const parentType = typeInfo.getInputType();\n if (parentType != null) {\n const parentTypeName = parentType.name;\n const newInputFields = [];\n node.fields.forEach(inputField => {\n const newName = inputField.name.value;\n const transformedInputField = inputFieldNodeTransformer != null\n ? inputFieldNodeTransformer(parentTypeName, newName, inputField, request, delegationContext)\n : inputField;\n if (Array.isArray(transformedInputField)) {\n transformedInputField.forEach(individualTransformedInputField => {\n const typeMapping = mapping[parentTypeName];\n if (typeMapping == null) {\n newInputFields.push(individualTransformedInputField);\n return;\n }\n const oldName = typeMapping[newName];\n if (oldName == null) {\n newInputFields.push(individualTransformedInputField);\n return;\n }\n newInputFields.push({\n ...individualTransformedInputField,\n name: {\n ...individualTransformedInputField.name,\n value: oldName,\n },\n });\n });\n return;\n }\n const typeMapping = mapping[parentTypeName];\n if (typeMapping == null) {\n newInputFields.push(transformedInputField);\n return;\n }\n const oldName = typeMapping[newName];\n if (oldName == null) {\n newInputFields.push(transformedInputField);\n return;\n }\n newInputFields.push({\n ...transformedInputField,\n name: {\n ...transformedInputField.name,\n value: oldName,\n },\n });\n });\n const newNode = {\n ...node,\n fields: newInputFields,\n };\n return inputObjectNodeTransformer != null\n ? inputObjectNodeTransformer(parentTypeName, newNode, request, delegationContext)\n : newNode;\n }\n },\n },\n }));\n return newDocument;\n }\n}\n//# sourceMappingURL=TransformInputObjectFields.js.map","import { mapSchema, MapperKind } from '@graphql-tools/utils';\nimport TransformInputObjectFields from './TransformInputObjectFields';\nexport default class RenameInputObjectFields {\n constructor(renamer) {\n this.renamer = renamer;\n this.transformer = new TransformInputObjectFields((typeName, inputFieldName, inputFieldConfig) => {\n const newName = renamer(typeName, inputFieldName, inputFieldConfig);\n if (newName !== undefined && newName !== inputFieldName) {\n return [renamer(typeName, inputFieldName, inputFieldConfig), inputFieldConfig];\n }\n }, (typeName, inputFieldName, inputFieldNode) => {\n if (!(typeName in this.reverseMap)) {\n return inputFieldNode;\n }\n const inputFieldNameMap = this.reverseMap[typeName];\n if (!(inputFieldName in inputFieldNameMap)) {\n return inputFieldNode;\n }\n return {\n ...inputFieldNode,\n name: {\n ...inputFieldNode.name,\n value: inputFieldNameMap[inputFieldName],\n },\n };\n });\n this.reverseMap = Object.create(null);\n }\n transformSchema(originalSchema) {\n mapSchema(originalSchema, {\n [MapperKind.INPUT_OBJECT_FIELD]: (inputFieldConfig, fieldName, typeName) => {\n const newName = this.renamer(typeName, fieldName, inputFieldConfig);\n if (newName !== undefined && newName !== fieldName) {\n if (this.reverseMap[typeName] == null) {\n this.reverseMap[typeName] = Object.create(null);\n }\n this.reverseMap[typeName][newName] = fieldName;\n }\n return undefined;\n },\n [MapperKind.ROOT_OBJECT]() {\n return undefined;\n },\n });\n return this.transformer.transformSchema(originalSchema);\n }\n transformRequest(originalRequest, delegationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext);\n }\n}\n//# sourceMappingURL=RenameInputObjectFields.js.map","import TransformInputObjectFields from './TransformInputObjectFields';\nexport default class FilterInputObjectFields {\n constructor(filter, inputObjectNodeTransformer) {\n this.transformer = new TransformInputObjectFields((typeName, fieldName, inputFieldConfig) => filter(typeName, fieldName, inputFieldConfig) ? undefined : null, undefined, inputObjectNodeTransformer);\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n transformRequest(originalRequest, delegationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext);\n }\n}\n//# sourceMappingURL=FilterInputObjectFields.js.map","import { visit, Kind, TypeInfo, visitWithTypeInfo, valueFromAST, isLeafType, } from 'graphql';\nimport { visitResult, updateArgument, transformInputValue, } from '@graphql-tools/utils';\nexport default class MapLeafValues {\n constructor(inputValueTransformer, outputValueTransformer) {\n this.inputValueTransformer = inputValueTransformer;\n this.outputValueTransformer = outputValueTransformer;\n this.resultVisitorMap = Object.create(null);\n }\n transformSchema(originalSchema) {\n this.originalSchema = originalSchema;\n const typeMap = originalSchema.getTypeMap();\n Object.keys(typeMap).forEach(typeName => {\n const type = typeMap[typeName];\n if (!typeName.startsWith('__')) {\n if (isLeafType(type)) {\n this.resultVisitorMap[typeName] = (value) => this.outputValueTransformer(typeName, value);\n }\n }\n });\n this.typeInfo = new TypeInfo(originalSchema);\n return originalSchema;\n }\n transformRequest(originalRequest, _delegationContext, transformationContext) {\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 = this.transformOperations(operations, variableValues);\n const transformedRequest = {\n ...originalRequest,\n document: {\n ...document,\n definitions: [...newOperations, ...fragments],\n },\n variables: variableValues,\n };\n transformationContext.transformedRequest = transformedRequest;\n return transformedRequest;\n }\n transformResult(originalResult, _delegationContext, transformationContext) {\n return visitResult(originalResult, transformationContext.transformedRequest, this.originalSchema, this.resultVisitorMap);\n }\n transformOperations(operations, variableValues) {\n return operations.map((operation) => {\n const variableDefinitionMap = operation.variableDefinitions.reduce((prev, def) => ({\n ...prev,\n [def.variable.name.value]: def,\n }), {});\n const newOperation = visit(operation, visitWithTypeInfo(this.typeInfo, {\n [Kind.FIELD]: node => this.transformFieldNode(node, variableDefinitionMap, variableValues),\n }));\n return {\n ...newOperation,\n variableDefinitions: Object.keys(variableDefinitionMap).map(varName => variableDefinitionMap[varName]),\n };\n });\n }\n transformFieldNode(field, variableDefinitionMap, variableValues) {\n const targetField = this.typeInfo.getFieldDef();\n if (!targetField.name.startsWith('__')) {\n const argumentNodes = field.arguments;\n if (argumentNodes != null) {\n const argumentNodeMap = argumentNodes.reduce((prev, argument) => ({\n ...prev,\n [argument.name.value]: argument,\n }), Object.create(null));\n targetField.args.forEach((argument) => {\n const argName = argument.name;\n const argType = argument.type;\n const argumentNode = argumentNodeMap[argName];\n const argValue = argumentNode === null || argumentNode === void 0 ? void 0 : argumentNode.value;\n let value;\n if (argValue != null) {\n value = valueFromAST(argValue, argType, variableValues);\n }\n updateArgument(argName, argType, argumentNodeMap, variableDefinitionMap, variableValues, transformInputValue(argType, value, (t, v) => {\n const newValue = this.inputValueTransformer(t.name, v);\n return newValue === undefined ? v : newValue;\n }));\n });\n return {\n ...field,\n arguments: Object.keys(argumentNodeMap).map(argName => argumentNodeMap[argName]),\n };\n }\n }\n }\n}\n//# sourceMappingURL=MapLeafValues.js.map","import { MapperKind, mapSchema } from '@graphql-tools/utils';\nimport MapLeafValues from './MapLeafValues';\nexport default class TransformEnumValues {\n constructor(enumValueTransformer, inputValueTransformer, outputValueTransformer) {\n this.enumValueTransformer = enumValueTransformer;\n this.mapping = Object.create(null);\n this.reverseMapping = Object.create(null);\n this.transformer = new MapLeafValues(generateValueTransformer(inputValueTransformer, this.reverseMapping), generateValueTransformer(outputValueTransformer, this.mapping));\n }\n transformSchema(originalSchema) {\n const transformedSchema = this.transformer.transformSchema(originalSchema);\n this.transformedSchema = mapSchema(transformedSchema, {\n [MapperKind.ENUM_VALUE]: (valueConfig, typeName, _schema, externalValue) => this.transformEnumValue(typeName, externalValue, valueConfig),\n });\n return this.transformedSchema;\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n transformEnumValue(typeName, externalValue, enumValueConfig) {\n const transformedEnumValue = this.enumValueTransformer(typeName, externalValue, enumValueConfig);\n if (Array.isArray(transformedEnumValue)) {\n const newExternalValue = transformedEnumValue[0];\n if (newExternalValue !== externalValue) {\n if (!(typeName in this.mapping)) {\n this.mapping[typeName] = Object.create(null);\n this.reverseMapping[typeName] = Object.create(null);\n }\n this.mapping[typeName][externalValue] = newExternalValue;\n this.reverseMapping[typeName][newExternalValue] = externalValue;\n }\n }\n return transformedEnumValue;\n }\n}\nfunction mapEnumValues(typeName, value, mapping) {\n var _a;\n const newExternalValue = (_a = mapping[typeName]) === null || _a === void 0 ? void 0 : _a[value];\n return newExternalValue != null ? newExternalValue : value;\n}\nfunction generateValueTransformer(valueTransformer, mapping) {\n if (valueTransformer == null) {\n return (typeName, value) => mapEnumValues(typeName, value, mapping);\n }\n else {\n return (typeName, value) => mapEnumValues(typeName, valueTransformer(typeName, value), mapping);\n }\n}\n//# sourceMappingURL=TransformEnumValues.js.map","import { visit, Kind } from 'graphql';\nimport { relocatedError } from '@graphql-tools/utils';\nexport default class TransformQuery {\n constructor({ path, queryTransformer, resultTransformer = result => result, errorPathTransformer = errorPath => [].concat(errorPath), fragments = {}, }) {\n this.path = path;\n this.queryTransformer = queryTransformer;\n this.resultTransformer = resultTransformer;\n this.errorPathTransformer = errorPathTransformer;\n this.fragments = fragments;\n }\n transformRequest(originalRequest) {\n const pathLength = this.path.length;\n let index = 0;\n const document = visit(originalRequest.document, {\n [Kind.FIELD]: {\n enter: node => {\n if (index === pathLength || node.name.value !== this.path[index]) {\n return false;\n }\n index++;\n if (index === pathLength) {\n const selectionSet = this.queryTransformer(node.selectionSet, this.fragments);\n return {\n ...node,\n selectionSet,\n };\n }\n },\n leave: () => {\n index--;\n },\n },\n });\n return {\n ...originalRequest,\n document,\n };\n }\n transformResult(originalResult) {\n const data = this.transformData(originalResult.data);\n const errors = originalResult.errors;\n return {\n data,\n errors: errors != null ? this.transformErrors(errors) : undefined,\n };\n }\n transformData(data) {\n const leafIndex = this.path.length - 1;\n let index = 0;\n let newData = data;\n if (newData) {\n let next = this.path[index];\n while (index < leafIndex) {\n if (data[next]) {\n newData = newData[next];\n }\n else {\n break;\n }\n index++;\n next = this.path[index];\n }\n newData[next] = this.resultTransformer(newData[next]);\n }\n return newData;\n }\n transformErrors(errors) {\n return errors.map(error => {\n const path = error.path;\n let match = true;\n let index = 0;\n while (index < this.path.length) {\n if (path[index] !== this.path[index]) {\n match = false;\n break;\n }\n index++;\n }\n const newPath = match ? path.slice(0, index).concat(this.errorPathTransformer(path.slice(index))) : path;\n return relocatedError(error, newPath);\n });\n }\n}\n//# sourceMappingURL=TransformQuery.js.map","import { getArgumentValues } from '@graphql-tools/utils';\nimport TransformObjectFields from './TransformObjectFields';\nexport default class FilterObjectFieldDirectives {\n constructor(filter) {\n this.filter = filter;\n }\n transformSchema(originalSchema) {\n const transformer = new TransformObjectFields((_typeName, _fieldName, fieldConfig) => {\n const keepDirectives = fieldConfig.astNode.directives.filter(dir => {\n const directiveDef = originalSchema.getDirective(dir.name.value);\n const directiveValue = directiveDef ? getArgumentValues(directiveDef, dir) : undefined;\n return this.filter(dir.name.value, directiveValue);\n });\n if (keepDirectives.length !== fieldConfig.astNode.directives.length) {\n fieldConfig = {\n ...fieldConfig,\n astNode: {\n ...fieldConfig.astNode,\n directives: keepDirectives,\n },\n };\n return fieldConfig;\n }\n });\n return transformer.transformSchema(originalSchema);\n }\n}\n//# sourceMappingURL=FilterObjectFieldDirectives.js.map","import { valueMatchesCriteria } from '@graphql-tools/utils';\nimport FilterObjectFieldDirectives from './FilterObjectFieldDirectives';\nexport default class RemoveObjectFieldDirectives {\n constructor(directiveName, args = {}) {\n this.transformer = new FilterObjectFieldDirectives((dirName, dirValue) => {\n return !(valueMatchesCriteria(dirName, directiveName) && valueMatchesCriteria(dirValue, args));\n });\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n}\n//# sourceMappingURL=RemoveObjectFieldDirectives.js.map","import { getDirectives, valueMatchesCriteria } from '@graphql-tools/utils';\nimport FilterObjectFields from './FilterObjectFields';\nexport default class RemoveObjectFieldsWithDirective {\n constructor(directiveName, args = {}) {\n this.directiveName = directiveName;\n this.args = args;\n }\n transformSchema(originalSchema) {\n const transformer = new FilterObjectFields((_typeName, _fieldName, fieldConfig) => {\n const valueMap = getDirectives(originalSchema, fieldConfig);\n return !Object.keys(valueMap).some(directiveName => valueMatchesCriteria(directiveName, this.directiveName) &&\n ((Array.isArray(valueMap[directiveName]) &&\n valueMap[directiveName].some((value) => valueMatchesCriteria(value, this.args))) ||\n valueMatchesCriteria(valueMap[directiveName], this.args)));\n });\n return transformer.transformSchema(originalSchema);\n }\n}\n//# sourceMappingURL=RemoveObjectFieldsWithDirective.js.map","import { valueMatchesCriteria } from '@graphql-tools/utils';\nimport FilterObjectFieldDirectives from './FilterObjectFieldDirectives';\nimport TransformObjectFields from './TransformObjectFields';\nexport default class RemoveObjectFieldDeprecations {\n constructor(reason) {\n const args = { reason };\n this.removeDirectives = new FilterObjectFieldDirectives((dirName, dirValue) => {\n return !(dirName === 'deprecated' && valueMatchesCriteria(dirValue, args));\n });\n this.removeDeprecations = new TransformObjectFields((_typeName, _fieldName, fieldConfig) => {\n if (fieldConfig.deprecationReason && valueMatchesCriteria(fieldConfig.deprecationReason, reason)) {\n fieldConfig = { ...fieldConfig };\n delete fieldConfig.deprecationReason;\n }\n return fieldConfig;\n });\n }\n transformSchema(originalSchema) {\n return this.removeDeprecations.transformSchema(this.removeDirectives.transformSchema(originalSchema));\n }\n}\n//# sourceMappingURL=RemoveObjectFieldDeprecations.js.map","import { valueMatchesCriteria } from '@graphql-tools/utils';\nimport FilterObjectFields from './FilterObjectFields';\nexport default class RemoveObjectFieldsWithDeprecation {\n constructor(reason) {\n this.transformer = new FilterObjectFields((_typeName, _fieldName, fieldConfig) => {\n if (fieldConfig.deprecationReason) {\n return !valueMatchesCriteria(fieldConfig.deprecationReason, reason);\n }\n return true;\n });\n }\n transformSchema(originalSchema) {\n return this.transformer.transformSchema(originalSchema);\n }\n}\n//# sourceMappingURL=RemoveObjectFieldsWithDeprecation.js.map","import TransformCompositeFields from './TransformCompositeFields';\nexport default class MapFields {\n constructor(fieldNodeTransformerMap, objectValueTransformerMap, errorsTransformer) {\n this.transformer = new TransformCompositeFields(() => undefined, (typeName, fieldName, fieldNode, fragments, transformationContext) => {\n const typeTransformers = fieldNodeTransformerMap[typeName];\n if (typeTransformers == null) {\n return undefined;\n }\n const fieldNodeTransformer = typeTransformers[fieldName];\n if (fieldNodeTransformer == null) {\n return undefined;\n }\n return fieldNodeTransformer(fieldNode, fragments, transformationContext);\n }, objectValueTransformerMap != null\n ? (data, transformationContext) => {\n if (data == null) {\n return data;\n }\n const typeName = data.__typename;\n if (typeName == null) {\n return data;\n }\n const transformer = objectValueTransformerMap[typeName];\n if (transformer == null) {\n return data;\n }\n return transformer(data, transformationContext);\n }\n : undefined, errorsTransformer != null ? errorsTransformer : undefined);\n }\n transformSchema(schema) {\n return this.transformer.transformSchema(schema);\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n}\n//# sourceMappingURL=MapFields.js.map","import { extendSchema, parse } from 'graphql';\nimport { addResolversToSchema } from '@graphql-tools/schema';\nimport { defaultMergedResolver } from '@graphql-tools/delegate';\nimport MapFields from './MapFields';\nexport default class ExtendSchema {\n constructor({ typeDefs, resolvers = {}, defaultFieldResolver, fieldNodeTransformerMap, objectValueTransformerMap, errorsTransformer, }) {\n this.typeDefs = typeDefs;\n this.resolvers = resolvers;\n this.defaultFieldResolver = defaultFieldResolver != null ? defaultFieldResolver : defaultMergedResolver;\n this.transformer = new MapFields(fieldNodeTransformerMap != null ? fieldNodeTransformerMap : {}, objectValueTransformerMap, errorsTransformer);\n }\n transformSchema(schema) {\n // MapFields's transformSchema function does not actually modify the schema --\n // it saves the current schema state, to be used later to transform requests.\n this.transformer.transformSchema(schema);\n return addResolversToSchema({\n schema: this.typeDefs ? extendSchema(schema, parse(this.typeDefs)) : schema,\n resolvers: this.resolvers != null ? this.resolvers : {},\n defaultFieldResolver: this.defaultFieldResolver,\n });\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n}\n//# sourceMappingURL=ExtendSchema.js.map","import { pruneSchema } from '@graphql-tools/utils';\nexport default class PruneTypes {\n constructor(options) {\n this.options = options;\n }\n transformSchema(schema) {\n return pruneSchema(schema, this.options);\n }\n}\n//# sourceMappingURL=PruneSchema.js.map","import { Kind, } from 'graphql';\nimport { appendObjectFields, selectObjectFields, modifyObjectFields, relocatedError, } from '@graphql-tools/utils';\nimport { defaultMergedResolver } from '@graphql-tools/delegate';\nimport MapFields from './MapFields';\nfunction defaultWrappingResolver(parent, args, context, info) {\n if (!parent) {\n return {};\n }\n return defaultMergedResolver(parent, args, context, info);\n}\nexport default class WrapFields {\n constructor(outerTypeName, wrappingFieldNames, wrappingTypeNames, fieldNames, wrappingResolver = defaultWrappingResolver, prefix = 'gqtld') {\n this.outerTypeName = outerTypeName;\n this.wrappingFieldNames = wrappingFieldNames;\n this.wrappingTypeNames = wrappingTypeNames;\n this.numWraps = wrappingFieldNames.length;\n this.fieldNames = fieldNames;\n this.wrappingResolver = wrappingResolver;\n const remainingWrappingFieldNames = this.wrappingFieldNames.slice();\n const outerMostWrappingFieldName = remainingWrappingFieldNames.shift();\n this.transformer = new MapFields({\n [outerTypeName]: {\n [outerMostWrappingFieldName]: (fieldNode, fragments, transformationContext) => hoistFieldNodes({\n fieldNode,\n path: remainingWrappingFieldNames,\n fieldNames,\n fragments,\n transformationContext,\n prefix,\n }),\n },\n }, {\n [outerTypeName]: (value, context) => dehoistValue(value, context),\n }, (errors, context) => dehoistErrors(errors, context));\n }\n transformSchema(schema) {\n const targetFieldConfigMap = selectObjectFields(schema, this.outerTypeName, !this.fieldNames ? () => true : fieldName => this.fieldNames.includes(fieldName));\n let wrapIndex = this.numWraps - 1;\n let wrappingTypeName = this.wrappingTypeNames[wrapIndex];\n let wrappingFieldName = this.wrappingFieldNames[wrapIndex];\n let newSchema = appendObjectFields(schema, wrappingTypeName, targetFieldConfigMap);\n for (wrapIndex--; wrapIndex > -1; wrapIndex--) {\n const nextWrappingTypeName = this.wrappingTypeNames[wrapIndex];\n newSchema = appendObjectFields(newSchema, nextWrappingTypeName, {\n [wrappingFieldName]: {\n type: newSchema.getType(wrappingTypeName),\n resolve: this.wrappingResolver,\n },\n });\n wrappingTypeName = nextWrappingTypeName;\n wrappingFieldName = this.wrappingFieldNames[wrapIndex];\n }\n const selectedFieldNames = Object.keys(targetFieldConfigMap);\n [newSchema] = modifyObjectFields(newSchema, this.outerTypeName, fieldName => selectedFieldNames.includes(fieldName), {\n [wrappingFieldName]: {\n type: newSchema.getType(wrappingTypeName),\n resolve: this.wrappingResolver,\n },\n });\n return this.transformer.transformSchema(newSchema);\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n transformationContext.nextIndex = 0;\n transformationContext.paths = Object.create(null);\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n}\nfunction collectFields(selectionSet, fragments, fields = [], visitedFragmentNames = {}) {\n if (selectionSet != null) {\n selectionSet.selections.forEach(selection => {\n switch (selection.kind) {\n case Kind.FIELD:\n fields.push(selection);\n break;\n case Kind.INLINE_FRAGMENT:\n collectFields(selection.selectionSet, fragments, fields, visitedFragmentNames);\n break;\n case Kind.FRAGMENT_SPREAD: {\n const fragmentName = selection.name.value;\n if (!visitedFragmentNames[fragmentName]) {\n visitedFragmentNames[fragmentName] = true;\n collectFields(fragments[fragmentName].selectionSet, fragments, fields, visitedFragmentNames);\n }\n break;\n }\n default:\n // unreachable\n break;\n }\n });\n }\n return fields;\n}\nfunction aliasFieldNode(fieldNode, str) {\n return {\n ...fieldNode,\n alias: {\n kind: Kind.NAME,\n value: str,\n },\n };\n}\nfunction hoistFieldNodes({ fieldNode, fieldNames, path, fragments, transformationContext, prefix, index = 0, wrappingPath = [], }) {\n const alias = fieldNode.alias != null ? fieldNode.alias.value : fieldNode.name.value;\n let newFieldNodes = [];\n if (index < path.length) {\n const pathSegment = path[index];\n collectFields(fieldNode.selectionSet, fragments).forEach((possibleFieldNode) => {\n if (possibleFieldNode.name.value === pathSegment) {\n const newWrappingPath = wrappingPath.concat([alias]);\n newFieldNodes = newFieldNodes.concat(hoistFieldNodes({\n fieldNode: possibleFieldNode,\n fieldNames,\n path,\n fragments,\n transformationContext,\n prefix,\n index: index + 1,\n wrappingPath: newWrappingPath,\n }));\n }\n });\n }\n else {\n collectFields(fieldNode.selectionSet, fragments).forEach((possibleFieldNode) => {\n if (!fieldNames || fieldNames.includes(possibleFieldNode.name.value)) {\n const nextIndex = transformationContext.nextIndex;\n transformationContext.nextIndex++;\n const indexingAlias = `__${prefix}${nextIndex}__`;\n transformationContext.paths[indexingAlias] = {\n pathToField: wrappingPath.concat([alias]),\n alias: possibleFieldNode.alias != null ? possibleFieldNode.alias.value : possibleFieldNode.name.value,\n };\n newFieldNodes.push(aliasFieldNode(possibleFieldNode, indexingAlias));\n }\n });\n }\n return newFieldNodes;\n}\nexport function dehoistValue(originalValue, context) {\n if (originalValue == null) {\n return originalValue;\n }\n const newValue = Object.create(null);\n Object.keys(originalValue).forEach(alias => {\n let obj = newValue;\n const path = context.paths[alias];\n if (path == null) {\n newValue[alias] = originalValue[alias];\n return;\n }\n const pathToField = path.pathToField;\n const fieldAlias = path.alias;\n pathToField.forEach(key => {\n obj = obj[key] = obj[key] || Object.create(null);\n });\n obj[fieldAlias] = originalValue[alias];\n });\n return newValue;\n}\nfunction dehoistErrors(errors, context) {\n if (errors === undefined) {\n return undefined;\n }\n return errors.map(error => {\n const originalPath = error.path;\n if (originalPath == null) {\n return error;\n }\n let newPath = [];\n originalPath.forEach(pathSegment => {\n if (typeof pathSegment !== 'string') {\n newPath.push(pathSegment);\n return;\n }\n const path = context.paths[pathSegment];\n if (path == null) {\n newPath.push(pathSegment);\n return;\n }\n newPath = newPath.concat(path.pathToField, [path.alias]);\n });\n return relocatedError(error, newPath);\n });\n}\n//# sourceMappingURL=WrapFields.js.map","import WrapFields from './WrapFields';\nexport default class WrapType {\n constructor(outerTypeName, innerTypeName, fieldName) {\n this.transformer = new WrapFields(outerTypeName, [fieldName], [innerTypeName]);\n }\n transformSchema(schema) {\n return this.transformer.transformSchema(schema);\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n}\n//# sourceMappingURL=WrapType.js.map","import { getNullableType, Kind } from 'graphql';\nimport { renameFieldNode, appendObjectFields, removeObjectFields, relocatedError, } from '@graphql-tools/utils';\nimport { defaultMergedResolver } from '@graphql-tools/delegate';\nimport MapFields from './MapFields';\nexport default class HoistField {\n constructor(typeName, path, newFieldName, alias = '__gqtlw__') {\n this.typeName = typeName;\n this.newFieldName = newFieldName;\n const pathToField = path.slice();\n const oldFieldName = pathToField.pop();\n this.oldFieldName = oldFieldName;\n this.pathToField = pathToField;\n this.transformer = new MapFields({\n [typeName]: {\n [newFieldName]: fieldNode => wrapFieldNode(renameFieldNode(fieldNode, oldFieldName), pathToField, alias),\n },\n }, {\n [typeName]: value => unwrapValue(value, alias),\n }, errors => unwrapErrors(errors, alias));\n }\n transformSchema(schema) {\n const innerType = this.pathToField.reduce((acc, pathSegment) => getNullableType(acc.getFields()[pathSegment].type), schema.getType(this.typeName));\n let [newSchema, targetFieldConfigMap] = removeObjectFields(schema, innerType.name, fieldName => fieldName === this.oldFieldName);\n const targetField = targetFieldConfigMap[this.oldFieldName];\n const targetType = targetField.type;\n newSchema = appendObjectFields(newSchema, this.typeName, {\n [this.newFieldName]: {\n type: targetType,\n resolve: defaultMergedResolver,\n },\n });\n return this.transformer.transformSchema(newSchema);\n }\n transformRequest(originalRequest, delegationContext, transformationContext) {\n return this.transformer.transformRequest(originalRequest, delegationContext, transformationContext);\n }\n transformResult(originalResult, delegationContext, transformationContext) {\n return this.transformer.transformResult(originalResult, delegationContext, transformationContext);\n }\n}\nexport function wrapFieldNode(fieldNode, path, alias) {\n let newFieldNode = fieldNode;\n path.forEach(fieldName => {\n newFieldNode = {\n kind: Kind.FIELD,\n alias: {\n kind: Kind.NAME,\n value: alias,\n },\n name: {\n kind: Kind.NAME,\n value: fieldName,\n },\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [fieldNode],\n },\n };\n });\n return newFieldNode;\n}\nexport function unwrapValue(originalValue, alias) {\n let newValue = originalValue;\n let object = newValue[alias];\n while (object != null) {\n newValue = object;\n object = newValue[alias];\n }\n delete originalValue[alias];\n Object.assign(originalValue, newValue);\n return originalValue;\n}\nfunction unwrapErrors(errors, alias) {\n if (errors === undefined) {\n return undefined;\n }\n return errors.map(error => {\n const originalPath = error.path;\n if (originalPath == null) {\n return error;\n }\n const newPath = originalPath.filter(pathSegment => pathSegment !== alias);\n return relocatedError(error, newPath);\n });\n}\n//# sourceMappingURL=HoistField.js.map","import { visit, Kind } from 'graphql';\nexport default class WrapQuery {\n constructor(path, wrapper, extractor) {\n this.path = path;\n this.wrapper = wrapper;\n this.extractor = extractor;\n }\n transformRequest(originalRequest) {\n const fieldPath = [];\n const ourPath = JSON.stringify(this.path);\n const document = visit(originalRequest.document, {\n [Kind.FIELD]: {\n enter: (node) => {\n fieldPath.push(node.name.value);\n if (ourPath === JSON.stringify(fieldPath)) {\n const wrapResult = this.wrapper(node.selectionSet);\n // Selection can be either a single selection or a selection set. If it's just one selection,\n // let's wrap it in a selection set. Otherwise, keep it as is.\n const selectionSet = wrapResult != null && wrapResult.kind === Kind.SELECTION_SET\n ? wrapResult\n : {\n kind: Kind.SELECTION_SET,\n selections: [wrapResult],\n };\n return {\n ...node,\n selectionSet,\n };\n }\n },\n leave: () => {\n fieldPath.pop();\n },\n },\n });\n return {\n ...originalRequest,\n document,\n };\n }\n transformResult(originalResult) {\n const rootData = originalResult.data;\n if (rootData != null) {\n let data = rootData;\n const path = [...this.path];\n while (path.length > 1) {\n const next = path.shift();\n if (data[next]) {\n data = data[next];\n }\n }\n data[path[0]] = this.extractor(data[path[0]]);\n }\n return {\n data: rootData,\n errors: originalResult.errors,\n };\n }\n}\n//# sourceMappingURL=WrapQuery.js.map","import { visit, Kind, BREAK } from 'graphql';\nexport default class ExtractField {\n constructor({ from, to }) {\n this.from = from;\n this.to = to;\n }\n transformRequest(originalRequest) {\n let fromSelection;\n const ourPathFrom = JSON.stringify(this.from);\n const ourPathTo = JSON.stringify(this.to);\n let fieldPath = [];\n visit(originalRequest.document, {\n [Kind.FIELD]: {\n enter: (node) => {\n fieldPath.push(node.name.value);\n if (ourPathFrom === JSON.stringify(fieldPath)) {\n fromSelection = node.selectionSet;\n return BREAK;\n }\n },\n leave: () => {\n fieldPath.pop();\n },\n },\n });\n fieldPath = [];\n const document = visit(originalRequest.document, {\n [Kind.FIELD]: {\n enter: (node) => {\n fieldPath.push(node.name.value);\n if (ourPathTo === JSON.stringify(fieldPath) && fromSelection != null) {\n return {\n ...node,\n selectionSet: fromSelection,\n };\n }\n },\n leave: () => {\n fieldPath.pop();\n },\n },\n });\n return {\n ...originalRequest,\n document,\n };\n }\n}\n//# sourceMappingURL=ExtractField.js.map","import { buildSchema } from 'graphql';\nimport { delegateToSchema } from '@graphql-tools/delegate';\nimport { wrapSchema } from './wrapSchema';\nexport function makeRemoteExecutableSchema({ schema: schemaOrTypeDefs, executor, subscriber, createResolver = defaultCreateRemoteResolver, buildSchemaOptions, }) {\n const targetSchema = typeof schemaOrTypeDefs === 'string' ? buildSchema(schemaOrTypeDefs, buildSchemaOptions) : schemaOrTypeDefs;\n return wrapSchema({\n schema: targetSchema,\n createProxyingResolver: () => createResolver(executor, subscriber),\n });\n}\nexport function defaultCreateRemoteResolver(executor, subscriber) {\n return (_parent, _args, context, info) => delegateToSchema({\n schema: { schema: info.schema, executor, subscriber },\n context,\n info,\n });\n}\n//# sourceMappingURL=makeRemoteExecutableSchema.js.map","import { __extends } from 'tslib';\n\nvar cleanInternalStack = function (stack) { return stack.replace(/\\s+at .*aggregate-error\\/index.js:\\d+:\\d+\\)?/g, ''); };\n\n/**\r\nEscape RegExp special characters.\r\nYou can also use this to escape a string that is inserted into the middle of a regex, for example, into a character class.\r\n@example\r\n```\r\nimport escapeStringRegexp = require('escape-string-regexp');\r\nconst escapedString = escapeStringRegexp('How much $ for a 🦄?');\r\n//=> 'How much \\\\$ for a 🦄\\\\?'\r\nnew RegExp(escapedString);\r\n```\r\n*/\r\nvar escapeStringRegexp = function (string) {\r\n if (typeof string !== 'string') {\r\n throw new TypeError('Expected a string');\r\n }\r\n // Escape characters with special meaning either inside or outside character sets.\r\n // Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\r\n return string\r\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\r\n .replace(/-/g, '\\\\x2d');\r\n};\n\nvar extractPathRegex = /\\s+at.*[(\\s](.*)\\)?/;\r\nvar pathRegex = /^(?:(?:(?:node|(?:internal\\/[\\w/]*|.*node_modules\\/(?:babel-polyfill|pirates)\\/.*)?\\w+)\\.js:\\d+:\\d+)|native)/;\r\n/**\r\nClean up error stack traces. Removes the mostly unhelpful internal Node.js entries.\r\n@param stack - The `stack` property of an `Error`.\r\n@example\r\n```\r\nimport cleanStack = require('clean-stack');\r\nconst error = new Error('Missing unicorn');\r\nconsole.log(error.stack);\r\n// Error: Missing unicorn\r\n// at Object.<anonymous> (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)\r\n// at Module._compile (module.js:409:26)\r\n// at Object.Module._extensions..js (module.js:416:10)\r\n// at Module.load (module.js:343:32)\r\n// at Function.Module._load (module.js:300:12)\r\n// at Function.Module.runMain (module.js:441:10)\r\n// at startup (node.js:139:18)\r\nconsole.log(cleanStack(error.stack));\r\n// Error: Missing unicorn\r\n// at Object.<anonymous> (/Users/sindresorhus/dev/clean-stack/unicorn.js:2:15)\r\n```\r\n*/\r\nvar cleanStack = function (stack, basePath) {\r\n var basePathRegex = basePath && new RegExp(\"(at | \\\\()\" + escapeStringRegexp(basePath), 'g');\r\n return stack.replace(/\\\\/g, '/')\r\n .split('\\n')\r\n .filter(function (line) {\r\n var pathMatches = line.match(extractPathRegex);\r\n if (pathMatches === null || !pathMatches[1]) {\r\n return true;\r\n }\r\n var match = pathMatches[1];\r\n // Electron\r\n if (match.includes('.app/Contents/Resources/electron.asar') ||\r\n match.includes('.app/Contents/Resources/default_app.asar')) {\r\n return false;\r\n }\r\n return !pathRegex.test(match);\r\n })\r\n .filter(function (line) { return line.trim() !== ''; })\r\n .map(function (line) {\r\n if (basePathRegex) {\r\n line = line.replace(basePathRegex, '$1');\r\n }\r\n return line;\r\n })\r\n .join('\\n');\r\n};\n\n/**\r\nIndent each line in a string.\r\n@param string - The string to indent.\r\n@param count - How many times you want `options.indent` repeated. Default: `1`.\r\n@example\r\n```\r\nimport indentString = require('indent-string');\r\nindentString('Unicorns\\nRainbows', 4);\r\n//=> ' Unicorns\\n Rainbows'\r\nindentString('Unicorns\\nRainbows', 4, {indent: '♥'});\r\n//=> '♥♥♥♥Unicorns\\n♥♥♥♥Rainbows'\r\n```\r\n*/\r\nvar indentString = function (string, count, options) {\r\n if (count === void 0) { count = 1; }\r\n options = Object.assign({\r\n indent: ' ',\r\n includeEmptyLines: false,\r\n }, options);\r\n if (typeof string !== 'string') {\r\n throw new TypeError(\"Expected `input` to be a `string`, got `\" + typeof string + \"`\");\r\n }\r\n if (typeof count !== 'number') {\r\n throw new TypeError(\"Expected `count` to be a `number`, got `\" + typeof count + \"`\");\r\n }\r\n if (count < 0) {\r\n throw new RangeError(\"Expected `count` to be at least 0, got `\" + count + \"`\");\r\n }\r\n if (typeof options.indent !== 'string') {\r\n throw new TypeError(\"Expected `options.indent` to be a `string`, got `\" + typeof options.indent + \"`\");\r\n }\r\n if (count === 0) {\r\n return string;\r\n }\r\n var regex = options.includeEmptyLines ? /^/gm : /^(?!\\s*$)/gm;\r\n return string.replace(regex, options.indent.repeat(count));\r\n};\n\nvar AggregateError = /** @class */ (function (_super) {\r\n __extends(AggregateError, _super);\r\n function AggregateError(errors) {\r\n var _this = this;\r\n if (!Array.isArray(errors)) {\r\n throw new TypeError(\"Expected input to be an Array, got \" + typeof errors);\r\n }\r\n var normalizedErrors = errors.map(function (error) {\r\n if (error instanceof Error) {\r\n return error;\r\n }\r\n if (error !== null && typeof error === 'object') {\r\n // Handle plain error objects with message property and/or possibly other metadata\r\n return Object.assign(new Error(error.message), error);\r\n }\r\n return new Error(error);\r\n });\r\n var message = normalizedErrors\r\n .map(function (error) {\r\n // The `stack` property is not standardized, so we can't assume it exists\r\n return typeof error.stack === 'string' ? cleanInternalStack(cleanStack(error.stack)) : String(error);\r\n })\r\n .join('\\n');\r\n message = '\\n' + indentString(message, 4);\r\n _this = _super.call(this, message) || this;\r\n _this.name = 'AggregateError';\r\n Object.defineProperty(_this, Symbol.iterator, {\r\n get: function () { return function () { return normalizedErrors[Symbol.iterator](); }; },\r\n });\r\n return _this;\r\n }\r\n return AggregateError;\r\n}(Error));\n\nexport default AggregateError;\n//# sourceMappingURL=index.esm.js.map\n","import { getIntrospectionQuery, buildClientSchema, parse, } from 'graphql';\nimport AggregateError from '@ardatan/aggregate-error';\nfunction getSchemaFromIntrospection(introspectionResult) {\n var _a, _b;\n if ((_a = introspectionResult === null || introspectionResult === void 0 ? void 0 : introspectionResult.data) === null || _a === void 0 ? void 0 : _a.__schema) {\n return buildClientSchema(introspectionResult.data);\n }\n else if ((_b = introspectionResult === null || introspectionResult === void 0 ? void 0 : introspectionResult.errors) === null || _b === void 0 ? void 0 : _b.length) {\n if (introspectionResult.errors.length > 1) {\n const combinedError = new AggregateError(introspectionResult.errors);\n throw combinedError;\n }\n const error = introspectionResult.errors[0];\n throw error.originalError || error;\n }\n else {\n throw new Error('Could not obtain introspection result, received: ' + JSON.stringify(introspectionResult));\n }\n}\nexport async function introspectSchema(executor, context, options) {\n const parsedIntrospectionQuery = parse(getIntrospectionQuery(options));\n const introspectionResult = await executor({\n document: parsedIntrospectionQuery,\n context,\n });\n return getSchemaFromIntrospection(introspectionResult);\n}\nexport function introspectSchemaSync(executor, context, options) {\n const parsedIntrospectionQuery = parse(getIntrospectionQuery(options));\n const introspectionResult = executor({\n document: parsedIntrospectionQuery,\n context,\n });\n if ('then' in introspectionResult) {\n throw new Error(`Executor cannot return promise value in introspectSchemaSync!`);\n }\n return getSchemaFromIntrospection(introspectionResult);\n}\n//# sourceMappingURL=introspect.js.map"],"names":["isSubschemaConfig","applySchemaTransforms","getResponseKeyFromInfo","getErrors","getSubschema","handleResult","delegateToSchema","mapSchema","MapperKind","GraphQLObjectType","defaultMergedResolver","GraphQLInterfaceType","GraphQLUnionType","isSpecifiedScalarType","isScalarType","renameType","visit","Kind","visitData","TypeInfo","visitWithTypeInfo","isObjectType","isInterfaceType","isLeafType","visitResult","valueFromAST","updateArgument","transformInputValue","relocatedError","getArgumentValues","valueMatchesCriteria","getDirectives","schema","addResolversToSchema","extendSchema","parse","pruneSchema","selectObjectFields","appendObjectFields","modifyObjectFields","renameFieldNode","getNullableType","removeObjectFields","BREAK","buildSchema","__extends","buildClientSchema","getIntrospectionQuery"],"mappings":"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"}
\No newline at end of file