graphql 17.0.0-beta.1 → 17.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1176) hide show
  1. package/__dev__/devMode.d.ts +1 -1
  2. package/__dev__/error/GraphQLError.d.ts +1 -1
  3. package/__dev__/error/ensureGraphQLError.d.ts +1 -1
  4. package/__dev__/error/index.d.ts +1 -1
  5. package/__dev__/error/locatedError.d.ts +1 -1
  6. package/__dev__/error/syntaxError.d.ts +1 -1
  7. package/__dev__/execution/AbortedGraphQLExecutionError.d.ts +1 -1
  8. package/__dev__/execution/AsyncWorkTracker.d.ts +1 -1
  9. package/__dev__/execution/ExecutionArgs.d.mts +1 -0
  10. package/__dev__/execution/ExecutionArgs.d.ts +1 -0
  11. package/__dev__/execution/ExecutionArgs.js +3 -0
  12. package/__dev__/execution/ExecutionArgs.mjs +3 -0
  13. package/__dev__/execution/Executor.d.ts +1 -1
  14. package/__dev__/execution/ExecutorThrowingOnIncremental.d.ts +1 -1
  15. package/__dev__/execution/buildResolveInfo.d.ts +1 -1
  16. package/__dev__/execution/cancellablePromise.d.ts +1 -1
  17. package/__dev__/execution/collectFields.d.ts +1 -1
  18. package/__dev__/execution/collectIteratorPromises.d.ts +1 -1
  19. package/__dev__/execution/createSharedExecutionContext.d.ts +1 -1
  20. package/__dev__/execution/execute.d.ts +1 -1
  21. package/__dev__/execution/getStreamUsage.d.ts +1 -1
  22. package/__dev__/execution/getVariableSignature.d.ts +1 -1
  23. package/__dev__/execution/hooks.d.ts +1 -1
  24. package/__dev__/execution/incremental/Computation.d.ts +1 -1
  25. package/__dev__/execution/incremental/IncrementalExecutor.d.ts +1 -1
  26. package/__dev__/execution/incremental/IncrementalPublisher.d.ts +1 -1
  27. package/__dev__/execution/incremental/Queue.d.ts +1 -1
  28. package/__dev__/execution/incremental/WorkQueue.d.ts +1 -1
  29. package/__dev__/execution/incremental/buildExecutionPlan.d.ts +1 -1
  30. package/__dev__/execution/index.d.ts +1 -1
  31. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +1 -0
  32. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +1 -0
  33. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.js +3 -0
  34. package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +3 -0
  35. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +1 -0
  36. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +1 -0
  37. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.js +3 -0
  38. package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +3 -0
  39. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +1 -0
  40. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +1 -0
  41. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.js +3 -0
  42. package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.mjs +3 -0
  43. package/__dev__/execution/mapAsyncIterable.d.ts +1 -1
  44. package/__dev__/execution/returnIteratorCatchingErrors.d.ts +1 -1
  45. package/__dev__/execution/values.d.ts +1 -1
  46. package/__dev__/execution/withConcurrentAbruptClose.d.ts +1 -1
  47. package/__dev__/graphql.d.ts +1 -1
  48. package/__dev__/harness.d.ts +1 -1
  49. package/__dev__/index.d.ts +1 -1
  50. package/__dev__/jsutils/AccumulatorMap.d.ts +1 -1
  51. package/__dev__/jsutils/Maybe.d.ts +1 -1
  52. package/__dev__/jsutils/ObjMap.d.ts +1 -1
  53. package/__dev__/jsutils/Path.d.ts +1 -1
  54. package/__dev__/jsutils/PromiseOrValue.d.ts +1 -1
  55. package/__dev__/jsutils/capitalize.d.ts +1 -1
  56. package/__dev__/jsutils/devAssert.d.ts +1 -1
  57. package/__dev__/jsutils/didYouMean.d.ts +1 -1
  58. package/__dev__/jsutils/formatList.d.ts +1 -1
  59. package/__dev__/jsutils/getBySet.d.ts +1 -1
  60. package/__dev__/jsutils/groupBy.d.ts +1 -1
  61. package/__dev__/jsutils/identityFunc.d.ts +1 -1
  62. package/__dev__/jsutils/inspect.d.ts +1 -1
  63. package/__dev__/jsutils/instanceOf.d.ts +1 -1
  64. package/__dev__/jsutils/invariant.d.ts +1 -1
  65. package/__dev__/jsutils/isAsyncIterable.d.ts +1 -1
  66. package/__dev__/jsutils/isIterableObject.d.ts +1 -1
  67. package/__dev__/jsutils/isObjectLike.d.ts +1 -1
  68. package/__dev__/jsutils/isPromise.d.ts +1 -1
  69. package/__dev__/jsutils/isSameSet.d.ts +1 -1
  70. package/__dev__/jsutils/keyMap.d.ts +1 -1
  71. package/__dev__/jsutils/keyValMap.d.ts +1 -1
  72. package/__dev__/jsutils/mapValue.d.ts +1 -1
  73. package/__dev__/jsutils/memoize1.d.ts +1 -1
  74. package/__dev__/jsutils/memoize2.d.ts +1 -1
  75. package/__dev__/jsutils/memoize3.d.ts +1 -1
  76. package/__dev__/jsutils/naturalCompare.d.ts +1 -1
  77. package/__dev__/jsutils/printPathArray.d.ts +1 -1
  78. package/__dev__/jsutils/promiseForObject.d.ts +1 -1
  79. package/__dev__/jsutils/promiseReduce.d.ts +1 -1
  80. package/__dev__/jsutils/promiseWithResolvers.d.ts +1 -1
  81. package/__dev__/jsutils/suggestionList.d.ts +1 -1
  82. package/__dev__/jsutils/toError.d.ts +1 -1
  83. package/__dev__/jsutils/toObjMap.d.ts +1 -1
  84. package/__dev__/language/KindTypeMap.d.ts +1 -1
  85. package/__dev__/language/ast.d.ts +1 -1
  86. package/__dev__/language/blockString.d.ts +1 -1
  87. package/__dev__/language/characterClasses.d.ts +1 -1
  88. package/__dev__/language/directiveLocation.d.ts +1 -1
  89. package/__dev__/language/index.d.ts +1 -1
  90. package/__dev__/language/kinds.d.ts +1 -1
  91. package/__dev__/language/kinds_.d.ts +1 -1
  92. package/__dev__/language/lexer.d.ts +1 -1
  93. package/__dev__/language/location.d.ts +1 -1
  94. package/__dev__/language/parser.d.ts +1 -1
  95. package/__dev__/language/predicates.d.ts +1 -1
  96. package/__dev__/language/printLocation.d.ts +1 -1
  97. package/__dev__/language/printString.d.ts +1 -1
  98. package/__dev__/language/printer.d.ts +1 -1
  99. package/__dev__/language/schemaCoordinateLexer.d.ts +1 -1
  100. package/__dev__/language/source.d.ts +1 -1
  101. package/__dev__/language/tokenKind.d.ts +1 -1
  102. package/__dev__/language/visitor.d.ts +1 -1
  103. package/__dev__/type/assertName.d.ts +1 -1
  104. package/__dev__/type/definition.d.ts +1 -1
  105. package/__dev__/type/directives.d.ts +1 -1
  106. package/__dev__/type/index.d.ts +1 -1
  107. package/__dev__/type/introspection.d.ts +1 -1
  108. package/__dev__/type/scalars.d.ts +1 -1
  109. package/__dev__/type/schema.d.ts +1 -1
  110. package/__dev__/type/validate.d.ts +1 -1
  111. package/__dev__/utilities/TypeInfo.d.ts +1 -1
  112. package/__dev__/utilities/astFromValue.d.ts +1 -1
  113. package/__dev__/utilities/buildASTSchema.d.ts +1 -1
  114. package/__dev__/utilities/buildClientSchema.d.ts +1 -1
  115. package/__dev__/utilities/coerceInputValue.d.ts +1 -1
  116. package/__dev__/utilities/concatAST.d.ts +1 -1
  117. package/__dev__/utilities/extendSchema.d.ts +1 -1
  118. package/__dev__/utilities/findSchemaChanges.d.ts +1 -1
  119. package/__dev__/utilities/getDefaultValueAST.d.ts +1 -1
  120. package/__dev__/utilities/getIntrospectionQuery.d.ts +1 -1
  121. package/__dev__/utilities/getOperationAST.d.ts +1 -1
  122. package/__dev__/utilities/index.d.ts +1 -1
  123. package/__dev__/utilities/introspectionFromSchema.d.ts +1 -1
  124. package/__dev__/utilities/lexicographicSortSchema.d.ts +1 -1
  125. package/__dev__/utilities/mapSchemaConfig.d.ts +1 -1
  126. package/__dev__/utilities/printSchema.d.ts +1 -1
  127. package/__dev__/utilities/replaceVariables.d.ts +1 -1
  128. package/__dev__/utilities/resolveSchemaCoordinate.d.ts +1 -1
  129. package/__dev__/utilities/separateOperations.d.ts +1 -1
  130. package/__dev__/utilities/sortValueNode.d.ts +1 -1
  131. package/__dev__/utilities/stripIgnoredCharacters.d.ts +1 -1
  132. package/__dev__/utilities/typeComparators.d.ts +1 -1
  133. package/__dev__/utilities/typeFromAST.d.ts +1 -1
  134. package/__dev__/utilities/typedQueryDocumentNode.d.ts +1 -1
  135. package/__dev__/utilities/validateInputValue.d.ts +1 -1
  136. package/__dev__/utilities/valueFromAST.d.ts +1 -1
  137. package/__dev__/utilities/valueFromASTUntyped.d.ts +1 -1
  138. package/__dev__/utilities/valueToLiteral.d.ts +1 -1
  139. package/__dev__/validation/ValidationContext.d.ts +1 -1
  140. package/__dev__/validation/index.d.ts +1 -1
  141. package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.d.ts +1 -1
  142. package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +1 -1
  143. package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +1 -1
  144. package/__dev__/validation/rules/ExecutableDefinitionsRule.d.ts +1 -1
  145. package/__dev__/validation/rules/FieldsOnCorrectTypeRule.d.ts +1 -1
  146. package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.d.ts +1 -1
  147. package/__dev__/validation/rules/KnownArgumentNamesRule.d.ts +1 -1
  148. package/__dev__/validation/rules/KnownDirectivesRule.d.ts +1 -1
  149. package/__dev__/validation/rules/KnownFragmentNamesRule.d.ts +1 -1
  150. package/__dev__/validation/rules/KnownOperationTypesRule.d.ts +1 -1
  151. package/__dev__/validation/rules/KnownTypeNamesRule.d.ts +1 -1
  152. package/__dev__/validation/rules/LoneAnonymousOperationRule.d.ts +1 -1
  153. package/__dev__/validation/rules/LoneSchemaDefinitionRule.d.ts +1 -1
  154. package/__dev__/validation/rules/MaxIntrospectionDepthRule.d.ts +1 -1
  155. package/__dev__/validation/rules/NoFragmentCyclesRule.d.ts +1 -1
  156. package/__dev__/validation/rules/NoUndefinedVariablesRule.d.ts +1 -1
  157. package/__dev__/validation/rules/NoUnusedFragmentsRule.d.ts +1 -1
  158. package/__dev__/validation/rules/NoUnusedVariablesRule.d.ts +1 -1
  159. package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +1 -1
  160. package/__dev__/validation/rules/PossibleFragmentSpreadsRule.d.ts +1 -1
  161. package/__dev__/validation/rules/PossibleTypeExtensionsRule.d.ts +1 -1
  162. package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.d.ts +1 -1
  163. package/__dev__/validation/rules/ScalarLeafsRule.d.ts +1 -1
  164. package/__dev__/validation/rules/SingleFieldSubscriptionsRule.d.ts +1 -1
  165. package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.d.ts +1 -1
  166. package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +1 -1
  167. package/__dev__/validation/rules/UniqueArgumentNamesRule.d.ts +1 -1
  168. package/__dev__/validation/rules/UniqueDirectiveNamesRule.d.ts +1 -1
  169. package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.d.ts +1 -1
  170. package/__dev__/validation/rules/UniqueEnumValueNamesRule.d.ts +1 -1
  171. package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +1 -1
  172. package/__dev__/validation/rules/UniqueFragmentNamesRule.d.ts +1 -1
  173. package/__dev__/validation/rules/UniqueInputFieldNamesRule.d.ts +1 -1
  174. package/__dev__/validation/rules/UniqueOperationNamesRule.d.ts +1 -1
  175. package/__dev__/validation/rules/UniqueOperationTypesRule.d.ts +1 -1
  176. package/__dev__/validation/rules/UniqueTypeNamesRule.d.ts +1 -1
  177. package/__dev__/validation/rules/UniqueVariableNamesRule.d.ts +1 -1
  178. package/__dev__/validation/rules/ValuesOfCorrectTypeRule.d.ts +1 -1
  179. package/__dev__/validation/rules/VariablesAreInputTypesRule.d.ts +1 -1
  180. package/__dev__/validation/rules/VariablesInAllowedPositionRule.d.ts +1 -1
  181. package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.d.ts +1 -1
  182. package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +1 -1
  183. package/__dev__/validation/specifiedRules.d.ts +1 -1
  184. package/__dev__/validation/validate.d.ts +1 -1
  185. package/__dev__/version.d.ts +1 -1
  186. package/devMode.d.mts +29 -0
  187. package/devMode.d.ts +29 -0
  188. package/devMode.js.map +1 -1
  189. package/devMode.mjs.map +1 -1
  190. package/error/GraphQLError.d.mts +94 -10
  191. package/error/GraphQLError.d.ts +94 -10
  192. package/error/GraphQLError.js +11 -20
  193. package/error/GraphQLError.js.map +1 -1
  194. package/error/GraphQLError.mjs +11 -20
  195. package/error/GraphQLError.mjs.map +1 -1
  196. package/error/ensureGraphQLError.d.mts +2 -0
  197. package/error/ensureGraphQLError.d.ts +2 -0
  198. package/error/ensureGraphQLError.js +0 -3
  199. package/error/ensureGraphQLError.js.map +1 -1
  200. package/error/ensureGraphQLError.mjs +0 -3
  201. package/error/ensureGraphQLError.mjs.map +1 -1
  202. package/error/index.d.mts +6 -0
  203. package/error/index.d.ts +6 -0
  204. package/error/index.js.map +1 -1
  205. package/error/index.mjs.map +1 -1
  206. package/error/locatedError.d.mts +20 -0
  207. package/error/locatedError.d.ts +20 -0
  208. package/error/locatedError.js +0 -6
  209. package/error/locatedError.js.map +1 -1
  210. package/error/locatedError.mjs +0 -6
  211. package/error/locatedError.mjs.map +1 -1
  212. package/error/syntaxError.d.mts +15 -0
  213. package/error/syntaxError.d.ts +15 -0
  214. package/error/syntaxError.js +0 -4
  215. package/error/syntaxError.js.map +1 -1
  216. package/error/syntaxError.mjs +0 -4
  217. package/error/syntaxError.mjs.map +1 -1
  218. package/execution/AbortedGraphQLExecutionError.d.mts +27 -0
  219. package/execution/AbortedGraphQLExecutionError.d.ts +27 -0
  220. package/execution/AbortedGraphQLExecutionError.js.map +1 -1
  221. package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
  222. package/execution/AsyncWorkTracker.d.mts +1 -1
  223. package/execution/AsyncWorkTracker.d.ts +1 -1
  224. package/execution/AsyncWorkTracker.js +1 -5
  225. package/execution/AsyncWorkTracker.js.map +1 -1
  226. package/execution/AsyncWorkTracker.mjs +1 -5
  227. package/execution/AsyncWorkTracker.mjs.map +1 -1
  228. package/execution/ExecutionArgs.d.mts +101 -0
  229. package/execution/ExecutionArgs.d.ts +101 -0
  230. package/execution/ExecutionArgs.js +3 -0
  231. package/execution/ExecutionArgs.js.map +1 -0
  232. package/execution/ExecutionArgs.mjs +2 -0
  233. package/execution/ExecutionArgs.mjs.map +1 -0
  234. package/execution/Executor.d.mts +44 -40
  235. package/execution/Executor.d.ts +44 -40
  236. package/execution/Executor.js +2 -122
  237. package/execution/Executor.js.map +1 -1
  238. package/execution/Executor.mjs +2 -122
  239. package/execution/Executor.mjs.map +1 -1
  240. package/execution/ExecutorThrowingOnIncremental.js +0 -2
  241. package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
  242. package/execution/ExecutorThrowingOnIncremental.mjs +0 -2
  243. package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
  244. package/execution/buildResolveInfo.d.mts +2 -0
  245. package/execution/buildResolveInfo.d.ts +2 -0
  246. package/execution/buildResolveInfo.js +0 -3
  247. package/execution/buildResolveInfo.js.map +1 -1
  248. package/execution/buildResolveInfo.mjs +0 -3
  249. package/execution/buildResolveInfo.mjs.map +1 -1
  250. package/execution/cancellablePromise.d.mts +3 -0
  251. package/execution/cancellablePromise.d.ts +3 -0
  252. package/execution/cancellablePromise.js.map +1 -1
  253. package/execution/cancellablePromise.mjs.map +1 -1
  254. package/execution/collectFields.d.mts +10 -4
  255. package/execution/collectFields.d.ts +10 -4
  256. package/execution/collectFields.js +0 -41
  257. package/execution/collectFields.js.map +1 -1
  258. package/execution/collectFields.mjs +0 -41
  259. package/execution/collectFields.mjs.map +1 -1
  260. package/execution/collectIteratorPromises.d.mts +2 -0
  261. package/execution/collectIteratorPromises.d.ts +2 -0
  262. package/execution/collectIteratorPromises.js +0 -5
  263. package/execution/collectIteratorPromises.js.map +1 -1
  264. package/execution/collectIteratorPromises.mjs +0 -5
  265. package/execution/collectIteratorPromises.mjs.map +1 -1
  266. package/execution/createSharedExecutionContext.d.mts +1 -0
  267. package/execution/createSharedExecutionContext.d.ts +1 -0
  268. package/execution/createSharedExecutionContext.js.map +1 -1
  269. package/execution/createSharedExecutionContext.mjs.map +1 -1
  270. package/execution/execute.d.mts +403 -38
  271. package/execution/execute.d.ts +403 -38
  272. package/execution/execute.js +0 -161
  273. package/execution/execute.js.map +1 -1
  274. package/execution/execute.mjs +0 -161
  275. package/execution/execute.mjs.map +1 -1
  276. package/execution/getStreamUsage.d.mts +4 -1
  277. package/execution/getStreamUsage.d.ts +4 -1
  278. package/execution/getStreamUsage.js +0 -7
  279. package/execution/getStreamUsage.js.map +1 -1
  280. package/execution/getStreamUsage.mjs +0 -7
  281. package/execution/getStreamUsage.mjs.map +1 -1
  282. package/execution/getVariableSignature.d.mts +4 -1
  283. package/execution/getVariableSignature.d.ts +4 -1
  284. package/execution/getVariableSignature.js +0 -2
  285. package/execution/getVariableSignature.js.map +1 -1
  286. package/execution/getVariableSignature.mjs +0 -2
  287. package/execution/getVariableSignature.mjs.map +1 -1
  288. package/execution/hooks.d.mts +3 -7
  289. package/execution/hooks.d.ts +3 -7
  290. package/execution/hooks.js +0 -1
  291. package/execution/hooks.js.map +1 -1
  292. package/execution/hooks.mjs +0 -1
  293. package/execution/hooks.mjs.map +1 -1
  294. package/execution/incremental/Computation.d.mts +1 -1
  295. package/execution/incremental/Computation.d.ts +1 -1
  296. package/execution/incremental/Computation.js +0 -1
  297. package/execution/incremental/Computation.js.map +1 -1
  298. package/execution/incremental/Computation.mjs +0 -1
  299. package/execution/incremental/Computation.mjs.map +1 -1
  300. package/execution/incremental/IncrementalExecutor.d.mts +124 -9
  301. package/execution/incremental/IncrementalExecutor.d.ts +124 -9
  302. package/execution/incremental/IncrementalExecutor.js +1 -31
  303. package/execution/incremental/IncrementalExecutor.js.map +1 -1
  304. package/execution/incremental/IncrementalExecutor.mjs +1 -31
  305. package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
  306. package/execution/incremental/IncrementalPublisher.d.mts +1 -3
  307. package/execution/incremental/IncrementalPublisher.d.ts +1 -3
  308. package/execution/incremental/IncrementalPublisher.js +0 -5
  309. package/execution/incremental/IncrementalPublisher.js.map +1 -1
  310. package/execution/incremental/IncrementalPublisher.mjs +0 -5
  311. package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
  312. package/execution/incremental/Queue.js +3 -64
  313. package/execution/incremental/Queue.js.map +1 -1
  314. package/execution/incremental/Queue.mjs +2 -62
  315. package/execution/incremental/Queue.mjs.map +1 -1
  316. package/execution/incremental/WorkQueue.d.mts +8 -0
  317. package/execution/incremental/WorkQueue.d.ts +8 -0
  318. package/execution/incremental/WorkQueue.js +0 -15
  319. package/execution/incremental/WorkQueue.js.map +1 -1
  320. package/execution/incremental/WorkQueue.mjs +0 -15
  321. package/execution/incremental/WorkQueue.mjs.map +1 -1
  322. package/execution/incremental/buildExecutionPlan.d.mts +3 -0
  323. package/execution/incremental/buildExecutionPlan.d.ts +3 -0
  324. package/execution/incremental/buildExecutionPlan.js.map +1 -1
  325. package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
  326. package/execution/index.d.mts +12 -3
  327. package/execution/index.d.ts +12 -3
  328. package/execution/index.js +4 -1
  329. package/execution/index.js.map +1 -1
  330. package/execution/index.mjs +1 -0
  331. package/execution/index.mjs.map +1 -1
  332. package/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +175 -0
  333. package/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +175 -0
  334. package/execution/legacyIncremental/BranchingIncrementalExecutor.js +69 -0
  335. package/execution/legacyIncremental/BranchingIncrementalExecutor.js.map +1 -0
  336. package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +65 -0
  337. package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs.map +1 -0
  338. package/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +12 -0
  339. package/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +12 -0
  340. package/execution/legacyIncremental/BranchingIncrementalPublisher.js +131 -0
  341. package/execution/legacyIncremental/BranchingIncrementalPublisher.js.map +1 -0
  342. package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +127 -0
  343. package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs.map +1 -0
  344. package/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +165 -0
  345. package/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +165 -0
  346. package/execution/legacyIncremental/legacyExecuteIncrementally.js +17 -0
  347. package/execution/legacyIncremental/legacyExecuteIncrementally.js.map +1 -0
  348. package/execution/legacyIncremental/legacyExecuteIncrementally.mjs +13 -0
  349. package/execution/legacyIncremental/legacyExecuteIncrementally.mjs.map +1 -0
  350. package/execution/mapAsyncIterable.d.mts +2 -0
  351. package/execution/mapAsyncIterable.d.ts +2 -0
  352. package/execution/mapAsyncIterable.js +0 -5
  353. package/execution/mapAsyncIterable.js.map +1 -1
  354. package/execution/mapAsyncIterable.mjs +0 -5
  355. package/execution/mapAsyncIterable.mjs.map +1 -1
  356. package/execution/returnIteratorCatchingErrors.d.mts +1 -0
  357. package/execution/returnIteratorCatchingErrors.d.ts +1 -0
  358. package/execution/returnIteratorCatchingErrors.js +0 -1
  359. package/execution/returnIteratorCatchingErrors.js.map +1 -1
  360. package/execution/returnIteratorCatchingErrors.mjs +0 -1
  361. package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
  362. package/execution/values.d.mts +187 -5
  363. package/execution/values.d.ts +187 -5
  364. package/execution/values.js +14 -55
  365. package/execution/values.js.map +1 -1
  366. package/execution/values.mjs +14 -55
  367. package/execution/values.mjs.map +1 -1
  368. package/execution/withConcurrentAbruptClose.d.mts +2 -0
  369. package/execution/withConcurrentAbruptClose.d.ts +2 -0
  370. package/execution/withConcurrentAbruptClose.js +0 -14
  371. package/execution/withConcurrentAbruptClose.js.map +1 -1
  372. package/execution/withConcurrentAbruptClose.mjs +0 -14
  373. package/execution/withConcurrentAbruptClose.mjs.map +1 -1
  374. package/graphql.d.mts +192 -44
  375. package/graphql.d.ts +192 -44
  376. package/graphql.js +0 -12
  377. package/graphql.js.map +1 -1
  378. package/graphql.mjs +0 -12
  379. package/graphql.mjs.map +1 -1
  380. package/harness.d.mts +17 -0
  381. package/harness.d.ts +17 -0
  382. package/harness.js.map +1 -1
  383. package/harness.mjs.map +1 -1
  384. package/index.d.mts +26 -24
  385. package/index.d.ts +26 -24
  386. package/index.js +9 -96
  387. package/index.js.map +1 -1
  388. package/index.mjs +5 -149
  389. package/index.mjs.map +1 -1
  390. package/jsutils/AccumulatorMap.d.mts +2 -0
  391. package/jsutils/AccumulatorMap.d.ts +2 -0
  392. package/jsutils/AccumulatorMap.js +0 -4
  393. package/jsutils/AccumulatorMap.js.map +1 -1
  394. package/jsutils/AccumulatorMap.mjs +0 -4
  395. package/jsutils/AccumulatorMap.mjs.map +1 -1
  396. package/jsutils/Maybe.d.mts +5 -1
  397. package/jsutils/Maybe.d.ts +5 -1
  398. package/jsutils/Maybe.js.map +1 -1
  399. package/jsutils/Maybe.mjs.map +1 -1
  400. package/jsutils/ObjMap.d.mts +6 -0
  401. package/jsutils/ObjMap.d.ts +6 -0
  402. package/jsutils/ObjMap.js.map +1 -1
  403. package/jsutils/ObjMap.mjs.map +1 -1
  404. package/jsutils/Path.d.mts +30 -0
  405. package/jsutils/Path.d.ts +30 -0
  406. package/jsutils/Path.js +0 -6
  407. package/jsutils/Path.js.map +1 -1
  408. package/jsutils/Path.mjs +0 -6
  409. package/jsutils/Path.mjs.map +1 -1
  410. package/jsutils/PromiseOrValue.d.mts +1 -0
  411. package/jsutils/PromiseOrValue.d.ts +1 -0
  412. package/jsutils/PromiseOrValue.js.map +1 -1
  413. package/jsutils/PromiseOrValue.mjs.map +1 -1
  414. package/jsutils/capitalize.d.mts +2 -0
  415. package/jsutils/capitalize.d.ts +2 -0
  416. package/jsutils/capitalize.js +0 -3
  417. package/jsutils/capitalize.js.map +1 -1
  418. package/jsutils/capitalize.mjs +0 -3
  419. package/jsutils/capitalize.mjs.map +1 -1
  420. package/jsutils/devAssert.d.mts +1 -0
  421. package/jsutils/devAssert.d.ts +1 -0
  422. package/jsutils/devAssert.js.map +1 -1
  423. package/jsutils/devAssert.mjs.map +1 -1
  424. package/jsutils/didYouMean.d.mts +4 -1
  425. package/jsutils/didYouMean.d.ts +4 -1
  426. package/jsutils/didYouMean.js.map +1 -1
  427. package/jsutils/didYouMean.mjs.map +1 -1
  428. package/jsutils/formatList.d.mts +6 -2
  429. package/jsutils/formatList.d.ts +6 -2
  430. package/jsutils/formatList.js +0 -6
  431. package/jsutils/formatList.js.map +1 -1
  432. package/jsutils/formatList.mjs +0 -6
  433. package/jsutils/formatList.mjs.map +1 -1
  434. package/jsutils/getBySet.d.mts +1 -0
  435. package/jsutils/getBySet.d.ts +1 -0
  436. package/jsutils/getBySet.js.map +1 -1
  437. package/jsutils/getBySet.mjs.map +1 -1
  438. package/jsutils/groupBy.d.mts +2 -0
  439. package/jsutils/groupBy.d.ts +2 -0
  440. package/jsutils/groupBy.js +0 -3
  441. package/jsutils/groupBy.js.map +1 -1
  442. package/jsutils/groupBy.mjs +0 -3
  443. package/jsutils/groupBy.mjs.map +1 -1
  444. package/jsutils/identityFunc.d.mts +2 -0
  445. package/jsutils/identityFunc.d.ts +2 -0
  446. package/jsutils/identityFunc.js +0 -3
  447. package/jsutils/identityFunc.js.map +1 -1
  448. package/jsutils/identityFunc.mjs +0 -3
  449. package/jsutils/identityFunc.mjs.map +1 -1
  450. package/jsutils/inspect.d.mts +2 -0
  451. package/jsutils/inspect.d.ts +2 -0
  452. package/jsutils/inspect.js +0 -4
  453. package/jsutils/inspect.js.map +1 -1
  454. package/jsutils/inspect.mjs +0 -4
  455. package/jsutils/inspect.mjs.map +1 -1
  456. package/jsutils/instanceOf.d.mts +2 -0
  457. package/jsutils/instanceOf.d.ts +2 -0
  458. package/jsutils/instanceOf.js +1 -12
  459. package/jsutils/instanceOf.js.map +1 -1
  460. package/jsutils/instanceOf.mjs +1 -12
  461. package/jsutils/instanceOf.mjs.map +1 -1
  462. package/jsutils/invariant.d.mts +1 -0
  463. package/jsutils/invariant.d.ts +1 -0
  464. package/jsutils/invariant.js.map +1 -1
  465. package/jsutils/invariant.mjs.map +1 -1
  466. package/jsutils/isAsyncIterable.d.mts +2 -0
  467. package/jsutils/isAsyncIterable.d.ts +2 -0
  468. package/jsutils/isAsyncIterable.js +0 -4
  469. package/jsutils/isAsyncIterable.js.map +1 -1
  470. package/jsutils/isAsyncIterable.mjs +0 -4
  471. package/jsutils/isAsyncIterable.mjs.map +1 -1
  472. package/jsutils/isIterableObject.d.mts +6 -5
  473. package/jsutils/isIterableObject.d.ts +6 -5
  474. package/jsutils/isIterableObject.js +0 -17
  475. package/jsutils/isIterableObject.js.map +1 -1
  476. package/jsutils/isIterableObject.mjs +0 -17
  477. package/jsutils/isIterableObject.mjs.map +1 -1
  478. package/jsutils/isObjectLike.d.mts +2 -0
  479. package/jsutils/isObjectLike.d.ts +2 -0
  480. package/jsutils/isObjectLike.js +0 -4
  481. package/jsutils/isObjectLike.js.map +1 -1
  482. package/jsutils/isObjectLike.mjs +0 -4
  483. package/jsutils/isObjectLike.mjs.map +1 -1
  484. package/jsutils/isPromise.d.mts +3 -0
  485. package/jsutils/isPromise.d.ts +3 -0
  486. package/jsutils/isPromise.js +0 -4
  487. package/jsutils/isPromise.js.map +1 -1
  488. package/jsutils/isPromise.mjs +0 -4
  489. package/jsutils/isPromise.mjs.map +1 -1
  490. package/jsutils/isSameSet.d.mts +1 -0
  491. package/jsutils/isSameSet.d.ts +1 -0
  492. package/jsutils/isSameSet.js.map +1 -1
  493. package/jsutils/isSameSet.mjs.map +1 -1
  494. package/jsutils/keyMap.d.mts +7 -14
  495. package/jsutils/keyMap.d.ts +7 -14
  496. package/jsutils/keyMap.js +0 -27
  497. package/jsutils/keyMap.js.map +1 -1
  498. package/jsutils/keyMap.mjs +0 -27
  499. package/jsutils/keyMap.mjs.map +1 -1
  500. package/jsutils/keyValMap.d.mts +9 -6
  501. package/jsutils/keyValMap.d.ts +9 -6
  502. package/jsutils/keyValMap.js +0 -17
  503. package/jsutils/keyValMap.js.map +1 -1
  504. package/jsutils/keyValMap.mjs +0 -17
  505. package/jsutils/keyValMap.mjs.map +1 -1
  506. package/jsutils/mapValue.d.mts +2 -0
  507. package/jsutils/mapValue.d.ts +2 -0
  508. package/jsutils/mapValue.js +0 -4
  509. package/jsutils/mapValue.js.map +1 -1
  510. package/jsutils/mapValue.mjs +0 -4
  511. package/jsutils/mapValue.mjs.map +1 -1
  512. package/jsutils/memoize1.d.mts +2 -0
  513. package/jsutils/memoize1.d.ts +2 -0
  514. package/jsutils/memoize1.js +0 -3
  515. package/jsutils/memoize1.js.map +1 -1
  516. package/jsutils/memoize1.mjs +0 -3
  517. package/jsutils/memoize1.mjs.map +1 -1
  518. package/jsutils/memoize2.d.mts +2 -0
  519. package/jsutils/memoize2.d.ts +2 -0
  520. package/jsutils/memoize2.js +0 -3
  521. package/jsutils/memoize2.js.map +1 -1
  522. package/jsutils/memoize2.mjs +0 -3
  523. package/jsutils/memoize2.mjs.map +1 -1
  524. package/jsutils/memoize3.d.mts +2 -0
  525. package/jsutils/memoize3.d.ts +2 -0
  526. package/jsutils/memoize3.js +0 -3
  527. package/jsutils/memoize3.js.map +1 -1
  528. package/jsutils/memoize3.mjs +0 -3
  529. package/jsutils/memoize3.mjs.map +1 -1
  530. package/jsutils/naturalCompare.d.mts +1 -0
  531. package/jsutils/naturalCompare.d.ts +1 -0
  532. package/jsutils/naturalCompare.js +0 -7
  533. package/jsutils/naturalCompare.js.map +1 -1
  534. package/jsutils/naturalCompare.mjs +0 -7
  535. package/jsutils/naturalCompare.mjs.map +1 -1
  536. package/jsutils/printPathArray.d.mts +2 -0
  537. package/jsutils/printPathArray.d.ts +2 -0
  538. package/jsutils/printPathArray.js +0 -3
  539. package/jsutils/printPathArray.js.map +1 -1
  540. package/jsutils/printPathArray.mjs +0 -3
  541. package/jsutils/printPathArray.mjs.map +1 -1
  542. package/jsutils/promiseForObject.d.mts +2 -0
  543. package/jsutils/promiseForObject.d.ts +2 -0
  544. package/jsutils/promiseForObject.js +0 -7
  545. package/jsutils/promiseForObject.js.map +1 -1
  546. package/jsutils/promiseForObject.mjs +0 -7
  547. package/jsutils/promiseForObject.mjs.map +1 -1
  548. package/jsutils/promiseReduce.d.mts +2 -0
  549. package/jsutils/promiseReduce.d.ts +2 -0
  550. package/jsutils/promiseReduce.js +0 -7
  551. package/jsutils/promiseReduce.js.map +1 -1
  552. package/jsutils/promiseReduce.mjs +0 -7
  553. package/jsutils/promiseReduce.mjs.map +1 -1
  554. package/jsutils/promiseWithResolvers.d.mts +2 -0
  555. package/jsutils/promiseWithResolvers.d.ts +2 -0
  556. package/jsutils/promiseWithResolvers.js +0 -5
  557. package/jsutils/promiseWithResolvers.js.map +1 -1
  558. package/jsutils/promiseWithResolvers.mjs +0 -5
  559. package/jsutils/promiseWithResolvers.mjs.map +1 -1
  560. package/jsutils/suggestionList.d.mts +2 -0
  561. package/jsutils/suggestionList.d.ts +2 -0
  562. package/jsutils/suggestionList.js +1 -24
  563. package/jsutils/suggestionList.js.map +1 -1
  564. package/jsutils/suggestionList.mjs +1 -24
  565. package/jsutils/suggestionList.mjs.map +1 -1
  566. package/jsutils/toError.d.mts +2 -0
  567. package/jsutils/toError.d.ts +2 -0
  568. package/jsutils/toError.js +0 -3
  569. package/jsutils/toError.js.map +1 -1
  570. package/jsutils/toError.mjs +0 -3
  571. package/jsutils/toError.mjs.map +1 -1
  572. package/jsutils/toObjMap.d.mts +2 -0
  573. package/jsutils/toObjMap.d.ts +2 -0
  574. package/jsutils/toObjMap.js.map +1 -1
  575. package/jsutils/toObjMap.mjs.map +1 -1
  576. package/language/KindTypeMap.d.mts +1 -0
  577. package/language/KindTypeMap.d.ts +1 -0
  578. package/language/KindTypeMap.js.map +1 -1
  579. package/language/KindTypeMap.mjs.map +1 -1
  580. package/language/ast.d.mts +413 -53
  581. package/language/ast.d.ts +413 -53
  582. package/language/ast.js +0 -20
  583. package/language/ast.js.map +1 -1
  584. package/language/ast.mjs +0 -20
  585. package/language/ast.mjs.map +1 -1
  586. package/language/blockString.d.mts +1 -3
  587. package/language/blockString.d.ts +1 -3
  588. package/language/blockString.js +11 -37
  589. package/language/blockString.js.map +1 -1
  590. package/language/blockString.mjs +11 -37
  591. package/language/blockString.mjs.map +1 -1
  592. package/language/characterClasses.js +2 -45
  593. package/language/characterClasses.js.map +1 -1
  594. package/language/characterClasses.mjs +2 -45
  595. package/language/characterClasses.mjs.map +1 -1
  596. package/language/directiveLocation.d.mts +24 -5
  597. package/language/directiveLocation.d.ts +24 -5
  598. package/language/directiveLocation.js +0 -5
  599. package/language/directiveLocation.js.map +1 -1
  600. package/language/directiveLocation.mjs +0 -5
  601. package/language/directiveLocation.mjs.map +1 -1
  602. package/language/index.d.mts +6 -0
  603. package/language/index.d.ts +6 -0
  604. package/language/index.js +0 -4
  605. package/language/index.js.map +1 -1
  606. package/language/index.mjs +0 -4
  607. package/language/index.mjs.map +1 -1
  608. package/language/kinds.d.mts +3 -0
  609. package/language/kinds.d.ts +3 -0
  610. package/language/kinds.js.map +1 -1
  611. package/language/kinds.mjs.map +1 -1
  612. package/language/kinds_.d.mts +100 -12
  613. package/language/kinds_.d.ts +100 -12
  614. package/language/kinds_.js +0 -13
  615. package/language/kinds_.js.map +1 -1
  616. package/language/kinds_.mjs +0 -13
  617. package/language/kinds_.mjs.map +1 -1
  618. package/language/lexer.d.mts +48 -15
  619. package/language/lexer.d.ts +48 -15
  620. package/language/lexer.js +37 -278
  621. package/language/lexer.js.map +1 -1
  622. package/language/lexer.mjs +37 -278
  623. package/language/lexer.mjs.map +1 -1
  624. package/language/location.d.mts +16 -3
  625. package/language/location.d.ts +16 -3
  626. package/language/location.js +0 -4
  627. package/language/location.js.map +1 -1
  628. package/language/location.mjs +0 -4
  629. package/language/location.mjs.map +1 -1
  630. package/language/parser.d.mts +224 -9
  631. package/language/parser.d.ts +224 -9
  632. package/language/parser.js +0 -375
  633. package/language/parser.js.map +1 -1
  634. package/language/parser.mjs +0 -375
  635. package/language/parser.mjs.map +1 -1
  636. package/language/predicates.d.mts +181 -0
  637. package/language/predicates.d.ts +181 -0
  638. package/language/predicates.js +0 -6
  639. package/language/predicates.js.map +1 -1
  640. package/language/predicates.mjs +0 -6
  641. package/language/predicates.mjs.map +1 -1
  642. package/language/printLocation.d.mts +28 -0
  643. package/language/printLocation.d.ts +28 -0
  644. package/language/printLocation.js +0 -8
  645. package/language/printLocation.js.map +1 -1
  646. package/language/printLocation.mjs +0 -8
  647. package/language/printLocation.mjs.map +1 -1
  648. package/language/printString.d.mts +2 -0
  649. package/language/printString.d.ts +2 -0
  650. package/language/printString.js +5 -11
  651. package/language/printString.js.map +1 -1
  652. package/language/printString.mjs +5 -11
  653. package/language/printString.mjs.map +1 -1
  654. package/language/printer.d.mts +12 -0
  655. package/language/printer.d.ts +12 -0
  656. package/language/printer.js +0 -25
  657. package/language/printer.js.map +1 -1
  658. package/language/printer.mjs +0 -25
  659. package/language/printer.mjs.map +1 -1
  660. package/language/schemaCoordinateLexer.d.mts +14 -0
  661. package/language/schemaCoordinateLexer.d.ts +14 -0
  662. package/language/schemaCoordinateLexer.js +5 -35
  663. package/language/schemaCoordinateLexer.js.map +1 -1
  664. package/language/schemaCoordinateLexer.mjs +5 -35
  665. package/language/schemaCoordinateLexer.mjs.map +1 -1
  666. package/language/source.d.mts +28 -1
  667. package/language/source.d.ts +28 -1
  668. package/language/source.js +0 -12
  669. package/language/source.js.map +1 -1
  670. package/language/source.mjs +0 -12
  671. package/language/source.mjs.map +1 -1
  672. package/language/tokenKind.d.mts +5 -0
  673. package/language/tokenKind.d.ts +5 -0
  674. package/language/tokenKind.js +0 -4
  675. package/language/tokenKind.js.map +1 -1
  676. package/language/tokenKind.mjs +0 -4
  677. package/language/tokenKind.mjs.map +1 -1
  678. package/language/visitor.d.mts +182 -72
  679. package/language/visitor.d.ts +182 -72
  680. package/language/visitor.js +0 -15
  681. package/language/visitor.js.map +1 -1
  682. package/language/visitor.mjs +0 -15
  683. package/language/visitor.mjs.map +1 -1
  684. package/package.json +1 -1
  685. package/type/assertName.d.mts +18 -1
  686. package/type/assertName.d.ts +18 -1
  687. package/type/assertName.js +0 -8
  688. package/type/assertName.js.map +1 -1
  689. package/type/assertName.mjs +0 -8
  690. package/type/assertName.mjs.map +1 -1
  691. package/type/definition.d.mts +3258 -128
  692. package/type/definition.d.ts +3258 -128
  693. package/type/definition.js +5 -252
  694. package/type/definition.js.map +1 -1
  695. package/type/definition.mjs +5 -252
  696. package/type/definition.mjs.map +1 -1
  697. package/type/directives.d.mts +209 -20
  698. package/type/directives.d.ts +209 -20
  699. package/type/directives.js +0 -37
  700. package/type/directives.js.map +1 -1
  701. package/type/directives.mjs +0 -37
  702. package/type/directives.mjs.map +1 -1
  703. package/type/index.d.mts +6 -0
  704. package/type/index.d.ts +6 -0
  705. package/type/index.js +0 -23
  706. package/type/index.js.map +1 -1
  707. package/type/index.mjs +5 -48
  708. package/type/index.mjs.map +1 -1
  709. package/type/introspection.d.mts +36 -0
  710. package/type/introspection.d.ts +36 -0
  711. package/type/introspection.js +1 -6
  712. package/type/introspection.js.map +1 -1
  713. package/type/introspection.mjs +1 -6
  714. package/type/introspection.mjs.map +1 -1
  715. package/type/scalars.d.mts +29 -2
  716. package/type/scalars.d.ts +29 -2
  717. package/type/scalars.js +0 -15
  718. package/type/scalars.js.map +1 -1
  719. package/type/scalars.mjs +0 -15
  720. package/type/scalars.mjs.map +1 -1
  721. package/type/schema.d.mts +507 -31
  722. package/type/schema.d.ts +507 -31
  723. package/type/schema.js +0 -97
  724. package/type/schema.js.map +1 -1
  725. package/type/schema.mjs +0 -97
  726. package/type/schema.mjs.map +1 -1
  727. package/type/validate.d.mts +32 -3
  728. package/type/validate.d.ts +32 -3
  729. package/type/validate.js +0 -112
  730. package/type/validate.js.map +1 -1
  731. package/type/validate.mjs +0 -112
  732. package/type/validate.mjs.map +1 -1
  733. package/utilities/TypeInfo.d.mts +564 -1
  734. package/utilities/TypeInfo.d.ts +564 -1
  735. package/utilities/TypeInfo.js +1 -24
  736. package/utilities/TypeInfo.js.map +1 -1
  737. package/utilities/TypeInfo.mjs +1 -24
  738. package/utilities/TypeInfo.mjs.map +1 -1
  739. package/utilities/astFromValue.d.mts +36 -3
  740. package/utilities/astFromValue.d.ts +36 -3
  741. package/utilities/astFromValue.js +0 -42
  742. package/utilities/astFromValue.js.map +1 -1
  743. package/utilities/astFromValue.mjs +0 -42
  744. package/utilities/astFromValue.mjs.map +1 -1
  745. package/utilities/buildASTSchema.d.mts +66 -6
  746. package/utilities/buildASTSchema.d.ts +66 -6
  747. package/utilities/buildASTSchema.js +0 -21
  748. package/utilities/buildASTSchema.js.map +1 -1
  749. package/utilities/buildASTSchema.mjs +0 -21
  750. package/utilities/buildASTSchema.mjs.map +1 -1
  751. package/utilities/buildClientSchema.d.mts +17 -2
  752. package/utilities/buildClientSchema.d.ts +17 -2
  753. package/utilities/buildClientSchema.js +1 -32
  754. package/utilities/buildClientSchema.js.map +1 -1
  755. package/utilities/buildClientSchema.mjs +0 -30
  756. package/utilities/buildClientSchema.mjs.map +1 -1
  757. package/utilities/coerceInputValue.d.mts +83 -1
  758. package/utilities/coerceInputValue.d.ts +83 -1
  759. package/utilities/coerceInputValue.js +21 -50
  760. package/utilities/coerceInputValue.js.map +1 -1
  761. package/utilities/coerceInputValue.mjs +21 -50
  762. package/utilities/coerceInputValue.mjs.map +1 -1
  763. package/utilities/concatAST.d.mts +12 -0
  764. package/utilities/concatAST.d.ts +12 -0
  765. package/utilities/concatAST.js +0 -5
  766. package/utilities/concatAST.js.map +1 -1
  767. package/utilities/concatAST.mjs +0 -5
  768. package/utilities/concatAST.mjs.map +1 -1
  769. package/utilities/extendSchema.d.mts +58 -3
  770. package/utilities/extendSchema.d.ts +58 -3
  771. package/utilities/extendSchema.js +0 -60
  772. package/utilities/extendSchema.js.map +1 -1
  773. package/utilities/extendSchema.mjs +0 -60
  774. package/utilities/extendSchema.mjs.map +1 -1
  775. package/utilities/findSchemaChanges.d.mts +99 -1
  776. package/utilities/findSchemaChanges.d.ts +99 -1
  777. package/utilities/findSchemaChanges.js +3 -35
  778. package/utilities/findSchemaChanges.js.map +1 -1
  779. package/utilities/findSchemaChanges.mjs +3 -35
  780. package/utilities/findSchemaChanges.mjs.map +1 -1
  781. package/utilities/getDefaultValueAST.d.mts +1 -0
  782. package/utilities/getDefaultValueAST.d.ts +1 -0
  783. package/utilities/getDefaultValueAST.js +0 -2
  784. package/utilities/getDefaultValueAST.js.map +1 -1
  785. package/utilities/getDefaultValueAST.mjs +0 -2
  786. package/utilities/getDefaultValueAST.mjs.map +1 -1
  787. package/utilities/getIntrospectionQuery.d.mts +132 -0
  788. package/utilities/getIntrospectionQuery.d.ts +132 -0
  789. package/utilities/getIntrospectionQuery.js +0 -4
  790. package/utilities/getIntrospectionQuery.js.map +1 -1
  791. package/utilities/getIntrospectionQuery.mjs +0 -4
  792. package/utilities/getIntrospectionQuery.mjs.map +1 -1
  793. package/utilities/getOperationAST.d.mts +15 -0
  794. package/utilities/getOperationAST.d.ts +15 -0
  795. package/utilities/getOperationAST.js +0 -8
  796. package/utilities/getOperationAST.js.map +1 -1
  797. package/utilities/getOperationAST.mjs +0 -8
  798. package/utilities/getOperationAST.mjs.map +1 -1
  799. package/utilities/index.d.mts +18 -3
  800. package/utilities/index.d.ts +18 -3
  801. package/utilities/index.js +0 -27
  802. package/utilities/index.js.map +1 -1
  803. package/utilities/index.mjs +4 -37
  804. package/utilities/index.mjs.map +1 -1
  805. package/utilities/introspectionFromSchema.d.mts +54 -0
  806. package/utilities/introspectionFromSchema.d.ts +54 -0
  807. package/utilities/introspectionFromSchema.js +0 -9
  808. package/utilities/introspectionFromSchema.js.map +1 -1
  809. package/utilities/introspectionFromSchema.mjs +0 -9
  810. package/utilities/introspectionFromSchema.mjs.map +1 -1
  811. package/utilities/lexicographicSortSchema.d.mts +35 -0
  812. package/utilities/lexicographicSortSchema.d.ts +35 -0
  813. package/utilities/lexicographicSortSchema.js +0 -5
  814. package/utilities/lexicographicSortSchema.js.map +1 -1
  815. package/utilities/lexicographicSortSchema.mjs +0 -5
  816. package/utilities/lexicographicSortSchema.mjs.map +1 -1
  817. package/utilities/mapSchemaConfig.d.mts +6 -3
  818. package/utilities/mapSchemaConfig.d.ts +6 -3
  819. package/utilities/mapSchemaConfig.js +0 -10
  820. package/utilities/mapSchemaConfig.js.map +1 -1
  821. package/utilities/mapSchemaConfig.mjs +0 -10
  822. package/utilities/mapSchemaConfig.mjs.map +1 -1
  823. package/utilities/printSchema.d.mts +84 -0
  824. package/utilities/printSchema.d.ts +84 -0
  825. package/utilities/printSchema.js +0 -28
  826. package/utilities/printSchema.js.map +1 -1
  827. package/utilities/printSchema.mjs +0 -28
  828. package/utilities/printSchema.mjs.map +1 -1
  829. package/utilities/replaceVariables.d.mts +36 -0
  830. package/utilities/replaceVariables.d.ts +36 -0
  831. package/utilities/replaceVariables.js +0 -8
  832. package/utilities/replaceVariables.js.map +1 -1
  833. package/utilities/replaceVariables.mjs +0 -8
  834. package/utilities/replaceVariables.mjs.map +1 -1
  835. package/utilities/resolveSchemaCoordinate.d.mts +62 -0
  836. package/utilities/resolveSchemaCoordinate.d.ts +62 -0
  837. package/utilities/resolveSchemaCoordinate.js +0 -56
  838. package/utilities/resolveSchemaCoordinate.js.map +1 -1
  839. package/utilities/resolveSchemaCoordinate.mjs +0 -56
  840. package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
  841. package/utilities/separateOperations.d.mts +30 -0
  842. package/utilities/separateOperations.d.ts +30 -0
  843. package/utilities/separateOperations.js +0 -15
  844. package/utilities/separateOperations.js.map +1 -1
  845. package/utilities/separateOperations.mjs +0 -15
  846. package/utilities/separateOperations.mjs.map +1 -1
  847. package/utilities/sortValueNode.js +0 -7
  848. package/utilities/sortValueNode.js.map +1 -1
  849. package/utilities/sortValueNode.mjs +0 -7
  850. package/utilities/sortValueNode.mjs.map +1 -1
  851. package/utilities/stripIgnoredCharacters.d.mts +13 -6
  852. package/utilities/stripIgnoredCharacters.d.ts +13 -6
  853. package/utilities/stripIgnoredCharacters.js +0 -65
  854. package/utilities/stripIgnoredCharacters.js.map +1 -1
  855. package/utilities/stripIgnoredCharacters.mjs +0 -65
  856. package/utilities/stripIgnoredCharacters.mjs.map +1 -1
  857. package/utilities/typeComparators.d.mts +84 -0
  858. package/utilities/typeComparators.d.ts +84 -0
  859. package/utilities/typeComparators.js +0 -33
  860. package/utilities/typeComparators.js.map +1 -1
  861. package/utilities/typeComparators.mjs +0 -33
  862. package/utilities/typeComparators.mjs.map +1 -1
  863. package/utilities/typeFromAST.d.mts +86 -0
  864. package/utilities/typeFromAST.d.ts +86 -0
  865. package/utilities/typeFromAST.js.map +1 -1
  866. package/utilities/typeFromAST.mjs.map +1 -1
  867. package/utilities/typedQueryDocumentNode.d.mts +4 -0
  868. package/utilities/typedQueryDocumentNode.d.ts +4 -0
  869. package/utilities/typedQueryDocumentNode.js.map +1 -1
  870. package/utilities/typedQueryDocumentNode.mjs.map +1 -1
  871. package/utilities/validateInputValue.d.mts +123 -0
  872. package/utilities/validateInputValue.d.ts +123 -0
  873. package/utilities/validateInputValue.js +0 -20
  874. package/utilities/validateInputValue.js.map +1 -1
  875. package/utilities/validateInputValue.mjs +0 -20
  876. package/utilities/validateInputValue.mjs.map +1 -1
  877. package/utilities/valueFromAST.d.mts +41 -0
  878. package/utilities/valueFromAST.d.ts +41 -0
  879. package/utilities/valueFromAST.js +13 -51
  880. package/utilities/valueFromAST.js.map +1 -1
  881. package/utilities/valueFromAST.mjs +13 -51
  882. package/utilities/valueFromAST.mjs.map +1 -1
  883. package/utilities/valueFromASTUntyped.d.mts +15 -2
  884. package/utilities/valueFromASTUntyped.d.ts +15 -2
  885. package/utilities/valueFromASTUntyped.js +0 -16
  886. package/utilities/valueFromASTUntyped.js.map +1 -1
  887. package/utilities/valueFromASTUntyped.mjs +0 -16
  888. package/utilities/valueFromASTUntyped.mjs.map +1 -1
  889. package/utilities/valueToLiteral.d.mts +30 -1
  890. package/utilities/valueToLiteral.d.ts +30 -1
  891. package/utilities/valueToLiteral.js +7 -40
  892. package/utilities/valueToLiteral.js.map +1 -1
  893. package/utilities/valueToLiteral.mjs +7 -40
  894. package/utilities/valueToLiteral.mjs.map +1 -1
  895. package/validation/ValidationContext.d.mts +490 -0
  896. package/validation/ValidationContext.d.ts +490 -0
  897. package/validation/ValidationContext.js +1 -8
  898. package/validation/ValidationContext.js.map +1 -1
  899. package/validation/ValidationContext.mjs +1 -8
  900. package/validation/ValidationContext.mjs.map +1 -1
  901. package/validation/index.d.mts +7 -0
  902. package/validation/index.d.ts +7 -0
  903. package/validation/index.js +0 -34
  904. package/validation/index.js.map +1 -1
  905. package/validation/index.mjs +0 -34
  906. package/validation/index.mjs.map +1 -1
  907. package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +30 -0
  908. package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +30 -0
  909. package/validation/rules/DeferStreamDirectiveLabelRule.js +0 -5
  910. package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
  911. package/validation/rules/DeferStreamDirectiveLabelRule.mjs +0 -5
  912. package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
  913. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +28 -0
  914. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +28 -0
  915. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +0 -5
  916. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
  917. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs +0 -5
  918. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
  919. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +52 -0
  920. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +52 -0
  921. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +0 -5
  922. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
  923. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs +0 -5
  924. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
  925. package/validation/rules/ExecutableDefinitionsRule.d.mts +28 -0
  926. package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
  927. package/validation/rules/ExecutableDefinitionsRule.js +0 -8
  928. package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
  929. package/validation/rules/ExecutableDefinitionsRule.mjs +0 -8
  930. package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
  931. package/validation/rules/FieldsOnCorrectTypeRule.d.mts +28 -0
  932. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
  933. package/validation/rules/FieldsOnCorrectTypeRule.js +0 -27
  934. package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
  935. package/validation/rules/FieldsOnCorrectTypeRule.mjs +0 -27
  936. package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
  937. package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +28 -0
  938. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
  939. package/validation/rules/FragmentsOnCompositeTypesRule.js +0 -9
  940. package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
  941. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +0 -9
  942. package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
  943. package/validation/rules/KnownArgumentNamesRule.d.mts +29 -3
  944. package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
  945. package/validation/rules/KnownArgumentNamesRule.js +0 -13
  946. package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
  947. package/validation/rules/KnownArgumentNamesRule.mjs +0 -13
  948. package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
  949. package/validation/rules/KnownDirectivesRule.d.mts +28 -0
  950. package/validation/rules/KnownDirectivesRule.d.ts +28 -0
  951. package/validation/rules/KnownDirectivesRule.js +0 -10
  952. package/validation/rules/KnownDirectivesRule.js.map +1 -1
  953. package/validation/rules/KnownDirectivesRule.mjs +0 -10
  954. package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
  955. package/validation/rules/KnownFragmentNamesRule.d.mts +28 -0
  956. package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
  957. package/validation/rules/KnownFragmentNamesRule.js +0 -8
  958. package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
  959. package/validation/rules/KnownFragmentNamesRule.mjs +0 -8
  960. package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
  961. package/validation/rules/KnownOperationTypesRule.d.mts +20 -0
  962. package/validation/rules/KnownOperationTypesRule.d.ts +20 -0
  963. package/validation/rules/KnownOperationTypesRule.js +0 -8
  964. package/validation/rules/KnownOperationTypesRule.js.map +1 -1
  965. package/validation/rules/KnownOperationTypesRule.mjs +0 -8
  966. package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
  967. package/validation/rules/KnownTypeNamesRule.d.mts +28 -0
  968. package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
  969. package/validation/rules/KnownTypeNamesRule.js +0 -8
  970. package/validation/rules/KnownTypeNamesRule.js.map +1 -1
  971. package/validation/rules/KnownTypeNamesRule.mjs +0 -8
  972. package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
  973. package/validation/rules/LoneAnonymousOperationRule.d.mts +28 -0
  974. package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
  975. package/validation/rules/LoneAnonymousOperationRule.js +0 -8
  976. package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
  977. package/validation/rules/LoneAnonymousOperationRule.mjs +0 -8
  978. package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
  979. package/validation/rules/LoneSchemaDefinitionRule.d.mts +21 -0
  980. package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
  981. package/validation/rules/LoneSchemaDefinitionRule.js +0 -5
  982. package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
  983. package/validation/rules/LoneSchemaDefinitionRule.mjs +0 -5
  984. package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
  985. package/validation/rules/MaxIntrospectionDepthRule.d.mts +31 -0
  986. package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
  987. package/validation/rules/MaxIntrospectionDepthRule.js +0 -14
  988. package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
  989. package/validation/rules/MaxIntrospectionDepthRule.mjs +0 -14
  990. package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
  991. package/validation/rules/NoFragmentCyclesRule.d.mts +28 -0
  992. package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
  993. package/validation/rules/NoFragmentCyclesRule.js +0 -15
  994. package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
  995. package/validation/rules/NoFragmentCyclesRule.mjs +0 -15
  996. package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
  997. package/validation/rules/NoUndefinedVariablesRule.d.mts +28 -0
  998. package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
  999. package/validation/rules/NoUndefinedVariablesRule.js +0 -8
  1000. package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
  1001. package/validation/rules/NoUndefinedVariablesRule.mjs +0 -8
  1002. package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
  1003. package/validation/rules/NoUnusedFragmentsRule.d.mts +28 -0
  1004. package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
  1005. package/validation/rules/NoUnusedFragmentsRule.js +0 -8
  1006. package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
  1007. package/validation/rules/NoUnusedFragmentsRule.mjs +0 -8
  1008. package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
  1009. package/validation/rules/NoUnusedVariablesRule.d.mts +29 -0
  1010. package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
  1011. package/validation/rules/NoUnusedVariablesRule.js +0 -8
  1012. package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
  1013. package/validation/rules/NoUnusedVariablesRule.mjs +0 -8
  1014. package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
  1015. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +33 -0
  1016. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
  1017. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +1 -175
  1018. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
  1019. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +1 -175
  1020. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
  1021. package/validation/rules/PossibleFragmentSpreadsRule.d.mts +36 -0
  1022. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
  1023. package/validation/rules/PossibleFragmentSpreadsRule.js +0 -7
  1024. package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
  1025. package/validation/rules/PossibleFragmentSpreadsRule.mjs +0 -7
  1026. package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
  1027. package/validation/rules/PossibleTypeExtensionsRule.d.mts +21 -0
  1028. package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
  1029. package/validation/rules/PossibleTypeExtensionsRule.js +0 -9
  1030. package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
  1031. package/validation/rules/PossibleTypeExtensionsRule.mjs +0 -9
  1032. package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
  1033. package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +29 -3
  1034. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
  1035. package/validation/rules/ProvidedRequiredArgumentsRule.js +0 -13
  1036. package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
  1037. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +0 -13
  1038. package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
  1039. package/validation/rules/ScalarLeafsRule.d.mts +28 -0
  1040. package/validation/rules/ScalarLeafsRule.d.ts +28 -0
  1041. package/validation/rules/ScalarLeafsRule.js +0 -6
  1042. package/validation/rules/ScalarLeafsRule.js.map +1 -1
  1043. package/validation/rules/ScalarLeafsRule.mjs +0 -6
  1044. package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
  1045. package/validation/rules/SingleFieldSubscriptionsRule.d.mts +34 -2
  1046. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +34 -2
  1047. package/validation/rules/SingleFieldSubscriptionsRule.js +0 -9
  1048. package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
  1049. package/validation/rules/SingleFieldSubscriptionsRule.mjs +0 -9
  1050. package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
  1051. package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +21 -0
  1052. package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +21 -0
  1053. package/validation/rules/StreamDirectiveOnListFieldRule.js +0 -5
  1054. package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
  1055. package/validation/rules/StreamDirectiveOnListFieldRule.mjs +0 -5
  1056. package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
  1057. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +21 -0
  1058. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
  1059. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +0 -6
  1060. package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
  1061. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +0 -6
  1062. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
  1063. package/validation/rules/UniqueArgumentNamesRule.d.mts +28 -0
  1064. package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
  1065. package/validation/rules/UniqueArgumentNamesRule.js +0 -8
  1066. package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
  1067. package/validation/rules/UniqueArgumentNamesRule.mjs +0 -8
  1068. package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
  1069. package/validation/rules/UniqueDirectiveNamesRule.d.mts +21 -0
  1070. package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
  1071. package/validation/rules/UniqueDirectiveNamesRule.js +0 -5
  1072. package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
  1073. package/validation/rules/UniqueDirectiveNamesRule.mjs +0 -5
  1074. package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
  1075. package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +28 -0
  1076. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
  1077. package/validation/rules/UniqueDirectivesPerLocationRule.js +0 -11
  1078. package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
  1079. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +0 -11
  1080. package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
  1081. package/validation/rules/UniqueEnumValueNamesRule.d.mts +21 -0
  1082. package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
  1083. package/validation/rules/UniqueEnumValueNamesRule.js +0 -5
  1084. package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
  1085. package/validation/rules/UniqueEnumValueNamesRule.mjs +0 -5
  1086. package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
  1087. package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +21 -0
  1088. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
  1089. package/validation/rules/UniqueFieldDefinitionNamesRule.js +0 -5
  1090. package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
  1091. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +0 -5
  1092. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
  1093. package/validation/rules/UniqueFragmentNamesRule.d.mts +28 -0
  1094. package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
  1095. package/validation/rules/UniqueFragmentNamesRule.js +0 -7
  1096. package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
  1097. package/validation/rules/UniqueFragmentNamesRule.mjs +0 -7
  1098. package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
  1099. package/validation/rules/UniqueInputFieldNamesRule.d.mts +32 -0
  1100. package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
  1101. package/validation/rules/UniqueInputFieldNamesRule.js +0 -8
  1102. package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
  1103. package/validation/rules/UniqueInputFieldNamesRule.mjs +0 -8
  1104. package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
  1105. package/validation/rules/UniqueOperationNamesRule.d.mts +28 -0
  1106. package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
  1107. package/validation/rules/UniqueOperationNamesRule.js +0 -7
  1108. package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
  1109. package/validation/rules/UniqueOperationNamesRule.mjs +0 -7
  1110. package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
  1111. package/validation/rules/UniqueOperationTypesRule.d.mts +21 -0
  1112. package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
  1113. package/validation/rules/UniqueOperationTypesRule.js +0 -5
  1114. package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
  1115. package/validation/rules/UniqueOperationTypesRule.mjs +0 -5
  1116. package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
  1117. package/validation/rules/UniqueTypeNamesRule.d.mts +21 -0
  1118. package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
  1119. package/validation/rules/UniqueTypeNamesRule.js +0 -5
  1120. package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
  1121. package/validation/rules/UniqueTypeNamesRule.mjs +0 -5
  1122. package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
  1123. package/validation/rules/UniqueVariableNamesRule.d.mts +28 -0
  1124. package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
  1125. package/validation/rules/UniqueVariableNamesRule.js +0 -5
  1126. package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
  1127. package/validation/rules/UniqueVariableNamesRule.mjs +0 -5
  1128. package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
  1129. package/validation/rules/ValuesOfCorrectTypeRule.d.mts +28 -0
  1130. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
  1131. package/validation/rules/ValuesOfCorrectTypeRule.js +1 -21
  1132. package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
  1133. package/validation/rules/ValuesOfCorrectTypeRule.mjs +1 -21
  1134. package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
  1135. package/validation/rules/VariablesAreInputTypesRule.d.mts +32 -0
  1136. package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
  1137. package/validation/rules/VariablesAreInputTypesRule.js +0 -8
  1138. package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
  1139. package/validation/rules/VariablesAreInputTypesRule.mjs +0 -8
  1140. package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
  1141. package/validation/rules/VariablesInAllowedPositionRule.d.mts +28 -0
  1142. package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
  1143. package/validation/rules/VariablesInAllowedPositionRule.js +0 -20
  1144. package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
  1145. package/validation/rules/VariablesInAllowedPositionRule.mjs +0 -20
  1146. package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
  1147. package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +41 -0
  1148. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
  1149. package/validation/rules/custom/NoDeprecatedCustomRule.js +0 -10
  1150. package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
  1151. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +0 -10
  1152. package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
  1153. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +28 -0
  1154. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
  1155. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +0 -10
  1156. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
  1157. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +0 -10
  1158. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
  1159. package/validation/specifiedRules.d.mts +2 -3
  1160. package/validation/specifiedRules.d.ts +2 -3
  1161. package/validation/specifiedRules.js +0 -46
  1162. package/validation/specifiedRules.js.map +1 -1
  1163. package/validation/specifiedRules.mjs +0 -46
  1164. package/validation/specifiedRules.mjs.map +1 -1
  1165. package/validation/validate.d.mts +65 -7
  1166. package/validation/validate.d.ts +65 -7
  1167. package/validation/validate.js +0 -41
  1168. package/validation/validate.js.map +1 -1
  1169. package/validation/validate.mjs +0 -41
  1170. package/validation/validate.mjs.map +1 -1
  1171. package/version.d.mts +3 -6
  1172. package/version.d.ts +3 -6
  1173. package/version.js +2 -10
  1174. package/version.js.map +1 -1
  1175. package/version.mjs +2 -10
  1176. package/version.mjs.map +1 -1
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createWorkQueue = createWorkQueue;
4
4
  const isPromise_ts_1 = require("../../jsutils/isPromise.js");
