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
@@ -1,7 +1,5 @@
1
1
  // @flow strict
2
-
3
2
  import find from '../polyfills/find';
4
- import flatMap from '../polyfills/flatMap';
5
3
  import objectValues from '../polyfills/objectValues';
6
4
 
7
5
  import inspect from '../jsutils/inspect';
@@ -12,6 +10,7 @@ import { locatedError } from '../error/locatedError';
12
10
  import type {
13
11
  ASTNode,
14
12
  NamedTypeNode,
13
+ DirectiveNode,
15
14
  OperationTypeNode,
16
15
  } from '../language/ast';
17
16
 
@@ -27,8 +26,8 @@ import type {
27
26
  GraphQLInputObjectType,
28
27
  } from './definition';
29
28
  import { assertSchema } from './schema';
30
- import { isDirective } from './directives';
31
29
  import { isIntrospectionType } from './introspection';
30
+ import { isDirective, GraphQLDeprecatedDirective } from './directives';
32
31
  import {
33
32
  isObjectType,
34
33
  isInterfaceType,
@@ -40,6 +39,7 @@ import {
40
39
  isInputType,
41
40
  isOutputType,
42
41
  isRequiredArgument,
42
+ isRequiredInputField,
43
43
  } from './definition';
44
44
 
45
45
  /**
@@ -110,7 +110,7 @@ class SchemaValidationContext {
110
110
  }
111
111
  }
112
112
 
113
- function validateRootTypes(context) {
113
+ function validateRootTypes(context: SchemaValidationContext): void {
114
114
  const schema = context.schema;
115
115
  const queryType = schema.getQueryType();
116
116
  if (!queryType) {
@@ -185,6 +185,17 @@ function validateDirectives(context: SchemaValidationContext): void {
185
185
  arg.astNode,
186
186
  );
187
187
  }
188
+
189
+ if (isRequiredArgument(arg) && arg.deprecationReason != null) {
190
+ context.reportError(
191
+ `Required argument @${directive.name}(${arg.name}:) cannot be deprecated.`,
192
+ [
193
+ getDeprecatedDirectiveNode(arg.astNode),
194
+ // istanbul ignore next (TODO need to write coverage tests)
195
+ arg.astNode?.type,
196
+ ],
197
+ );
198
+ }
188
199
  }
189
200
  }
190
201
  }
@@ -290,6 +301,17 @@ function validateFields(
290
301
  arg.astNode?.type,
291
302
  );
292
303
  }
304
+
305
+ if (isRequiredArgument(arg) && arg.deprecationReason != null) {
306
+ context.reportError(
307
+ `Required argument ${type.name}.${field.name}(${argName}:) cannot be deprecated.`,
308
+ [
309
+ getDeprecatedDirectiveNode(arg.astNode),
310
+ // istanbul ignore next (TODO need to write coverage tests)
311
+ arg.astNode?.type,
312
+ ],
313
+ );
314
+ }
293
315
  }
294
316
  }
295
317
  }
@@ -525,12 +547,23 @@ function validateInputFields(
525
547
  field.astNode?.type,
526
548
  );
527
549
  }
550
+
551
+ if (isRequiredInputField(field) && field.deprecationReason != null) {
552
+ context.reportError(
553
+ `Required input field ${inputObj.name}.${field.name} cannot be deprecated.`,
554
+ [
555
+ getDeprecatedDirectiveNode(field.astNode),
556
+ // istanbul ignore next (TODO need to write coverage tests)
557
+ field.astNode?.type,
558
+ ],
559
+ );
560
+ }
528
561
  }
529
562
  }
530
563
 
531
564
  function createInputObjectCircularRefsValidator(
532
565
  context: SchemaValidationContext,
533
- ) {
566
+ ): (GraphQLInputObjectType) => void {
534
567
  // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.
535
568
  // Tracks already visited types to maintain O(N) and to ensure that cycles
536
569
  // are not redundantly reported.
@@ -547,7 +580,7 @@ function createInputObjectCircularRefsValidator(
547
580
  // This does a straight-forward DFS to find cycles.
548
581
  // It does not terminate when a cycle was found but continues to explore
549
582
  // the graph to find all possible cycles.
550
- function detectCycleRecursive(inputObj: GraphQLInputObjectType) {
583
+ function detectCycleRecursive(inputObj: GraphQLInputObjectType): void {
551
584
  if (visitedTypes[inputObj.name]) {
552
585
  return;
553
586
  }
@@ -601,8 +634,12 @@ function getAllSubNodes<T: ASTNode, K: ASTNode, L: ASTNode>(
601
634
  object: SDLDefinedObject<T, K>,
602
635
  getter: (T | K) => ?(L | $ReadOnlyArray<L>),
603
636
  ): $ReadOnlyArray<L> {
604
- // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
605
- return flatMap(getAllNodes(object), (item) => getter(item) ?? []);
637
+ let subNodes = [];
638
+ for (const node of getAllNodes(object)) {
639
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
640
+ subNodes = subNodes.concat(getter(node) ?? []);
641
+ }
642
+ return subNodes;
606
643
  }
607
644
 
608
645
  function getAllImplementsInterfaceNodes(
@@ -622,3 +659,12 @@ function getUnionMemberTypeNodes(
622
659
  (typeNode) => typeNode.name.value === typeName,
623
660
  );
624
661
  }
662
+
663
+ function getDeprecatedDirectiveNode(
664
+ definitionNode: ?{ +directives?: $ReadOnlyArray<DirectiveNode>, ... },
665
+ ): ?DirectiveNode {
666
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
667
+ return definitionNode?.directives?.find(
668
+ (node) => node.name.value === GraphQLDeprecatedDirective.name,
669
+ );
670
+ }
package/type/validate.mjs CHANGED
@@ -1,5 +1,4 @@
1
1
  import find from "../polyfills/find.mjs";
2
- import flatMap from "../polyfills/flatMap.mjs";
3
2
  import objectValues from "../polyfills/objectValues.mjs";
4
3
  import inspect from "../jsutils/inspect.mjs";
5
4
  import { GraphQLError } from "../error/GraphQLError.mjs";
@@ -7,9 +6,9 @@ import { locatedError } from "../error/locatedError.mjs";
7
6
  import { isValidNameError } from "../utilities/assertValidName.mjs";
8
7
  import { isEqualType, isTypeSubTypeOf } from "../utilities/typeComparators.mjs";
9
8
  import { assertSchema } from "./schema.mjs";
10
- import { isDirective } from "./directives.mjs";
11
9
  import { isIntrospectionType } from "./introspection.mjs";
12
- import { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument } from "./definition.mjs";
10
+ import { isDirective, GraphQLDeprecatedDirective } from "./directives.mjs";
11
+ import { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument, isRequiredInputField } from "./definition.mjs";
13
12
  /**
14
13
  * Implements the "Type Validation" sub-sections of the specification's
15
14
  * "Type System" section.
@@ -144,6 +143,13 @@ function validateDirectives(context) {
144
143
  if (!isInputType(arg.type)) {
145
144
  context.reportError("The type of @".concat(directive.name, "(").concat(arg.name, ":) must be Input Type ") + "but got: ".concat(inspect(arg.type), "."), arg.astNode);
146
145
  }
146
+
147
+ if (isRequiredArgument(arg) && arg.deprecationReason != null) {
148
+ var _arg$astNode;
149
+
150
+ context.reportError("Required argument @".concat(directive.name, "(").concat(arg.name, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
151
+ (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type]);
152
+ }
147
153
  }
148
154
  }
149
155
  }
@@ -226,9 +232,16 @@ function validateFields(context, type) {
226
232
  validateName(context, arg); // Ensure the type is an input type
227
233
 
228
234
  if (!isInputType(arg.type)) {
229
- var _arg$astNode;
235
+ var _arg$astNode2;
230
236
 
231
- context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat(inspect(arg.type), "."), (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type);
237
+ context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat(inspect(arg.type), "."), (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 ? void 0 : _arg$astNode2.type);
238
+ }
239
+
240
+ if (isRequiredArgument(arg) && arg.deprecationReason != null) {
241
+ var _arg$astNode3;
242
+
243
+ context.reportError("Required argument ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
244
+ (_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 ? void 0 : _arg$astNode3.type]);
232
245
  }
233
246
  }
234
247
  }
@@ -409,6 +422,13 @@ function validateInputFields(context, inputObj) {
409
422
 
410
423
  context.reportError("The type of ".concat(inputObj.name, ".").concat(field.name, " must be Input Type ") + "but got: ".concat(inspect(field.type), "."), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);
411
424
  }
425
+
426
+ if (isRequiredInputField(field) && field.deprecationReason != null) {
427
+ var _field$astNode3;
428
+
429
+ context.reportError("Required input field ".concat(inputObj.name, ".").concat(field.name, " cannot be deprecated."), [getDeprecatedDirectiveNode(field.astNode), // istanbul ignore next (TODO need to write coverage tests)
430
+ (_field$astNode3 = field.astNode) === null || _field$astNode3 === void 0 ? void 0 : _field$astNode3.type]);
431
+ }
412
432
  }
413
433
  }
414
434
 
@@ -469,12 +489,17 @@ function getAllNodes(object) {
469
489
  }
470
490
 
471
491
  function getAllSubNodes(object, getter) {
472
- // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
473
- return flatMap(getAllNodes(object), function (item) {
492
+ var subNodes = [];
493
+
494
+ for (var _i32 = 0, _getAllNodes2 = getAllNodes(object); _i32 < _getAllNodes2.length; _i32++) {
474
495
  var _getter;
475
496
 
476
- return (_getter = getter(item)) !== null && _getter !== void 0 ? _getter : [];
477
- });
497
+ var node = _getAllNodes2[_i32];
498
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
499
+ subNodes = subNodes.concat((_getter = getter(node)) !== null && _getter !== void 0 ? _getter : []);
500
+ }
501
+
502
+ return subNodes;
478
503
  }
479
504
 
480
505
  function getAllImplementsInterfaceNodes(type, iface) {
@@ -492,3 +517,12 @@ function getUnionMemberTypeNodes(union, typeName) {
492
517
  return typeNode.name.value === typeName;
493
518
  });
494
519
  }
520
+
521
+ function getDeprecatedDirectiveNode(definitionNode) {
522
+ var _definitionNode$direc;
523
+
524
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
525
+ return definitionNode === null || definitionNode === void 0 ? void 0 : (_definitionNode$direc = definitionNode.directives) === null || _definitionNode$direc === void 0 ? void 0 : _definitionNode$direc.find(function (node) {
526
+ return node.name.value === GraphQLDeprecatedDirective.name;
527
+ });
528
+ }
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.visitWithTypeInfo = visitWithTypeInfo;
7
7
  exports.TypeInfo = void 0;
8
8
 
9
- var _find = _interopRequireDefault(require("../polyfills/find"));
9
+ var _find = _interopRequireDefault(require("../polyfills/find.js"));
10
10
 
11
- var _kinds = require("../language/kinds");
11
+ var _kinds = require("../language/kinds.js");
12
12
 
13
- var _ast = require("../language/ast");
13
+ var _ast = require("../language/ast.js");
14
14
 
15
- var _visitor = require("../language/visitor");
15
+ var _visitor = require("../language/visitor.js");
16
16
 
17
- var _definition = require("../type/definition");
17
+ var _definition = require("../type/definition.js");
18
18
 
19
- var _introspection = require("../type/introspection");
19
+ var _introspection = require("../type/introspection.js");
20
20
 
21
- var _typeFromAST = require("./typeFromAST");
21
+ var _typeFromAST = require("./typeFromAST.js");
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import find from '../polyfills/find';
4
3
 
5
4
  import type { Visitor } from '../language/visitor';
@@ -66,7 +65,7 @@ export class TypeInfo {
66
65
  // Initial type may be provided in rare cases to facilitate traversals
67
66
  // beginning somewhere other than documents.
68
67
  initialType?: GraphQLType,
69
- ): void {
68
+ ) {
70
69
  this._schema = schema;
71
70
  this._typeStack = [];
72
71
  this._parentTypeStack = [];
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.assertValidName = assertValidName;
7
7
  exports.isValidNameError = isValidNameError;
8
8
 
9
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
9
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
10
10
 
11
- var _GraphQLError = require("../error/GraphQLError");
11
+ var _GraphQLError = require("../error/GraphQLError.js");
12
12
 
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
14
 
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import devAssert from '../jsutils/devAssert';
4
3
 
5
4
  import { GraphQLError } from '../error/GraphQLError';
@@ -5,25 +5,23 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.astFromValue = astFromValue;
7
7
 
8
- var _isFinite = _interopRequireDefault(require("../polyfills/isFinite"));
8
+ var _isFinite = _interopRequireDefault(require("../polyfills/isFinite.js"));
9
9
 
10
- var _arrayFrom3 = _interopRequireDefault(require("../polyfills/arrayFrom"));
10
+ var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues.js"));
11
11
 
12
- var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues"));
12
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
13
13
 
14
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
14
+ var _invariant = _interopRequireDefault(require("../jsutils/invariant.js"));
15
15
 
16
- var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
16
+ var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
17
17
 
18
- var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
18
+ var _safeArrayFrom = _interopRequireDefault(require("../jsutils/safeArrayFrom.js"));
19
19
 
20
- var _isCollection = _interopRequireDefault(require("../jsutils/isCollection"));
20
+ var _kinds = require("../language/kinds.js");
21
21
 
22
- var _kinds = require("../language/kinds");
22
+ var _scalars = require("../type/scalars.js");
23
23
 
24
- var _scalars = require("../type/scalars");
25
-
26
- var _definition = require("../type/definition");
24
+ var _definition = require("../type/definition.js");
27
25
 
28
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
27
 
@@ -75,13 +73,13 @@ function astFromValue(value, type) {
75
73
 
76
74
  if ((0, _definition.isListType)(type)) {
77
75
  var itemType = type.ofType;
76
+ var items = (0, _safeArrayFrom.default)(value);
78
77
 
79
- if ((0, _isCollection.default)(value)) {
80
- var valuesNodes = []; // Since we transpile for-of in loose mode it doesn't support iterators
81
- // and it's required to first convert iteratable into array
78
+ if (items != null) {
79
+ var valuesNodes = [];
82
80
 
83
- for (var _i2 = 0, _arrayFrom2 = (0, _arrayFrom3.default)(value); _i2 < _arrayFrom2.length; _i2++) {
84
- var item = _arrayFrom2[_i2];
81
+ for (var _i2 = 0; _i2 < items.length; _i2++) {
82
+ var item = items[_i2];
85
83
  var itemNode = astFromValue(item, itemType);
86
84
 
87
85
  if (itemNode != null) {
@@ -1,13 +1,11 @@
1
1
  // @flow strict
2
-
3
2
  import isFinite from '../polyfills/isFinite';
4
- import arrayFrom from '../polyfills/arrayFrom';
5
3
  import objectValues from '../polyfills/objectValues';
6
4
 
7
5
  import inspect from '../jsutils/inspect';
8
6
  import invariant from '../jsutils/invariant';
9
7
  import isObjectLike from '../jsutils/isObjectLike';
10
- import isCollection from '../jsutils/isCollection';
8
+ import safeArrayFrom from '../jsutils/safeArrayFrom';
11
9
 
12
10
  import type { ValueNode } from '../language/ast';
13
11
  import { Kind } from '../language/kinds';
@@ -66,11 +64,11 @@ export function astFromValue(value: mixed, type: GraphQLInputType): ?ValueNode {
66
64
  // the value is not an array, convert the value using the list's item type.
67
65
  if (isListType(type)) {
68
66
  const itemType = type.ofType;
69
- if (isCollection(value)) {
67
+
68
+ const items = safeArrayFrom(value);
69
+ if (items != null) {
70
70
  const valuesNodes = [];
71
- // Since we transpile for-of in loose mode it doesn't support iterators
72
- // and it's required to first convert iteratable into array
73
- for (const item of arrayFrom(value)) {
71
+ for (const item of items) {
74
72
  const itemNode = astFromValue(item, itemType);
75
73
  if (itemNode != null) {
76
74
  valuesNodes.push(itemNode);
@@ -78,6 +76,7 @@ export function astFromValue(value: mixed, type: GraphQLInputType): ?ValueNode {
78
76
  }
79
77
  return { kind: Kind.LIST, values: valuesNodes };
80
78
  }
79
+
81
80
  return astFromValue(value, itemType);
82
81
  }
83
82
 
@@ -1,10 +1,9 @@
1
1
  import isFinite from "../polyfills/isFinite.mjs";
2
- import arrayFrom from "../polyfills/arrayFrom.mjs";
3
2
  import objectValues from "../polyfills/objectValues.mjs";
4
3
  import inspect from "../jsutils/inspect.mjs";
5
4
  import invariant from "../jsutils/invariant.mjs";
6
5
  import isObjectLike from "../jsutils/isObjectLike.mjs";
7
- import isCollection from "../jsutils/isCollection.mjs";
6
+ import safeArrayFrom from "../jsutils/safeArrayFrom.mjs";
8
7
  import { Kind } from "../language/kinds.mjs";
9
8
  import { GraphQLID } from "../type/scalars.mjs";
10
9
  import { isLeafType, isEnumType, isInputObjectType, isListType, isNonNullType } from "../type/definition.mjs";
@@ -57,13 +56,13 @@ export function astFromValue(value, type) {
57
56
 
58
57
  if (isListType(type)) {
59
58
  var itemType = type.ofType;
59
+ var items = safeArrayFrom(value);
60
60
 
61
- if (isCollection(value)) {
62
- var valuesNodes = []; // Since we transpile for-of in loose mode it doesn't support iterators
63
- // and it's required to first convert iteratable into array
61
+ if (items != null) {
62
+ var valuesNodes = [];
64
63
 
65
- for (var _i2 = 0, _arrayFrom2 = arrayFrom(value); _i2 < _arrayFrom2.length; _i2++) {
66
- var item = _arrayFrom2[_i2];
64
+ for (var _i2 = 0; _i2 < items.length; _i2++) {
65
+ var item = items[_i2];
67
66
  var itemNode = astFromValue(item, itemType);
68
67
 
69
68
  if (itemNode != null) {
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.buildASTSchema = buildASTSchema;
7
7
  exports.buildSchema = buildSchema;
8
8
 
9
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
9
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
10
10
 
11
- var _kinds = require("../language/kinds");
11
+ var _kinds = require("../language/kinds.js");
12
12
 
13
- var _parser = require("../language/parser");
13
+ var _parser = require("../language/parser.js");
14
14
 
15
- var _validate = require("../validation/validate");
15
+ var _validate = require("../validation/validate.js");
16
16
 
17
- var _schema = require("../type/schema");
17
+ var _schema = require("../type/schema.js");
18
18
 
19
- var _directives = require("../type/directives");
19
+ var _directives = require("../type/directives.js");
20
20
 
21
- var _extendSchema = require("./extendSchema");
21
+ var _extendSchema = require("./extendSchema.js");
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
@@ -80,28 +80,18 @@ function buildASTSchema(documentAST, options) {
80
80
 
81
81
  var directives = config.directives; // If specified directives were not explicitly declared, add them.
82
82
 
83
- if (!directives.some(function (directive) {
84
- return directive.name === 'skip';
85
- })) {
86
- directives.push(_directives.GraphQLSkipDirective);
87
- }
88
-
89
- if (!directives.some(function (directive) {
90
- return directive.name === 'include';
91
- })) {
92
- directives.push(_directives.GraphQLIncludeDirective);
93
- }
83
+ var _loop = function _loop(_i4) {
84
+ var stdDirective = _directives.specifiedDirectives[_i4];
94
85
 
95
- if (!directives.some(function (directive) {
96
- return directive.name === 'deprecated';
97
- })) {
98
- directives.push(_directives.GraphQLDeprecatedDirective);
99
- }
86
+ if (directives.every(function (directive) {
87
+ return directive.name !== stdDirective.name;
88
+ })) {
89
+ directives.push(stdDirective);
90
+ }
91
+ };
100
92
 
101
- if (!directives.some(function (directive) {
102
- return directive.name === 'specifiedBy';
103
- })) {
104
- directives.push(_directives.GraphQLSpecifiedByDirective);
93
+ for (var _i4 = 0; _i4 < _directives.specifiedDirectives.length; _i4++) {
94
+ _loop(_i4);
105
95
  }
106
96
 
107
97
  return new _schema.GraphQLSchema(config);
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import devAssert from '../jsutils/devAssert';
4
3
 
5
4
  import type { Source } from '../language/source';
@@ -12,12 +11,7 @@ import { assertValidSDL } from '../validation/validate';
12
11
 
13
12
  import type { GraphQLSchemaValidationOptions } from '../type/schema';
14
13
  import { GraphQLSchema } from '../type/schema';
15
- import {
16
- GraphQLSkipDirective,
17
- GraphQLIncludeDirective,
18
- GraphQLDeprecatedDirective,
19
- GraphQLSpecifiedByDirective,
20
- } from '../type/directives';
14
+ import { specifiedDirectives } from '../type/directives';
21
15
 
22
16
  import { extendSchemaImpl } from './extendSchema';
23
17
 
@@ -102,20 +96,10 @@ export function buildASTSchema(
102
96
 
103
97
  const { directives } = config;
104
98
  // If specified directives were not explicitly declared, add them.
105
- if (!directives.some((directive) => directive.name === 'skip')) {
106
- directives.push(GraphQLSkipDirective);
107
- }
108
-
109
- if (!directives.some((directive) => directive.name === 'include')) {
110
- directives.push(GraphQLIncludeDirective);
111
- }
112
-
113
- if (!directives.some((directive) => directive.name === 'deprecated')) {
114
- directives.push(GraphQLDeprecatedDirective);
115
- }
116
-
117
- if (!directives.some((directive) => directive.name === 'specifiedBy')) {
118
- directives.push(GraphQLSpecifiedByDirective);
99
+ for (const stdDirective of specifiedDirectives) {
100
+ if (directives.every((directive) => directive.name !== stdDirective.name)) {
101
+ directives.push(stdDirective);
102
+ }
119
103
  }
120
104
 
121
105
  return new GraphQLSchema(config);
@@ -3,7 +3,7 @@ import { Kind } from "../language/kinds.mjs";
3
3
  import { parse } from "../language/parser.mjs";
4
4
  import { assertValidSDL } from "../validation/validate.mjs";
5
5
  import { GraphQLSchema } from "../type/schema.mjs";
6
- import { GraphQLSkipDirective, GraphQLIncludeDirective, GraphQLDeprecatedDirective, GraphQLSpecifiedByDirective } from "../type/directives.mjs";
6
+ import { specifiedDirectives } from "../type/directives.mjs";
7
7
  import { extendSchemaImpl } from "./extendSchema.mjs";
8
8
 
9
9
  /**
@@ -64,28 +64,18 @@ export function buildASTSchema(documentAST, options) {
64
64
 
65
65
  var directives = config.directives; // If specified directives were not explicitly declared, add them.
66
66
 
67
- if (!directives.some(function (directive) {
68
- return directive.name === 'skip';
69
- })) {
70
- directives.push(GraphQLSkipDirective);
71
- }
72
-
73
- if (!directives.some(function (directive) {
74
- return directive.name === 'include';
75
- })) {
76
- directives.push(GraphQLIncludeDirective);
77
- }
67
+ var _loop = function _loop(_i4) {
68
+ var stdDirective = specifiedDirectives[_i4];
78
69
 
79
- if (!directives.some(function (directive) {
80
- return directive.name === 'deprecated';
81
- })) {
82
- directives.push(GraphQLDeprecatedDirective);
83
- }
70
+ if (directives.every(function (directive) {
71
+ return directive.name !== stdDirective.name;
72
+ })) {
73
+ directives.push(stdDirective);
74
+ }
75
+ };
84
76
 
85
- if (!directives.some(function (directive) {
86
- return directive.name === 'specifiedBy';
87
- })) {
88
- directives.push(GraphQLSpecifiedByDirective);
77
+ for (var _i4 = 0; _i4 < specifiedDirectives.length; _i4++) {
78
+ _loop(_i4);
89
79
  }
90
80
 
91
81
  return new GraphQLSchema(config);
@@ -5,29 +5,29 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.buildClientSchema = buildClientSchema;
7
7
 
8
- var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
8
+ var _objectValues = _interopRequireDefault(require("../polyfills/objectValues.js"));
9
9
 
10
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
10
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
11
11
 
12
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
12
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
13
13
 
14
- var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap"));
14
+ var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap.js"));
15
15
 
16
- var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
16
+ var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
17
17
 
18
- var _parser = require("../language/parser");
18
+ var _parser = require("../language/parser.js");
19
19
 
20
- var _schema = require("../type/schema");
20
+ var _schema = require("../type/schema.js");
21
21
 
22
- var _directives = require("../type/directives");
22
+ var _directives = require("../type/directives.js");
23
23
 
24
- var _scalars = require("../type/scalars");
24
+ var _scalars = require("../type/scalars.js");
25
25
 
26
- var _introspection = require("../type/introspection");
26
+ var _introspection = require("../type/introspection.js");
27
27
 
28
- var _definition = require("../type/definition");
28
+ var _definition = require("../type/definition.js");
29
29
 
30
- var _valueFromAST = require("./valueFromAST");
30
+ var _valueFromAST = require("./valueFromAST.js");
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
@@ -89,7 +89,7 @@ function buildClientSchema(introspection, options) {
89
89
  throw new Error('Decorated type deeper than introspection query.');
90
90
  }
91
91
 
92
- return (0, _definition.GraphQLList)(getType(itemRef));
92
+ return new _definition.GraphQLList(getType(itemRef));
93
93
  }
94
94
 
95
95
  if (typeRef.kind === _introspection.TypeKind.NON_NULL) {
@@ -100,7 +100,7 @@ function buildClientSchema(introspection, options) {
100
100
  }
101
101
 
102
102
  var nullableType = getType(nullableRef);
103
- return (0, _definition.GraphQLNonNull)((0, _definition.assertNullableType)(nullableType));
103
+ return new _definition.GraphQLNonNull((0, _definition.assertNullableType)(nullableType));
104
104
  }
105
105
 
106
106
  return getNamedType(typeRef);
@@ -307,7 +307,8 @@ function buildClientSchema(introspection, options) {
307
307
  return {
308
308
  description: inputValueIntrospection.description,
309
309
  type: type,
310
- defaultValue: defaultValue
310
+ defaultValue: defaultValue,
311
+ deprecationReason: inputValueIntrospection.deprecationReason
311
312
  };
312
313
  }
313
314