UNPKG

306 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.esm.js","sources":["../../../dist/utils/src/helpers.js","../../../dist/utils/src/debug-log.js","../../../dist/utils/src/fix-windows-path.js","../../../dist/utils/src/flatten-array.js","../../../dist/utils/src/inspect.js","../../../dist/utils/src/getArgumentValues.js","../../../dist/utils/src/get-directives.js","../../../dist/utils/src/get-fields-with-directives.js","../../../dist/utils/src/get-implementing-types.js","../../../dist/utils/src/create-schema-definition.js","../../../dist/utils/src/print-schema-with-directives.js","../../../dist/utils/src/validate-documents.js","../../../dist/utils/src/fix-schema-ast.js","../../../dist/utils/src/parse-graphql-json.js","../../../dist/utils/src/parse-graphql-sdl.js","../../../dist/utils/src/get-user-types-from-schema.js","../../../dist/utils/src/build-operation-for-field.js","../../../dist/utils/src/Interfaces.js","../../../dist/utils/src/stub.js","../../../dist/utils/src/rewire.js","../../../dist/utils/src/transformInputValue.js","../../../dist/utils/src/mapSchema.js","../../../dist/utils/src/filterSchema.js","../../../dist/utils/src/clone.js","../../../dist/utils/src/heal.js","../../../dist/utils/src/SchemaVisitor.js","../../../dist/utils/src/visitSchema.js","../../../dist/utils/src/SchemaDirectiveVisitor.js","../../../dist/utils/src/getResolversFromSchema.js","../../../dist/utils/src/forEachField.js","../../../dist/utils/src/forEachDefaultValue.js","../../../dist/utils/src/addTypes.js","../../../dist/utils/src/prune.js","../../../dist/utils/src/mergeDeep.js","../../../dist/utils/src/fieldNodes.js","../../../dist/utils/src/fragments.js","../../../dist/utils/src/selectionSets.js","../../../dist/utils/src/getResponseKeyFromInfo.js","../../../dist/utils/src/transforms.js","../../../dist/utils/src/fields.js","../../../dist/utils/src/renameType.js","../../../dist/utils/src/collectFields.js","../../../dist/utils/src/mapAsyncIterator.js","../../../dist/utils/src/astFromType.js","../../../dist/utils/src/updateArgument.js","../../../dist/utils/src/implementsAbstractType.js","../../../dist/utils/src/errors.js","../../../dist/utils/src/toConfig.js","../../../dist/utils/src/observableToAsyncIterable.js","../../../dist/utils/src/visitResult.js"],"sourcesContent":["import { parse } from 'graphql';\nexport const asArray = (fns) => (Array.isArray(fns) ? fns : fns ? [fns] : []);\nexport function isEqual(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let index = 0; index < a.length; index++) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n return true;\n }\n return a === b || (!a && !b);\n}\nexport function isNotEqual(a, b) {\n return !isEqual(a, b);\n}\nexport function isDocumentString(str) {\n // XXX: is-valid-path or is-glob treat SDL as a valid path\n // (`scalar Date` for example)\n // this why checking the extension is fast enough\n // and prevent from parsing the string in order to find out\n // if the string is a SDL\n if (/\\.[a-z0-9]+$/i.test(str)) {\n return false;\n }\n try {\n parse(str);\n return true;\n }\n catch (e) { }\n return false;\n}\nconst invalidPathRegex = /[‘“!$%&^<=>`]/;\nexport function isValidPath(str) {\n return typeof str === 'string' && !invalidPathRegex.test(str);\n}\nexport function compareStrings(a, b) {\n if (a.toString() < b.toString()) {\n return -1;\n }\n if (a.toString() > b.toString()) {\n return 1;\n }\n return 0;\n}\nexport function nodeToString(a) {\n if ('alias' in a) {\n return a.alias.value;\n }\n if ('name' in a) {\n return a.name.value;\n }\n return a.kind;\n}\nexport function compareNodes(a, b, customFn) {\n const aStr = nodeToString(a);\n const bStr = nodeToString(b);\n if (typeof customFn === 'function') {\n return customFn(aStr, bStr);\n }\n return compareStrings(aStr, bStr);\n}\n//# sourceMappingURL=helpers.js.map","export function debugLog(...args) {\n if (process && process.env && process.env.DEBUG && !process.env.GQL_tools_NODEBUG) {\n // tslint:disable-next-line: no-console\n console.log(...args);\n }\n}\n//# sourceMappingURL=debug-log.js.map","export const fixWindowsPath = (path) => path.replace(/\\\\/g, '/');\n//# sourceMappingURL=fix-windows-path.js.map","export const flattenArray = (arr) => arr.reduce((acc, next) => acc.concat(Array.isArray(next) ? flattenArray(next) : next), []);\n//# sourceMappingURL=flatten-array.js.map","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\nexport function inspect(value) {\n return formatValue(value, []);\n}\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n case 'object':\n if (value === null) {\n return 'null';\n }\n return formatObjectValue(value, seenValues);\n default:\n return String(value);\n }\n}\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n const seenValues = [...previouslySeenValues, value];\n const customInspectFn = getCustomFn(value);\n if (customInspectFn !== undefined) {\n const customValue = customInspectFn.call(value);\n // check for infinite recursion\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n }\n else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n return formatObject(value, seenValues);\n}\nfunction formatObject(object, seenValues) {\n const keys = Object.keys(object);\n if (keys.length === 0) {\n return '{}';\n }\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n const properties = keys.map(key => {\n const value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n if (remaining === 1) {\n items.push('... 1 more item');\n }\n else if (remaining > 1) {\n items.push(`... ${remaining.toString(10)} more items`);\n }\n return '[' + items.join(', ') + ']';\n}\nfunction getCustomFn(obj) {\n if (typeof obj.inspect === 'function') {\n return obj.inspect;\n }\n}\nfunction getObjectTag(obj) {\n const tag = Object.prototype.toString\n .call(obj)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n if (tag === 'Object' && typeof obj.constructor === 'function') {\n const name = obj.constructor.name;\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n return tag;\n}\n//# sourceMappingURL=inspect.js.map","import { valueFromAST, isNonNullType, GraphQLError, Kind, print, } from 'graphql';\nimport { inspect } from './inspect';\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\nexport function getArgumentValues(def, node, variableValues = {}) {\n var _a;\n const variableMap = Object.entries(variableValues).reduce((prev, [key, value]) => ({\n ...prev,\n [key]: value,\n }), {});\n const coercedValues = {};\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const argumentNodes = (_a = node.arguments) !== null && _a !== void 0 ? _a : [];\n const argNodeMap = argumentNodes.reduce((prev, arg) => ({\n ...prev,\n [arg.name.value]: arg,\n }), {});\n for (const argDef of def.args) {\n const name = argDef.name;\n const argType = argDef.type;\n const argumentNode = argNodeMap[name];\n if (!argumentNode) {\n if (argDef.defaultValue !== undefined) {\n coercedValues[name] = argDef.defaultValue;\n }\n else if (isNonNullType(argType)) {\n throw new GraphQLError(`Argument \"${name}\" of required type \"${inspect(argType)}\" ` + 'was not provided.', node);\n }\n continue;\n }\n const valueNode = argumentNode.value;\n let isNull = valueNode.kind === Kind.NULL;\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (variableValues == null || !(variableName in variableMap)) {\n if (argDef.defaultValue !== undefined) {\n coercedValues[name] = argDef.defaultValue;\n }\n else if (isNonNullType(argType)) {\n throw new GraphQLError(`Argument \"${name}\" of required type \"${inspect(argType)}\" ` +\n `was provided the variable \"$${variableName}\" which was not provided a runtime value.`, valueNode);\n }\n continue;\n }\n isNull = variableValues[variableName] == null;\n }\n if (isNull && isNonNullType(argType)) {\n throw new GraphQLError(`Argument \"${name}\" of non-null type \"${inspect(argType)}\" ` + 'must not be null.', valueNode);\n }\n const coercedValue = valueFromAST(valueNode, argType, variableValues);\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(`Argument \"${name}\" has invalid value ${print(valueNode)}.`, valueNode);\n }\n coercedValues[name] = coercedValue;\n }\n return coercedValues;\n}\n//# sourceMappingURL=getArgumentValues.js.map","import { getArgumentValues } from './getArgumentValues';\nexport function getDirectives(schema, node) {\n const schemaDirectives = schema && schema.getDirectives ? schema.getDirectives() : [];\n const schemaDirectiveMap = schemaDirectives.reduce((schemaDirectiveMap, schemaDirective) => {\n schemaDirectiveMap[schemaDirective.name] = schemaDirective;\n return schemaDirectiveMap;\n }, {});\n let astNodes = [];\n if (node.astNode) {\n astNodes.push(node.astNode);\n }\n if ('extensionASTNodes' in node && node.extensionASTNodes) {\n astNodes = [...astNodes, ...node.extensionASTNodes];\n }\n const result = {};\n astNodes.forEach(astNode => {\n if (astNode.directives) {\n astNode.directives.forEach(directive => {\n const schemaDirective = schemaDirectiveMap[directive.name.value];\n if (schemaDirective) {\n const directiveValue = getDirectiveValues(schemaDirective, astNode);\n if (schemaDirective.isRepeatable) {\n if (result[schemaDirective.name]) {\n result[schemaDirective.name] = result[schemaDirective.name].concat([directiveValue]);\n }\n else {\n result[schemaDirective.name] = [directiveValue];\n }\n }\n else {\n result[schemaDirective.name] = directiveValue;\n }\n }\n });\n }\n });\n return result;\n}\n// graphql-js getDirectiveValues does not handle repeatable directives\nfunction getDirectiveValues(directiveDef, node) {\n if (node.directives) {\n if (directiveDef.isRepeatable) {\n const directiveNodes = node.directives.filter(directive => directive.name.value === directiveDef.name);\n return directiveNodes.map(directiveNode => getArgumentValues(directiveDef, directiveNode));\n }\n const directiveNode = node.directives.find(directive => directive.name.value === directiveDef.name);\n return getArgumentValues(directiveDef, directiveNode);\n }\n}\n//# sourceMappingURL=get-directives.js.map","import { Kind } from 'graphql';\nfunction isObjectTypeDefinitionOrExtension(obj) {\n return obj && (obj.kind === 'ObjectTypeDefinition' || obj.kind === 'ObjectTypeExtension');\n}\nfunction parseDirectiveValue(value) {\n switch (value.kind) {\n case Kind.INT:\n return parseInt(value.value);\n case Kind.FLOAT:\n return parseFloat(value.value);\n case Kind.BOOLEAN:\n return Boolean(value.value);\n case Kind.STRING:\n case Kind.ENUM:\n return value.value;\n case Kind.LIST:\n return value.values.map(v => parseDirectiveValue(v));\n case Kind.OBJECT:\n return value.fields.reduce((prev, v) => ({ ...prev, [v.name.value]: parseDirectiveValue(v.value) }), {});\n case Kind.NULL:\n return null;\n default:\n return null;\n }\n}\nexport function getFieldsWithDirectives(documentNode) {\n const result = {};\n const allTypes = documentNode.definitions.filter(isObjectTypeDefinitionOrExtension);\n for (const type of allTypes) {\n const typeName = type.name.value;\n for (const field of type.fields) {\n if (field.directives && field.directives.length > 0) {\n const fieldName = field.name.value;\n const key = `${typeName}.${fieldName}`;\n const directives = field.directives.map(d => ({\n name: d.name.value,\n args: (d.arguments || []).reduce((prev, arg) => ({ ...prev, [arg.name.value]: parseDirectiveValue(arg.value) }), {}),\n }));\n result[key] = directives;\n }\n }\n }\n return result;\n}\n//# sourceMappingURL=get-fields-with-directives.js.map","import { isObjectType } from 'graphql';\nexport function getImplementingTypes(interfaceName, schema) {\n const allTypesMap = schema.getTypeMap();\n const result = [];\n for (const graphqlTypeName in allTypesMap) {\n const graphqlType = allTypesMap[graphqlTypeName];\n if (isObjectType(graphqlType)) {\n const allInterfaces = graphqlType.getInterfaces();\n if (allInterfaces.find(int => int.name === interfaceName)) {\n result.push(graphqlType.name);\n }\n }\n }\n return result;\n}\n//# sourceMappingURL=get-implementing-types.js.map","export function createSchemaDefinition(def, config) {\n const schemaRoot = {};\n if (def.query) {\n schemaRoot.query = def.query.toString();\n }\n if (def.mutation) {\n schemaRoot.mutation = def.mutation.toString();\n }\n if (def.subscription) {\n schemaRoot.subscription = def.subscription.toString();\n }\n const fields = Object.keys(schemaRoot)\n .map(rootType => (schemaRoot[rootType] ? `${rootType}: ${schemaRoot[rootType]}` : null))\n .filter(a => a);\n if (fields.length) {\n return `schema { ${fields.join('\\n')} }`;\n }\n if (config && config.force) {\n return ` schema { query: Query } `;\n }\n return undefined;\n}\n//# sourceMappingURL=create-schema-definition.js.map","import { print, printType, Kind, isSpecifiedScalarType, isIntrospectionType, isScalarType, parse, } from 'graphql';\nimport { createSchemaDefinition } from './create-schema-definition';\nexport function printSchemaWithDirectives(schema, _options = {}) {\n var _a;\n const typesMap = schema.getTypeMap();\n const result = [getSchemaDefinition(schema)];\n for (const typeName in typesMap) {\n const type = typesMap[typeName];\n const isPredefinedScalar = isScalarType(type) && isSpecifiedScalarType(type);\n const isIntrospection = isIntrospectionType(type);\n if (isPredefinedScalar || isIntrospection) {\n continue;\n }\n // KAMIL: we might want to turn on descriptions in future\n result.push(print((_a = correctType(typeName, typesMap)) === null || _a === void 0 ? void 0 : _a.astNode));\n }\n const directives = schema.getDirectives();\n for (const directive of directives) {\n if (directive.astNode) {\n result.push(print(directive.astNode));\n }\n }\n return result.join('\\n');\n}\nfunction extendDefinition(type) {\n switch (type.astNode.kind) {\n case Kind.OBJECT_TYPE_DEFINITION:\n return {\n ...type.astNode,\n fields: type.astNode.fields.concat(type.extensionASTNodes.reduce((fields, node) => fields.concat(node.fields), [])),\n };\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n return {\n ...type.astNode,\n fields: type.astNode.fields.concat(type.extensionASTNodes.reduce((fields, node) => fields.concat(node.fields), [])),\n };\n default:\n return type.astNode;\n }\n}\nfunction correctType(typeName, typesMap) {\n var _a;\n const type = typesMap[typeName];\n type.name = typeName.toString();\n if (type.astNode && type.extensionASTNodes) {\n type.astNode = type.extensionASTNodes ? extendDefinition(type) : type.astNode;\n }\n const doc = parse(printType(type));\n const fixedAstNode = doc.definitions[0];\n const originalAstNode = type === null || type === void 0 ? void 0 : type.astNode;\n if (originalAstNode) {\n fixedAstNode.directives = originalAstNode === null || originalAstNode === void 0 ? void 0 : originalAstNode.directives;\n if (fixedAstNode && 'fields' in fixedAstNode && originalAstNode && 'fields' in originalAstNode) {\n for (const fieldDefinitionNode of fixedAstNode.fields) {\n const originalFieldDefinitionNode = originalAstNode.fields.find(field => field.name.value === fieldDefinitionNode.name.value);\n fieldDefinitionNode.directives = originalFieldDefinitionNode === null || originalFieldDefinitionNode === void 0 ? void 0 : originalFieldDefinitionNode.directives;\n if (fieldDefinitionNode &&\n 'arguments' in fieldDefinitionNode &&\n originalFieldDefinitionNode &&\n 'arguments' in originalFieldDefinitionNode) {\n for (const argument of fieldDefinitionNode.arguments) {\n const originalArgumentNode = (_a = originalFieldDefinitionNode.arguments) === null || _a === void 0 ? void 0 : _a.find(arg => arg.name.value === argument.name.value);\n argument.directives = originalArgumentNode.directives;\n }\n }\n }\n }\n else if (fixedAstNode && 'values' in fixedAstNode && originalAstNode && 'values' in originalAstNode) {\n for (const valueDefinitionNode of fixedAstNode.values) {\n const originalValueDefinitionNode = originalAstNode.values.find(valueNode => valueNode.name.value === valueDefinitionNode.name.value);\n valueDefinitionNode.directives = originalValueDefinitionNode === null || originalValueDefinitionNode === void 0 ? void 0 : originalValueDefinitionNode.directives;\n }\n }\n }\n type.astNode = fixedAstNode;\n return type;\n}\nfunction getSchemaDefinition(schema) {\n if (!Object.getOwnPropertyDescriptor(schema, 'astNode').get && schema.astNode) {\n return print(schema.astNode);\n }\n else {\n return createSchemaDefinition({\n query: schema.getQueryType(),\n mutation: schema.getMutationType(),\n subscription: schema.getSubscriptionType(),\n });\n }\n}\n//# sourceMappingURL=print-schema-with-directives.js.map","import { Kind, validate, specifiedRules, } from 'graphql';\nimport AggregateError from '@ardatan/aggregate-error';\nexport async function validateGraphQlDocuments(schema, documentFiles, effectiveRules) {\n effectiveRules = effectiveRules || createDefaultRules();\n const allFragments = [];\n documentFiles.forEach(documentFile => {\n if (documentFile.document) {\n for (const definitionNode of documentFile.document.definitions) {\n if (definitionNode.kind === Kind.FRAGMENT_DEFINITION) {\n allFragments.push(definitionNode);\n }\n }\n }\n });\n const allErrors = [];\n await Promise.all(documentFiles.map(async (documentFile) => {\n const documentToValidate = {\n kind: Kind.DOCUMENT,\n definitions: [...allFragments, ...documentFile.document.definitions].filter((definition, index, list) => {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n const firstIndex = list.findIndex(def => def.kind === Kind.FRAGMENT_DEFINITION && def.name.value === definition.name.value);\n const isDuplicated = firstIndex !== index;\n if (isDuplicated) {\n return false;\n }\n }\n return true;\n }),\n };\n const errors = validate(schema, documentToValidate, effectiveRules);\n if (errors.length > 0) {\n allErrors.push({\n filePath: documentFile.location,\n errors,\n });\n }\n }));\n return allErrors;\n}\nexport function checkValidationErrors(loadDocumentErrors) {\n if (loadDocumentErrors.length > 0) {\n const errors = [];\n for (const loadDocumentError of loadDocumentErrors) {\n for (const graphQLError of loadDocumentError.errors) {\n const error = new Error();\n error.name = 'GraphQLDocumentError';\n error.message = `${error.name}: ${graphQLError.message}`;\n error.stack = error.message;\n graphQLError.locations.forEach(location => (error.stack += `\\n at ${loadDocumentError.filePath}:${location.line}:${location.column}`));\n errors.push(error);\n }\n }\n throw new AggregateError(errors);\n }\n}\nfunction createDefaultRules() {\n const ignored = ['NoUnusedFragmentsRule', 'NoUnusedVariablesRule', 'KnownDirectivesRule'];\n // GraphQL v14 has no Rule suffix in function names\n // Adding `*Rule` makes validation backwards compatible\n ignored.forEach(rule => {\n ignored.push(rule.replace(/Rule$/, ''));\n });\n return specifiedRules.filter((f) => !ignored.includes(f.name));\n}\n//# sourceMappingURL=validate-documents.js.map","import { buildSchema } from 'graphql';\nimport { printSchemaWithDirectives } from './print-schema-with-directives';\nfunction buildFixedSchema(schema, options) {\n return buildSchema(printSchemaWithDirectives(schema, options), {\n noLocation: true,\n ...(options || {}),\n });\n}\nexport function fixSchemaAst(schema, options) {\n let schemaWithValidAst;\n if (!schema.astNode) {\n Object.defineProperty(schema, 'astNode', {\n get() {\n if (!schemaWithValidAst) {\n schemaWithValidAst = buildFixedSchema(schema, options);\n }\n return schemaWithValidAst.astNode;\n },\n });\n }\n if (!schema.extensionASTNodes) {\n Object.defineProperty(schema, 'extensionASTNodes', {\n get() {\n if (!schemaWithValidAst) {\n schemaWithValidAst = buildFixedSchema(schema, options);\n }\n return schemaWithValidAst.extensionASTNodes;\n },\n });\n }\n return schema;\n}\n//# sourceMappingURL=fix-schema-ast.js.map","import { buildClientSchema, parse } from 'graphql';\nimport { printSchemaWithDirectives } from './print-schema-with-directives';\nfunction stripBOM(content) {\n content = content.toString();\n // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n // because the buffer-to-string conversion in `fs.readFileSync()`\n // translates it to FEFF, the UTF-16 BOM.\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n}\nfunction parseBOM(content) {\n return JSON.parse(stripBOM(content));\n}\nexport function parseGraphQLJSON(location, jsonContent, options) {\n let parsedJson = parseBOM(jsonContent);\n if (parsedJson.data) {\n parsedJson = parsedJson.data;\n }\n if (parsedJson.kind === 'Document') {\n const document = parsedJson;\n return {\n location,\n document,\n };\n }\n else if (parsedJson.__schema) {\n const schema = buildClientSchema(parsedJson, options);\n const rawSDL = printSchemaWithDirectives(schema, options);\n return {\n location,\n document: parse(rawSDL, options),\n rawSDL,\n schema,\n };\n }\n throw new Error(`Not valid JSON content`);\n}\n//# sourceMappingURL=parse-graphql-json.js.map","import { parse, Kind, Source as GraphQLSource } from 'graphql';\nexport function parseGraphQLSDL(location, rawSDL, options) {\n let document;\n try {\n document = parse(new GraphQLSource(rawSDL, location), options);\n }\n catch (e) {\n if (e.message.includes('EOF')) {\n document = {\n kind: Kind.DOCUMENT,\n definitions: [],\n };\n }\n else {\n throw e;\n }\n }\n return {\n location,\n document,\n rawSDL,\n };\n}\n//# sourceMappingURL=parse-graphql-sdl.js.map","import { isObjectType } from 'graphql';\n/**\n * Get all GraphQL types from schema without:\n *\n * - Query, Mutation, Subscription objects\n * - Internal scalars added by parser\n *\n * @param schema\n */\nexport function getUserTypesFromSchema(schema) {\n const allTypesMap = schema.getTypeMap();\n // tslint:disable-next-line: no-unnecessary-local-variable\n const modelTypes = Object.values(allTypesMap).filter((graphqlType) => {\n if (isObjectType(graphqlType)) {\n // Filter out private types\n if (graphqlType.name.startsWith('__')) {\n return false;\n }\n if (schema.getMutationType() && graphqlType.name === schema.getMutationType().name) {\n return false;\n }\n if (schema.getQueryType() && graphqlType.name === schema.getQueryType().name) {\n return false;\n }\n if (schema.getSubscriptionType() && graphqlType.name === schema.getSubscriptionType().name) {\n return false;\n }\n return true;\n }\n return false;\n });\n return modelTypes;\n}\n//# sourceMappingURL=get-user-types-from-schema.js.map","import { isObjectType, getNamedType, isUnionType, isNonNullType, isScalarType, isListType, isInterfaceType, isEnumType, Kind, } from 'graphql';\nimport { camelCase } from 'camel-case';\nlet operationVariables = [];\nlet fieldTypeMap = new Map();\nfunction addOperationVariable(variable) {\n operationVariables.push(variable);\n}\nfunction resetOperationVariables() {\n operationVariables = [];\n}\nfunction resetFieldMap() {\n fieldTypeMap = new Map();\n}\nfunction buildOperationName(name) {\n return camelCase(name);\n}\nexport function buildOperationNodeForField({ schema, kind, field, models, ignore, depthLimit, circularReferenceDepth, argNames, selectedFields = true, }) {\n resetOperationVariables();\n resetFieldMap();\n const operationNode = buildOperationAndCollectVariables({\n schema,\n fieldName: field,\n kind,\n models: models || [],\n ignore: ignore || [],\n depthLimit: depthLimit || Infinity,\n circularReferenceDepth: circularReferenceDepth || 1,\n argNames,\n selectedFields,\n });\n // attach variables\n operationNode.variableDefinitions = [...operationVariables];\n resetOperationVariables();\n resetFieldMap();\n return operationNode;\n}\nfunction buildOperationAndCollectVariables({ schema, fieldName, kind, models, ignore, depthLimit, circularReferenceDepth, argNames, selectedFields, }) {\n const typeMap = {\n query: schema.getQueryType(),\n mutation: schema.getMutationType(),\n subscription: schema.getSubscriptionType(),\n };\n const type = typeMap[kind];\n const field = type.getFields()[fieldName];\n const operationName = buildOperationName(`${fieldName}_${kind}`);\n if (field.args) {\n field.args.forEach(arg => {\n const argName = arg.name;\n if (!argNames || argNames.includes(argName)) {\n addOperationVariable(resolveVariable(arg, argName));\n }\n });\n }\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: kind,\n name: {\n kind: 'Name',\n value: operationName,\n },\n variableDefinitions: [],\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [\n resolveField({\n type,\n field,\n models,\n firstCall: true,\n path: [],\n ancestors: [],\n ignore,\n depthLimit,\n circularReferenceDepth,\n schema,\n depth: 0,\n argNames,\n selectedFields,\n }),\n ],\n },\n };\n}\nfunction resolveSelectionSet({ parent, type, models, firstCall, path, ancestors, ignore, depthLimit, circularReferenceDepth, schema, depth, argNames, selectedFields, }) {\n if (typeof selectedFields === 'boolean' && depth > depthLimit) {\n return;\n }\n if (isUnionType(type)) {\n const types = type.getTypes();\n return {\n kind: Kind.SELECTION_SET,\n selections: types\n .filter(t => !hasCircularRef([...ancestors, t], {\n depth: circularReferenceDepth,\n }))\n .map(t => {\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: t.name,\n },\n },\n selectionSet: resolveSelectionSet({\n parent: type,\n type: t,\n models,\n path,\n ancestors,\n ignore,\n depthLimit,\n circularReferenceDepth,\n schema,\n depth,\n argNames,\n selectedFields,\n }),\n };\n })\n .filter(fragmentNode => { var _a, _b; return ((_b = (_a = fragmentNode === null || fragmentNode === void 0 ? void 0 : fragmentNode.selectionSet) === null || _a === void 0 ? void 0 : _a.selections) === null || _b === void 0 ? void 0 : _b.length) > 0; }),\n };\n }\n if (isInterfaceType(type)) {\n const types = Object.values(schema.getTypeMap()).filter((t) => isObjectType(t) && t.getInterfaces().includes(type));\n return {\n kind: Kind.SELECTION_SET,\n selections: types\n .filter(t => !hasCircularRef([...ancestors, t], {\n depth: circularReferenceDepth,\n }))\n .map(t => {\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: t.name,\n },\n },\n selectionSet: resolveSelectionSet({\n parent: type,\n type: t,\n models,\n path,\n ancestors,\n ignore,\n depthLimit,\n circularReferenceDepth,\n schema,\n depth,\n argNames,\n selectedFields,\n }),\n };\n })\n .filter(fragmentNode => { var _a, _b; return ((_b = (_a = fragmentNode === null || fragmentNode === void 0 ? void 0 : fragmentNode.selectionSet) === null || _a === void 0 ? void 0 : _a.selections) === null || _b === void 0 ? void 0 : _b.length) > 0; }),\n };\n }\n if (isObjectType(type)) {\n const isIgnored = ignore.includes(type.name) || ignore.includes(`${parent.name}.${path[path.length - 1]}`);\n const isModel = models.includes(type.name);\n if (!firstCall && isModel && !isIgnored) {\n return {\n kind: Kind.SELECTION_SET,\n selections: [\n {\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: 'id',\n },\n },\n ],\n };\n }\n const fields = type.getFields();\n return {\n kind: Kind.SELECTION_SET,\n selections: Object.keys(fields)\n .filter(fieldName => {\n return !hasCircularRef([...ancestors, getNamedType(fields[fieldName].type)], {\n depth: circularReferenceDepth,\n });\n })\n .map(fieldName => {\n const selectedSubFields = typeof selectedFields === 'object' ? selectedFields[fieldName] : true;\n if (selectedSubFields) {\n return resolveField({\n type: type,\n field: fields[fieldName],\n models,\n path: [...path, fieldName],\n ancestors,\n ignore,\n depthLimit,\n circularReferenceDepth,\n schema,\n depth,\n argNames,\n selectedFields: selectedSubFields,\n });\n }\n })\n .filter(f => {\n var _a, _b;\n if (f) {\n if ('selectionSet' in f) {\n return (_b = (_a = f.selectionSet) === null || _a === void 0 ? void 0 : _a.selections) === null || _b === void 0 ? void 0 : _b.length;\n }\n else {\n return true;\n }\n }\n return false;\n }),\n };\n }\n}\nfunction resolveVariable(arg, name) {\n function resolveVariableType(type) {\n if (isListType(type)) {\n return {\n kind: Kind.LIST_TYPE,\n type: resolveVariableType(type.ofType),\n };\n }\n if (isNonNullType(type)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: resolveVariableType(type.ofType),\n };\n }\n return {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n };\n }\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: {\n kind: Kind.VARIABLE,\n name: {\n kind: Kind.NAME,\n value: name || arg.name,\n },\n },\n type: resolveVariableType(arg.type),\n };\n}\nfunction getArgumentName(name, path) {\n return camelCase([...path, name].join('_'));\n}\nfunction resolveField({ type, field, models, firstCall, path, ancestors, ignore, depthLimit, circularReferenceDepth, schema, depth, argNames, selectedFields, }) {\n const namedType = getNamedType(field.type);\n let args = [];\n let removeField = false;\n if (field.args && field.args.length) {\n args = field.args\n .map(arg => {\n const argumentName = getArgumentName(arg.name, path);\n if (argNames && !argNames.includes(argumentName)) {\n if (isNonNullType(arg.type)) {\n removeField = true;\n }\n return null;\n }\n if (!firstCall) {\n addOperationVariable(resolveVariable(arg, argumentName));\n }\n return {\n kind: Kind.ARGUMENT,\n name: {\n kind: Kind.NAME,\n value: arg.name,\n },\n value: {\n kind: Kind.VARIABLE,\n name: {\n kind: Kind.NAME,\n value: getArgumentName(arg.name, path),\n },\n },\n };\n })\n .filter(Boolean);\n }\n if (removeField) {\n return null;\n }\n let fieldName = field.name;\n if (fieldTypeMap.has(fieldName) && fieldTypeMap.get(fieldName) !== field.type.toString()) {\n fieldName += field.type.toString().replace('!', 'NonNull');\n }\n fieldTypeMap.set(fieldName, field.type.toString());\n if (!isScalarType(namedType) && !isEnumType(namedType)) {\n return {\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: field.name,\n },\n ...(fieldName !== field.name && { alias: { kind: Kind.NAME, value: fieldName } }),\n selectionSet: resolveSelectionSet({\n parent: type,\n type: namedType,\n models,\n firstCall,\n path: [...path, field.name],\n ancestors: [...ancestors, type],\n ignore,\n depthLimit,\n circularReferenceDepth,\n schema,\n depth: depth + 1,\n argNames,\n selectedFields,\n }) || undefined,\n arguments: args,\n };\n }\n return {\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: field.name,\n },\n ...(fieldName !== field.name && { alias: { kind: Kind.NAME, value: fieldName } }),\n arguments: args,\n };\n}\nfunction hasCircularRef(types, config = {\n depth: 1,\n}) {\n const type = types[types.length - 1];\n if (isScalarType(type)) {\n return false;\n }\n const size = types.filter(t => t.name === type.name).length;\n return size > config.depth;\n}\n//# sourceMappingURL=build-operation-for-field.js.map","export var VisitSchemaKind;\n(function (VisitSchemaKind) {\n VisitSchemaKind[\"TYPE\"] = \"VisitSchemaKind.TYPE\";\n VisitSchemaKind[\"SCALAR_TYPE\"] = \"VisitSchemaKind.SCALAR_TYPE\";\n VisitSchemaKind[\"ENUM_TYPE\"] = \"VisitSchemaKind.ENUM_TYPE\";\n VisitSchemaKind[\"COMPOSITE_TYPE\"] = \"VisitSchemaKind.COMPOSITE_TYPE\";\n VisitSchemaKind[\"OBJECT_TYPE\"] = \"VisitSchemaKind.OBJECT_TYPE\";\n VisitSchemaKind[\"INPUT_OBJECT_TYPE\"] = \"VisitSchemaKind.INPUT_OBJECT_TYPE\";\n VisitSchemaKind[\"ABSTRACT_TYPE\"] = \"VisitSchemaKind.ABSTRACT_TYPE\";\n VisitSchemaKind[\"UNION_TYPE\"] = \"VisitSchemaKind.UNION_TYPE\";\n VisitSchemaKind[\"INTERFACE_TYPE\"] = \"VisitSchemaKind.INTERFACE_TYPE\";\n VisitSchemaKind[\"ROOT_OBJECT\"] = \"VisitSchemaKind.ROOT_OBJECT\";\n VisitSchemaKind[\"QUERY\"] = \"VisitSchemaKind.QUERY\";\n VisitSchemaKind[\"MUTATION\"] = \"VisitSchemaKind.MUTATION\";\n VisitSchemaKind[\"SUBSCRIPTION\"] = \"VisitSchemaKind.SUBSCRIPTION\";\n})(VisitSchemaKind || (VisitSchemaKind = {}));\nexport var MapperKind;\n(function (MapperKind) {\n MapperKind[\"TYPE\"] = \"MapperKind.TYPE\";\n MapperKind[\"SCALAR_TYPE\"] = \"MapperKind.SCALAR_TYPE\";\n MapperKind[\"ENUM_TYPE\"] = \"MapperKind.ENUM_TYPE\";\n MapperKind[\"COMPOSITE_TYPE\"] = \"MapperKind.COMPOSITE_TYPE\";\n MapperKind[\"OBJECT_TYPE\"] = \"MapperKind.OBJECT_TYPE\";\n MapperKind[\"INPUT_OBJECT_TYPE\"] = \"MapperKind.INPUT_OBJECT_TYPE\";\n MapperKind[\"ABSTRACT_TYPE\"] = \"MapperKind.ABSTRACT_TYPE\";\n MapperKind[\"UNION_TYPE\"] = \"MapperKind.UNION_TYPE\";\n MapperKind[\"INTERFACE_TYPE\"] = \"MapperKind.INTERFACE_TYPE\";\n MapperKind[\"ROOT_OBJECT\"] = \"MapperKind.ROOT_OBJECT\";\n MapperKind[\"QUERY\"] = \"MapperKind.QUERY\";\n MapperKind[\"MUTATION\"] = \"MapperKind.MUTATION\";\n MapperKind[\"SUBSCRIPTION\"] = \"MapperKind.SUBSCRIPTION\";\n MapperKind[\"DIRECTIVE\"] = \"MapperKind.DIRECTIVE\";\n MapperKind[\"FIELD\"] = \"MapperKind.FIELD\";\n MapperKind[\"COMPOSITE_FIELD\"] = \"MapperKind.COMPOSITE_FIELD\";\n MapperKind[\"OBJECT_FIELD\"] = \"MapperKind.OBJECT_FIELD\";\n MapperKind[\"ROOT_FIELD\"] = \"MapperKind.ROOT_FIELD\";\n MapperKind[\"QUERY_ROOT_FIELD\"] = \"MapperKind.QUERY_ROOT_FIELD\";\n MapperKind[\"MUTATION_ROOT_FIELD\"] = \"MapperKind.MUTATION_ROOT_FIELD\";\n MapperKind[\"SUBSCRIPTION_ROOT_FIELD\"] = \"MapperKind.SUBSCRIPTION_ROOT_FIELD\";\n MapperKind[\"INTERFACE_FIELD\"] = \"MapperKind.INTERFACE_FIELD\";\n MapperKind[\"INPUT_OBJECT_FIELD\"] = \"MapperKind.INPUT_OBJECT_FIELD\";\n MapperKind[\"ARGUMENT\"] = \"MapperKind.ARGUMENT\";\n MapperKind[\"ENUM_VALUE\"] = \"MapperKind.ENUM_VALUE\";\n})(MapperKind || (MapperKind = {}));\n//# sourceMappingURL=Interfaces.js.map","import { GraphQLObjectType, GraphQLInterfaceType, GraphQLInputObjectType, GraphQLString, GraphQLInt, GraphQLFloat, GraphQLBoolean, GraphQLID, isObjectType, isInterfaceType, isInputObjectType, Kind, GraphQLList, GraphQLNonNull, } from 'graphql';\nexport function createNamedStub(name, type) {\n let constructor;\n if (type === 'object') {\n constructor = GraphQLObjectType;\n }\n else if (type === 'interface') {\n constructor = GraphQLInterfaceType;\n }\n else {\n constructor = GraphQLInputObjectType;\n }\n return new constructor({\n name,\n fields: {\n __fake: {\n type: GraphQLString,\n },\n },\n });\n}\nexport function createStub(node, type) {\n switch (node.kind) {\n case Kind.LIST_TYPE:\n return new GraphQLList(createStub(node.type, type));\n case Kind.NON_NULL_TYPE:\n return new GraphQLNonNull(createStub(node.type, type));\n default:\n if (type === 'output') {\n return createNamedStub(node.name.value, 'object');\n }\n return createNamedStub(node.name.value, 'input');\n }\n}\nexport function isNamedStub(type) {\n if (isObjectType(type) || isInterfaceType(type) || isInputObjectType(type)) {\n const fields = type.getFields();\n const fieldNames = Object.keys(fields);\n return fieldNames.length === 1 && fields[fieldNames[0]].name === '__fake';\n }\n return false;\n}\nexport function getBuiltInForStub(type) {\n switch (type.name) {\n case GraphQLInt.name:\n return GraphQLInt;\n case GraphQLFloat.name:\n return GraphQLFloat;\n case GraphQLString.name:\n return GraphQLString;\n case GraphQLBoolean.name:\n return GraphQLBoolean;\n case GraphQLID.name:\n return GraphQLID;\n default:\n return type;\n }\n}\n//# sourceMappingURL=stub.js.map","import { GraphQLDirective, GraphQLEnumType, GraphQLInputObjectType, GraphQLInterfaceType, GraphQLList, GraphQLObjectType, GraphQLNonNull, GraphQLScalarType, GraphQLUnionType, isInterfaceType, isEnumType, isInputObjectType, isListType, isNamedType, isNonNullType, isObjectType, isScalarType, isUnionType, isSpecifiedScalarType, isSpecifiedDirective, } from 'graphql';\nimport { getBuiltInForStub, isNamedStub } from './stub';\nexport function rewireTypes(originalTypeMap, directives, options = {\n skipPruning: false,\n}) {\n const newTypeMap = Object.create(null);\n Object.keys(originalTypeMap).forEach(typeName => {\n const namedType = originalTypeMap[typeName];\n if (namedType == null || typeName.startsWith('__')) {\n return;\n }\n const newName = namedType.name;\n if (newName.startsWith('__')) {\n return;\n }\n if (newTypeMap[newName] != null) {\n throw new Error(`Duplicate schema type name ${newName}`);\n }\n newTypeMap[newName] = namedType;\n });\n Object.keys(newTypeMap).forEach(typeName => {\n newTypeMap[typeName] = rewireNamedType(newTypeMap[typeName]);\n });\n const newDirectives = directives.map(directive => rewireDirective(directive));\n // TODO:\n // consider removing the default level of pruning in v7,\n // see comments below on the pruneTypes function.\n return options.skipPruning\n ? {\n typeMap: newTypeMap,\n directives: newDirectives,\n }\n : pruneTypes(newTypeMap, newDirectives);\n function rewireDirective(directive) {\n if (isSpecifiedDirective(directive)) {\n return directive;\n }\n const directiveConfig = directive.toConfig();\n directiveConfig.args = rewireArgs(directiveConfig.args);\n return new GraphQLDirective(directiveConfig);\n }\n function rewireArgs(args) {\n const rewiredArgs = {};\n Object.keys(args).forEach(argName => {\n const arg = args[argName];\n const rewiredArgType = rewireType(arg.type);\n if (rewiredArgType != null) {\n arg.type = rewiredArgType;\n rewiredArgs[argName] = arg;\n }\n });\n return rewiredArgs;\n }\n function rewireNamedType(type) {\n if (isObjectType(type)) {\n const config = type.toConfig();\n const newConfig = {\n ...config,\n fields: () => rewireFields(config.fields),\n interfaces: () => rewireNamedTypes(config.interfaces),\n };\n return new GraphQLObjectType(newConfig);\n }\n else if (isInterfaceType(type)) {\n const config = type.toConfig();\n const newConfig = {\n ...config,\n fields: () => rewireFields(config.fields),\n };\n if ('interfaces' in newConfig) {\n newConfig.interfaces = () => rewireNamedTypes(config.interfaces);\n }\n return new GraphQLInterfaceType(newConfig);\n }\n else if (isUnionType(type)) {\n const config = type.toConfig();\n const newConfig = {\n ...config,\n types: () => rewireNamedTypes(config.types),\n };\n return new GraphQLUnionType(newConfig);\n }\n else if (isInputObjectType(type)) {\n const config = type.toConfig();\n const newConfig = {\n ...config,\n fields: () => rewireInputFields(config.fields),\n };\n return new GraphQLInputObjectType(newConfig);\n }\n else if (isEnumType(type)) {\n const enumConfig = type.toConfig();\n return new GraphQLEnumType(enumConfig);\n }\n else if (isScalarType(type)) {\n if (isSpecifiedScalarType(type)) {\n return type;\n }\n const scalarConfig = type.toConfig();\n return new GraphQLScalarType(scalarConfig);\n }\n throw new Error(`Unexpected schema type: ${type}`);\n }\n function rewireFields(fields) {\n const rewiredFields = {};\n Object.keys(fields).forEach(fieldName => {\n const field = fields[fieldName];\n const rewiredFieldType = rewireType(field.type);\n if (rewiredFieldType != null) {\n field.type = rewiredFieldType;\n field.args = rewireArgs(field.args);\n rewiredFields[fieldName] = field;\n }\n });\n return rewiredFields;\n }\n function rewireInputFields(fields) {\n const rewiredFields = {};\n Object.keys(fields).forEach(fieldName => {\n const field = fields[fieldName];\n const rewiredFieldType = rewireType(field.type);\n if (rewiredFieldType != null) {\n field.type = rewiredFieldType;\n rewiredFields[fieldName] = field;\n }\n });\n return rewiredFields;\n }\n function rewireNamedTypes(namedTypes) {\n const rewiredTypes = [];\n namedTypes.forEach(namedType => {\n const rewiredType = rewireType(namedType);\n if (rewiredType != null) {\n rewiredTypes.push(rewiredType);\n }\n });\n return rewiredTypes;\n }\n function rewireType(type) {\n if (isListType(type)) {\n const rewiredType = rewireType(type.ofType);\n return rewiredType != null ? new GraphQLList(rewiredType) : null;\n }\n else if (isNonNullType(type)) {\n const rewiredType = rewireType(type.ofType);\n return rewiredType != null ? new GraphQLNonNull(rewiredType) : null;\n }\n else if (isNamedType(type)) {\n let rewiredType = originalTypeMap[type.name];\n if (rewiredType === undefined) {\n rewiredType = isNamedStub(type) ? getBuiltInForStub(type) : type;\n newTypeMap[rewiredType.name] = rewiredType;\n }\n return rewiredType != null ? newTypeMap[rewiredType.name] : null;\n }\n return null;\n }\n}\n// TODO:\n// consider removing the default level of pruning in v7\n//\n// Pruning during mapSchema limits the ability to create an unpruned schema, which may be of use\n// to some library users. pruning is now recommended via the dedicated pruneSchema function\n// which does not force pruning on library users and gives granular control in terms of pruning\n// types.\nfunction pruneTypes(typeMap, directives) {\n const newTypeMap = {};\n const implementedInterfaces = {};\n Object.keys(typeMap).forEach(typeName => {\n const namedType = typeMap[typeName];\n if ('getInterfaces' in namedType) {\n namedType.getInterfaces().forEach(iface => {\n implementedInterfaces[iface.name] = true;\n });\n }\n });\n let prunedTypeMap = false;\n const typeNames = Object.keys(typeMap);\n for (let i = 0; i < typeNames.length; i++) {\n const typeName = typeNames[i];\n const type = typeMap[typeName];\n if (isObjectType(type) || isInputObjectType(type)) {\n // prune types with no fields\n if (Object.keys(type.getFields()).length) {\n newTypeMap[typeName] = type;\n }\n else {\n prunedTypeMap = true;\n }\n }\n else if (isUnionType(type)) {\n // prune unions without underlying types\n if (type.getTypes().length) {\n newTypeMap[typeName] = type;\n }\n else {\n prunedTypeMap = true;\n }\n }\n else if (isInterfaceType(type)) {\n // prune interfaces without fields or without implementations\n if (Object.keys(type.getFields()).length && implementedInterfaces[type.name]) {\n newTypeMap[typeName] = type;\n }\n else {\n prunedTypeMap = true;\n }\n }\n else {\n newTypeMap[typeName] = type;\n }\n }\n // every prune requires another round of healing\n return prunedTypeMap ? rewireTypes(newTypeMap, directives) : { typeMap, directives };\n}\n//# sourceMappingURL=rewire.js.map","import { getNullableType, isLeafType, isListType, isInputObjectType, } from 'graphql';\nexport function transformInputValue(type, value, transformer) {\n if (value == null) {\n return value;\n }\n const nullableType = getNullableType(type);\n if (isLeafType(nullableType)) {\n return transformer(nullableType, value);\n }\n else if (isListType(nullableType)) {\n return value.map((listMember) => transformInputValue(nullableType.ofType, listMember, transformer));\n }\n else if (isInputObjectType(nullableType)) {\n const fields = nullableType.getFields();\n const newValue = {};\n Object.keys(value).forEach(key => {\n newValue[key] = transformInputValue(fields[key].type, value[key], transformer);\n });\n return newValue;\n }\n // unreachable, no other possible return value\n}\nexport function serializeInputValue(type, value) {\n return transformInputValue(type, value, (t, v) => t.serialize(v));\n}\nexport function parseInputValue(type, value) {\n return transformInputValue(type, value, (t, v) => t.parseValue(v));\n}\nexport function parseInputValueLiteral(type, value) {\n return transformInputValue(type, value, (t, v) => t.parseLiteral(v, {}));\n}\n//# sourceMappingURL=transformInputValue.js.map","import { GraphQLObjectType, GraphQLSchema, isInterfaceType, isEnumType, isObjectType, isScalarType, isUnionType, isInputObjectType, GraphQLInputObjectType, GraphQLInterfaceType, isLeafType, isListType, isNonNullType, isNamedType, GraphQLList, GraphQLNonNull, GraphQLEnumType, Kind, } from 'graphql';\nimport { MapperKind, } from './Interfaces';\nimport { rewireTypes } from './rewire';\nimport { serializeInputValue, parseInputValue } from './transformInputValue';\nexport function mapSchema(schema, schemaMapper = {}) {\n const originalTypeMap = schema.getTypeMap();\n let newTypeMap = mapDefaultValues(originalTypeMap, schema, serializeInputValue);\n newTypeMap = mapTypes(newTypeMap, schema, schemaMapper, type => isLeafType(type));\n newTypeMap = mapEnumValues(newTypeMap, schema, schemaMapper);\n newTypeMap = mapDefaultValues(newTypeMap, schema, parseInputValue);\n newTypeMap = mapTypes(newTypeMap, schema, schemaMapper, type => !isLeafType(type));\n newTypeMap = mapFields(newTypeMap, schema, schemaMapper);\n newTypeMap = mapArguments(newTypeMap, schema, schemaMapper);\n const originalDirectives = schema.getDirectives();\n const newDirectives = mapDirectives(originalDirectives, schema, schemaMapper);\n const queryType = schema.getQueryType();\n const mutationType = schema.getMutationType();\n const subscriptionType = schema.getSubscriptionType();\n const newQueryTypeName = queryType != null ? (newTypeMap[queryType.name] != null ? newTypeMap[queryType.name].name : undefined) : undefined;\n const newMutationTypeName = mutationType != null\n ? newTypeMap[mutationType.name] != null\n ? newTypeMap[mutationType.name].name\n : undefined\n : undefined;\n const newSubscriptionTypeName = subscriptionType != null\n ? newTypeMap[subscriptionType.name] != null\n ? newTypeMap[subscriptionType.name].name\n : undefined\n : undefined;\n const { typeMap, directives } = rewireTypes(newTypeMap, newDirectives);\n return new GraphQLSchema({\n ...schema.toConfig(),\n query: newQueryTypeName ? typeMap[newQueryTypeName] : undefined,\n mutation: newMutationTypeName ? typeMap[newMutationTypeName] : undefined,\n subscription: newSubscriptionTypeName != null ? typeMap[newSubscriptionTypeName] : undefined,\n types: Object.keys(typeMap).map(typeName => typeMap[typeName]),\n directives,\n });\n}\nfunction mapTypes(originalTypeMap, schema, schemaMapper, testFn = () => true) {\n const newTypeMap = {};\n Object.keys(originalTypeMap).forEach(typeName => {\n if (!typeName.startsWith('__')) {\n const originalType = originalTypeMap[typeName];\n if (originalType == null || !testFn(originalType)) {\n newTypeMap[typeName] = originalType;\n return;\n }\n const typeMapper = getTypeMapper(schema, schemaMapper, typeName);\n if (typeMapper == null) {\n newTypeMap[typeName] = originalType;\n return;\n }\n const maybeNewType = typeMapper(originalType, schema);\n if (maybeNewType === undefined) {\n newTypeMap[typeName] = originalType;\n return;\n }\n newTypeMap[typeName] = maybeNewType;\n }\n });\n return newTypeMap;\n}\nfunction mapEnumValues(originalTypeMap, schema, schemaMapper) {\n const enumValueMapper = getEnumValueMapper(schemaMapper);\n if (!enumValueMapper) {\n return originalTypeMap;\n }\n return mapTypes(originalTypeMap, schema, {\n [MapperKind.ENUM_TYPE]: type => {\n const config = type.toConfig();\n const originalEnumValueConfigMap = config.values;\n const newEnumValueConfigMap = {};\n Object.keys(originalEnumValueConfigMap).forEach(externalValue => {\n const originalEnumValueConfig = originalEnumValueConfigMap[externalValue];\n const mappedEnumValue = enumValueMapper(originalEnumValueConfig, type.name, schema, externalValue);\n if (mappedEnumValue === undefined) {\n newEnumValueConfigMap[externalValue] = originalEnumValueConfig;\n }\n else if (Array.isArray(mappedEnumValue)) {\n const [newExternalValue, newEnumValueConfig] = mappedEnumValue;\n newEnumValueConfigMap[newExternalValue] =\n newEnumValueConfig === undefined ? originalEnumValueConfig : newEnumValueConfig;\n }\n else if (mappedEnumValue !== null) {\n newEnumValueConfigMap[externalValue] = mappedEnumValue;\n }\n });\n return correctASTNodes(new GraphQLEnumType({\n ...config,\n values: newEnumValueConfigMap,\n }));\n },\n }, type => isEnumType(type));\n}\nfunction mapDefaultValues(originalTypeMap, schema, fn) {\n const newTypeMap = mapArguments(originalTypeMap, schema, {\n [MapperKind.ARGUMENT]: argumentConfig => {\n if (argumentConfig.defaultValue === undefined) {\n return argumentConfig;\n }\n const maybeNewType = getNewType(originalTypeMap, argumentConfig.type);\n if (maybeNewType != null) {\n return {\n ...argumentConfig,\n defaultValue: fn(maybeNewType, argumentConfig.defaultValue),\n };\n }\n },\n });\n return mapFields(newTypeMap, schema, {\n [MapperKind.INPUT_OBJECT_FIELD]: inputFieldConfig => {\n if (inputFieldConfig.defaultValue === undefined) {\n return inputFieldConfig;\n }\n const maybeNewType = getNewType(newTypeMap, inputFieldConfig.type);\n if (maybeNewType != null) {\n return {\n ...inputFieldConfig,\n defaultValue: fn(maybeNewType, inputFieldConfig.defaultValue),\n };\n }\n },\n });\n}\nfunction getNewType(newTypeMap, type) {\n if (isListType(type)) {\n const newType = getNewType(newTypeMap, type.ofType);\n return newType != null ? new GraphQLList(newType) : null;\n }\n else if (isNonNullType(type)) {\n const newType = getNewType(newTypeMap, type.ofType);\n return newType != null ? new GraphQLNonNull(newType) : null;\n }\n else if (isNamedType(type)) {\n const newType = newTypeMap[type.name];\n return newType != null ? newType : null;\n }\n return null;\n}\nfunction mapFields(originalTypeMap, schema, schemaMapper) {\n const newTypeMap = {};\n Object.keys(originalTypeMap).forEach(typeName => {\n if (!typeName.startsWith('__')) {\n const originalType = originalTypeMap[typeName];\n if (!isObjectType(originalType) && !isInterfaceType(originalType) && !isInputObjectType(originalType)) {\n newTypeMap[typeName] = originalType;\n return;\n }\n const fieldMapper = getFieldMapper(schema, schemaMapper, typeName);\n if (fieldMapper == null) {\n newTypeMap[typeName] = originalType;\n return;\n }\n const config = originalType.toConfig();\n const originalFieldConfigMap = config.fields;\n const newFieldConfigMap = {};\n Object.keys(originalFieldConfigMap).forEach(fieldName => {\n const originalFieldConfig = originalFieldConfigMap[fieldName];\n const mappedField = fieldMapper(originalFieldConfig, fieldName, typeName, schema);\n if (mappedField === undefined) {\n newFieldConfigMap[fieldName] = originalFieldConfig;\n }\n else if (Array.isArray(mappedField)) {\n const [newFieldName, newFieldConfig] = mappedField;\n if (newFieldConfig.astNode != null) {\n newFieldConfig.astNode = {\n ...newFieldConfig.astNode,\n name: {\n ...newFieldConfig.astNode.name,\n value: newFieldName,\n },\n };\n }\n newFieldConfigMap[newFieldName] = newFieldConfig === undefined ? originalFieldConfig : newFieldConfig;\n }\n else if (mappedField !== null) {\n newFieldConfigMap[fieldName] = mappedField;\n }\n });\n if (isObjectType(originalType)) {\n newTypeMap[typeName] = correctASTNodes(new GraphQLObjectType({\n ...config,\n fields: newFieldConfigMap,\n }));\n }\n else if (isInterfaceType(originalType)) {\n newTypeMap[typeName] = correctASTNodes(new GraphQLInterfaceType({\n ...config,\n fields: newFieldConfigMap,\n }));\n }\n else {\n newTypeMap[typeName] = correctASTNodes(new GraphQLInputObjectType({\n ...config,\n fields: newFieldConfigMap,\n }));\n }\n }\n });\n return newTypeMap;\n}\nfunction mapArguments(originalTypeMap, schema, schemaMapper) {\n const newTypeMap = {};\n Object.keys(originalTypeMap).forEach(typeName => {\n if (!typeName.startsWith('__')) {\n const originalType = originalTypeMap[typeName];\n if (!isObjectType(originalType) && !isInterfaceType(originalType)) {\n newTypeMap[typeName] = originalType;\n return;\n }\n const argumentMapper = getArgumentMapper(schemaMapper);\n if (argumentMapper == null) {\n newTypeMap[typeName] = originalType;\n return;\n }\n const config = originalType.toConfig();\n const originalFieldConfigMap = config.fields;\n const newFieldConfigMap = {};\n Object.keys(originalFieldConfigMap).forEach(fieldName => {\n const originalFieldConfig = originalFieldConfigMap[fieldName];\n const originalArgumentConfigMap = originalFieldConfig.args;\n if (originalArgumentConfigMap == null) {\n newFieldConfigMap[fieldName] = originalFieldConfig;\n return;\n }\n const argumentNames = Object.keys(originalArgumentConfigMap);\n if (!argumentNames.length) {\n newFieldConfigMap[fieldName] = originalFieldConfig;\n return;\n }\n const newArgumentConfigMap = {};\n argumentNames.forEach(argumentName => {\n const originalArgumentConfig = originalArgumentConfigMap[argumentName];\n const mappedArgument = argumentMapper(originalArgumentConfig, fieldName, typeName, schema);\n if (mappedArgument === undefined) {\n newArgumentConfigMap[argumentName] = originalArgumentConfig;\n }\n else if (Array.isArray(mappedArgument)) {\n const [newArgumentName, newArgumentConfig] = mappedArgument;\n newArgumentConfigMap[newArgumentName] = newArgumentConfig;\n }\n else if (mappedArgument !== null) {\n newArgumentConfigMap[argumentName] = mappedArgument;\n }\n });\n newFieldConfigMap[fieldName] = {\n ...originalFieldConfig,\n args: newArgumentConfigMap,\n };\n });\n if (isObjectType(originalType)) {\n newTypeMap[typeName] = new GraphQLObjectType({\n ...config,\n fields: newFieldConfigMap,\n });\n }\n else if (isInterfaceType(originalType)) {\n newTypeMap[typeName] = new GraphQLInterfaceType({\n ...config,\n fields: newFieldConfigMap,\n });\n }\n else {\n newTypeMap[typeName] = new GraphQLInputObjectType({\n ...config,\n fields: newFieldConfigMap,\n });\n }\n }\n });\n return newTypeMap;\n}\nfunction mapDirectives(originalDirectives, schema, schemaMapper) {\n const directiveMapper = getDirectiveMapper(schemaMapper);\n if (directiveMapper == null) {\n return originalDirectives.slice();\n }\n const newDirectives = [];\n originalDirectives.forEach(directive => {\n const mappedDirective = directiveMapper(directive, schema);\n if (mappedDirective === undefined) {\n newDirectives.push(directive);\n }\n else if (mappedDirective !== null) {\n newDirectives.push(mappedDirective);\n }\n });\n return newDirectives;\n}\nfunction getTypeSpecifiers(schema, typeName) {\n const type = schema.getType(typeName);\n const specifiers = [MapperKind.TYPE];\n if (isObjectType(type)) {\n specifiers.push(MapperKind.COMPOSITE_TYPE, MapperKind.OBJECT_TYPE);\n const query = schema.getQueryType();\n const mutation = schema.getMutationType();\n const subscription = schema.getSubscriptionType();\n if (query != null && typeName === query.name) {\n specifiers.push(MapperKind.ROOT_OBJECT, MapperKind.QUERY);\n }\n else if (mutation != null && typeName === mutation.name) {\n specifiers.push(MapperKind.ROOT_OBJECT, MapperKind.MUTATION);\n }\n else if (subscription != null && typeName === subscription.name) {\n specifiers.push(MapperKind.ROOT_OBJECT, MapperKind.SUBSCRIPTION);\n }\n }\n else if (isInputObjectType(type)) {\n specifiers.push(MapperKind.INPUT_OBJECT_TYPE);\n }\n else if (isInterfaceType(type)) {\n specifiers.push(MapperKind.COMPOSITE_TYPE, MapperKind.ABSTRACT_TYPE, MapperKind.INTERFACE_TYPE);\n }\n else if (isUnionType(type)) {\n specifiers.push(MapperKind.COMPOSITE_TYPE, MapperKind.ABSTRACT_TYPE, MapperKind.UNION_TYPE);\n }\n else if (isEnumType(type)) {\n specifiers.push(MapperKind.ENUM_TYPE);\n }\n else if (isScalarType(type)) {\n specifiers.push(MapperKind.SCALAR_TYPE);\n }\n return specifiers;\n}\nfunction getTypeMapper(schema, schemaMapper, typeName) {\n const specifiers = getTypeSpecifiers(schema, typeName);\n let typeMapper;\n const stack = [...specifiers];\n while (!typeMapper && stack.length > 0) {\n const next = stack.pop();\n typeMapper = schemaMapper[next];\n }\n return typeMapper != null ? typeMapper : null;\n}\nfunction getFieldSpecifiers(schema, typeName) {\n const type = schema.getType(typeName);\n const specifiers = [MapperKind.FIELD];\n if (isObjectType(type)) {\n specifiers.push(MapperKind.COMPOSITE_FIELD, MapperKind.OBJECT_FIELD);\n const query = schema.getQueryType();\n const mutation = schema.getMutationType();\n const subscription = schema.getSubscriptionType();\n if (query != null && typeName === query.name) {\n specifiers.push(MapperKind.ROOT_FIELD, MapperKind.QUERY_ROOT_FIELD);\n }\n else if (mutation != null && typeName === mutation.name) {\n specifiers.push(MapperKind.ROOT_FIELD, MapperKind.MUTATION_ROOT_FIELD);\n }\n else if (subscription != null && typeName === subscription.name) {\n specifiers.push(MapperKind.ROOT_FIELD, MapperKind.SUBSCRIPTION_ROOT_FIELD);\n }\n }\n else if (isInterfaceType(type)) {\n specifiers.push(MapperKind.COMPOSITE_FIELD, MapperKind.INTERFACE_FIELD);\n }\n else if (isInputObjectType(type)) {\n specifiers.push(MapperKind.INPUT_OBJECT_FIELD);\n }\n return specifiers;\n}\nfunction getFieldMapper(schema, schemaMapper, typeName) {\n const specifiers = getFieldSpecifiers(schema, typeName);\n let fieldMapper;\n const stack = [...specifiers];\n while (!fieldMapper && stack.length > 0) {\n const next = stack.pop();\n fieldMapper = schemaMapper[next];\n }\n return fieldMapper != null ? fieldMapper : null;\n}\nfunction getArgumentMapper(schemaMapper) {\n const argumentMapper = schemaMapper[MapperKind.ARGUMENT];\n return argumentMapper != null ? argumentMapper : null;\n}\nfunction getDirectiveMapper(schemaMapper) {\n const directiveMapper = schemaMapper[MapperKind.DIRECTIVE];\n return directiveMapper != null ? directiveMapper : null;\n}\nfunction getEnumValueMapper(schemaMapper) {\n const enumValueMapper = schemaMapper[MapperKind.ENUM_VALUE];\n return enumValueMapper != null ? enumValueMapper : null;\n}\nexport function correctASTNodes(type) {\n if (isObjectType(type)) {\n const config = type.toConfig();\n if (config.astNode != null) {\n const fields = [];\n Object.values(config.fields).forEach(fieldConfig => {\n if (fieldConfig.astNode != null) {\n fields.push(fieldConfig.astNode);\n }\n });\n config.astNode = {\n ...config.astNode,\n kind: Kind.OBJECT_TYPE_DEFINITION,\n fields,\n };\n }\n if (config.extensionASTNodes != null) {\n config.extensionASTNodes = config.extensionASTNodes.map(node => ({\n ...node,\n kind: Kind.OBJECT_TYPE_EXTENSION,\n fields: undefined,\n }));\n }\n return new GraphQLObjectType(config);\n }\n else if (isInterfaceType(type)) {\n const config = type.toConfig();\n if (config.astNode != null) {\n const fields = [];\n Object.values(config.fields).forEach(fieldConfig => {\n if (fieldConfig.astNode != null) {\n fields.push(fieldConfig.astNode);\n }\n });\n config.astNode = {\n ...config.astNode,\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n fields,\n };\n }\n if (config.extensionASTNodes != null) {\n config.extensionASTNodes = config.extensionASTNodes.map(node => ({\n ...node,\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n fields: undefined,\n }));\n }\n return new GraphQLInterfaceType(config);\n }\n else if (isInputObjectType(type)) {\n const config = type.toConfig();\n if (config.astNode != null) {\n const fields = [];\n Object.values(config.fields).forEach(fieldConfig => {\n if (fieldConfig.astNode != null) {\n fields.push(fieldConfig.astNode);\n }\n });\n config.astNode = {\n ...config.astNode,\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n fields,\n };\n }\n if (config.extensionASTNodes != null) {\n config.extensionASTNodes = config.extensionASTNodes.map(node => ({\n ...node,\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n fields: undefined,\n }));\n }\n return new GraphQLInputObjectType(config);\n }\n else if (isEnumType(type)) {\n const config = type.toConfig();\n if (config.astNode != null) {\n const values = [];\n Object.values(config.values).forEach(enumValueConfig => {\n if (enumValueConfig.astNode != null) {\n values.push(enumValueConfig.astNode);\n }\n });\n config.astNode = {\n ...config.astNode,\n values,\n };\n }\n if (config.extensionASTNodes != null) {\n config.extensionASTNodes = config.extensionASTNodes.map(node => ({\n ...node,\n values: undefined,\n }));\n }\n return new GraphQLEnumType(config);\n }\n else {\n return type;\n }\n}\n//# sourceMappingURL=mapSchema.js.map","import { GraphQLObjectType, } from 'graphql';\nimport { MapperKind } from './Interfaces';\nimport { mapSchema } from './mapSchema';\nexport function filterSchema({ schema, rootFieldFilter = () => true, typeFilter = () => true, fieldFilter = () => true, }) {\n const filteredSchema = mapSchema(schema, {\n [MapperKind.QUERY]: (type) => filterRootFields(type, 'Query', rootFieldFilter),\n [MapperKind.MUTATION]: (type) => filterRootFields(type, 'Mutation', rootFieldFilter),\n [MapperKind.SUBSCRIPTION]: (type) => filterRootFields(type, 'Subscription', rootFieldFilter),\n [MapperKind.OBJECT_TYPE]: (type) => typeFilter(type.name, type) ? filterObjectFields(type, fieldFilter) : null,\n [MapperKind.INTERFACE_TYPE]: (type) => (typeFilter(type.name, type) ? undefined : null),\n [MapperKind.UNION_TYPE]: (type) => (typeFilter(type.name, type) ? undefined : null),\n [MapperKind.INPUT_OBJECT_TYPE]: (type) => (typeFilter(type.name, type) ? undefined : null),\n [MapperKind.ENUM_TYPE]: (type) => (typeFilter(type.name, type) ? undefined : null),\n [MapperKind.SCALAR_TYPE]: (type) => (typeFilter(type.name, type) ? undefined : null),\n });\n return filteredSchema;\n}\nfunction filterRootFields(type, operation, rootFieldFilter) {\n const config = type.toConfig();\n Object.keys(config.fields).forEach(fieldName => {\n if (!rootFieldFilter(operation, fieldName, config.fields[fieldName])) {\n delete config.fields[fieldName];\n }\n });\n return new GraphQLObjectType(config);\n}\nfunction filterObjectFields(type, fieldFilter) {\n const config = type.toConfig();\n Object.keys(config.fields).forEach(fieldName => {\n if (!fieldFilter(type.name, fieldName, config.fields[fieldName])) {\n delete config.fields[fieldName];\n }\n });\n return new GraphQLObjectType(config);\n}\n//# sourceMappingURL=filterSchema.js.map","import { GraphQLDirective, GraphQLEnumType, GraphQLInputObjectType, GraphQLInterfaceType, GraphQLObjectType, GraphQLScalarType, GraphQLUnionType, isObjectType, isInterfaceType, isUnionType, isInputObjectType, isEnumType, isScalarType, isSpecifiedScalarType, isSpecifiedDirective, } from 'graphql';\nimport { mapSchema } from './mapSchema';\nexport function cloneDirective(directive) {\n return isSpecifiedDirective(directive) ? directive : new GraphQLDirective(directive.toConfig());\n}\nexport function cloneType(type) {\n if (isObjectType(type)) {\n const config = type.toConfig();\n return new GraphQLObjectType({\n ...config,\n interfaces: typeof config.interfaces === 'function' ? config.interfaces : config.interfaces.slice(),\n });\n }\n else if (isInterfaceType(type)) {\n const config = type.toConfig();\n const newConfig = {\n ...config,\n interfaces: [...((typeof config.interfaces === 'function' ? config.interfaces() : config.interfaces) || [])],\n };\n return new GraphQLInterfaceType(newConfig);\n }\n else if (isUnionType(type)) {\n const config = type.toConfig();\n return new GraphQLUnionType({\n ...config,\n types: config.types.slice(),\n });\n }\n else if (isInputObjectType(type)) {\n return new GraphQLInputObjectType(type.toConfig());\n }\n else if (isEnumType(type)) {\n return new GraphQLEnumType(type.toConfig());\n }\n else if (isScalarType(type)) {\n return isSpecifiedScalarType(type) ? type : new GraphQLScalarType(type.toConfig());\n }\n throw new Error(`Invalid type ${type}`);\n}\nexport function cloneSchema(schema) {\n return mapSchema(schema);\n}\n//# sourceMappingURL=clone.js.map","import { GraphQLList, GraphQLNonNull, isNamedType, isObjectType, isInterfaceType, isUnionType, isInputObjectType, isLeafType, isListType, isNonNullType, } from 'graphql';\n// Update any references to named schema types that disagree with the named\n// types found in schema.getTypeMap().\n//\n// healSchema and its callers (visitSchema/visitSchemaDirectives) all modify the schema in place.\n// Therefore, private variables (such as the stored implementation map and the proper root types)\n// are not updated.\n//\n// If this causes issues, the schema could be more aggressively healed as follows:\n//\n// healSchema(schema);\n// const config = schema.toConfig()\n// const healedSchema = new GraphQLSchema({\n// ...config,\n// query: schema.getType('<desired new root query type name>'),\n// mutation: schema.getType('<desired new root mutation type name>'),\n// subscription: schema.getType('<desired new root subscription type name>'),\n// });\n//\n// One can then also -- if necessary -- assign the correct private variables to the initial schema\n// as follows:\n// Object.assign(schema, healedSchema);\n//\n// These steps are not taken automatically to preserve backwards compatibility with graphql-tools v4.\n// See https://github.com/ardatan/graphql-tools/issues/1462\n//\n// They were briefly taken in v5, but can now be phased out as they were only required when other\n// areas of the codebase were using healSchema and visitSchema more extensively.\n//\nexport function healSchema(schema) {\n healTypes(schema.getTypeMap(), schema.getDirectives());\n return schema;\n}\nexport function healTypes(originalTypeMap, directives, config = {\n skipPruning: false,\n}) {\n const actualNamedTypeMap = Object.create(null);\n // If any of the .name properties of the GraphQLNamedType objects in\n // schema.getTypeMap() have changed, the keys of the type map need to\n // be updated accordingly.\n Object.entries(originalTypeMap).forEach(([typeName, namedType]) => {\n if (namedType == null || typeName.startsWith('__')) {\n return;\n }\n const actualName = namedType.name;\n if (actualName.startsWith('__')) {\n return;\n }\n if (actualName in actualNamedTypeMap) {\n throw new Error(`Duplicate schema type name ${actualName}`);\n }\n actualNamedTypeMap[actualName] = namedType;\n // Note: we are deliberately leaving namedType in the schema by its\n // original name (which might be different from actualName), so that\n // references by that name can be healed.\n });\n // Now add back every named type by its actual name.\n Object.entries(actualNamedTypeMap).forEach(([typeName, namedType]) => {\n originalTypeMap[typeName] = namedType;\n });\n // Directive declaration argument types can refer to named types.\n directives.forEach((decl) => {\n decl.args = decl.args.filter(arg => {\n arg.type = healType(arg.type);\n return arg.type !== null;\n });\n });\n Object.entries(originalTypeMap).forEach(([typeName, namedType]) => {\n // Heal all named types, except for dangling references, kept only to redirect.\n if (!typeName.startsWith('__') && typeName in actualNamedTypeMap) {\n if (namedType != null) {\n healNamedType(namedType);\n }\n }\n });\n for (const typeName of Object.keys(originalTypeMap)) {\n if (!typeName.startsWith('__') && !(typeName in actualNamedTypeMap)) {\n delete originalTypeMap[typeName];\n }\n }\n if (!config.skipPruning) {\n // TODO:\n // consider removing the default level of pruning in v7,\n // see comments below on the pruneTypes function.\n pruneTypes(originalTypeMap, directives);\n }\n function healNamedType(type) {\n if (isObjectType(type)) {\n healFields(type);\n healInterfaces(type);\n return;\n }\n else if (isInterfaceType(type)) {\n healFields(type);\n if ('getInterfaces' in type) {\n healInterfaces(type);\n }\n return;\n }\n else if (isUnionType(type)) {\n healUnderlyingTypes(type);\n return;\n }\n else if (isInputObjectType(type)) {\n healInputFields(type);\n return;\n }\n else if (isLeafType(type)) {\n return;\n }\n throw new Error(`Unexpected schema type: ${type}`);\n }\n function healFields(type) {\n const fieldMap = type.getFields();\n for (const [key, field] of Object.entries(fieldMap)) {\n field.args\n .map(arg => {\n arg.type = healType(arg.type);\n return arg.type === null ? null : arg;\n })\n .filter(Boolean);\n field.type = healType(field.type);\n if (field.type === null) {\n delete fieldMap[key];\n }\n }\n }\n function healInterfaces(type) {\n if ('getInterfaces' in type) {\n const interfaces = type.getInterfaces();\n interfaces.push(...interfaces\n .splice(0)\n .map(iface => healType(iface))\n .filter(Boolean));\n }\n }\n function healInputFields(type) {\n const fieldMap = type.getFields();\n for (const [key, field] of Object.entries(fieldMap)) {\n field.type = healType(field.type);\n if (field.type === null) {\n delete fieldMap[key];\n }\n }\n }\n function healUnderlyingTypes(type) {\n const types = type.getTypes();\n types.push(...types\n .splice(0)\n .map(t => healType(t))\n .filter(Boolean));\n }\n function healType(type) {\n // Unwrap the two known wrapper types\n if (isListType(type)) {\n const healedType = healType(type.ofType);\n return healedType != null ? new GraphQLList(healedType) : null;\n }\n else if (isNonNullType(type)) {\n const healedType = healType(type.ofType);\n return healedType != null ? new GraphQLNonNull(healedType) : null;\n }\n else if (isNamedType(type)) {\n // If a type annotation on a field or an argument or a union member is\n // any `GraphQLNamedType` with a `name`, then it must end up identical\n // to `schema.getType(name)`, since `schema.getTypeMap()` is the source\n // of truth for all named schema types.\n // Note that new types can still be simply added by adding a field, as\n // the official type will be undefined, not null.\n const officialType = originalTypeMap[type.name];\n if (officialType && type !== officialType) {\n return officialType;\n }\n }\n return type;\n }\n}\n// TODO:\n// consider removing the default level of pruning in v7\n//\n// Pruning was introduced into healSchema in v5, so legacy schema directives relying on pruning\n// during healing are likely to be rare. pruning is now recommended via the dedicated pruneSchema\n// function which does not force pruning on library users and gives granular control in terms of\n// pruning types. pruneSchema does recreate the schema -- a parallel version that prunes in place\n// could be considered.\nfunction pruneTypes(typeMap, directives) {\n const implementedInterfaces = {};\n Object.values(typeMap).forEach(namedType => {\n if ('getInterfaces' in namedType) {\n namedType.getInterfaces().forEach(iface => {\n implementedInterfaces[iface.name] = true;\n });\n }\n });\n let prunedTypeMap = false;\n const typeNames = Object.keys(typeMap);\n for (let i = 0; i < typeNames.length; i++) {\n const typeName = typeNames[i];\n const type = typeMap[typeName];\n if (isObjectType(type) || isInputObjectType(type)) {\n // prune types with no fields\n if (!Object.keys(type.getFields()).length) {\n typeMap[typeName] = null;\n prunedTypeMap = true;\n }\n }\n else if (isUnionType(type)) {\n // prune unions without underlying types\n if (!type.getTypes().length) {\n typeMap[typeName] = null;\n prunedTypeMap = true;\n }\n }\n else if (isInterfaceType(type)) {\n // prune interfaces without fields or without implementations\n if (!Object.keys(type.getFields()).length || !(type.name in implementedInterfaces)) {\n typeMap[typeName] = null;\n prunedTypeMap = true;\n }\n }\n }\n // every prune requires another round of healing\n if (prunedTypeMap) {\n healTypes(typeMap, directives);\n }\n}\n//# sourceMappingURL=heal.js.map","// Abstract base class of any visitor implementation, defining the available\n// visitor methods along with their parameter types, and providing a static\n// helper function for determining whether a subclass implements a given\n// visitor method, as opposed to inheriting one of the stubs defined here.\nexport class SchemaVisitor {\n // Determine if this SchemaVisitor (sub)class implements a particular\n // visitor method.\n static implementsVisitorMethod(methodName) {\n if (!methodName.startsWith('visit')) {\n return false;\n }\n const method = this.prototype[methodName];\n if (typeof method !== 'function') {\n return false;\n }\n if (this.name === 'SchemaVisitor') {\n // The SchemaVisitor class implements every visitor method.\n return true;\n }\n const stub = SchemaVisitor.prototype[methodName];\n if (method === stub) {\n // If this.prototype[methodName] was just inherited from SchemaVisitor,\n // then this class does not really implement the method.\n return false;\n }\n return true;\n }\n // Concrete subclasses of SchemaVisitor should override one or more of these\n // visitor methods, in order to express their interest in handling certain\n // schema types/locations. Each method may return null to remove the given\n // type from the schema, a non-null value of the same type to update the\n // type in the schema, or nothing to leave the type as it was.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n visitSchema(_schema) { }\n visitScalar(_scalar\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ) { }\n visitObject(_object\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ) { }\n visitFieldDefinition(_field, _details\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ) { }\n visitArgumentDefinition(_argument, _details\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ) { }\n visitInterface(_iface\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ) { }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n visitUnion(_union) { }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n visitEnum(_type) { }\n visitEnumValue(_value, _details\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ) { }\n visitInputObject(_object\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ) { }\n visitInputFieldDefinition(_field, _details\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ) { }\n}\n//# sourceMappingURL=SchemaVisitor.js.map","import { isNamedType, isSchema, isObjectType, isInterfaceType, isInputObjectType, isScalarType, isUnionType, isEnumType, isInputType, GraphQLEnumType, } from 'graphql';\nimport { VisitSchemaKind, } from './Interfaces';\nimport { healSchema } from './heal';\nfunction isSchemaVisitor(obj) {\n if ('schema' in obj && isSchema(obj.schema)) {\n if ('visitSchema' in obj && typeof obj.visitSchema === 'function') {\n return true;\n }\n }\n return false;\n}\n// Generic function for visiting GraphQLSchema objects.\nexport function visitSchema(schema, \n// To accommodate as many different visitor patterns as possible, the\n// visitSchema function does not simply accept a single instance of the\n// SchemaVisitor class, but instead accepts a function that takes the\n// current VisitableSchemaType object and the name of a visitor method and\n// returns an array of SchemaVisitor instances that implement the visitor\n// method and have an interest in handling the given VisitableSchemaType\n// object. In the simplest case, this function can always return an array\n// containing a single visitor object, without even looking at the type or\n// methodName parameters. In other cases, this function might sometimes\n// return an empty array to indicate there are no visitors that should be\n// applied to the given VisitableSchemaType object. For an example of a\n// visitor pattern that benefits from this abstraction, see the\n// SchemaDirectiveVisitor class below.\nvisitorOrVisitorSelector) {\n const visitorSelector = typeof visitorOrVisitorSelector === 'function' ? visitorOrVisitorSelector : () => visitorOrVisitorSelector;\n // Helper function that calls visitorSelector and applies the resulting\n // visitors to the given type, with arguments [type, ...args].\n function callMethod(methodName, type, ...args) {\n let visitors = visitorSelector(type, methodName);\n visitors = Array.isArray(visitors) ? visitors : [visitors];\n let finalType = type;\n visitors.every(visitorOrVisitorDef => {\n let newType;\n if (isSchemaVisitor(visitorOrVisitorDef)) {\n newType = visitorOrVisitorDef[methodName](finalType, ...args);\n }\n else if (isNamedType(finalType) &&\n (methodName === 'visitScalar' ||\n methodName === 'visitEnum' ||\n methodName === 'visitObject' ||\n methodName === 'visitInputObject' ||\n methodName === 'visitUnion' ||\n methodName === 'visitInterface')) {\n const specifiers = getTypeSpecifiers(finalType, schema);\n const typeVisitor = getVisitor(visitorOrVisitorDef, specifiers);\n newType = typeVisitor != null ? typeVisitor(finalType, schema) : undefined;\n }\n if (typeof newType === 'undefined') {\n // Keep going without modifying type.\n return true;\n }\n if (methodName === 'visitSchema' || isSchema(finalType)) {\n throw new Error(`Method ${methodName} cannot replace schema with ${newType}`);\n }\n if (newType === null) {\n // Stop the loop and return null form callMethod, which will cause\n // the type to be removed from the schema.\n finalType = null;\n return false;\n }\n // Update type to the new type returned by the visitor method, so that\n // later directives will see the new type, and callMethod will return\n // the final type.\n finalType = newType;\n return true;\n });\n // If there were no directives for this type object, or if all visitor\n // methods returned nothing, type will be returned unmodified.\n return finalType;\n }\n // Recursive helper function that calls any appropriate visitor methods for\n // each object in the schema, then traverses the object's children (if any).\n function visit(type) {\n if (isSchema(type)) {\n // Unlike the other types, the root GraphQLSchema object cannot be\n // replaced by visitor methods, because that would make life very hard\n // for SchemaVisitor subclasses that rely on the original schema object.\n callMethod('visitSchema', type);\n const typeMap = type.getTypeMap();\n Object.entries(typeMap).forEach(([typeName, namedType]) => {\n if (!typeName.startsWith('__') && namedType != null) {\n // Call visit recursively to let it determine which concrete\n // subclass of GraphQLNamedType we found in the type map.\n // We do not use updateEachKey because we want to preserve\n // deleted types in the typeMap so that other types that reference\n // the deleted types can be healed.\n typeMap[typeName] = visit(namedType);\n }\n });\n return type;\n }\n if (isObjectType(type)) {\n // Note that callMethod('visitObject', type) may not actually call any\n // methods, if there are no @directive annotations associated with this\n // type, or if this SchemaDirectiveVisitor subclass does not override\n // the visitObject method.\n const newObject = callMethod('visitObject', type);\n if (newObject != null) {\n visitFields(newObject);\n }\n return newObject;\n }\n if (isInterfaceType(type)) {\n const newInterface = callMethod('visitInterface', type);\n if (newInterface != null) {\n visitFields(newInterface);\n }\n return newInterface;\n }\n if (isInputObjectType(type)) {\n const newInputObject = callMethod('visitInputObject', type);\n if (newInputObject != null) {\n const fieldMap = newInputObject.getFields();\n for (const key of Object.keys(fieldMap)) {\n fieldMap[key] = callMethod('visitInputFieldDefinition', fieldMap[key], {\n // Since we call a different method for input object fields, we\n // can't reuse the visitFields function here.\n objectType: newInputObject,\n });\n if (!fieldMap[key]) {\n delete fieldMap[key];\n }\n }\n }\n return newInputObject;\n }\n if (isScalarType(type)) {\n return callMethod('visitScalar', type);\n }\n if (isUnionType(type)) {\n return callMethod('visitUnion', type);\n }\n if (isEnumType(type)) {\n let newEnum = callMethod('visitEnum', type);\n if (newEnum != null) {\n const newValues = newEnum\n .getValues()\n .map(value => callMethod('visitEnumValue', value, {\n enumType: newEnum,\n }))\n .filter(Boolean);\n // Recreate the enum type if any of the values changed\n const valuesUpdated = newValues.some((value, index) => value !== newEnum.getValues()[index]);\n if (valuesUpdated) {\n newEnum = new GraphQLEnumType({\n ...newEnum.toConfig(),\n values: newValues.reduce((prev, value) => ({\n ...prev,\n [value.name]: {\n value: value.value,\n deprecationReason: value.deprecationReason,\n description: value.description,\n astNode: value.astNode,\n },\n }), {}),\n });\n }\n }\n return newEnum;\n }\n throw new Error(`Unexpected schema type: ${type}`);\n }\n function visitFields(type) {\n const fieldMap = type.getFields();\n for (const [key, field] of Object.entries(fieldMap)) {\n // It would be nice if we could call visit(field) recursively here, but\n // GraphQLField is merely a type, not a value that can be detected using\n // an instanceof check, so we have to visit the fields in this lexical\n // context, so that TypeScript can validate the call to\n // visitFieldDefinition.\n const newField = callMethod('visitFieldDefinition', field, {\n // While any field visitor needs a reference to the field object, some\n // field visitors may also need to know the enclosing (parent) type,\n // perhaps to determine if the parent is a GraphQLObjectType or a\n // GraphQLInterfaceType. To obtain a reference to the parent, a\n // visitor method can have a second parameter, which will be an object\n // with an .objectType property referring to the parent.\n objectType: type,\n });\n if (newField.args != null) {\n newField.args = newField.args\n .map(arg => callMethod('visitArgumentDefinition', arg, {\n // Like visitFieldDefinition, visitArgumentDefinition takes a\n // second parameter that provides additional context, namely the\n // parent .field and grandparent .objectType. Remember that the\n // current GraphQLSchema is always available via this.schema.\n field: newField,\n objectType: type,\n }))\n .filter(Boolean);\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (newField) {\n fieldMap[key] = newField;\n }\n else {\n delete fieldMap[key];\n }\n }\n }\n visit(schema);\n // Automatically update any references to named schema types replaced\n // during the traversal, so implementors don't have to worry about that.\n healSchema(schema);\n // Return schema for convenience, even though schema parameter has all updated types.\n return schema;\n}\nfunction getTypeSpecifiers(type, schema) {\n const specifiers = [VisitSchemaKind.TYPE];\n if (isObjectType(type)) {\n specifiers.push(VisitSchemaKind.COMPOSITE_TYPE, VisitSchemaKind.OBJECT_TYPE);\n const query = schema.getQueryType();\n const mutation = schema.getMutationType();\n const subscription = schema.getSubscriptionType();\n if (type === query) {\n specifiers.push(VisitSchemaKind.ROOT_OBJECT, VisitSchemaKind.QUERY);\n }\n else if (type === mutation) {\n specifiers.push(VisitSchemaKind.ROOT_OBJECT, VisitSchemaKind.MUTATION);\n }\n else if (type === subscription) {\n specifiers.push(VisitSchemaKind.ROOT_OBJECT, VisitSchemaKind.SUBSCRIPTION);\n }\n }\n else if (isInputType(type)) {\n specifiers.push(VisitSchemaKind.INPUT_OBJECT_TYPE);\n }\n else if (isInterfaceType(type)) {\n specifiers.push(VisitSchemaKind.COMPOSITE_TYPE, VisitSchemaKind.ABSTRACT_TYPE, VisitSchemaKind.INTERFACE_TYPE);\n }\n else if (isUnionType(type)) {\n specifiers.push(VisitSchemaKind.COMPOSITE_TYPE, VisitSchemaKind.ABSTRACT_TYPE, VisitSchemaKind.UNION_TYPE);\n }\n else if (isEnumType(type)) {\n specifiers.push(VisitSchemaKind.ENUM_TYPE);\n }\n else if (isScalarType(type)) {\n specifiers.push(VisitSchemaKind.SCALAR_TYPE);\n }\n return specifiers;\n}\nfunction getVisitor(visitorDef, specifiers) {\n let typeVisitor;\n const stack = [...specifiers];\n while (!typeVisitor && stack.length > 0) {\n const next = stack.pop();\n typeVisitor = visitorDef[next];\n }\n return typeVisitor != null ? typeVisitor : null;\n}\n//# sourceMappingURL=visitSchema.js.map","import { valueFromASTUntyped, } from 'graphql';\nimport { SchemaVisitor } from './SchemaVisitor';\nimport { visitSchema } from './visitSchema';\nimport { getArgumentValues } from './getArgumentValues';\n// This class represents a reusable implementation of a @directive that may\n// appear in a GraphQL schema written in Schema Definition Language.\n//\n// By overriding one or more visit{Object,Union,...} methods, a subclass\n// registers interest in certain schema types, such as GraphQLObjectType,\n// GraphQLUnionType, etc. When SchemaDirectiveVisitor.visitSchemaDirectives is\n// called with a GraphQLSchema object and a map of visitor subclasses, the\n// overidden methods of those subclasses allow the visitors to obtain\n// references to any type objects that have @directives attached to them,\n// enabling visitors to inspect or modify the schema as appropriate.\n//\n// For example, if a directive called @rest(url: \"...\") appears after a field\n// definition, a SchemaDirectiveVisitor subclass could provide meaning to that\n// directive by overriding the visitFieldDefinition method (which receives a\n// GraphQLField parameter), and then the body of that visitor method could\n// manipulate the field's resolver function to fetch data from a REST endpoint\n// described by the url argument passed to the @rest directive:\n//\n// const typeDefs = `\n// type Query {\n// people: [Person] @rest(url: \"/api/v1/people\")\n// }`;\n//\n// const schema = makeExecutableSchema({ typeDefs });\n//\n// SchemaDirectiveVisitor.visitSchemaDirectives(schema, {\n// rest: class extends SchemaDirectiveVisitor {\n// public visitFieldDefinition(field: GraphQLField<any, any>) {\n// const { url } = this.args;\n// field.resolve = () => fetch(url);\n// }\n// }\n// });\n//\n// The subclass in this example is defined as an anonymous class expression,\n// for brevity. A truly reusable SchemaDirectiveVisitor would most likely be\n// defined in a library using a named class declaration, and then exported for\n// consumption by other modules and packages.\n//\n// See below for a complete list of overridable visitor methods, their\n// parameter types, and more details about the properties exposed by instances\n// of the SchemaDirectiveVisitor class.\nexport class SchemaDirectiveVisitor extends SchemaVisitor {\n // Mark the constructor protected to enforce passing SchemaDirectiveVisitor\n // subclasses (not instances) to visitSchemaDirectives.\n constructor(config) {\n super();\n this.name = config.name;\n this.args = config.args;\n this.visitedType = config.visitedType;\n this.schema = config.schema;\n this.context = config.context;\n }\n // Override this method to return a custom GraphQLDirective (or modify one\n // already present in the schema) to enforce argument types, provide default\n // argument values, or specify schema locations where this @directive may\n // appear. By default, any declaration found in the schema will be returned.\n static getDirectiveDeclaration(directiveName, schema) {\n return schema.getDirective(directiveName);\n }\n // Call SchemaDirectiveVisitor.visitSchemaDirectives to visit every\n // @directive in the schema and create an appropriate SchemaDirectiveVisitor\n // instance to visit the object decorated by the @directive.\n static visitSchemaDirectives(schema, \n // The keys of this object correspond to directive names as they appear\n // in the schema, and the values should be subclasses (not instances!)\n // of the SchemaDirectiveVisitor class. This distinction is important\n // because a new SchemaDirectiveVisitor instance will be created each\n // time a matching directive is found in the schema AST, with arguments\n // and other metadata specific to that occurrence. To help prevent the\n // mistake of passing instances, the SchemaDirectiveVisitor constructor\n // method is marked as protected.\n directiveVisitors, \n // Optional context object that will be available to all visitor instances\n // via this.context. Defaults to an empty null-prototype object.\n context = Object.create(null)\n // The visitSchemaDirectives method returns a map from directive names to\n // lists of SchemaDirectiveVisitors created while visiting the schema.\n ) {\n // If the schema declares any directives for public consumption, record\n // them here so that we can properly coerce arguments when/if we encounter\n // an occurrence of the directive while walking the schema below.\n const declaredDirectives = this.getDeclaredDirectives(schema, directiveVisitors);\n // Map from directive names to lists of SchemaDirectiveVisitor instances\n // created while visiting the schema.\n const createdVisitors = Object.keys(directiveVisitors).reduce((prev, item) => ({\n ...prev,\n [item]: [],\n }), {});\n const directiveVisitorMap = Object.entries(directiveVisitors).reduce((prev, [key, value]) => ({\n ...prev,\n [key]: value,\n }), {});\n function visitorSelector(type, methodName) {\n var _a, _b;\n let directiveNodes = (_b = (_a = type === null || type === void 0 ? void 0 : type.astNode) === null || _a === void 0 ? void 0 : _a.directives) !== null && _b !== void 0 ? _b : [];\n const extensionASTNodes = type.extensionASTNodes;\n if (extensionASTNodes != null) {\n extensionASTNodes.forEach(extensionASTNode => {\n if (extensionASTNode.directives != null) {\n directiveNodes = directiveNodes.concat(extensionASTNode.directives);\n }\n });\n }\n const visitors = [];\n directiveNodes.forEach(directiveNode => {\n const directiveName = directiveNode.name.value;\n if (!(directiveName in directiveVisitorMap)) {\n return;\n }\n const VisitorClass = directiveVisitorMap[directiveName];\n // Avoid creating visitor objects if visitorClass does not override\n // the visitor method named by methodName.\n if (!VisitorClass.implementsVisitorMethod(methodName)) {\n return;\n }\n const decl = declaredDirectives[directiveName];\n let args;\n if (decl != null) {\n // If this directive was explicitly declared, use the declared\n // argument types (and any default values) to check, coerce, and/or\n // supply default values for the given arguments.\n args = getArgumentValues(decl, directiveNode);\n }\n else {\n // If this directive was not explicitly declared, just convert the\n // argument nodes to their corresponding JavaScript values.\n args = Object.create(null);\n if (directiveNode.arguments != null) {\n directiveNode.arguments.forEach(arg => {\n args[arg.name.value] = valueFromASTUntyped(arg.value);\n });\n }\n }\n // As foretold in comments near the top of the visitSchemaDirectives\n // method, this is where instances of the SchemaDirectiveVisitor class\n // get created and assigned names. While subclasses could override the\n // constructor method, the constructor is marked as protected, so\n // these are the only arguments that will ever be passed.\n visitors.push(new VisitorClass({\n name: directiveName,\n args,\n visitedType: type,\n schema,\n context,\n }));\n });\n if (visitors.length > 0) {\n visitors.forEach(visitor => {\n createdVisitors[visitor.name].push(visitor);\n });\n }\n return visitors;\n }\n visitSchema(schema, visitorSelector);\n return createdVisitors;\n }\n static getDeclaredDirectives(schema, directiveVisitors) {\n const declaredDirectives = schema.getDirectives().reduce((prev, curr) => ({\n ...prev,\n [curr.name]: curr,\n }), {});\n // If the visitor subclass overrides getDirectiveDeclaration, and it\n // returns a non-null GraphQLDirective, use that instead of any directive\n // declared in the schema itself. Reasoning: if a SchemaDirectiveVisitor\n // goes to the trouble of implementing getDirectiveDeclaration, it should\n // be able to rely on that implementation.\n Object.entries(directiveVisitors).forEach(([directiveName, visitorClass]) => {\n const decl = visitorClass.getDirectiveDeclaration(directiveName, schema);\n if (decl != null) {\n declaredDirectives[directiveName] = decl;\n }\n });\n Object.entries(declaredDirectives).forEach(([name, decl]) => {\n if (!(name in directiveVisitors)) {\n // SchemaDirectiveVisitors.visitSchemaDirectives might be called\n // multiple times with partial directiveVisitors maps, so it's not\n // necessarily an error for directiveVisitors to be missing an\n // implementation of a directive that was declared in the schema.\n return;\n }\n const visitorClass = directiveVisitors[name];\n decl.locations.forEach(loc => {\n const visitorMethodName = directiveLocationToVisitorMethodName(loc);\n if (SchemaVisitor.implementsVisitorMethod(visitorMethodName) &&\n !visitorClass.implementsVisitorMethod(visitorMethodName)) {\n // While visitor subclasses may implement extra visitor methods,\n // it's definitely a mistake if the GraphQLDirective declares itself\n // applicable to certain schema locations, and the visitor subclass\n // does not implement all the corresponding methods.\n throw new Error(`SchemaDirectiveVisitor for @${name} must implement ${visitorMethodName} method`);\n }\n });\n });\n return declaredDirectives;\n }\n}\n// Convert a string like \"FIELD_DEFINITION\" to \"visitFieldDefinition\".\nfunction directiveLocationToVisitorMethodName(loc) {\n return ('visit' +\n loc.replace(/([^_]*)_?/g, (_wholeMatch, part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()));\n}\n//# sourceMappingURL=SchemaDirectiveVisitor.js.map","import { isScalarType, isEnumType, isInterfaceType, isUnionType, isObjectType, isSpecifiedScalarType, } from 'graphql';\nimport { cloneType } from './clone';\nexport function getResolversFromSchema(schema) {\n const resolvers = Object.create({});\n const typeMap = schema.getTypeMap();\n Object.keys(typeMap).forEach(typeName => {\n const type = typeMap[typeName];\n if (isScalarType(type)) {\n if (!isSpecifiedScalarType(type)) {\n resolvers[typeName] = cloneType(type);\n }\n }\n else if (isEnumType(type)) {\n resolvers[typeName] = {};\n const values = type.getValues();\n values.forEach(value => {\n resolvers[typeName][value.name] = value.value;\n });\n }\n else if (isInterfaceType(type)) {\n if (type.resolveType != null) {\n resolvers[typeName] = {\n __resolveType: type.resolveType,\n };\n }\n }\n else if (isUnionType(type)) {\n if (type.resolveType != null) {\n resolvers[typeName] = {\n __resolveType: type.resolveType,\n };\n }\n }\n else if (isObjectType(type)) {\n resolvers[typeName] = {};\n if (type.isTypeOf != null) {\n resolvers[typeName].__isTypeOf = type.isTypeOf;\n }\n const fields = type.getFields();\n Object.keys(fields).forEach(fieldName => {\n const field = fields[fieldName];\n resolvers[typeName][fieldName] = {\n resolve: field.resolve,\n subscribe: field.subscribe,\n };\n });\n }\n });\n return resolvers;\n}\n//# sourceMappingURL=getResolversFromSchema.js.map","import { getNamedType, isObjectType } from 'graphql';\nexport function forEachField(schema, fn) {\n const typeMap = schema.getTypeMap();\n Object.keys(typeMap).forEach(typeName => {\n const type = typeMap[typeName];\n // TODO: maybe have an option to include these?\n if (!getNamedType(type).name.startsWith('__') && isObjectType(type)) {\n const fields = type.getFields();\n Object.keys(fields).forEach(fieldName => {\n const field = fields[fieldName];\n fn(field, typeName, fieldName);\n });\n }\n });\n}\n//# sourceMappingURL=forEachField.js.map","import { getNamedType, isObjectType, isInputObjectType } from 'graphql';\nexport function forEachDefaultValue(schema, fn) {\n const typeMap = schema.getTypeMap();\n Object.keys(typeMap).forEach(typeName => {\n const type = typeMap[typeName];\n if (!getNamedType(type).name.startsWith('__')) {\n if (isObjectType(type)) {\n const fields = type.getFields();\n Object.keys(fields).forEach(fieldName => {\n const field = fields[fieldName];\n field.args.forEach(arg => {\n arg.defaultValue = fn(arg.type, arg.defaultValue);\n });\n });\n }\n else if (isInputObjectType(type)) {\n const fields = type.getFields();\n Object.keys(fields).forEach(fieldName => {\n const field = fields[fieldName];\n field.defaultValue = fn(field.type, field.defaultValue);\n });\n }\n }\n });\n}\n//# sourceMappingURL=forEachDefaultValue.js.map","// addTypes uses toConfig to create a new schema with a new or replaced\n// type or directive. Rewiring is employed so that the replaced type can be\n// reconnected with the existing types.\n//\n// Rewiring is employed even for new types or directives as a convenience, so\n// that type references within the new type or directive do not have to be to\n// the identical objects within the original schema.\n//\n// In fact, the type references could even be stub types with entirely different\n// fields, as long as the type references share the same name as the desired\n// type within the original schema's type map.\n//\n// This makes it easy to perform simple schema operations (e.g. adding a new\n// type with a fiew fields removed from an existing type) that could normally be\n// performed by using toConfig directly, but is blocked if any intervening\n// more advanced schema operations have caused the types to be recreated via\n// rewiring.\n//\n// Type recreation happens, for example, with every use of mapSchema, as the\n// types are always rewired. If fields are selected and removed using\n// mapSchema, adding those fields to a new type can no longer be simply done\n// by toConfig, as the types are not the identical Javascript objects, and\n// schema creation will fail with errors referencing multiple types with the\n// same names.\n//\n// enhanceSchema can fill this gap by adding an additional round of rewiring.\n//\nimport { GraphQLSchema, isNamedType, isDirective, } from 'graphql';\nimport { rewireTypes } from './rewire';\nexport function addTypes(schema, newTypesOrDirectives) {\n const queryType = schema.getQueryType();\n const mutationType = schema.getMutationType();\n const subscriptionType = schema.getSubscriptionType();\n const queryTypeName = queryType != null ? queryType.name : undefined;\n const mutationTypeName = mutationType != null ? mutationType.name : undefined;\n const subscriptionTypeName = subscriptionType != null ? subscriptionType.name : undefined;\n const config = schema.toConfig();\n const originalTypeMap = {};\n config.types.forEach(type => {\n originalTypeMap[type.name] = type;\n });\n const originalDirectiveMap = {};\n config.directives.forEach(directive => {\n originalDirectiveMap[directive.name] = directive;\n });\n newTypesOrDirectives.forEach(newTypeOrDirective => {\n if (isNamedType(newTypeOrDirective)) {\n originalTypeMap[newTypeOrDirective.name] = newTypeOrDirective;\n }\n else if (isDirective(newTypeOrDirective)) {\n originalDirectiveMap[newTypeOrDirective.name] = newTypeOrDirective;\n }\n });\n const { typeMap, directives } = rewireTypes(originalTypeMap, Object.keys(originalDirectiveMap).map(directiveName => originalDirectiveMap[directiveName]));\n return new GraphQLSchema({\n ...config,\n query: queryTypeName ? typeMap[queryTypeName] : undefined,\n mutation: mutationTypeName ? typeMap[mutationTypeName] : undefined,\n subscription: subscriptionTypeName != null ? typeMap[subscriptionTypeName] : undefined,\n types: Object.keys(typeMap).map(typeName => typeMap[typeName]),\n directives,\n });\n}\n//# sourceMappingURL=addTypes.js.map","import { getNamedType, isObjectType, isInterfaceType, isUnionType, isInputObjectType, } from 'graphql';\nimport { mapSchema } from './mapSchema';\nimport { MapperKind } from './Interfaces';\n/**\n * Prunes the provided schema, removing unused and empty types\n * @param schema The schema to prune\n * @param options Additional options for removing unused types from the schema\n */\nexport function pruneSchema(schema, options = {}) {\n const pruningContext = {\n schema,\n unusedTypes: Object.create(null),\n implementations: Object.create(null),\n };\n Object.keys(schema.getTypeMap()).forEach(typeName => {\n const type = schema.getType(typeName);\n if ('getInterfaces' in type) {\n type.getInterfaces().forEach(iface => {\n if (pruningContext.implementations[iface.name] == null) {\n pruningContext.implementations[iface.name] = Object.create(null);\n }\n pruningContext.implementations[iface.name][type.name] = true;\n });\n }\n });\n visitTypes(pruningContext, schema);\n return mapSchema(schema, {\n [MapperKind.TYPE]: (type) => {\n if (isObjectType(type) || isInputObjectType(type)) {\n if ((!Object.keys(type.getFields()).length && !options.skipEmptyCompositeTypePruning) ||\n (pruningContext.unusedTypes[type.name] && !options.skipUnusedTypesPruning)) {\n return null;\n }\n }\n else if (isUnionType(type)) {\n if ((!type.getTypes().length && !options.skipEmptyUnionPruning) ||\n (pruningContext.unusedTypes[type.name] && !options.skipUnusedTypesPruning)) {\n return null;\n }\n }\n else if (isInterfaceType(type)) {\n if ((!Object.keys(type.getFields()).length && !options.skipEmptyCompositeTypePruning) ||\n (!Object.keys(pruningContext.implementations[type.name]).length &&\n !options.skipUnimplementedInterfacesPruning) ||\n (pruningContext.unusedTypes[type.name] && !options.skipUnusedTypesPruning)) {\n return null;\n }\n }\n else {\n if (pruningContext.unusedTypes[type.name] && !options.skipUnusedTypesPruning) {\n return null;\n }\n }\n },\n });\n}\nfunction visitOutputType(visitedTypes, pruningContext, type) {\n if (visitedTypes[type.name]) {\n return;\n }\n visitedTypes[type.name] = true;\n pruningContext.unusedTypes[type.name] = false;\n if (isObjectType(type) || isInterfaceType(type)) {\n const fields = type.getFields();\n Object.keys(fields).forEach(fieldName => {\n const field = fields[fieldName];\n const namedType = getNamedType(field.type);\n visitOutputType(visitedTypes, pruningContext, namedType);\n const args = field.args;\n args.forEach(arg => {\n const type = getNamedType(arg.type);\n visitInputType(visitedTypes, pruningContext, type);\n });\n });\n if (isInterfaceType(type)) {\n Object.keys(pruningContext.implementations[type.name]).forEach(typeName => {\n visitOutputType(visitedTypes, pruningContext, pruningContext.schema.getType(typeName));\n });\n }\n if ('getInterfaces' in type) {\n type.getInterfaces().forEach(type => {\n visitOutputType(visitedTypes, pruningContext, type);\n });\n }\n }\n else if (isUnionType(type)) {\n const types = type.getTypes();\n types.forEach(type => visitOutputType(visitedTypes, pruningContext, type));\n }\n}\nfunction visitInputType(visitedTypes, pruningContext, type) {\n if (visitedTypes[type.name]) {\n return;\n }\n pruningContext.unusedTypes[type.name] = false;\n if (isInputObjectType(type)) {\n const fields = type.getFields();\n Object.keys(fields).forEach(fieldName => {\n const field = fields[fieldName];\n const namedType = getNamedType(field.type);\n visitInputType(visitedTypes, pruningContext, namedType);\n });\n }\n visitedTypes[type.name] = true;\n}\nfunction visitTypes(pruningContext, schema) {\n Object.keys(schema.getTypeMap()).forEach(typeName => {\n if (!typeName.startsWith('__')) {\n pruningContext.unusedTypes[typeName] = true;\n }\n });\n const visitedTypes = Object.create(null);\n const rootTypes = [schema.getQueryType(), schema.getMutationType(), schema.getSubscriptionType()].filter(type => type != null);\n rootTypes.forEach(rootType => visitOutputType(visitedTypes, pruningContext, rootType));\n schema.getDirectives().forEach(directive => {\n directive.args.forEach(arg => {\n const type = getNamedType(arg.type);\n visitInputType(visitedTypes, pruningContext, type);\n });\n });\n}\n//# sourceMappingURL=prune.js.map","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { isScalarType } from 'graphql';\nexport function mergeDeep(target, ...sources) {\n if (isScalarType(target)) {\n return target;\n }\n const output = {\n ...target,\n };\n for (const source of sources) {\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, { [key]: source[key] });\n }\n else {\n output[key] = mergeDeep(target[key], source[key]);\n }\n }\n else {\n Object.assign(output, { [key]: source[key] });\n }\n }\n }\n }\n return output;\n}\nfunction isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n//# sourceMappingURL=mergeDeep.js.map","import { Kind } from 'graphql';\nexport function renameFieldNode(fieldNode, name) {\n return {\n ...fieldNode,\n alias: {\n kind: Kind.NAME,\n value: fieldNode.alias != null ? fieldNode.alias.value : fieldNode.name.value,\n },\n name: {\n kind: Kind.NAME,\n value: name,\n },\n };\n}\nexport function preAliasFieldNode(fieldNode, str) {\n return {\n ...fieldNode,\n alias: {\n kind: Kind.NAME,\n value: `${str}${fieldNode.alias != null ? fieldNode.alias.value : fieldNode.name.value}`,\n },\n };\n}\nexport function wrapFieldNode(fieldNode, path) {\n let newFieldNode = fieldNode;\n path.forEach(fieldName => {\n newFieldNode = {\n kind: Kind.FIELD,\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}\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}\nexport function hoistFieldNodes({ fieldNode, fieldNames, path = [], delimeter = '__gqltf__', fragments, }) {\n const alias = fieldNode.alias != null ? fieldNode.alias.value : fieldNode.name.value;\n let newFieldNodes = [];\n if (path.length) {\n const remainingPathSegments = path.slice();\n const initialPathSegment = remainingPathSegments.shift();\n collectFields(fieldNode.selectionSet, fragments).forEach((possibleFieldNode) => {\n if (possibleFieldNode.name.value === initialPathSegment) {\n newFieldNodes = newFieldNodes.concat(hoistFieldNodes({\n fieldNode: preAliasFieldNode(possibleFieldNode, `${alias}${delimeter}`),\n fieldNames,\n path: remainingPathSegments,\n delimeter,\n fragments,\n }));\n }\n });\n }\n else {\n collectFields(fieldNode.selectionSet, fragments).forEach((possibleFieldNode) => {\n if (!fieldNames || fieldNames.includes(possibleFieldNode.name.value)) {\n newFieldNodes.push(preAliasFieldNode(possibleFieldNode, `${alias}${delimeter}`));\n }\n });\n }\n return newFieldNodes;\n}\n//# sourceMappingURL=fieldNodes.js.map","import { Kind, parse } from 'graphql';\nexport function concatInlineFragments(type, fragments) {\n const fragmentSelections = fragments.reduce((selections, fragment) => selections.concat(fragment.selectionSet.selections), []);\n const deduplicatedFragmentSelection = deduplicateSelection(fragmentSelections);\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: type,\n },\n },\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: deduplicatedFragmentSelection,\n },\n };\n}\nfunction deduplicateSelection(nodes) {\n const selectionMap = nodes.reduce((map, node) => {\n switch (node.kind) {\n case 'Field': {\n if (node.alias != null) {\n if (node.alias.value in map) {\n return map;\n }\n return {\n ...map,\n [node.alias.value]: node,\n };\n }\n if (node.name.value in map) {\n return map;\n }\n return {\n ...map,\n [node.name.value]: node,\n };\n }\n case 'FragmentSpread': {\n if (node.name.value in map) {\n return map;\n }\n return {\n ...map,\n [node.name.value]: node,\n };\n }\n case 'InlineFragment': {\n if (map.__fragment != null) {\n const fragment = map.__fragment;\n return {\n ...map,\n __fragment: concatInlineFragments(fragment.typeCondition.name.value, [fragment, node]),\n };\n }\n return {\n ...map,\n __fragment: node,\n };\n }\n default: {\n return map;\n }\n }\n }, Object.create(null));\n const selection = Object.keys(selectionMap).reduce((selectionList, node) => selectionList.concat(selectionMap[node]), []);\n return selection;\n}\nexport function parseFragmentToInlineFragment(definitions) {\n if (definitions.trim().startsWith('fragment')) {\n const document = parse(definitions);\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: definition.typeCondition,\n selectionSet: definition.selectionSet,\n };\n }\n }\n }\n const query = parse(`{${definitions}}`).definitions[0];\n for (const selection of query.selectionSet.selections) {\n if (selection.kind === Kind.INLINE_FRAGMENT) {\n return selection;\n }\n }\n throw new Error('Could not parse fragment');\n}\n//# sourceMappingURL=fragments.js.map","import { parse, Kind, getNamedType } from 'graphql';\nexport function parseSelectionSet(selectionSet) {\n const query = parse(selectionSet).definitions[0];\n return query.selectionSet;\n}\nexport function typeContainsSelectionSet(type, selectionSet) {\n const fields = type.getFields();\n for (const selection of selectionSet.selections) {\n if (selection.kind === Kind.FIELD) {\n const field = fields[selection.name.value];\n if (field == null) {\n return false;\n }\n if (selection.selectionSet != null) {\n return typeContainsSelectionSet(getNamedType(field.type), selection.selectionSet);\n }\n }\n else if (selection.kind === Kind.INLINE_FRAGMENT) {\n const containsSelectionSet = typeContainsSelectionSet(type, selection.selectionSet);\n if (!containsSelectionSet) {\n return false;\n }\n }\n }\n return true;\n}\n//# sourceMappingURL=selectionSets.js.map","/**\n * Get the key under which the result of this resolver will be placed in the response JSON. Basically, just\n * resolves aliases.\n * @param info The info argument to the resolver.\n */\nexport function getResponseKeyFromInfo(info) {\n return info.fieldNodes[0].alias != null ? info.fieldNodes[0].alias.value : info.fieldName;\n}\n//# sourceMappingURL=getResponseKeyFromInfo.js.map","import { cloneSchema } from './clone';\nexport function applySchemaTransforms(originalSchema, transforms) {\n return transforms.reduce((schema, transform) => transform.transformSchema != null ? transform.transformSchema(cloneSchema(schema)) : schema, originalSchema);\n}\nexport function applyRequestTransforms(originalRequest, transforms) {\n return transforms.reduce((request, transform) => transform.transformRequest != null ? transform.transformRequest(request) : request, originalRequest);\n}\nexport function applyResultTransforms(originalResult, transforms) {\n return transforms.reduceRight((result, transform) => transform.transformResult != null ? transform.transformResult(result) : result, originalResult);\n}\n//# sourceMappingURL=transforms.js.map","import { GraphQLObjectType } from 'graphql';\nimport { MapperKind } from './Interfaces';\nimport { mapSchema, correctASTNodes } from './mapSchema';\nimport { addTypes } from './addTypes';\nexport function appendObjectFields(schema, typeName, additionalFields) {\n if (schema.getType(typeName) == null) {\n return addTypes(schema, [\n new GraphQLObjectType({\n name: typeName,\n fields: additionalFields,\n }),\n ]);\n }\n return mapSchema(schema, {\n [MapperKind.OBJECT_TYPE]: type => {\n if (type.name === typeName) {\n const config = type.toConfig();\n const originalFieldConfigMap = config.fields;\n const newFieldConfigMap = {};\n Object.keys(originalFieldConfigMap).forEach(fieldName => {\n newFieldConfigMap[fieldName] = originalFieldConfigMap[fieldName];\n });\n Object.keys(additionalFields).forEach(fieldName => {\n newFieldConfigMap[fieldName] = additionalFields[fieldName];\n });\n return correctASTNodes(new GraphQLObjectType({\n ...config,\n fields: newFieldConfigMap,\n }));\n }\n },\n });\n}\nexport function removeObjectFields(schema, typeName, testFn) {\n const removedFields = {};\n const newSchema = mapSchema(schema, {\n [MapperKind.OBJECT_TYPE]: type => {\n if (type.name === typeName) {\n const config = type.toConfig();\n const originalFieldConfigMap = config.fields;\n const newFieldConfigMap = {};\n Object.keys(originalFieldConfigMap).forEach(fieldName => {\n const originalFieldConfig = originalFieldConfigMap[fieldName];\n if (testFn(fieldName, originalFieldConfig)) {\n removedFields[fieldName] = originalFieldConfig;\n }\n else {\n newFieldConfigMap[fieldName] = originalFieldConfig;\n }\n });\n return correctASTNodes(new GraphQLObjectType({\n ...config,\n fields: newFieldConfigMap,\n }));\n }\n },\n });\n return [newSchema, removedFields];\n}\nexport function selectObjectFields(schema, typeName, testFn) {\n const selectedFields = {};\n mapSchema(schema, {\n [MapperKind.OBJECT_TYPE]: type => {\n if (type.name === typeName) {\n const config = type.toConfig();\n const originalFieldConfigMap = config.fields;\n Object.keys(originalFieldConfigMap).forEach(fieldName => {\n const originalFieldConfig = originalFieldConfigMap[fieldName];\n if (testFn(fieldName, originalFieldConfig)) {\n selectedFields[fieldName] = originalFieldConfig;\n }\n });\n }\n return undefined;\n },\n });\n return selectedFields;\n}\nexport function modifyObjectFields(schema, typeName, testFn, newFields) {\n const removedFields = {};\n const newSchema = mapSchema(schema, {\n [MapperKind.OBJECT_TYPE]: type => {\n if (type.name === typeName) {\n const config = type.toConfig();\n const originalFieldConfigMap = config.fields;\n const newFieldConfigMap = {};\n Object.keys(originalFieldConfigMap).forEach(fieldName => {\n const originalFieldConfig = originalFieldConfigMap[fieldName];\n if (testFn(fieldName, originalFieldConfig)) {\n removedFields[fieldName] = originalFieldConfig;\n }\n else {\n newFieldConfigMap[fieldName] = originalFieldConfig;\n }\n });\n Object.keys(newFields).forEach(fieldName => {\n const fieldConfig = newFields[fieldName];\n newFieldConfigMap[fieldName] = fieldConfig;\n });\n return correctASTNodes(new GraphQLObjectType({\n ...config,\n fields: newFieldConfigMap,\n }));\n }\n },\n });\n return [newSchema, removedFields];\n}\n//# sourceMappingURL=fields.js.map","import { GraphQLEnumType, GraphQLInputObjectType, GraphQLInterfaceType, GraphQLObjectType, GraphQLScalarType, GraphQLUnionType, isEnumType, isInterfaceType, isInputObjectType, isObjectType, isScalarType, isUnionType, } from 'graphql';\nexport function renameType(type, newTypeName) {\n if (isObjectType(type)) {\n return new GraphQLObjectType({\n ...type.toConfig(),\n name: newTypeName,\n astNode: type.astNode == null\n ? type.astNode\n : {\n ...type.astNode,\n name: {\n ...type.astNode.name,\n value: newTypeName,\n },\n },\n extensionASTNodes: type.extensionASTNodes == null\n ? type.extensionASTNodes\n : type.extensionASTNodes.map(node => ({\n ...node,\n name: {\n ...node.name,\n value: newTypeName,\n },\n })),\n });\n }\n else if (isInterfaceType(type)) {\n return new GraphQLInterfaceType({\n ...type.toConfig(),\n name: newTypeName,\n astNode: type.astNode == null\n ? type.astNode\n : {\n ...type.astNode,\n name: {\n ...type.astNode.name,\n value: newTypeName,\n },\n },\n extensionASTNodes: type.extensionASTNodes == null\n ? type.extensionASTNodes\n : type.extensionASTNodes.map(node => ({\n ...node,\n name: {\n ...node.name,\n value: newTypeName,\n },\n })),\n });\n }\n else if (isUnionType(type)) {\n return new GraphQLUnionType({\n ...type.toConfig(),\n name: newTypeName,\n astNode: type.astNode == null\n ? type.astNode\n : {\n ...type.astNode,\n name: {\n ...type.astNode.name,\n value: newTypeName,\n },\n },\n extensionASTNodes: type.extensionASTNodes == null\n ? type.extensionASTNodes\n : type.extensionASTNodes.map(node => ({\n ...node,\n name: {\n ...node.name,\n value: newTypeName,\n },\n })),\n });\n }\n else if (isInputObjectType(type)) {\n return new GraphQLInputObjectType({\n ...type.toConfig(),\n name: newTypeName,\n astNode: type.astNode == null\n ? type.astNode\n : {\n ...type.astNode,\n name: {\n ...type.astNode.name,\n value: newTypeName,\n },\n },\n extensionASTNodes: type.extensionASTNodes == null\n ? type.extensionASTNodes\n : type.extensionASTNodes.map(node => ({\n ...node,\n name: {\n ...node.name,\n value: newTypeName,\n },\n })),\n });\n }\n else if (isEnumType(type)) {\n return new GraphQLEnumType({\n ...type.toConfig(),\n name: newTypeName,\n astNode: type.astNode == null\n ? type.astNode\n : {\n ...type.astNode,\n name: {\n ...type.astNode.name,\n value: newTypeName,\n },\n },\n extensionASTNodes: type.extensionASTNodes == null\n ? type.extensionASTNodes\n : type.extensionASTNodes.map(node => ({\n ...node,\n name: {\n ...node.name,\n value: newTypeName,\n },\n })),\n });\n }\n else if (isScalarType(type)) {\n return new GraphQLScalarType({\n ...type.toConfig(),\n name: newTypeName,\n astNode: type.astNode == null\n ? type.astNode\n : {\n ...type.astNode,\n name: {\n ...type.astNode.name,\n value: newTypeName,\n },\n },\n extensionASTNodes: type.extensionASTNodes == null\n ? type.extensionASTNodes\n : type.extensionASTNodes.map(node => ({\n ...node,\n name: {\n ...node.name,\n value: newTypeName,\n },\n })),\n });\n }\n throw new Error(`Unknown type ${type}.`);\n}\n//# sourceMappingURL=renameType.js.map","import { Kind, getDirectiveValues, GraphQLSkipDirective, GraphQLIncludeDirective, typeFromAST, isAbstractType, } from 'graphql';\n/**\n * Given a selectionSet, adds all of the fields in that selection to\n * the passed in map of fields, and returns it at the end.\n *\n * CollectFields requires the \"runtime type\" of an object. For a field which\n * returns an Interface or Union type, the \"runtime type\" will be the actual\n * Object type returned by that field.\n *\n * @internal\n */\nexport function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFragmentNames) {\n for (const selection of selectionSet.selections) {\n switch (selection.kind) {\n case Kind.FIELD: {\n if (!shouldIncludeNode(exeContext, selection)) {\n continue;\n }\n const name = getFieldEntryKey(selection);\n if (!(name in fields)) {\n fields[name] = [];\n }\n fields[name].push(selection);\n break;\n }\n case Kind.INLINE_FRAGMENT: {\n if (!shouldIncludeNode(exeContext, selection) ||\n !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {\n continue;\n }\n collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);\n break;\n }\n case Kind.FRAGMENT_SPREAD: {\n const fragName = selection.name.value;\n if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {\n continue;\n }\n visitedFragmentNames[fragName] = true;\n const fragment = exeContext.fragments[fragName];\n if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {\n continue;\n }\n collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);\n break;\n }\n }\n }\n return fields;\n}\n/**\n * Determines if a field should be included based on the @include and @skip\n * directives, where @skip has higher precedence than @include.\n */\nfunction shouldIncludeNode(exeContext, node) {\n const skip = getDirectiveValues(GraphQLSkipDirective, node, exeContext.variableValues);\n if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) {\n return false;\n }\n const include = getDirectiveValues(GraphQLIncludeDirective, node, exeContext.variableValues);\n if ((include === null || include === void 0 ? void 0 : include.if) === false) {\n return false;\n }\n return true;\n}\n/**\n * Determines if a fragment is applicable to the given type.\n */\nfunction doesFragmentConditionMatch(exeContext, fragment, type) {\n const typeConditionNode = fragment.typeCondition;\n if (!typeConditionNode) {\n return true;\n }\n const conditionalType = typeFromAST(exeContext.schema, typeConditionNode);\n if (conditionalType === type) {\n return true;\n }\n if (isAbstractType(conditionalType)) {\n return exeContext.schema.isPossibleType(conditionalType, type);\n }\n return false;\n}\n/**\n * Implements the logic to compute the key of a given field's entry\n */\nfunction getFieldEntryKey(node) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return node.alias ? node.alias.value : node.name.value;\n}\n//# sourceMappingURL=collectFields.js.map","/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\nexport function mapAsyncIterator(iterator, callback, rejectCallback) {\n let $return;\n let abruptClose;\n if (typeof iterator.return === 'function') {\n $return = iterator.return;\n abruptClose = (error) => {\n const rethrow = () => Promise.reject(error);\n return $return.call(iterator).then(rethrow, rethrow);\n };\n }\n function mapResult(result) {\n return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);\n }\n let mapReject;\n if (rejectCallback) {\n // Capture rejectCallback to ensure it cannot be null.\n const reject = rejectCallback;\n mapReject = (error) => asyncMapValue(error, reject).then(iteratorResult, abruptClose);\n }\n return {\n next() {\n return iterator.next().then(mapResult, mapReject);\n },\n return() {\n return $return\n ? $return.call(iterator).then(mapResult, mapReject)\n : Promise.resolve({ value: undefined, done: true });\n },\n throw(error) {\n if (typeof iterator.throw === 'function') {\n return iterator.throw(error).then(mapResult, mapReject);\n }\n return Promise.reject(error).catch(abruptClose);\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\nfunction asyncMapValue(value, callback) {\n return new Promise(resolve => resolve(callback(value)));\n}\nfunction iteratorResult(value) {\n return { value, done: false };\n}\n//# sourceMappingURL=mapAsyncIterator.js.map","import { isNonNullType, Kind, isListType } from 'graphql';\nexport function astFromType(type) {\n if (isNonNullType(type)) {\n const innerType = astFromType(type.ofType);\n if (innerType.kind === Kind.NON_NULL_TYPE) {\n throw new Error(`Invalid type node ${JSON.stringify(type)}. Inner type of non-null type cannot be a non-null type.`);\n }\n return {\n kind: Kind.NON_NULL_TYPE,\n type: innerType,\n };\n }\n else if (isListType(type)) {\n return {\n kind: Kind.LIST_TYPE,\n type: astFromType(type.ofType),\n };\n }\n return {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n };\n}\n//# sourceMappingURL=astFromType.js.map","import { Kind } from 'graphql';\nimport { astFromType } from './astFromType';\nexport function updateArgument(argName, argType, argumentNodes, variableDefinitionsMap, variableValues, newArg) {\n let varName;\n let numGeneratedVariables = 0;\n do {\n varName = `_v${(numGeneratedVariables++).toString()}_${argName}`;\n } while (varName in variableDefinitionsMap);\n argumentNodes[argName] = {\n kind: Kind.ARGUMENT,\n name: {\n kind: Kind.NAME,\n value: argName,\n },\n value: {\n kind: Kind.VARIABLE,\n name: {\n kind: Kind.NAME,\n value: varName,\n },\n },\n };\n variableDefinitionsMap[varName] = {\n kind: Kind.VARIABLE_DEFINITION,\n variable: {\n kind: Kind.VARIABLE,\n name: {\n kind: Kind.NAME,\n value: varName,\n },\n },\n type: astFromType(argType),\n };\n if (newArg === undefined) {\n delete variableValues[varName];\n }\n else {\n variableValues[varName] = newArg;\n }\n}\n//# sourceMappingURL=updateArgument.js.map","import { doTypesOverlap, isCompositeType } from 'graphql';\nexport function implementsAbstractType(schema, typeA, typeB) {\n if (typeA === typeB) {\n return true;\n }\n else if (isCompositeType(typeA) && isCompositeType(typeB)) {\n return doTypesOverlap(schema, typeA, typeB);\n }\n return false;\n}\n//# sourceMappingURL=implementsAbstractType.js.map","import { GraphQLError } from 'graphql';\nexport const ERROR_SYMBOL = Symbol('subschemaErrors');\nexport function relocatedError(originalError, path) {\n return new GraphQLError(originalError.message, originalError.nodes, originalError.source, originalError.positions, path === null ? undefined : path === undefined ? originalError.path : path, originalError.originalError, originalError.extensions);\n}\nexport function slicedError(originalError) {\n return relocatedError(originalError, originalError.path != null ? originalError.path.slice(1) : undefined);\n}\nexport function getErrorsByPathSegment(errors) {\n const record = Object.create(null);\n errors.forEach(error => {\n if (!error.path || error.path.length < 2) {\n return;\n }\n const pathSegment = error.path[1];\n const current = pathSegment in record ? record[pathSegment] : [];\n current.push(slicedError(error));\n record[pathSegment] = current;\n });\n return record;\n}\nexport function setErrors(result, errors) {\n result[ERROR_SYMBOL] = errors;\n}\nexport function getErrors(result, pathSegment) {\n const errors = result != null ? result[ERROR_SYMBOL] : result;\n if (!Array.isArray(errors)) {\n return null;\n }\n const fieldErrors = [];\n for (const error of errors) {\n if (!error.path || error.path[0] === pathSegment) {\n fieldErrors.push(error);\n }\n }\n return fieldErrors;\n}\n//# sourceMappingURL=errors.js.map","export function inputFieldToFieldConfig(field) {\n return {\n description: field.description,\n type: field.type,\n defaultValue: field.defaultValue,\n extensions: field.extensions,\n astNode: field.astNode,\n };\n}\nexport function fieldToFieldConfig(field) {\n return {\n description: field.description,\n type: field.type,\n args: argsToFieldConfigArgumentMap(field.args),\n resolve: field.resolve,\n subscribe: field.subscribe,\n deprecationReason: field.deprecationReason,\n extensions: field.extensions,\n astNode: field.astNode,\n };\n}\nexport function argsToFieldConfigArgumentMap(args) {\n const newArguments = {};\n args.forEach(arg => {\n newArguments[arg.name] = argumentToArgumentConfig(arg);\n });\n return newArguments;\n}\nexport function argumentToArgumentConfig(arg) {\n return {\n description: arg.description,\n type: arg.type,\n defaultValue: arg.defaultValue,\n extensions: arg.extensions,\n astNode: arg.astNode,\n };\n}\n//# sourceMappingURL=toConfig.js.map","export function observableToAsyncIterable(observable) {\n const pullQueue = [];\n const pushQueue = [];\n let listening = true;\n const pushValue = (value) => {\n if (pullQueue.length !== 0) {\n pullQueue.shift()({ value, done: false });\n }\n else {\n pushQueue.push({ value });\n }\n };\n const pushError = (error) => {\n if (pullQueue.length !== 0) {\n pullQueue.shift()({ value: { errors: [error] }, done: false });\n }\n else {\n pushQueue.push({ value: { errors: [error] } });\n }\n };\n const pullValue = () => new Promise(resolve => {\n if (pushQueue.length !== 0) {\n const element = pushQueue.shift();\n // either {value: {errors: [...]}} or {value: ...}\n resolve({\n ...element,\n done: false,\n });\n }\n else {\n pullQueue.push(resolve);\n }\n });\n const subscription = observable.subscribe({\n next(value) {\n pushValue(value);\n },\n error(err) {\n pushError(err);\n },\n });\n const emptyQueue = () => {\n if (listening) {\n listening = false;\n subscription.unsubscribe();\n pullQueue.forEach(resolve => resolve({ value: undefined, done: true }));\n pullQueue.length = 0;\n pushQueue.length = 0;\n }\n };\n return {\n next() {\n return listening ? pullValue() : this.return();\n },\n return() {\n emptyQueue();\n return Promise.resolve({ value: undefined, done: true });\n },\n throw(error) {\n emptyQueue();\n return Promise.reject(error);\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n//# sourceMappingURL=observableToAsyncIterable.js.map","import { getOperationRootType, getOperationAST, Kind, isListType, getNullableType, isAbstractType, isObjectType, } from 'graphql';\nimport { collectFields } from './collectFields';\nexport function visitData(data, enter, leave) {\n if (Array.isArray(data)) {\n return data.map(value => visitData(value, enter, leave));\n }\n else if (typeof data === 'object') {\n const newData = enter != null ? enter(data) : data;\n if (newData != null) {\n Object.keys(newData).forEach(key => {\n const value = newData[key];\n newData[key] = visitData(value, enter, leave);\n });\n }\n return leave != null ? leave(newData) : newData;\n }\n return data;\n}\nexport function visitErrors(errors, visitor) {\n return errors.map(error => visitor(error));\n}\nexport function visitResult(result, request, schema, resultVisitorMap, errorVisitorMap) {\n const partialExecutionContext = {\n schema,\n fragments: request.document.definitions.reduce((acc, def) => {\n if (def.kind === Kind.FRAGMENT_DEFINITION) {\n acc[def.name.value] = def;\n }\n return acc;\n }, {}),\n variableValues: request.variables,\n };\n const errorInfo = {\n segmentInfoMap: new Map(),\n unpathedErrors: [],\n };\n const data = result.data;\n const errors = result.errors;\n const visitingErrors = errors != null && errorVisitorMap != null;\n if (data != null) {\n result.data = visitRoot(data, getOperationAST(request.document, undefined), partialExecutionContext, resultVisitorMap, visitingErrors ? errors : undefined, errorInfo);\n }\n if (visitingErrors) {\n result.errors = visitErrorsByType(errors, errorVisitorMap, errorInfo);\n }\n return result;\n}\nfunction visitErrorsByType(errors, errorVisitorMap, errorInfo) {\n return errors.map(error => {\n const pathSegmentsInfo = errorInfo.segmentInfoMap.get(error);\n if (pathSegmentsInfo == null) {\n return error;\n }\n return pathSegmentsInfo.reduceRight((acc, segmentInfo) => {\n const typeName = segmentInfo.type.name;\n const typeVisitorMap = errorVisitorMap[typeName];\n if (typeVisitorMap == null) {\n return acc;\n }\n const errorVisitor = typeVisitorMap[segmentInfo.fieldName];\n return errorVisitor == null ? acc : errorVisitor(acc, segmentInfo.pathIndex);\n }, error);\n });\n}\nfunction visitRoot(root, operation, exeContext, resultVisitorMap, errors, errorInfo) {\n const operationRootType = getOperationRootType(exeContext.schema, operation);\n const collectedFields = collectFields(exeContext, operationRootType, operation.selectionSet, Object.create(null), Object.create(null));\n return visitObjectValue(root, operationRootType, collectedFields, exeContext, resultVisitorMap, 0, errors, errorInfo);\n}\nfunction visitObjectValue(object, type, fieldNodeMap, exeContext, resultVisitorMap, pathIndex, errors, errorInfo) {\n const fieldMap = type.getFields();\n const typeVisitorMap = resultVisitorMap === null || resultVisitorMap === void 0 ? void 0 : resultVisitorMap[type.name];\n const enterObject = typeVisitorMap === null || typeVisitorMap === void 0 ? void 0 : typeVisitorMap.__enter;\n const newObject = enterObject != null ? enterObject(object) : object;\n let sortedErrors;\n let errorMap;\n if (errors != null) {\n sortedErrors = sortErrorsByPathSegment(errors, pathIndex);\n errorMap = sortedErrors.errorMap;\n errorInfo.unpathedErrors = errorInfo.unpathedErrors.concat(sortedErrors.unpathedErrors);\n }\n Object.keys(fieldNodeMap).forEach(responseKey => {\n const subFieldNodes = fieldNodeMap[responseKey];\n const fieldName = subFieldNodes[0].name.value;\n const fieldType = fieldMap[fieldName].type;\n const newPathIndex = pathIndex + 1;\n let fieldErrors;\n if (errors != null) {\n fieldErrors = errorMap[responseKey];\n if (fieldErrors != null) {\n delete errorMap[responseKey];\n }\n addPathSegmentInfo(type, fieldName, newPathIndex, fieldErrors, errorInfo);\n }\n const newValue = visitFieldValue(object[responseKey], fieldType, subFieldNodes, exeContext, resultVisitorMap, newPathIndex, fieldErrors, errorInfo);\n updateObject(newObject, responseKey, newValue, typeVisitorMap, fieldName);\n });\n const oldTypename = newObject.__typename;\n if (oldTypename != null) {\n updateObject(newObject, '__typename', oldTypename, typeVisitorMap, '__typename');\n }\n if (errors != null) {\n Object.keys(errorMap).forEach(unknownResponseKey => {\n errorInfo.unpathedErrors = errorInfo.unpathedErrors.concat(errorMap[unknownResponseKey]);\n });\n }\n const leaveObject = typeVisitorMap === null || typeVisitorMap === void 0 ? void 0 : typeVisitorMap.__leave;\n return leaveObject != null ? leaveObject(newObject) : newObject;\n}\nfunction updateObject(object, responseKey, newValue, typeVisitorMap, fieldName) {\n if (typeVisitorMap == null) {\n object[responseKey] = newValue;\n return;\n }\n const fieldVisitor = typeVisitorMap[fieldName];\n if (fieldVisitor == null) {\n object[responseKey] = newValue;\n return;\n }\n const visitedValue = fieldVisitor(newValue);\n if (visitedValue === undefined) {\n delete object[responseKey];\n return;\n }\n object[responseKey] = visitedValue;\n}\nfunction visitListValue(list, returnType, fieldNodes, exeContext, resultVisitorMap, pathIndex, errors, errorInfo) {\n return list.map(listMember => visitFieldValue(listMember, returnType, fieldNodes, exeContext, resultVisitorMap, pathIndex + 1, errors, errorInfo));\n}\nfunction visitFieldValue(value, returnType, fieldNodes, exeContext, resultVisitorMap, pathIndex, errors = [], errorInfo) {\n if (value == null) {\n return value;\n }\n const nullableType = getNullableType(returnType);\n if (isListType(nullableType)) {\n return visitListValue(value, nullableType.ofType, fieldNodes, exeContext, resultVisitorMap, pathIndex, errors, errorInfo);\n }\n else if (isAbstractType(nullableType)) {\n const finalType = exeContext.schema.getType(value.__typename);\n const collectedFields = collectSubFields(exeContext, finalType, fieldNodes);\n return visitObjectValue(value, finalType, collectedFields, exeContext, resultVisitorMap, pathIndex, errors, errorInfo);\n }\n else if (isObjectType(nullableType)) {\n const collectedFields = collectSubFields(exeContext, nullableType, fieldNodes);\n return visitObjectValue(value, nullableType, collectedFields, exeContext, resultVisitorMap, pathIndex, errors, errorInfo);\n }\n const typeVisitorMap = resultVisitorMap === null || resultVisitorMap === void 0 ? void 0 : resultVisitorMap[nullableType.name];\n if (typeVisitorMap == null) {\n return value;\n }\n const visitedValue = typeVisitorMap(value);\n return visitedValue === undefined ? value : visitedValue;\n}\nfunction sortErrorsByPathSegment(errors, pathIndex) {\n const errorMap = Object.create(null);\n const unpathedErrors = [];\n errors.forEach(error => {\n var _a;\n const pathSegment = (_a = error.path) === null || _a === void 0 ? void 0 : _a[pathIndex];\n if (pathSegment == null) {\n unpathedErrors.push(error);\n return;\n }\n if (pathSegment in errorMap) {\n errorMap[pathSegment].push(error);\n }\n else {\n errorMap[pathSegment] = [error];\n }\n });\n return {\n errorMap,\n unpathedErrors,\n };\n}\nfunction addPathSegmentInfo(type, fieldName, pathIndex, errors = [], errorInfo) {\n errors.forEach(error => {\n const segmentInfo = {\n type,\n fieldName,\n pathIndex,\n };\n const pathSegmentsInfo = errorInfo.segmentInfoMap.get(error);\n if (pathSegmentsInfo == null) {\n errorInfo.segmentInfoMap.set(error, [segmentInfo]);\n }\n else {\n pathSegmentsInfo.push(segmentInfo);\n }\n });\n}\nfunction collectSubFields(exeContext, type, fieldNodes) {\n let subFieldNodes = Object.create(null);\n const visitedFragmentNames = Object.create(null);\n fieldNodes.forEach(fieldNode => {\n subFieldNodes = collectFields(exeContext, type, fieldNode.selectionSet, subFieldNodes, visitedFragmentNames);\n });\n return subFieldNodes;\n}\n//# sourceMappingURL=visitResult.js.map"],"names":["GraphQLSource","pruneTypes","getTypeSpecifiers","collectFields","getDirectiveValues"],"mappings":"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"}
\No newline at end of file