@graphql-tools/utils 7.7.2 → 7.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js.map CHANGED
@@ -1 +1 @@
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/astFromType.js","../../../dist/utils/src/astFromValueUntyped.js","../../../dist/utils/src/print-schema-with-directives.js","../../../dist/utils/src/validate-documents.js","../../../dist/utils/src/fix-schema-ast.js","../../../node_modules/graphql/language/blockString.mjs","../../../dist/utils/src/parse-graphql-sdl.js","../../../dist/utils/src/parse-graphql-json.js","../../../dist/utils/src/get-user-types-from-schema.js","../../../dist/utils/src/create-schema-definition.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/selectionSets.js","../../../dist/utils/src/getResponseKeyFromInfo.js","../../../dist/utils/src/fields.js","../../../dist/utils/src/renameType.js","../../../dist/utils/src/collectFields.js","../../../dist/utils/src/mapAsyncIterator.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","../../../dist/utils/src/valueMatchesCriteria.js","../../../dist/utils/src/isAsyncIterable.js","../../../dist/utils/src/isDocumentNode.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 getDirectivesInExtensions(node, pathToDirectivesInExtensions = ['directives']) {\n const directivesInExtensions = pathToDirectivesInExtensions.reduce((acc, pathSegment) => (acc == null ? acc : acc[pathSegment]), node === null || node === void 0 ? void 0 : node.extensions);\n return directivesInExtensions;\n}\nexport function getDirectives(schema, node, pathToDirectivesInExtensions = ['directives']) {\n const directivesInExtensions = getDirectivesInExtensions(node, pathToDirectivesInExtensions);\n if (directivesInExtensions != null) {\n return directivesInExtensions;\n }\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(directiveNode => {\n var _a;\n const schemaDirective = schemaDirectiveMap[directiveNode.name.value];\n if (schemaDirective) {\n if (schemaDirective.isRepeatable) {\n result[schemaDirective.name] = (_a = result[schemaDirective.name]) !== null && _a !== void 0 ? _a : [];\n result[schemaDirective.name].push(getArgumentValues(schemaDirective, directiveNode));\n }\n else {\n result[schemaDirective.name] = getArgumentValues(schemaDirective, directiveNode);\n }\n }\n });\n }\n });\n return result;\n}\n//# sourceMappingURL=get-directives.js.map","import { Kind, } from 'graphql';\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, options = {}) {\n const result = {};\n let selected = ['ObjectTypeDefinition', 'ObjectTypeExtension'];\n if (options.includeInputTypes) {\n selected = [...selected, 'InputObjectTypeDefinition', 'InputObjectTypeExtension'];\n }\n const allTypes = documentNode.definitions.filter(obj => selected.includes(obj.kind));\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","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';\n/**\n * Produces a GraphQL Value AST given a JavaScript object.\n * Function will match JavaScript/JSON values to GraphQL AST schema format\n * by using the following mapping.\n *\n * | JSON Value | GraphQL Value |\n * | ------------- | -------------------- |\n * | Object | Input Object |\n * | Array | List |\n * | Boolean | Boolean |\n * | String | String |\n * | Number | Int / Float |\n * | null | NullValue |\n *\n */\nexport function astFromValueUntyped(value) {\n // only explicit null, not undefined, NaN\n if (value === null) {\n return { kind: Kind.NULL };\n }\n // undefined\n if (value === undefined) {\n return null;\n }\n // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but\n // the value is not an array, convert the value using the list's item type.\n if (Array.isArray(value)) {\n const valuesNodes = [];\n value.forEach(item => {\n const itemNode = astFromValueUntyped(item);\n if (itemNode != null) {\n valuesNodes.push(itemNode);\n }\n });\n return { kind: Kind.LIST, values: valuesNodes };\n }\n if (typeof value === 'object') {\n const fieldNodes = [];\n Object.entries(value).forEach(([fieldName, fieldValue]) => {\n const ast = astFromValueUntyped(fieldValue);\n if (ast) {\n fieldNodes.push({\n kind: Kind.OBJECT_FIELD,\n name: { kind: Kind.NAME, value: fieldName },\n value: ast,\n });\n }\n });\n return { kind: Kind.OBJECT, fields: fieldNodes };\n }\n // Others serialize based on their corresponding JavaScript scalar types.\n if (typeof value === 'boolean') {\n return { kind: Kind.BOOLEAN, value };\n }\n // JavaScript numbers can be Int or Float values.\n if (typeof value === 'number' && isFinite(value)) {\n const stringNum = String(value);\n return integerStringRegExp.test(stringNum)\n ? { kind: Kind.INT, value: stringNum }\n : { kind: Kind.FLOAT, value: stringNum };\n }\n if (typeof value === 'string') {\n return { kind: Kind.STRING, value };\n }\n throw new TypeError(`Cannot convert value to AST: ${value}.`);\n}\n/**\n * IntValue:\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit ( Digit+ )?\n */\nconst integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;\n//# sourceMappingURL=astFromValueUntyped.js.map","import { print, Kind, isSpecifiedScalarType, isIntrospectionType, isSpecifiedDirective, astFromValue, GraphQLDeprecatedDirective, isObjectType, isInterfaceType, isUnionType, isInputObjectType, isEnumType, isScalarType, } from 'graphql';\nimport { astFromType } from './astFromType';\nimport { getDirectivesInExtensions } from './get-directives';\nimport { astFromValueUntyped } from './astFromValueUntyped';\nexport function getDocumentNodeFromSchema(schema, options = {}) {\n const pathToDirectivesInExtensions = options.pathToDirectivesInExtensions;\n const typesMap = schema.getTypeMap();\n const schemaNode = astFromSchema(schema, pathToDirectivesInExtensions);\n const definitions = schemaNode != null ? [schemaNode] : [];\n for (const typeName in typesMap) {\n const type = typesMap[typeName];\n const isPredefinedScalar = isSpecifiedScalarType(type);\n const isIntrospection = isIntrospectionType(type);\n if (isPredefinedScalar || isIntrospection) {\n continue;\n }\n if (isObjectType(type)) {\n definitions.push(astFromObjectType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isInterfaceType(type)) {\n definitions.push(astFromInterfaceType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isUnionType(type)) {\n definitions.push(astFromUnionType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isInputObjectType(type)) {\n definitions.push(astFromInputObjectType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isEnumType(type)) {\n definitions.push(astFromEnumType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isScalarType(type)) {\n definitions.push(astFromScalarType(type, schema, pathToDirectivesInExtensions));\n }\n else {\n throw new Error(`Unknown type ${type}.`);\n }\n }\n const directives = schema.getDirectives();\n for (const directive of directives) {\n if (isSpecifiedDirective(directive)) {\n continue;\n }\n definitions.push(astFromDirective(directive, schema, pathToDirectivesInExtensions));\n }\n return {\n kind: Kind.DOCUMENT,\n definitions,\n };\n}\n// this approach uses the default schema printer rather than a custom solution, so may be more backwards compatible\n// currently does not allow customization of printSchema options having to do with comments.\nexport function printSchemaWithDirectives(schema, options = {}) {\n const documentNode = getDocumentNodeFromSchema(schema, options);\n return print(documentNode);\n}\nexport function astFromSchema(schema, pathToDirectivesInExtensions) {\n var _a, _b;\n const operationTypeMap = {\n query: undefined,\n mutation: undefined,\n subscription: undefined,\n };\n let nodes = [];\n if (schema.astNode != null) {\n nodes.push(schema.astNode);\n }\n if (schema.extensionASTNodes != null) {\n nodes = nodes.concat(schema.extensionASTNodes);\n }\n nodes.forEach(node => {\n if (node.operationTypes) {\n node.operationTypes.forEach(operationTypeDefinitionNode => {\n operationTypeMap[operationTypeDefinitionNode.operation] = operationTypeDefinitionNode;\n });\n }\n });\n const rootTypeMap = {\n query: schema.getQueryType(),\n mutation: schema.getMutationType(),\n subscription: schema.getSubscriptionType(),\n };\n Object.keys(operationTypeMap).forEach(operationTypeNode => {\n if (rootTypeMap[operationTypeNode] != null) {\n if (operationTypeMap[operationTypeNode] != null) {\n operationTypeMap[operationTypeNode].type = astFromType(rootTypeMap[operationTypeNode]);\n }\n else {\n operationTypeMap[operationTypeNode] = {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operationTypeNode,\n type: astFromType(rootTypeMap[operationTypeNode]),\n };\n }\n }\n });\n const operationTypes = Object.values(operationTypeMap).filter(operationTypeDefinitionNode => operationTypeDefinitionNode != null);\n const directives = getDirectiveNodes(schema, schema, pathToDirectivesInExtensions);\n if (!operationTypes.length && !directives.length) {\n return null;\n }\n const schemaNode = {\n kind: operationTypes != null ? Kind.SCHEMA_DEFINITION : Kind.SCHEMA_EXTENSION,\n operationTypes,\n directives,\n };\n schemaNode.description =\n ((_b = (_a = schema.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : schema.description != null)\n ? {\n kind: Kind.STRING,\n value: schema.description,\n block: true,\n }\n : undefined;\n return schemaNode;\n}\nexport function astFromDirective(directive, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: (_b = (_a = directive.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : (directive.description\n ? {\n kind: Kind.STRING,\n value: directive.description,\n }\n : undefined),\n name: {\n kind: Kind.NAME,\n value: directive.name,\n },\n arguments: (directive === null || directive === void 0 ? void 0 : directive.args)\n ? directive.args.map(arg => astFromArg(arg, schema, pathToDirectivesInExtensions))\n : undefined,\n repeatable: directive.isRepeatable,\n locations: (directive === null || directive === void 0 ? void 0 : directive.locations)\n ? directive.locations.map(location => ({\n kind: Kind.NAME,\n value: location,\n }))\n : undefined,\n };\n}\nexport function getDirectiveNodes(entity, schema, pathToDirectivesInExtensions) {\n const directivesInExtensions = getDirectivesInExtensions(entity, pathToDirectivesInExtensions);\n let nodes = [];\n if (entity.astNode != null) {\n nodes.push(entity.astNode);\n }\n if ('extensionASTNodes' in entity && entity.extensionASTNodes != null) {\n nodes = nodes.concat(entity.extensionASTNodes);\n }\n let directives;\n if (directivesInExtensions != null) {\n directives = makeDirectiveNodes(schema, directivesInExtensions);\n }\n else {\n directives = [].concat(...nodes.filter(node => node.directives != null).map(node => node.directives));\n }\n return directives;\n}\nexport function getDeprecatableDirectiveNodes(entity, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n let directiveNodesBesidesDeprecated = [];\n let deprecatedDirectiveNode;\n const directivesInExtensions = getDirectivesInExtensions(entity, pathToDirectivesInExtensions);\n let directives;\n if (directivesInExtensions != null) {\n directives = makeDirectiveNodes(schema, directivesInExtensions);\n }\n else {\n directives = (_a = entity.astNode) === null || _a === void 0 ? void 0 : _a.directives;\n }\n if (directives != null) {\n directiveNodesBesidesDeprecated = directives.filter(directive => directive.name.value !== 'deprecated');\n if (entity.deprecationReason != null) {\n deprecatedDirectiveNode = (_b = directives.filter(directive => directive.name.value === 'deprecated')) === null || _b === void 0 ? void 0 : _b[0];\n }\n }\n if (entity.deprecationReason != null &&\n deprecatedDirectiveNode == null) {\n deprecatedDirectiveNode = makeDeprecatedDirective(entity.deprecationReason);\n }\n return deprecatedDirectiveNode == null\n ? directiveNodesBesidesDeprecated\n : [deprecatedDirectiveNode].concat(directiveNodesBesidesDeprecated);\n}\nexport function astFromArg(arg, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: ((_b = (_a = arg.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : arg.description)\n ? {\n kind: Kind.STRING,\n value: arg.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: arg.name,\n },\n type: astFromType(arg.type),\n defaultValue: arg.defaultValue !== undefined ? astFromValue(arg.defaultValue, arg.type) : undefined,\n directives: getDeprecatableDirectiveNodes(arg, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromObjectType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n fields: Object.values(type.getFields()).map(field => astFromField(field, schema, pathToDirectivesInExtensions)),\n interfaces: Object.values(type.getInterfaces()).map(iFace => astFromType(iFace)),\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromInterfaceType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n const node = {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n fields: Object.values(type.getFields()).map(field => astFromField(field, schema, pathToDirectivesInExtensions)),\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n };\n if ('getInterfaces' in type) {\n node.interfaces = Object.values(type.getInterfaces()).map(iFace => astFromType(iFace));\n }\n return node;\n}\nexport function astFromUnionType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n types: type.getTypes().map(type => astFromType(type)),\n };\n}\nexport function astFromInputObjectType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n fields: Object.values(type.getFields()).map(field => astFromInputField(field, schema, pathToDirectivesInExtensions)),\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromEnumType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n values: Object.values(type.getValues()).map(value => astFromEnumValue(value, schema, pathToDirectivesInExtensions)),\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromScalarType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b, _c, _d;\n let directiveNodesBesidesSpecifiedBy = [];\n let specifiedByDirectiveNode;\n const directivesInExtensions = getDirectivesInExtensions(type, pathToDirectivesInExtensions);\n let allDirectives;\n if (directivesInExtensions != null) {\n allDirectives = makeDirectiveNodes(schema, directivesInExtensions);\n }\n else {\n allDirectives = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.directives;\n }\n if (allDirectives != null) {\n directiveNodesBesidesSpecifiedBy = allDirectives.filter(directive => directive.name.value !== 'specifiedBy');\n if (type.specifiedByUrl != null) {\n specifiedByDirectiveNode = (_b = allDirectives.filter(directive => directive.name.value === 'specifiedBy')) === null || _b === void 0 ? void 0 : _b[0];\n }\n }\n if (type.specifiedByUrl != null && specifiedByDirectiveNode == null) {\n specifiedByDirectiveNode = makeDirectiveNode('specifiedBy', {\n url: type.specifiedByUrl,\n });\n }\n const directives = specifiedByDirectiveNode == null\n ? directiveNodesBesidesSpecifiedBy\n : [specifiedByDirectiveNode].concat(directiveNodesBesidesSpecifiedBy);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: ((_d = (_c = type.astNode) === null || _c === void 0 ? void 0 : _c.description) !== null && _d !== void 0 ? _d : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n directives,\n };\n}\nexport function astFromField(field, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.FIELD_DEFINITION,\n description: ((_b = (_a = field.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : field.description)\n ? {\n kind: Kind.STRING,\n value: field.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: field.name,\n },\n arguments: field.args.map(arg => astFromArg(arg, schema, pathToDirectivesInExtensions)),\n type: astFromType(field.type),\n directives: getDeprecatableDirectiveNodes(field, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromInputField(field, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: ((_b = (_a = field.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : field.description)\n ? {\n kind: Kind.STRING,\n value: field.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: field.name,\n },\n type: astFromType(field.type),\n directives: getDeprecatableDirectiveNodes(field, schema, pathToDirectivesInExtensions),\n defaultValue: astFromValue(field.defaultValue, field.type),\n };\n}\nexport function astFromEnumValue(value, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: ((_b = (_a = value.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : value.description)\n ? {\n kind: Kind.STRING,\n value: value.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: value.name,\n },\n directives: getDirectiveNodes(value, schema, pathToDirectivesInExtensions),\n };\n}\nexport function makeDeprecatedDirective(deprecationReason) {\n return makeDirectiveNode('deprecated', { reason: deprecationReason }, GraphQLDeprecatedDirective);\n}\nexport function makeDirectiveNode(name, args, directive) {\n const directiveArguments = [];\n if (directive != null) {\n directive.args.forEach(arg => {\n const argName = arg.name;\n const argValue = args[argName];\n if (argValue !== undefined) {\n directiveArguments.push({\n kind: Kind.ARGUMENT,\n name: {\n kind: Kind.NAME,\n value: argName,\n },\n value: astFromValue(argValue, arg.type),\n });\n }\n });\n }\n else {\n Object.entries(args).forEach(([argName, argValue]) => {\n directiveArguments.push({\n kind: Kind.ARGUMENT,\n name: {\n kind: Kind.NAME,\n value: argName,\n },\n value: astFromValueUntyped(argValue),\n });\n });\n }\n return {\n kind: Kind.DIRECTIVE,\n name: {\n kind: Kind.NAME,\n value: name,\n },\n arguments: directiveArguments,\n };\n}\nexport function makeDirectiveNodes(schema, directiveValues) {\n const directiveNodes = [];\n Object.entries(directiveValues).forEach(([directiveName, arrayOrSingleValue]) => {\n const directive = schema.getDirective(directiveName);\n if (Array.isArray(arrayOrSingleValue)) {\n arrayOrSingleValue.forEach(value => {\n directiveNodes.push(makeDirectiveNode(directiveName, value, directive));\n });\n }\n else {\n directiveNodes.push(makeDirectiveNode(directiveName, arrayOrSingleValue, directive));\n }\n });\n return directiveNodes;\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), {\n noLocation: true,\n ...(options || {}),\n });\n}\nexport function fixSchemaAst(schema, options) {\n let schemaWithValidAst;\n if (!schema.astNode || !schema.extensionASTNodes) {\n schemaWithValidAst = buildFixedSchema(schema, options);\n }\n if (!schema.astNode) {\n schema.astNode = schemaWithValidAst.astNode;\n }\n if (!schema.extensionASTNodes) {\n schema.extensionASTNodes = schemaWithValidAst.extensionASTNodes;\n }\n return schema;\n}\n//# sourceMappingURL=fix-schema-ast.js.map","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(rawString);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // <space>\n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","import { Kind, TokenKind, parse, Source as GraphQLSource, visit, isTypeSystemDefinitionNode, print, } from 'graphql';\nimport { dedentBlockStringValue } from 'graphql/language/blockString';\nexport function parseGraphQLSDL(location, rawSDL, options = {}) {\n let document;\n const sdl = rawSDL;\n let sdlModified = false;\n try {\n if (options.commentDescriptions && sdl.includes('#')) {\n sdlModified = true;\n document = transformCommentsToDescriptions(rawSDL, options);\n // If noLocation=true, we need to make sure to print and parse it again, to remove locations,\n // since `transformCommentsToDescriptions` must have locations set in order to transform the comments\n // into descriptions.\n if (options.noLocation) {\n document = parse(print(document), options);\n }\n }\n else {\n document = parse(new GraphQLSource(sdl, location), options);\n }\n }\n catch (e) {\n if (e.message.includes('EOF') && sdl.replace(/(\\#[^*]*)/g, '').trim() === '') {\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: sdlModified ? print(document) : sdl,\n };\n}\nexport function getLeadingCommentBlock(node) {\n const loc = node.loc;\n if (!loc) {\n return;\n }\n const comments = [];\n let token = loc.startToken.prev;\n while (token != null &&\n token.kind === TokenKind.COMMENT &&\n token.next &&\n token.prev &&\n token.line + 1 === token.next.line &&\n token.line !== token.prev.line) {\n const value = String(token.value);\n comments.push(value);\n token = token.prev;\n }\n return comments.length > 0 ? comments.reverse().join('\\n') : undefined;\n}\nexport function transformCommentsToDescriptions(sourceSdl, options = {}) {\n const parsedDoc = parse(sourceSdl, {\n ...options,\n noLocation: false,\n });\n const modifiedDoc = visit(parsedDoc, {\n leave: (node) => {\n if (isDescribable(node)) {\n const rawValue = getLeadingCommentBlock(node);\n if (rawValue !== undefined) {\n const commentsBlock = dedentBlockStringValue('\\n' + rawValue);\n const isBlock = commentsBlock.includes('\\n');\n if (!node.description) {\n return {\n ...node,\n description: {\n kind: Kind.STRING,\n value: commentsBlock,\n block: isBlock,\n },\n };\n }\n else {\n return {\n ...node,\n description: {\n ...node.description,\n value: node.description.value + '\\n' + commentsBlock,\n block: true,\n },\n };\n }\n }\n }\n },\n });\n return modifiedDoc;\n}\nexport function isDescribable(node) {\n return (isTypeSystemDefinitionNode(node) ||\n node.kind === Kind.FIELD_DEFINITION ||\n node.kind === Kind.INPUT_VALUE_DEFINITION ||\n node.kind === Kind.ENUM_VALUE_DEFINITION);\n}\n//# sourceMappingURL=parse-graphql-sdl.js.map","import { buildClientSchema } from 'graphql';\nimport { printSchemaWithDirectives } from './print-schema-with-directives';\nimport { parseGraphQLSDL } from './parse-graphql-sdl';\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: parseGraphQLSDL(location, rawSDL, options).document,\n rawSDL,\n schema,\n };\n }\n throw new Error(`Not valid JSON content`);\n}\n//# sourceMappingURL=parse-graphql-json.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","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 { 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 return null;\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 const fieldPath = [...path, field.name];\n const fieldPathStr = fieldPath.join('.');\n let fieldName = field.name;\n if (fieldTypeMap.has(fieldPathStr) && fieldTypeMap.get(fieldPathStr) !== field.type.toString()) {\n fieldName += field.type.toString().replace('!', 'NonNull');\n }\n fieldTypeMap.set(fieldPathStr, 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: fieldPath,\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) {\n const referenceTypeMap = Object.create(null);\n Object.keys(originalTypeMap).forEach(typeName => {\n referenceTypeMap[typeName] = originalTypeMap[typeName];\n });\n const newTypeMap = Object.create(null);\n Object.keys(referenceTypeMap).forEach(typeName => {\n const namedType = referenceTypeMap[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 return {\n typeMap: newTypeMap,\n directives: newDirectives,\n };\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 = referenceTypeMap[type.name];\n if (rewiredType === undefined) {\n rewiredType = isNamedStub(type) ? getBuiltInForStub(type) : rewireNamedType(type);\n newTypeMap[rewiredType.name] = referenceTypeMap[type.name] = rewiredType;\n }\n return rewiredType != null ? newTypeMap[rewiredType.name] : null;\n }\n return null;\n }\n}\n//# sourceMappingURL=rewire.js.map","import { getNullableType, isLeafType, isListType, isInputObjectType } from 'graphql';\nexport function transformInputValue(type, value, inputLeafValueTransformer = null, inputObjectValueTransformer = null) {\n if (value == null) {\n return value;\n }\n const nullableType = getNullableType(type);\n if (isLeafType(nullableType)) {\n return inputLeafValueTransformer != null ? inputLeafValueTransformer(nullableType, value) : value;\n }\n else if (isListType(nullableType)) {\n return value.map((listMember) => transformInputValue(nullableType.ofType, listMember, inputLeafValueTransformer, inputObjectValueTransformer));\n }\n else if (isInputObjectType(nullableType)) {\n const fields = nullableType.getFields();\n const newValue = {};\n Object.keys(value).forEach(key => {\n const field = fields[key];\n if (field != null) {\n newValue[key] = transformInputValue(field.type, value[key], inputLeafValueTransformer, inputObjectValueTransformer);\n }\n });\n return inputObjectValueTransformer != null ? inputObjectValueTransformer(nullableType, newValue) : 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 { GraphQLInputObjectType, GraphQLInterfaceType, GraphQLObjectType, } from 'graphql';\nimport { MapperKind } from './Interfaces';\nimport { mapSchema } from './mapSchema';\nexport function filterSchema({ schema, typeFilter = () => true, fieldFilter = undefined, rootFieldFilter = undefined, objectFieldFilter = undefined, interfaceFieldFilter = undefined, inputObjectFieldFilter = undefined, argumentFilter = undefined, }) {\n const filteredSchema = mapSchema(schema, {\n [MapperKind.QUERY]: (type) => filterRootFields(type, 'Query', rootFieldFilter, argumentFilter),\n [MapperKind.MUTATION]: (type) => filterRootFields(type, 'Mutation', rootFieldFilter, argumentFilter),\n [MapperKind.SUBSCRIPTION]: (type) => filterRootFields(type, 'Subscription', rootFieldFilter, argumentFilter),\n [MapperKind.OBJECT_TYPE]: (type) => typeFilter(type.name, type)\n ? filterElementFields(GraphQLObjectType, type, objectFieldFilter || fieldFilter, argumentFilter)\n : null,\n [MapperKind.INTERFACE_TYPE]: (type) => typeFilter(type.name, type)\n ? filterElementFields(GraphQLInterfaceType, type, interfaceFieldFilter || fieldFilter, argumentFilter)\n : null,\n [MapperKind.INPUT_OBJECT_TYPE]: (type) => typeFilter(type.name, type)\n ? filterElementFields(GraphQLInputObjectType, type, inputObjectFieldFilter || fieldFilter)\n : null,\n [MapperKind.UNION_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, argumentFilter) {\n if (rootFieldFilter || argumentFilter) {\n const config = type.toConfig();\n Object.entries(config.fields).forEach(([fieldName, field]) => {\n if (rootFieldFilter && !rootFieldFilter(operation, fieldName, config.fields[fieldName])) {\n delete config.fields[fieldName];\n }\n else if (argumentFilter) {\n for (const argName of Object.keys(field.args)) {\n if (!argumentFilter(operation, fieldName, argName, field.args[argName])) {\n delete field.args[argName];\n }\n }\n }\n });\n return new GraphQLObjectType(config);\n }\n return type;\n}\nfunction filterElementFields(ElementConstructor, type, fieldFilter, argumentFilter) {\n if (fieldFilter || argumentFilter) {\n const config = type.toConfig();\n Object.entries(config.fields).forEach(([fieldName, field]) => {\n if (fieldFilter && !fieldFilter(type.name, fieldName, config.fields[fieldName])) {\n delete config.fields[fieldName];\n }\n else if (argumentFilter && 'args' in field) {\n for (const argName of Object.keys(field.args)) {\n if (!argumentFilter(type.name, fieldName, argName, field.args[argName])) {\n delete field.args[argName];\n }\n }\n }\n });\n return new ElementConstructor(config);\n }\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) {\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 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//# 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 === null || newField === void 0 ? void 0 : 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 implementers 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// overridden 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 pathToDirectivesInExtensions = ['directives']) {\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 const directivesInExtensions = pathToDirectivesInExtensions.reduce((acc, pathSegment) => (acc == null ? acc : acc[pathSegment]), type === null || type === void 0 ? void 0 : type.extensions);\n const directives = Object.create(null);\n if (directivesInExtensions != null) {\n Object.entries(directivesInExtensions).forEach(([directiveName, directiveValue]) => {\n if (!directives[directiveName]) {\n directives[directiveName] = [directiveValue];\n }\n else {\n directives[directiveName].push([directiveValue]);\n }\n });\n }\n else {\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 directiveNodes.forEach(directiveNode => {\n const directiveName = directiveNode.name.value;\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 if (!directives[directiveName]) {\n directives[directiveName] = [args];\n }\n else {\n directives[directiveName].push(args);\n }\n });\n }\n const visitors = [];\n Object.entries(directives).forEach(([directiveName, directiveValues]) => {\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 directiveValues.forEach(directiveValue => {\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: directiveValue,\n visitedType: type,\n schema,\n context,\n }));\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 { GraphQLScalarType, isScalarType, isEnumType, isInterfaceType, isUnionType, isObjectType, isSpecifiedScalarType, } from 'graphql';\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 const config = type.toConfig();\n delete config.astNode; // avoid AST duplication elsewhere\n resolvers[typeName] = new GraphQLScalarType(config);\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 const implementations = getImplementations(pruningContext, iface);\n if (implementations == 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 we should NOT prune the type, return it immediately as unmodified\n if (options.skipPruning && options.skipPruning(type)) {\n return type;\n }\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 const implementations = getImplementations(pruningContext, type);\n if ((!Object.keys(type.getFields()).length && !options.skipEmptyCompositeTypePruning) ||\n (implementations && !Object.keys(implementations).length && !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 const implementations = getImplementations(pruningContext, type);\n if (implementations) {\n Object.keys(implementations).forEach(typeName => {\n visitOutputType(visitedTypes, pruningContext, pruningContext.schema.getType(typeName));\n });\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}\n/**\n * Get the implementations of an interface. May return undefined.\n */\nfunction getImplementations(pruningContext, type) {\n return pruningContext.implementations[type.name];\n}\nfunction visitInputType(visitedTypes, pruningContext, type) {\n if (visitedTypes[type.name]) {\n return;\n }\n pruningContext.unusedTypes[type.name] = false;\n visitedTypes[type.name] = true;\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}\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 { parse } from 'graphql';\nexport function parseSelectionSet(selectionSet, options) {\n const query = parse(selectionSet, options).definitions[0];\n return query.selectionSet;\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 { 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 { 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 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}\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, done: false });\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] }, done: false });\n }\n };\n const pushDone = () => {\n if (pullQueue.length !== 0) {\n pullQueue.shift()({ done: true });\n }\n else {\n pushQueue.push({ done: true });\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(element);\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 complete() {\n pushDone();\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: new Set(),\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 const segmentInfoMap = errorInfo.segmentInfoMap;\n const unpathedErrors = errorInfo.unpathedErrors;\n const unpathedErrorVisitor = errorVisitorMap['__unpathed'];\n return errors.map(originalError => {\n const pathSegmentsInfo = segmentInfoMap.get(originalError);\n const newError = pathSegmentsInfo == null\n ? originalError\n : 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 }, originalError);\n if (unpathedErrorVisitor && unpathedErrors.has(originalError)) {\n return unpathedErrorVisitor(newError);\n }\n return newError;\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 sortedErrors.unpathedErrors.forEach(error => errorInfo.unpathedErrors.add(error));\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 errorMap[unknownResponseKey].forEach(error => errorInfo.unpathedErrors.add(error));\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 = new Set();\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.add(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","export function valueMatchesCriteria(value, criteria) {\n if (value == null) {\n return value === criteria;\n }\n else if (Array.isArray(value)) {\n return Array.isArray(criteria) && value.every((val, index) => valueMatchesCriteria(val, criteria[index]));\n }\n else if (typeof value === 'object') {\n return (typeof criteria === 'object' &&\n criteria &&\n Object.keys(criteria).every(propertyName => valueMatchesCriteria(value[propertyName], criteria[propertyName])));\n }\n else if (criteria instanceof RegExp) {\n return criteria.test(value);\n }\n return value === criteria;\n}\n//# sourceMappingURL=valueMatchesCriteria.js.map","export function isAsyncIterable(value) {\n return typeof value === 'object' && value != null && Symbol.asyncIterator in value;\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { Kind } from 'graphql';\nexport function isDocumentNode(object) {\n return object && typeof object === 'object' && 'kind' in object && object.kind === Kind.DOCUMENT;\n}\n//# sourceMappingURL=isDocumentNode.js.map"],"names":["GraphQLSource","getTypeSpecifiers"],"mappings":"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"}
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/astFromType.js","../../../dist/utils/src/astFromValueUntyped.js","../../../dist/utils/src/print-schema-with-directives.js","../../../dist/utils/src/validate-documents.js","../../../dist/utils/src/fix-schema-ast.js","../../../node_modules/graphql/language/blockString.mjs","../../../dist/utils/src/parse-graphql-sdl.js","../../../dist/utils/src/parse-graphql-json.js","../../../dist/utils/src/get-user-types-from-schema.js","../../../dist/utils/src/create-schema-definition.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/selectionSets.js","../../../dist/utils/src/getResponseKeyFromInfo.js","../../../dist/utils/src/fields.js","../../../dist/utils/src/renameType.js","../../../dist/utils/src/collectFields.js","../../../dist/utils/src/mapAsyncIterator.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","../../../dist/utils/src/valueMatchesCriteria.js","../../../dist/utils/src/isAsyncIterable.js","../../../dist/utils/src/isDocumentNode.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 getDirectivesInExtensions(node, pathToDirectivesInExtensions = ['directives']) {\n const directivesInExtensions = pathToDirectivesInExtensions.reduce((acc, pathSegment) => (acc == null ? acc : acc[pathSegment]), node === null || node === void 0 ? void 0 : node.extensions);\n return directivesInExtensions;\n}\nexport function getDirectives(schema, node, pathToDirectivesInExtensions = ['directives']) {\n const directivesInExtensions = getDirectivesInExtensions(node, pathToDirectivesInExtensions);\n if (directivesInExtensions != null) {\n return directivesInExtensions;\n }\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(directiveNode => {\n var _a;\n const schemaDirective = schemaDirectiveMap[directiveNode.name.value];\n if (schemaDirective) {\n if (schemaDirective.isRepeatable) {\n result[schemaDirective.name] = (_a = result[schemaDirective.name]) !== null && _a !== void 0 ? _a : [];\n result[schemaDirective.name].push(getArgumentValues(schemaDirective, directiveNode));\n }\n else {\n result[schemaDirective.name] = getArgumentValues(schemaDirective, directiveNode);\n }\n }\n });\n }\n });\n return result;\n}\n//# sourceMappingURL=get-directives.js.map","import { Kind, } from 'graphql';\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, options = {}) {\n const result = {};\n let selected = ['ObjectTypeDefinition', 'ObjectTypeExtension'];\n if (options.includeInputTypes) {\n selected = [...selected, 'InputObjectTypeDefinition', 'InputObjectTypeExtension'];\n }\n const allTypes = documentNode.definitions.filter(obj => selected.includes(obj.kind));\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","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';\n/**\n * Produces a GraphQL Value AST given a JavaScript object.\n * Function will match JavaScript/JSON values to GraphQL AST schema format\n * by using the following mapping.\n *\n * | JSON Value | GraphQL Value |\n * | ------------- | -------------------- |\n * | Object | Input Object |\n * | Array | List |\n * | Boolean | Boolean |\n * | String | String |\n * | Number | Int / Float |\n * | null | NullValue |\n *\n */\nexport function astFromValueUntyped(value) {\n // only explicit null, not undefined, NaN\n if (value === null) {\n return { kind: Kind.NULL };\n }\n // undefined\n if (value === undefined) {\n return null;\n }\n // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but\n // the value is not an array, convert the value using the list's item type.\n if (Array.isArray(value)) {\n const valuesNodes = [];\n value.forEach(item => {\n const itemNode = astFromValueUntyped(item);\n if (itemNode != null) {\n valuesNodes.push(itemNode);\n }\n });\n return { kind: Kind.LIST, values: valuesNodes };\n }\n if (typeof value === 'object') {\n const fieldNodes = [];\n Object.entries(value).forEach(([fieldName, fieldValue]) => {\n const ast = astFromValueUntyped(fieldValue);\n if (ast) {\n fieldNodes.push({\n kind: Kind.OBJECT_FIELD,\n name: { kind: Kind.NAME, value: fieldName },\n value: ast,\n });\n }\n });\n return { kind: Kind.OBJECT, fields: fieldNodes };\n }\n // Others serialize based on their corresponding JavaScript scalar types.\n if (typeof value === 'boolean') {\n return { kind: Kind.BOOLEAN, value };\n }\n // JavaScript numbers can be Int or Float values.\n if (typeof value === 'number' && isFinite(value)) {\n const stringNum = String(value);\n return integerStringRegExp.test(stringNum)\n ? { kind: Kind.INT, value: stringNum }\n : { kind: Kind.FLOAT, value: stringNum };\n }\n if (typeof value === 'string') {\n return { kind: Kind.STRING, value };\n }\n throw new TypeError(`Cannot convert value to AST: ${value}.`);\n}\n/**\n * IntValue:\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit ( Digit+ )?\n */\nconst integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;\n//# sourceMappingURL=astFromValueUntyped.js.map","import { print, Kind, isSpecifiedScalarType, isIntrospectionType, isSpecifiedDirective, astFromValue, GraphQLDeprecatedDirective, isObjectType, isInterfaceType, isUnionType, isInputObjectType, isEnumType, isScalarType, } from 'graphql';\nimport { astFromType } from './astFromType';\nimport { getDirectivesInExtensions } from './get-directives';\nimport { astFromValueUntyped } from './astFromValueUntyped';\nexport function getDocumentNodeFromSchema(schema, options = {}) {\n const pathToDirectivesInExtensions = options.pathToDirectivesInExtensions;\n const typesMap = schema.getTypeMap();\n const schemaNode = astFromSchema(schema, pathToDirectivesInExtensions);\n const definitions = schemaNode != null ? [schemaNode] : [];\n const directives = schema.getDirectives();\n for (const directive of directives) {\n if (isSpecifiedDirective(directive)) {\n continue;\n }\n definitions.push(astFromDirective(directive, schema, pathToDirectivesInExtensions));\n }\n for (const typeName in typesMap) {\n const type = typesMap[typeName];\n const isPredefinedScalar = isSpecifiedScalarType(type);\n const isIntrospection = isIntrospectionType(type);\n if (isPredefinedScalar || isIntrospection) {\n continue;\n }\n if (isObjectType(type)) {\n definitions.push(astFromObjectType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isInterfaceType(type)) {\n definitions.push(astFromInterfaceType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isUnionType(type)) {\n definitions.push(astFromUnionType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isInputObjectType(type)) {\n definitions.push(astFromInputObjectType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isEnumType(type)) {\n definitions.push(astFromEnumType(type, schema, pathToDirectivesInExtensions));\n }\n else if (isScalarType(type)) {\n definitions.push(astFromScalarType(type, schema, pathToDirectivesInExtensions));\n }\n else {\n throw new Error(`Unknown type ${type}.`);\n }\n }\n return {\n kind: Kind.DOCUMENT,\n definitions,\n };\n}\n// this approach uses the default schema printer rather than a custom solution, so may be more backwards compatible\n// currently does not allow customization of printSchema options having to do with comments.\nexport function printSchemaWithDirectives(schema, options = {}) {\n const documentNode = getDocumentNodeFromSchema(schema, options);\n return print(documentNode);\n}\nexport function astFromSchema(schema, pathToDirectivesInExtensions) {\n var _a, _b;\n const operationTypeMap = {\n query: undefined,\n mutation: undefined,\n subscription: undefined,\n };\n let nodes = [];\n if (schema.astNode != null) {\n nodes.push(schema.astNode);\n }\n if (schema.extensionASTNodes != null) {\n nodes = nodes.concat(schema.extensionASTNodes);\n }\n nodes.forEach(node => {\n if (node.operationTypes) {\n node.operationTypes.forEach(operationTypeDefinitionNode => {\n operationTypeMap[operationTypeDefinitionNode.operation] = operationTypeDefinitionNode;\n });\n }\n });\n const rootTypeMap = {\n query: schema.getQueryType(),\n mutation: schema.getMutationType(),\n subscription: schema.getSubscriptionType(),\n };\n Object.keys(operationTypeMap).forEach(operationTypeNode => {\n if (rootTypeMap[operationTypeNode] != null) {\n if (operationTypeMap[operationTypeNode] != null) {\n operationTypeMap[operationTypeNode].type = astFromType(rootTypeMap[operationTypeNode]);\n }\n else {\n operationTypeMap[operationTypeNode] = {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operationTypeNode,\n type: astFromType(rootTypeMap[operationTypeNode]),\n };\n }\n }\n });\n const operationTypes = Object.values(operationTypeMap).filter(operationTypeDefinitionNode => operationTypeDefinitionNode != null);\n const directives = getDirectiveNodes(schema, schema, pathToDirectivesInExtensions);\n if (!operationTypes.length && !directives.length) {\n return null;\n }\n const schemaNode = {\n kind: operationTypes != null ? Kind.SCHEMA_DEFINITION : Kind.SCHEMA_EXTENSION,\n operationTypes,\n directives,\n };\n schemaNode.description =\n ((_b = (_a = schema.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : schema.description != null)\n ? {\n kind: Kind.STRING,\n value: schema.description,\n block: true,\n }\n : undefined;\n return schemaNode;\n}\nexport function astFromDirective(directive, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: (_b = (_a = directive.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : (directive.description\n ? {\n kind: Kind.STRING,\n value: directive.description,\n }\n : undefined),\n name: {\n kind: Kind.NAME,\n value: directive.name,\n },\n arguments: (directive === null || directive === void 0 ? void 0 : directive.args)\n ? directive.args.map(arg => astFromArg(arg, schema, pathToDirectivesInExtensions))\n : undefined,\n repeatable: directive.isRepeatable,\n locations: (directive === null || directive === void 0 ? void 0 : directive.locations)\n ? directive.locations.map(location => ({\n kind: Kind.NAME,\n value: location,\n }))\n : undefined,\n };\n}\nexport function getDirectiveNodes(entity, schema, pathToDirectivesInExtensions) {\n const directivesInExtensions = getDirectivesInExtensions(entity, pathToDirectivesInExtensions);\n let nodes = [];\n if (entity.astNode != null) {\n nodes.push(entity.astNode);\n }\n if ('extensionASTNodes' in entity && entity.extensionASTNodes != null) {\n nodes = nodes.concat(entity.extensionASTNodes);\n }\n let directives;\n if (directivesInExtensions != null) {\n directives = makeDirectiveNodes(schema, directivesInExtensions);\n }\n else {\n directives = [].concat(...nodes.filter(node => node.directives != null).map(node => node.directives));\n }\n return directives;\n}\nexport function getDeprecatableDirectiveNodes(entity, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n let directiveNodesBesidesDeprecated = [];\n let deprecatedDirectiveNode;\n const directivesInExtensions = getDirectivesInExtensions(entity, pathToDirectivesInExtensions);\n let directives;\n if (directivesInExtensions != null) {\n directives = makeDirectiveNodes(schema, directivesInExtensions);\n }\n else {\n directives = (_a = entity.astNode) === null || _a === void 0 ? void 0 : _a.directives;\n }\n if (directives != null) {\n directiveNodesBesidesDeprecated = directives.filter(directive => directive.name.value !== 'deprecated');\n if (entity.deprecationReason != null) {\n deprecatedDirectiveNode = (_b = directives.filter(directive => directive.name.value === 'deprecated')) === null || _b === void 0 ? void 0 : _b[0];\n }\n }\n if (entity.deprecationReason != null &&\n deprecatedDirectiveNode == null) {\n deprecatedDirectiveNode = makeDeprecatedDirective(entity.deprecationReason);\n }\n return deprecatedDirectiveNode == null\n ? directiveNodesBesidesDeprecated\n : [deprecatedDirectiveNode].concat(directiveNodesBesidesDeprecated);\n}\nexport function astFromArg(arg, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: ((_b = (_a = arg.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : arg.description)\n ? {\n kind: Kind.STRING,\n value: arg.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: arg.name,\n },\n type: astFromType(arg.type),\n defaultValue: arg.defaultValue !== undefined ? astFromValue(arg.defaultValue, arg.type) : undefined,\n directives: getDeprecatableDirectiveNodes(arg, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromObjectType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n fields: Object.values(type.getFields()).map(field => astFromField(field, schema, pathToDirectivesInExtensions)),\n interfaces: Object.values(type.getInterfaces()).map(iFace => astFromType(iFace)),\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromInterfaceType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n const node = {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n fields: Object.values(type.getFields()).map(field => astFromField(field, schema, pathToDirectivesInExtensions)),\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n };\n if ('getInterfaces' in type) {\n node.interfaces = Object.values(type.getInterfaces()).map(iFace => astFromType(iFace));\n }\n return node;\n}\nexport function astFromUnionType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n types: type.getTypes().map(type => astFromType(type)),\n };\n}\nexport function astFromInputObjectType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n fields: Object.values(type.getFields()).map(field => astFromInputField(field, schema, pathToDirectivesInExtensions)),\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromEnumType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: ((_b = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n values: Object.values(type.getValues()).map(value => astFromEnumValue(value, schema, pathToDirectivesInExtensions)),\n directives: getDirectiveNodes(type, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromScalarType(type, schema, pathToDirectivesInExtensions) {\n var _a, _b, _c, _d;\n let directiveNodesBesidesSpecifiedBy = [];\n let specifiedByDirectiveNode;\n const directivesInExtensions = getDirectivesInExtensions(type, pathToDirectivesInExtensions);\n let allDirectives;\n if (directivesInExtensions != null) {\n allDirectives = makeDirectiveNodes(schema, directivesInExtensions);\n }\n else {\n allDirectives = (_a = type.astNode) === null || _a === void 0 ? void 0 : _a.directives;\n }\n if (allDirectives != null) {\n directiveNodesBesidesSpecifiedBy = allDirectives.filter(directive => directive.name.value !== 'specifiedBy');\n if (type.specifiedByUrl != null) {\n specifiedByDirectiveNode = (_b = allDirectives.filter(directive => directive.name.value === 'specifiedBy')) === null || _b === void 0 ? void 0 : _b[0];\n }\n }\n if (type.specifiedByUrl != null && specifiedByDirectiveNode == null) {\n specifiedByDirectiveNode = makeDirectiveNode('specifiedBy', {\n url: type.specifiedByUrl,\n });\n }\n const directives = specifiedByDirectiveNode == null\n ? directiveNodesBesidesSpecifiedBy\n : [specifiedByDirectiveNode].concat(directiveNodesBesidesSpecifiedBy);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: ((_d = (_c = type.astNode) === null || _c === void 0 ? void 0 : _c.description) !== null && _d !== void 0 ? _d : type.description)\n ? {\n kind: Kind.STRING,\n value: type.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: type.name,\n },\n directives,\n };\n}\nexport function astFromField(field, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.FIELD_DEFINITION,\n description: ((_b = (_a = field.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : field.description)\n ? {\n kind: Kind.STRING,\n value: field.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: field.name,\n },\n arguments: field.args.map(arg => astFromArg(arg, schema, pathToDirectivesInExtensions)),\n type: astFromType(field.type),\n directives: getDeprecatableDirectiveNodes(field, schema, pathToDirectivesInExtensions),\n };\n}\nexport function astFromInputField(field, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: ((_b = (_a = field.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : field.description)\n ? {\n kind: Kind.STRING,\n value: field.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: field.name,\n },\n type: astFromType(field.type),\n directives: getDeprecatableDirectiveNodes(field, schema, pathToDirectivesInExtensions),\n defaultValue: astFromValue(field.defaultValue, field.type),\n };\n}\nexport function astFromEnumValue(value, schema, pathToDirectivesInExtensions) {\n var _a, _b;\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: ((_b = (_a = value.astNode) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : value.description)\n ? {\n kind: Kind.STRING,\n value: value.description,\n block: true,\n }\n : undefined,\n name: {\n kind: Kind.NAME,\n value: value.name,\n },\n directives: getDirectiveNodes(value, schema, pathToDirectivesInExtensions),\n };\n}\nexport function makeDeprecatedDirective(deprecationReason) {\n return makeDirectiveNode('deprecated', { reason: deprecationReason }, GraphQLDeprecatedDirective);\n}\nexport function makeDirectiveNode(name, args, directive) {\n const directiveArguments = [];\n if (directive != null) {\n directive.args.forEach(arg => {\n const argName = arg.name;\n const argValue = args[argName];\n if (argValue !== undefined) {\n directiveArguments.push({\n kind: Kind.ARGUMENT,\n name: {\n kind: Kind.NAME,\n value: argName,\n },\n value: astFromValue(argValue, arg.type),\n });\n }\n });\n }\n else {\n Object.entries(args).forEach(([argName, argValue]) => {\n directiveArguments.push({\n kind: Kind.ARGUMENT,\n name: {\n kind: Kind.NAME,\n value: argName,\n },\n value: astFromValueUntyped(argValue),\n });\n });\n }\n return {\n kind: Kind.DIRECTIVE,\n name: {\n kind: Kind.NAME,\n value: name,\n },\n arguments: directiveArguments,\n };\n}\nexport function makeDirectiveNodes(schema, directiveValues) {\n const directiveNodes = [];\n Object.entries(directiveValues).forEach(([directiveName, arrayOrSingleValue]) => {\n const directive = schema.getDirective(directiveName);\n if (Array.isArray(arrayOrSingleValue)) {\n arrayOrSingleValue.forEach(value => {\n directiveNodes.push(makeDirectiveNode(directiveName, value, directive));\n });\n }\n else {\n directiveNodes.push(makeDirectiveNode(directiveName, arrayOrSingleValue, directive));\n }\n });\n return directiveNodes;\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), {\n noLocation: true,\n ...(options || {}),\n });\n}\nexport function fixSchemaAst(schema, options) {\n let schemaWithValidAst;\n if (!schema.astNode || !schema.extensionASTNodes) {\n schemaWithValidAst = buildFixedSchema(schema, options);\n }\n if (!schema.astNode) {\n schema.astNode = schemaWithValidAst.astNode;\n }\n if (!schema.extensionASTNodes) {\n schema.extensionASTNodes = schemaWithValidAst.extensionASTNodes;\n }\n return schema;\n}\n//# sourceMappingURL=fix-schema-ast.js.map","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(rawString);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // <space>\n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","import { Kind, TokenKind, parse, Source as GraphQLSource, visit, isTypeSystemDefinitionNode, print, } from 'graphql';\nimport { dedentBlockStringValue } from 'graphql/language/blockString';\nexport function parseGraphQLSDL(location, rawSDL, options = {}) {\n let document;\n const sdl = rawSDL;\n let sdlModified = false;\n try {\n if (options.commentDescriptions && sdl.includes('#')) {\n sdlModified = true;\n document = transformCommentsToDescriptions(rawSDL, options);\n // If noLocation=true, we need to make sure to print and parse it again, to remove locations,\n // since `transformCommentsToDescriptions` must have locations set in order to transform the comments\n // into descriptions.\n if (options.noLocation) {\n document = parse(print(document), options);\n }\n }\n else {\n document = parse(new GraphQLSource(sdl, location), options);\n }\n }\n catch (e) {\n if (e.message.includes('EOF') && sdl.replace(/(\\#[^*]*)/g, '').trim() === '') {\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: sdlModified ? print(document) : sdl,\n };\n}\nexport function getLeadingCommentBlock(node) {\n const loc = node.loc;\n if (!loc) {\n return;\n }\n const comments = [];\n let token = loc.startToken.prev;\n while (token != null &&\n token.kind === TokenKind.COMMENT &&\n token.next &&\n token.prev &&\n token.line + 1 === token.next.line &&\n token.line !== token.prev.line) {\n const value = String(token.value);\n comments.push(value);\n token = token.prev;\n }\n return comments.length > 0 ? comments.reverse().join('\\n') : undefined;\n}\nexport function transformCommentsToDescriptions(sourceSdl, options = {}) {\n const parsedDoc = parse(sourceSdl, {\n ...options,\n noLocation: false,\n });\n const modifiedDoc = visit(parsedDoc, {\n leave: (node) => {\n if (isDescribable(node)) {\n const rawValue = getLeadingCommentBlock(node);\n if (rawValue !== undefined) {\n const commentsBlock = dedentBlockStringValue('\\n' + rawValue);\n const isBlock = commentsBlock.includes('\\n');\n if (!node.description) {\n return {\n ...node,\n description: {\n kind: Kind.STRING,\n value: commentsBlock,\n block: isBlock,\n },\n };\n }\n else {\n return {\n ...node,\n description: {\n ...node.description,\n value: node.description.value + '\\n' + commentsBlock,\n block: true,\n },\n };\n }\n }\n }\n },\n });\n return modifiedDoc;\n}\nexport function isDescribable(node) {\n return (isTypeSystemDefinitionNode(node) ||\n node.kind === Kind.FIELD_DEFINITION ||\n node.kind === Kind.INPUT_VALUE_DEFINITION ||\n node.kind === Kind.ENUM_VALUE_DEFINITION);\n}\n//# sourceMappingURL=parse-graphql-sdl.js.map","import { buildClientSchema } from 'graphql';\nimport { printSchemaWithDirectives } from './print-schema-with-directives';\nimport { parseGraphQLSDL } from './parse-graphql-sdl';\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: parseGraphQLSDL(location, rawSDL, options).document,\n rawSDL,\n schema,\n };\n }\n throw new Error(`Not valid JSON content`);\n}\n//# sourceMappingURL=parse-graphql-json.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","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 { 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 return null;\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 const fieldPath = [...path, field.name];\n const fieldPathStr = fieldPath.join('.');\n let fieldName = field.name;\n if (fieldTypeMap.has(fieldPathStr) && fieldTypeMap.get(fieldPathStr) !== field.type.toString()) {\n fieldName += field.type.toString().replace('!', 'NonNull');\n }\n fieldTypeMap.set(fieldPathStr, 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: fieldPath,\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) {\n const referenceTypeMap = Object.create(null);\n Object.keys(originalTypeMap).forEach(typeName => {\n referenceTypeMap[typeName] = originalTypeMap[typeName];\n });\n const newTypeMap = Object.create(null);\n Object.keys(referenceTypeMap).forEach(typeName => {\n const namedType = referenceTypeMap[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 return {\n typeMap: newTypeMap,\n directives: newDirectives,\n };\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 = referenceTypeMap[type.name];\n if (rewiredType === undefined) {\n rewiredType = isNamedStub(type) ? getBuiltInForStub(type) : rewireNamedType(type);\n newTypeMap[rewiredType.name] = referenceTypeMap[type.name] = rewiredType;\n }\n return rewiredType != null ? newTypeMap[rewiredType.name] : null;\n }\n return null;\n }\n}\n//# sourceMappingURL=rewire.js.map","import { getNullableType, isLeafType, isListType, isInputObjectType } from 'graphql';\nexport function transformInputValue(type, value, inputLeafValueTransformer = null, inputObjectValueTransformer = null) {\n if (value == null) {\n return value;\n }\n const nullableType = getNullableType(type);\n if (isLeafType(nullableType)) {\n return inputLeafValueTransformer != null ? inputLeafValueTransformer(nullableType, value) : value;\n }\n else if (isListType(nullableType)) {\n return value.map((listMember) => transformInputValue(nullableType.ofType, listMember, inputLeafValueTransformer, inputObjectValueTransformer));\n }\n else if (isInputObjectType(nullableType)) {\n const fields = nullableType.getFields();\n const newValue = {};\n Object.keys(value).forEach(key => {\n const field = fields[key];\n if (field != null) {\n newValue[key] = transformInputValue(field.type, value[key], inputLeafValueTransformer, inputObjectValueTransformer);\n }\n });\n return inputObjectValueTransformer != null ? inputObjectValueTransformer(nullableType, newValue) : 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 { GraphQLInputObjectType, GraphQLInterfaceType, GraphQLObjectType, } from 'graphql';\nimport { MapperKind } from './Interfaces';\nimport { mapSchema } from './mapSchema';\nexport function filterSchema({ schema, typeFilter = () => true, fieldFilter = undefined, rootFieldFilter = undefined, objectFieldFilter = undefined, interfaceFieldFilter = undefined, inputObjectFieldFilter = undefined, argumentFilter = undefined, }) {\n const filteredSchema = mapSchema(schema, {\n [MapperKind.QUERY]: (type) => filterRootFields(type, 'Query', rootFieldFilter, argumentFilter),\n [MapperKind.MUTATION]: (type) => filterRootFields(type, 'Mutation', rootFieldFilter, argumentFilter),\n [MapperKind.SUBSCRIPTION]: (type) => filterRootFields(type, 'Subscription', rootFieldFilter, argumentFilter),\n [MapperKind.OBJECT_TYPE]: (type) => typeFilter(type.name, type)\n ? filterElementFields(GraphQLObjectType, type, objectFieldFilter || fieldFilter, argumentFilter)\n : null,\n [MapperKind.INTERFACE_TYPE]: (type) => typeFilter(type.name, type)\n ? filterElementFields(GraphQLInterfaceType, type, interfaceFieldFilter || fieldFilter, argumentFilter)\n : null,\n [MapperKind.INPUT_OBJECT_TYPE]: (type) => typeFilter(type.name, type)\n ? filterElementFields(GraphQLInputObjectType, type, inputObjectFieldFilter || fieldFilter)\n : null,\n [MapperKind.UNION_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, argumentFilter) {\n if (rootFieldFilter || argumentFilter) {\n const config = type.toConfig();\n Object.entries(config.fields).forEach(([fieldName, field]) => {\n if (rootFieldFilter && !rootFieldFilter(operation, fieldName, config.fields[fieldName])) {\n delete config.fields[fieldName];\n }\n else if (argumentFilter) {\n for (const argName of Object.keys(field.args)) {\n if (!argumentFilter(operation, fieldName, argName, field.args[argName])) {\n delete field.args[argName];\n }\n }\n }\n });\n return new GraphQLObjectType(config);\n }\n return type;\n}\nfunction filterElementFields(ElementConstructor, type, fieldFilter, argumentFilter) {\n if (fieldFilter || argumentFilter) {\n const config = type.toConfig();\n Object.entries(config.fields).forEach(([fieldName, field]) => {\n if (fieldFilter && !fieldFilter(type.name, fieldName, config.fields[fieldName])) {\n delete config.fields[fieldName];\n }\n else if (argumentFilter && 'args' in field) {\n for (const argName of Object.keys(field.args)) {\n if (!argumentFilter(type.name, fieldName, argName, field.args[argName])) {\n delete field.args[argName];\n }\n }\n }\n });\n return new ElementConstructor(config);\n }\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) {\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 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//# 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 === null || newField === void 0 ? void 0 : 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 implementers 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// overridden 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 pathToDirectivesInExtensions = ['directives']) {\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 const directivesInExtensions = pathToDirectivesInExtensions.reduce((acc, pathSegment) => (acc == null ? acc : acc[pathSegment]), type === null || type === void 0 ? void 0 : type.extensions);\n const directives = Object.create(null);\n if (directivesInExtensions != null) {\n Object.entries(directivesInExtensions).forEach(([directiveName, directiveValue]) => {\n if (!directives[directiveName]) {\n directives[directiveName] = [directiveValue];\n }\n else {\n directives[directiveName].push([directiveValue]);\n }\n });\n }\n else {\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 directiveNodes.forEach(directiveNode => {\n const directiveName = directiveNode.name.value;\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 if (!directives[directiveName]) {\n directives[directiveName] = [args];\n }\n else {\n directives[directiveName].push(args);\n }\n });\n }\n const visitors = [];\n Object.entries(directives).forEach(([directiveName, directiveValues]) => {\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 directiveValues.forEach(directiveValue => {\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: directiveValue,\n visitedType: type,\n schema,\n context,\n }));\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 { GraphQLScalarType, isScalarType, isEnumType, isInterfaceType, isUnionType, isObjectType, isSpecifiedScalarType, } from 'graphql';\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 const config = type.toConfig();\n delete config.astNode; // avoid AST duplication elsewhere\n resolvers[typeName] = new GraphQLScalarType(config);\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 const implementations = getImplementations(pruningContext, iface);\n if (implementations == 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 we should NOT prune the type, return it immediately as unmodified\n if (options.skipPruning && options.skipPruning(type)) {\n return type;\n }\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 const implementations = getImplementations(pruningContext, type);\n if ((!Object.keys(type.getFields()).length && !options.skipEmptyCompositeTypePruning) ||\n (implementations && !Object.keys(implementations).length && !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 const implementations = getImplementations(pruningContext, type);\n if (implementations) {\n Object.keys(implementations).forEach(typeName => {\n visitOutputType(visitedTypes, pruningContext, pruningContext.schema.getType(typeName));\n });\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}\n/**\n * Get the implementations of an interface. May return undefined.\n */\nfunction getImplementations(pruningContext, type) {\n return pruningContext.implementations[type.name];\n}\nfunction visitInputType(visitedTypes, pruningContext, type) {\n if (visitedTypes[type.name]) {\n return;\n }\n pruningContext.unusedTypes[type.name] = false;\n visitedTypes[type.name] = true;\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}\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 { parse } from 'graphql';\nexport function parseSelectionSet(selectionSet, options) {\n const query = parse(selectionSet, options).definitions[0];\n return query.selectionSet;\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 { 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 { 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 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}\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, done: false });\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] }, done: false });\n }\n };\n const pushDone = () => {\n if (pullQueue.length !== 0) {\n pullQueue.shift()({ done: true });\n }\n else {\n pushQueue.push({ done: true });\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(element);\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 complete() {\n pushDone();\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: new Set(),\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 const segmentInfoMap = errorInfo.segmentInfoMap;\n const unpathedErrors = errorInfo.unpathedErrors;\n const unpathedErrorVisitor = errorVisitorMap['__unpathed'];\n return errors.map(originalError => {\n const pathSegmentsInfo = segmentInfoMap.get(originalError);\n const newError = pathSegmentsInfo == null\n ? originalError\n : 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 }, originalError);\n if (unpathedErrorVisitor && unpathedErrors.has(originalError)) {\n return unpathedErrorVisitor(newError);\n }\n return newError;\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 sortedErrors.unpathedErrors.forEach(error => errorInfo.unpathedErrors.add(error));\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 errorMap[unknownResponseKey].forEach(error => errorInfo.unpathedErrors.add(error));\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 = new Set();\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.add(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","export function valueMatchesCriteria(value, criteria) {\n if (value == null) {\n return value === criteria;\n }\n else if (Array.isArray(value)) {\n return Array.isArray(criteria) && value.every((val, index) => valueMatchesCriteria(val, criteria[index]));\n }\n else if (typeof value === 'object') {\n return (typeof criteria === 'object' &&\n criteria &&\n Object.keys(criteria).every(propertyName => valueMatchesCriteria(value[propertyName], criteria[propertyName])));\n }\n else if (criteria instanceof RegExp) {\n return criteria.test(value);\n }\n return value === criteria;\n}\n//# sourceMappingURL=valueMatchesCriteria.js.map","export function isAsyncIterable(value) {\n return typeof value === 'object' && value != null && Symbol.asyncIterator in value;\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { Kind } from 'graphql';\nexport function isDocumentNode(object) {\n return object && typeof object === 'object' && 'kind' in object && object.kind === Kind.DOCUMENT;\n}\n//# sourceMappingURL=isDocumentNode.js.map"],"names":["GraphQLSource","getTypeSpecifiers"],"mappings":"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"}