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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1193) hide show
  1. package/__dev__/devMode.d.ts +1 -1
  2. package/__dev__/error/GraphQLError.d.ts +1 -1
  3. package/__dev__/error/ensureGraphQLError.d.ts +1 -1
  4. package/__dev__/error/index.d.ts +1 -1
  5. package/__dev__/error/locatedError.d.ts +1 -1
  6. package/__dev__/error/syntaxError.d.ts +1 -1
  7. package/__dev__/execution/AbortedGraphQLExecutionError.d.ts +1 -1
  8. package/__dev__/execution/AsyncWorkTracker.d.ts +1 -1
  9. package/__dev__/execution/ExecutionArgs.d.mts +1 -0
  10. package/__dev__/execution/ExecutionArgs.d.ts +1 -0
  11. package/__dev__/execution/ExecutionArgs.js +3 -0
  12. package/__dev__/execution/ExecutionArgs.mjs +3 -0
  13. package/__dev__/execution/Executor.d.ts +1 -1
  14. package/__dev__/execution/ExecutorThrowingOnIncremental.d.ts +1 -1
  15. package/__dev__/execution/buildResolveInfo.d.mts +1 -0
  16. package/__dev__/execution/buildResolveInfo.d.ts +1 -0
  17. package/__dev__/execution/buildResolveInfo.js +3 -0
  18. package/__dev__/execution/buildResolveInfo.mjs +3 -0
  19. package/__dev__/execution/cancellablePromise.d.ts +1 -1
  20. package/__dev__/execution/collectFields.d.ts +1 -1
  21. package/__dev__/execution/collectIteratorPromises.d.ts +1 -1
  22. package/__dev__/execution/createSharedExecutionContext.d.ts +1 -1
  23. package/__dev__/execution/execute.d.ts +1 -1
  24. package/__dev__/execution/getStreamUsage.d.ts +1 -1
  25. package/__dev__/execution/getVariableSignature.d.ts +1 -1
  26. package/__dev__/execution/hooks.d.ts +1 -1
  27. package/__dev__/execution/incremental/Computation.d.ts +1 -1
  28. package/__dev__/execution/incremental/IncrementalExecutor.d.ts +1 -1
  29. package/__dev__/execution/incremental/IncrementalPublisher.d.ts +1 -1
  30. package/__dev__/execution/incremental/Queue.d.ts +1 -1
  31. package/__dev__/execution/incremental/WorkQueue.d.ts +1 -1
  32. package/__dev__/execution/incremental/buildExecutionPlan.d.ts +1 -1
  33. package/__dev__/execution/index.d.ts +1 -1
  34. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +1 -0
  35. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +1 -0
  36. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.js +3 -0
  37. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +3 -0
  38. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +1 -0
  39. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +1 -0
  40. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.js +3 -0
  41. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +3 -0
  42. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +1 -0
  43. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +1 -0
  44. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.js +3 -0
  45. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.mjs +3 -0
  46. package/__dev__/execution/mapAsyncIterable.d.ts +1 -1
  47. package/__dev__/execution/returnIteratorCatchingErrors.d.ts +1 -1
  48. package/__dev__/execution/values.d.ts +1 -1
  49. package/__dev__/execution/withConcurrentAbruptClose.d.ts +1 -1
  50. package/__dev__/graphql.d.ts +1 -1
  51. package/__dev__/harness.d.ts +1 -1
  52. package/__dev__/index.d.ts +1 -1
  53. package/__dev__/jsutils/AccumulatorMap.d.ts +1 -1
  54. package/__dev__/jsutils/Maybe.d.ts +1 -1
  55. package/__dev__/jsutils/ObjMap.d.ts +1 -1
  56. package/__dev__/jsutils/Path.d.ts +1 -1
  57. package/__dev__/jsutils/PromiseOrValue.d.ts +1 -1
  58. package/__dev__/jsutils/capitalize.d.ts +1 -1
  59. package/__dev__/jsutils/devAssert.d.ts +1 -1
  60. package/__dev__/jsutils/didYouMean.d.ts +1 -1
  61. package/__dev__/jsutils/formatList.d.ts +1 -1
  62. package/__dev__/jsutils/getBySet.d.ts +1 -1
  63. package/__dev__/jsutils/groupBy.d.ts +1 -1
  64. package/__dev__/jsutils/identityFunc.d.ts +1 -1
  65. package/__dev__/jsutils/inspect.d.ts +1 -1
  66. package/__dev__/jsutils/instanceOf.d.ts +1 -1
  67. package/__dev__/jsutils/invariant.d.ts +1 -1
  68. package/__dev__/jsutils/isAsyncIterable.d.ts +1 -1
  69. package/__dev__/jsutils/isIterableObject.d.ts +1 -1
  70. package/__dev__/jsutils/isObjectLike.d.ts +1 -1
  71. package/__dev__/jsutils/isPromise.d.ts +1 -1
  72. package/__dev__/jsutils/isSameSet.d.ts +1 -1
  73. package/__dev__/jsutils/keyMap.d.ts +1 -1
  74. package/__dev__/jsutils/keyValMap.d.ts +1 -1
  75. package/__dev__/jsutils/mapValue.d.ts +1 -1
  76. package/__dev__/jsutils/memoize1.d.ts +1 -1
  77. package/__dev__/jsutils/memoize2.d.ts +1 -1
  78. package/__dev__/jsutils/memoize3.d.ts +1 -1
  79. package/__dev__/jsutils/naturalCompare.d.ts +1 -1
  80. package/__dev__/jsutils/printPathArray.d.ts +1 -1
  81. package/__dev__/jsutils/promiseForObject.d.ts +1 -1
  82. package/__dev__/jsutils/promiseReduce.d.ts +1 -1
  83. package/__dev__/jsutils/promiseWithResolvers.d.ts +1 -1
  84. package/__dev__/jsutils/suggestionList.d.ts +1 -1
  85. package/__dev__/jsutils/toError.d.ts +1 -1
  86. package/__dev__/jsutils/toObjMap.d.ts +1 -1
  87. package/__dev__/language/KindTypeMap.d.ts +1 -1
  88. package/__dev__/language/ast.d.ts +1 -1
  89. package/__dev__/language/blockString.d.ts +1 -1
  90. package/__dev__/language/characterClasses.d.ts +1 -1
  91. package/__dev__/language/directiveLocation.d.ts +1 -1
  92. package/__dev__/language/index.d.ts +1 -1
  93. package/__dev__/language/kinds.d.ts +1 -1
  94. package/__dev__/language/kinds_.d.ts +1 -1
  95. package/__dev__/language/lexer.d.ts +1 -1
  96. package/__dev__/language/location.d.ts +1 -1
  97. package/__dev__/language/parser.d.ts +1 -1
  98. package/__dev__/language/predicates.d.ts +1 -1
  99. package/__dev__/language/printLocation.d.ts +1 -1
  100. package/__dev__/language/printString.d.ts +1 -1
  101. package/__dev__/language/printer.d.ts +1 -1
  102. package/__dev__/language/schemaCoordinateLexer.d.ts +1 -1
  103. package/__dev__/language/source.d.ts +1 -1
  104. package/__dev__/language/tokenKind.d.ts +1 -1
  105. package/__dev__/language/visitor.d.ts +1 -1
  106. package/__dev__/type/assertName.d.ts +1 -1
  107. package/__dev__/type/definition.d.ts +1 -1
  108. package/__dev__/type/directives.d.ts +1 -1
  109. package/__dev__/type/index.d.ts +1 -1
  110. package/__dev__/type/introspection.d.ts +1 -1
  111. package/__dev__/type/scalars.d.ts +1 -1
  112. package/__dev__/type/schema.d.ts +1 -1
  113. package/__dev__/type/validate.d.ts +1 -1
  114. package/__dev__/utilities/TypeInfo.d.ts +1 -1
  115. package/__dev__/utilities/astFromValue.d.ts +1 -1
  116. package/__dev__/utilities/buildASTSchema.d.ts +1 -1
  117. package/__dev__/utilities/buildClientSchema.d.ts +1 -1
  118. package/__dev__/utilities/coerceInputValue.d.ts +1 -1
  119. package/__dev__/utilities/concatAST.d.ts +1 -1
  120. package/__dev__/utilities/extendSchema.d.ts +1 -1
  121. package/__dev__/utilities/findSchemaChanges.d.ts +1 -1
  122. package/__dev__/utilities/getDefaultValueAST.d.ts +1 -1
  123. package/__dev__/utilities/getIntrospectionQuery.d.ts +1 -1
  124. package/__dev__/utilities/getOperationAST.d.ts +1 -1
  125. package/__dev__/utilities/index.d.ts +1 -1
  126. package/__dev__/utilities/introspectionFromSchema.d.ts +1 -1
  127. package/__dev__/utilities/lexicographicSortSchema.d.ts +1 -1
  128. package/__dev__/utilities/mapSchemaConfig.d.ts +1 -1
  129. package/__dev__/utilities/printSchema.d.ts +1 -1
  130. package/__dev__/utilities/replaceVariables.d.ts +1 -1
  131. package/__dev__/utilities/resolveSchemaCoordinate.d.ts +1 -1
  132. package/__dev__/utilities/separateOperations.d.ts +1 -1
  133. package/__dev__/utilities/sortValueNode.d.ts +1 -1
  134. package/__dev__/utilities/stripIgnoredCharacters.d.ts +1 -1
  135. package/__dev__/utilities/typeComparators.d.ts +1 -1
  136. package/__dev__/utilities/typeFromAST.d.ts +1 -1
  137. package/__dev__/utilities/typedQueryDocumentNode.d.ts +1 -1
  138. package/__dev__/utilities/validateInputValue.d.ts +1 -1
  139. package/__dev__/utilities/valueFromAST.d.ts +1 -1
  140. package/__dev__/utilities/valueFromASTUntyped.d.ts +1 -1
  141. package/__dev__/utilities/valueToLiteral.d.ts +1 -1
  142. package/__dev__/validation/ValidationContext.d.ts +1 -1
  143. package/__dev__/validation/index.d.ts +1 -1
  144. package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.d.ts +1 -1
  145. package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +1 -1
  146. package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +1 -1
  147. package/__dev__/validation/rules/ExecutableDefinitionsRule.d.ts +1 -1
  148. package/__dev__/validation/rules/FieldsOnCorrectTypeRule.d.ts +1 -1
  149. package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.d.ts +1 -1
  150. package/__dev__/validation/rules/KnownArgumentNamesRule.d.ts +1 -1
  151. package/__dev__/validation/rules/KnownDirectivesRule.d.ts +1 -1
  152. package/__dev__/validation/rules/KnownFragmentNamesRule.d.ts +1 -1
  153. package/__dev__/validation/rules/KnownOperationTypesRule.d.ts +1 -1
  154. package/__dev__/validation/rules/KnownTypeNamesRule.d.ts +1 -1
  155. package/__dev__/validation/rules/LoneAnonymousOperationRule.d.ts +1 -1
  156. package/__dev__/validation/rules/LoneSchemaDefinitionRule.d.ts +1 -1
  157. package/__dev__/validation/rules/MaxIntrospectionDepthRule.d.ts +1 -1
  158. package/__dev__/validation/rules/NoFragmentCyclesRule.d.ts +1 -1
  159. package/__dev__/validation/rules/NoUndefinedVariablesRule.d.ts +1 -1
  160. package/__dev__/validation/rules/NoUnusedFragmentsRule.d.ts +1 -1
  161. package/__dev__/validation/rules/NoUnusedVariablesRule.d.ts +1 -1
  162. package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +1 -1
  163. package/__dev__/validation/rules/PossibleFragmentSpreadsRule.d.ts +1 -1
  164. package/__dev__/validation/rules/PossibleTypeExtensionsRule.d.ts +1 -1
  165. package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.d.ts +1 -1
  166. package/__dev__/validation/rules/ScalarLeafsRule.d.ts +1 -1
  167. package/__dev__/validation/rules/SingleFieldSubscriptionsRule.d.ts +1 -1
  168. package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.d.ts +1 -1
  169. package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +1 -1
  170. package/__dev__/validation/rules/UniqueArgumentNamesRule.d.ts +1 -1
  171. package/__dev__/validation/rules/UniqueDirectiveNamesRule.d.ts +1 -1
  172. package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.d.ts +1 -1
  173. package/__dev__/validation/rules/UniqueEnumValueNamesRule.d.ts +1 -1
  174. package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +1 -1
  175. package/__dev__/validation/rules/UniqueFragmentNamesRule.d.ts +1 -1
  176. package/__dev__/validation/rules/UniqueInputFieldNamesRule.d.ts +1 -1
  177. package/__dev__/validation/rules/UniqueOperationNamesRule.d.ts +1 -1
  178. package/__dev__/validation/rules/UniqueOperationTypesRule.d.ts +1 -1
  179. package/__dev__/validation/rules/UniqueTypeNamesRule.d.ts +1 -1
  180. package/__dev__/validation/rules/UniqueVariableNamesRule.d.ts +1 -1
  181. package/__dev__/validation/rules/ValuesOfCorrectTypeRule.d.ts +1 -1
  182. package/__dev__/validation/rules/VariablesAreInputTypesRule.d.ts +1 -1
  183. package/__dev__/validation/rules/VariablesInAllowedPositionRule.d.ts +1 -1
  184. package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.d.ts +1 -1
  185. package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +1 -1
  186. package/__dev__/validation/specifiedRules.d.ts +1 -1
  187. package/__dev__/validation/validate.d.ts +1 -1
  188. package/__dev__/version.d.ts +1 -1
  189. package/devMode.d.mts +29 -0
  190. package/devMode.d.ts +29 -0
  191. package/devMode.js +2 -2
  192. package/devMode.js.map +1 -1
  193. package/devMode.mjs.map +1 -1
  194. package/error/GraphQLError.d.mts +98 -14
  195. package/error/GraphQLError.d.ts +98 -14
  196. package/error/GraphQLError.js +18 -28
  197. package/error/GraphQLError.js.map +1 -1
  198. package/error/GraphQLError.mjs +11 -21
  199. package/error/GraphQLError.mjs.map +1 -1
  200. package/error/ensureGraphQLError.d.mts +3 -1
  201. package/error/ensureGraphQLError.d.ts +3 -1
  202. package/error/ensureGraphQLError.js +5 -8
  203. package/error/ensureGraphQLError.js.map +1 -1
  204. package/error/ensureGraphQLError.mjs +0 -3
  205. package/error/ensureGraphQLError.mjs.map +1 -1
  206. package/error/index.d.mts +10 -4
  207. package/error/index.d.ts +10 -4
  208. package/error/index.js +6 -6
  209. package/error/index.js.map +1 -1
  210. package/error/index.mjs.map +1 -1
  211. package/error/locatedError.d.mts +23 -3
  212. package/error/locatedError.d.ts +23 -3
  213. package/error/locatedError.js +4 -10
  214. package/error/locatedError.js.map +1 -1
  215. package/error/locatedError.mjs +0 -6
  216. package/error/locatedError.mjs.map +1 -1
  217. package/error/syntaxError.d.mts +17 -2
  218. package/error/syntaxError.d.ts +17 -2
  219. package/error/syntaxError.js +2 -6
  220. package/error/syntaxError.js.map +1 -1
  221. package/error/syntaxError.mjs +0 -4
  222. package/error/syntaxError.mjs.map +1 -1
  223. package/execution/AbortedGraphQLExecutionError.d.mts +28 -1
  224. package/execution/AbortedGraphQLExecutionError.d.ts +28 -1
  225. package/execution/AbortedGraphQLExecutionError.js.map +1 -1
  226. package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
  227. package/execution/AsyncWorkTracker.d.mts +1 -1
  228. package/execution/AsyncWorkTracker.d.ts +1 -1
  229. package/execution/AsyncWorkTracker.js +3 -7
  230. package/execution/AsyncWorkTracker.js.map +1 -1
  231. package/execution/AsyncWorkTracker.mjs +1 -5
  232. package/execution/AsyncWorkTracker.mjs.map +1 -1
  233. package/execution/ExecutionArgs.d.mts +101 -0
  234. package/execution/ExecutionArgs.d.ts +101 -0
  235. package/execution/ExecutionArgs.js +3 -0
  236. package/execution/ExecutionArgs.js.map +1 -0
  237. package/execution/ExecutionArgs.mjs +2 -0
  238. package/execution/ExecutionArgs.mjs.map +1 -0
  239. package/execution/Executor.d.mts +55 -52
  240. package/execution/Executor.d.ts +55 -52
  241. package/execution/Executor.js +84 -206
  242. package/execution/Executor.js.map +1 -1
  243. package/execution/Executor.mjs +3 -125
  244. package/execution/Executor.mjs.map +1 -1
  245. package/execution/ExecutorThrowingOnIncremental.d.mts +6 -6
  246. package/execution/ExecutorThrowingOnIncremental.d.ts +6 -6
  247. package/execution/ExecutorThrowingOnIncremental.js +11 -13
  248. package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
  249. package/execution/ExecutorThrowingOnIncremental.mjs +0 -2
  250. package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
  251. package/execution/buildResolveInfo.d.mts +16 -0
  252. package/execution/buildResolveInfo.d.ts +16 -0
  253. package/execution/buildResolveInfo.js +21 -0
  254. package/execution/buildResolveInfo.js.map +1 -0
  255. package/execution/buildResolveInfo.mjs +18 -0
  256. package/execution/buildResolveInfo.mjs.map +1 -0
  257. package/execution/cancellablePromise.d.mts +3 -0
  258. package/execution/cancellablePromise.d.ts +3 -0
  259. package/execution/cancellablePromise.js +2 -2
  260. package/execution/cancellablePromise.js.map +1 -1
  261. package/execution/cancellablePromise.mjs.map +1 -1
  262. package/execution/collectFields.d.mts +15 -9
  263. package/execution/collectFields.d.ts +15 -9
  264. package/execution/collectFields.js +19 -60
  265. package/execution/collectFields.js.map +1 -1
  266. package/execution/collectFields.mjs +0 -41
  267. package/execution/collectFields.mjs.map +1 -1
  268. package/execution/collectIteratorPromises.d.mts +2 -0
  269. package/execution/collectIteratorPromises.d.ts +2 -0
  270. package/execution/collectIteratorPromises.js +2 -7
  271. package/execution/collectIteratorPromises.js.map +1 -1
  272. package/execution/collectIteratorPromises.mjs +0 -5
  273. package/execution/collectIteratorPromises.mjs.map +1 -1
  274. package/execution/createSharedExecutionContext.d.mts +3 -2
  275. package/execution/createSharedExecutionContext.d.ts +3 -2
  276. package/execution/createSharedExecutionContext.js +2 -2
  277. package/execution/createSharedExecutionContext.js.map +1 -1
  278. package/execution/createSharedExecutionContext.mjs.map +1 -1
  279. package/execution/execute.d.mts +412 -47
  280. package/execution/execute.d.ts +412 -47
  281. package/execution/execute.js +73 -254
  282. package/execution/execute.js.map +1 -1
  283. package/execution/execute.mjs +12 -193
  284. package/execution/execute.mjs.map +1 -1
  285. package/execution/getStreamUsage.d.mts +5 -2
  286. package/execution/getStreamUsage.d.ts +5 -2
  287. package/execution/getStreamUsage.js +9 -16
  288. package/execution/getStreamUsage.js.map +1 -1
  289. package/execution/getStreamUsage.mjs +0 -7
  290. package/execution/getStreamUsage.mjs.map +1 -1
  291. package/execution/getVariableSignature.d.mts +7 -4
  292. package/execution/getVariableSignature.d.ts +7 -4
  293. package/execution/getVariableSignature.js +8 -10
  294. package/execution/getVariableSignature.js.map +1 -1
  295. package/execution/getVariableSignature.mjs +0 -2
  296. package/execution/getVariableSignature.mjs.map +1 -1
  297. package/execution/hooks.d.mts +4 -8
  298. package/execution/hooks.d.ts +4 -8
  299. package/execution/hooks.js +0 -1
  300. package/execution/hooks.js.map +1 -1
  301. package/execution/hooks.mjs +0 -1
  302. package/execution/hooks.mjs.map +1 -1
  303. package/execution/incremental/Computation.d.mts +2 -2
  304. package/execution/incremental/Computation.d.ts +2 -2
  305. package/execution/incremental/Computation.js +2 -3
  306. package/execution/incremental/Computation.js.map +1 -1
  307. package/execution/incremental/Computation.mjs +0 -1
  308. package/execution/incremental/Computation.mjs.map +1 -1
  309. package/execution/incremental/IncrementalExecutor.d.mts +137 -22
  310. package/execution/incremental/IncrementalExecutor.d.ts +137 -22
  311. package/execution/incremental/IncrementalExecutor.js +47 -77
  312. package/execution/incremental/IncrementalExecutor.js.map +1 -1
  313. package/execution/incremental/IncrementalExecutor.mjs +2 -32
  314. package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
  315. package/execution/incremental/IncrementalPublisher.d.mts +4 -6
  316. package/execution/incremental/IncrementalPublisher.d.ts +4 -6
  317. package/execution/incremental/IncrementalPublisher.js +12 -18
  318. package/execution/incremental/IncrementalPublisher.js.map +1 -1
  319. package/execution/incremental/IncrementalPublisher.mjs +0 -6
  320. package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
  321. package/execution/incremental/Queue.d.mts +1 -1
  322. package/execution/incremental/Queue.d.ts +1 -1
  323. package/execution/incremental/Queue.js +22 -79
  324. package/execution/incremental/Queue.js.map +1 -1
  325. package/execution/incremental/Queue.mjs +8 -64
  326. package/execution/incremental/Queue.mjs.map +1 -1
  327. package/execution/incremental/WorkQueue.d.mts +10 -2
  328. package/execution/incremental/WorkQueue.d.ts +10 -2
  329. package/execution/incremental/WorkQueue.js +7 -22
  330. package/execution/incremental/WorkQueue.js.map +1 -1
  331. package/execution/incremental/WorkQueue.mjs +0 -15
  332. package/execution/incremental/WorkQueue.mjs.map +1 -1
  333. package/execution/incremental/buildExecutionPlan.d.mts +4 -1
  334. package/execution/incremental/buildExecutionPlan.d.ts +4 -1
  335. package/execution/incremental/buildExecutionPlan.js +4 -4
  336. package/execution/incremental/buildExecutionPlan.js.map +1 -1
  337. package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
  338. package/execution/index.d.mts +17 -8
  339. package/execution/index.d.ts +17 -8
  340. package/execution/index.js +26 -22
  341. package/execution/index.js.map +1 -1
  342. package/execution/index.mjs +2 -1
  343. package/execution/index.mjs.map +1 -1
  344. package/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +175 -0
  345. package/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +175 -0
  346. package/execution/legacyIncremental/BranchingIncrementalExecutor.js +69 -0
  347. package/execution/legacyIncremental/BranchingIncrementalExecutor.js.map +1 -0
  348. package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +65 -0
  349. package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs.map +1 -0
  350. package/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +12 -0
  351. package/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +12 -0
  352. package/execution/legacyIncremental/BranchingIncrementalPublisher.js +131 -0
  353. package/execution/legacyIncremental/BranchingIncrementalPublisher.js.map +1 -0
  354. package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +127 -0
  355. package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs.map +1 -0
  356. package/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +165 -0
  357. package/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +165 -0
  358. package/execution/legacyIncremental/legacyExecuteIncrementally.js +17 -0
  359. package/execution/legacyIncremental/legacyExecuteIncrementally.js.map +1 -0
  360. package/execution/legacyIncremental/legacyExecuteIncrementally.mjs +13 -0
  361. package/execution/legacyIncremental/legacyExecuteIncrementally.mjs.map +1 -0
  362. package/execution/mapAsyncIterable.d.mts +3 -1
  363. package/execution/mapAsyncIterable.d.ts +3 -1
  364. package/execution/mapAsyncIterable.js +4 -9
  365. package/execution/mapAsyncIterable.js.map +1 -1
  366. package/execution/mapAsyncIterable.mjs +0 -5
  367. package/execution/mapAsyncIterable.mjs.map +1 -1
  368. package/execution/returnIteratorCatchingErrors.d.mts +1 -0
  369. package/execution/returnIteratorCatchingErrors.d.ts +1 -0
  370. package/execution/returnIteratorCatchingErrors.js +1 -2
  371. package/execution/returnIteratorCatchingErrors.js.map +1 -1
  372. package/execution/returnIteratorCatchingErrors.mjs +1 -2
  373. package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
  374. package/execution/values.d.mts +196 -14
  375. package/execution/values.d.ts +196 -14
  376. package/execution/values.js +45 -86
  377. package/execution/values.js.map +1 -1
  378. package/execution/values.mjs +14 -55
  379. package/execution/values.mjs.map +1 -1
  380. package/execution/withConcurrentAbruptClose.d.mts +3 -1
  381. package/execution/withConcurrentAbruptClose.d.ts +3 -1
  382. package/execution/withConcurrentAbruptClose.js +3 -17
  383. package/execution/withConcurrentAbruptClose.js.map +1 -1
  384. package/execution/withConcurrentAbruptClose.mjs +1 -15
  385. package/execution/withConcurrentAbruptClose.mjs.map +1 -1
  386. package/graphql.d.mts +198 -50
  387. package/graphql.d.ts +198 -50
  388. package/graphql.js +11 -23
  389. package/graphql.js.map +1 -1
  390. package/graphql.mjs +0 -12
  391. package/graphql.mjs.map +1 -1
  392. package/harness.d.mts +21 -4
  393. package/harness.d.ts +21 -4
  394. package/harness.js +7 -7
  395. package/harness.js.map +1 -1
  396. package/harness.mjs.map +1 -1
  397. package/index.d.mts +41 -39
  398. package/index.d.ts +41 -39
  399. package/index.js +260 -346
  400. package/index.js.map +1 -1
  401. package/index.mjs +5 -149
  402. package/index.mjs.map +1 -1
  403. package/jsutils/AccumulatorMap.d.mts +2 -0
  404. package/jsutils/AccumulatorMap.d.ts +2 -0
  405. package/jsutils/AccumulatorMap.js +0 -4
  406. package/jsutils/AccumulatorMap.js.map +1 -1
  407. package/jsutils/AccumulatorMap.mjs +0 -4
  408. package/jsutils/AccumulatorMap.mjs.map +1 -1
  409. package/jsutils/Maybe.d.mts +5 -1
  410. package/jsutils/Maybe.d.ts +5 -1
  411. package/jsutils/Maybe.js.map +1 -1
  412. package/jsutils/Maybe.mjs.map +1 -1
  413. package/jsutils/ObjMap.d.mts +6 -0
  414. package/jsutils/ObjMap.d.ts +6 -0
  415. package/jsutils/ObjMap.js.map +1 -1
  416. package/jsutils/ObjMap.mjs.map +1 -1
  417. package/jsutils/Path.d.mts +31 -1
  418. package/jsutils/Path.d.ts +31 -1
  419. package/jsutils/Path.js +0 -6
  420. package/jsutils/Path.js.map +1 -1
  421. package/jsutils/Path.mjs +0 -6
  422. package/jsutils/Path.mjs.map +1 -1
  423. package/jsutils/PromiseOrValue.d.mts +1 -0
  424. package/jsutils/PromiseOrValue.d.ts +1 -0
  425. package/jsutils/PromiseOrValue.js.map +1 -1
  426. package/jsutils/PromiseOrValue.mjs.map +1 -1
  427. package/jsutils/capitalize.d.mts +2 -0
  428. package/jsutils/capitalize.d.ts +2 -0
  429. package/jsutils/capitalize.js +0 -3
  430. package/jsutils/capitalize.js.map +1 -1
  431. package/jsutils/capitalize.mjs +0 -3
  432. package/jsutils/capitalize.mjs.map +1 -1
  433. package/jsutils/devAssert.d.mts +1 -0
  434. package/jsutils/devAssert.d.ts +1 -0
  435. package/jsutils/devAssert.js.map +1 -1
  436. package/jsutils/devAssert.mjs.map +1 -1
  437. package/jsutils/didYouMean.d.mts +4 -1
  438. package/jsutils/didYouMean.d.ts +4 -1
  439. package/jsutils/didYouMean.js +2 -2
  440. package/jsutils/didYouMean.js.map +1 -1
  441. package/jsutils/didYouMean.mjs.map +1 -1
  442. package/jsutils/formatList.d.mts +6 -2
  443. package/jsutils/formatList.d.ts +6 -2
  444. package/jsutils/formatList.js +2 -8
  445. package/jsutils/formatList.js.map +1 -1
  446. package/jsutils/formatList.mjs +0 -6
  447. package/jsutils/formatList.mjs.map +1 -1
  448. package/jsutils/getBySet.d.mts +1 -0
  449. package/jsutils/getBySet.d.ts +1 -0
  450. package/jsutils/getBySet.js +2 -2
  451. package/jsutils/getBySet.js.map +1 -1
  452. package/jsutils/getBySet.mjs.map +1 -1
  453. package/jsutils/groupBy.d.mts +2 -0
  454. package/jsutils/groupBy.d.ts +2 -0
  455. package/jsutils/groupBy.js +2 -5
  456. package/jsutils/groupBy.js.map +1 -1
  457. package/jsutils/groupBy.mjs +0 -3
  458. package/jsutils/groupBy.mjs.map +1 -1
  459. package/jsutils/identityFunc.d.mts +2 -0
  460. package/jsutils/identityFunc.d.ts +2 -0
  461. package/jsutils/identityFunc.js +0 -3
  462. package/jsutils/identityFunc.js.map +1 -1
  463. package/jsutils/identityFunc.mjs +0 -3
  464. package/jsutils/identityFunc.mjs.map +1 -1
  465. package/jsutils/inspect.d.mts +2 -0
  466. package/jsutils/inspect.d.ts +2 -0
  467. package/jsutils/inspect.js +0 -4
  468. package/jsutils/inspect.js.map +1 -1
  469. package/jsutils/inspect.mjs +0 -4
  470. package/jsutils/inspect.mjs.map +1 -1
  471. package/jsutils/instanceOf.d.mts +2 -0
  472. package/jsutils/instanceOf.d.ts +2 -0
  473. package/jsutils/instanceOf.js +3 -14
  474. package/jsutils/instanceOf.js.map +1 -1
  475. package/jsutils/instanceOf.mjs +1 -12
  476. package/jsutils/instanceOf.mjs.map +1 -1
  477. package/jsutils/invariant.d.mts +1 -0
  478. package/jsutils/invariant.d.ts +1 -0
  479. package/jsutils/invariant.js.map +1 -1
  480. package/jsutils/invariant.mjs.map +1 -1
  481. package/jsutils/isAsyncIterable.d.mts +2 -0
  482. package/jsutils/isAsyncIterable.d.ts +2 -0
  483. package/jsutils/isAsyncIterable.js +0 -4
  484. package/jsutils/isAsyncIterable.js.map +1 -1
  485. package/jsutils/isAsyncIterable.mjs +0 -4
  486. package/jsutils/isAsyncIterable.mjs.map +1 -1
  487. package/jsutils/isIterableObject.d.mts +6 -5
  488. package/jsutils/isIterableObject.d.ts +6 -5
  489. package/jsutils/isIterableObject.js +0 -17
  490. package/jsutils/isIterableObject.js.map +1 -1
  491. package/jsutils/isIterableObject.mjs +0 -17
  492. package/jsutils/isIterableObject.mjs.map +1 -1
  493. package/jsutils/isObjectLike.d.mts +2 -0
  494. package/jsutils/isObjectLike.d.ts +2 -0
  495. package/jsutils/isObjectLike.js +0 -4
  496. package/jsutils/isObjectLike.js.map +1 -1
  497. package/jsutils/isObjectLike.mjs +0 -4
  498. package/jsutils/isObjectLike.mjs.map +1 -1
  499. package/jsutils/isPromise.d.mts +3 -0
  500. package/jsutils/isPromise.d.ts +3 -0
  501. package/jsutils/isPromise.js +0 -4
  502. package/jsutils/isPromise.js.map +1 -1
  503. package/jsutils/isPromise.mjs +0 -4
  504. package/jsutils/isPromise.mjs.map +1 -1
  505. package/jsutils/isSameSet.d.mts +1 -0
  506. package/jsutils/isSameSet.d.ts +1 -0
  507. package/jsutils/isSameSet.js.map +1 -1
  508. package/jsutils/isSameSet.mjs.map +1 -1
  509. package/jsutils/keyMap.d.mts +8 -15
  510. package/jsutils/keyMap.d.ts +8 -15
  511. package/jsutils/keyMap.js +0 -27
  512. package/jsutils/keyMap.js.map +1 -1
  513. package/jsutils/keyMap.mjs +0 -27
  514. package/jsutils/keyMap.mjs.map +1 -1
  515. package/jsutils/keyValMap.d.mts +10 -7
  516. package/jsutils/keyValMap.d.ts +10 -7
  517. package/jsutils/keyValMap.js +0 -17
  518. package/jsutils/keyValMap.js.map +1 -1
  519. package/jsutils/keyValMap.mjs +0 -17
  520. package/jsutils/keyValMap.mjs.map +1 -1
  521. package/jsutils/mapValue.d.mts +3 -1
  522. package/jsutils/mapValue.d.ts +3 -1
  523. package/jsutils/mapValue.js +0 -4
  524. package/jsutils/mapValue.js.map +1 -1
  525. package/jsutils/mapValue.mjs +0 -4
  526. package/jsutils/mapValue.mjs.map +1 -1
  527. package/jsutils/memoize1.d.mts +2 -0
  528. package/jsutils/memoize1.d.ts +2 -0
  529. package/jsutils/memoize1.js +0 -3
  530. package/jsutils/memoize1.js.map +1 -1
  531. package/jsutils/memoize1.mjs +0 -3
  532. package/jsutils/memoize1.mjs.map +1 -1
  533. package/jsutils/memoize2.d.mts +2 -0
  534. package/jsutils/memoize2.d.ts +2 -0
  535. package/jsutils/memoize2.js +0 -3
  536. package/jsutils/memoize2.js.map +1 -1
  537. package/jsutils/memoize2.mjs +0 -3
  538. package/jsutils/memoize2.mjs.map +1 -1
  539. package/jsutils/memoize3.d.mts +2 -0
  540. package/jsutils/memoize3.d.ts +2 -0
  541. package/jsutils/memoize3.js +0 -3
  542. package/jsutils/memoize3.js.map +1 -1
  543. package/jsutils/memoize3.mjs +0 -3
  544. package/jsutils/memoize3.mjs.map +1 -1
  545. package/jsutils/naturalCompare.d.mts +1 -0
  546. package/jsutils/naturalCompare.d.ts +1 -0
  547. package/jsutils/naturalCompare.js +0 -7
  548. package/jsutils/naturalCompare.js.map +1 -1
  549. package/jsutils/naturalCompare.mjs +0 -7
  550. package/jsutils/naturalCompare.mjs.map +1 -1
  551. package/jsutils/printPathArray.d.mts +2 -0
  552. package/jsutils/printPathArray.d.ts +2 -0
  553. package/jsutils/printPathArray.js +0 -3
  554. package/jsutils/printPathArray.js.map +1 -1
  555. package/jsutils/printPathArray.mjs +0 -3
  556. package/jsutils/printPathArray.mjs.map +1 -1
  557. package/jsutils/promiseForObject.d.mts +4 -2
  558. package/jsutils/promiseForObject.d.ts +4 -2
  559. package/jsutils/promiseForObject.js +0 -7
  560. package/jsutils/promiseForObject.js.map +1 -1
  561. package/jsutils/promiseForObject.mjs +0 -7
  562. package/jsutils/promiseForObject.mjs.map +1 -1
  563. package/jsutils/promiseReduce.d.mts +3 -1
  564. package/jsutils/promiseReduce.d.ts +3 -1
  565. package/jsutils/promiseReduce.js +2 -9
  566. package/jsutils/promiseReduce.js.map +1 -1
  567. package/jsutils/promiseReduce.mjs +0 -7
  568. package/jsutils/promiseReduce.mjs.map +1 -1
  569. package/jsutils/promiseWithResolvers.d.mts +3 -1
  570. package/jsutils/promiseWithResolvers.d.ts +3 -1
  571. package/jsutils/promiseWithResolvers.js +0 -5
  572. package/jsutils/promiseWithResolvers.js.map +1 -1
  573. package/jsutils/promiseWithResolvers.mjs +0 -5
  574. package/jsutils/promiseWithResolvers.mjs.map +1 -1
  575. package/jsutils/suggestionList.d.mts +2 -0
  576. package/jsutils/suggestionList.d.ts +2 -0
  577. package/jsutils/suggestionList.js +3 -26
  578. package/jsutils/suggestionList.js.map +1 -1
  579. package/jsutils/suggestionList.mjs +1 -24
  580. package/jsutils/suggestionList.mjs.map +1 -1
  581. package/jsutils/toError.d.mts +2 -0
  582. package/jsutils/toError.d.ts +2 -0
  583. package/jsutils/toError.js +2 -5
  584. package/jsutils/toError.js.map +1 -1
  585. package/jsutils/toError.mjs +0 -3
  586. package/jsutils/toError.mjs.map +1 -1
  587. package/jsutils/toObjMap.d.mts +4 -2
  588. package/jsutils/toObjMap.d.ts +4 -2
  589. package/jsutils/toObjMap.js.map +1 -1
  590. package/jsutils/toObjMap.mjs.map +1 -1
  591. package/language/KindTypeMap.d.mts +2 -1
  592. package/language/KindTypeMap.d.ts +2 -1
  593. package/language/KindTypeMap.js.map +1 -1
  594. package/language/KindTypeMap.mjs.map +1 -1
  595. package/language/ast.d.mts +425 -58
  596. package/language/ast.d.ts +425 -58
  597. package/language/ast.js +8 -21
  598. package/language/ast.js.map +1 -1
  599. package/language/ast.mjs +8 -21
  600. package/language/ast.mjs.map +1 -1
  601. package/language/blockString.d.mts +1 -3
  602. package/language/blockString.d.ts +1 -3
  603. package/language/blockString.js +15 -41
  604. package/language/blockString.js.map +1 -1
  605. package/language/blockString.mjs +11 -37
  606. package/language/blockString.mjs.map +1 -1
  607. package/language/characterClasses.js +2 -45
  608. package/language/characterClasses.js.map +1 -1
  609. package/language/characterClasses.mjs +2 -45
  610. package/language/characterClasses.mjs.map +1 -1
  611. package/language/directiveLocation.d.mts +26 -6
  612. package/language/directiveLocation.d.ts +26 -6
  613. package/language/directiveLocation.js +2 -6
  614. package/language/directiveLocation.js.map +1 -1
  615. package/language/directiveLocation.mjs +2 -6
  616. package/language/directiveLocation.mjs.map +1 -1
  617. package/language/index.d.mts +22 -16
  618. package/language/index.d.ts +22 -16
  619. package/language/index.js +45 -49
  620. package/language/index.js.map +1 -1
  621. package/language/index.mjs +0 -4
  622. package/language/index.mjs.map +1 -1
  623. package/language/kinds.d.mts +5 -2
  624. package/language/kinds.d.ts +5 -2
  625. package/language/kinds.js.map +1 -1
  626. package/language/kinds.mjs.map +1 -1
  627. package/language/kinds_.d.mts +102 -12
  628. package/language/kinds_.d.ts +102 -12
  629. package/language/kinds_.js +2 -14
  630. package/language/kinds_.js.map +1 -1
  631. package/language/kinds_.mjs +1 -13
  632. package/language/kinds_.mjs.map +1 -1
  633. package/language/lexer.d.mts +51 -18
  634. package/language/lexer.d.ts +51 -18
  635. package/language/lexer.js +102 -343
  636. package/language/lexer.js.map +1 -1
  637. package/language/lexer.mjs +37 -278
  638. package/language/lexer.mjs.map +1 -1
  639. package/language/location.d.mts +17 -4
  640. package/language/location.d.ts +17 -4
  641. package/language/location.js +2 -6
  642. package/language/location.js.map +1 -1
  643. package/language/location.mjs +0 -4
  644. package/language/location.mjs.map +1 -1
  645. package/language/parser.d.mts +243 -15
  646. package/language/parser.d.ts +243 -15
  647. package/language/parser.js +183 -528
  648. package/language/parser.js.map +1 -1
  649. package/language/parser.mjs +26 -371
  650. package/language/parser.mjs.map +1 -1
  651. package/language/predicates.d.mts +182 -1
  652. package/language/predicates.d.ts +182 -1
  653. package/language/predicates.js +45 -49
  654. package/language/predicates.js.map +1 -1
  655. package/language/predicates.mjs +3 -7
  656. package/language/predicates.mjs.map +1 -1
  657. package/language/printLocation.d.mts +31 -3
  658. package/language/printLocation.d.ts +31 -3
  659. package/language/printLocation.js +2 -10
  660. package/language/printLocation.js.map +1 -1
  661. package/language/printLocation.mjs +0 -8
  662. package/language/printLocation.mjs.map +1 -1
  663. package/language/printString.d.mts +2 -0
  664. package/language/printString.d.ts +2 -0
  665. package/language/printString.js +5 -11
  666. package/language/printString.js.map +1 -1
  667. package/language/printString.mjs +5 -11
  668. package/language/printString.mjs.map +1 -1
  669. package/language/printer.d.mts +13 -1
  670. package/language/printer.d.ts +13 -1
  671. package/language/printer.js +10 -31
  672. package/language/printer.js.map +1 -1
  673. package/language/printer.mjs +5 -26
  674. package/language/printer.mjs.map +1 -1
  675. package/language/schemaCoordinateLexer.d.mts +17 -3
  676. package/language/schemaCoordinateLexer.d.ts +17 -3
  677. package/language/schemaCoordinateLexer.js +21 -51
  678. package/language/schemaCoordinateLexer.js.map +1 -1
  679. package/language/schemaCoordinateLexer.mjs +5 -35
  680. package/language/schemaCoordinateLexer.mjs.map +1 -1
  681. package/language/source.d.mts +28 -1
  682. package/language/source.d.ts +28 -1
  683. package/language/source.js +5 -17
  684. package/language/source.js.map +1 -1
  685. package/language/source.mjs +0 -12
  686. package/language/source.mjs.map +1 -1
  687. package/language/tokenKind.d.mts +5 -0
  688. package/language/tokenKind.d.ts +5 -0
  689. package/language/tokenKind.js +0 -4
  690. package/language/tokenKind.js.map +1 -1
  691. package/language/tokenKind.mjs +0 -4
  692. package/language/tokenKind.mjs.map +1 -1
  693. package/language/visitor.d.mts +184 -74
  694. package/language/visitor.d.ts +184 -74
  695. package/language/visitor.js +10 -25
  696. package/language/visitor.js.map +1 -1
  697. package/language/visitor.mjs +0 -15
  698. package/language/visitor.mjs.map +1 -1
  699. package/package.json +2 -2
  700. package/type/assertName.d.mts +18 -1
  701. package/type/assertName.d.ts +18 -1
  702. package/type/assertName.js +8 -16
  703. package/type/assertName.js.map +1 -1
  704. package/type/assertName.mjs +0 -8
  705. package/type/assertName.mjs.map +1 -1
  706. package/type/definition.d.mts +3268 -138
  707. package/type/definition.d.ts +3268 -138
  708. package/type/definition.js +99 -346
  709. package/type/definition.js.map +1 -1
  710. package/type/definition.mjs +5 -252
  711. package/type/definition.mjs.map +1 -1
  712. package/type/directives.d.mts +220 -26
  713. package/type/directives.d.ts +220 -26
  714. package/type/directives.js +51 -83
  715. package/type/directives.js.map +1 -1
  716. package/type/directives.mjs +5 -37
  717. package/type/directives.mjs.map +1 -1
  718. package/type/index.d.mts +18 -12
  719. package/type/index.d.ts +18 -12
  720. package/type/index.js +106 -129
  721. package/type/index.js.map +1 -1
  722. package/type/index.mjs +5 -48
  723. package/type/index.mjs.map +1 -1
  724. package/type/introspection.d.mts +38 -2
  725. package/type/introspection.d.ts +38 -2
  726. package/type/introspection.js +122 -107
  727. package/type/introspection.js.map +1 -1
  728. package/type/introspection.mjs +24 -9
  729. package/type/introspection.mjs.map +1 -1
  730. package/type/scalars.d.mts +31 -4
  731. package/type/scalars.d.ts +31 -4
  732. package/type/scalars.js +61 -76
  733. package/type/scalars.js.map +1 -1
  734. package/type/scalars.mjs +0 -15
  735. package/type/scalars.mjs.map +1 -1
  736. package/type/schema.d.mts +514 -38
  737. package/type/schema.d.ts +514 -38
  738. package/type/schema.js +32 -129
  739. package/type/schema.js.map +1 -1
  740. package/type/schema.mjs +0 -97
  741. package/type/schema.mjs.map +1 -1
  742. package/type/validate.d.mts +36 -7
  743. package/type/validate.d.ts +36 -7
  744. package/type/validate.js +83 -195
  745. package/type/validate.js.map +1 -1
  746. package/type/validate.mjs +1 -113
  747. package/type/validate.mjs.map +1 -1
  748. package/utilities/TypeInfo.d.mts +570 -7
  749. package/utilities/TypeInfo.d.ts +570 -7
  750. package/utilities/TypeInfo.js +62 -85
  751. package/utilities/TypeInfo.js.map +1 -1
  752. package/utilities/TypeInfo.mjs +2 -25
  753. package/utilities/TypeInfo.mjs.map +1 -1
  754. package/utilities/astFromValue.d.mts +39 -6
  755. package/utilities/astFromValue.d.ts +39 -6
  756. package/utilities/astFromValue.js +30 -74
  757. package/utilities/astFromValue.js.map +1 -1
  758. package/utilities/astFromValue.mjs +0 -44
  759. package/utilities/astFromValue.mjs.map +1 -1
  760. package/utilities/buildASTSchema.d.mts +71 -11
  761. package/utilities/buildASTSchema.d.ts +71 -11
  762. package/utilities/buildASTSchema.js +11 -31
  763. package/utilities/buildASTSchema.js.map +1 -1
  764. package/utilities/buildASTSchema.mjs +1 -21
  765. package/utilities/buildASTSchema.mjs.map +1 -1
  766. package/utilities/buildClientSchema.d.mts +20 -5
  767. package/utilities/buildClientSchema.d.ts +20 -5
  768. package/utilities/buildClientSchema.js +53 -83
  769. package/utilities/buildClientSchema.js.map +1 -1
  770. package/utilities/buildClientSchema.mjs +1 -30
  771. package/utilities/buildClientSchema.mjs.map +1 -1
  772. package/utilities/coerceInputValue.d.mts +88 -6
  773. package/utilities/coerceInputValue.d.ts +88 -6
  774. package/utilities/coerceInputValue.js +52 -81
  775. package/utilities/coerceInputValue.js.map +1 -1
  776. package/utilities/coerceInputValue.mjs +21 -50
  777. package/utilities/coerceInputValue.mjs.map +1 -1
  778. package/utilities/concatAST.d.mts +13 -1
  779. package/utilities/concatAST.d.ts +13 -1
  780. package/utilities/concatAST.js +2 -7
  781. package/utilities/concatAST.js.map +1 -1
  782. package/utilities/concatAST.mjs +0 -5
  783. package/utilities/concatAST.mjs.map +1 -1
  784. package/utilities/extendSchema.d.mts +61 -6
  785. package/utilities/extendSchema.d.ts +61 -6
  786. package/utilities/extendSchema.js +92 -126
  787. package/utilities/extendSchema.js.map +1 -1
  788. package/utilities/extendSchema.mjs +27 -61
  789. package/utilities/extendSchema.mjs.map +1 -1
  790. package/utilities/findSchemaChanges.d.mts +100 -2
  791. package/utilities/findSchemaChanges.d.ts +100 -2
  792. package/utilities/findSchemaChanges.js +41 -75
  793. package/utilities/findSchemaChanges.js.map +1 -1
  794. package/utilities/findSchemaChanges.mjs +3 -37
  795. package/utilities/findSchemaChanges.mjs.map +1 -1
  796. package/utilities/getDefaultValueAST.d.mts +3 -2
  797. package/utilities/getDefaultValueAST.d.ts +3 -2
  798. package/utilities/getDefaultValueAST.js +7 -7
  799. package/utilities/getDefaultValueAST.js.map +1 -1
  800. package/utilities/getDefaultValueAST.mjs.map +1 -1
  801. package/utilities/getIntrospectionQuery.d.mts +151 -3
  802. package/utilities/getIntrospectionQuery.d.ts +151 -3
  803. package/utilities/getIntrospectionQuery.js +22 -42
  804. package/utilities/getIntrospectionQuery.js.map +1 -1
  805. package/utilities/getIntrospectionQuery.mjs +22 -42
  806. package/utilities/getIntrospectionQuery.mjs.map +1 -1
  807. package/utilities/getOperationAST.d.mts +17 -2
  808. package/utilities/getOperationAST.d.ts +17 -2
  809. package/utilities/getOperationAST.js +2 -10
  810. package/utilities/getOperationAST.js.map +1 -1
  811. package/utilities/getOperationAST.mjs +0 -8
  812. package/utilities/getOperationAST.mjs.map +1 -1
  813. package/utilities/index.d.mts +45 -30
  814. package/utilities/index.d.ts +45 -30
  815. package/utilities/index.js +61 -88
  816. package/utilities/index.js.map +1 -1
  817. package/utilities/index.mjs +4 -37
  818. package/utilities/index.mjs.map +1 -1
  819. package/utilities/introspectionFromSchema.d.mts +56 -2
  820. package/utilities/introspectionFromSchema.d.ts +56 -2
  821. package/utilities/introspectionFromSchema.js +8 -16
  822. package/utilities/introspectionFromSchema.js.map +1 -1
  823. package/utilities/introspectionFromSchema.mjs +1 -9
  824. package/utilities/introspectionFromSchema.mjs.map +1 -1
  825. package/utilities/lexicographicSortSchema.d.mts +36 -1
  826. package/utilities/lexicographicSortSchema.d.ts +36 -1
  827. package/utilities/lexicographicSortSchema.js +14 -19
  828. package/utilities/lexicographicSortSchema.js.map +1 -1
  829. package/utilities/lexicographicSortSchema.mjs +0 -5
  830. package/utilities/lexicographicSortSchema.mjs.map +1 -1
  831. package/utilities/mapSchemaConfig.d.mts +9 -6
  832. package/utilities/mapSchemaConfig.d.ts +9 -6
  833. package/utilities/mapSchemaConfig.js +28 -40
  834. package/utilities/mapSchemaConfig.js.map +1 -1
  835. package/utilities/mapSchemaConfig.mjs +0 -12
  836. package/utilities/mapSchemaConfig.mjs.map +1 -1
  837. package/utilities/printSchema.d.mts +87 -3
  838. package/utilities/printSchema.d.ts +87 -3
  839. package/utilities/printSchema.js +30 -59
  840. package/utilities/printSchema.js.map +1 -1
  841. package/utilities/printSchema.mjs +1 -30
  842. package/utilities/printSchema.mjs.map +1 -1
  843. package/utilities/replaceVariables.d.mts +40 -4
  844. package/utilities/replaceVariables.d.ts +40 -4
  845. package/utilities/replaceVariables.js +9 -17
  846. package/utilities/replaceVariables.js.map +1 -1
  847. package/utilities/replaceVariables.mjs +0 -8
  848. package/utilities/replaceVariables.mjs.map +1 -1
  849. package/utilities/resolveSchemaCoordinate.d.mts +67 -5
  850. package/utilities/resolveSchemaCoordinate.d.ts +67 -5
  851. package/utilities/resolveSchemaCoordinate.js +23 -79
  852. package/utilities/resolveSchemaCoordinate.js.map +1 -1
  853. package/utilities/resolveSchemaCoordinate.mjs +0 -56
  854. package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
  855. package/utilities/separateOperations.d.mts +32 -2
  856. package/utilities/separateOperations.d.ts +32 -2
  857. package/utilities/separateOperations.js +7 -22
  858. package/utilities/separateOperations.js.map +1 -1
  859. package/utilities/separateOperations.mjs +0 -15
  860. package/utilities/separateOperations.mjs.map +1 -1
  861. package/utilities/sortValueNode.d.mts +1 -1
  862. package/utilities/sortValueNode.d.ts +1 -1
  863. package/utilities/sortValueNode.js +12 -19
  864. package/utilities/sortValueNode.js.map +1 -1
  865. package/utilities/sortValueNode.mjs +0 -7
  866. package/utilities/sortValueNode.mjs.map +1 -1
  867. package/utilities/stripIgnoredCharacters.d.mts +14 -7
  868. package/utilities/stripIgnoredCharacters.d.ts +14 -7
  869. package/utilities/stripIgnoredCharacters.js +11 -76
  870. package/utilities/stripIgnoredCharacters.js.map +1 -1
  871. package/utilities/stripIgnoredCharacters.mjs +0 -65
  872. package/utilities/stripIgnoredCharacters.mjs.map +1 -1
  873. package/utilities/typeComparators.d.mts +86 -2
  874. package/utilities/typeComparators.d.ts +86 -2
  875. package/utilities/typeComparators.js +14 -47
  876. package/utilities/typeComparators.js.map +1 -1
  877. package/utilities/typeComparators.mjs +0 -33
  878. package/utilities/typeComparators.mjs.map +1 -1
  879. package/utilities/typeFromAST.d.mts +90 -4
  880. package/utilities/typeFromAST.d.ts +90 -4
  881. package/utilities/typeFromAST.js +7 -7
  882. package/utilities/typeFromAST.js.map +1 -1
  883. package/utilities/typeFromAST.mjs.map +1 -1
  884. package/utilities/typedQueryDocumentNode.d.mts +5 -1
  885. package/utilities/typedQueryDocumentNode.d.ts +5 -1
  886. package/utilities/typedQueryDocumentNode.js.map +1 -1
  887. package/utilities/typedQueryDocumentNode.mjs.map +1 -1
  888. package/utilities/validateInputValue.d.mts +129 -6
  889. package/utilities/validateInputValue.d.ts +129 -6
  890. package/utilities/validateInputValue.js +60 -80
  891. package/utilities/validateInputValue.js.map +1 -1
  892. package/utilities/validateInputValue.mjs +0 -20
  893. package/utilities/validateInputValue.mjs.map +1 -1
  894. package/utilities/valueFromAST.d.mts +45 -4
  895. package/utilities/valueFromAST.d.ts +45 -4
  896. package/utilities/valueFromAST.js +32 -72
  897. package/utilities/valueFromAST.js.map +1 -1
  898. package/utilities/valueFromAST.mjs +13 -53
  899. package/utilities/valueFromAST.mjs.map +1 -1
  900. package/utilities/valueFromASTUntyped.d.mts +18 -5
  901. package/utilities/valueFromASTUntyped.d.ts +18 -5
  902. package/utilities/valueFromASTUntyped.js +12 -28
  903. package/utilities/valueFromASTUntyped.js.map +1 -1
  904. package/utilities/valueFromASTUntyped.mjs +0 -16
  905. package/utilities/valueFromASTUntyped.mjs.map +1 -1
  906. package/utilities/valueToLiteral.d.mts +32 -3
  907. package/utilities/valueToLiteral.d.ts +32 -3
  908. package/utilities/valueToLiteral.js +37 -70
  909. package/utilities/valueToLiteral.js.map +1 -1
  910. package/utilities/valueToLiteral.mjs +7 -40
  911. package/utilities/valueToLiteral.mjs.map +1 -1
  912. package/validation/ValidationContext.d.mts +499 -9
  913. package/validation/ValidationContext.d.ts +499 -9
  914. package/validation/ValidationContext.js +9 -16
  915. package/validation/ValidationContext.js.map +1 -1
  916. package/validation/ValidationContext.mjs +1 -8
  917. package/validation/ValidationContext.mjs.map +1 -1
  918. package/validation/index.d.mts +53 -46
  919. package/validation/index.d.ts +53 -46
  920. package/validation/index.js +91 -125
  921. package/validation/index.js.map +1 -1
  922. package/validation/index.mjs +0 -34
  923. package/validation/index.mjs.map +1 -1
  924. package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +32 -2
  925. package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +32 -2
  926. package/validation/rules/DeferStreamDirectiveLabelRule.js +9 -14
  927. package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
  928. package/validation/rules/DeferStreamDirectiveLabelRule.mjs +0 -5
  929. package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
  930. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +30 -2
  931. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +30 -2
  932. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +8 -13
  933. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
  934. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs +0 -5
  935. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
  936. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +54 -2
  937. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +54 -2
  938. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +14 -19
  939. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
  940. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs +0 -5
  941. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
  942. package/validation/rules/ExecutableDefinitionsRule.d.mts +30 -2
  943. package/validation/rules/ExecutableDefinitionsRule.d.ts +30 -2
  944. package/validation/rules/ExecutableDefinitionsRule.js +7 -15
  945. package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
  946. package/validation/rules/ExecutableDefinitionsRule.mjs +0 -8
  947. package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
  948. package/validation/rules/FieldsOnCorrectTypeRule.d.mts +30 -2
  949. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +30 -2
  950. package/validation/rules/FieldsOnCorrectTypeRule.js +14 -41
  951. package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
  952. package/validation/rules/FieldsOnCorrectTypeRule.mjs +0 -27
  953. package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
  954. package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +30 -2
  955. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +30 -2
  956. package/validation/rules/FragmentsOnCompositeTypesRule.js +12 -21
  957. package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
  958. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +0 -9
  959. package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
  960. package/validation/rules/KnownArgumentNamesRule.d.mts +31 -5
  961. package/validation/rules/KnownArgumentNamesRule.d.ts +31 -5
  962. package/validation/rules/KnownArgumentNamesRule.js +16 -29
  963. package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
  964. package/validation/rules/KnownArgumentNamesRule.mjs +0 -13
  965. package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
  966. package/validation/rules/KnownDirectivesRule.d.mts +30 -2
  967. package/validation/rules/KnownDirectivesRule.d.ts +30 -2
  968. package/validation/rules/KnownDirectivesRule.js +66 -73
  969. package/validation/rules/KnownDirectivesRule.js.map +1 -1
  970. package/validation/rules/KnownDirectivesRule.mjs +3 -10
  971. package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
  972. package/validation/rules/KnownFragmentNamesRule.d.mts +30 -2
  973. package/validation/rules/KnownFragmentNamesRule.d.ts +30 -2
  974. package/validation/rules/KnownFragmentNamesRule.js +2 -10
  975. package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
  976. package/validation/rules/KnownFragmentNamesRule.mjs +0 -8
  977. package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
  978. package/validation/rules/KnownOperationTypesRule.d.mts +22 -2
  979. package/validation/rules/KnownOperationTypesRule.d.ts +22 -2
  980. package/validation/rules/KnownOperationTypesRule.js +2 -10
  981. package/validation/rules/KnownOperationTypesRule.js.map +1 -1
  982. package/validation/rules/KnownOperationTypesRule.mjs +0 -8
  983. package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
  984. package/validation/rules/KnownTypeNamesRule.d.mts +30 -2
  985. package/validation/rules/KnownTypeNamesRule.d.ts +30 -2
  986. package/validation/rules/KnownTypeNamesRule.js +11 -19
  987. package/validation/rules/KnownTypeNamesRule.js.map +1 -1
  988. package/validation/rules/KnownTypeNamesRule.mjs +0 -8
  989. package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
  990. package/validation/rules/LoneAnonymousOperationRule.d.mts +30 -2
  991. package/validation/rules/LoneAnonymousOperationRule.d.ts +30 -2
  992. package/validation/rules/LoneAnonymousOperationRule.js +4 -12
  993. package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
  994. package/validation/rules/LoneAnonymousOperationRule.mjs +0 -8
  995. package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
  996. package/validation/rules/LoneSchemaDefinitionRule.d.mts +23 -2
  997. package/validation/rules/LoneSchemaDefinitionRule.d.ts +23 -2
  998. package/validation/rules/LoneSchemaDefinitionRule.js +3 -8
  999. package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
  1000. package/validation/rules/LoneSchemaDefinitionRule.mjs +0 -5
  1001. package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
  1002. package/validation/rules/MaxIntrospectionDepthRule.d.mts +33 -2
  1003. package/validation/rules/MaxIntrospectionDepthRule.d.ts +33 -2
  1004. package/validation/rules/MaxIntrospectionDepthRule.js +5 -19
  1005. package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
  1006. package/validation/rules/MaxIntrospectionDepthRule.mjs +0 -14
  1007. package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
  1008. package/validation/rules/NoFragmentCyclesRule.d.mts +30 -2
  1009. package/validation/rules/NoFragmentCyclesRule.d.ts +30 -2
  1010. package/validation/rules/NoFragmentCyclesRule.js +2 -17
  1011. package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
  1012. package/validation/rules/NoFragmentCyclesRule.mjs +0 -15
  1013. package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
  1014. package/validation/rules/NoUndefinedVariablesRule.d.mts +30 -2
  1015. package/validation/rules/NoUndefinedVariablesRule.d.ts +30 -2
  1016. package/validation/rules/NoUndefinedVariablesRule.js +2 -10
  1017. package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
  1018. package/validation/rules/NoUndefinedVariablesRule.mjs +0 -8
  1019. package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
  1020. package/validation/rules/NoUnusedFragmentsRule.d.mts +30 -2
  1021. package/validation/rules/NoUnusedFragmentsRule.d.ts +30 -2
  1022. package/validation/rules/NoUnusedFragmentsRule.js +2 -10
  1023. package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
  1024. package/validation/rules/NoUnusedFragmentsRule.mjs +0 -8
  1025. package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
  1026. package/validation/rules/NoUnusedVariablesRule.d.mts +31 -2
  1027. package/validation/rules/NoUnusedVariablesRule.d.ts +31 -2
  1028. package/validation/rules/NoUnusedVariablesRule.js +3 -11
  1029. package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
  1030. package/validation/rules/NoUnusedVariablesRule.mjs +0 -8
  1031. package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
  1032. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +35 -2
  1033. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +35 -2
  1034. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +32 -206
  1035. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
  1036. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +1 -175
  1037. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
  1038. package/validation/rules/PossibleFragmentSpreadsRule.d.mts +38 -2
  1039. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +38 -2
  1040. package/validation/rules/PossibleFragmentSpreadsRule.js +17 -24
  1041. package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
  1042. package/validation/rules/PossibleFragmentSpreadsRule.mjs +0 -7
  1043. package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
  1044. package/validation/rules/PossibleTypeExtensionsRule.d.mts +23 -2
  1045. package/validation/rules/PossibleTypeExtensionsRule.d.ts +23 -2
  1046. package/validation/rules/PossibleTypeExtensionsRule.js +38 -49
  1047. package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
  1048. package/validation/rules/PossibleTypeExtensionsRule.mjs +0 -11
  1049. package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
  1050. package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +31 -5
  1051. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +31 -5
  1052. package/validation/rules/ProvidedRequiredArgumentsRule.js +20 -33
  1053. package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
  1054. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +0 -13
  1055. package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
  1056. package/validation/rules/ScalarLeafsRule.d.mts +30 -2
  1057. package/validation/rules/ScalarLeafsRule.d.ts +30 -2
  1058. package/validation/rules/ScalarLeafsRule.js +10 -16
  1059. package/validation/rules/ScalarLeafsRule.js.map +1 -1
  1060. package/validation/rules/ScalarLeafsRule.mjs +0 -6
  1061. package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
  1062. package/validation/rules/SingleFieldSubscriptionsRule.d.mts +36 -4
  1063. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +36 -4
  1064. package/validation/rules/SingleFieldSubscriptionsRule.js +8 -17
  1065. package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
  1066. package/validation/rules/SingleFieldSubscriptionsRule.mjs +0 -9
  1067. package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
  1068. package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +23 -2
  1069. package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +23 -2
  1070. package/validation/rules/StreamDirectiveOnListFieldRule.js +7 -12
  1071. package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
  1072. package/validation/rules/StreamDirectiveOnListFieldRule.mjs +0 -5
  1073. package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
  1074. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +23 -2
  1075. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +23 -2
  1076. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +4 -10
  1077. package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
  1078. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +0 -6
  1079. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
  1080. package/validation/rules/UniqueArgumentNamesRule.d.mts +30 -2
  1081. package/validation/rules/UniqueArgumentNamesRule.d.ts +30 -2
  1082. package/validation/rules/UniqueArgumentNamesRule.js +4 -12
  1083. package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
  1084. package/validation/rules/UniqueArgumentNamesRule.mjs +0 -8
  1085. package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
  1086. package/validation/rules/UniqueDirectiveNamesRule.d.mts +23 -2
  1087. package/validation/rules/UniqueDirectiveNamesRule.d.ts +23 -2
  1088. package/validation/rules/UniqueDirectiveNamesRule.js +3 -8
  1089. package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
  1090. package/validation/rules/UniqueDirectiveNamesRule.mjs +0 -5
  1091. package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
  1092. package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +30 -2
  1093. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +30 -2
  1094. package/validation/rules/UniqueDirectivesPerLocationRule.js +20 -21
  1095. package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
  1096. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +10 -11
  1097. package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
  1098. package/validation/rules/UniqueEnumValueNamesRule.d.mts +23 -2
  1099. package/validation/rules/UniqueEnumValueNamesRule.d.ts +23 -2
  1100. package/validation/rules/UniqueEnumValueNamesRule.js +5 -10
  1101. package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
  1102. package/validation/rules/UniqueEnumValueNamesRule.mjs +0 -5
  1103. package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
  1104. package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +23 -2
  1105. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +23 -2
  1106. package/validation/rules/UniqueFieldDefinitionNamesRule.js +5 -10
  1107. package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
  1108. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +0 -5
  1109. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
  1110. package/validation/rules/UniqueFragmentNamesRule.d.mts +30 -2
  1111. package/validation/rules/UniqueFragmentNamesRule.d.ts +30 -2
  1112. package/validation/rules/UniqueFragmentNamesRule.js +2 -9
  1113. package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
  1114. package/validation/rules/UniqueFragmentNamesRule.mjs +0 -7
  1115. package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
  1116. package/validation/rules/UniqueInputFieldNamesRule.d.mts +34 -2
  1117. package/validation/rules/UniqueInputFieldNamesRule.d.ts +34 -2
  1118. package/validation/rules/UniqueInputFieldNamesRule.js +4 -12
  1119. package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
  1120. package/validation/rules/UniqueInputFieldNamesRule.mjs +0 -8
  1121. package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
  1122. package/validation/rules/UniqueOperationNamesRule.d.mts +30 -2
  1123. package/validation/rules/UniqueOperationNamesRule.d.ts +30 -2
  1124. package/validation/rules/UniqueOperationNamesRule.js +2 -9
  1125. package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
  1126. package/validation/rules/UniqueOperationNamesRule.mjs +0 -7
  1127. package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
  1128. package/validation/rules/UniqueOperationTypesRule.d.mts +23 -2
  1129. package/validation/rules/UniqueOperationTypesRule.d.ts +23 -2
  1130. package/validation/rules/UniqueOperationTypesRule.js +3 -8
  1131. package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
  1132. package/validation/rules/UniqueOperationTypesRule.mjs +0 -5
  1133. package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
  1134. package/validation/rules/UniqueTypeNamesRule.d.mts +23 -2
  1135. package/validation/rules/UniqueTypeNamesRule.d.ts +23 -2
  1136. package/validation/rules/UniqueTypeNamesRule.js +3 -8
  1137. package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
  1138. package/validation/rules/UniqueTypeNamesRule.mjs +0 -5
  1139. package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
  1140. package/validation/rules/UniqueVariableNamesRule.d.mts +30 -2
  1141. package/validation/rules/UniqueVariableNamesRule.d.ts +30 -2
  1142. package/validation/rules/UniqueVariableNamesRule.js +4 -9
  1143. package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
  1144. package/validation/rules/UniqueVariableNamesRule.mjs +0 -5
  1145. package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
  1146. package/validation/rules/ValuesOfCorrectTypeRule.d.mts +30 -2
  1147. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +30 -2
  1148. package/validation/rules/ValuesOfCorrectTypeRule.js +3 -23
  1149. package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
  1150. package/validation/rules/ValuesOfCorrectTypeRule.mjs +1 -21
  1151. package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
  1152. package/validation/rules/VariablesAreInputTypesRule.d.mts +34 -2
  1153. package/validation/rules/VariablesAreInputTypesRule.d.ts +34 -2
  1154. package/validation/rules/VariablesAreInputTypesRule.js +8 -16
  1155. package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
  1156. package/validation/rules/VariablesAreInputTypesRule.mjs +0 -8
  1157. package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
  1158. package/validation/rules/VariablesInAllowedPositionRule.d.mts +30 -2
  1159. package/validation/rules/VariablesInAllowedPositionRule.d.ts +30 -2
  1160. package/validation/rules/VariablesInAllowedPositionRule.js +14 -34
  1161. package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
  1162. package/validation/rules/VariablesInAllowedPositionRule.mjs +0 -20
  1163. package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
  1164. package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +43 -2
  1165. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +43 -2
  1166. package/validation/rules/custom/NoDeprecatedCustomRule.js +8 -18
  1167. package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
  1168. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +0 -10
  1169. package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
  1170. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +30 -2
  1171. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +30 -2
  1172. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +6 -16
  1173. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
  1174. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +0 -10
  1175. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
  1176. package/validation/specifiedRules.d.mts +3 -4
  1177. package/validation/specifiedRules.d.ts +3 -4
  1178. package/validation/specifiedRules.js +87 -133
  1179. package/validation/specifiedRules.js.map +1 -1
  1180. package/validation/specifiedRules.mjs +0 -46
  1181. package/validation/specifiedRules.mjs.map +1 -1
  1182. package/validation/validate.d.mts +70 -12
  1183. package/validation/validate.d.ts +70 -12
  1184. package/validation/validate.js +19 -60
  1185. package/validation/validate.js.map +1 -1
  1186. package/validation/validate.mjs +0 -41
  1187. package/validation/validate.mjs.map +1 -1
  1188. package/version.d.mts +3 -6
  1189. package/version.d.ts +3 -6
  1190. package/version.js +2 -10
  1191. package/version.js.map +1 -1
  1192. package/version.mjs +2 -10
  1193. package/version.mjs.map +1 -1
