graphql 17.0.0-beta.0 → 17.0.0-beta.2

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 (1193) hide show
  1. package/__dev__/devMode.d.ts +1 -1
  2. package/__dev__/error/GraphQLError.d.ts +1 -1
  3. package/__dev__/error/ensureGraphQLError.d.ts +1 -1
  4. package/__dev__/error/index.d.ts +1 -1
  5. package/__dev__/error/locatedError.d.ts +1 -1
  6. package/__dev__/error/syntaxError.d.ts +1 -1
  7. package/__dev__/execution/AbortedGraphQLExecutionError.d.ts +1 -1
  8. package/__dev__/execution/AsyncWorkTracker.d.ts +1 -1
  9. package/__dev__/execution/ExecutionArgs.d.mts +1 -0
  10. package/__dev__/execution/ExecutionArgs.d.ts +1 -0
  11. package/__dev__/execution/ExecutionArgs.js +3 -0
  12. package/__dev__/execution/ExecutionArgs.mjs +3 -0
  13. package/__dev__/execution/Executor.d.ts +1 -1
  14. package/__dev__/execution/ExecutorThrowingOnIncremental.d.ts +1 -1
  15. package/__dev__/execution/buildResolveInfo.d.mts +1 -0
  16. package/__dev__/execution/buildResolveInfo.d.ts +1 -0
  17. package/__dev__/execution/buildResolveInfo.js +3 -0
  18. package/__dev__/execution/buildResolveInfo.mjs +3 -0
  19. package/__dev__/execution/cancellablePromise.d.ts +1 -1
  20. package/__dev__/execution/collectFields.d.ts +1 -1
  21. package/__dev__/execution/collectIteratorPromises.d.ts +1 -1
  22. package/__dev__/execution/createSharedExecutionContext.d.ts +1 -1
  23. package/__dev__/execution/execute.d.ts +1 -1
  24. package/__dev__/execution/getStreamUsage.d.ts +1 -1
  25. package/__dev__/execution/getVariableSignature.d.ts +1 -1
  26. package/__dev__/execution/hooks.d.ts +1 -1
  27. package/__dev__/execution/incremental/Computation.d.ts +1 -1
  28. package/__dev__/execution/incremental/IncrementalExecutor.d.ts +1 -1
  29. package/__dev__/execution/incremental/IncrementalPublisher.d.ts +1 -1
  30. package/__dev__/execution/incremental/Queue.d.ts +1 -1
  31. package/__dev__/execution/incremental/WorkQueue.d.ts +1 -1
  32. package/__dev__/execution/incremental/buildExecutionPlan.d.ts +1 -1
  33. package/__dev__/execution/index.d.ts +1 -1
  34. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +1 -0
  35. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +1 -0
  36. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.js +3 -0
  37. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +3 -0
  38. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +1 -0
  39. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +1 -0
  40. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.js +3 -0
  41. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +3 -0
  42. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +1 -0
  43. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +1 -0
  44. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.js +3 -0
  45. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.mjs +3 -0
  46. package/__dev__/execution/mapAsyncIterable.d.ts +1 -1
  47. package/__dev__/execution/returnIteratorCatchingErrors.d.ts +1 -1
  48. package/__dev__/execution/values.d.ts +1 -1
  49. package/__dev__/execution/withConcurrentAbruptClose.d.ts +1 -1
  50. package/__dev__/graphql.d.ts +1 -1
  51. package/__dev__/harness.d.ts +1 -1
  52. package/__dev__/index.d.ts +1 -1
  53. package/__dev__/jsutils/AccumulatorMap.d.ts +1 -1
  54. package/__dev__/jsutils/Maybe.d.ts +1 -1
  55. package/__dev__/jsutils/ObjMap.d.ts +1 -1
  56. package/__dev__/jsutils/Path.d.ts +1 -1
  57. package/__dev__/jsutils/PromiseOrValue.d.ts +1 -1
  58. package/__dev__/jsutils/capitalize.d.ts +1 -1
  59. package/__dev__/jsutils/devAssert.d.ts +1 -1
  60. package/__dev__/jsutils/didYouMean.d.ts +1 -1
  61. package/__dev__/jsutils/formatList.d.ts +1 -1
  62. package/__dev__/jsutils/getBySet.d.ts +1 -1
  63. package/__dev__/jsutils/groupBy.d.ts +1 -1
  64. package/__dev__/jsutils/identityFunc.d.ts +1 -1
  65. package/__dev__/jsutils/inspect.d.ts +1 -1
  66. package/__dev__/jsutils/instanceOf.d.ts +1 -1
  67. package/__dev__/jsutils/invariant.d.ts +1 -1
  68. package/__dev__/jsutils/isAsyncIterable.d.ts +1 -1
  69. package/__dev__/jsutils/isIterableObject.d.ts +1 -1
  70. package/__dev__/jsutils/isObjectLike.d.ts +1 -1
  71. package/__dev__/jsutils/isPromise.d.ts +1 -1
  72. package/__dev__/jsutils/isSameSet.d.ts +1 -1
  73. package/__dev__/jsutils/keyMap.d.ts +1 -1
  74. package/__dev__/jsutils/keyValMap.d.ts +1 -1
  75. package/__dev__/jsutils/mapValue.d.ts +1 -1
  76. package/__dev__/jsutils/memoize1.d.ts +1 -1
  77. package/__dev__/jsutils/memoize2.d.ts +1 -1
  78. package/__dev__/jsutils/memoize3.d.ts +1 -1
  79. package/__dev__/jsutils/naturalCompare.d.ts +1 -1
  80. package/__dev__/jsutils/printPathArray.d.ts +1 -1
  81. package/__dev__/jsutils/promiseForObject.d.ts +1 -1
  82. package/__dev__/jsutils/promiseReduce.d.ts +1 -1
  83. package/__dev__/jsutils/promiseWithResolvers.d.ts +1 -1
  84. package/__dev__/jsutils/suggestionList.d.ts +1 -1
  85. package/__dev__/jsutils/toError.d.ts +1 -1
  86. package/__dev__/jsutils/toObjMap.d.ts +1 -1
  87. package/__dev__/language/KindTypeMap.d.ts +1 -1
  88. package/__dev__/language/ast.d.ts +1 -1
  89. package/__dev__/language/blockString.d.ts +1 -1
  90. package/__dev__/language/characterClasses.d.ts +1 -1
  91. package/__dev__/language/directiveLocation.d.ts +1 -1
  92. package/__dev__/language/index.d.ts +1 -1
  93. package/__dev__/language/kinds.d.ts +1 -1
  94. package/__dev__/language/kinds_.d.ts +1 -1
  95. package/__dev__/language/lexer.d.ts +1 -1
  96. package/__dev__/language/location.d.ts +1 -1
  97. package/__dev__/language/parser.d.ts +1 -1
  98. package/__dev__/language/predicates.d.ts +1 -1
  99. package/__dev__/language/printLocation.d.ts +1 -1
  100. package/__dev__/language/printString.d.ts +1 -1
  101. package/__dev__/language/printer.d.ts +1 -1
  102. package/__dev__/language/schemaCoordinateLexer.d.ts +1 -1
  103. package/__dev__/language/source.d.ts +1 -1
  104. package/__dev__/language/tokenKind.d.ts +1 -1
  105. package/__dev__/language/visitor.d.ts +1 -1
  106. package/__dev__/type/assertName.d.ts +1 -1
  107. package/__dev__/type/definition.d.ts +1 -1
  108. package/__dev__/type/directives.d.ts +1 -1
  109. package/__dev__/type/index.d.ts +1 -1
  110. package/__dev__/type/introspection.d.ts +1 -1
  111. package/__dev__/type/scalars.d.ts +1 -1
  112. package/__dev__/type/schema.d.ts +1 -1
  113. package/__dev__/type/validate.d.ts +1 -1
  114. package/__dev__/utilities/TypeInfo.d.ts +1 -1
  115. package/__dev__/utilities/astFromValue.d.ts +1 -1
  116. package/__dev__/utilities/buildASTSchema.d.ts +1 -1
  117. package/__dev__/utilities/buildClientSchema.d.ts +1 -1
  118. package/__dev__/utilities/coerceInputValue.d.ts +1 -1
  119. package/__dev__/utilities/concatAST.d.ts +1 -1
  120. package/__dev__/utilities/extendSchema.d.ts +1 -1
  121. package/__dev__/utilities/findSchemaChanges.d.ts +1 -1
  122. package/__dev__/utilities/getDefaultValueAST.d.ts +1 -1
  123. package/__dev__/utilities/getIntrospectionQuery.d.ts +1 -1
  124. package/__dev__/utilities/getOperationAST.d.ts +1 -1
  125. package/__dev__/utilities/index.d.ts +1 -1
  126. package/__dev__/utilities/introspectionFromSchema.d.ts +1 -1
  127. package/__dev__/utilities/lexicographicSortSchema.d.ts +1 -1
  128. package/__dev__/utilities/mapSchemaConfig.d.ts +1 -1
  129. package/__dev__/utilities/printSchema.d.ts +1 -1
  130. package/__dev__/utilities/replaceVariables.d.ts +1 -1
  131. package/__dev__/utilities/resolveSchemaCoordinate.d.ts +1 -1
  132. package/__dev__/utilities/separateOperations.d.ts +1 -1
  133. package/__dev__/utilities/sortValueNode.d.ts +1 -1
  134. package/__dev__/utilities/stripIgnoredCharacters.d.ts +1 -1
  135. package/__dev__/utilities/typeComparators.d.ts +1 -1
  136. package/__dev__/utilities/typeFromAST.d.ts +1 -1
  137. package/__dev__/utilities/typedQueryDocumentNode.d.ts +1 -1
  138. package/__dev__/utilities/validateInputValue.d.ts +1 -1
  139. package/__dev__/utilities/valueFromAST.d.ts +1 -1
  140. package/__dev__/utilities/valueFromASTUntyped.d.ts +1 -1
  141. package/__dev__/utilities/valueToLiteral.d.ts +1 -1
  142. package/__dev__/validation/ValidationContext.d.ts +1 -1
  143. package/__dev__/validation/index.d.ts +1 -1
  144. package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.d.ts +1 -1
  145. package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +1 -1
  146. package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +1 -1
  147. package/__dev__/validation/rules/ExecutableDefinitionsRule.d.ts +1 -1
  148. package/__dev__/validation/rules/FieldsOnCorrectTypeRule.d.ts +1 -1
  149. package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.d.ts +1 -1
  150. package/__dev__/validation/rules/KnownArgumentNamesRule.d.ts +1 -1
  151. package/__dev__/validation/rules/KnownDirectivesRule.d.ts +1 -1
  152. package/__dev__/validation/rules/KnownFragmentNamesRule.d.ts +1 -1
  153. package/__dev__/validation/rules/KnownOperationTypesRule.d.ts +1 -1
  154. package/__dev__/validation/rules/KnownTypeNamesRule.d.ts +1 -1
  155. package/__dev__/validation/rules/LoneAnonymousOperationRule.d.ts +1 -1
  156. package/__dev__/validation/rules/LoneSchemaDefinitionRule.d.ts +1 -1
  157. package/__dev__/validation/rules/MaxIntrospectionDepthRule.d.ts +1 -1
  158. package/__dev__/validation/rules/NoFragmentCyclesRule.d.ts +1 -1
  159. package/__dev__/validation/rules/NoUndefinedVariablesRule.d.ts +1 -1
  160. package/__dev__/validation/rules/NoUnusedFragmentsRule.d.ts +1 -1
  161. package/__dev__/validation/rules/NoUnusedVariablesRule.d.ts +1 -1
  162. package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +1 -1
  163. package/__dev__/validation/rules/PossibleFragmentSpreadsRule.d.ts +1 -1
  164. package/__dev__/validation/rules/PossibleTypeExtensionsRule.d.ts +1 -1
  165. package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.d.ts +1 -1
  166. package/__dev__/validation/rules/ScalarLeafsRule.d.ts +1 -1
  167. package/__dev__/validation/rules/SingleFieldSubscriptionsRule.d.ts +1 -1
  168. package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.d.ts +1 -1
  169. package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +1 -1
  170. package/__dev__/validation/rules/UniqueArgumentNamesRule.d.ts +1 -1
  171. package/__dev__/validation/rules/UniqueDirectiveNamesRule.d.ts +1 -1
  172. package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.d.ts +1 -1
  173. package/__dev__/validation/rules/UniqueEnumValueNamesRule.d.ts +1 -1
  174. package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +1 -1
  175. package/__dev__/validation/rules/UniqueFragmentNamesRule.d.ts +1 -1
  176. package/__dev__/validation/rules/UniqueInputFieldNamesRule.d.ts +1 -1
  177. package/__dev__/validation/rules/UniqueOperationNamesRule.d.ts +1 -1
  178. package/__dev__/validation/rules/UniqueOperationTypesRule.d.ts +1 -1
  179. package/__dev__/validation/rules/UniqueTypeNamesRule.d.ts +1 -1
  180. package/__dev__/validation/rules/UniqueVariableNamesRule.d.ts +1 -1
  181. package/__dev__/validation/rules/ValuesOfCorrectTypeRule.d.ts +1 -1
  182. package/__dev__/validation/rules/VariablesAreInputTypesRule.d.ts +1 -1
  183. package/__dev__/validation/rules/VariablesInAllowedPositionRule.d.ts +1 -1
  184. package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.d.ts +1 -1
  185. package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +1 -1
  186. package/__dev__/validation/specifiedRules.d.ts +1 -1
  187. package/__dev__/validation/validate.d.ts +1 -1
  188. package/__dev__/version.d.ts +1 -1
  189. package/devMode.d.mts +29 -0
  190. package/devMode.d.ts +29 -0
  191. package/devMode.js +2 -2
  192. package/devMode.js.map +1 -1
  193. package/devMode.mjs.map +1 -1
  194. package/error/GraphQLError.d.mts +98 -14
  195. package/error/GraphQLError.d.ts +98 -14
  196. package/error/GraphQLError.js +18 -28
  197. package/error/GraphQLError.js.map +1 -1
  198. package/error/GraphQLError.mjs +11 -21
  199. package/error/GraphQLError.mjs.map +1 -1
  200. package/error/ensureGraphQLError.d.mts +3 -1
  201. package/error/ensureGraphQLError.d.ts +3 -1
  202. package/error/ensureGraphQLError.js +5 -8
  203. package/error/ensureGraphQLError.js.map +1 -1
  204. package/error/ensureGraphQLError.mjs +0 -3
  205. package/error/ensureGraphQLError.mjs.map +1 -1
  206. package/error/index.d.mts +10 -4
  207. package/error/index.d.ts +10 -4
  208. package/error/index.js +6 -6
  209. package/error/index.js.map +1 -1
  210. package/error/index.mjs.map +1 -1
  211. package/error/locatedError.d.mts +23 -3
  212. package/error/locatedError.d.ts +23 -3
  213. package/error/locatedError.js +4 -10
  214. package/error/locatedError.js.map +1 -1
  215. package/error/locatedError.mjs +0 -6
  216. package/error/locatedError.mjs.map +1 -1
  217. package/error/syntaxError.d.mts +17 -2
  218. package/error/syntaxError.d.ts +17 -2
  219. package/error/syntaxError.js +2 -6
  220. package/error/syntaxError.js.map +1 -1
  221. package/error/syntaxError.mjs +0 -4
  222. package/error/syntaxError.mjs.map +1 -1
  223. package/execution/AbortedGraphQLExecutionError.d.mts +28 -1
  224. package/execution/AbortedGraphQLExecutionError.d.ts +28 -1
  225. package/execution/AbortedGraphQLExecutionError.js.map +1 -1
  226. package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
  227. package/execution/AsyncWorkTracker.d.mts +1 -1
  228. package/execution/AsyncWorkTracker.d.ts +1 -1
  229. package/execution/AsyncWorkTracker.js +3 -7
  230. package/execution/AsyncWorkTracker.js.map +1 -1
  231. package/execution/AsyncWorkTracker.mjs +1 -5
  232. package/execution/AsyncWorkTracker.mjs.map +1 -1
  233. package/execution/ExecutionArgs.d.mts +101 -0
  234. package/execution/ExecutionArgs.d.ts +101 -0
  235. package/execution/ExecutionArgs.js +3 -0
  236. package/execution/ExecutionArgs.js.map +1 -0
  237. package/execution/ExecutionArgs.mjs +2 -0
  238. package/execution/ExecutionArgs.mjs.map +1 -0
  239. package/execution/Executor.d.mts +55 -52
  240. package/execution/Executor.d.ts +55 -52
  241. package/execution/Executor.js +84 -206
  242. package/execution/Executor.js.map +1 -1
  243. package/execution/Executor.mjs +3 -125
  244. package/execution/Executor.mjs.map +1 -1
  245. package/execution/ExecutorThrowingOnIncremental.d.mts +6 -6
  246. package/execution/ExecutorThrowingOnIncremental.d.ts +6 -6
  247. package/execution/ExecutorThrowingOnIncremental.js +11 -13
  248. package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
  249. package/execution/ExecutorThrowingOnIncremental.mjs +0 -2
  250. package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
  251. package/execution/buildResolveInfo.d.mts +16 -0
  252. package/execution/buildResolveInfo.d.ts +16 -0
  253. package/execution/buildResolveInfo.js +21 -0
  254. package/execution/buildResolveInfo.js.map +1 -0
  255. package/execution/buildResolveInfo.mjs +18 -0
  256. package/execution/buildResolveInfo.mjs.map +1 -0
  257. package/execution/cancellablePromise.d.mts +3 -0
  258. package/execution/cancellablePromise.d.ts +3 -0
  259. package/execution/cancellablePromise.js +2 -2
  260. package/execution/cancellablePromise.js.map +1 -1
  261. package/execution/cancellablePromise.mjs.map +1 -1
  262. package/execution/collectFields.d.mts +15 -9
  263. package/execution/collectFields.d.ts +15 -9
  264. package/execution/collectFields.js +19 -60
  265. package/execution/collectFields.js.map +1 -1
  266. package/execution/collectFields.mjs +0 -41
  267. package/execution/collectFields.mjs.map +1 -1
  268. package/execution/collectIteratorPromises.d.mts +2 -0
  269. package/execution/collectIteratorPromises.d.ts +2 -0
  270. package/execution/collectIteratorPromises.js +2 -7
  271. package/execution/collectIteratorPromises.js.map +1 -1
  272. package/execution/collectIteratorPromises.mjs +0 -5
  273. package/execution/collectIteratorPromises.mjs.map +1 -1
  274. package/execution/createSharedExecutionContext.d.mts +3 -2
  275. package/execution/createSharedExecutionContext.d.ts +3 -2
  276. package/execution/createSharedExecutionContext.js +2 -2
  277. package/execution/createSharedExecutionContext.js.map +1 -1
  278. package/execution/createSharedExecutionContext.mjs.map +1 -1
  279. package/execution/execute.d.mts +412 -47
  280. package/execution/execute.d.ts +412 -47
  281. package/execution/execute.js +73 -254
  282. package/execution/execute.js.map +1 -1
  283. package/execution/execute.mjs +12 -193
  284. package/execution/execute.mjs.map +1 -1
  285. package/execution/getStreamUsage.d.mts +5 -2
  286. package/execution/getStreamUsage.d.ts +5 -2
  287. package/execution/getStreamUsage.js +9 -16
  288. package/execution/getStreamUsage.js.map +1 -1
  289. package/execution/getStreamUsage.mjs +0 -7
  290. package/execution/getStreamUsage.mjs.map +1 -1
  291. package/execution/getVariableSignature.d.mts +7 -4
  292. package/execution/getVariableSignature.d.ts +7 -4
  293. package/execution/getVariableSignature.js +8 -10
  294. package/execution/getVariableSignature.js.map +1 -1
  295. package/execution/getVariableSignature.mjs +0 -2
  296. package/execution/getVariableSignature.mjs.map +1 -1
  297. package/execution/hooks.d.mts +4 -8
  298. package/execution/hooks.d.ts +4 -8
  299. package/execution/hooks.js +0 -1
  300. package/execution/hooks.js.map +1 -1
  301. package/execution/hooks.mjs +0 -1
  302. package/execution/hooks.mjs.map +1 -1
  303. package/execution/incremental/Computation.d.mts +2 -2
  304. package/execution/incremental/Computation.d.ts +2 -2
  305. package/execution/incremental/Computation.js +2 -3
  306. package/execution/incremental/Computation.js.map +1 -1
  307. package/execution/incremental/Computation.mjs +0 -1
  308. package/execution/incremental/Computation.mjs.map +1 -1
  309. package/execution/incremental/IncrementalExecutor.d.mts +137 -22
  310. package/execution/incremental/IncrementalExecutor.d.ts +137 -22
  311. package/execution/incremental/IncrementalExecutor.js +47 -77
  312. package/execution/incremental/IncrementalExecutor.js.map +1 -1
  313. package/execution/incremental/IncrementalExecutor.mjs +2 -32
  314. package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
  315. package/execution/incremental/IncrementalPublisher.d.mts +4 -6
  316. package/execution/incremental/IncrementalPublisher.d.ts +4 -6
  317. package/execution/incremental/IncrementalPublisher.js +12 -18
  318. package/execution/incremental/IncrementalPublisher.js.map +1 -1
  319. package/execution/incremental/IncrementalPublisher.mjs +0 -6
  320. package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
  321. package/execution/incremental/Queue.d.mts +1 -1
  322. package/execution/incremental/Queue.d.ts +1 -1
  323. package/execution/incremental/Queue.js +22 -79
  324. package/execution/incremental/Queue.js.map +1 -1
  325. package/execution/incremental/Queue.mjs +8 -64
  326. package/execution/incremental/Queue.mjs.map +1 -1
  327. package/execution/incremental/WorkQueue.d.mts +10 -2
  328. package/execution/incremental/WorkQueue.d.ts +10 -2
  329. package/execution/incremental/WorkQueue.js +7 -22
  330. package/execution/incremental/WorkQueue.js.map +1 -1
  331. package/execution/incremental/WorkQueue.mjs +0 -15
  332. package/execution/incremental/WorkQueue.mjs.map +1 -1
  333. package/execution/incremental/buildExecutionPlan.d.mts +4 -1
  334. package/execution/incremental/buildExecutionPlan.d.ts +4 -1
  335. package/execution/incremental/buildExecutionPlan.js +4 -4
  336. package/execution/incremental/buildExecutionPlan.js.map +1 -1
  337. package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
  338. package/execution/index.d.mts +17 -8
  339. package/execution/index.d.ts +17 -8
  340. package/execution/index.js +26 -22
  341. package/execution/index.js.map +1 -1
  342. package/execution/index.mjs +2 -1
  343. package/execution/index.mjs.map +1 -1
  344. package/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +175 -0
  345. package/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +175 -0
  346. package/execution/legacyIncremental/BranchingIncrementalExecutor.js +69 -0
  347. package/execution/legacyIncremental/BranchingIncrementalExecutor.js.map +1 -0
  348. package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +65 -0
  349. package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs.map +1 -0
  350. package/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +12 -0
  351. package/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +12 -0
  352. package/execution/legacyIncremental/BranchingIncrementalPublisher.js +131 -0
  353. package/execution/legacyIncremental/BranchingIncrementalPublisher.js.map +1 -0
  354. package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +127 -0
  355. package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs.map +1 -0
  356. package/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +165 -0
  357. package/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +165 -0
  358. package/execution/legacyIncremental/legacyExecuteIncrementally.js +17 -0
  359. package/execution/legacyIncremental/legacyExecuteIncrementally.js.map +1 -0
  360. package/execution/legacyIncremental/legacyExecuteIncrementally.mjs +13 -0
  361. package/execution/legacyIncremental/legacyExecuteIncrementally.mjs.map +1 -0
  362. package/execution/mapAsyncIterable.d.mts +3 -1
  363. package/execution/mapAsyncIterable.d.ts +3 -1
  364. package/execution/mapAsyncIterable.js +4 -9
  365. package/execution/mapAsyncIterable.js.map +1 -1
  366. package/execution/mapAsyncIterable.mjs +0 -5
  367. package/execution/mapAsyncIterable.mjs.map +1 -1
  368. package/execution/returnIteratorCatchingErrors.d.mts +1 -0
  369. package/execution/returnIteratorCatchingErrors.d.ts +1 -0
  370. package/execution/returnIteratorCatchingErrors.js +1 -2
  371. package/execution/returnIteratorCatchingErrors.js.map +1 -1
  372. package/execution/returnIteratorCatchingErrors.mjs +1 -2
  373. package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
  374. package/execution/values.d.mts +196 -14
  375. package/execution/values.d.ts +196 -14
  376. package/execution/values.js +45 -86
  377. package/execution/values.js.map +1 -1
  378. package/execution/values.mjs +14 -55
  379. package/execution/values.mjs.map +1 -1
  380. package/execution/withConcurrentAbruptClose.d.mts +3 -1
  381. package/execution/withConcurrentAbruptClose.d.ts +3 -1
  382. package/execution/withConcurrentAbruptClose.js +3 -17
  383. package/execution/withConcurrentAbruptClose.js.map +1 -1
  384. package/execution/withConcurrentAbruptClose.mjs +1 -15
  385. package/execution/withConcurrentAbruptClose.mjs.map +1 -1
  386. package/graphql.d.mts +198 -50
  387. package/graphql.d.ts +198 -50
  388. package/graphql.js +11 -23
  389. package/graphql.js.map +1 -1
  390. package/graphql.mjs +0 -12
  391. package/graphql.mjs.map +1 -1
  392. package/harness.d.mts +21 -4
  393. package/harness.d.ts +21 -4
  394. package/harness.js +7 -7
  395. package/harness.js.map +1 -1
  396. package/harness.mjs.map +1 -1
  397. package/index.d.mts +41 -39
  398. package/index.d.ts +41 -39
  399. package/index.js +260 -346
  400. package/index.js.map +1 -1
  401. package/index.mjs +5 -149
  402. package/index.mjs.map +1 -1
  403. package/jsutils/AccumulatorMap.d.mts +2 -0
  404. package/jsutils/AccumulatorMap.d.ts +2 -0
  405. package/jsutils/AccumulatorMap.js +0 -4
  406. package/jsutils/AccumulatorMap.js.map +1 -1
  407. package/jsutils/AccumulatorMap.mjs +0 -4
  408. package/jsutils/AccumulatorMap.mjs.map +1 -1
  409. package/jsutils/Maybe.d.mts +5 -1
  410. package/jsutils/Maybe.d.ts +5 -1
  411. package/jsutils/Maybe.js.map +1 -1
  412. package/jsutils/Maybe.mjs.map +1 -1
  413. package/jsutils/ObjMap.d.mts +6 -0
  414. package/jsutils/ObjMap.d.ts +6 -0
  415. package/jsutils/ObjMap.js.map +1 -1
  416. package/jsutils/ObjMap.mjs.map +1 -1
  417. package/jsutils/Path.d.mts +31 -1
  418. package/jsutils/Path.d.ts +31 -1
  419. package/jsutils/Path.js +0 -6
  420. package/jsutils/Path.js.map +1 -1
  421. package/jsutils/Path.mjs +0 -6
  422. package/jsutils/Path.mjs.map +1 -1
  423. package/jsutils/PromiseOrValue.d.mts +1 -0
  424. package/jsutils/PromiseOrValue.d.ts +1 -0
  425. package/jsutils/PromiseOrValue.js.map +1 -1
  426. package/jsutils/PromiseOrValue.mjs.map +1 -1
  427. package/jsutils/capitalize.d.mts +2 -0
  428. package/jsutils/capitalize.d.ts +2 -0
  429. package/jsutils/capitalize.js +0 -3
  430. package/jsutils/capitalize.js.map +1 -1
  431. package/jsutils/capitalize.mjs +0 -3
  432. package/jsutils/capitalize.mjs.map +1 -1
  433. package/jsutils/devAssert.d.mts +1 -0
  434. package/jsutils/devAssert.d.ts +1 -0
  435. package/jsutils/devAssert.js.map +1 -1
  436. package/jsutils/devAssert.mjs.map +1 -1
  437. package/jsutils/didYouMean.d.mts +4 -1
  438. package/jsutils/didYouMean.d.ts +4 -1
  439. package/jsutils/didYouMean.js +2 -2
  440. package/jsutils/didYouMean.js.map +1 -1
  441. package/jsutils/didYouMean.mjs.map +1 -1
  442. package/jsutils/formatList.d.mts +6 -2
  443. package/jsutils/formatList.d.ts +6 -2
  444. package/jsutils/formatList.js +2 -8
  445. package/jsutils/formatList.js.map +1 -1
  446. package/jsutils/formatList.mjs +0 -6
  447. package/jsutils/formatList.mjs.map +1 -1
  448. package/jsutils/getBySet.d.mts +1 -0
  449. package/jsutils/getBySet.d.ts +1 -0
  450. package/jsutils/getBySet.js +2 -2
  451. package/jsutils/getBySet.js.map +1 -1
  452. package/jsutils/getBySet.mjs.map +1 -1
  453. package/jsutils/groupBy.d.mts +2 -0
  454. package/jsutils/groupBy.d.ts +2 -0
  455. package/jsutils/groupBy.js +2 -5
  456. package/jsutils/groupBy.js.map +1 -1
  457. package/jsutils/groupBy.mjs +0 -3
  458. package/jsutils/groupBy.mjs.map +1 -1
  459. package/jsutils/identityFunc.d.mts +2 -0
  460. package/jsutils/identityFunc.d.ts +2 -0
  461. package/jsutils/identityFunc.js +0 -3
  462. package/jsutils/identityFunc.js.map +1 -1
  463. package/jsutils/identityFunc.mjs +0 -3
  464. package/jsutils/identityFunc.mjs.map +1 -1
  465. package/jsutils/inspect.d.mts +2 -0
  466. package/jsutils/inspect.d.ts +2 -0
  467. package/jsutils/inspect.js +0 -4
  468. package/jsutils/inspect.js.map +1 -1
  469. package/jsutils/inspect.mjs +0 -4
  470. package/jsutils/inspect.mjs.map +1 -1
  471. package/jsutils/instanceOf.d.mts +2 -0
  472. package/jsutils/instanceOf.d.ts +2 -0
  473. package/jsutils/instanceOf.js +3 -14
  474. package/jsutils/instanceOf.js.map +1 -1
  475. package/jsutils/instanceOf.mjs +1 -12
  476. package/jsutils/instanceOf.mjs.map +1 -1
  477. package/jsutils/invariant.d.mts +1 -0
  478. package/jsutils/invariant.d.ts +1 -0
  479. package/jsutils/invariant.js.map +1 -1
  480. package/jsutils/invariant.mjs.map +1 -1
  481. package/jsutils/isAsyncIterable.d.mts +2 -0
  482. package/jsutils/isAsyncIterable.d.ts +2 -0
  483. package/jsutils/isAsyncIterable.js +0 -4
  484. package/jsutils/isAsyncIterable.js.map +1 -1
  485. package/jsutils/isAsyncIterable.mjs +0 -4
  486. package/jsutils/isAsyncIterable.mjs.map +1 -1
  487. package/jsutils/isIterableObject.d.mts +6 -5
  488. package/jsutils/isIterableObject.d.ts +6 -5
  489. package/jsutils/isIterableObject.js +0 -17
  490. package/jsutils/isIterableObject.js.map +1 -1
  491. package/jsutils/isIterableObject.mjs +0 -17
  492. package/jsutils/isIterableObject.mjs.map +1 -1
  493. package/jsutils/isObjectLike.d.mts +2 -0
  494. package/jsutils/isObjectLike.d.ts +2 -0
  495. package/jsutils/isObjectLike.js +0 -4
  496. package/jsutils/isObjectLike.js.map +1 -1
  497. package/jsutils/isObjectLike.mjs +0 -4
  498. package/jsutils/isObjectLike.mjs.map +1 -1
  499. package/jsutils/isPromise.d.mts +3 -0
  500. package/jsutils/isPromise.d.ts +3 -0
  501. package/jsutils/isPromise.js +0 -4
  502. package/jsutils/isPromise.js.map +1 -1
  503. package/jsutils/isPromise.mjs +0 -4
  504. package/jsutils/isPromise.mjs.map +1 -1
  505. package/jsutils/isSameSet.d.mts +1 -0
  506. package/jsutils/isSameSet.d.ts +1 -0
  507. package/jsutils/isSameSet.js.map +1 -1
  508. package/jsutils/isSameSet.mjs.map +1 -1
  509. package/jsutils/keyMap.d.mts +8 -15
  510. package/jsutils/keyMap.d.ts +8 -15
  511. package/jsutils/keyMap.js +0 -27
  512. package/jsutils/keyMap.js.map +1 -1
  513. package/jsutils/keyMap.mjs +0 -27
  514. package/jsutils/keyMap.mjs.map +1 -1
  515. package/jsutils/keyValMap.d.mts +10 -7
  516. package/jsutils/keyValMap.d.ts +10 -7
  517. package/jsutils/keyValMap.js +0 -17
  518. package/jsutils/keyValMap.js.map +1 -1
  519. package/jsutils/keyValMap.mjs +0 -17
  520. package/jsutils/keyValMap.mjs.map +1 -1
  521. package/jsutils/mapValue.d.mts +3 -1
  522. package/jsutils/mapValue.d.ts +3 -1
  523. package/jsutils/mapValue.js +0 -4
  524. package/jsutils/mapValue.js.map +1 -1
  525. package/jsutils/mapValue.mjs +0 -4
  526. package/jsutils/mapValue.mjs.map +1 -1
  527. package/jsutils/memoize1.d.mts +2 -0
  528. package/jsutils/memoize1.d.ts +2 -0
  529. package/jsutils/memoize1.js +0 -3
  530. package/jsutils/memoize1.js.map +1 -1
  531. package/jsutils/memoize1.mjs +0 -3
  532. package/jsutils/memoize1.mjs.map +1 -1
  533. package/jsutils/memoize2.d.mts +2 -0
  534. package/jsutils/memoize2.d.ts +2 -0
  535. package/jsutils/memoize2.js +0 -3
  536. package/jsutils/memoize2.js.map +1 -1
  537. package/jsutils/memoize2.mjs +0 -3
  538. package/jsutils/memoize2.mjs.map +1 -1
  539. package/jsutils/memoize3.d.mts +2 -0
  540. package/jsutils/memoize3.d.ts +2 -0
  541. package/jsutils/memoize3.js +0 -3
  542. package/jsutils/memoize3.js.map +1 -1
  543. package/jsutils/memoize3.mjs +0 -3
  544. package/jsutils/memoize3.mjs.map +1 -1
  545. package/jsutils/naturalCompare.d.mts +1 -0
  546. package/jsutils/naturalCompare.d.ts +1 -0
  547. package/jsutils/naturalCompare.js +0 -7
  548. package/jsutils/naturalCompare.js.map +1 -1
  549. package/jsutils/naturalCompare.mjs +0 -7
  550. package/jsutils/naturalCompare.mjs.map +1 -1
  551. package/jsutils/printPathArray.d.mts +2 -0
  552. package/jsutils/printPathArray.d.ts +2 -0
  553. package/jsutils/printPathArray.js +0 -3
  554. package/jsutils/printPathArray.js.map +1 -1
  555. package/jsutils/printPathArray.mjs +0 -3
  556. package/jsutils/printPathArray.mjs.map +1 -1
  557. package/jsutils/promiseForObject.d.mts +4 -2
  558. package/jsutils/promiseForObject.d.ts +4 -2
  559. package/jsutils/promiseForObject.js +0 -7
  560. package/jsutils/promiseForObject.js.map +1 -1
  561. package/jsutils/promiseForObject.mjs +0 -7
  562. package/jsutils/promiseForObject.mjs.map +1 -1
  563. package/jsutils/promiseReduce.d.mts +3 -1
  564. package/jsutils/promiseReduce.d.ts +3 -1
  565. package/jsutils/promiseReduce.js +2 -9
  566. package/jsutils/promiseReduce.js.map +1 -1
  567. package/jsutils/promiseReduce.mjs +0 -7
  568. package/jsutils/promiseReduce.mjs.map +1 -1
  569. package/jsutils/promiseWithResolvers.d.mts +3 -1
  570. package/jsutils/promiseWithResolvers.d.ts +3 -1
  571. package/jsutils/promiseWithResolvers.js +0 -5
  572. package/jsutils/promiseWithResolvers.js.map +1 -1
  573. package/jsutils/promiseWithResolvers.mjs +0 -5
  574. package/jsutils/promiseWithResolvers.mjs.map +1 -1
  575. package/jsutils/suggestionList.d.mts +2 -0
  576. package/jsutils/suggestionList.d.ts +2 -0
  577. package/jsutils/suggestionList.js +3 -26
  578. package/jsutils/suggestionList.js.map +1 -1
  579. package/jsutils/suggestionList.mjs +1 -24
  580. package/jsutils/suggestionList.mjs.map +1 -1
  581. package/jsutils/toError.d.mts +2 -0
  582. package/jsutils/toError.d.ts +2 -0
  583. package/jsutils/toError.js +2 -5
  584. package/jsutils/toError.js.map +1 -1
  585. package/jsutils/toError.mjs +0 -3
  586. package/jsutils/toError.mjs.map +1 -1
  587. package/jsutils/toObjMap.d.mts +4 -2
  588. package/jsutils/toObjMap.d.ts +4 -2
  589. package/jsutils/toObjMap.js.map +1 -1
  590. package/jsutils/toObjMap.mjs.map +1 -1
  591. package/language/KindTypeMap.d.mts +2 -1
  592. package/language/KindTypeMap.d.ts +2 -1
  593. package/language/KindTypeMap.js.map +1 -1
  594. package/language/KindTypeMap.mjs.map +1 -1
  595. package/language/ast.d.mts +425 -58
  596. package/language/ast.d.ts +425 -58
  597. package/language/ast.js +8 -21
  598. package/language/ast.js.map +1 -1
  599. package/language/ast.mjs +8 -21
  600. package/language/ast.mjs.map +1 -1
  601. package/language/blockString.d.mts +1 -3
  602. package/language/blockString.d.ts +1 -3
  603. package/language/blockString.js +15 -41
  604. package/language/blockString.js.map +1 -1
  605. package/language/blockString.mjs +11 -37
  606. package/language/blockString.mjs.map +1 -1
  607. package/language/characterClasses.js +2 -45
  608. package/language/characterClasses.js.map +1 -1
  609. package/language/characterClasses.mjs +2 -45
  610. package/language/characterClasses.mjs.map +1 -1
  611. package/language/directiveLocation.d.mts +26 -6
  612. package/language/directiveLocation.d.ts +26 -6
  613. package/language/directiveLocation.js +2 -6
  614. package/language/directiveLocation.js.map +1 -1
  615. package/language/directiveLocation.mjs +2 -6
  616. package/language/directiveLocation.mjs.map +1 -1
  617. package/language/index.d.mts +22 -16
  618. package/language/index.d.ts +22 -16
  619. package/language/index.js +45 -49
  620. package/language/index.js.map +1 -1
  621. package/language/index.mjs +0 -4
  622. package/language/index.mjs.map +1 -1
  623. package/language/kinds.d.mts +5 -2
  624. package/language/kinds.d.ts +5 -2
  625. package/language/kinds.js.map +1 -1
  626. package/language/kinds.mjs.map +1 -1
  627. package/language/kinds_.d.mts +102 -12
  628. package/language/kinds_.d.ts +102 -12
  629. package/language/kinds_.js +2 -14
  630. package/language/kinds_.js.map +1 -1
  631. package/language/kinds_.mjs +1 -13
  632. package/language/kinds_.mjs.map +1 -1
  633. package/language/lexer.d.mts +51 -18
  634. package/language/lexer.d.ts +51 -18
  635. package/language/lexer.js +102 -343
  636. package/language/lexer.js.map +1 -1
  637. package/language/lexer.mjs +37 -278
  638. package/language/lexer.mjs.map +1 -1
  639. package/language/location.d.mts +17 -4
  640. package/language/location.d.ts +17 -4
  641. package/language/location.js +2 -6
  642. package/language/location.js.map +1 -1
  643. package/language/location.mjs +0 -4
  644. package/language/location.mjs.map +1 -1
  645. package/language/parser.d.mts +243 -15
  646. package/language/parser.d.ts +243 -15
  647. package/language/parser.js +183 -528
  648. package/language/parser.js.map +1 -1
  649. package/language/parser.mjs +26 -371
  650. package/language/parser.mjs.map +1 -1
  651. package/language/predicates.d.mts +182 -1
  652. package/language/predicates.d.ts +182 -1
  653. package/language/predicates.js +45 -49
  654. package/language/predicates.js.map +1 -1
  655. package/language/predicates.mjs +3 -7
  656. package/language/predicates.mjs.map +1 -1
  657. package/language/printLocation.d.mts +31 -3
  658. package/language/printLocation.d.ts +31 -3
  659. package/language/printLocation.js +2 -10
  660. package/language/printLocation.js.map +1 -1
  661. package/language/printLocation.mjs +0 -8
  662. package/language/printLocation.mjs.map +1 -1
  663. package/language/printString.d.mts +2 -0
  664. package/language/printString.d.ts +2 -0
  665. package/language/printString.js +5 -11
  666. package/language/printString.js.map +1 -1
  667. package/language/printString.mjs +5 -11
  668. package/language/printString.mjs.map +1 -1
  669. package/language/printer.d.mts +13 -1
  670. package/language/printer.d.ts +13 -1
  671. package/language/printer.js +10 -31
  672. package/language/printer.js.map +1 -1
  673. package/language/printer.mjs +5 -26
  674. package/language/printer.mjs.map +1 -1
  675. package/language/schemaCoordinateLexer.d.mts +17 -3
  676. package/language/schemaCoordinateLexer.d.ts +17 -3
  677. package/language/schemaCoordinateLexer.js +21 -51
  678. package/language/schemaCoordinateLexer.js.map +1 -1
  679. package/language/schemaCoordinateLexer.mjs +5 -35
  680. package/language/schemaCoordinateLexer.mjs.map +1 -1
  681. package/language/source.d.mts +28 -1
  682. package/language/source.d.ts +28 -1
  683. package/language/source.js +5 -17
  684. package/language/source.js.map +1 -1
  685. package/language/source.mjs +0 -12
  686. package/language/source.mjs.map +1 -1
  687. package/language/tokenKind.d.mts +5 -0
  688. package/language/tokenKind.d.ts +5 -0
  689. package/language/tokenKind.js +0 -4
  690. package/language/tokenKind.js.map +1 -1
  691. package/language/tokenKind.mjs +0 -4
  692. package/language/tokenKind.mjs.map +1 -1
  693. package/language/visitor.d.mts +184 -74
  694. package/language/visitor.d.ts +184 -74
  695. package/language/visitor.js +10 -25
  696. package/language/visitor.js.map +1 -1
  697. package/language/visitor.mjs +0 -15
  698. package/language/visitor.mjs.map +1 -1
  699. package/package.json +2 -2
  700. package/type/assertName.d.mts +18 -1
  701. package/type/assertName.d.ts +18 -1
  702. package/type/assertName.js +8 -16
  703. package/type/assertName.js.map +1 -1
  704. package/type/assertName.mjs +0 -8
  705. package/type/assertName.mjs.map +1 -1
  706. package/type/definition.d.mts +3268 -138
  707. package/type/definition.d.ts +3268 -138
  708. package/type/definition.js +99 -346
  709. package/type/definition.js.map +1 -1
  710. package/type/definition.mjs +5 -252
  711. package/type/definition.mjs.map +1 -1
  712. package/type/directives.d.mts +220 -26
  713. package/type/directives.d.ts +220 -26
  714. package/type/directives.js +51 -83
  715. package/type/directives.js.map +1 -1
  716. package/type/directives.mjs +5 -37
  717. package/type/directives.mjs.map +1 -1
  718. package/type/index.d.mts +18 -12
  719. package/type/index.d.ts +18 -12
  720. package/type/index.js +106 -129
  721. package/type/index.js.map +1 -1
  722. package/type/index.mjs +5 -48
  723. package/type/index.mjs.map +1 -1
  724. package/type/introspection.d.mts +38 -2
  725. package/type/introspection.d.ts +38 -2
  726. package/type/introspection.js +122 -107
  727. package/type/introspection.js.map +1 -1
  728. package/type/introspection.mjs +24 -9
  729. package/type/introspection.mjs.map +1 -1
  730. package/type/scalars.d.mts +31 -4
  731. package/type/scalars.d.ts +31 -4
  732. package/type/scalars.js +61 -76
  733. package/type/scalars.js.map +1 -1
  734. package/type/scalars.mjs +0 -15
  735. package/type/scalars.mjs.map +1 -1
  736. package/type/schema.d.mts +514 -38
  737. package/type/schema.d.ts +514 -38
  738. package/type/schema.js +32 -129
  739. package/type/schema.js.map +1 -1
  740. package/type/schema.mjs +0 -97
  741. package/type/schema.mjs.map +1 -1
  742. package/type/validate.d.mts +36 -7
  743. package/type/validate.d.ts +36 -7
  744. package/type/validate.js +83 -195
  745. package/type/validate.js.map +1 -1
  746. package/type/validate.mjs +1 -113
  747. package/type/validate.mjs.map +1 -1
  748. package/utilities/TypeInfo.d.mts +570 -7
  749. package/utilities/TypeInfo.d.ts +570 -7
  750. package/utilities/TypeInfo.js +62 -85
  751. package/utilities/TypeInfo.js.map +1 -1
  752. package/utilities/TypeInfo.mjs +2 -25
  753. package/utilities/TypeInfo.mjs.map +1 -1
  754. package/utilities/astFromValue.d.mts +39 -6
  755. package/utilities/astFromValue.d.ts +39 -6
  756. package/utilities/astFromValue.js +30 -74
  757. package/utilities/astFromValue.js.map +1 -1
  758. package/utilities/astFromValue.mjs +0 -44
  759. package/utilities/astFromValue.mjs.map +1 -1
  760. package/utilities/buildASTSchema.d.mts +71 -11
  761. package/utilities/buildASTSchema.d.ts +71 -11
  762. package/utilities/buildASTSchema.js +11 -31
  763. package/utilities/buildASTSchema.js.map +1 -1
  764. package/utilities/buildASTSchema.mjs +1 -21
  765. package/utilities/buildASTSchema.mjs.map +1 -1
  766. package/utilities/buildClientSchema.d.mts +20 -5
  767. package/utilities/buildClientSchema.d.ts +20 -5
  768. package/utilities/buildClientSchema.js +53 -83
  769. package/utilities/buildClientSchema.js.map +1 -1
  770. package/utilities/buildClientSchema.mjs +1 -30
  771. package/utilities/buildClientSchema.mjs.map +1 -1
  772. package/utilities/coerceInputValue.d.mts +88 -6
  773. package/utilities/coerceInputValue.d.ts +88 -6
  774. package/utilities/coerceInputValue.js +52 -81
  775. package/utilities/coerceInputValue.js.map +1 -1
  776. package/utilities/coerceInputValue.mjs +21 -50
  777. package/utilities/coerceInputValue.mjs.map +1 -1
  778. package/utilities/concatAST.d.mts +13 -1
  779. package/utilities/concatAST.d.ts +13 -1
  780. package/utilities/concatAST.js +2 -7
  781. package/utilities/concatAST.js.map +1 -1
  782. package/utilities/concatAST.mjs +0 -5
  783. package/utilities/concatAST.mjs.map +1 -1
  784. package/utilities/extendSchema.d.mts +61 -6
  785. package/utilities/extendSchema.d.ts +61 -6
  786. package/utilities/extendSchema.js +92 -126
  787. package/utilities/extendSchema.js.map +1 -1
  788. package/utilities/extendSchema.mjs +27 -61
  789. package/utilities/extendSchema.mjs.map +1 -1
  790. package/utilities/findSchemaChanges.d.mts +100 -2
  791. package/utilities/findSchemaChanges.d.ts +100 -2
  792. package/utilities/findSchemaChanges.js +41 -75
  793. package/utilities/findSchemaChanges.js.map +1 -1
  794. package/utilities/findSchemaChanges.mjs +3 -37
  795. package/utilities/findSchemaChanges.mjs.map +1 -1
  796. package/utilities/getDefaultValueAST.d.mts +3 -2
  797. package/utilities/getDefaultValueAST.d.ts +3 -2
  798. package/utilities/getDefaultValueAST.js +7 -7
  799. package/utilities/getDefaultValueAST.js.map +1 -1
  800. package/utilities/getDefaultValueAST.mjs.map +1 -1
  801. package/utilities/getIntrospectionQuery.d.mts +151 -3
  802. package/utilities/getIntrospectionQuery.d.ts +151 -3
  803. package/utilities/getIntrospectionQuery.js +22 -42
  804. package/utilities/getIntrospectionQuery.js.map +1 -1
  805. package/utilities/getIntrospectionQuery.mjs +22 -42
  806. package/utilities/getIntrospectionQuery.mjs.map +1 -1
  807. package/utilities/getOperationAST.d.mts +17 -2
  808. package/utilities/getOperationAST.d.ts +17 -2
  809. package/utilities/getOperationAST.js +2 -10
  810. package/utilities/getOperationAST.js.map +1 -1
  811. package/utilities/getOperationAST.mjs +0 -8
  812. package/utilities/getOperationAST.mjs.map +1 -1
  813. package/utilities/index.d.mts +45 -30
  814. package/utilities/index.d.ts +45 -30
  815. package/utilities/index.js +61 -88
  816. package/utilities/index.js.map +1 -1
  817. package/utilities/index.mjs +4 -37
  818. package/utilities/index.mjs.map +1 -1
  819. package/utilities/introspectionFromSchema.d.mts +56 -2
  820. package/utilities/introspectionFromSchema.d.ts +56 -2
  821. package/utilities/introspectionFromSchema.js +8 -16
  822. package/utilities/introspectionFromSchema.js.map +1 -1
  823. package/utilities/introspectionFromSchema.mjs +1 -9
  824. package/utilities/introspectionFromSchema.mjs.map +1 -1
  825. package/utilities/lexicographicSortSchema.d.mts +36 -1
  826. package/utilities/lexicographicSortSchema.d.ts +36 -1
  827. package/utilities/lexicographicSortSchema.js +14 -19
  828. package/utilities/lexicographicSortSchema.js.map +1 -1
  829. package/utilities/lexicographicSortSchema.mjs +0 -5
  830. package/utilities/lexicographicSortSchema.mjs.map +1 -1
  831. package/utilities/mapSchemaConfig.d.mts +9 -6
  832. package/utilities/mapSchemaConfig.d.ts +9 -6
  833. package/utilities/mapSchemaConfig.js +28 -40
  834. package/utilities/mapSchemaConfig.js.map +1 -1
  835. package/utilities/mapSchemaConfig.mjs +0 -12
  836. package/utilities/mapSchemaConfig.mjs.map +1 -1
  837. package/utilities/printSchema.d.mts +87 -3
  838. package/utilities/printSchema.d.ts +87 -3
  839. package/utilities/printSchema.js +30 -59
  840. package/utilities/printSchema.js.map +1 -1
  841. package/utilities/printSchema.mjs +1 -30
  842. package/utilities/printSchema.mjs.map +1 -1
  843. package/utilities/replaceVariables.d.mts +40 -4
  844. package/utilities/replaceVariables.d.ts +40 -4
  845. package/utilities/replaceVariables.js +9 -17
  846. package/utilities/replaceVariables.js.map +1 -1
  847. package/utilities/replaceVariables.mjs +0 -8
  848. package/utilities/replaceVariables.mjs.map +1 -1
  849. package/utilities/resolveSchemaCoordinate.d.mts +67 -5
  850. package/utilities/resolveSchemaCoordinate.d.ts +67 -5
  851. package/utilities/resolveSchemaCoordinate.js +23 -79
  852. package/utilities/resolveSchemaCoordinate.js.map +1 -1
  853. package/utilities/resolveSchemaCoordinate.mjs +0 -56
  854. package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
  855. package/utilities/separateOperations.d.mts +32 -2
  856. package/utilities/separateOperations.d.ts +32 -2
  857. package/utilities/separateOperations.js +7 -22
  858. package/utilities/separateOperations.js.map +1 -1
  859. package/utilities/separateOperations.mjs +0 -15
  860. package/utilities/separateOperations.mjs.map +1 -1
  861. package/utilities/sortValueNode.d.mts +1 -1
  862. package/utilities/sortValueNode.d.ts +1 -1
  863. package/utilities/sortValueNode.js +12 -19
  864. package/utilities/sortValueNode.js.map +1 -1
  865. package/utilities/sortValueNode.mjs +0 -7
  866. package/utilities/sortValueNode.mjs.map +1 -1
  867. package/utilities/stripIgnoredCharacters.d.mts +14 -7
  868. package/utilities/stripIgnoredCharacters.d.ts +14 -7
  869. package/utilities/stripIgnoredCharacters.js +11 -76
  870. package/utilities/stripIgnoredCharacters.js.map +1 -1
  871. package/utilities/stripIgnoredCharacters.mjs +0 -65
  872. package/utilities/stripIgnoredCharacters.mjs.map +1 -1
  873. package/utilities/typeComparators.d.mts +86 -2
  874. package/utilities/typeComparators.d.ts +86 -2
  875. package/utilities/typeComparators.js +14 -47
  876. package/utilities/typeComparators.js.map +1 -1
  877. package/utilities/typeComparators.mjs +0 -33
  878. package/utilities/typeComparators.mjs.map +1 -1
  879. package/utilities/typeFromAST.d.mts +90 -4
  880. package/utilities/typeFromAST.d.ts +90 -4
  881. package/utilities/typeFromAST.js +7 -7
  882. package/utilities/typeFromAST.js.map +1 -1
  883. package/utilities/typeFromAST.mjs.map +1 -1
  884. package/utilities/typedQueryDocumentNode.d.mts +5 -1
  885. package/utilities/typedQueryDocumentNode.d.ts +5 -1
  886. package/utilities/typedQueryDocumentNode.js.map +1 -1
  887. package/utilities/typedQueryDocumentNode.mjs.map +1 -1
  888. package/utilities/validateInputValue.d.mts +129 -6
  889. package/utilities/validateInputValue.d.ts +129 -6
  890. package/utilities/validateInputValue.js +60 -80
  891. package/utilities/validateInputValue.js.map +1 -1
  892. package/utilities/validateInputValue.mjs +0 -20
  893. package/utilities/validateInputValue.mjs.map +1 -1
  894. package/utilities/valueFromAST.d.mts +45 -4
  895. package/utilities/valueFromAST.d.ts +45 -4
  896. package/utilities/valueFromAST.js +32 -72
  897. package/utilities/valueFromAST.js.map +1 -1
  898. package/utilities/valueFromAST.mjs +13 -53
  899. package/utilities/valueFromAST.mjs.map +1 -1
  900. package/utilities/valueFromASTUntyped.d.mts +18 -5
  901. package/utilities/valueFromASTUntyped.d.ts +18 -5
  902. package/utilities/valueFromASTUntyped.js +12 -28
  903. package/utilities/valueFromASTUntyped.js.map +1 -1
  904. package/utilities/valueFromASTUntyped.mjs +0 -16
  905. package/utilities/valueFromASTUntyped.mjs.map +1 -1
  906. package/utilities/valueToLiteral.d.mts +32 -3
  907. package/utilities/valueToLiteral.d.ts +32 -3
  908. package/utilities/valueToLiteral.js +37 -70
  909. package/utilities/valueToLiteral.js.map +1 -1
  910. package/utilities/valueToLiteral.mjs +7 -40
  911. package/utilities/valueToLiteral.mjs.map +1 -1
  912. package/validation/ValidationContext.d.mts +499 -9
  913. package/validation/ValidationContext.d.ts +499 -9
  914. package/validation/ValidationContext.js +9 -16
  915. package/validation/ValidationContext.js.map +1 -1
  916. package/validation/ValidationContext.mjs +1 -8
  917. package/validation/ValidationContext.mjs.map +1 -1
  918. package/validation/index.d.mts +53 -46
  919. package/validation/index.d.ts +53 -46
  920. package/validation/index.js +91 -125
  921. package/validation/index.js.map +1 -1
  922. package/validation/index.mjs +0 -34
  923. package/validation/index.mjs.map +1 -1
  924. package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +32 -2
  925. package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +32 -2
  926. package/validation/rules/DeferStreamDirectiveLabelRule.js +9 -14
  927. package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
  928. package/validation/rules/DeferStreamDirectiveLabelRule.mjs +0 -5
  929. package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
  930. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +30 -2
  931. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +30 -2
  932. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +8 -13
  933. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
  934. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs +0 -5
  935. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
  936. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +54 -2
  937. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +54 -2
  938. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +14 -19
  939. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
  940. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs +0 -5
  941. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
  942. package/validation/rules/ExecutableDefinitionsRule.d.mts +30 -2
  943. package/validation/rules/ExecutableDefinitionsRule.d.ts +30 -2
  944. package/validation/rules/ExecutableDefinitionsRule.js +7 -15
  945. package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
  946. package/validation/rules/ExecutableDefinitionsRule.mjs +0 -8
  947. package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
  948. package/validation/rules/FieldsOnCorrectTypeRule.d.mts +30 -2
  949. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +30 -2
  950. package/validation/rules/FieldsOnCorrectTypeRule.js +14 -41
  951. package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
  952. package/validation/rules/FieldsOnCorrectTypeRule.mjs +0 -27
  953. package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
  954. package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +30 -2
  955. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +30 -2
  956. package/validation/rules/FragmentsOnCompositeTypesRule.js +12 -21
  957. package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
  958. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +0 -9
  959. package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
  960. package/validation/rules/KnownArgumentNamesRule.d.mts +31 -5
  961. package/validation/rules/KnownArgumentNamesRule.d.ts +31 -5
  962. package/validation/rules/KnownArgumentNamesRule.js +16 -29
  963. package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
  964. package/validation/rules/KnownArgumentNamesRule.mjs +0 -13
  965. package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
  966. package/validation/rules/KnownDirectivesRule.d.mts +30 -2
  967. package/validation/rules/KnownDirectivesRule.d.ts +30 -2
  968. package/validation/rules/KnownDirectivesRule.js +66 -73
  969. package/validation/rules/KnownDirectivesRule.js.map +1 -1
  970. package/validation/rules/KnownDirectivesRule.mjs +3 -10
  971. package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
  972. package/validation/rules/KnownFragmentNamesRule.d.mts +30 -2
  973. package/validation/rules/KnownFragmentNamesRule.d.ts +30 -2
  974. package/validation/rules/KnownFragmentNamesRule.js +2 -10
  975. package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
  976. package/validation/rules/KnownFragmentNamesRule.mjs +0 -8
  977. package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
  978. package/validation/rules/KnownOperationTypesRule.d.mts +22 -2
  979. package/validation/rules/KnownOperationTypesRule.d.ts +22 -2
  980. package/validation/rules/KnownOperationTypesRule.js +2 -10
  981. package/validation/rules/KnownOperationTypesRule.js.map +1 -1
  982. package/validation/rules/KnownOperationTypesRule.mjs +0 -8
  983. package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
  984. package/validation/rules/KnownTypeNamesRule.d.mts +30 -2
  985. package/validation/rules/KnownTypeNamesRule.d.ts +30 -2
  986. package/validation/rules/KnownTypeNamesRule.js +11 -19
  987. package/validation/rules/KnownTypeNamesRule.js.map +1 -1
  988. package/validation/rules/KnownTypeNamesRule.mjs +0 -8
  989. package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
  990. package/validation/rules/LoneAnonymousOperationRule.d.mts +30 -2
  991. package/validation/rules/LoneAnonymousOperationRule.d.ts +30 -2
  992. package/validation/rules/LoneAnonymousOperationRule.js +4 -12
  993. package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
  994. package/validation/rules/LoneAnonymousOperationRule.mjs +0 -8
  995. package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
  996. package/validation/rules/LoneSchemaDefinitionRule.d.mts +23 -2
  997. package/validation/rules/LoneSchemaDefinitionRule.d.ts +23 -2
  998. package/validation/rules/LoneSchemaDefinitionRule.js +3 -8
  999. package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
  1000. package/validation/rules/LoneSchemaDefinitionRule.mjs +0 -5
  1001. package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
  1002. package/validation/rules/MaxIntrospectionDepthRule.d.mts +33 -2
  1003. package/validation/rules/MaxIntrospectionDepthRule.d.ts +33 -2
  1004. package/validation/rules/MaxIntrospectionDepthRule.js +5 -19
  1005. package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
  1006. package/validation/rules/MaxIntrospectionDepthRule.mjs +0 -14
  1007. package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
  1008. package/validation/rules/NoFragmentCyclesRule.d.mts +30 -2
  1009. package/validation/rules/NoFragmentCyclesRule.d.ts +30 -2
  1010. package/validation/rules/NoFragmentCyclesRule.js +2 -17
  1011. package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
  1012. package/validation/rules/NoFragmentCyclesRule.mjs +0 -15
  1013. package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
  1014. package/validation/rules/NoUndefinedVariablesRule.d.mts +30 -2
  1015. package/validation/rules/NoUndefinedVariablesRule.d.ts +30 -2
  1016. package/validation/rules/NoUndefinedVariablesRule.js +2 -10
  1017. package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
  1018. package/validation/rules/NoUndefinedVariablesRule.mjs +0 -8
  1019. package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
  1020. package/validation/rules/NoUnusedFragmentsRule.d.mts +30 -2
  1021. package/validation/rules/NoUnusedFragmentsRule.d.ts +30 -2
  1022. package/validation/rules/NoUnusedFragmentsRule.js +2 -10
  1023. package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
  1024. package/validation/rules/NoUnusedFragmentsRule.mjs +0 -8
  1025. package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
  1026. package/validation/rules/NoUnusedVariablesRule.d.mts +31 -2
  1027. package/validation/rules/NoUnusedVariablesRule.d.ts +31 -2
  1028. package/validation/rules/NoUnusedVariablesRule.js +3 -11
  1029. package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
  1030. package/validation/rules/NoUnusedVariablesRule.mjs +0 -8
  1031. package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
  1032. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +35 -2
  1033. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +35 -2
  1034. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +32 -206
  1035. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
  1036. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +1 -175
  1037. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
  1038. package/validation/rules/PossibleFragmentSpreadsRule.d.mts +38 -2
  1039. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +38 -2
  1040. package/validation/rules/PossibleFragmentSpreadsRule.js +17 -24
  1041. package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
  1042. package/validation/rules/PossibleFragmentSpreadsRule.mjs +0 -7
  1043. package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
  1044. package/validation/rules/PossibleTypeExtensionsRule.d.mts +23 -2
  1045. package/validation/rules/PossibleTypeExtensionsRule.d.ts +23 -2
  1046. package/validation/rules/PossibleTypeExtensionsRule.js +38 -49
  1047. package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
  1048. package/validation/rules/PossibleTypeExtensionsRule.mjs +0 -11
  1049. package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
  1050. package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +31 -5
  1051. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +31 -5
  1052. package/validation/rules/ProvidedRequiredArgumentsRule.js +20 -33
  1053. package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
  1054. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +0 -13
  1055. package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
  1056. package/validation/rules/ScalarLeafsRule.d.mts +30 -2
  1057. package/validation/rules/ScalarLeafsRule.d.ts +30 -2
  1058. package/validation/rules/ScalarLeafsRule.js +10 -16
  1059. package/validation/rules/ScalarLeafsRule.js.map +1 -1
  1060. package/validation/rules/ScalarLeafsRule.mjs +0 -6
  1061. package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
  1062. package/validation/rules/SingleFieldSubscriptionsRule.d.mts +36 -4
  1063. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +36 -4
  1064. package/validation/rules/SingleFieldSubscriptionsRule.js +8 -17
  1065. package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
  1066. package/validation/rules/SingleFieldSubscriptionsRule.mjs +0 -9
  1067. package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
  1068. package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +23 -2
  1069. package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +23 -2
  1070. package/validation/rules/StreamDirectiveOnListFieldRule.js +7 -12
  1071. package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
  1072. package/validation/rules/StreamDirectiveOnListFieldRule.mjs +0 -5
  1073. package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
  1074. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +23 -2
  1075. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +23 -2
  1076. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +4 -10
  1077. package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
  1078. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +0 -6
  1079. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
  1080. package/validation/rules/UniqueArgumentNamesRule.d.mts +30 -2
  1081. package/validation/rules/UniqueArgumentNamesRule.d.ts +30 -2
  1082. package/validation/rules/UniqueArgumentNamesRule.js +4 -12
  1083. package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
  1084. package/validation/rules/UniqueArgumentNamesRule.mjs +0 -8
  1085. package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
  1086. package/validation/rules/UniqueDirectiveNamesRule.d.mts +23 -2
  1087. package/validation/rules/UniqueDirectiveNamesRule.d.ts +23 -2
  1088. package/validation/rules/UniqueDirectiveNamesRule.js +3 -8
  1089. package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
  1090. package/validation/rules/UniqueDirectiveNamesRule.mjs +0 -5
  1091. package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
  1092. package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +30 -2
  1093. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +30 -2
  1094. package/validation/rules/UniqueDirectivesPerLocationRule.js +20 -21
  1095. package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
  1096. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +10 -11
  1097. package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
  1098. package/validation/rules/UniqueEnumValueNamesRule.d.mts +23 -2
  1099. package/validation/rules/UniqueEnumValueNamesRule.d.ts +23 -2
  1100. package/validation/rules/UniqueEnumValueNamesRule.js +5 -10
  1101. package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
  1102. package/validation/rules/UniqueEnumValueNamesRule.mjs +0 -5
  1103. package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
  1104. package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +23 -2
  1105. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +23 -2
  1106. package/validation/rules/UniqueFieldDefinitionNamesRule.js +5 -10
  1107. package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
  1108. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +0 -5
  1109. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
  1110. package/validation/rules/UniqueFragmentNamesRule.d.mts +30 -2
  1111. package/validation/rules/UniqueFragmentNamesRule.d.ts +30 -2
  1112. package/validation/rules/UniqueFragmentNamesRule.js +2 -9
  1113. package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
  1114. package/validation/rules/UniqueFragmentNamesRule.mjs +0 -7
  1115. package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
  1116. package/validation/rules/UniqueInputFieldNamesRule.d.mts +34 -2
  1117. package/validation/rules/UniqueInputFieldNamesRule.d.ts +34 -2
  1118. package/validation/rules/UniqueInputFieldNamesRule.js +4 -12
  1119. package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
  1120. package/validation/rules/UniqueInputFieldNamesRule.mjs +0 -8
  1121. package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
  1122. package/validation/rules/UniqueOperationNamesRule.d.mts +30 -2
  1123. package/validation/rules/UniqueOperationNamesRule.d.ts +30 -2
  1124. package/validation/rules/UniqueOperationNamesRule.js +2 -9
  1125. package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
  1126. package/validation/rules/UniqueOperationNamesRule.mjs +0 -7
  1127. package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
  1128. package/validation/rules/UniqueOperationTypesRule.d.mts +23 -2
  1129. package/validation/rules/UniqueOperationTypesRule.d.ts +23 -2
  1130. package/validation/rules/UniqueOperationTypesRule.js +3 -8
  1131. package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
  1132. package/validation/rules/UniqueOperationTypesRule.mjs +0 -5
  1133. package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
  1134. package/validation/rules/UniqueTypeNamesRule.d.mts +23 -2
  1135. package/validation/rules/UniqueTypeNamesRule.d.ts +23 -2
  1136. package/validation/rules/UniqueTypeNamesRule.js +3 -8
  1137. package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
  1138. package/validation/rules/UniqueTypeNamesRule.mjs +0 -5
  1139. package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
  1140. package/validation/rules/UniqueVariableNamesRule.d.mts +30 -2
  1141. package/validation/rules/UniqueVariableNamesRule.d.ts +30 -2
  1142. package/validation/rules/UniqueVariableNamesRule.js +4 -9
  1143. package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
  1144. package/validation/rules/UniqueVariableNamesRule.mjs +0 -5
  1145. package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
  1146. package/validation/rules/ValuesOfCorrectTypeRule.d.mts +30 -2
  1147. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +30 -2
  1148. package/validation/rules/ValuesOfCorrectTypeRule.js +3 -23
  1149. package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
  1150. package/validation/rules/ValuesOfCorrectTypeRule.mjs +1 -21
  1151. package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
  1152. package/validation/rules/VariablesAreInputTypesRule.d.mts +34 -2
  1153. package/validation/rules/VariablesAreInputTypesRule.d.ts +34 -2
  1154. package/validation/rules/VariablesAreInputTypesRule.js +8 -16
  1155. package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
  1156. package/validation/rules/VariablesAreInputTypesRule.mjs +0 -8
  1157. package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
  1158. package/validation/rules/VariablesInAllowedPositionRule.d.mts +30 -2
  1159. package/validation/rules/VariablesInAllowedPositionRule.d.ts +30 -2
  1160. package/validation/rules/VariablesInAllowedPositionRule.js +14 -34
  1161. package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
  1162. package/validation/rules/VariablesInAllowedPositionRule.mjs +0 -20
  1163. package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
  1164. package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +43 -2
  1165. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +43 -2
  1166. package/validation/rules/custom/NoDeprecatedCustomRule.js +8 -18
  1167. package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
  1168. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +0 -10
  1169. package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
  1170. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +30 -2
  1171. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +30 -2
  1172. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +6 -16
  1173. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
  1174. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +0 -10
  1175. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
  1176. package/validation/specifiedRules.d.mts +3 -4
  1177. package/validation/specifiedRules.d.ts +3 -4
  1178. package/validation/specifiedRules.js +87 -133
  1179. package/validation/specifiedRules.js.map +1 -1
  1180. package/validation/specifiedRules.mjs +0 -46
  1181. package/validation/specifiedRules.mjs.map +1 -1
  1182. package/validation/validate.d.mts +70 -12
  1183. package/validation/validate.d.ts +70 -12
  1184. package/validation/validate.js +19 -60
  1185. package/validation/validate.js.map +1 -1
  1186. package/validation/validate.mjs +0 -41
  1187. package/validation/validate.mjs.map +1 -1
  1188. package/version.d.mts +3 -6
  1189. package/version.d.ts +3 -6
  1190. package/version.js +2 -10
  1191. package/version.js.map +1 -1
  1192. package/version.mjs +2 -10
  1193. package/version.mjs.map +1 -1
