graphql 17.0.0-beta.1 → 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 (1176) 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.ts +1 -1
  16. package/__dev__/execution/cancellablePromise.d.ts +1 -1
  17. package/__dev__/execution/collectFields.d.ts +1 -1
  18. package/__dev__/execution/collectIteratorPromises.d.ts +1 -1
  19. package/__dev__/execution/createSharedExecutionContext.d.ts +1 -1
  20. package/__dev__/execution/execute.d.ts +1 -1
  21. package/__dev__/execution/getStreamUsage.d.ts +1 -1
  22. package/__dev__/execution/getVariableSignature.d.ts +1 -1
  23. package/__dev__/execution/hooks.d.ts +1 -1
  24. package/__dev__/execution/incremental/Computation.d.ts +1 -1
  25. package/__dev__/execution/incremental/IncrementalExecutor.d.ts +1 -1
  26. package/__dev__/execution/incremental/IncrementalPublisher.d.ts +1 -1
  27. package/__dev__/execution/incremental/Queue.d.ts +1 -1
  28. package/__dev__/execution/incremental/WorkQueue.d.ts +1 -1
  29. package/__dev__/execution/incremental/buildExecutionPlan.d.ts +1 -1
  30. package/__dev__/execution/index.d.ts +1 -1
  31. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +1 -0
  32. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +1 -0
  33. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.js +3 -0
  34. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +3 -0
  35. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +1 -0
  36. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +1 -0
  37. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.js +3 -0
  38. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +3 -0
  39. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +1 -0
  40. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +1 -0
  41. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.js +3 -0
  42. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.mjs +3 -0
  43. package/__dev__/execution/mapAsyncIterable.d.ts +1 -1
  44. package/__dev__/execution/returnIteratorCatchingErrors.d.ts +1 -1
  45. package/__dev__/execution/values.d.ts +1 -1
  46. package/__dev__/execution/withConcurrentAbruptClose.d.ts +1 -1
  47. package/__dev__/graphql.d.ts +1 -1
  48. package/__dev__/harness.d.ts +1 -1
  49. package/__dev__/index.d.ts +1 -1
  50. package/__dev__/jsutils/AccumulatorMap.d.ts +1 -1
  51. package/__dev__/jsutils/Maybe.d.ts +1 -1
  52. package/__dev__/jsutils/ObjMap.d.ts +1 -1
  53. package/__dev__/jsutils/Path.d.ts +1 -1
  54. package/__dev__/jsutils/PromiseOrValue.d.ts +1 -1
  55. package/__dev__/jsutils/capitalize.d.ts +1 -1
  56. package/__dev__/jsutils/devAssert.d.ts +1 -1
  57. package/__dev__/jsutils/didYouMean.d.ts +1 -1
  58. package/__dev__/jsutils/formatList.d.ts +1 -1
  59. package/__dev__/jsutils/getBySet.d.ts +1 -1
  60. package/__dev__/jsutils/groupBy.d.ts +1 -1
  61. package/__dev__/jsutils/identityFunc.d.ts +1 -1
  62. package/__dev__/jsutils/inspect.d.ts +1 -1
  63. package/__dev__/jsutils/instanceOf.d.ts +1 -1
  64. package/__dev__/jsutils/invariant.d.ts +1 -1
  65. package/__dev__/jsutils/isAsyncIterable.d.ts +1 -1
  66. package/__dev__/jsutils/isIterableObject.d.ts +1 -1
  67. package/__dev__/jsutils/isObjectLike.d.ts +1 -1
  68. package/__dev__/jsutils/isPromise.d.ts +1 -1
  69. package/__dev__/jsutils/isSameSet.d.ts +1 -1
  70. package/__dev__/jsutils/keyMap.d.ts +1 -1
  71. package/__dev__/jsutils/keyValMap.d.ts +1 -1
  72. package/__dev__/jsutils/mapValue.d.ts +1 -1
  73. package/__dev__/jsutils/memoize1.d.ts +1 -1
  74. package/__dev__/jsutils/memoize2.d.ts +1 -1
  75. package/__dev__/jsutils/memoize3.d.ts +1 -1
  76. package/__dev__/jsutils/naturalCompare.d.ts +1 -1
  77. package/__dev__/jsutils/printPathArray.d.ts +1 -1
  78. package/__dev__/jsutils/promiseForObject.d.ts +1 -1
  79. package/__dev__/jsutils/promiseReduce.d.ts +1 -1
  80. package/__dev__/jsutils/promiseWithResolvers.d.ts +1 -1
  81. package/__dev__/jsutils/suggestionList.d.ts +1 -1
  82. package/__dev__/jsutils/toError.d.ts +1 -1
  83. package/__dev__/jsutils/toObjMap.d.ts +1 -1
  84. package/__dev__/language/KindTypeMap.d.ts +1 -1
  85. package/__dev__/language/ast.d.ts +1 -1
  86. package/__dev__/language/blockString.d.ts +1 -1
  87. package/__dev__/language/characterClasses.d.ts +1 -1
  88. package/__dev__/language/directiveLocation.d.ts +1 -1
  89. package/__dev__/language/index.d.ts +1 -1
  90. package/__dev__/language/kinds.d.ts +1 -1
  91. package/__dev__/language/kinds_.d.ts +1 -1
  92. package/__dev__/language/lexer.d.ts +1 -1
  93. package/__dev__/language/location.d.ts +1 -1
  94. package/__dev__/language/parser.d.ts +1 -1
  95. package/__dev__/language/predicates.d.ts +1 -1
  96. package/__dev__/language/printLocation.d.ts +1 -1
  97. package/__dev__/language/printString.d.ts +1 -1
  98. package/__dev__/language/printer.d.ts +1 -1
  99. package/__dev__/language/schemaCoordinateLexer.d.ts +1 -1
  100. package/__dev__/language/source.d.ts +1 -1
  101. package/__dev__/language/tokenKind.d.ts +1 -1
  102. package/__dev__/language/visitor.d.ts +1 -1
  103. package/__dev__/type/assertName.d.ts +1 -1
  104. package/__dev__/type/definition.d.ts +1 -1
  105. package/__dev__/type/directives.d.ts +1 -1
  106. package/__dev__/type/index.d.ts +1 -1
  107. package/__dev__/type/introspection.d.ts +1 -1
  108. package/__dev__/type/scalars.d.ts +1 -1
  109. package/__dev__/type/schema.d.ts +1 -1
  110. package/__dev__/type/validate.d.ts +1 -1
  111. package/__dev__/utilities/TypeInfo.d.ts +1 -1
  112. package/__dev__/utilities/astFromValue.d.ts +1 -1
  113. package/__dev__/utilities/buildASTSchema.d.ts +1 -1
  114. package/__dev__/utilities/buildClientSchema.d.ts +1 -1
  115. package/__dev__/utilities/coerceInputValue.d.ts +1 -1
  116. package/__dev__/utilities/concatAST.d.ts +1 -1
  117. package/__dev__/utilities/extendSchema.d.ts +1 -1
  118. package/__dev__/utilities/findSchemaChanges.d.ts +1 -1
  119. package/__dev__/utilities/getDefaultValueAST.d.ts +1 -1
  120. package/__dev__/utilities/getIntrospectionQuery.d.ts +1 -1
  121. package/__dev__/utilities/getOperationAST.d.ts +1 -1
  122. package/__dev__/utilities/index.d.ts +1 -1
  123. package/__dev__/utilities/introspectionFromSchema.d.ts +1 -1
  124. package/__dev__/utilities/lexicographicSortSchema.d.ts +1 -1
  125. package/__dev__/utilities/mapSchemaConfig.d.ts +1 -1
  126. package/__dev__/utilities/printSchema.d.ts +1 -1
  127. package/__dev__/utilities/replaceVariables.d.ts +1 -1
  128. package/__dev__/utilities/resolveSchemaCoordinate.d.ts +1 -1
  129. package/__dev__/utilities/separateOperations.d.ts +1 -1
  130. package/__dev__/utilities/sortValueNode.d.ts +1 -1
  131. package/__dev__/utilities/stripIgnoredCharacters.d.ts +1 -1
  132. package/__dev__/utilities/typeComparators.d.ts +1 -1
  133. package/__dev__/utilities/typeFromAST.d.ts +1 -1
  134. package/__dev__/utilities/typedQueryDocumentNode.d.ts +1 -1
  135. package/__dev__/utilities/validateInputValue.d.ts +1 -1
  136. package/__dev__/utilities/valueFromAST.d.ts +1 -1
  137. package/__dev__/utilities/valueFromASTUntyped.d.ts +1 -1
  138. package/__dev__/utilities/valueToLiteral.d.ts +1 -1
  139. package/__dev__/validation/ValidationContext.d.ts +1 -1
  140. package/__dev__/validation/index.d.ts +1 -1
  141. package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.d.ts +1 -1
  142. package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +1 -1
  143. package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +1 -1
  144. package/__dev__/validation/rules/ExecutableDefinitionsRule.d.ts +1 -1
  145. package/__dev__/validation/rules/FieldsOnCorrectTypeRule.d.ts +1 -1
  146. package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.d.ts +1 -1
  147. package/__dev__/validation/rules/KnownArgumentNamesRule.d.ts +1 -1
  148. package/__dev__/validation/rules/KnownDirectivesRule.d.ts +1 -1
  149. package/__dev__/validation/rules/KnownFragmentNamesRule.d.ts +1 -1
  150. package/__dev__/validation/rules/KnownOperationTypesRule.d.ts +1 -1
  151. package/__dev__/validation/rules/KnownTypeNamesRule.d.ts +1 -1
  152. package/__dev__/validation/rules/LoneAnonymousOperationRule.d.ts +1 -1
  153. package/__dev__/validation/rules/LoneSchemaDefinitionRule.d.ts +1 -1
  154. package/__dev__/validation/rules/MaxIntrospectionDepthRule.d.ts +1 -1
  155. package/__dev__/validation/rules/NoFragmentCyclesRule.d.ts +1 -1
  156. package/__dev__/validation/rules/NoUndefinedVariablesRule.d.ts +1 -1
  157. package/__dev__/validation/rules/NoUnusedFragmentsRule.d.ts +1 -1
  158. package/__dev__/validation/rules/NoUnusedVariablesRule.d.ts +1 -1
  159. package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +1 -1
  160. package/__dev__/validation/rules/PossibleFragmentSpreadsRule.d.ts +1 -1
  161. package/__dev__/validation/rules/PossibleTypeExtensionsRule.d.ts +1 -1
  162. package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.d.ts +1 -1
  163. package/__dev__/validation/rules/ScalarLeafsRule.d.ts +1 -1
  164. package/__dev__/validation/rules/SingleFieldSubscriptionsRule.d.ts +1 -1
  165. package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.d.ts +1 -1
  166. package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +1 -1
  167. package/__dev__/validation/rules/UniqueArgumentNamesRule.d.ts +1 -1
  168. package/__dev__/validation/rules/UniqueDirectiveNamesRule.d.ts +1 -1
  169. package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.d.ts +1 -1
  170. package/__dev__/validation/rules/UniqueEnumValueNamesRule.d.ts +1 -1
  171. package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +1 -1
  172. package/__dev__/validation/rules/UniqueFragmentNamesRule.d.ts +1 -1
  173. package/__dev__/validation/rules/UniqueInputFieldNamesRule.d.ts +1 -1
  174. package/__dev__/validation/rules/UniqueOperationNamesRule.d.ts +1 -1
  175. package/__dev__/validation/rules/UniqueOperationTypesRule.d.ts +1 -1
  176. package/__dev__/validation/rules/UniqueTypeNamesRule.d.ts +1 -1
  177. package/__dev__/validation/rules/UniqueVariableNamesRule.d.ts +1 -1
  178. package/__dev__/validation/rules/ValuesOfCorrectTypeRule.d.ts +1 -1
  179. package/__dev__/validation/rules/VariablesAreInputTypesRule.d.ts +1 -1
  180. package/__dev__/validation/rules/VariablesInAllowedPositionRule.d.ts +1 -1
  181. package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.d.ts +1 -1
  182. package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +1 -1
  183. package/__dev__/validation/specifiedRules.d.ts +1 -1
  184. package/__dev__/validation/validate.d.ts +1 -1
  185. package/__dev__/version.d.ts +1 -1
  186. package/devMode.d.mts +29 -0
  187. package/devMode.d.ts +29 -0
  188. package/devMode.js.map +1 -1
  189. package/devMode.mjs.map +1 -1
  190. package/error/GraphQLError.d.mts +94 -10
  191. package/error/GraphQLError.d.ts +94 -10
  192. package/error/GraphQLError.js +11 -20
  193. package/error/GraphQLError.js.map +1 -1
  194. package/error/GraphQLError.mjs +11 -20
  195. package/error/GraphQLError.mjs.map +1 -1
  196. package/error/ensureGraphQLError.d.mts +2 -0
  197. package/error/ensureGraphQLError.d.ts +2 -0
  198. package/error/ensureGraphQLError.js +0 -3
  199. package/error/ensureGraphQLError.js.map +1 -1
  200. package/error/ensureGraphQLError.mjs +0 -3
  201. package/error/ensureGraphQLError.mjs.map +1 -1
  202. package/error/index.d.mts +6 -0
  203. package/error/index.d.ts +6 -0
  204. package/error/index.js.map +1 -1
  205. package/error/index.mjs.map +1 -1
  206. package/error/locatedError.d.mts +20 -0
  207. package/error/locatedError.d.ts +20 -0
  208. package/error/locatedError.js +0 -6
  209. package/error/locatedError.js.map +1 -1
  210. package/error/locatedError.mjs +0 -6
  211. package/error/locatedError.mjs.map +1 -1
  212. package/error/syntaxError.d.mts +15 -0
  213. package/error/syntaxError.d.ts +15 -0
  214. package/error/syntaxError.js +0 -4
  215. package/error/syntaxError.js.map +1 -1
  216. package/error/syntaxError.mjs +0 -4
  217. package/error/syntaxError.mjs.map +1 -1
  218. package/execution/AbortedGraphQLExecutionError.d.mts +27 -0
  219. package/execution/AbortedGraphQLExecutionError.d.ts +27 -0
  220. package/execution/AbortedGraphQLExecutionError.js.map +1 -1
  221. package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
  222. package/execution/AsyncWorkTracker.d.mts +1 -1
  223. package/execution/AsyncWorkTracker.d.ts +1 -1
  224. package/execution/AsyncWorkTracker.js +1 -5
  225. package/execution/AsyncWorkTracker.js.map +1 -1
  226. package/execution/AsyncWorkTracker.mjs +1 -5
  227. package/execution/AsyncWorkTracker.mjs.map +1 -1
  228. package/execution/ExecutionArgs.d.mts +101 -0
  229. package/execution/ExecutionArgs.d.ts +101 -0
  230. package/execution/ExecutionArgs.js +3 -0
  231. package/execution/ExecutionArgs.js.map +1 -0
  232. package/execution/ExecutionArgs.mjs +2 -0
  233. package/execution/ExecutionArgs.mjs.map +1 -0
  234. package/execution/Executor.d.mts +44 -40
  235. package/execution/Executor.d.ts +44 -40
  236. package/execution/Executor.js +2 -122
  237. package/execution/Executor.js.map +1 -1
  238. package/execution/Executor.mjs +2 -122
  239. package/execution/Executor.mjs.map +1 -1
  240. package/execution/ExecutorThrowingOnIncremental.js +0 -2
  241. package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
  242. package/execution/ExecutorThrowingOnIncremental.mjs +0 -2
  243. package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
  244. package/execution/buildResolveInfo.d.mts +2 -0
  245. package/execution/buildResolveInfo.d.ts +2 -0
  246. package/execution/buildResolveInfo.js +0 -3
  247. package/execution/buildResolveInfo.js.map +1 -1
  248. package/execution/buildResolveInfo.mjs +0 -3
  249. package/execution/buildResolveInfo.mjs.map +1 -1
  250. package/execution/cancellablePromise.d.mts +3 -0
  251. package/execution/cancellablePromise.d.ts +3 -0
  252. package/execution/cancellablePromise.js.map +1 -1
  253. package/execution/cancellablePromise.mjs.map +1 -1
  254. package/execution/collectFields.d.mts +10 -4
  255. package/execution/collectFields.d.ts +10 -4
  256. package/execution/collectFields.js +0 -41
  257. package/execution/collectFields.js.map +1 -1
  258. package/execution/collectFields.mjs +0 -41
  259. package/execution/collectFields.mjs.map +1 -1
  260. package/execution/collectIteratorPromises.d.mts +2 -0
  261. package/execution/collectIteratorPromises.d.ts +2 -0
  262. package/execution/collectIteratorPromises.js +0 -5
  263. package/execution/collectIteratorPromises.js.map +1 -1
  264. package/execution/collectIteratorPromises.mjs +0 -5
  265. package/execution/collectIteratorPromises.mjs.map +1 -1
  266. package/execution/createSharedExecutionContext.d.mts +1 -0
  267. package/execution/createSharedExecutionContext.d.ts +1 -0
  268. package/execution/createSharedExecutionContext.js.map +1 -1
  269. package/execution/createSharedExecutionContext.mjs.map +1 -1
  270. package/execution/execute.d.mts +403 -38
  271. package/execution/execute.d.ts +403 -38
  272. package/execution/execute.js +0 -161
  273. package/execution/execute.js.map +1 -1
  274. package/execution/execute.mjs +0 -161
  275. package/execution/execute.mjs.map +1 -1
  276. package/execution/getStreamUsage.d.mts +4 -1
  277. package/execution/getStreamUsage.d.ts +4 -1
  278. package/execution/getStreamUsage.js +0 -7
  279. package/execution/getStreamUsage.js.map +1 -1
  280. package/execution/getStreamUsage.mjs +0 -7
  281. package/execution/getStreamUsage.mjs.map +1 -1
  282. package/execution/getVariableSignature.d.mts +4 -1
  283. package/execution/getVariableSignature.d.ts +4 -1
  284. package/execution/getVariableSignature.js +0 -2
  285. package/execution/getVariableSignature.js.map +1 -1
  286. package/execution/getVariableSignature.mjs +0 -2
  287. package/execution/getVariableSignature.mjs.map +1 -1
  288. package/execution/hooks.d.mts +3 -7
  289. package/execution/hooks.d.ts +3 -7
  290. package/execution/hooks.js +0 -1
  291. package/execution/hooks.js.map +1 -1
  292. package/execution/hooks.mjs +0 -1
  293. package/execution/hooks.mjs.map +1 -1
  294. package/execution/incremental/Computation.d.mts +1 -1
  295. package/execution/incremental/Computation.d.ts +1 -1
  296. package/execution/incremental/Computation.js +0 -1
  297. package/execution/incremental/Computation.js.map +1 -1
  298. package/execution/incremental/Computation.mjs +0 -1
  299. package/execution/incremental/Computation.mjs.map +1 -1
  300. package/execution/incremental/IncrementalExecutor.d.mts +124 -9
  301. package/execution/incremental/IncrementalExecutor.d.ts +124 -9
  302. package/execution/incremental/IncrementalExecutor.js +1 -31
  303. package/execution/incremental/IncrementalExecutor.js.map +1 -1
  304. package/execution/incremental/IncrementalExecutor.mjs +1 -31
  305. package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
  306. package/execution/incremental/IncrementalPublisher.d.mts +1 -3
  307. package/execution/incremental/IncrementalPublisher.d.ts +1 -3
  308. package/execution/incremental/IncrementalPublisher.js +0 -5
  309. package/execution/incremental/IncrementalPublisher.js.map +1 -1
  310. package/execution/incremental/IncrementalPublisher.mjs +0 -5
  311. package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
  312. package/execution/incremental/Queue.js +3 -64
  313. package/execution/incremental/Queue.js.map +1 -1
  314. package/execution/incremental/Queue.mjs +2 -62
  315. package/execution/incremental/Queue.mjs.map +1 -1
  316. package/execution/incremental/WorkQueue.d.mts +8 -0
  317. package/execution/incremental/WorkQueue.d.ts +8 -0
  318. package/execution/incremental/WorkQueue.js +0 -15
  319. package/execution/incremental/WorkQueue.js.map +1 -1
  320. package/execution/incremental/WorkQueue.mjs +0 -15
  321. package/execution/incremental/WorkQueue.mjs.map +1 -1
  322. package/execution/incremental/buildExecutionPlan.d.mts +3 -0
  323. package/execution/incremental/buildExecutionPlan.d.ts +3 -0
  324. package/execution/incremental/buildExecutionPlan.js.map +1 -1
  325. package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
  326. package/execution/index.d.mts +12 -3
  327. package/execution/index.d.ts +12 -3
  328. package/execution/index.js +4 -1
  329. package/execution/index.js.map +1 -1
  330. package/execution/index.mjs +1 -0
  331. package/execution/index.mjs.map +1 -1
  332. package/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +175 -0
  333. package/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +175 -0
  334. package/execution/legacyIncremental/BranchingIncrementalExecutor.js +69 -0
  335. package/execution/legacyIncremental/BranchingIncrementalExecutor.js.map +1 -0
  336. package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +65 -0
  337. package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs.map +1 -0
  338. package/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +12 -0
  339. package/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +12 -0
  340. package/execution/legacyIncremental/BranchingIncrementalPublisher.js +131 -0
  341. package/execution/legacyIncremental/BranchingIncrementalPublisher.js.map +1 -0
  342. package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +127 -0
  343. package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs.map +1 -0
  344. package/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +165 -0
  345. package/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +165 -0
  346. package/execution/legacyIncremental/legacyExecuteIncrementally.js +17 -0
  347. package/execution/legacyIncremental/legacyExecuteIncrementally.js.map +1 -0
  348. package/execution/legacyIncremental/legacyExecuteIncrementally.mjs +13 -0
  349. package/execution/legacyIncremental/legacyExecuteIncrementally.mjs.map +1 -0
  350. package/execution/mapAsyncIterable.d.mts +2 -0
  351. package/execution/mapAsyncIterable.d.ts +2 -0
  352. package/execution/mapAsyncIterable.js +0 -5
  353. package/execution/mapAsyncIterable.js.map +1 -1
  354. package/execution/mapAsyncIterable.mjs +0 -5
  355. package/execution/mapAsyncIterable.mjs.map +1 -1
  356. package/execution/returnIteratorCatchingErrors.d.mts +1 -0
  357. package/execution/returnIteratorCatchingErrors.d.ts +1 -0
  358. package/execution/returnIteratorCatchingErrors.js +0 -1
  359. package/execution/returnIteratorCatchingErrors.js.map +1 -1
  360. package/execution/returnIteratorCatchingErrors.mjs +0 -1
  361. package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
  362. package/execution/values.d.mts +187 -5
  363. package/execution/values.d.ts +187 -5
  364. package/execution/values.js +14 -55
  365. package/execution/values.js.map +1 -1
  366. package/execution/values.mjs +14 -55
  367. package/execution/values.mjs.map +1 -1
  368. package/execution/withConcurrentAbruptClose.d.mts +2 -0
  369. package/execution/withConcurrentAbruptClose.d.ts +2 -0
  370. package/execution/withConcurrentAbruptClose.js +0 -14
  371. package/execution/withConcurrentAbruptClose.js.map +1 -1
  372. package/execution/withConcurrentAbruptClose.mjs +0 -14
  373. package/execution/withConcurrentAbruptClose.mjs.map +1 -1
  374. package/graphql.d.mts +192 -44
  375. package/graphql.d.ts +192 -44
  376. package/graphql.js +0 -12
  377. package/graphql.js.map +1 -1
  378. package/graphql.mjs +0 -12
  379. package/graphql.mjs.map +1 -1
  380. package/harness.d.mts +17 -0
  381. package/harness.d.ts +17 -0
  382. package/harness.js.map +1 -1
  383. package/harness.mjs.map +1 -1
  384. package/index.d.mts +26 -24
  385. package/index.d.ts +26 -24
  386. package/index.js +9 -96
  387. package/index.js.map +1 -1
  388. package/index.mjs +5 -149
  389. package/index.mjs.map +1 -1
  390. package/jsutils/AccumulatorMap.d.mts +2 -0
  391. package/jsutils/AccumulatorMap.d.ts +2 -0
  392. package/jsutils/AccumulatorMap.js +0 -4
  393. package/jsutils/AccumulatorMap.js.map +1 -1
  394. package/jsutils/AccumulatorMap.mjs +0 -4
  395. package/jsutils/AccumulatorMap.mjs.map +1 -1
  396. package/jsutils/Maybe.d.mts +5 -1
  397. package/jsutils/Maybe.d.ts +5 -1
  398. package/jsutils/Maybe.js.map +1 -1
  399. package/jsutils/Maybe.mjs.map +1 -1
  400. package/jsutils/ObjMap.d.mts +6 -0
  401. package/jsutils/ObjMap.d.ts +6 -0
  402. package/jsutils/ObjMap.js.map +1 -1
  403. package/jsutils/ObjMap.mjs.map +1 -1
  404. package/jsutils/Path.d.mts +30 -0
  405. package/jsutils/Path.d.ts +30 -0
  406. package/jsutils/Path.js +0 -6
  407. package/jsutils/Path.js.map +1 -1
  408. package/jsutils/Path.mjs +0 -6
  409. package/jsutils/Path.mjs.map +1 -1
  410. package/jsutils/PromiseOrValue.d.mts +1 -0
  411. package/jsutils/PromiseOrValue.d.ts +1 -0
  412. package/jsutils/PromiseOrValue.js.map +1 -1
  413. package/jsutils/PromiseOrValue.mjs.map +1 -1
  414. package/jsutils/capitalize.d.mts +2 -0
  415. package/jsutils/capitalize.d.ts +2 -0
  416. package/jsutils/capitalize.js +0 -3
  417. package/jsutils/capitalize.js.map +1 -1
  418. package/jsutils/capitalize.mjs +0 -3
  419. package/jsutils/capitalize.mjs.map +1 -1
  420. package/jsutils/devAssert.d.mts +1 -0
  421. package/jsutils/devAssert.d.ts +1 -0
  422. package/jsutils/devAssert.js.map +1 -1
  423. package/jsutils/devAssert.mjs.map +1 -1
  424. package/jsutils/didYouMean.d.mts +4 -1
  425. package/jsutils/didYouMean.d.ts +4 -1
  426. package/jsutils/didYouMean.js.map +1 -1
  427. package/jsutils/didYouMean.mjs.map +1 -1
  428. package/jsutils/formatList.d.mts +6 -2
  429. package/jsutils/formatList.d.ts +6 -2
  430. package/jsutils/formatList.js +0 -6
  431. package/jsutils/formatList.js.map +1 -1
  432. package/jsutils/formatList.mjs +0 -6
  433. package/jsutils/formatList.mjs.map +1 -1
  434. package/jsutils/getBySet.d.mts +1 -0
  435. package/jsutils/getBySet.d.ts +1 -0
  436. package/jsutils/getBySet.js.map +1 -1
  437. package/jsutils/getBySet.mjs.map +1 -1
  438. package/jsutils/groupBy.d.mts +2 -0
  439. package/jsutils/groupBy.d.ts +2 -0
  440. package/jsutils/groupBy.js +0 -3
  441. package/jsutils/groupBy.js.map +1 -1
  442. package/jsutils/groupBy.mjs +0 -3
  443. package/jsutils/groupBy.mjs.map +1 -1
  444. package/jsutils/identityFunc.d.mts +2 -0
  445. package/jsutils/identityFunc.d.ts +2 -0
  446. package/jsutils/identityFunc.js +0 -3
  447. package/jsutils/identityFunc.js.map +1 -1
  448. package/jsutils/identityFunc.mjs +0 -3
  449. package/jsutils/identityFunc.mjs.map +1 -1
  450. package/jsutils/inspect.d.mts +2 -0
  451. package/jsutils/inspect.d.ts +2 -0
  452. package/jsutils/inspect.js +0 -4
  453. package/jsutils/inspect.js.map +1 -1
  454. package/jsutils/inspect.mjs +0 -4
  455. package/jsutils/inspect.mjs.map +1 -1
  456. package/jsutils/instanceOf.d.mts +2 -0
  457. package/jsutils/instanceOf.d.ts +2 -0
  458. package/jsutils/instanceOf.js +1 -12
  459. package/jsutils/instanceOf.js.map +1 -1
  460. package/jsutils/instanceOf.mjs +1 -12
  461. package/jsutils/instanceOf.mjs.map +1 -1
  462. package/jsutils/invariant.d.mts +1 -0
  463. package/jsutils/invariant.d.ts +1 -0
  464. package/jsutils/invariant.js.map +1 -1
  465. package/jsutils/invariant.mjs.map +1 -1
  466. package/jsutils/isAsyncIterable.d.mts +2 -0
  467. package/jsutils/isAsyncIterable.d.ts +2 -0
  468. package/jsutils/isAsyncIterable.js +0 -4
  469. package/jsutils/isAsyncIterable.js.map +1 -1
  470. package/jsutils/isAsyncIterable.mjs +0 -4
  471. package/jsutils/isAsyncIterable.mjs.map +1 -1
  472. package/jsutils/isIterableObject.d.mts +6 -5
  473. package/jsutils/isIterableObject.d.ts +6 -5
  474. package/jsutils/isIterableObject.js +0 -17
  475. package/jsutils/isIterableObject.js.map +1 -1
  476. package/jsutils/isIterableObject.mjs +0 -17
  477. package/jsutils/isIterableObject.mjs.map +1 -1
  478. package/jsutils/isObjectLike.d.mts +2 -0
  479. package/jsutils/isObjectLike.d.ts +2 -0
  480. package/jsutils/isObjectLike.js +0 -4
  481. package/jsutils/isObjectLike.js.map +1 -1
  482. package/jsutils/isObjectLike.mjs +0 -4
  483. package/jsutils/isObjectLike.mjs.map +1 -1
  484. package/jsutils/isPromise.d.mts +3 -0
  485. package/jsutils/isPromise.d.ts +3 -0
  486. package/jsutils/isPromise.js +0 -4
  487. package/jsutils/isPromise.js.map +1 -1
  488. package/jsutils/isPromise.mjs +0 -4
  489. package/jsutils/isPromise.mjs.map +1 -1
  490. package/jsutils/isSameSet.d.mts +1 -0
  491. package/jsutils/isSameSet.d.ts +1 -0
  492. package/jsutils/isSameSet.js.map +1 -1
  493. package/jsutils/isSameSet.mjs.map +1 -1
  494. package/jsutils/keyMap.d.mts +7 -14
  495. package/jsutils/keyMap.d.ts +7 -14
  496. package/jsutils/keyMap.js +0 -27
  497. package/jsutils/keyMap.js.map +1 -1
  498. package/jsutils/keyMap.mjs +0 -27
  499. package/jsutils/keyMap.mjs.map +1 -1
  500. package/jsutils/keyValMap.d.mts +9 -6
  501. package/jsutils/keyValMap.d.ts +9 -6
  502. package/jsutils/keyValMap.js +0 -17
  503. package/jsutils/keyValMap.js.map +1 -1
  504. package/jsutils/keyValMap.mjs +0 -17
  505. package/jsutils/keyValMap.mjs.map +1 -1
  506. package/jsutils/mapValue.d.mts +2 -0
  507. package/jsutils/mapValue.d.ts +2 -0
  508. package/jsutils/mapValue.js +0 -4
  509. package/jsutils/mapValue.js.map +1 -1
  510. package/jsutils/mapValue.mjs +0 -4
  511. package/jsutils/mapValue.mjs.map +1 -1
  512. package/jsutils/memoize1.d.mts +2 -0
  513. package/jsutils/memoize1.d.ts +2 -0
  514. package/jsutils/memoize1.js +0 -3
  515. package/jsutils/memoize1.js.map +1 -1
  516. package/jsutils/memoize1.mjs +0 -3
  517. package/jsutils/memoize1.mjs.map +1 -1
  518. package/jsutils/memoize2.d.mts +2 -0
  519. package/jsutils/memoize2.d.ts +2 -0
  520. package/jsutils/memoize2.js +0 -3
  521. package/jsutils/memoize2.js.map +1 -1
  522. package/jsutils/memoize2.mjs +0 -3
  523. package/jsutils/memoize2.mjs.map +1 -1
  524. package/jsutils/memoize3.d.mts +2 -0
  525. package/jsutils/memoize3.d.ts +2 -0
  526. package/jsutils/memoize3.js +0 -3
  527. package/jsutils/memoize3.js.map +1 -1
  528. package/jsutils/memoize3.mjs +0 -3
  529. package/jsutils/memoize3.mjs.map +1 -1
  530. package/jsutils/naturalCompare.d.mts +1 -0
  531. package/jsutils/naturalCompare.d.ts +1 -0
  532. package/jsutils/naturalCompare.js +0 -7
  533. package/jsutils/naturalCompare.js.map +1 -1
  534. package/jsutils/naturalCompare.mjs +0 -7
  535. package/jsutils/naturalCompare.mjs.map +1 -1
  536. package/jsutils/printPathArray.d.mts +2 -0
  537. package/jsutils/printPathArray.d.ts +2 -0
  538. package/jsutils/printPathArray.js +0 -3
  539. package/jsutils/printPathArray.js.map +1 -1
  540. package/jsutils/printPathArray.mjs +0 -3
  541. package/jsutils/printPathArray.mjs.map +1 -1
  542. package/jsutils/promiseForObject.d.mts +2 -0
  543. package/jsutils/promiseForObject.d.ts +2 -0
  544. package/jsutils/promiseForObject.js +0 -7
  545. package/jsutils/promiseForObject.js.map +1 -1
  546. package/jsutils/promiseForObject.mjs +0 -7
  547. package/jsutils/promiseForObject.mjs.map +1 -1
  548. package/jsutils/promiseReduce.d.mts +2 -0
  549. package/jsutils/promiseReduce.d.ts +2 -0
  550. package/jsutils/promiseReduce.js +0 -7
  551. package/jsutils/promiseReduce.js.map +1 -1
  552. package/jsutils/promiseReduce.mjs +0 -7
  553. package/jsutils/promiseReduce.mjs.map +1 -1
  554. package/jsutils/promiseWithResolvers.d.mts +2 -0
  555. package/jsutils/promiseWithResolvers.d.ts +2 -0
  556. package/jsutils/promiseWithResolvers.js +0 -5
  557. package/jsutils/promiseWithResolvers.js.map +1 -1
  558. package/jsutils/promiseWithResolvers.mjs +0 -5
  559. package/jsutils/promiseWithResolvers.mjs.map +1 -1
  560. package/jsutils/suggestionList.d.mts +2 -0
  561. package/jsutils/suggestionList.d.ts +2 -0
  562. package/jsutils/suggestionList.js +1 -24
  563. package/jsutils/suggestionList.js.map +1 -1
  564. package/jsutils/suggestionList.mjs +1 -24
  565. package/jsutils/suggestionList.mjs.map +1 -1
  566. package/jsutils/toError.d.mts +2 -0
  567. package/jsutils/toError.d.ts +2 -0
  568. package/jsutils/toError.js +0 -3
  569. package/jsutils/toError.js.map +1 -1
  570. package/jsutils/toError.mjs +0 -3
  571. package/jsutils/toError.mjs.map +1 -1
  572. package/jsutils/toObjMap.d.mts +2 -0
  573. package/jsutils/toObjMap.d.ts +2 -0
  574. package/jsutils/toObjMap.js.map +1 -1
  575. package/jsutils/toObjMap.mjs.map +1 -1
  576. package/language/KindTypeMap.d.mts +1 -0
  577. package/language/KindTypeMap.d.ts +1 -0
  578. package/language/KindTypeMap.js.map +1 -1
  579. package/language/KindTypeMap.mjs.map +1 -1
  580. package/language/ast.d.mts +413 -53
  581. package/language/ast.d.ts +413 -53
  582. package/language/ast.js +0 -20
  583. package/language/ast.js.map +1 -1
  584. package/language/ast.mjs +0 -20
  585. package/language/ast.mjs.map +1 -1
  586. package/language/blockString.d.mts +1 -3
  587. package/language/blockString.d.ts +1 -3
  588. package/language/blockString.js +11 -37
  589. package/language/blockString.js.map +1 -1
  590. package/language/blockString.mjs +11 -37
  591. package/language/blockString.mjs.map +1 -1
  592. package/language/characterClasses.js +2 -45
  593. package/language/characterClasses.js.map +1 -1
  594. package/language/characterClasses.mjs +2 -45
  595. package/language/characterClasses.mjs.map +1 -1
  596. package/language/directiveLocation.d.mts +24 -5
  597. package/language/directiveLocation.d.ts +24 -5
  598. package/language/directiveLocation.js +0 -5
  599. package/language/directiveLocation.js.map +1 -1
  600. package/language/directiveLocation.mjs +0 -5
  601. package/language/directiveLocation.mjs.map +1 -1
  602. package/language/index.d.mts +6 -0
  603. package/language/index.d.ts +6 -0
  604. package/language/index.js +0 -4
  605. package/language/index.js.map +1 -1
  606. package/language/index.mjs +0 -4
  607. package/language/index.mjs.map +1 -1
  608. package/language/kinds.d.mts +3 -0
  609. package/language/kinds.d.ts +3 -0
  610. package/language/kinds.js.map +1 -1
  611. package/language/kinds.mjs.map +1 -1
  612. package/language/kinds_.d.mts +100 -12
  613. package/language/kinds_.d.ts +100 -12
  614. package/language/kinds_.js +0 -13
  615. package/language/kinds_.js.map +1 -1
  616. package/language/kinds_.mjs +0 -13
  617. package/language/kinds_.mjs.map +1 -1
  618. package/language/lexer.d.mts +48 -15
  619. package/language/lexer.d.ts +48 -15
  620. package/language/lexer.js +37 -278
  621. package/language/lexer.js.map +1 -1
  622. package/language/lexer.mjs +37 -278
  623. package/language/lexer.mjs.map +1 -1
  624. package/language/location.d.mts +16 -3
  625. package/language/location.d.ts +16 -3
  626. package/language/location.js +0 -4
  627. package/language/location.js.map +1 -1
  628. package/language/location.mjs +0 -4
  629. package/language/location.mjs.map +1 -1
  630. package/language/parser.d.mts +224 -9
  631. package/language/parser.d.ts +224 -9
  632. package/language/parser.js +0 -375
  633. package/language/parser.js.map +1 -1
  634. package/language/parser.mjs +0 -375
  635. package/language/parser.mjs.map +1 -1
  636. package/language/predicates.d.mts +181 -0
  637. package/language/predicates.d.ts +181 -0
  638. package/language/predicates.js +0 -6
  639. package/language/predicates.js.map +1 -1
  640. package/language/predicates.mjs +0 -6
  641. package/language/predicates.mjs.map +1 -1
  642. package/language/printLocation.d.mts +28 -0
  643. package/language/printLocation.d.ts +28 -0
  644. package/language/printLocation.js +0 -8
  645. package/language/printLocation.js.map +1 -1
  646. package/language/printLocation.mjs +0 -8
  647. package/language/printLocation.mjs.map +1 -1
  648. package/language/printString.d.mts +2 -0
  649. package/language/printString.d.ts +2 -0
  650. package/language/printString.js +5 -11
  651. package/language/printString.js.map +1 -1
  652. package/language/printString.mjs +5 -11
  653. package/language/printString.mjs.map +1 -1
  654. package/language/printer.d.mts +12 -0
  655. package/language/printer.d.ts +12 -0
  656. package/language/printer.js +0 -25
  657. package/language/printer.js.map +1 -1
  658. package/language/printer.mjs +0 -25
  659. package/language/printer.mjs.map +1 -1
  660. package/language/schemaCoordinateLexer.d.mts +14 -0
  661. package/language/schemaCoordinateLexer.d.ts +14 -0
  662. package/language/schemaCoordinateLexer.js +5 -35
  663. package/language/schemaCoordinateLexer.js.map +1 -1
  664. package/language/schemaCoordinateLexer.mjs +5 -35
  665. package/language/schemaCoordinateLexer.mjs.map +1 -1
  666. package/language/source.d.mts +28 -1
  667. package/language/source.d.ts +28 -1
  668. package/language/source.js +0 -12
  669. package/language/source.js.map +1 -1
  670. package/language/source.mjs +0 -12
  671. package/language/source.mjs.map +1 -1
  672. package/language/tokenKind.d.mts +5 -0
  673. package/language/tokenKind.d.ts +5 -0
  674. package/language/tokenKind.js +0 -4
  675. package/language/tokenKind.js.map +1 -1
  676. package/language/tokenKind.mjs +0 -4
  677. package/language/tokenKind.mjs.map +1 -1
  678. package/language/visitor.d.mts +182 -72
  679. package/language/visitor.d.ts +182 -72
  680. package/language/visitor.js +0 -15
  681. package/language/visitor.js.map +1 -1
  682. package/language/visitor.mjs +0 -15
  683. package/language/visitor.mjs.map +1 -1
  684. package/package.json +1 -1
  685. package/type/assertName.d.mts +18 -1
  686. package/type/assertName.d.ts +18 -1
  687. package/type/assertName.js +0 -8
  688. package/type/assertName.js.map +1 -1
  689. package/type/assertName.mjs +0 -8
  690. package/type/assertName.mjs.map +1 -1
  691. package/type/definition.d.mts +3258 -128
  692. package/type/definition.d.ts +3258 -128
  693. package/type/definition.js +5 -252
  694. package/type/definition.js.map +1 -1
  695. package/type/definition.mjs +5 -252
  696. package/type/definition.mjs.map +1 -1
  697. package/type/directives.d.mts +209 -20
  698. package/type/directives.d.ts +209 -20
  699. package/type/directives.js +0 -37
  700. package/type/directives.js.map +1 -1
  701. package/type/directives.mjs +0 -37
  702. package/type/directives.mjs.map +1 -1
  703. package/type/index.d.mts +6 -0
  704. package/type/index.d.ts +6 -0
  705. package/type/index.js +0 -23
  706. package/type/index.js.map +1 -1
  707. package/type/index.mjs +5 -48
  708. package/type/index.mjs.map +1 -1
  709. package/type/introspection.d.mts +36 -0
  710. package/type/introspection.d.ts +36 -0
  711. package/type/introspection.js +1 -6
  712. package/type/introspection.js.map +1 -1
  713. package/type/introspection.mjs +1 -6
  714. package/type/introspection.mjs.map +1 -1
  715. package/type/scalars.d.mts +29 -2
  716. package/type/scalars.d.ts +29 -2
  717. package/type/scalars.js +0 -15
  718. package/type/scalars.js.map +1 -1
  719. package/type/scalars.mjs +0 -15
  720. package/type/scalars.mjs.map +1 -1
  721. package/type/schema.d.mts +507 -31
  722. package/type/schema.d.ts +507 -31
  723. package/type/schema.js +0 -97
  724. package/type/schema.js.map +1 -1
  725. package/type/schema.mjs +0 -97
  726. package/type/schema.mjs.map +1 -1
  727. package/type/validate.d.mts +32 -3
  728. package/type/validate.d.ts +32 -3
  729. package/type/validate.js +0 -112
  730. package/type/validate.js.map +1 -1
  731. package/type/validate.mjs +0 -112
  732. package/type/validate.mjs.map +1 -1
  733. package/utilities/TypeInfo.d.mts +564 -1
  734. package/utilities/TypeInfo.d.ts +564 -1
  735. package/utilities/TypeInfo.js +1 -24
  736. package/utilities/TypeInfo.js.map +1 -1
  737. package/utilities/TypeInfo.mjs +1 -24
  738. package/utilities/TypeInfo.mjs.map +1 -1
  739. package/utilities/astFromValue.d.mts +36 -3
  740. package/utilities/astFromValue.d.ts +36 -3
  741. package/utilities/astFromValue.js +0 -42
  742. package/utilities/astFromValue.js.map +1 -1
  743. package/utilities/astFromValue.mjs +0 -42
  744. package/utilities/astFromValue.mjs.map +1 -1
  745. package/utilities/buildASTSchema.d.mts +66 -6
  746. package/utilities/buildASTSchema.d.ts +66 -6
  747. package/utilities/buildASTSchema.js +0 -21
  748. package/utilities/buildASTSchema.js.map +1 -1
  749. package/utilities/buildASTSchema.mjs +0 -21
  750. package/utilities/buildASTSchema.mjs.map +1 -1
  751. package/utilities/buildClientSchema.d.mts +17 -2
  752. package/utilities/buildClientSchema.d.ts +17 -2
  753. package/utilities/buildClientSchema.js +1 -32
  754. package/utilities/buildClientSchema.js.map +1 -1
  755. package/utilities/buildClientSchema.mjs +0 -30
  756. package/utilities/buildClientSchema.mjs.map +1 -1
  757. package/utilities/coerceInputValue.d.mts +83 -1
  758. package/utilities/coerceInputValue.d.ts +83 -1
  759. package/utilities/coerceInputValue.js +21 -50
  760. package/utilities/coerceInputValue.js.map +1 -1
  761. package/utilities/coerceInputValue.mjs +21 -50
  762. package/utilities/coerceInputValue.mjs.map +1 -1
  763. package/utilities/concatAST.d.mts +12 -0
  764. package/utilities/concatAST.d.ts +12 -0
  765. package/utilities/concatAST.js +0 -5
  766. package/utilities/concatAST.js.map +1 -1
  767. package/utilities/concatAST.mjs +0 -5
  768. package/utilities/concatAST.mjs.map +1 -1
  769. package/utilities/extendSchema.d.mts +58 -3
  770. package/utilities/extendSchema.d.ts +58 -3
  771. package/utilities/extendSchema.js +0 -60
  772. package/utilities/extendSchema.js.map +1 -1
  773. package/utilities/extendSchema.mjs +0 -60
  774. package/utilities/extendSchema.mjs.map +1 -1
  775. package/utilities/findSchemaChanges.d.mts +99 -1
  776. package/utilities/findSchemaChanges.d.ts +99 -1
  777. package/utilities/findSchemaChanges.js +3 -35
  778. package/utilities/findSchemaChanges.js.map +1 -1
  779. package/utilities/findSchemaChanges.mjs +3 -35
  780. package/utilities/findSchemaChanges.mjs.map +1 -1
  781. package/utilities/getDefaultValueAST.d.mts +1 -0
  782. package/utilities/getDefaultValueAST.d.ts +1 -0
  783. package/utilities/getDefaultValueAST.js +0 -2
  784. package/utilities/getDefaultValueAST.js.map +1 -1
  785. package/utilities/getDefaultValueAST.mjs +0 -2
  786. package/utilities/getDefaultValueAST.mjs.map +1 -1
  787. package/utilities/getIntrospectionQuery.d.mts +132 -0
  788. package/utilities/getIntrospectionQuery.d.ts +132 -0
  789. package/utilities/getIntrospectionQuery.js +0 -4
  790. package/utilities/getIntrospectionQuery.js.map +1 -1
  791. package/utilities/getIntrospectionQuery.mjs +0 -4
  792. package/utilities/getIntrospectionQuery.mjs.map +1 -1
  793. package/utilities/getOperationAST.d.mts +15 -0
  794. package/utilities/getOperationAST.d.ts +15 -0
  795. package/utilities/getOperationAST.js +0 -8
  796. package/utilities/getOperationAST.js.map +1 -1
  797. package/utilities/getOperationAST.mjs +0 -8
  798. package/utilities/getOperationAST.mjs.map +1 -1
  799. package/utilities/index.d.mts +18 -3
  800. package/utilities/index.d.ts +18 -3
  801. package/utilities/index.js +0 -27
  802. package/utilities/index.js.map +1 -1
  803. package/utilities/index.mjs +4 -37
  804. package/utilities/index.mjs.map +1 -1
  805. package/utilities/introspectionFromSchema.d.mts +54 -0
  806. package/utilities/introspectionFromSchema.d.ts +54 -0
  807. package/utilities/introspectionFromSchema.js +0 -9
  808. package/utilities/introspectionFromSchema.js.map +1 -1
  809. package/utilities/introspectionFromSchema.mjs +0 -9
  810. package/utilities/introspectionFromSchema.mjs.map +1 -1
  811. package/utilities/lexicographicSortSchema.d.mts +35 -0
  812. package/utilities/lexicographicSortSchema.d.ts +35 -0
  813. package/utilities/lexicographicSortSchema.js +0 -5
  814. package/utilities/lexicographicSortSchema.js.map +1 -1
  815. package/utilities/lexicographicSortSchema.mjs +0 -5
  816. package/utilities/lexicographicSortSchema.mjs.map +1 -1
  817. package/utilities/mapSchemaConfig.d.mts +6 -3
  818. package/utilities/mapSchemaConfig.d.ts +6 -3
  819. package/utilities/mapSchemaConfig.js +0 -10
  820. package/utilities/mapSchemaConfig.js.map +1 -1
  821. package/utilities/mapSchemaConfig.mjs +0 -10
  822. package/utilities/mapSchemaConfig.mjs.map +1 -1
  823. package/utilities/printSchema.d.mts +84 -0
  824. package/utilities/printSchema.d.ts +84 -0
  825. package/utilities/printSchema.js +0 -28
  826. package/utilities/printSchema.js.map +1 -1
  827. package/utilities/printSchema.mjs +0 -28
  828. package/utilities/printSchema.mjs.map +1 -1
  829. package/utilities/replaceVariables.d.mts +36 -0
  830. package/utilities/replaceVariables.d.ts +36 -0
  831. package/utilities/replaceVariables.js +0 -8
  832. package/utilities/replaceVariables.js.map +1 -1
  833. package/utilities/replaceVariables.mjs +0 -8
  834. package/utilities/replaceVariables.mjs.map +1 -1
  835. package/utilities/resolveSchemaCoordinate.d.mts +62 -0
  836. package/utilities/resolveSchemaCoordinate.d.ts +62 -0
  837. package/utilities/resolveSchemaCoordinate.js +0 -56
  838. package/utilities/resolveSchemaCoordinate.js.map +1 -1
  839. package/utilities/resolveSchemaCoordinate.mjs +0 -56
  840. package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
  841. package/utilities/separateOperations.d.mts +30 -0
  842. package/utilities/separateOperations.d.ts +30 -0
  843. package/utilities/separateOperations.js +0 -15
  844. package/utilities/separateOperations.js.map +1 -1
  845. package/utilities/separateOperations.mjs +0 -15
  846. package/utilities/separateOperations.mjs.map +1 -1
  847. package/utilities/sortValueNode.js +0 -7
  848. package/utilities/sortValueNode.js.map +1 -1
  849. package/utilities/sortValueNode.mjs +0 -7
  850. package/utilities/sortValueNode.mjs.map +1 -1
  851. package/utilities/stripIgnoredCharacters.d.mts +13 -6
  852. package/utilities/stripIgnoredCharacters.d.ts +13 -6
  853. package/utilities/stripIgnoredCharacters.js +0 -65
  854. package/utilities/stripIgnoredCharacters.js.map +1 -1
  855. package/utilities/stripIgnoredCharacters.mjs +0 -65
  856. package/utilities/stripIgnoredCharacters.mjs.map +1 -1
  857. package/utilities/typeComparators.d.mts +84 -0
  858. package/utilities/typeComparators.d.ts +84 -0
  859. package/utilities/typeComparators.js +0 -33
  860. package/utilities/typeComparators.js.map +1 -1
  861. package/utilities/typeComparators.mjs +0 -33
  862. package/utilities/typeComparators.mjs.map +1 -1
  863. package/utilities/typeFromAST.d.mts +86 -0
  864. package/utilities/typeFromAST.d.ts +86 -0
  865. package/utilities/typeFromAST.js.map +1 -1
  866. package/utilities/typeFromAST.mjs.map +1 -1
  867. package/utilities/typedQueryDocumentNode.d.mts +4 -0
  868. package/utilities/typedQueryDocumentNode.d.ts +4 -0
  869. package/utilities/typedQueryDocumentNode.js.map +1 -1
  870. package/utilities/typedQueryDocumentNode.mjs.map +1 -1
  871. package/utilities/validateInputValue.d.mts +123 -0
  872. package/utilities/validateInputValue.d.ts +123 -0
  873. package/utilities/validateInputValue.js +0 -20
  874. package/utilities/validateInputValue.js.map +1 -1
  875. package/utilities/validateInputValue.mjs +0 -20
  876. package/utilities/validateInputValue.mjs.map +1 -1
  877. package/utilities/valueFromAST.d.mts +41 -0
  878. package/utilities/valueFromAST.d.ts +41 -0
  879. package/utilities/valueFromAST.js +13 -51
  880. package/utilities/valueFromAST.js.map +1 -1
  881. package/utilities/valueFromAST.mjs +13 -51
  882. package/utilities/valueFromAST.mjs.map +1 -1
  883. package/utilities/valueFromASTUntyped.d.mts +15 -2
  884. package/utilities/valueFromASTUntyped.d.ts +15 -2
  885. package/utilities/valueFromASTUntyped.js +0 -16
  886. package/utilities/valueFromASTUntyped.js.map +1 -1
  887. package/utilities/valueFromASTUntyped.mjs +0 -16
  888. package/utilities/valueFromASTUntyped.mjs.map +1 -1
  889. package/utilities/valueToLiteral.d.mts +30 -1
  890. package/utilities/valueToLiteral.d.ts +30 -1
  891. package/utilities/valueToLiteral.js +7 -40
  892. package/utilities/valueToLiteral.js.map +1 -1
  893. package/utilities/valueToLiteral.mjs +7 -40
  894. package/utilities/valueToLiteral.mjs.map +1 -1
  895. package/validation/ValidationContext.d.mts +490 -0
  896. package/validation/ValidationContext.d.ts +490 -0
  897. package/validation/ValidationContext.js +1 -8
  898. package/validation/ValidationContext.js.map +1 -1
  899. package/validation/ValidationContext.mjs +1 -8
  900. package/validation/ValidationContext.mjs.map +1 -1
  901. package/validation/index.d.mts +7 -0
  902. package/validation/index.d.ts +7 -0
  903. package/validation/index.js +0 -34
  904. package/validation/index.js.map +1 -1
  905. package/validation/index.mjs +0 -34
  906. package/validation/index.mjs.map +1 -1
  907. package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +30 -0
  908. package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +30 -0
  909. package/validation/rules/DeferStreamDirectiveLabelRule.js +0 -5
  910. package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
  911. package/validation/rules/DeferStreamDirectiveLabelRule.mjs +0 -5
  912. package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
  913. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +28 -0
  914. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +28 -0
  915. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +0 -5
  916. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
  917. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs +0 -5
  918. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
  919. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +52 -0
  920. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +52 -0
  921. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +0 -5
  922. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
  923. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs +0 -5
  924. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
  925. package/validation/rules/ExecutableDefinitionsRule.d.mts +28 -0
  926. package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
  927. package/validation/rules/ExecutableDefinitionsRule.js +0 -8
  928. package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
  929. package/validation/rules/ExecutableDefinitionsRule.mjs +0 -8
  930. package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
  931. package/validation/rules/FieldsOnCorrectTypeRule.d.mts +28 -0
  932. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
  933. package/validation/rules/FieldsOnCorrectTypeRule.js +0 -27
  934. package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
  935. package/validation/rules/FieldsOnCorrectTypeRule.mjs +0 -27
  936. package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
  937. package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +28 -0
  938. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
  939. package/validation/rules/FragmentsOnCompositeTypesRule.js +0 -9
  940. package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
  941. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +0 -9
  942. package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
  943. package/validation/rules/KnownArgumentNamesRule.d.mts +29 -3
  944. package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
  945. package/validation/rules/KnownArgumentNamesRule.js +0 -13
  946. package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
  947. package/validation/rules/KnownArgumentNamesRule.mjs +0 -13
  948. package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
  949. package/validation/rules/KnownDirectivesRule.d.mts +28 -0
  950. package/validation/rules/KnownDirectivesRule.d.ts +28 -0
  951. package/validation/rules/KnownDirectivesRule.js +0 -10
  952. package/validation/rules/KnownDirectivesRule.js.map +1 -1
  953. package/validation/rules/KnownDirectivesRule.mjs +0 -10
  954. package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
  955. package/validation/rules/KnownFragmentNamesRule.d.mts +28 -0
  956. package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
  957. package/validation/rules/KnownFragmentNamesRule.js +0 -8
  958. package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
  959. package/validation/rules/KnownFragmentNamesRule.mjs +0 -8
  960. package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
  961. package/validation/rules/KnownOperationTypesRule.d.mts +20 -0
  962. package/validation/rules/KnownOperationTypesRule.d.ts +20 -0
  963. package/validation/rules/KnownOperationTypesRule.js +0 -8
  964. package/validation/rules/KnownOperationTypesRule.js.map +1 -1
  965. package/validation/rules/KnownOperationTypesRule.mjs +0 -8
  966. package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
  967. package/validation/rules/KnownTypeNamesRule.d.mts +28 -0
  968. package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
  969. package/validation/rules/KnownTypeNamesRule.js +0 -8
  970. package/validation/rules/KnownTypeNamesRule.js.map +1 -1
  971. package/validation/rules/KnownTypeNamesRule.mjs +0 -8
  972. package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
  973. package/validation/rules/LoneAnonymousOperationRule.d.mts +28 -0
  974. package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
  975. package/validation/rules/LoneAnonymousOperationRule.js +0 -8
  976. package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
  977. package/validation/rules/LoneAnonymousOperationRule.mjs +0 -8
  978. package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
  979. package/validation/rules/LoneSchemaDefinitionRule.d.mts +21 -0
  980. package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
  981. package/validation/rules/LoneSchemaDefinitionRule.js +0 -5
  982. package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
  983. package/validation/rules/LoneSchemaDefinitionRule.mjs +0 -5
  984. package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
  985. package/validation/rules/MaxIntrospectionDepthRule.d.mts +31 -0
  986. package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
  987. package/validation/rules/MaxIntrospectionDepthRule.js +0 -14
  988. package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
  989. package/validation/rules/MaxIntrospectionDepthRule.mjs +0 -14
  990. package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
  991. package/validation/rules/NoFragmentCyclesRule.d.mts +28 -0
  992. package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
  993. package/validation/rules/NoFragmentCyclesRule.js +0 -15
  994. package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
  995. package/validation/rules/NoFragmentCyclesRule.mjs +0 -15
  996. package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
  997. package/validation/rules/NoUndefinedVariablesRule.d.mts +28 -0
  998. package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
  999. package/validation/rules/NoUndefinedVariablesRule.js +0 -8
  1000. package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
  1001. package/validation/rules/NoUndefinedVariablesRule.mjs +0 -8
  1002. package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
  1003. package/validation/rules/NoUnusedFragmentsRule.d.mts +28 -0
  1004. package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
  1005. package/validation/rules/NoUnusedFragmentsRule.js +0 -8
  1006. package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
  1007. package/validation/rules/NoUnusedFragmentsRule.mjs +0 -8
  1008. package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
  1009. package/validation/rules/NoUnusedVariablesRule.d.mts +29 -0
  1010. package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
  1011. package/validation/rules/NoUnusedVariablesRule.js +0 -8
  1012. package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
  1013. package/validation/rules/NoUnusedVariablesRule.mjs +0 -8
  1014. package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
  1015. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +33 -0
  1016. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
  1017. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +1 -175
  1018. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
  1019. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +1 -175
  1020. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
  1021. package/validation/rules/PossibleFragmentSpreadsRule.d.mts +36 -0
  1022. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
  1023. package/validation/rules/PossibleFragmentSpreadsRule.js +0 -7
  1024. package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
  1025. package/validation/rules/PossibleFragmentSpreadsRule.mjs +0 -7
  1026. package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
  1027. package/validation/rules/PossibleTypeExtensionsRule.d.mts +21 -0
  1028. package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
  1029. package/validation/rules/PossibleTypeExtensionsRule.js +0 -9
  1030. package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
  1031. package/validation/rules/PossibleTypeExtensionsRule.mjs +0 -9
  1032. package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
  1033. package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +29 -3
  1034. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
  1035. package/validation/rules/ProvidedRequiredArgumentsRule.js +0 -13
  1036. package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
  1037. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +0 -13
  1038. package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
  1039. package/validation/rules/ScalarLeafsRule.d.mts +28 -0
  1040. package/validation/rules/ScalarLeafsRule.d.ts +28 -0
  1041. package/validation/rules/ScalarLeafsRule.js +0 -6
  1042. package/validation/rules/ScalarLeafsRule.js.map +1 -1
  1043. package/validation/rules/ScalarLeafsRule.mjs +0 -6
  1044. package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
  1045. package/validation/rules/SingleFieldSubscriptionsRule.d.mts +34 -2
  1046. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +34 -2
  1047. package/validation/rules/SingleFieldSubscriptionsRule.js +0 -9
  1048. package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
  1049. package/validation/rules/SingleFieldSubscriptionsRule.mjs +0 -9
  1050. package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
  1051. package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +21 -0
  1052. package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +21 -0
  1053. package/validation/rules/StreamDirectiveOnListFieldRule.js +0 -5
  1054. package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
  1055. package/validation/rules/StreamDirectiveOnListFieldRule.mjs +0 -5
  1056. package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
  1057. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +21 -0
  1058. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
  1059. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +0 -6
  1060. package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
  1061. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +0 -6
  1062. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
  1063. package/validation/rules/UniqueArgumentNamesRule.d.mts +28 -0
  1064. package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
  1065. package/validation/rules/UniqueArgumentNamesRule.js +0 -8
  1066. package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
  1067. package/validation/rules/UniqueArgumentNamesRule.mjs +0 -8
  1068. package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
  1069. package/validation/rules/UniqueDirectiveNamesRule.d.mts +21 -0
  1070. package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
  1071. package/validation/rules/UniqueDirectiveNamesRule.js +0 -5
  1072. package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
  1073. package/validation/rules/UniqueDirectiveNamesRule.mjs +0 -5
  1074. package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
  1075. package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +28 -0
  1076. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
  1077. package/validation/rules/UniqueDirectivesPerLocationRule.js +0 -11
  1078. package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
  1079. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +0 -11
  1080. package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
  1081. package/validation/rules/UniqueEnumValueNamesRule.d.mts +21 -0
  1082. package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
  1083. package/validation/rules/UniqueEnumValueNamesRule.js +0 -5
  1084. package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
  1085. package/validation/rules/UniqueEnumValueNamesRule.mjs +0 -5
  1086. package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
  1087. package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +21 -0
  1088. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
  1089. package/validation/rules/UniqueFieldDefinitionNamesRule.js +0 -5
  1090. package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
  1091. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +0 -5
  1092. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
  1093. package/validation/rules/UniqueFragmentNamesRule.d.mts +28 -0
  1094. package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
  1095. package/validation/rules/UniqueFragmentNamesRule.js +0 -7
  1096. package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
  1097. package/validation/rules/UniqueFragmentNamesRule.mjs +0 -7
  1098. package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
  1099. package/validation/rules/UniqueInputFieldNamesRule.d.mts +32 -0
  1100. package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
  1101. package/validation/rules/UniqueInputFieldNamesRule.js +0 -8
  1102. package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
  1103. package/validation/rules/UniqueInputFieldNamesRule.mjs +0 -8
  1104. package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
  1105. package/validation/rules/UniqueOperationNamesRule.d.mts +28 -0
  1106. package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
  1107. package/validation/rules/UniqueOperationNamesRule.js +0 -7
  1108. package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
  1109. package/validation/rules/UniqueOperationNamesRule.mjs +0 -7
  1110. package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
  1111. package/validation/rules/UniqueOperationTypesRule.d.mts +21 -0
  1112. package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
  1113. package/validation/rules/UniqueOperationTypesRule.js +0 -5
  1114. package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
  1115. package/validation/rules/UniqueOperationTypesRule.mjs +0 -5
  1116. package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
  1117. package/validation/rules/UniqueTypeNamesRule.d.mts +21 -0
  1118. package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
  1119. package/validation/rules/UniqueTypeNamesRule.js +0 -5
  1120. package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
  1121. package/validation/rules/UniqueTypeNamesRule.mjs +0 -5
  1122. package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
  1123. package/validation/rules/UniqueVariableNamesRule.d.mts +28 -0
  1124. package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
  1125. package/validation/rules/UniqueVariableNamesRule.js +0 -5
  1126. package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
  1127. package/validation/rules/UniqueVariableNamesRule.mjs +0 -5
  1128. package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
  1129. package/validation/rules/ValuesOfCorrectTypeRule.d.mts +28 -0
  1130. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
  1131. package/validation/rules/ValuesOfCorrectTypeRule.js +1 -21
  1132. package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
  1133. package/validation/rules/ValuesOfCorrectTypeRule.mjs +1 -21
  1134. package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
  1135. package/validation/rules/VariablesAreInputTypesRule.d.mts +32 -0
  1136. package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
  1137. package/validation/rules/VariablesAreInputTypesRule.js +0 -8
  1138. package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
  1139. package/validation/rules/VariablesAreInputTypesRule.mjs +0 -8
  1140. package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
  1141. package/validation/rules/VariablesInAllowedPositionRule.d.mts +28 -0
  1142. package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
  1143. package/validation/rules/VariablesInAllowedPositionRule.js +0 -20
  1144. package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
  1145. package/validation/rules/VariablesInAllowedPositionRule.mjs +0 -20
  1146. package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
  1147. package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +41 -0
  1148. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
  1149. package/validation/rules/custom/NoDeprecatedCustomRule.js +0 -10
  1150. package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
  1151. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +0 -10
  1152. package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
  1153. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +28 -0
  1154. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
  1155. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +0 -10
  1156. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
  1157. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +0 -10
  1158. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
  1159. package/validation/specifiedRules.d.mts +2 -3
  1160. package/validation/specifiedRules.d.ts +2 -3
  1161. package/validation/specifiedRules.js +0 -46
  1162. package/validation/specifiedRules.js.map +1 -1
  1163. package/validation/specifiedRules.mjs +0 -46
  1164. package/validation/specifiedRules.mjs.map +1 -1
  1165. package/validation/validate.d.mts +65 -7
  1166. package/validation/validate.d.ts +65 -7
  1167. package/validation/validate.js +0 -41
  1168. package/validation/validate.js.map +1 -1
  1169. package/validation/validate.mjs +0 -41
  1170. package/validation/validate.mjs.map +1 -1
  1171. package/version.d.mts +3 -6
  1172. package/version.d.ts +3 -6
  1173. package/version.js +2 -10
  1174. package/version.js.map +1 -1
  1175. package/version.mjs +2 -10
  1176. package/version.mjs.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"KnownTypeNamesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownTypeNamesRule.ts"],"names":[],"mappings":";;AA6BA,gDAoCC;AAjED,+DAAyD;AACzD,uEAAiE;AAEjE,iEAA2D;AAG3D,gEAIsC;AAGtC,kEAAiE;AACjE,sDAA6D;AAO7D;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,OAAiD;IAEjD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAEjE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;QACxB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAChC,GAAG,WAAW,CAAC,MAAM,CAAC,oCAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;KACzE,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;gBAC9C,MAAM,KAAK,GAAG,cAAc,IAAI,IAAI,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;gBAClE,IAAI,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe;oBAC5C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,IAAA,kCAAc,EACZ,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAC9D,CAAC;gBACN,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,iBAAiB,QAAQ,IAAI,GAAG,IAAA,0BAAU,EAAC,cAAc,CAAC,EAC1D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,CAAC,GAAG,iCAAoB,EAAE,GAAG,qCAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1E,CAAC;AAEF,SAAS,SAAS,CAAC,KAAuC;IACxD,OAAO,CACL,MAAM,IAAI,KAAK;QACf,CAAC,IAAA,0CAA0B,EAAC,KAAK,CAAC,IAAI,IAAA,yCAAyB,EAAC,KAAK,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC","sourcesContent":["import { didYouMean } from '../../jsutils/didYouMean.ts';\nimport { suggestionList } from '../../jsutils/suggestionList.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport {\n isTypeDefinitionNode,\n isTypeSystemDefinitionNode,\n isTypeSystemExtensionNode,\n} from '../../language/predicates.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { introspectionTypes } from '../../type/introspection.ts';\nimport { specifiedScalarTypes } from '../../type/scalars.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Known type names\n *\n * A GraphQL document is only valid if referenced types (specifically\n * variable definitions and fragment conditions) are defined by the type schema.\n *\n * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence\n */\nexport function KnownTypeNamesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const { definitions } = context.getDocument();\n const existingTypesMap = context.getSchema()?.getTypeMap() ?? {};\n\n const typeNames = new Set([\n ...Object.keys(existingTypesMap),\n ...definitions.filter(isTypeDefinitionNode).map((def) => def.name.value),\n ]);\n\n return {\n NamedType(node, _1, parent, _2, ancestors) {\n const typeName = node.name.value;\n if (!typeNames.has(typeName)) {\n const definitionNode = ancestors[2] ?? parent;\n const isSDL = definitionNode != null && isSDLNode(definitionNode);\n if (isSDL && standardTypeNames.has(typeName)) {\n return;\n }\n\n const suggestedTypes = context.hideSuggestions\n ? []\n : suggestionList(\n typeName,\n isSDL ? [...standardTypeNames, ...typeNames] : [...typeNames],\n );\n context.reportError(\n new GraphQLError(\n `Unknown type \"${typeName}\".` + didYouMean(suggestedTypes),\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n\nconst standardTypeNames = new Set<string>(\n [...specifiedScalarTypes, ...introspectionTypes].map((type) => type.name),\n);\n\nfunction isSDLNode(value: ASTNode | ReadonlyArray<ASTNode>): boolean {\n return (\n 'kind' in value &&\n (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value))\n );\n}\n"]}
