graphql 16.13.2 → 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 +12 -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 +422 -55
  106. package/language/ast.js +103 -39
  107. package/language/ast.mjs +103 -39
  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 +29 -8
  112. package/language/directiveLocation.js +10 -6
  113. package/language/directiveLocation.mjs +10 -6
  114. package/language/index.d.ts +7 -0
  115. package/language/index.mjs +6 -0
  116. package/language/kinds.d.ts +58 -18
  117. package/language/kinds.js +10 -6
  118. package/language/kinds.mjs +10 -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 +248 -11
  126. package/language/parser.js +257 -0
  127. package/language/parser.mjs +257 -3
  128. package/language/predicates.d.ts +169 -0
  129. package/language/predicates.js +173 -1
  130. package/language/predicates.mjs +185 -1
  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 +32 -1
  139. package/language/printer.mjs +31 -1
  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 +202 -19
  162. package/type/directives.js +206 -20
  163. package/type/directives.mjs +206 -20
  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 +57 -1
  168. package/type/introspection.mjs +65 -1
  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 +69 -6
  189. package/utilities/buildASTSchema.mjs +69 -6
  190. package/utilities/buildClientSchema.d.ts +15 -0
  191. package/utilities/buildClientSchema.js +17 -0
  192. package/utilities/buildClientSchema.mjs +16 -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 +121 -6
  201. package/utilities/extendSchema.mjs +120 -6
  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 +148 -0
  206. package/utilities/getIntrospectionQuery.js +72 -38
  207. package/utilities/getIntrospectionQuery.mjs +72 -38
  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 +56 -0
  218. package/utilities/introspectionFromSchema.mjs +55 -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 +67 -0
  224. package/utilities/printSchema.mjs +68 -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 +51 -2
  243. package/utilities/valueFromAST.mjs +50 -2
  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 +33 -0
  266. package/validation/rules/KnownDirectivesRule.mjs +32 -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 +41 -0
  323. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +40 -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 +7 -9
  371. package/version.mjs +6 -9
@@ -1,36 +1,63 @@
1
+ /** @category Lexing */
1
2
  /**
2
3
  * An exported enum describing the different kinds of tokens that the
3
4
  * lexer emits.
4
5
  */
5
6
  declare enum TokenKind {
7
+ /** Start-of-file token. */
6
8
  SOF = '<SOF>',
9
+ /** End-of-file token. */
7
10
  EOF = '<EOF>',
11
+ /** The `!` punctuation token. */
8
12
  BANG = '!',
13
+ /** The `$` punctuation token. */
9
14
  DOLLAR = '$',
15
+ /** The `&` punctuation token. */
10
16
  AMP = '&',
17
+ /** The `(` punctuation token. */
11
18
  PAREN_L = '(',
19
+ /** The `)` punctuation token. */
12
20
  PAREN_R = ')',
21
+ /** The `.` punctuation token. */
13
22
  DOT = '.',
23
+ /** The `...` spread punctuation token. */
14
24
  SPREAD = '...',
25
+ /** The `:` punctuation token. */
15
26
  COLON = ':',
27
+ /** The `=` punctuation token. */
16
28
  EQUALS = '=',
29
+ /** The `@` punctuation token. */
17
30
  AT = '@',
31
+ /** The `[` punctuation token. */
18
32
  BRACKET_L = '[',
33
+ /** The `]` punctuation token. */
19
34
  BRACKET_R = ']',
35
+ /** The `{` punctuation token. */
20
36
  BRACE_L = '{',
37
+ /** The `|` punctuation token. */
21
38
  PIPE = '|',
39
+ /** The `}` punctuation token. */
22
40
  BRACE_R = '}',
41
+ /** A GraphQL name token or name AST node. */
23
42
  NAME = 'Name',
43
+ /** An integer value token or AST node. */
24
44
  INT = 'Int',
45
+ /** A floating-point value token or AST node. */
25
46
  FLOAT = 'Float',
47
+ /** A string value token or AST node. */
26
48
  STRING = 'String',
49
+ /** A block string value token. */
27
50
  BLOCK_STRING = 'BlockString',
51
+ /** A comment token. */
28
52
  COMMENT = 'Comment',
29
53
  }
30
54
  export { TokenKind };