5
5
  const Queue_ts_1 = require("./Queue.js");
6
- /** @internal */
7
6
  function createWorkQueue(initialWork) {
8
7
  const rootGroups = new Set();
9
8
  const rootStreams = new Set();
@@ -13,8 +12,6 @@ function createWorkQueue(initialWork) {
13
12
  let stopGraphEvents;
14
13
  const { newGroups: initialRootGroups, newStreams: initialRootStreams } = maybeIntegrateWork(initialWork);
15
14
  const nonEmptyInitialRootGroups = pruneEmptyGroups(initialRootGroups);
16
- // Initialize root groups and streams at startup to prepare for cancellation
17
- // prior to starting the work queue
18
15
  for (const group of nonEmptyInitialRootGroups) {
19
16
  rootGroups.add(group);
20
17
  }
@@ -24,13 +21,11 @@ function createWorkQueue(initialWork) {
24
21
  const events = new Queue_ts_1.Queue(({ push: _push, stop: _stop, onStop, started }) => {
25
22
  pushGraphEvent = _push;
26
23
  stopGraphEvents = _stop;
27
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
28
24
  started.then(() => {
29
25
  for (const group of rootGroups) {
30
26
  startGroup(group);
31
27
  }
32
28
  for (const stream of rootStreams) {
33
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
34
29
  startStream(stream);
35
30
  }
36
31
  });
@@ -171,7 +166,6 @@ function createWorkQueue(initialWork) {
171
166
  }
172
167
  for (const stream of newStreams) {
173
168
  rootStreams.add(stream);
174
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
175
169
  startStream(stream);
176
170
  }
177
171
  }
@@ -195,20 +189,16 @@ function createWorkQueue(initialWork) {
195
189
  const result = task.computation.result();
196
190
  if ((0, isPromise_ts_1.isPromise)(result)) {
197
191
  result.then((resolved) => {
198
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
199
192
  pushGraphEvent({ kind: 'TASK_SUCCESS', task, result: resolved });
200
193
  }, (error) => {
201
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
202
194
  pushGraphEvent({ kind: 'TASK_FAILURE', task, error });
203
195
  });
204
196
  }
205
197
  else {
206
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
207
198
  pushGraphEvent({ kind: 'TASK_SUCCESS', task, result });
208
199
  }
209
200
  }
210
201
  catch (error) {
211
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
212
202
  pushGraphEvent({ kind: 'TASK_FAILURE', task, error });
213
203
  }
214
204
  }
@@ -224,11 +214,9 @@ function createWorkQueue(initialWork) {
224
214
  await pushed;
225
215
  }
226
216
  });
227
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
228
217
  pushGraphEvent({ kind: 'STREAM_SUCCESS', stream });
229
218
  }
