graphql 0.0.1-test.1

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 (390) hide show
  1. package/LICENSE +21 -0
  2. package/NotSupportedTSVersion.d.ts +1 -0
  3. package/README.md +158 -0
  4. package/error/GraphQLError.d.ts +142 -0
  5. package/error/GraphQLError.js +267 -0
  6. package/error/GraphQLError.mjs +253 -0
  7. package/error/index.d.ts +7 -0
  8. package/error/index.js +41 -0
  9. package/error/index.mjs +3 -0
  10. package/error/locatedError.d.ts +13 -0
  11. package/error/locatedError.js +40 -0
  12. package/error/locatedError.mjs +32 -0
  13. package/error/syntaxError.d.ts +11 -0
  14. package/error/syntaxError.js +21 -0
  15. package/error/syntaxError.mjs +11 -0
  16. package/execution/collectFields.d.ts +45 -0
  17. package/execution/collectFields.js +229 -0
  18. package/execution/collectFields.mjs +213 -0
  19. package/execution/execute.d.ts +185 -0
  20. package/execution/execute.js +1016 -0
  21. package/execution/execute.mjs +988 -0
  22. package/execution/index.d.ts +14 -0
  23. package/execution/index.js +67 -0
  24. package/execution/index.mjs +9 -0
  25. package/execution/mapAsyncIterator.d.ts +9 -0
  26. package/execution/mapAsyncIterator.js +68 -0
  27. package/execution/mapAsyncIterator.mjs +61 -0
  28. package/execution/subscribe.d.ts +68 -0
  29. package/execution/subscribe.js +261 -0
  30. package/execution/subscribe.mjs +239 -0
  31. package/execution/values.d.ts +81 -0
  32. package/execution/values.js +292 -0
  33. package/execution/values.mjs +255 -0
  34. package/graphql.d.ts +67 -0
  35. package/graphql.js +96 -0
  36. package/graphql.mjs +122 -0
  37. package/index.d.ts +411 -0
  38. package/index.js +1263 -0
  39. package/index.mjs +254 -0
  40. package/jsutils/Maybe.d.ts +2 -0
  41. package/jsutils/Maybe.js +5 -0
  42. package/jsutils/Maybe.mjs +1 -0
  43. package/jsutils/ObjMap.d.ts +16 -0
  44. package/jsutils/ObjMap.js +5 -0
  45. package/jsutils/ObjMap.mjs +1 -0
  46. package/jsutils/Path.d.ts +20 -0
  47. package/jsutils/Path.js +33 -0
  48. package/jsutils/Path.mjs +25 -0
  49. package/jsutils/PromiseOrValue.d.ts +1 -0
  50. package/jsutils/PromiseOrValue.js +5 -0
  51. package/jsutils/PromiseOrValue.mjs +1 -0
  52. package/jsutils/devAssert.d.ts +1 -0
  53. package/jsutils/devAssert.js +14 -0
  54. package/jsutils/devAssert.mjs +7 -0
  55. package/jsutils/didYouMean.d.ts +8 -0
  56. package/jsutils/didYouMean.js +38 -0
  57. package/jsutils/didYouMean.mjs +32 -0
  58. package/jsutils/groupBy.d.ts +7 -0
  59. package/jsutils/groupBy.js +26 -0
  60. package/jsutils/groupBy.mjs +19 -0
  61. package/jsutils/identityFunc.d.ts +4 -0
  62. package/jsutils/identityFunc.js +13 -0
  63. package/jsutils/identityFunc.mjs +6 -0
  64. package/jsutils/inspect.d.ts +4 -0
  65. package/jsutils/inspect.js +121 -0
  66. package/jsutils/inspect.mjs +115 -0
  67. package/jsutils/instanceOf.d.ts +16 -0
  68. package/jsutils/instanceOf.js +60 -0
  69. package/jsutils/instanceOf.mjs +52 -0
  70. package/jsutils/invariant.d.ts +4 -0
  71. package/jsutils/invariant.js +16 -0
  72. package/jsutils/invariant.mjs +9 -0
  73. package/jsutils/isAsyncIterable.d.ts +7 -0
  74. package/jsutils/isAsyncIterable.js +18 -0
  75. package/jsutils/isAsyncIterable.mjs +11 -0
  76. package/jsutils/isIterableObject.d.ts +20 -0
  77. package/jsutils/isIterableObject.js +32 -0
  78. package/jsutils/isIterableObject.mjs +25 -0
  79. package/jsutils/isObjectLike.d.ts +7 -0
  80. package/jsutils/isObjectLike.js +14 -0
  81. package/jsutils/isObjectLike.mjs +7 -0
  82. package/jsutils/isPromise.d.ts +5 -0
  83. package/jsutils/isPromise.js +17 -0
  84. package/jsutils/isPromise.mjs +10 -0
  85. package/jsutils/keyMap.d.ts +32 -0
  86. package/jsutils/keyMap.js +43 -0
  87. package/jsutils/keyMap.mjs +36 -0
  88. package/jsutils/keyValMap.d.ts +23 -0
  89. package/jsutils/keyValMap.js +33 -0
  90. package/jsutils/keyValMap.mjs +26 -0
  91. package/jsutils/mapValue.d.ts +9 -0
  92. package/jsutils/mapValue.js +20 -0
  93. package/jsutils/mapValue.mjs +13 -0
  94. package/jsutils/memoize3.d.ts +9 -0
  95. package/jsutils/memoize3.js +41 -0
  96. package/jsutils/memoize3.mjs +34 -0
  97. package/jsutils/naturalCompare.d.ts +8 -0
  98. package/jsutils/naturalCompare.js +69 -0
  99. package/jsutils/naturalCompare.mjs +61 -0
  100. package/jsutils/printPathArray.d.ts +6 -0
  101. package/jsutils/printPathArray.js +17 -0
  102. package/jsutils/printPathArray.mjs +10 -0
  103. package/jsutils/promiseForObject.d.ts +11 -0
  104. package/jsutils/promiseForObject.js +25 -0
  105. package/jsutils/promiseForObject.mjs +18 -0
  106. package/jsutils/promiseReduce.d.ts +13 -0
  107. package/jsutils/promiseReduce.js +27 -0
  108. package/jsutils/promiseReduce.mjs +20 -0
  109. package/jsutils/suggestionList.d.ts +8 -0
  110. package/jsutils/suggestionList.js +139 -0
  111. package/jsutils/suggestionList.mjs +130 -0
  112. package/jsutils/toError.d.ts +4 -0
  113. package/jsutils/toError.js +25 -0
  114. package/jsutils/toError.mjs +18 -0
  115. package/jsutils/toObjMap.d.ts +5 -0
  116. package/jsutils/toObjMap.js +24 -0
  117. package/jsutils/toObjMap.mjs +17 -0
  118. package/language/ast.d.ts +536 -0
  119. package/language/ast.js +224 -0
  120. package/language/ast.mjs +206 -0
  121. package/language/blockString.d.ts +28 -0
  122. package/language/blockString.js +195 -0
  123. package/language/blockString.mjs +178 -0
  124. package/language/characterClasses.d.ts +47 -0
  125. package/language/characterClasses.js +75 -0
  126. package/language/characterClasses.mjs +64 -0
  127. package/language/directiveLocation.d.ts +32 -0
  128. package/language/directiveLocation.js +40 -0
  129. package/language/directiveLocation.mjs +31 -0
  130. package/language/index.d.ts +97 -0
  131. package/language/index.js +215 -0
  132. package/language/index.mjs +29 -0
  133. package/language/kinds.d.ts +65 -0
  134. package/language/kinds.js +64 -0
  135. package/language/kinds.mjs +55 -0
  136. package/language/lexer.d.ts +45 -0
  137. package/language/lexer.js +1006 -0
  138. package/language/lexer.mjs +902 -0
  139. package/language/location.d.ts +16 -0
  140. package/language/location.js +38 -0
  141. package/language/location.mjs +30 -0
  142. package/language/parser.d.ts +554 -0
  143. package/language/parser.js +1567 -0
  144. package/language/parser.mjs +1524 -0
  145. package/language/predicates.d.ts +33 -0
  146. package/language/predicates.js +109 -0
  147. package/language/predicates.mjs +81 -0
  148. package/language/printLocation.d.ts +14 -0
  149. package/language/printLocation.js +74 -0
  150. package/language/printLocation.mjs +66 -0
  151. package/language/printString.d.ts +5 -0
  152. package/language/printString.js +183 -0
  153. package/language/printString.mjs +176 -0
  154. package/language/printer.d.ts +6 -0
  155. package/language/printer.js +351 -0
  156. package/language/printer.mjs +339 -0
  157. package/language/source.d.ts +25 -0
  158. package/language/source.js +65 -0
  159. package/language/source.mjs +50 -0
  160. package/language/tokenKind.d.ts +34 -0
  161. package/language/tokenKind.js +44 -0
  162. package/language/tokenKind.mjs +35 -0
  163. package/language/visitor.d.ts +194 -0
  164. package/language/visitor.js +377 -0
  165. package/language/visitor.mjs +361 -0
  166. package/package.json +40 -0
  167. package/subscription/index.d.ts +19 -0
  168. package/subscription/index.js +19 -0
  169. package/subscription/index.mjs +19 -0
  170. package/type/assertName.d.ts +10 -0
  171. package/type/assertName.js +59 -0
  172. package/type/assertName.mjs +44 -0
  173. package/type/definition.d.ts +917 -0
  174. package/type/definition.js +1329 -0
  175. package/type/definition.mjs +1167 -0
  176. package/type/directives.d.ts +86 -0
  177. package/type/directives.js +224 -0
  178. package/type/directives.mjs +190 -0
  179. package/type/index.d.ts +150 -0
  180. package/type/index.js +547 -0
  181. package/type/index.mjs +103 -0
  182. package/type/introspection.d.ts +29 -0
  183. package/type/introspection.js +617 -0
  184. package/type/introspection.mjs +550 -0
  185. package/type/scalars.d.ts +19 -0
  186. package/type/scalars.js +359 -0
  187. package/type/scalars.mjs +299 -0
  188. package/type/schema.d.ts +170 -0
  189. package/type/schema.js +402 -0
  190. package/type/schema.mjs +381 -0
  191. package/type/validate.d.ts +17 -0
  192. package/type/validate.js +672 -0
  193. package/type/validate.mjs +647 -0
  194. package/utilities/TypeInfo.d.ts +67 -0
  195. package/utilities/TypeInfo.js +418 -0
  196. package/utilities/TypeInfo.mjs +395 -0
  197. package/utilities/assertValidName.d.ts +13 -0
  198. package/utilities/assertValidName.js +51 -0
  199. package/utilities/assertValidName.mjs +40 -0
  200. package/utilities/astFromValue.d.ts +28 -0
  201. package/utilities/astFromValue.js +190 -0
  202. package/utilities/astFromValue.mjs +177 -0
  203. package/utilities/buildASTSchema.d.ts +35 -0
  204. package/utilities/buildASTSchema.js +115 -0
  205. package/utilities/buildASTSchema.mjs +97 -0
  206. package/utilities/buildClientSchema.d.ts +19 -0
  207. package/utilities/buildClientSchema.js +386 -0
  208. package/utilities/buildClientSchema.mjs +363 -0
  209. package/utilities/coerceInputValue.d.ts +16 -0
  210. package/utilities/coerceInputValue.js +191 -0
  211. package/utilities/coerceInputValue.mjs +172 -0
  212. package/utilities/concatAST.d.ts +9 -0
  213. package/utilities/concatAST.js +26 -0
  214. package/utilities/concatAST.mjs +19 -0
  215. package/utilities/extendSchema.d.ts +40 -0
  216. package/utilities/extendSchema.js +798 -0
  217. package/utilities/extendSchema.mjs +789 -0
  218. package/utilities/findBreakingChanges.d.ts +51 -0
  219. package/utilities/findBreakingChanges.js +547 -0
  220. package/utilities/findBreakingChanges.mjs +516 -0
  221. package/utilities/getIntrospectionQuery.d.ts +182 -0
  222. package/utilities/getIntrospectionQuery.js +134 -0
  223. package/utilities/getIntrospectionQuery.mjs +127 -0
  224. package/utilities/getOperationAST.d.ts +11 -0
  225. package/utilities/getOperationAST.js +43 -0
  226. package/utilities/getOperationAST.mjs +36 -0
  227. package/utilities/getOperationRootType.d.ts +15 -0
  228. package/utilities/getOperationRootType.js +59 -0
  229. package/utilities/getOperationRootType.mjs +52 -0
  230. package/utilities/index.d.ts +61 -0
  231. package/utilities/index.js +233 -0
  232. package/utilities/index.mjs +55 -0
  233. package/utilities/introspectionFromSchema.d.ts +18 -0
  234. package/utilities/introspectionFromSchema.js +42 -0
  235. package/utilities/introspectionFromSchema.mjs +30 -0
  236. package/utilities/lexicographicSortSchema.d.ts +9 -0
  237. package/utilities/lexicographicSortSchema.js +177 -0
  238. package/utilities/lexicographicSortSchema.mjs +172 -0
  239. package/utilities/printSchema.d.ts +5 -0
  240. package/utilities/printSchema.js +333 -0
  241. package/utilities/printSchema.mjs +309 -0
  242. package/utilities/separateOperations.d.ts +11 -0
  243. package/utilities/separateOperations.js +88 -0
  244. package/utilities/separateOperations.mjs +80 -0
  245. package/utilities/sortValueNode.d.ts +9 -0
  246. package/utilities/sortValueNode.js +47 -0
  247. package/utilities/sortValueNode.mjs +39 -0
  248. package/utilities/stripIgnoredCharacters.d.ts +62 -0
  249. package/utilities/stripIgnoredCharacters.js +121 -0
  250. package/utilities/stripIgnoredCharacters.mjs +104 -0
  251. package/utilities/typeComparators.d.ts +32 -0
  252. package/utilities/typeComparators.js +116 -0
  253. package/utilities/typeComparators.mjs +106 -0
  254. package/utilities/typeFromAST.d.ts +32 -0
  255. package/utilities/typeFromAST.js +27 -0
  256. package/utilities/typeFromAST.mjs +18 -0
  257. package/utilities/typedQueryDocumentNode.d.ts +22 -0
  258. package/utilities/typedQueryDocumentNode.js +5 -0
  259. package/utilities/typedQueryDocumentNode.mjs +1 -0
  260. package/utilities/valueFromAST.d.ts +29 -0
  261. package/utilities/valueFromAST.js +185 -0
  262. package/utilities/valueFromAST.mjs +172 -0
  263. package/utilities/valueFromASTUntyped.d.ts +23 -0
  264. package/utilities/valueFromASTUntyped.js +61 -0
  265. package/utilities/valueFromASTUntyped.mjs +53 -0
  266. package/validation/ValidationContext.d.ts +95 -0
  267. package/validation/ValidationContext.js +232 -0
  268. package/validation/ValidationContext.mjs +212 -0
  269. package/validation/index.d.ts +40 -0
  270. package/validation/index.js +317 -0
  271. package/validation/index.mjs +68 -0
  272. package/validation/rules/ExecutableDefinitionsRule.d.ts +13 -0
  273. package/validation/rules/ExecutableDefinitionsRule.js +44 -0
  274. package/validation/rules/ExecutableDefinitionsRule.mjs +35 -0
  275. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +13 -0
  276. package/validation/rules/FieldsOnCorrectTypeRule.js +143 -0
  277. package/validation/rules/FieldsOnCorrectTypeRule.mjs +125 -0
  278. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +14 -0
  279. package/validation/rules/FragmentsOnCompositeTypesRule.js +65 -0
  280. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +49 -0
  281. package/validation/rules/KnownArgumentNamesRule.d.ts +23 -0
  282. package/validation/rules/KnownArgumentNamesRule.js +116 -0
  283. package/validation/rules/KnownArgumentNamesRule.mjs +98 -0
  284. package/validation/rules/KnownDirectivesRule.d.ts +16 -0
  285. package/validation/rules/KnownDirectivesRule.js +163 -0
  286. package/validation/rules/KnownDirectivesRule.mjs +146 -0
  287. package/validation/rules/KnownFragmentNamesRule.d.ts +13 -0
  288. package/validation/rules/KnownFragmentNamesRule.js +34 -0
  289. package/validation/rules/KnownFragmentNamesRule.mjs +24 -0
  290. package/validation/rules/KnownTypeNamesRule.d.ts +16 -0
  291. package/validation/rules/KnownTypeNamesRule.js +87 -0
  292. package/validation/rules/KnownTypeNamesRule.mjs +75 -0
  293. package/validation/rules/LoneAnonymousOperationRule.d.ts +13 -0
  294. package/validation/rules/LoneAnonymousOperationRule.js +40 -0
  295. package/validation/rules/LoneAnonymousOperationRule.mjs +32 -0
  296. package/validation/rules/LoneSchemaDefinitionRule.d.ts +10 -0
  297. package/validation/rules/LoneSchemaDefinitionRule.js +63 -0
  298. package/validation/rules/LoneSchemaDefinitionRule.mjs +53 -0
  299. package/validation/rules/NoFragmentCyclesRule.d.ts +13 -0
  300. package/validation/rules/NoFragmentCyclesRule.js +83 -0
  301. package/validation/rules/NoFragmentCyclesRule.mjs +76 -0
  302. package/validation/rules/NoUndefinedVariablesRule.d.ts +13 -0
  303. package/validation/rules/NoUndefinedVariablesRule.js +50 -0
  304. package/validation/rules/NoUndefinedVariablesRule.mjs +43 -0
  305. package/validation/rules/NoUnusedFragmentsRule.d.ts +13 -0
  306. package/validation/rules/NoUnusedFragmentsRule.js +59 -0
  307. package/validation/rules/NoUnusedFragmentsRule.mjs +52 -0
  308. package/validation/rules/NoUnusedVariablesRule.d.ts +13 -0
  309. package/validation/rules/NoUnusedVariablesRule.js +55 -0
  310. package/validation/rules/NoUnusedVariablesRule.mjs +48 -0
  311. package/validation/rules/OverlappingFieldsCanBeMergedRule-old.js +805 -0
  312. package/validation/rules/OverlappingFieldsCanBeMergedRule-old.mjs +788 -0
  313. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +14 -0
  314. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +805 -0
  315. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +788 -0
  316. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +12 -0
  317. package/validation/rules/PossibleFragmentSpreadsRule.js +91 -0
  318. package/validation/rules/PossibleFragmentSpreadsRule.mjs +69 -0
  319. package/validation/rules/PossibleTypeExtensionsRule.d.ts +10 -0
  320. package/validation/rules/PossibleTypeExtensionsRule.js +167 -0
  321. package/validation/rules/PossibleTypeExtensionsRule.mjs +147 -0
  322. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +20 -0
  323. package/validation/rules/ProvidedRequiredArgumentsRule.js +158 -0
  324. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +138 -0
  325. package/validation/rules/ScalarLeafsRule.d.ts +9 -0
  326. package/validation/rules/ScalarLeafsRule.js +51 -0
  327. package/validation/rules/ScalarLeafsRule.mjs +42 -0
  328. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +13 -0
  329. package/validation/rules/SingleFieldSubscriptionsRule.js +82 -0
  330. package/validation/rules/SingleFieldSubscriptionsRule.mjs +73 -0
  331. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +11 -0
  332. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +90 -0
  333. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +79 -0
  334. package/validation/rules/UniqueArgumentNamesRule.d.ts +13 -0
  335. package/validation/rules/UniqueArgumentNamesRule.js +53 -0
  336. package/validation/rules/UniqueArgumentNamesRule.mjs +42 -0
  337. package/validation/rules/UniqueDirectiveNamesRule.d.ts +10 -0
  338. package/validation/rules/UniqueDirectiveNamesRule.js +50 -0
  339. package/validation/rules/UniqueDirectiveNamesRule.mjs +43 -0
  340. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +16 -0
  341. package/validation/rules/UniqueDirectivesPerLocationRule.js +93 -0
  342. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +83 -0
  343. package/validation/rules/UniqueEnumValueNamesRule.d.ts +10 -0
  344. package/validation/rules/UniqueEnumValueNamesRule.js +71 -0
  345. package/validation/rules/UniqueEnumValueNamesRule.mjs +60 -0
  346. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +10 -0
  347. package/validation/rules/UniqueFieldDefinitionNamesRule.js +83 -0
  348. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +75 -0
  349. package/validation/rules/UniqueFragmentNamesRule.d.ts +12 -0
  350. package/validation/rules/UniqueFragmentNamesRule.js +39 -0
  351. package/validation/rules/UniqueFragmentNamesRule.mjs +32 -0
  352. package/validation/rules/UniqueInputFieldNamesRule.d.ts +13 -0
  353. package/validation/rules/UniqueInputFieldNamesRule.js +52 -0
  354. package/validation/rules/UniqueInputFieldNamesRule.mjs +44 -0
  355. package/validation/rules/UniqueOperationNamesRule.d.ts +12 -0
  356. package/validation/rules/UniqueOperationNamesRule.js +41 -0
  357. package/validation/rules/UniqueOperationNamesRule.mjs +34 -0
  358. package/validation/rules/UniqueOperationTypesRule.d.ts +10 -0
  359. package/validation/rules/UniqueOperationTypesRule.js +67 -0
  360. package/validation/rules/UniqueOperationTypesRule.mjs +60 -0
  361. package/validation/rules/UniqueTypeNamesRule.d.ts +10 -0
  362. package/validation/rules/UniqueTypeNamesRule.js +53 -0
  363. package/validation/rules/UniqueTypeNamesRule.mjs +46 -0
  364. package/validation/rules/UniqueVariableNamesRule.d.ts +10 -0
  365. package/validation/rules/UniqueVariableNamesRule.js +47 -0
  366. package/validation/rules/UniqueVariableNamesRule.mjs +39 -0
  367. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +13 -0
  368. package/validation/rules/ValuesOfCorrectTypeRule.js +183 -0
  369. package/validation/rules/ValuesOfCorrectTypeRule.mjs +164 -0
  370. package/validation/rules/VariablesAreInputTypesRule.d.ts +13 -0
  371. package/validation/rules/VariablesAreInputTypesRule.js +44 -0
  372. package/validation/rules/VariablesAreInputTypesRule.mjs +31 -0
  373. package/validation/rules/VariablesInAllowedPositionRule.d.ts +12 -0
  374. package/validation/rules/VariablesInAllowedPositionRule.js +114 -0
  375. package/validation/rules/VariablesInAllowedPositionRule.mjs +95 -0
  376. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +15 -0
  377. package/validation/rules/custom/NoDeprecatedCustomRule.js +121 -0
  378. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +107 -0
  379. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +15 -0
  380. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +39 -0
  381. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +30 -0
  382. package/validation/specifiedRules.d.ts +12 -0
  383. package/validation/specifiedRules.js +160 -0
  384. package/validation/specifiedRules.mjs +123 -0
  385. package/validation/validate.d.ts +61 -0
  386. package/validation/validate.js +151 -0
  387. package/validation/validate.mjs +133 -0
  388. package/version.d.ts +13 -0
  389. package/version.js +25 -0
  390. package/version.mjs +17 -0
