graphql 16.14.0 → 16.14.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 (371) hide show
  1. package/error/GraphQLError.d.ts +151 -15
  2. package/error/GraphQLError.js +143 -12
  3. package/error/GraphQLError.mjs +143 -12
  4. package/error/index.d.ts +6 -0
  5. package/error/index.mjs +6 -0
  6. package/error/locatedError.d.ts +20 -0
  7. package/error/locatedError.js +21 -0
  8. package/error/locatedError.mjs +20 -0
  9. package/error/syntaxError.d.ts +15 -0
  10. package/error/syntaxError.js +16 -0
  11. package/error/syntaxError.mjs +15 -0
  12. package/execution/collectFields.js +6 -0
  13. package/execution/collectFields.mjs +6 -0
  14. package/execution/execute.d.ts +211 -12
  15. package/execution/execute.js +214 -23
  16. package/execution/execute.mjs +213 -23
  17. package/execution/index.d.ts +6 -0
  18. package/execution/index.mjs +6 -0
  19. package/execution/mapAsyncIterator.d.ts +2 -0
  20. package/execution/mapAsyncIterator.js +2 -0
  21. package/execution/mapAsyncIterator.mjs +2 -0
  22. package/execution/subscribe.d.ts +195 -5
  23. package/execution/subscribe.js +154 -11
  24. package/execution/subscribe.mjs +153 -11
  25. package/execution/values.d.ts +167 -10
  26. package/execution/values.js +149 -5
  27. package/execution/values.mjs +148 -5
  28. package/graphql.d.ts +163 -41
  29. package/graphql.js +126 -4
  30. package/graphql.mjs +131 -41
  31. package/index.d.ts +11 -17
  32. package/index.mjs +13 -19
  33. package/jsutils/Maybe.d.ts +5 -1
  34. package/jsutils/ObjMap.d.ts +4 -0
  35. package/jsutils/Path.d.ts +30 -0
  36. package/jsutils/Path.js +29 -0
  37. package/jsutils/Path.mjs +29 -0
  38. package/jsutils/PromiseOrValue.d.ts +1 -0
  39. package/jsutils/devAssert.d.ts +1 -0
  40. package/jsutils/devAssert.js +1 -0
  41. package/jsutils/devAssert.mjs +1 -0
  42. package/jsutils/didYouMean.d.ts +4 -1
  43. package/jsutils/didYouMean.js +4 -1
  44. package/jsutils/didYouMean.mjs +4 -1
  45. package/jsutils/groupBy.d.ts +2 -0
  46. package/jsutils/groupBy.js +2 -0
  47. package/jsutils/groupBy.mjs +2 -0
  48. package/jsutils/identityFunc.d.ts +2 -0
  49. package/jsutils/identityFunc.js +2 -0
  50. package/jsutils/identityFunc.mjs +2 -0
  51. package/jsutils/inspect.d.ts +2 -0
  52. package/jsutils/inspect.js +2 -0
  53. package/jsutils/inspect.mjs +2 -0
  54. package/jsutils/instanceOf.d.ts +2 -0
  55. package/jsutils/instanceOf.js +2 -0
  56. package/jsutils/instanceOf.mjs +2 -0
  57. package/jsutils/invariant.d.ts +1 -0
  58. package/jsutils/invariant.js +1 -0
  59. package/jsutils/invariant.mjs +1 -0
  60. package/jsutils/isAsyncIterable.d.ts +2 -0
  61. package/jsutils/isAsyncIterable.js +2 -0
  62. package/jsutils/isAsyncIterable.mjs +2 -0
  63. package/jsutils/isIterableObject.d.ts +6 -5
  64. package/jsutils/isIterableObject.js +6 -5
  65. package/jsutils/isIterableObject.mjs +6 -5
  66. package/jsutils/isObjectLike.d.ts +2 -0
  67. package/jsutils/isObjectLike.js +2 -0
  68. package/jsutils/isObjectLike.mjs +2 -0
  69. package/jsutils/isPromise.d.ts +2 -0
  70. package/jsutils/isPromise.js +2 -0
  71. package/jsutils/isPromise.mjs +2 -0
  72. package/jsutils/keyMap.d.ts +7 -14
  73. package/jsutils/keyMap.js +7 -14
  74. package/jsutils/keyMap.mjs +7 -14
  75. package/jsutils/keyValMap.d.ts +9 -6
  76. package/jsutils/keyValMap.js +9 -6
  77. package/jsutils/keyValMap.mjs +9 -6
  78. package/jsutils/mapValue.d.ts +2 -0
  79. package/jsutils/mapValue.js +2 -0
  80. package/jsutils/mapValue.mjs +2 -0
  81. package/jsutils/memoize3.d.ts +2 -0
  82. package/jsutils/memoize3.js +2 -0
  83. package/jsutils/memoize3.mjs +2 -0
  84. package/jsutils/naturalCompare.d.ts +2 -0
  85. package/jsutils/naturalCompare.js +2 -0
  86. package/jsutils/naturalCompare.mjs +2 -0
  87. package/jsutils/printPathArray.d.ts +2 -0
  88. package/jsutils/printPathArray.js +2 -0
  89. package/jsutils/printPathArray.mjs +2 -0
  90. package/jsutils/promiseForObject.d.ts +2 -0
  91. package/jsutils/promiseForObject.js +2 -0
  92. package/jsutils/promiseForObject.mjs +2 -0
  93. package/jsutils/promiseReduce.d.ts +2 -0
  94. package/jsutils/promiseReduce.js +2 -0
  95. package/jsutils/promiseReduce.mjs +2 -0
  96. package/jsutils/suggestionList.d.ts +2 -0
  97. package/jsutils/suggestionList.js +4 -0
  98. package/jsutils/suggestionList.mjs +4 -0
  99. package/jsutils/toError.d.ts +2 -0
  100. package/jsutils/toError.js +2 -0
  101. package/jsutils/toError.mjs +2 -0
  102. package/jsutils/toObjMap.d.ts +1 -0
  103. package/jsutils/toObjMap.js +1 -0
  104. package/jsutils/toObjMap.mjs +1 -0
  105. package/language/ast.d.ts +412 -54
  106. package/language/ast.js +95 -38
  107. package/language/ast.mjs +95 -38
  108. package/language/blockString.d.ts +1 -3
  109. package/language/blockString.js +1 -3
  110. package/language/blockString.mjs +1 -3
  111. package/language/directiveLocation.d.ts +28 -8
  112. package/language/directiveLocation.js +9 -6
  113. package/language/directiveLocation.mjs +9 -6
  114. package/language/index.d.ts +6 -0
  115. package/language/index.mjs +6 -0
  116. package/language/kinds.d.ts +57 -18
  117. package/language/kinds.js +9 -6
  118. package/language/kinds.mjs +9 -6
  119. package/language/lexer.d.ts +47 -14
  120. package/language/lexer.js +71 -13
  121. package/language/lexer.mjs +70 -13
  122. package/language/location.d.ts +16 -3
  123. package/language/location.js +14 -3
  124. package/language/location.mjs +14 -3
  125. package/language/parser.d.ts +236 -13
  126. package/language/parser.js +224 -0
  127. package/language/parser.mjs +224 -3
  128. package/language/predicates.d.ts +169 -0
  129. package/language/predicates.js +170 -0
  130. package/language/predicates.mjs +180 -0
  131. package/language/printLocation.d.ts +28 -0
  132. package/language/printLocation.js +29 -0
  133. package/language/printLocation.mjs +28 -0
  134. package/language/printString.d.ts +2 -0
  135. package/language/printString.js +5 -1
  136. package/language/printString.mjs +5 -1
  137. package/language/printer.d.ts +12 -0
  138. package/language/printer.js +19 -0
  139. package/language/printer.mjs +18 -0
  140. package/language/schemaCoordinateLexer.d.ts +8 -6
  141. package/language/schemaCoordinateLexer.js +10 -6
  142. package/language/schemaCoordinateLexer.mjs +10 -6
  143. package/language/source.d.ts +28 -0
  144. package/language/source.js +32 -0
  145. package/language/source.mjs +31 -0
  146. package/language/tokenKind.d.ts +30 -3
  147. package/language/tokenKind.js +8 -3
  148. package/language/tokenKind.mjs +8 -3
  149. package/language/visitor.d.ts +200 -72
  150. package/language/visitor.js +122 -50
  151. package/language/visitor.mjs +122 -54
  152. package/package.json +1 -1
  153. package/subscription/index.d.ts +9 -3
  154. package/subscription/index.mjs +9 -3
  155. package/type/assertName.d.ts +18 -1
  156. package/type/assertName.js +19 -1
  157. package/type/assertName.mjs +18 -1
  158. package/type/definition.d.ts +2540 -79
  159. package/type/definition.js +2214 -61
  160. package/type/definition.mjs +2241 -60
  161. package/type/directives.d.ts +193 -18
  162. package/type/directives.js +196 -19
  163. package/type/directives.mjs +196 -19
  164. package/type/index.d.ts +6 -0
  165. package/type/index.mjs +6 -0
  166. package/type/introspection.d.ts +36 -0
  167. package/type/introspection.js +33 -0
  168. package/type/introspection.mjs +41 -0
  169. package/type/scalars.d.ts +29 -2
  170. package/type/scalars.js +37 -2
  171. package/type/scalars.mjs +36 -2
  172. package/type/schema.d.ts +490 -28
  173. package/type/schema.js +484 -26
  174. package/type/schema.mjs +484 -26
  175. package/type/validate.d.ts +31 -0
  176. package/type/validate.js +32 -0
  177. package/type/validate.mjs +31 -0
  178. package/utilities/TypeInfo.d.ts +441 -1
  179. package/utilities/TypeInfo.js +444 -1
  180. package/utilities/TypeInfo.mjs +443 -1
  181. package/utilities/assertValidName.d.ts +27 -2
  182. package/utilities/assertValidName.js +28 -2
  183. package/utilities/assertValidName.mjs +27 -2
  184. package/utilities/astFromValue.d.ts +33 -3
  185. package/utilities/astFromValue.js +36 -3
  186. package/utilities/astFromValue.mjs +35 -3
  187. package/utilities/buildASTSchema.d.ts +65 -6
  188. package/utilities/buildASTSchema.js +65 -6
  189. package/utilities/buildASTSchema.mjs +65 -6
  190. package/utilities/buildClientSchema.d.ts +15 -0
  191. package/utilities/buildClientSchema.js +16 -0
  192. package/utilities/buildClientSchema.mjs +15 -0
  193. package/utilities/coerceInputValue.d.ts +46 -0
  194. package/utilities/coerceInputValue.js +47 -0
  195. package/utilities/coerceInputValue.mjs +46 -0
  196. package/utilities/concatAST.d.ts +12 -0
  197. package/utilities/concatAST.js +13 -0
  198. package/utilities/concatAST.mjs +12 -0
  199. package/utilities/extendSchema.d.ts +56 -3
  200. package/utilities/extendSchema.js +63 -3
  201. package/utilities/extendSchema.mjs +62 -3
  202. package/utilities/findBreakingChanges.d.ts +95 -0
  203. package/utilities/findBreakingChanges.js +68 -0
  204. package/utilities/findBreakingChanges.mjs +70 -0
  205. package/utilities/getIntrospectionQuery.d.ts +132 -0
  206. package/utilities/getIntrospectionQuery.js +41 -0
  207. package/utilities/getIntrospectionQuery.mjs +41 -0
  208. package/utilities/getOperationAST.d.ts +15 -0
  209. package/utilities/getOperationAST.js +16 -0
  210. package/utilities/getOperationAST.mjs +15 -0
  211. package/utilities/getOperationRootType.d.ts +18 -1
  212. package/utilities/getOperationRootType.js +19 -1
  213. package/utilities/getOperationRootType.mjs +18 -1
  214. package/utilities/index.d.ts +7 -0
  215. package/utilities/index.mjs +7 -0
  216. package/utilities/introspectionFromSchema.d.ts +54 -0
  217. package/utilities/introspectionFromSchema.js +55 -0
  218. package/utilities/introspectionFromSchema.mjs +54 -0
  219. package/utilities/lexicographicSortSchema.d.ts +35 -0
  220. package/utilities/lexicographicSortSchema.js +36 -0
  221. package/utilities/lexicographicSortSchema.mjs +35 -0
  222. package/utilities/printSchema.d.ts +63 -0
  223. package/utilities/printSchema.js +66 -0
  224. package/utilities/printSchema.mjs +67 -0
  225. package/utilities/resolveSchemaCoordinate.d.ts +62 -0
  226. package/utilities/resolveSchemaCoordinate.js +64 -0
  227. package/utilities/resolveSchemaCoordinate.mjs +63 -0
  228. package/utilities/separateOperations.d.ts +30 -0
  229. package/utilities/separateOperations.js +31 -0
  230. package/utilities/separateOperations.mjs +30 -0
  231. package/utilities/stripIgnoredCharacters.d.ts +13 -6
  232. package/utilities/stripIgnoredCharacters.js +16 -6
  233. package/utilities/stripIgnoredCharacters.mjs +15 -6
  234. package/utilities/typeComparators.d.ts +84 -0
  235. package/utilities/typeComparators.js +85 -0
  236. package/utilities/typeComparators.mjs +84 -0
  237. package/utilities/typeFromAST.d.ts +86 -0
  238. package/utilities/typeFromAST.js +3 -0
  239. package/utilities/typeFromAST.mjs +3 -0
  240. package/utilities/typedQueryDocumentNode.d.ts +4 -0
  241. package/utilities/valueFromAST.d.ts +38 -0
  242. package/utilities/valueFromAST.js +39 -0
  243. package/utilities/valueFromAST.mjs +38 -0
  244. package/utilities/valueFromASTUntyped.d.ts +15 -2
  245. package/utilities/valueFromASTUntyped.js +16 -2
  246. package/utilities/valueFromASTUntyped.mjs +15 -2
  247. package/validation/ValidationContext.d.ts +399 -0
  248. package/validation/ValidationContext.js +400 -0
  249. package/validation/ValidationContext.mjs +401 -0
  250. package/validation/index.d.ts +6 -0
  251. package/validation/index.mjs +6 -0
  252. package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
  253. package/validation/rules/ExecutableDefinitionsRule.js +29 -0
  254. package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
  255. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
  256. package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
  257. package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
  258. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
  259. package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
  260. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
  261. package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
  262. package/validation/rules/KnownArgumentNamesRule.js +30 -3
  263. package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
  264. package/validation/rules/KnownDirectivesRule.d.ts +28 -0
  265. package/validation/rules/KnownDirectivesRule.js +29 -0
  266. package/validation/rules/KnownDirectivesRule.mjs +28 -0
  267. package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
  268. package/validation/rules/KnownFragmentNamesRule.js +29 -0
  269. package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
  270. package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
  271. package/validation/rules/KnownTypeNamesRule.js +29 -0
  272. package/validation/rules/KnownTypeNamesRule.mjs +28 -0
  273. package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
  274. package/validation/rules/LoneAnonymousOperationRule.js +29 -0
  275. package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
  276. package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
  277. package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
  278. package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
  279. package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
  280. package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
  281. package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
  282. package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
  283. package/validation/rules/NoFragmentCyclesRule.js +29 -0
  284. package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
  285. package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
  286. package/validation/rules/NoUndefinedVariablesRule.js +29 -0
  287. package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
  288. package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
  289. package/validation/rules/NoUnusedFragmentsRule.js +29 -0
  290. package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
  291. package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
  292. package/validation/rules/NoUnusedVariablesRule.js +30 -0
  293. package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
  294. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
  295. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
  296. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
  297. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
  298. package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
  299. package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
  300. package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
  301. package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
  302. package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
  303. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
  304. package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
  305. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
  306. package/validation/rules/ScalarLeafsRule.d.ts +28 -0
  307. package/validation/rules/ScalarLeafsRule.js +29 -0
  308. package/validation/rules/ScalarLeafsRule.mjs +28 -0
  309. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
  310. package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
  311. package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
  312. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
  313. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
  314. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
  315. package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
  316. package/validation/rules/UniqueArgumentNamesRule.js +29 -0
  317. package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
  318. package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
  319. package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
  320. package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
  321. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
  322. package/validation/rules/UniqueDirectivesPerLocationRule.js +29 -0
  323. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +28 -0
  324. package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
  325. package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
  326. package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
  327. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
  328. package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
  329. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
  330. package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
  331. package/validation/rules/UniqueFragmentNamesRule.js +29 -0
  332. package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
  333. package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
  334. package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
  335. package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
  336. package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
  337. package/validation/rules/UniqueOperationNamesRule.js +29 -0
  338. package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
  339. package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
  340. package/validation/rules/UniqueOperationTypesRule.js +22 -0
  341. package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
  342. package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
  343. package/validation/rules/UniqueTypeNamesRule.js +22 -0
  344. package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
  345. package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
  346. package/validation/rules/UniqueVariableNamesRule.js +29 -0
  347. package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
  348. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
  349. package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
  350. package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
  351. package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
  352. package/validation/rules/VariablesAreInputTypesRule.js +33 -0
  353. package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
  354. package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
  355. package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
  356. package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
  357. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
  358. package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
  359. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
  360. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
  361. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
  362. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
  363. package/validation/specifiedRules.d.ts +2 -3
  364. package/validation/specifiedRules.js +2 -3
  365. package/validation/specifiedRules.mjs +2 -3
  366. package/validation/validate.d.ts +70 -9
  367. package/validation/validate.js +63 -7
  368. package/validation/validate.mjs +63 -7
  369. package/version.d.ts +3 -6
  370. package/version.js +6 -8
  371. package/version.mjs +5 -8
