graphql 15.2.0 → 15.5.0

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 (338) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +19 -10
  3. package/error/GraphQLError.js +8 -8
  4. package/error/GraphQLError.js.flow +2 -3
  5. package/error/GraphQLError.mjs +2 -2
  6. package/error/formatError.js +1 -1
  7. package/error/formatError.js.flow +0 -1
  8. package/error/index.js +4 -4
  9. package/error/index.js.flow +0 -1
  10. package/error/locatedError.d.ts +2 -2
  11. package/error/locatedError.js +10 -5
  12. package/error/locatedError.js.flow +10 -4
  13. package/error/locatedError.mjs +6 -4
  14. package/error/syntaxError.js +1 -1
  15. package/error/syntaxError.js.flow +0 -1
  16. package/execution/execute.d.ts +11 -15
  17. package/execution/execute.js +110 -110
  18. package/execution/execute.js.flow +132 -139
  19. package/execution/execute.mjs +92 -88
  20. package/execution/index.d.ts +1 -0
  21. package/execution/index.js +3 -3
  22. package/execution/index.js.flow +6 -2
  23. package/execution/values.js +11 -11
  24. package/execution/values.js.flow +0 -1
  25. package/graphql.js +5 -5
  26. package/graphql.js.flow +0 -1
  27. package/index.d.ts +2 -0
  28. package/index.js +9 -9
  29. package/index.js.flow +5 -2
  30. package/jsutils/ObjMap.js.flow +0 -1
  31. package/jsutils/Path.js.flow +0 -1
  32. package/jsutils/PromiseOrValue.js.flow +0 -1
  33. package/jsutils/defineInspect.js +2 -2
  34. package/jsutils/defineInspect.js.flow +0 -1
  35. package/jsutils/devAssert.js.flow +0 -1
  36. package/jsutils/didYouMean.js.flow +0 -1
  37. package/jsutils/identityFunc.js.flow +0 -1
  38. package/jsutils/inspect.js +1 -2
  39. package/jsutils/inspect.js.flow +10 -8
  40. package/jsutils/inspect.mjs +1 -1
  41. package/jsutils/instanceOf.js.flow +2 -3
  42. package/jsutils/invariant.js.flow +0 -1
  43. package/jsutils/isAsyncIterable.js +13 -0
  44. package/jsutils/isAsyncIterable.js.flow +14 -0
  45. package/jsutils/isAsyncIterable.mjs +10 -0
  46. package/jsutils/isObjectLike.js.flow +0 -1
  47. package/jsutils/isPromise.js.flow +0 -1
  48. package/jsutils/keyMap.js.flow +0 -1
  49. package/jsutils/keyValMap.js.flow +0 -1
  50. package/jsutils/mapValue.js +1 -1
  51. package/jsutils/mapValue.js.flow +0 -1
  52. package/jsutils/memoize3.js +2 -5
  53. package/jsutils/memoize3.js.flow +2 -5
  54. package/jsutils/memoize3.mjs +2 -5
  55. package/jsutils/naturalCompare.js +69 -0
  56. package/jsutils/naturalCompare.js.flow +59 -0
  57. package/jsutils/naturalCompare.mjs +61 -0
  58. package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
  59. package/jsutils/printPathArray.js.flow +0 -1
  60. package/jsutils/promiseForObject.js.flow +0 -1
  61. package/jsutils/promiseReduce.js +1 -1
  62. package/jsutils/promiseReduce.js.flow +0 -1
  63. package/jsutils/safeArrayFrom.js +73 -0
  64. package/jsutils/safeArrayFrom.js.flow +59 -0
  65. package/jsutils/safeArrayFrom.mjs +66 -0
  66. package/jsutils/suggestionList.js +5 -1
  67. package/jsutils/suggestionList.js.flow +3 -2
  68. package/jsutils/suggestionList.mjs +3 -1
  69. package/jsutils/toObjMap.js +1 -1
  70. package/jsutils/toObjMap.js.flow +0 -1
  71. package/language/ast.js +1 -1
  72. package/language/ast.js.flow +0 -1
  73. package/language/blockString.d.ts +1 -1
  74. package/language/blockString.js +53 -32
  75. package/language/blockString.js.flow +51 -36
  76. package/language/blockString.mjs +54 -33
  77. package/language/directiveLocation.js.flow +0 -1
  78. package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
  79. package/language/experimentalOnlineParser/grammar.js +987 -0
  80. package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
  81. package/language/experimentalOnlineParser/grammar.mjs +980 -0
  82. package/language/experimentalOnlineParser/index.d.ts +6 -0
  83. package/language/experimentalOnlineParser/index.js +31 -0
  84. package/language/experimentalOnlineParser/index.js.flow +7 -0
  85. package/language/experimentalOnlineParser/index.mjs +1 -0
  86. package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
  87. package/language/experimentalOnlineParser/onlineParser.js +604 -0
  88. package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
  89. package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
  90. package/language/index.js +12 -12
  91. package/language/index.js.flow +0 -1
  92. package/language/kinds.js.flow +0 -1
  93. package/language/lexer.js +242 -183
  94. package/language/lexer.js.flow +188 -184
  95. package/language/lexer.mjs +238 -179
  96. package/language/location.js.flow +0 -1
  97. package/language/parser.js +73 -68
  98. package/language/parser.js.flow +62 -57
  99. package/language/parser.mjs +64 -60
  100. package/language/predicates.js +1 -1
  101. package/language/predicates.js.flow +0 -1
  102. package/language/printLocation.js +1 -1
  103. package/language/printLocation.js.flow +0 -1
  104. package/language/printer.js +20 -13
  105. package/language/printer.js.flow +26 -25
  106. package/language/printer.mjs +18 -11
  107. package/language/source.d.ts +12 -6
  108. package/language/source.js +25 -9
  109. package/language/source.js.flow +26 -9
  110. package/language/source.mjs +19 -7
  111. package/language/tokenKind.js.flow +0 -1
  112. package/language/visitor.d.ts +3 -3
  113. package/language/visitor.js +5 -5
  114. package/language/visitor.js.flow +3 -4
  115. package/language/visitor.mjs +3 -3
  116. package/package.json +2 -3
  117. package/polyfills/arrayFrom.js +2 -2
  118. package/polyfills/arrayFrom.js.flow +1 -2
  119. package/polyfills/arrayFrom.mjs +1 -1
  120. package/polyfills/find.js +1 -1
  121. package/polyfills/find.js.flow +1 -2
  122. package/polyfills/find.mjs +1 -1
  123. package/polyfills/isFinite.js +1 -1
  124. package/polyfills/isFinite.js.flow +1 -2
  125. package/polyfills/isFinite.mjs +1 -1
  126. package/polyfills/isInteger.js +1 -1
  127. package/polyfills/isInteger.js.flow +1 -2
  128. package/polyfills/isInteger.mjs +1 -1
  129. package/polyfills/objectEntries.js +1 -1
  130. package/polyfills/objectEntries.js.flow +1 -2
  131. package/polyfills/objectEntries.mjs +1 -1
  132. package/polyfills/objectValues.js +1 -1
  133. package/polyfills/objectValues.js.flow +1 -2
  134. package/polyfills/objectValues.mjs +1 -1
  135. package/polyfills/symbols.js +3 -5
  136. package/polyfills/symbols.js.flow +9 -6
  137. package/polyfills/symbols.mjs +3 -5
  138. package/subscription/index.js +1 -1
  139. package/subscription/index.js.flow +0 -1
  140. package/subscription/mapAsyncIterator.js +2 -2
  141. package/subscription/mapAsyncIterator.js.flow +8 -9
  142. package/subscription/mapAsyncIterator.mjs +1 -1
  143. package/subscription/subscribe.js +61 -73
  144. package/subscription/subscribe.js.flow +71 -85
  145. package/subscription/subscribe.mjs +53 -65
  146. package/type/definition.d.ts +17 -9
  147. package/type/definition.js +37 -32
  148. package/type/definition.js.flow +93 -63
  149. package/type/definition.mjs +19 -14
  150. package/type/directives.js +17 -16
  151. package/type/directives.js.flow +20 -13
  152. package/type/directives.mjs +6 -5
  153. package/type/index.js +6 -6
  154. package/type/index.js.flow +0 -1
  155. package/type/introspection.js +86 -65
  156. package/type/introspection.js.flow +75 -43
  157. package/type/introspection.mjs +79 -58
  158. package/type/scalars.js +9 -9
  159. package/type/scalars.js.flow +1 -2
  160. package/type/scalars.mjs +1 -1
  161. package/type/schema.js +13 -13
  162. package/type/schema.js.flow +2 -3
  163. package/type/schema.mjs +1 -1
  164. package/type/validate.js +52 -19
  165. package/type/validate.js.flow +54 -8
  166. package/type/validate.mjs +43 -9
  167. package/utilities/TypeInfo.js +7 -7
  168. package/utilities/TypeInfo.js.flow +1 -2
  169. package/utilities/assertValidName.js +2 -2
  170. package/utilities/assertValidName.js.flow +0 -1
  171. package/utilities/astFromValue.js +14 -16
  172. package/utilities/astFromValue.js.flow +6 -7
  173. package/utilities/astFromValue.mjs +6 -7
  174. package/utilities/buildASTSchema.js +17 -27
  175. package/utilities/buildASTSchema.js.flow +5 -21
  176. package/utilities/buildASTSchema.mjs +11 -21
  177. package/utilities/buildClientSchema.js +16 -15
  178. package/utilities/buildClientSchema.js.flow +28 -12
  179. package/utilities/buildClientSchema.mjs +5 -4
  180. package/utilities/coerceInputValue.js +17 -18
  181. package/utilities/coerceInputValue.js.flow +12 -10
  182. package/utilities/coerceInputValue.mjs +7 -7
  183. package/utilities/concatAST.js +9 -8
  184. package/utilities/concatAST.js.flow +8 -8
  185. package/utilities/concatAST.mjs +9 -6
  186. package/utilities/extendSchema.js +26 -19
  187. package/utilities/extendSchema.js.flow +19 -7
  188. package/utilities/extendSchema.mjs +8 -1
  189. package/utilities/findBreakingChanges.js +15 -11
  190. package/utilities/findBreakingChanges.js.flow +6 -3
  191. package/utilities/findBreakingChanges.mjs +5 -2
  192. package/utilities/findDeprecatedUsages.js +2 -2
  193. package/utilities/findDeprecatedUsages.js.flow +0 -1
  194. package/utilities/getIntrospectionQuery.d.ts +6 -0
  195. package/utilities/getIntrospectionQuery.js +8 -2
  196. package/utilities/getIntrospectionQuery.js.flow +17 -5
  197. package/utilities/getIntrospectionQuery.mjs +8 -2
  198. package/utilities/getOperationAST.js +1 -1
  199. package/utilities/getOperationAST.js.flow +0 -1
  200. package/utilities/getOperationRootType.js +1 -1
  201. package/utilities/getOperationRootType.js.flow +0 -1
  202. package/utilities/index.d.ts +3 -0
  203. package/utilities/index.js +22 -22
  204. package/utilities/index.js.flow +0 -1
  205. package/utilities/introspectionFromSchema.js +7 -5
  206. package/utilities/introspectionFromSchema.js.flow +2 -1
  207. package/utilities/introspectionFromSchema.mjs +3 -1
  208. package/utilities/lexicographicSortSchema.js +13 -9
  209. package/utilities/lexicographicSortSchema.js.flow +21 -13
  210. package/utilities/lexicographicSortSchema.mjs +5 -2
  211. package/utilities/printSchema.js +15 -16
  212. package/utilities/printSchema.js.flow +23 -16
  213. package/utilities/printSchema.mjs +5 -6
  214. package/utilities/separateOperations.js +46 -42
  215. package/utilities/separateOperations.js.flow +46 -37
  216. package/utilities/separateOperations.mjs +44 -40
  217. package/utilities/stripIgnoredCharacters.js +6 -16
  218. package/utilities/stripIgnoredCharacters.js.flow +4 -13
  219. package/utilities/stripIgnoredCharacters.mjs +3 -10
  220. package/utilities/typeComparators.js +1 -1
  221. package/utilities/typeComparators.js.flow +0 -1
  222. package/utilities/typeFromAST.js +6 -6
  223. package/utilities/typeFromAST.js.flow +2 -3
  224. package/utilities/typeFromAST.mjs +2 -2
  225. package/utilities/typedQueryDocumentNode.d.ts +20 -0
  226. package/utilities/valueFromAST.js +6 -6
  227. package/utilities/valueFromAST.js.flow +4 -2
  228. package/utilities/valueFromASTUntyped.js +4 -4
  229. package/utilities/valueFromASTUntyped.js.flow +0 -1
  230. package/validation/ValidationContext.js +3 -3
  231. package/validation/ValidationContext.js.flow +3 -4
  232. package/validation/index.js +38 -38
  233. package/validation/index.js.flow +0 -1
  234. package/validation/rules/ExecutableDefinitions.js +1 -1
  235. package/validation/rules/ExecutableDefinitions.js.flow +0 -1
  236. package/validation/rules/ExecutableDefinitionsRule.js +3 -3
  237. package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
  238. package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
  239. package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
  240. package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
  241. package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
  242. package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
  243. package/validation/rules/KnownArgumentNamesRule.js +5 -5
  244. package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
  245. package/validation/rules/KnownDirectivesRule.js +6 -6
  246. package/validation/rules/KnownDirectivesRule.js.flow +4 -3
  247. package/validation/rules/KnownFragmentNamesRule.js +1 -1
  248. package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
  249. package/validation/rules/KnownTypeNamesRule.js +6 -6
  250. package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
  251. package/validation/rules/LoneAnonymousOperationRule.js +2 -2
  252. package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
  253. package/validation/rules/LoneSchemaDefinition.js +1 -1
  254. package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
  255. package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
  256. package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
  257. package/validation/rules/NoFragmentCyclesRule.js +1 -1
  258. package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
  259. package/validation/rules/NoUndefinedVariablesRule.js +1 -1
  260. package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
  261. package/validation/rules/NoUnusedFragmentsRule.js +1 -1
  262. package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
  263. package/validation/rules/NoUnusedVariablesRule.js +1 -1
  264. package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
  265. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
  266. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
  267. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
  268. package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
  269. package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
  270. package/validation/rules/PossibleTypeExtensions.js +1 -1
  271. package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
  272. package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
  273. package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
  274. package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
  275. package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
  276. package/validation/rules/ScalarLeafsRule.js +3 -3
  277. package/validation/rules/ScalarLeafsRule.js.flow +0 -1
  278. package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
  279. package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
  280. package/validation/rules/UniqueArgumentNamesRule.js +1 -1
  281. package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
  282. package/validation/rules/UniqueDirectiveNames.js +1 -1
  283. package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
  284. package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
  285. package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
  286. package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
  287. package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
  288. package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
  289. package/validation/rules/UniqueEnumValueNames.js +1 -1
  290. package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
  291. package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
  292. package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
  293. package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
  294. package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
  295. package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
  296. package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
  297. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
  298. package/validation/rules/UniqueFragmentNamesRule.js +1 -1
  299. package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
  300. package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
  301. package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
  302. package/validation/rules/UniqueOperationNamesRule.js +1 -1
  303. package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
  304. package/validation/rules/UniqueOperationTypes.js +1 -1
  305. package/validation/rules/UniqueOperationTypes.js.flow +0 -1
  306. package/validation/rules/UniqueOperationTypesRule.js +1 -1
  307. package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
  308. package/validation/rules/UniqueTypeNames.js +1 -1
  309. package/validation/rules/UniqueTypeNames.js.flow +0 -1
  310. package/validation/rules/UniqueTypeNamesRule.js +2 -2
  311. package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
  312. package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
  313. package/validation/rules/UniqueVariableNamesRule.js +1 -1
  314. package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
  315. package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
  316. package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
  317. package/validation/rules/VariablesAreInputTypesRule.js +4 -4
  318. package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
  319. package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
  320. package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
  321. package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
  322. package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
  323. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
  324. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
  325. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
  326. package/validation/specifiedRules.js +33 -33
  327. package/validation/specifiedRules.js.flow +0 -1
  328. package/validation/validate.js +7 -7
  329. package/validation/validate.js.flow +4 -5
  330. package/version.js +2 -2
  331. package/version.js.flow +2 -3
  332. package/version.mjs +2 -2
  333. package/jsutils/isCollection.js +0 -47
  334. package/jsutils/isCollection.js.flow +0 -39
  335. package/jsutils/isCollection.mjs +0 -40
  336. package/polyfills/flatMap.js +0 -30
  337. package/polyfills/flatMap.js.flow +0 -28
  338. package/polyfills/flatMap.mjs +0 -23
