graphql 17.0.0-beta.0 → 17.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (733) hide show
  1. package/__dev__/execution/buildResolveInfo.d.mts +1 -0
  2. package/__dev__/execution/buildResolveInfo.d.ts +1 -0
  3. package/__dev__/execution/buildResolveInfo.js +3 -0
  4. package/__dev__/execution/buildResolveInfo.mjs +3 -0
  5. package/devMode.js +2 -2
  6. package/devMode.js.map +1 -1
  7. package/devMode.mjs.map +1 -1
  8. package/error/GraphQLError.d.mts +4 -4
  9. package/error/GraphQLError.d.ts +4 -4
  10. package/error/GraphQLError.js +10 -11
  11. package/error/GraphQLError.js.map +1 -1
  12. package/error/GraphQLError.mjs +2 -3
  13. package/error/GraphQLError.mjs.map +1 -1
  14. package/error/ensureGraphQLError.d.mts +1 -1
  15. package/error/ensureGraphQLError.d.ts +1 -1
  16. package/error/ensureGraphQLError.js +5 -5
  17. package/error/ensureGraphQLError.js.map +1 -1
  18. package/error/ensureGraphQLError.mjs.map +1 -1
  19. package/error/index.d.mts +4 -4
  20. package/error/index.d.ts +4 -4
  21. package/error/index.js +6 -6
  22. package/error/index.js.map +1 -1
  23. package/error/index.mjs.map +1 -1
  24. package/error/locatedError.d.mts +3 -3
  25. package/error/locatedError.d.ts +3 -3
  26. package/error/locatedError.js +4 -4
  27. package/error/locatedError.js.map +1 -1
  28. package/error/locatedError.mjs.map +1 -1
  29. package/error/syntaxError.d.mts +2 -2
  30. package/error/syntaxError.d.ts +2 -2
  31. package/error/syntaxError.js +2 -2
  32. package/error/syntaxError.js.map +1 -1
  33. package/error/syntaxError.mjs.map +1 -1
  34. package/execution/AbortedGraphQLExecutionError.d.mts +1 -1
  35. package/execution/AbortedGraphQLExecutionError.d.ts +1 -1
  36. package/execution/AbortedGraphQLExecutionError.js.map +1 -1
  37. package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
  38. package/execution/AsyncWorkTracker.js +2 -2
  39. package/execution/AsyncWorkTracker.js.map +1 -1
  40. package/execution/AsyncWorkTracker.mjs.map +1 -1
  41. package/execution/Executor.d.mts +16 -17
  42. package/execution/Executor.d.ts +16 -17
  43. package/execution/Executor.js +83 -85
  44. package/execution/Executor.js.map +1 -1
  45. package/execution/Executor.mjs +3 -5
  46. package/execution/Executor.mjs.map +1 -1
  47. package/execution/ExecutorThrowingOnIncremental.d.mts +6 -6
  48. package/execution/ExecutorThrowingOnIncremental.d.ts +6 -6
  49. package/execution/ExecutorThrowingOnIncremental.js +11 -11
  50. package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
  51. package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
  52. package/execution/buildResolveInfo.d.mts +14 -0
  53. package/execution/buildResolveInfo.d.ts +14 -0
  54. package/execution/buildResolveInfo.js +24 -0
  55. package/execution/buildResolveInfo.js.map +1 -0
  56. package/execution/buildResolveInfo.mjs +21 -0
  57. package/execution/buildResolveInfo.mjs.map +1 -0
  58. package/execution/cancellablePromise.js +2 -2
  59. package/execution/cancellablePromise.js.map +1 -1
  60. package/execution/cancellablePromise.mjs.map +1 -1
  61. package/execution/collectFields.d.mts +6 -6
  62. package/execution/collectFields.d.ts +6 -6
  63. package/execution/collectFields.js +19 -19
  64. package/execution/collectFields.js.map +1 -1
  65. package/execution/collectFields.mjs.map +1 -1
  66. package/execution/collectIteratorPromises.js +2 -2
  67. package/execution/collectIteratorPromises.js.map +1 -1
  68. package/execution/collectIteratorPromises.mjs.map +1 -1
  69. package/execution/createSharedExecutionContext.d.mts +2 -2
  70. package/execution/createSharedExecutionContext.d.ts +2 -2
  71. package/execution/createSharedExecutionContext.js +2 -2
  72. package/execution/createSharedExecutionContext.js.map +1 -1
  73. package/execution/createSharedExecutionContext.mjs.map +1 -1
  74. package/execution/execute.d.mts +14 -14
  75. package/execution/execute.d.ts +14 -14
  76. package/execution/execute.js +78 -98
  77. package/execution/execute.js.map +1 -1
  78. package/execution/execute.mjs +17 -37
  79. package/execution/execute.mjs.map +1 -1
  80. package/execution/getStreamUsage.d.mts +2 -2
  81. package/execution/getStreamUsage.d.ts +2 -2
  82. package/execution/getStreamUsage.js +9 -9
  83. package/execution/getStreamUsage.js.map +1 -1
  84. package/execution/getStreamUsage.mjs.map +1 -1
  85. package/execution/getVariableSignature.d.mts +3 -3
  86. package/execution/getVariableSignature.d.ts +3 -3
  87. package/execution/getVariableSignature.js +8 -8
  88. package/execution/getVariableSignature.js.map +1 -1
  89. package/execution/getVariableSignature.mjs.map +1 -1
  90. package/execution/hooks.d.mts +2 -2
  91. package/execution/hooks.d.ts +2 -2
  92. package/execution/hooks.js.map +1 -1
  93. package/execution/hooks.mjs.map +1 -1
  94. package/execution/incremental/Computation.d.mts +1 -1
  95. package/execution/incremental/Computation.d.ts +1 -1
  96. package/execution/incremental/Computation.js +2 -2
  97. package/execution/incremental/Computation.js.map +1 -1
  98. package/execution/incremental/Computation.mjs.map +1 -1
  99. package/execution/incremental/IncrementalExecutor.d.mts +14 -14
  100. package/execution/incremental/IncrementalExecutor.d.ts +14 -14
  101. package/execution/incremental/IncrementalExecutor.js +48 -48
  102. package/execution/incremental/IncrementalExecutor.js.map +1 -1
  103. package/execution/incremental/IncrementalExecutor.mjs +3 -3
  104. package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
  105. package/execution/incremental/IncrementalPublisher.d.mts +3 -3
  106. package/execution/incremental/IncrementalPublisher.d.ts +3 -3
  107. package/execution/incremental/IncrementalPublisher.js +13 -14
  108. package/execution/incremental/IncrementalPublisher.js.map +1 -1
  109. package/execution/incremental/IncrementalPublisher.mjs +1 -2
  110. package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
  111. package/execution/incremental/Queue.d.mts +1 -1
  112. package/execution/incremental/Queue.d.ts +1 -1
  113. package/execution/incremental/Queue.js +26 -22
  114. package/execution/incremental/Queue.js.map +1 -1
  115. package/execution/incremental/Queue.mjs +10 -6
  116. package/execution/incremental/Queue.mjs.map +1 -1
  117. package/execution/incremental/WorkQueue.d.mts +2 -2
  118. package/execution/incremental/WorkQueue.d.ts +2 -2
  119. package/execution/incremental/WorkQueue.js +7 -7
  120. package/execution/incremental/WorkQueue.js.map +1 -1
  121. package/execution/incremental/WorkQueue.mjs.map +1 -1
  122. package/execution/incremental/buildExecutionPlan.d.mts +1 -1
  123. package/execution/incremental/buildExecutionPlan.d.ts +1 -1
  124. package/execution/incremental/buildExecutionPlan.js +4 -4
  125. package/execution/incremental/buildExecutionPlan.js.map +1 -1
  126. package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
  127. package/execution/index.d.mts +8 -8
  128. package/execution/index.d.ts +8 -8
  129. package/execution/index.js +23 -22
  130. package/execution/index.js.map +1 -1
  131. package/execution/index.mjs +1 -1
  132. package/execution/index.mjs.map +1 -1
  133. package/execution/mapAsyncIterable.d.mts +1 -1
  134. package/execution/mapAsyncIterable.d.ts +1 -1
  135. package/execution/mapAsyncIterable.js +4 -4
  136. package/execution/mapAsyncIterable.js.map +1 -1
  137. package/execution/mapAsyncIterable.mjs.map +1 -1
  138. package/execution/returnIteratorCatchingErrors.js +1 -1
  139. package/execution/returnIteratorCatchingErrors.js.map +1 -1
  140. package/execution/returnIteratorCatchingErrors.mjs +1 -1
  141. package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
  142. package/execution/values.d.mts +9 -9
  143. package/execution/values.d.ts +9 -9
  144. package/execution/values.js +34 -34
  145. package/execution/values.js.map +1 -1
  146. package/execution/values.mjs +2 -2
  147. package/execution/values.mjs.map +1 -1
  148. package/execution/withConcurrentAbruptClose.d.mts +1 -1
  149. package/execution/withConcurrentAbruptClose.d.ts +1 -1
  150. package/execution/withConcurrentAbruptClose.js +4 -4
  151. package/execution/withConcurrentAbruptClose.js.map +1 -1
  152. package/execution/withConcurrentAbruptClose.mjs +2 -2
  153. package/execution/withConcurrentAbruptClose.mjs.map +1 -1
  154. package/graphql.d.mts +7 -7
  155. package/graphql.d.ts +7 -7
  156. package/graphql.js +11 -11
  157. package/graphql.js.map +1 -1
  158. package/graphql.mjs.map +1 -1
  159. package/harness.d.mts +4 -4
  160. package/harness.d.ts +4 -4
  161. package/harness.js +7 -7
  162. package/harness.js.map +1 -1
  163. package/harness.mjs.map +1 -1
  164. package/index.d.mts +20 -20
  165. package/index.d.ts +20 -20
  166. package/index.js +253 -252
  167. package/index.js.map +1 -1
  168. package/index.mjs +1 -1
  169. package/index.mjs.map +1 -1
  170. package/jsutils/Path.d.mts +1 -1
  171. package/jsutils/Path.d.ts +1 -1
  172. package/jsutils/Path.js.map +1 -1
  173. package/jsutils/Path.mjs.map +1 -1
  174. package/jsutils/didYouMean.js +2 -2
  175. package/jsutils/didYouMean.js.map +1 -1
  176. package/jsutils/didYouMean.mjs.map +1 -1
  177. package/jsutils/formatList.js +2 -2
  178. package/jsutils/formatList.js.map +1 -1
  179. package/jsutils/formatList.mjs.map +1 -1
  180. package/jsutils/getBySet.js +2 -2
  181. package/jsutils/getBySet.js.map +1 -1
  182. package/jsutils/getBySet.mjs.map +1 -1
  183. package/jsutils/groupBy.js +2 -2
  184. package/jsutils/groupBy.js.map +1 -1
  185. package/jsutils/groupBy.mjs.map +1 -1
  186. package/jsutils/instanceOf.js +2 -2
  187. package/jsutils/instanceOf.js.map +1 -1
  188. package/jsutils/instanceOf.mjs.map +1 -1
  189. package/jsutils/keyMap.d.mts +1 -1
  190. package/jsutils/keyMap.d.ts +1 -1
  191. package/jsutils/keyMap.js.map +1 -1
  192. package/jsutils/keyMap.mjs.map +1 -1
  193. package/jsutils/keyValMap.d.mts +1 -1
  194. package/jsutils/keyValMap.d.ts +1 -1
  195. package/jsutils/keyValMap.js.map +1 -1
  196. package/jsutils/keyValMap.mjs.map +1 -1
  197. package/jsutils/mapValue.d.mts +1 -1
  198. package/jsutils/mapValue.d.ts +1 -1
  199. package/jsutils/mapValue.js.map +1 -1
  200. package/jsutils/mapValue.mjs.map +1 -1
  201. package/jsutils/promiseForObject.d.mts +2 -2
  202. package/jsutils/promiseForObject.d.ts +2 -2
  203. package/jsutils/promiseForObject.js.map +1 -1
  204. package/jsutils/promiseForObject.mjs.map +1 -1
  205. package/jsutils/promiseReduce.d.mts +1 -1
  206. package/jsutils/promiseReduce.d.ts +1 -1
  207. package/jsutils/promiseReduce.js +2 -2
  208. package/jsutils/promiseReduce.js.map +1 -1
  209. package/jsutils/promiseReduce.mjs.map +1 -1
  210. package/jsutils/promiseWithResolvers.d.mts +1 -1
  211. package/jsutils/promiseWithResolvers.d.ts +1 -1
  212. package/jsutils/promiseWithResolvers.js.map +1 -1
  213. package/jsutils/promiseWithResolvers.mjs.map +1 -1
  214. package/jsutils/suggestionList.js +2 -2
  215. package/jsutils/suggestionList.js.map +1 -1
  216. package/jsutils/suggestionList.mjs.map +1 -1
  217. package/jsutils/toError.js +2 -2
  218. package/jsutils/toError.js.map +1 -1
  219. package/jsutils/toError.mjs.map +1 -1
  220. package/jsutils/toObjMap.d.mts +2 -2
  221. package/jsutils/toObjMap.d.ts +2 -2
  222. package/jsutils/toObjMap.js.map +1 -1
  223. package/jsutils/toObjMap.mjs.map +1 -1
  224. package/language/KindTypeMap.d.mts +1 -1
  225. package/language/KindTypeMap.d.ts +1 -1
  226. package/language/KindTypeMap.js.map +1 -1
  227. package/language/KindTypeMap.mjs.map +1 -1
  228. package/language/ast.d.mts +12 -5
  229. package/language/ast.d.ts +12 -5
  230. package/language/ast.js +8 -1
  231. package/language/ast.js.map +1 -1
  232. package/language/ast.mjs +8 -1
  233. package/language/ast.mjs.map +1 -1
  234. package/language/blockString.js +4 -4
  235. package/language/blockString.js.map +1 -1
  236. package/language/blockString.mjs.map +1 -1
  237. package/language/directiveLocation.d.mts +2 -1
  238. package/language/directiveLocation.d.ts +2 -1
  239. package/language/directiveLocation.js +2 -1
  240. package/language/directiveLocation.js.map +1 -1
  241. package/language/directiveLocation.mjs +2 -1
  242. package/language/directiveLocation.mjs.map +1 -1
  243. package/language/index.d.mts +16 -16
  244. package/language/index.d.ts +16 -16
  245. package/language/index.js +45 -45
  246. package/language/index.js.map +1 -1
  247. package/language/index.mjs.map +1 -1
  248. package/language/kinds.d.mts +2 -2
  249. package/language/kinds.d.ts +2 -2
  250. package/language/kinds.js.map +1 -1
  251. package/language/kinds.mjs.map +1 -1
  252. package/language/kinds_.d.mts +2 -0
  253. package/language/kinds_.d.ts +2 -0
  254. package/language/kinds_.js +2 -1
  255. package/language/kinds_.js.map +1 -1
  256. package/language/kinds_.mjs +1 -0
  257. package/language/kinds_.mjs.map +1 -1
  258. package/language/lexer.d.mts +3 -3
  259. package/language/lexer.d.ts +3 -3
  260. package/language/lexer.js +67 -67
  261. package/language/lexer.js.map +1 -1
  262. package/language/lexer.mjs.map +1 -1
  263. package/language/location.d.mts +1 -1
  264. package/language/location.d.ts +1 -1
  265. package/language/location.js +2 -2
  266. package/language/location.js.map +1 -1
  267. package/language/location.mjs.map +1 -1
  268. package/language/parser.d.mts +20 -7
  269. package/language/parser.d.ts +20 -7
  270. package/language/parser.js +185 -155
  271. package/language/parser.js.map +1 -1
  272. package/language/parser.mjs +30 -0
  273. package/language/parser.mjs.map +1 -1
  274. package/language/predicates.d.mts +1 -1
  275. package/language/predicates.d.ts +1 -1
  276. package/language/predicates.js +45 -43
  277. package/language/predicates.js.map +1 -1
  278. package/language/predicates.mjs +3 -1
  279. package/language/predicates.mjs.map +1 -1
  280. package/language/printLocation.d.mts +3 -3
  281. package/language/printLocation.d.ts +3 -3
  282. package/language/printLocation.js +2 -2
  283. package/language/printLocation.js.map +1 -1
  284. package/language/printLocation.mjs.map +1 -1
  285. package/language/printer.d.mts +1 -1
  286. package/language/printer.d.ts +1 -1
  287. package/language/printer.js +10 -6
  288. package/language/printer.js.map +1 -1
  289. package/language/printer.mjs +5 -1
  290. package/language/printer.mjs.map +1 -1
  291. package/language/schemaCoordinateLexer.d.mts +3 -3
  292. package/language/schemaCoordinateLexer.d.ts +3 -3
  293. package/language/schemaCoordinateLexer.js +16 -16
  294. package/language/schemaCoordinateLexer.js.map +1 -1
  295. package/language/schemaCoordinateLexer.mjs.map +1 -1
  296. package/language/source.js +5 -5
  297. package/language/source.js.map +1 -1
  298. package/language/source.mjs.map +1 -1
  299. package/language/visitor.d.mts +2 -2
  300. package/language/visitor.d.ts +2 -2
  301. package/language/visitor.js +10 -10
  302. package/language/visitor.js.map +1 -1
  303. package/language/visitor.mjs.map +1 -1
  304. package/package.json +2 -2
  305. package/type/assertName.js +8 -8
  306. package/type/assertName.js.map +1 -1
  307. package/type/assertName.mjs.map +1 -1
  308. package/type/definition.d.mts +9 -9
  309. package/type/definition.d.ts +9 -9
  310. package/type/definition.js +94 -94
  311. package/type/definition.js.map +1 -1
  312. package/type/definition.mjs.map +1 -1
  313. package/type/directives.d.mts +11 -6
  314. package/type/directives.d.ts +11 -6
  315. package/type/directives.js +51 -46
  316. package/type/directives.js.map +1 -1
  317. package/type/directives.mjs +5 -0
  318. package/type/directives.mjs.map +1 -1
  319. package/type/index.d.mts +12 -12
  320. package/type/index.d.ts +12 -12
  321. package/type/index.js +106 -106
  322. package/type/index.js.map +1 -1
  323. package/type/index.mjs.map +1 -1
  324. package/type/introspection.d.mts +2 -2
  325. package/type/introspection.d.ts +2 -2
  326. package/type/introspection.js +123 -103
  327. package/type/introspection.js.map +1 -1
  328. package/type/introspection.mjs +25 -5
  329. package/type/introspection.mjs.map +1 -1
  330. package/type/scalars.d.mts +2 -2
  331. package/type/scalars.d.ts +2 -2
  332. package/type/scalars.js +61 -61
  333. package/type/scalars.js.map +1 -1
  334. package/type/scalars.mjs.map +1 -1
  335. package/type/schema.d.mts +7 -7
  336. package/type/schema.d.ts +7 -7
  337. package/type/schema.js +32 -32
  338. package/type/schema.js.map +1 -1
  339. package/type/schema.mjs.map +1 -1
  340. package/type/validate.d.mts +4 -4
  341. package/type/validate.d.ts +4 -4
  342. package/type/validate.js +83 -83
  343. package/type/validate.js.map +1 -1
  344. package/type/validate.mjs +1 -1
  345. package/type/validate.mjs.map +1 -1
  346. package/utilities/TypeInfo.d.mts +6 -6
  347. package/utilities/TypeInfo.d.ts +6 -6
  348. package/utilities/TypeInfo.js +61 -61
  349. package/utilities/TypeInfo.js.map +1 -1
  350. package/utilities/TypeInfo.mjs +1 -1
  351. package/utilities/TypeInfo.mjs.map +1 -1
  352. package/utilities/astFromValue.d.mts +3 -3
  353. package/utilities/astFromValue.d.ts +3 -3
  354. package/utilities/astFromValue.js +31 -33
  355. package/utilities/astFromValue.js.map +1 -1
  356. package/utilities/astFromValue.mjs +1 -3
  357. package/utilities/astFromValue.mjs.map +1 -1
  358. package/utilities/buildASTSchema.d.mts +5 -5
  359. package/utilities/buildASTSchema.d.ts +5 -5
  360. package/utilities/buildASTSchema.js +11 -10
  361. package/utilities/buildASTSchema.js.map +1 -1
  362. package/utilities/buildASTSchema.mjs +1 -0
  363. package/utilities/buildASTSchema.mjs.map +1 -1
  364. package/utilities/buildClientSchema.d.mts +3 -3
  365. package/utilities/buildClientSchema.d.ts +3 -3
  366. package/utilities/buildClientSchema.js +53 -52
  367. package/utilities/buildClientSchema.js.map +1 -1
  368. package/utilities/buildClientSchema.mjs +1 -0
  369. package/utilities/buildClientSchema.mjs.map +1 -1
  370. package/utilities/coerceInputValue.d.mts +5 -5
  371. package/utilities/coerceInputValue.d.ts +5 -5
  372. package/utilities/coerceInputValue.js +31 -31
  373. package/utilities/coerceInputValue.js.map +1 -1
  374. package/utilities/coerceInputValue.mjs.map +1 -1
  375. package/utilities/concatAST.d.mts +1 -1
  376. package/utilities/concatAST.d.ts +1 -1
  377. package/utilities/concatAST.js +2 -2
  378. package/utilities/concatAST.js.map +1 -1
  379. package/utilities/concatAST.mjs.map +1 -1
  380. package/utilities/extendSchema.d.mts +3 -3
  381. package/utilities/extendSchema.d.ts +3 -3
  382. package/utilities/extendSchema.js +92 -66
  383. package/utilities/extendSchema.js.map +1 -1
  384. package/utilities/extendSchema.mjs +27 -1
  385. package/utilities/extendSchema.mjs.map +1 -1
  386. package/utilities/findSchemaChanges.d.mts +1 -1
  387. package/utilities/findSchemaChanges.d.ts +1 -1
  388. package/utilities/findSchemaChanges.js +42 -44
  389. package/utilities/findSchemaChanges.js.map +1 -1
  390. package/utilities/findSchemaChanges.mjs +1 -3
  391. package/utilities/findSchemaChanges.mjs.map +1 -1
  392. package/utilities/getDefaultValueAST.d.mts +2 -2
  393. package/utilities/getDefaultValueAST.d.ts +2 -2
  394. package/utilities/getDefaultValueAST.js +9 -7
  395. package/utilities/getDefaultValueAST.js.map +1 -1
  396. package/utilities/getDefaultValueAST.mjs +2 -0
  397. package/utilities/getDefaultValueAST.mjs.map +1 -1
  398. package/utilities/getIntrospectionQuery.d.mts +19 -3
  399. package/utilities/getIntrospectionQuery.d.ts +19 -3
  400. package/utilities/getIntrospectionQuery.js +22 -38
  401. package/utilities/getIntrospectionQuery.js.map +1 -1
  402. package/utilities/getIntrospectionQuery.mjs +22 -38
  403. package/utilities/getIntrospectionQuery.mjs.map +1 -1
  404. package/utilities/getOperationAST.d.mts +2 -2
  405. package/utilities/getOperationAST.d.ts +2 -2
  406. package/utilities/getOperationAST.js +2 -2
  407. package/utilities/getOperationAST.js.map +1 -1
  408. package/utilities/getOperationAST.mjs.map +1 -1
  409. package/utilities/index.d.mts +28 -28
  410. package/utilities/index.d.ts +28 -28
  411. package/utilities/index.js +61 -61
  412. package/utilities/index.js.map +1 -1
  413. package/utilities/index.mjs.map +1 -1
  414. package/utilities/introspectionFromSchema.d.mts +2 -2
  415. package/utilities/introspectionFromSchema.d.ts +2 -2
  416. package/utilities/introspectionFromSchema.js +8 -7
  417. package/utilities/introspectionFromSchema.js.map +1 -1
  418. package/utilities/introspectionFromSchema.mjs +1 -0
  419. package/utilities/introspectionFromSchema.mjs.map +1 -1
  420. package/utilities/lexicographicSortSchema.d.mts +1 -1
  421. package/utilities/lexicographicSortSchema.d.ts +1 -1
  422. package/utilities/lexicographicSortSchema.js +14 -14
  423. package/utilities/lexicographicSortSchema.js.map +1 -1
  424. package/utilities/lexicographicSortSchema.mjs.map +1 -1
  425. package/utilities/mapSchemaConfig.d.mts +3 -3
  426. package/utilities/mapSchemaConfig.d.ts +3 -3
  427. package/utilities/mapSchemaConfig.js +29 -31
  428. package/utilities/mapSchemaConfig.js.map +1 -1
  429. package/utilities/mapSchemaConfig.mjs +1 -3
  430. package/utilities/mapSchemaConfig.mjs.map +1 -1
  431. package/utilities/printSchema.d.mts +3 -3
  432. package/utilities/printSchema.d.ts +3 -3
  433. package/utilities/printSchema.js +31 -32
  434. package/utilities/printSchema.js.map +1 -1
  435. package/utilities/printSchema.mjs +2 -3
  436. package/utilities/printSchema.mjs.map +1 -1
  437. package/utilities/replaceVariables.d.mts +4 -4
  438. package/utilities/replaceVariables.d.ts +4 -4
  439. package/utilities/replaceVariables.js +9 -9
  440. package/utilities/replaceVariables.js.map +1 -1
  441. package/utilities/replaceVariables.mjs.map +1 -1
  442. package/utilities/resolveSchemaCoordinate.d.mts +5 -5
  443. package/utilities/resolveSchemaCoordinate.d.ts +5 -5
  444. package/utilities/resolveSchemaCoordinate.js +23 -23
  445. package/utilities/resolveSchemaCoordinate.js.map +1 -1
  446. package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
  447. package/utilities/separateOperations.d.mts +2 -2
  448. package/utilities/separateOperations.d.ts +2 -2
  449. package/utilities/separateOperations.js +7 -7
  450. package/utilities/separateOperations.js.map +1 -1
  451. package/utilities/separateOperations.mjs.map +1 -1
  452. package/utilities/sortValueNode.d.mts +1 -1
  453. package/utilities/sortValueNode.d.ts +1 -1
  454. package/utilities/sortValueNode.js +12 -12
  455. package/utilities/sortValueNode.js.map +1 -1
  456. package/utilities/sortValueNode.mjs.map +1 -1
  457. package/utilities/stripIgnoredCharacters.d.mts +1 -1
  458. package/utilities/stripIgnoredCharacters.d.ts +1 -1
  459. package/utilities/stripIgnoredCharacters.js +11 -11
  460. package/utilities/stripIgnoredCharacters.js.map +1 -1
  461. package/utilities/stripIgnoredCharacters.mjs.map +1 -1
  462. package/utilities/typeComparators.d.mts +2 -2
  463. package/utilities/typeComparators.d.ts +2 -2
  464. package/utilities/typeComparators.js +14 -14
  465. package/utilities/typeComparators.js.map +1 -1
  466. package/utilities/typeComparators.mjs.map +1 -1
  467. package/utilities/typeFromAST.d.mts +4 -4
  468. package/utilities/typeFromAST.d.ts +4 -4
  469. package/utilities/typeFromAST.js +7 -7
  470. package/utilities/typeFromAST.js.map +1 -1
  471. package/utilities/typeFromAST.mjs.map +1 -1
  472. package/utilities/typedQueryDocumentNode.d.mts +1 -1
  473. package/utilities/typedQueryDocumentNode.d.ts +1 -1
  474. package/utilities/typedQueryDocumentNode.js.map +1 -1
  475. package/utilities/typedQueryDocumentNode.mjs.map +1 -1
  476. package/utilities/validateInputValue.d.mts +6 -6
  477. package/utilities/validateInputValue.d.ts +6 -6
  478. package/utilities/validateInputValue.js +60 -60
  479. package/utilities/validateInputValue.js.map +1 -1
  480. package/utilities/validateInputValue.mjs.map +1 -1
  481. package/utilities/valueFromAST.d.mts +4 -4
  482. package/utilities/valueFromAST.d.ts +4 -4
  483. package/utilities/valueFromAST.js +20 -22
  484. package/utilities/valueFromAST.js.map +1 -1
  485. package/utilities/valueFromAST.mjs +1 -3
  486. package/utilities/valueFromAST.mjs.map +1 -1
  487. package/utilities/valueFromASTUntyped.d.mts +3 -3
  488. package/utilities/valueFromASTUntyped.d.ts +3 -3
  489. package/utilities/valueFromASTUntyped.js +12 -12
  490. package/utilities/valueFromASTUntyped.js.map +1 -1
  491. package/utilities/valueFromASTUntyped.mjs.map +1 -1
  492. package/utilities/valueToLiteral.d.mts +2 -2
  493. package/utilities/valueToLiteral.d.ts +2 -2
  494. package/utilities/valueToLiteral.js +30 -30
  495. package/utilities/valueToLiteral.js.map +1 -1
  496. package/utilities/valueToLiteral.mjs.map +1 -1
  497. package/validation/ValidationContext.d.mts +9 -9
  498. package/validation/ValidationContext.d.ts +9 -9
  499. package/validation/ValidationContext.js +8 -8
  500. package/validation/ValidationContext.js.map +1 -1
  501. package/validation/ValidationContext.mjs.map +1 -1
  502. package/validation/index.d.mts +46 -46
  503. package/validation/index.d.ts +46 -46
  504. package/validation/index.js +91 -91
  505. package/validation/index.js.map +1 -1
  506. package/validation/index.mjs.map +1 -1
  507. package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +2 -2
  508. package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +2 -2
  509. package/validation/rules/DeferStreamDirectiveLabelRule.js +9 -9
  510. package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
  511. package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
  512. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +2 -2
  513. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +2 -2
  514. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +8 -8
  515. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
  516. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
  517. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +2 -2
  518. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +2 -2
  519. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +14 -14
  520. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
  521. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
  522. package/validation/rules/ExecutableDefinitionsRule.d.mts +2 -2
  523. package/validation/rules/ExecutableDefinitionsRule.d.ts +2 -2
  524. package/validation/rules/ExecutableDefinitionsRule.js +7 -7
  525. package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
  526. package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
  527. package/validation/rules/FieldsOnCorrectTypeRule.d.mts +2 -2
  528. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +2 -2
  529. package/validation/rules/FieldsOnCorrectTypeRule.js +14 -14
  530. package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
  531. package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
  532. package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +2 -2
  533. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +2 -2
  534. package/validation/rules/FragmentsOnCompositeTypesRule.js +12 -12
  535. package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
  536. package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
  537. package/validation/rules/KnownArgumentNamesRule.d.mts +2 -2
  538. package/validation/rules/KnownArgumentNamesRule.d.ts +2 -2
  539. package/validation/rules/KnownArgumentNamesRule.js +16 -16
  540. package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
  541. package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
  542. package/validation/rules/KnownDirectivesRule.d.mts +2 -2
  543. package/validation/rules/KnownDirectivesRule.d.ts +2 -2
  544. package/validation/rules/KnownDirectivesRule.js +67 -64
  545. package/validation/rules/KnownDirectivesRule.js.map +1 -1
  546. package/validation/rules/KnownDirectivesRule.mjs +4 -1
  547. package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
  548. package/validation/rules/KnownFragmentNamesRule.d.mts +2 -2
  549. package/validation/rules/KnownFragmentNamesRule.d.ts +2 -2
  550. package/validation/rules/KnownFragmentNamesRule.js +2 -2
  551. package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
  552. package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
  553. package/validation/rules/KnownOperationTypesRule.d.mts +2 -2
  554. package/validation/rules/KnownOperationTypesRule.d.ts +2 -2
  555. package/validation/rules/KnownOperationTypesRule.js +2 -2
  556. package/validation/rules/KnownOperationTypesRule.js.map +1 -1
  557. package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
  558. package/validation/rules/KnownTypeNamesRule.d.mts +2 -2
  559. package/validation/rules/KnownTypeNamesRule.d.ts +2 -2
  560. package/validation/rules/KnownTypeNamesRule.js +11 -11
  561. package/validation/rules/KnownTypeNamesRule.js.map +1 -1
  562. package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
  563. package/validation/rules/LoneAnonymousOperationRule.d.mts +2 -2
  564. package/validation/rules/LoneAnonymousOperationRule.d.ts +2 -2
  565. package/validation/rules/LoneAnonymousOperationRule.js +4 -4
  566. package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
  567. package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
  568. package/validation/rules/LoneSchemaDefinitionRule.d.mts +2 -2
  569. package/validation/rules/LoneSchemaDefinitionRule.d.ts +2 -2
  570. package/validation/rules/LoneSchemaDefinitionRule.js +3 -3
  571. package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
  572. package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
  573. package/validation/rules/MaxIntrospectionDepthRule.d.mts +2 -2
  574. package/validation/rules/MaxIntrospectionDepthRule.d.ts +2 -2
  575. package/validation/rules/MaxIntrospectionDepthRule.js +5 -5
  576. package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
  577. package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
  578. package/validation/rules/NoFragmentCyclesRule.d.mts +2 -2
  579. package/validation/rules/NoFragmentCyclesRule.d.ts +2 -2
  580. package/validation/rules/NoFragmentCyclesRule.js +2 -2
  581. package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
  582. package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
  583. package/validation/rules/NoUndefinedVariablesRule.d.mts +2 -2
  584. package/validation/rules/NoUndefinedVariablesRule.d.ts +2 -2
  585. package/validation/rules/NoUndefinedVariablesRule.js +2 -2
  586. package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
  587. package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
  588. package/validation/rules/NoUnusedFragmentsRule.d.mts +2 -2
  589. package/validation/rules/NoUnusedFragmentsRule.d.ts +2 -2
  590. package/validation/rules/NoUnusedFragmentsRule.js +2 -2
  591. package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
  592. package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
  593. package/validation/rules/NoUnusedVariablesRule.d.mts +2 -2
  594. package/validation/rules/NoUnusedVariablesRule.d.ts +2 -2
  595. package/validation/rules/NoUnusedVariablesRule.js +3 -3
  596. package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
  597. package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
  598. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +2 -2
  599. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +2 -2
  600. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +31 -31
  601. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
  602. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
  603. package/validation/rules/PossibleFragmentSpreadsRule.d.mts +2 -2
  604. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +2 -2
  605. package/validation/rules/PossibleFragmentSpreadsRule.js +17 -17
  606. package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
  607. package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
  608. package/validation/rules/PossibleTypeExtensionsRule.d.mts +2 -2
  609. package/validation/rules/PossibleTypeExtensionsRule.d.ts +2 -2
  610. package/validation/rules/PossibleTypeExtensionsRule.js +40 -42
  611. package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
  612. package/validation/rules/PossibleTypeExtensionsRule.mjs +2 -4
  613. package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
  614. package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +2 -2
  615. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +2 -2
  616. package/validation/rules/ProvidedRequiredArgumentsRule.js +20 -20
  617. package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
  618. package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
  619. package/validation/rules/ScalarLeafsRule.d.mts +2 -2
  620. package/validation/rules/ScalarLeafsRule.d.ts +2 -2
  621. package/validation/rules/ScalarLeafsRule.js +10 -10
  622. package/validation/rules/ScalarLeafsRule.js.map +1 -1
  623. package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
  624. package/validation/rules/SingleFieldSubscriptionsRule.d.mts +2 -2
  625. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +2 -2
  626. package/validation/rules/SingleFieldSubscriptionsRule.js +8 -8
  627. package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
  628. package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
  629. package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +2 -2
  630. package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +2 -2
  631. package/validation/rules/StreamDirectiveOnListFieldRule.js +7 -7
  632. package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
  633. package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
  634. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +2 -2
  635. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +2 -2
  636. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +4 -4
  637. package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
  638. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
  639. package/validation/rules/UniqueArgumentNamesRule.d.mts +2 -2
  640. package/validation/rules/UniqueArgumentNamesRule.d.ts +2 -2
  641. package/validation/rules/UniqueArgumentNamesRule.js +4 -4
  642. package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
  643. package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
  644. package/validation/rules/UniqueDirectiveNamesRule.d.mts +2 -2
  645. package/validation/rules/UniqueDirectiveNamesRule.d.ts +2 -2
  646. package/validation/rules/UniqueDirectiveNamesRule.js +3 -3
  647. package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
  648. package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
  649. package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +2 -2
  650. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +2 -2
  651. package/validation/rules/UniqueDirectivesPerLocationRule.js +20 -10
  652. package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
  653. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +10 -0
  654. package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
  655. package/validation/rules/UniqueEnumValueNamesRule.d.mts +2 -2
  656. package/validation/rules/UniqueEnumValueNamesRule.d.ts +2 -2
  657. package/validation/rules/UniqueEnumValueNamesRule.js +5 -5
  658. package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
  659. package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
  660. package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +2 -2
  661. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +2 -2
  662. package/validation/rules/UniqueFieldDefinitionNamesRule.js +5 -5
  663. package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
  664. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
  665. package/validation/rules/UniqueFragmentNamesRule.d.mts +2 -2
  666. package/validation/rules/UniqueFragmentNamesRule.d.ts +2 -2
  667. package/validation/rules/UniqueFragmentNamesRule.js +2 -2
  668. package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
  669. package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
  670. package/validation/rules/UniqueInputFieldNamesRule.d.mts +2 -2
  671. package/validation/rules/UniqueInputFieldNamesRule.d.ts +2 -2
  672. package/validation/rules/UniqueInputFieldNamesRule.js +4 -4
  673. package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
  674. package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
  675. package/validation/rules/UniqueOperationNamesRule.d.mts +2 -2
  676. package/validation/rules/UniqueOperationNamesRule.d.ts +2 -2
  677. package/validation/rules/UniqueOperationNamesRule.js +2 -2
  678. package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
  679. package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
  680. package/validation/rules/UniqueOperationTypesRule.d.mts +2 -2
  681. package/validation/rules/UniqueOperationTypesRule.d.ts +2 -2
  682. package/validation/rules/UniqueOperationTypesRule.js +3 -3
  683. package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
  684. package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
  685. package/validation/rules/UniqueTypeNamesRule.d.mts +2 -2
  686. package/validation/rules/UniqueTypeNamesRule.d.ts +2 -2
  687. package/validation/rules/UniqueTypeNamesRule.js +3 -3
  688. package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
  689. package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
  690. package/validation/rules/UniqueVariableNamesRule.d.mts +2 -2
  691. package/validation/rules/UniqueVariableNamesRule.d.ts +2 -2
  692. package/validation/rules/UniqueVariableNamesRule.js +4 -4
  693. package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
  694. package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
  695. package/validation/rules/ValuesOfCorrectTypeRule.d.mts +2 -2
  696. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +2 -2
  697. package/validation/rules/ValuesOfCorrectTypeRule.js +2 -2
  698. package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
  699. package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
  700. package/validation/rules/VariablesAreInputTypesRule.d.mts +2 -2
  701. package/validation/rules/VariablesAreInputTypesRule.d.ts +2 -2
  702. package/validation/rules/VariablesAreInputTypesRule.js +8 -8
  703. package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
  704. package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
  705. package/validation/rules/VariablesInAllowedPositionRule.d.mts +2 -2
  706. package/validation/rules/VariablesInAllowedPositionRule.d.ts +2 -2
  707. package/validation/rules/VariablesInAllowedPositionRule.js +14 -14
  708. package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
  709. package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
  710. package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +2 -2
  711. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +2 -2
  712. package/validation/rules/custom/NoDeprecatedCustomRule.js +8 -8
  713. package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
  714. package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
  715. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +2 -2
  716. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +2 -2
  717. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +6 -6
  718. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
  719. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
  720. package/validation/specifiedRules.d.mts +1 -1
  721. package/validation/specifiedRules.d.ts +1 -1
  722. package/validation/specifiedRules.js +87 -87
  723. package/validation/specifiedRules.js.map +1 -1
  724. package/validation/specifiedRules.mjs.map +1 -1
  725. package/validation/validate.d.mts +5 -5
  726. package/validation/validate.d.ts +5 -5
  727. package/validation/validate.js +19 -19
  728. package/validation/validate.js.map +1 -1
  729. package/validation/validate.mjs.map +1 -1
  730. package/version.js +2 -2
  731. package/version.js.map +1 -1
  732. package/version.mjs +2 -2
  733. package/version.mjs.map +1 -1
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypeInfo = void 0;
4
4
  exports.visitWithTypeInfo = visitWithTypeInfo;