1
+ {"version":3,"file":"KnownTypeNamesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownTypeNamesRule.ts"],"names":[],"mappings":";;AA0DA,gDAoCC;AA5FD,+DAAyD;AACzD,uEAAiE;AAEjE,iEAA2D;AAG3D,gEAIsC;AAGtC,kEAAiE;AACjE,sDAA6D;AA0C7D,SAAgB,kBAAkB,CAChC,OAAiD;IAEjD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAEjE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;QACxB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAChC,GAAG,WAAW,CAAC,MAAM,CAAC,oCAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;KACzE,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;gBAC9C,MAAM,KAAK,GAAG,cAAc,IAAI,IAAI,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;gBAClE,IAAI,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe;oBAC5C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,IAAA,kCAAc,EACZ,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAC9D,CAAC;gBACN,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,iBAAiB,QAAQ,IAAI,GAAG,IAAA,0BAAU,EAAC,cAAc,CAAC,EAC1D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,CAAC,GAAG,iCAAoB,EAAE,GAAG,qCAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1E,CAAC;AAEF,SAAS,SAAS,CAAC,KAAuC;IACxD,OAAO,CACL,MAAM,IAAI,KAAK;QACf,CAAC,IAAA,0CAA0B,EAAC,KAAK,CAAC,IAAI,IAAA,yCAAyB,EAAC,KAAK,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC","sourcesContent":["/** @category Validation Rules */\n\nimport { didYouMean } from '../../jsutils/didYouMean.ts';\nimport { suggestionList } from '../../jsutils/suggestionList.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport {\n isTypeDefinitionNode,\n isTypeSystemDefinitionNode,\n isTypeSystemExtensionNode,\n} from '../../language/predicates.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { introspectionTypes } from '../../type/introspection.ts';\nimport { specifiedScalarTypes } from '../../type/scalars.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Known type names\n *\n * A GraphQL document is only valid if referenced types (specifically\n * variable definitions and fragment conditions) are defined by the type schema.\n *\n * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence\n * @param context - The validation context used while checking the document.\n * @returns A visitor that reports validation errors for this rule.\n * @example\n * ```ts\n * import { buildSchema, parse, validate } from 'graphql';\n * import { KnownTypeNamesRule } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * name: String\n * }\n * `);\n *\n * const invalidDocument = parse(`\n * fragment Bad on Missing { name }\n * `);\n * const invalidErrors = validate(schema, invalidDocument, [KnownTypeNamesRule]);\n *\n * invalidErrors.length; // => 1\n *\n * const validDocument = parse(`\n * fragment Good on Query { name }\n * `);\n * const validErrors = validate(schema, validDocument, [KnownTypeNamesRule]);\n *\n * validErrors; // => []\n * ```\n */\nexport function KnownTypeNamesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const { definitions } = context.getDocument();\n const existingTypesMap = context.getSchema()?.getTypeMap() ?? {};\n\n const typeNames = new Set([\n ...Object.keys(existingTypesMap),\n ...definitions.filter(isTypeDefinitionNode).map((def) => def.name.value),\n ]);\n\n return {\n NamedType(node, _1, parent, _2, ancestors) {\n const typeName = node.name.value;\n if (!typeNames.has(typeName)) {\n const definitionNode = ancestors[2] ?? parent;\n const isSDL = definitionNode != null && isSDLNode(definitionNode);\n if (isSDL && standardTypeNames.has(typeName)) {\n return;\n }\n\n const suggestedTypes = context.hideSuggestions\n ? []\n : suggestionList(\n typeName,\n isSDL ? [...standardTypeNames, ...typeNames] : [...typeNames],\n );\n context.reportError(\n new GraphQLError(\n `Unknown type \"${typeName}\".` + didYouMean(suggestedTypes),\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n\nconst standardTypeNames = new Set<string>(\n [...specifiedScalarTypes, ...introspectionTypes].map((type) => type.name),\n);\n\nfunction isSDLNode(value: ASTNode | ReadonlyArray<ASTNode>): boolean {\n return (\n 'kind' in value &&\n (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value))\n );\n}\n"]}
@@ -4,14 +4,6 @@ import { GraphQLError } from "../../error/GraphQLError.mjs";
4
4
  import { isTypeDefinitionNode, isTypeSystemDefinitionNode, isTypeSystemExtensionNode, } from "../../language/predicates.mjs";