@@ -1,10 +1,11 @@
1
+ /** @category Values */
1
2
  import { keyValMap } from '../jsutils/keyValMap.mjs';
2
3
  import { Kind } from '../language/kinds.mjs';
3
4
  /**
4
5
  * Produces a JavaScript value given a GraphQL Value AST.
5
6
  *
6
- * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value
7
- * will reflect the provided GraphQL value AST.
7
+ * Because no GraphQL type is provided, the returned JavaScript value reflects
8
+ * the provided GraphQL value AST.
8
9
  *
9
10
  * | GraphQL Value | JavaScript Value |
10
11
  * | -------------------- | ---------------- |
@@ -14,7 +15,19 @@ import { Kind } from '../language/kinds.mjs';
14
15
  * | String / Enum | String |
15
16
  * | Int / Float | Number |
16
17
  * | Null | null |
18
+ * @param valueNode - GraphQL value AST node to convert.
19
+ * @param variables - Optional runtime variable values keyed by variable name.
20
+ * @returns JavaScript value represented by the GraphQL value AST.
21
+ * @example
22
+ * ```ts
23
+ * import { parseValue } from 'graphql/language';
24
+ * import { valueFromASTUntyped } from 'graphql/utilities';
17
25
  *
26
+ * const value = valueFromASTUntyped(parseValue('[1, 2, 3]'));
27
+ *
28
+ * value; // => [1, 2, 3]
29
+ * valueFromASTUntyped(parseValue('$name'), { name: 'Ada' }); // => 'Ada'
30
+ * ```
18
31
  */
