@graphql-inspector/core 0.0.0-canary.f71f99b → 0.0.0-canary.fec2df4

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.
Files changed (51) hide show
  1. package/README.md +11 -9
  2. package/ast/document.d.ts +12 -12
  3. package/coverage/index.d.ts +9 -0
  4. package/coverage/output/json.d.ts +1 -1
  5. package/diff/argument.d.ts +3 -13
  6. package/diff/changes/argument.d.ts +5 -25
  7. package/diff/changes/change.d.ts +2 -0
  8. package/diff/changes/directive.d.ts +10 -41
  9. package/diff/changes/enum.d.ts +8 -20
  10. package/diff/changes/field.d.ts +15 -64
  11. package/diff/changes/input.d.ts +9 -33
  12. package/diff/changes/object.d.ts +4 -10
  13. package/diff/changes/schema.d.ts +5 -14
  14. package/diff/changes/union.d.ts +4 -10
  15. package/diff/directive.d.ts +2 -2
  16. package/diff/enum.d.ts +2 -2
  17. package/diff/field.d.ts +2 -2
  18. package/diff/index.d.ts +5 -8
  19. package/diff/input.d.ts +2 -2
  20. package/diff/interface.d.ts +2 -2
  21. package/diff/object.d.ts +2 -2
  22. package/diff/rules/config.d.ts +2 -0
  23. package/diff/rules/consider-usage.d.ts +29 -0
  24. package/diff/rules/dangerous-breaking.d.ts +2 -0
  25. package/diff/rules/index.d.ts +3 -0
  26. package/diff/rules/safe-unreachable.d.ts +2 -0
  27. package/diff/rules/types.d.ts +8 -7
  28. package/diff/schema.d.ts +1 -0
  29. package/diff/union.d.ts +2 -2
  30. package/index.d.ts +11 -11
  31. package/index.js +1992 -0
  32. package/index.mjs +1978 -0
  33. package/package.json +16 -5
  34. package/utils/apollo.d.ts +4 -11
  35. package/utils/compare.d.ts +22 -0
  36. package/utils/graphql.d.ts +1 -0
  37. package/utils/isDeprecated.d.ts +2 -0
  38. package/{diff/common → utils}/path.d.ts +0 -0
  39. package/utils/string.d.ts +1 -0
  40. package/validate/alias-count.d.ts +10 -0
  41. package/validate/complexity.d.ts +16 -0
  42. package/validate/directive-count.d.ts +10 -0
  43. package/validate/index.d.ts +12 -2
  44. package/validate/query-depth.d.ts +2 -1
  45. package/validate/token-count.d.ts +5 -0
  46. package/diff/common/compare.d.ts +0 -3
  47. package/index.cjs.js +0 -1688
  48. package/index.cjs.js.map +0 -1
  49. package/index.esm.js +0 -1681
  50. package/index.esm.js.map +0 -1
  51. package/utils/arrays.d.ts +0 -2