5
- const ast_js_1 = require("../language/ast.js");
6
- const kinds_js_1 = require("../language/kinds.js");
7
- const visitor_js_1 = require("../language/visitor.js");
8
- const definition_js_1 = require("../type/definition.js");
9
- const typeFromAST_js_1 = require("./typeFromAST.js");
5
+ const ast_ts_1 = require("../language/ast.js");
6
+ const kinds_ts_1 = require("../language/kinds.js");
7
+ const visitor_ts_1 = require("../language/visitor.js");
8
+ const definition_ts_1 = require("../type/definition.js");
9
+ const typeFromAST_ts_1 = require("./typeFromAST.js");
10
10
  /**
11
11
  * TypeInfo is a utility class which, given a GraphQL schema, can keep track
12
12
  * of the current field and type definitions at any point in a GraphQL document
@@ -32,13 +32,13 @@ class TypeInfo {
32
32
  this._fragmentSignature = null;
33
33
  this._fragmentArgument = null;
34
34
  if (initialType) {
35
- if ((0, definition_js_1.isInputType)(initialType)) {
35
+ if ((0, definition_ts_1.isInputType)(initialType)) {
36
36
  this._inputTypeStack.push(initialType);
37
37
  }
38
- if ((0, definition_js_1.isCompositeType)(initialType)) {
38
+ if ((0, definition_ts_1.isCompositeType)(initialType)) {
39
39
  this._parentTypeStack.push(initialType);
40
40
  }
41
- if ((0, definition_js_1.isOutputType)(initialType)) {
41
+ if ((0, definition_ts_1.isOutputType)(initialType)) {
42
42
  this._typeStack.push(initialType);
43
43
  }
44
44
  }
@@ -91,17 +91,17 @@ class TypeInfo {
91
91
  // checked before continuing since TypeInfo is used as part of validation
92
92
  // which occurs before guarantees of schema and document validity.
93
93
  switch (node.kind) {
94
- case kinds_js_1.Kind.DOCUMENT: {
94
+ case kinds_ts_1.Kind.DOCUMENT: {
95
95
  const fragmentSignatures = getFragmentSignatures(node);
96
96
  this._fragmentSignaturesByName = (fragmentName) => fragmentSignatures.get(fragmentName);
97
97
  break;
98
98
  }
99
- case kinds_js_1.Kind.SELECTION_SET: {
100
- const namedType = (0, definition_js_1.getNamedType)(this.getType());
101
- this._parentTypeStack.push((0, definition_js_1.isCompositeType)(namedType) ? namedType : undefined);
99
+ case kinds_ts_1.Kind.SELECTION_SET: {
100
+ const namedType = (0, definition_ts_1.getNamedType)(this.getType());
101
+ this._parentTypeStack.push((0, definition_ts_1.isCompositeType)(namedType) ? namedType : undefined);
102
102
  break;
103
103
  }
104
- case kinds_js_1.Kind.FIELD: {
104
+ case kinds_ts_1.Kind.FIELD: {
105
105
  const parentType = this.getParentType();
106
106
  let fieldDef;
107
107
  let fieldType;
@@ -112,36 +112,36 @@ class TypeInfo {
112
112
  }
113
113
  }
114
114
  this._fieldDefStack.push(fieldDef);
115
- this._typeStack.push((0, definition_js_1.isOutputType)(fieldType) ? fieldType : undefined);
115
+ this._typeStack.push((0, definition_ts_1.isOutputType)(fieldType) ? fieldType : undefined);
116
116
  break;
117
117
  }
118
- case kinds_js_1.Kind.DIRECTIVE:
118
+ case kinds_ts_1.Kind.DIRECTIVE:
119
119
  this._directive = schema.getDirective(node.name.value);
120
120
  break;
121
- case kinds_js_1.Kind.OPERATION_DEFINITION: {
121
+ case kinds_ts_1.Kind.OPERATION_DEFINITION: {
122
122
  const rootType = schema.getRootType(node.operation);
123
- this._typeStack.push((0, definition_js_1.isObjectType)(rootType) ? rootType : undefined);
123
+ this._typeStack.push((0, definition_ts_1.isObjectType)(rootType) ? rootType : undefined);
124
124
  break;
125
125
  }
126
- case kinds_js_1.Kind.FRAGMENT_SPREAD: {
126
+ case kinds_ts_1.Kind.FRAGMENT_SPREAD: {
127
127
  this._fragmentSignature = this.getFragmentSignatureByName()(node.name.value);
128
128
  break;
129
129
  }
130
- case kinds_js_1.Kind.INLINE_FRAGMENT:
131
- case kinds_js_1.Kind.FRAGMENT_DEFINITION: {
130
+ case kinds_ts_1.Kind.INLINE_FRAGMENT:
131
+ case kinds_ts_1.Kind.FRAGMENT_DEFINITION: {
132
132
  const typeConditionAST = node.typeCondition;
133
133
  const outputType = typeConditionAST
134
- ? (0, typeFromAST_js_1.typeFromAST)(schema, typeConditionAST)
135
- : (0, definition_js_1.getNamedType)(this.getType());
136
- this._typeStack.push((0, definition_js_1.isOutputType)(outputType) ? outputType : undefined);
134
+ ? (0, typeFromAST_ts_1.typeFromAST)(schema, typeConditionAST)
135
+ : (0, definition_ts_1.getNamedType)(this.getType());
136
+ this._typeStack.push((0, definition_ts_1.isOutputType)(outputType) ? outputType : undefined);
137
137
  break;
138
138
  }
139
- case kinds_js_1.Kind.VARIABLE_DEFINITION: {
140
- const inputType = (0, typeFromAST_js_1.typeFromAST)(schema, node.type);
141
- this._inputTypeStack.push((0, definition_js_1.isInputType)(inputType) ? inputType : undefined);
139
+ case kinds_ts_1.Kind.VARIABLE_DEFINITION: {
140
+ const inputType = (0, typeFromAST_ts_1.typeFromAST)(schema, node.type);
141
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(inputType) ? inputType : undefined);
142
142
  break;
143
143
  }
144
- case kinds_js_1.Kind.ARGUMENT: {
144
+ case kinds_ts_1.Kind.ARGUMENT: {
145
145
  let argDef;
146
146
  let argType;
147
147
  const fieldOrDirective = this.getDirective() ?? this.getFieldDef();
@@ -153,48 +153,48 @@ class TypeInfo {
153
153
  }
154
154
  this._argument = argDef;
155
155
  this._defaultValueStack.push(argDef?.default ?? argDef?.defaultValue ?? undefined);
156
- this._inputTypeStack.push((0, definition_js_1.isInputType)(argType) ? argType : undefined);
156
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(argType) ? argType : undefined);
157
157
  break;
158
158
  }
159
- case kinds_js_1.Kind.FRAGMENT_ARGUMENT: {
159
+ case kinds_ts_1.Kind.FRAGMENT_ARGUMENT: {
160
160
  const fragmentSignature = this.getFragmentSignature();
161
161
  const argDef = fragmentSignature?.variableDefinitions.get(node.name.value);
162
162
  this._fragmentArgument = argDef;
163
163
  let argType;
164
164
  if (argDef) {
165
- argType = (0, typeFromAST_js_1.typeFromAST)(this._schema, argDef.type);
165
+ argType = (0, typeFromAST_ts_1.typeFromAST)(this._schema, argDef.type);
166
166
  }
167
- this._inputTypeStack.push((0, definition_js_1.isInputType)(argType) ? argType : undefined);
167
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(argType) ? argType : undefined);
168
168
  break;
169
169
  }
170
- case kinds_js_1.Kind.LIST: {
171
- const listType = (0, definition_js_1.getNullableType)(this.getInputType());
172
- const itemType = (0, definition_js_1.isListType)(listType)
170
+ case kinds_ts_1.Kind.LIST: {
171
+ const listType = (0, definition_ts_1.getNullableType)(this.getInputType());
172
+ const itemType = (0, definition_ts_1.isListType)(listType)
173
173
  ? listType.ofType
174
174
  : undefined;
175
175
  // List positions never have a default value.
176
176
  this._defaultValueStack.push(undefined);
177
- this._inputTypeStack.push((0, definition_js_1.isInputType)(itemType) ? itemType : undefined);
177
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(itemType) ? itemType : undefined);
178
178
  break;
179
179
  }
180
- case kinds_js_1.Kind.OBJECT_FIELD: {
181
- const objectType = (0, definition_js_1.getNamedType)(this.getInputType());
180
+ case kinds_ts_1.Kind.OBJECT_FIELD: {
181
+ const objectType = (0, definition_ts_1.getNamedType)(this.getInputType());
182
182
  let inputFieldType;
183
183
  let inputField;
184
- if ((0, definition_js_1.isInputObjectType)(objectType)) {
184
+ if ((0, definition_ts_1.isInputObjectType)(objectType)) {
185
185
  inputField = objectType.getFields()[node.name.value];
186
186
  if (inputField != null) {
187
187
  inputFieldType = inputField.type;
188
188
  }
189
189
  }
190
190
  this._defaultValueStack.push(inputField?.default ?? inputField?.defaultValue ?? undefined);
191
- this._inputTypeStack.push((0, definition_js_1.isInputType)(inputFieldType) ? inputFieldType : undefined);
191
+ this._inputTypeStack.push((0, definition_ts_1.isInputType)(inputFieldType) ? inputFieldType : undefined);
192
192
  break;
193
193
  }
194
- case kinds_js_1.Kind.ENUM: {
195
- const enumType = (0, definition_js_1.getNamedType)(this.getInputType());
194
+ case kinds_ts_1.Kind.ENUM: {
195
+ const enumType = (0, definition_ts_1.getNamedType)(this.getInputType());
196
196
  let enumValue;
197
- if ((0, definition_js_1.isEnumType)(enumType)) {
197
+ if ((0, definition_ts_1.isEnumType)(enumType)) {
198
198
  enumValue = enumType.getValue(node.value);
199
199
  }
200
200
  this._enumValue = enumValue;
@@ -206,47 +206,47 @@ class TypeInfo {
206
206
  }
207
207
  leave(node) {
208
208
  switch (node.kind) {
209
- case kinds_js_1.Kind.DOCUMENT:
210
- this._fragmentSignaturesByName = /* c8 ignore start */ () => null /* c8 ignore end */;
209
+ case kinds_ts_1.Kind.DOCUMENT:
210
+ this._fragmentSignaturesByName = () => null;
211
211
  break;