5
5
  import { introspectionTypes } from "../../type/introspection.mjs";
6
6
  import { specifiedScalarTypes } from "../../type/scalars.mjs";
7
- /**
8
- * Known type names
9
- *
10
- * A GraphQL document is only valid if referenced types (specifically
11
- * variable definitions and fragment conditions) are defined by the type schema.
12
- *
13
- * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence
14
- */
15
7
  export function KnownTypeNamesRule(context) {
16
8
  const { definitions } = context.getDocument();
17
9
  const existingTypesMap = context.getSchema()?.getTypeMap() ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"KnownTypeNamesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownTypeNamesRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qCAAoC;AACzD,OAAO,EAAE,cAAc,EAAE,yCAAwC;AAEjE,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAG3D,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,sCAAqC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,qCAAoC;AACjE,OAAO,EAAE,oBAAoB,EAAE,+BAA8B;AAO7D;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAiD;IAEjD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAEjE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;QACxB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAChC,GAAG,WAAW,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;KACzE,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;gBAC9C,MAAM,KAAK,GAAG,cAAc,IAAI,IAAI,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;gBAClE,IAAI,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe;oBAC5C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,cAAc,CACZ,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAC9D,CAAC;gBACN,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,iBAAiB,QAAQ,IAAI,GAAG,UAAU,CAAC,cAAc,CAAC,EAC1D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,CAAC,GAAG,oBAAoB,EAAE,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1E,CAAC;AAEF,SAAS,SAAS,CAAC,KAAuC;IACxD,OAAO,CACL,MAAM,IAAI,KAAK;QACf,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC","sourcesContent":["import { didYouMean } from '../../jsutils/didYouMean.ts';\nimport { suggestionList } from '../../jsutils/suggestionList.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport {\n isTypeDefinitionNode,\n isTypeSystemDefinitionNode,\n isTypeSystemExtensionNode,\n} from '../../language/predicates.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { introspectionTypes } from '../../type/introspection.ts';\nimport { specifiedScalarTypes } from '../../type/scalars.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Known type names\n *\n * A GraphQL document is only valid if referenced types (specifically\n * variable definitions and fragment conditions) are defined by the type schema.\n *\n * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence\n */\nexport function KnownTypeNamesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const { definitions } = context.getDocument();\n const existingTypesMap = context.getSchema()?.getTypeMap() ?? {};\n\n const typeNames = new Set([\n ...Object.keys(existingTypesMap),\n ...definitions.filter(isTypeDefinitionNode).map((def) => def.name.value),\n ]);\n\n return {\n NamedType(node, _1, parent, _2, ancestors) {\n const typeName = node.name.value;\n if (!typeNames.has(typeName)) {\n const definitionNode = ancestors[2] ?? parent;\n const isSDL = definitionNode != null && isSDLNode(definitionNode);\n if (isSDL && standardTypeNames.has(typeName)) {\n return;\n }\n\n const suggestedTypes = context.hideSuggestions\n ? []\n : suggestionList(\n typeName,\n isSDL ? [...standardTypeNames, ...typeNames] : [...typeNames],\n );\n context.reportError(\n new GraphQLError(\n `Unknown type \"${typeName}\".` + didYouMean(suggestedTypes),\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n\nconst standardTypeNames = new Set<string>(\n [...specifiedScalarTypes, ...introspectionTypes].map((type) => type.name),\n);\n\nfunction isSDLNode(value: ASTNode | ReadonlyArray<ASTNode>): boolean {\n return (\n 'kind' in value &&\n (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value))\n );\n}\n"]}