@@ -46,24 +46,10 @@ export const SafeChangeType = {
46
46
  ARG_CHANGED_KIND_SAFE: 'ARG_CHANGED_KIND_SAFE',
47
47
  ARG_DEFAULT_VALUE_ADDED: 'ARG_DEFAULT_VALUE_ADDED',
48
48
  };
49
- /**
50
- * Given two schemas, returns an Array containing descriptions of all the types
51
- * of breaking changes covered by the other functions down below.
52
- *
53
- * @deprecated Please use `findSchemaChanges` instead. Will be removed in v18.
54
- */
55
49
  export function findBreakingChanges(oldSchema, newSchema) {
56
- // @ts-expect-error
57
50
  return findSchemaChanges(oldSchema, newSchema).filter((change) => change.type in BreakingChangeType);
58
51
  }
59
- /**
60
- * Given two schemas, returns an Array containing descriptions of all the types
61
- * of potentially dangerous changes covered by the other functions down below.
62
- *
63
- * @deprecated Please use `findSchemaChanges` instead. Will be removed in v18.
64
- */
65
52
  export function findDangerousChanges(oldSchema, newSchema) {
66
- // @ts-expect-error
67
53
  return findSchemaChanges(oldSchema, newSchema).filter((change) => change.type in DangerousChangeType);
68
54
  }