19
32
 
20
33
  export function valueFromASTUntyped(valueNode, variables) {
@@ -1,3 +1,4 @@
1
+ /** @category Validation Context */
1
2
  import type { Maybe } from '../jsutils/Maybe';
2
3
  import type { GraphQLError } from '../error/GraphQLError';
3
4
  import type {
@@ -33,6 +34,8 @@ interface VariableUsage {
33
34
  * An instance of this class is passed as the "this" context to all validators,
34
35
  * allowing access to commonly useful contextual information from within a
35
36
  * validation rule.
37
+ *
38
+ * @internal
36
39
  */
37
40
  export declare class ASTValidationContext {
38
41
  private _ast;
@@ -50,9 +53,11 @@ export declare class ASTValidationContext {
50
53
  operation: OperationDefinitionNode,
51
54
  ): ReadonlyArray<FragmentDefinitionNode>;
52
55
  }
56
+ /** @internal */
53
57
  export declare type ASTValidationRule = (
54
58
  context: ASTValidationContext,
55
59
  ) => ASTVisitor;
60
+ /** @internal */
56
61
  export declare class SDLValidationContext extends ASTValidationContext {
57
62
  private _schema;
58
63
  constructor(
@@ -63,34 +68,428 @@ export declare class SDLValidationContext extends ASTValidationContext {
63
68
  get [Symbol.toStringTag](): string;
64
69
  getSchema(): Maybe<GraphQLSchema>;
65
70
  }
71
+ /** @internal */
66
72
  export declare type SDLValidationRule = (
67
73
  context: SDLValidationContext,
68
74
  ) => ASTVisitor;
75
+ /** Validation context passed to query validation rules. */
69
76
  export declare class ValidationContext extends ASTValidationContext {
70
77
  private _schema;
71
78
  private _typeInfo;
72
79
  private _variableUsages;
73
80
  private _recursiveVariableUsages;
81
+ /**
82
+ * Creates a ValidationContext instance.
83
+ * @param schema - Schema used to validate the document.
84
+ * @param ast - Document AST being validated.
85
+ * @param typeInfo - TypeInfo instance used to track traversal state.
86
+ * @param onError - Callback invoked for each validation error.
87
+ * @example
88
+ * ```ts
89
+ * import { parse } from 'graphql/language';
90
+ * import { GraphQLError } from 'graphql/error';
91
+ * import { buildSchema, TypeInfo } from 'graphql/utilities';
92
+ * import { ValidationContext } from 'graphql/validation';
93
+ *
94
+ * const schema = buildSchema(`
95
+ * type Query {
96
+ * greeting: String
97
+ * }
98
+ * `);
99
+ * const document = parse('{ greeting }');
100
+ * const errors = [];
101
+ * const context = new ValidationContext(
102
+ * schema,
103
+ * document,
104
+ * new TypeInfo(schema),
105
+ * (error) => errors.push(error),
106
+ * );
107
+ *
108
+ * context.reportError(new GraphQLError('Example validation error.'));
109
+ *
110
+ * context.getSchema(); // => schema
111
+ * errors[0].message; // => 'Example validation error.'
112
+ * ```
113
+ */
74
114
  constructor(
75
115
  schema: GraphQLSchema,
76
116
  ast: DocumentNode,
77
117
  typeInfo: TypeInfo,
78
118
  onError: (error: GraphQLError) => void,
79
119
  );
120
+ /**
121
+ * Returns the value used by `Object.prototype.toString`.
122
+ * @returns The built-in string tag for this object.
123
+ */
80
124
  get [Symbol.toStringTag](): string;
125
+ /**
126
+ * Returns the schema being used by this validation context.
127
+ * @returns The schema being validated against.
128
+ * @example
129
+ * ```ts
130
+ * import { parse } from 'graphql/language';
131
+ * import { buildSchema, TypeInfo } from 'graphql/utilities';
132
+ * import { ValidationContext } from 'graphql/validation';
133
+ *
134
+ * const schema = buildSchema(`
135
+ * type Query {
136
+ * greeting: String
137
+ * }
138
+ * `);
139
+ * const context = new ValidationContext(
140
+ * schema,
141
+ * parse('{ greeting }'),
142
+ * new TypeInfo(schema),
143
+ * () => {},
144
+ * );
145
+ *
146
+ * context.getSchema().getQueryType()?.name; // => 'Query'
147
+ * ```
148
+ */
81
149
  getSchema(): GraphQLSchema;
150
+ /**
151
+ * Returns variable usages found directly within this node.
152
+ * @param node - The AST node to inspect or visit.
153
+ * @returns Variable usages found directly within this node.
154
+ * @example
155
+ * ```ts
156
+ * import { parse } from 'graphql/language';
157
+ * import { buildSchema, TypeInfo } from 'graphql/utilities';
158
+ * import { ValidationContext } from 'graphql/validation';
159
+ *
160
+ * const schema = buildSchema(`
161
+ * type Query {
162
+ * greeting(name: String): String
163
+ * }
164
+ * `);
165
+ * const document = parse('query ($name: String) { greeting(name: $name) }');
166
+ * const operation = document.definitions[0];
167
+ * const context = new ValidationContext(
168
+ * schema,
169
+ * document,
170
+ * new TypeInfo(schema),
171
+ * () => {},
172
+ * );
173
+ *
174
+ * const usages = context.getVariableUsages(operation);
175
+ *
176
+ * usages[0].node.name.value; // => 'name'
177
+ * String(usages[0].type); // => 'String'
178
+ * ```
179
+ */
82
180
  getVariableUsages(node: NodeWithSelectionSet): ReadonlyArray<VariableUsage>;
181
+ /**
182
+ * Returns variable usages for an operation, including variables used by referenced fragments.
183
+ * @param operation - Operation definition to inspect.
184
+ * @returns Variable usages reachable from the operation.
185
+ * @example
186
+ * ```ts
187
+ * import { parse } from 'graphql/language';
188
+ * import { buildSchema, TypeInfo } from 'graphql/utilities';
189
+ * import { ValidationContext } from 'graphql/validation';
190
+ *
191
+ * const schema = buildSchema(`
192
+ * type Query {
193
+ * viewer: User
194
+ * }
195
+ *
196
+ * type User {
197
+ * name(prefix: String): String
198
+ * }
199
+ * `);
200
+ * const document = parse(`
201
+ * query ($prefix: String) {
202
+ * viewer {
203
+ * ...UserName
204
+ * }
205
+ * }
206
+ *
207
+ * fragment UserName on User {
208
+ * name(prefix: $prefix)
209
+ * }
210
+ * `);
211
+ * const operation = document.definitions[0];
212
+ * const context = new ValidationContext(
213
+ * schema,
214
+ * document,
215
+ * new TypeInfo(schema),
216
+ * () => {},
217
+ * );
218
+ *
219
+ * const usages = context.getRecursiveVariableUsages(operation);
220
+ *
221
+ * usages.map((usage) => usage.node.name.value); // => ['prefix']
222
+ * ```
223
+ */
83
224
  getRecursiveVariableUsages(
84
225
  operation: OperationDefinitionNode,
85
226
  ): ReadonlyArray<VariableUsage>;
227
+ /**
228
+ * Returns the current output type at this point in traversal.
229
+ * @returns The current output type, if known.
230
+ * @example
231
+ * ```ts
232
+ * import { parse, visit } from 'graphql/language';
233
+ * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
234
+ * import { ValidationContext } from 'graphql/validation';
235
+ *
236
+ * const schema = buildSchema(`
237
+ * type Query {
238
+ * greeting: String
239
+ * }
240
+ * `);
241
+ * const document = parse('{ greeting }');
242
+ * const typeInfo = new TypeInfo(schema);
243
+ * const context = new ValidationContext(schema, document, typeInfo, () => {});
244
+ * let typeName;
245
+ *
246
+ * visit(
247
+ * document,
248
+ * visitWithTypeInfo(typeInfo, {
249
+ * Field: () => {
250
+ * typeName = String(context.getType());
251
+ * },
252
+ * }),
253
+ * );
254
+ *
255
+ * typeName; // => 'String'
256
+ * ```
257
+ */
86
258
  getType(): Maybe<GraphQLOutputType>;
259
+ /**
260
+ * Returns the current parent composite type.
261
+ * @returns The current parent composite type, if known.
262
+ * @example
263
+ * ```ts
264
+ * import { parse, visit } from 'graphql/language';
265
+ * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
266
+ * import { ValidationContext } from 'graphql/validation';
267
+ *
268
+ * const schema = buildSchema(`
269
+ * type Query {
270
+ * greeting: String
271
+ * }
272
+ * `);
273
+ * const document = parse('{ greeting }');
274
+ * const typeInfo = new TypeInfo(schema);
275
+ * const context = new ValidationContext(schema, document, typeInfo, () => {});
276
+ * let parentTypeName;
277
+ *
278
+ * visit(
279
+ * document,
280
+ * visitWithTypeInfo(typeInfo, {
281
+ * Field: () => {
282
+ * parentTypeName = context.getParentType()?.name;
283
+ * },
284
+ * }),
285
+ * );
286
+ *
287
+ * parentTypeName; // => 'Query'
288
+ * ```
289
+ */
87
290
  getParentType(): Maybe<GraphQLCompositeType>;
291
+ /**
292
+ * Returns the current input type at this point in traversal.
293
+ * @returns The current input type, if known.
294
+ * @example
295
+ * ```ts
296
+ * import { parse, visit } from 'graphql/language';
297
+ * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
298
+ * import { ValidationContext } from 'graphql/validation';
299
+ *
300
+ * const schema = buildSchema(`
301
+ * type Query {
302
+ * reviews(limit: Int): [String]
303
+ * }
304
+ * `);
305
+ * const document = parse('{ reviews(limit: 5) }');
306
+ * const typeInfo = new TypeInfo(schema);
307
+ * const context = new ValidationContext(schema, document, typeInfo, () => {});
308
+ * let inputTypeName;
309
+ *
310
+ * visit(
311
+ * document,
312
+ * visitWithTypeInfo(typeInfo, {
313
+ * Argument: () => {
314
+ * inputTypeName = String(context.getInputType());
315
+ * },
316
+ * }),
317
+ * );
318
+ *
319
+ * inputTypeName; // => 'Int'
320
+ * ```
321
+ */
88
322
  getInputType(): Maybe<GraphQLInputType>;
323
+ /**
324
+ * Returns the parent input type for the current input position.
325
+ * @returns The parent input type, if known.
326
+ * @example
327
+ * ```ts
328
+ * import { parse, visit } from 'graphql/language';
329
+ * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
330
+ * import { ValidationContext } from 'graphql/validation';
331
+ *
332
+ * const schema = buildSchema(`
333
+ * input ReviewFilter {
334
+ * stars: Int
335
+ * }
336
+ *
337
+ * type Query {
338
+ * reviews(filter: ReviewFilter): [String]
339
+ * }
340
+ * `);
341
+ * const document = parse('{ reviews(filter: { stars: 5 }) }');
342
+ * const typeInfo = new TypeInfo(schema);
343
+ * const context = new ValidationContext(schema, document, typeInfo, () => {});
344
+ * let parentInputTypeName;
345
+ *
346
+ * visit(
347
+ * document,
348
+ * visitWithTypeInfo(typeInfo, {
349
+ * ObjectField: () => {
350
+ * parentInputTypeName = String(context.getParentInputType());
351
+ * },
352
+ * }),
353
+ * );
354
+ *
355
+ * parentInputTypeName; // => 'ReviewFilter'
356
+ * ```
357
+ */
89
358
  getParentInputType(): Maybe<GraphQLInputType>;
359
+ /**
360
+ * Returns the current field definition.
361
+ * @returns The current field definition, if known.
362
+ * @example
363
+ * ```ts
364
+ * import { parse, visit } from 'graphql/language';
365
+ * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
366
+ * import { ValidationContext } from 'graphql/validation';
367
+ *
368
+ * const schema = buildSchema(`
369
+ * type Query {
370
+ * greeting: String
371
+ * }
372
+ * `);
373
+ * const document = parse('{ greeting }');
374
+ * const typeInfo = new TypeInfo(schema);
375
+ * const context = new ValidationContext(schema, document, typeInfo, () => {});
376
+ * let fieldName;
377
+ *
378
+ * visit(
379
+ * document,
380
+ * visitWithTypeInfo(typeInfo, {
381
+ * Field: () => {
382
+ * fieldName = context.getFieldDef()?.name;
383
+ * },
384
+ * }),
385
+ * );
386
+ *
387
+ * fieldName; // => 'greeting'
388
+ * ```
389
+ */
90
390
  getFieldDef(): Maybe<GraphQLField<unknown, unknown>>;
391
+ /**
392
+ * Returns the current directive definition.
393
+ * @returns The current directive definition, if known.
394
+ * @example
395
+ * ```ts
396
+ * import { parse, visit } from 'graphql/language';
397
+ * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
398
+ * import { ValidationContext } from 'graphql/validation';
399
+ *
400
+ * const schema = buildSchema(`
401
+ * type Query {
402
+ * greeting: String
403
+ * }
404
+ * `);
405
+ * const document = parse('{ greeting @include(if: true) }');
406
+ * const typeInfo = new TypeInfo(schema);
407
+ * const context = new ValidationContext(schema, document, typeInfo, () => {});
408
+ * let directiveName;
409
+ *
410
+ * visit(
411
+ * document,
412
+ * visitWithTypeInfo(typeInfo, {
413
+ * Directive: () => {
414
+ * directiveName = context.getDirective()?.name;
415
+ * },
416
+ * }),
417
+ * );
418
+ *
419
+ * directiveName; // => 'include'
420
+ * ```
421
+ */
91
422
  getDirective(): Maybe<GraphQLDirective>;
423
+ /**
424
+ * Returns the current argument definition.
425
+ * @returns The current argument definition, if known.
426
+ * @example
427
+ * ```ts
428
+ * import { parse, visit } from 'graphql/language';
429
+ * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
430
+ * import { ValidationContext } from 'graphql/validation';
431
+ *
432
+ * const schema = buildSchema(`
433
+ * type Query {
434
+ * reviews(limit: Int): [String]
435
+ * }
436
+ * `);
437
+ * const document = parse('{ reviews(limit: 5) }');
438
+ * const typeInfo = new TypeInfo(schema);
439
+ * const context = new ValidationContext(schema, document, typeInfo, () => {});
440
+ * let argumentName;
441
+ *
442
+ * visit(
443
+ * document,
444
+ * visitWithTypeInfo(typeInfo, {
445
+ * Argument: () => {
446
+ * argumentName = context.getArgument()?.name;
447
+ * },
448
+ * }),
449
+ * );
450
+ *
451
+ * argumentName; // => 'limit'
452
+ * ```
453
+ */
92
454
  getArgument(): Maybe<GraphQLArgument>;
455
+ /**
456
+ * Returns the current enum value definition.
457
+ * @returns The current enum value definition, if known.
458
+ * @example
459
+ * ```ts
460
+ * import { parse, visit } from 'graphql/language';
461
+ * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
462
+ * import { ValidationContext } from 'graphql/validation';
463
+ *
464
+ * const schema = buildSchema(`
465
+ * enum Sort {
466
+ * NEWEST
467
+ * OLDEST
468
+ * }
469
+ *
470
+ * type Query {
471
+ * reviews(sort: Sort): [String]
472
+ * }
473
+ * `);
474
+ * const document = parse('{ reviews(sort: OLDEST) }');
475
+ * const typeInfo = new TypeInfo(schema);
476
+ * const context = new ValidationContext(schema, document, typeInfo, () => {});
477
+ * let enumValueName;
478
+ *
479
+ * visit(
480
+ * document,
481
+ * visitWithTypeInfo(typeInfo, {
482
+ * EnumValue: () => {
483
+ * enumValueName = context.getEnumValue()?.name;
484
+ * },
485
+ * }),
486
+ * );
487
+ *
488
+ * enumValueName; // => 'OLDEST'
489
+ * ```
490
+ */
93
491
  getEnumValue(): Maybe<GraphQLEnumValue>;
94
492
  }
493
+ /** A function that creates an AST visitor for validating a GraphQL document. */
95
494
  export declare type ValidationRule = (context: ValidationContext) => ASTVisitor;
96
495
  export {};