1
+ {"version":3,"file":"KnownTypeNamesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownTypeNamesRule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,qCAAoC;AACzD,OAAO,EAAE,cAAc,EAAE,yCAAwC;AAEjE,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAG3D,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,sCAAqC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,qCAAoC;AACjE,OAAO,EAAE,oBAAoB,EAAE,+BAA8B;AA0C7D,MAAM,UAAU,kBAAkB,CAChC,OAAiD;IAEjD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAEjE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;QACxB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAChC,GAAG,WAAW,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;KACzE,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;gBAC9C,MAAM,KAAK,GAAG,cAAc,IAAI,IAAI,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;gBAClE,IAAI,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe;oBAC5C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,cAAc,CACZ,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAC9D,CAAC;gBACN,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,iBAAiB,QAAQ,IAAI,GAAG,UAAU,CAAC,cAAc,CAAC,EAC1D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,CAAC,GAAG,oBAAoB,EAAE,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1E,CAAC;AAEF,SAAS,SAAS,CAAC,KAAuC;IACxD,OAAO,CACL,MAAM,IAAI,KAAK;QACf,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC","sourcesContent":["/** @category Validation Rules */\n\nimport { didYouMean } from '../../jsutils/didYouMean.ts';\nimport { suggestionList } from '../../jsutils/suggestionList.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport {\n isTypeDefinitionNode,\n isTypeSystemDefinitionNode,\n isTypeSystemExtensionNode,\n} from '../../language/predicates.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { introspectionTypes } from '../../type/introspection.ts';\nimport { specifiedScalarTypes } from '../../type/scalars.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Known type names\n *\n * A GraphQL document is only valid if referenced types (specifically\n * variable definitions and fragment conditions) are defined by the type schema.\n *\n * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence\n * @param context - The validation context used while checking the document.\n * @returns A visitor that reports validation errors for this rule.\n * @example\n * ```ts\n * import { buildSchema, parse, validate } from 'graphql';\n * import { KnownTypeNamesRule } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * name: String\n * }\n * `);\n *\n * const invalidDocument = parse(`\n * fragment Bad on Missing { name }\n * `);\n * const invalidErrors = validate(schema, invalidDocument, [KnownTypeNamesRule]);\n *\n * invalidErrors.length; // => 1\n *\n * const validDocument = parse(`\n * fragment Good on Query { name }\n * `);\n * const validErrors = validate(schema, validDocument, [KnownTypeNamesRule]);\n *\n * validErrors; // => []\n * ```\n */\nexport function KnownTypeNamesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const { definitions } = context.getDocument();\n const existingTypesMap = context.getSchema()?.getTypeMap() ?? {};\n\n const typeNames = new Set([\n ...Object.keys(existingTypesMap),\n ...definitions.filter(isTypeDefinitionNode).map((def) => def.name.value),\n ]);\n\n return {\n NamedType(node, _1, parent, _2, ancestors) {\n const typeName = node.name.value;\n if (!typeNames.has(typeName)) {\n const definitionNode = ancestors[2] ?? parent;\n const isSDL = definitionNode != null && isSDLNode(definitionNode);\n if (isSDL && standardTypeNames.has(typeName)) {\n return;\n }\n\n const suggestedTypes = context.hideSuggestions\n ? []\n : suggestionList(\n typeName,\n isSDL ? [...standardTypeNames, ...typeNames] : [...typeNames],\n );\n context.reportError(\n new GraphQLError(\n `Unknown type \"${typeName}\".` + didYouMean(suggestedTypes),\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n\nconst standardTypeNames = new Set<string>(\n [...specifiedScalarTypes, ...introspectionTypes].map((type) => type.name),\n);\n\nfunction isSDLNode(value: ASTNode | ReadonlyArray<ASTNode>): boolean {\n return (\n 'kind' in value &&\n (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value))\n );\n}\n"]}
@@ -1,3 +1,4 @@
1
+ /** @category Validation Rules */
1
2
  import type { ASTVisitor } from "../../language/visitor.mjs";
