graphql 15.3.0 → 15.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +10 -0
  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 +0 -15
  17. package/execution/execute.js +104 -104
  18. package/execution/execute.js.flow +119 -133
  19. package/execution/execute.mjs +86 -82
  20. package/execution/index.js +3 -3
  21. package/execution/index.js.flow +0 -1
  22. package/execution/values.js +11 -11
  23. package/execution/values.js.flow +0 -1
  24. package/graphql.js +5 -5
  25. package/graphql.js.flow +0 -1
  26. package/index.d.ts +1 -0
  27. package/index.js +9 -9
  28. package/index.js.flow +0 -1
  29. package/jsutils/ObjMap.js.flow +0 -1
  30. package/jsutils/Path.js.flow +0 -1
  31. package/jsutils/PromiseOrValue.js.flow +0 -1
  32. package/jsutils/defineInspect.js +2 -2
  33. package/jsutils/defineInspect.js.flow +0 -1
  34. package/jsutils/devAssert.js.flow +0 -1
  35. package/jsutils/didYouMean.js.flow +0 -1
  36. package/jsutils/identityFunc.js.flow +0 -1
  37. package/jsutils/inspect.js +1 -2
  38. package/jsutils/inspect.js.flow +10 -8
  39. package/jsutils/inspect.mjs +1 -1
  40. package/jsutils/instanceOf.js +15 -9
  41. package/jsutils/instanceOf.js.flow +13 -7
  42. package/jsutils/instanceOf.mjs +13 -5
  43. package/jsutils/invariant.js.flow +0 -1
  44. package/jsutils/isAsyncIterable.js +13 -0
  45. package/jsutils/isAsyncIterable.js.flow +14 -0
  46. package/jsutils/isAsyncIterable.mjs +10 -0
  47. package/jsutils/isObjectLike.js.flow +0 -1
  48. package/jsutils/isPromise.js.flow +0 -1
  49. package/jsutils/keyMap.js.flow +0 -1
  50. package/jsutils/keyValMap.js.flow +0 -1
  51. package/jsutils/mapValue.js +1 -1
  52. package/jsutils/mapValue.js.flow +0 -1
  53. package/jsutils/memoize3.js +2 -5
  54. package/jsutils/memoize3.js.flow +2 -5
  55. package/jsutils/memoize3.mjs +2 -5
  56. package/jsutils/naturalCompare.js +69 -0
  57. package/jsutils/naturalCompare.js.flow +59 -0
  58. package/jsutils/naturalCompare.mjs +61 -0
  59. package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
  60. package/jsutils/printPathArray.js.flow +0 -1
  61. package/jsutils/promiseForObject.js.flow +0 -1
  62. package/jsutils/promiseReduce.js +1 -1
  63. package/jsutils/promiseReduce.js.flow +0 -1
  64. package/jsutils/safeArrayFrom.js +73 -0
  65. package/jsutils/safeArrayFrom.js.flow +59 -0
  66. package/jsutils/safeArrayFrom.mjs +66 -0
  67. package/jsutils/suggestionList.js +5 -1
  68. package/jsutils/suggestionList.js.flow +3 -2
  69. package/jsutils/suggestionList.mjs +3 -1
  70. package/jsutils/toObjMap.js +1 -1
  71. package/jsutils/toObjMap.js.flow +0 -1
  72. package/language/ast.js +1 -1
  73. package/language/ast.js.flow +0 -1
  74. package/language/blockString.d.ts +1 -1
  75. package/language/blockString.js +53 -32
  76. package/language/blockString.js.flow +51 -36
  77. package/language/blockString.mjs +54 -33
  78. package/language/directiveLocation.js.flow +0 -1
  79. package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
  80. package/language/experimentalOnlineParser/grammar.js +987 -0
  81. package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
  82. package/language/experimentalOnlineParser/grammar.mjs +980 -0
  83. package/language/experimentalOnlineParser/index.d.ts +6 -0
  84. package/language/experimentalOnlineParser/index.js +31 -0
  85. package/language/experimentalOnlineParser/index.js.flow +7 -0
  86. package/language/experimentalOnlineParser/index.mjs +1 -0
  87. package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
  88. package/language/experimentalOnlineParser/onlineParser.js +604 -0
  89. package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
  90. package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
  91. package/language/index.js +12 -12
  92. package/language/index.js.flow +0 -1
  93. package/language/kinds.js.flow +0 -1
  94. package/language/lexer.js +242 -183
  95. package/language/lexer.js.flow +188 -184
  96. package/language/lexer.mjs +238 -179
  97. package/language/location.js.flow +0 -1
  98. package/language/parser.js +73 -68
  99. package/language/parser.js.flow +62 -57
  100. package/language/parser.mjs +64 -60
  101. package/language/predicates.js +1 -1
  102. package/language/predicates.js.flow +0 -1
  103. package/language/printLocation.js +1 -1
  104. package/language/printLocation.js.flow +0 -1
  105. package/language/printer.js +20 -13
  106. package/language/printer.js.flow +26 -25
  107. package/language/printer.mjs +18 -11
  108. package/language/source.d.ts +7 -0
  109. package/language/source.js +20 -3
  110. package/language/source.js.flow +21 -3
  111. package/language/source.mjs +14 -1
  112. package/language/tokenKind.js.flow +0 -1
  113. package/language/visitor.js +2 -2
  114. package/language/visitor.js.flow +0 -1
  115. package/package.json +2 -3
  116. package/polyfills/arrayFrom.js +2 -2
  117. package/polyfills/arrayFrom.js.flow +1 -2
  118. package/polyfills/arrayFrom.mjs +1 -1
  119. package/polyfills/find.js +1 -1
  120. package/polyfills/find.js.flow +1 -2
  121. package/polyfills/find.mjs +1 -1
  122. package/polyfills/isFinite.js +1 -1
  123. package/polyfills/isFinite.js.flow +1 -2
  124. package/polyfills/isFinite.mjs +1 -1
  125. package/polyfills/isInteger.js +1 -1
  126. package/polyfills/isInteger.js.flow +1 -2
  127. package/polyfills/isInteger.mjs +1 -1
  128. package/polyfills/objectEntries.js +1 -1
  129. package/polyfills/objectEntries.js.flow +1 -2
  130. package/polyfills/objectEntries.mjs +1 -1
  131. package/polyfills/objectValues.js +1 -1
  132. package/polyfills/objectValues.js.flow +1 -2
  133. package/polyfills/objectValues.mjs +1 -1
  134. package/polyfills/symbols.js +3 -5
  135. package/polyfills/symbols.js.flow +9 -6
  136. package/polyfills/symbols.mjs +3 -5
  137. package/subscription/index.js +1 -1
  138. package/subscription/index.js.flow +0 -1
  139. package/subscription/mapAsyncIterator.js +2 -2
  140. package/subscription/mapAsyncIterator.js.flow +8 -9
  141. package/subscription/mapAsyncIterator.mjs +1 -1
  142. package/subscription/subscribe.js +61 -73
  143. package/subscription/subscribe.js.flow +71 -85
  144. package/subscription/subscribe.mjs +53 -65
  145. package/type/definition.d.ts +16 -6
  146. package/type/definition.js +37 -32
  147. package/type/definition.js.flow +93 -63
  148. package/type/definition.mjs +19 -14
  149. package/type/directives.js +17 -16
  150. package/type/directives.js.flow +20 -13
  151. package/type/directives.mjs +6 -5
  152. package/type/index.js +6 -6
  153. package/type/index.js.flow +0 -1
  154. package/type/introspection.js +86 -65
  155. package/type/introspection.js.flow +75 -43
  156. package/type/introspection.mjs +79 -58
  157. package/type/scalars.js +9 -9
  158. package/type/scalars.js.flow +1 -2
  159. package/type/scalars.mjs +1 -1
  160. package/type/schema.js +13 -13
  161. package/type/schema.js.flow +2 -3
  162. package/type/schema.mjs +1 -1
  163. package/type/validate.js +52 -19
  164. package/type/validate.js.flow +54 -8
  165. package/type/validate.mjs +43 -9
  166. package/utilities/TypeInfo.js +7 -7
  167. package/utilities/TypeInfo.js.flow +1 -2
  168. package/utilities/assertValidName.js +2 -2
  169. package/utilities/assertValidName.js.flow +0 -1
  170. package/utilities/astFromValue.js +14 -16
  171. package/utilities/astFromValue.js.flow +6 -7
  172. package/utilities/astFromValue.mjs +6 -7
  173. package/utilities/buildASTSchema.js +17 -27
  174. package/utilities/buildASTSchema.js.flow +5 -21
  175. package/utilities/buildASTSchema.mjs +11 -21
  176. package/utilities/buildClientSchema.js +16 -15
  177. package/utilities/buildClientSchema.js.flow +28 -12
  178. package/utilities/buildClientSchema.mjs +5 -4
  179. package/utilities/coerceInputValue.js +17 -18
  180. package/utilities/coerceInputValue.js.flow +12 -10
  181. package/utilities/coerceInputValue.mjs +7 -7
  182. package/utilities/concatAST.js +9 -8
  183. package/utilities/concatAST.js.flow +8 -8
  184. package/utilities/concatAST.mjs +9 -6
  185. package/utilities/extendSchema.js +26 -19
  186. package/utilities/extendSchema.js.flow +19 -7
  187. package/utilities/extendSchema.mjs +8 -1
  188. package/utilities/findBreakingChanges.js +15 -11
  189. package/utilities/findBreakingChanges.js.flow +6 -3
  190. package/utilities/findBreakingChanges.mjs +5 -2
  191. package/utilities/findDeprecatedUsages.js +2 -2
  192. package/utilities/findDeprecatedUsages.js.flow +0 -1
  193. package/utilities/getIntrospectionQuery.d.ts +6 -0
  194. package/utilities/getIntrospectionQuery.js +8 -2
  195. package/utilities/getIntrospectionQuery.js.flow +17 -5
  196. package/utilities/getIntrospectionQuery.mjs +8 -2
  197. package/utilities/getOperationAST.js +1 -1
  198. package/utilities/getOperationAST.js.flow +0 -1
  199. package/utilities/getOperationRootType.js +1 -1
  200. package/utilities/getOperationRootType.js.flow +0 -1
  201. package/utilities/index.d.ts +3 -0
  202. package/utilities/index.js +22 -22
  203. package/utilities/index.js.flow +0 -1
  204. package/utilities/introspectionFromSchema.js +7 -5
  205. package/utilities/introspectionFromSchema.js.flow +2 -1
  206. package/utilities/introspectionFromSchema.mjs +3 -1
  207. package/utilities/lexicographicSortSchema.js +13 -9
  208. package/utilities/lexicographicSortSchema.js.flow +21 -13
  209. package/utilities/lexicographicSortSchema.mjs +5 -2
  210. package/utilities/printSchema.js +15 -16
  211. package/utilities/printSchema.js.flow +23 -16
  212. package/utilities/printSchema.mjs +5 -6
  213. package/utilities/separateOperations.js +46 -42
  214. package/utilities/separateOperations.js.flow +46 -37
  215. package/utilities/separateOperations.mjs +44 -40
  216. package/utilities/stripIgnoredCharacters.js +6 -16
  217. package/utilities/stripIgnoredCharacters.js.flow +4 -13
  218. package/utilities/stripIgnoredCharacters.mjs +3 -10
  219. package/utilities/typeComparators.js +1 -1
  220. package/utilities/typeComparators.js.flow +0 -1
  221. package/utilities/typeFromAST.js +6 -6
  222. package/utilities/typeFromAST.js.flow +2 -3
  223. package/utilities/typeFromAST.mjs +2 -2
  224. package/utilities/typedQueryDocumentNode.d.ts +20 -0
  225. package/utilities/valueFromAST.js +6 -6
  226. package/utilities/valueFromAST.js.flow +4 -2
  227. package/utilities/valueFromASTUntyped.js +4 -4
  228. package/utilities/valueFromASTUntyped.js.flow +0 -1
  229. package/validation/ValidationContext.js +3 -3
  230. package/validation/ValidationContext.js.flow +3 -4
  231. package/validation/index.js +38 -38
  232. package/validation/index.js.flow +0 -1
  233. package/validation/rules/ExecutableDefinitions.js +1 -1
  234. package/validation/rules/ExecutableDefinitions.js.flow +0 -1
  235. package/validation/rules/ExecutableDefinitionsRule.js +3 -3
  236. package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
  237. package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
  238. package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
  239. package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
  240. package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
  241. package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
  242. package/validation/rules/KnownArgumentNamesRule.js +5 -5
  243. package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
  244. package/validation/rules/KnownDirectivesRule.js +6 -6
  245. package/validation/rules/KnownDirectivesRule.js.flow +4 -3
  246. package/validation/rules/KnownFragmentNamesRule.js +1 -1
  247. package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
  248. package/validation/rules/KnownTypeNamesRule.js +6 -6
  249. package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
  250. package/validation/rules/LoneAnonymousOperationRule.js +2 -2
  251. package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
  252. package/validation/rules/LoneSchemaDefinition.js +1 -1
  253. package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
  254. package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
  255. package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
  256. package/validation/rules/NoFragmentCyclesRule.js +1 -1
  257. package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
  258. package/validation/rules/NoUndefinedVariablesRule.js +1 -1
  259. package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
  260. package/validation/rules/NoUnusedFragmentsRule.js +1 -1
  261. package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
  262. package/validation/rules/NoUnusedVariablesRule.js +1 -1
  263. package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
  264. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
  265. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
  266. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
  267. package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
  268. package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
  269. package/validation/rules/PossibleTypeExtensions.js +1 -1
  270. package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
  271. package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
  272. package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
  273. package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
  274. package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
  275. package/validation/rules/ScalarLeafsRule.js +3 -3
  276. package/validation/rules/ScalarLeafsRule.js.flow +0 -1
  277. package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
  278. package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
  279. package/validation/rules/UniqueArgumentNamesRule.js +1 -1
  280. package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
  281. package/validation/rules/UniqueDirectiveNames.js +1 -1
  282. package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
  283. package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
  284. package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
  285. package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
  286. package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
  287. package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
  288. package/validation/rules/UniqueEnumValueNames.js +1 -1
  289. package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
  290. package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
  291. package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
  292. package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
  293. package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
  294. package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
  295. package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
  296. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
  297. package/validation/rules/UniqueFragmentNamesRule.js +1 -1
  298. package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
  299. package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
  300. package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
  301. package/validation/rules/UniqueOperationNamesRule.js +1 -1
  302. package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
  303. package/validation/rules/UniqueOperationTypes.js +1 -1
  304. package/validation/rules/UniqueOperationTypes.js.flow +0 -1
  305. package/validation/rules/UniqueOperationTypesRule.js +1 -1
  306. package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
  307. package/validation/rules/UniqueTypeNames.js +1 -1
  308. package/validation/rules/UniqueTypeNames.js.flow +0 -1
  309. package/validation/rules/UniqueTypeNamesRule.js +2 -2
  310. package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
  311. package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
  312. package/validation/rules/UniqueVariableNamesRule.js +1 -1
  313. package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
  314. package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
  315. package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
  316. package/validation/rules/VariablesAreInputTypesRule.js +4 -4
  317. package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
  318. package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
  319. package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
  320. package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
  321. package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
  322. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
  323. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
  324. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
  325. package/validation/specifiedRules.js +33 -33
  326. package/validation/specifiedRules.js.flow +0 -1
  327. package/validation/validate.js +7 -7
  328. package/validation/validate.js.flow +4 -5
  329. package/version.js +3 -3
  330. package/version.js.flow +3 -4
  331. package/version.mjs +3 -3
  332. package/jsutils/isCollection.js +0 -47
  333. package/jsutils/isCollection.js.flow +0 -39
  334. package/jsutils/isCollection.mjs +0 -40
  335. package/polyfills/flatMap.js +0 -30
  336. package/polyfills/flatMap.js.flow +0 -28
  337. package/polyfills/flatMap.mjs +0 -23