31
55
  /**
32
- * The enum type representing the token kinds values.
33
- *
34
- * @deprecated Please use `TokenKind`. Will be remove in v17.
56
+ * Deprecated legacy alias for the enum type representing token kind values.
57
+ * This alias will be removed in v17. In v17, `TokenKind` is exported as the
58
+ * single public symbol for both the runtime object and the corresponding
59
+ * TypeScript type.
60
+ * @deprecated Will be removed in v17. In v17, use `TokenKind` as both the
61
+ * runtime value and the type.
35
62
  */
36
63
  export declare type TokenKindEnum = typeof TokenKind;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, '__esModule', {
5
5
  });
6
6
  exports.TokenKind = void 0;
7
7
 
8
+ /** @category Lexing */
9
+
8
10
  /**
9
11
  * An exported enum describing the different kinds of tokens that the
10
12
  * lexer emits.
@@ -38,7 +40,10 @@ exports.TokenKind = TokenKind;
38
40
  TokenKind['COMMENT'] = 'Comment';
39
41
  })(TokenKind || (exports.TokenKind = TokenKind = {}));
40
42
  /**
41
- * The enum type representing the token kinds values.
42
- *
43
- * @deprecated Please use `TokenKind`. Will be remove in v17.
43
+ * Deprecated legacy alias for the enum type representing token kind values.
44
+ * This alias will be removed in v17. In v17, `TokenKind` is exported as the
45
+ * single public symbol for both the runtime object and the corresponding
46
+ * TypeScript type.
47
+ * @deprecated Will be removed in v17. In v17, use `TokenKind` as both the
48
+ * runtime value and the type.
44
49
  */
@@ -1,3 +1,5 @@
1
+ /** @category Lexing */
2
+
1
3
  /**
2
4
  * An exported enum describing the different kinds of tokens that the
3
5
  * lexer emits.
@@ -32,7 +34,10 @@ var TokenKind;
32
34
 
33
35
  export { TokenKind };
34
36
  /**
35
- * The enum type representing the token kinds values.
36
- *
37
- * @deprecated Please use `TokenKind`. Will be remove in v17.
37
+ * Deprecated legacy alias for the enum type representing token kind values.
38
+ * This alias will be removed in v17. In v17, `TokenKind` is exported as the
39
+ * single public symbol for both the runtime object and the corresponding
40
+ * TypeScript type.
41
+ * @deprecated Will be removed in v17. In v17, use `TokenKind` as both the
42
+ * runtime value and the type.
38
43
  */
@@ -1,9 +1,7 @@
1
+ /** @category Visiting */
1
2
  import type { ASTNode } from './ast';
2
3
  import { Kind } from './kinds';
3
- /**
4
- * A visitor is provided to visit, it contains the collection of
5
- * relevant functions to be called during the visitor's traversal.
6
- */
4
+ /** A visitor defines the callbacks called during AST traversal. */
7
5
  export declare type ASTVisitor = EnterLeaveVisitor<ASTNode> | KindVisitor;
