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
@@ -11,38 +11,19 @@ const directives_ts_1 = require("../type/directives.js");
11
11
  const introspection_ts_1 = require("../type/introspection.js");
12
12
  const scalars_ts_1 = require("../type/scalars.js");
13
13
  const schema_ts_1 = require("../type/schema.js");
14
- /**
15
- * Build a GraphQLSchema for use by client tools.
16
- *
17
- * Given the result of a client running the introspection query, creates and
18
- * returns a GraphQLSchema instance which can be then used with all graphql-js
19
- * tools, but cannot be used to execute a query, as introspection does not
20
- * represent the "resolver", "coerceInputValue" or "coerceOutputValue"
21
- * functions or any other server-internal mechanisms.
22
- *
23
- * This function expects a complete introspection result. Don't forget to check
24
- * the "errors" field of a server response before calling this function.
25
- */
26
14
  function buildClientSchema(introspection, options) {
27
15
  if (!((0, isObjectLike_ts_1.isObjectLike)(introspection) && (0, isObjectLike_ts_1.isObjectLike)(introspection.__schema)))
28
- (0,
29
- // Even though the `introspection` argument is typed, in most cases it's received
30
- // as an untyped value from the server, so we will do an additional check here.
31
- devAssert_ts_1.devAssert)(false, `Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${(0, inspect_ts_1.inspect)(introspection)}.`);
32
- // Get the schema from the introspection result.
16
+ (0, devAssert_ts_1.devAssert)(false, `Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${(0, inspect_ts_1.inspect)(introspection)}.`);
33
17
  const schemaIntrospection = introspection.__schema;
34
- // Iterate through all types, getting the type definition for each.
35
18
  const typeMap = new Map(schemaIntrospection.types.map((typeIntrospection) => [
36
19
  typeIntrospection.name,
37
20
  buildType(typeIntrospection),
38
21
  ]));
39
- // Include standard types only if they are used.
40
22
  for (const stdType of [...scalars_ts_1.specifiedScalarTypes, ...introspection_ts_1.introspectionTypes]) {
41
23
  if (typeMap.has(stdType.name)) {
42
24
  typeMap.set(stdType.name, stdType);
43
25
  }
44
26
  }
45
- // Get the root Query, Mutation, and Subscription types.
46
27
  const queryType = schemaIntrospection.queryType != null
47
28
  ? getObjectType(schemaIntrospection.queryType)
48
29
  : null;
@@ -52,12 +33,9 @@ function buildClientSchema(introspection, options) {
52
33
  const subscriptionType = schemaIntrospection.subscriptionType != null
53
34
  ? getObjectType(schemaIntrospection.subscriptionType)
54
35
  : null;
55
- // Get the directives supported by Introspection, assuming empty-set if
56
- // directives were not queried for.
57
36
  const directives = schemaIntrospection.directives != null
58
37
  ? schemaIntrospection.directives.map(buildDirective)
59
38
  : [];
60
- // Then produce and return a Schema with these types.
61
39
  return new schema_ts_1.GraphQLSchema({
62
40
  description: schemaIntrospection.description,
63
41
  query: queryType,
@@ -67,8 +45,6 @@ function buildClientSchema(introspection, options) {
67
45
  directives,
68
46
  assumeValid: options?.assumeValid,
69
47
  });
70
- // Given a type reference in introspection, return the GraphQLType instance.
71
- // preferring cached instances before building new instances.
72
48
  function getType(typeRef) {
73
49
  if (typeRef.kind === introspection_ts_1.TypeKind.LIST) {
74
50
  const itemRef = typeRef.ofType;
@@ -104,8 +80,6 @@ function buildClientSchema(introspection, options) {
104
80
  function getInterfaceType(typeRef) {
105
81
  return (0, definition_ts_1.assertInterfaceType)(getNamedType(typeRef));
106
82
  }
107
- // Given a type's introspection result, construct the correct
108
- // GraphQLType instance.
109
83
  function buildType(type) {
110
84
  switch (type.kind) {
111
85
  case introspection_ts_1.TypeKind.SCALAR:
@@ -121,9 +95,6 @@ function buildClientSchema(introspection, options) {
121
95
  case introspection_ts_1.TypeKind.INPUT_OBJECT:
122
96
  return buildInputObjectDef(type);
123
97
  default:
124
- // TypeScript considers this unreachable, but invalid runtime input can reach it.
125
- // Note: we include a default case rather than throwing after the switch to avoid
126
- // the use of a @ts-expect-error statement.
127
98
  throw new Error(`Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${(0, inspect_ts_1.inspect)(type)}.`);
128
99
  }
129
100
  }
@@ -135,8 +106,6 @@ function buildClientSchema(introspection, options) {
135
106
  });
136
107
  }
137
108
  function buildImplementationsList(implementingIntrospection) {
138
- // TODO: Temporary workaround until GraphQL ecosystem will fully support
139
- // 'interfaces' on interface types.
140
109
  if (implementingIntrospection.interfaces === null &&
141
110
  implementingIntrospection.kind === introspection_ts_1.TypeKind.INTERFACE) {
142
111
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"buildClientSchema.js","sourceRoot":"","sources":["../../src/utilities/buildClientSchema.ts"],"names":[],"mappings":"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","sourcesContent":["import { devAssert } from '../jsutils/devAssert.ts';\nimport { inspect } from '../jsutils/inspect.ts';\nimport { isObjectLike } from '../jsutils/isObjectLike.ts';\nimport { keyValMap } from '../jsutils/keyValMap.ts';\n\nimport { parseConstValue } from '../language/parser.ts';\n\nimport type {\n GraphQLFieldConfig,\n GraphQLFieldConfigMap,\n GraphQLNamedType,\n GraphQLType,\n} from '../type/definition.ts';\nimport {\n assertInterfaceType,\n assertNullableType,\n assertObjectType,\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLScalarType,\n GraphQLUnionType,\n isInputType,\n isOutputType,\n} from '../type/definition.ts';\nimport { GraphQLDirective } from '../type/directives.ts';\nimport { introspectionTypes, TypeKind } from '../type/introspection.ts';\nimport { specifiedScalarTypes } from '../type/scalars.ts';\nimport type { GraphQLSchemaValidationOptions } from '../type/schema.ts';\nimport { GraphQLSchema } from '../type/schema.ts';\n\nimport type {\n IntrospectionDirective,\n IntrospectionEnumType,\n IntrospectionField,\n IntrospectionInputObjectType,\n IntrospectionInputValue,\n IntrospectionInterfaceType,\n IntrospectionNamedTypeRef,\n IntrospectionObjectType,\n IntrospectionQuery,\n IntrospectionScalarType,\n IntrospectionType,\n IntrospectionTypeRef,\n IntrospectionUnionType,\n} from './getIntrospectionQuery.ts';\n\n/**\n * Build a GraphQLSchema for use by client tools.\n *\n * Given the result of a client running the introspection query, creates and\n * returns a GraphQLSchema instance which can be then used with all graphql-js\n * tools, but cannot be used to execute a query, as introspection does not\n * represent the \"resolver\", \"coerceInputValue\" or \"coerceOutputValue\"\n * functions or any other server-internal mechanisms.\n *\n * This function expects a complete introspection result. Don't forget to check\n * the \"errors\" field of a server response before calling this function.\n */\nexport function buildClientSchema(\n introspection: IntrospectionQuery,\n options?: GraphQLSchemaValidationOptions,\n): GraphQLSchema {\n // Even though the `introspection` argument is typed, in most cases it's received\n // as an untyped value from the server, so we will do an additional check here.\n devAssert(\n isObjectLike(introspection) && isObjectLike(introspection.__schema),\n `Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ${inspect(\n introspection,\n )}.`,\n );\n\n // Get the schema from the introspection result.\n const schemaIntrospection = introspection.__schema;\n\n // Iterate through all types, getting the type definition for each.\n const typeMap = new Map<string, GraphQLNamedType>(\n schemaIntrospection.types.map((typeIntrospection) => [\n typeIntrospection.name,\n buildType(typeIntrospection),\n ]),\n );\n\n // Include standard types only if they are used.\n for (const stdType of [...specifiedScalarTypes, ...introspectionTypes]) {\n if (typeMap.has(stdType.name)) {\n typeMap.set(stdType.name, stdType);\n }\n }\n\n // Get the root Query, Mutation, and Subscription types.\n const queryType =\n schemaIntrospection.queryType != null\n ? getObjectType(schemaIntrospection.queryType)\n : null;\n\n const mutationType =\n schemaIntrospection.mutationType != null\n ? getObjectType(schemaIntrospection.mutationType)\n : null;\n\n const subscriptionType =\n schemaIntrospection.subscriptionType != null\n ? getObjectType(schemaIntrospection.subscriptionType)\n : null;\n\n // Get the directives supported by Introspection, assuming empty-set if\n // directives were not queried for.\n const directives =\n schemaIntrospection.directives != null\n ? schemaIntrospection.directives.map(buildDirective)\n : [];\n\n // Then produce and return a Schema with these types.\n return new GraphQLSchema({\n description: schemaIntrospection.description,\n query: queryType,\n mutation: mutationType,\n subscription: subscriptionType,\n types: [...typeMap.values()],\n directives,\n assumeValid: options?.assumeValid,\n });\n\n // Given a type reference in introspection, return the GraphQLType instance.\n // preferring cached instances before building new instances.\n function getType(typeRef: IntrospectionTypeRef): GraphQLType {\n if (typeRef.kind === TypeKind.LIST) {\n const itemRef = typeRef.ofType;\n if (itemRef == null) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n return new GraphQLList(getType(itemRef));\n }\n if (typeRef.kind === TypeKind.NON_NULL) {\n const nullableRef = typeRef.ofType;\n if (nullableRef == null) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n const nullableType = getType(nullableRef);\n return new GraphQLNonNull(assertNullableType(nullableType));\n }\n return getNamedType(typeRef);\n }\n\n function getNamedType(typeRef: IntrospectionNamedTypeRef): GraphQLNamedType {\n const typeName = typeRef.name;\n if (!typeName) {\n throw new Error(`Unknown type reference: ${inspect(typeRef)}.`);\n }\n\n const type = typeMap.get(typeName);\n if (type == null) {\n throw new Error(\n `Invalid or incomplete schema, unknown type: ${typeName}. Ensure that a full introspection query is used in order to build a client schema.`,\n );\n }\n\n return type;\n }\n\n function getObjectType(\n typeRef: IntrospectionNamedTypeRef<IntrospectionObjectType>,\n ): GraphQLObjectType {\n return assertObjectType(getNamedType(typeRef));\n }\n\n function getInterfaceType(\n typeRef: IntrospectionNamedTypeRef<IntrospectionInterfaceType>,\n ): GraphQLInterfaceType {\n return assertInterfaceType(getNamedType(typeRef));\n }\n\n // Given a type's introspection result, construct the correct\n // GraphQLType instance.\n function buildType(type: IntrospectionType): GraphQLNamedType {\n switch (type.kind) {\n case TypeKind.SCALAR:\n return buildScalarDef(type);\n case TypeKind.OBJECT:\n return buildObjectDef(type);\n case TypeKind.INTERFACE:\n return buildInterfaceDef(type);\n case TypeKind.UNION:\n return buildUnionDef(type);\n case TypeKind.ENUM:\n return buildEnumDef(type);\n case TypeKind.INPUT_OBJECT:\n return buildInputObjectDef(type);\n default:\n // TypeScript considers this unreachable, but invalid runtime input can reach it.\n // Note: we include a default case rather than throwing after the switch to avoid\n // the use of a @ts-expect-error statement.\n throw new Error(\n `Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${inspect(\n type,\n )}.`,\n );\n }\n }\n\n function buildScalarDef(\n scalarIntrospection: IntrospectionScalarType,\n ): GraphQLScalarType {\n return new GraphQLScalarType({\n name: scalarIntrospection.name,\n description: scalarIntrospection.description,\n specifiedByURL: scalarIntrospection.specifiedByURL,\n });\n }\n\n function buildImplementationsList(\n implementingIntrospection:\n | IntrospectionObjectType\n | IntrospectionInterfaceType,\n ): Array<GraphQLInterfaceType> {\n // TODO: Temporary workaround until GraphQL ecosystem will fully support\n // 'interfaces' on interface types.\n if (\n implementingIntrospection.interfaces === null &&\n implementingIntrospection.kind === TypeKind.INTERFACE\n ) {\n return [];\n }\n\n if (implementingIntrospection.interfaces == null) {\n const implementingIntrospectionStr = inspect(implementingIntrospection);\n throw new Error(\n `Introspection result missing interfaces: ${implementingIntrospectionStr}.`,\n );\n }\n\n return implementingIntrospection.interfaces.map(getInterfaceType);\n }\n\n function buildObjectDef(\n objectIntrospection: IntrospectionObjectType,\n ): GraphQLObjectType {\n return new GraphQLObjectType({\n name: objectIntrospection.name,\n description: objectIntrospection.description,\n interfaces: () => buildImplementationsList(objectIntrospection),\n fields: () => buildFieldDefMap(objectIntrospection),\n });\n }\n\n function buildInterfaceDef(\n interfaceIntrospection: IntrospectionInterfaceType,\n ): GraphQLInterfaceType {\n return new GraphQLInterfaceType({\n name: interfaceIntrospection.name,\n description: interfaceIntrospection.description,\n interfaces: () => buildImplementationsList(interfaceIntrospection),\n fields: () => buildFieldDefMap(interfaceIntrospection),\n });\n }\n\n function buildUnionDef(\n unionIntrospection: IntrospectionUnionType,\n ): GraphQLUnionType {\n if (unionIntrospection.possibleTypes == null) {\n const unionIntrospectionStr = inspect(unionIntrospection);\n throw new Error(\n `Introspection result missing possibleTypes: ${unionIntrospectionStr}.`,\n );\n }\n return new GraphQLUnionType({\n name: unionIntrospection.name,\n description: unionIntrospection.description,\n types: () => unionIntrospection.possibleTypes.map(getObjectType),\n });\n }\n\n function buildEnumDef(\n enumIntrospection: IntrospectionEnumType,\n ): GraphQLEnumType {\n if (enumIntrospection.enumValues == null) {\n const enumIntrospectionStr = inspect(enumIntrospection);\n throw new Error(\n `Introspection result missing enumValues: ${enumIntrospectionStr}.`,\n );\n }\n return new GraphQLEnumType({\n name: enumIntrospection.name,\n description: enumIntrospection.description,\n values: keyValMap(\n enumIntrospection.enumValues,\n (valueIntrospection) => valueIntrospection.name,\n (valueIntrospection) => ({\n description: valueIntrospection.description,\n deprecationReason: valueIntrospection.deprecationReason,\n }),\n ),\n });\n }\n\n function buildInputObjectDef(\n inputObjectIntrospection: IntrospectionInputObjectType,\n ): GraphQLInputObjectType {\n if (inputObjectIntrospection.inputFields == null) {\n const inputObjectIntrospectionStr = inspect(inputObjectIntrospection);\n throw new Error(\n `Introspection result missing inputFields: ${inputObjectIntrospectionStr}.`,\n );\n }\n return new GraphQLInputObjectType({\n name: inputObjectIntrospection.name,\n description: inputObjectIntrospection.description,\n fields: () => buildInputValueDefMap(inputObjectIntrospection.inputFields),\n isOneOf: inputObjectIntrospection.isOneOf,\n });\n }\n\n function buildFieldDefMap(\n typeIntrospection: IntrospectionObjectType | IntrospectionInterfaceType,\n ): GraphQLFieldConfigMap<unknown, unknown> {\n if (typeIntrospection.fields == null) {\n throw new Error(\n `Introspection result missing fields: ${inspect(typeIntrospection)}.`,\n );\n }\n\n return keyValMap(\n typeIntrospection.fields,\n (fieldIntrospection) => fieldIntrospection.name,\n buildField,\n );\n }\n\n function buildField(\n fieldIntrospection: IntrospectionField,\n ): GraphQLFieldConfig<unknown, unknown> {\n const type = getType(fieldIntrospection.type);\n if (!isOutputType(type)) {\n const typeStr = inspect(type);\n throw new Error(\n `Introspection must provide output type for fields, but received: ${typeStr}.`,\n );\n }\n\n if (fieldIntrospection.args == null) {\n const fieldIntrospectionStr = inspect(fieldIntrospection);\n throw new Error(\n `Introspection result missing field args: ${fieldIntrospectionStr}.`,\n );\n }\n\n return {\n description: fieldIntrospection.description,\n deprecationReason: fieldIntrospection.deprecationReason,\n type,\n args: buildInputValueDefMap(fieldIntrospection.args),\n };\n }\n\n function buildInputValueDefMap(\n inputValueIntrospections: ReadonlyArray<IntrospectionInputValue>,\n ) {\n return keyValMap(\n inputValueIntrospections,\n (inputValue) => inputValue.name,\n buildInputValue,\n );\n }\n\n function buildInputValue(inputValueIntrospection: IntrospectionInputValue) {\n const type = getType(inputValueIntrospection.type);\n if (!isInputType(type)) {\n const typeStr = inspect(type);\n throw new Error(\n `Introspection must provide input type for arguments, but received: ${typeStr}.`,\n );\n }\n\n return {\n description: inputValueIntrospection.description,\n type,\n default:\n inputValueIntrospection.defaultValue != null\n ? { literal: parseConstValue(inputValueIntrospection.defaultValue) }\n : undefined,\n deprecationReason: inputValueIntrospection.deprecationReason,\n };\n }\n\n function buildDirective(\n directiveIntrospection: IntrospectionDirective,\n ): GraphQLDirective {\n if (directiveIntrospection.args == null) {\n const directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\n `Introspection result missing directive args: ${directiveIntrospectionStr}.`,\n );\n }\n if (directiveIntrospection.locations == null) {\n const directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\n `Introspection result missing directive locations: ${directiveIntrospectionStr}.`,\n );\n }\n return new GraphQLDirective({\n name: directiveIntrospection.name,\n description: directiveIntrospection.description,\n isRepeatable: directiveIntrospection.isRepeatable,\n deprecationReason: directiveIntrospection.deprecationReason,\n locations: directiveIntrospection.locations.slice(),\n args: buildInputValueDefMap(directiveIntrospection.args),\n });\n }\n}\n"]}
1
+ {"version":3,"file":"buildClientSchema.js","sourceRoot":"","sources":["../../src/utilities/buildClientSchema.ts"],"names":[],"mappings":"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","sourcesContent":["/** @category Introspection */\n\nimport { devAssert } from '../jsutils/devAssert.ts';\nimport { inspect } from '../jsutils/inspect.ts';\nimport { isObjectLike } from '../jsutils/isObjectLike.ts';\nimport { keyValMap } from '../jsutils/keyValMap.ts';\n\nimport { parseConstValue } from '../language/parser.ts';\n\nimport type {\n GraphQLFieldConfig,\n GraphQLFieldConfigMap,\n GraphQLNamedType,\n GraphQLType,\n} from '../type/definition.ts';\nimport {\n assertInterfaceType,\n assertNullableType,\n assertObjectType,\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLScalarType,\n GraphQLUnionType,\n isInputType,\n isOutputType,\n} from '../type/definition.ts';\nimport { GraphQLDirective } from '../type/directives.ts';\nimport { introspectionTypes, TypeKind } from '../type/introspection.ts';\nimport { specifiedScalarTypes } from '../type/scalars.ts';\nimport type { GraphQLSchemaValidationOptions } from '../type/schema.ts';\nimport { GraphQLSchema } from '../type/schema.ts';\n\nimport type {\n IntrospectionDirective,\n IntrospectionEnumType,\n IntrospectionField,\n IntrospectionInputObjectType,\n IntrospectionInputValue,\n IntrospectionInterfaceType,\n IntrospectionNamedTypeRef,\n IntrospectionObjectType,\n IntrospectionQuery,\n IntrospectionScalarType,\n IntrospectionType,\n IntrospectionTypeRef,\n IntrospectionUnionType,\n} from './getIntrospectionQuery.ts';\n\n/**\n * Build a GraphQLSchema for use by client tools.\n *\n * Given the result of a client running the introspection query, creates and\n * returns a GraphQLSchema instance which can be then used with all graphql-js\n * tools, but cannot be used to execute a query, as introspection does not\n * represent the \"resolver\", \"parse\" or \"serialize\" functions or any other\n * server-internal mechanisms.\n *\n * This function expects a complete introspection result. Don't forget to check\n * the \"errors\" field of a server response before calling this function.\n * @param introspection - Introspection result data to build from.\n * @param options - Optional configuration for this operation.\n * @returns The client schema represented by the introspection result.\n * @example\n * ```ts\n * import { buildClientSchema, introspectionFromSchema, buildSchema } from 'graphql/utilities';\n *\n * const schema = buildSchema('type Query { hello: String }');\n * const clientSchema = buildClientSchema(introspectionFromSchema(schema), {\n * assumeValid: true,\n * });\n *\n * clientSchema.getQueryType().name; // => 'Query'\n * ```\n */\nexport function buildClientSchema(\n introspection: IntrospectionQuery,\n options?: GraphQLSchemaValidationOptions,\n): GraphQLSchema {\n // Even though the `introspection` argument is typed, in most cases it's received\n // as an untyped value from the server, so we will do an additional check here.\n devAssert(\n isObjectLike(introspection) && isObjectLike(introspection.__schema),\n `Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ${inspect(\n introspection,\n )}.`,\n );\n\n // Get the schema from the introspection result.\n const schemaIntrospection = introspection.__schema;\n\n // Iterate through all types, getting the type definition for each.\n const typeMap = new Map<string, GraphQLNamedType>(\n schemaIntrospection.types.map((typeIntrospection) => [\n typeIntrospection.name,\n buildType(typeIntrospection),\n ]),\n );\n\n // Include standard types only if they are used.\n for (const stdType of [...specifiedScalarTypes, ...introspectionTypes]) {\n if (typeMap.has(stdType.name)) {\n typeMap.set(stdType.name, stdType);\n }\n }\n\n // Get the root Query, Mutation, and Subscription types.\n const queryType =\n schemaIntrospection.queryType != null\n ? getObjectType(schemaIntrospection.queryType)\n : null;\n\n const mutationType =\n schemaIntrospection.mutationType != null\n ? getObjectType(schemaIntrospection.mutationType)\n : null;\n\n const subscriptionType =\n schemaIntrospection.subscriptionType != null\n ? getObjectType(schemaIntrospection.subscriptionType)\n : null;\n\n // Get the directives supported by Introspection, assuming empty-set if\n // directives were not queried for.\n const directives =\n schemaIntrospection.directives != null\n ? schemaIntrospection.directives.map(buildDirective)\n : [];\n\n // Then produce and return a Schema with these types.\n return new GraphQLSchema({\n description: schemaIntrospection.description,\n query: queryType,\n mutation: mutationType,\n subscription: subscriptionType,\n types: [...typeMap.values()],\n directives,\n assumeValid: options?.assumeValid,\n });\n\n // Given a type reference in introspection, return the GraphQLType instance.\n // preferring cached instances before building new instances.\n function getType(typeRef: IntrospectionTypeRef): GraphQLType {\n if (typeRef.kind === TypeKind.LIST) {\n const itemRef = typeRef.ofType;\n if (itemRef == null) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n return new GraphQLList(getType(itemRef));\n }\n if (typeRef.kind === TypeKind.NON_NULL) {\n const nullableRef = typeRef.ofType;\n if (nullableRef == null) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n const nullableType = getType(nullableRef);\n return new GraphQLNonNull(assertNullableType(nullableType));\n }\n return getNamedType(typeRef);\n }\n\n function getNamedType(typeRef: IntrospectionNamedTypeRef): GraphQLNamedType {\n const typeName = typeRef.name;\n if (!typeName) {\n throw new Error(`Unknown type reference: ${inspect(typeRef)}.`);\n }\n\n const type = typeMap.get(typeName);\n if (type == null) {\n throw new Error(\n `Invalid or incomplete schema, unknown type: ${typeName}. Ensure that a full introspection query is used in order to build a client schema.`,\n );\n }\n\n return type;\n }\n\n function getObjectType(\n typeRef: IntrospectionNamedTypeRef<IntrospectionObjectType>,\n ): GraphQLObjectType {\n return assertObjectType(getNamedType(typeRef));\n }\n\n function getInterfaceType(\n typeRef: IntrospectionNamedTypeRef<IntrospectionInterfaceType>,\n ): GraphQLInterfaceType {\n return assertInterfaceType(getNamedType(typeRef));\n }\n\n // Given a type's introspection result, construct the correct\n // GraphQLType instance.\n function buildType(type: IntrospectionType): GraphQLNamedType {\n switch (type.kind) {\n case TypeKind.SCALAR:\n return buildScalarDef(type);\n case TypeKind.OBJECT:\n return buildObjectDef(type);\n case TypeKind.INTERFACE:\n return buildInterfaceDef(type);\n case TypeKind.UNION:\n return buildUnionDef(type);\n case TypeKind.ENUM:\n return buildEnumDef(type);\n case TypeKind.INPUT_OBJECT:\n return buildInputObjectDef(type);\n default:\n // TypeScript considers this unreachable, but invalid runtime input can reach it.\n // Note: we include a default case rather than throwing after the switch to avoid\n // the use of a @ts-expect-error statement.\n throw new Error(\n `Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${inspect(\n type,\n )}.`,\n );\n }\n }\n\n function buildScalarDef(\n scalarIntrospection: IntrospectionScalarType,\n ): GraphQLScalarType {\n return new GraphQLScalarType({\n name: scalarIntrospection.name,\n description: scalarIntrospection.description,\n specifiedByURL: scalarIntrospection.specifiedByURL,\n });\n }\n\n function buildImplementationsList(\n implementingIntrospection:\n | IntrospectionObjectType\n | IntrospectionInterfaceType,\n ): Array<GraphQLInterfaceType> {\n // TODO: Temporary workaround until GraphQL ecosystem will fully support\n // 'interfaces' on interface types.\n if (\n implementingIntrospection.interfaces === null &&\n implementingIntrospection.kind === TypeKind.INTERFACE\n ) {\n return [];\n }\n\n if (implementingIntrospection.interfaces == null) {\n const implementingIntrospectionStr = inspect(implementingIntrospection);\n throw new Error(\n `Introspection result missing interfaces: ${implementingIntrospectionStr}.`,\n );\n }\n\n return implementingIntrospection.interfaces.map(getInterfaceType);\n }\n\n function buildObjectDef(\n objectIntrospection: IntrospectionObjectType,\n ): GraphQLObjectType {\n return new GraphQLObjectType({\n name: objectIntrospection.name,\n description: objectIntrospection.description,\n interfaces: () => buildImplementationsList(objectIntrospection),\n fields: () => buildFieldDefMap(objectIntrospection),\n });\n }\n\n function buildInterfaceDef(\n interfaceIntrospection: IntrospectionInterfaceType,\n ): GraphQLInterfaceType {\n return new GraphQLInterfaceType({\n name: interfaceIntrospection.name,\n description: interfaceIntrospection.description,\n interfaces: () => buildImplementationsList(interfaceIntrospection),\n fields: () => buildFieldDefMap(interfaceIntrospection),\n });\n }\n\n function buildUnionDef(\n unionIntrospection: IntrospectionUnionType,\n ): GraphQLUnionType {\n if (unionIntrospection.possibleTypes == null) {\n const unionIntrospectionStr = inspect(unionIntrospection);\n throw new Error(\n `Introspection result missing possibleTypes: ${unionIntrospectionStr}.`,\n );\n }\n return new GraphQLUnionType({\n name: unionIntrospection.name,\n description: unionIntrospection.description,\n types: () => unionIntrospection.possibleTypes.map(getObjectType),\n });\n }\n\n function buildEnumDef(\n enumIntrospection: IntrospectionEnumType,\n ): GraphQLEnumType {\n if (enumIntrospection.enumValues == null) {\n const enumIntrospectionStr = inspect(enumIntrospection);\n throw new Error(\n `Introspection result missing enumValues: ${enumIntrospectionStr}.`,\n );\n }\n return new GraphQLEnumType({\n name: enumIntrospection.name,\n description: enumIntrospection.description,\n values: keyValMap(\n enumIntrospection.enumValues,\n (valueIntrospection) => valueIntrospection.name,\n (valueIntrospection) => ({\n description: valueIntrospection.description,\n deprecationReason: valueIntrospection.deprecationReason,\n }),\n ),\n });\n }\n\n function buildInputObjectDef(\n inputObjectIntrospection: IntrospectionInputObjectType,\n ): GraphQLInputObjectType {\n if (inputObjectIntrospection.inputFields == null) {\n const inputObjectIntrospectionStr = inspect(inputObjectIntrospection);\n throw new Error(\n `Introspection result missing inputFields: ${inputObjectIntrospectionStr}.`,\n );\n }\n return new GraphQLInputObjectType({\n name: inputObjectIntrospection.name,\n description: inputObjectIntrospection.description,\n fields: () => buildInputValueDefMap(inputObjectIntrospection.inputFields),\n isOneOf: inputObjectIntrospection.isOneOf,\n });\n }\n\n function buildFieldDefMap(\n typeIntrospection: IntrospectionObjectType | IntrospectionInterfaceType,\n ): GraphQLFieldConfigMap<unknown, unknown> {\n if (typeIntrospection.fields == null) {\n throw new Error(\n `Introspection result missing fields: ${inspect(typeIntrospection)}.`,\n );\n }\n\n return keyValMap(\n typeIntrospection.fields,\n (fieldIntrospection) => fieldIntrospection.name,\n buildField,\n );\n }\n\n function buildField(\n fieldIntrospection: IntrospectionField,\n ): GraphQLFieldConfig<unknown, unknown> {\n const type = getType(fieldIntrospection.type);\n if (!isOutputType(type)) {\n const typeStr = inspect(type);\n throw new Error(\n `Introspection must provide output type for fields, but received: ${typeStr}.`,\n );\n }\n\n if (fieldIntrospection.args == null) {\n const fieldIntrospectionStr = inspect(fieldIntrospection);\n throw new Error(\n `Introspection result missing field args: ${fieldIntrospectionStr}.`,\n );\n }\n\n return {\n description: fieldIntrospection.description,\n deprecationReason: fieldIntrospection.deprecationReason,\n type,\n args: buildInputValueDefMap(fieldIntrospection.args),\n };\n }\n\n function buildInputValueDefMap(\n inputValueIntrospections: ReadonlyArray<IntrospectionInputValue>,\n ) {\n return keyValMap(\n inputValueIntrospections,\n (inputValue) => inputValue.name,\n buildInputValue,\n );\n }\n\n function buildInputValue(inputValueIntrospection: IntrospectionInputValue) {\n const type = getType(inputValueIntrospection.type);\n if (!isInputType(type)) {\n const typeStr = inspect(type);\n throw new Error(\n `Introspection must provide input type for arguments, but received: ${typeStr}.`,\n );\n }\n\n return {\n description: inputValueIntrospection.description,\n type,\n default:\n inputValueIntrospection.defaultValue != null\n ? { literal: parseConstValue(inputValueIntrospection.defaultValue) }\n : undefined,\n deprecationReason: inputValueIntrospection.deprecationReason,\n };\n }\n\n function buildDirective(\n directiveIntrospection: IntrospectionDirective,\n ): GraphQLDirective {\n if (directiveIntrospection.args == null) {\n const directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\n `Introspection result missing directive args: ${directiveIntrospectionStr}.`,\n );\n }\n if (directiveIntrospection.locations == null) {\n const directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\n `Introspection result missing directive locations: ${directiveIntrospectionStr}.`,\n );\n }\n return new GraphQLDirective({\n name: directiveIntrospection.name,\n description: directiveIntrospection.description,\n isRepeatable: directiveIntrospection.isRepeatable,\n deprecationReason: directiveIntrospection.deprecationReason,\n locations: directiveIntrospection.locations.slice(),\n args: buildInputValueDefMap(directiveIntrospection.args),\n });\n }\n}\n"]}
@@ -8,37 +8,19 @@ import { GraphQLDirective } from "../type/directives.mjs";
8
8
  import { introspectionTypes, TypeKind } from "../type/introspection.mjs";
9
9
  import { specifiedScalarTypes } from "../type/scalars.mjs";
10
10
  import { GraphQLSchema } from "../type/schema.mjs";
11
- /**
12
- * Build a GraphQLSchema for use by client tools.
13
- *
14
- * Given the result of a client running the introspection query, creates and
15
- * returns a GraphQLSchema instance which can be then used with all graphql-js
16
- * tools, but cannot be used to execute a query, as introspection does not
17
- * represent the "resolver", "coerceInputValue" or "coerceOutputValue"
18
- * functions or any other server-internal mechanisms.
19
- *
20
- * This function expects a complete introspection result. Don't forget to check
21
- * the "errors" field of a server response before calling this function.
22
- */
23
11
  export function buildClientSchema(introspection, options) {
24
12
  if (!(isObjectLike(introspection) && isObjectLike(introspection.__schema)))
25
- // Even though the `introspection` argument is typed, in most cases it's received
26
- // as an untyped value from the server, so we will do an additional check here.
27
13
  devAssert(false, `Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${inspect(introspection)}.`);
28
- // Get the schema from the introspection result.
29
14
  const schemaIntrospection = introspection.__schema;
30
- // Iterate through all types, getting the type definition for each.
31
15
  const typeMap = new Map(schemaIntrospection.types.map((typeIntrospection) => [
32
16
  typeIntrospection.name,
33
17
  buildType(typeIntrospection),
34
18
  ]));
35
- // Include standard types only if they are used.
36
19
  for (const stdType of [...specifiedScalarTypes, ...introspectionTypes]) {
37
20
  if (typeMap.has(stdType.name)) {
38
21
  typeMap.set(stdType.name, stdType);
39
22
  }
40
23
  }
41
- // Get the root Query, Mutation, and Subscription types.
42
24
  const queryType = schemaIntrospection.queryType != null
43
25
  ? getObjectType(schemaIntrospection.queryType)
44
26
  : null;
@@ -48,12 +30,9 @@ export function buildClientSchema(introspection, options) {
48
30
  const subscriptionType = schemaIntrospection.subscriptionType != null
49
31
  ? getObjectType(schemaIntrospection.subscriptionType)
50
32
  : null;
51
- // Get the directives supported by Introspection, assuming empty-set if
52
- // directives were not queried for.
53
33
  const directives = schemaIntrospection.directives != null
54
34
  ? schemaIntrospection.directives.map(buildDirective)
55
35
  : [];
56
- // Then produce and return a Schema with these types.
57
36
  return new GraphQLSchema({
58
37
  description: schemaIntrospection.description,
59
38
  query: queryType,
@@ -63,8 +42,6 @@ export function buildClientSchema(introspection, options) {
63
42
  directives,
64
43
  assumeValid: options?.assumeValid,
65
44
  });
66
- // Given a type reference in introspection, return the GraphQLType instance.
67
- // preferring cached instances before building new instances.
68
45
  function getType(typeRef) {
69
46
  if (typeRef.kind === TypeKind.LIST) {
70
47
  const itemRef = typeRef.ofType;
@@ -100,8 +77,6 @@ export function buildClientSchema(introspection, options) {
100
77
  function getInterfaceType(typeRef) {
101
78
  return assertInterfaceType(getNamedType(typeRef));
102
79
  }
103
- // Given a type's introspection result, construct the correct
104
- // GraphQLType instance.
105
80
  function buildType(type) {
106
81
  switch (type.kind) {
107
82
  case TypeKind.SCALAR:
@@ -117,9 +92,6 @@ export function buildClientSchema(introspection, options) {
117
92
  case TypeKind.INPUT_OBJECT:
118
93
  return buildInputObjectDef(type);
119
94
  default:
120
- // TypeScript considers this unreachable, but invalid runtime input can reach it.
121
- // Note: we include a default case rather than throwing after the switch to avoid
122
- // the use of a @ts-expect-error statement.
123
95
  throw new Error(`Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${inspect(type)}.`);
124
96
  }
125
97
  }
@@ -131,8 +103,6 @@ export function buildClientSchema(introspection, options) {
131
103
  });
132
104
  }
133
105
  function buildImplementationsList(implementingIntrospection) {
134
- // TODO: Temporary workaround until GraphQL ecosystem will fully support
135
- // 'interfaces' on interface types.
136
106
  if (implementingIntrospection.interfaces === null &&
137
107
  implementingIntrospection.kind === TypeKind.INTERFACE) {
138
108
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"buildClientSchema.js","sourceRoot":"","sources":["../../src/utilities/buildClientSchema.ts"],"names":[],"mappings":"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","sourcesContent":["import { devAssert } from '../jsutils/devAssert.ts';\nimport { inspect } from '../jsutils/inspect.ts';\nimport { isObjectLike } from '../jsutils/isObjectLike.ts';\nimport { keyValMap } from '../jsutils/keyValMap.ts';\n\nimport { parseConstValue } from '../language/parser.ts';\n\nimport type {\n GraphQLFieldConfig,\n GraphQLFieldConfigMap,\n GraphQLNamedType,\n GraphQLType,\n} from '../type/definition.ts';\nimport {\n assertInterfaceType,\n assertNullableType,\n assertObjectType,\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLScalarType,\n GraphQLUnionType,\n isInputType,\n isOutputType,\n} from '../type/definition.ts';\nimport { GraphQLDirective } from '../type/directives.ts';\nimport { introspectionTypes, TypeKind } from '../type/introspection.ts';\nimport { specifiedScalarTypes } from '../type/scalars.ts';\nimport type { GraphQLSchemaValidationOptions } from '../type/schema.ts';\nimport { GraphQLSchema } from '../type/schema.ts';\n\nimport type {\n IntrospectionDirective,\n IntrospectionEnumType,\n IntrospectionField,\n IntrospectionInputObjectType,\n IntrospectionInputValue,\n IntrospectionInterfaceType,\n IntrospectionNamedTypeRef,\n IntrospectionObjectType,\n IntrospectionQuery,\n IntrospectionScalarType,\n IntrospectionType,\n IntrospectionTypeRef,\n IntrospectionUnionType,\n} from './getIntrospectionQuery.ts';\n\n/**\n * Build a GraphQLSchema for use by client tools.\n *\n * Given the result of a client running the introspection query, creates and\n * returns a GraphQLSchema instance which can be then used with all graphql-js\n * tools, but cannot be used to execute a query, as introspection does not\n * represent the \"resolver\", \"coerceInputValue\" or \"coerceOutputValue\"\n * functions or any other server-internal mechanisms.\n *\n * This function expects a complete introspection result. Don't forget to check\n * the \"errors\" field of a server response before calling this function.\n */\nexport function buildClientSchema(\n introspection: IntrospectionQuery,\n options?: GraphQLSchemaValidationOptions,\n): GraphQLSchema {\n // Even though the `introspection` argument is typed, in most cases it's received\n // as an untyped value from the server, so we will do an additional check here.\n devAssert(\n isObjectLike(introspection) && isObjectLike(introspection.__schema),\n `Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ${inspect(\n introspection,\n )}.`,\n );\n\n // Get the schema from the introspection result.\n const schemaIntrospection = introspection.__schema;\n\n // Iterate through all types, getting the type definition for each.\n const typeMap = new Map<string, GraphQLNamedType>(\n schemaIntrospection.types.map((typeIntrospection) => [\n typeIntrospection.name,\n buildType(typeIntrospection),\n ]),\n );\n\n // Include standard types only if they are used.\n for (const stdType of [...specifiedScalarTypes, ...introspectionTypes]) {\n if (typeMap.has(stdType.name)) {\n typeMap.set(stdType.name, stdType);\n }\n }\n\n // Get the root Query, Mutation, and Subscription types.\n const queryType =\n schemaIntrospection.queryType != null\n ? getObjectType(schemaIntrospection.queryType)\n : null;\n\n const mutationType =\n schemaIntrospection.mutationType != null\n ? getObjectType(schemaIntrospection.mutationType)\n : null;\n\n const subscriptionType =\n schemaIntrospection.subscriptionType != null\n ? getObjectType(schemaIntrospection.subscriptionType)\n : null;\n\n // Get the directives supported by Introspection, assuming empty-set if\n // directives were not queried for.\n const directives =\n schemaIntrospection.directives != null\n ? schemaIntrospection.directives.map(buildDirective)\n : [];\n\n // Then produce and return a Schema with these types.\n return new GraphQLSchema({\n description: schemaIntrospection.description,\n query: queryType,\n mutation: mutationType,\n subscription: subscriptionType,\n types: [...typeMap.values()],\n directives,\n assumeValid: options?.assumeValid,\n });\n\n // Given a type reference in introspection, return the GraphQLType instance.\n // preferring cached instances before building new instances.\n function getType(typeRef: IntrospectionTypeRef): GraphQLType {\n if (typeRef.kind === TypeKind.LIST) {\n const itemRef = typeRef.ofType;\n if (itemRef == null) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n return new GraphQLList(getType(itemRef));\n }\n if (typeRef.kind === TypeKind.NON_NULL) {\n const nullableRef = typeRef.ofType;\n if (nullableRef == null) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n const nullableType = getType(nullableRef);\n return new GraphQLNonNull(assertNullableType(nullableType));\n }\n return getNamedType(typeRef);\n }\n\n function getNamedType(typeRef: IntrospectionNamedTypeRef): GraphQLNamedType {\n const typeName = typeRef.name;\n if (!typeName) {\n throw new Error(`Unknown type reference: ${inspect(typeRef)}.`);\n }\n\n const type = typeMap.get(typeName);\n if (type == null) {\n throw new Error(\n `Invalid or incomplete schema, unknown type: ${typeName}. Ensure that a full introspection query is used in order to build a client schema.`,\n );\n }\n\n return type;\n }\n\n function getObjectType(\n typeRef: IntrospectionNamedTypeRef<IntrospectionObjectType>,\n ): GraphQLObjectType {\n return assertObjectType(getNamedType(typeRef));\n }\n\n function getInterfaceType(\n typeRef: IntrospectionNamedTypeRef<IntrospectionInterfaceType>,\n ): GraphQLInterfaceType {\n return assertInterfaceType(getNamedType(typeRef));\n }\n\n // Given a type's introspection result, construct the correct\n // GraphQLType instance.\n function buildType(type: IntrospectionType): GraphQLNamedType {\n switch (type.kind) {\n case TypeKind.SCALAR:\n return buildScalarDef(type);\n case TypeKind.OBJECT:\n return buildObjectDef(type);\n case TypeKind.INTERFACE:\n return buildInterfaceDef(type);\n case TypeKind.UNION:\n return buildUnionDef(type);\n case TypeKind.ENUM:\n return buildEnumDef(type);\n case TypeKind.INPUT_OBJECT:\n return buildInputObjectDef(type);\n default:\n // TypeScript considers this unreachable, but invalid runtime input can reach it.\n // Note: we include a default case rather than throwing after the switch to avoid\n // the use of a @ts-expect-error statement.\n throw new Error(\n `Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${inspect(\n type,\n )}.`,\n );\n }\n }\n\n function buildScalarDef(\n scalarIntrospection: IntrospectionScalarType,\n ): GraphQLScalarType {\n return new GraphQLScalarType({\n name: scalarIntrospection.name,\n description: scalarIntrospection.description,\n specifiedByURL: scalarIntrospection.specifiedByURL,\n });\n }\n\n function buildImplementationsList(\n implementingIntrospection:\n | IntrospectionObjectType\n | IntrospectionInterfaceType,\n ): Array<GraphQLInterfaceType> {\n // TODO: Temporary workaround until GraphQL ecosystem will fully support\n // 'interfaces' on interface types.\n if (\n implementingIntrospection.interfaces === null &&\n implementingIntrospection.kind === TypeKind.INTERFACE\n ) {\n return [];\n }\n\n if (implementingIntrospection.interfaces == null) {\n const implementingIntrospectionStr = inspect(implementingIntrospection);\n throw new Error(\n `Introspection result missing interfaces: ${implementingIntrospectionStr}.`,\n );\n }\n\n return implementingIntrospection.interfaces.map(getInterfaceType);\n }\n\n function buildObjectDef(\n objectIntrospection: IntrospectionObjectType,\n ): GraphQLObjectType {\n return new GraphQLObjectType({\n name: objectIntrospection.name,\n description: objectIntrospection.description,\n interfaces: () => buildImplementationsList(objectIntrospection),\n fields: () => buildFieldDefMap(objectIntrospection),\n });\n }\n\n function buildInterfaceDef(\n interfaceIntrospection: IntrospectionInterfaceType,\n ): GraphQLInterfaceType {\n return new GraphQLInterfaceType({\n name: interfaceIntrospection.name,\n description: interfaceIntrospection.description,\n interfaces: () => buildImplementationsList(interfaceIntrospection),\n fields: () => buildFieldDefMap(interfaceIntrospection),\n });\n }\n\n function buildUnionDef(\n unionIntrospection: IntrospectionUnionType,\n ): GraphQLUnionType {\n if (unionIntrospection.possibleTypes == null) {\n const unionIntrospectionStr = inspect(unionIntrospection);\n throw new Error(\n `Introspection result missing possibleTypes: ${unionIntrospectionStr}.`,\n );\n }\n return new GraphQLUnionType({\n name: unionIntrospection.name,\n description: unionIntrospection.description,\n types: () => unionIntrospection.possibleTypes.map(getObjectType),\n });\n }\n\n function buildEnumDef(\n enumIntrospection: IntrospectionEnumType,\n ): GraphQLEnumType {\n if (enumIntrospection.enumValues == null) {\n const enumIntrospectionStr = inspect(enumIntrospection);\n throw new Error(\n `Introspection result missing enumValues: ${enumIntrospectionStr}.`,\n );\n }\n return new GraphQLEnumType({\n name: enumIntrospection.name,\n description: enumIntrospection.description,\n values: keyValMap(\n enumIntrospection.enumValues,\n (valueIntrospection) => valueIntrospection.name,\n (valueIntrospection) => ({\n description: valueIntrospection.description,\n deprecationReason: valueIntrospection.deprecationReason,\n }),\n ),\n });\n }\n\n function buildInputObjectDef(\n inputObjectIntrospection: IntrospectionInputObjectType,\n ): GraphQLInputObjectType {\n if (inputObjectIntrospection.inputFields == null) {\n const inputObjectIntrospectionStr = inspect(inputObjectIntrospection);\n throw new Error(\n `Introspection result missing inputFields: ${inputObjectIntrospectionStr}.`,\n );\n }\n return new GraphQLInputObjectType({\n name: inputObjectIntrospection.name,\n description: inputObjectIntrospection.description,\n fields: () => buildInputValueDefMap(inputObjectIntrospection.inputFields),\n isOneOf: inputObjectIntrospection.isOneOf,\n });\n }\n\n function buildFieldDefMap(\n typeIntrospection: IntrospectionObjectType | IntrospectionInterfaceType,\n ): GraphQLFieldConfigMap<unknown, unknown> {\n if (typeIntrospection.fields == null) {\n throw new Error(\n `Introspection result missing fields: ${inspect(typeIntrospection)}.`,\n );\n }\n\n return keyValMap(\n typeIntrospection.fields,\n (fieldIntrospection) => fieldIntrospection.name,\n buildField,\n );\n }\n\n function buildField(\n fieldIntrospection: IntrospectionField,\n ): GraphQLFieldConfig<unknown, unknown> {\n const type = getType(fieldIntrospection.type);\n if (!isOutputType(type)) {\n const typeStr = inspect(type);\n throw new Error(\n `Introspection must provide output type for fields, but received: ${typeStr}.`,\n );\n }\n\n if (fieldIntrospection.args == null) {\n const fieldIntrospectionStr = inspect(fieldIntrospection);\n throw new Error(\n `Introspection result missing field args: ${fieldIntrospectionStr}.`,\n );\n }\n\n return {\n description: fieldIntrospection.description,\n deprecationReason: fieldIntrospection.deprecationReason,\n type,\n args: buildInputValueDefMap(fieldIntrospection.args),\n };\n }\n\n function buildInputValueDefMap(\n inputValueIntrospections: ReadonlyArray<IntrospectionInputValue>,\n ) {\n return keyValMap(\n inputValueIntrospections,\n (inputValue) => inputValue.name,\n buildInputValue,\n );\n }\n\n function buildInputValue(inputValueIntrospection: IntrospectionInputValue) {\n const type = getType(inputValueIntrospection.type);\n if (!isInputType(type)) {\n const typeStr = inspect(type);\n throw new Error(\n `Introspection must provide input type for arguments, but received: ${typeStr}.`,\n );\n }\n\n return {\n description: inputValueIntrospection.description,\n type,\n default:\n inputValueIntrospection.defaultValue != null\n ? { literal: parseConstValue(inputValueIntrospection.defaultValue) }\n : undefined,\n deprecationReason: inputValueIntrospection.deprecationReason,\n };\n }\n\n function buildDirective(\n directiveIntrospection: IntrospectionDirective,\n ): GraphQLDirective {\n if (directiveIntrospection.args == null) {\n const directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\n `Introspection result missing directive args: ${directiveIntrospectionStr}.`,\n );\n }\n if (directiveIntrospection.locations == null) {\n const directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\n `Introspection result missing directive locations: ${directiveIntrospectionStr}.`,\n );\n }\n return new GraphQLDirective({\n name: directiveIntrospection.name,\n description: directiveIntrospection.description,\n isRepeatable: directiveIntrospection.isRepeatable,\n deprecationReason: directiveIntrospection.deprecationReason,\n locations: directiveIntrospection.locations.slice(),\n args: buildInputValueDefMap(directiveIntrospection.args),\n });\n }\n}\n"]}
1
+ {"version":3,"file":"buildClientSchema.js","sourceRoot":"","sources":["../../src/utilities/buildClientSchema.ts"],"names":[],"mappings":"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","sourcesContent":["/** @category Introspection */\n\nimport { devAssert } from '../jsutils/devAssert.ts';\nimport { inspect } from '../jsutils/inspect.ts';\nimport { isObjectLike } from '../jsutils/isObjectLike.ts';\nimport { keyValMap } from '../jsutils/keyValMap.ts';\n\nimport { parseConstValue } from '../language/parser.ts';\n\nimport type {\n GraphQLFieldConfig,\n GraphQLFieldConfigMap,\n GraphQLNamedType,\n GraphQLType,\n} from '../type/definition.ts';\nimport {\n assertInterfaceType,\n assertNullableType,\n assertObjectType,\n GraphQLEnumType,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLScalarType,\n GraphQLUnionType,\n isInputType,\n isOutputType,\n} from '../type/definition.ts';\nimport { GraphQLDirective } from '../type/directives.ts';\nimport { introspectionTypes, TypeKind } from '../type/introspection.ts';\nimport { specifiedScalarTypes } from '../type/scalars.ts';\nimport type { GraphQLSchemaValidationOptions } from '../type/schema.ts';\nimport { GraphQLSchema } from '../type/schema.ts';\n\nimport type {\n IntrospectionDirective,\n IntrospectionEnumType,\n IntrospectionField,\n IntrospectionInputObjectType,\n IntrospectionInputValue,\n IntrospectionInterfaceType,\n IntrospectionNamedTypeRef,\n IntrospectionObjectType,\n IntrospectionQuery,\n IntrospectionScalarType,\n IntrospectionType,\n IntrospectionTypeRef,\n IntrospectionUnionType,\n} from './getIntrospectionQuery.ts';\n\n/**\n * Build a GraphQLSchema for use by client tools.\n *\n * Given the result of a client running the introspection query, creates and\n * returns a GraphQLSchema instance which can be then used with all graphql-js\n * tools, but cannot be used to execute a query, as introspection does not\n * represent the \"resolver\", \"parse\" or \"serialize\" functions or any other\n * server-internal mechanisms.\n *\n * This function expects a complete introspection result. Don't forget to check\n * the \"errors\" field of a server response before calling this function.\n * @param introspection - Introspection result data to build from.\n * @param options - Optional configuration for this operation.\n * @returns The client schema represented by the introspection result.\n * @example\n * ```ts\n * import { buildClientSchema, introspectionFromSchema, buildSchema } from 'graphql/utilities';\n *\n * const schema = buildSchema('type Query { hello: String }');\n * const clientSchema = buildClientSchema(introspectionFromSchema(schema), {\n * assumeValid: true,\n * });\n *\n * clientSchema.getQueryType().name; // => 'Query'\n * ```\n */\nexport function buildClientSchema(\n introspection: IntrospectionQuery,\n options?: GraphQLSchemaValidationOptions,\n): GraphQLSchema {\n // Even though the `introspection` argument is typed, in most cases it's received\n // as an untyped value from the server, so we will do an additional check here.\n devAssert(\n isObjectLike(introspection) && isObjectLike(introspection.__schema),\n `Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ${inspect(\n introspection,\n )}.`,\n );\n\n // Get the schema from the introspection result.\n const schemaIntrospection = introspection.__schema;\n\n // Iterate through all types, getting the type definition for each.\n const typeMap = new Map<string, GraphQLNamedType>(\n schemaIntrospection.types.map((typeIntrospection) => [\n typeIntrospection.name,\n buildType(typeIntrospection),\n ]),\n );\n\n // Include standard types only if they are used.\n for (const stdType of [...specifiedScalarTypes, ...introspectionTypes]) {\n if (typeMap.has(stdType.name)) {\n typeMap.set(stdType.name, stdType);\n }\n }\n\n // Get the root Query, Mutation, and Subscription types.\n const queryType =\n schemaIntrospection.queryType != null\n ? getObjectType(schemaIntrospection.queryType)\n : null;\n\n const mutationType =\n schemaIntrospection.mutationType != null\n ? getObjectType(schemaIntrospection.mutationType)\n : null;\n\n const subscriptionType =\n schemaIntrospection.subscriptionType != null\n ? getObjectType(schemaIntrospection.subscriptionType)\n : null;\n\n // Get the directives supported by Introspection, assuming empty-set if\n // directives were not queried for.\n const directives =\n schemaIntrospection.directives != null\n ? schemaIntrospection.directives.map(buildDirective)\n : [];\n\n // Then produce and return a Schema with these types.\n return new GraphQLSchema({\n description: schemaIntrospection.description,\n query: queryType,\n mutation: mutationType,\n subscription: subscriptionType,\n types: [...typeMap.values()],\n directives,\n assumeValid: options?.assumeValid,\n });\n\n // Given a type reference in introspection, return the GraphQLType instance.\n // preferring cached instances before building new instances.\n function getType(typeRef: IntrospectionTypeRef): GraphQLType {\n if (typeRef.kind === TypeKind.LIST) {\n const itemRef = typeRef.ofType;\n if (itemRef == null) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n return new GraphQLList(getType(itemRef));\n }\n if (typeRef.kind === TypeKind.NON_NULL) {\n const nullableRef = typeRef.ofType;\n if (nullableRef == null) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n const nullableType = getType(nullableRef);\n return new GraphQLNonNull(assertNullableType(nullableType));\n }\n return getNamedType(typeRef);\n }\n\n function getNamedType(typeRef: IntrospectionNamedTypeRef): GraphQLNamedType {\n const typeName = typeRef.name;\n if (!typeName) {\n throw new Error(`Unknown type reference: ${inspect(typeRef)}.`);\n }\n\n const type = typeMap.get(typeName);\n if (type == null) {\n throw new Error(\n `Invalid or incomplete schema, unknown type: ${typeName}. Ensure that a full introspection query is used in order to build a client schema.`,\n );\n }\n\n return type;\n }\n\n function getObjectType(\n typeRef: IntrospectionNamedTypeRef<IntrospectionObjectType>,\n ): GraphQLObjectType {\n return assertObjectType(getNamedType(typeRef));\n }\n\n function getInterfaceType(\n typeRef: IntrospectionNamedTypeRef<IntrospectionInterfaceType>,\n ): GraphQLInterfaceType {\n return assertInterfaceType(getNamedType(typeRef));\n }\n\n // Given a type's introspection result, construct the correct\n // GraphQLType instance.\n function buildType(type: IntrospectionType): GraphQLNamedType {\n switch (type.kind) {\n case TypeKind.SCALAR:\n return buildScalarDef(type);\n case TypeKind.OBJECT:\n return buildObjectDef(type);\n case TypeKind.INTERFACE:\n return buildInterfaceDef(type);\n case TypeKind.UNION:\n return buildUnionDef(type);\n case TypeKind.ENUM:\n return buildEnumDef(type);\n case TypeKind.INPUT_OBJECT:\n return buildInputObjectDef(type);\n default:\n // TypeScript considers this unreachable, but invalid runtime input can reach it.\n // Note: we include a default case rather than throwing after the switch to avoid\n // the use of a @ts-expect-error statement.\n throw new Error(\n `Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${inspect(\n type,\n )}.`,\n );\n }\n }\n\n function buildScalarDef(\n scalarIntrospection: IntrospectionScalarType,\n ): GraphQLScalarType {\n return new GraphQLScalarType({\n name: scalarIntrospection.name,\n description: scalarIntrospection.description,\n specifiedByURL: scalarIntrospection.specifiedByURL,\n });\n }\n\n function buildImplementationsList(\n implementingIntrospection:\n | IntrospectionObjectType\n | IntrospectionInterfaceType,\n ): Array<GraphQLInterfaceType> {\n // TODO: Temporary workaround until GraphQL ecosystem will fully support\n // 'interfaces' on interface types.\n if (\n implementingIntrospection.interfaces === null &&\n implementingIntrospection.kind === TypeKind.INTERFACE\n ) {\n return [];\n }\n\n if (implementingIntrospection.interfaces == null) {\n const implementingIntrospectionStr = inspect(implementingIntrospection);\n throw new Error(\n `Introspection result missing interfaces: ${implementingIntrospectionStr}.`,\n );\n }\n\n return implementingIntrospection.interfaces.map(getInterfaceType);\n }\n\n function buildObjectDef(\n objectIntrospection: IntrospectionObjectType,\n ): GraphQLObjectType {\n return new GraphQLObjectType({\n name: objectIntrospection.name,\n description: objectIntrospection.description,\n interfaces: () => buildImplementationsList(objectIntrospection),\n fields: () => buildFieldDefMap(objectIntrospection),\n });\n }\n\n function buildInterfaceDef(\n interfaceIntrospection: IntrospectionInterfaceType,\n ): GraphQLInterfaceType {\n return new GraphQLInterfaceType({\n name: interfaceIntrospection.name,\n description: interfaceIntrospection.description,\n interfaces: () => buildImplementationsList(interfaceIntrospection),\n fields: () => buildFieldDefMap(interfaceIntrospection),\n });\n }\n\n function buildUnionDef(\n unionIntrospection: IntrospectionUnionType,\n ): GraphQLUnionType {\n if (unionIntrospection.possibleTypes == null) {\n const unionIntrospectionStr = inspect(unionIntrospection);\n throw new Error(\n `Introspection result missing possibleTypes: ${unionIntrospectionStr}.`,\n );\n }\n return new GraphQLUnionType({\n name: unionIntrospection.name,\n description: unionIntrospection.description,\n types: () => unionIntrospection.possibleTypes.map(getObjectType),\n });\n }\n\n function buildEnumDef(\n enumIntrospection: IntrospectionEnumType,\n ): GraphQLEnumType {\n if (enumIntrospection.enumValues == null) {\n const enumIntrospectionStr = inspect(enumIntrospection);\n throw new Error(\n `Introspection result missing enumValues: ${enumIntrospectionStr}.`,\n );\n }\n return new GraphQLEnumType({\n name: enumIntrospection.name,\n description: enumIntrospection.description,\n values: keyValMap(\n enumIntrospection.enumValues,\n (valueIntrospection) => valueIntrospection.name,\n (valueIntrospection) => ({\n description: valueIntrospection.description,\n deprecationReason: valueIntrospection.deprecationReason,\n }),\n ),\n });\n }\n\n function buildInputObjectDef(\n inputObjectIntrospection: IntrospectionInputObjectType,\n ): GraphQLInputObjectType {\n if (inputObjectIntrospection.inputFields == null) {\n const inputObjectIntrospectionStr = inspect(inputObjectIntrospection);\n throw new Error(\n `Introspection result missing inputFields: ${inputObjectIntrospectionStr}.`,\n );\n }\n return new GraphQLInputObjectType({\n name: inputObjectIntrospection.name,\n description: inputObjectIntrospection.description,\n fields: () => buildInputValueDefMap(inputObjectIntrospection.inputFields),\n isOneOf: inputObjectIntrospection.isOneOf,\n });\n }\n\n function buildFieldDefMap(\n typeIntrospection: IntrospectionObjectType | IntrospectionInterfaceType,\n ): GraphQLFieldConfigMap<unknown, unknown> {\n if (typeIntrospection.fields == null) {\n throw new Error(\n `Introspection result missing fields: ${inspect(typeIntrospection)}.`,\n );\n }\n\n return keyValMap(\n typeIntrospection.fields,\n (fieldIntrospection) => fieldIntrospection.name,\n buildField,\n );\n }\n\n function buildField(\n fieldIntrospection: IntrospectionField,\n ): GraphQLFieldConfig<unknown, unknown> {\n const type = getType(fieldIntrospection.type);\n if (!isOutputType(type)) {\n const typeStr = inspect(type);\n throw new Error(\n `Introspection must provide output type for fields, but received: ${typeStr}.`,\n );\n }\n\n if (fieldIntrospection.args == null) {\n const fieldIntrospectionStr = inspect(fieldIntrospection);\n throw new Error(\n `Introspection result missing field args: ${fieldIntrospectionStr}.`,\n );\n }\n\n return {\n description: fieldIntrospection.description,\n deprecationReason: fieldIntrospection.deprecationReason,\n type,\n args: buildInputValueDefMap(fieldIntrospection.args),\n };\n }\n\n function buildInputValueDefMap(\n inputValueIntrospections: ReadonlyArray<IntrospectionInputValue>,\n ) {\n return keyValMap(\n inputValueIntrospections,\n (inputValue) => inputValue.name,\n buildInputValue,\n );\n }\n\n function buildInputValue(inputValueIntrospection: IntrospectionInputValue) {\n const type = getType(inputValueIntrospection.type);\n if (!isInputType(type)) {\n const typeStr = inspect(type);\n throw new Error(\n `Introspection must provide input type for arguments, but received: ${typeStr}.`,\n );\n }\n\n return {\n description: inputValueIntrospection.description,\n type,\n default:\n inputValueIntrospection.defaultValue != null\n ? { literal: parseConstValue(inputValueIntrospection.defaultValue) }\n : undefined,\n deprecationReason: inputValueIntrospection.deprecationReason,\n };\n }\n\n function buildDirective(\n directiveIntrospection: IntrospectionDirective,\n ): GraphQLDirective {\n if (directiveIntrospection.args == null) {\n const directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\n `Introspection result missing directive args: ${directiveIntrospectionStr}.`,\n );\n }\n if (directiveIntrospection.locations == null) {\n const directiveIntrospectionStr = inspect(directiveIntrospection);\n throw new Error(\n `Introspection result missing directive locations: ${directiveIntrospectionStr}.`,\n );\n }\n return new GraphQLDirective({\n name: directiveIntrospection.name,\n description: directiveIntrospection.description,\n isRepeatable: directiveIntrospection.isRepeatable,\n deprecationReason: directiveIntrospection.deprecationReason,\n locations: directiveIntrospection.locations.slice(),\n args: buildInputValueDefMap(directiveIntrospection.args),\n });\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ /** @category Values */
1
2
  import type { Maybe } from "../jsutils/Maybe.mjs";
2
3
  import type { ValueNode } from "../language/ast.mjs";
3
4
  import type { GraphQLDefaultInput, GraphQLInputType } from "../type/definition.mjs";
@@ -7,7 +8,34 @@ import type { VariableValues } from "../execution/values.mjs";
7
8
  * Coerces a JavaScript value given a GraphQL Input Type.
8
9
  *
9
10
  * Returns `undefined` when the value could not be validly coerced according to
10
- * the provided type.
11
+ * the provided type. Use `validateInputValue` when coercion diagnostics
12
+ * are needed.
13
+ * @param inputValue - JavaScript value to coerce.
14
+ * @param type - GraphQL input type to coerce the value against.
15
+ * @returns Coerced value, or undefined if coercion fails.
16
+ * @example
17
+ * ```ts
18
+ * // Coerce runtime input values, returning undefined when coercion fails.
19
+ * import {
20
+ * GraphQLInputObjectType,
21
+ * GraphQLInt,
22
+ * GraphQLList,
23
+ * GraphQLNonNull,
24
+ * GraphQLString,
25
+ * } from 'graphql/type';
26
+ * import { coerceInputValue } from 'graphql/utilities';
27
+ *
28
+ * const ReviewInput = new GraphQLInputObjectType({
29
+ * name: 'ReviewInput',
30
+ * fields: {
31
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
32
+ * tags: { type: new GraphQLList(GraphQLString) },
33
+ * },
34
+ * });
35
+ *
36
+ * coerceInputValue({ stars: '5', tags: ['featured'] }, ReviewInput); // => { stars: 5, tags: ['featured'] }
37
+ * coerceInputValue({ stars: 'bad' }, ReviewInput); // => undefined
38
+ * ```
11
39
  */
12
40
  export declare function coerceInputValue(inputValue: unknown, type: GraphQLInputType): unknown;
13
41
  /**
@@ -15,6 +43,60 @@ export declare function coerceInputValue(inputValue: unknown, type: GraphQLInput
15
43
  *
16
44
  * Returns `undefined` when the value could not be validly coerced according to
17
45
  * the provided type.
46
+ * @param valueNode - GraphQL value AST node to coerce.
47
+ * @param type - GraphQL input type to coerce the literal against.
48
+ * @param variableValues - Operation variable values returned by getVariableValues.
49
+ * @param fragmentVariableValues - Fragment variable values for the current fragment scope.
50
+ * @returns Coerced value, or undefined if coercion fails.
51
+ * @example
52
+ * ```ts
53
+ * // Coerce literal input values without variables.
54
+ * import { parseValue } from 'graphql/language';
55
+ * import {
56
+ * GraphQLInputObjectType,
57
+ * GraphQLInt,
58
+ * GraphQLNonNull,
59
+ * GraphQLString,
60
+ * } from 'graphql/type';
61
+ * import { coerceInputLiteral } from 'graphql/utilities';
62
+ *
63
+ * const ReviewInput = new GraphQLInputObjectType({
64
+ * name: 'ReviewInput',
65
+ * fields: {
66
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
67
+ * comment: { type: GraphQLString },
68
+ * },
69
+ * });
70
+ *
71
+ * coerceInputLiteral(parseValue('{ stars: 5, comment: "Loved it" }'), ReviewInput); // => { stars: 5, comment: 'Loved it' }
72
+ * coerceInputLiteral(parseValue('{ comment: "Missing" }'), ReviewInput); // => undefined
73
+ * ```
74
+ * @example
75
+ * ```ts
76
+ * // This variant resolves variable references using VariableValues from getVariableValues().
77
+ * import assert from 'node:assert';
78
+ * import { parse, parseValue } from 'graphql/language';
79
+ * import { GraphQLInt } from 'graphql/type';
80
+ * import { getVariableValues } from 'graphql/execution';
81
+ * import { buildSchema, coerceInputLiteral } from 'graphql/utilities';
82
+ *
83
+ * const schema = buildSchema(`
84
+ * type Query {
85
+ * review(stars: Int): String
86
+ * }
87
+ * `);
88
+ * const document = parse('query ($stars: Int = 5) { review(stars: $stars) }');
89
+ * const operation = document.definitions[0];
90
+ * const result = getVariableValues(
91
+ * schema,
92
+ * operation.variableDefinitions,
93
+ * { stars: '4' },
94
+ * );
95
+ *
96
+ * assert('variableValues' in result);
97
+ *
98
+ * coerceInputLiteral(parseValue('$stars'), GraphQLInt, result.variableValues); // => 4
99
+ * ```
18
100
  */
19
101
  export declare function coerceInputLiteral(valueNode: ValueNode, type: GraphQLInputType, variableValues?: Maybe<VariableValues>, fragmentVariableValues?: Maybe<FragmentVariableValues>): unknown;
20
102
  interface InputValue {
@@ -1,3 +1,4 @@
1
+ /** @category Values */
1
2
  import type { Maybe } from "../jsutils/Maybe.js";
2
3
  import type { ValueNode } from "../language/ast.js";
3
4
  import type { GraphQLDefaultInput, GraphQLInputType } from "../type/definition.js";
@@ -7,7 +8,34 @@ import type { VariableValues } from "../execution/values.js";
7
8
  * Coerces a JavaScript value given a GraphQL Input Type.
8
9
  *
9
10
  * Returns `undefined` when the value could not be validly coerced according to
10
- * the provided type.
11
+ * the provided type. Use `validateInputValue` when coercion diagnostics
12
+ * are needed.
13
+ * @param inputValue - JavaScript value to coerce.
14
+ * @param type - GraphQL input type to coerce the value against.
15
+ * @returns Coerced value, or undefined if coercion fails.
16
+ * @example
17
+ * ```ts
18
+ * // Coerce runtime input values, returning undefined when coercion fails.
19
+ * import {
20
+ * GraphQLInputObjectType,
21
+ * GraphQLInt,
22
+ * GraphQLList,
23
+ * GraphQLNonNull,
24
+ * GraphQLString,
25
+ * } from 'graphql/type';
26
+ * import { coerceInputValue } from 'graphql/utilities';
27
+ *
28
+ * const ReviewInput = new GraphQLInputObjectType({
29
+ * name: 'ReviewInput',
30
+ * fields: {
31
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
32
+ * tags: { type: new GraphQLList(GraphQLString) },
33
+ * },
34
+ * });
35
+ *
36
+ * coerceInputValue({ stars: '5', tags: ['featured'] }, ReviewInput); // => { stars: 5, tags: ['featured'] }
37
+ * coerceInputValue({ stars: 'bad' }, ReviewInput); // => undefined
38
+ * ```
11
39
  */
12
40
  export declare function coerceInputValue(inputValue: unknown, type: GraphQLInputType): unknown;
13
41
  /**
@@ -15,6 +43,60 @@ export declare function coerceInputValue(inputValue: unknown, type: GraphQLInput
15
43
  *
16
44
  * Returns `undefined` when the value could not be validly coerced according to
17
45
  * the provided type.
46
+ * @param valueNode - GraphQL value AST node to coerce.
47
+ * @param type - GraphQL input type to coerce the literal against.
48
+ * @param variableValues - Operation variable values returned by getVariableValues.
49
+ * @param fragmentVariableValues - Fragment variable values for the current fragment scope.
50
+ * @returns Coerced value, or undefined if coercion fails.
51
+ * @example
52
+ * ```ts
53
+ * // Coerce literal input values without variables.
54
+ * import { parseValue } from 'graphql/language';
55
+ * import {
56
+ * GraphQLInputObjectType,
57
+ * GraphQLInt,
58
+ * GraphQLNonNull,
59
+ * GraphQLString,
60
+ * } from 'graphql/type';
61
+ * import { coerceInputLiteral } from 'graphql/utilities';
62
+ *
63
+ * const ReviewInput = new GraphQLInputObjectType({
64
+ * name: 'ReviewInput',
65
+ * fields: {
66
+ * stars: { type: new GraphQLNonNull(GraphQLInt) },
67
+ * comment: { type: GraphQLString },
68
+ * },
69
+ * });
70
+ *
71
+ * coerceInputLiteral(parseValue('{ stars: 5, comment: "Loved it" }'), ReviewInput); // => { stars: 5, comment: 'Loved it' }
72
+ * coerceInputLiteral(parseValue('{ comment: "Missing" }'), ReviewInput); // => undefined
73
+ * ```
74
+ * @example
75
+ * ```ts
76
+ * // This variant resolves variable references using VariableValues from getVariableValues().
77
+ * import assert from 'node:assert';
78
+ * import { parse, parseValue } from 'graphql/language';
79
+ * import { GraphQLInt } from 'graphql/type';
80
+ * import { getVariableValues } from 'graphql/execution';
81
+ * import { buildSchema, coerceInputLiteral } from 'graphql/utilities';
82
+ *
83
+ * const schema = buildSchema(`
84
+ * type Query {
85
+ * review(stars: Int): String
86
+ * }
87
+ * `);
88
+ * const document = parse('query ($stars: Int = 5) { review(stars: $stars) }');
89
+ * const operation = document.definitions[0];
90
+ * const result = getVariableValues(
91
+ * schema,
92
+ * operation.variableDefinitions,
93
+ * { stars: '4' },
94
+ * );
95
+ *
96
+ * assert('variableValues' in result);
97
+ *
98
+ * coerceInputLiteral(parseValue('$stars'), GraphQLInt, result.variableValues); // => 4
99
+ * ```
18
100
  */
19
101
  export declare function coerceInputLiteral(valueNode: ValueNode, type: GraphQLInputType, variableValues?: Maybe<VariableValues>, fragmentVariableValues?: Maybe<FragmentVariableValues>): unknown;
20
102
  interface InputValue {