@@ -0,0 +1,51 @@
1
+ import type { GraphQLSchema } from '../type/schema';
2
+ export declare enum BreakingChangeType {
3
+ TYPE_REMOVED = 'TYPE_REMOVED',
4
+ TYPE_CHANGED_KIND = 'TYPE_CHANGED_KIND',
5
+ TYPE_REMOVED_FROM_UNION = 'TYPE_REMOVED_FROM_UNION',
6
+ VALUE_REMOVED_FROM_ENUM = 'VALUE_REMOVED_FROM_ENUM',
7
+ REQUIRED_INPUT_FIELD_ADDED = 'REQUIRED_INPUT_FIELD_ADDED',
8
+ IMPLEMENTED_INTERFACE_REMOVED = 'IMPLEMENTED_INTERFACE_REMOVED',
9
+ FIELD_REMOVED = 'FIELD_REMOVED',
10
+ FIELD_CHANGED_KIND = 'FIELD_CHANGED_KIND',
11
+ REQUIRED_ARG_ADDED = 'REQUIRED_ARG_ADDED',
12
+ ARG_REMOVED = 'ARG_REMOVED',
13
+ ARG_CHANGED_KIND = 'ARG_CHANGED_KIND',
14
+ DIRECTIVE_REMOVED = 'DIRECTIVE_REMOVED',
15
+ DIRECTIVE_ARG_REMOVED = 'DIRECTIVE_ARG_REMOVED',
16
+ REQUIRED_DIRECTIVE_ARG_ADDED = 'REQUIRED_DIRECTIVE_ARG_ADDED',
17
+ DIRECTIVE_REPEATABLE_REMOVED = 'DIRECTIVE_REPEATABLE_REMOVED',
18
+ DIRECTIVE_LOCATION_REMOVED = 'DIRECTIVE_LOCATION_REMOVED',
19
+ }
20
+ export declare enum DangerousChangeType {
21
+ VALUE_ADDED_TO_ENUM = 'VALUE_ADDED_TO_ENUM',
22
+ TYPE_ADDED_TO_UNION = 'TYPE_ADDED_TO_UNION',
23
+ OPTIONAL_INPUT_FIELD_ADDED = 'OPTIONAL_INPUT_FIELD_ADDED',
24
+ OPTIONAL_ARG_ADDED = 'OPTIONAL_ARG_ADDED',
25
+ IMPLEMENTED_INTERFACE_ADDED = 'IMPLEMENTED_INTERFACE_ADDED',
26
+ ARG_DEFAULT_VALUE_CHANGE = 'ARG_DEFAULT_VALUE_CHANGE',
27
+ }
28
+ export interface BreakingChange {
29
+ type: BreakingChangeType;
30
+ description: string;
31
+ }
32
+ export interface DangerousChange {
33
+ type: DangerousChangeType;
34
+ description: string;
35
+ }
36
+ /**
37
+ * Given two schemas, returns an Array containing descriptions of all the types
38
+ * of breaking changes covered by the other functions down below.
39
+ */
40
+ export declare function findBreakingChanges(
41
+ oldSchema: GraphQLSchema,
42
+ newSchema: GraphQLSchema,
43
+ ): Array<BreakingChange>;
44
+ /**
45
+ * Given two schemas, returns an Array containing descriptions of all the types
46
+ * of potentially dangerous changes covered by the other functions down below.
47
+ */
48
+ export declare function findDangerousChanges(
49
+ oldSchema: GraphQLSchema,
50
+ newSchema: GraphQLSchema,
51
+ ): Array<DangerousChange>;
@@ -0,0 +1,547 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.DangerousChangeType = exports.BreakingChangeType = void 0;
7
+ exports.findBreakingChanges = findBreakingChanges;
8
+ exports.findDangerousChanges = findDangerousChanges;
9
+
10
+ var _inspect = require('../jsutils/inspect.js');
11
+
12
+ var _invariant = require('../jsutils/invariant.js');
13
+
14
+ var _keyMap = require('../jsutils/keyMap.js');
15
+
16
+ var _printer = require('../language/printer.js');
17
+
18
+ var _definition = require('../type/definition.js');
19
+
20
+ var _scalars = require('../type/scalars.js');
21
+
22
+ var _astFromValue = require('./astFromValue.js');
23
+
24
+ var _sortValueNode = require('./sortValueNode.js');
25
+
26
+ let BreakingChangeType;
27
+ exports.BreakingChangeType = BreakingChangeType;
28
+
29
+ (function (BreakingChangeType) {
30
+ BreakingChangeType['TYPE_REMOVED'] = 'TYPE_REMOVED';
31
+ BreakingChangeType['TYPE_CHANGED_KIND'] = 'TYPE_CHANGED_KIND';
32
+ BreakingChangeType['TYPE_REMOVED_FROM_UNION'] = 'TYPE_REMOVED_FROM_UNION';
33
+ BreakingChangeType['VALUE_REMOVED_FROM_ENUM'] = 'VALUE_REMOVED_FROM_ENUM';
34
+ BreakingChangeType['REQUIRED_INPUT_FIELD_ADDED'] =
35
+ 'REQUIRED_INPUT_FIELD_ADDED';
36
+ BreakingChangeType['IMPLEMENTED_INTERFACE_REMOVED'] =
37
+ 'IMPLEMENTED_INTERFACE_REMOVED';
38
+ BreakingChangeType['FIELD_REMOVED'] = 'FIELD_REMOVED';
39
+ BreakingChangeType['FIELD_CHANGED_KIND'] = 'FIELD_CHANGED_KIND';
40
+ BreakingChangeType['REQUIRED_ARG_ADDED'] = 'REQUIRED_ARG_ADDED';
41
+ BreakingChangeType['ARG_REMOVED'] = 'ARG_REMOVED';
42
+ BreakingChangeType['ARG_CHANGED_KIND'] = 'ARG_CHANGED_KIND';
43
+ BreakingChangeType['DIRECTIVE_REMOVED'] = 'DIRECTIVE_REMOVED';
44
+ BreakingChangeType['DIRECTIVE_ARG_REMOVED'] = 'DIRECTIVE_ARG_REMOVED';
45
+ BreakingChangeType['REQUIRED_DIRECTIVE_ARG_ADDED'] =
46
+ 'REQUIRED_DIRECTIVE_ARG_ADDED';
47
+ BreakingChangeType['DIRECTIVE_REPEATABLE_REMOVED'] =
48
+ 'DIRECTIVE_REPEATABLE_REMOVED';
49
+ BreakingChangeType['DIRECTIVE_LOCATION_REMOVED'] =
50
+ 'DIRECTIVE_LOCATION_REMOVED';
51
+ })(
52
+ BreakingChangeType || (exports.BreakingChangeType = BreakingChangeType = {}),
53
+ );
54
+
55
+ let DangerousChangeType;
56
+ exports.DangerousChangeType = DangerousChangeType;
57
+
58
+ (function (DangerousChangeType) {
59
+ DangerousChangeType['VALUE_ADDED_TO_ENUM'] = 'VALUE_ADDED_TO_ENUM';
60
+ DangerousChangeType['TYPE_ADDED_TO_UNION'] = 'TYPE_ADDED_TO_UNION';
61
+ DangerousChangeType['OPTIONAL_INPUT_FIELD_ADDED'] =
62
+ 'OPTIONAL_INPUT_FIELD_ADDED';
63
+ DangerousChangeType['OPTIONAL_ARG_ADDED'] = 'OPTIONAL_ARG_ADDED';
64
+ DangerousChangeType['IMPLEMENTED_INTERFACE_ADDED'] =
65
+ 'IMPLEMENTED_INTERFACE_ADDED';
66
+ DangerousChangeType['ARG_DEFAULT_VALUE_CHANGE'] = 'ARG_DEFAULT_VALUE_CHANGE';
67
+ })(
68
+ DangerousChangeType ||
69
+ (exports.DangerousChangeType = DangerousChangeType = {}),
70
+ );
71
+
72
+ /**
73
+ * Given two schemas, returns an Array containing descriptions of all the types
74
+ * of breaking changes covered by the other functions down below.
75
+ */
76
+ function findBreakingChanges(oldSchema, newSchema) {
77
+ // @ts-expect-error
78
+ return findSchemaChanges(oldSchema, newSchema).filter(
79
+ (change) => change.type in BreakingChangeType,
80
+ );
81
+ }
82
+ /**
83
+ * Given two schemas, returns an Array containing descriptions of all the types
84
+ * of potentially dangerous changes covered by the other functions down below.
85
+ */
86
+
87
+ function findDangerousChanges(oldSchema, newSchema) {
88
+ // @ts-expect-error
89
+ return findSchemaChanges(oldSchema, newSchema).filter(
90
+ (change) => change.type in DangerousChangeType,
91
+ );
92
+ }
93
+
94
+ function findSchemaChanges(oldSchema, newSchema) {
95
+ return [
96
+ ...findTypeChanges(oldSchema, newSchema),
97
+ ...findDirectiveChanges(oldSchema, newSchema),
98
+ ];
99
+ }
100
+
101
+ function findDirectiveChanges(oldSchema, newSchema) {
102
+ const schemaChanges = [];
103
+ const directivesDiff = diff(
104
+ oldSchema.getDirectives(),
105
+ newSchema.getDirectives(),
106
+ );
107
+
108
+ for (const oldDirective of directivesDiff.removed) {
109
+ schemaChanges.push({
110
+ type: BreakingChangeType.DIRECTIVE_REMOVED,
111
+ description: `${oldDirective.name} was removed.`,
112
+ });
113
+ }
114
+
115
+ for (const [oldDirective, newDirective] of directivesDiff.persisted) {
116
+ const argsDiff = diff(oldDirective.args, newDirective.args);
117
+
118
+ for (const newArg of argsDiff.added) {
119
+ if ((0, _definition.isRequiredArgument)(newArg)) {
120
+ schemaChanges.push({
121
+ type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,
122
+ description: `A required arg ${newArg.name} on directive ${oldDirective.name} was added.`,
123
+ });
124
+ }
125
+ }
126
+
127
+ for (const oldArg of argsDiff.removed) {
128
+ schemaChanges.push({
129
+ type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,
130
+ description: `${oldArg.name} was removed from ${oldDirective.name}.`,
131
+ });
132
+ }
133
+
134
+ if (oldDirective.isRepeatable && !newDirective.isRepeatable) {
135
+ schemaChanges.push({
136
+ type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,
137
+ description: `Repeatable flag was removed from ${oldDirective.name}.`,
138
+ });
139
+ }
140
+
141
+ for (const location of oldDirective.locations) {
142
+ if (!newDirective.locations.includes(location)) {
143
+ schemaChanges.push({
144
+ type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,
145
+ description: `${location} was removed from ${oldDirective.name}.`,
146
+ });
147
+ }
148
+ }
149
+ }
150
+
151
+ return schemaChanges;
152
+ }
153
+
154
+ function findTypeChanges(oldSchema, newSchema) {
155
+ const schemaChanges = [];
156
+ const typesDiff = diff(
157
+ Object.values(oldSchema.getTypeMap()),
158
+ Object.values(newSchema.getTypeMap()),
159
+ );
160
+
161
+ for (const oldType of typesDiff.removed) {
162
+ schemaChanges.push({
163
+ type: BreakingChangeType.TYPE_REMOVED,
164
+ description: (0, _scalars.isSpecifiedScalarType)(oldType)
165
+ ? `Standard scalar ${oldType.name} was removed because it is not referenced anymore.`
166
+ : `${oldType.name} was removed.`,
167
+ });
168
+ }
169
+
170
+ for (const [oldType, newType] of typesDiff.persisted) {
171
+ if (
172
+ (0, _definition.isEnumType)(oldType) &&
173
+ (0, _definition.isEnumType)(newType)
174
+ ) {
175
+ schemaChanges.push(...findEnumTypeChanges(oldType, newType));
176
+ } else if (
177
+ (0, _definition.isUnionType)(oldType) &&
178
+ (0, _definition.isUnionType)(newType)
179
+ ) {
180
+ schemaChanges.push(...findUnionTypeChanges(oldType, newType));
181
+ } else if (
182
+ (0, _definition.isInputObjectType)(oldType) &&
183
+ (0, _definition.isInputObjectType)(newType)
184
+ ) {
185
+ schemaChanges.push(...findInputObjectTypeChanges(oldType, newType));
186
+ } else if (
187
+ (0, _definition.isObjectType)(oldType) &&
188
+ (0, _definition.isObjectType)(newType)
189
+ ) {
190
+ schemaChanges.push(
191
+ ...findFieldChanges(oldType, newType),
192
+ ...findImplementedInterfacesChanges(oldType, newType),
193
+ );
194
+ } else if (
195
+ (0, _definition.isInterfaceType)(oldType) &&
196
+ (0, _definition.isInterfaceType)(newType)
197
+ ) {
198
+ schemaChanges.push(
199
+ ...findFieldChanges(oldType, newType),
200
+ ...findImplementedInterfacesChanges(oldType, newType),
201
+ );
202
+ } else if (oldType.constructor !== newType.constructor) {
203
+ schemaChanges.push({
204
+ type: BreakingChangeType.TYPE_CHANGED_KIND,
205
+ description:
206
+ `${oldType.name} changed from ` +
207
+ `${typeKindName(oldType)} to ${typeKindName(newType)}.`,
208
+ });
209
+ }
210
+ }
211
+
212
+ return schemaChanges;
213
+ }
214
+
215
+ function findInputObjectTypeChanges(oldType, newType) {
216
+ const schemaChanges = [];
217
+ const fieldsDiff = diff(
218
+ Object.values(oldType.getFields()),
219
+ Object.values(newType.getFields()),
220
+ );
221
+
222
+ for (const newField of fieldsDiff.added) {
223
+ if ((0, _definition.isRequiredInputField)(newField)) {
224
+ schemaChanges.push({
225
+ type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,
226
+ description: `A required field ${newField.name} on input type ${oldType.name} was added.`,
227
+ });
228
+ } else {
229
+ schemaChanges.push({
230
+ type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,
231
+ description: `An optional field ${newField.name} on input type ${oldType.name} was added.`,
232
+ });
233
+ }
234
+ }
235
+
236
+ for (const oldField of fieldsDiff.removed) {
237
+ schemaChanges.push({
238
+ type: BreakingChangeType.FIELD_REMOVED,
239
+ description: `${oldType.name}.${oldField.name} was removed.`,
240
+ });
241
+ }
242
+
243
+ for (const [oldField, newField] of fieldsDiff.persisted) {
244
+ const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(
245
+ oldField.type,
246
+ newField.type,
247
+ );
248
+
249
+ if (!isSafe) {
250
+ schemaChanges.push({
251
+ type: BreakingChangeType.FIELD_CHANGED_KIND,
252
+ description:
253
+ `${oldType.name}.${oldField.name} changed type from ` +
254
+ `${String(oldField.type)} to ${String(newField.type)}.`,
255
+ });
256
+ }
257
+ }
258
+
259
+ return schemaChanges;
260
+ }
261
+
262
+ function findUnionTypeChanges(oldType, newType) {
263
+ const schemaChanges = [];
264
+ const possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());
265
+
266
+ for (const newPossibleType of possibleTypesDiff.added) {
267
+ schemaChanges.push({
268
+ type: DangerousChangeType.TYPE_ADDED_TO_UNION,
269
+ description: `${newPossibleType.name} was added to union type ${oldType.name}.`,
270
+ });
271
+ }
272
+
273
+ for (const oldPossibleType of possibleTypesDiff.removed) {
274
+ schemaChanges.push({
275
+ type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,
276
+ description: `${oldPossibleType.name} was removed from union type ${oldType.name}.`,
277
+ });
278
+ }
279
+
280
+ return schemaChanges;
281
+ }
282
+
283
+ function findEnumTypeChanges(oldType, newType) {
284
+ const schemaChanges = [];
285
+ const valuesDiff = diff(oldType.getValues(), newType.getValues());
286
+
287
+ for (const newValue of valuesDiff.added) {
288
+ schemaChanges.push({
289
+ type: DangerousChangeType.VALUE_ADDED_TO_ENUM,
290
+ description: `${newValue.name} was added to enum type ${oldType.name}.`,
291
+ });
292
+ }
293
+
294
+ for (const oldValue of valuesDiff.removed) {
295
+ schemaChanges.push({
296
+ type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,
297
+ description: `${oldValue.name} was removed from enum type ${oldType.name}.`,
298
+ });
299
+ }
300
+
301
+ return schemaChanges;
302
+ }
303
+
304
+ function findImplementedInterfacesChanges(oldType, newType) {
305
+ const schemaChanges = [];
306
+ const interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());
307
+
308
+ for (const newInterface of interfacesDiff.added) {
309
+ schemaChanges.push({
310
+ type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,
311
+ description: `${newInterface.name} added to interfaces implemented by ${oldType.name}.`,
312
+ });
313
+ }
314
+
315
+ for (const oldInterface of interfacesDiff.removed) {
316
+ schemaChanges.push({
317
+ type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,
318
+ description: `${oldType.name} no longer implements interface ${oldInterface.name}.`,
319
+ });
320
+ }
321
+
322
+ return schemaChanges;
323
+ }
324
+
325
+ function findFieldChanges(oldType, newType) {
326
+ const schemaChanges = [];
327
+ const fieldsDiff = diff(
328
+ Object.values(oldType.getFields()),
329
+ Object.values(newType.getFields()),
330
+ );
331
+
332
+ for (const oldField of fieldsDiff.removed) {
333
+ schemaChanges.push({
334
+ type: BreakingChangeType.FIELD_REMOVED,
335
+ description: `${oldType.name}.${oldField.name} was removed.`,
336
+ });
337
+ }
338
+
339
+ for (const [oldField, newField] of fieldsDiff.persisted) {
340
+ schemaChanges.push(...findArgChanges(oldType, oldField, newField));
341
+ const isSafe = isChangeSafeForObjectOrInterfaceField(
342
+ oldField.type,
343
+ newField.type,
344
+ );
345
+
346
+ if (!isSafe) {
347
+ schemaChanges.push({
348
+ type: BreakingChangeType.FIELD_CHANGED_KIND,
349
+ description:
350
+ `${oldType.name}.${oldField.name} changed type from ` +
351
+ `${String(oldField.type)} to ${String(newField.type)}.`,
352
+ });
353
+ }
354
+ }
355
+
356
+ return schemaChanges;
357
+ }
358
+
359
+ function findArgChanges(oldType, oldField, newField) {
360
+ const schemaChanges = [];
361
+ const argsDiff = diff(oldField.args, newField.args);
362
+
363
+ for (const oldArg of argsDiff.removed) {
364
+ schemaChanges.push({
365
+ type: BreakingChangeType.ARG_REMOVED,
366
+ description: `${oldType.name}.${oldField.name} arg ${oldArg.name} was removed.`,
367
+ });
368
+ }
369
+
370
+ for (const [oldArg, newArg] of argsDiff.persisted) {
371
+ const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(
372
+ oldArg.type,
373
+ newArg.type,
374
+ );
375
+
376
+ if (!isSafe) {
377
+ schemaChanges.push({
378
+ type: BreakingChangeType.ARG_CHANGED_KIND,
379
+ description:
380
+ `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed type from ` +
381
+ `${String(oldArg.type)} to ${String(newArg.type)}.`,
382
+ });
383
+ } else if (oldArg.defaultValue !== undefined) {
384
+ if (newArg.defaultValue === undefined) {
385
+ schemaChanges.push({
386
+ type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
387
+ description: `${oldType.name}.${oldField.name} arg ${oldArg.name} defaultValue was removed.`,
388
+ });
389
+ } else {
390
+ // Since we looking only for client's observable changes we should
391
+ // compare default values in the same representation as they are
392
+ // represented inside introspection.
393
+ const oldValueStr = stringifyValue(oldArg.defaultValue, oldArg.type);
394
+ const newValueStr = stringifyValue(newArg.defaultValue, newArg.type);
395
+
396
+ if (oldValueStr !== newValueStr) {
397
+ schemaChanges.push({
398
+ type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
399
+ description: `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed defaultValue from ${oldValueStr} to ${newValueStr}.`,
400
+ });
401
+ }
402
+ }
403
+ }
404
+ }
405
+
406
+ for (const newArg of argsDiff.added) {
407
+ if ((0, _definition.isRequiredArgument)(newArg)) {
408
+ schemaChanges.push({
409
+ type: BreakingChangeType.REQUIRED_ARG_ADDED,
410
+ description: `A required arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`,
411
+ });
412
+ } else {
413
+ schemaChanges.push({
414
+ type: DangerousChangeType.OPTIONAL_ARG_ADDED,
415
+ description: `An optional arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`,
416
+ });
417
+ }
418
+ }
419
+
420
+ return schemaChanges;
421
+ }
422
+
423
+ function isChangeSafeForObjectOrInterfaceField(oldType, newType) {
424
+ if ((0, _definition.isListType)(oldType)) {
425
+ return (
426
+ // if they're both lists, make sure the underlying types are compatible
427
+ ((0, _definition.isListType)(newType) &&
428
+ isChangeSafeForObjectOrInterfaceField(
429
+ oldType.ofType,
430
+ newType.ofType,
431
+ )) || // moving from nullable to non-null of the same underlying type is safe
432
+ ((0, _definition.isNonNullType)(newType) &&
433
+ isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))
434
+ );
435
+ }
436
+
437
+ if ((0, _definition.isNonNullType)(oldType)) {
438
+ // if they're both non-null, make sure the underlying types are compatible
439
+ return (
440
+ (0, _definition.isNonNullType)(newType) &&
441
+ isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType)
442
+ );
443
+ }
444
+
445
+ return (
446
+ // if they're both named types, see if their names are equivalent
447
+ ((0, _definition.isNamedType)(newType) && oldType.name === newType.name) || // moving from nullable to non-null of the same underlying type is safe
448
+ ((0, _definition.isNonNullType)(newType) &&
449
+ isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))
450
+ );
451
+ }
452
+
453
+ function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {
454
+ if ((0, _definition.isListType)(oldType)) {
455
+ // if they're both lists, make sure the underlying types are compatible
456
+ return (
457
+ (0, _definition.isListType)(newType) &&
458
+ isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType)
459
+ );
460
+ }
461
+
462
+ if ((0, _definition.isNonNullType)(oldType)) {
463
+ return (
464
+ // if they're both non-null, make sure the underlying types are
465
+ // compatible
466
+ ((0, _definition.isNonNullType)(newType) &&
467
+ isChangeSafeForInputObjectFieldOrFieldArg(
468
+ oldType.ofType,
469
+ newType.ofType,
470
+ )) || // moving from non-null to nullable of the same underlying type is safe
471
+ (!(0, _definition.isNonNullType)(newType) &&
472
+ isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType))
473
+ );
474
+ } // if they're both named types, see if their names are equivalent
475
+
476
+ return (0, _definition.isNamedType)(newType) && oldType.name === newType.name;
477
+ }
478
+
479
+ function typeKindName(type) {
480
+ if ((0, _definition.isScalarType)(type)) {
481
+ return 'a Scalar type';
482
+ }
483
+
484
+ if ((0, _definition.isObjectType)(type)) {
485
+ return 'an Object type';
486
+ }
487
+
488
+ if ((0, _definition.isInterfaceType)(type)) {
489
+ return 'an Interface type';
490
+ }
491
+
492
+ if ((0, _definition.isUnionType)(type)) {
493
+ return 'a Union type';
494
+ }
495
+
496
+ if ((0, _definition.isEnumType)(type)) {
497
+ return 'an Enum type';
498
+ }
499
+
500
+ if ((0, _definition.isInputObjectType)(type)) {
501
+ return 'an Input type';
502
+ }
503
+ /* c8 ignore next 3 */
504
+ // Not reachable, all possible types have been considered.
505
+
506
+ false ||
507
+ (0, _invariant.invariant)(
508
+ false,
509
+ 'Unexpected type: ' + (0, _inspect.inspect)(type),
510
+ );
511
+ }
512
+
513
+ function stringifyValue(value, type) {
514
+ const ast = (0, _astFromValue.astFromValue)(value, type);
515
+ ast != null || (0, _invariant.invariant)(false);
516
+ return (0, _printer.print)((0, _sortValueNode.sortValueNode)(ast));
517
+ }
518
+
519
+ function diff(oldArray, newArray) {
520
+ const added = [];
521
+ const removed = [];
522
+ const persisted = [];
523
+ const oldMap = (0, _keyMap.keyMap)(oldArray, ({ name }) => name);
524
+ const newMap = (0, _keyMap.keyMap)(newArray, ({ name }) => name);
525
+
526
+ for (const oldItem of oldArray) {
527
+ const newItem = newMap[oldItem.name];
528
+
529
+ if (newItem === undefined) {
530
+ removed.push(oldItem);
531
+ } else {
532
+ persisted.push([oldItem, newItem]);
533
+ }
534
+ }
535
+
536
+ for (const newItem of newArray) {
537
+ if (oldMap[newItem.name] === undefined) {
538
+ added.push(newItem);
539
+ }
540
+ }
541
+
542
+ return {
543
+ added,
544
+ persisted,
545
+ removed,
546
+ };
547
+ }