2
3
  import type { ASTValidationContext } from "../ValidationContext.mjs";
3
4
  /**
@@ -7,5 +8,32 @@ import type { ASTValidationContext } from "../ValidationContext.mjs";
7
8
  * (the query short-hand) that it contains only that one operation definition.
8
9
  *
9
10
  * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation
11
+ * @param context - The validation context used while checking the document.
12
+ * @returns A visitor that reports validation errors for this rule.
13
+ * @example
14
+ * ```ts
15
+ * import { buildSchema, parse, validate } from 'graphql';
16
+ * import { LoneAnonymousOperationRule } from 'graphql/validation';
17
+ *
18
+ * const schema = buildSchema(`
19
+ * type Query {
20
+ * name: String
21
+ * }
22
+ * `);
23
+ *
24
+ * const invalidDocument = parse(`
25
+ * query { name } query Other { name }
26
+ * `);
27
+ * const invalidErrors = validate(schema, invalidDocument, [LoneAnonymousOperationRule]);
28
+ *
29
+ * invalidErrors.length; // => 1
30
+ *
31
+ * const validDocument = parse(`
32
+ * { name }
33
+ * `);
34
+ * const validErrors = validate(schema, validDocument, [LoneAnonymousOperationRule]);
35
+ *
36
+ * validErrors; // => []
37
+ * ```
10
38
  */