8
6
  declare type KindVisitor = {
9
7
  readonly [NodeT in ASTNode as NodeT['kind']]?:
@@ -15,28 +13,29 @@ interface EnterLeaveVisitor<TVisitedNode extends ASTNode> {
15
13
  readonly leave?: ASTVisitFn<TVisitedNode>;
16
14
  }
17
15
  /**
18
- * A visitor is comprised of visit functions, which are called on each node
19
- * during the visitor's traversal.
16
+ * A visitor is composed of visit functions called for each node during traversal.
17
+ * @typeParam TVisitedNode - AST node type handled by this visitor function.
20
18
  */
21
19
  export declare type ASTVisitFn<TVisitedNode extends ASTNode> = (
22
- /** The current node being visiting. */
20
+ /** Current node being visited. */
23
21
  node: TVisitedNode,
24
- /** The index or key to this node from the parent node or Array. */
22
+ /** Index or key for this node within the parent node or array. */
25
23
  key: string | number | undefined,
26
- /** The parent immediately above this node, which may be an Array. */
24
+ /** Parent immediately above this node, which may be an array. */
27
25
  parent: ASTNode | ReadonlyArray<ASTNode> | undefined,
28
- /** The key path to get to this node from the root node. */
26
+ /** Key path from the root node to this node. */
29
27
  path: ReadonlyArray<string | number>,
30
28
  /**
31
- * All nodes and Arrays visited before reaching parent of this node.
29
+ * All nodes and arrays visited before reaching this node's parent.
32
30
  * These correspond to array indices in `path`.
33
- * Note: ancestors includes arrays which contain the parent of visited node.
31
+ * Note: ancestors includes arrays that contain the visited node's parent.
34
32
  */
35
33
  ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>,
36
34
  ) => any;
37
35
  /**
38
- * A reducer is comprised of reducer functions which convert AST nodes into
39
- * another form.
36
+ * A reducer is composed of reducer functions that convert AST nodes into another form.
37
+ *
38
+ * @internal
40
39
  */
41
40
  export declare type ASTReducer<R> = {
42
41
  readonly [NodeT in ASTNode as NodeT['kind']]?: {
@@ -45,20 +44,33 @@ export declare type ASTReducer<R> = {
45
44
  };
46
45
  };
47
46
  declare type ASTReducerFn<TReducedNode extends ASTNode, R> = (
48
- /** The current node being visiting. */
47
+ /**
48
+ * Current node being visited.
49
+ * @internal
50
+ */
49
51
  node: {
50
52
  [K in keyof TReducedNode]: ReducedField<TReducedNode[K], R>;
51
53
  },
52
- /** The index or key to this node from the parent node or Array. */
54
+ /**
55
+ * Index or key for this node within the parent node or array.
56
+ * @internal
57
+ */
53
58
  key: string | number | undefined,
54
- /** The parent immediately above this node, which may be an Array. */
59
+ /**
60
+ * Parent immediately above this node, which may be an array.
61
+ * @internal
62
+ */
55
63
  parent: ASTNode | ReadonlyArray<ASTNode> | undefined,
56
- /** The key path to get to this node from the root node. */
64
+ /**
65
+ * Key path from the root node to this node.
66
+ * @internal
67
+ */
57
68
  path: ReadonlyArray<string | number>,
58
69
  /**
59
- * All nodes and Arrays visited before reaching parent of this node.
70
+ * All nodes and arrays visited before reaching this node's parent.
60
71
  * These correspond to array indices in `path`.
61
- * Note: ancestors includes arrays which contain the parent of visited node.
72
+ * Note: ancestors includes arrays that contain the visited node's parent.
73
+ * @internal
62
74
  */
63
75
  ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>,
64
76
  ) => R;
@@ -68,13 +80,14 @@ declare type ReducedField<T, R> = T extends null | undefined
68
80
  ? ReadonlyArray<R>
69
81
  : R;
70
82
  /**
71
- * A KeyMap describes each the traversable properties of each kind of node.
72
- *
83
+ * Deprecated visitor key map type retained for compatibility. Inline this
84
+ * mapped type at use sites because ASTVisitorKeyMap will be removed in v17.
73
85
  * @deprecated Please inline it. Will be removed in v17
74
86
  */
75
87
  export declare type ASTVisitorKeyMap = {
76
88
  [NodeT in ASTNode as NodeT['kind']]?: ReadonlyArray<keyof NodeT>;
77
89
  };
90
+ /** A value that can be returned from a visitor function to stop traversal. */
78
91
  export declare const BREAK: unknown;
79
92
  /**
80
93
  * visit() will walk through an AST using a depth-first traversal, calling
@@ -89,69 +102,90 @@ export declare const BREAK: unknown;
89
102
  * When using visit() to edit an AST, the original AST will not be modified, and
90
103
  * a new version of the AST with the changes applied will be returned from the
91
104
  * visit function.
92
- *
105
+ * @param root - The AST node at which to start traversal.
106
+ * @param visitor - The visitor or reducer functions to call while traversing.
107
+ * @param visitorKeys - Optional map of child keys to visit for each AST node kind.
108
+ * @returns The original AST, an edited AST, or a reduced value depending on the visitor.
109
+ * @typeParam N - The root AST node type returned when visiting without reducing.
110
+ * @example
93
111
  * ```ts
94
- * const editedAST = visit(ast, {
95
- * enter(node, key, parent, path, ancestors) {
96
- * // @return
97
- * // undefined: no action
98
- * // false: skip visiting this node
99
- * // visitor.BREAK: stop visiting altogether
100
- * // null: delete this node
101
- * // any value: replace this node with the returned value
112
+ * // Return values control traversal: undefined makes no change, false skips
113
+ * // a subtree, BREAK stops traversal, null removes a node, and any other
114
+ * // value replaces the current node.
115
+ * import { Kind, parse, print, visit } from 'graphql/language';
116
+ *
117
+ * const document = parse('{ hero { name } }');
118
+ * const editedAST = visit(document, {
119
+ * Field: (node) => {
120
+ * if (node.name.value === 'hero') {
121
+ * return {
122
+ * ...node,
123
+ * name: { kind: Kind.NAME, value: 'human' },
124
+ * };
125
+ * }
102
126
  * },
103
- * leave(node, key, parent, path, ancestors) {
104
- * // @return
105
- * // undefined: no action
106
- * // false: no action
107
- * // visitor.BREAK: stop visiting altogether
108
- * // null: delete this node
109
- * // any value: replace this node with the returned value
110
- * }
111
127
  * });
128
+ *
129
+ * print(editedAST); // => '{\n human {\n name\n }\n}'
112
130
  * ```
131
+ * @example
132
+ * ```ts
133
+ * // A named visitor function runs when entering nodes of that kind.
134
+ * import { parse, visit } from 'graphql/language';
113
135
  *
114
- * Alternatively to providing enter() and leave() functions, a visitor can
115
- * instead provide functions named the same as the kinds of AST nodes, or
116
- * enter/leave visitors at a named key, leading to three permutations of the
117
- * visitor API:
136
+ * const document = parse('{ hero { name } }');
137
+ * const fieldNames = [];
118
138
  *
119
- * 1) Named visitors triggered when entering a node of a specific kind.
139
+ * visit(document, {
140
+ * Field: (node) => {
141
+ * fieldNames.push(node.name.value);
142
+ * },
143
+ * });
120
144
  *
121
- * ```ts
122
- * visit(ast, {
123
- * Kind(node) {
124
- * // enter the "Kind" node
125
- * }
126
- * })
145
+ * fieldNames; // => ['hero', 'name']
127
146
  * ```
147
+ * @example
148
+ * ```ts
149
+ * // A named visitor object can provide separate enter and leave handlers for
150
+ * // nodes of that kind.
151
+ * import { parse, visit } from 'graphql/language';
128
152
  *
129
- * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.
153
+ * const document = parse('{ hero { name } }');
154
+ * const events = [];
130
155
  *
131
- * ```ts
132
- * visit(ast, {
133
- * Kind: {
134
- * enter(node) {
135
- * // enter the "Kind" node
136
- * }
137
- * leave(node) {
138
- * // leave the "Kind" node
139
- * }
140
- * }
141
- * })
156
+ * visit(document, {
157
+ * Field: {
158
+ * enter: (node) => {
159
+ * events.push(`enter:${node.name.value}`);
160
+ * },
161
+ * leave: (node) => {
162
+ * events.push(`leave:${node.name.value}`);
163
+ * },
164
+ * },
165
+ * });
166
+ *
167
+ * events; // => ['enter:hero', 'enter:name', 'leave:name', 'leave:hero']
142
168
  * ```
169
+ * @example
170
+ * ```ts
171
+ * // Generic enter and leave handlers run for every node.
172
+ * import { parse, visit } from 'graphql/language';
143
173
  *
144
- * 3) Generic visitors that trigger upon entering and leaving any node.
174
+ * const document = parse('{ hero { name } }');
175
+ * let enterCount = 0;
176
+ * let leaveCount = 0;
145
177
  *
146
- * ```ts
147
- * visit(ast, {
148
- * enter(node) {
149
- * // enter any node
178
+ * visit(document, {
179
+ * enter: (node) => {
180
+ * enterCount += 1;
181
+ * },
182
+ * leave: (node) => {
183
+ * leaveCount += 1;
150
184
  * },
151
- * leave(node) {
152
- * // leave any node
153
- * }
154
- * })
185
+ * });
186
+ *
187
+ * enterCount; // => leaveCount
188
+ * enterCount > 0; // => true
155
189
  * ```
156
190
  */
157
191
  export declare function visit<N extends ASTNode>(
@@ -159,6 +193,53 @@ export declare function visit<N extends ASTNode>(
159
193
  visitor: ASTVisitor,
160
194
  visitorKeys?: ASTVisitorKeyMap,
161
195
  ): N;
196
+ /**
197
+ * Traverses an AST with reducer callbacks and returns the reduced value.
198
+ * @param root - The AST node where traversal starts.
199
+ * @param visitor - Reducer callbacks to invoke during traversal.
200
+ * @param visitorKeys - Optional mapping of child keys for each AST node kind.
201
+ * @returns The value produced by the reducer visitor.
202
+ * @typeParam R - The value produced by reducer visitor callbacks.
203
+ * @example
204
+ * ```ts
205
+ * // A reducer visitor returns values from leave handlers to build a reduced
206
+ * // result instead of returning an edited AST.
207
+ * import { parse, visit } from 'graphql/language';
208
+ *
209
+ * const document = parse('{ hero { name } }');
210
+ * const printed = visit(document, {
211
+ * Name: {
212
+ * leave: (node) => {
213
+ * return node.value;
214
+ * },
215
+ * },
216
+ * Field: {
217
+ * leave: (node) => {
218
+ * return node.selectionSet == null
219
+ * ? node.name
220
+ * : `${node.name} { ${node.selectionSet} }`;
221
+ * },
222
+ * },
223
+ * SelectionSet: {
224
+ * leave: (node) => {
225
+ * return node.selections.join(' ');
226
+ * },
227
+ * },
228
+ * OperationDefinition: {
229
+ * leave: (node) => {
230
+ * return node.selectionSet;
231
+ * },
232
+ * },
233
+ * Document: {
234
+ * leave: (node) => {
235
+ * return node.definitions.join('\n');
236
+ * },
237
+ * },
238
+ * });
239
+ *
240
+ * printed; // => 'hero { name }'
241
+ * ```
242
+ */
162
243
  export declare function visit<R>(
163
244
  root: ASTNode,
164
245
  visitor: ASTReducer<R>,
@@ -169,12 +250,43 @@ export declare function visit<R>(
169
250
  * parallel. Each visitor will be visited for each node before moving on.
170
251
  *
171
252
  * If a prior visitor edits a node, no following visitors will see that node.
253
+ * @param visitors - The visitors to merge into one parallel visitor.
254
+ * @returns A visitor that delegates traversal to each provided visitor.
255
+ * @example
256
+ * ```ts
257
+ * import { parse, visit, visitInParallel } from 'graphql/language';
258
+ *
259
+ * const document = parse('{ hero { name } }');
260
+ * const events = [];
261
+ *
262
+ * visit(
263
+ * document,
264
+ * visitInParallel([
265
+ * { Field: (node) => { events.push(`field:${node.name.value}`); } },
266
+ * { Name: (node) => { events.push(`name:${node.value}`); } },
267
+ * ]),
268
+ * );
269
+ *
270
+ * events; // => ['field:hero', 'name:hero', 'field:name', 'name:name']
271
+ * ```
172
272
  */
173
273
  export declare function visitInParallel(
174
274
  visitors: ReadonlyArray<ASTVisitor>,
175
275
  ): ASTVisitor;
176
276
  /**
177
277
  * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.
278
+ * @param visitor - The visitor object to inspect.
279
+ * @param kind - The AST node kind to resolve handlers for.
280
+ * @returns The enter and leave handlers that apply for the given node kind.
281
+ * @example
282
+ * ```ts
283
+ * import { Kind, getEnterLeaveForKind } from 'graphql/language';
284
+ *
285
+ * const handlers = getEnterLeaveForKind({ Field: () => {} }, Kind.FIELD);
286
+ *
287
+ * typeof handlers.enter; // => 'function'
288
+ * handlers.leave; // => undefined
289
+ * ```
178
290
  */
179
291
  export declare function getEnterLeaveForKind(
180
292
  visitor: ASTVisitor,
@@ -182,8 +294,24 @@ export declare function getEnterLeaveForKind(
182
294
  ): EnterLeaveVisitor<ASTNode>;
183
295
  /**
184
296
  * Given a visitor instance, if it is leaving or not, and a node kind, return
185
- * the function the visitor runtime should call.
297
+ * the function the visitor runtime should call. This deprecated compatibility
298
+ * helper delegates to `getEnterLeaveForKind`; call `getEnterLeaveForKind`
299
+ * directly because getVisitFn will be removed in v17.
300
+ * @param visitor - The visitor object to inspect.
301
+ * @param kind - The AST node kind to resolve a handler for.
302
+ * @param isLeaving - Whether to resolve the leave handler instead of the enter handler.
303
+ * @returns The visit function that applies for the given node kind and traversal phase, if one exists.
304
+ * @example
305
+ * ```ts
306
+ * import { Kind, getVisitFn } from 'graphql/language';
307
+ *
308
+ * const enter = getVisitFn({ Field: () => {} }, Kind.FIELD, false);
309
+ * const leave = getVisitFn({ Field: () => {} }, Kind.FIELD, true);
186
310
  *
311
+ * typeof enter; // => 'function'
312
+ * leave; // => undefined
313
+ * ```
314
+ * @category Visiting
187
315
  * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17
188
316
  */
189
317
  export declare function getVisitFn(