@@ -46,41 +46,41 @@ exports.isRequiredArgument = isRequiredArgument;
46
46
  exports.isRequiredInputField = isRequiredInputField;
47
47
  exports.GraphQLInputObjectType = exports.GraphQLEnumType = exports.GraphQLUnionType = exports.GraphQLInterfaceType = exports.GraphQLObjectType = exports.GraphQLScalarType = void 0;
48
48
 
49
- var _objectEntries = _interopRequireDefault(require("../polyfills/objectEntries"));
49
+ var _objectEntries = _interopRequireDefault(require("../polyfills/objectEntries.js"));
50
50
 
51
- var _symbols = require("../polyfills/symbols");
51
+ var _symbols = require("../polyfills/symbols.js");
52
52
 
53
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
53
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
54
54
 
55
- var _keyMap = _interopRequireDefault(require("../jsutils/keyMap"));
55
+ var _keyMap = _interopRequireDefault(require("../jsutils/keyMap.js"));
56
56
 
57
- var _mapValue = _interopRequireDefault(require("../jsutils/mapValue"));
57
+ var _mapValue = _interopRequireDefault(require("../jsutils/mapValue.js"));
58
58
 
59
- var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap"));
59
+ var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap.js"));
60
60
 
61
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
61
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
62
62
 