11
39
  export declare function LoneAnonymousOperationRule(context: ASTValidationContext): ASTVisitor;
@@ -1,3 +1,4 @@
1
+ /** @category Validation Rules */
1
2
  import type { ASTVisitor } from "../../language/visitor.js";
2
3
  import type { ASTValidationContext } from "../ValidationContext.js";
3
4
  /**
@@ -7,5 +8,32 @@ import type { ASTValidationContext } from "../ValidationContext.js";
7
8
  * (the query short-hand) that it contains only that one operation definition.
8
9
  *
9
10
  * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation
11
+ * @param context - The validation context used while checking the document.
12
+ * @returns A visitor that reports validation errors for this rule.
13
+ * @example
14
+ * ```ts
15
+ * import { buildSchema, parse, validate } from 'graphql';
16
+ * import { LoneAnonymousOperationRule } from 'graphql/validation';
17
+ *
18
+ * const schema = buildSchema(`
19
+ * type Query {
20
+ * name: String
21
+ * }
22
+ * `);
23
+ *
24
+ * const invalidDocument = parse(`
25
+ * query { name } query Other { name }
26
+ * `);
27
+ * const invalidErrors = validate(schema, invalidDocument, [LoneAnonymousOperationRule]);
28
+ *
29
+ * invalidErrors.length; // => 1
30
+ *
31
+ * const validDocument = parse(`
32
+ * { name }
33
+ * `);
34
+ * const validErrors = validate(schema, validDocument, [LoneAnonymousOperationRule]);
35
+ *
36
+ * validErrors; // => []
37
+ * ```
10
38
  */
11
39
  export declare function LoneAnonymousOperationRule(context: ASTValidationContext): ASTVisitor;
@@ -3,14 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LoneAnonymousOperationRule = LoneAnonymousOperationRule;
4
4
  const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
5
5
  const kinds_ts_1 = require("../../language/kinds.js");
6
- /**
7
- * Lone anonymous operation
8
- *
9
- * A GraphQL document is only valid if when it contains an anonymous operation
10
- * (the query short-hand) that it contains only that one operation definition.
11
- *
12
- * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation
13
- */
14
6
  function LoneAnonymousOperationRule(context) {
15
7
  let operationCount = 0;
16
8
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"LoneAnonymousOperationRule.js","sourceRoot":"","sources":["../../../src/validation/rules/LoneAnonymousOperationRule.ts"],"names":[],"mappings":";;AAeA,gEAqBC;AApCD,iEAA2D;AAE3D,sDAA+C;AAK/C;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CACxC,OAA6B;IAE7B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,OAAO;QACL,QAAQ,CAAC,IAAI;YACX,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACtC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,eAAI,CAAC,oBAAoB,CAC9D,CAAC,MAAM,CAAC;QACX,CAAC;QACD,mBAAmB,CAAC,IAAI;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,8DAA8D,EAC9D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { ASTValidationContext } from '../ValidationContext.ts';\n\n/**\n * Lone anonymous operation\n *\n * A GraphQL document is only valid if when it contains an anonymous operation\n * (the query short-hand) that it contains only that one operation definition.\n *\n * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation\n */\nexport function LoneAnonymousOperationRule(\n context: ASTValidationContext,\n): ASTVisitor {\n let operationCount = 0;\n return {\n Document(node) {\n operationCount = node.definitions.filter(\n (definition) => definition.kind === Kind.OPERATION_DEFINITION,\n ).length;\n },\n OperationDefinition(node) {\n if (!node.name && operationCount > 1) {\n context.reportError(\n new GraphQLError(\n 'This anonymous operation must be the only defined operation.',\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n"]}
1
+ {"version":3,"file":"LoneAnonymousOperationRule.js","sourceRoot":"","sources":["../../../src/validation/rules/LoneAnonymousOperationRule.ts"],"names":[],"mappings":";;AA4CA,gEAqBC;AA/DD,iEAA2D;AAE3D,sDAA+C;AAwC/C,SAAgB,0BAA0B,CACxC,OAA6B;IAE7B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,OAAO;QACL,QAAQ,CAAC,IAAI;YACX,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACtC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,eAAI,CAAC,oBAAoB,CAC9D,CAAC,MAAM,CAAC;QACX,CAAC;QACD,mBAAmB,CAAC,IAAI;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,8DAA8D,EAC9D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/** @category Validation Rules */\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { ASTValidationContext } from '../ValidationContext.ts';\n\n/**\n * Lone anonymous operation\n *\n * A GraphQL document is only valid if when it contains an anonymous operation\n * (the query short-hand) that it contains only that one operation definition.\n *\n * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation\n * @param context - The validation context used while checking the document.\n * @returns A visitor that reports validation errors for this rule.\n * @example\n * ```ts\n * import { buildSchema, parse, validate } from 'graphql';\n * import { LoneAnonymousOperationRule } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * name: String\n * }\n * `);\n *\n * const invalidDocument = parse(`\n * query { name } query Other { name }\n * `);\n * const invalidErrors = validate(schema, invalidDocument, [LoneAnonymousOperationRule]);\n *\n * invalidErrors.length; // => 1\n *\n * const validDocument = parse(`\n * { name }\n * `);\n * const validErrors = validate(schema, validDocument, [LoneAnonymousOperationRule]);\n *\n * validErrors; // => []\n * ```\n */\nexport function LoneAnonymousOperationRule(\n context: ASTValidationContext,\n): ASTVisitor {\n let operationCount = 0;\n return {\n Document(node) {\n operationCount = node.definitions.filter(\n (definition) => definition.kind === Kind.OPERATION_DEFINITION,\n ).length;\n },\n OperationDefinition(node) {\n if (!node.name && operationCount > 1) {\n context.reportError(\n new GraphQLError(\n 'This anonymous operation must be the only defined operation.',\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n"]}
@@ -1,13 +1,5 @@
1
1
  import { GraphQLError } from "../../error/GraphQLError.mjs";
2
2
  import { Kind } from "../../language/kinds.mjs";
3
- /**
4
- * Lone anonymous operation
5
- *
6
- * A GraphQL document is only valid if when it contains an anonymous operation
7
- * (the query short-hand) that it contains only that one operation definition.
8
- *
9
- * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation
10
- */
11
3
  export function LoneAnonymousOperationRule(context) {
12
4
  let operationCount = 0;
13
5
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"LoneAnonymousOperationRule.js","sourceRoot":"","sources":["../../../src/validation/rules/LoneAnonymousOperationRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAE3D,OAAO,EAAE,IAAI,EAAE,iCAAgC;AAK/C;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAA6B;IAE7B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,OAAO;QACL,QAAQ,CAAC,IAAI;YACX,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACtC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAC9D,CAAC,MAAM,CAAC;QACX,CAAC;QACD,mBAAmB,CAAC,IAAI;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,8DAA8D,EAC9D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { ASTValidationContext } from '../ValidationContext.ts';\n\n/**\n * Lone anonymous operation\n *\n * A GraphQL document is only valid if when it contains an anonymous operation\n * (the query short-hand) that it contains only that one operation definition.\n *\n * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation\n */\nexport function LoneAnonymousOperationRule(\n context: ASTValidationContext,\n): ASTVisitor {\n let operationCount = 0;\n return {\n Document(node) {\n operationCount = node.definitions.filter(\n (definition) => definition.kind === Kind.OPERATION_DEFINITION,\n ).length;\n },\n OperationDefinition(node) {\n if (!node.name && operationCount > 1) {\n context.reportError(\n new GraphQLError(\n 'This anonymous operation must be the only defined operation.',\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n"]}
1
+ {"version":3,"file":"LoneAnonymousOperationRule.js","sourceRoot":"","sources":["../../../src/validation/rules/LoneAnonymousOperationRule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAE3D,OAAO,EAAE,IAAI,EAAE,iCAAgC;AAwC/C,MAAM,UAAU,0BAA0B,CACxC,OAA6B;IAE7B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,OAAO;QACL,QAAQ,CAAC,IAAI;YACX,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CACtC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAC9D,CAAC,MAAM,CAAC;QACX,CAAC;QACD,mBAAmB,CAAC,IAAI;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,8DAA8D,EAC9D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/** @category Validation Rules */\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { ASTValidationContext } from '../ValidationContext.ts';\n\n/**\n * Lone anonymous operation\n *\n * A GraphQL document is only valid if when it contains an anonymous operation\n * (the query short-hand) that it contains only that one operation definition.\n *\n * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation\n * @param context - The validation context used while checking the document.\n * @returns A visitor that reports validation errors for this rule.\n * @example\n * ```ts\n * import { buildSchema, parse, validate } from 'graphql';\n * import { LoneAnonymousOperationRule } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * name: String\n * }\n * `);\n *\n * const invalidDocument = parse(`\n * query { name } query Other { name }\n * `);\n * const invalidErrors = validate(schema, invalidDocument, [LoneAnonymousOperationRule]);\n *\n * invalidErrors.length; // => 1\n *\n * const validDocument = parse(`\n * { name }\n * `);\n * const validErrors = validate(schema, validDocument, [LoneAnonymousOperationRule]);\n *\n * validErrors; // => []\n * ```\n */\nexport function LoneAnonymousOperationRule(\n context: ASTValidationContext,\n): ASTVisitor {\n let operationCount = 0;\n return {\n Document(node) {\n operationCount = node.definitions.filter(\n (definition) => definition.kind === Kind.OPERATION_DEFINITION,\n ).length;\n },\n OperationDefinition(node) {\n if (!node.name && operationCount > 1) {\n context.reportError(\n new GraphQLError(\n 'This anonymous operation must be the only defined operation.',\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n"]}
@@ -1,8 +1,29 @@
1
+ /** @category Validation Rules */
1
2
  import type { ASTVisitor } from "../../language/visitor.mjs";
2
3
  import type { SDLValidationContext } from "../ValidationContext.mjs";
3
4
  /**
4
5
  * Lone Schema definition
5
6
  *
6
7
  * A GraphQL document is only valid if it contains only one schema definition.
8
+ * @param context - The validation context used while checking the document.
9
+ * @returns A visitor that reports validation errors for this rule.
10
+ * @example
11
+ * ```ts
12
+ * import { buildSchema } from 'graphql';
13
+ * import { LoneSchemaDefinitionRule } from 'graphql/validation';
14
+ *
15
+ * const invalidSDL = `
16
+ * schema { query: Query } schema { query: Query } type Query { name: String }
17
+ * `;
18
+ *
19
+ * LoneSchemaDefinitionRule.name; // => 'LoneSchemaDefinitionRule'
20
+ * buildSchema(invalidSDL); // throws an error
21
+ *
22
+ * const validSDL = `
23
+ * schema { query: Query } type Query { name: String }
24
+ * `;
25
+ *
26
+ * buildSchema(validSDL); // does not throw
27
+ * ```
7
28
  */
8
29
  export declare function LoneSchemaDefinitionRule(context: SDLValidationContext): ASTVisitor;
@@ -1,8 +1,29 @@
1
+ /** @category Validation Rules */
1
2
  import type { ASTVisitor } from "../../language/visitor.js";
2
3
  import type { SDLValidationContext } from "../ValidationContext.js";
3
4
  /**
4
5
  * Lone Schema definition
5
6
  *
6
7
  * A GraphQL document is only valid if it contains only one schema definition.
8
+ * @param context - The validation context used while checking the document.
9
+ * @returns A visitor that reports validation errors for this rule.
10
+ * @example
11
+ * ```ts
12
+ * import { buildSchema } from 'graphql';
13
+ * import { LoneSchemaDefinitionRule } from 'graphql/validation';
14
+ *
15
+ * const invalidSDL = `
16
+ * schema { query: Query } schema { query: Query } type Query { name: String }
17
+ * `;
18
+ *
19
+ * LoneSchemaDefinitionRule.name; // => 'LoneSchemaDefinitionRule'
20
+ * buildSchema(invalidSDL); // throws an error
21
+ *
22
+ * const validSDL = `
23
+ * schema { query: Query } type Query { name: String }
24
+ * `;
25
+ *
26
+ * buildSchema(validSDL); // does not throw
27
+ * ```
7
28
  */
8
29
  export declare function LoneSchemaDefinitionRule(context: SDLValidationContext): ASTVisitor;
@@ -2,11 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LoneSchemaDefinitionRule = LoneSchemaDefinitionRule;
4
4
  const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