212
- case kinds_js_1.Kind.SELECTION_SET:
212
+ case kinds_ts_1.Kind.SELECTION_SET:
213
213
  this._parentTypeStack.pop();
214
214
  break;
215
- case kinds_js_1.Kind.FIELD:
215
+ case kinds_ts_1.Kind.FIELD:
216
216
  this._fieldDefStack.pop();
217
217
  this._typeStack.pop();
218
218
  break;
219
- case kinds_js_1.Kind.DIRECTIVE:
219
+ case kinds_ts_1.Kind.DIRECTIVE:
220
220
  this._directive = null;
221
221
  break;
222
- case kinds_js_1.Kind.FRAGMENT_SPREAD:
222
+ case kinds_ts_1.Kind.FRAGMENT_SPREAD:
223
223
  this._fragmentSignature = null;
224
224
  break;
225
- case kinds_js_1.Kind.OPERATION_DEFINITION:
226
- case kinds_js_1.Kind.INLINE_FRAGMENT:
227
- case kinds_js_1.Kind.FRAGMENT_DEFINITION:
225
+ case kinds_ts_1.Kind.OPERATION_DEFINITION:
226
+ case kinds_ts_1.Kind.INLINE_FRAGMENT:
227
+ case kinds_ts_1.Kind.FRAGMENT_DEFINITION:
228
228
  this._typeStack.pop();