69
55
  export function findSchemaChanges(oldSchema, newSchema) {
@@ -458,43 +444,30 @@ function findArgChanges(oldField, newField) {
458
444
  }
459
445
  function isChangeSafeForObjectOrInterfaceField(oldType, newType) {
460
446
  if (isListType(oldType)) {
461
- return (
462
- // if they're both lists, make sure the underlying types are compatible
463
- (isListType(newType) &&
447
+ return ((isListType(newType) &&
464
448
  isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType)) ||
465
- // moving from nullable to non-null of the same underlying type is safe
466
449
  (isNonNullType(newType) &&
467
450
  isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)));
468
451
  }
469
452
  if (isNonNullType(oldType)) {
470
- // if they're both non-null, make sure the underlying types are compatible
471
453
  return (isNonNullType(newType) &&
472
454
  isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType));
473
455
  }
474
- return (
475
- // if they're both named types, see if their names are equivalent
476
- (isNamedType(newType) && oldType.name === newType.name) ||
477
- // moving from nullable to non-null of the same underlying type is safe
456
+ return ((isNamedType(newType) && oldType.name === newType.name) ||
478
457
  (isNonNullType(newType) &&
479
458
  isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)));
480
459
  }
481
460
  function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {
482
461
  if (isListType(oldType)) {
483
- // if they're both lists, make sure the underlying types are compatible
484
462
  return (isListType(newType) &&
485
463
  isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType));
486
464
  }