5
- /**
6
- * Lone Schema definition
7
- *
8
- * A GraphQL document is only valid if it contains only one schema definition.
9
- */
10
5
  function LoneSchemaDefinitionRule(context) {
11
6
  const oldSchema = context.getSchema();
12
7
  const alreadyDefined = oldSchema?.astNode ??
@@ -1 +1 @@
1
- {"version":3,"file":"LoneSchemaDefinitionRule.js","sourceRoot":"","sources":["../../../src/validation/rules/LoneSchemaDefinitionRule.ts"],"names":[],"mappings":";;AAWA,4DAiCC;AA5CD,iEAA2D;AAM3D;;;;GAIG;AACH,SAAgB,wBAAwB,CACtC,OAA6B;IAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,cAAc,GAClB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,YAAY,EAAE;QACzB,SAAS,EAAE,eAAe,EAAE;QAC5B,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAEnC,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,OAAO;QACL,gBAAgB,CAAC,IAAI;YACnB,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,uDAAuD,EACvD,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,sBAAsB,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CAAC,0CAA0C,EAAE;oBAC3D,KAAK,EAAE,IAAI;iBACZ,CAAC,CACH,CAAC;YACJ,CAAC;YACD,EAAE,sBAAsB,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { SDLValidationContext } from '../ValidationContext.ts';\n\n/**\n * Lone Schema definition\n *\n * A GraphQL document is only valid if it contains only one schema definition.\n */\nexport function LoneSchemaDefinitionRule(\n context: SDLValidationContext,\n): ASTVisitor {\n const oldSchema = context.getSchema();\n const alreadyDefined =\n oldSchema?.astNode ??\n oldSchema?.getQueryType() ??\n oldSchema?.getMutationType() ??\n oldSchema?.getSubscriptionType();\n\n let schemaDefinitionsCount = 0;\n return {\n SchemaDefinition(node) {\n if (alreadyDefined) {\n context.reportError(\n new GraphQLError(\n 'Cannot define a new schema within a schema extension.',\n { nodes: node },\n ),\n );\n return;\n }\n\n if (schemaDefinitionsCount > 0) {\n context.reportError(\n new GraphQLError('Must provide only one schema definition.', {\n nodes: node,\n }),\n );\n }\n ++schemaDefinitionsCount;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"LoneSchemaDefinitionRule.js","sourceRoot":"","sources":["../../../src/validation/rules/LoneSchemaDefinitionRule.ts"],"names":[],"mappings":";;AAiCA,4DAiCC;AAhED,iEAA2D;AA+B3D,SAAgB,wBAAwB,CACtC,OAA6B;IAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,cAAc,GAClB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,YAAY,EAAE;QACzB,SAAS,EAAE,eAAe,EAAE;QAC5B,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAEnC,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,OAAO;QACL,gBAAgB,CAAC,IAAI;YACnB,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,uDAAuD,EACvD,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,sBAAsB,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CAAC,0CAA0C,EAAE;oBAC3D,KAAK,EAAE,IAAI;iBACZ,CAAC,CACH,CAAC;YACJ,CAAC;YACD,EAAE,sBAAsB,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/** @category Validation Rules */\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { SDLValidationContext } from '../ValidationContext.ts';\n\n/**\n * Lone Schema definition\n *\n * A GraphQL document is only valid if it contains only one schema definition.\n * @param context - The validation context used while checking the document.\n * @returns A visitor that reports validation errors for this rule.\n * @example\n * ```ts\n * import { buildSchema } from 'graphql';\n * import { LoneSchemaDefinitionRule } from 'graphql/validation';\n *\n * const invalidSDL = `\n * schema { query: Query } schema { query: Query } type Query { name: String }\n * `;\n *\n * LoneSchemaDefinitionRule.name; // => 'LoneSchemaDefinitionRule'\n * buildSchema(invalidSDL); // throws an error\n *\n * const validSDL = `\n * schema { query: Query } type Query { name: String }\n * `;\n *\n * buildSchema(validSDL); // does not throw\n * ```\n */\nexport function LoneSchemaDefinitionRule(\n context: SDLValidationContext,\n): ASTVisitor {\n const oldSchema = context.getSchema();\n const alreadyDefined =\n oldSchema?.astNode ??\n oldSchema?.getQueryType() ??\n oldSchema?.getMutationType() ??\n oldSchema?.getSubscriptionType();\n\n let schemaDefinitionsCount = 0;\n return {\n SchemaDefinition(node) {\n if (alreadyDefined) {\n context.reportError(\n new GraphQLError(\n 'Cannot define a new schema within a schema extension.',\n { nodes: node },\n ),\n );\n return;\n }\n\n if (schemaDefinitionsCount > 0) {\n context.reportError(\n new GraphQLError('Must provide only one schema definition.', {\n nodes: node,\n }),\n );\n }\n ++schemaDefinitionsCount;\n },\n };\n}\n"]}
@@ -1,9 +1,4 @@
1
1
  import { GraphQLError } from "../../error/GraphQLError.mjs";
2
- /**
3
- * Lone Schema definition
4
- *
5
- * A GraphQL document is only valid if it contains only one schema definition.
6
- */
7
2
  export function LoneSchemaDefinitionRule(context) {
8
3
  const oldSchema = context.getSchema();
9
4
  const alreadyDefined = oldSchema?.astNode ??
@@ -1 +1 @@
1
- {"version":3,"file":"LoneSchemaDefinitionRule.js","sourceRoot":"","sources":["../../../src/validation/rules/LoneSchemaDefinitionRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAM3D;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA6B;IAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,cAAc,GAClB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,YAAY,EAAE;QACzB,SAAS,EAAE,eAAe,EAAE;QAC5B,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAEnC,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,OAAO;QACL,gBAAgB,CAAC,IAAI;YACnB,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,uDAAuD,EACvD,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,sBAAsB,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CAAC,0CAA0C,EAAE;oBAC3D,KAAK,EAAE,IAAI;iBACZ,CAAC,CACH,CAAC;YACJ,CAAC;YACD,EAAE,sBAAsB,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { SDLValidationContext } from '../ValidationContext.ts';\n\n/**\n * Lone Schema definition\n *\n * A GraphQL document is only valid if it contains only one schema definition.\n */\nexport function LoneSchemaDefinitionRule(\n context: SDLValidationContext,\n): ASTVisitor {\n const oldSchema = context.getSchema();\n const alreadyDefined =\n oldSchema?.astNode ??\n oldSchema?.getQueryType() ??\n oldSchema?.getMutationType() ??\n oldSchema?.getSubscriptionType();\n\n let schemaDefinitionsCount = 0;\n return {\n SchemaDefinition(node) {\n if (alreadyDefined) {\n context.reportError(\n new GraphQLError(\n 'Cannot define a new schema within a schema extension.',\n { nodes: node },\n ),\n );\n return;\n }\n\n if (schemaDefinitionsCount > 0) {\n context.reportError(\n new GraphQLError('Must provide only one schema definition.', {\n nodes: node,\n }),\n );\n }\n ++schemaDefinitionsCount;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"LoneSchemaDefinitionRule.js","sourceRoot":"","sources":["../../../src/validation/rules/LoneSchemaDefinitionRule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,qCAAoC;AA+B3D,MAAM,UAAU,wBAAwB,CACtC,OAA6B;IAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,cAAc,GAClB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,YAAY,EAAE;QACzB,SAAS,EAAE,eAAe,EAAE;QAC5B,SAAS,EAAE,mBAAmB,EAAE,CAAC;IAEnC,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,OAAO;QACL,gBAAgB,CAAC,IAAI;YACnB,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,uDAAuD,EACvD,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,sBAAsB,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CAAC,0CAA0C,EAAE;oBAC3D,KAAK,EAAE,IAAI;iBACZ,CAAC,CACH,CAAC;YACJ,CAAC;YACD,EAAE,sBAAsB,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/** @category Validation Rules */\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { SDLValidationContext } from '../ValidationContext.ts';\n\n/**\n * Lone Schema definition\n *\n * A GraphQL document is only valid if it contains only one schema definition.\n * @param context - The validation context used while checking the document.\n * @returns A visitor that reports validation errors for this rule.\n * @example\n * ```ts\n * import { buildSchema } from 'graphql';\n * import { LoneSchemaDefinitionRule } from 'graphql/validation';\n *\n * const invalidSDL = `\n * schema { query: Query } schema { query: Query } type Query { name: String }\n * `;\n *\n * LoneSchemaDefinitionRule.name; // => 'LoneSchemaDefinitionRule'\n * buildSchema(invalidSDL); // throws an error\n *\n * const validSDL = `\n * schema { query: Query } type Query { name: String }\n * `;\n *\n * buildSchema(validSDL); // does not throw\n * ```\n */\nexport function LoneSchemaDefinitionRule(\n context: SDLValidationContext,\n): ASTVisitor {\n const oldSchema = context.getSchema();\n const alreadyDefined =\n oldSchema?.astNode ??\n oldSchema?.getQueryType() ??\n oldSchema?.getMutationType() ??\n oldSchema?.getSubscriptionType();\n\n let schemaDefinitionsCount = 0;\n return {\n SchemaDefinition(node) {\n if (alreadyDefined) {\n context.reportError(\n new GraphQLError(\n 'Cannot define a new schema within a schema extension.',\n { nodes: node },\n ),\n );\n return;\n }\n\n if (schemaDefinitionsCount > 0) {\n context.reportError(\n new GraphQLError('Must provide only one schema definition.', {\n nodes: node,\n }),\n );\n }\n ++schemaDefinitionsCount;\n },\n };\n}\n"]}
@@ -1,3 +1,34 @@
1
+ /** @category Validation Rules */
1
2
  import type { ASTVisitor } from "../../language/visitor.mjs";
2
3
  import type { ASTValidationContext } from "../ValidationContext.mjs";
4
+ /**
5
+ * Implements the max introspection depth validation rule.
6
+ * @param context - The validation context used while checking the document.
7
+ * @returns A visitor that reports validation errors for this rule.
8
+ * @example
9
+ * ```ts
10
+ * import { buildSchema, parse, validate } from 'graphql';
11
+ * import { MaxIntrospectionDepthRule } from 'graphql/validation';
12
+ *
13
+ * const schema = buildSchema(`
14
+ * type Query {
15
+ * name: String
16
+ * }
17
+ * `);
18
+ *
19
+ * const invalidDocument = parse(`
20
+ * { __schema { types { fields { type { fields { type { fields { name } } } } } } } }
21
+ * `);
22
+ * const invalidErrors = validate(schema, invalidDocument, [MaxIntrospectionDepthRule]);
23
+ *
24
+ * invalidErrors.length; // => 1
25
+ *
26
+ * const validDocument = parse(`
27
+ * { __schema { queryType { name } } }
28
+ * `);
29
+ * const validErrors = validate(schema, validDocument, [MaxIntrospectionDepthRule]);
30
+ *
31
+ * validErrors; // => []
32
+ * ```
33
+ */
3
34
  export declare function MaxIntrospectionDepthRule(context: ASTValidationContext): ASTVisitor;
@@ -1,3 +1,34 @@
1
+ /** @category Validation Rules */
1
2
  import type { ASTVisitor } from "../../language/visitor.js";
2
3
  import type { ASTValidationContext } from "../ValidationContext.js";
4
+ /**
5
+ * Implements the max introspection depth validation rule.
6
+ * @param context - The validation context used while checking the document.
7
+ * @returns A visitor that reports validation errors for this rule.
8
+ * @example
9
+ * ```ts
10
+ * import { buildSchema, parse, validate } from 'graphql';
11
+ * import { MaxIntrospectionDepthRule } from 'graphql/validation';
12
+ *
13
+ * const schema = buildSchema(`
14
+ * type Query {
15
+ * name: String
16
+ * }
17
+ * `);
18
+ *
19
+ * const invalidDocument = parse(`
20
+ * { __schema { types { fields { type { fields { type { fields { name } } } } } } } }
21
+ * `);
22
+ * const invalidErrors = validate(schema, invalidDocument, [MaxIntrospectionDepthRule]);
23
+ *
24
+ * invalidErrors.length; // => 1
25
+ *
26
+ * const validDocument = parse(`
27
+ * { __schema { queryType { name } } }
28
+ * `);
29
+ * const validErrors = validate(schema, validDocument, [MaxIntrospectionDepthRule]);
30
+ *
31
+ * validErrors; // => []
32
+ * ```
33
+ */
3
34
  export declare function MaxIntrospectionDepthRule(context: ASTValidationContext): ASTVisitor;
@@ -5,27 +5,16 @@ const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
5
5
  const kinds_ts_1 = require("../../language/kinds.js");
6
6
  const MAX_LISTS_DEPTH = 3;
7
7
  function MaxIntrospectionDepthRule(context) {
8
- /**
9
- * Counts the depth of list fields in "__Type" recursively and
10
- * returns `true` if the limit has been reached.
11
- */
12
8
  function checkDepth(node, visitedFragments = Object.create(null), depth = 0) {
13
9
  if (node.kind === kinds_ts_1.Kind.FRAGMENT_SPREAD) {
14
10
  const fragmentName = node.name.value;
15
11
  if (visitedFragments[fragmentName] === true) {
16
- // Fragment cycles are handled by `NoFragmentCyclesRule`.
17
12
  return false;
18
13
  }
19
14
  const fragment = context.getFragment(fragmentName);
20
15
  if (!fragment) {
21
- // Missing fragments checks are handled by `KnownFragmentNamesRule`.
22
16
  return false;
23
17
  }
24
- // Rather than following an immutable programming pattern which has
25
- // significant memory and garbage collection overhead, we've opted to
26
- // take a mutable approach for efficiency's sake. Importantly visiting a
27
- // fragment twice is fine, so long as you don't do one visit inside the
28
- // other.
29
18
  try {
30
19
  visitedFragments[fragmentName] = true;
31
20
  return checkDepth(fragment, visitedFragments, depth);
@@ -35,18 +24,15 @@ function MaxIntrospectionDepthRule(context) {
35
24
  }
36
25
  }
37
26
  if (node.kind === kinds_ts_1.Kind.FIELD &&
38
- // check all introspection lists
39
27
  (node.name.value === 'fields' ||
40
28
  node.name.value === 'interfaces' ||
41
29
  node.name.value === 'possibleTypes' ||
42
30
  node.name.value === 'inputFields')) {
43
- // eslint-disable-next-line no-param-reassign
44
31
  depth++;
45
32
  if (depth >= MAX_LISTS_DEPTH) {
46
33
  return true;
47
34
  }
48
35
  }
49
- // handles fields and inline fragments
50
36
  if ('selectionSet' in node && node.selectionSet) {
51
37
  for (const child of node.selectionSet.selections) {
52
38
  if (checkDepth(child, visitedFragments, depth)) {
@@ -1 +1 @@
1
- {"version":3,"file":"MaxIntrospectionDepthRule.js","sourceRoot":"","sources":["../../../src/validation/rules/MaxIntrospectionDepthRule.ts"],"names":[],"mappings":";;AAUA,8DAgFC;AA1FD,iEAA2D;AAG3D,sDAA+C;AAK/C,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,SAAgB,yBAAyB,CACvC,OAA6B;IAE7B;;;OAGG;IACH,SAAS,UAAU,CACjB,IAAa,EACb,mBAEI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACvB,QAAgB,CAAC;QAEjB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAI,CAAC,eAAe,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,yDAAyD;gBACzD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,oEAAoE;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,mEAAmE;YACnE,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,SAAS;YACT,IAAI,CAAC;gBACH,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;gBACtC,OAAO,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;oBAAS,CAAC;gBACT,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IACE,IAAI,CAAC,IAAI,KAAK,eAAI,CAAC,KAAK;YACxB,gCAAgC;YAChC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY;gBAChC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,eAAe;gBACnC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,EACpC,CAAC;YACD,6CAA6C;YAC7C,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,IAAI,eAAe,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBACjD,IAAI,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,KAAK,CAAC,IAAI;YACR,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CAAC,sCAAsC,EAAE;wBACvD,KAAK,EAAE,CAAC,IAAI,CAAC;qBACd,CAAC,CACH,CAAC;oBACF,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { ASTValidationContext } from '../ValidationContext.ts';\n\nconst MAX_LISTS_DEPTH = 3;\n\nexport function MaxIntrospectionDepthRule(\n context: ASTValidationContext,\n): ASTVisitor {\n /**\n * Counts the depth of list fields in \"__Type\" recursively and\n * returns `true` if the limit has been reached.\n */\n function checkDepth(\n node: ASTNode,\n visitedFragments: {\n [fragmentName: string]: true | undefined;\n } = Object.create(null),\n depth: number = 0,\n ): boolean {\n if (node.kind === Kind.FRAGMENT_SPREAD) {\n const fragmentName = node.name.value;\n if (visitedFragments[fragmentName] === true) {\n // Fragment cycles are handled by `NoFragmentCyclesRule`.\n return false;\n }\n const fragment = context.getFragment(fragmentName);\n if (!fragment) {\n // Missing fragments checks are handled by `KnownFragmentNamesRule`.\n return false;\n }\n\n // Rather than following an immutable programming pattern which has\n // significant memory and garbage collection overhead, we've opted to\n // take a mutable approach for efficiency's sake. Importantly visiting a\n // fragment twice is fine, so long as you don't do one visit inside the\n // other.\n try {\n visitedFragments[fragmentName] = true;\n return checkDepth(fragment, visitedFragments, depth);\n } finally {\n visitedFragments[fragmentName] = undefined;\n }\n }\n\n if (\n node.kind === Kind.FIELD &&\n // check all introspection lists\n (node.name.value === 'fields' ||\n node.name.value === 'interfaces' ||\n node.name.value === 'possibleTypes' ||\n node.name.value === 'inputFields')\n ) {\n // eslint-disable-next-line no-param-reassign\n depth++;\n if (depth >= MAX_LISTS_DEPTH) {\n return true;\n }\n }\n\n // handles fields and inline fragments\n if ('selectionSet' in node && node.selectionSet) {\n for (const child of node.selectionSet.selections) {\n if (checkDepth(child, visitedFragments, depth)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n return {\n Field(node) {\n if (node.name.value === '__schema' || node.name.value === '__type') {\n if (checkDepth(node)) {\n context.reportError(\n new GraphQLError('Maximum introspection depth exceeded', {\n nodes: [node],\n }),\n );\n return false;\n }\n }\n },\n };\n}\n"]}
1
+ {"version":3,"file":"MaxIntrospectionDepthRule.js","sourceRoot":"","sources":["../../../src/validation/rules/MaxIntrospectionDepthRule.ts"],"names":[],"mappings":";;AA0CA,8DAkFC;AA1HD,iEAA2D;AAG3D,sDAA+C;AAK/C,MAAM,eAAe,GAAG,CAAC,CAAC;AAgC1B,SAAgB,yBAAyB,CACvC,OAA6B;IAQ7B,SAAS,UAAU,CACjB,IAAa,EACb,mBAEI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACvB,QAAgB,CAAC;QAEjB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAI,CAAC,eAAe,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;gBAE5C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAEd,OAAO,KAAK,CAAC;YACf,CAAC;YAOD,IAAI,CAAC;gBACH,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;gBACtC,OAAO,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;oBAAS,CAAC;gBACT,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IACE,IAAI,CAAC,IAAI,KAAK,eAAI,CAAC,KAAK;YAExB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY;gBAChC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,eAAe;gBACnC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,EACpC,CAAC;YAED,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,IAAI,eAAe,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAGD,IAAI,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBACjD,IAAI,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,KAAK,CAAC,IAAI;YACR,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CAAC,sCAAsC,EAAE;wBACvD,KAAK,EAAE,CAAC,IAAI,CAAC;qBACd,CAAC,CACH,CAAC;oBACF,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/** @category Validation Rules */\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { ASTValidationContext } from '../ValidationContext.ts';\n\nconst MAX_LISTS_DEPTH = 3;\n\n/**\n * Implements the max introspection depth validation rule.\n * @param context - The validation context used while checking the document.\n * @returns A visitor that reports validation errors for this rule.\n * @example\n * ```ts\n * import { buildSchema, parse, validate } from 'graphql';\n * import { MaxIntrospectionDepthRule } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * name: String\n * }\n * `);\n *\n * const invalidDocument = parse(`\n * { __schema { types { fields { type { fields { type { fields { name } } } } } } } }\n * `);\n * const invalidErrors = validate(schema, invalidDocument, [MaxIntrospectionDepthRule]);\n *\n * invalidErrors.length; // => 1\n *\n * const validDocument = parse(`\n * { __schema { queryType { name } } }\n * `);\n * const validErrors = validate(schema, validDocument, [MaxIntrospectionDepthRule]);\n *\n * validErrors; // => []\n * ```\n */\nexport function MaxIntrospectionDepthRule(\n context: ASTValidationContext,\n): ASTVisitor {\n /**\n * Counts the depth of list fields in \"__Type\" recursively and\n * returns `true` if the limit has been reached.\n *\n * @internal\n */\n function checkDepth(\n node: ASTNode,\n visitedFragments: {\n [fragmentName: string]: true | undefined;\n } = Object.create(null),\n depth: number = 0,\n ): boolean {\n if (node.kind === Kind.FRAGMENT_SPREAD) {\n const fragmentName = node.name.value;\n if (visitedFragments[fragmentName] === true) {\n // Fragment cycles are handled by `NoFragmentCyclesRule`.\n return false;\n }\n const fragment = context.getFragment(fragmentName);\n if (!fragment) {\n // Missing fragments checks are handled by `KnownFragmentNamesRule`.\n return false;\n }\n\n // Rather than following an immutable programming pattern which has\n // significant memory and garbage collection overhead, we've opted to\n // take a mutable approach for efficiency's sake. Importantly visiting a\n // fragment twice is fine, so long as you don't do one visit inside the\n // other.\n try {\n visitedFragments[fragmentName] = true;\n return checkDepth(fragment, visitedFragments, depth);\n } finally {\n visitedFragments[fragmentName] = undefined;\n }\n }\n\n if (\n node.kind === Kind.FIELD &&\n // check all introspection lists\n (node.name.value === 'fields' ||\n node.name.value === 'interfaces' ||\n node.name.value === 'possibleTypes' ||\n node.name.value === 'inputFields')\n ) {\n // eslint-disable-next-line no-param-reassign\n depth++;\n if (depth >= MAX_LISTS_DEPTH) {\n return true;\n }\n }\n\n // handles fields and inline fragments\n if ('selectionSet' in node && node.selectionSet) {\n for (const child of node.selectionSet.selections) {\n if (checkDepth(child, visitedFragments, depth)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n return {\n Field(node) {\n if (node.name.value === '__schema' || node.name.value === '__type') {\n if (checkDepth(node)) {\n context.reportError(\n new GraphQLError('Maximum introspection depth exceeded', {\n nodes: [node],\n }),\n );\n return false;\n }\n }\n },\n };\n}\n"]}
@@ -2,27 +2,16 @@ import { GraphQLError } from "../../error/GraphQLError.mjs";
2
2
  import { Kind } from "../../language/kinds.mjs";
3
3
  const MAX_LISTS_DEPTH = 3;
4
4
  export function MaxIntrospectionDepthRule(context) {
5
- /**
6
- * Counts the depth of list fields in "__Type" recursively and
7
- * returns `true` if the limit has been reached.
8
- */
9
5
  function checkDepth(node, visitedFragments = Object.create(null), depth = 0) {
10
6
  if (node.kind === Kind.FRAGMENT_SPREAD) {
11
7
  const fragmentName = node.name.value;
12
8
  if (visitedFragments[fragmentName] === true) {
13
- // Fragment cycles are handled by `NoFragmentCyclesRule`.
14
9
  return false;
15
10
  }
16
11
  const fragment = context.getFragment(fragmentName);
17
12
  if (!fragment) {
18
- // Missing fragments checks are handled by `KnownFragmentNamesRule`.
19
13
  return false;
20
14
  }
21
- // Rather than following an immutable programming pattern which has
22
- // significant memory and garbage collection overhead, we've opted to
23
- // take a mutable approach for efficiency's sake. Importantly visiting a
24
- // fragment twice is fine, so long as you don't do one visit inside the
25
- // other.
26
15
  try {
27
16
  visitedFragments[fragmentName] = true;
28
17
  return checkDepth(fragment, visitedFragments, depth);
@@ -32,18 +21,15 @@ export function MaxIntrospectionDepthRule(context) {
32
21
  }
33
22
  }
34
23
  if (node.kind === Kind.FIELD &&
35
- // check all introspection lists
36
24
  (node.name.value === 'fields' ||
37
25
  node.name.value === 'interfaces' ||
38
26
  node.name.value === 'possibleTypes' ||
39
27
  node.name.value === 'inputFields')) {
40
- // eslint-disable-next-line no-param-reassign
41
28
  depth++;
42
29
  if (depth >= MAX_LISTS_DEPTH) {
43
30
  return true;
44
31
  }
45
32
  }
46
- // handles fields and inline fragments
47
33
  if ('selectionSet' in node && node.selectionSet) {
48
34
  for (const child of node.selectionSet.selections) {
49
35
  if (checkDepth(child, visitedFragments, depth)) {
@@ -1 +1 @@
1
- {"version":3,"file":"MaxIntrospectionDepthRule.js","sourceRoot":"","sources":["../../../src/validation/rules/MaxIntrospectionDepthRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAG3D,OAAO,EAAE,IAAI,EAAE,iCAAgC;AAK/C,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,MAAM,UAAU,yBAAyB,CACvC,OAA6B;IAE7B;;;OAGG;IACH,SAAS,UAAU,CACjB,IAAa,EACb,mBAEI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACvB,QAAgB,CAAC;QAEjB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,yDAAyD;gBACzD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,oEAAoE;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,mEAAmE;YACnE,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,SAAS;YACT,IAAI,CAAC;gBACH,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;gBACtC,OAAO,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;oBAAS,CAAC;gBACT,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IACE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK;YACxB,gCAAgC;YAChC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY;gBAChC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,eAAe;gBACnC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,EACpC,CAAC;YACD,6CAA6C;YAC7C,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,IAAI,eAAe,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,IAAI,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBACjD,IAAI,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,KAAK,CAAC,IAAI;YACR,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CAAC,sCAAsC,EAAE;wBACvD,KAAK,EAAE,CAAC,IAAI,CAAC;qBACd,CAAC,CACH,CAAC;oBACF,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { ASTValidationContext } from '../ValidationContext.ts';\n\nconst MAX_LISTS_DEPTH = 3;\n\nexport function MaxIntrospectionDepthRule(\n context: ASTValidationContext,\n): ASTVisitor {\n /**\n * Counts the depth of list fields in \"__Type\" recursively and\n * returns `true` if the limit has been reached.\n */\n function checkDepth(\n node: ASTNode,\n visitedFragments: {\n [fragmentName: string]: true | undefined;\n } = Object.create(null),\n depth: number = 0,\n ): boolean {\n if (node.kind === Kind.FRAGMENT_SPREAD) {\n const fragmentName = node.name.value;\n if (visitedFragments[fragmentName] === true) {\n // Fragment cycles are handled by `NoFragmentCyclesRule`.\n return false;\n }\n const fragment = context.getFragment(fragmentName);\n if (!fragment) {\n // Missing fragments checks are handled by `KnownFragmentNamesRule`.\n return false;\n }\n\n // Rather than following an immutable programming pattern which has\n // significant memory and garbage collection overhead, we've opted to\n // take a mutable approach for efficiency's sake. Importantly visiting a\n // fragment twice is fine, so long as you don't do one visit inside the\n // other.\n try {\n visitedFragments[fragmentName] = true;\n return checkDepth(fragment, visitedFragments, depth);\n } finally {\n visitedFragments[fragmentName] = undefined;\n }\n }\n\n if (\n node.kind === Kind.FIELD &&\n // check all introspection lists\n (node.name.value === 'fields' ||\n node.name.value === 'interfaces' ||\n node.name.value === 'possibleTypes' ||\n node.name.value === 'inputFields')\n ) {\n // eslint-disable-next-line no-param-reassign\n depth++;\n if (depth >= MAX_LISTS_DEPTH) {\n return true;\n }\n }\n\n // handles fields and inline fragments\n if ('selectionSet' in node && node.selectionSet) {\n for (const child of node.selectionSet.selections) {\n if (checkDepth(child, visitedFragments, depth)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n return {\n Field(node) {\n if (node.name.value === '__schema' || node.name.value === '__type') {\n if (checkDepth(node)) {\n context.reportError(\n new GraphQLError('Maximum introspection depth exceeded', {\n nodes: [node],\n }),\n );\n return false;\n }\n }\n },\n };\n}\n"]}
1
+ {"version":3,"file":"MaxIntrospectionDepthRule.js","sourceRoot":"","sources":["../../../src/validation/rules/MaxIntrospectionDepthRule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAG3D,OAAO,EAAE,IAAI,EAAE,iCAAgC;AAK/C,MAAM,eAAe,GAAG,CAAC,CAAC;AAgC1B,MAAM,UAAU,yBAAyB,CACvC,OAA6B;IAQ7B,SAAS,UAAU,CACjB,IAAa,EACb,mBAEI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACvB,QAAgB,CAAC;QAEjB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;gBAE5C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAEd,OAAO,KAAK,CAAC;YACf,CAAC;YAOD,IAAI,CAAC;gBACH,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;gBACtC,OAAO,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;oBAAS,CAAC;gBACT,gBAAgB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IACE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK;YAExB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY;gBAChC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,eAAe;gBACnC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,EACpC,CAAC;YAED,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,IAAI,eAAe,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAGD,IAAI,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBACjD,IAAI,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,KAAK,CAAC,IAAI;YACR,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CAAC,sCAAsC,EAAE;wBACvD,KAAK,EAAE,CAAC,IAAI,CAAC;qBACd,CAAC,CACH,CAAC;oBACF,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["/** @category Validation Rules */\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { ASTValidationContext } from '../ValidationContext.ts';\n\nconst MAX_LISTS_DEPTH = 3;\n\n/**\n * Implements the max introspection depth validation rule.\n * @param context - The validation context used while checking the document.\n * @returns A visitor that reports validation errors for this rule.\n * @example\n * ```ts\n * import { buildSchema, parse, validate } from 'graphql';\n * import { MaxIntrospectionDepthRule } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * name: String\n * }\n * `);\n *\n * const invalidDocument = parse(`\n * { __schema { types { fields { type { fields { type { fields { name } } } } } } } }\n * `);\n * const invalidErrors = validate(schema, invalidDocument, [MaxIntrospectionDepthRule]);\n *\n * invalidErrors.length; // => 1\n *\n * const validDocument = parse(`\n * { __schema { queryType { name } } }\n * `);\n * const validErrors = validate(schema, validDocument, [MaxIntrospectionDepthRule]);\n *\n * validErrors; // => []\n * ```\n */\nexport function MaxIntrospectionDepthRule(\n context: ASTValidationContext,\n): ASTVisitor {\n /**\n * Counts the depth of list fields in \"__Type\" recursively and\n * returns `true` if the limit has been reached.\n *\n * @internal\n */\n function checkDepth(\n node: ASTNode,\n visitedFragments: {\n [fragmentName: string]: true | undefined;\n } = Object.create(null),\n depth: number = 0,\n ): boolean {\n if (node.kind === Kind.FRAGMENT_SPREAD) {\n const fragmentName = node.name.value;\n if (visitedFragments[fragmentName] === true) {\n // Fragment cycles are handled by `NoFragmentCyclesRule`.\n return false;\n }\n const fragment = context.getFragment(fragmentName);\n if (!fragment) {\n // Missing fragments checks are handled by `KnownFragmentNamesRule`.\n return false;\n }\n\n // Rather than following an immutable programming pattern which has\n // significant memory and garbage collection overhead, we've opted to\n // take a mutable approach for efficiency's sake. Importantly visiting a\n // fragment twice is fine, so long as you don't do one visit inside the\n // other.\n try {\n visitedFragments[fragmentName] = true;\n return checkDepth(fragment, visitedFragments, depth);\n } finally {\n visitedFragments[fragmentName] = undefined;\n }\n }\n\n if (\n node.kind === Kind.FIELD &&\n // check all introspection lists\n (node.name.value === 'fields' ||\n node.name.value === 'interfaces' ||\n node.name.value === 'possibleTypes' ||\n node.name.value === 'inputFields')\n ) {\n // eslint-disable-next-line no-param-reassign\n depth++;\n if (depth >= MAX_LISTS_DEPTH) {\n return true;\n }\n }\n\n // handles fields and inline fragments\n if ('selectionSet' in node && node.selectionSet) {\n for (const child of node.selectionSet.selections) {\n if (checkDepth(child, visitedFragments, depth)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n return {\n Field(node) {\n if (node.name.value === '__schema' || node.name.value === '__type') {\n if (checkDepth(node)) {\n context.reportError(\n new GraphQLError('Maximum introspection depth exceeded', {\n nodes: [node],\n }),\n );\n return false;\n }\n }\n },\n };\n}\n"]}
@@ -1,3 +1,4 @@
1
+ /** @category Validation Rules */
1
2
  import type { ASTVisitor } from "../../language/visitor.mjs";
2
3
  import type { ASTValidationContext } from "../ValidationContext.mjs";
3
4
  /**
@@ -7,5 +8,32 @@ import type { ASTValidationContext } from "../ValidationContext.mjs";
7
8
  * Otherwise an operation could infinitely spread or infinitely execute on cycles in the underlying data.
8
9
  *
9
10
  * See https://spec.graphql.org/draft/#sec-Fragment-spreads-must-not-form-cycles
11
+ * @param context - The validation context used while checking the document.
12
+ * @returns A visitor that reports validation errors for this rule.
13
+ * @example
14
+ * ```ts
15
+ * import { buildSchema, parse, validate } from 'graphql';
16
+ * import { NoFragmentCyclesRule } from 'graphql/validation';
17
+ *
18
+ * const schema = buildSchema(`
19
+ * type Query {
20
+ * name: String
21
+ * }
22
+ * `);
23
+ *
24
+ * const invalidDocument = parse(`
25
+ * fragment A on Query { ...B } fragment B on Query { ...A } query { ...A }
26
+ * `);
27
+ * const invalidErrors = validate(schema, invalidDocument, [NoFragmentCyclesRule]);
28
+ *
29
+ * invalidErrors.length; // => 1
30
+ *
31
+ * const validDocument = parse(`
32
+ * fragment A on Query { name } query { ...A }
33
+ * `);
34
+ * const validErrors = validate(schema, validDocument, [NoFragmentCyclesRule]);
35
+ *
36
+ * validErrors; // => []
37
+ * ```
10
38
  */
11
39
  export declare function NoFragmentCyclesRule(context: ASTValidationContext): ASTVisitor;
@@ -1,3 +1,4 @@
1
+ /** @category Validation Rules */
1
2
  import type { ASTVisitor } from "../../language/visitor.js";
2
3
  import type { ASTValidationContext } from "../ValidationContext.js";
3
4
  /**
@@ -7,5 +8,32 @@ import type { ASTValidationContext } from "../ValidationContext.js";
7
8
  * Otherwise an operation could infinitely spread or infinitely execute on cycles in the underlying data.
8
9
  *
9
10
  * See https://spec.graphql.org/draft/#sec-Fragment-spreads-must-not-form-cycles
11
+ * @param context - The validation context used while checking the document.
12
+ * @returns A visitor that reports validation errors for this rule.
13
+ * @example
14
+ * ```ts
15
+ * import { buildSchema, parse, validate } from 'graphql';
16
+ * import { NoFragmentCyclesRule } from 'graphql/validation';
17
+ *
18
+ * const schema = buildSchema(`
19
+ * type Query {
20
+ * name: String
21
+ * }
22
+ * `);
23
+ *
24
+ * const invalidDocument = parse(`
25
+ * fragment A on Query { ...B } fragment B on Query { ...A } query { ...A }
26
+ * `);
27
+ * const invalidErrors = validate(schema, invalidDocument, [NoFragmentCyclesRule]);
28
+ *
29
+ * invalidErrors.length; // => 1
30
+ *
31
+ * const validDocument = parse(`
32
+ * fragment A on Query { name } query { ...A }
33
+ * `);
34
+ * const validErrors = validate(schema, validDocument, [NoFragmentCyclesRule]);
35
+ *
36
+ * validErrors; // => []
37
+ * ```
10
38
  */
11
39
  export declare function NoFragmentCyclesRule(context: ASTValidationContext): ASTVisitor;