package/index.esm.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../dist/core/src/diff/common/compare.js","../../dist/core/src/utils/arrays.js","../../dist/core/src/utils/graphql.js","../../dist/core/src/diff/changes/change.js","../../dist/core/src/diff/changes/schema.js","../../dist/core/src/diff/changes/type.js","../../dist/core/src/diff/changes/directive.js","../../dist/core/src/diff/changes/enum.js","../../dist/core/src/diff/enum.js","../../dist/core/src/diff/changes/union.js","../../dist/core/src/diff/union.js","../../dist/core/src/diff/changes/input.js","../../dist/core/src/diff/input.js","../../dist/core/src/diff/changes/object.js","../../dist/core/src/diff/changes/field.js","../../dist/core/src/diff/changes/argument.js","../../dist/core/src/diff/argument.js","../../dist/core/src/diff/field.js","../../dist/core/src/diff/object.js","../../dist/core/src/diff/interface.js","../../dist/core/src/diff/directive.js","../../dist/core/src/diff/schema.js","../../dist/core/src/diff/common/path.js","../../dist/core/src/diff/rules/suppress-removal-of-deprecated-field.js","../../dist/core/src/diff/rules/ignore-description-changes.js","../../dist/core/src/diff/index.js","../../dist/core/src/ast/document.js","../../dist/core/src/validate/query-depth.js","../../dist/core/src/utils/apollo.js","../../dist/core/src/validate/index.js","../../dist/core/src/utils/string.js","../../dist/core/src/similar/index.js","../../dist/core/src/coverage/index.js"],"sourcesContent":["export function isEqual(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n for (var 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 isVoid(a) {\n return typeof a === 'undefined' || a === null;\n}\n//# sourceMappingURL=compare.js.map\n","export function diffArrays(a, b) {\n return a.filter((c) => !b.some((d) => d === c));\n}\nexport function unionArrays(a, b) {\n return a.filter((c) => b.some((d) => d === c));\n}\n//# sourceMappingURL=arrays.js.map","import { isWrappingType, isListType, isNonNullType, Kind, GraphQLError, TypeInfo, visit, visitWithTypeInfo, getNamedType, } from 'graphql';\nexport function safeChangeForField(oldType, newType) {\n if (!isWrappingType(oldType) && !isWrappingType(newType)) {\n return oldType.toString() === newType.toString();\n }\n if (isNonNullType(newType)) {\n const ofType = isNonNullType(oldType) ? oldType.ofType : oldType;\n return safeChangeForField(ofType, newType.ofType);\n }\n if (isListType(oldType)) {\n return ((isListType(newType) &&\n safeChangeForField(oldType.ofType, newType.ofType)) ||\n (isNonNullType(newType) && safeChangeForField(oldType, newType.ofType)));\n }\n return false;\n}\nexport function safeChangeForInputValue(oldType, newType) {\n if (!isWrappingType(oldType) && !isWrappingType(newType)) {\n return oldType.toString() === newType.toString();\n }\n if (isListType(oldType) && isListType(newType)) {\n return safeChangeForInputValue(oldType.ofType, newType.ofType);\n }\n if (isNonNullType(oldType)) {\n const ofType = isNonNullType(newType) ? newType : newType;\n return safeChangeForInputValue(oldType.ofType, ofType);\n }\n return false;\n}\nexport function getKind(type) {\n const node = type.astNode;\n return (node && node.kind) || '';\n}\nexport function getTypePrefix(type) {\n const kind = getKind(type);\n const kindsMap = {\n [Kind.SCALAR_TYPE_DEFINITION]: 'scalar',\n [Kind.OBJECT_TYPE_DEFINITION]: 'type',\n [Kind.INTERFACE_TYPE_DEFINITION]: 'interface',\n [Kind.UNION_TYPE_DEFINITION]: 'union',\n [Kind.ENUM_TYPE_DEFINITION]: 'enum',\n [Kind.INPUT_OBJECT_TYPE_DEFINITION]: 'input',\n };\n return kindsMap[kind];\n}\nexport function isPrimitive(type) {\n return (['String', 'Int', 'Float', 'Boolean', 'ID'].indexOf(typeof type === 'string' ? type : type.name) !== -1);\n}\nexport function isForIntrospection(type) {\n return ([\n '__Schema',\n '__Type',\n '__TypeKind',\n '__Field',\n '__InputValue',\n '__EnumValue',\n '__Directive',\n '__DirectiveLocation',\n ].indexOf(typeof type === 'string' ? type : type.name) !== -1);\n}\nexport function findDeprecatedUsages(schema, ast) {\n const errors = [];\n const typeInfo = new TypeInfo(schema);\n visit(ast, visitWithTypeInfo(typeInfo, {\n Field(node) {\n const fieldDef = typeInfo.getFieldDef();\n if (fieldDef && fieldDef.isDeprecated) {\n const parentType = typeInfo.getParentType();\n if (parentType) {\n const reason = fieldDef.deprecationReason;\n errors.push(new GraphQLError(`The field '${parentType.name}.${fieldDef.name}' is deprecated.${reason ? ' ' + reason : ''}`, [node]));\n }\n }\n },\n EnumValue(node) {\n const enumVal = typeInfo.getEnumValue();\n if (enumVal && enumVal.isDeprecated) {\n const type = getNamedType(typeInfo.getInputType());\n if (type) {\n const reason = enumVal.deprecationReason;\n errors.push(new GraphQLError(`The enum value '${type.name}.${enumVal.name}' is deprecated.${reason ? ' ' + reason : ''}`, [node]));\n }\n }\n },\n }));\n return errors;\n}\nexport function removeFieldIfDirectives(node, directiveNames) {\n if (node.directives) {\n if (node.directives.some((d) => directiveNames.indexOf(d.name.value) !== -1)) {\n return null;\n }\n }\n return node;\n}\nexport function removeDirectives(node, directiveNames) {\n if (node.directives) {\n return Object.assign(Object.assign({}, node), { directives: node.directives.filter((d) => directiveNames.indexOf(d.name.value) === -1) });\n }\n return node;\n}\n//# sourceMappingURL=graphql.js.map","export var ChangeType;\n(function (ChangeType) {\n // Argument\n ChangeType[\"FieldArgumentDescriptionChanged\"] = \"FIELD_ARGUMENT_DESCRIPTION_CHANGED\";\n ChangeType[\"FieldArgumentDefaultChanged\"] = \"FIELD_ARGUMENT_DEFAULT_CHANGED\";\n ChangeType[\"FieldArgumentTypeChanged\"] = \"FIELD_ARGUMENT_TYPE_CHANGED\";\n // Directive\n ChangeType[\"DirectiveRemoved\"] = \"DIRECTIVE_REMOVED\";\n ChangeType[\"DirectiveAdded\"] = \"DIRECTIVE_ADDED\";\n ChangeType[\"DirectiveDescriptionChanged\"] = \"DIRECTIVE_DESCRIPTION_CHANGED\";\n ChangeType[\"DirectiveLocationAdded\"] = \"DIRECTIVE_LOCATION_ADDED\";\n ChangeType[\"DirectiveLocationRemoved\"] = \"DIRECTIVE_LOCATION_REMOVED\";\n ChangeType[\"DirectiveArgumentAdded\"] = \"DIRECTIVE_ARGUMENT_ADDED\";\n ChangeType[\"DirectiveArgumentRemoved\"] = \"DIRECTIVE_ARGUMENT_REMOVED\";\n ChangeType[\"DirectiveArgumentDescriptionChanged\"] = \"DIRECTIVE_ARGUMENT_DESCRIPTION_CHANGED\";\n ChangeType[\"DirectiveArgumentDefaultValueChanged\"] = \"DIRECTIVE_ARGUMENT_DEFAULT_VALUE_CHANGED\";\n ChangeType[\"DirectiveArgumentTypeChanged\"] = \"DIRECTIVE_ARGUMENT_TYPE_CHANGED\";\n // Enum\n ChangeType[\"EnumValueRemoved\"] = \"ENUM_VALUE_REMOVED\";\n ChangeType[\"EnumValueAdded\"] = \"ENUM_VALUE_ADDED\";\n ChangeType[\"EnumValueDescriptionChanged\"] = \"ENUM_VALUE_DESCRIPTION_CHANGED\";\n ChangeType[\"EnumValueDeprecationReasonChanged\"] = \"ENUM_VALUE_DEPRECATION_REASON_CHANGED\";\n // Field\n ChangeType[\"FieldRemoved\"] = \"FIELD_REMOVED\";\n ChangeType[\"FieldAdded\"] = \"FIELD_ADDED\";\n ChangeType[\"FieldDescriptionChanged\"] = \"FIELD_DESCRIPTION_CHANGED\";\n ChangeType[\"FieldDescriptionAdded\"] = \"FIELD_DESCRIPTION_ADDED\";\n ChangeType[\"FieldDescriptionRemoved\"] = \"FIELD_DESCRIPTION_REMOVED\";\n ChangeType[\"FieldDeprecationAdded\"] = \"FIELD_DEPRECATION_ADDED\";\n ChangeType[\"FieldDeprecationRemoved\"] = \"FIELD_DEPRECATION_REMOVED\";\n ChangeType[\"FieldDeprecationReasonChanged\"] = \"FIELD_DEPRECATION_REASON_CHANGED\";\n ChangeType[\"FieldDeprecationReasonAdded\"] = \"FIELD_DEPRECATION_REASON_ADDED\";\n ChangeType[\"FieldDeprecationReasonRemoved\"] = \"FIELD_DEPRECATION_REASON_REMOVED\";\n ChangeType[\"FieldTypeChanged\"] = \"FIELD_TYPE_CHANGED\";\n ChangeType[\"FieldArgumentAdded\"] = \"FIELD_ARGUMENT_ADDED\";\n ChangeType[\"FieldArgumentRemoved\"] = \"FIELD_ARGUMENT_REMOVED\";\n // Input\n ChangeType[\"InputFieldRemoved\"] = \"INPUT_FIELD_REMOVED\";\n ChangeType[\"InputFieldAdded\"] = \"INPUT_FIELD_ADDED\";\n ChangeType[\"InputFieldDescriptionAdded\"] = \"INPUT_FIELD_DESCRIPTION_ADDED\";\n ChangeType[\"InputFieldDescriptionRemoved\"] = \"INPUT_FIELD_DESCRIPTION_REMOVED\";\n ChangeType[\"InputFieldDescriptionChanged\"] = \"INPUT_FIELD_DESCRIPTION_CHANGED\";\n ChangeType[\"InputFieldDefaultValueChanged\"] = \"INPUT_FIELD_DEFAULT_VALUE_CHANGED\";\n ChangeType[\"InputFieldTypeChanged\"] = \"INPUT_FIELD_TYPE_CHANGED\";\n // Type\n ChangeType[\"ObjectTypeInterfaceAdded\"] = \"OBJECT_TYPE_INTERFACE_ADDED\";\n ChangeType[\"ObjectTypeInterfaceRemoved\"] = \"OBJECT_TYPE_INTERFACE_REMOVED\";\n // Schema\n ChangeType[\"SchemaQueryTypeChanged\"] = \"SCHEMA_QUERY_TYPE_CHANGED\";\n ChangeType[\"SchemaMutationTypeChanged\"] = \"SCHEMA_MUTATION_TYPE_CHANGED\";\n ChangeType[\"SchemaSubscriptionTypeChanged\"] = \"SCHEMA_SUBSCRIPTION_TYPE_CHANGED\";\n // Type\n ChangeType[\"TypeRemoved\"] = \"TYPE_REMOVED\";\n ChangeType[\"TypeAdded\"] = \"TYPE_ADDED\";\n ChangeType[\"TypeKindChanged\"] = \"TYPE_KIND_CHANGED\";\n ChangeType[\"TypeDescriptionChanged\"] = \"TYPE_DESCRIPTION_CHANGED\";\n // TODO\n ChangeType[\"TypeDescriptionRemoved\"] = \"TYPE_DESCRIPTION_REMOVED\";\n // TODO\n ChangeType[\"TypeDescriptionAdded\"] = \"TYPE_DESCRIPTION_ADDED\";\n // Union\n ChangeType[\"UnionMemberRemoved\"] = \"UNION_MEMBER_REMOVED\";\n ChangeType[\"UnionMemberAdded\"] = \"UNION_MEMBER_ADDED\";\n})(ChangeType || (ChangeType = {}));\nexport var CriticalityLevel;\n(function (CriticalityLevel) {\n CriticalityLevel[\"Breaking\"] = \"BREAKING\";\n CriticalityLevel[\"NonBreaking\"] = \"NON_BREAKING\";\n CriticalityLevel[\"Dangerous\"] = \"DANGEROUS\";\n})(CriticalityLevel || (CriticalityLevel = {}));\n//# sourceMappingURL=change.js.map","import {CriticalityLevel, ChangeType} from './change';\nexport function schemaQueryTypeChanged(oldSchema, newSchema) {\n const oldName = (oldSchema.getQueryType() || {}).name || 'unknown';\n const newName = (newSchema.getQueryType() || {}).name || 'unknown';\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.SchemaQueryTypeChanged,\n message: `Schema query root has changed from '${oldName}' to '${newName}'`,\n };\n}\nexport function schemaMutationTypeChanged(oldSchema, newSchema) {\n const oldName = (oldSchema.getMutationType() || {}).name || 'unknown';\n const newName = (newSchema.getMutationType() || {}).name || 'unknown';\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.SchemaMutationTypeChanged,\n message: `Schema mutation root has changed from '${oldName}' to '${newName}'`,\n };\n}\nexport function schemaSubscriptionTypeChanged(oldSchema, newSchema) {\n const oldName = (oldSchema.getSubscriptionType() || {}).name || 'unknown';\n const newName = (newSchema.getSubscriptionType() || {}).name || 'unknown';\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.SchemaSubscriptionTypeChanged,\n message: `Schema subscription root has changed from '${oldName}' to '${newName}'`,\n };\n}\n//# sourceMappingURL=schema.js.map\n","import { CriticalityLevel, ChangeType } from './change';\nimport { getKind } from '../../utils/graphql';\nexport function typeRemoved(type) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.TypeRemoved,\n message: `Type '${type.name}' was removed`,\n path: type.name,\n };\n}\nexport function typeAdded(type) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.TypeAdded,\n message: `Type '${type.name}' was added`,\n path: type.name,\n };\n}\nexport function typeKindChanged(oldType, newType) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: `Changing the kind of a type is a breaking change because it can cause existing queries to error. For example, turning an object type to a scalar type would break queries that define a selection set for this type.`,\n },\n type: ChangeType.TypeKindChanged,\n message: `'${oldType.name}' kind changed from '${getKind(oldType)}' to '${getKind(newType)}'`,\n path: oldType.name,\n };\n}\nexport function typeDescriptionChanged(oldType, newType) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.TypeDescriptionChanged,\n message: `Description '${oldType.description}' on type '${oldType.name}' has changed to '${newType.description}'`,\n path: oldType.name,\n };\n}\nexport function typeDescriptionRemoved(type) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.TypeDescriptionRemoved,\n message: `Description '${type.description}' was removed from object type '${type.name}'`,\n path: type.name,\n };\n}\nexport function typeDescriptionAdded(type) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.TypeDescriptionAdded,\n message: `Object type '${type.name}' has description '${type.description}'`,\n path: type.name,\n };\n}\n//# sourceMappingURL=type.js.map","import {isNonNullType} from 'graphql';\nimport {CriticalityLevel, ChangeType} from './change';\nimport {safeChangeForInputValue} from '../../utils/graphql';\nexport function directiveRemoved(directive) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.DirectiveRemoved,\n message: `Directive '${directive.name}' was removed`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveAdded(directive) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveAdded,\n message: `Directive '${directive.name}' was added`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveDescriptionChanged(oldDirective, newDirective) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveDescriptionChanged,\n message: `Directive '${oldDirective.name}' description changed from '${oldDirective.description}' to '${newDirective.description}'`,\n path: `@${oldDirective.name}`,\n };\n}\nexport function directiveLocationAdded(directive, location) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveLocationAdded,\n message: `Location '${location}' was added to directive '${directive.name}'`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveLocationRemoved(directive, location) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.DirectiveLocationRemoved,\n message: `Location '${location}' was removed from directive '${directive.name}'`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveArgumentAdded(directive, arg) {\n return {\n criticality: {\n level: isNonNullType(arg.type)\n ? CriticalityLevel.Breaking\n : CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveArgumentAdded,\n message: `Argument '${arg.name}' was added to directive '${directive.name}'`,\n path: `@${directive.name}`,\n };\n}\nexport function directiveArgumentRemoved(directive, arg) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.DirectiveArgumentRemoved,\n message: `Argument '${arg.name}' was removed from directive '${directive.name}'`,\n path: `@${directive.name}.${arg.name}`,\n };\n}\nexport function directiveArgumentDescriptionChanged(directive, oldArg, newArg) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.DirectiveArgumentDescriptionChanged,\n message: `Description for argument '${oldArg.name}' on directive '${directive.name}' changed from '${oldArg.description}' to '${newArg.description}'`,\n path: `@${directive.name}.${oldArg.name}`,\n };\n}\nexport function directiveArgumentDefaultValueChanged(\n directive,\n oldArg,\n newArg,\n) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason:\n 'Changing the default value for an argument may change the runtime behaviour of a field if it was never provided.',\n },\n type: ChangeType.DirectiveArgumentDefaultValueChanged,\n message:\n typeof oldArg.defaultValue === 'undefined'\n ? `Default value '${newArg.defaultValue}' was added to argument '${newArg.name}' on directive '${directive.name}'`\n : `Default value for argument '${oldArg.name}' on directive '${directive.name}' changed from '${oldArg.defaultValue}' to '${newArg.defaultValue}'`,\n path: `@${directive.name}.${oldArg.name}`,\n };\n}\nexport function directiveArgumentTypeChanged(directive, oldArg, newArg) {\n return {\n criticality: safeChangeForInputValue(oldArg.type, newArg.type)\n ? {\n level: CriticalityLevel.NonBreaking,\n reason:\n 'Changing an input field from non-null to null is considered non-breaking.',\n }\n : {\n level: CriticalityLevel.Breaking,\n },\n type: ChangeType.DirectiveArgumentTypeChanged,\n message: `Type for argument '${oldArg.name}' on directive '${directive.name}' changed from '${oldArg.type}' to '${newArg.type}'`,\n path: `@${directive.name}.${oldArg.name}`,\n };\n}\n//# sourceMappingURL=directive.js.map\n","import {CriticalityLevel, ChangeType} from './change';\nexport function enumValueRemoved(oldEnum, value) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: `Removing an enum value will cause existing queries that use this enum value to error.`,\n },\n type: ChangeType.EnumValueRemoved,\n message: `Enum value '${value.name}' was removed from enum '${oldEnum.name}'`,\n path: [oldEnum.name, value.name].join('.'),\n };\n}\nexport function enumValueAdded(newEnum, value) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason: `Adding an enum value may break existing clients that were not programming defensively against an added case when querying an enum.`,\n },\n type: ChangeType.EnumValueAdded,\n message: `Enum value '${value.name}' was added to enum '${newEnum.name}'`,\n path: [newEnum.name, value.name].join('.'),\n };\n}\nexport function enumValueDescriptionChanged(newEnum, oldValue, newValue) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.EnumValueDescriptionChanged,\n message:\n typeof oldValue.description === 'undefined'\n ? `Description '${newValue.description}' was added to enum value '${newEnum.name}.${newValue.name}'`\n : `Description for enum value '${newEnum.name}.${newValue.name}' changed from '${oldValue.description}' to '${newValue.description}'`,\n path: [newEnum.name, oldValue.name].join('.'),\n };\n}\nexport function enumValueDeprecationReasonChanged(newEnum, oldValue, newValue) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.EnumValueDescriptionChanged,\n message: oldValue.deprecationReason\n ? `Enum value '${newEnum.name}.${newValue.name}' deprecation reason changed from '${oldValue.deprecationReason}' to '${newValue.deprecationReason}'`\n : `Enum value '${newEnum.name}.${newValue.name}' was deprecated with reason '${newValue.deprecationReason}'`,\n path: [newEnum.name, oldValue.name].join('.'),\n };\n}\n//# sourceMappingURL=enum.js.map\n","import { isNotEqual } from './common/compare';\nimport { enumValueRemoved, enumValueAdded, enumValueDescriptionChanged, enumValueDeprecationReasonChanged, } from './changes/enum';\nimport { unionArrays, diffArrays } from '../utils/arrays';\nexport function changesInEnum(oldEnum, newEnum) {\n const changes = [];\n const oldNames = oldEnum.getValues().map((v) => v.name);\n const newNames = newEnum.getValues().map((v) => v.name);\n const added = diffArrays(newNames, oldNames).map((name) => newEnum.getValue(name));\n const removed = diffArrays(oldNames, newNames).map((name) => oldEnum.getValue(name));\n const common = unionArrays(oldNames, newNames).map((name) => ({\n oldValue: oldEnum.getValue(name),\n newValue: newEnum.getValue(name),\n }));\n changes.push(...added.map((v) => enumValueAdded(newEnum, v)));\n changes.push(...removed.map((v) => enumValueRemoved(oldEnum, v)));\n common.forEach(({ oldValue, newValue }) => {\n if (isNotEqual(oldValue.description, newValue.description)) {\n changes.push(enumValueDescriptionChanged(newEnum, oldValue, newValue));\n }\n if (isNotEqual(oldValue.deprecationReason, newValue.deprecationReason)) {\n changes.push(enumValueDeprecationReasonChanged(newEnum, oldValue, newValue));\n }\n });\n return changes;\n}\n//# sourceMappingURL=enum.js.map","import {CriticalityLevel, ChangeType} from './change';\nexport function unionMemberRemoved(union, type) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason:\n 'Removing a union member from a union can cause existing queries that use this union member in a fragment spread to error.',\n },\n type: ChangeType.UnionMemberRemoved,\n message: `Member '${type.name}' was removed from Union type '${union.name}'`,\n path: union.name,\n };\n}\nexport function unionMemberAdded(union, type) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason:\n 'Adding a possible type to Unions may break existing clients that were not programming defensively against a new possible type.',\n },\n type: ChangeType.UnionMemberAdded,\n message: `Member '${type.name}' was added to Union type '${union.name}'`,\n path: union.name,\n };\n}\n//# sourceMappingURL=union.js.map\n","import { diffArrays } from '../utils/arrays';\nimport { unionMemberAdded, unionMemberRemoved } from './changes/union';\nexport function changesInUnion(oldUnion, newUnion) {\n const changes = [];\n const oldTypes = oldUnion.getTypes();\n const newTypes = newUnion.getTypes();\n const oldTypenames = oldTypes.map((t) => t.name);\n const newTypenames = newTypes.map((t) => t.name);\n const added = diffArrays(newTypenames, oldTypenames).map((name) => newTypes.find((t) => t.name === name));\n const removed = diffArrays(oldTypenames, newTypenames).map((name) => oldTypes.find((t) => t.name === name));\n changes.push(...added.map((type) => unionMemberAdded(newUnion, type)));\n changes.push(...removed.map((type) => unionMemberRemoved(oldUnion, type)));\n return changes;\n}\n//# sourceMappingURL=union.js.map","import {isNonNullType} from 'graphql';\nimport {CriticalityLevel, ChangeType} from './change';\nimport {safeChangeForInputValue} from '../../utils/graphql';\nexport function inputFieldRemoved(input, field) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason:\n 'Removing an input field will cause existing queries that use this input field to error.',\n },\n type: ChangeType.InputFieldRemoved,\n message: `Input field '${field.name}' was removed from input object type '${input.name}'`,\n path: [input.name, field.name].join('.'),\n };\n}\nexport function inputFieldAdded(input, field) {\n return {\n criticality: isNonNullType(field.type)\n ? {\n level: CriticalityLevel.Breaking,\n reason:\n 'Adding a possible type to Unions may break existing clients that were not programming defensively against a new possible type.',\n }\n : {\n level: CriticalityLevel.Dangerous,\n },\n type: ChangeType.InputFieldAdded,\n message: `Input field '${field.name}' was added to input object type '${input.name}'`,\n path: [input.name, field.name].join('.'),\n };\n}\nexport function inputFieldDescriptionAdded(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.InputFieldDescriptionAdded,\n message: `Input field '${type.name}.${field.name}' has description '${field.description}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function inputFieldDescriptionRemoved(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.InputFieldDescriptionRemoved,\n message: `Description was removed from input field '${type.name}.${field.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function inputFieldDescriptionChanged(input, oldField, newField) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.InputFieldDescriptionChanged,\n message: `Input field '${input.name}.${oldField.name}' description changed from '${oldField.description}' to '${newField.description}'`,\n path: [input.name, oldField.name].join('.'),\n };\n}\nexport function inputFieldDefaultValueChanged(input, oldField, newField) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason:\n 'Changing the default value for an argument may change the runtime behaviour of a field if it was never provided.',\n },\n type: ChangeType.InputFieldDefaultValueChanged,\n message: `Input field '${input.name}.${oldField.name}' default value changed from '${oldField.defaultValue}' to '${newField.defaultValue}'`,\n path: [input.name, oldField.name].join('.'),\n };\n}\nexport function inputFieldTypeChanged(input, oldField, newField) {\n return {\n criticality: safeChangeForInputValue(oldField.type, newField.type)\n ? {\n level: CriticalityLevel.NonBreaking,\n reason:\n 'Changing an input field from non-null to null is considered non-breaking.',\n }\n : {\n level: CriticalityLevel.Breaking,\n reason:\n 'Changing the type of an input field can cause existing queries that use this field to error.',\n },\n type: ChangeType.InputFieldTypeChanged,\n message: `Input field '${input.name}.${\n oldField.name\n }' changed type from '${oldField.type.toString()}' to '${newField.type.toString()}'`,\n path: [input.name, oldField.name].join('.'),\n };\n}\n//# sourceMappingURL=input.js.map\n","import { isNotEqual, isVoid } from './common/compare';\nimport { diffArrays, unionArrays } from '../utils/arrays';\nimport { inputFieldAdded, inputFieldRemoved, inputFieldDescriptionChanged, inputFieldDescriptionAdded, inputFieldDescriptionRemoved, inputFieldDefaultValueChanged, inputFieldTypeChanged, } from './changes/input';\nexport function changesInInputObject(oldInput, newInput) {\n const changes = [];\n const oldFields = oldInput.getFields();\n const newFields = newInput.getFields();\n const oldNames = Object.keys(oldFields).map((name) => oldFields[name].name);\n const newNames = Object.keys(newFields).map((name) => newFields[name].name);\n const added = diffArrays(newNames, oldNames).map((name) => newFields[name]);\n const removed = diffArrays(oldNames, newNames).map((name) => oldFields[name]);\n const common = unionArrays(oldNames, newNames).map((name) => ({\n inOld: oldFields[name],\n inNew: newFields[name],\n }));\n common.forEach(({ inOld, inNew }) => {\n changes.push(...changesInInputField(oldInput, inOld, inNew));\n });\n changes.push(...added.map((field) => inputFieldAdded(newInput, field)));\n changes.push(...removed.map((field) => inputFieldRemoved(oldInput, field)));\n return changes;\n}\nfunction changesInInputField(input, oldField, newField) {\n const changes = [];\n if (isNotEqual(oldField.description, newField.description)) {\n if (isVoid(oldField.description)) {\n changes.push(inputFieldDescriptionAdded(input, newField));\n }\n else if (isVoid(newField.description)) {\n changes.push(inputFieldDescriptionRemoved(input, oldField));\n }\n else {\n changes.push(inputFieldDescriptionChanged(input, oldField, newField));\n }\n }\n if (isNotEqual(oldField.defaultValue, newField.defaultValue)) {\n if (Array.isArray(oldField.defaultValue) &&\n Array.isArray(newField.defaultValue)) {\n if (diffArrays(oldField.defaultValue, newField.defaultValue).length > 0) {\n changes.push(inputFieldDefaultValueChanged(input, oldField, newField));\n }\n }\n else if (JSON.stringify(oldField.defaultValue) !==\n JSON.stringify(newField.defaultValue)) {\n changes.push(inputFieldDefaultValueChanged(input, oldField, newField));\n }\n }\n if (isNotEqual(oldField.type.toString(), newField.type.toString())) {\n changes.push(inputFieldTypeChanged(input, oldField, newField));\n }\n // TODO: diff directives\n return changes;\n}\n//# sourceMappingURL=input.js.map","import {CriticalityLevel, ChangeType} from './change';\nexport function objectTypeInterfaceAdded(iface, type) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason:\n 'Adding an interface to an object type may break existing clients that were not programming defensively against a new possible type.',\n },\n type: ChangeType.ObjectTypeInterfaceAdded,\n message: `'${type.name}' object implements '${iface.name}' interface`,\n path: type.name,\n };\n}\nexport function objectTypeInterfaceRemoved(iface, type) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason:\n 'Removing an interface from an object type can cause existing queries that use this in a fragment spread to error.',\n },\n type: ChangeType.ObjectTypeInterfaceRemoved,\n message: `'${type.name}' object type no longer implements '${iface.name}' interface`,\n path: type.name,\n };\n}\n//# sourceMappingURL=object.js.map\n","import {isNonNullType, isInterfaceType} from 'graphql';\nimport {CriticalityLevel, ChangeType} from './change';\nimport {safeChangeForField} from '../../utils/graphql';\nexport function fieldRemoved(type, field) {\n const entity = isInterfaceType(type) ? 'interface' : 'object type';\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: field.deprecationReason\n ? `Removing a deprecated field is a breaking change. Before removing it, you may want to look at the field's usage to see the impact of removing the field.`\n : `Removing a field is a breaking change. It is preferable to deprecate the field before removing it.`,\n },\n type: ChangeType.FieldRemoved,\n message: `Field '${field.name}' ${\n field.isDeprecated ? '(deprecated) ' : ''\n }was removed from ${entity} '${type.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldAdded(type, field) {\n const entity = isInterfaceType(type) ? 'interface' : 'object type';\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldAdded,\n message: `Field '${field.name}' was added to ${entity} '${type.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDescriptionChanged(type, oldField, newField) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDescriptionChanged,\n message: `Field '${type.name}.${oldField.name}' description changed from '${oldField.description}' to '${newField.description}'`,\n path: [type.name, oldField.name].join('.'),\n };\n}\nexport function fieldDescriptionAdded(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDescriptionAdded,\n message: `Field '${type.name}.${field.name}' has description '${field.description}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDescriptionRemoved(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDescriptionRemoved,\n message: `Description was removed from field '${type.name}.${field.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDeprecationAdded(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDeprecationAdded,\n message: `Field '${type.name}.${field.name}' is deprecated`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDeprecationRemoved(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n },\n type: ChangeType.FieldDeprecationRemoved,\n message: `Field '${type.name}.${field.name}' is no longer deprecated`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDeprecationReasonChanged(type, oldField, newField) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDeprecationReasonChanged,\n message: `Deprecation reason on field '${type.name}.${newField.name}' has changed from '${oldField.deprecationReason}' to '${newField.deprecationReason}'`,\n path: [type.name, oldField.name].join('.'),\n };\n}\nexport function fieldDeprecationReasonAdded(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDeprecationReasonAdded,\n message: `Field '${type.name}.${field.name}' has deprecation reason '${field.deprecationReason}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldDeprecationReasonRemoved(type, field) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldDeprecationReasonRemoved,\n message: `Deprecation reason was removed from field '${type.name}.${field.name}'`,\n path: [type.name, field.name].join('.'),\n };\n}\nexport function fieldTypeChanged(type, oldField, newField) {\n return {\n criticality: {\n level: safeChangeForField(oldField.type, newField.type)\n ? CriticalityLevel.NonBreaking\n : CriticalityLevel.Breaking,\n },\n type: ChangeType.FieldTypeChanged,\n message: `Field '${type}.${oldField.name}' changed type from '${oldField.type}' to '${newField.type}'`,\n path: [type.name, oldField.name].join('.'),\n };\n}\nexport function fieldArgumentAdded(type, field, arg) {\n return {\n criticality: isNonNullType(arg.type)\n ? {\n level: CriticalityLevel.Breaking,\n reason: `Adding a required argument to an existing field is a breaking change because it will cause existing uses of this field to error.`,\n }\n : {\n level: CriticalityLevel.Dangerous,\n reason: `Adding a new argument to an existing field may involve a change in resolve function logic that potentially may cause some side effects.`,\n },\n type: ChangeType.FieldArgumentAdded,\n message: `Argument '${arg.name}: ${arg.type}' added to field '${type.name}.${field.name}'`,\n path: [type.name, field.name, arg.name].join('.'),\n };\n}\nexport function fieldArgumentRemoved(type, field, arg) {\n return {\n criticality: {\n level: CriticalityLevel.Breaking,\n reason: `Removing a field argument is a breaking change because it will cause existing queries that use this argument to error.`,\n },\n type: ChangeType.FieldArgumentRemoved,\n message: `Argument '${arg.name}: ${arg.type}' was removed from field '${type.name}.${field.name}'`,\n path: [type.name, field.name, arg.name].join('.'),\n };\n}\n//# sourceMappingURL=field.js.map\n","import {CriticalityLevel, ChangeType} from './change';\nimport {safeChangeForInputValue} from '../../utils/graphql';\nexport function fieldArgumentDescriptionChanged(type, field, oldArg, newArg) {\n return {\n criticality: {\n level: CriticalityLevel.NonBreaking,\n },\n type: ChangeType.FieldArgumentDescriptionChanged,\n message: `Description for argument '${newArg.name}' on field '${type.name}.${field.name}' changed from '${oldArg.description}' to '${newArg.description}'`,\n path: [type.name, field.name, oldArg.name].join('.'),\n };\n}\nexport function fieldArgumentDefaultChanged(type, field, oldArg, newArg) {\n return {\n criticality: {\n level: CriticalityLevel.Dangerous,\n reason:\n 'Changing the default value for an argument may change the runtime behaviour of a field if it was never provided.',\n },\n type: ChangeType.FieldArgumentDefaultChanged,\n message:\n typeof oldArg.defaultValue === 'undefined'\n ? `Default value '${newArg.defaultValue}' was added to argument '${newArg.name}' on field '${type.name}.${field.name}'`\n : `Default value for argument '${newArg.name}' on field '${type.name}.${field.name}' changed from '${oldArg.defaultValue}' to '${newArg.defaultValue}'`,\n path: [type.name, field.name, oldArg.name].join('.'),\n };\n}\nexport function fieldArgumentTypeChanged(type, field, oldArg, newArg) {\n return {\n criticality: safeChangeForInputValue(oldArg.type, newArg.type)\n ? {\n level: CriticalityLevel.NonBreaking,\n reason: `Changing an input field from non-null to null is considered non-breaking.`,\n }\n : {\n level: CriticalityLevel.Breaking,\n reason: `Changing the type of a field's argument can cause existing queries that use this argument to error.`,\n },\n type: ChangeType.FieldArgumentTypeChanged,\n message: `Type for argument '${newArg.name}' on field '${type.name}.${field.name}' changed from '${oldArg.type}' to '${newArg.type}'`,\n path: [type.name, field.name, oldArg.name].join('.'),\n };\n}\n//# sourceMappingURL=argument.js.map\n","import {isNotEqual} from './common/compare';\nimport {\n fieldArgumentDescriptionChanged,\n fieldArgumentDefaultChanged,\n fieldArgumentTypeChanged,\n} from './changes/argument';\nimport {diffArrays} from '../utils/arrays';\nexport function changesInArgument(type, field, oldArg, newArg) {\n const changes = [];\n if (isNotEqual(oldArg.description, newArg.description)) {\n changes.push(fieldArgumentDescriptionChanged(type, field, oldArg, newArg));\n }\n if (isNotEqual(oldArg.defaultValue, newArg.defaultValue)) {\n if (\n Array.isArray(oldArg.defaultValue) &&\n Array.isArray(newArg.defaultValue)\n ) {\n const diff = diffArrays(oldArg.defaultValue, newArg.defaultValue);\n if (diff.length > 0) {\n changes.push(fieldArgumentDefaultChanged(type, field, oldArg, newArg));\n }\n } else if (\n JSON.stringify(oldArg.defaultValue) !==\n JSON.stringify(newArg.defaultValue)\n ) {\n changes.push(fieldArgumentDefaultChanged(type, field, oldArg, newArg));\n }\n }\n if (isNotEqual(oldArg.type.toString(), newArg.type.toString())) {\n changes.push(fieldArgumentTypeChanged(type, field, oldArg, newArg));\n }\n return changes;\n}\n//# sourceMappingURL=argument.js.map\n","import { isNotEqual, isVoid } from './common/compare';\nimport { fieldDescriptionChanged, fieldDescriptionAdded, fieldDescriptionRemoved, fieldDeprecationAdded, fieldDeprecationRemoved, fieldDeprecationReasonChanged, fieldDeprecationReasonAdded, fieldDeprecationReasonRemoved, fieldTypeChanged, fieldArgumentAdded, fieldArgumentRemoved, } from './changes/field';\nimport { changesInArgument } from './argument';\nimport { unionArrays, diffArrays } from '../utils/arrays';\nexport function changesInField(type, oldField, newField) {\n const changes = [];\n if (isNotEqual(oldField.description, newField.description)) {\n if (isVoid(oldField.description)) {\n changes.push(fieldDescriptionAdded(type, newField));\n }\n else if (isVoid(newField.description)) {\n changes.push(fieldDescriptionRemoved(type, oldField));\n }\n else {\n changes.push(fieldDescriptionChanged(type, oldField, newField));\n }\n }\n if (isNotEqual(oldField.isDeprecated, newField.isDeprecated)) {\n if (newField.isDeprecated) {\n changes.push(fieldDeprecationAdded(type, newField));\n }\n else {\n changes.push(fieldDeprecationRemoved(type, oldField));\n }\n }\n if (isNotEqual(oldField.deprecationReason, newField.deprecationReason)) {\n if (isVoid(oldField.deprecationReason)) {\n changes.push(fieldDeprecationReasonAdded(type, newField));\n }\n else if (isVoid(newField.deprecationReason)) {\n changes.push(fieldDeprecationReasonRemoved(type, oldField));\n }\n else {\n changes.push(fieldDeprecationReasonChanged(type, oldField, newField));\n }\n }\n if (isNotEqual(oldField.type.toString(), newField.type.toString())) {\n changes.push(fieldTypeChanged(type, oldField, newField));\n }\n const oldArgs = oldField.args;\n const newArgs = newField.args;\n const oldNames = oldArgs.map((a) => a.name);\n const newNames = newArgs.map((a) => a.name);\n const added = diffArrays(newNames, oldNames).map((name) => newArgs.find((a) => a.name === name));\n const removed = diffArrays(oldNames, newNames).map((name) => oldArgs.find((a) => a.name === name));\n const common = unionArrays(oldNames, newNames).map((name) => ({\n inOld: oldArgs.find((a) => a.name === name),\n inNew: newArgs.find((a) => a.name === name),\n }));\n common.forEach(({ inOld, inNew }) => {\n changes.push(...changesInArgument(type, oldField, inOld, inNew));\n });\n changes.push(...added.map((arg) => fieldArgumentAdded(type, newField, arg)));\n changes.push(...removed.map((arg) => fieldArgumentRemoved(type, oldField, arg)));\n return changes;\n}\n//# sourceMappingURL=field.js.map","import { objectTypeInterfaceAdded, objectTypeInterfaceRemoved, } from './changes/object';\nimport { fieldRemoved, fieldAdded } from './changes/field';\nimport { changesInField } from './field';\nimport { diffArrays, unionArrays } from '../utils/arrays';\nexport function changesInObject(oldType, newType) {\n const changes = [];\n // Interfaces\n changes.push(...addedInterfaces(oldType, newType));\n changes.push(...removedInterfaces(oldType, newType));\n // Fields\n changes.push(...addedFields(oldType, newType));\n changes.push(...removedFields(oldType, newType));\n changedFields(oldType, newType).forEach(({ inOld, inNew }) => {\n changes.push(...changesInField(oldType, inOld, inNew));\n });\n return changes;\n}\nfunction addedInterfaces(oldType, newType) {\n const oldInterfaces = oldType.getInterfaces();\n const newInterfaces = newType.getInterfaces();\n const oldNames = oldInterfaces.map((i) => i.name);\n const newNames = newInterfaces.map((i) => i.name);\n return diffArrays(newNames, oldNames)\n .map((name) => newInterfaces.find((i) => i.name === name))\n .map((i) => objectTypeInterfaceAdded(i, newType));\n}\nfunction removedInterfaces(oldType, newType) {\n const oldInterfaces = oldType.getInterfaces();\n const newInterfaces = newType.getInterfaces();\n const oldNames = oldInterfaces.map((i) => i.name);\n const newNames = newInterfaces.map((i) => i.name);\n return diffArrays(oldNames, newNames)\n .map((name) => oldInterfaces.find((i) => i.name === name))\n .map((i) => objectTypeInterfaceRemoved(i, newType));\n}\nfunction addedFields(oldType, newType) {\n const oldFields = oldType.getFields();\n const newFields = newType.getFields();\n const oldNames = Object.keys(oldFields);\n const newNames = Object.keys(newFields);\n return diffArrays(newNames, oldNames)\n .map((name) => newFields[name])\n .map((f) => fieldAdded(newType, f));\n}\nfunction removedFields(oldType, newType) {\n const oldFields = oldType.getFields();\n const newFields = newType.getFields();\n const oldNames = Object.keys(oldFields);\n const newNames = Object.keys(newFields);\n return diffArrays(oldNames, newNames)\n .map((name) => oldFields[name])\n .map((f) => fieldRemoved(oldType, f));\n}\nfunction changedFields(oldType, newType) {\n const oldFields = oldType.getFields();\n const newFields = newType.getFields();\n const oldNames = Object.keys(oldFields);\n const newNames = Object.keys(newFields);\n return unionArrays(oldNames, newNames).map((name) => ({\n inOld: oldFields[name],\n inNew: newFields[name],\n }));\n}\n//# sourceMappingURL=object.js.map","import { fieldRemoved, fieldAdded } from './changes/field';\nimport { changesInField } from './field';\nimport { diffArrays, unionArrays } from '../utils/arrays';\nexport function changesInInterface(oldInterface, newInterface) {\n const changes = [];\n changes.push(...addedFields(oldInterface, newInterface));\n changes.push(...removedFields(oldInterface, newInterface));\n changedFields(oldInterface, newInterface).forEach(({ inOld, inNew }) => {\n changes.push(...changesInField(oldInterface, inOld, inNew));\n });\n return changes;\n}\nfunction addedFields(oldInterface, newInterface) {\n const oldFields = oldInterface.getFields();\n const newFields = newInterface.getFields();\n const oldNames = Object.keys(oldFields);\n const newNames = Object.keys(newFields);\n return diffArrays(newNames, oldNames)\n .map((name) => newFields[name])\n .map((f) => fieldAdded(newInterface, f));\n}\nfunction removedFields(oldInterface, newInterface) {\n const oldFields = oldInterface.getFields();\n const newFields = newInterface.getFields();\n const oldNames = Object.keys(oldFields);\n const newNames = Object.keys(newFields);\n return diffArrays(oldNames, newNames)\n .map((name) => oldFields[name])\n .map((f) => fieldRemoved(oldInterface, f));\n}\nfunction changedFields(oldInterface, newInterface) {\n const oldFields = oldInterface.getFields();\n const newFields = newInterface.getFields();\n const oldNames = Object.keys(oldFields);\n const newNames = Object.keys(newFields);\n return unionArrays(oldNames, newNames).map((name) => ({\n inOld: oldFields[name],\n inNew: newFields[name],\n }));\n}\n//# sourceMappingURL=interface.js.map","import { isNotEqual } from './common/compare';\nimport { directiveDescriptionChanged, directiveLocationAdded, directiveLocationRemoved, directiveArgumentAdded, directiveArgumentRemoved, directiveArgumentDescriptionChanged, directiveArgumentDefaultValueChanged, directiveArgumentTypeChanged, } from './changes/directive';\nimport { diffArrays, unionArrays } from '../utils/arrays';\nexport function changesInDirective(oldDirective, newDirective) {\n const changes = [];\n if (isNotEqual(oldDirective.description, newDirective.description)) {\n changes.push(directiveDescriptionChanged(oldDirective, newDirective));\n }\n // locations added\n changes.push(...diffArrays(newDirective.locations, oldDirective.locations).map((location) => directiveLocationAdded(newDirective, location)));\n // locations removed\n changes.push(...diffArrays(oldDirective.locations, newDirective.locations).map((location) => directiveLocationRemoved(oldDirective, location)));\n const oldNames = oldDirective.args.map((a) => a.name);\n const newNames = newDirective.args.map((a) => a.name);\n // arguments added\n changes.push(...diffArrays(newNames, oldNames).map((name) => directiveArgumentAdded(newDirective, newDirective.args.find((a) => a.name === name))));\n // arguments removed\n changes.push(...diffArrays(oldNames, newNames).map((name) => directiveArgumentRemoved(oldDirective, oldDirective.args.find((a) => a.name === name))));\n // common arguments\n unionArrays(oldNames, newNames).forEach((name) => {\n const oldArg = oldDirective.args.find((a) => a.name === name);\n const newArg = newDirective.args.find((a) => a.name === name);\n changes.push(...changesInDirectiveArgument(oldDirective, oldArg, newArg));\n });\n return changes;\n}\nfunction changesInDirectiveArgument(directive, oldArg, newArg) {\n const changes = [];\n if (isNotEqual(oldArg.description, newArg.description)) {\n changes.push(directiveArgumentDescriptionChanged(directive, oldArg, newArg));\n }\n if (isNotEqual(oldArg.defaultValue, newArg.defaultValue)) {\n changes.push(directiveArgumentDefaultValueChanged(directive, oldArg, newArg));\n }\n if (isNotEqual(oldArg.type.toString(), newArg.type.toString())) {\n changes.push(directiveArgumentTypeChanged(directive, oldArg, newArg));\n }\n return changes;\n}\n//# sourceMappingURL=directive.js.map","import { isEnumType, isUnionType, isInputObjectType, isObjectType, isInterfaceType, isScalarType, } from 'graphql';\nimport { isNotEqual, isVoid } from './common/compare';\nimport { unionArrays, diffArrays } from '../utils/arrays';\nimport { isPrimitive } from '../utils/graphql';\nimport { schemaQueryTypeChanged, schemaMutationTypeChanged, schemaSubscriptionTypeChanged, } from './changes/schema';\nimport { typeRemoved, typeAdded, typeKindChanged, typeDescriptionChanged, typeDescriptionAdded, typeDescriptionRemoved, } from './changes/type';\nimport { directiveRemoved, directiveAdded } from './changes/directive';\nimport { changesInEnum } from './enum';\nimport { changesInUnion } from './union';\nimport { changesInInputObject } from './input';\nimport { changesInObject } from './object';\nimport { changesInInterface } from './interface';\nimport { changesInDirective } from './directive';\nexport function diffSchema(oldSchema, newSchema) {\n const changes = [];\n const types = diffTypes(oldSchema, newSchema);\n const directives = diffDirectives(oldSchema, newSchema);\n // Added and removed types\n changes.push(...types.added.map(typeAdded));\n changes.push(...types.removed.map(typeRemoved));\n // Added and removed directives\n changes.push(...directives.added.map(directiveAdded));\n changes.push(...directives.removed.map(directiveRemoved));\n // Changes in Schema\n changes.push(...changesInSchema(oldSchema, newSchema));\n // Changes in Type\n types.common.forEach(({ inOld, inNew }) => {\n changes.push(...changesInType(inOld, inNew));\n });\n // Changes in Directives\n directives.common.forEach(({ inOld, inNew }) => {\n changes.push(...changesInDirective(inOld, inNew));\n });\n return changes;\n}\nfunction diffTypes(oldSchema, newSchema) {\n const oldTypeMap = oldSchema.getTypeMap();\n const newTypeMap = newSchema.getTypeMap();\n const oldTypenames = Object.keys(oldTypeMap).filter((name) => !isPrimitive(name));\n const newTypenames = Object.keys(newTypeMap).filter((name) => !isPrimitive(name));\n const added = diffArrays(newTypenames, oldTypenames).map((name) => newTypeMap[name]);\n const removed = diffArrays(oldTypenames, newTypenames).map((name) => oldTypeMap[name]);\n const common = unionArrays(oldTypenames, newTypenames).map((name) => ({\n inOld: oldTypeMap[name],\n inNew: newTypeMap[name],\n }));\n return {\n added,\n removed,\n common,\n };\n}\nfunction diffDirectives(oldSchema, newSchema) {\n const oldDirectives = oldSchema.getDirectives();\n const newDirectives = newSchema.getDirectives();\n const oldNames = oldDirectives.map((d) => d.name);\n const newNames = newDirectives.map((d) => d.name);\n const added = diffArrays(newNames, oldNames).map((name) => newDirectives.find((d) => d.name === name));\n const removed = diffArrays(oldNames, newNames).map((name) => oldDirectives.find((d) => d.name === name));\n const common = unionArrays(oldNames, newNames).map((name) => ({\n inOld: oldDirectives.find((d) => d.name === name),\n inNew: newDirectives.find((d) => d.name === name),\n }));\n return {\n added,\n removed,\n common,\n };\n}\nfunction changesInSchema(oldSchema, newSchema) {\n const changes = [];\n const oldRoot = {\n query: (oldSchema.getQueryType() || {}).name,\n mutation: (oldSchema.getMutationType() || {}).name,\n subscription: (oldSchema.getSubscriptionType() || {})\n .name,\n };\n const newRoot = {\n query: (newSchema.getQueryType() || {}).name,\n mutation: (newSchema.getMutationType() || {}).name,\n subscription: (newSchema.getSubscriptionType() || {})\n .name,\n };\n if (isNotEqual(oldRoot.query, newRoot.query)) {\n changes.push(schemaQueryTypeChanged(oldSchema, newSchema));\n }\n if (isNotEqual(oldRoot.mutation, newRoot.mutation)) {\n changes.push(schemaMutationTypeChanged(oldSchema, newSchema));\n }\n if (isNotEqual(oldRoot.subscription, newRoot.subscription)) {\n changes.push(schemaSubscriptionTypeChanged(oldSchema, newSchema));\n }\n return changes;\n}\nfunction changesInType(oldType, newType) {\n let changes = [];\n if (isEnumType(oldType) && isEnumType(newType)) {\n changes = changesInEnum(oldType, newType);\n }\n else if (isUnionType(oldType) && isUnionType(newType)) {\n changes = changesInUnion(oldType, newType);\n }\n else if (isInputObjectType(oldType) && isInputObjectType(newType)) {\n changes = changesInInputObject(oldType, newType);\n }\n else if (isObjectType(oldType) && isObjectType(newType)) {\n changes = changesInObject(oldType, newType);\n }\n else if (isInterfaceType(oldType) && isInterfaceType(newType)) {\n changes = changesInInterface(oldType, newType);\n }\n else if (isScalarType(oldType) && isScalarType(newType)) {\n // what to do with scalar types?\n }\n else {\n changes = [typeKindChanged(oldType, newType)];\n }\n if (isNotEqual(oldType.description, newType.description)) {\n if (isVoid(oldType.description)) {\n changes.push(typeDescriptionAdded(newType));\n }\n else if (isVoid(newType.description)) {\n changes.push(typeDescriptionRemoved(oldType));\n }\n else {\n changes.push(typeDescriptionChanged(oldType, newType));\n }\n }\n return changes;\n}\n//# sourceMappingURL=schema.js.map","export function parsePath(path) {\n return path.split('.');\n}\n//# sourceMappingURL=path.js.map\n","import { isObjectType, isInterfaceType } from 'graphql';\nimport { CriticalityLevel, ChangeType } from './../changes/change';\nimport { parsePath } from '../common/path';\nexport const suppressRemovalOfDeprecatedField = ({ changes, oldSchema, }) => {\n return changes.map((change) => {\n if (change.type === ChangeType.FieldRemoved &&\n change.criticality.level === CriticalityLevel.Breaking &&\n change.path) {\n const [typeName, fieldName] = parsePath(change.path);\n const type = oldSchema.getType(typeName);\n if (isObjectType(type) || isInterfaceType(type)) {\n const field = type.getFields()[fieldName];\n if (field.isDeprecated) {\n return Object.assign(Object.assign({}, change), { criticality: Object.assign(Object.assign({}, change.criticality), { level: CriticalityLevel.Dangerous }) });\n }\n }\n }\n return change;\n });\n};\n//# sourceMappingURL=suppress-removal-of-deprecated-field.js.map","import { ChangeType } from '../changes/change';\nconst descriptionChangeTypes = [\n ChangeType.FieldArgumentDescriptionChanged,\n ChangeType.DirectiveDescriptionChanged,\n ChangeType.DirectiveArgumentDescriptionChanged,\n ChangeType.EnumValueDescriptionChanged,\n ChangeType.FieldDescriptionChanged,\n ChangeType.FieldDescriptionAdded,\n ChangeType.FieldDescriptionRemoved,\n ChangeType.InputFieldDescriptionAdded,\n ChangeType.InputFieldDescriptionRemoved,\n ChangeType.InputFieldDescriptionChanged,\n ChangeType.TypeDescriptionChanged,\n];\nexport const ignoreDescriptionChanges = ({ changes }) => {\n return changes.filter((change) => descriptionChangeTypes.indexOf(change.type) === -1);\n};\n//# sourceMappingURL=ignore-description-changes.js.map","import {diffSchema} from './schema';\nimport * as rules from './rules';\nexport * from './rules/types';\nexport const DiffRule = rules;\nexport * from './onComplete/types';\nexport function diff(oldSchema, newSchema, rules = []) {\n const changes = diffSchema(oldSchema, newSchema);\n return rules.reduce(\n (prev, rule) =>\n rule({\n changes: prev,\n oldSchema,\n newSchema,\n }),\n changes,\n );\n}\n//# sourceMappingURL=index.js.map\n","import {Kind, parse} from 'graphql';\nexport function readDocument(source) {\n const result = {\n source,\n fragments: [],\n operations: [],\n hasFragments: false,\n hasOperations: false,\n };\n const documentNode = parse(source.body);\n const filepath = source.name;\n const definitions = documentNode.definitions || [];\n definitions.forEach((node) => {\n if (isOperation(node)) {\n result.operations.push({\n node,\n source: filepath,\n });\n } else if (isFragment(node)) {\n result.fragments.push({\n node,\n source: filepath,\n });\n }\n });\n result.hasFragments = result.fragments.length > 0;\n result.hasOperations = result.operations.length > 0;\n return result;\n}\nfunction isOperation(node) {\n return node.kind === Kind.OPERATION_DEFINITION;\n}\nfunction isFragment(node) {\n return node.kind === Kind.FRAGMENT_DEFINITION;\n}\n//# sourceMappingURL=document.js.map\n","import { GraphQLError, Kind, } from 'graphql';\nexport function validateQueryDepth({ source, doc, maxDepth, fragmentGraph, }) {\n try {\n calculateDepth({\n node: doc,\n currentDepth: 0,\n maxDepth,\n getFragment(name) {\n return fragmentGraph.getNodeData(name);\n },\n });\n }\n catch (errorOrNode) {\n if (errorOrNode instanceof Error) {\n throw errorOrNode;\n }\n const node = errorOrNode;\n return new GraphQLError(`Query exceeds maximum depth of ${maxDepth}`, node, source, node.loc && node.loc.start ? [node.loc.start] : undefined);\n }\n}\nexport function calculateDepth({ node, currentDepth, maxDepth, getFragment, }) {\n if (maxDepth && currentDepth > maxDepth) {\n throw node;\n }\n switch (node.kind) {\n case Kind.FIELD: {\n if (node.name.value.startsWith('__') || !node.selectionSet) {\n return 0;\n }\n const maxInnerDepth = calculateDepth({\n node: node.selectionSet,\n currentDepth: currentDepth + 1,\n maxDepth,\n getFragment,\n });\n return 1 + maxInnerDepth;\n }\n case Kind.SELECTION_SET: {\n return Math.max(...node.selections.map((selection) => {\n return calculateDepth({\n node: selection,\n currentDepth: currentDepth,\n maxDepth,\n getFragment,\n });\n }));\n }\n case Kind.DOCUMENT: {\n return Math.max(...node.definitions.map((def) => {\n return calculateDepth({\n node: def,\n currentDepth: currentDepth,\n maxDepth,\n getFragment,\n });\n }));\n }\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION: {\n return Math.max(...node.selectionSet.selections.map((selection) => {\n return calculateDepth({\n node: selection,\n currentDepth,\n maxDepth,\n getFragment,\n });\n }));\n }\n case Kind.FRAGMENT_SPREAD:\n return calculateDepth({\n node: getFragment(node.name.value),\n currentDepth,\n maxDepth,\n getFragment,\n });\n default: {\n throw new Error(`Couldn't handle ${node.kind}`);\n }\n }\n}\n//# sourceMappingURL=query-depth.js.map","import {visit, parse, extendSchema} from 'graphql';\nimport {removeFieldIfDirectives, removeDirectives} from './graphql';\nexport function transformDocumentWithApollo(doc, {keepClientFields}) {\n return visit(doc, {\n Field(node) {\n return keepClientFields\n ? removeDirectives(node, ['client'])\n : removeFieldIfDirectives(node, ['client']);\n },\n });\n}\nexport function transformSchemaWithApollo(schema) {\n return extendSchema(\n schema,\n parse(/* GraphQL */ `\n directive @connection(key: String!, filter: [String]) on FIELD\n `),\n );\n}\n//# sourceMappingURL=apollo.js.map\n","import { GraphQLError, print, parse, validate as validateDocument, } from 'graphql';\nimport { DepGraph } from 'dependency-graph';\nimport { readDocument } from '../ast/document';\nimport { findDeprecatedUsages } from '../utils/graphql';\nimport { validateQueryDepth } from './query-depth';\nimport { transformSchemaWithApollo, transformDocumentWithApollo, } from '../utils/apollo';\nexport function validate(schema, sources, options) {\n const config = Object.assign({ strictDeprecated: true, strictFragments: true, keepClientFields: false, apollo: false }, options);\n const invalidDocuments = [];\n // read documents\n const documents = sources.map(readDocument);\n // keep all named fragments\n const fragments = [];\n const fragmentNames = [];\n const graph = new DepGraph({ circular: true });\n documents.forEach((doc) => {\n doc.fragments.forEach((fragment) => {\n fragmentNames.push(fragment.node.name.value);\n fragments.push(fragment);\n graph.addNode(fragment.node.name.value, fragment.node);\n });\n });\n fragments.forEach((fragment) => {\n const depends = extractFragments(print(fragment.node));\n if (depends) {\n depends.forEach((name) => {\n graph.addDependency(fragment.node.name.value, name);\n });\n }\n });\n documents\n // since we include fragments, validate only operations\n .filter((doc) => doc.hasOperations)\n .forEach((doc) => {\n const docWithOperations = {\n kind: 'Document',\n definitions: doc.operations.map((d) => d.node),\n };\n const extractedFragments = (extractFragments(print(docWithOperations)) || [])\n // resolve all nested fragments\n .map((fragmentName) => resolveFragment(graph.getNodeData(fragmentName), graph))\n // flatten arrays\n .reduce((list, current) => list.concat(current), [])\n // remove duplicates\n .filter((def, i, all) => all.findIndex((item) => item.name.value === def.name.value) === i);\n const merged = {\n kind: 'Document',\n definitions: [...docWithOperations.definitions, ...extractedFragments],\n };\n const transformedSchema = config.apollo\n ? transformSchemaWithApollo(schema)\n : schema;\n const transformedDoc = config.apollo\n ? transformDocumentWithApollo(merged, {\n keepClientFields: config.keepClientFields,\n })\n : merged;\n const errors = validateDocument(transformedSchema, transformedDoc) || [];\n if (config.maxDepth) {\n const depthError = validateQueryDepth({\n source: doc.source,\n doc: transformedDoc,\n maxDepth: config.maxDepth,\n fragmentGraph: graph,\n });\n if (depthError) {\n errors.push(depthError);\n }\n }\n const deprecated = config.strictDeprecated\n ? findDeprecatedUsages(transformedSchema, parse(doc.source.body))\n : [];\n const duplicatedFragments = config.strictFragments\n ? findDuplicatedFragments(fragmentNames)\n : [];\n if (sumLengths(errors, duplicatedFragments, deprecated) > 0) {\n invalidDocuments.push({\n source: doc.source,\n errors: [...errors, ...duplicatedFragments],\n deprecated,\n });\n }\n });\n return invalidDocuments;\n}\nfunction findDuplicatedFragments(fragmentNames) {\n return fragmentNames\n .filter((name, i, all) => all.indexOf(name) !== i)\n .map((name) => new GraphQLError(`Name of '${name}' fragment is not unique`));\n}\n//\n// PostInfo -> AuthorInfo\n// AuthorInfo -> None\n//\nfunction resolveFragment(fragment, graph) {\n return graph\n .dependenciesOf(fragment.name.value)\n .reduce((list, current) => [\n ...list,\n ...resolveFragment(graph.getNodeData(current), graph),\n ], [fragment]);\n}\nfunction extractFragments(document) {\n return (document.match(/[\\.]{3}[a-z0-9\\_]+\\b/gi) || []).map((name) => name.replace('...', ''));\n}\nfunction sumLengths(...arrays) {\n return arrays.reduce((sum, { length }) => sum + length, 0);\n}\n//# sourceMappingURL=index.js.map","function compareTwoStrings(str1, str2) {\n if (!str1.length && !str2.length)\n return 1;\n if (!str1.length || !str2.length)\n return 0;\n if (str1.toUpperCase() === str2.toUpperCase())\n return 1;\n if (str1.length === 1 && str2.length === 1)\n return 0;\n const pairs1 = wordLetterPairs(str1);\n const pairs2 = wordLetterPairs(str2);\n const union = pairs1.length + pairs2.length;\n let intersection = 0;\n pairs1.forEach((pair1) => {\n for (let i = 0, pair2; (pair2 = pairs2[i]); i++) {\n if (pair1 !== pair2)\n continue;\n intersection++;\n pairs2.splice(i, 1);\n break;\n }\n });\n return (intersection * 2) / union;\n}\nexport function findBestMatch(mainString, targetStrings) {\n if (!areArgsValid(mainString, targetStrings))\n throw new Error('Bad arguments: First argument should be a string, second should be an array of strings');\n const ratings = targetStrings.map((target) => ({\n target,\n rating: compareTwoStrings(mainString, target.value),\n }));\n const bestMatch = Array.from(ratings).sort((a, b) => b.rating - a.rating)[0];\n return { ratings, bestMatch };\n}\nfunction flattenDeep(arr) {\n return Array.isArray(arr)\n ? arr.reduce((a, b) => a.concat(flattenDeep(b)), [])\n : [arr];\n}\nfunction areArgsValid(mainString, targetStrings) {\n if (typeof mainString !== 'string')\n return false;\n if (!Array.isArray(targetStrings))\n return false;\n if (!targetStrings.length)\n return false;\n if (targetStrings.find((s) => typeof s.value !== 'string'))\n return false;\n return true;\n}\nfunction letterPairs(str) {\n const pairs = [];\n for (let i = 0, max = str.length - 1; i < max; i++)\n pairs[i] = str.substring(i, i + 2);\n return pairs;\n}\nfunction wordLetterPairs(str) {\n const pairs = str.toUpperCase().split(' ').map(letterPairs);\n return flattenDeep(pairs);\n}\n//# sourceMappingURL=string.js.map","import { printType } from 'graphql';\nimport { isPrimitive, isForIntrospection } from '../utils/graphql';\nimport { findBestMatch } from '../utils/string';\nexport function similar(schema, typeName, threshold = 0.4) {\n const typeMap = schema.getTypeMap();\n const targets = Object.keys(schema.getTypeMap())\n .filter((name) => !isPrimitive(name) && !isForIntrospection(name))\n .map((name) => ({\n typeId: name,\n value: stripType(typeMap[name]),\n }));\n const results = {};\n if (typeof typeName !== 'undefined' &&\n !targets.some((t) => t.typeId === typeName)) {\n throw new Error(`Type '${typeName}' doesn't exist`);\n }\n (typeName ? [{ typeId: typeName, value: '' }] : targets).forEach((source) => {\n const sourceType = schema.getType(source.typeId);\n const matchWith = targets.filter((target) => schema.getType(target.typeId).astNode.kind ===\n sourceType.astNode.kind && target.typeId !== source.typeId);\n if (matchWith.length > 0) {\n const found = similarTo(sourceType, matchWith, threshold);\n if (found) {\n results[source.typeId] = found;\n }\n }\n });\n return results;\n}\nfunction similarTo(type, targets, threshold) {\n const types = targets.filter((target) => target.typeId !== type.name);\n const result = findBestMatch(stripType(type), types);\n if (result.bestMatch.rating < threshold) {\n return;\n }\n return {\n bestMatch: result.bestMatch,\n ratings: result.ratings\n .filter((r) => r.rating >= threshold && r.target !== result.bestMatch.target)\n .sort((a, b) => a.rating - b.rating)\n .reverse(),\n };\n}\nfunction stripType(type) {\n return printType(type)\n .trim()\n .replace(/^[a-z]+ [^\\{]+\\{/g, '')\n .replace(/\\}$/g, '')\n .trim()\n .split('\\n')\n .map((s) => s.trim())\n .sort((a, b) => a.localeCompare(b))\n .join(' ');\n}\n//# sourceMappingURL=index.js.map","import { isInterfaceType, isObjectType, visit, visitWithTypeInfo, TypeInfo, } from 'graphql';\nimport { readDocument } from '../ast/document';\nimport { isForIntrospection, isPrimitive } from '../utils/graphql';\nexport function coverage(schema, sources) {\n const coverage = {\n sources,\n types: {},\n };\n const typeMap = schema.getTypeMap();\n const typeInfo = new TypeInfo(schema);\n const visitor = (source) => ({\n Field(node) {\n const fieldDef = typeInfo.getFieldDef();\n const parent = typeInfo.getParentType();\n if (parent &&\n parent.name &&\n !isForIntrospection(parent.name) &&\n fieldDef &&\n fieldDef.name &&\n fieldDef.name !== '__typename' &&\n fieldDef.name !== '__schema') {\n const locations = coverage.types[parent.name].children[fieldDef.name].locations[source.name];\n coverage.types[parent.name].hits++;\n coverage.types[parent.name].children[fieldDef.name].locations[source.name] = [node.loc].concat(locations || []);\n coverage.types[parent.name].children[fieldDef.name].hits++;\n }\n },\n });\n for (const typename in typeMap) {\n if (!isForIntrospection(typename) && !isPrimitive(typename)) {\n const type = typeMap[typename];\n if (isObjectType(type) || isInterfaceType(type)) {\n const typeCoverage = {\n hits: 0,\n type,\n children: {},\n };\n const fieldMap = type.getFields();\n for (const fieldname in fieldMap) {\n const field = fieldMap[fieldname];\n typeCoverage.children[field.name] = {\n hits: 0,\n locations: {},\n };\n }\n coverage.types[type.name] = typeCoverage;\n }\n }\n }\n const documents = coverage.sources.map(readDocument);\n documents.forEach((doc, i) => {\n const source = coverage.sources[i];\n doc.operations.forEach((op) => {\n visit(op.node, visitWithTypeInfo(typeInfo, visitor(source)));\n });\n doc.fragments.forEach((fr) => {\n visit(fr.node, visitWithTypeInfo(typeInfo, visitor(source)));\n });\n });\n return coverage;\n}\n//# sourceMappingURL=index.js.map"],"names":["addedFields","removedFields","changedFields","validateDocument"],"mappings":"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"}
package/utils/arrays.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare function diffArrays(a: string[], b: string[]): string[];
2
- export declare function unionArrays(a: string[], b: string[]): string[];