487
465
  if (isNonNullType(oldType)) {
488
- return (
489
- // if they're both non-null, make sure the underlying types are
490
- // compatible
491
- (isNonNullType(newType) &&
466
+ return ((isNonNullType(newType) &&
492
467
  isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType)) ||
493
- // moving from non-null to nullable of the same underlying type is safe
494
468
  (!isNonNullType(newType) &&
495
469
  isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)));
496
470
  }
497
- // if they're both named types, see if their names are equivalent
498
471
  return isNamedType(newType) && oldType.name === newType.name;
499
472
  }
500
473
  function typeKindName(type) {
@@ -515,16 +488,9 @@ function typeKindName(type) {
515
488
  }
516
489
  if (isInputObjectType(type)) {
517
490
  return 'an Input type';
518
- // c8 control statement technically placed a line early secondary to
519
- // slight swc source mapping error (at least as compared to ts-node without swc)
520
- /* c8 ignore next 4 */
521
491
  }
522
- // Not reachable, all possible types have been considered.
523
492
  invariant(false, 'Unexpected type: ' + inspect(type));
524
493
  }
525
- // Since we looking only for client's observable changes we should
526
- // compare default values in the same representation as they are
527
- // represented inside introspection.
528
494
  function getDefaultValue(argOrInputField) {
529
495
  const ast = getDefaultValueAST(argOrInputField);
530
496
  if (ast) {
@@ -1 +1 @@
1
- {"version":3,"file":"findSchemaChanges.js","sourceRoot":"","sources":["../../src/utilities/findSchemaChanges.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.js';\nimport { invariant } from '../jsutils/invariant.js';\nimport { keyMap } from '../jsutils/keyMap.js';\n\nimport { print } from '../language/printer.js';\n\nimport type {\n GraphQLArgument,\n GraphQLEnumType,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLNamedType,\n GraphQLObjectType,\n GraphQLType,\n GraphQLUnionType,\n} from '../type/definition.js';\nimport {\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isListType,\n isNamedType,\n isNonNullType,\n isObjectType,\n isRequiredArgument,\n isRequiredInputField,\n isScalarType,\n isUnionType,\n} from '../type/definition.js';\nimport { isSpecifiedScalarType } from '../type/scalars.js';\nimport type { GraphQLSchema } from '../type/schema.js';\n\nimport { getDefaultValueAST } from './getDefaultValueAST.js';\nimport { sortValueNode } from './sortValueNode.js';\n\nexport const BreakingChangeType = {\n TYPE_REMOVED: 'TYPE_REMOVED' as const,\n TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND' as const,\n TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION' as const,\n VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM' as const,\n REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED' as const,\n IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED' as const,\n FIELD_REMOVED: 'FIELD_REMOVED' as const,\n FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND' as const,\n REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED' as const,\n ARG_REMOVED: 'ARG_REMOVED' as const,\n ARG_CHANGED_KIND: 'ARG_CHANGED_KIND' as const,\n DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED' as const,\n DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED' as const,\n REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED' as const,\n DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED' as const,\n DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED' as const,\n} as const;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type BreakingChangeType =\n (typeof BreakingChangeType)[keyof typeof BreakingChangeType];\n\nexport const DangerousChangeType = {\n VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM' as const,\n TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION' as const,\n OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED' as const,\n OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED' as const,\n IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED' as const,\n ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE' as const,\n} as const;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type DangerousChangeType =\n (typeof DangerousChangeType)[keyof typeof DangerousChangeType];\n\nexport const SafeChangeType = {\n DESCRIPTION_CHANGED: 'DESCRIPTION_CHANGED' as const,\n TYPE_ADDED: 'TYPE_ADDED' as const,\n OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED' as const,\n OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED' as const,\n DIRECTIVE_ADDED: 'DIRECTIVE_ADDED' as const,\n FIELD_ADDED: 'FIELD_ADDED' as const,\n DIRECTIVE_REPEATABLE_ADDED: 'DIRECTIVE_REPEATABLE_ADDED' as const,\n DIRECTIVE_LOCATION_ADDED: 'DIRECTIVE_LOCATION_ADDED' as const,\n OPTIONAL_DIRECTIVE_ARG_ADDED: 'OPTIONAL_DIRECTIVE_ARG_ADDED' as const,\n FIELD_CHANGED_KIND_SAFE: 'FIELD_CHANGED_KIND_SAFE' as const,\n ARG_CHANGED_KIND_SAFE: 'ARG_CHANGED_KIND_SAFE' as const,\n ARG_DEFAULT_VALUE_ADDED: 'ARG_DEFAULT_VALUE_ADDED' as const,\n} as const;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type SafeChangeType =\n (typeof SafeChangeType)[keyof typeof SafeChangeType];\n\nexport interface BreakingChange {\n type: BreakingChangeType;\n description: string;\n}\n\nexport interface DangerousChange {\n type: DangerousChangeType;\n description: string;\n}\n\nexport interface SafeChange {\n type: SafeChangeType;\n description: string;\n}\n\nexport type SchemaChange = SafeChange | DangerousChange | BreakingChange;\n\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of breaking changes covered by the other functions down below.\n *\n * @deprecated Please use `findSchemaChanges` instead. Will be removed in v18.\n */\nexport function findBreakingChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<BreakingChange> {\n // @ts-expect-error\n return findSchemaChanges(oldSchema, newSchema).filter(\n (change) => change.type in BreakingChangeType,\n );\n}\n\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of potentially dangerous changes covered by the other functions down below.\n *\n * @deprecated Please use `findSchemaChanges` instead. Will be removed in v18.\n */\nexport function findDangerousChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<DangerousChange> {\n // @ts-expect-error\n return findSchemaChanges(oldSchema, newSchema).filter(\n (change) => change.type in DangerousChangeType,\n );\n}\n\nexport function findSchemaChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<SchemaChange> {\n return [\n ...findTypeChanges(oldSchema, newSchema),\n ...findDirectiveChanges(oldSchema, newSchema),\n ];\n}\n\nfunction findDirectiveChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<SchemaChange> {\n const schemaChanges = [];\n\n const directivesDiff = diff(\n oldSchema.getDirectives(),\n newSchema.getDirectives(),\n );\n\n for (const oldDirective of directivesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REMOVED,\n description: `Directive ${oldDirective} was removed.`,\n });\n }\n\n for (const newDirective of directivesDiff.added) {\n schemaChanges.push({\n type: SafeChangeType.DIRECTIVE_ADDED,\n description: `Directive @${newDirective.name} was added.`,\n });\n }\n\n for (const [oldDirective, newDirective] of directivesDiff.persisted) {\n const argsDiff = diff(oldDirective.args, newDirective.args);\n\n for (const newArg of argsDiff.added) {\n if (isRequiredArgument(newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,\n description: `A required argument ${newArg} was added.`,\n });\n } else {\n schemaChanges.push({\n type: SafeChangeType.OPTIONAL_DIRECTIVE_ARG_ADDED,\n description: `An optional argument @${oldDirective.name}(${newArg.name}:) was added.`,\n });\n }\n }\n\n for (const oldArg of argsDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,\n description: `Argument ${oldArg} was removed.`,\n });\n }\n\n for (const [oldArg, newArg] of argsDiff.persisted) {\n const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(\n oldArg.type,\n newArg.type,\n );\n\n const oldDefaultValueStr = getDefaultValue(oldArg);\n const newDefaultValueStr = getDefaultValue(newArg);\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_CHANGED_KIND,\n description:\n `Argument @${oldDirective.name}(${oldArg.name}:) has changed type from ` +\n `${String(oldArg.type)} to ${String(newArg.type)}.`,\n });\n } else if (oldDefaultValueStr !== undefined) {\n if (newDefaultValueStr === undefined) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: `@${oldDirective.name}(${oldArg.name}:) defaultValue was removed.`,\n });\n } else if (oldDefaultValueStr !== newDefaultValueStr) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: `@${oldDirective.name}(${oldArg.name}:) has changed defaultValue from ${oldDefaultValueStr} to ${newDefaultValueStr}.`,\n });\n }\n } else if (\n newDefaultValueStr !== undefined &&\n oldDefaultValueStr === undefined\n ) {\n schemaChanges.push({\n type: SafeChangeType.ARG_DEFAULT_VALUE_ADDED,\n description: `@${oldDirective.name}(${oldArg.name}:) added a defaultValue ${newDefaultValueStr}.`,\n });\n } else if (oldArg.type.toString() !== newArg.type.toString()) {\n schemaChanges.push({\n type: SafeChangeType.ARG_CHANGED_KIND_SAFE,\n description:\n `Argument @${oldDirective.name}(${oldArg.name}:) has changed type from ` +\n `${String(oldArg.type)} to ${String(newArg.type)}.`,\n });\n }\n\n if (oldArg.description !== newArg.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of @${oldDirective.name}(${oldDirective.name}) has changed to \"${newArg.description}\".`,\n });\n }\n }\n\n if (oldDirective.isRepeatable && !newDirective.isRepeatable) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,\n description: `Repeatable flag was removed from ${oldDirective}.`,\n });\n } else if (newDirective.isRepeatable && !oldDirective.isRepeatable) {\n schemaChanges.push({\n type: SafeChangeType.DIRECTIVE_REPEATABLE_ADDED,\n description: `Repeatable flag was added to @${oldDirective.name}.`,\n });\n }\n\n if (oldDirective.description !== newDirective.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of @${oldDirective.name} has changed to \"${newDirective.description}\".`,\n });\n }\n\n for (const location of oldDirective.locations) {\n if (!newDirective.locations.includes(location)) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,\n description: `${location} was removed from ${oldDirective}.`,\n });\n }\n }\n\n for (const location of newDirective.locations) {\n if (!oldDirective.locations.includes(location)) {\n schemaChanges.push({\n type: SafeChangeType.DIRECTIVE_LOCATION_ADDED,\n description: `${location} was added to @${oldDirective.name}.`,\n });\n }\n }\n }\n\n return schemaChanges;\n}\n\nfunction findTypeChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<SchemaChange> {\n const schemaChanges = [];\n\n const typesDiff = diff(\n Object.values(oldSchema.getTypeMap()),\n Object.values(newSchema.getTypeMap()),\n );\n\n for (const oldType of typesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED,\n description: isSpecifiedScalarType(oldType)\n ? `Standard scalar ${oldType} was removed because it is not referenced anymore.`\n : `${oldType} was removed.`,\n });\n }\n\n for (const newType of typesDiff.added) {\n schemaChanges.push({\n type: SafeChangeType.TYPE_ADDED,\n description: `${newType} was added.`,\n });\n }\n\n for (const [oldType, newType] of typesDiff.persisted) {\n if (oldType.description !== newType.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of ${oldType.name} has changed to \"${newType.description}\".`,\n });\n }\n\n if (isEnumType(oldType) && isEnumType(newType)) {\n schemaChanges.push(...findEnumTypeChanges(oldType, newType));\n } else if (isUnionType(oldType) && isUnionType(newType)) {\n schemaChanges.push(...findUnionTypeChanges(oldType, newType));\n } else if (isInputObjectType(oldType) && isInputObjectType(newType)) {\n schemaChanges.push(...findInputObjectTypeChanges(oldType, newType));\n } else if (isObjectType(oldType) && isObjectType(newType)) {\n schemaChanges.push(\n ...findFieldChanges(oldType, newType),\n ...findImplementedInterfacesChanges(oldType, newType),\n );\n } else if (isInterfaceType(oldType) && isInterfaceType(newType)) {\n schemaChanges.push(\n ...findFieldChanges(oldType, newType),\n ...findImplementedInterfacesChanges(oldType, newType),\n );\n } else if (oldType.constructor !== newType.constructor) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_CHANGED_KIND,\n description: `${oldType} changed from ${typeKindName(\n oldType,\n )} to ${typeKindName(newType)}.`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findInputObjectTypeChanges(\n oldType: GraphQLInputObjectType,\n newType: GraphQLInputObjectType,\n): Array<SchemaChange> {\n const schemaChanges = [];\n const fieldsDiff = diff(\n Object.values(oldType.getFields()),\n Object.values(newType.getFields()),\n );\n\n for (const newField of fieldsDiff.added) {\n if (isRequiredInputField(newField)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,\n description: `A required field ${newField} was added.`,\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,\n description: `An optional field ${newField} was added.`,\n });\n }\n }\n\n for (const oldField of fieldsDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: `Field ${oldField} was removed.`,\n });\n }\n\n for (const [oldField, newField] of fieldsDiff.persisted) {\n const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(\n oldField.type,\n newField.type,\n );\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: `Field ${newField} changed type from ${oldField.type} to ${newField.type}.`,\n });\n } else if (oldField.type.toString() !== newField.type.toString()) {\n schemaChanges.push({\n type: SafeChangeType.FIELD_CHANGED_KIND_SAFE,\n description:\n `Field ${oldType}.${oldField.name} changed type from ` +\n `${String(oldField.type)} to ${String(newField.type)}.`,\n });\n }\n\n if (oldField.description !== newField.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of input-field ${newType}.${newField.name} has changed to \"${newField.description}\".`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findUnionTypeChanges(\n oldType: GraphQLUnionType,\n newType: GraphQLUnionType,\n): Array<BreakingChange | DangerousChange> {\n const schemaChanges = [];\n const possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());\n\n for (const newPossibleType of possibleTypesDiff.added) {\n schemaChanges.push({\n type: DangerousChangeType.TYPE_ADDED_TO_UNION,\n description: `${newPossibleType} was added to union type ${oldType}.`,\n });\n }\n\n for (const oldPossibleType of possibleTypesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,\n description: `${oldPossibleType} was removed from union type ${oldType}.`,\n });\n }\n\n return schemaChanges;\n}\n\nfunction findEnumTypeChanges(\n oldType: GraphQLEnumType,\n newType: GraphQLEnumType,\n): Array<SchemaChange> {\n const schemaChanges = [];\n const valuesDiff = diff(oldType.getValues(), newType.getValues());\n\n for (const newValue of valuesDiff.added) {\n schemaChanges.push({\n type: DangerousChangeType.VALUE_ADDED_TO_ENUM,\n description: `Enum value ${newValue} was added.`,\n });\n }\n\n for (const oldValue of valuesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,\n description: `Enum value ${oldValue} was removed.`,\n });\n }\n\n for (const [oldValue, newValue] of valuesDiff.persisted) {\n if (oldValue.description !== newValue.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of enum value ${oldType}.${oldValue.name} has changed to \"${newValue.description}\".`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findImplementedInterfacesChanges(\n oldType: GraphQLObjectType | GraphQLInterfaceType,\n newType: GraphQLObjectType | GraphQLInterfaceType,\n): Array<BreakingChange | DangerousChange> {\n const schemaChanges = [];\n const interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());\n\n for (const newInterface of interfacesDiff.added) {\n schemaChanges.push({\n type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,\n description: `${newInterface} added to interfaces implemented by ${oldType}.`,\n });\n }\n\n for (const oldInterface of interfacesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,\n description: `${oldType} no longer implements interface ${oldInterface}.`,\n });\n }\n\n return schemaChanges;\n}\n\nfunction findFieldChanges(\n oldType: GraphQLObjectType | GraphQLInterfaceType,\n newType: GraphQLObjectType | GraphQLInterfaceType,\n): Array<SchemaChange> {\n const schemaChanges = [];\n const fieldsDiff = diff(\n Object.values(oldType.getFields()),\n Object.values(newType.getFields()),\n );\n\n for (const oldField of fieldsDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: `Field ${oldField} was removed.`,\n });\n }\n\n for (const newField of fieldsDiff.added) {\n schemaChanges.push({\n type: SafeChangeType.FIELD_ADDED,\n description: `Field ${oldType}.${newField.name} was added.`,\n });\n }\n\n for (const [oldField, newField] of fieldsDiff.persisted) {\n schemaChanges.push(...findArgChanges(oldField, newField));\n\n const isSafe = isChangeSafeForObjectOrInterfaceField(\n oldField.type,\n newField.type,\n );\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: `Field ${newField} changed type from ${oldField.type} to ${newField.type}.`,\n });\n } else if (oldField.type.toString() !== newField.type.toString()) {\n schemaChanges.push({\n type: SafeChangeType.FIELD_CHANGED_KIND_SAFE,\n description:\n `Field ${oldType}.${oldField.name} changed type from ` +\n `${String(oldField.type)} to ${String(newField.type)}.`,\n });\n }\n\n if (oldField.description !== newField.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of field ${oldType}.${oldField.name} has changed to \"${newField.description}\".`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findArgChanges(\n oldField: GraphQLField<unknown, unknown>,\n newField: GraphQLField<unknown, unknown>,\n): Array<SchemaChange> {\n const schemaChanges = [];\n const argsDiff = diff(oldField.args, newField.args);\n\n for (const oldArg of argsDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_REMOVED,\n description: `Argument ${oldArg} was removed.`,\n });\n }\n\n for (const [oldArg, newArg] of argsDiff.persisted) {\n const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(\n oldArg.type,\n newArg.type,\n );\n\n const oldDefaultValueStr = getDefaultValue(oldArg);\n const newDefaultValueStr = getDefaultValue(newArg);\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_CHANGED_KIND,\n description: `Argument ${newArg} has changed type from ${oldArg.type} to ${newArg.type}.`,\n });\n } else if (oldDefaultValueStr !== undefined) {\n if (newDefaultValueStr === undefined) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: `${oldArg} defaultValue was removed.`,\n });\n } else if (oldDefaultValueStr !== newDefaultValueStr) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: `${oldArg} has changed defaultValue from ${oldDefaultValueStr} to ${newDefaultValueStr}.`,\n });\n }\n } else if (\n newDefaultValueStr !== undefined &&\n oldDefaultValueStr === undefined\n ) {\n schemaChanges.push({\n type: SafeChangeType.ARG_DEFAULT_VALUE_ADDED,\n description: `${oldArg} added a defaultValue ${newDefaultValueStr}.`,\n });\n } else if (oldArg.type.toString() !== newArg.type.toString()) {\n schemaChanges.push({\n type: SafeChangeType.ARG_CHANGED_KIND_SAFE,\n description:\n `Argument ${oldArg} has changed type from ` +\n `${String(oldArg.type)} to ${String(newArg.type)}.`,\n });\n }\n\n if (oldArg.description !== newArg.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of argument ${oldArg} has changed to \"${newArg.description}\".`,\n });\n }\n }\n\n for (const newArg of argsDiff.added) {\n if (isRequiredArgument(newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_ARG_ADDED,\n description: `A required argument ${newArg} was added.`,\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_ARG_ADDED,\n description: `An optional argument ${newArg} was added.`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction isChangeSafeForObjectOrInterfaceField(\n oldType: GraphQLType,\n newType: GraphQLType,\n): boolean {\n if (isListType(oldType)) {\n return (\n // if they're both lists, make sure the underlying types are compatible\n (isListType(newType) &&\n isChangeSafeForObjectOrInterfaceField(\n oldType.ofType,\n newType.ofType,\n )) ||\n // moving from nullable to non-null of the same underlying type is safe\n (isNonNullType(newType) &&\n isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))\n );\n }\n\n if (isNonNullType(oldType)) {\n // if they're both non-null, make sure the underlying types are compatible\n return (\n isNonNullType(newType) &&\n isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType)\n );\n }\n\n return (\n // if they're both named types, see if their names are equivalent\n (isNamedType(newType) && oldType.name === newType.name) ||\n // moving from nullable to non-null of the same underlying type is safe\n (isNonNullType(newType) &&\n isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))\n );\n}\n\nfunction isChangeSafeForInputObjectFieldOrFieldArg(\n oldType: GraphQLType,\n newType: GraphQLType,\n): boolean {\n if (isListType(oldType)) {\n // if they're both lists, make sure the underlying types are compatible\n return (\n isListType(newType) &&\n isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType)\n );\n }\n\n if (isNonNullType(oldType)) {\n return (\n // if they're both non-null, make sure the underlying types are\n // compatible\n (isNonNullType(newType) &&\n isChangeSafeForInputObjectFieldOrFieldArg(\n oldType.ofType,\n newType.ofType,\n )) ||\n // moving from non-null to nullable of the same underlying type is safe\n (!isNonNullType(newType) &&\n isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType))\n );\n }\n\n // if they're both named types, see if their names are equivalent\n return isNamedType(newType) && oldType.name === newType.name;\n}\n\nfunction typeKindName(type: GraphQLNamedType): string {\n if (isScalarType(type)) {\n return 'a Scalar type';\n }\n if (isObjectType(type)) {\n return 'an Object type';\n }\n if (isInterfaceType(type)) {\n return 'an Interface type';\n }\n if (isUnionType(type)) {\n return 'a Union type';\n }\n if (isEnumType(type)) {\n return 'an Enum type';\n }\n if (isInputObjectType(type)) {\n return 'an Input type';\n // c8 control statement technically placed a line early secondary to\n // slight swc source mapping error (at least as compared to ts-node without swc)\n /* c8 ignore next 4 */\n }\n // Not reachable, all possible types have been considered.\n invariant(false, 'Unexpected type: ' + inspect(type));\n}\n\n// Since we looking only for client's observable changes we should\n// compare default values in the same representation as they are\n// represented inside introspection.\nfunction getDefaultValue(\n argOrInputField: GraphQLArgument | GraphQLInputField,\n): string | undefined {\n const ast = getDefaultValueAST(argOrInputField);\n if (ast) {\n return print(sortValueNode(ast));\n }\n}\n\nfunction diff<T extends { name: string }>(\n oldArray: ReadonlyArray<T>,\n newArray: ReadonlyArray<T>,\n): {\n added: ReadonlyArray<T>;\n removed: ReadonlyArray<T>;\n persisted: ReadonlyArray<[T, T]>;\n} {\n const added: Array<T> = [];\n const removed: Array<T> = [];\n const persisted: Array<[T, T]> = [];\n\n const oldMap = keyMap(oldArray, ({ name }) => name);\n const newMap = keyMap(newArray, ({ name }) => name);\n\n for (const oldItem of oldArray) {\n const newItem = newMap[oldItem.name];\n if (newItem === undefined) {\n removed.push(oldItem);\n } else {\n persisted.push([oldItem, newItem]);\n }\n }\n\n for (const newItem of newArray) {\n if (oldMap[newItem.name] === undefined) {\n added.push(newItem);\n }\n }\n\n return { added, persisted, removed };\n}\n"]}
1
+ {"version":3,"file":"findSchemaChanges.js","sourceRoot":"","sources":["../../src/utilities/findSchemaChanges.ts"],"names":[],"mappings":"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","sourcesContent":["/** @category Schema Changes */\n\nimport { inspect } from '../jsutils/inspect.ts';\nimport { invariant } from '../jsutils/invariant.ts';\nimport { keyMap } from '../jsutils/keyMap.ts';\n\nimport { print } from '../language/printer.ts';\n\nimport type {\n GraphQLArgument,\n GraphQLEnumType,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputObjectType,\n GraphQLInterfaceType,\n GraphQLNamedType,\n GraphQLObjectType,\n GraphQLType,\n GraphQLUnionType,\n} from '../type/definition.ts';\nimport {\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isListType,\n isNamedType,\n isNonNullType,\n isObjectType,\n isRequiredArgument,\n isRequiredInputField,\n isScalarType,\n isUnionType,\n} from '../type/definition.ts';\nimport { isSpecifiedScalarType } from '../type/scalars.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\nimport { getDefaultValueAST } from './getDefaultValueAST.ts';\nimport { sortValueNode } from './sortValueNode.ts';\n\n/** Categories of schema changes that may break existing operations. */\nexport const BreakingChangeType = {\n TYPE_REMOVED: 'TYPE_REMOVED' as const,\n TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND' as const,\n TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION' as const,\n VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM' as const,\n REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED' as const,\n IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED' as const,\n FIELD_REMOVED: 'FIELD_REMOVED' as const,\n FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND' as const,\n REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED' as const,\n ARG_REMOVED: 'ARG_REMOVED' as const,\n ARG_CHANGED_KIND: 'ARG_CHANGED_KIND' as const,\n DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED' as const,\n DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED' as const,\n REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED' as const,\n DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED' as const,\n DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED' as const,\n} as const;\n\n/** Categories of schema changes that may break existing operations. */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type BreakingChangeType =\n (typeof BreakingChangeType)[keyof typeof BreakingChangeType];\n\n/** Categories of schema changes that may be dangerous for existing operations. */\nexport const DangerousChangeType = {\n VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM' as const,\n TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION' as const,\n OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED' as const,\n OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED' as const,\n IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED' as const,\n ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE' as const,\n} as const;\n\n/** Categories of schema changes that may be dangerous for existing operations. */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type DangerousChangeType =\n (typeof DangerousChangeType)[keyof typeof DangerousChangeType];\n\n/** Categories of schema changes that are considered safe for existing operations. */\nexport const SafeChangeType = {\n DESCRIPTION_CHANGED: 'DESCRIPTION_CHANGED' as const,\n TYPE_ADDED: 'TYPE_ADDED' as const,\n OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED' as const,\n OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED' as const,\n DIRECTIVE_ADDED: 'DIRECTIVE_ADDED' as const,\n FIELD_ADDED: 'FIELD_ADDED' as const,\n DIRECTIVE_REPEATABLE_ADDED: 'DIRECTIVE_REPEATABLE_ADDED' as const,\n DIRECTIVE_LOCATION_ADDED: 'DIRECTIVE_LOCATION_ADDED' as const,\n OPTIONAL_DIRECTIVE_ARG_ADDED: 'OPTIONAL_DIRECTIVE_ARG_ADDED' as const,\n FIELD_CHANGED_KIND_SAFE: 'FIELD_CHANGED_KIND_SAFE' as const,\n ARG_CHANGED_KIND_SAFE: 'ARG_CHANGED_KIND_SAFE' as const,\n ARG_DEFAULT_VALUE_ADDED: 'ARG_DEFAULT_VALUE_ADDED' as const,\n} as const;\n\n/** Categories of schema changes that are considered safe for existing operations. */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type SafeChangeType =\n (typeof SafeChangeType)[keyof typeof SafeChangeType];\n\n/** Description of a schema change that may break existing operations. */\nexport interface BreakingChange {\n /** Specific kind of breaking schema change. */\n type: BreakingChangeType;\n /** Human-readable description of the breaking schema change. */\n description: string;\n}\n\n/** Description of a schema change that may be dangerous for existing operations. */\nexport interface DangerousChange {\n /** Specific kind of dangerous schema change. */\n type: DangerousChangeType;\n /** Human-readable description of the dangerous schema change. */\n description: string;\n}\n\n/** Description of a schema change that is considered safe for existing operations. */\nexport interface SafeChange {\n /** Specific kind of safe schema change. */\n type: SafeChangeType;\n /** Human-readable description of the safe schema change. */\n description: string;\n}\n\n/** Any schema change detected between two schemas. */\nexport type SchemaChange = SafeChange | DangerousChange | BreakingChange;\n\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of breaking changes covered by the other functions down below. This\n * deprecated wrapper will be removed in v18; use `findSchemaChanges()` instead\n * and filter for breaking changes.\n * @param oldSchema - Schema before the change.\n * @param newSchema - Schema after the change.\n * @returns Breaking changes between the two schemas.\n * @example\n * ```ts\n * import { buildSchema, findBreakingChanges } from 'graphql/utilities';\n *\n * const oldSchema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const newSchema = buildSchema(`\n * type Query {\n * hello: String\n * }\n * `);\n *\n * const changes = findBreakingChanges(oldSchema, newSchema);\n *\n * changes.map((change) => change.type); // => ['FIELD_REMOVED']\n * ```\n * @deprecated Please use `findSchemaChanges` instead. Will be removed in v18.\n */\nexport function findBreakingChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<BreakingChange> {\n // @ts-expect-error\n return findSchemaChanges(oldSchema, newSchema).filter(\n (change) => change.type in BreakingChangeType,\n );\n}\n\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of potentially dangerous changes covered by the other functions down below.\n * This deprecated wrapper will be removed in v18; use `findSchemaChanges()`\n * instead and filter for dangerous changes.\n * @param oldSchema - Schema before the change.\n * @param newSchema - Schema after the change.\n * @returns Dangerous changes between the two schemas.\n * @example\n * ```ts\n * import { buildSchema, findDangerousChanges } from 'graphql/utilities';\n *\n * const oldSchema = buildSchema(`\n * enum Episode {\n * NEW_HOPE\n * }\n *\n * type Query {\n * episode: Episode\n * }\n * `);\n * const newSchema = buildSchema(`\n * enum Episode {\n * NEW_HOPE\n * EMPIRE\n * }\n *\n * type Query {\n * episode: Episode\n * }\n * `);\n *\n * const changes = findDangerousChanges(oldSchema, newSchema);\n *\n * changes.map((change) => change.type); // => ['VALUE_ADDED_TO_ENUM']\n * ```\n * @deprecated Please use `findSchemaChanges` instead. Will be removed in v18.\n */\nexport function findDangerousChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<DangerousChange> {\n // @ts-expect-error\n return findSchemaChanges(oldSchema, newSchema).filter(\n (change) => change.type in DangerousChangeType,\n );\n}\n\n/**\n * Finds all schema changes between two schemas.\n * @param oldSchema - Schema before the change.\n * @param newSchema - Schema after the change.\n * @returns Safe, dangerous, and breaking changes between the two schemas.\n * @example\n * ```ts\n * import { buildSchema, findSchemaChanges } from 'graphql/utilities';\n *\n * const oldSchema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const newSchema = buildSchema(`\n * type Query {\n * greeting(name: String): String\n * farewell: String\n * }\n * `);\n *\n * const changes = findSchemaChanges(oldSchema, newSchema);\n *\n * changes.map((change) => change.type); // => ['OPTIONAL_ARG_ADDED', 'FIELD_ADDED']\n * ```\n */\nexport function findSchemaChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<SchemaChange> {\n return [\n ...findTypeChanges(oldSchema, newSchema),\n ...findDirectiveChanges(oldSchema, newSchema),\n ];\n}\n\nfunction findDirectiveChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<SchemaChange> {\n const schemaChanges = [];\n\n const directivesDiff = diff(\n oldSchema.getDirectives(),\n newSchema.getDirectives(),\n );\n\n for (const oldDirective of directivesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REMOVED,\n description: `Directive ${oldDirective} was removed.`,\n });\n }\n\n for (const newDirective of directivesDiff.added) {\n schemaChanges.push({\n type: SafeChangeType.DIRECTIVE_ADDED,\n description: `Directive @${newDirective.name} was added.`,\n });\n }\n\n for (const [oldDirective, newDirective] of directivesDiff.persisted) {\n const argsDiff = diff(oldDirective.args, newDirective.args);\n\n for (const newArg of argsDiff.added) {\n if (isRequiredArgument(newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,\n description: `A required argument ${newArg} was added.`,\n });\n } else {\n schemaChanges.push({\n type: SafeChangeType.OPTIONAL_DIRECTIVE_ARG_ADDED,\n description: `An optional argument @${oldDirective.name}(${newArg.name}:) was added.`,\n });\n }\n }\n\n for (const oldArg of argsDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,\n description: `Argument ${oldArg} was removed.`,\n });\n }\n\n for (const [oldArg, newArg] of argsDiff.persisted) {\n const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(\n oldArg.type,\n newArg.type,\n );\n\n const oldDefaultValueStr = getDefaultValue(oldArg);\n const newDefaultValueStr = getDefaultValue(newArg);\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_CHANGED_KIND,\n description:\n `Argument @${oldDirective.name}(${oldArg.name}:) has changed type from ` +\n `${String(oldArg.type)} to ${String(newArg.type)}.`,\n });\n } else if (oldDefaultValueStr !== undefined) {\n if (newDefaultValueStr === undefined) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: `@${oldDirective.name}(${oldArg.name}:) defaultValue was removed.`,\n });\n } else if (oldDefaultValueStr !== newDefaultValueStr) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: `@${oldDirective.name}(${oldArg.name}:) has changed defaultValue from ${oldDefaultValueStr} to ${newDefaultValueStr}.`,\n });\n }\n } else if (\n newDefaultValueStr !== undefined &&\n oldDefaultValueStr === undefined\n ) {\n schemaChanges.push({\n type: SafeChangeType.ARG_DEFAULT_VALUE_ADDED,\n description: `@${oldDirective.name}(${oldArg.name}:) added a defaultValue ${newDefaultValueStr}.`,\n });\n } else if (oldArg.type.toString() !== newArg.type.toString()) {\n schemaChanges.push({\n type: SafeChangeType.ARG_CHANGED_KIND_SAFE,\n description:\n `Argument @${oldDirective.name}(${oldArg.name}:) has changed type from ` +\n `${String(oldArg.type)} to ${String(newArg.type)}.`,\n });\n }\n\n if (oldArg.description !== newArg.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of @${oldDirective.name}(${oldDirective.name}) has changed to \"${newArg.description}\".`,\n });\n }\n }\n\n if (oldDirective.isRepeatable && !newDirective.isRepeatable) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,\n description: `Repeatable flag was removed from ${oldDirective}.`,\n });\n } else if (newDirective.isRepeatable && !oldDirective.isRepeatable) {\n schemaChanges.push({\n type: SafeChangeType.DIRECTIVE_REPEATABLE_ADDED,\n description: `Repeatable flag was added to @${oldDirective.name}.`,\n });\n }\n\n if (oldDirective.description !== newDirective.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of @${oldDirective.name} has changed to \"${newDirective.description}\".`,\n });\n }\n\n for (const location of oldDirective.locations) {\n if (!newDirective.locations.includes(location)) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,\n description: `${location} was removed from ${oldDirective}.`,\n });\n }\n }\n\n for (const location of newDirective.locations) {\n if (!oldDirective.locations.includes(location)) {\n schemaChanges.push({\n type: SafeChangeType.DIRECTIVE_LOCATION_ADDED,\n description: `${location} was added to @${oldDirective.name}.`,\n });\n }\n }\n }\n\n return schemaChanges;\n}\n\nfunction findTypeChanges(\n oldSchema: GraphQLSchema,\n newSchema: GraphQLSchema,\n): Array<SchemaChange> {\n const schemaChanges = [];\n\n const typesDiff = diff(\n Object.values(oldSchema.getTypeMap()),\n Object.values(newSchema.getTypeMap()),\n );\n\n for (const oldType of typesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED,\n description: isSpecifiedScalarType(oldType)\n ? `Standard scalar ${oldType} was removed because it is not referenced anymore.`\n : `${oldType} was removed.`,\n });\n }\n\n for (const newType of typesDiff.added) {\n schemaChanges.push({\n type: SafeChangeType.TYPE_ADDED,\n description: `${newType} was added.`,\n });\n }\n\n for (const [oldType, newType] of typesDiff.persisted) {\n if (oldType.description !== newType.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of ${oldType.name} has changed to \"${newType.description}\".`,\n });\n }\n\n if (isEnumType(oldType) && isEnumType(newType)) {\n schemaChanges.push(...findEnumTypeChanges(oldType, newType));\n } else if (isUnionType(oldType) && isUnionType(newType)) {\n schemaChanges.push(...findUnionTypeChanges(oldType, newType));\n } else if (isInputObjectType(oldType) && isInputObjectType(newType)) {\n schemaChanges.push(...findInputObjectTypeChanges(oldType, newType));\n } else if (isObjectType(oldType) && isObjectType(newType)) {\n schemaChanges.push(\n ...findFieldChanges(oldType, newType),\n ...findImplementedInterfacesChanges(oldType, newType),\n );\n } else if (isInterfaceType(oldType) && isInterfaceType(newType)) {\n schemaChanges.push(\n ...findFieldChanges(oldType, newType),\n ...findImplementedInterfacesChanges(oldType, newType),\n );\n } else if (oldType.constructor !== newType.constructor) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_CHANGED_KIND,\n description: `${oldType} changed from ${typeKindName(\n oldType,\n )} to ${typeKindName(newType)}.`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findInputObjectTypeChanges(\n oldType: GraphQLInputObjectType,\n newType: GraphQLInputObjectType,\n): Array<SchemaChange> {\n const schemaChanges = [];\n const fieldsDiff = diff(\n Object.values(oldType.getFields()),\n Object.values(newType.getFields()),\n );\n\n for (const newField of fieldsDiff.added) {\n if (isRequiredInputField(newField)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,\n description: `A required field ${newField} was added.`,\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,\n description: `An optional field ${newField} was added.`,\n });\n }\n }\n\n for (const oldField of fieldsDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: `Field ${oldField} was removed.`,\n });\n }\n\n for (const [oldField, newField] of fieldsDiff.persisted) {\n const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(\n oldField.type,\n newField.type,\n );\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: `Field ${newField} changed type from ${oldField.type} to ${newField.type}.`,\n });\n } else if (oldField.type.toString() !== newField.type.toString()) {\n schemaChanges.push({\n type: SafeChangeType.FIELD_CHANGED_KIND_SAFE,\n description:\n `Field ${oldType}.${oldField.name} changed type from ` +\n `${String(oldField.type)} to ${String(newField.type)}.`,\n });\n }\n\n if (oldField.description !== newField.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of input-field ${newType}.${newField.name} has changed to \"${newField.description}\".`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findUnionTypeChanges(\n oldType: GraphQLUnionType,\n newType: GraphQLUnionType,\n): Array<BreakingChange | DangerousChange> {\n const schemaChanges = [];\n const possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());\n\n for (const newPossibleType of possibleTypesDiff.added) {\n schemaChanges.push({\n type: DangerousChangeType.TYPE_ADDED_TO_UNION,\n description: `${newPossibleType} was added to union type ${oldType}.`,\n });\n }\n\n for (const oldPossibleType of possibleTypesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,\n description: `${oldPossibleType} was removed from union type ${oldType}.`,\n });\n }\n\n return schemaChanges;\n}\n\nfunction findEnumTypeChanges(\n oldType: GraphQLEnumType,\n newType: GraphQLEnumType,\n): Array<SchemaChange> {\n const schemaChanges = [];\n const valuesDiff = diff(oldType.getValues(), newType.getValues());\n\n for (const newValue of valuesDiff.added) {\n schemaChanges.push({\n type: DangerousChangeType.VALUE_ADDED_TO_ENUM,\n description: `Enum value ${newValue} was added.`,\n });\n }\n\n for (const oldValue of valuesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,\n description: `Enum value ${oldValue} was removed.`,\n });\n }\n\n for (const [oldValue, newValue] of valuesDiff.persisted) {\n if (oldValue.description !== newValue.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of enum value ${oldType}.${oldValue.name} has changed to \"${newValue.description}\".`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findImplementedInterfacesChanges(\n oldType: GraphQLObjectType | GraphQLInterfaceType,\n newType: GraphQLObjectType | GraphQLInterfaceType,\n): Array<BreakingChange | DangerousChange> {\n const schemaChanges = [];\n const interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());\n\n for (const newInterface of interfacesDiff.added) {\n schemaChanges.push({\n type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,\n description: `${newInterface} added to interfaces implemented by ${oldType}.`,\n });\n }\n\n for (const oldInterface of interfacesDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,\n description: `${oldType} no longer implements interface ${oldInterface}.`,\n });\n }\n\n return schemaChanges;\n}\n\nfunction findFieldChanges(\n oldType: GraphQLObjectType | GraphQLInterfaceType,\n newType: GraphQLObjectType | GraphQLInterfaceType,\n): Array<SchemaChange> {\n const schemaChanges = [];\n const fieldsDiff = diff(\n Object.values(oldType.getFields()),\n Object.values(newType.getFields()),\n );\n\n for (const oldField of fieldsDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: `Field ${oldField} was removed.`,\n });\n }\n\n for (const newField of fieldsDiff.added) {\n schemaChanges.push({\n type: SafeChangeType.FIELD_ADDED,\n description: `Field ${oldType}.${newField.name} was added.`,\n });\n }\n\n for (const [oldField, newField] of fieldsDiff.persisted) {\n schemaChanges.push(...findArgChanges(oldField, newField));\n\n const isSafe = isChangeSafeForObjectOrInterfaceField(\n oldField.type,\n newField.type,\n );\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: `Field ${newField} changed type from ${oldField.type} to ${newField.type}.`,\n });\n } else if (oldField.type.toString() !== newField.type.toString()) {\n schemaChanges.push({\n type: SafeChangeType.FIELD_CHANGED_KIND_SAFE,\n description:\n `Field ${oldType}.${oldField.name} changed type from ` +\n `${String(oldField.type)} to ${String(newField.type)}.`,\n });\n }\n\n if (oldField.description !== newField.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of field ${oldType}.${oldField.name} has changed to \"${newField.description}\".`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findArgChanges(\n oldField: GraphQLField<unknown, unknown>,\n newField: GraphQLField<unknown, unknown>,\n): Array<SchemaChange> {\n const schemaChanges = [];\n const argsDiff = diff(oldField.args, newField.args);\n\n for (const oldArg of argsDiff.removed) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_REMOVED,\n description: `Argument ${oldArg} was removed.`,\n });\n }\n\n for (const [oldArg, newArg] of argsDiff.persisted) {\n const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(\n oldArg.type,\n newArg.type,\n );\n\n const oldDefaultValueStr = getDefaultValue(oldArg);\n const newDefaultValueStr = getDefaultValue(newArg);\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_CHANGED_KIND,\n description: `Argument ${newArg} has changed type from ${oldArg.type} to ${newArg.type}.`,\n });\n } else if (oldDefaultValueStr !== undefined) {\n if (newDefaultValueStr === undefined) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: `${oldArg} defaultValue was removed.`,\n });\n } else if (oldDefaultValueStr !== newDefaultValueStr) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: `${oldArg} has changed defaultValue from ${oldDefaultValueStr} to ${newDefaultValueStr}.`,\n });\n }\n } else if (\n newDefaultValueStr !== undefined &&\n oldDefaultValueStr === undefined\n ) {\n schemaChanges.push({\n type: SafeChangeType.ARG_DEFAULT_VALUE_ADDED,\n description: `${oldArg} added a defaultValue ${newDefaultValueStr}.`,\n });\n } else if (oldArg.type.toString() !== newArg.type.toString()) {\n schemaChanges.push({\n type: SafeChangeType.ARG_CHANGED_KIND_SAFE,\n description:\n `Argument ${oldArg} has changed type from ` +\n `${String(oldArg.type)} to ${String(newArg.type)}.`,\n });\n }\n\n if (oldArg.description !== newArg.description) {\n schemaChanges.push({\n type: SafeChangeType.DESCRIPTION_CHANGED,\n description: `Description of argument ${oldArg} has changed to \"${newArg.description}\".`,\n });\n }\n }\n\n for (const newArg of argsDiff.added) {\n if (isRequiredArgument(newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_ARG_ADDED,\n description: `A required argument ${newArg} was added.`,\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_ARG_ADDED,\n description: `An optional argument ${newArg} was added.`,\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction isChangeSafeForObjectOrInterfaceField(\n oldType: GraphQLType,\n newType: GraphQLType,\n): boolean {\n if (isListType(oldType)) {\n return (\n // if they're both lists, make sure the underlying types are compatible\n (isListType(newType) &&\n isChangeSafeForObjectOrInterfaceField(\n oldType.ofType,\n newType.ofType,\n )) ||\n // moving from nullable to non-null of the same underlying type is safe\n (isNonNullType(newType) &&\n isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))\n );\n }\n\n if (isNonNullType(oldType)) {\n // if they're both non-null, make sure the underlying types are compatible\n return (\n isNonNullType(newType) &&\n isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType)\n );\n }\n\n return (\n // if they're both named types, see if their names are equivalent\n (isNamedType(newType) && oldType.name === newType.name) ||\n // moving from nullable to non-null of the same underlying type is safe\n (isNonNullType(newType) &&\n isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))\n );\n}\n\nfunction isChangeSafeForInputObjectFieldOrFieldArg(\n oldType: GraphQLType,\n newType: GraphQLType,\n): boolean {\n if (isListType(oldType)) {\n // if they're both lists, make sure the underlying types are compatible\n return (\n isListType(newType) &&\n isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType)\n );\n }\n\n if (isNonNullType(oldType)) {\n return (\n // if they're both non-null, make sure the underlying types are\n // compatible\n (isNonNullType(newType) &&\n isChangeSafeForInputObjectFieldOrFieldArg(\n oldType.ofType,\n newType.ofType,\n )) ||\n // moving from non-null to nullable of the same underlying type is safe\n (!isNonNullType(newType) &&\n isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType))\n );\n }\n\n // if they're both named types, see if their names are equivalent\n return isNamedType(newType) && oldType.name === newType.name;\n}\n\nfunction typeKindName(type: GraphQLNamedType): string {\n if (isScalarType(type)) {\n return 'a Scalar type';\n }\n if (isObjectType(type)) {\n return 'an Object type';\n }\n if (isInterfaceType(type)) {\n return 'an Interface type';\n }\n if (isUnionType(type)) {\n return 'a Union type';\n }\n if (isEnumType(type)) {\n return 'an Enum type';\n }\n if (isInputObjectType(type)) {\n return 'an Input type';\n /* node:coverage ignore next 4 */\n }\n // Not reachable, all possible types have been considered.\n invariant(false, 'Unexpected type: ' + inspect(type));\n}\n\n// Since we looking only for client's observable changes we should\n// compare default values in the same representation as they are\n// represented inside introspection.\nfunction getDefaultValue(\n argOrInputField: GraphQLArgument | GraphQLInputField,\n): string | undefined {\n const ast = getDefaultValueAST(argOrInputField);\n if (ast) {\n return print(sortValueNode(ast));\n }\n}\n\nfunction diff<T extends { name: string }>(\n oldArray: ReadonlyArray<T>,\n newArray: ReadonlyArray<T>,\n): {\n added: ReadonlyArray<T>;\n removed: ReadonlyArray<T>;\n persisted: ReadonlyArray<[T, T]>;\n} {\n const added: Array<T> = [];\n const removed: Array<T> = [];\n const persisted: Array<[T, T]> = [];\n\n const oldMap = keyMap(oldArray, ({ name }) => name);\n const newMap = keyMap(newArray, ({ name }) => name);\n\n for (const oldItem of oldArray) {\n const newItem = newMap[oldItem.name];\n if (newItem === undefined) {\n removed.push(oldItem);\n } else {\n persisted.push([oldItem, newItem]);\n }\n }\n\n for (const newItem of newArray) {\n if (oldMap[newItem.name] === undefined) {\n added.push(newItem);\n }\n }\n\n return { added, persisted, removed };\n}\n"]}
@@ -1,3 +1,4 @@
1
- import type { ConstValueNode } from '../language/ast.js';
2
- import type { GraphQLArgument, GraphQLInputField } from '../type/definition.js';
1
+ import type { ConstValueNode } from "../language/ast.mjs";
2
+ import type { GraphQLArgument, GraphQLInputField } from "../type/definition.mjs";
3
+ /** @internal */
3
4
  export declare function getDefaultValueAST(argOrInputField: GraphQLArgument | GraphQLInputField): ConstValueNode | undefined;
@@ -1,3 +1,4 @@
1
- import type { ConstValueNode } from '../language/ast.js';
2
- import type { GraphQLArgument, GraphQLInputField } from '../type/definition.js';
1
+ import type { ConstValueNode } from "../language/ast.js";
2
+ import type { GraphQLArgument, GraphQLInputField } from "../type/definition.js";
3
+ /** @internal */
3
4
  export declare function getDefaultValueAST(argOrInputField: GraphQLArgument | GraphQLInputField): ConstValueNode | undefined;
@@ -1,23 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDefaultValueAST = getDefaultValueAST;
4
- const invariant_js_1 = require("../jsutils/invariant.js");
5
- const astFromValue_js_1 = require("./astFromValue.js");
6
- const valueToLiteral_js_1 = require("./valueToLiteral.js");
4
+ const invariant_ts_1 = require("../jsutils/invariant.js");
5
+ const astFromValue_ts_1 = require("./astFromValue.js");
6
+ const valueToLiteral_ts_1 = require("./valueToLiteral.js");
7
7
  function getDefaultValueAST(argOrInputField) {
8
8
  const type = argOrInputField.type;
9
9
  const defaultInput = argOrInputField.default;
10
10
  if (defaultInput) {
11
- const literal = defaultInput.literal ?? (0, valueToLiteral_js_1.valueToLiteral)(defaultInput.value, type);
11
+ const literal = defaultInput.literal ?? (0, valueToLiteral_ts_1.valueToLiteral)(defaultInput.value, type);
12
12
  if (!(literal != null))
13
- (0, invariant_js_1.invariant)(false, 'Invalid default value');
13
+ (0, invariant_ts_1.invariant)(false, 'Invalid default value');
14
14
  return literal;
15
15
  }
16
16
  const defaultValue = argOrInputField.defaultValue;
17
17
  if (defaultValue !== undefined) {
18
- const valueAST = (0, astFromValue_js_1.astFromValue)(defaultValue, type);
18
+ const valueAST = (0, astFromValue_ts_1.astFromValue)(defaultValue, type);
19
19
  if (!(valueAST != null))
20
- (0, invariant_js_1.invariant)(false, 'Invalid default value');
20
+ (0, invariant_ts_1.invariant)(false, 'Invalid default value');
21
21
  return valueAST;
22
22
  }
23
23
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultValueAST.js","sourceRoot":"","sources":["../../src/utilities/getDefaultValueAST.ts"],"names":[],"mappings":";;AASA,gDAmBC;AA5BD,0DAAoD;AAMpD,uDAAiD;AACjD,2DAAqD;AAErD,SAAgB,kBAAkB,CAChC,eAAoD;IAEpD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAClC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC;IAC7C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,OAAO,GACX,YAAY,CAAC,OAAO,IAAI,IAAA,kCAAc,EAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;cACzD,OAAO,IAAI,IAAI;gBAAzB,wBAAS,SAAkB,uBAAuB;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;IAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAA,8BAAY,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;cACxC,QAAQ,IAAI,IAAI;gBAA1B,wBAAS,SAAmB,uBAAuB;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { invariant } from '../jsutils/invariant.js';\n\nimport type { ConstValueNode } from '../language/ast.js';\n\nimport type { GraphQLArgument, GraphQLInputField } from '../type/definition.js';\n\nimport { astFromValue } from './astFromValue.js';\nimport { valueToLiteral } from './valueToLiteral.js';\n\nexport function getDefaultValueAST(\n argOrInputField: GraphQLArgument | GraphQLInputField,\n): ConstValueNode | undefined {\n const type = argOrInputField.type;\n const defaultInput = argOrInputField.default;\n if (defaultInput) {\n const literal =\n defaultInput.literal ?? valueToLiteral(defaultInput.value, type);\n invariant(literal != null, 'Invalid default value');\n return literal;\n }\n\n const defaultValue = argOrInputField.defaultValue;\n if (defaultValue !== undefined) {\n const valueAST = astFromValue(defaultValue, type);\n invariant(valueAST != null, 'Invalid default value');\n return valueAST;\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"getDefaultValueAST.js","sourceRoot":"","sources":["../../src/utilities/getDefaultValueAST.ts"],"names":[],"mappings":";;AAWA,gDAoBC;AA/BD,0DAAoD;AAOpD,uDAAiD;AACjD,2DAAqD;AAGrD,SAAgB,kBAAkB,CAChC,eAAoD;IAEpD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAClC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC;IAC7C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,OAAO,GACX,YAAY,CAAC,OAAO,IAAI,IAAA,kCAAc,EAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;cACzD,OAAO,IAAI,IAAI;gBAAzB,wBAAS,SAAkB,uBAAuB;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;IAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAG,IAAA,8BAAY,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;cACxC,QAAQ,IAAI,IAAI;gBAA1B,wBAAS,SAAmB,uBAAuB;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { invariant } from '../jsutils/invariant.ts';\n\nimport type { ConstValueNode } from '../language/ast.ts';\n\nimport type { GraphQLArgument, GraphQLInputField } from '../type/definition.ts';\n\n// eslint-disable-next-line import/no-deprecated\nimport { astFromValue } from './astFromValue.ts';\nimport { valueToLiteral } from './valueToLiteral.ts';\n\n/** @internal */\nexport function getDefaultValueAST(\n argOrInputField: GraphQLArgument | GraphQLInputField,\n): ConstValueNode | undefined {\n const type = argOrInputField.type;\n const defaultInput = argOrInputField.default;\n if (defaultInput) {\n const literal =\n defaultInput.literal ?? valueToLiteral(defaultInput.value, type);\n invariant(literal != null, 'Invalid default value');\n return literal;\n }\n\n const defaultValue = argOrInputField.defaultValue;\n if (defaultValue !== undefined) {\n // eslint-disable-next-line import/no-deprecated\n const valueAST = astFromValue(defaultValue, type);\n invariant(valueAST != null, 'Invalid default value');\n return valueAST;\n }\n return undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultValueAST.js","sourceRoot":"","sources":["../../src/utilities/getDefaultValueAST.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iCAAgC;AAMpD,OAAO,EAAE,YAAY,EAAE,2BAA0B;AACjD,OAAO,EAAE,cAAc,EAAE,6BAA4B;AAErD,MAAM,UAAU,kBAAkB,CAChC,eAAoD;IAEpD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAClC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC;IAC7C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,OAAO,GACX,YAAY,CAAC,OAAO,IAAI,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;cACzD,OAAO,IAAI,IAAI;YAAzB,SAAS,QAAkB,uBAAuB;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;IAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;cACxC,QAAQ,IAAI,IAAI;YAA1B,SAAS,QAAmB,uBAAuB;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { invariant } from '../jsutils/invariant.js';\n\nimport type { ConstValueNode } from '../language/ast.js';\n\nimport type { GraphQLArgument, GraphQLInputField } from '../type/definition.js';\n\nimport { astFromValue } from './astFromValue.js';\nimport { valueToLiteral } from './valueToLiteral.js';\n\nexport function getDefaultValueAST(\n argOrInputField: GraphQLArgument | GraphQLInputField,\n): ConstValueNode | undefined {\n const type = argOrInputField.type;\n const defaultInput = argOrInputField.default;\n if (defaultInput) {\n const literal =\n defaultInput.literal ?? valueToLiteral(defaultInput.value, type);\n invariant(literal != null, 'Invalid default value');\n return literal;\n }\n\n const defaultValue = argOrInputField.defaultValue;\n if (defaultValue !== undefined) {\n const valueAST = astFromValue(defaultValue, type);\n invariant(valueAST != null, 'Invalid default value');\n return valueAST;\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"getDefaultValueAST.js","sourceRoot":"","sources":["../../src/utilities/getDefaultValueAST.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iCAAgC;AAOpD,OAAO,EAAE,YAAY,EAAE,2BAA0B;AACjD,OAAO,EAAE,cAAc,EAAE,6BAA4B;AAGrD,MAAM,UAAU,kBAAkB,CAChC,eAAoD;IAEpD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAClC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC;IAC7C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,OAAO,GACX,YAAY,CAAC,OAAO,IAAI,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;cACzD,OAAO,IAAI,IAAI;YAAzB,SAAS,QAAkB,uBAAuB;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;IAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;cACxC,QAAQ,IAAI,IAAI;YAA1B,SAAS,QAAmB,uBAAuB;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { invariant } from '../jsutils/invariant.ts';\n\nimport type { ConstValueNode } from '../language/ast.ts';\n\nimport type { GraphQLArgument, GraphQLInputField } from '../type/definition.ts';\n\n// eslint-disable-next-line import/no-deprecated\nimport { astFromValue } from './astFromValue.ts';\nimport { valueToLiteral } from './valueToLiteral.ts';\n\n/** @internal */\nexport function getDefaultValueAST(\n argOrInputField: GraphQLArgument | GraphQLInputField,\n): ConstValueNode | undefined {\n const type = argOrInputField.type;\n const defaultInput = argOrInputField.default;\n if (defaultInput) {\n const literal =\n defaultInput.literal ?? valueToLiteral(defaultInput.value, type);\n invariant(literal != null, 'Invalid default value');\n return literal;\n }\n\n const defaultValue = argOrInputField.defaultValue;\n if (defaultValue !== undefined) {\n // eslint-disable-next-line import/no-deprecated\n const valueAST = astFromValue(defaultValue, type);\n invariant(valueAST != null, 'Invalid default value');\n return valueAST;\n }\n return undefined;\n}\n"]}