63
- var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap"));
63
+ var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap.js"));
64
64
 
65
- var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf"));
65
+ var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf.js"));
66
66
 
67
- var _didYouMean = _interopRequireDefault(require("../jsutils/didYouMean"));
67
+ var _didYouMean = _interopRequireDefault(require("../jsutils/didYouMean.js"));
68
68
 
69
- var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
69
+ var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
70
70
 
71
- var _identityFunc = _interopRequireDefault(require("../jsutils/identityFunc"));
71
+ var _identityFunc = _interopRequireDefault(require("../jsutils/identityFunc.js"));
72
72
 
73
- var _defineInspect = _interopRequireDefault(require("../jsutils/defineInspect"));
73
+ var _defineInspect = _interopRequireDefault(require("../jsutils/defineInspect.js"));
74
74
 
75
- var _suggestionList = _interopRequireDefault(require("../jsutils/suggestionList"));
75
+ var _suggestionList = _interopRequireDefault(require("../jsutils/suggestionList.js"));
76
76
 
77
- var _GraphQLError = require("../error/GraphQLError");
77
+ var _GraphQLError = require("../error/GraphQLError.js");
78
78
 
79
- var _kinds = require("../language/kinds");
79
+ var _kinds = require("../language/kinds.js");
80
80
 