@@ -2,23 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypeInfo = void 0;
4
4
  exports.visitWithTypeInfo = visitWithTypeInfo;
5
- const ast_js_1 = require("../language/ast.js");
6
- const kinds_js_1 = require("../language/kinds.js");
7
- const visitor_js_1 = require("../language/visitor.js");
8
- const definition_js_1 = require("../type/definition.js");
9
- const typeFromAST_js_1 = require("./typeFromAST.js");
10
- /**
11
- * TypeInfo is a utility class which, given a GraphQL schema, can keep track
12
- * of the current field and type definitions at any point in a GraphQL document
13
- * AST during a recursive descent by calling `enter(node)` and `leave(node)`.
14
- */
5
+ const ast_ts_1 = require("../language/ast.js");
6
+ const kinds_ts_1 = require("../language/kinds.js");
7
+ const visitor_ts_1 = require("../language/visitor.js");
8
+ const definition_ts_1 = require("../type/definition.js");
9
+ const typeFromAST_ts_1 = require("./typeFromAST.js");
15
10
  class TypeInfo {
16
- constructor(schema,
17
- /**
18
- * Initial type may be provided in rare cases to facilitate traversals
19
- * beginning somewhere other than documents.
20
- */
21
- initialType, fragmentSignatures) {
11
+ constructor(schema, initialType, fragmentSignatures) {
22
12
  this._schema = schema;
23
13
  this._typeStack = [];
24
14
  this._parentTypeStack = [];
@@ -32,13 +22,13 @@ class TypeInfo {
32
22
  this._fragmentSignature = null;
33
23
  this._fragmentArgument = null;
34
24
  if (initialType) {
35
- if ((0, definition_js_1.isInputType)(initialType)) {
25
+ if ((0, definition_ts_1.isInputType)(initialType)) {
36
26
  this._inputTypeStack.push(initialType);
37
27
  }
38
- if ((0, definition_js_1.isCompositeType)(initialType)) {
28
+ if ((0, definition_ts_1.isCompositeType)(initialType)) {
39
29
  this._parentTypeStack.push(initialType);
40
30
  }
41
- if ((0, definition_js_1.isOutputType)(initialType)) {
31
+ if ((0, definition_ts_1.isOutputType)(initialType)) {
42
32
  this._typeStack.push(initialType);
43
33
  }
44
34
  }
@@ -55,8 +45,6 @@ class TypeInfo {
55
45
  getInputType() {
56
46
  return this._inputTypeStack.at(-1);
57
47
  }
58
- // Note: continues to expose the closest enclosing valid input type if
59
- // traversal descends into syntax with no corresponding GraphQL input type.
60
48
  getParentInputType() {
61
49
  return this._inputTypeStack.at(-2);
62
50
  }
@@ -86,22 +74,18 @@ class TypeInfo {
86
74
  }
87
75
  enter(node) {
88
76
  const schema = this._schema;
89
- // Note: many of the types below are explicitly typed as "unknown" to drop
90
- // any assumptions of a valid schema to ensure runtime types are properly
91
- // checked before continuing since TypeInfo is used as part of validation
92
- // which occurs before guarantees of schema and document validity.
93
77
  switch (node.kind) {
94
- case kinds_js_1.Kind.DOCUMENT: {
78
+ case kinds_ts_1.Kind.DOCUMENT: {
95
79
  const fragmentSignatures = getFragmentSignatures(node);
96
80
  this._fragmentSignaturesByName = (fragmentName) => fragmentSignatures.get(fragmentName);
97
81
  break;
98
82
  }
99
- case kinds_js_1.Kind.SELECTION_SET: {
100
- const namedType = (0, definition_js_1.getNamedType)(this.getType());
101
- this._parentTypeStack.push((0, definition_js_1.isCompositeType)(namedType) ? namedType : undefined);
83
+ case kinds_ts_1.Kind.SELECTION_SET: {
84
+ const namedType = (0, definition_ts_1.getNamedType)(this.getType());
85
+ this._parentTypeStack.push((0, definition_ts_1.isCompositeType)(namedType) ? namedType : undefined);
102
86
  break;
103
87
  }
104
- case kinds_js_1.Kind.FIELD: {
88
+ case kinds_ts_1.Kind.FIELD: {
105
89
  const parentType = this.getParentType();
106
90
  let fieldDef;
107
91
  let fieldType;
@@ -112,36 +96,36 @@ class TypeInfo {
112
96
  }
113
97
  }
114
98
  this._fieldDefStack.push(fieldDef);
115
- this._typeStack.push((0, definition_js_1.isOutputType)(fieldType) ? fieldType : undefined);
99
+ this._typeStack.push((0, definition_ts_1.isOutputType)(fieldType) ? fieldType : undefined);
116
100
  break;
117
101
  }
118
- case kinds_js_1.Kind.DIRECTIVE:
102
+ case kinds_ts_1.Kind.DIRECTIVE:
119
103
  this._directive = schema.getDirective(node.name.value);
120
104
  break;
121
- case kinds_js_1.Kind.OPERATION_DEFINITION: {
105
+ case kinds_ts_1.Kind.OPERATION_DEFINITION: {
122
106
  const rootType = schema.getRootType(node.operation);
123
- this._typeStack.push((0, definition_js_1.isObjectType)(rootType) ? rootType : undefined);
107
+ this._typeStack.push((0, definition_ts_1.isObjectType)(rootType) ? rootType : undefined);
124
108
  break;
125
109
  }
126
- case kinds_js_1.Kind.FRAGMENT_SPREAD: {
110
+ case kinds_ts_1.Kind.FRAGMENT_SPREAD: {
127
111
  this._fragmentSignature = this.getFragmentSignatureByName()(node.name.value);
128
112
  break;
129
113
  }
130
- case kinds_js_1.Kind.INLINE_FRAGMENT:
131
- case kinds_js_1.Kind.FRAGMENT_DEFINITION: {
114
+ case kinds_ts_1.Kind.INLINE_FRAGMENT:
115
+ case kinds_ts_1.Kind.FRAGMENT_DEFINITION: {
132
116
  const typeConditionAST = node.typeCondition;
133
117
  const outputType = typeConditionAST
134
- ? (0, typeFromAST_js_1.typeFromAST)(schema, typeConditionAST)
135
- : (0, definition_js_1.getNamedType)(this.getType());
136
- this._typeStack.push((0, definition_js_1.isOutputType)(outputType) ? outputType : undefined);
118
+ ? (0, typeFromAST_ts_1.typeFromAST)(schema, typeConditionAST)
119
+ : (0, definition_ts_1.getNamedType)(this.getType());
120
+ this._typeStack.push((0, definition_ts_1.isOutputType)(outputType) ? outputType : undefined);
137
121
  break;
138
122
  }
139
- case kinds_js_1.Kind.VARIABLE_DEFINITION: {
140
- const inputType = (0, typeFromAST_js_1.typeFromAST)(schema, node.type);
141
- this._inputTypeStack.push((0, definition_js_1.isInputType)(inputType) ? inputType : undefined);
123
+ case kinds_ts_1.Kind.VARIABLE_DEFINITION: {
124
+ const inputType = (0, typeFromAST_ts_1.typeFromAST)(schema, node.type);
125
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(inputType) ? inputType : undefined);
142
126
  break;
143
127
  }
144
- case kinds_js_1.Kind.ARGUMENT: {
128
+ case kinds_ts_1.Kind.ARGUMENT: {
145
129
  let argDef;
146
130
  let argType;
147
131
  const fieldOrDirective = this.getDirective() ?? this.getFieldDef();
@@ -153,104 +137,101 @@ class TypeInfo {
153
137
  }
154
138
  this._argument = argDef;
155
139
  this._defaultValueStack.push(argDef?.default ?? argDef?.defaultValue ?? undefined);
156
- this._inputTypeStack.push((0, definition_js_1.isInputType)(argType) ? argType : undefined);
140
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(argType) ? argType : undefined);
157
141
  break;
158
142
  }
159
- case kinds_js_1.Kind.FRAGMENT_ARGUMENT: {
143
+ case kinds_ts_1.Kind.FRAGMENT_ARGUMENT: {
160
144
  const fragmentSignature = this.getFragmentSignature();
161
145
  const argDef = fragmentSignature?.variableDefinitions.get(node.name.value);
162
146
  this._fragmentArgument = argDef;
163
147
  let argType;
164
148
  if (argDef) {
165
- argType = (0, typeFromAST_js_1.typeFromAST)(this._schema, argDef.type);
149
+ argType = (0, typeFromAST_ts_1.typeFromAST)(this._schema, argDef.type);
166
150
  }
167
- this._inputTypeStack.push((0, definition_js_1.isInputType)(argType) ? argType : undefined);
151
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(argType) ? argType : undefined);
168
152
  break;
169
153
  }
170
- case kinds_js_1.Kind.LIST: {
171
- const listType = (0, definition_js_1.getNullableType)(this.getInputType());
172
- const itemType = (0, definition_js_1.isListType)(listType)
154
+ case kinds_ts_1.Kind.LIST: {
155
+ const listType = (0, definition_ts_1.getNullableType)(this.getInputType());
156
+ const itemType = (0, definition_ts_1.isListType)(listType)
173
157
  ? listType.ofType
174
158
  : undefined;
175
- // List positions never have a default value.
176
159
  this._defaultValueStack.push(undefined);
177
- this._inputTypeStack.push((0, definition_js_1.isInputType)(itemType) ? itemType : undefined);
160
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(itemType) ? itemType : undefined);
178
161
  break;
179
162
  }
180
- case kinds_js_1.Kind.OBJECT_FIELD: {
181
- const objectType = (0, definition_js_1.getNamedType)(this.getInputType());
163
+ case kinds_ts_1.Kind.OBJECT_FIELD: {
164
+ const objectType = (0, definition_ts_1.getNamedType)(this.getInputType());
182
165
  let inputFieldType;
183
166
  let inputField;
184
- if ((0, definition_js_1.isInputObjectType)(objectType)) {
167
+ if ((0, definition_ts_1.isInputObjectType)(objectType)) {
185
168
  inputField = objectType.getFields()[node.name.value];
186
169
  if (inputField != null) {
187
170
  inputFieldType = inputField.type;
188
171
  }
189
172
  }
190
173
  this._defaultValueStack.push(inputField?.default ?? inputField?.defaultValue ?? undefined);
191
- this._inputTypeStack.push((0, definition_js_1.isInputType)(inputFieldType) ? inputFieldType : undefined);
174
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(inputFieldType) ? inputFieldType : undefined);
192
175
  break;
193
176
  }
194
- case kinds_js_1.Kind.ENUM: {
195
- const enumType = (0, definition_js_1.getNamedType)(this.getInputType());
177
+ case kinds_ts_1.Kind.ENUM: {
178
+ const enumType = (0, definition_ts_1.getNamedType)(this.getInputType());
196
179
  let enumValue;
197
- if ((0, definition_js_1.isEnumType)(enumType)) {
180
+ if ((0, definition_ts_1.isEnumType)(enumType)) {
198
181
  enumValue = enumType.getValue(node.value);
199
182
  }
200
183
  this._enumValue = enumValue;
201
184
  break;
202
185
  }
203
186
  default:
204
- // Ignore other nodes
205
187
  }
206
188
  }
207
189
  leave(node) {
208
190
  switch (node.kind) {
209
- case kinds_js_1.Kind.DOCUMENT:
210
- this._fragmentSignaturesByName = /* c8 ignore start */ () => null /* c8 ignore end */;
191
+ case kinds_ts_1.Kind.DOCUMENT:
192
+ this._fragmentSignaturesByName = () => null;
211
193
  break;
212
- case kinds_js_1.Kind.SELECTION_SET:
194
+ case kinds_ts_1.Kind.SELECTION_SET:
213
195
  this._parentTypeStack.pop();
214
196
  break;
215
- case kinds_js_1.Kind.FIELD:
197
+ case kinds_ts_1.Kind.FIELD:
216
198
  this._fieldDefStack.pop();
217
199
  this._typeStack.pop();
218
200
  break;
219
- case kinds_js_1.Kind.DIRECTIVE:
201
+ case kinds_ts_1.Kind.DIRECTIVE:
220
202
  this._directive = null;
221
203
  break;
222
- case kinds_js_1.Kind.FRAGMENT_SPREAD:
204
+ case kinds_ts_1.Kind.FRAGMENT_SPREAD:
223
205
  this._fragmentSignature = null;
224
206
  break;
225
- case kinds_js_1.Kind.OPERATION_DEFINITION:
226
- case kinds_js_1.Kind.INLINE_FRAGMENT:
227
- case kinds_js_1.Kind.FRAGMENT_DEFINITION:
207
+ case kinds_ts_1.Kind.OPERATION_DEFINITION:
208
+ case kinds_ts_1.Kind.INLINE_FRAGMENT:
209
+ case kinds_ts_1.Kind.FRAGMENT_DEFINITION:
228
210
  this._typeStack.pop();
229
211
  break;
230
- case kinds_js_1.Kind.VARIABLE_DEFINITION:
212
+ case kinds_ts_1.Kind.VARIABLE_DEFINITION:
231
213
  this._inputTypeStack.pop();
232
214
  break;
233
- case kinds_js_1.Kind.ARGUMENT:
215
+ case kinds_ts_1.Kind.ARGUMENT:
234
216
  this._argument = null;
235
217
  this._defaultValueStack.pop();
236
218
  this._inputTypeStack.pop();
237
219
  break;
238
- case kinds_js_1.Kind.FRAGMENT_ARGUMENT: {
220
+ case kinds_ts_1.Kind.FRAGMENT_ARGUMENT: {
239
221
  this._fragmentArgument = null;
240
222
  this._defaultValueStack.pop();
241
223
  this._inputTypeStack.pop();
242
224
  break;
243
225
  }
244
- case kinds_js_1.Kind.LIST:
245
- case kinds_js_1.Kind.OBJECT_FIELD:
226
+ case kinds_ts_1.Kind.LIST:
227
+ case kinds_ts_1.Kind.OBJECT_FIELD:
246
228
  this._defaultValueStack.pop();
247
229
  this._inputTypeStack.pop();
248
230
  break;
249
- case kinds_js_1.Kind.ENUM:
231
+ case kinds_ts_1.Kind.ENUM:
250
232
  this._enumValue = null;
251
233
  break;
252
234
  default:
253
- // Ignore other nodes
254
235
  }
255
236
  }
256
237
  }
@@ -258,7 +239,7 @@ exports.TypeInfo = TypeInfo;
258
239
  function getFragmentSignatures(document) {
259
240
  const fragmentSignatures = new Map();
260
241
  for (const definition of document.definitions) {
261
- if (definition.kind === kinds_js_1.Kind.FRAGMENT_DEFINITION) {
242
+ if (definition.kind === kinds_ts_1.Kind.FRAGMENT_DEFINITION) {
262
243
  const variableDefinitions = new Map();
263
244
  if (definition.variableDefinitions) {
264
245
  for (const varDef of definition.variableDefinitions) {
@@ -271,21 +252,17 @@ function getFragmentSignatures(document) {
271
252
  }
272
253
  return fragmentSignatures;
273
254
  }
274
- /**
275
- * Creates a new visitor instance which maintains a provided TypeInfo instance
276
- * along with visiting visitor.
277
- */
278
255
  function visitWithTypeInfo(typeInfo, visitor) {
279
256
  return {
280
257
  enter(...args) {
281
258
  const node = args[0];
282
259
  typeInfo.enter(node);
283
- const fn = (0, visitor_js_1.getEnterLeaveForKind)(visitor, node.kind).enter;
260
+ const fn = (0, visitor_ts_1.getEnterLeaveForKind)(visitor, node.kind).enter;
284
261
  if (fn) {
285
262
  const result = fn.apply(visitor, args);
286
263
  if (result !== undefined) {
287
264
  typeInfo.leave(node);
288
- if ((0, ast_js_1.isNode)(result)) {
265
+ if ((0, ast_ts_1.isNode)(result)) {
289
266
  typeInfo.enter(result);
290
267
  }
291
268
  }
@@ -294,7 +271,7 @@ function visitWithTypeInfo(typeInfo, visitor) {
294
271
  },
295
272
  leave(...args) {
296
273
  const node = args[0];
297
- const fn = (0, visitor_js_1.getEnterLeaveForKind)(visitor, node.kind).leave;
274
+ const fn = (0, visitor_ts_1.getEnterLeaveForKind)(visitor, node.kind).leave;
298
275
  let result;
299
276
  if (fn) {
300
277
  result = fn.apply(visitor, args);
@@ -1 +1 @@
1
- {"version":3,"file":"TypeInfo.js","sourceRoot":"","sources":["../../src/utilities/TypeInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Maybe } from '../jsutils/Maybe.js';\n\nimport type {\n ASTNode,\n DocumentNode,\n FragmentDefinitionNode,\n VariableDefinitionNode,\n} from '../language/ast.js';\nimport { isNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport type { ASTVisitor } from '../language/visitor.js';\nimport { getEnterLeaveForKind } from '../language/visitor.js';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputType,\n GraphQLOutputType,\n GraphQLType,\n} from '../type/definition.js';\nimport {\n getNamedType,\n getNullableType,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isInputType,\n isListType,\n isObjectType,\n isOutputType,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\n\nimport { typeFromAST } from './typeFromAST.js';\n\nexport interface FragmentSignature {\n readonly definition: FragmentDefinitionNode;\n readonly variableDefinitions: Map<string, VariableDefinitionNode>;\n}\n\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\nexport class TypeInfo {\n private _schema: GraphQLSchema;\n private _typeStack: Array<Maybe<GraphQLOutputType>>;\n private _parentTypeStack: Array<Maybe<GraphQLCompositeType>>;\n private _inputTypeStack: Array<Maybe<GraphQLInputType>>;\n private _fieldDefStack: Array<Maybe<GraphQLField<unknown, unknown>>>;\n private _defaultValueStack: Array<unknown>;\n private _directive: Maybe<GraphQLDirective>;\n private _argument: Maybe<GraphQLArgument>;\n private _enumValue: Maybe<GraphQLEnumValue>;\n private _fragmentSignaturesByName: (\n fragmentName: string,\n ) => Maybe<FragmentSignature>;\n\n private _fragmentSignature: Maybe<FragmentSignature>;\n private _fragmentArgument: Maybe<VariableDefinitionNode>;\n\n constructor(\n schema: GraphQLSchema,\n /**\n * Initial type may be provided in rare cases to facilitate traversals\n * beginning somewhere other than documents.\n */\n initialType?: Maybe<GraphQLType>,\n fragmentSignatures?: Maybe<\n (fragmentName: string) => Maybe<FragmentSignature>\n >,\n ) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._fragmentSignaturesByName = fragmentSignatures ?? (() => null);\n this._fragmentSignature = null;\n this._fragmentArgument = null;\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'TypeInfo';\n }\n\n getType(): Maybe<GraphQLOutputType> {\n return this._typeStack.at(-1);\n }\n\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._parentTypeStack.at(-1);\n }\n\n getInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-1);\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-2);\n }\n\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._fieldDefStack.at(-1);\n }\n\n getDefaultValue(): unknown {\n return this._defaultValueStack.at(-1);\n }\n\n getDirective(): Maybe<GraphQLDirective> {\n return this._directive;\n }\n\n getArgument(): Maybe<GraphQLArgument> {\n return this._argument;\n }\n\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._fragmentSignature;\n }\n\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._fragmentSignaturesByName;\n }\n\n getFragmentArgument(): Maybe<VariableDefinitionNode> {\n return this._fragmentArgument;\n }\n\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._enumValue;\n }\n\n enter(node: ASTNode): void {\n const schema = this._schema;\n // Note: many of the types below are explicitly typed as \"unknown\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n switch (node.kind) {\n case Kind.DOCUMENT: {\n const fragmentSignatures = getFragmentSignatures(node);\n this._fragmentSignaturesByName = (fragmentName: string) =>\n fragmentSignatures.get(fragmentName);\n break;\n }\n case Kind.SELECTION_SET: {\n const namedType: unknown = getNamedType(this.getType());\n this._parentTypeStack.push(\n isCompositeType(namedType) ? namedType : undefined,\n );\n break;\n }\n case Kind.FIELD: {\n const parentType = this.getParentType();\n let fieldDef;\n let fieldType: unknown;\n if (parentType) {\n fieldDef = schema.getField(parentType, node.name.value);\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n this._fieldDefStack.push(fieldDef);\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n break;\n }\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n case Kind.OPERATION_DEFINITION: {\n const rootType = schema.getRootType(node.operation);\n this._typeStack.push(isObjectType(rootType) ? rootType : undefined);\n break;\n }\n case Kind.FRAGMENT_SPREAD: {\n this._fragmentSignature = this.getFragmentSignatureByName()(\n node.name.value,\n );\n break;\n }\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION: {\n const typeConditionAST = node.typeCondition;\n const outputType: unknown = typeConditionAST\n ? typeFromAST(schema, typeConditionAST)\n : getNamedType(this.getType());\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n break;\n }\n case Kind.VARIABLE_DEFINITION: {\n const inputType: unknown = typeFromAST(schema, node.type);\n this._inputTypeStack.push(\n isInputType(inputType) ? inputType : undefined,\n );\n break;\n }\n case Kind.ARGUMENT: {\n let argDef;\n let argType: unknown;\n const fieldOrDirective = this.getDirective() ?? this.getFieldDef();\n if (fieldOrDirective) {\n argDef = fieldOrDirective.args.find(\n (arg) => arg.name === node.name.value,\n );\n if (argDef) {\n argType = argDef.type;\n }\n }\n this._argument = argDef;\n this._defaultValueStack.push(\n argDef?.default ?? argDef?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.FRAGMENT_ARGUMENT: {\n const fragmentSignature = this.getFragmentSignature();\n const argDef = fragmentSignature?.variableDefinitions.get(\n node.name.value,\n );\n this._fragmentArgument = argDef;\n let argType: unknown;\n if (argDef) {\n argType = typeFromAST(this._schema, argDef.type);\n }\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.LIST: {\n const listType: unknown = getNullableType(this.getInputType());\n const itemType: unknown = isListType(listType)\n ? listType.ofType\n : undefined;\n // List positions never have a default value.\n this._defaultValueStack.push(undefined);\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n break;\n }\n case Kind.OBJECT_FIELD: {\n const objectType: unknown = getNamedType(this.getInputType());\n let inputFieldType: GraphQLInputType | undefined;\n let inputField: GraphQLInputField | undefined;\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n if (inputField != null) {\n inputFieldType = inputField.type;\n }\n }\n this._defaultValueStack.push(\n inputField?.default ?? inputField?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(\n isInputType(inputFieldType) ? inputFieldType : undefined,\n );\n break;\n }\n case Kind.ENUM: {\n const enumType: unknown = getNamedType(this.getInputType());\n let enumValue;\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n this._enumValue = enumValue;\n break;\n }\n default:\n // Ignore other nodes\n }\n }\n\n leave(node: ASTNode): void {\n switch (node.kind) {\n case Kind.DOCUMENT:\n this._fragmentSignaturesByName = /* c8 ignore start */ () =>\n null /* c8 ignore end */;\n break;\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n break;\n case Kind.FIELD:\n this._fieldDefStack.pop();\n this._typeStack.pop();\n break;\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n case Kind.FRAGMENT_SPREAD:\n this._fragmentSignature = null;\n break;\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n break;\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n break;\n case Kind.ARGUMENT:\n this._argument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.FRAGMENT_ARGUMENT: {\n this._fragmentArgument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n }\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.ENUM:\n this._enumValue = null;\n break;\n default:\n // Ignore other nodes\n }\n }\n}\n\nfunction getFragmentSignatures(\n document: DocumentNode,\n): Map<string, FragmentSignature> {\n const fragmentSignatures = new Map<string, FragmentSignature>();\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n const variableDefinitions = new Map<string, VariableDefinitionNode>();\n if (definition.variableDefinitions) {\n for (const varDef of definition.variableDefinitions) {\n variableDefinitions.set(varDef.variable.name.value, varDef);\n }\n }\n const signature = { definition, variableDefinitions };\n fragmentSignatures.set(definition.name.value, signature);\n }\n }\n return fragmentSignatures;\n}\n\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\nexport function visitWithTypeInfo(\n typeInfo: TypeInfo,\n visitor: ASTVisitor,\n): ASTVisitor {\n return {\n enter(...args) {\n const node = args[0];\n typeInfo.enter(node);\n const fn = getEnterLeaveForKind(visitor, node.kind).enter;\n if (fn) {\n const result = fn.apply(visitor, args);\n if (result !== undefined) {\n typeInfo.leave(node);\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n return result;\n }\n },\n leave(...args) {\n const node = args[0];\n const fn = getEnterLeaveForKind(visitor, node.kind).leave;\n let result;\n if (fn) {\n result = fn.apply(visitor, args);\n }\n typeInfo.leave(node);\n return result;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"TypeInfo.js","sourceRoot":"","sources":["../../src/utilities/TypeInfo.ts"],"names":[],"mappings":"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","sourcesContent":["/** @category Type Info */\n\nimport type { Maybe } from '../jsutils/Maybe.ts';\n\nimport type {\n ASTNode,\n DocumentNode,\n FragmentDefinitionNode,\n VariableDefinitionNode,\n} from '../language/ast.ts';\nimport { isNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport type { ASTVisitor } from '../language/visitor.ts';\nimport { getEnterLeaveForKind } from '../language/visitor.ts';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputType,\n GraphQLOutputType,\n GraphQLType,\n} from '../type/definition.ts';\nimport {\n getNamedType,\n getNullableType,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isInputType,\n isListType,\n isObjectType,\n isOutputType,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\nimport { typeFromAST } from './typeFromAST.ts';\n\n/** @internal */\nexport interface FragmentSignature {\n readonly definition: FragmentDefinitionNode;\n readonly variableDefinitions: Map<string, VariableDefinitionNode>;\n}\n\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\nexport class TypeInfo {\n private _schema: GraphQLSchema;\n private _typeStack: Array<Maybe<GraphQLOutputType>>;\n private _parentTypeStack: Array<Maybe<GraphQLCompositeType>>;\n private _inputTypeStack: Array<Maybe<GraphQLInputType>>;\n private _fieldDefStack: Array<Maybe<GraphQLField<unknown, unknown>>>;\n private _defaultValueStack: Array<unknown>;\n private _directive: Maybe<GraphQLDirective>;\n private _argument: Maybe<GraphQLArgument>;\n private _enumValue: Maybe<GraphQLEnumValue>;\n private _fragmentSignaturesByName: (\n fragmentName: string,\n ) => Maybe<FragmentSignature>;\n\n private _fragmentSignature: Maybe<FragmentSignature>;\n private _fragmentArgument: Maybe<VariableDefinitionNode>;\n\n /**\n * Creates a TypeInfo instance.\n * @param schema - Schema used for type lookups.\n * @param initialType - Optional type to use at the start of traversal.\n * @param fragmentSignatures - Fragment signatures available during traversal.\n * @example\n * ```ts\n * // Track field types during a visitWithTypeInfo traversal.\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema } from 'graphql/utilities';\n * import { TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * const seenTypes = [];\n *\n * visit(\n * parse('{ greeting }'),\n * visitWithTypeInfo(typeInfo, {\n * Field: () => {\n * seenTypes.push(String(typeInfo.getType()));\n * },\n * }),\n * );\n *\n * seenTypes; // => ['String']\n * ```\n * @example\n * ```ts\n * // This variant starts from an initial type and supplies fragment signatures.\n * import { Kind, parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting(name: String): String\n * }\n * `);\n * const fragmentDocument = parse(\n * 'fragment GreetingFields($name: String) on Query { greeting(name: $name) }',\n * { experimentalFragmentArguments: true },\n * );\n * const fragmentDefinition = fragmentDocument.definitions[0];\n * const variableDefinition = fragmentDefinition.variableDefinitions[0];\n * const typeInfo = new TypeInfo(schema, schema.getQueryType(), (name) =>\n * name === 'GreetingFields'\n * ? {\n * definition: fragmentDefinition,\n * variableDefinitions: new Map([ ['name', variableDefinition] ]),\n * }\n * : undefined,\n * );\n *\n * typeInfo.enter({\n * kind: Kind.SELECTION_SET,\n * selections: [],\n * });\n * typeInfo.enter({\n * kind: Kind.FRAGMENT_SPREAD,\n * name: { kind: Kind.NAME, value: 'GreetingFields' },\n * arguments: [],\n * directives: [],\n * });\n *\n * String(typeInfo.getParentType()); // => 'Query'\n * typeInfo.getFragmentSignature()?.definition.name.value; // => 'GreetingFields'\n * ```\n */\n constructor(\n schema: GraphQLSchema,\n /**\n * Initial type may be provided in rare cases to facilitate traversals\n * beginning somewhere other than documents.\n */\n initialType?: Maybe<GraphQLType>,\n fragmentSignatures?: Maybe<\n (fragmentName: string) => Maybe<FragmentSignature>\n >,\n ) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._fragmentSignaturesByName = fragmentSignatures ?? (() => null);\n this._fragmentSignature = null;\n this._fragmentArgument = null;\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n /**\n * Returns the value used by `Object.prototype.toString`.\n * @returns The built-in string tag for this object.\n */\n get [Symbol.toStringTag](): string {\n return 'TypeInfo';\n }\n\n /**\n * Returns the current output type at this point in traversal.\n * @returns The current output type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * viewer: User\n * }\n *\n * type User {\n * name: String\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * const fieldTypes = {};\n *\n * visit(\n * parse('{ viewer { name } }'),\n * visitWithTypeInfo(typeInfo, {\n * Field: (node) => {\n * fieldTypes[node.name.value] = String(typeInfo.getType());\n * },\n * }),\n * );\n *\n * fieldTypes; // => { viewer: 'User', name: 'String' }\n * ```\n */\n getType(): Maybe<GraphQLOutputType> {\n return this._typeStack.at(-1);\n }\n\n /**\n * Returns the current parent composite type.\n * @returns The current parent composite type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * viewer: User\n * }\n *\n * type User {\n * name: String\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * const parentTypes = {};\n *\n * visit(\n * parse('{ viewer { name } }'),\n * visitWithTypeInfo(typeInfo, {\n * Field: (node) => {\n * parentTypes[node.name.value] = String(typeInfo.getParentType());\n * },\n * }),\n * );\n *\n * parentTypes; // => { viewer: 'Query', name: 'User' }\n * ```\n */\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._parentTypeStack.at(-1);\n }\n\n /**\n * Returns the current input type at this point in traversal.\n * @returns The current input type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * reviews(stars: Int!, sort: Sort = NEWEST): [String]\n * }\n *\n * enum Sort {\n * NEWEST\n * OLDEST\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * const inputTypes = {};\n *\n * visit(\n * parse('{ reviews(stars: 5, sort: OLDEST) }'),\n * visitWithTypeInfo(typeInfo, {\n * Argument: (node) => {\n * inputTypes[node.name.value] = String(typeInfo.getInputType());\n * },\n * }),\n * );\n *\n * inputTypes; // => { stars: 'Int!', sort: 'Sort' }\n * ```\n */\n getInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-1);\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n /**\n * Returns the parent input type for the current input position.\n * @returns The parent input type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * input ReviewFilter {\n * stars: Int!\n * }\n *\n * type Query {\n * reviews(filter: ReviewFilter): [String]\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * const parentInputTypes = {};\n *\n * visit(\n * parse('{ reviews(filter: { stars: 5 }) }'),\n * visitWithTypeInfo(typeInfo, {\n * ObjectField: (node) => {\n * parentInputTypes[node.name.value] = String(typeInfo.getParentInputType());\n * },\n * }),\n * );\n *\n * parentInputTypes; // => { stars: 'ReviewFilter' }\n * ```\n */\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-2);\n }\n\n /**\n * Returns the current field definition.\n * @returns The current field definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * let fieldName;\n *\n * visit(\n * parse('{ greeting }'),\n * visitWithTypeInfo(typeInfo, {\n * Field: () => {\n * fieldName = typeInfo.getFieldDef()?.name;\n * },\n * }),\n * );\n *\n * fieldName; // => 'greeting'\n * ```\n */\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._fieldDefStack.at(-1);\n }\n\n /**\n * Returns the default input representation for the current input position.\n * @returns The current default input, if one is available.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * reviews(limit: Int = 10): [String]\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * let defaultLimit;\n *\n * visit(\n * parse('{ reviews(limit: 5) }'),\n * visitWithTypeInfo(typeInfo, {\n * Argument: () => {\n * defaultLimit = typeInfo.getDefaultValue();\n * },\n * }),\n * );\n *\n * defaultLimit; // => { literal: { kind: 'IntValue', value: '10' } }\n * ```\n */\n getDefaultValue(): unknown {\n return this._defaultValueStack.at(-1);\n }\n\n /**\n * Returns the current directive definition.\n * @returns The current directive definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * let directiveName;\n *\n * visit(\n * parse('{ greeting @include(if: true) }'),\n * visitWithTypeInfo(typeInfo, {\n * Directive: () => {\n * directiveName = typeInfo.getDirective()?.name;\n * },\n * }),\n * );\n *\n * directiveName; // => 'include'\n * ```\n */\n getDirective(): Maybe<GraphQLDirective> {\n return this._directive;\n }\n\n /**\n * Returns the current argument definition.\n * @returns The current argument definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * reviews(limit: Int = 10): [String]\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * let argumentName;\n *\n * visit(\n * parse('{ reviews(limit: 5) }'),\n * visitWithTypeInfo(typeInfo, {\n * Argument: () => {\n * argumentName = typeInfo.getArgument()?.name;\n * },\n * }),\n * );\n *\n * argumentName; // => 'limit'\n * ```\n */\n getArgument(): Maybe<GraphQLArgument> {\n return this._argument;\n }\n\n /**\n * Returns the current fragment signature.\n * @returns The fragment signature for the current fragment definition.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse(\n * `\n * {\n * ...GreetingFields\n * }\n *\n * fragment GreetingFields on Query {\n * greeting\n * }\n * `,\n * { experimentalFragmentArguments: true },\n * );\n * const typeInfo = new TypeInfo(schema);\n * let fragmentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * FragmentSpread: () => {\n * fragmentName = typeInfo.getFragmentSignature()?.definition.name.value;\n * },\n * }),\n * );\n *\n * fragmentName; // => 'GreetingFields'\n * ```\n */\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._fragmentSignature;\n }\n\n /**\n * Returns the function used to look up fragment signatures by name.\n * @returns A function that maps fragment names to fragment signatures.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse(\n * `\n * {\n * ...GreetingFields\n * }\n *\n * fragment GreetingFields on Query {\n * greeting\n * }\n * `,\n * { experimentalFragmentArguments: true },\n * );\n * const typeInfo = new TypeInfo(schema);\n * let fragmentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Document: () => {\n * const getFragmentSignature = typeInfo.getFragmentSignatureByName();\n * fragmentName =\n * getFragmentSignature('GreetingFields')?.definition.name.value;\n * },\n * }),\n * );\n *\n * fragmentName; // => 'GreetingFields'\n * ```\n */\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._fragmentSignaturesByName;\n }\n\n /**\n * Returns the current fragment argument definition.\n * @returns The variable definition for the current fragment argument.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting(name: String): String\n * }\n * `);\n * const document = parse(\n * `\n * {\n * ...GreetingFields(name: \"Ada\")\n * }\n *\n * fragment GreetingFields($name: String) on Query {\n * greeting(name: $name)\n * }\n * `,\n * { experimentalFragmentArguments: true },\n * );\n * const typeInfo = new TypeInfo(schema);\n * let argumentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * FragmentArgument: () => {\n * argumentName = typeInfo.getFragmentArgument()?.variable.name.value;\n * },\n * }),\n * );\n *\n * argumentName; // => 'name'\n * ```\n */\n getFragmentArgument(): Maybe<VariableDefinitionNode> {\n return this._fragmentArgument;\n }\n\n /**\n * Returns the current enum value definition.\n * @returns The current enum value definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * enum Sort {\n * NEWEST\n * OLDEST\n * }\n *\n * type Query {\n * reviews(sort: Sort = NEWEST): [String]\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * let enumValueName;\n *\n * visit(\n * parse('{ reviews(sort: OLDEST) }'),\n * visitWithTypeInfo(typeInfo, {\n * EnumValue: () => {\n * enumValueName = typeInfo.getEnumValue()?.name;\n * },\n * }),\n * );\n *\n * enumValueName; // => 'OLDEST'\n * ```\n */\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._enumValue;\n }\n\n /**\n * Updates this TypeInfo instance for an entered AST node.\n * @param node - AST node being entered.\n * @returns Nothing.\n * @example\n * ```ts\n * import { Kind, parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const operation = document.definitions[0];\n * const selectionSet = operation.selectionSet;\n * const field = selectionSet.selections[0];\n * const typeInfo = new TypeInfo(schema);\n *\n * typeInfo.enter(operation);\n * typeInfo.enter(selectionSet);\n * typeInfo.enter(field);\n *\n * field.kind; // => Kind.FIELD\n * typeInfo.getParentType()?.name; // => 'Query'\n * String(typeInfo.getType()); // => 'String'\n * ```\n */\n enter(node: ASTNode): void {\n const schema = this._schema;\n // Note: many of the types below are explicitly typed as \"unknown\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n switch (node.kind) {\n case Kind.DOCUMENT: {\n const fragmentSignatures = getFragmentSignatures(node);\n this._fragmentSignaturesByName = (fragmentName: string) =>\n fragmentSignatures.get(fragmentName);\n break;\n }\n case Kind.SELECTION_SET: {\n const namedType: unknown = getNamedType(this.getType());\n this._parentTypeStack.push(\n isCompositeType(namedType) ? namedType : undefined,\n );\n break;\n }\n case Kind.FIELD: {\n const parentType = this.getParentType();\n let fieldDef;\n let fieldType: unknown;\n if (parentType) {\n fieldDef = schema.getField(parentType, node.name.value);\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n this._fieldDefStack.push(fieldDef);\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n break;\n }\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n case Kind.OPERATION_DEFINITION: {\n const rootType = schema.getRootType(node.operation);\n this._typeStack.push(isObjectType(rootType) ? rootType : undefined);\n break;\n }\n case Kind.FRAGMENT_SPREAD: {\n this._fragmentSignature = this.getFragmentSignatureByName()(\n node.name.value,\n );\n break;\n }\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION: {\n const typeConditionAST = node.typeCondition;\n const outputType: unknown = typeConditionAST\n ? typeFromAST(schema, typeConditionAST)\n : getNamedType(this.getType());\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n break;\n }\n case Kind.VARIABLE_DEFINITION: {\n const inputType: unknown = typeFromAST(schema, node.type);\n this._inputTypeStack.push(\n isInputType(inputType) ? inputType : undefined,\n );\n break;\n }\n case Kind.ARGUMENT: {\n let argDef;\n let argType: unknown;\n const fieldOrDirective = this.getDirective() ?? this.getFieldDef();\n if (fieldOrDirective) {\n argDef = fieldOrDirective.args.find(\n (arg) => arg.name === node.name.value,\n );\n if (argDef) {\n argType = argDef.type;\n }\n }\n this._argument = argDef;\n this._defaultValueStack.push(\n argDef?.default ?? argDef?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.FRAGMENT_ARGUMENT: {\n const fragmentSignature = this.getFragmentSignature();\n const argDef = fragmentSignature?.variableDefinitions.get(\n node.name.value,\n );\n this._fragmentArgument = argDef;\n let argType: unknown;\n if (argDef) {\n argType = typeFromAST(this._schema, argDef.type);\n }\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.LIST: {\n const listType: unknown = getNullableType(this.getInputType());\n const itemType: unknown = isListType(listType)\n ? listType.ofType\n : undefined;\n // List positions never have a default value.\n this._defaultValueStack.push(undefined);\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n break;\n }\n case Kind.OBJECT_FIELD: {\n const objectType: unknown = getNamedType(this.getInputType());\n let inputFieldType: GraphQLInputType | undefined;\n let inputField: GraphQLInputField | undefined;\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n if (inputField != null) {\n inputFieldType = inputField.type;\n }\n }\n this._defaultValueStack.push(\n inputField?.default ?? inputField?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(\n isInputType(inputFieldType) ? inputFieldType : undefined,\n );\n break;\n }\n case Kind.ENUM: {\n const enumType: unknown = getNamedType(this.getInputType());\n let enumValue;\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n this._enumValue = enumValue;\n break;\n }\n default:\n // Ignore other nodes\n }\n }\n\n /**\n * Updates this TypeInfo instance for a left AST node.\n * @param node - AST node being entered.\n * @returns Nothing.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const operation = document.definitions[0];\n * const selectionSet = operation.selectionSet;\n * const field = selectionSet.selections[0];\n * const typeInfo = new TypeInfo(schema);\n *\n * typeInfo.enter(operation);\n * typeInfo.enter(selectionSet);\n * typeInfo.enter(field);\n * String(typeInfo.getType()); // => 'String'\n *\n * typeInfo.leave(field);\n * typeInfo.getType(); // => undefined\n * ```\n */\n leave(node: ASTNode): void {\n switch (node.kind) {\n case Kind.DOCUMENT:\n this._fragmentSignaturesByName = () => null;\n break;\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n break;\n case Kind.FIELD:\n this._fieldDefStack.pop();\n this._typeStack.pop();\n break;\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n case Kind.FRAGMENT_SPREAD:\n this._fragmentSignature = null;\n break;\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n break;\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n break;\n case Kind.ARGUMENT:\n this._argument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.FRAGMENT_ARGUMENT: {\n this._fragmentArgument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n }\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.ENUM:\n this._enumValue = null;\n break;\n default:\n // Ignore other nodes\n }\n }\n}\n\nfunction getFragmentSignatures(\n document: DocumentNode,\n): Map<string, FragmentSignature> {\n const fragmentSignatures = new Map<string, FragmentSignature>();\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n const variableDefinitions = new Map<string, VariableDefinitionNode>();\n if (definition.variableDefinitions) {\n for (const varDef of definition.variableDefinitions) {\n variableDefinitions.set(varDef.variable.name.value, varDef);\n }\n }\n const signature = { definition, variableDefinitions };\n fragmentSignatures.set(definition.name.value, signature);\n }\n }\n return fragmentSignatures;\n}\n\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n * @param typeInfo - TypeInfo instance to update during traversal.\n * @param visitor - Visitor callbacks to wrap with TypeInfo updates.\n * @returns A visitor that keeps TypeInfo in sync while delegating callbacks.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const typeInfo = new TypeInfo(schema);\n * const fields = [];\n *\n * visit(\n * parse('{ greeting }'),\n * visitWithTypeInfo(typeInfo, {\n * Field: (node) => {\n * fields.push({\n * name: node.name.value,\n * parentType: String(typeInfo.getParentType()),\n * type: String(typeInfo.getType()),\n * });\n * },\n * }),\n * );\n *\n * fields; // => [{ name: 'greeting', parentType: 'Query', type: 'String' }]\n * ```\n */\nexport function visitWithTypeInfo(\n typeInfo: TypeInfo,\n visitor: ASTVisitor,\n): ASTVisitor {\n return {\n enter(...args) {\n const node = args[0];\n typeInfo.enter(node);\n const fn = getEnterLeaveForKind(visitor, node.kind).enter;\n if (fn) {\n const result = fn.apply(visitor, args);\n if (result !== undefined) {\n typeInfo.leave(node);\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n return result;\n }\n },\n leave(...args) {\n const node = args[0];\n const fn = getEnterLeaveForKind(visitor, node.kind).leave;\n let result;\n if (fn) {\n result = fn.apply(visitor, args);\n }\n typeInfo.leave(node);\n return result;\n },\n };\n}\n"]}
@@ -3,18 +3,8 @@ import { Kind } from "../language/kinds.mjs";
3
3
  import { getEnterLeaveForKind } from "../language/visitor.mjs";
4
4
  import { getNamedType, getNullableType, isCompositeType, isEnumType, isInputObjectType, isInputType, isListType, isObjectType, isOutputType, } from "../type/definition.mjs";
5
5
  import { typeFromAST } from "./typeFromAST.mjs";
6
- /**
7
- * TypeInfo is a utility class which, given a GraphQL schema, can keep track
8
- * of the current field and type definitions at any point in a GraphQL document
9
- * AST during a recursive descent by calling `enter(node)` and `leave(node)`.
10
- */
11
6
  export class TypeInfo {
12
- constructor(schema,
13
- /**
14
- * Initial type may be provided in rare cases to facilitate traversals
15
- * beginning somewhere other than documents.
16
- */
17
- initialType, fragmentSignatures) {
7
+ constructor(schema, initialType, fragmentSignatures) {
18
8
  this._schema = schema;
19
9
  this._typeStack = [];
20
10
  this._parentTypeStack = [];
@@ -51,8 +41,6 @@ export class TypeInfo {
51
41
  getInputType() {
52
42
  return this._inputTypeStack.at(-1);
53
43
  }
54
- // Note: continues to expose the closest enclosing valid input type if
55
- // traversal descends into syntax with no corresponding GraphQL input type.
56
44
  getParentInputType() {
57
45
  return this._inputTypeStack.at(-2);
58
46
  }
@@ -82,10 +70,6 @@ export class TypeInfo {
82
70
  }
83
71
  enter(node) {
84
72
  const schema = this._schema;
85
- // Note: many of the types below are explicitly typed as "unknown" to drop
86
- // any assumptions of a valid schema to ensure runtime types are properly
87
- // checked before continuing since TypeInfo is used as part of validation
88
- // which occurs before guarantees of schema and document validity.
89
73
  switch (node.kind) {
90
74
  case Kind.DOCUMENT: {
91
75
  const fragmentSignatures = getFragmentSignatures(node);
@@ -168,7 +152,6 @@ export class TypeInfo {
168
152
  const itemType = isListType(listType)
169
153
  ? listType.ofType
170
154
  : undefined;
171
- // List positions never have a default value.
172
155
  this._defaultValueStack.push(undefined);
173
156
  this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);
174
157
  break;
@@ -197,13 +180,12 @@ export class TypeInfo {
197
180
  break;
198
181
  }
199
182
  default:
200
- // Ignore other nodes
201
183
  }
202
184
  }
203
185
  leave(node) {
204
186
  switch (node.kind) {
205
187
  case Kind.DOCUMENT:
206
- this._fragmentSignaturesByName = /* c8 ignore start */ () => null /* c8 ignore end */;
188
+ this._fragmentSignaturesByName = () => null;
207
189
  break;
208
190
  case Kind.SELECTION_SET:
209
191
  this._parentTypeStack.pop();
@@ -246,7 +228,6 @@ export class TypeInfo {
246
228
  this._enumValue = null;
247
229
  break;
248
230
  default:
249
- // Ignore other nodes
250
231
  }
251
232
  }
252
233
  }
@@ -266,10 +247,6 @@ function getFragmentSignatures(document) {
266
247
  }
267
248
  return fragmentSignatures;
268
249
  }
269
- /**
270
- * Creates a new visitor instance which maintains a provided TypeInfo instance
271
- * along with visiting visitor.
272
- */
273
250
  export function visitWithTypeInfo(typeInfo, visitor) {
274
251
  return {
275
252
  enter(...args) {