@@ -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
 
@@ -55,7 +54,7 @@ export class GraphQLDirective {
55
54
  extensions: ?ReadOnlyObjMap<mixed>;
56
55
  astNode: ?DirectiveDefinitionNode;
57
56
 
58
- constructor(config: $ReadOnly<GraphQLDirectiveConfig>): void {
57
+ constructor(config: $ReadOnly<GraphQLDirectiveConfig>) {
59
58
  this.name = config.name;
60
59
  this.description = config.description;
61
60
  this.locations = config.locations;
@@ -80,17 +79,13 @@ export class GraphQLDirective {
80
79
  description: argConfig.description,
81
80
  type: argConfig.type,
82
81
  defaultValue: argConfig.defaultValue,
82
+ deprecationReason: argConfig.deprecationReason,
83
83
  extensions: argConfig.extensions && toObjMap(argConfig.extensions),
84
84
  astNode: argConfig.astNode,
85
85
  }));
86
86
  }
87
87
 
88
- toConfig(): {|
89
- ...GraphQLDirectiveConfig,
90
- args: GraphQLFieldConfigArgumentMap,
91
- isRepeatable: boolean,
92
- extensions: ?ReadOnlyObjMap<mixed>,
93
- |} {
88
+ toConfig(): GraphQLDirectiveNormalizedConfig {
94
89
  return {
95
90
  name: this.name,
96
91
  description: this.description,
@@ -110,7 +105,7 @@ export class GraphQLDirective {
110
105
  return this.toString();
111
106
  }
112
107
 
113
- // $FlowFixMe Flow doesn't support computed properties yet
108
+ // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
114
109
  get [SYMBOL_TO_STRING_TAG]() {
115
110
  return 'GraphQLDirective';
116
111
  }
@@ -129,6 +124,13 @@ export type GraphQLDirectiveConfig = {|
129
124
  astNode?: ?DirectiveDefinitionNode,
130
125
  |};
131
126
 
127
+ type GraphQLDirectiveNormalizedConfig = {|
128
+ ...GraphQLDirectiveConfig,
129
+ args: GraphQLFieldConfigArgumentMap,
130
+ isRepeatable: boolean,
131
+ extensions: ?ReadOnlyObjMap<mixed>,
132
+ |};
133
+
132
134
  /**
133
135
  * Used to conditionally include fields or fragments.
134
136
  */
@@ -143,7 +145,7 @@ export const GraphQLIncludeDirective = new GraphQLDirective({
143
145
  ],
144
146
  args: {
145
147
  if: {
146
- type: GraphQLNonNull(GraphQLBoolean),
148
+ type: new GraphQLNonNull(GraphQLBoolean),
147
149
  description: 'Included when true.',
148
150
  },
149
151
  },
@@ -163,7 +165,7 @@ export const GraphQLSkipDirective = new GraphQLDirective({
163
165
  ],
164
166
  args: {
165
167
  if: {
166
- type: GraphQLNonNull(GraphQLBoolean),
168
+ type: new GraphQLNonNull(GraphQLBoolean),
167
169
  description: 'Skipped when true.',
168
170
  },
169
171
  },
@@ -180,7 +182,12 @@ export const DEFAULT_DEPRECATION_REASON = 'No longer supported';
180
182
  export const GraphQLDeprecatedDirective = new GraphQLDirective({
181
183
  name: 'deprecated',
182
184
  description: 'Marks an element of a GraphQL schema as no longer supported.',
183
- locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],
185
+ locations: [
186
+ DirectiveLocation.FIELD_DEFINITION,
187
+ DirectiveLocation.ARGUMENT_DEFINITION,
188
+ DirectiveLocation.INPUT_FIELD_DEFINITION,
189
+ DirectiveLocation.ENUM_VALUE,
190
+ ],
184
191
  args: {
185
192
  reason: {
186
193
  type: GraphQLString,
@@ -200,7 +207,7 @@ export const GraphQLSpecifiedByDirective = new GraphQLDirective({
200
207
  locations: [DirectiveLocation.SCALAR],
201
208
  args: {
202
209
  url: {
203
- type: GraphQLNonNull(GraphQLString),
210
+ type: new GraphQLNonNull(GraphQLString),
204
211
  description: 'The URL that specifies the behaviour of this scalar.',
205
212
  },
206
213
  },
@@ -55,6 +55,7 @@ export var GraphQLDirective = /*#__PURE__*/function () {
55
55
  description: argConfig.description,
56
56
  type: argConfig.type,
57
57
  defaultValue: argConfig.defaultValue,
58
+ deprecationReason: argConfig.deprecationReason,
58
59
  extensions: argConfig.extensions && toObjMap(argConfig.extensions),
59
60
  astNode: argConfig.astNode
60
61
  };
@@ -81,7 +82,7 @@ export var GraphQLDirective = /*#__PURE__*/function () {
81
82
 
82
83
  _proto.toJSON = function toJSON() {
83
84
  return this.toString();
84
- } // $FlowFixMe Flow doesn't support computed properties yet
85
+ } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
85
86
  ;
86
87
 
87
88
  _createClass(GraphQLDirective, [{
@@ -105,7 +106,7 @@ export var GraphQLIncludeDirective = new GraphQLDirective({
105
106
  locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],
106
107
  args: {
107
108
  if: {
108
- type: GraphQLNonNull(GraphQLBoolean),
109
+ type: new GraphQLNonNull(GraphQLBoolean),
109
110
  description: 'Included when true.'
110
111
  }
111
112
  }
@@ -120,7 +121,7 @@ export var GraphQLSkipDirective = new GraphQLDirective({
120
121
  locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],
121
122
  args: {
122
123
  if: {
123
- type: GraphQLNonNull(GraphQLBoolean),
124
+ type: new GraphQLNonNull(GraphQLBoolean),
124
125
  description: 'Skipped when true.'
125
126
  }
126
127
  }
@@ -137,7 +138,7 @@ export var DEFAULT_DEPRECATION_REASON = 'No longer supported';
137
138
  export var GraphQLDeprecatedDirective = new GraphQLDirective({
138
139
  name: 'deprecated',
139
140
  description: 'Marks an element of a GraphQL schema as no longer supported.',
140
- locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],
141
+ locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ARGUMENT_DEFINITION, DirectiveLocation.INPUT_FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],
141
142
  args: {
142
143
  reason: {
143
144
  type: GraphQLString,
@@ -156,7 +157,7 @@ export var GraphQLSpecifiedByDirective = new GraphQLDirective({
156
157
  locations: [DirectiveLocation.SCALAR],
157
158
  args: {
158
159
  url: {
159
- type: GraphQLNonNull(GraphQLString),
160
+ type: new GraphQLNonNull(GraphQLString),
160
161
  description: 'The URL that specifies the behaviour of this scalar.'
161
162
  }
162
163
  }
package/type/index.js CHANGED
@@ -496,14 +496,14 @@ Object.defineProperty(exports, "assertValidSchema", {
496
496
  }
497
497
  });
498
498
 
499
- var _schema = require("./schema");
499
+ var _schema = require("./schema.js");
500
500
 
501
- var _definition = require("./definition");
501
+ var _definition = require("./definition.js");
502
502
 
503
- var _directives = require("./directives");
503
+ var _directives = require("./directives.js");
504
504
 
505
- var _scalars = require("./scalars");
505
+ var _scalars = require("./scalars.js");
506
506
 
507
- var _introspection = require("./introspection");
507
+ var _introspection = require("./introspection.js");
508
508
 
509
- var _validate = require("./validate");
509
+ var _validate = require("./validate.js");
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  export type { Path as ResponsePath } from '../jsutils/Path';
4
3
 
5
4
  export {
@@ -6,21 +6,21 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.isIntrospectionType = isIntrospectionType;
7
7
  exports.introspectionTypes = exports.TypeNameMetaFieldDef = exports.TypeMetaFieldDef = exports.SchemaMetaFieldDef = exports.__TypeKind = exports.TypeKind = exports.__EnumValue = exports.__InputValue = exports.__Field = exports.__Type = exports.__DirectiveLocation = exports.__Directive = exports.__Schema = void 0;
8
8
 
9
- var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
9
+ var _objectValues = _interopRequireDefault(require("../polyfills/objectValues.js"));
10
10
 
11
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
11
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
12
12
 
13
- var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
13
+ var _invariant = _interopRequireDefault(require("../jsutils/invariant.js"));
14
14
 
15
- var _printer = require("../language/printer");
15
+ var _printer = require("../language/printer.js");
16
16
 
17
- var _directiveLocation = require("../language/directiveLocation");
17
+ var _directiveLocation = require("../language/directiveLocation.js");
18
18
 
19
- var _astFromValue = require("../utilities/astFromValue");
19
+ var _astFromValue = require("../utilities/astFromValue.js");
20
20
 
21
- var _scalars = require("./scalars");
21
+ var _scalars = require("./scalars.js");
22
22
 
23
- var _definition = require("./definition");
23
+ var _definition = require("./definition.js");
24
24
 
25
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
26
 
@@ -37,14 +37,14 @@ var __Schema = new _definition.GraphQLObjectType({
37
37
  },
38
38
  types: {
39
39
  description: 'A list of all types supported by this server.',
40
- type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Type))),
40
+ type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type))),
41
41
  resolve: function resolve(schema) {
42
42
  return (0, _objectValues.default)(schema.getTypeMap());
43
43
  }
44
44
  },
45
45
  queryType: {
46
46
  description: 'The type that query operations will be rooted at.',
47
- type: (0, _definition.GraphQLNonNull)(__Type),
47
+ type: new _definition.GraphQLNonNull(__Type),
48
48
  resolve: function resolve(schema) {
49
49
  return schema.getQueryType();
50
50
  }
@@ -65,7 +65,7 @@ var __Schema = new _definition.GraphQLObjectType({
65
65
  },
66
66
  directives: {
67
67
  description: 'A list of all directives supported by this server.',
68
- type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Directive))),
68
+ type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__Directive))),
69
69
  resolve: function resolve(schema) {
70
70
  return schema.getDirectives();
71
71
  }
@@ -82,7 +82,7 @@ var __Directive = new _definition.GraphQLObjectType({
82
82
  fields: function fields() {
83
83
  return {
84
84
  name: {
85
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
85
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLString),
86
86
  resolve: function resolve(directive) {
87
87
  return directive.name;
88
88
  }
@@ -94,19 +94,19 @@ var __Directive = new _definition.GraphQLObjectType({
94
94
  }
95
95
  },
96
96
  isRepeatable: {
97
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLBoolean),
97
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
98
98
  resolve: function resolve(directive) {
99
99
  return directive.isRepeatable;
100
100
  }
101
101
  },
102
102
  locations: {
103
- type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__DirectiveLocation))),
103
+ type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__DirectiveLocation))),
104
104
  resolve: function resolve(directive) {
105
105
  return directive.locations;
106
106
  }
107
107
  },
108
108
  args: {
109
- type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__InputValue))),
109
+ type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__InputValue))),
110
110
  resolve: function resolve(directive) {
111
111
  return directive.args;
112
112
  }
@@ -208,7 +208,7 @@ var __Type = new _definition.GraphQLObjectType({
208
208
  fields: function fields() {
209
209
  return {
210
210
  kind: {
211
- type: (0, _definition.GraphQLNonNull)(__TypeKind),
211
+ type: new _definition.GraphQLNonNull(__TypeKind),
212
212
  resolve: function resolve(type) {
213
213
  if ((0, _definition.isScalarType)(type)) {
214
214
  return TypeKind.SCALAR;
@@ -266,7 +266,7 @@ var __Type = new _definition.GraphQLObjectType({
266
266
  }
267
267
  },
268
268
  fields: {
269
- type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Field)),
269
+ type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Field)),
270
270
  args: {
271
271
  includeDeprecated: {
272
272
  type: _scalars.GraphQLBoolean,
@@ -278,21 +278,14 @@ var __Type = new _definition.GraphQLObjectType({
278
278
 
279
279
  if ((0, _definition.isObjectType)(type) || (0, _definition.isInterfaceType)(type)) {
280
280
  var fields = (0, _objectValues.default)(type.getFields());
281
-
282
- if (!includeDeprecated) {
283
- fields = fields.filter(function (field) {
284
- return !field.isDeprecated;
285
- });
286
- }
287
-
288
- return fields;
281
+ return includeDeprecated ? fields : fields.filter(function (field) {
282
+ return field.deprecationReason == null;
283
+ });
289
284
  }
290
-
291
- return null;
292
285
  }
293
286
  },
294
287
  interfaces: {
295
- type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Type)),
288
+ type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)),
296
289
  resolve: function resolve(type) {
297
290
  if ((0, _definition.isObjectType)(type) || (0, _definition.isInterfaceType)(type)) {
298
291
  return type.getInterfaces();
@@ -300,7 +293,7 @@ var __Type = new _definition.GraphQLObjectType({
300
293
  }
301
294
  },
302
295
  possibleTypes: {
303
- type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Type)),
296
+ type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)),
304
297
  resolve: function resolve(type, _args, _context, _ref2) {
305
298
  var schema = _ref2.schema;
306
299
 
@@ -310,7 +303,7 @@ var __Type = new _definition.GraphQLObjectType({
310
303
  }
311
304
  },
312
305
  enumValues: {
313
- type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__EnumValue)),
306
+ type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__EnumValue)),
314
307
  args: {
315
308
  includeDeprecated: {
316
309
  type: _scalars.GraphQLBoolean,
@@ -322,22 +315,28 @@ var __Type = new _definition.GraphQLObjectType({
322
315
 
323
316
  if ((0, _definition.isEnumType)(type)) {
324
317
  var values = type.getValues();
325
-
326
- if (!includeDeprecated) {
327
- values = values.filter(function (value) {
328
- return !value.isDeprecated;
329
- });
330
- }
331
-
332
- return values;
318
+ return includeDeprecated ? values : values.filter(function (field) {
319
+ return field.deprecationReason == null;
320
+ });
333
321
  }
334
322
  }
335
323
  },
336
324
  inputFields: {
337
- type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__InputValue)),
338
- resolve: function resolve(type) {
325
+ type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__InputValue)),
326
+ args: {
327
+ includeDeprecated: {
328
+ type: _scalars.GraphQLBoolean,
329
+ defaultValue: false
330
+ }
331
+ },
332
+ resolve: function resolve(type, _ref4) {
333
+ var includeDeprecated = _ref4.includeDeprecated;
334
+
339
335
  if ((0, _definition.isInputObjectType)(type)) {
340
- return (0, _objectValues.default)(type.getFields());
336
+ var values = (0, _objectValues.default)(type.getFields());
337
+ return includeDeprecated ? values : values.filter(function (field) {
338
+ return field.deprecationReason == null;
339
+ });
341
340
  }
342
341
  }
343
342
  },
@@ -359,7 +358,7 @@ var __Field = new _definition.GraphQLObjectType({
359
358
  fields: function fields() {
360
359
  return {
361
360
  name: {
362
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
361
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLString),
363
362
  resolve: function resolve(field) {
364
363
  return field.name;
365
364
  }
@@ -371,21 +370,30 @@ var __Field = new _definition.GraphQLObjectType({
371
370
  }
372
371
  },
373
372
  args: {
374
- type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__InputValue))),
375
- resolve: function resolve(field) {
376
- return field.args;
373
+ type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__InputValue))),
374
+ args: {
375
+ includeDeprecated: {
376
+ type: _scalars.GraphQLBoolean,
377
+ defaultValue: false
378
+ }
379
+ },
380
+ resolve: function resolve(field, _ref5) {
381
+ var includeDeprecated = _ref5.includeDeprecated;
382
+ return includeDeprecated ? field.args : field.args.filter(function (arg) {
383
+ return arg.deprecationReason == null;
384
+ });
377
385
  }
378
386
  },
379
387
  type: {
380
- type: (0, _definition.GraphQLNonNull)(__Type),
388
+ type: new _definition.GraphQLNonNull(__Type),
381
389
  resolve: function resolve(field) {
382
390
  return field.type;
383
391
  }
384
392
  },
385
393
  isDeprecated: {
386
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLBoolean),
394
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
387
395
  resolve: function resolve(field) {
388
- return field.isDeprecated;
396
+ return field.deprecationReason != null;
389
397
  }
390
398
  },