81
- var _printer = require("../language/printer");
81
+ var _printer = require("../language/printer.js");
82
82
 
83
- var _valueFromASTUntyped = require("../utilities/valueFromASTUntyped");
83
+ var _valueFromASTUntyped = require("../utilities/valueFromASTUntyped.js");
84
84
 
85
85
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
86
86
 
@@ -299,8 +299,8 @@ function assertAbstractType(type) {
299
299
  * const PersonType = new GraphQLObjectType({
300
300
  * name: 'Person',
301
301
  * fields: () => ({
302
- * parents: { type: GraphQLList(PersonType) },
303
- * children: { type: GraphQLList(PersonType) },
302
+ * parents: { type: new GraphQLList(PersonType) },
303
+ * children: { type: new GraphQLList(PersonType) },
304
304
  * })
305
305
  * })
306
306
  *
@@ -318,6 +318,7 @@ declare class GraphQLList<+T: GraphQLType> {
318
318
 
319
319
 
320
320
  function GraphQLList(ofType) {
321
+ // istanbul ignore else (to be removed in v16.0.0)
321
322
  if (this instanceof GraphQLList) {
322
323
  this.ofType = assertType(ofType);
323
324
  } else {
@@ -355,7 +356,7 @@ Object.defineProperty(GraphQLList.prototype, _symbols.SYMBOL_TO_STRING_TAG, {
355
356
  * const RowType = new GraphQLObjectType({
356
357
  * name: 'Row',
357
358
  * fields: () => ({
358
- * id: { type: GraphQLNonNull(GraphQLString) },
359
+ * id: { type: new GraphQLNonNull(GraphQLString) },
359
360
  * })
360
361
  * })
361
362
  *
@@ -373,6 +374,7 @@ declare class GraphQLNonNull<+T: GraphQLNullableType> {
373
374
  */
374
375
 
375
376
  function GraphQLNonNull(ofType) {
377
+ // istanbul ignore else (to be removed in v16.0.0)
376
378
  if (this instanceof GraphQLNonNull) {
377
379
  this.ofType = assertNullableType(ofType);
378
380
  } else {
@@ -474,7 +476,7 @@ function getNamedType(type) {
474
476
 
475
477
 
476
478
  function resolveThunk(thunk) {
477
- // $FlowFixMe(>=0.90.0)
479
+ // $FlowFixMe[incompatible-use]
478
480
  return typeof thunk === 'function' ? thunk() : thunk;
479
481
  }
480
482
 
@@ -517,8 +519,8 @@ var GraphQLScalarType = /*#__PURE__*/function () {
517
519
  this.specifiedByUrl = config.specifiedByUrl;
518
520
  this.serialize = (_config$serialize = config.serialize) !== null && _config$serialize !== void 0 ? _config$serialize : _identityFunc.default;
519
521
  this.parseValue = parseValue;
520
- this.parseLiteral = (_config$parseLiteral = config.parseLiteral) !== null && _config$parseLiteral !== void 0 ? _config$parseLiteral : function (node) {
521
- return parseValue((0, _valueFromASTUntyped.valueFromASTUntyped)(node));
522
+ this.parseLiteral = (_config$parseLiteral = config.parseLiteral) !== null && _config$parseLiteral !== void 0 ? _config$parseLiteral : function (node, variables) {
523
+ return parseValue((0, _valueFromASTUntyped.valueFromASTUntyped)(node, variables));
522
524
  };
523
525
  this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
524
526
  this.astNode = config.astNode;
@@ -556,7 +558,7 @@ var GraphQLScalarType = /*#__PURE__*/function () {
556
558
 
557
559
  _proto.toJSON = function toJSON() {
558
560
  return this.toString();
559
- } // $FlowFixMe Flow doesn't support computed properties yet
561
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
560
562
  ;
561
563
 
562
564
  _createClass(GraphQLScalarType, [{
@@ -661,7 +663,7 @@ var GraphQLObjectType = /*#__PURE__*/function () {
661
663
 
662
664
  _proto2.toJSON = function toJSON() {
663
665
  return this.toString();
664
- } // $FlowFixMe Flow doesn't support computed properties yet
666
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
665
667
  ;
666
668
 
667
669
  _createClass(GraphQLObjectType, [{
@@ -705,6 +707,7 @@ function defineFieldMap(config) {
705
707
  description: argConfig.description,
706
708
  type: argConfig.type,
707
709
  defaultValue: argConfig.defaultValue,
710
+ deprecationReason: argConfig.deprecationReason,
708
711
  extensions: argConfig.extensions && (0, _toObjMap.default)(argConfig.extensions),
709
712
  astNode: argConfig.astNode
710
713
  };
@@ -755,6 +758,7 @@ function argsToArgsConfig(args) {
755
758
  description: arg.description,
756
759
  type: arg.type,
757
760
  defaultValue: arg.defaultValue,
761
+ deprecationReason: arg.deprecationReason,
758
762
  extensions: arg.extensions,
759
763
  astNode: arg.astNode
760
764
  };
@@ -836,7 +840,7 @@ var GraphQLInterfaceType = /*#__PURE__*/function () {
836
840
 
837
841
  _proto3.toJSON = function toJSON() {
838
842
  return this.toString();
839
- } // $FlowFixMe Flow doesn't support computed properties yet
843
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
840
844
  ;
841
845
 
842
846
  _createClass(GraphQLInterfaceType, [{
@@ -919,7 +923,7 @@ var GraphQLUnionType = /*#__PURE__*/function () {
919
923
 
920
924
  _proto4.toJSON = function toJSON() {
921
925
  return this.toString();
922
- } // $FlowFixMe Flow doesn't support computed properties yet
926
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
923
927
  ;
924
928
 
925
929
  _createClass(GraphQLUnionType, [{
@@ -1069,7 +1073,7 @@ var GraphQLEnumType
1069
1073
 
1070
1074
  _proto5.toJSON = function toJSON() {
1071
1075
  return this.toString();
1072
- } // $FlowFixMe Flow doesn't support computed properties yet
1076
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
1073
1077
  ;
1074
1078
 
1075
1079
  _createClass(GraphQLEnumType, [{
@@ -1126,8 +1130,8 @@ function defineEnumValues(typeName, valueMap) {
1126
1130
  * const GeoPoint = new GraphQLInputObjectType({
1127
1131
  * name: 'GeoPoint',
1128
1132
  * fields: {
1129
- * lat: { type: GraphQLNonNull(GraphQLFloat) },
1130
- * lon: { type: GraphQLNonNull(GraphQLFloat) },
1133
+ * lat: { type: new GraphQLNonNull(GraphQLFloat) },
1134
+ * lon: { type: new GraphQLNonNull(GraphQLFloat) },
1131
1135
  * alt: { type: GraphQLFloat, defaultValue: 0 },
1132
1136
  * }
1133
1137
  * });
@@ -1182,7 +1186,7 @@ var GraphQLInputObjectType = /*#__PURE__*/function () {
1182
1186
 
1183
1187
  _proto6.toJSON = function toJSON() {
1184
1188
  return this.toString();
1185
- } // $FlowFixMe Flow doesn't support computed properties yet
1189
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
1186
1190
  ;
1187
1191
 
1188
1192
  _createClass(GraphQLInputObjectType, [{
@@ -1209,6 +1213,7 @@ function defineInputFieldMap(config) {
1209
1213
  description: fieldConfig.description,
1210
1214
  type: fieldConfig.type,
1211
1215
  defaultValue: fieldConfig.defaultValue,
1216
+ deprecationReason: fieldConfig.deprecationReason,
1212
1217
  extensions: fieldConfig.extensions && (0, _toObjMap.default)(fieldConfig.extensions),
1213
1218
  astNode: fieldConfig.astNode
1214
1219
  };
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import objectEntries from '../polyfills/objectEntries';
4
3
  import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols';
5
4
 
@@ -341,8 +340,8 @@ export function assertAbstractType(type: mixed): GraphQLAbstractType {
341
340
  * const PersonType = new GraphQLObjectType({
342
341
  * name: 'Person',
343
342
  * fields: () => ({
344
- * parents: { type: GraphQLList(PersonType) },
345
- * children: { type: GraphQLList(PersonType) },
343
+ * parents: { type: new GraphQLList(PersonType) },
344
+ * children: { type: new GraphQLList(PersonType) },
346
345
  * })
347
346
  * })
348
347
  *
@@ -358,6 +357,7 @@ declare class GraphQLList<+T: GraphQLType> {
358
357
  */
359
358
 
360
359
  export function GraphQLList(ofType) {
360
+ // istanbul ignore else (to be removed in v16.0.0)
361
361
  if (this instanceof GraphQLList) {
362
362
  this.ofType = assertType(ofType);
363
363
  } else {
@@ -397,7 +397,7 @@ defineInspect(GraphQLList);
397
397
  * const RowType = new GraphQLObjectType({
398
398
  * name: 'Row',
399
399
  * fields: () => ({
400
- * id: { type: GraphQLNonNull(GraphQLString) },
400
+ * id: { type: new GraphQLNonNull(GraphQLString) },
401
401
  * })
402
402
  * })
403
403
  *
@@ -414,6 +414,7 @@ declare class GraphQLNonNull<+T: GraphQLNullableType> {
414
414
  */
415
415
 
416
416
  export function GraphQLNonNull(ofType) {
417
+ // istanbul ignore else (to be removed in v16.0.0)
417
418
  if (this instanceof GraphQLNonNull) {
418
419
  this.ofType = assertNullableType(ofType);
419
420
  } else {
@@ -540,7 +541,7 @@ export function getNamedType(type) {
540
541
  export type Thunk<+T> = (() => T) | T;
541
542
 
542
543
  function resolveThunk<+T>(thunk: Thunk<T>): T {
543
- // $FlowFixMe(>=0.90.0)
544
+ // $FlowFixMe[incompatible-use]
544
545
  return typeof thunk === 'function' ? thunk() : thunk;
545
546
  }
546
547
 
@@ -583,7 +584,7 @@ export class GraphQLScalarType {
583
584
  astNode: ?ScalarTypeDefinitionNode;
584
585
  extensionASTNodes: ?$ReadOnlyArray<ScalarTypeExtensionNode>;
585
586
 
586
- constructor(config: $ReadOnly<GraphQLScalarTypeConfig<mixed, mixed>>): void {
587
+ constructor(config: $ReadOnly<GraphQLScalarTypeConfig<mixed, mixed>>) {
587
588
  const parseValue = config.parseValue ?? identityFunc;
588
589
  this.name = config.name;
589
590
  this.description = config.description;
@@ -591,7 +592,8 @@ export class GraphQLScalarType {
591
592
  this.serialize = config.serialize ?? identityFunc;
592
593
  this.parseValue = parseValue;
593
594
  this.parseLiteral =
594
- config.parseLiteral ?? ((node) => parseValue(valueFromASTUntyped(node)));
595
+ config.parseLiteral ??
596
+ ((node, variables) => parseValue(valueFromASTUntyped(node, variables)));
595
597
  this.extensions = config.extensions && toObjMap(config.extensions);
596
598
  this.astNode = config.astNode;
597
599
  this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
@@ -619,14 +621,7 @@ export class GraphQLScalarType {
619
621
  }
620
622
  }
621
623
 
622
- toConfig(): {|
623
- ...GraphQLScalarTypeConfig<mixed, mixed>,
624
- serialize: GraphQLScalarSerializer<mixed>,
625
- parseValue: GraphQLScalarValueParser<mixed>,
626
- parseLiteral: GraphQLScalarLiteralParser<mixed>,
627
- extensions: ?ReadOnlyObjMap<mixed>,
628
- extensionASTNodes: $ReadOnlyArray<ScalarTypeExtensionNode>,
629
- |} {
624
+ toConfig(): GraphQLScalarTypeNormalizedConfig {
630
625
  return {
631
626
  name: this.name,
632
627
  description: this.description,
@@ -648,7 +643,7 @@ export class GraphQLScalarType {
648
643
  return this.toString();
649
644
  }
650
645
 
651
- // $FlowFixMe Flow doesn't support computed properties yet
646
+ // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
652
647
  get [SYMBOL_TO_STRING_TAG]() {
653
648
  return 'GraphQLScalarType';
654
649
  }
@@ -685,6 +680,15 @@ export type GraphQLScalarTypeConfig<TInternal, TExternal> = {|
685
680
  extensionASTNodes?: ?$ReadOnlyArray<ScalarTypeExtensionNode>,
686
681
  |};
687
682
 
683
+ type GraphQLScalarTypeNormalizedConfig = {|
684
+ ...GraphQLScalarTypeConfig<mixed, mixed>,
685
+ serialize: GraphQLScalarSerializer<mixed>,
686
+ parseValue: GraphQLScalarValueParser<mixed>,
687
+ parseLiteral: GraphQLScalarLiteralParser<mixed>,
688
+ extensions: ?ReadOnlyObjMap<mixed>,
689
+ extensionASTNodes: $ReadOnlyArray<ScalarTypeExtensionNode>,
690
+ |};
691
+
688
692
  /**
689
693
  * Object Type Definition
690
694
  *
@@ -733,7 +737,7 @@ export class GraphQLObjectType {
733
737
  _fields: Thunk<GraphQLFieldMap<any, any>>;
734
738
  _interfaces: Thunk<Array<GraphQLInterfaceType>>;
735
739
 
736
- constructor(config: $ReadOnly<GraphQLObjectTypeConfig<any, any>>): void {
740
+ constructor(config: $ReadOnly<GraphQLObjectTypeConfig<any, any>>) {
737
741
  this.name = config.name;
738
742
  this.description = config.description;
739
743
  this.isTypeOf = config.isTypeOf;
@@ -765,13 +769,7 @@ export class GraphQLObjectType {
765
769
  return this._interfaces;
766
770
  }
767
771
 
768
- toConfig(): {|
769
- ...GraphQLObjectTypeConfig<any, any>,
770
- interfaces: Array<GraphQLInterfaceType>,
771
- fields: GraphQLFieldConfigMap<any, any>,
772
- extensions: ?ReadOnlyObjMap<mixed>,
773
- extensionASTNodes: $ReadOnlyArray<ObjectTypeExtensionNode>,
774
- |} {
772
+ toConfig(): GraphQLObjectTypeNormalizedConfig {
775
773
  return {
776
774
  name: this.name,
777
775
  description: this.description,
@@ -792,7 +790,7 @@ export class GraphQLObjectType {
792
790
  return this.toString();
793
791
  }
794
792
 
795
- // $FlowFixMe Flow doesn't support computed properties yet
793
+ // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
796
794
  get [SYMBOL_TO_STRING_TAG]() {
797
795
  return 'GraphQLObjectType';
798
796
  }
@@ -853,6 +851,7 @@ function defineFieldMap<TSource, TContext>(
853
851
  description: argConfig.description,
854
852
  type: argConfig.type,
855
853
  defaultValue: argConfig.defaultValue,
854
+ deprecationReason: argConfig.deprecationReason,
856
855
  extensions: argConfig.extensions && toObjMap(argConfig.extensions),
857
856
  astNode: argConfig.astNode,
858
857
  }));
@@ -872,11 +871,13 @@ function defineFieldMap<TSource, TContext>(
872
871
  });
873
872
  }
874
873
 
875
- function isPlainObj(obj) {
874
+ function isPlainObj(obj: mixed): boolean {
876
875
  return isObjectLike(obj) && !Array.isArray(obj);
877
876
  }
878
877
 
879
- function fieldsToFieldsConfig(fields) {
878
+ function fieldsToFieldsConfig(
879
+ fields: GraphQLFieldMap<mixed, mixed>,
880
+ ): GraphQLFieldConfigMap<mixed, mixed> {
880
881
  return mapValue(fields, (field) => ({
881
882
  description: field.description,
882
883
  type: field.type,
@@ -902,6 +903,7 @@ export function argsToArgsConfig(
902
903
  description: arg.description,
903
904
  type: arg.type,
904
905
  defaultValue: arg.defaultValue,
906
+ deprecationReason: arg.deprecationReason,
905
907
  extensions: arg.extensions,
906
908
  astNode: arg.astNode,
907
909
  }),
@@ -919,6 +921,17 @@ export type GraphQLObjectTypeConfig<TSource, TContext> = {|
919
921
  extensionASTNodes?: ?$ReadOnlyArray<ObjectTypeExtensionNode>,
920
922
  |};
921
923
 
924
+ type GraphQLObjectTypeNormalizedConfig = {|
925
+ ...GraphQLObjectTypeConfig<any, any>,
926
+ interfaces: Array<GraphQLInterfaceType>,
927
+ fields: GraphQLFieldConfigMap<any, any>,
928
+ extensions: ?ReadOnlyObjMap<mixed>,
929
+ extensionASTNodes: $ReadOnlyArray<ObjectTypeExtensionNode>,
930
+ |};
931
+
932
+ /**
933
+ * Note: returning GraphQLObjectType is deprecated and will be removed in v16.0.0
934
+ */
922
935
  export type GraphQLTypeResolver<TSource, TContext> = (
923
936
  value: TSource,
924
937
  context: TContext,
@@ -978,6 +991,7 @@ export type GraphQLArgumentConfig = {|
978
991
  type: GraphQLInputType,
979
992
  defaultValue?: mixed,
980
993
  extensions?: ?ReadOnlyObjMapLike<mixed>,
994
+ deprecationReason?: ?string,
981
995
  astNode?: ?InputValueDefinitionNode,
982
996
  |};
983
997
 
@@ -996,10 +1010,12 @@ export type GraphQLField<
996
1010
  args: Array<GraphQLArgument>,
997
1011
  resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>,
998
1012
  subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>,
999
- isDeprecated: boolean,
1000
1013
  deprecationReason: ?string,
1001
1014
  extensions: ?ReadOnlyObjMap<mixed>,
1002
1015
  astNode: ?FieldDefinitionNode,
1016
+
1017
+ // @deprecated and will be removed in v16
1018
+ isDeprecated: boolean,
1003
1019
  |};
1004
1020
 
1005
1021
  export type GraphQLArgument = {|
@@ -1007,6 +1023,7 @@ export type GraphQLArgument = {|
1007
1023
  description: ?string,
1008
1024
  type: GraphQLInputType,
1009
1025
  defaultValue: mixed,
1026
+ deprecationReason: ?string,
1010
1027
  extensions: ?ReadOnlyObjMap<mixed>,
1011
1028
  astNode: ?InputValueDefinitionNode,
1012
1029
  |};
@@ -1048,7 +1065,7 @@ export class GraphQLInterfaceType {
1048
1065
  _fields: Thunk<GraphQLFieldMap<any, any>>;
1049
1066
  _interfaces: Thunk<Array<GraphQLInterfaceType>>;
1050
1067
 
1051
- constructor(config: $ReadOnly<GraphQLInterfaceTypeConfig<any, any>>): void {
1068
+ constructor(config: $ReadOnly<GraphQLInterfaceTypeConfig<any, any>>) {
1052
1069
  this.name = config.name;
1053
1070
  this.description = config.description;
1054
1071
  this.resolveType = config.resolveType;
@@ -1080,13 +1097,7 @@ export class GraphQLInterfaceType {
1080
1097
  return this._interfaces;
1081
1098
  }
1082
1099
 
1083
- toConfig(): {|
1084
- ...GraphQLInterfaceTypeConfig<any, any>,
1085
- interfaces: Array<GraphQLInterfaceType>,
1086
- fields: GraphQLFieldConfigMap<any, any>,
1087
- extensions: ?ReadOnlyObjMap<mixed>,
1088
- extensionASTNodes: $ReadOnlyArray<InterfaceTypeExtensionNode>,
1089
- |} {
1100
+ toConfig(): GraphQLInterfaceTypeNormalizedConfig {
1090
1101
  return {
1091
1102
  name: this.name,
1092
1103
  description: this.description,
@@ -1107,7 +1118,7 @@ export class GraphQLInterfaceType {
1107
1118
  return this.toString();
1108
1119
  }
1109
1120
 
1110
- // $FlowFixMe Flow doesn't support computed properties yet
1121
+ // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
1111
1122
  get [SYMBOL_TO_STRING_TAG]() {
1112
1123
  return 'GraphQLInterfaceType';
1113
1124
  }
@@ -1132,6 +1143,14 @@ export type GraphQLInterfaceTypeConfig<TSource, TContext> = {|
1132
1143
  extensionASTNodes?: ?$ReadOnlyArray<InterfaceTypeExtensionNode>,
1133
1144
  |};
1134
1145
 
1146
+ export type GraphQLInterfaceTypeNormalizedConfig = {|
1147
+ ...GraphQLInterfaceTypeConfig<any, any>,
1148
+ interfaces: Array<GraphQLInterfaceType>,
1149
+ fields: GraphQLFieldConfigMap<any, any>,
1150
+ extensions: ?ReadOnlyObjMap<mixed>,
1151
+ extensionASTNodes: $ReadOnlyArray<InterfaceTypeExtensionNode>,
1152
+ |};
1153
+
1135
1154
  /**
1136
1155
  * Union Type Definition
1137
1156
  *
@@ -1165,7 +1184,7 @@ export class GraphQLUnionType {
1165
1184
 
1166
1185
  _types: Thunk<Array<GraphQLObjectType>>;
1167
1186
 
1168
- constructor(config: $ReadOnly<GraphQLUnionTypeConfig<any, any>>): void {
1187
+ constructor(config: $ReadOnly<GraphQLUnionTypeConfig<any, any>>) {
1169
1188
  this.name = config.name;
1170
1189
  this.description = config.description;
1171
1190
  this.resolveType = config.resolveType;
@@ -1189,12 +1208,7 @@ export class GraphQLUnionType {
1189
1208
  return this._types;
1190
1209
  }
1191
1210
 
1192
- toConfig(): {|
1193
- ...GraphQLUnionTypeConfig<any, any>,
1194
- types: Array<GraphQLObjectType>,
1195
- extensions: ?ReadOnlyObjMap<mixed>,
1196
- extensionASTNodes: $ReadOnlyArray<UnionTypeExtensionNode>,
1197
- |} {
1211
+ toConfig(): GraphQLUnionTypeNormalizedConfig {
1198
1212
  return {
1199
1213
  name: this.name,
1200
1214
  description: this.description,
@@ -1214,7 +1228,7 @@ export class GraphQLUnionType {
1214
1228
  return this.toString();
1215
1229
  }
1216
1230
 
1217
- // $FlowFixMe Flow doesn't support computed properties yet
1231
+ // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
1218
1232
  get [SYMBOL_TO_STRING_TAG]() {
1219
1233
  return 'GraphQLUnionType';
1220
1234
  }
@@ -1249,6 +1263,13 @@ export type GraphQLUnionTypeConfig<TSource, TContext> = {|
1249
1263
  extensionASTNodes?: ?$ReadOnlyArray<UnionTypeExtensionNode>,
1250
1264
  |};
1251
1265
 
1266
+ type GraphQLUnionTypeNormalizedConfig = {|
1267
+ ...GraphQLUnionTypeConfig<any, any>,
1268
+ types: Array<GraphQLObjectType>,
1269
+ extensions: ?ReadOnlyObjMap<mixed>,
1270
+ extensionASTNodes: $ReadOnlyArray<UnionTypeExtensionNode>,
1271
+ |};
1272
+
1252
1273
  /**
1253
1274
  * Enum Type Definition
1254
1275
  *
@@ -1281,7 +1302,7 @@ export class GraphQLEnumType /* <T> */ {
1281
1302
  _valueLookup: Map<any /* T */, GraphQLEnumValue>;
1282
1303
  _nameLookup: ObjMap<GraphQLEnumValue>;
1283
1304
 
1284
- constructor(config: $ReadOnly<GraphQLEnumTypeConfig /* <T> */>): void {
1305
+ constructor(config: $ReadOnly<GraphQLEnumTypeConfig /* <T> */>) {
1285
1306
  this.name = config.name;
1286
1307
  this.description = config.description;
1287
1308
  this.extensions = config.extensions && toObjMap(config.extensions);
@@ -1357,11 +1378,7 @@ export class GraphQLEnumType /* <T> */ {
1357
1378
  return enumValue.value;
1358
1379
  }
1359
1380
 
1360
- toConfig(): {|
1361
- ...GraphQLEnumTypeConfig,
1362
- extensions: ?ReadOnlyObjMap<mixed>,
1363
- extensionASTNodes: $ReadOnlyArray<EnumTypeExtensionNode>,
1364
- |} {
1381
+ toConfig(): GraphQLEnumTypeNormalizedConfig {
1365
1382
  const values = keyValMap(
1366
1383
  this.getValues(),
1367
1384
  (value) => value.name,
@@ -1392,7 +1409,7 @@ export class GraphQLEnumType /* <T> */ {
1392
1409
  return this.toString();
1393
1410
  }
1394
1411
 
1395
- // $FlowFixMe Flow doesn't support computed properties yet
1412
+ // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
1396
1413
  get [SYMBOL_TO_STRING_TAG]() {
1397
1414
  return 'GraphQLEnumType';
1398
1415
  }
@@ -1450,6 +1467,12 @@ export type GraphQLEnumTypeConfig /* <T> */ = {|
1450
1467
  extensionASTNodes?: ?$ReadOnlyArray<EnumTypeExtensionNode>,
1451
1468
  |};
1452
1469
 
1470
+ type GraphQLEnumTypeNormalizedConfig = {|
1471
+ ...GraphQLEnumTypeConfig,
1472
+ extensions: ?ReadOnlyObjMap<mixed>,
1473
+ extensionASTNodes: $ReadOnlyArray<EnumTypeExtensionNode>,
1474
+ |};
1475
+
1453
1476
  export type GraphQLEnumValueConfigMap /* <T> */ = ObjMap<GraphQLEnumValueConfig /* <T> */>;
1454
1477
 
1455
1478
  export type GraphQLEnumValueConfig /* <T> */ = {|
@@ -1464,10 +1487,12 @@ export type GraphQLEnumValue /* <T> */ = {|
1464
1487
  name: string,
1465
1488
  description: ?string,
1466
1489
  value: any /* T */,
1467
- isDeprecated: boolean,
1468
1490
  deprecationReason: ?string,
1469
1491
  extensions: ?ReadOnlyObjMap<mixed>,
1470
1492
  astNode: ?EnumValueDefinitionNode,
1493
+
1494
+ // @deprecated and will be removed in v16
1495
+ isDeprecated: boolean,
1471
1496
  |};
1472
1497
 
1473
1498
  /**
@@ -1483,8 +1508,8 @@ export type GraphQLEnumValue /* <T> */ = {|
1483
1508
  * const GeoPoint = new GraphQLInputObjectType({
1484
1509
  * name: 'GeoPoint',
1485
1510
  * fields: {
1486
- * lat: { type: GraphQLNonNull(GraphQLFloat) },
1487
- * lon: { type: GraphQLNonNull(GraphQLFloat) },
1511
+ * lat: { type: new GraphQLNonNull(GraphQLFloat) },
1512
+ * lon: { type: new GraphQLNonNull(GraphQLFloat) },
1488
1513
  * alt: { type: GraphQLFloat, defaultValue: 0 },
1489
1514
  * }
1490
1515
  * });
@@ -1499,7 +1524,7 @@ export class GraphQLInputObjectType {
1499
1524
 
1500
1525
  _fields: Thunk<GraphQLInputFieldMap>;
1501
1526
 
1502
- constructor(config: $ReadOnly<GraphQLInputObjectTypeConfig>): void {
1527
+ constructor(config: $ReadOnly<GraphQLInputObjectTypeConfig>) {
1503
1528
  this.name = config.name;
1504
1529
  this.description = config.description;
1505
1530
  this.extensions = config.extensions && toObjMap(config.extensions);
@@ -1517,12 +1542,7 @@ export class GraphQLInputObjectType {
1517
1542
  return this._fields;
1518
1543
  }
1519
1544
 
1520
- toConfig(): {|
1521
- ...GraphQLInputObjectTypeConfig,
1522
- fields: GraphQLInputFieldConfigMap,
1523
- extensions: ?ReadOnlyObjMap<mixed>,
1524
- extensionASTNodes: $ReadOnlyArray<InputObjectTypeExtensionNode>,
1525
- |} {
1545
+ toConfig(): GraphQLInputObjectTypeNormalizedConfig {
1526
1546
  const fields = mapValue(this.getFields(), (field) => ({
1527
1547
  description: field.description,
1528
1548
  type: field.type,
@@ -1549,7 +1569,7 @@ export class GraphQLInputObjectType {
1549
1569
  return this.toString();
1550
1570
  }
1551
1571
 
1552
- // $FlowFixMe Flow doesn't support computed properties yet
1572
+ // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
1553
1573
  get [SYMBOL_TO_STRING_TAG]() {
1554
1574
  return 'GraphQLInputObjectType';
1555
1575
  }
@@ -1577,6 +1597,7 @@ function defineInputFieldMap(
1577
1597
  description: fieldConfig.description,
1578
1598
  type: fieldConfig.type,
1579
1599
  defaultValue: fieldConfig.defaultValue,
1600
+ deprecationReason: fieldConfig.deprecationReason,
1580
1601
  extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),
1581
1602
  astNode: fieldConfig.astNode,
1582
1603
  };
@@ -1592,10 +1613,18 @@ export type GraphQLInputObjectTypeConfig = {|
1592
1613
  extensionASTNodes?: ?$ReadOnlyArray<InputObjectTypeExtensionNode>,
1593
1614
  |};
1594
1615
 
1616
+ type GraphQLInputObjectTypeNormalizedConfig = {|
1617
+ ...GraphQLInputObjectTypeConfig,
1618
+ fields: GraphQLInputFieldConfigMap,
1619
+ extensions: ?ReadOnlyObjMap<mixed>,
1620
+ extensionASTNodes: $ReadOnlyArray<InputObjectTypeExtensionNode>,
1621
+ |};
1622
+
1595
1623
  export type GraphQLInputFieldConfig = {|
1596
1624
  description?: ?string,
1597
1625
  type: GraphQLInputType,
1598
1626
  defaultValue?: mixed,
1627
+ deprecationReason?: ?string,
1599
1628
  extensions?: ?ReadOnlyObjMapLike<mixed>,
1600
1629
  astNode?: ?InputValueDefinitionNode,
1601
1630
  |};
@@ -1607,6 +1636,7 @@ export type GraphQLInputField = {|
1607
1636
  description: ?string,
1608
1637
  type: GraphQLInputType,
1609
1638
  defaultValue: mixed,
1639
+ deprecationReason: ?string,
1610
1640
  extensions: ?ReadOnlyObjMap<mixed>,
1611
1641
  astNode: ?InputValueDefinitionNode,
1612
1642
  |};