229
229
  break;
230
- case kinds_js_1.Kind.VARIABLE_DEFINITION:
230
+ case kinds_ts_1.Kind.VARIABLE_DEFINITION:
231
231
  this._inputTypeStack.pop();
232
232
  break;
233
- case kinds_js_1.Kind.ARGUMENT:
233
+ case kinds_ts_1.Kind.ARGUMENT:
234
234
  this._argument = null;
235
235
  this._defaultValueStack.pop();
236
236
  this._inputTypeStack.pop();
237
237
  break;
238
- case kinds_js_1.Kind.FRAGMENT_ARGUMENT: {
238
+ case kinds_ts_1.Kind.FRAGMENT_ARGUMENT: {
239
239
  this._fragmentArgument = null;
240
240
  this._defaultValueStack.pop();
241
241
  this._inputTypeStack.pop();
242
242
  break;
243
243
  }
244
- case kinds_js_1.Kind.LIST:
245
- case kinds_js_1.Kind.OBJECT_FIELD:
244
+ case kinds_ts_1.Kind.LIST:
245
+ case kinds_ts_1.Kind.OBJECT_FIELD:
246
246
  this._defaultValueStack.pop();
247
247
  this._inputTypeStack.pop();
248
248
  break;
249
- case kinds_js_1.Kind.ENUM:
249
+ case kinds_ts_1.Kind.ENUM:
250
250
  this._enumValue = null;
251
251
  break;
252
252
  default:
@@ -258,7 +258,7 @@ exports.TypeInfo = TypeInfo;
258
258
  function getFragmentSignatures(document) {
259
259
  const fragmentSignatures = new Map();
260
260
  for (const definition of document.definitions) {
261
- if (definition.kind === kinds_js_1.Kind.FRAGMENT_DEFINITION) {
261
+ if (definition.kind === kinds_ts_1.Kind.FRAGMENT_DEFINITION) {
262
262
  const variableDefinitions = new Map();
263
263
  if (definition.variableDefinitions) {
264
264
  for (const varDef of definition.variableDefinitions) {
@@ -280,12 +280,12 @@ function visitWithTypeInfo(typeInfo, visitor) {
280
280
  enter(...args) {
281
281
  const node = args[0];
282
282
  typeInfo.enter(node);
283
- const fn = (0, visitor_js_1.getEnterLeaveForKind)(visitor, node.kind).enter;
283
+ const fn = (0, visitor_ts_1.getEnterLeaveForKind)(visitor, node.kind).enter;
284
284
  if (fn) {
285
285
  const result = fn.apply(visitor, args);
286
286
  if (result !== undefined) {
287
287
  typeInfo.leave(node);
288
- if ((0, ast_js_1.isNode)(result)) {
288
+ if ((0, ast_ts_1.isNode)(result)) {
289
289
  typeInfo.enter(result);
290
290
  }
291
291
  }
@@ -294,7 +294,7 @@ function visitWithTypeInfo(typeInfo, visitor) {
294
294
  },
295
295
  leave(...args) {
296
296
  const node = args[0];
297
- const fn = (0, visitor_js_1.getEnterLeaveForKind)(visitor, node.kind).leave;
297
+ const fn = (0, visitor_ts_1.getEnterLeaveForKind)(visitor, node.kind).leave;
298
298
  let result;
299
299
  if (fn) {
300
300
  result = fn.apply(visitor, args);
@@ -1 +1 @@
1
- {"version":3,"file":"TypeInfo.js","sourceRoot":"","sources":["../../src/utilities/TypeInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Maybe } from '../jsutils/Maybe.js';\n\nimport type {\n ASTNode,\n DocumentNode,\n FragmentDefinitionNode,\n VariableDefinitionNode,\n} from '../language/ast.js';\nimport { isNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport type { ASTVisitor } from '../language/visitor.js';\nimport { getEnterLeaveForKind } from '../language/visitor.js';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputType,\n GraphQLOutputType,\n GraphQLType,\n} from '../type/definition.js';\nimport {\n getNamedType,\n getNullableType,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isInputType,\n isListType,\n isObjectType,\n isOutputType,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\n\nimport { typeFromAST } from './typeFromAST.js';\n\nexport interface FragmentSignature {\n readonly definition: FragmentDefinitionNode;\n readonly variableDefinitions: Map<string, VariableDefinitionNode>;\n}\n\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\nexport class TypeInfo {\n private _schema: GraphQLSchema;\n private _typeStack: Array<Maybe<GraphQLOutputType>>;\n private _parentTypeStack: Array<Maybe<GraphQLCompositeType>>;\n private _inputTypeStack: Array<Maybe<GraphQLInputType>>;\n private _fieldDefStack: Array<Maybe<GraphQLField<unknown, unknown>>>;\n private _defaultValueStack: Array<unknown>;\n private _directive: Maybe<GraphQLDirective>;\n private _argument: Maybe<GraphQLArgument>;\n private _enumValue: Maybe<GraphQLEnumValue>;\n private _fragmentSignaturesByName: (\n fragmentName: string,\n ) => Maybe<FragmentSignature>;\n\n private _fragmentSignature: Maybe<FragmentSignature>;\n private _fragmentArgument: Maybe<VariableDefinitionNode>;\n\n constructor(\n schema: GraphQLSchema,\n /**\n * Initial type may be provided in rare cases to facilitate traversals\n * beginning somewhere other than documents.\n */\n initialType?: Maybe<GraphQLType>,\n fragmentSignatures?: Maybe<\n (fragmentName: string) => Maybe<FragmentSignature>\n >,\n ) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._fragmentSignaturesByName = fragmentSignatures ?? (() => null);\n this._fragmentSignature = null;\n this._fragmentArgument = null;\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'TypeInfo';\n }\n\n getType(): Maybe<GraphQLOutputType> {\n return this._typeStack.at(-1);\n }\n\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._parentTypeStack.at(-1);\n }\n\n getInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-1);\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-2);\n }\n\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._fieldDefStack.at(-1);\n }\n\n getDefaultValue(): unknown {\n return this._defaultValueStack.at(-1);\n }\n\n getDirective(): Maybe<GraphQLDirective> {\n return this._directive;\n }\n\n getArgument(): Maybe<GraphQLArgument> {\n return this._argument;\n }\n\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._fragmentSignature;\n }\n\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._fragmentSignaturesByName;\n }\n\n getFragmentArgument(): Maybe<VariableDefinitionNode> {\n return this._fragmentArgument;\n }\n\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._enumValue;\n }\n\n enter(node: ASTNode): void {\n const schema = this._schema;\n // Note: many of the types below are explicitly typed as \"unknown\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n switch (node.kind) {\n case Kind.DOCUMENT: {\n const fragmentSignatures = getFragmentSignatures(node);\n this._fragmentSignaturesByName = (fragmentName: string) =>\n fragmentSignatures.get(fragmentName);\n break;\n }\n case Kind.SELECTION_SET: {\n const namedType: unknown = getNamedType(this.getType());\n this._parentTypeStack.push(\n isCompositeType(namedType) ? namedType : undefined,\n );\n break;\n }\n case Kind.FIELD: {\n const parentType = this.getParentType();\n let fieldDef;\n let fieldType: unknown;\n if (parentType) {\n fieldDef = schema.getField(parentType, node.name.value);\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n this._fieldDefStack.push(fieldDef);\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n break;\n }\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n case Kind.OPERATION_DEFINITION: {\n const rootType = schema.getRootType(node.operation);\n this._typeStack.push(isObjectType(rootType) ? rootType : undefined);\n break;\n }\n case Kind.FRAGMENT_SPREAD: {\n this._fragmentSignature = this.getFragmentSignatureByName()(\n node.name.value,\n );\n break;\n }\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION: {\n const typeConditionAST = node.typeCondition;\n const outputType: unknown = typeConditionAST\n ? typeFromAST(schema, typeConditionAST)\n : getNamedType(this.getType());\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n break;\n }\n case Kind.VARIABLE_DEFINITION: {\n const inputType: unknown = typeFromAST(schema, node.type);\n this._inputTypeStack.push(\n isInputType(inputType) ? inputType : undefined,\n );\n break;\n }\n case Kind.ARGUMENT: {\n let argDef;\n let argType: unknown;\n const fieldOrDirective = this.getDirective() ?? this.getFieldDef();\n if (fieldOrDirective) {\n argDef = fieldOrDirective.args.find(\n (arg) => arg.name === node.name.value,\n );\n if (argDef) {\n argType = argDef.type;\n }\n }\n this._argument = argDef;\n this._defaultValueStack.push(\n argDef?.default ?? argDef?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.FRAGMENT_ARGUMENT: {\n const fragmentSignature = this.getFragmentSignature();\n const argDef = fragmentSignature?.variableDefinitions.get(\n node.name.value,\n );\n this._fragmentArgument = argDef;\n let argType: unknown;\n if (argDef) {\n argType = typeFromAST(this._schema, argDef.type);\n }\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.LIST: {\n const listType: unknown = getNullableType(this.getInputType());\n const itemType: unknown = isListType(listType)\n ? listType.ofType\n : undefined;\n // List positions never have a default value.\n this._defaultValueStack.push(undefined);\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n break;\n }\n case Kind.OBJECT_FIELD: {\n const objectType: unknown = getNamedType(this.getInputType());\n let inputFieldType: GraphQLInputType | undefined;\n let inputField: GraphQLInputField | undefined;\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n if (inputField != null) {\n inputFieldType = inputField.type;\n }\n }\n this._defaultValueStack.push(\n inputField?.default ?? inputField?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(\n isInputType(inputFieldType) ? inputFieldType : undefined,\n );\n break;\n }\n case Kind.ENUM: {\n const enumType: unknown = getNamedType(this.getInputType());\n let enumValue;\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n this._enumValue = enumValue;\n break;\n }\n default:\n // Ignore other nodes\n }\n }\n\n leave(node: ASTNode): void {\n switch (node.kind) {\n case Kind.DOCUMENT:\n this._fragmentSignaturesByName = /* c8 ignore start */ () =>\n null /* c8 ignore end */;\n break;\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n break;\n case Kind.FIELD:\n this._fieldDefStack.pop();\n this._typeStack.pop();\n break;\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n case Kind.FRAGMENT_SPREAD:\n this._fragmentSignature = null;\n break;\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n break;\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n break;\n case Kind.ARGUMENT:\n this._argument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.FRAGMENT_ARGUMENT: {\n this._fragmentArgument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n }\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.ENUM:\n this._enumValue = null;\n break;\n default:\n // Ignore other nodes\n }\n }\n}\n\nfunction getFragmentSignatures(\n document: DocumentNode,\n): Map<string, FragmentSignature> {\n const fragmentSignatures = new Map<string, FragmentSignature>();\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n const variableDefinitions = new Map<string, VariableDefinitionNode>();\n if (definition.variableDefinitions) {\n for (const varDef of definition.variableDefinitions) {\n variableDefinitions.set(varDef.variable.name.value, varDef);\n }\n }\n const signature = { definition, variableDefinitions };\n fragmentSignatures.set(definition.name.value, signature);\n }\n }\n return fragmentSignatures;\n}\n\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\nexport function visitWithTypeInfo(\n typeInfo: TypeInfo,\n visitor: ASTVisitor,\n): ASTVisitor {\n return {\n enter(...args) {\n const node = args[0];\n typeInfo.enter(node);\n const fn = getEnterLeaveForKind(visitor, node.kind).enter;\n if (fn) {\n const result = fn.apply(visitor, args);\n if (result !== undefined) {\n typeInfo.leave(node);\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n return result;\n }\n },\n leave(...args) {\n const node = args[0];\n const fn = getEnterLeaveForKind(visitor, node.kind).leave;\n let result;\n if (fn) {\n result = fn.apply(visitor, args);\n }\n typeInfo.leave(node);\n return result;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"TypeInfo.js","sourceRoot":"","sources":["../../src/utilities/TypeInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Maybe } from '../jsutils/Maybe.ts';\n\nimport type {\n ASTNode,\n DocumentNode,\n FragmentDefinitionNode,\n VariableDefinitionNode,\n} from '../language/ast.ts';\nimport { isNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport type { ASTVisitor } from '../language/visitor.ts';\nimport { getEnterLeaveForKind } from '../language/visitor.ts';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputType,\n GraphQLOutputType,\n GraphQLType,\n} from '../type/definition.ts';\nimport {\n getNamedType,\n getNullableType,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isInputType,\n isListType,\n isObjectType,\n isOutputType,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\nimport { typeFromAST } from './typeFromAST.ts';\n\nexport interface FragmentSignature {\n readonly definition: FragmentDefinitionNode;\n readonly variableDefinitions: Map<string, VariableDefinitionNode>;\n}\n\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\nexport class TypeInfo {\n private _schema: GraphQLSchema;\n private _typeStack: Array<Maybe<GraphQLOutputType>>;\n private _parentTypeStack: Array<Maybe<GraphQLCompositeType>>;\n private _inputTypeStack: Array<Maybe<GraphQLInputType>>;\n private _fieldDefStack: Array<Maybe<GraphQLField<unknown, unknown>>>;\n private _defaultValueStack: Array<unknown>;\n private _directive: Maybe<GraphQLDirective>;\n private _argument: Maybe<GraphQLArgument>;\n private _enumValue: Maybe<GraphQLEnumValue>;\n private _fragmentSignaturesByName: (\n fragmentName: string,\n ) => Maybe<FragmentSignature>;\n\n private _fragmentSignature: Maybe<FragmentSignature>;\n private _fragmentArgument: Maybe<VariableDefinitionNode>;\n\n constructor(\n schema: GraphQLSchema,\n /**\n * Initial type may be provided in rare cases to facilitate traversals\n * beginning somewhere other than documents.\n */\n initialType?: Maybe<GraphQLType>,\n fragmentSignatures?: Maybe<\n (fragmentName: string) => Maybe<FragmentSignature>\n >,\n ) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._fragmentSignaturesByName = fragmentSignatures ?? (() => null);\n this._fragmentSignature = null;\n this._fragmentArgument = null;\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'TypeInfo';\n }\n\n getType(): Maybe<GraphQLOutputType> {\n return this._typeStack.at(-1);\n }\n\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._parentTypeStack.at(-1);\n }\n\n getInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-1);\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-2);\n }\n\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._fieldDefStack.at(-1);\n }\n\n getDefaultValue(): unknown {\n return this._defaultValueStack.at(-1);\n }\n\n getDirective(): Maybe<GraphQLDirective> {\n return this._directive;\n }\n\n getArgument(): Maybe<GraphQLArgument> {\n return this._argument;\n }\n\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._fragmentSignature;\n }\n\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._fragmentSignaturesByName;\n }\n\n getFragmentArgument(): Maybe<VariableDefinitionNode> {\n return this._fragmentArgument;\n }\n\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._enumValue;\n }\n\n enter(node: ASTNode): void {\n const schema = this._schema;\n // Note: many of the types below are explicitly typed as \"unknown\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n switch (node.kind) {\n case Kind.DOCUMENT: {\n const fragmentSignatures = getFragmentSignatures(node);\n this._fragmentSignaturesByName = (fragmentName: string) =>\n fragmentSignatures.get(fragmentName);\n break;\n }\n case Kind.SELECTION_SET: {\n const namedType: unknown = getNamedType(this.getType());\n this._parentTypeStack.push(\n isCompositeType(namedType) ? namedType : undefined,\n );\n break;\n }\n case Kind.FIELD: {\n const parentType = this.getParentType();\n let fieldDef;\n let fieldType: unknown;\n if (parentType) {\n fieldDef = schema.getField(parentType, node.name.value);\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n this._fieldDefStack.push(fieldDef);\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n break;\n }\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n case Kind.OPERATION_DEFINITION: {\n const rootType = schema.getRootType(node.operation);\n this._typeStack.push(isObjectType(rootType) ? rootType : undefined);\n break;\n }\n case Kind.FRAGMENT_SPREAD: {\n this._fragmentSignature = this.getFragmentSignatureByName()(\n node.name.value,\n );\n break;\n }\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION: {\n const typeConditionAST = node.typeCondition;\n const outputType: unknown = typeConditionAST\n ? typeFromAST(schema, typeConditionAST)\n : getNamedType(this.getType());\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n break;\n }\n case Kind.VARIABLE_DEFINITION: {\n const inputType: unknown = typeFromAST(schema, node.type);\n this._inputTypeStack.push(\n isInputType(inputType) ? inputType : undefined,\n );\n break;\n }\n case Kind.ARGUMENT: {\n let argDef;\n let argType: unknown;\n const fieldOrDirective = this.getDirective() ?? this.getFieldDef();\n if (fieldOrDirective) {\n argDef = fieldOrDirective.args.find(\n (arg) => arg.name === node.name.value,\n );\n if (argDef) {\n argType = argDef.type;\n }\n }\n this._argument = argDef;\n this._defaultValueStack.push(\n argDef?.default ?? argDef?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.FRAGMENT_ARGUMENT: {\n const fragmentSignature = this.getFragmentSignature();\n const argDef = fragmentSignature?.variableDefinitions.get(\n node.name.value,\n );\n this._fragmentArgument = argDef;\n let argType: unknown;\n if (argDef) {\n argType = typeFromAST(this._schema, argDef.type);\n }\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.LIST: {\n const listType: unknown = getNullableType(this.getInputType());\n const itemType: unknown = isListType(listType)\n ? listType.ofType\n : undefined;\n // List positions never have a default value.\n this._defaultValueStack.push(undefined);\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n break;\n }\n case Kind.OBJECT_FIELD: {\n const objectType: unknown = getNamedType(this.getInputType());\n let inputFieldType: GraphQLInputType | undefined;\n let inputField: GraphQLInputField | undefined;\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n if (inputField != null) {\n inputFieldType = inputField.type;\n }\n }\n this._defaultValueStack.push(\n inputField?.default ?? inputField?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(\n isInputType(inputFieldType) ? inputFieldType : undefined,\n );\n break;\n }\n case Kind.ENUM: {\n const enumType: unknown = getNamedType(this.getInputType());\n let enumValue;\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n this._enumValue = enumValue;\n break;\n }\n default:\n // Ignore other nodes\n }\n }\n\n leave(node: ASTNode): void {\n switch (node.kind) {\n case Kind.DOCUMENT:\n this._fragmentSignaturesByName = () => null;\n break;\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n break;\n case Kind.FIELD:\n this._fieldDefStack.pop();\n this._typeStack.pop();\n break;\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n case Kind.FRAGMENT_SPREAD:\n this._fragmentSignature = null;\n break;\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n break;\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n break;\n case Kind.ARGUMENT:\n this._argument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.FRAGMENT_ARGUMENT: {\n this._fragmentArgument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n }\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.ENUM:\n this._enumValue = null;\n break;\n default:\n // Ignore other nodes\n }\n }\n}\n\nfunction getFragmentSignatures(\n document: DocumentNode,\n): Map<string, FragmentSignature> {\n const fragmentSignatures = new Map<string, FragmentSignature>();\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n const variableDefinitions = new Map<string, VariableDefinitionNode>();\n if (definition.variableDefinitions) {\n for (const varDef of definition.variableDefinitions) {\n variableDefinitions.set(varDef.variable.name.value, varDef);\n }\n }\n const signature = { definition, variableDefinitions };\n fragmentSignatures.set(definition.name.value, signature);\n }\n }\n return fragmentSignatures;\n}\n\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\nexport function visitWithTypeInfo(\n typeInfo: TypeInfo,\n visitor: ASTVisitor,\n): ASTVisitor {\n return {\n enter(...args) {\n const node = args[0];\n typeInfo.enter(node);\n const fn = getEnterLeaveForKind(visitor, node.kind).enter;\n if (fn) {\n const result = fn.apply(visitor, args);\n if (result !== undefined) {\n typeInfo.leave(node);\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n return result;\n }\n },\n leave(...args) {\n const node = args[0];\n const fn = getEnterLeaveForKind(visitor, node.kind).leave;\n let result;\n if (fn) {\n result = fn.apply(visitor, args);\n }\n typeInfo.leave(node);\n return result;\n },\n };\n}\n"]}
@@ -203,7 +203,7 @@ export class TypeInfo {
203
203
  leave(node) {
204
204
  switch (node.kind) {
205
205
  case Kind.DOCUMENT:
206
- this._fragmentSignaturesByName = /* c8 ignore start */ () => null /* c8 ignore end */;
206
+ this._fragmentSignaturesByName = () => null;
207
207
  break;
208
208
  case Kind.SELECTION_SET:
209
209
  this._parentTypeStack.pop();
@@ -1 +1 @@
1
- {"version":3,"file":"TypeInfo.js","sourceRoot":"","sources":["../../src/utilities/TypeInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Maybe } from '../jsutils/Maybe.js';\n\nimport type {\n ASTNode,\n DocumentNode,\n FragmentDefinitionNode,\n VariableDefinitionNode,\n} from '../language/ast.js';\nimport { isNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport type { ASTVisitor } from '../language/visitor.js';\nimport { getEnterLeaveForKind } from '../language/visitor.js';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputType,\n GraphQLOutputType,\n GraphQLType,\n} from '../type/definition.js';\nimport {\n getNamedType,\n getNullableType,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isInputType,\n isListType,\n isObjectType,\n isOutputType,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\n\nimport { typeFromAST } from './typeFromAST.js';\n\nexport interface FragmentSignature {\n readonly definition: FragmentDefinitionNode;\n readonly variableDefinitions: Map<string, VariableDefinitionNode>;\n}\n\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\nexport class TypeInfo {\n private _schema: GraphQLSchema;\n private _typeStack: Array<Maybe<GraphQLOutputType>>;\n private _parentTypeStack: Array<Maybe<GraphQLCompositeType>>;\n private _inputTypeStack: Array<Maybe<GraphQLInputType>>;\n private _fieldDefStack: Array<Maybe<GraphQLField<unknown, unknown>>>;\n private _defaultValueStack: Array<unknown>;\n private _directive: Maybe<GraphQLDirective>;\n private _argument: Maybe<GraphQLArgument>;\n private _enumValue: Maybe<GraphQLEnumValue>;\n private _fragmentSignaturesByName: (\n fragmentName: string,\n ) => Maybe<FragmentSignature>;\n\n private _fragmentSignature: Maybe<FragmentSignature>;\n private _fragmentArgument: Maybe<VariableDefinitionNode>;\n\n constructor(\n schema: GraphQLSchema,\n /**\n * Initial type may be provided in rare cases to facilitate traversals\n * beginning somewhere other than documents.\n */\n initialType?: Maybe<GraphQLType>,\n fragmentSignatures?: Maybe<\n (fragmentName: string) => Maybe<FragmentSignature>\n >,\n ) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._fragmentSignaturesByName = fragmentSignatures ?? (() => null);\n this._fragmentSignature = null;\n this._fragmentArgument = null;\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'TypeInfo';\n }\n\n getType(): Maybe<GraphQLOutputType> {\n return this._typeStack.at(-1);\n }\n\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._parentTypeStack.at(-1);\n }\n\n getInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-1);\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-2);\n }\n\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._fieldDefStack.at(-1);\n }\n\n getDefaultValue(): unknown {\n return this._defaultValueStack.at(-1);\n }\n\n getDirective(): Maybe<GraphQLDirective> {\n return this._directive;\n }\n\n getArgument(): Maybe<GraphQLArgument> {\n return this._argument;\n }\n\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._fragmentSignature;\n }\n\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._fragmentSignaturesByName;\n }\n\n getFragmentArgument(): Maybe<VariableDefinitionNode> {\n return this._fragmentArgument;\n }\n\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._enumValue;\n }\n\n enter(node: ASTNode): void {\n const schema = this._schema;\n // Note: many of the types below are explicitly typed as \"unknown\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n switch (node.kind) {\n case Kind.DOCUMENT: {\n const fragmentSignatures = getFragmentSignatures(node);\n this._fragmentSignaturesByName = (fragmentName: string) =>\n fragmentSignatures.get(fragmentName);\n break;\n }\n case Kind.SELECTION_SET: {\n const namedType: unknown = getNamedType(this.getType());\n this._parentTypeStack.push(\n isCompositeType(namedType) ? namedType : undefined,\n );\n break;\n }\n case Kind.FIELD: {\n const parentType = this.getParentType();\n let fieldDef;\n let fieldType: unknown;\n if (parentType) {\n fieldDef = schema.getField(parentType, node.name.value);\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n this._fieldDefStack.push(fieldDef);\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n break;\n }\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n case Kind.OPERATION_DEFINITION: {\n const rootType = schema.getRootType(node.operation);\n this._typeStack.push(isObjectType(rootType) ? rootType : undefined);\n break;\n }\n case Kind.FRAGMENT_SPREAD: {\n this._fragmentSignature = this.getFragmentSignatureByName()(\n node.name.value,\n );\n break;\n }\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION: {\n const typeConditionAST = node.typeCondition;\n const outputType: unknown = typeConditionAST\n ? typeFromAST(schema, typeConditionAST)\n : getNamedType(this.getType());\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n break;\n }\n case Kind.VARIABLE_DEFINITION: {\n const inputType: unknown = typeFromAST(schema, node.type);\n this._inputTypeStack.push(\n isInputType(inputType) ? inputType : undefined,\n );\n break;\n }\n case Kind.ARGUMENT: {\n let argDef;\n let argType: unknown;\n const fieldOrDirective = this.getDirective() ?? this.getFieldDef();\n if (fieldOrDirective) {\n argDef = fieldOrDirective.args.find(\n (arg) => arg.name === node.name.value,\n );\n if (argDef) {\n argType = argDef.type;\n }\n }\n this._argument = argDef;\n this._defaultValueStack.push(\n argDef?.default ?? argDef?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.FRAGMENT_ARGUMENT: {\n const fragmentSignature = this.getFragmentSignature();\n const argDef = fragmentSignature?.variableDefinitions.get(\n node.name.value,\n );\n this._fragmentArgument = argDef;\n let argType: unknown;\n if (argDef) {\n argType = typeFromAST(this._schema, argDef.type);\n }\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.LIST: {\n const listType: unknown = getNullableType(this.getInputType());\n const itemType: unknown = isListType(listType)\n ? listType.ofType\n : undefined;\n // List positions never have a default value.\n this._defaultValueStack.push(undefined);\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n break;\n }\n case Kind.OBJECT_FIELD: {\n const objectType: unknown = getNamedType(this.getInputType());\n let inputFieldType: GraphQLInputType | undefined;\n let inputField: GraphQLInputField | undefined;\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n if (inputField != null) {\n inputFieldType = inputField.type;\n }\n }\n this._defaultValueStack.push(\n inputField?.default ?? inputField?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(\n isInputType(inputFieldType) ? inputFieldType : undefined,\n );\n break;\n }\n case Kind.ENUM: {\n const enumType: unknown = getNamedType(this.getInputType());\n let enumValue;\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n this._enumValue = enumValue;\n break;\n }\n default:\n // Ignore other nodes\n }\n }\n\n leave(node: ASTNode): void {\n switch (node.kind) {\n case Kind.DOCUMENT:\n this._fragmentSignaturesByName = /* c8 ignore start */ () =>\n null /* c8 ignore end */;\n break;\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n break;\n case Kind.FIELD:\n this._fieldDefStack.pop();\n this._typeStack.pop();\n break;\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n case Kind.FRAGMENT_SPREAD:\n this._fragmentSignature = null;\n break;\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n break;\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n break;\n case Kind.ARGUMENT:\n this._argument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.FRAGMENT_ARGUMENT: {\n this._fragmentArgument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n }\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.ENUM:\n this._enumValue = null;\n break;\n default:\n // Ignore other nodes\n }\n }\n}\n\nfunction getFragmentSignatures(\n document: DocumentNode,\n): Map<string, FragmentSignature> {\n const fragmentSignatures = new Map<string, FragmentSignature>();\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n const variableDefinitions = new Map<string, VariableDefinitionNode>();\n if (definition.variableDefinitions) {\n for (const varDef of definition.variableDefinitions) {\n variableDefinitions.set(varDef.variable.name.value, varDef);\n }\n }\n const signature = { definition, variableDefinitions };\n fragmentSignatures.set(definition.name.value, signature);\n }\n }\n return fragmentSignatures;\n}\n\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\nexport function visitWithTypeInfo(\n typeInfo: TypeInfo,\n visitor: ASTVisitor,\n): ASTVisitor {\n return {\n enter(...args) {\n const node = args[0];\n typeInfo.enter(node);\n const fn = getEnterLeaveForKind(visitor, node.kind).enter;\n if (fn) {\n const result = fn.apply(visitor, args);\n if (result !== undefined) {\n typeInfo.leave(node);\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n return result;\n }\n },\n leave(...args) {\n const node = args[0];\n const fn = getEnterLeaveForKind(visitor, node.kind).leave;\n let result;\n if (fn) {\n result = fn.apply(visitor, args);\n }\n typeInfo.leave(node);\n return result;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"TypeInfo.js","sourceRoot":"","sources":["../../src/utilities/TypeInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Maybe } from '../jsutils/Maybe.ts';\n\nimport type {\n ASTNode,\n DocumentNode,\n FragmentDefinitionNode,\n VariableDefinitionNode,\n} from '../language/ast.ts';\nimport { isNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport type { ASTVisitor } from '../language/visitor.ts';\nimport { getEnterLeaveForKind } from '../language/visitor.ts';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputField,\n GraphQLInputType,\n GraphQLOutputType,\n GraphQLType,\n} from '../type/definition.ts';\nimport {\n getNamedType,\n getNullableType,\n isCompositeType,\n isEnumType,\n isInputObjectType,\n isInputType,\n isListType,\n isObjectType,\n isOutputType,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\nimport { typeFromAST } from './typeFromAST.ts';\n\nexport interface FragmentSignature {\n readonly definition: FragmentDefinitionNode;\n readonly variableDefinitions: Map<string, VariableDefinitionNode>;\n}\n\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\nexport class TypeInfo {\n private _schema: GraphQLSchema;\n private _typeStack: Array<Maybe<GraphQLOutputType>>;\n private _parentTypeStack: Array<Maybe<GraphQLCompositeType>>;\n private _inputTypeStack: Array<Maybe<GraphQLInputType>>;\n private _fieldDefStack: Array<Maybe<GraphQLField<unknown, unknown>>>;\n private _defaultValueStack: Array<unknown>;\n private _directive: Maybe<GraphQLDirective>;\n private _argument: Maybe<GraphQLArgument>;\n private _enumValue: Maybe<GraphQLEnumValue>;\n private _fragmentSignaturesByName: (\n fragmentName: string,\n ) => Maybe<FragmentSignature>;\n\n private _fragmentSignature: Maybe<FragmentSignature>;\n private _fragmentArgument: Maybe<VariableDefinitionNode>;\n\n constructor(\n schema: GraphQLSchema,\n /**\n * Initial type may be provided in rare cases to facilitate traversals\n * beginning somewhere other than documents.\n */\n initialType?: Maybe<GraphQLType>,\n fragmentSignatures?: Maybe<\n (fragmentName: string) => Maybe<FragmentSignature>\n >,\n ) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._fragmentSignaturesByName = fragmentSignatures ?? (() => null);\n this._fragmentSignature = null;\n this._fragmentArgument = null;\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n get [Symbol.toStringTag](): string {\n return 'TypeInfo';\n }\n\n getType(): Maybe<GraphQLOutputType> {\n return this._typeStack.at(-1);\n }\n\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._parentTypeStack.at(-1);\n }\n\n getInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-1);\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._inputTypeStack.at(-2);\n }\n\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._fieldDefStack.at(-1);\n }\n\n getDefaultValue(): unknown {\n return this._defaultValueStack.at(-1);\n }\n\n getDirective(): Maybe<GraphQLDirective> {\n return this._directive;\n }\n\n getArgument(): Maybe<GraphQLArgument> {\n return this._argument;\n }\n\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._fragmentSignature;\n }\n\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._fragmentSignaturesByName;\n }\n\n getFragmentArgument(): Maybe<VariableDefinitionNode> {\n return this._fragmentArgument;\n }\n\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._enumValue;\n }\n\n enter(node: ASTNode): void {\n const schema = this._schema;\n // Note: many of the types below are explicitly typed as \"unknown\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n switch (node.kind) {\n case Kind.DOCUMENT: {\n const fragmentSignatures = getFragmentSignatures(node);\n this._fragmentSignaturesByName = (fragmentName: string) =>\n fragmentSignatures.get(fragmentName);\n break;\n }\n case Kind.SELECTION_SET: {\n const namedType: unknown = getNamedType(this.getType());\n this._parentTypeStack.push(\n isCompositeType(namedType) ? namedType : undefined,\n );\n break;\n }\n case Kind.FIELD: {\n const parentType = this.getParentType();\n let fieldDef;\n let fieldType: unknown;\n if (parentType) {\n fieldDef = schema.getField(parentType, node.name.value);\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n this._fieldDefStack.push(fieldDef);\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n break;\n }\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n case Kind.OPERATION_DEFINITION: {\n const rootType = schema.getRootType(node.operation);\n this._typeStack.push(isObjectType(rootType) ? rootType : undefined);\n break;\n }\n case Kind.FRAGMENT_SPREAD: {\n this._fragmentSignature = this.getFragmentSignatureByName()(\n node.name.value,\n );\n break;\n }\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION: {\n const typeConditionAST = node.typeCondition;\n const outputType: unknown = typeConditionAST\n ? typeFromAST(schema, typeConditionAST)\n : getNamedType(this.getType());\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n break;\n }\n case Kind.VARIABLE_DEFINITION: {\n const inputType: unknown = typeFromAST(schema, node.type);\n this._inputTypeStack.push(\n isInputType(inputType) ? inputType : undefined,\n );\n break;\n }\n case Kind.ARGUMENT: {\n let argDef;\n let argType: unknown;\n const fieldOrDirective = this.getDirective() ?? this.getFieldDef();\n if (fieldOrDirective) {\n argDef = fieldOrDirective.args.find(\n (arg) => arg.name === node.name.value,\n );\n if (argDef) {\n argType = argDef.type;\n }\n }\n this._argument = argDef;\n this._defaultValueStack.push(\n argDef?.default ?? argDef?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.FRAGMENT_ARGUMENT: {\n const fragmentSignature = this.getFragmentSignature();\n const argDef = fragmentSignature?.variableDefinitions.get(\n node.name.value,\n );\n this._fragmentArgument = argDef;\n let argType: unknown;\n if (argDef) {\n argType = typeFromAST(this._schema, argDef.type);\n }\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n break;\n }\n case Kind.LIST: {\n const listType: unknown = getNullableType(this.getInputType());\n const itemType: unknown = isListType(listType)\n ? listType.ofType\n : undefined;\n // List positions never have a default value.\n this._defaultValueStack.push(undefined);\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n break;\n }\n case Kind.OBJECT_FIELD: {\n const objectType: unknown = getNamedType(this.getInputType());\n let inputFieldType: GraphQLInputType | undefined;\n let inputField: GraphQLInputField | undefined;\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n if (inputField != null) {\n inputFieldType = inputField.type;\n }\n }\n this._defaultValueStack.push(\n inputField?.default ?? inputField?.defaultValue ?? undefined,\n );\n this._inputTypeStack.push(\n isInputType(inputFieldType) ? inputFieldType : undefined,\n );\n break;\n }\n case Kind.ENUM: {\n const enumType: unknown = getNamedType(this.getInputType());\n let enumValue;\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n this._enumValue = enumValue;\n break;\n }\n default:\n // Ignore other nodes\n }\n }\n\n leave(node: ASTNode): void {\n switch (node.kind) {\n case Kind.DOCUMENT:\n this._fragmentSignaturesByName = () => null;\n break;\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n break;\n case Kind.FIELD:\n this._fieldDefStack.pop();\n this._typeStack.pop();\n break;\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n case Kind.FRAGMENT_SPREAD:\n this._fragmentSignature = null;\n break;\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n break;\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n break;\n case Kind.ARGUMENT:\n this._argument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.FRAGMENT_ARGUMENT: {\n this._fragmentArgument = null;\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n }\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n this._inputTypeStack.pop();\n break;\n case Kind.ENUM:\n this._enumValue = null;\n break;\n default:\n // Ignore other nodes\n }\n }\n}\n\nfunction getFragmentSignatures(\n document: DocumentNode,\n): Map<string, FragmentSignature> {\n const fragmentSignatures = new Map<string, FragmentSignature>();\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION) {\n const variableDefinitions = new Map<string, VariableDefinitionNode>();\n if (definition.variableDefinitions) {\n for (const varDef of definition.variableDefinitions) {\n variableDefinitions.set(varDef.variable.name.value, varDef);\n }\n }\n const signature = { definition, variableDefinitions };\n fragmentSignatures.set(definition.name.value, signature);\n }\n }\n return fragmentSignatures;\n}\n\n/**\n * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\nexport function visitWithTypeInfo(\n typeInfo: TypeInfo,\n visitor: ASTVisitor,\n): ASTVisitor {\n return {\n enter(...args) {\n const node = args[0];\n typeInfo.enter(node);\n const fn = getEnterLeaveForKind(visitor, node.kind).enter;\n if (fn) {\n const result = fn.apply(visitor, args);\n if (result !== undefined) {\n typeInfo.leave(node);\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n return result;\n }\n },\n leave(...args) {\n const node = args[0];\n const fn = getEnterLeaveForKind(visitor, node.kind).leave;\n let result;\n if (fn) {\n result = fn.apply(visitor, args);\n }\n typeInfo.leave(node);\n return result;\n },\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
- import type { Maybe } from '../jsutils/Maybe.js';
2
- import type { ConstValueNode } from '../language/ast.js';
3
- import type { GraphQLInputType } from '../type/definition.js';
1
+ import type { Maybe } from "../jsutils/Maybe.mjs";
2
+ import type { ConstValueNode } from "../language/ast.mjs";
3
+ import type { GraphQLInputType } from "../type/definition.mjs";
4
4
  /**
5
5
  * Produces a GraphQL Value AST given a JavaScript object.
6
6
  * Function will match JavaScript/JSON values to GraphQL AST schema format
@@ -1,6 +1,6 @@
1
- import type { Maybe } from '../jsutils/Maybe.js';
2
- import type { ConstValueNode } from '../language/ast.js';
3
- import type { GraphQLInputType } from '../type/definition.js';
1
+ import type { Maybe } from "../jsutils/Maybe.js";
2
+ import type { ConstValueNode } from "../language/ast.js";
3
+ import type { GraphQLInputType } from "../type/definition.js";
4
4
  /**
5
5
  * Produces a GraphQL Value AST given a JavaScript object.
6
6
  * Function will match JavaScript/JSON values to GraphQL AST schema format