230
219
  catch (error) {
231
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
232
220
  pushGraphEvent({ kind: 'STREAM_FAILURE', stream, error });
233
221
  }
234
222
  }
@@ -246,7 +234,6 @@ function createWorkQueue(initialWork) {
246
234
  workQueueEvents.push(...streamItems(graphEvent));
247
235
  break;
248
236
  case 'STREAM_SUCCESS':
249
- // check whether already deleted within streamItems()
250
237
  if (rootStreams.has(graphEvent.stream)) {
251
238
  rootStreams.delete(graphEvent.stream);
252
239
  workQueueEvents.push(graphEvent);
@@ -259,7 +246,6 @@ function createWorkQueue(initialWork) {
259
246
  }
260
247
  }
261
248
  if (rootGroups.size === 0 && rootStreams.size === 0) {
262
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
263
249
  stopGraphEvents();
264
250
  workQueueEvents.push({ kind: 'WORK_QUEUE_TERMINATION' });
265
251
  }
@@ -326,7 +312,6 @@ function createWorkQueue(initialWork) {
326
312
  newGroups,
327
313
  newStreams,
328
314
  };
329
- // queues allow peeking ahead see if stream has stopped
330
315
  if (stream.queue.isStopped()) {
331
316
  rootStreams.delete(stream);
332
317
  return [streamValuesEvent, { kind: 'STREAM_SUCCESS', stream }];
@@ -1 +1 @@
1
- {"version":3,"file":"WorkQueue.js","sourceRoot":"","sources":["../../../src/execution/incremental/WorkQueue.ts"],"names":[],"mappings":"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","sourcesContent":["import { isPromise } from '../../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.ts';\n\nimport type { Computation } from './Computation.ts';\nimport { Queue } from './Queue.ts';\n\nexport interface Group<TSelf extends Group<TSelf>> {\n parent?: TSelf | undefined;\n}\n\ninterface WorkResult<\n TValue,\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n value: TValue;\n work?: Work<T, I, G, S> | undefined;\n}\n\nexport interface Stream<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n queue: Queue<StreamItem<T, I, G, S>>;\n}\n\nexport interface Work<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n groups?: ReadonlyArray<G>;\n tasks?: ReadonlyArray<Task<T, I, G, S>>;\n streams?: ReadonlyArray<S>;\n}\n\ninterface NewWork<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n newGroups: ReadonlyArray<G>;\n newStreams: ReadonlyArray<S>;\n}\n\nexport interface WorkQueue<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n initialGroups: ReadonlyArray<G>;\n initialStreams: ReadonlyArray<S>;\n events: AsyncGenerator<ReadonlyArray<WorkQueueEvent<T, I, G, S>>, void, void>;\n}\n\nexport type StreamItem<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> = WorkResult<I, T, I, G, S>;\n\nexport type TaskResult<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> = WorkResult<T, T, I, G, S>;\n\nexport interface Task<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n groups: ReadonlyArray<G>;\n computation: Computation<TaskResult<T, I, G, S>>;\n}\n\ninterface TaskSuccessGraphEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'TASK_SUCCESS';\n task: Task<T, I, G, S>;\n result: TaskResult<T, I, G, S>;\n}\n\ninterface TaskFailureGraphEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'TASK_FAILURE';\n task: Task<T, I, G, S>;\n error: unknown;\n}\n\ninterface StreamItemsEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_ITEMS';\n stream: S;\n items: Generator<StreamItem<T, I, G, S>>;\n}\n\ninterface StreamSuccessEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_SUCCESS';\n stream: S;\n}\n\ninterface StreamFailureEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_FAILURE';\n stream: S;\n error: unknown;\n}\n\ntype GraphEvent<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> =\n | TaskSuccessGraphEvent<T, I, G, S>\n | TaskFailureGraphEvent<T, I, G, S>\n | StreamItemsEvent<T, I, G, S>\n | StreamSuccessEvent<T, I, G, S>\n | StreamFailureEvent<T, I, G, S>;\n\ninterface GroupValuesEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'GROUP_VALUES';\n group: G;\n values: ReadonlyArray<T>;\n}\n\ninterface GroupSuccessEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> extends NewWork<T, I, G, S> {\n kind: 'GROUP_SUCCESS';\n group: G;\n}\n\ninterface GroupFailureEvent<G extends Group<G>> {\n kind: 'GROUP_FAILURE';\n group: G;\n error: unknown;\n}\n\ninterface StreamValuesEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> extends NewWork<T, I, G, S> {\n kind: 'STREAM_VALUES';\n stream: S;\n values: ReadonlyArray<I>;\n}\n\ninterface WorkQueueTerminationEvent {\n kind: 'WORK_QUEUE_TERMINATION';\n}\n\nexport type WorkQueueEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> =\n | GroupValuesEvent<T, I, G, S>\n | GroupSuccessEvent<T, I, G, S>\n | GroupFailureEvent<G>\n | StreamValuesEvent<T, I, G, S>\n | StreamSuccessEvent<T, I, G, S>\n | StreamFailureEvent<T, I, G, S>\n | WorkQueueTerminationEvent;\n\ninterface GroupNode<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n childGroups: Array<G>;\n tasks: Set<Task<T, I, G, S>>;\n pending: number;\n}\n\ninterface TaskNode<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n value: T | undefined;\n childStreams: Array<S>;\n}\n\n/** @internal */\nexport function createWorkQueue<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n>(initialWork: Work<T, I, G, S> | undefined): WorkQueue<T, I, G, S> {\n const rootGroups = new Set<G>();\n const rootStreams = new Set<S>();\n const groupNodes = new Map<G, GroupNode<T, I, G, S>>();\n const taskNodes = new Map<Task<T, I, G, S>, TaskNode<T, I, G, S>>();\n let pushGraphEvent!: (e: GraphEvent<T, I, G, S>) => PromiseOrValue<void>;\n let stopGraphEvents!: (err?: unknown) => PromiseOrValue<void>;\n\n const { newGroups: initialRootGroups, newStreams: initialRootStreams } =\n maybeIntegrateWork(initialWork);\n const nonEmptyInitialRootGroups = pruneEmptyGroups(initialRootGroups);\n // Initialize root groups and streams at startup to prepare for cancellation\n // prior to starting the work queue\n for (const group of nonEmptyInitialRootGroups) {\n rootGroups.add(group);\n }\n for (const stream of initialRootStreams) {\n rootStreams.add(stream);\n }\n\n const events = new Queue<GraphEvent<T, I, G, S>>(\n ({ push: _push, stop: _stop, onStop, started }) => {\n pushGraphEvent = _push;\n stopGraphEvents = _stop;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n started.then(() => {\n for (const group of rootGroups) {\n startGroup(group);\n }\n for (const stream of rootStreams) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startStream(stream);\n }\n });\n onStop((reason) => cancel(reason));\n },\n 1,\n ).subscribe((graphEvents) => handleGraphEvents(graphEvents));\n\n return {\n initialGroups: nonEmptyInitialRootGroups,\n initialStreams: initialRootStreams,\n events,\n };\n\n function cancel(reason?: unknown): PromiseOrValue<void> {\n const cancelPromises: Array<Promise<unknown>> = [];\n for (const group of rootGroups) {\n cancelGroup(group, reason, cancelPromises);\n }\n for (const stream of rootStreams) {\n cancelStream(stream, reason, cancelPromises);\n }\n if (cancelPromises.length > 0) {\n return Promise.allSettled(cancelPromises).then(() => undefined);\n }\n }\n\n function cancelGroup(\n group: G,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n for (const task of groupNode.tasks) {\n cancelTask(task, reason, cancelPromises);\n }\n for (const childGroup of groupNode.childGroups) {\n cancelGroup(childGroup, reason, cancelPromises);\n }\n }\n }\n\n function cancelTask(\n task: Task<T, I, G, S>,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const abortResult = task.computation.abort(reason);\n if (isPromise(abortResult)) {\n cancelPromises.push(abortResult);\n }\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n for (const childStream of taskNode.childStreams) {\n cancelStream(childStream, reason, cancelPromises);\n }\n }\n }\n\n function cancelStream(\n stream: S,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const abortResult = stream.queue.abort(reason);\n if (isPromise(abortResult)) {\n cancelPromises.push(abortResult);\n }\n }\n\n function maybeIntegrateWork(\n work: Work<T, I, G, S> | undefined,\n parentTask?: Task<T, I, G, S>,\n ): NewWork<T, I, G, S> {\n if (!work) {\n return { newGroups: [], newStreams: [] };\n }\n const { groups, tasks, streams } = work;\n const newGroups = groups ? addGroups(groups, parentTask) : [];\n if (tasks) {\n for (const task of tasks) {\n addTask(task);\n }\n }\n const newStreams = streams ? addStreams(streams, parentTask) : [];\n return { newGroups, newStreams };\n }\n\n function addGroups(\n originalGroups: ReadonlyArray<G>,\n parentTask?: Task<T, I, G, S>,\n ): Array<G> {\n const groupSet = new Set(originalGroups);\n const visited = new Set<G>();\n const newRootGroups: Array<G> = [];\n for (const group of originalGroups) {\n addGroup(group, groupSet, newRootGroups, visited, parentTask);\n }\n return newRootGroups;\n }\n\n function addGroup(\n group: G,\n groupSet: ReadonlySet<G>,\n newRootGroups: Array<G>,\n visited: Set<G>,\n parentTask?: Task<T, I, G, S>,\n ): void {\n if (visited.has(group)) {\n return;\n }\n visited.add(group);\n const parent = group.parent;\n if (parent !== undefined && groupSet.has(parent)) {\n addGroup(parent, groupSet, newRootGroups, visited, parentTask);\n }\n\n const groupNode: GroupNode<T, I, G, S> = {\n childGroups: [],\n tasks: new Set(),\n pending: 0,\n };\n groupNodes.set(group, groupNode);\n\n if (parentTask === undefined && !parent) {\n newRootGroups.push(group);\n } else if (parent) {\n groupNodes.get(parent)?.childGroups.push(group);\n }\n }\n\n function addTask(task: Task<T, I, G, S>): void {\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupNode.tasks.add(task);\n groupNode.pending++;\n if (rootGroups.has(group)) {\n startTask(task);\n }\n }\n }\n }\n\n function addStreams(\n streams: ReadonlyArray<S>,\n parentTask?: Task<T, I, G, S>,\n ): ReadonlyArray<S> {\n if (!parentTask) {\n return streams;\n }\n const taskNode = taskNodes.get(parentTask);\n if (taskNode) {\n taskNode.childStreams.push(...streams);\n }\n return [];\n }\n\n function pruneEmptyGroups(\n newGroups: ReadonlyArray<G>,\n nonEmptyNewGroups: Array<G> = [],\n ): ReadonlyArray<G> {\n for (const newGroup of newGroups) {\n const newGroupState = groupNodes.get(newGroup);\n if (newGroupState) {\n if (newGroupState.pending === 0) {\n groupNodes.delete(newGroup);\n pruneEmptyGroups(newGroupState.childGroups, nonEmptyNewGroups);\n } else {\n nonEmptyNewGroups.push(newGroup);\n }\n }\n }\n return nonEmptyNewGroups;\n }\n\n function startNewWork(\n newGroups: ReadonlyArray<G>,\n newStreams: ReadonlyArray<S>,\n ): void {\n for (const group of newGroups) {\n rootGroups.add(group);\n startGroup(group);\n }\n for (const stream of newStreams) {\n rootStreams.add(stream);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startStream(stream);\n }\n }\n\n function startGroup(group: G): void {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n for (const task of groupNode.tasks) {\n startTask(task);\n }\n }\n }\n\n function startTask(task: Task<T, I, G, S>): void {\n if (taskNodes.has(task)) {\n return;\n }\n taskNodes.set(task, {\n value: undefined,\n childStreams: [],\n });\n try {\n const result = task.computation.result();\n if (isPromise(result)) {\n result.then(\n (resolved) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_SUCCESS', task, result: resolved });\n },\n (error: unknown) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_FAILURE', task, error });\n },\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_SUCCESS', task, result });\n }\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_FAILURE', task, error });\n }\n }\n\n async function startStream(stream: S): Promise<void> {\n try {\n await stream.queue.forEachBatch(async (items) => {\n const pushed = pushGraphEvent({\n kind: 'STREAM_ITEMS',\n stream,\n items,\n });\n if (isPromise(pushed)) {\n await pushed;\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'STREAM_SUCCESS', stream });\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'STREAM_FAILURE', stream, error });\n }\n }\n\n function handleGraphEvents(\n graphEvents: Generator<GraphEvent<T, I, G, S>>,\n ): ReadonlyArray<WorkQueueEvent<T, I, G, S>> | undefined {\n const workQueueEvents: Array<WorkQueueEvent<T, I, G, S>> = [];\n for (const graphEvent of graphEvents) {\n switch (graphEvent.kind) {\n case 'TASK_SUCCESS':\n workQueueEvents.push(...taskSuccess(graphEvent));\n break;\n case 'TASK_FAILURE':\n workQueueEvents.push(...taskFailure(graphEvent));\n break;\n case 'STREAM_ITEMS':\n workQueueEvents.push(...streamItems(graphEvent));\n break;\n case 'STREAM_SUCCESS':\n // check whether already deleted within streamItems()\n if (rootStreams.has(graphEvent.stream)) {\n rootStreams.delete(graphEvent.stream);\n workQueueEvents.push(graphEvent);\n }\n break;\n case 'STREAM_FAILURE':\n rootStreams.delete(graphEvent.stream);\n workQueueEvents.push(graphEvent);\n break;\n }\n }\n\n if (rootGroups.size === 0 && rootStreams.size === 0) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n stopGraphEvents();\n workQueueEvents.push({ kind: 'WORK_QUEUE_TERMINATION' });\n }\n\n return workQueueEvents.length > 0 ? workQueueEvents : undefined;\n }\n\n function taskSuccess(\n graphEvent: TaskSuccessGraphEvent<T, I, G, S>,\n ): ReadonlyArray<\n GroupValuesEvent<T, I, G, S> | GroupSuccessEvent<T, I, G, S>\n > {\n const { task, result } = graphEvent;\n const { value, work } = result;\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n taskNode.value = value;\n }\n maybeIntegrateWork(work, task);\n\n const groupEvents: Array<\n GroupValuesEvent<T, I, G, S> | GroupSuccessEvent<T, I, G, S>\n > = [];\n const newGroups: Array<G> = [];\n const newStreams: Array<S> = [];\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupNode.pending--;\n if (rootGroups.has(group) && groupNode.pending === 0) {\n const {\n groupValuesEvent,\n groupSuccessEvent,\n newGroups: childNewGroups,\n newStreams: childNewStreams,\n } = finishGroupSuccess(group, groupNode);\n if (groupValuesEvent) {\n groupEvents.push(groupValuesEvent);\n }\n groupEvents.push(groupSuccessEvent);\n newGroups.push(...childNewGroups);\n newStreams.push(...childNewStreams);\n }\n }\n }\n\n startNewWork(newGroups, newStreams);\n return groupEvents;\n }\n\n function taskFailure(\n graphEvent: TaskFailureGraphEvent<T, I, G, S>,\n ): ReadonlyArray<GroupFailureEvent<G>> {\n const { task, error } = graphEvent;\n taskNodes.delete(task);\n const groupFailureEvents: Array<GroupFailureEvent<G>> = [];\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupFailureEvents.push(finishGroupFailure(group, groupNode, error));\n }\n }\n return groupFailureEvents;\n }\n\n function streamItems(\n graphEvent: StreamItemsEvent<T, I, G, S>,\n ):\n | [StreamValuesEvent<T, I, G, S>]\n | [StreamValuesEvent<T, I, G, S>, StreamSuccessEvent<T, I, G, S>] {\n const { stream, items } = graphEvent;\n const values: Array<I> = [];\n const newGroups: Array<G> = [];\n const newStreams: Array<S> = [];\n for (const { value, work } of items) {\n const { newGroups: itemNewGroups, newStreams: itemNewStreams } =\n maybeIntegrateWork(work);\n const nonEmptyNewGroups = pruneEmptyGroups(itemNewGroups);\n startNewWork(nonEmptyNewGroups, itemNewStreams);\n values.push(value);\n newGroups.push(...nonEmptyNewGroups);\n newStreams.push(...itemNewStreams);\n }\n const streamValuesEvent: StreamValuesEvent<T, I, G, S> = {\n kind: 'STREAM_VALUES',\n stream,\n values,\n newGroups,\n newStreams,\n };\n\n // queues allow peeking ahead see if stream has stopped\n if (stream.queue.isStopped()) {\n rootStreams.delete(stream);\n return [streamValuesEvent, { kind: 'STREAM_SUCCESS', stream }];\n }\n return [streamValuesEvent];\n }\n\n function finishGroupSuccess(\n group: G,\n groupNode: GroupNode<T, I, G, S>,\n ): {\n groupValuesEvent: GroupValuesEvent<T, I, G, S> | undefined;\n groupSuccessEvent: GroupSuccessEvent<T, I, G, S>;\n newGroups: ReadonlyArray<G>;\n newStreams: ReadonlyArray<S>;\n } {\n groupNodes.delete(group);\n const values: Array<T> = [];\n const newStreams: Array<S> = [];\n for (const task of groupNode.tasks) {\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n const { value, childStreams } = taskNode;\n if (value !== undefined) {\n values.push(value);\n }\n for (const childStream of childStreams) {\n newStreams.push(childStream);\n }\n removeTask(task);\n }\n }\n const newGroups = pruneEmptyGroups(groupNode.childGroups);\n rootGroups.delete(group);\n return {\n groupValuesEvent: values.length\n ? { kind: 'GROUP_VALUES', group, values }\n : undefined,\n groupSuccessEvent: {\n kind: 'GROUP_SUCCESS',\n group,\n newGroups,\n newStreams,\n },\n newGroups,\n newStreams,\n };\n }\n\n function finishGroupFailure(\n group: G,\n groupNode: GroupNode<T, I, G, S>,\n error: unknown,\n ): GroupFailureEvent<G> {\n removeGroup(group, groupNode);\n rootGroups.delete(group);\n return { kind: 'GROUP_FAILURE', group, error };\n }\n\n function removeGroup(group: G, groupNode: GroupNode<T, I, G, S>): void {\n groupNodes.delete(group);\n for (const task of groupNode.tasks) {\n if (task.groups.every((taskGroup) => !groupNodes.has(taskGroup))) {\n removeTask(task);\n }\n }\n for (const childGroup of groupNode.childGroups) {\n const childGroupState = groupNodes.get(childGroup);\n if (childGroupState) {\n removeGroup(childGroup, childGroupState);\n }\n }\n }\n\n function removeTask(task: Task<T, I, G, S>): void {\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n groupNode?.tasks.delete(task);\n }\n taskNodes.delete(task);\n }\n}\n"]}
1
+ {"version":3,"file":"WorkQueue.js","sourceRoot":"","sources":["../../../src/execution/incremental/WorkQueue.ts"],"names":[],"mappings":"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","sourcesContent":["import { isPromise } from '../../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.ts';\n\nimport type { Computation } from './Computation.ts';\nimport { Queue } from './Queue.ts';\n\n/** @internal */\nexport interface Group<TSelf extends Group<TSelf>> {\n parent?: TSelf | undefined;\n}\n\ninterface WorkResult<\n TValue,\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n value: TValue;\n work?: Work<T, I, G, S> | undefined;\n}\n\n/** @internal */\nexport interface Stream<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n queue: Queue<StreamItem<T, I, G, S>>;\n}\n\n/** @internal */\nexport interface Work<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n groups?: ReadonlyArray<G>;\n tasks?: ReadonlyArray<Task<T, I, G, S>>;\n streams?: ReadonlyArray<S>;\n}\n\ninterface NewWork<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n newGroups: ReadonlyArray<G>;\n newStreams: ReadonlyArray<S>;\n}\n\n/** @internal */\nexport interface WorkQueue<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n initialGroups: ReadonlyArray<G>;\n initialStreams: ReadonlyArray<S>;\n events: AsyncGenerator<ReadonlyArray<WorkQueueEvent<T, I, G, S>>, void, void>;\n}\n\n/** @internal */\nexport type StreamItem<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> = WorkResult<I, T, I, G, S>;\n\n/** @internal */\nexport type TaskResult<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> = WorkResult<T, T, I, G, S>;\n\n/** @internal */\nexport interface Task<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n groups: ReadonlyArray<G>;\n computation: Computation<TaskResult<T, I, G, S>>;\n}\n\ninterface TaskSuccessGraphEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'TASK_SUCCESS';\n task: Task<T, I, G, S>;\n result: TaskResult<T, I, G, S>;\n}\n\ninterface TaskFailureGraphEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'TASK_FAILURE';\n task: Task<T, I, G, S>;\n error: unknown;\n}\n\ninterface StreamItemsEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_ITEMS';\n stream: S;\n items: Generator<StreamItem<T, I, G, S>>;\n}\n\ninterface StreamSuccessEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_SUCCESS';\n stream: S;\n}\n\ninterface StreamFailureEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_FAILURE';\n stream: S;\n error: unknown;\n}\n\ntype GraphEvent<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> =\n | TaskSuccessGraphEvent<T, I, G, S>\n | TaskFailureGraphEvent<T, I, G, S>\n | StreamItemsEvent<T, I, G, S>\n | StreamSuccessEvent<T, I, G, S>\n | StreamFailureEvent<T, I, G, S>;\n\ninterface GroupValuesEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'GROUP_VALUES';\n group: G;\n values: ReadonlyArray<T>;\n}\n\ninterface GroupSuccessEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> extends NewWork<T, I, G, S> {\n kind: 'GROUP_SUCCESS';\n group: G;\n}\n\ninterface GroupFailureEvent<G extends Group<G>> {\n kind: 'GROUP_FAILURE';\n group: G;\n error: unknown;\n}\n\ninterface StreamValuesEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> extends NewWork<T, I, G, S> {\n kind: 'STREAM_VALUES';\n stream: S;\n values: ReadonlyArray<I>;\n}\n\ninterface WorkQueueTerminationEvent {\n kind: 'WORK_QUEUE_TERMINATION';\n}\n\n/** @internal */\nexport type WorkQueueEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> =\n | GroupValuesEvent<T, I, G, S>\n | GroupSuccessEvent<T, I, G, S>\n | GroupFailureEvent<G>\n | StreamValuesEvent<T, I, G, S>\n | StreamSuccessEvent<T, I, G, S>\n | StreamFailureEvent<T, I, G, S>\n | WorkQueueTerminationEvent;\n\ninterface GroupNode<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n childGroups: Array<G>;\n tasks: Set<Task<T, I, G, S>>;\n pending: number;\n}\n\ninterface TaskNode<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n value: T | undefined;\n childStreams: Array<S>;\n}\n\n/** @internal */\nexport function createWorkQueue<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n>(initialWork: Work<T, I, G, S> | undefined): WorkQueue<T, I, G, S> {\n const rootGroups = new Set<G>();\n const rootStreams = new Set<S>();\n const groupNodes = new Map<G, GroupNode<T, I, G, S>>();\n const taskNodes = new Map<Task<T, I, G, S>, TaskNode<T, I, G, S>>();\n let pushGraphEvent!: (e: GraphEvent<T, I, G, S>) => PromiseOrValue<void>;\n let stopGraphEvents!: (err?: unknown) => PromiseOrValue<void>;\n\n const { newGroups: initialRootGroups, newStreams: initialRootStreams } =\n maybeIntegrateWork(initialWork);\n const nonEmptyInitialRootGroups = pruneEmptyGroups(initialRootGroups);\n // Initialize root groups and streams at startup to prepare for cancellation\n // prior to starting the work queue\n for (const group of nonEmptyInitialRootGroups) {\n rootGroups.add(group);\n }\n for (const stream of initialRootStreams) {\n rootStreams.add(stream);\n }\n\n const events = new Queue<GraphEvent<T, I, G, S>>(\n ({ push: _push, stop: _stop, onStop, started }) => {\n pushGraphEvent = _push;\n stopGraphEvents = _stop;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n started.then(() => {\n for (const group of rootGroups) {\n startGroup(group);\n }\n for (const stream of rootStreams) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startStream(stream);\n }\n });\n onStop((reason) => cancel(reason));\n },\n 1,\n ).subscribe((graphEvents) => handleGraphEvents(graphEvents));\n\n return {\n initialGroups: nonEmptyInitialRootGroups,\n initialStreams: initialRootStreams,\n events,\n };\n\n function cancel(reason?: unknown): PromiseOrValue<void> {\n const cancelPromises: Array<Promise<unknown>> = [];\n for (const group of rootGroups) {\n cancelGroup(group, reason, cancelPromises);\n }\n for (const stream of rootStreams) {\n cancelStream(stream, reason, cancelPromises);\n }\n if (cancelPromises.length > 0) {\n return Promise.allSettled(cancelPromises).then(() => undefined);\n }\n }\n\n function cancelGroup(\n group: G,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n for (const task of groupNode.tasks) {\n cancelTask(task, reason, cancelPromises);\n }\n for (const childGroup of groupNode.childGroups) {\n cancelGroup(childGroup, reason, cancelPromises);\n }\n }\n }\n\n function cancelTask(\n task: Task<T, I, G, S>,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const abortResult = task.computation.abort(reason);\n if (isPromise(abortResult)) {\n cancelPromises.push(abortResult);\n }\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n for (const childStream of taskNode.childStreams) {\n cancelStream(childStream, reason, cancelPromises);\n }\n }\n }\n\n function cancelStream(\n stream: S,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const abortResult = stream.queue.abort(reason);\n if (isPromise(abortResult)) {\n cancelPromises.push(abortResult);\n }\n }\n\n function maybeIntegrateWork(\n work: Work<T, I, G, S> | undefined,\n parentTask?: Task<T, I, G, S>,\n ): NewWork<T, I, G, S> {\n if (!work) {\n return { newGroups: [], newStreams: [] };\n }\n const { groups, tasks, streams } = work;\n const newGroups = groups ? addGroups(groups, parentTask) : [];\n if (tasks) {\n for (const task of tasks) {\n addTask(task);\n }\n }\n const newStreams = streams ? addStreams(streams, parentTask) : [];\n return { newGroups, newStreams };\n }\n\n function addGroups(\n originalGroups: ReadonlyArray<G>,\n parentTask?: Task<T, I, G, S>,\n ): Array<G> {\n const groupSet = new Set(originalGroups);\n const visited = new Set<G>();\n const newRootGroups: Array<G> = [];\n for (const group of originalGroups) {\n addGroup(group, groupSet, newRootGroups, visited, parentTask);\n }\n return newRootGroups;\n }\n\n function addGroup(\n group: G,\n groupSet: ReadonlySet<G>,\n newRootGroups: Array<G>,\n visited: Set<G>,\n parentTask?: Task<T, I, G, S>,\n ): void {\n if (visited.has(group)) {\n return;\n }\n visited.add(group);\n const parent = group.parent;\n if (parent !== undefined && groupSet.has(parent)) {\n addGroup(parent, groupSet, newRootGroups, visited, parentTask);\n }\n\n const groupNode: GroupNode<T, I, G, S> = {\n childGroups: [],\n tasks: new Set(),\n pending: 0,\n };\n groupNodes.set(group, groupNode);\n\n if (parentTask === undefined && !parent) {\n newRootGroups.push(group);\n } else if (parent) {\n groupNodes.get(parent)?.childGroups.push(group);\n }\n }\n\n function addTask(task: Task<T, I, G, S>): void {\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupNode.tasks.add(task);\n groupNode.pending++;\n if (rootGroups.has(group)) {\n startTask(task);\n }\n }\n }\n }\n\n function addStreams(\n streams: ReadonlyArray<S>,\n parentTask?: Task<T, I, G, S>,\n ): ReadonlyArray<S> {\n if (!parentTask) {\n return streams;\n }\n const taskNode = taskNodes.get(parentTask);\n if (taskNode) {\n taskNode.childStreams.push(...streams);\n }\n return [];\n }\n\n function pruneEmptyGroups(\n newGroups: ReadonlyArray<G>,\n nonEmptyNewGroups: Array<G> = [],\n ): ReadonlyArray<G> {\n for (const newGroup of newGroups) {\n const newGroupState = groupNodes.get(newGroup);\n if (newGroupState) {\n if (newGroupState.pending === 0) {\n groupNodes.delete(newGroup);\n pruneEmptyGroups(newGroupState.childGroups, nonEmptyNewGroups);\n } else {\n nonEmptyNewGroups.push(newGroup);\n }\n }\n }\n return nonEmptyNewGroups;\n }\n\n function startNewWork(\n newGroups: ReadonlyArray<G>,\n newStreams: ReadonlyArray<S>,\n ): void {\n for (const group of newGroups) {\n rootGroups.add(group);\n startGroup(group);\n }\n for (const stream of newStreams) {\n rootStreams.add(stream);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startStream(stream);\n }\n }\n\n function startGroup(group: G): void {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n for (const task of groupNode.tasks) {\n startTask(task);\n }\n }\n }\n\n function startTask(task: Task<T, I, G, S>): void {\n if (taskNodes.has(task)) {\n return;\n }\n taskNodes.set(task, {\n value: undefined,\n childStreams: [],\n });\n try {\n const result = task.computation.result();\n if (isPromise(result)) {\n result.then(\n (resolved) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_SUCCESS', task, result: resolved });\n },\n (error: unknown) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_FAILURE', task, error });\n },\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_SUCCESS', task, result });\n }\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_FAILURE', task, error });\n }\n }\n\n async function startStream(stream: S): Promise<void> {\n try {\n await stream.queue.forEachBatch(async (items) => {\n const pushed = pushGraphEvent({\n kind: 'STREAM_ITEMS',\n stream,\n items,\n });\n if (isPromise(pushed)) {\n await pushed;\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'STREAM_SUCCESS', stream });\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'STREAM_FAILURE', stream, error });\n }\n }\n\n function handleGraphEvents(\n graphEvents: Generator<GraphEvent<T, I, G, S>>,\n ): ReadonlyArray<WorkQueueEvent<T, I, G, S>> | undefined {\n const workQueueEvents: Array<WorkQueueEvent<T, I, G, S>> = [];\n for (const graphEvent of graphEvents) {\n switch (graphEvent.kind) {\n case 'TASK_SUCCESS':\n workQueueEvents.push(...taskSuccess(graphEvent));\n break;\n case 'TASK_FAILURE':\n workQueueEvents.push(...taskFailure(graphEvent));\n break;\n case 'STREAM_ITEMS':\n workQueueEvents.push(...streamItems(graphEvent));\n break;\n case 'STREAM_SUCCESS':\n // check whether already deleted within streamItems()\n if (rootStreams.has(graphEvent.stream)) {\n rootStreams.delete(graphEvent.stream);\n workQueueEvents.push(graphEvent);\n }\n break;\n case 'STREAM_FAILURE':\n rootStreams.delete(graphEvent.stream);\n workQueueEvents.push(graphEvent);\n break;\n }\n }\n\n if (rootGroups.size === 0 && rootStreams.size === 0) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n stopGraphEvents();\n workQueueEvents.push({ kind: 'WORK_QUEUE_TERMINATION' });\n }\n\n return workQueueEvents.length > 0 ? workQueueEvents : undefined;\n }\n\n function taskSuccess(\n graphEvent: TaskSuccessGraphEvent<T, I, G, S>,\n ): ReadonlyArray<\n GroupValuesEvent<T, I, G, S> | GroupSuccessEvent<T, I, G, S>\n > {\n const { task, result } = graphEvent;\n const { value, work } = result;\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n taskNode.value = value;\n }\n maybeIntegrateWork(work, task);\n\n const groupEvents: Array<\n GroupValuesEvent<T, I, G, S> | GroupSuccessEvent<T, I, G, S>\n > = [];\n const newGroups: Array<G> = [];\n const newStreams: Array<S> = [];\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupNode.pending--;\n if (rootGroups.has(group) && groupNode.pending === 0) {\n const {\n groupValuesEvent,\n groupSuccessEvent,\n newGroups: childNewGroups,\n newStreams: childNewStreams,\n } = finishGroupSuccess(group, groupNode);\n if (groupValuesEvent) {\n groupEvents.push(groupValuesEvent);\n }\n groupEvents.push(groupSuccessEvent);\n newGroups.push(...childNewGroups);\n newStreams.push(...childNewStreams);\n }\n }\n }\n\n startNewWork(newGroups, newStreams);\n return groupEvents;\n }\n\n function taskFailure(\n graphEvent: TaskFailureGraphEvent<T, I, G, S>,\n ): ReadonlyArray<GroupFailureEvent<G>> {\n const { task, error } = graphEvent;\n taskNodes.delete(task);\n const groupFailureEvents: Array<GroupFailureEvent<G>> = [];\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupFailureEvents.push(finishGroupFailure(group, groupNode, error));\n }\n }\n return groupFailureEvents;\n }\n\n function streamItems(\n graphEvent: StreamItemsEvent<T, I, G, S>,\n ):\n | [StreamValuesEvent<T, I, G, S>]\n | [StreamValuesEvent<T, I, G, S>, StreamSuccessEvent<T, I, G, S>] {\n const { stream, items } = graphEvent;\n const values: Array<I> = [];\n const newGroups: Array<G> = [];\n const newStreams: Array<S> = [];\n for (const { value, work } of items) {\n const { newGroups: itemNewGroups, newStreams: itemNewStreams } =\n maybeIntegrateWork(work);\n const nonEmptyNewGroups = pruneEmptyGroups(itemNewGroups);\n startNewWork(nonEmptyNewGroups, itemNewStreams);\n values.push(value);\n newGroups.push(...nonEmptyNewGroups);\n newStreams.push(...itemNewStreams);\n }\n const streamValuesEvent: StreamValuesEvent<T, I, G, S> = {\n kind: 'STREAM_VALUES',\n stream,\n values,\n newGroups,\n newStreams,\n };\n\n // queues allow peeking ahead see if stream has stopped\n if (stream.queue.isStopped()) {\n rootStreams.delete(stream);\n return [streamValuesEvent, { kind: 'STREAM_SUCCESS', stream }];\n }\n return [streamValuesEvent];\n }\n\n function finishGroupSuccess(\n group: G,\n groupNode: GroupNode<T, I, G, S>,\n ): {\n groupValuesEvent: GroupValuesEvent<T, I, G, S> | undefined;\n groupSuccessEvent: GroupSuccessEvent<T, I, G, S>;\n newGroups: ReadonlyArray<G>;\n newStreams: ReadonlyArray<S>;\n } {\n groupNodes.delete(group);\n const values: Array<T> = [];\n const newStreams: Array<S> = [];\n for (const task of groupNode.tasks) {\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n const { value, childStreams } = taskNode;\n if (value !== undefined) {\n values.push(value);\n }\n for (const childStream of childStreams) {\n newStreams.push(childStream);\n }\n removeTask(task);\n }\n }\n const newGroups = pruneEmptyGroups(groupNode.childGroups);\n rootGroups.delete(group);\n return {\n groupValuesEvent: values.length\n ? { kind: 'GROUP_VALUES', group, values }\n : undefined,\n groupSuccessEvent: {\n kind: 'GROUP_SUCCESS',\n group,\n newGroups,\n newStreams,\n },\n newGroups,\n newStreams,\n };\n }\n\n function finishGroupFailure(\n group: G,\n groupNode: GroupNode<T, I, G, S>,\n error: unknown,\n ): GroupFailureEvent<G> {\n removeGroup(group, groupNode);\n rootGroups.delete(group);\n return { kind: 'GROUP_FAILURE', group, error };\n }\n\n function removeGroup(group: G, groupNode: GroupNode<T, I, G, S>): void {\n groupNodes.delete(group);\n for (const task of groupNode.tasks) {\n if (task.groups.every((taskGroup) => !groupNodes.has(taskGroup))) {\n removeTask(task);\n }\n }\n for (const childGroup of groupNode.childGroups) {\n const childGroupState = groupNodes.get(childGroup);\n if (childGroupState) {\n removeGroup(childGroup, childGroupState);\n }\n }\n }\n\n function removeTask(task: Task<T, I, G, S>): void {\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n groupNode?.tasks.delete(task);\n }\n taskNodes.delete(task);\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  import { isPromise } from "../../jsutils/isPromise.mjs";
2
2
  import { Queue } from "./Queue.mjs";
3
- /** @internal */
4
3
  export function createWorkQueue(initialWork) {
5
4
  const rootGroups = new Set();
6
5
  const rootStreams = new Set();
@@ -10,8 +9,6 @@ export function createWorkQueue(initialWork) {
10
9
  let stopGraphEvents;
11
10
  const { newGroups: initialRootGroups, newStreams: initialRootStreams } = maybeIntegrateWork(initialWork);
12
11
  const nonEmptyInitialRootGroups = pruneEmptyGroups(initialRootGroups);
13
- // Initialize root groups and streams at startup to prepare for cancellation
14
- // prior to starting the work queue
15
12
  for (const group of nonEmptyInitialRootGroups) {
16
13
  rootGroups.add(group);
17
14
  }
@@ -21,13 +18,11 @@ export function createWorkQueue(initialWork) {
21
18
  const events = new Queue(({ push: _push, stop: _stop, onStop, started }) => {
22
19
  pushGraphEvent = _push;
23
20
  stopGraphEvents = _stop;
24
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
25
21
  started.then(() => {
26
22
  for (const group of rootGroups) {
27
23
  startGroup(group);
28
24
  }
29
25
  for (const stream of rootStreams) {
30
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
31
26
  startStream(stream);
32
27
  }
33
28
  });
@@ -168,7 +163,6 @@ export function createWorkQueue(initialWork) {
168
163
  }
169
164
  for (const stream of newStreams) {
170
165
  rootStreams.add(stream);
171
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
172
166
  startStream(stream);
173
167
  }
174
168
  }
@@ -192,20 +186,16 @@ export function createWorkQueue(initialWork) {
192
186
  const result = task.computation.result();
193
187
  if (isPromise(result)) {
194
188
  result.then((resolved) => {
195
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
196
189
  pushGraphEvent({ kind: 'TASK_SUCCESS', task, result: resolved });
197
190
  }, (error) => {
198
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
199
191
  pushGraphEvent({ kind: 'TASK_FAILURE', task, error });
200
192
  });
201
193
  }
202
194
  else {
203
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
204
195
  pushGraphEvent({ kind: 'TASK_SUCCESS', task, result });
205
196
  }
206
197
  }
207
198
  catch (error) {
208
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
209
199
  pushGraphEvent({ kind: 'TASK_FAILURE', task, error });
210
200
  }
211
201
  }
@@ -221,11 +211,9 @@ export function createWorkQueue(initialWork) {
221
211
  await pushed;
222
212
  }
223
213
  });
224
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
225
214
  pushGraphEvent({ kind: 'STREAM_SUCCESS', stream });
226
215
  }
227
216
  catch (error) {
228
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
229
217
  pushGraphEvent({ kind: 'STREAM_FAILURE', stream, error });
230
218
  }
231
219
  }
@@ -243,7 +231,6 @@ export function createWorkQueue(initialWork) {
243
231
  workQueueEvents.push(...streamItems(graphEvent));
244
232
  break;
245
233
  case 'STREAM_SUCCESS':
246
- // check whether already deleted within streamItems()
247
234
  if (rootStreams.has(graphEvent.stream)) {
248
235
  rootStreams.delete(graphEvent.stream);
249
236
  workQueueEvents.push(graphEvent);
@@ -256,7 +243,6 @@ export function createWorkQueue(initialWork) {
256
243
  }
257
244
  }
258
245
  if (rootGroups.size === 0 && rootStreams.size === 0) {
259
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
260
246
  stopGraphEvents();
261
247
  workQueueEvents.push({ kind: 'WORK_QUEUE_TERMINATION' });
262
248
  }
@@ -323,7 +309,6 @@ export function createWorkQueue(initialWork) {
323
309
  newGroups,
324
310
  newStreams,
325
311
  };
326
- // queues allow peeking ahead see if stream has stopped
327
312
  if (stream.queue.isStopped()) {
328
313
  rootStreams.delete(stream);
329
314
  return [streamValuesEvent, { kind: 'STREAM_SUCCESS', stream }];
@@ -1 +1 @@
1
- {"version":3,"file":"WorkQueue.js","sourceRoot":"","sources":["../../../src/execution/incremental/WorkQueue.ts"],"names":[],"mappings":"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","sourcesContent":["import { isPromise } from '../../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.ts';\n\nimport type { Computation } from './Computation.ts';\nimport { Queue } from './Queue.ts';\n\nexport interface Group<TSelf extends Group<TSelf>> {\n parent?: TSelf | undefined;\n}\n\ninterface WorkResult<\n TValue,\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n value: TValue;\n work?: Work<T, I, G, S> | undefined;\n}\n\nexport interface Stream<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n queue: Queue<StreamItem<T, I, G, S>>;\n}\n\nexport interface Work<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n groups?: ReadonlyArray<G>;\n tasks?: ReadonlyArray<Task<T, I, G, S>>;\n streams?: ReadonlyArray<S>;\n}\n\ninterface NewWork<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n newGroups: ReadonlyArray<G>;\n newStreams: ReadonlyArray<S>;\n}\n\nexport interface WorkQueue<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n initialGroups: ReadonlyArray<G>;\n initialStreams: ReadonlyArray<S>;\n events: AsyncGenerator<ReadonlyArray<WorkQueueEvent<T, I, G, S>>, void, void>;\n}\n\nexport type StreamItem<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> = WorkResult<I, T, I, G, S>;\n\nexport type TaskResult<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> = WorkResult<T, T, I, G, S>;\n\nexport interface Task<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n groups: ReadonlyArray<G>;\n computation: Computation<TaskResult<T, I, G, S>>;\n}\n\ninterface TaskSuccessGraphEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'TASK_SUCCESS';\n task: Task<T, I, G, S>;\n result: TaskResult<T, I, G, S>;\n}\n\ninterface TaskFailureGraphEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'TASK_FAILURE';\n task: Task<T, I, G, S>;\n error: unknown;\n}\n\ninterface StreamItemsEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_ITEMS';\n stream: S;\n items: Generator<StreamItem<T, I, G, S>>;\n}\n\ninterface StreamSuccessEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_SUCCESS';\n stream: S;\n}\n\ninterface StreamFailureEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_FAILURE';\n stream: S;\n error: unknown;\n}\n\ntype GraphEvent<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> =\n | TaskSuccessGraphEvent<T, I, G, S>\n | TaskFailureGraphEvent<T, I, G, S>\n | StreamItemsEvent<T, I, G, S>\n | StreamSuccessEvent<T, I, G, S>\n | StreamFailureEvent<T, I, G, S>;\n\ninterface GroupValuesEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'GROUP_VALUES';\n group: G;\n values: ReadonlyArray<T>;\n}\n\ninterface GroupSuccessEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> extends NewWork<T, I, G, S> {\n kind: 'GROUP_SUCCESS';\n group: G;\n}\n\ninterface GroupFailureEvent<G extends Group<G>> {\n kind: 'GROUP_FAILURE';\n group: G;\n error: unknown;\n}\n\ninterface StreamValuesEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> extends NewWork<T, I, G, S> {\n kind: 'STREAM_VALUES';\n stream: S;\n values: ReadonlyArray<I>;\n}\n\ninterface WorkQueueTerminationEvent {\n kind: 'WORK_QUEUE_TERMINATION';\n}\n\nexport type WorkQueueEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> =\n | GroupValuesEvent<T, I, G, S>\n | GroupSuccessEvent<T, I, G, S>\n | GroupFailureEvent<G>\n | StreamValuesEvent<T, I, G, S>\n | StreamSuccessEvent<T, I, G, S>\n | StreamFailureEvent<T, I, G, S>\n | WorkQueueTerminationEvent;\n\ninterface GroupNode<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n childGroups: Array<G>;\n tasks: Set<Task<T, I, G, S>>;\n pending: number;\n}\n\ninterface TaskNode<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n value: T | undefined;\n childStreams: Array<S>;\n}\n\n/** @internal */\nexport function createWorkQueue<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n>(initialWork: Work<T, I, G, S> | undefined): WorkQueue<T, I, G, S> {\n const rootGroups = new Set<G>();\n const rootStreams = new Set<S>();\n const groupNodes = new Map<G, GroupNode<T, I, G, S>>();\n const taskNodes = new Map<Task<T, I, G, S>, TaskNode<T, I, G, S>>();\n let pushGraphEvent!: (e: GraphEvent<T, I, G, S>) => PromiseOrValue<void>;\n let stopGraphEvents!: (err?: unknown) => PromiseOrValue<void>;\n\n const { newGroups: initialRootGroups, newStreams: initialRootStreams } =\n maybeIntegrateWork(initialWork);\n const nonEmptyInitialRootGroups = pruneEmptyGroups(initialRootGroups);\n // Initialize root groups and streams at startup to prepare for cancellation\n // prior to starting the work queue\n for (const group of nonEmptyInitialRootGroups) {\n rootGroups.add(group);\n }\n for (const stream of initialRootStreams) {\n rootStreams.add(stream);\n }\n\n const events = new Queue<GraphEvent<T, I, G, S>>(\n ({ push: _push, stop: _stop, onStop, started }) => {\n pushGraphEvent = _push;\n stopGraphEvents = _stop;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n started.then(() => {\n for (const group of rootGroups) {\n startGroup(group);\n }\n for (const stream of rootStreams) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startStream(stream);\n }\n });\n onStop((reason) => cancel(reason));\n },\n 1,\n ).subscribe((graphEvents) => handleGraphEvents(graphEvents));\n\n return {\n initialGroups: nonEmptyInitialRootGroups,\n initialStreams: initialRootStreams,\n events,\n };\n\n function cancel(reason?: unknown): PromiseOrValue<void> {\n const cancelPromises: Array<Promise<unknown>> = [];\n for (const group of rootGroups) {\n cancelGroup(group, reason, cancelPromises);\n }\n for (const stream of rootStreams) {\n cancelStream(stream, reason, cancelPromises);\n }\n if (cancelPromises.length > 0) {\n return Promise.allSettled(cancelPromises).then(() => undefined);\n }\n }\n\n function cancelGroup(\n group: G,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n for (const task of groupNode.tasks) {\n cancelTask(task, reason, cancelPromises);\n }\n for (const childGroup of groupNode.childGroups) {\n cancelGroup(childGroup, reason, cancelPromises);\n }\n }\n }\n\n function cancelTask(\n task: Task<T, I, G, S>,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const abortResult = task.computation.abort(reason);\n if (isPromise(abortResult)) {\n cancelPromises.push(abortResult);\n }\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n for (const childStream of taskNode.childStreams) {\n cancelStream(childStream, reason, cancelPromises);\n }\n }\n }\n\n function cancelStream(\n stream: S,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const abortResult = stream.queue.abort(reason);\n if (isPromise(abortResult)) {\n cancelPromises.push(abortResult);\n }\n }\n\n function maybeIntegrateWork(\n work: Work<T, I, G, S> | undefined,\n parentTask?: Task<T, I, G, S>,\n ): NewWork<T, I, G, S> {\n if (!work) {\n return { newGroups: [], newStreams: [] };\n }\n const { groups, tasks, streams } = work;\n const newGroups = groups ? addGroups(groups, parentTask) : [];\n if (tasks) {\n for (const task of tasks) {\n addTask(task);\n }\n }\n const newStreams = streams ? addStreams(streams, parentTask) : [];\n return { newGroups, newStreams };\n }\n\n function addGroups(\n originalGroups: ReadonlyArray<G>,\n parentTask?: Task<T, I, G, S>,\n ): Array<G> {\n const groupSet = new Set(originalGroups);\n const visited = new Set<G>();\n const newRootGroups: Array<G> = [];\n for (const group of originalGroups) {\n addGroup(group, groupSet, newRootGroups, visited, parentTask);\n }\n return newRootGroups;\n }\n\n function addGroup(\n group: G,\n groupSet: ReadonlySet<G>,\n newRootGroups: Array<G>,\n visited: Set<G>,\n parentTask?: Task<T, I, G, S>,\n ): void {\n if (visited.has(group)) {\n return;\n }\n visited.add(group);\n const parent = group.parent;\n if (parent !== undefined && groupSet.has(parent)) {\n addGroup(parent, groupSet, newRootGroups, visited, parentTask);\n }\n\n const groupNode: GroupNode<T, I, G, S> = {\n childGroups: [],\n tasks: new Set(),\n pending: 0,\n };\n groupNodes.set(group, groupNode);\n\n if (parentTask === undefined && !parent) {\n newRootGroups.push(group);\n } else if (parent) {\n groupNodes.get(parent)?.childGroups.push(group);\n }\n }\n\n function addTask(task: Task<T, I, G, S>): void {\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupNode.tasks.add(task);\n groupNode.pending++;\n if (rootGroups.has(group)) {\n startTask(task);\n }\n }\n }\n }\n\n function addStreams(\n streams: ReadonlyArray<S>,\n parentTask?: Task<T, I, G, S>,\n ): ReadonlyArray<S> {\n if (!parentTask) {\n return streams;\n }\n const taskNode = taskNodes.get(parentTask);\n if (taskNode) {\n taskNode.childStreams.push(...streams);\n }\n return [];\n }\n\n function pruneEmptyGroups(\n newGroups: ReadonlyArray<G>,\n nonEmptyNewGroups: Array<G> = [],\n ): ReadonlyArray<G> {\n for (const newGroup of newGroups) {\n const newGroupState = groupNodes.get(newGroup);\n if (newGroupState) {\n if (newGroupState.pending === 0) {\n groupNodes.delete(newGroup);\n pruneEmptyGroups(newGroupState.childGroups, nonEmptyNewGroups);\n } else {\n nonEmptyNewGroups.push(newGroup);\n }\n }\n }\n return nonEmptyNewGroups;\n }\n\n function startNewWork(\n newGroups: ReadonlyArray<G>,\n newStreams: ReadonlyArray<S>,\n ): void {\n for (const group of newGroups) {\n rootGroups.add(group);\n startGroup(group);\n }\n for (const stream of newStreams) {\n rootStreams.add(stream);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startStream(stream);\n }\n }\n\n function startGroup(group: G): void {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n for (const task of groupNode.tasks) {\n startTask(task);\n }\n }\n }\n\n function startTask(task: Task<T, I, G, S>): void {\n if (taskNodes.has(task)) {\n return;\n }\n taskNodes.set(task, {\n value: undefined,\n childStreams: [],\n });\n try {\n const result = task.computation.result();\n if (isPromise(result)) {\n result.then(\n (resolved) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_SUCCESS', task, result: resolved });\n },\n (error: unknown) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_FAILURE', task, error });\n },\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_SUCCESS', task, result });\n }\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_FAILURE', task, error });\n }\n }\n\n async function startStream(stream: S): Promise<void> {\n try {\n await stream.queue.forEachBatch(async (items) => {\n const pushed = pushGraphEvent({\n kind: 'STREAM_ITEMS',\n stream,\n items,\n });\n if (isPromise(pushed)) {\n await pushed;\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'STREAM_SUCCESS', stream });\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'STREAM_FAILURE', stream, error });\n }\n }\n\n function handleGraphEvents(\n graphEvents: Generator<GraphEvent<T, I, G, S>>,\n ): ReadonlyArray<WorkQueueEvent<T, I, G, S>> | undefined {\n const workQueueEvents: Array<WorkQueueEvent<T, I, G, S>> = [];\n for (const graphEvent of graphEvents) {\n switch (graphEvent.kind) {\n case 'TASK_SUCCESS':\n workQueueEvents.push(...taskSuccess(graphEvent));\n break;\n case 'TASK_FAILURE':\n workQueueEvents.push(...taskFailure(graphEvent));\n break;\n case 'STREAM_ITEMS':\n workQueueEvents.push(...streamItems(graphEvent));\n break;\n case 'STREAM_SUCCESS':\n // check whether already deleted within streamItems()\n if (rootStreams.has(graphEvent.stream)) {\n rootStreams.delete(graphEvent.stream);\n workQueueEvents.push(graphEvent);\n }\n break;\n case 'STREAM_FAILURE':\n rootStreams.delete(graphEvent.stream);\n workQueueEvents.push(graphEvent);\n break;\n }\n }\n\n if (rootGroups.size === 0 && rootStreams.size === 0) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n stopGraphEvents();\n workQueueEvents.push({ kind: 'WORK_QUEUE_TERMINATION' });\n }\n\n return workQueueEvents.length > 0 ? workQueueEvents : undefined;\n }\n\n function taskSuccess(\n graphEvent: TaskSuccessGraphEvent<T, I, G, S>,\n ): ReadonlyArray<\n GroupValuesEvent<T, I, G, S> | GroupSuccessEvent<T, I, G, S>\n > {\n const { task, result } = graphEvent;\n const { value, work } = result;\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n taskNode.value = value;\n }\n maybeIntegrateWork(work, task);\n\n const groupEvents: Array<\n GroupValuesEvent<T, I, G, S> | GroupSuccessEvent<T, I, G, S>\n > = [];\n const newGroups: Array<G> = [];\n const newStreams: Array<S> = [];\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupNode.pending--;\n if (rootGroups.has(group) && groupNode.pending === 0) {\n const {\n groupValuesEvent,\n groupSuccessEvent,\n newGroups: childNewGroups,\n newStreams: childNewStreams,\n } = finishGroupSuccess(group, groupNode);\n if (groupValuesEvent) {\n groupEvents.push(groupValuesEvent);\n }\n groupEvents.push(groupSuccessEvent);\n newGroups.push(...childNewGroups);\n newStreams.push(...childNewStreams);\n }\n }\n }\n\n startNewWork(newGroups, newStreams);\n return groupEvents;\n }\n\n function taskFailure(\n graphEvent: TaskFailureGraphEvent<T, I, G, S>,\n ): ReadonlyArray<GroupFailureEvent<G>> {\n const { task, error } = graphEvent;\n taskNodes.delete(task);\n const groupFailureEvents: Array<GroupFailureEvent<G>> = [];\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupFailureEvents.push(finishGroupFailure(group, groupNode, error));\n }\n }\n return groupFailureEvents;\n }\n\n function streamItems(\n graphEvent: StreamItemsEvent<T, I, G, S>,\n ):\n | [StreamValuesEvent<T, I, G, S>]\n | [StreamValuesEvent<T, I, G, S>, StreamSuccessEvent<T, I, G, S>] {\n const { stream, items } = graphEvent;\n const values: Array<I> = [];\n const newGroups: Array<G> = [];\n const newStreams: Array<S> = [];\n for (const { value, work } of items) {\n const { newGroups: itemNewGroups, newStreams: itemNewStreams } =\n maybeIntegrateWork(work);\n const nonEmptyNewGroups = pruneEmptyGroups(itemNewGroups);\n startNewWork(nonEmptyNewGroups, itemNewStreams);\n values.push(value);\n newGroups.push(...nonEmptyNewGroups);\n newStreams.push(...itemNewStreams);\n }\n const streamValuesEvent: StreamValuesEvent<T, I, G, S> = {\n kind: 'STREAM_VALUES',\n stream,\n values,\n newGroups,\n newStreams,\n };\n\n // queues allow peeking ahead see if stream has stopped\n if (stream.queue.isStopped()) {\n rootStreams.delete(stream);\n return [streamValuesEvent, { kind: 'STREAM_SUCCESS', stream }];\n }\n return [streamValuesEvent];\n }\n\n function finishGroupSuccess(\n group: G,\n groupNode: GroupNode<T, I, G, S>,\n ): {\n groupValuesEvent: GroupValuesEvent<T, I, G, S> | undefined;\n groupSuccessEvent: GroupSuccessEvent<T, I, G, S>;\n newGroups: ReadonlyArray<G>;\n newStreams: ReadonlyArray<S>;\n } {\n groupNodes.delete(group);\n const values: Array<T> = [];\n const newStreams: Array<S> = [];\n for (const task of groupNode.tasks) {\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n const { value, childStreams } = taskNode;\n if (value !== undefined) {\n values.push(value);\n }\n for (const childStream of childStreams) {\n newStreams.push(childStream);\n }\n removeTask(task);\n }\n }\n const newGroups = pruneEmptyGroups(groupNode.childGroups);\n rootGroups.delete(group);\n return {\n groupValuesEvent: values.length\n ? { kind: 'GROUP_VALUES', group, values }\n : undefined,\n groupSuccessEvent: {\n kind: 'GROUP_SUCCESS',\n group,\n newGroups,\n newStreams,\n },\n newGroups,\n newStreams,\n };\n }\n\n function finishGroupFailure(\n group: G,\n groupNode: GroupNode<T, I, G, S>,\n error: unknown,\n ): GroupFailureEvent<G> {\n removeGroup(group, groupNode);\n rootGroups.delete(group);\n return { kind: 'GROUP_FAILURE', group, error };\n }\n\n function removeGroup(group: G, groupNode: GroupNode<T, I, G, S>): void {\n groupNodes.delete(group);\n for (const task of groupNode.tasks) {\n if (task.groups.every((taskGroup) => !groupNodes.has(taskGroup))) {\n removeTask(task);\n }\n }\n for (const childGroup of groupNode.childGroups) {\n const childGroupState = groupNodes.get(childGroup);\n if (childGroupState) {\n removeGroup(childGroup, childGroupState);\n }\n }\n }\n\n function removeTask(task: Task<T, I, G, S>): void {\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n groupNode?.tasks.delete(task);\n }\n taskNodes.delete(task);\n }\n}\n"]}
1
+ {"version":3,"file":"WorkQueue.js","sourceRoot":"","sources":["../../../src/execution/incremental/WorkQueue.ts"],"names":[],"mappings":"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","sourcesContent":["import { isPromise } from '../../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.ts';\n\nimport type { Computation } from './Computation.ts';\nimport { Queue } from './Queue.ts';\n\n/** @internal */\nexport interface Group<TSelf extends Group<TSelf>> {\n parent?: TSelf | undefined;\n}\n\ninterface WorkResult<\n TValue,\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n value: TValue;\n work?: Work<T, I, G, S> | undefined;\n}\n\n/** @internal */\nexport interface Stream<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n queue: Queue<StreamItem<T, I, G, S>>;\n}\n\n/** @internal */\nexport interface Work<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n groups?: ReadonlyArray<G>;\n tasks?: ReadonlyArray<Task<T, I, G, S>>;\n streams?: ReadonlyArray<S>;\n}\n\ninterface NewWork<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n newGroups: ReadonlyArray<G>;\n newStreams: ReadonlyArray<S>;\n}\n\n/** @internal */\nexport interface WorkQueue<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n initialGroups: ReadonlyArray<G>;\n initialStreams: ReadonlyArray<S>;\n events: AsyncGenerator<ReadonlyArray<WorkQueueEvent<T, I, G, S>>, void, void>;\n}\n\n/** @internal */\nexport type StreamItem<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> = WorkResult<I, T, I, G, S>;\n\n/** @internal */\nexport type TaskResult<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> = WorkResult<T, T, I, G, S>;\n\n/** @internal */\nexport interface Task<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n groups: ReadonlyArray<G>;\n computation: Computation<TaskResult<T, I, G, S>>;\n}\n\ninterface TaskSuccessGraphEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'TASK_SUCCESS';\n task: Task<T, I, G, S>;\n result: TaskResult<T, I, G, S>;\n}\n\ninterface TaskFailureGraphEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'TASK_FAILURE';\n task: Task<T, I, G, S>;\n error: unknown;\n}\n\ninterface StreamItemsEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_ITEMS';\n stream: S;\n items: Generator<StreamItem<T, I, G, S>>;\n}\n\ninterface StreamSuccessEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_SUCCESS';\n stream: S;\n}\n\ninterface StreamFailureEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'STREAM_FAILURE';\n stream: S;\n error: unknown;\n}\n\ntype GraphEvent<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> =\n | TaskSuccessGraphEvent<T, I, G, S>\n | TaskFailureGraphEvent<T, I, G, S>\n | StreamItemsEvent<T, I, G, S>\n | StreamSuccessEvent<T, I, G, S>\n | StreamFailureEvent<T, I, G, S>;\n\ninterface GroupValuesEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> {\n kind: 'GROUP_VALUES';\n group: G;\n values: ReadonlyArray<T>;\n}\n\ninterface GroupSuccessEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> extends NewWork<T, I, G, S> {\n kind: 'GROUP_SUCCESS';\n group: G;\n}\n\ninterface GroupFailureEvent<G extends Group<G>> {\n kind: 'GROUP_FAILURE';\n group: G;\n error: unknown;\n}\n\ninterface StreamValuesEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> extends NewWork<T, I, G, S> {\n kind: 'STREAM_VALUES';\n stream: S;\n values: ReadonlyArray<I>;\n}\n\ninterface WorkQueueTerminationEvent {\n kind: 'WORK_QUEUE_TERMINATION';\n}\n\n/** @internal */\nexport type WorkQueueEvent<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n> =\n | GroupValuesEvent<T, I, G, S>\n | GroupSuccessEvent<T, I, G, S>\n | GroupFailureEvent<G>\n | StreamValuesEvent<T, I, G, S>\n | StreamSuccessEvent<T, I, G, S>\n | StreamFailureEvent<T, I, G, S>\n | WorkQueueTerminationEvent;\n\ninterface GroupNode<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n childGroups: Array<G>;\n tasks: Set<Task<T, I, G, S>>;\n pending: number;\n}\n\ninterface TaskNode<T, I, G extends Group<G>, S extends Stream<T, I, G, S>> {\n value: T | undefined;\n childStreams: Array<S>;\n}\n\n/** @internal */\nexport function createWorkQueue<\n T,\n I,\n G extends Group<G>,\n S extends Stream<T, I, G, S>,\n>(initialWork: Work<T, I, G, S> | undefined): WorkQueue<T, I, G, S> {\n const rootGroups = new Set<G>();\n const rootStreams = new Set<S>();\n const groupNodes = new Map<G, GroupNode<T, I, G, S>>();\n const taskNodes = new Map<Task<T, I, G, S>, TaskNode<T, I, G, S>>();\n let pushGraphEvent!: (e: GraphEvent<T, I, G, S>) => PromiseOrValue<void>;\n let stopGraphEvents!: (err?: unknown) => PromiseOrValue<void>;\n\n const { newGroups: initialRootGroups, newStreams: initialRootStreams } =\n maybeIntegrateWork(initialWork);\n const nonEmptyInitialRootGroups = pruneEmptyGroups(initialRootGroups);\n // Initialize root groups and streams at startup to prepare for cancellation\n // prior to starting the work queue\n for (const group of nonEmptyInitialRootGroups) {\n rootGroups.add(group);\n }\n for (const stream of initialRootStreams) {\n rootStreams.add(stream);\n }\n\n const events = new Queue<GraphEvent<T, I, G, S>>(\n ({ push: _push, stop: _stop, onStop, started }) => {\n pushGraphEvent = _push;\n stopGraphEvents = _stop;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n started.then(() => {\n for (const group of rootGroups) {\n startGroup(group);\n }\n for (const stream of rootStreams) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startStream(stream);\n }\n });\n onStop((reason) => cancel(reason));\n },\n 1,\n ).subscribe((graphEvents) => handleGraphEvents(graphEvents));\n\n return {\n initialGroups: nonEmptyInitialRootGroups,\n initialStreams: initialRootStreams,\n events,\n };\n\n function cancel(reason?: unknown): PromiseOrValue<void> {\n const cancelPromises: Array<Promise<unknown>> = [];\n for (const group of rootGroups) {\n cancelGroup(group, reason, cancelPromises);\n }\n for (const stream of rootStreams) {\n cancelStream(stream, reason, cancelPromises);\n }\n if (cancelPromises.length > 0) {\n return Promise.allSettled(cancelPromises).then(() => undefined);\n }\n }\n\n function cancelGroup(\n group: G,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n for (const task of groupNode.tasks) {\n cancelTask(task, reason, cancelPromises);\n }\n for (const childGroup of groupNode.childGroups) {\n cancelGroup(childGroup, reason, cancelPromises);\n }\n }\n }\n\n function cancelTask(\n task: Task<T, I, G, S>,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const abortResult = task.computation.abort(reason);\n if (isPromise(abortResult)) {\n cancelPromises.push(abortResult);\n }\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n for (const childStream of taskNode.childStreams) {\n cancelStream(childStream, reason, cancelPromises);\n }\n }\n }\n\n function cancelStream(\n stream: S,\n reason: unknown,\n cancelPromises: Array<Promise<unknown>>,\n ): void {\n const abortResult = stream.queue.abort(reason);\n if (isPromise(abortResult)) {\n cancelPromises.push(abortResult);\n }\n }\n\n function maybeIntegrateWork(\n work: Work<T, I, G, S> | undefined,\n parentTask?: Task<T, I, G, S>,\n ): NewWork<T, I, G, S> {\n if (!work) {\n return { newGroups: [], newStreams: [] };\n }\n const { groups, tasks, streams } = work;\n const newGroups = groups ? addGroups(groups, parentTask) : [];\n if (tasks) {\n for (const task of tasks) {\n addTask(task);\n }\n }\n const newStreams = streams ? addStreams(streams, parentTask) : [];\n return { newGroups, newStreams };\n }\n\n function addGroups(\n originalGroups: ReadonlyArray<G>,\n parentTask?: Task<T, I, G, S>,\n ): Array<G> {\n const groupSet = new Set(originalGroups);\n const visited = new Set<G>();\n const newRootGroups: Array<G> = [];\n for (const group of originalGroups) {\n addGroup(group, groupSet, newRootGroups, visited, parentTask);\n }\n return newRootGroups;\n }\n\n function addGroup(\n group: G,\n groupSet: ReadonlySet<G>,\n newRootGroups: Array<G>,\n visited: Set<G>,\n parentTask?: Task<T, I, G, S>,\n ): void {\n if (visited.has(group)) {\n return;\n }\n visited.add(group);\n const parent = group.parent;\n if (parent !== undefined && groupSet.has(parent)) {\n addGroup(parent, groupSet, newRootGroups, visited, parentTask);\n }\n\n const groupNode: GroupNode<T, I, G, S> = {\n childGroups: [],\n tasks: new Set(),\n pending: 0,\n };\n groupNodes.set(group, groupNode);\n\n if (parentTask === undefined && !parent) {\n newRootGroups.push(group);\n } else if (parent) {\n groupNodes.get(parent)?.childGroups.push(group);\n }\n }\n\n function addTask(task: Task<T, I, G, S>): void {\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupNode.tasks.add(task);\n groupNode.pending++;\n if (rootGroups.has(group)) {\n startTask(task);\n }\n }\n }\n }\n\n function addStreams(\n streams: ReadonlyArray<S>,\n parentTask?: Task<T, I, G, S>,\n ): ReadonlyArray<S> {\n if (!parentTask) {\n return streams;\n }\n const taskNode = taskNodes.get(parentTask);\n if (taskNode) {\n taskNode.childStreams.push(...streams);\n }\n return [];\n }\n\n function pruneEmptyGroups(\n newGroups: ReadonlyArray<G>,\n nonEmptyNewGroups: Array<G> = [],\n ): ReadonlyArray<G> {\n for (const newGroup of newGroups) {\n const newGroupState = groupNodes.get(newGroup);\n if (newGroupState) {\n if (newGroupState.pending === 0) {\n groupNodes.delete(newGroup);\n pruneEmptyGroups(newGroupState.childGroups, nonEmptyNewGroups);\n } else {\n nonEmptyNewGroups.push(newGroup);\n }\n }\n }\n return nonEmptyNewGroups;\n }\n\n function startNewWork(\n newGroups: ReadonlyArray<G>,\n newStreams: ReadonlyArray<S>,\n ): void {\n for (const group of newGroups) {\n rootGroups.add(group);\n startGroup(group);\n }\n for (const stream of newStreams) {\n rootStreams.add(stream);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n startStream(stream);\n }\n }\n\n function startGroup(group: G): void {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n for (const task of groupNode.tasks) {\n startTask(task);\n }\n }\n }\n\n function startTask(task: Task<T, I, G, S>): void {\n if (taskNodes.has(task)) {\n return;\n }\n taskNodes.set(task, {\n value: undefined,\n childStreams: [],\n });\n try {\n const result = task.computation.result();\n if (isPromise(result)) {\n result.then(\n (resolved) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_SUCCESS', task, result: resolved });\n },\n (error: unknown) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_FAILURE', task, error });\n },\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_SUCCESS', task, result });\n }\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'TASK_FAILURE', task, error });\n }\n }\n\n async function startStream(stream: S): Promise<void> {\n try {\n await stream.queue.forEachBatch(async (items) => {\n const pushed = pushGraphEvent({\n kind: 'STREAM_ITEMS',\n stream,\n items,\n });\n if (isPromise(pushed)) {\n await pushed;\n }\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'STREAM_SUCCESS', stream });\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n pushGraphEvent({ kind: 'STREAM_FAILURE', stream, error });\n }\n }\n\n function handleGraphEvents(\n graphEvents: Generator<GraphEvent<T, I, G, S>>,\n ): ReadonlyArray<WorkQueueEvent<T, I, G, S>> | undefined {\n const workQueueEvents: Array<WorkQueueEvent<T, I, G, S>> = [];\n for (const graphEvent of graphEvents) {\n switch (graphEvent.kind) {\n case 'TASK_SUCCESS':\n workQueueEvents.push(...taskSuccess(graphEvent));\n break;\n case 'TASK_FAILURE':\n workQueueEvents.push(...taskFailure(graphEvent));\n break;\n case 'STREAM_ITEMS':\n workQueueEvents.push(...streamItems(graphEvent));\n break;\n case 'STREAM_SUCCESS':\n // check whether already deleted within streamItems()\n if (rootStreams.has(graphEvent.stream)) {\n rootStreams.delete(graphEvent.stream);\n workQueueEvents.push(graphEvent);\n }\n break;\n case 'STREAM_FAILURE':\n rootStreams.delete(graphEvent.stream);\n workQueueEvents.push(graphEvent);\n break;\n }\n }\n\n if (rootGroups.size === 0 && rootStreams.size === 0) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n stopGraphEvents();\n workQueueEvents.push({ kind: 'WORK_QUEUE_TERMINATION' });\n }\n\n return workQueueEvents.length > 0 ? workQueueEvents : undefined;\n }\n\n function taskSuccess(\n graphEvent: TaskSuccessGraphEvent<T, I, G, S>,\n ): ReadonlyArray<\n GroupValuesEvent<T, I, G, S> | GroupSuccessEvent<T, I, G, S>\n > {\n const { task, result } = graphEvent;\n const { value, work } = result;\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n taskNode.value = value;\n }\n maybeIntegrateWork(work, task);\n\n const groupEvents: Array<\n GroupValuesEvent<T, I, G, S> | GroupSuccessEvent<T, I, G, S>\n > = [];\n const newGroups: Array<G> = [];\n const newStreams: Array<S> = [];\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupNode.pending--;\n if (rootGroups.has(group) && groupNode.pending === 0) {\n const {\n groupValuesEvent,\n groupSuccessEvent,\n newGroups: childNewGroups,\n newStreams: childNewStreams,\n } = finishGroupSuccess(group, groupNode);\n if (groupValuesEvent) {\n groupEvents.push(groupValuesEvent);\n }\n groupEvents.push(groupSuccessEvent);\n newGroups.push(...childNewGroups);\n newStreams.push(...childNewStreams);\n }\n }\n }\n\n startNewWork(newGroups, newStreams);\n return groupEvents;\n }\n\n function taskFailure(\n graphEvent: TaskFailureGraphEvent<T, I, G, S>,\n ): ReadonlyArray<GroupFailureEvent<G>> {\n const { task, error } = graphEvent;\n taskNodes.delete(task);\n const groupFailureEvents: Array<GroupFailureEvent<G>> = [];\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n if (groupNode) {\n groupFailureEvents.push(finishGroupFailure(group, groupNode, error));\n }\n }\n return groupFailureEvents;\n }\n\n function streamItems(\n graphEvent: StreamItemsEvent<T, I, G, S>,\n ):\n | [StreamValuesEvent<T, I, G, S>]\n | [StreamValuesEvent<T, I, G, S>, StreamSuccessEvent<T, I, G, S>] {\n const { stream, items } = graphEvent;\n const values: Array<I> = [];\n const newGroups: Array<G> = [];\n const newStreams: Array<S> = [];\n for (const { value, work } of items) {\n const { newGroups: itemNewGroups, newStreams: itemNewStreams } =\n maybeIntegrateWork(work);\n const nonEmptyNewGroups = pruneEmptyGroups(itemNewGroups);\n startNewWork(nonEmptyNewGroups, itemNewStreams);\n values.push(value);\n newGroups.push(...nonEmptyNewGroups);\n newStreams.push(...itemNewStreams);\n }\n const streamValuesEvent: StreamValuesEvent<T, I, G, S> = {\n kind: 'STREAM_VALUES',\n stream,\n values,\n newGroups,\n newStreams,\n };\n\n // queues allow peeking ahead see if stream has stopped\n if (stream.queue.isStopped()) {\n rootStreams.delete(stream);\n return [streamValuesEvent, { kind: 'STREAM_SUCCESS', stream }];\n }\n return [streamValuesEvent];\n }\n\n function finishGroupSuccess(\n group: G,\n groupNode: GroupNode<T, I, G, S>,\n ): {\n groupValuesEvent: GroupValuesEvent<T, I, G, S> | undefined;\n groupSuccessEvent: GroupSuccessEvent<T, I, G, S>;\n newGroups: ReadonlyArray<G>;\n newStreams: ReadonlyArray<S>;\n } {\n groupNodes.delete(group);\n const values: Array<T> = [];\n const newStreams: Array<S> = [];\n for (const task of groupNode.tasks) {\n const taskNode = taskNodes.get(task);\n if (taskNode) {\n const { value, childStreams } = taskNode;\n if (value !== undefined) {\n values.push(value);\n }\n for (const childStream of childStreams) {\n newStreams.push(childStream);\n }\n removeTask(task);\n }\n }\n const newGroups = pruneEmptyGroups(groupNode.childGroups);\n rootGroups.delete(group);\n return {\n groupValuesEvent: values.length\n ? { kind: 'GROUP_VALUES', group, values }\n : undefined,\n groupSuccessEvent: {\n kind: 'GROUP_SUCCESS',\n group,\n newGroups,\n newStreams,\n },\n newGroups,\n newStreams,\n };\n }\n\n function finishGroupFailure(\n group: G,\n groupNode: GroupNode<T, I, G, S>,\n error: unknown,\n ): GroupFailureEvent<G> {\n removeGroup(group, groupNode);\n rootGroups.delete(group);\n return { kind: 'GROUP_FAILURE', group, error };\n }\n\n function removeGroup(group: G, groupNode: GroupNode<T, I, G, S>): void {\n groupNodes.delete(group);\n for (const task of groupNode.tasks) {\n if (task.groups.every((taskGroup) => !groupNodes.has(taskGroup))) {\n removeTask(task);\n }\n }\n for (const childGroup of groupNode.childGroups) {\n const childGroupState = groupNodes.get(childGroup);\n if (childGroupState) {\n removeGroup(childGroup, childGroupState);\n }\n }\n }\n\n function removeTask(task: Task<T, I, G, S>): void {\n for (const group of task.groups) {\n const groupNode = groupNodes.get(group);\n groupNode?.tasks.delete(task);\n }\n taskNodes.delete(task);\n }\n}\n"]}
@@ -1,7 +1,10 @@
1
1
  import type { DeferUsage, GroupedFieldSet } from "../collectFields.mjs";
2
+ /** @internal */
2
3
  export type DeferUsageSet = ReadonlySet<DeferUsage>;
4
+ /** @internal */
3
5
  export interface ExecutionPlan {
4
6
  groupedFieldSet: GroupedFieldSet;
5
7
  newGroupedFieldSets: Map<DeferUsageSet, GroupedFieldSet>;
6
8
  }
9
+ /** @internal */
7
10
  export declare function buildExecutionPlan(originalGroupedFieldSet: GroupedFieldSet, parentDeferUsages?: DeferUsageSet): ExecutionPlan;
@@ -1,7 +1,10 @@
1
1
  import type { DeferUsage, GroupedFieldSet } from "../collectFields.js";
2
+ /** @internal */
2
3
  export type DeferUsageSet = ReadonlySet<DeferUsage>;
4
+ /** @internal */
3
5
  export interface ExecutionPlan {
4
6
  groupedFieldSet: GroupedFieldSet;
5
7
  newGroupedFieldSets: Map<DeferUsageSet, GroupedFieldSet>;
6
8
  }
9
+ /** @internal */
7
10
  export declare function buildExecutionPlan(originalGroupedFieldSet: GroupedFieldSet, parentDeferUsages?: DeferUsageSet): ExecutionPlan;
@@ -1 +1 @@
1
- {"version":3,"file":"buildExecutionPlan.js","sourceRoot":"","sources":["../../../src/execution/incremental/buildExecutionPlan.ts"],"names":[],"mappings":";;AAgBA,gDAgCC;AAhDD,2DAAqD;AACrD,6DAAuD;AAevD,SAAgB,kBAAkB,CAChC,uBAAwC,EACxC,oBAAmC,IAAI,GAAG,EAAc;IAExD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAGhC,CAAC;IACJ,KAAK,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACtE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QAEzE,IAAI,IAAA,wBAAS,EAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACxD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,kBAAkB,GAAG,IAAA,sBAAQ,EAC/B,mBAAmB,EACnB,qBAAqB,CACtB,CAAC;QACF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/B,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;QACrE,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,eAAe;QACf,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,gBAAkC;IAElC,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAc,CAAC;IACpD,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,qBAAqB,EAAE,CAAC;QAC/C,IAAI,gBAAgB,GAA2B,UAAU,CAAC,gBAAgB,CAAC;QAC3E,OAAO,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChD,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;YACD,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC","sourcesContent":["import { getBySet } from '../../jsutils/getBySet.ts';\nimport { isSameSet } from '../../jsutils/isSameSet.ts';\n\nimport type {\n DeferUsage,\n FieldDetailsList,\n GroupedFieldSet,\n} from '../collectFields.ts';\n\nexport type DeferUsageSet = ReadonlySet<DeferUsage>;\n\nexport interface ExecutionPlan {\n groupedFieldSet: GroupedFieldSet;\n newGroupedFieldSets: Map<DeferUsageSet, GroupedFieldSet>;\n}\n\nexport function buildExecutionPlan(\n originalGroupedFieldSet: GroupedFieldSet,\n parentDeferUsages: DeferUsageSet = new Set<DeferUsage>(),\n): ExecutionPlan {\n const groupedFieldSet = new Map<string, FieldDetailsList>();\n const newGroupedFieldSets = new Map<\n DeferUsageSet,\n Map<string, FieldDetailsList>\n >();\n for (const [responseKey, fieldDetailsList] of originalGroupedFieldSet) {\n const filteredDeferUsageSet = getFilteredDeferUsageSet(fieldDetailsList);\n\n if (isSameSet(filteredDeferUsageSet, parentDeferUsages)) {\n groupedFieldSet.set(responseKey, fieldDetailsList);\n continue;\n }\n\n let newGroupedFieldSet = getBySet(\n newGroupedFieldSets,\n filteredDeferUsageSet,\n );\n if (newGroupedFieldSet === undefined) {\n newGroupedFieldSet = new Map();\n newGroupedFieldSets.set(filteredDeferUsageSet, newGroupedFieldSet);\n }\n newGroupedFieldSet.set(responseKey, fieldDetailsList);\n }\n\n return {\n groupedFieldSet,\n newGroupedFieldSets,\n };\n}\n\nfunction getFilteredDeferUsageSet(\n fieldDetailsList: FieldDetailsList,\n): ReadonlySet<DeferUsage> {\n const filteredDeferUsageSet = new Set<DeferUsage>();\n for (const fieldDetails of fieldDetailsList) {\n const deferUsage = fieldDetails.deferUsage;\n if (deferUsage === undefined) {\n filteredDeferUsageSet.clear();\n return filteredDeferUsageSet;\n }\n filteredDeferUsageSet.add(deferUsage);\n }\n\n for (const deferUsage of filteredDeferUsageSet) {\n let parentDeferUsage: DeferUsage | undefined = deferUsage.parentDeferUsage;\n while (parentDeferUsage !== undefined) {\n if (filteredDeferUsageSet.has(parentDeferUsage)) {\n filteredDeferUsageSet.delete(deferUsage);\n break;\n }\n parentDeferUsage = parentDeferUsage.parentDeferUsage;\n }\n }\n return filteredDeferUsageSet;\n}\n"]}
1
+ {"version":3,"file":"buildExecutionPlan.js","sourceRoot":"","sources":["../../../src/execution/incremental/buildExecutionPlan.ts"],"names":[],"mappings":";;AAmBA,gDAgCC;AAnDD,2DAAqD;AACrD,6DAAuD;AAkBvD,SAAgB,kBAAkB,CAChC,uBAAwC,EACxC,oBAAmC,IAAI,GAAG,EAAc;IAExD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAGhC,CAAC;IACJ,KAAK,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACtE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QAEzE,IAAI,IAAA,wBAAS,EAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACxD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,kBAAkB,GAAG,IAAA,sBAAQ,EAC/B,mBAAmB,EACnB,qBAAqB,CACtB,CAAC;QACF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/B,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;QACrE,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,eAAe;QACf,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,gBAAkC;IAElC,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAc,CAAC;IACpD,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,qBAAqB,EAAE,CAAC;QAC/C,IAAI,gBAAgB,GAA2B,UAAU,CAAC,gBAAgB,CAAC;QAC3E,OAAO,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChD,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;YACD,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC","sourcesContent":["import { getBySet } from '../../jsutils/getBySet.ts';\nimport { isSameSet } from '../../jsutils/isSameSet.ts';\n\nimport type {\n DeferUsage,\n FieldDetailsList,\n GroupedFieldSet,\n} from '../collectFields.ts';\n\n/** @internal */\nexport type DeferUsageSet = ReadonlySet<DeferUsage>;\n\n/** @internal */\nexport interface ExecutionPlan {\n groupedFieldSet: GroupedFieldSet;\n newGroupedFieldSets: Map<DeferUsageSet, GroupedFieldSet>;\n}\n\n/** @internal */\nexport function buildExecutionPlan(\n originalGroupedFieldSet: GroupedFieldSet,\n parentDeferUsages: DeferUsageSet = new Set<DeferUsage>(),\n): ExecutionPlan {\n const groupedFieldSet = new Map<string, FieldDetailsList>();\n const newGroupedFieldSets = new Map<\n DeferUsageSet,\n Map<string, FieldDetailsList>\n >();\n for (const [responseKey, fieldDetailsList] of originalGroupedFieldSet) {\n const filteredDeferUsageSet = getFilteredDeferUsageSet(fieldDetailsList);\n\n if (isSameSet(filteredDeferUsageSet, parentDeferUsages)) {\n groupedFieldSet.set(responseKey, fieldDetailsList);\n continue;\n }\n\n let newGroupedFieldSet = getBySet(\n newGroupedFieldSets,\n filteredDeferUsageSet,\n );\n if (newGroupedFieldSet === undefined) {\n newGroupedFieldSet = new Map();\n newGroupedFieldSets.set(filteredDeferUsageSet, newGroupedFieldSet);\n }\n newGroupedFieldSet.set(responseKey, fieldDetailsList);\n }\n\n return {\n groupedFieldSet,\n newGroupedFieldSets,\n };\n}\n\nfunction getFilteredDeferUsageSet(\n fieldDetailsList: FieldDetailsList,\n): ReadonlySet<DeferUsage> {\n const filteredDeferUsageSet = new Set<DeferUsage>();\n for (const fieldDetails of fieldDetailsList) {\n const deferUsage = fieldDetails.deferUsage;\n if (deferUsage === undefined) {\n filteredDeferUsageSet.clear();\n return filteredDeferUsageSet;\n }\n filteredDeferUsageSet.add(deferUsage);\n }\n\n for (const deferUsage of filteredDeferUsageSet) {\n let parentDeferUsage: DeferUsage | undefined = deferUsage.parentDeferUsage;\n while (parentDeferUsage !== undefined) {\n if (filteredDeferUsageSet.has(parentDeferUsage)) {\n filteredDeferUsageSet.delete(deferUsage);\n break;\n }\n parentDeferUsage = parentDeferUsage.parentDeferUsage;\n }\n }\n return filteredDeferUsageSet;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildExecutionPlan.js","sourceRoot":"","sources":["../../../src/execution/incremental/buildExecutionPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,mCAAkC;AACrD,OAAO,EAAE,SAAS,EAAE,oCAAmC;AAevD,MAAM,UAAU,kBAAkB,CAChC,uBAAwC,EACxC,oBAAmC,IAAI,GAAG,EAAc;IAExD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAGhC,CAAC;IACJ,KAAK,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACtE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QAEzE,IAAI,SAAS,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACxD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,kBAAkB,GAAG,QAAQ,CAC/B,mBAAmB,EACnB,qBAAqB,CACtB,CAAC;QACF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/B,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;QACrE,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,eAAe;QACf,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,gBAAkC;IAElC,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAc,CAAC;IACpD,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,qBAAqB,EAAE,CAAC;QAC/C,IAAI,gBAAgB,GAA2B,UAAU,CAAC,gBAAgB,CAAC;QAC3E,OAAO,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChD,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;YACD,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC","sourcesContent":["import { getBySet } from '../../jsutils/getBySet.ts';\nimport { isSameSet } from '../../jsutils/isSameSet.ts';\n\nimport type {\n DeferUsage,\n FieldDetailsList,\n GroupedFieldSet,\n} from '../collectFields.ts';\n\nexport type DeferUsageSet = ReadonlySet<DeferUsage>;\n\nexport interface ExecutionPlan {\n groupedFieldSet: GroupedFieldSet;\n newGroupedFieldSets: Map<DeferUsageSet, GroupedFieldSet>;\n}\n\nexport function buildExecutionPlan(\n originalGroupedFieldSet: GroupedFieldSet,\n parentDeferUsages: DeferUsageSet = new Set<DeferUsage>(),\n): ExecutionPlan {\n const groupedFieldSet = new Map<string, FieldDetailsList>();\n const newGroupedFieldSets = new Map<\n DeferUsageSet,\n Map<string, FieldDetailsList>\n >();\n for (const [responseKey, fieldDetailsList] of originalGroupedFieldSet) {\n const filteredDeferUsageSet = getFilteredDeferUsageSet(fieldDetailsList);\n\n if (isSameSet(filteredDeferUsageSet, parentDeferUsages)) {\n groupedFieldSet.set(responseKey, fieldDetailsList);\n continue;\n }\n\n let newGroupedFieldSet = getBySet(\n newGroupedFieldSets,\n filteredDeferUsageSet,\n );\n if (newGroupedFieldSet === undefined) {\n newGroupedFieldSet = new Map();\n newGroupedFieldSets.set(filteredDeferUsageSet, newGroupedFieldSet);\n }\n newGroupedFieldSet.set(responseKey, fieldDetailsList);\n }\n\n return {\n groupedFieldSet,\n newGroupedFieldSets,\n };\n}\n\nfunction getFilteredDeferUsageSet(\n fieldDetailsList: FieldDetailsList,\n): ReadonlySet<DeferUsage> {\n const filteredDeferUsageSet = new Set<DeferUsage>();\n for (const fieldDetails of fieldDetailsList) {\n const deferUsage = fieldDetails.deferUsage;\n if (deferUsage === undefined) {\n filteredDeferUsageSet.clear();\n return filteredDeferUsageSet;\n }\n filteredDeferUsageSet.add(deferUsage);\n }\n\n for (const deferUsage of filteredDeferUsageSet) {\n let parentDeferUsage: DeferUsage | undefined = deferUsage.parentDeferUsage;\n while (parentDeferUsage !== undefined) {\n if (filteredDeferUsageSet.has(parentDeferUsage)) {\n filteredDeferUsageSet.delete(deferUsage);\n break;\n }\n parentDeferUsage = parentDeferUsage.parentDeferUsage;\n }\n }\n return filteredDeferUsageSet;\n}\n"]}
1
+ {"version":3,"file":"buildExecutionPlan.js","sourceRoot":"","sources":["../../../src/execution/incremental/buildExecutionPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,mCAAkC;AACrD,OAAO,EAAE,SAAS,EAAE,oCAAmC;AAkBvD,MAAM,UAAU,kBAAkB,CAChC,uBAAwC,EACxC,oBAAmC,IAAI,GAAG,EAAc;IAExD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAGhC,CAAC;IACJ,KAAK,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACtE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QAEzE,IAAI,SAAS,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACxD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,kBAAkB,GAAG,QAAQ,CAC/B,mBAAmB,EACnB,qBAAqB,CACtB,CAAC;QACF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;YAC/B,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;QACrE,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,eAAe;QACf,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,gBAAkC;IAElC,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAc,CAAC;IACpD,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,qBAAqB,EAAE,CAAC;QAC/C,IAAI,gBAAgB,GAA2B,UAAU,CAAC,gBAAgB,CAAC;QAC3E,OAAO,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChD,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;YACD,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC","sourcesContent":["import { getBySet } from '../../jsutils/getBySet.ts';\nimport { isSameSet } from '../../jsutils/isSameSet.ts';\n\nimport type {\n DeferUsage,\n FieldDetailsList,\n GroupedFieldSet,\n} from '../collectFields.ts';\n\n/** @internal */\nexport type DeferUsageSet = ReadonlySet<DeferUsage>;\n\n/** @internal */\nexport interface ExecutionPlan {\n groupedFieldSet: GroupedFieldSet;\n newGroupedFieldSets: Map<DeferUsageSet, GroupedFieldSet>;\n}\n\n/** @internal */\nexport function buildExecutionPlan(\n originalGroupedFieldSet: GroupedFieldSet,\n parentDeferUsages: DeferUsageSet = new Set<DeferUsage>(),\n): ExecutionPlan {\n const groupedFieldSet = new Map<string, FieldDetailsList>();\n const newGroupedFieldSets = new Map<\n DeferUsageSet,\n Map<string, FieldDetailsList>\n >();\n for (const [responseKey, fieldDetailsList] of originalGroupedFieldSet) {\n const filteredDeferUsageSet = getFilteredDeferUsageSet(fieldDetailsList);\n\n if (isSameSet(filteredDeferUsageSet, parentDeferUsages)) {\n groupedFieldSet.set(responseKey, fieldDetailsList);\n continue;\n }\n\n let newGroupedFieldSet = getBySet(\n newGroupedFieldSets,\n filteredDeferUsageSet,\n );\n if (newGroupedFieldSet === undefined) {\n newGroupedFieldSet = new Map();\n newGroupedFieldSets.set(filteredDeferUsageSet, newGroupedFieldSet);\n }\n newGroupedFieldSet.set(responseKey, fieldDetailsList);\n }\n\n return {\n groupedFieldSet,\n newGroupedFieldSets,\n };\n}\n\nfunction getFilteredDeferUsageSet(\n fieldDetailsList: FieldDetailsList,\n): ReadonlySet<DeferUsage> {\n const filteredDeferUsageSet = new Set<DeferUsage>();\n for (const fieldDetails of fieldDetailsList) {\n const deferUsage = fieldDetails.deferUsage;\n if (deferUsage === undefined) {\n filteredDeferUsageSet.clear();\n return filteredDeferUsageSet;\n }\n filteredDeferUsageSet.add(deferUsage);\n }\n\n for (const deferUsage of filteredDeferUsageSet) {\n let parentDeferUsage: DeferUsage | undefined = deferUsage.parentDeferUsage;\n while (parentDeferUsage !== undefined) {\n if (filteredDeferUsageSet.has(parentDeferUsage)) {\n filteredDeferUsageSet.delete(deferUsage);\n break;\n }\n parentDeferUsage = parentDeferUsage.parentDeferUsage;\n }\n }\n return filteredDeferUsageSet;\n}\n"]}
@@ -1,8 +1,17 @@
1
+ /**
2
+ * Execute GraphQL operations and produce GraphQL execution results.
3
+ *
4
+ * These exports are also available from the root `graphql` package.
5
+ * @packageDocumentation
6
+ */
1
7
  export { pathToArray as responsePathAsArray } from "../jsutils/Path.mjs";
2
8
  export { createSourceEventStream, execute, executeRootSelectionSet, executeSubscriptionEvent, executeSync, experimentalExecuteIncrementally, experimentalExecuteRootSelectionSet, defaultFieldResolver, defaultTypeResolver, mapSourceToResponseEvent, subscribe, validateExecutionArgs, validateSubscriptionArgs, } from "./execute.mjs";
3
- export type { ExecutionArgs, RootSelectionSetExecutor } from "./execute.mjs";
4
- export type { AsyncWorkFinishedInfo, ExecutionHooks } from "./hooks.mjs";
5
- export type { ValidatedExecutionArgs, ValidatedSubscriptionArgs, ExecutionResult, FormattedExecutionResult, } from "./Executor.mjs";
9
+ export { legacyExecuteIncrementally, legacyExecuteRootSelectionSet, } from "./legacyIncremental/legacyExecuteIncrementally.mjs";
10
+ export type { AsyncWorkFinishedInfo, ExecutionArgs, ExecutionHooks, ValidatedExecutionArgs, ValidatedSubscriptionArgs, } from "./ExecutionArgs.mjs";
11
+ export type { RootSelectionSetExecutor } from "./execute.mjs";
12
+ export type { ExecutionResult, FormattedExecutionResult } from "./Executor.mjs";
6
13
  export type { ExperimentalIncrementalExecutionResults, InitialIncrementalExecutionResult, SubsequentIncrementalExecutionResult, IncrementalDeferResult, IncrementalStreamResult, IncrementalResult, FormattedExperimentalIncrementalExecutionResults, FormattedInitialIncrementalExecutionResult, FormattedSubsequentIncrementalExecutionResult, FormattedIncrementalDeferResult, FormattedIncrementalStreamResult, FormattedIncrementalResult, } from "./incremental/IncrementalExecutor.mjs";
14
+ export type { LegacyExperimentalIncrementalExecutionResults, LegacyInitialIncrementalExecutionResult, LegacySubsequentIncrementalExecutionResult, LegacyIncrementalDeferResult, LegacyIncrementalStreamResult, LegacyIncrementalResult, FormattedLegacyExperimentalIncrementalExecutionResults, FormattedLegacyInitialIncrementalExecutionResult, FormattedLegacySubsequentIncrementalExecutionResult, FormattedLegacyIncrementalDeferResult, FormattedLegacyIncrementalStreamResult, FormattedLegacyIncrementalResult, } from "./legacyIncremental/BranchingIncrementalExecutor.mjs";
7
15
  export { AbortedGraphQLExecutionError } from "./AbortedGraphQLExecutionError.mjs";
8
16
  export { getArgumentValues, getVariableValues, getDirectiveValues, } from "./values.mjs";
17
+ export type { VariableValues } from "./values.mjs";