391
399
  deprecationReason: {
@@ -406,7 +414,7 @@ var __InputValue = new _definition.GraphQLObjectType({
406
414
  fields: function fields() {
407
415
  return {
408
416
  name: {
409
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
417
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLString),
410
418
  resolve: function resolve(inputValue) {
411
419
  return inputValue.name;
412
420
  }
@@ -418,7 +426,7 @@ var __InputValue = new _definition.GraphQLObjectType({
418
426
  }
419
427
  },
420
428
  type: {
421
- type: (0, _definition.GraphQLNonNull)(__Type),
429
+ type: new _definition.GraphQLNonNull(__Type),
422
430
  resolve: function resolve(inputValue) {
423
431
  return inputValue.type;
424
432
  }
@@ -432,6 +440,18 @@ var __InputValue = new _definition.GraphQLObjectType({
432
440
  var valueAST = (0, _astFromValue.astFromValue)(defaultValue, type);
433
441
  return valueAST ? (0, _printer.print)(valueAST) : null;
434
442
  }
443
+ },
444
+ isDeprecated: {
445
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
446
+ resolve: function resolve(field) {
447
+ return field.deprecationReason != null;
448
+ }
449
+ },
450
+ deprecationReason: {
451
+ type: _scalars.GraphQLString,
452
+ resolve: function resolve(obj) {
453
+ return obj.deprecationReason;
454
+ }
435
455
  }
436
456
  };
437
457
  }
@@ -445,7 +465,7 @@ var __EnumValue = new _definition.GraphQLObjectType({
445
465
  fields: function fields() {
446
466
  return {
447
467
  name: {
448
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
468
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLString),
449
469
  resolve: function resolve(enumValue) {
450
470
  return enumValue.name;
451
471
  }
@@ -457,9 +477,9 @@ var __EnumValue = new _definition.GraphQLObjectType({
457
477
  }
458
478
  },
459
479
  isDeprecated: {
460
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLBoolean),
480
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
461
481
  resolve: function resolve(enumValue) {
462
- return enumValue.isDeprecated;
482
+ return enumValue.deprecationReason != null;
463
483
  }
464
484
  },
465
485
  deprecationReason: {
@@ -532,11 +552,11 @@ var __TypeKind = new _definition.GraphQLEnumType({
532
552
  exports.__TypeKind = __TypeKind;
533
553
  var SchemaMetaFieldDef = {
534
554
  name: '__schema',
535
- type: (0, _definition.GraphQLNonNull)(__Schema),
555
+ type: new _definition.GraphQLNonNull(__Schema),
536
556
  description: 'Access the current type schema of this server.',
537
557
  args: [],
538
- resolve: function resolve(_source, _args, _context, _ref4) {
539
- var schema = _ref4.schema;
558
+ resolve: function resolve(_source, _args, _context, _ref6) {
559
+ var schema = _ref6.schema;
540
560
  return schema;
541
561
  },
542
562
  isDeprecated: false,
@@ -552,14 +572,15 @@ var TypeMetaFieldDef = {
552
572
  args: [{
553
573
  name: 'name',
554
574
  description: undefined,
555
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
575
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLString),
556
576
  defaultValue: undefined,
577
+ deprecationReason: undefined,
557
578
  extensions: undefined,
558
579
  astNode: undefined
559
580
  }],
560
- resolve: function resolve(_source, _ref5, _context, _ref6) {
561
- var name = _ref5.name;
562
- var schema = _ref6.schema;
581
+ resolve: function resolve(_source, _ref7, _context, _ref8) {
582
+ var name = _ref7.name;
583
+ var schema = _ref8.schema;
563
584
  return schema.getType(name);
564
585
  },
565
586
  isDeprecated: false,
@@ -570,11 +591,11 @@ var TypeMetaFieldDef = {
570
591
  exports.TypeMetaFieldDef = TypeMetaFieldDef;
571
592
  var TypeNameMetaFieldDef = {
572
593
  name: '__typename',
573
- type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
594
+ type: new _definition.GraphQLNonNull(_scalars.GraphQLString),
574
595
  description: 'The name of the current Object type at runtime.',
575
596
  args: [],
576
- resolve: function resolve(_source, _args, _context, _ref7) {
577
- var parentType = _ref7.parentType;
597
+ resolve: function resolve(_source, _args, _context, _ref9) {
598
+ var parentType = _ref9.parentType;
578
599
  return parentType.name;
579
600
  },
580
601
  isDeprecated: false,
@@ -587,8 +608,8 @@ var introspectionTypes = Object.freeze([__Schema, __Directive, __DirectiveLocati
587
608
  exports.introspectionTypes = introspectionTypes;
588
609
 
589
610
  function isIntrospectionType(type) {
590
- return introspectionTypes.some(function (_ref8) {
591
- var name = _ref8.name;
611
+ return introspectionTypes.some(function (_ref10) {
612
+ var name = _ref10.name;
592
613
  return type.name === name;
593
614
  });
594
615
  }