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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (733) hide show
  1. package/__dev__/execution/buildResolveInfo.d.mts +1 -0
  2. package/__dev__/execution/buildResolveInfo.d.ts +1 -0
  3. package/__dev__/execution/buildResolveInfo.js +3 -0
  4. package/__dev__/execution/buildResolveInfo.mjs +3 -0
  5. package/devMode.js +2 -2
  6. package/devMode.js.map +1 -1
  7. package/devMode.mjs.map +1 -1
  8. package/error/GraphQLError.d.mts +4 -4
  9. package/error/GraphQLError.d.ts +4 -4
  10. package/error/GraphQLError.js +10 -11
  11. package/error/GraphQLError.js.map +1 -1
  12. package/error/GraphQLError.mjs +2 -3
  13. package/error/GraphQLError.mjs.map +1 -1
  14. package/error/ensureGraphQLError.d.mts +1 -1
  15. package/error/ensureGraphQLError.d.ts +1 -1
  16. package/error/ensureGraphQLError.js +5 -5
  17. package/error/ensureGraphQLError.js.map +1 -1
  18. package/error/ensureGraphQLError.mjs.map +1 -1
  19. package/error/index.d.mts +4 -4
  20. package/error/index.d.ts +4 -4
  21. package/error/index.js +6 -6
  22. package/error/index.js.map +1 -1
  23. package/error/index.mjs.map +1 -1
  24. package/error/locatedError.d.mts +3 -3
  25. package/error/locatedError.d.ts +3 -3
  26. package/error/locatedError.js +4 -4
  27. package/error/locatedError.js.map +1 -1
  28. package/error/locatedError.mjs.map +1 -1
  29. package/error/syntaxError.d.mts +2 -2
  30. package/error/syntaxError.d.ts +2 -2
  31. package/error/syntaxError.js +2 -2
  32. package/error/syntaxError.js.map +1 -1
  33. package/error/syntaxError.mjs.map +1 -1
  34. package/execution/AbortedGraphQLExecutionError.d.mts +1 -1
  35. package/execution/AbortedGraphQLExecutionError.d.ts +1 -1
  36. package/execution/AbortedGraphQLExecutionError.js.map +1 -1
  37. package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
  38. package/execution/AsyncWorkTracker.js +2 -2
  39. package/execution/AsyncWorkTracker.js.map +1 -1
  40. package/execution/AsyncWorkTracker.mjs.map +1 -1
  41. package/execution/Executor.d.mts +16 -17
  42. package/execution/Executor.d.ts +16 -17
  43. package/execution/Executor.js +83 -85
  44. package/execution/Executor.js.map +1 -1
  45. package/execution/Executor.mjs +3 -5
  46. package/execution/Executor.mjs.map +1 -1
  47. package/execution/ExecutorThrowingOnIncremental.d.mts +6 -6
  48. package/execution/ExecutorThrowingOnIncremental.d.ts +6 -6
  49. package/execution/ExecutorThrowingOnIncremental.js +11 -11
  50. package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
  51. package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
  52. package/execution/buildResolveInfo.d.mts +14 -0
  53. package/execution/buildResolveInfo.d.ts +14 -0
  54. package/execution/buildResolveInfo.js +24 -0
  55. package/execution/buildResolveInfo.js.map +1 -0
  56. package/execution/buildResolveInfo.mjs +21 -0
  57. package/execution/buildResolveInfo.mjs.map +1 -0
  58. package/execution/cancellablePromise.js +2 -2
  59. package/execution/cancellablePromise.js.map +1 -1
  60. package/execution/cancellablePromise.mjs.map +1 -1
  61. package/execution/collectFields.d.mts +6 -6
  62. package/execution/collectFields.d.ts +6 -6
  63. package/execution/collectFields.js +19 -19
  64. package/execution/collectFields.js.map +1 -1
  65. package/execution/collectFields.mjs.map +1 -1
  66. package/execution/collectIteratorPromises.js +2 -2
  67. package/execution/collectIteratorPromises.js.map +1 -1
  68. package/execution/collectIteratorPromises.mjs.map +1 -1
  69. package/execution/createSharedExecutionContext.d.mts +2 -2
  70. package/execution/createSharedExecutionContext.d.ts +2 -2
  71. package/execution/createSharedExecutionContext.js +2 -2
  72. package/execution/createSharedExecutionContext.js.map +1 -1
  73. package/execution/createSharedExecutionContext.mjs.map +1 -1
  74. package/execution/execute.d.mts +14 -14
  75. package/execution/execute.d.ts +14 -14
  76. package/execution/execute.js +78 -98
  77. package/execution/execute.js.map +1 -1
  78. package/execution/execute.mjs +17 -37
  79. package/execution/execute.mjs.map +1 -1
  80. package/execution/getStreamUsage.d.mts +2 -2
  81. package/execution/getStreamUsage.d.ts +2 -2
  82. package/execution/getStreamUsage.js +9 -9
  83. package/execution/getStreamUsage.js.map +1 -1
  84. package/execution/getStreamUsage.mjs.map +1 -1
  85. package/execution/getVariableSignature.d.mts +3 -3
  86. package/execution/getVariableSignature.d.ts +3 -3
  87. package/execution/getVariableSignature.js +8 -8
  88. package/execution/getVariableSignature.js.map +1 -1
  89. package/execution/getVariableSignature.mjs.map +1 -1
  90. package/execution/hooks.d.mts +2 -2
  91. package/execution/hooks.d.ts +2 -2
  92. package/execution/hooks.js.map +1 -1
  93. package/execution/hooks.mjs.map +1 -1
  94. package/execution/incremental/Computation.d.mts +1 -1
  95. package/execution/incremental/Computation.d.ts +1 -1
  96. package/execution/incremental/Computation.js +2 -2
  97. package/execution/incremental/Computation.js.map +1 -1
  98. package/execution/incremental/Computation.mjs.map +1 -1
  99. package/execution/incremental/IncrementalExecutor.d.mts +14 -14
  100. package/execution/incremental/IncrementalExecutor.d.ts +14 -14
  101. package/execution/incremental/IncrementalExecutor.js +48 -48
  102. package/execution/incremental/IncrementalExecutor.js.map +1 -1
  103. package/execution/incremental/IncrementalExecutor.mjs +3 -3
  104. package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
  105. package/execution/incremental/IncrementalPublisher.d.mts +3 -3
  106. package/execution/incremental/IncrementalPublisher.d.ts +3 -3
  107. package/execution/incremental/IncrementalPublisher.js +13 -14
  108. package/execution/incremental/IncrementalPublisher.js.map +1 -1
  109. package/execution/incremental/IncrementalPublisher.mjs +1 -2
  110. package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
  111. package/execution/incremental/Queue.d.mts +1 -1
  112. package/execution/incremental/Queue.d.ts +1 -1
  113. package/execution/incremental/Queue.js +26 -22
  114. package/execution/incremental/Queue.js.map +1 -1
  115. package/execution/incremental/Queue.mjs +10 -6
  116. package/execution/incremental/Queue.mjs.map +1 -1
  117. package/execution/incremental/WorkQueue.d.mts +2 -2
  118. package/execution/incremental/WorkQueue.d.ts +2 -2
  119. package/execution/incremental/WorkQueue.js +7 -7
  120. package/execution/incremental/WorkQueue.js.map +1 -1
  121. package/execution/incremental/WorkQueue.mjs.map +1 -1
  122. package/execution/incremental/buildExecutionPlan.d.mts +1 -1
  123. package/execution/incremental/buildExecutionPlan.d.ts +1 -1
  124. package/execution/incremental/buildExecutionPlan.js +4 -4
  125. package/execution/incremental/buildExecutionPlan.js.map +1 -1
  126. package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
  127. package/execution/index.d.mts +8 -8
  128. package/execution/index.d.ts +8 -8
  129. package/execution/index.js +23 -22
  130. package/execution/index.js.map +1 -1
  131. package/execution/index.mjs +1 -1
  132. package/execution/index.mjs.map +1 -1
  133. package/execution/mapAsyncIterable.d.mts +1 -1
  134. package/execution/mapAsyncIterable.d.ts +1 -1
  135. package/execution/mapAsyncIterable.js +4 -4
  136. package/execution/mapAsyncIterable.js.map +1 -1
  137. package/execution/mapAsyncIterable.mjs.map +1 -1
  138. package/execution/returnIteratorCatchingErrors.js +1 -1
  139. package/execution/returnIteratorCatchingErrors.js.map +1 -1
  140. package/execution/returnIteratorCatchingErrors.mjs +1 -1
  141. package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
  142. package/execution/values.d.mts +9 -9
  143. package/execution/values.d.ts +9 -9
  144. package/execution/values.js +34 -34
  145. package/execution/values.js.map +1 -1
  146. package/execution/values.mjs +2 -2
  147. package/execution/values.mjs.map +1 -1
  148. package/execution/withConcurrentAbruptClose.d.mts +1 -1
  149. package/execution/withConcurrentAbruptClose.d.ts +1 -1
  150. package/execution/withConcurrentAbruptClose.js +4 -4
  151. package/execution/withConcurrentAbruptClose.js.map +1 -1
  152. package/execution/withConcurrentAbruptClose.mjs +2 -2
  153. package/execution/withConcurrentAbruptClose.mjs.map +1 -1
  154. package/graphql.d.mts +7 -7
  155. package/graphql.d.ts +7 -7
  156. package/graphql.js +11 -11
  157. package/graphql.js.map +1 -1
  158. package/graphql.mjs.map +1 -1
  159. package/harness.d.mts +4 -4
  160. package/harness.d.ts +4 -4
  161. package/harness.js +7 -7
  162. package/harness.js.map +1 -1
  163. package/harness.mjs.map +1 -1
  164. package/index.d.mts +20 -20
  165. package/index.d.ts +20 -20
  166. package/index.js +253 -252
  167. package/index.js.map +1 -1
  168. package/index.mjs +1 -1
  169. package/index.mjs.map +1 -1
  170. package/jsutils/Path.d.mts +1 -1
  171. package/jsutils/Path.d.ts +1 -1
  172. package/jsutils/Path.js.map +1 -1
  173. package/jsutils/Path.mjs.map +1 -1
  174. package/jsutils/didYouMean.js +2 -2
  175. package/jsutils/didYouMean.js.map +1 -1
  176. package/jsutils/didYouMean.mjs.map +1 -1
  177. package/jsutils/formatList.js +2 -2
  178. package/jsutils/formatList.js.map +1 -1
  179. package/jsutils/formatList.mjs.map +1 -1
  180. package/jsutils/getBySet.js +2 -2
  181. package/jsutils/getBySet.js.map +1 -1
  182. package/jsutils/getBySet.mjs.map +1 -1
  183. package/jsutils/groupBy.js +2 -2
  184. package/jsutils/groupBy.js.map +1 -1
  185. package/jsutils/groupBy.mjs.map +1 -1
  186. package/jsutils/instanceOf.js +2 -2
  187. package/jsutils/instanceOf.js.map +1 -1
  188. package/jsutils/instanceOf.mjs.map +1 -1
  189. package/jsutils/keyMap.d.mts +1 -1
  190. package/jsutils/keyMap.d.ts +1 -1
  191. package/jsutils/keyMap.js.map +1 -1
  192. package/jsutils/keyMap.mjs.map +1 -1
  193. package/jsutils/keyValMap.d.mts +1 -1
  194. package/jsutils/keyValMap.d.ts +1 -1
  195. package/jsutils/keyValMap.js.map +1 -1
  196. package/jsutils/keyValMap.mjs.map +1 -1
  197. package/jsutils/mapValue.d.mts +1 -1
  198. package/jsutils/mapValue.d.ts +1 -1
  199. package/jsutils/mapValue.js.map +1 -1
  200. package/jsutils/mapValue.mjs.map +1 -1
  201. package/jsutils/promiseForObject.d.mts +2 -2
  202. package/jsutils/promiseForObject.d.ts +2 -2
  203. package/jsutils/promiseForObject.js.map +1 -1
  204. package/jsutils/promiseForObject.mjs.map +1 -1
  205. package/jsutils/promiseReduce.d.mts +1 -1
  206. package/jsutils/promiseReduce.d.ts +1 -1
  207. package/jsutils/promiseReduce.js +2 -2
  208. package/jsutils/promiseReduce.js.map +1 -1
  209. package/jsutils/promiseReduce.mjs.map +1 -1
  210. package/jsutils/promiseWithResolvers.d.mts +1 -1
  211. package/jsutils/promiseWithResolvers.d.ts +1 -1
  212. package/jsutils/promiseWithResolvers.js.map +1 -1
  213. package/jsutils/promiseWithResolvers.mjs.map +1 -1
  214. package/jsutils/suggestionList.js +2 -2
  215. package/jsutils/suggestionList.js.map +1 -1
  216. package/jsutils/suggestionList.mjs.map +1 -1
  217. package/jsutils/toError.js +2 -2
  218. package/jsutils/toError.js.map +1 -1
  219. package/jsutils/toError.mjs.map +1 -1
  220. package/jsutils/toObjMap.d.mts +2 -2
  221. package/jsutils/toObjMap.d.ts +2 -2
  222. package/jsutils/toObjMap.js.map +1 -1
  223. package/jsutils/toObjMap.mjs.map +1 -1
  224. package/language/KindTypeMap.d.mts +1 -1
  225. package/language/KindTypeMap.d.ts +1 -1
  226. package/language/KindTypeMap.js.map +1 -1
  227. package/language/KindTypeMap.mjs.map +1 -1
  228. package/language/ast.d.mts +12 -5
  229. package/language/ast.d.ts +12 -5
  230. package/language/ast.js +8 -1
  231. package/language/ast.js.map +1 -1
  232. package/language/ast.mjs +8 -1
  233. package/language/ast.mjs.map +1 -1
  234. package/language/blockString.js +4 -4
  235. package/language/blockString.js.map +1 -1
  236. package/language/blockString.mjs.map +1 -1
  237. package/language/directiveLocation.d.mts +2 -1
  238. package/language/directiveLocation.d.ts +2 -1
  239. package/language/directiveLocation.js +2 -1
  240. package/language/directiveLocation.js.map +1 -1
  241. package/language/directiveLocation.mjs +2 -1
  242. package/language/directiveLocation.mjs.map +1 -1
  243. package/language/index.d.mts +16 -16
  244. package/language/index.d.ts +16 -16
  245. package/language/index.js +45 -45
  246. package/language/index.js.map +1 -1
  247. package/language/index.mjs.map +1 -1
  248. package/language/kinds.d.mts +2 -2
  249. package/language/kinds.d.ts +2 -2
  250. package/language/kinds.js.map +1 -1
  251. package/language/kinds.mjs.map +1 -1
  252. package/language/kinds_.d.mts +2 -0
  253. package/language/kinds_.d.ts +2 -0
  254. package/language/kinds_.js +2 -1
  255. package/language/kinds_.js.map +1 -1
  256. package/language/kinds_.mjs +1 -0
  257. package/language/kinds_.mjs.map +1 -1
  258. package/language/lexer.d.mts +3 -3
  259. package/language/lexer.d.ts +3 -3
  260. package/language/lexer.js +67 -67
  261. package/language/lexer.js.map +1 -1
  262. package/language/lexer.mjs.map +1 -1
  263. package/language/location.d.mts +1 -1
  264. package/language/location.d.ts +1 -1
  265. package/language/location.js +2 -2
  266. package/language/location.js.map +1 -1
  267. package/language/location.mjs.map +1 -1
  268. package/language/parser.d.mts +20 -7
  269. package/language/parser.d.ts +20 -7
  270. package/language/parser.js +185 -155
  271. package/language/parser.js.map +1 -1
  272. package/language/parser.mjs +30 -0
  273. package/language/parser.mjs.map +1 -1
  274. package/language/predicates.d.mts +1 -1
  275. package/language/predicates.d.ts +1 -1
  276. package/language/predicates.js +45 -43
  277. package/language/predicates.js.map +1 -1
  278. package/language/predicates.mjs +3 -1
  279. package/language/predicates.mjs.map +1 -1
  280. package/language/printLocation.d.mts +3 -3
  281. package/language/printLocation.d.ts +3 -3
  282. package/language/printLocation.js +2 -2
  283. package/language/printLocation.js.map +1 -1
  284. package/language/printLocation.mjs.map +1 -1
  285. package/language/printer.d.mts +1 -1
  286. package/language/printer.d.ts +1 -1
  287. package/language/printer.js +10 -6
  288. package/language/printer.js.map +1 -1
  289. package/language/printer.mjs +5 -1
  290. package/language/printer.mjs.map +1 -1
  291. package/language/schemaCoordinateLexer.d.mts +3 -3
  292. package/language/schemaCoordinateLexer.d.ts +3 -3
  293. package/language/schemaCoordinateLexer.js +16 -16
  294. package/language/schemaCoordinateLexer.js.map +1 -1
  295. package/language/schemaCoordinateLexer.mjs.map +1 -1
  296. package/language/source.js +5 -5
  297. package/language/source.js.map +1 -1
  298. package/language/source.mjs.map +1 -1
  299. package/language/visitor.d.mts +2 -2
  300. package/language/visitor.d.ts +2 -2
  301. package/language/visitor.js +10 -10
  302. package/language/visitor.js.map +1 -1
  303. package/language/visitor.mjs.map +1 -1
  304. package/package.json +2 -2
  305. package/type/assertName.js +8 -8
  306. package/type/assertName.js.map +1 -1
  307. package/type/assertName.mjs.map +1 -1
  308. package/type/definition.d.mts +9 -9
  309. package/type/definition.d.ts +9 -9
  310. package/type/definition.js +94 -94
  311. package/type/definition.js.map +1 -1
  312. package/type/definition.mjs.map +1 -1
  313. package/type/directives.d.mts +11 -6
  314. package/type/directives.d.ts +11 -6
  315. package/type/directives.js +51 -46
  316. package/type/directives.js.map +1 -1
  317. package/type/directives.mjs +5 -0
  318. package/type/directives.mjs.map +1 -1
  319. package/type/index.d.mts +12 -12
  320. package/type/index.d.ts +12 -12
  321. package/type/index.js +106 -106
  322. package/type/index.js.map +1 -1
  323. package/type/index.mjs.map +1 -1
  324. package/type/introspection.d.mts +2 -2
  325. package/type/introspection.d.ts +2 -2
  326. package/type/introspection.js +123 -103
  327. package/type/introspection.js.map +1 -1
  328. package/type/introspection.mjs +25 -5
  329. package/type/introspection.mjs.map +1 -1
  330. package/type/scalars.d.mts +2 -2
  331. package/type/scalars.d.ts +2 -2
  332. package/type/scalars.js +61 -61
  333. package/type/scalars.js.map +1 -1
  334. package/type/scalars.mjs.map +1 -1
  335. package/type/schema.d.mts +7 -7
  336. package/type/schema.d.ts +7 -7
  337. package/type/schema.js +32 -32
  338. package/type/schema.js.map +1 -1
  339. package/type/schema.mjs.map +1 -1
  340. package/type/validate.d.mts +4 -4
  341. package/type/validate.d.ts +4 -4
  342. package/type/validate.js +83 -83
  343. package/type/validate.js.map +1 -1
  344. package/type/validate.mjs +1 -1
  345. package/type/validate.mjs.map +1 -1
  346. package/utilities/TypeInfo.d.mts +6 -6
  347. package/utilities/TypeInfo.d.ts +6 -6
  348. package/utilities/TypeInfo.js +61 -61
  349. package/utilities/TypeInfo.js.map +1 -1
  350. package/utilities/TypeInfo.mjs +1 -1
  351. package/utilities/TypeInfo.mjs.map +1 -1
  352. package/utilities/astFromValue.d.mts +3 -3
  353. package/utilities/astFromValue.d.ts +3 -3
  354. package/utilities/astFromValue.js +31 -33
  355. package/utilities/astFromValue.js.map +1 -1
  356. package/utilities/astFromValue.mjs +1 -3
  357. package/utilities/astFromValue.mjs.map +1 -1
  358. package/utilities/buildASTSchema.d.mts +5 -5
  359. package/utilities/buildASTSchema.d.ts +5 -5
  360. package/utilities/buildASTSchema.js +11 -10
  361. package/utilities/buildASTSchema.js.map +1 -1
  362. package/utilities/buildASTSchema.mjs +1 -0
  363. package/utilities/buildASTSchema.mjs.map +1 -1
  364. package/utilities/buildClientSchema.d.mts +3 -3
  365. package/utilities/buildClientSchema.d.ts +3 -3
  366. package/utilities/buildClientSchema.js +53 -52
  367. package/utilities/buildClientSchema.js.map +1 -1
  368. package/utilities/buildClientSchema.mjs +1 -0
  369. package/utilities/buildClientSchema.mjs.map +1 -1
  370. package/utilities/coerceInputValue.d.mts +5 -5
  371. package/utilities/coerceInputValue.d.ts +5 -5
  372. package/utilities/coerceInputValue.js +31 -31
  373. package/utilities/coerceInputValue.js.map +1 -1
  374. package/utilities/coerceInputValue.mjs.map +1 -1
  375. package/utilities/concatAST.d.mts +1 -1
  376. package/utilities/concatAST.d.ts +1 -1
  377. package/utilities/concatAST.js +2 -2
  378. package/utilities/concatAST.js.map +1 -1
  379. package/utilities/concatAST.mjs.map +1 -1
  380. package/utilities/extendSchema.d.mts +3 -3
  381. package/utilities/extendSchema.d.ts +3 -3
  382. package/utilities/extendSchema.js +92 -66
  383. package/utilities/extendSchema.js.map +1 -1
  384. package/utilities/extendSchema.mjs +27 -1
  385. package/utilities/extendSchema.mjs.map +1 -1
  386. package/utilities/findSchemaChanges.d.mts +1 -1
  387. package/utilities/findSchemaChanges.d.ts +1 -1
  388. package/utilities/findSchemaChanges.js +42 -44
  389. package/utilities/findSchemaChanges.js.map +1 -1
  390. package/utilities/findSchemaChanges.mjs +1 -3
  391. package/utilities/findSchemaChanges.mjs.map +1 -1
  392. package/utilities/getDefaultValueAST.d.mts +2 -2
  393. package/utilities/getDefaultValueAST.d.ts +2 -2
  394. package/utilities/getDefaultValueAST.js +9 -7
  395. package/utilities/getDefaultValueAST.js.map +1 -1
  396. package/utilities/getDefaultValueAST.mjs +2 -0
  397. package/utilities/getDefaultValueAST.mjs.map +1 -1
  398. package/utilities/getIntrospectionQuery.d.mts +19 -3
  399. package/utilities/getIntrospectionQuery.d.ts +19 -3
  400. package/utilities/getIntrospectionQuery.js +22 -38
  401. package/utilities/getIntrospectionQuery.js.map +1 -1
  402. package/utilities/getIntrospectionQuery.mjs +22 -38
  403. package/utilities/getIntrospectionQuery.mjs.map +1 -1
  404. package/utilities/getOperationAST.d.mts +2 -2
  405. package/utilities/getOperationAST.d.ts +2 -2
  406. package/utilities/getOperationAST.js +2 -2
  407. package/utilities/getOperationAST.js.map +1 -1
  408. package/utilities/getOperationAST.mjs.map +1 -1
  409. package/utilities/index.d.mts +28 -28
  410. package/utilities/index.d.ts +28 -28
  411. package/utilities/index.js +61 -61
  412. package/utilities/index.js.map +1 -1
  413. package/utilities/index.mjs.map +1 -1
  414. package/utilities/introspectionFromSchema.d.mts +2 -2
  415. package/utilities/introspectionFromSchema.d.ts +2 -2
  416. package/utilities/introspectionFromSchema.js +8 -7
  417. package/utilities/introspectionFromSchema.js.map +1 -1
  418. package/utilities/introspectionFromSchema.mjs +1 -0
  419. package/utilities/introspectionFromSchema.mjs.map +1 -1
  420. package/utilities/lexicographicSortSchema.d.mts +1 -1
  421. package/utilities/lexicographicSortSchema.d.ts +1 -1
  422. package/utilities/lexicographicSortSchema.js +14 -14
  423. package/utilities/lexicographicSortSchema.js.map +1 -1
  424. package/utilities/lexicographicSortSchema.mjs.map +1 -1
  425. package/utilities/mapSchemaConfig.d.mts +3 -3
  426. package/utilities/mapSchemaConfig.d.ts +3 -3
  427. package/utilities/mapSchemaConfig.js +29 -31
  428. package/utilities/mapSchemaConfig.js.map +1 -1
  429. package/utilities/mapSchemaConfig.mjs +1 -3
  430. package/utilities/mapSchemaConfig.mjs.map +1 -1
  431. package/utilities/printSchema.d.mts +3 -3
  432. package/utilities/printSchema.d.ts +3 -3
  433. package/utilities/printSchema.js +31 -32
  434. package/utilities/printSchema.js.map +1 -1
  435. package/utilities/printSchema.mjs +2 -3
  436. package/utilities/printSchema.mjs.map +1 -1
  437. package/utilities/replaceVariables.d.mts +4 -4
  438. package/utilities/replaceVariables.d.ts +4 -4
  439. package/utilities/replaceVariables.js +9 -9
  440. package/utilities/replaceVariables.js.map +1 -1
  441. package/utilities/replaceVariables.mjs.map +1 -1
  442. package/utilities/resolveSchemaCoordinate.d.mts +5 -5
  443. package/utilities/resolveSchemaCoordinate.d.ts +5 -5
  444. package/utilities/resolveSchemaCoordinate.js +23 -23
  445. package/utilities/resolveSchemaCoordinate.js.map +1 -1
  446. package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
  447. package/utilities/separateOperations.d.mts +2 -2
  448. package/utilities/separateOperations.d.ts +2 -2
  449. package/utilities/separateOperations.js +7 -7
  450. package/utilities/separateOperations.js.map +1 -1
  451. package/utilities/separateOperations.mjs.map +1 -1
  452. package/utilities/sortValueNode.d.mts +1 -1
  453. package/utilities/sortValueNode.d.ts +1 -1
  454. package/utilities/sortValueNode.js +12 -12
  455. package/utilities/sortValueNode.js.map +1 -1
  456. package/utilities/sortValueNode.mjs.map +1 -1
  457. package/utilities/stripIgnoredCharacters.d.mts +1 -1
  458. package/utilities/stripIgnoredCharacters.d.ts +1 -1
  459. package/utilities/stripIgnoredCharacters.js +11 -11
  460. package/utilities/stripIgnoredCharacters.js.map +1 -1
  461. package/utilities/stripIgnoredCharacters.mjs.map +1 -1
  462. package/utilities/typeComparators.d.mts +2 -2
  463. package/utilities/typeComparators.d.ts +2 -2
  464. package/utilities/typeComparators.js +14 -14
  465. package/utilities/typeComparators.js.map +1 -1
  466. package/utilities/typeComparators.mjs.map +1 -1
  467. package/utilities/typeFromAST.d.mts +4 -4
  468. package/utilities/typeFromAST.d.ts +4 -4
  469. package/utilities/typeFromAST.js +7 -7
  470. package/utilities/typeFromAST.js.map +1 -1
  471. package/utilities/typeFromAST.mjs.map +1 -1
  472. package/utilities/typedQueryDocumentNode.d.mts +1 -1
  473. package/utilities/typedQueryDocumentNode.d.ts +1 -1
  474. package/utilities/typedQueryDocumentNode.js.map +1 -1
  475. package/utilities/typedQueryDocumentNode.mjs.map +1 -1
  476. package/utilities/validateInputValue.d.mts +6 -6
  477. package/utilities/validateInputValue.d.ts +6 -6
  478. package/utilities/validateInputValue.js +60 -60
  479. package/utilities/validateInputValue.js.map +1 -1
  480. package/utilities/validateInputValue.mjs.map +1 -1
  481. package/utilities/valueFromAST.d.mts +4 -4
  482. package/utilities/valueFromAST.d.ts +4 -4
  483. package/utilities/valueFromAST.js +20 -22
  484. package/utilities/valueFromAST.js.map +1 -1
  485. package/utilities/valueFromAST.mjs +1 -3
  486. package/utilities/valueFromAST.mjs.map +1 -1
  487. package/utilities/valueFromASTUntyped.d.mts +3 -3
  488. package/utilities/valueFromASTUntyped.d.ts +3 -3
  489. package/utilities/valueFromASTUntyped.js +12 -12
  490. package/utilities/valueFromASTUntyped.js.map +1 -1
  491. package/utilities/valueFromASTUntyped.mjs.map +1 -1
  492. package/utilities/valueToLiteral.d.mts +2 -2
  493. package/utilities/valueToLiteral.d.ts +2 -2
  494. package/utilities/valueToLiteral.js +30 -30
  495. package/utilities/valueToLiteral.js.map +1 -1
  496. package/utilities/valueToLiteral.mjs.map +1 -1
  497. package/validation/ValidationContext.d.mts +9 -9
  498. package/validation/ValidationContext.d.ts +9 -9
  499. package/validation/ValidationContext.js +8 -8
  500. package/validation/ValidationContext.js.map +1 -1
  501. package/validation/ValidationContext.mjs.map +1 -1
  502. package/validation/index.d.mts +46 -46
  503. package/validation/index.d.ts +46 -46
  504. package/validation/index.js +91 -91
  505. package/validation/index.js.map +1 -1
  506. package/validation/index.mjs.map +1 -1
  507. package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +2 -2
  508. package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +2 -2
  509. package/validation/rules/DeferStreamDirectiveLabelRule.js +9 -9
  510. package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
  511. package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
  512. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +2 -2
  513. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +2 -2
  514. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +8 -8
  515. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
  516. package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
  517. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +2 -2
  518. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +2 -2
  519. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +14 -14
  520. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
  521. package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
  522. package/validation/rules/ExecutableDefinitionsRule.d.mts +2 -2
  523. package/validation/rules/ExecutableDefinitionsRule.d.ts +2 -2
  524. package/validation/rules/ExecutableDefinitionsRule.js +7 -7
  525. package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
  526. package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
  527. package/validation/rules/FieldsOnCorrectTypeRule.d.mts +2 -2
  528. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +2 -2
  529. package/validation/rules/FieldsOnCorrectTypeRule.js +14 -14
  530. package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
  531. package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
  532. package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +2 -2
  533. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +2 -2
  534. package/validation/rules/FragmentsOnCompositeTypesRule.js +12 -12
  535. package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
  536. package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
  537. package/validation/rules/KnownArgumentNamesRule.d.mts +2 -2
  538. package/validation/rules/KnownArgumentNamesRule.d.ts +2 -2
  539. package/validation/rules/KnownArgumentNamesRule.js +16 -16
  540. package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
  541. package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
  542. package/validation/rules/KnownDirectivesRule.d.mts +2 -2
  543. package/validation/rules/KnownDirectivesRule.d.ts +2 -2
  544. package/validation/rules/KnownDirectivesRule.js +67 -64
  545. package/validation/rules/KnownDirectivesRule.js.map +1 -1
  546. package/validation/rules/KnownDirectivesRule.mjs +4 -1
  547. package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
  548. package/validation/rules/KnownFragmentNamesRule.d.mts +2 -2
  549. package/validation/rules/KnownFragmentNamesRule.d.ts +2 -2
  550. package/validation/rules/KnownFragmentNamesRule.js +2 -2
  551. package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
  552. package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
  553. package/validation/rules/KnownOperationTypesRule.d.mts +2 -2
  554. package/validation/rules/KnownOperationTypesRule.d.ts +2 -2
  555. package/validation/rules/KnownOperationTypesRule.js +2 -2
  556. package/validation/rules/KnownOperationTypesRule.js.map +1 -1
  557. package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
  558. package/validation/rules/KnownTypeNamesRule.d.mts +2 -2
  559. package/validation/rules/KnownTypeNamesRule.d.ts +2 -2
  560. package/validation/rules/KnownTypeNamesRule.js +11 -11
  561. package/validation/rules/KnownTypeNamesRule.js.map +1 -1
  562. package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
  563. package/validation/rules/LoneAnonymousOperationRule.d.mts +2 -2
  564. package/validation/rules/LoneAnonymousOperationRule.d.ts +2 -2
  565. package/validation/rules/LoneAnonymousOperationRule.js +4 -4
  566. package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
  567. package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
  568. package/validation/rules/LoneSchemaDefinitionRule.d.mts +2 -2
  569. package/validation/rules/LoneSchemaDefinitionRule.d.ts +2 -2
  570. package/validation/rules/LoneSchemaDefinitionRule.js +3 -3
  571. package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
  572. package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
  573. package/validation/rules/MaxIntrospectionDepthRule.d.mts +2 -2
  574. package/validation/rules/MaxIntrospectionDepthRule.d.ts +2 -2
  575. package/validation/rules/MaxIntrospectionDepthRule.js +5 -5
  576. package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
  577. package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
  578. package/validation/rules/NoFragmentCyclesRule.d.mts +2 -2
  579. package/validation/rules/NoFragmentCyclesRule.d.ts +2 -2
  580. package/validation/rules/NoFragmentCyclesRule.js +2 -2
  581. package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
  582. package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
  583. package/validation/rules/NoUndefinedVariablesRule.d.mts +2 -2
  584. package/validation/rules/NoUndefinedVariablesRule.d.ts +2 -2
  585. package/validation/rules/NoUndefinedVariablesRule.js +2 -2
  586. package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
  587. package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
  588. package/validation/rules/NoUnusedFragmentsRule.d.mts +2 -2
  589. package/validation/rules/NoUnusedFragmentsRule.d.ts +2 -2
  590. package/validation/rules/NoUnusedFragmentsRule.js +2 -2
  591. package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
  592. package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
  593. package/validation/rules/NoUnusedVariablesRule.d.mts +2 -2
  594. package/validation/rules/NoUnusedVariablesRule.d.ts +2 -2
  595. package/validation/rules/NoUnusedVariablesRule.js +3 -3
  596. package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
  597. package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
  598. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +2 -2
  599. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +2 -2
  600. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +31 -31
  601. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
  602. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
  603. package/validation/rules/PossibleFragmentSpreadsRule.d.mts +2 -2
  604. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +2 -2
  605. package/validation/rules/PossibleFragmentSpreadsRule.js +17 -17
  606. package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
  607. package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
  608. package/validation/rules/PossibleTypeExtensionsRule.d.mts +2 -2
  609. package/validation/rules/PossibleTypeExtensionsRule.d.ts +2 -2
  610. package/validation/rules/PossibleTypeExtensionsRule.js +40 -42
  611. package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
  612. package/validation/rules/PossibleTypeExtensionsRule.mjs +2 -4
  613. package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
  614. package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +2 -2
  615. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +2 -2
  616. package/validation/rules/ProvidedRequiredArgumentsRule.js +20 -20
  617. package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
  618. package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
  619. package/validation/rules/ScalarLeafsRule.d.mts +2 -2
  620. package/validation/rules/ScalarLeafsRule.d.ts +2 -2
  621. package/validation/rules/ScalarLeafsRule.js +10 -10
  622. package/validation/rules/ScalarLeafsRule.js.map +1 -1
  623. package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
  624. package/validation/rules/SingleFieldSubscriptionsRule.d.mts +2 -2
  625. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +2 -2
  626. package/validation/rules/SingleFieldSubscriptionsRule.js +8 -8
  627. package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
  628. package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
  629. package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +2 -2
  630. package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +2 -2
  631. package/validation/rules/StreamDirectiveOnListFieldRule.js +7 -7
  632. package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
  633. package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
  634. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +2 -2
  635. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +2 -2
  636. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +4 -4
  637. package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
  638. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
  639. package/validation/rules/UniqueArgumentNamesRule.d.mts +2 -2
  640. package/validation/rules/UniqueArgumentNamesRule.d.ts +2 -2
  641. package/validation/rules/UniqueArgumentNamesRule.js +4 -4
  642. package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
  643. package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
  644. package/validation/rules/UniqueDirectiveNamesRule.d.mts +2 -2
  645. package/validation/rules/UniqueDirectiveNamesRule.d.ts +2 -2
  646. package/validation/rules/UniqueDirectiveNamesRule.js +3 -3
  647. package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
  648. package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
  649. package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +2 -2
  650. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +2 -2
  651. package/validation/rules/UniqueDirectivesPerLocationRule.js +20 -10
  652. package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
  653. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +10 -0
  654. package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
  655. package/validation/rules/UniqueEnumValueNamesRule.d.mts +2 -2
  656. package/validation/rules/UniqueEnumValueNamesRule.d.ts +2 -2
  657. package/validation/rules/UniqueEnumValueNamesRule.js +5 -5
  658. package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
  659. package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
  660. package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +2 -2
  661. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +2 -2
  662. package/validation/rules/UniqueFieldDefinitionNamesRule.js +5 -5
  663. package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
  664. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
  665. package/validation/rules/UniqueFragmentNamesRule.d.mts +2 -2
  666. package/validation/rules/UniqueFragmentNamesRule.d.ts +2 -2
  667. package/validation/rules/UniqueFragmentNamesRule.js +2 -2
  668. package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
  669. package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
  670. package/validation/rules/UniqueInputFieldNamesRule.d.mts +2 -2
  671. package/validation/rules/UniqueInputFieldNamesRule.d.ts +2 -2
  672. package/validation/rules/UniqueInputFieldNamesRule.js +4 -4
  673. package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
  674. package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
  675. package/validation/rules/UniqueOperationNamesRule.d.mts +2 -2
  676. package/validation/rules/UniqueOperationNamesRule.d.ts +2 -2
  677. package/validation/rules/UniqueOperationNamesRule.js +2 -2
  678. package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
  679. package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
  680. package/validation/rules/UniqueOperationTypesRule.d.mts +2 -2
  681. package/validation/rules/UniqueOperationTypesRule.d.ts +2 -2
  682. package/validation/rules/UniqueOperationTypesRule.js +3 -3
  683. package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
  684. package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
  685. package/validation/rules/UniqueTypeNamesRule.d.mts +2 -2
  686. package/validation/rules/UniqueTypeNamesRule.d.ts +2 -2
  687. package/validation/rules/UniqueTypeNamesRule.js +3 -3
  688. package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
  689. package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
  690. package/validation/rules/UniqueVariableNamesRule.d.mts +2 -2
  691. package/validation/rules/UniqueVariableNamesRule.d.ts +2 -2
  692. package/validation/rules/UniqueVariableNamesRule.js +4 -4
  693. package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
  694. package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
  695. package/validation/rules/ValuesOfCorrectTypeRule.d.mts +2 -2
  696. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +2 -2
  697. package/validation/rules/ValuesOfCorrectTypeRule.js +2 -2
  698. package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
  699. package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
  700. package/validation/rules/VariablesAreInputTypesRule.d.mts +2 -2
  701. package/validation/rules/VariablesAreInputTypesRule.d.ts +2 -2
  702. package/validation/rules/VariablesAreInputTypesRule.js +8 -8
  703. package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
  704. package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
  705. package/validation/rules/VariablesInAllowedPositionRule.d.mts +2 -2
  706. package/validation/rules/VariablesInAllowedPositionRule.d.ts +2 -2
  707. package/validation/rules/VariablesInAllowedPositionRule.js +14 -14
  708. package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
  709. package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
  710. package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +2 -2
  711. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +2 -2
  712. package/validation/rules/custom/NoDeprecatedCustomRule.js +8 -8
  713. package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
  714. package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
  715. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +2 -2
  716. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +2 -2
  717. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +6 -6
  718. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
  719. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
  720. package/validation/specifiedRules.d.mts +1 -1
  721. package/validation/specifiedRules.d.ts +1 -1
  722. package/validation/specifiedRules.js +87 -87
  723. package/validation/specifiedRules.js.map +1 -1
  724. package/validation/specifiedRules.mjs.map +1 -1
  725. package/validation/validate.d.mts +5 -5
  726. package/validation/validate.d.ts +5 -5
  727. package/validation/validate.js +19 -19
  728. package/validation/validate.js.map +1 -1
  729. package/validation/validate.mjs.map +1 -1
  730. package/version.js +2 -2
  731. package/version.js.map +1 -1
  732. package/version.mjs +2 -2
  733. package/version.mjs.map +1 -1
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Queue = void 0;
4
- const invariant_js_1 = require("../../jsutils/invariant.js");
5
- const isPromise_js_1 = require("../../jsutils/isPromise.js");
6
- const promiseWithResolvers_js_1 = require("../../jsutils/promiseWithResolvers.js");
7
- const withConcurrentAbruptClose_js_1 = require("../withConcurrentAbruptClose.js");
4
+ const invariant_ts_1 = require("../../jsutils/invariant.js");
5
+ const isPromise_ts_1 = require("../../jsutils/isPromise.js");
6
+ const promiseWithResolvers_ts_1 = require("../../jsutils/promiseWithResolvers.js");
7
+ const withConcurrentAbruptClose_ts_1 = require("../withConcurrentAbruptClose.js");
8
8
  /**
9
9
  * A Queue is a lightweight async-generator primitive inspired by Brian Kim's
10
10
  * Repeater (https://repeater.js.org, https://github.com/repeaterjs/repeater).
@@ -62,7 +62,7 @@ class Queue {
62
62
  this._capacity = this._normalizeCapacity(initialCapacity);
63
63
  const { promise: started, resolve: resolveStarted } =
64
64
  // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
65
- (0, promiseWithResolvers_js_1.promiseWithResolvers)();
65
+ (0, promiseWithResolvers_ts_1.promiseWithResolvers)();
66
66
  this._resolveStarted = resolveStarted;
67
67
  try {
68
68
  const result = executor({
@@ -71,20 +71,21 @@ class Queue {
71
71
  onStop: this._onStop.bind(this),
72
72
  started,
73
73
  });
74
- if ((0, isPromise_js_1.isPromise)(result)) {
75
- result.catch((error) => this._stop(error));
74
+ if ((0, isPromise_ts_1.isPromise)(result)) {
75
+ result.catch(this._stop.bind(this));
76
76
  }
77
77
  }
78
78
  catch (error) {
79
79
  const stopped = this._stop(error);
80
- if ((0, isPromise_js_1.isPromise)(stopped)) {
80
+ if ((0, isPromise_ts_1.isPromise)(stopped)) {
81
+ /* node:coverage ignore next */
81
82
  stopped.catch(() => undefined);
82
83
  }
83
84
  }
84
85
  }
85
86
  subscribe(reducer = (generator) => Array.from(generator)) {
86
87
  const generator = this._iteratorLoop(reducer);
87
- return (0, withConcurrentAbruptClose_js_1.withConcurrentAbruptClose)(generator, () => this.cancel(), (error) => this.abort(error));
88
+ return (0, withConcurrentAbruptClose_ts_1.withConcurrentAbruptClose)(generator, () => this.cancel(), this.abort.bind(this));
88
89
  }
89
90
  cancel() {
90
91
  if (this._stopRequested) {
@@ -118,16 +119,18 @@ class Queue {
118
119
  const sub = this.subscribe(async (generator) => {
119
120
  const { promise: drained, resolve } =
120
121
  // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
121
- (0, promiseWithResolvers_js_1.promiseWithResolvers)();
122
+ (0, promiseWithResolvers_ts_1.promiseWithResolvers)();
122
123
  const wrappedBatch = (function* wrapper() {
123
124
  yield* generator;
124
125
  resolve();
125
126
  })();
126
127
  await Promise.all([reducer(wrappedBatch), drained]);
127
128
  });
128
- for await (const _ of sub /* c8 ignore start */) {
129
+ // Empty loop body is intentionally used to drain the subscription.
130
+ /* node:coverage ignore next 3 */
131
+ for await (const _ of sub) {
129
132
  // intentionally empty
130
- } /* c8 ignore stop */
133
+ }
131
134
  }
132
135
  setCapacity(nextCapacity) {
133
136
  this._capacity = this._normalizeCapacity(nextCapacity);
@@ -153,7 +156,7 @@ class Queue {
153
156
  return undefined;
154
157
  }
155
158
  // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
156
- const { promise, resolve } = (0, promiseWithResolvers_js_1.promiseWithResolvers)();
159
+ const { promise, resolve } = (0, promiseWithResolvers_ts_1.promiseWithResolvers)();
157
160
  this._waiters.push(resolve);
158
161
  return promise;
159
162
  }
@@ -174,17 +177,17 @@ class Queue {
174
177
  const cleanupPromises = this._stopCleanupCallbacks.flatMap((cleanupCallback) => {
175
178
  try {
176
179
  const result = cleanupCallback(reason);
177
- return (0, isPromise_js_1.isPromise)(result) ? [result] : [];
178
- } /* c8 ignore start */
180
+ return (0, isPromise_ts_1.isPromise)(result) ? [result] : [];
181
+ }
179
182
  catch {
180
183
  // ignore errors
181
184
  return [];
182
- } /* c8 ignore stop */
185
+ }
183
186
  });
184
187
  const cleanup = cleanupPromises.length > 0
185
188
  ? Promise.allSettled(cleanupPromises).then(() => undefined)
186
189
  : undefined;
187
- if ((0, isPromise_js_1.isPromise)(cleanup)) {
190
+ if ((0, isPromise_ts_1.isPromise)(cleanup)) {
188
191
  this._stopCompletion = cleanup
189
192
  .then(afterCleanup, afterCleanup)
190
193
  .then(() => undefined);
@@ -198,7 +201,7 @@ class Queue {
198
201
  // eslint-disable-next-line no-await-in-loop
199
202
  while ((nextBatch = await this._waitForNextBatch())) {
200
203
  let reduced = reducer(nextBatch);
201
- if ((0, isPromise_js_1.isPromise)(reduced)) {
204
+ if ((0, isPromise_ts_1.isPromise)(reduced)) {
202
205
  // eslint-disable-next-line no-await-in-loop
203
206
  reduced = await reduced;
204
207
  }
@@ -209,7 +212,7 @@ class Queue {
209
212
  }
210
213
  }
211
214
  _waitForNextBatch() {
212
- const { promise, resolve, reject } = (0, promiseWithResolvers_js_1.promiseWithResolvers)();
215
+ const { promise, resolve, reject } = (0, promiseWithResolvers_ts_1.promiseWithResolvers)();
213
216
  this._batchRequests.add({ resolve, reject });
214
217
  this._deliverBatchIfReady();
215
218
  return promise;
@@ -219,7 +222,7 @@ class Queue {
219
222
  return;
220
223
  }
221
224
  const maybePushPromise = this._reserve();
222
- if ((0, isPromise_js_1.isPromise)(item)) {
225
+ if ((0, isPromise_ts_1.isPromise)(item)) {
223
226
  const entry = { kind: 'item' };
224
227
  this._entries.push(entry);
225
228
  item.then((resolved) => {
@@ -270,7 +273,8 @@ class Queue {
270
273
  this._entries.push({ kind: 'stop' });
271
274
  this._deliverBatchIfReady();
272
275
  });
273
- if ((0, isPromise_js_1.isPromise)(stopCompletion)) {
276
+ if ((0, isPromise_ts_1.isPromise)(stopCompletion)) {
277
+ /* node:coverage ignore next */
274
278
  stopCompletion.catch(() => undefined);
275
279
  }
276
280
  return stopCompletion;
@@ -285,7 +289,7 @@ class Queue {
285
289
  if (!(headEntry.kind !== 'stop'))
286
290
  (0,
287
291
  // stop sentinel always follows other work
288
- invariant_js_1.invariant)(false);
292
+ invariant_ts_1.invariant)(false);
289
293
  const settled = headEntry.settled;
290
294
  if (settled !== undefined) {
291
295
  if (settled.status === 'fulfilled') {
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/execution/incremental/Queue.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../jsutils/invariant.js';\nimport { isPromise } from '../../jsutils/isPromise.js';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.js';\nimport { promiseWithResolvers } from '../../jsutils/promiseWithResolvers.js';\n\nimport { withConcurrentAbruptClose } from '../withConcurrentAbruptClose.js';\n\ntype Settled<T> =\n | { status: 'fulfilled'; value: T }\n | { status: 'rejected'; reason: unknown };\n\ninterface ItemEntry<T> {\n kind: 'item';\n settled?: Settled<T>;\n}\n\ninterface StopEntry {\n kind: 'stop';\n}\n\ntype Entry<T> = ItemEntry<T> | StopEntry;\n\ninterface BatchRequest<T> {\n resolve: (generator: Generator<T> | undefined) => void;\n reject: (reason: unknown) => void;\n}\n\ninterface QueueExecutorOptions<T> {\n push: (item: PromiseOrValue<T>) => PromiseOrValue<void>;\n stop: (reason?: unknown) => PromiseOrValue<void>;\n onStop: (cleanup: (reason?: unknown) => PromiseOrValue<void>) => void;\n started: Promise<void>;\n}\n\n/**\n * A Queue is a lightweight async-generator primitive inspired by Brian Kim's\n * Repeater (https://repeater.js.org, https://github.com/repeaterjs/repeater).\n * The ergonomics are similar, but this implementation favors clarity over\n * performance and gives producers flexibility to remain lazy, become eager, or\n * live somewhere in between.\n *\n * The constructor takes an executor function and an optional `initialCapacity`.\n * Executors receive `{ push, stop, onStop, started }` and may return `void` or\n * a promise if they perform asynchronous setup. They call `push` whenever\n * another item is ready, call `stop` when no more values will be produced\n * (optionally supplying an error), register stop-time cleanup via `onStop`,\n * and await `started` when setup should run only after iteration begins.\n * Because `push`, `stop`, and `onStop` are plain functions, executors can\n * hoist them into outside scopes or pass them to helpers. If the executor\n * throws or its returned promise rejects, the queue treats it as `stop(error)`\n * and propagates the failure.\n *\n * The `initialCapacity` argument (default `1`) governs backpressure. Capacity\n * is the maximum number of buffered items allowed before a push must wait.\n * When the backlog reaches capacity, `push` returns a promise that settles\n * once consumption releases space; otherwise it returns `undefined`. Setting\n * capacity to `1` yields a fully lazy queue (every push waits unless a prior\n * item has been consumed); higher capacities buffer that many items eagerly.\n * Capacity can be changed later via `setCapacity` and observed via\n * `getCapacity`.\n *\n * `subscribe(reducer)` returns an async generator whose batches feed a generator\n * of settled values into the reducer; whatever the reducer returns (other than\n * `undefined`) becomes the yielded value for that batch. Calling `return()` on\n * the subscription settles pending `next` calls thanks to `withConcurrent`,\n * providing direct abort semantics rather than leaving `next()` suspended.\n *\n * 'forEachBatch(reducer)` is a convenience method that subscribes with the\n * given reducer and runs it for each batch until the queue stops.\n *\n * Producers can stay lazy by awaiting `started`, using zero capacity, and\n * awaiting each `push`. Skipping those waits while raising capacity makes the\n * queue eager up to its configured limit. The `isStopped()` helper exposes\n * whether the queue has fully stopped, which can be useful when the reducer\n * function actually performs external work and wants to bail early without\n * awaiting another `next`.\n *\n * @internal\n */\nexport class Queue<T> {\n private _capacity: number;\n private _backlog = 0;\n private _waiters: Array<() => void> = [];\n private _entries: Array<Entry<T>> = [];\n private _isStopped = false;\n private _stopRequested = false;\n private _stopCleanupCallbacks: Array<\n (reason?: unknown) => PromiseOrValue<void>\n > = [];\n private _stopCompletion: Promise<void> | undefined;\n private _batchRequests = new Set<BatchRequest<T>>();\n\n private _resolveStarted: () => void;\n\n constructor(\n executor: ({\n push,\n stop,\n onStop,\n started,\n }: QueueExecutorOptions<T>) => PromiseOrValue<void>,\n initialCapacity = 1,\n ) {\n this._capacity = this._normalizeCapacity(initialCapacity);\n\n const { promise: started, resolve: resolveStarted } =\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n promiseWithResolvers<void>();\n\n this._resolveStarted = resolveStarted;\n\n try {\n const result = executor({\n push: this._push.bind(this),\n stop: this._stop.bind(this),\n onStop: this._onStop.bind(this),\n started,\n });\n if (isPromise(result)) {\n result.catch((error: unknown) => this._stop(error));\n }\n } catch (error) {\n const stopped = this._stop(error);\n if (isPromise(stopped)) {\n stopped.catch(() => undefined);\n }\n }\n }\n\n subscribe<U>(\n reducer: (\n generator: Generator<T, void, void>,\n ) => PromiseOrValue<U | undefined> = (generator) =>\n Array.from(generator) as U,\n ): AsyncGenerator<U, void, void> {\n const generator = this._iteratorLoop(reducer);\n return withConcurrentAbruptClose(\n generator,\n () => this.cancel(),\n (error) => this.abort(error),\n );\n }\n\n cancel(): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n return this._terminate(undefined, () => {\n this._isStopped = true;\n this._batchRequests.forEach((request) => request.resolve(undefined));\n this._batchRequests.clear();\n });\n }\n\n abort(reason?: unknown): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n return this._terminate(reason, () => {\n this._isStopped = true;\n if (this._batchRequests.size) {\n this._batchRequests.forEach((request) => request.reject(reason));\n this._batchRequests.clear();\n return;\n }\n // save rejection for later batch requests\n this._entries.push({\n kind: 'item',\n settled: { status: 'rejected', reason },\n });\n });\n }\n\n async forEachBatch(\n reducer: (generator: Generator<T, void, void>) => PromiseOrValue<void>,\n ): Promise<void> {\n const sub = this.subscribe(async (generator) => {\n const { promise: drained, resolve } =\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n promiseWithResolvers<void>();\n\n const wrappedBatch = (function* wrapper(): Generator<T> {\n yield* generator;\n resolve();\n })();\n\n await Promise.all([reducer(wrappedBatch), drained]);\n });\n\n for await (const _ of sub /* c8 ignore start */) {\n // intentionally empty\n } /* c8 ignore stop */\n }\n\n setCapacity(nextCapacity: number): void {\n this._capacity = this._normalizeCapacity(nextCapacity);\n this._flush();\n }\n\n getCapacity(): number {\n return this._capacity;\n }\n\n isStopped(): boolean {\n return this._isStopped;\n }\n\n private _normalizeCapacity(capacity: number): number {\n return Math.max(1, Math.floor(capacity));\n }\n\n private _flush(): void {\n while (this._waiters.length > 0 && this._backlog < this._capacity) {\n this._waiters.shift()?.();\n }\n }\n\n private _reserve(): PromiseOrValue<void> {\n this._backlog += 1;\n if (this._backlog < this._capacity) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n const { promise, resolve } = promiseWithResolvers<void>();\n this._waiters.push(resolve);\n return promise;\n }\n\n private _release(): void {\n if (this._backlog > 0) {\n this._backlog -= 1;\n }\n this._flush();\n }\n\n private _onStop(cleanup: (reason?: unknown) => PromiseOrValue<void>): void {\n if (this._stopRequested) {\n throw new Error(\n 'Cannot register onStop cleanup after stop has been requested.',\n );\n }\n this._stopCleanupCallbacks.push(cleanup);\n }\n\n private _runStopCleanup(\n reason: unknown,\n afterCleanup: () => void,\n ): PromiseOrValue<void> {\n this._stopRequested = true;\n const cleanupPromises = this._stopCleanupCallbacks.flatMap(\n (cleanupCallback): Array<Promise<unknown>> => {\n try {\n const result = cleanupCallback(reason);\n return isPromise(result) ? [result] : [];\n } /* c8 ignore start */ catch {\n // ignore errors\n return [];\n } /* c8 ignore stop */\n },\n );\n const cleanup =\n cleanupPromises.length > 0\n ? Promise.allSettled(cleanupPromises).then(() => undefined)\n : undefined;\n if (isPromise(cleanup)) {\n this._stopCompletion = cleanup\n .then(afterCleanup, afterCleanup)\n .then(() => undefined);\n return this._stopCompletion;\n }\n afterCleanup();\n }\n\n private async *_iteratorLoop<U>(\n reducer: (\n generator: Generator<T, void, void>,\n ) => PromiseOrValue<U | undefined>,\n ): AsyncGenerator<U, void, void> {\n this._resolveStarted();\n let nextBatch: Generator<T> | undefined;\n // eslint-disable-next-line no-await-in-loop\n while ((nextBatch = await this._waitForNextBatch())) {\n let reduced = reducer(nextBatch);\n if (isPromise(reduced)) {\n // eslint-disable-next-line no-await-in-loop\n reduced = await reduced;\n }\n if (reduced === undefined) {\n continue;\n }\n yield reduced;\n }\n }\n\n private _waitForNextBatch(): Promise<Generator<T> | undefined> {\n const { promise, resolve, reject } = promiseWithResolvers<\n Generator<T> | undefined\n >();\n this._batchRequests.add({ resolve, reject });\n this._deliverBatchIfReady();\n return promise;\n }\n\n private _push(item: PromiseOrValue<T>): PromiseOrValue<void> {\n if (this._stopRequested) {\n return;\n }\n const maybePushPromise = this._reserve();\n if (isPromise(item)) {\n const entry: ItemEntry<T> = { kind: 'item' };\n this._entries.push(entry);\n item.then(\n (resolved) => {\n entry.settled = { status: 'fulfilled', value: resolved };\n this._deliverBatchIfReady();\n },\n (reason: unknown) => {\n entry.settled = { status: 'rejected', reason };\n this._deliverBatchIfReady();\n },\n );\n } else {\n this._entries.push({\n kind: 'item',\n settled: { status: 'fulfilled', value: item },\n });\n this._deliverBatchIfReady();\n }\n return maybePushPromise;\n }\n\n private _terminate(\n reason: unknown,\n afterCleanup: () => void,\n ): PromiseOrValue<void> {\n for (const entry of this._entries) {\n if (entry.kind === 'item') {\n this._release();\n }\n }\n this._entries.length = 0;\n return this._runStopCleanup(reason, afterCleanup);\n }\n\n private _stop(reason?: unknown): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n const stopCompletion = this._runStopCleanup(reason, () => {\n if (reason === undefined) {\n if (this._entries.length === 0) {\n this._isStopped = true;\n this._deliverBatchIfReady();\n return;\n }\n\n this._entries.push({ kind: 'stop' });\n this._deliverBatchIfReady();\n return;\n }\n\n this._entries.push({\n kind: 'item',\n settled: { status: 'rejected', reason },\n });\n this._entries.push({ kind: 'stop' });\n this._deliverBatchIfReady();\n });\n\n if (isPromise(stopCompletion)) {\n stopCompletion.catch(() => undefined);\n }\n return stopCompletion;\n }\n\n private _deliverBatchIfReady(): void {\n if (!this._batchRequests.size) {\n return;\n }\n const headEntry = this._entries[0];\n const requests = this._batchRequests;\n if (headEntry !== undefined) {\n // stop sentinel always follows other work\n invariant(headEntry.kind !== 'stop');\n\n const settled = headEntry.settled;\n if (settled !== undefined) {\n if (settled.status === 'fulfilled') {\n this._batchRequests = new Set();\n requests.forEach((request) => request.resolve(this._drainBatch()));\n return;\n }\n this._entries.shift();\n this._release();\n this._isStopped = true;\n this._batchRequests = new Set();\n requests.forEach((request) => request.reject(settled.reason));\n }\n } else if (this._isStopped) {\n this._batchRequests = new Set();\n requests.forEach((request) => request.resolve(undefined));\n }\n }\n\n private *_drainBatch(): Generator<T> {\n while (true) {\n const entry = this._entries[0];\n if (entry === undefined) {\n return;\n }\n if (entry.kind === 'stop') {\n this._isStopped = true;\n this._entries.shift();\n return;\n }\n const settled = entry.settled;\n if (settled === undefined || settled.status === 'rejected') {\n return;\n }\n this._entries.shift();\n this._release();\n yield settled.value;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/execution/incremental/Queue.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../jsutils/invariant.ts';\nimport { isPromise } from '../../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.ts';\nimport { promiseWithResolvers } from '../../jsutils/promiseWithResolvers.ts';\n\nimport { withConcurrentAbruptClose } from '../withConcurrentAbruptClose.ts';\n\ntype Settled<T> =\n | { status: 'fulfilled'; value: T }\n | { status: 'rejected'; reason: unknown };\n\ninterface ItemEntry<T> {\n kind: 'item';\n settled?: Settled<T>;\n}\n\ninterface StopEntry {\n kind: 'stop';\n}\n\ntype Entry<T> = ItemEntry<T> | StopEntry;\n\ninterface BatchRequest<T> {\n resolve: (generator: Generator<T> | undefined) => void;\n reject: (reason: unknown) => void;\n}\n\ninterface QueueExecutorOptions<T> {\n push: (item: PromiseOrValue<T>) => PromiseOrValue<void>;\n stop: (reason?: unknown) => PromiseOrValue<void>;\n onStop: (cleanup: (reason?: unknown) => PromiseOrValue<void>) => void;\n started: Promise<void>;\n}\n\n/**\n * A Queue is a lightweight async-generator primitive inspired by Brian Kim's\n * Repeater (https://repeater.js.org, https://github.com/repeaterjs/repeater).\n * The ergonomics are similar, but this implementation favors clarity over\n * performance and gives producers flexibility to remain lazy, become eager, or\n * live somewhere in between.\n *\n * The constructor takes an executor function and an optional `initialCapacity`.\n * Executors receive `{ push, stop, onStop, started }` and may return `void` or\n * a promise if they perform asynchronous setup. They call `push` whenever\n * another item is ready, call `stop` when no more values will be produced\n * (optionally supplying an error), register stop-time cleanup via `onStop`,\n * and await `started` when setup should run only after iteration begins.\n * Because `push`, `stop`, and `onStop` are plain functions, executors can\n * hoist them into outside scopes or pass them to helpers. If the executor\n * throws or its returned promise rejects, the queue treats it as `stop(error)`\n * and propagates the failure.\n *\n * The `initialCapacity` argument (default `1`) governs backpressure. Capacity\n * is the maximum number of buffered items allowed before a push must wait.\n * When the backlog reaches capacity, `push` returns a promise that settles\n * once consumption releases space; otherwise it returns `undefined`. Setting\n * capacity to `1` yields a fully lazy queue (every push waits unless a prior\n * item has been consumed); higher capacities buffer that many items eagerly.\n * Capacity can be changed later via `setCapacity` and observed via\n * `getCapacity`.\n *\n * `subscribe(reducer)` returns an async generator whose batches feed a generator\n * of settled values into the reducer; whatever the reducer returns (other than\n * `undefined`) becomes the yielded value for that batch. Calling `return()` on\n * the subscription settles pending `next` calls thanks to `withConcurrent`,\n * providing direct abort semantics rather than leaving `next()` suspended.\n *\n * 'forEachBatch(reducer)` is a convenience method that subscribes with the\n * given reducer and runs it for each batch until the queue stops.\n *\n * Producers can stay lazy by awaiting `started`, using zero capacity, and\n * awaiting each `push`. Skipping those waits while raising capacity makes the\n * queue eager up to its configured limit. The `isStopped()` helper exposes\n * whether the queue has fully stopped, which can be useful when the reducer\n * function actually performs external work and wants to bail early without\n * awaiting another `next`.\n *\n * @internal\n */\nexport class Queue<T> {\n private _capacity: number;\n private _backlog = 0;\n private _waiters: Array<() => void> = [];\n private _entries: Array<Entry<T>> = [];\n private _isStopped = false;\n private _stopRequested = false;\n private _stopCleanupCallbacks: Array<\n (reason?: unknown) => PromiseOrValue<void>\n > = [];\n private _stopCompletion: Promise<void> | undefined;\n private _batchRequests = new Set<BatchRequest<T>>();\n\n private _resolveStarted: () => void;\n\n constructor(\n executor: ({\n push,\n stop,\n onStop,\n started,\n }: QueueExecutorOptions<T>) => PromiseOrValue<void>,\n initialCapacity = 1,\n ) {\n this._capacity = this._normalizeCapacity(initialCapacity);\n\n const { promise: started, resolve: resolveStarted } =\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n promiseWithResolvers<void>();\n\n this._resolveStarted = resolveStarted;\n\n try {\n const result = executor({\n push: this._push.bind(this),\n stop: this._stop.bind(this),\n onStop: this._onStop.bind(this),\n started,\n });\n if (isPromise(result)) {\n result.catch(this._stop.bind(this));\n }\n } catch (error) {\n const stopped = this._stop(error);\n if (isPromise(stopped)) {\n /* node:coverage ignore next */\n stopped.catch(() => undefined);\n }\n }\n }\n\n subscribe<U>(\n reducer: (\n generator: Generator<T, void, void>,\n ) => PromiseOrValue<U | undefined> = (generator) =>\n Array.from(generator) as U,\n ): AsyncGenerator<U, void, void> {\n const generator = this._iteratorLoop(reducer);\n return withConcurrentAbruptClose(\n generator,\n () => this.cancel(),\n this.abort.bind(this),\n );\n }\n\n cancel(): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n return this._terminate(undefined, () => {\n this._isStopped = true;\n this._batchRequests.forEach((request) => request.resolve(undefined));\n this._batchRequests.clear();\n });\n }\n\n abort(reason?: unknown): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n return this._terminate(reason, () => {\n this._isStopped = true;\n if (this._batchRequests.size) {\n this._batchRequests.forEach((request) => request.reject(reason));\n this._batchRequests.clear();\n return;\n }\n // save rejection for later batch requests\n this._entries.push({\n kind: 'item',\n settled: { status: 'rejected', reason },\n });\n });\n }\n\n async forEachBatch(\n reducer: (generator: Generator<T, void, void>) => PromiseOrValue<void>,\n ): Promise<void> {\n const sub = this.subscribe(async (generator) => {\n const { promise: drained, resolve } =\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n promiseWithResolvers<void>();\n\n const wrappedBatch = (function* wrapper(): Generator<T> {\n yield* generator;\n resolve();\n })();\n\n await Promise.all([reducer(wrappedBatch), drained]);\n });\n\n // Empty loop body is intentionally used to drain the subscription.\n /* node:coverage ignore next 3 */\n for await (const _ of sub) {\n // intentionally empty\n }\n }\n\n setCapacity(nextCapacity: number): void {\n this._capacity = this._normalizeCapacity(nextCapacity);\n this._flush();\n }\n\n getCapacity(): number {\n return this._capacity;\n }\n\n isStopped(): boolean {\n return this._isStopped;\n }\n\n private _normalizeCapacity(capacity: number): number {\n return Math.max(1, Math.floor(capacity));\n }\n\n private _flush(): void {\n while (this._waiters.length > 0 && this._backlog < this._capacity) {\n this._waiters.shift()?.();\n }\n }\n\n private _reserve(): PromiseOrValue<void> {\n this._backlog += 1;\n if (this._backlog < this._capacity) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n const { promise, resolve } = promiseWithResolvers<void>();\n this._waiters.push(resolve);\n return promise;\n }\n\n private _release(): void {\n if (this._backlog > 0) {\n this._backlog -= 1;\n }\n this._flush();\n }\n\n private _onStop(cleanup: (reason?: unknown) => PromiseOrValue<void>): void {\n if (this._stopRequested) {\n throw new Error(\n 'Cannot register onStop cleanup after stop has been requested.',\n );\n }\n this._stopCleanupCallbacks.push(cleanup);\n }\n\n private _runStopCleanup(\n reason: unknown,\n afterCleanup: () => void,\n ): PromiseOrValue<void> {\n this._stopRequested = true;\n const cleanupPromises = this._stopCleanupCallbacks.flatMap(\n (cleanupCallback): Array<Promise<unknown>> => {\n try {\n const result = cleanupCallback(reason);\n return isPromise(result) ? [result] : [];\n } catch {\n // ignore errors\n return [];\n }\n },\n );\n const cleanup =\n cleanupPromises.length > 0\n ? Promise.allSettled(cleanupPromises).then(() => undefined)\n : undefined;\n if (isPromise(cleanup)) {\n this._stopCompletion = cleanup\n .then(afterCleanup, afterCleanup)\n .then(() => undefined);\n return this._stopCompletion;\n }\n afterCleanup();\n }\n\n private async *_iteratorLoop<U>(\n reducer: (\n generator: Generator<T, void, void>,\n ) => PromiseOrValue<U | undefined>,\n ): AsyncGenerator<U, void, void> {\n this._resolveStarted();\n let nextBatch: Generator<T> | undefined;\n // eslint-disable-next-line no-await-in-loop\n while ((nextBatch = await this._waitForNextBatch())) {\n let reduced = reducer(nextBatch);\n if (isPromise(reduced)) {\n // eslint-disable-next-line no-await-in-loop\n reduced = await reduced;\n }\n if (reduced === undefined) {\n continue;\n }\n yield reduced;\n }\n }\n\n private _waitForNextBatch(): Promise<Generator<T> | undefined> {\n const { promise, resolve, reject } = promiseWithResolvers<\n Generator<T> | undefined\n >();\n this._batchRequests.add({ resolve, reject });\n this._deliverBatchIfReady();\n return promise;\n }\n\n private _push(item: PromiseOrValue<T>): PromiseOrValue<void> {\n if (this._stopRequested) {\n return;\n }\n const maybePushPromise = this._reserve();\n if (isPromise(item)) {\n const entry: ItemEntry<T> = { kind: 'item' };\n this._entries.push(entry);\n item.then(\n (resolved) => {\n entry.settled = { status: 'fulfilled', value: resolved };\n this._deliverBatchIfReady();\n },\n (reason: unknown) => {\n entry.settled = { status: 'rejected', reason };\n this._deliverBatchIfReady();\n },\n );\n } else {\n this._entries.push({\n kind: 'item',\n settled: { status: 'fulfilled', value: item },\n });\n this._deliverBatchIfReady();\n }\n return maybePushPromise;\n }\n\n private _terminate(\n reason: unknown,\n afterCleanup: () => void,\n ): PromiseOrValue<void> {\n for (const entry of this._entries) {\n if (entry.kind === 'item') {\n this._release();\n }\n }\n this._entries.length = 0;\n return this._runStopCleanup(reason, afterCleanup);\n }\n\n private _stop(reason?: unknown): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n const stopCompletion = this._runStopCleanup(reason, () => {\n if (reason === undefined) {\n if (this._entries.length === 0) {\n this._isStopped = true;\n this._deliverBatchIfReady();\n return;\n }\n\n this._entries.push({ kind: 'stop' });\n this._deliverBatchIfReady();\n return;\n }\n\n this._entries.push({\n kind: 'item',\n settled: { status: 'rejected', reason },\n });\n this._entries.push({ kind: 'stop' });\n this._deliverBatchIfReady();\n });\n\n if (isPromise(stopCompletion)) {\n /* node:coverage ignore next */\n stopCompletion.catch(() => undefined);\n }\n return stopCompletion;\n }\n\n private _deliverBatchIfReady(): void {\n if (!this._batchRequests.size) {\n return;\n }\n const headEntry = this._entries[0];\n const requests = this._batchRequests;\n if (headEntry !== undefined) {\n // stop sentinel always follows other work\n invariant(headEntry.kind !== 'stop');\n\n const settled = headEntry.settled;\n if (settled !== undefined) {\n if (settled.status === 'fulfilled') {\n this._batchRequests = new Set();\n requests.forEach((request) => request.resolve(this._drainBatch()));\n return;\n }\n this._entries.shift();\n this._release();\n this._isStopped = true;\n this._batchRequests = new Set();\n requests.forEach((request) => request.reject(settled.reason));\n }\n } else if (this._isStopped) {\n this._batchRequests = new Set();\n requests.forEach((request) => request.resolve(undefined));\n }\n }\n\n private *_drainBatch(): Generator<T> {\n while (true) {\n const entry = this._entries[0];\n if (entry === undefined) {\n return;\n }\n if (entry.kind === 'stop') {\n this._isStopped = true;\n this._entries.shift();\n return;\n }\n const settled = entry.settled;\n if (settled === undefined || settled.status === 'rejected') {\n return;\n }\n this._entries.shift();\n this._release();\n yield settled.value;\n }\n }\n}\n"]}
@@ -69,19 +69,20 @@ export class Queue {
69
69
  started,
70
70
  });
71
71
  if (isPromise(result)) {
72
- result.catch((error) => this._stop(error));
72
+ result.catch(this._stop.bind(this));
73
73
  }
74
74
  }
75
75
  catch (error) {
76
76
  const stopped = this._stop(error);
77
77
  if (isPromise(stopped)) {
78
+ /* node:coverage ignore next */
78
79
  stopped.catch(() => undefined);
79
80
  }
80
81
  }
81
82
  }
82
83
  subscribe(reducer = (generator) => Array.from(generator)) {
83
84
  const generator = this._iteratorLoop(reducer);
84
- return withConcurrentAbruptClose(generator, () => this.cancel(), (error) => this.abort(error));
85
+ return withConcurrentAbruptClose(generator, () => this.cancel(), this.abort.bind(this));
85
86
  }
86
87
  cancel() {
87
88
  if (this._stopRequested) {
@@ -122,9 +123,11 @@ export class Queue {
122
123
  })();
123
124
  await Promise.all([reducer(wrappedBatch), drained]);
124
125
  });
125
- for await (const _ of sub /* c8 ignore start */) {
126
+ // Empty loop body is intentionally used to drain the subscription.
127
+ /* node:coverage ignore next 3 */
128
+ for await (const _ of sub) {
126
129
  // intentionally empty
127
- } /* c8 ignore stop */
130
+ }
128
131
  }
129
132
  setCapacity(nextCapacity) {
130
133
  this._capacity = this._normalizeCapacity(nextCapacity);
@@ -172,11 +175,11 @@ export class Queue {
172
175
  try {
173
176
  const result = cleanupCallback(reason);
174
177
  return isPromise(result) ? [result] : [];
175
- } /* c8 ignore start */
178
+ }
176
179
  catch {
177
180
  // ignore errors
178
181
  return [];
179
- } /* c8 ignore stop */
182
+ }
180
183
  });
181
184
  const cleanup = cleanupPromises.length > 0
182
185
  ? Promise.allSettled(cleanupPromises).then(() => undefined)
@@ -268,6 +271,7 @@ export class Queue {
268
271
  this._deliverBatchIfReady();
269
272
  });
270
273
  if (isPromise(stopCompletion)) {
274
+ /* node:coverage ignore next */
271
275
  stopCompletion.catch(() => undefined);
272
276
  }
273
277
  return stopCompletion;
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/execution/incremental/Queue.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../jsutils/invariant.js';\nimport { isPromise } from '../../jsutils/isPromise.js';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.js';\nimport { promiseWithResolvers } from '../../jsutils/promiseWithResolvers.js';\n\nimport { withConcurrentAbruptClose } from '../withConcurrentAbruptClose.js';\n\ntype Settled<T> =\n | { status: 'fulfilled'; value: T }\n | { status: 'rejected'; reason: unknown };\n\ninterface ItemEntry<T> {\n kind: 'item';\n settled?: Settled<T>;\n}\n\ninterface StopEntry {\n kind: 'stop';\n}\n\ntype Entry<T> = ItemEntry<T> | StopEntry;\n\ninterface BatchRequest<T> {\n resolve: (generator: Generator<T> | undefined) => void;\n reject: (reason: unknown) => void;\n}\n\ninterface QueueExecutorOptions<T> {\n push: (item: PromiseOrValue<T>) => PromiseOrValue<void>;\n stop: (reason?: unknown) => PromiseOrValue<void>;\n onStop: (cleanup: (reason?: unknown) => PromiseOrValue<void>) => void;\n started: Promise<void>;\n}\n\n/**\n * A Queue is a lightweight async-generator primitive inspired by Brian Kim's\n * Repeater (https://repeater.js.org, https://github.com/repeaterjs/repeater).\n * The ergonomics are similar, but this implementation favors clarity over\n * performance and gives producers flexibility to remain lazy, become eager, or\n * live somewhere in between.\n *\n * The constructor takes an executor function and an optional `initialCapacity`.\n * Executors receive `{ push, stop, onStop, started }` and may return `void` or\n * a promise if they perform asynchronous setup. They call `push` whenever\n * another item is ready, call `stop` when no more values will be produced\n * (optionally supplying an error), register stop-time cleanup via `onStop`,\n * and await `started` when setup should run only after iteration begins.\n * Because `push`, `stop`, and `onStop` are plain functions, executors can\n * hoist them into outside scopes or pass them to helpers. If the executor\n * throws or its returned promise rejects, the queue treats it as `stop(error)`\n * and propagates the failure.\n *\n * The `initialCapacity` argument (default `1`) governs backpressure. Capacity\n * is the maximum number of buffered items allowed before a push must wait.\n * When the backlog reaches capacity, `push` returns a promise that settles\n * once consumption releases space; otherwise it returns `undefined`. Setting\n * capacity to `1` yields a fully lazy queue (every push waits unless a prior\n * item has been consumed); higher capacities buffer that many items eagerly.\n * Capacity can be changed later via `setCapacity` and observed via\n * `getCapacity`.\n *\n * `subscribe(reducer)` returns an async generator whose batches feed a generator\n * of settled values into the reducer; whatever the reducer returns (other than\n * `undefined`) becomes the yielded value for that batch. Calling `return()` on\n * the subscription settles pending `next` calls thanks to `withConcurrent`,\n * providing direct abort semantics rather than leaving `next()` suspended.\n *\n * 'forEachBatch(reducer)` is a convenience method that subscribes with the\n * given reducer and runs it for each batch until the queue stops.\n *\n * Producers can stay lazy by awaiting `started`, using zero capacity, and\n * awaiting each `push`. Skipping those waits while raising capacity makes the\n * queue eager up to its configured limit. The `isStopped()` helper exposes\n * whether the queue has fully stopped, which can be useful when the reducer\n * function actually performs external work and wants to bail early without\n * awaiting another `next`.\n *\n * @internal\n */\nexport class Queue<T> {\n private _capacity: number;\n private _backlog = 0;\n private _waiters: Array<() => void> = [];\n private _entries: Array<Entry<T>> = [];\n private _isStopped = false;\n private _stopRequested = false;\n private _stopCleanupCallbacks: Array<\n (reason?: unknown) => PromiseOrValue<void>\n > = [];\n private _stopCompletion: Promise<void> | undefined;\n private _batchRequests = new Set<BatchRequest<T>>();\n\n private _resolveStarted: () => void;\n\n constructor(\n executor: ({\n push,\n stop,\n onStop,\n started,\n }: QueueExecutorOptions<T>) => PromiseOrValue<void>,\n initialCapacity = 1,\n ) {\n this._capacity = this._normalizeCapacity(initialCapacity);\n\n const { promise: started, resolve: resolveStarted } =\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n promiseWithResolvers<void>();\n\n this._resolveStarted = resolveStarted;\n\n try {\n const result = executor({\n push: this._push.bind(this),\n stop: this._stop.bind(this),\n onStop: this._onStop.bind(this),\n started,\n });\n if (isPromise(result)) {\n result.catch((error: unknown) => this._stop(error));\n }\n } catch (error) {\n const stopped = this._stop(error);\n if (isPromise(stopped)) {\n stopped.catch(() => undefined);\n }\n }\n }\n\n subscribe<U>(\n reducer: (\n generator: Generator<T, void, void>,\n ) => PromiseOrValue<U | undefined> = (generator) =>\n Array.from(generator) as U,\n ): AsyncGenerator<U, void, void> {\n const generator = this._iteratorLoop(reducer);\n return withConcurrentAbruptClose(\n generator,\n () => this.cancel(),\n (error) => this.abort(error),\n );\n }\n\n cancel(): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n return this._terminate(undefined, () => {\n this._isStopped = true;\n this._batchRequests.forEach((request) => request.resolve(undefined));\n this._batchRequests.clear();\n });\n }\n\n abort(reason?: unknown): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n return this._terminate(reason, () => {\n this._isStopped = true;\n if (this._batchRequests.size) {\n this._batchRequests.forEach((request) => request.reject(reason));\n this._batchRequests.clear();\n return;\n }\n // save rejection for later batch requests\n this._entries.push({\n kind: 'item',\n settled: { status: 'rejected', reason },\n });\n });\n }\n\n async forEachBatch(\n reducer: (generator: Generator<T, void, void>) => PromiseOrValue<void>,\n ): Promise<void> {\n const sub = this.subscribe(async (generator) => {\n const { promise: drained, resolve } =\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n promiseWithResolvers<void>();\n\n const wrappedBatch = (function* wrapper(): Generator<T> {\n yield* generator;\n resolve();\n })();\n\n await Promise.all([reducer(wrappedBatch), drained]);\n });\n\n for await (const _ of sub /* c8 ignore start */) {\n // intentionally empty\n } /* c8 ignore stop */\n }\n\n setCapacity(nextCapacity: number): void {\n this._capacity = this._normalizeCapacity(nextCapacity);\n this._flush();\n }\n\n getCapacity(): number {\n return this._capacity;\n }\n\n isStopped(): boolean {\n return this._isStopped;\n }\n\n private _normalizeCapacity(capacity: number): number {\n return Math.max(1, Math.floor(capacity));\n }\n\n private _flush(): void {\n while (this._waiters.length > 0 && this._backlog < this._capacity) {\n this._waiters.shift()?.();\n }\n }\n\n private _reserve(): PromiseOrValue<void> {\n this._backlog += 1;\n if (this._backlog < this._capacity) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n const { promise, resolve } = promiseWithResolvers<void>();\n this._waiters.push(resolve);\n return promise;\n }\n\n private _release(): void {\n if (this._backlog > 0) {\n this._backlog -= 1;\n }\n this._flush();\n }\n\n private _onStop(cleanup: (reason?: unknown) => PromiseOrValue<void>): void {\n if (this._stopRequested) {\n throw new Error(\n 'Cannot register onStop cleanup after stop has been requested.',\n );\n }\n this._stopCleanupCallbacks.push(cleanup);\n }\n\n private _runStopCleanup(\n reason: unknown,\n afterCleanup: () => void,\n ): PromiseOrValue<void> {\n this._stopRequested = true;\n const cleanupPromises = this._stopCleanupCallbacks.flatMap(\n (cleanupCallback): Array<Promise<unknown>> => {\n try {\n const result = cleanupCallback(reason);\n return isPromise(result) ? [result] : [];\n } /* c8 ignore start */ catch {\n // ignore errors\n return [];\n } /* c8 ignore stop */\n },\n );\n const cleanup =\n cleanupPromises.length > 0\n ? Promise.allSettled(cleanupPromises).then(() => undefined)\n : undefined;\n if (isPromise(cleanup)) {\n this._stopCompletion = cleanup\n .then(afterCleanup, afterCleanup)\n .then(() => undefined);\n return this._stopCompletion;\n }\n afterCleanup();\n }\n\n private async *_iteratorLoop<U>(\n reducer: (\n generator: Generator<T, void, void>,\n ) => PromiseOrValue<U | undefined>,\n ): AsyncGenerator<U, void, void> {\n this._resolveStarted();\n let nextBatch: Generator<T> | undefined;\n // eslint-disable-next-line no-await-in-loop\n while ((nextBatch = await this._waitForNextBatch())) {\n let reduced = reducer(nextBatch);\n if (isPromise(reduced)) {\n // eslint-disable-next-line no-await-in-loop\n reduced = await reduced;\n }\n if (reduced === undefined) {\n continue;\n }\n yield reduced;\n }\n }\n\n private _waitForNextBatch(): Promise<Generator<T> | undefined> {\n const { promise, resolve, reject } = promiseWithResolvers<\n Generator<T> | undefined\n >();\n this._batchRequests.add({ resolve, reject });\n this._deliverBatchIfReady();\n return promise;\n }\n\n private _push(item: PromiseOrValue<T>): PromiseOrValue<void> {\n if (this._stopRequested) {\n return;\n }\n const maybePushPromise = this._reserve();\n if (isPromise(item)) {\n const entry: ItemEntry<T> = { kind: 'item' };\n this._entries.push(entry);\n item.then(\n (resolved) => {\n entry.settled = { status: 'fulfilled', value: resolved };\n this._deliverBatchIfReady();\n },\n (reason: unknown) => {\n entry.settled = { status: 'rejected', reason };\n this._deliverBatchIfReady();\n },\n );\n } else {\n this._entries.push({\n kind: 'item',\n settled: { status: 'fulfilled', value: item },\n });\n this._deliverBatchIfReady();\n }\n return maybePushPromise;\n }\n\n private _terminate(\n reason: unknown,\n afterCleanup: () => void,\n ): PromiseOrValue<void> {\n for (const entry of this._entries) {\n if (entry.kind === 'item') {\n this._release();\n }\n }\n this._entries.length = 0;\n return this._runStopCleanup(reason, afterCleanup);\n }\n\n private _stop(reason?: unknown): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n const stopCompletion = this._runStopCleanup(reason, () => {\n if (reason === undefined) {\n if (this._entries.length === 0) {\n this._isStopped = true;\n this._deliverBatchIfReady();\n return;\n }\n\n this._entries.push({ kind: 'stop' });\n this._deliverBatchIfReady();\n return;\n }\n\n this._entries.push({\n kind: 'item',\n settled: { status: 'rejected', reason },\n });\n this._entries.push({ kind: 'stop' });\n this._deliverBatchIfReady();\n });\n\n if (isPromise(stopCompletion)) {\n stopCompletion.catch(() => undefined);\n }\n return stopCompletion;\n }\n\n private _deliverBatchIfReady(): void {\n if (!this._batchRequests.size) {\n return;\n }\n const headEntry = this._entries[0];\n const requests = this._batchRequests;\n if (headEntry !== undefined) {\n // stop sentinel always follows other work\n invariant(headEntry.kind !== 'stop');\n\n const settled = headEntry.settled;\n if (settled !== undefined) {\n if (settled.status === 'fulfilled') {\n this._batchRequests = new Set();\n requests.forEach((request) => request.resolve(this._drainBatch()));\n return;\n }\n this._entries.shift();\n this._release();\n this._isStopped = true;\n this._batchRequests = new Set();\n requests.forEach((request) => request.reject(settled.reason));\n }\n } else if (this._isStopped) {\n this._batchRequests = new Set();\n requests.forEach((request) => request.resolve(undefined));\n }\n }\n\n private *_drainBatch(): Generator<T> {\n while (true) {\n const entry = this._entries[0];\n if (entry === undefined) {\n return;\n }\n if (entry.kind === 'stop') {\n this._isStopped = true;\n this._entries.shift();\n return;\n }\n const settled = entry.settled;\n if (settled === undefined || settled.status === 'rejected') {\n return;\n }\n this._entries.shift();\n this._release();\n yield settled.value;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/execution/incremental/Queue.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../../jsutils/invariant.ts';\nimport { isPromise } from '../../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../../jsutils/PromiseOrValue.ts';\nimport { promiseWithResolvers } from '../../jsutils/promiseWithResolvers.ts';\n\nimport { withConcurrentAbruptClose } from '../withConcurrentAbruptClose.ts';\n\ntype Settled<T> =\n | { status: 'fulfilled'; value: T }\n | { status: 'rejected'; reason: unknown };\n\ninterface ItemEntry<T> {\n kind: 'item';\n settled?: Settled<T>;\n}\n\ninterface StopEntry {\n kind: 'stop';\n}\n\ntype Entry<T> = ItemEntry<T> | StopEntry;\n\ninterface BatchRequest<T> {\n resolve: (generator: Generator<T> | undefined) => void;\n reject: (reason: unknown) => void;\n}\n\ninterface QueueExecutorOptions<T> {\n push: (item: PromiseOrValue<T>) => PromiseOrValue<void>;\n stop: (reason?: unknown) => PromiseOrValue<void>;\n onStop: (cleanup: (reason?: unknown) => PromiseOrValue<void>) => void;\n started: Promise<void>;\n}\n\n/**\n * A Queue is a lightweight async-generator primitive inspired by Brian Kim's\n * Repeater (https://repeater.js.org, https://github.com/repeaterjs/repeater).\n * The ergonomics are similar, but this implementation favors clarity over\n * performance and gives producers flexibility to remain lazy, become eager, or\n * live somewhere in between.\n *\n * The constructor takes an executor function and an optional `initialCapacity`.\n * Executors receive `{ push, stop, onStop, started }` and may return `void` or\n * a promise if they perform asynchronous setup. They call `push` whenever\n * another item is ready, call `stop` when no more values will be produced\n * (optionally supplying an error), register stop-time cleanup via `onStop`,\n * and await `started` when setup should run only after iteration begins.\n * Because `push`, `stop`, and `onStop` are plain functions, executors can\n * hoist them into outside scopes or pass them to helpers. If the executor\n * throws or its returned promise rejects, the queue treats it as `stop(error)`\n * and propagates the failure.\n *\n * The `initialCapacity` argument (default `1`) governs backpressure. Capacity\n * is the maximum number of buffered items allowed before a push must wait.\n * When the backlog reaches capacity, `push` returns a promise that settles\n * once consumption releases space; otherwise it returns `undefined`. Setting\n * capacity to `1` yields a fully lazy queue (every push waits unless a prior\n * item has been consumed); higher capacities buffer that many items eagerly.\n * Capacity can be changed later via `setCapacity` and observed via\n * `getCapacity`.\n *\n * `subscribe(reducer)` returns an async generator whose batches feed a generator\n * of settled values into the reducer; whatever the reducer returns (other than\n * `undefined`) becomes the yielded value for that batch. Calling `return()` on\n * the subscription settles pending `next` calls thanks to `withConcurrent`,\n * providing direct abort semantics rather than leaving `next()` suspended.\n *\n * 'forEachBatch(reducer)` is a convenience method that subscribes with the\n * given reducer and runs it for each batch until the queue stops.\n *\n * Producers can stay lazy by awaiting `started`, using zero capacity, and\n * awaiting each `push`. Skipping those waits while raising capacity makes the\n * queue eager up to its configured limit. The `isStopped()` helper exposes\n * whether the queue has fully stopped, which can be useful when the reducer\n * function actually performs external work and wants to bail early without\n * awaiting another `next`.\n *\n * @internal\n */\nexport class Queue<T> {\n private _capacity: number;\n private _backlog = 0;\n private _waiters: Array<() => void> = [];\n private _entries: Array<Entry<T>> = [];\n private _isStopped = false;\n private _stopRequested = false;\n private _stopCleanupCallbacks: Array<\n (reason?: unknown) => PromiseOrValue<void>\n > = [];\n private _stopCompletion: Promise<void> | undefined;\n private _batchRequests = new Set<BatchRequest<T>>();\n\n private _resolveStarted: () => void;\n\n constructor(\n executor: ({\n push,\n stop,\n onStop,\n started,\n }: QueueExecutorOptions<T>) => PromiseOrValue<void>,\n initialCapacity = 1,\n ) {\n this._capacity = this._normalizeCapacity(initialCapacity);\n\n const { promise: started, resolve: resolveStarted } =\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n promiseWithResolvers<void>();\n\n this._resolveStarted = resolveStarted;\n\n try {\n const result = executor({\n push: this._push.bind(this),\n stop: this._stop.bind(this),\n onStop: this._onStop.bind(this),\n started,\n });\n if (isPromise(result)) {\n result.catch(this._stop.bind(this));\n }\n } catch (error) {\n const stopped = this._stop(error);\n if (isPromise(stopped)) {\n /* node:coverage ignore next */\n stopped.catch(() => undefined);\n }\n }\n }\n\n subscribe<U>(\n reducer: (\n generator: Generator<T, void, void>,\n ) => PromiseOrValue<U | undefined> = (generator) =>\n Array.from(generator) as U,\n ): AsyncGenerator<U, void, void> {\n const generator = this._iteratorLoop(reducer);\n return withConcurrentAbruptClose(\n generator,\n () => this.cancel(),\n this.abort.bind(this),\n );\n }\n\n cancel(): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n return this._terminate(undefined, () => {\n this._isStopped = true;\n this._batchRequests.forEach((request) => request.resolve(undefined));\n this._batchRequests.clear();\n });\n }\n\n abort(reason?: unknown): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n return this._terminate(reason, () => {\n this._isStopped = true;\n if (this._batchRequests.size) {\n this._batchRequests.forEach((request) => request.reject(reason));\n this._batchRequests.clear();\n return;\n }\n // save rejection for later batch requests\n this._entries.push({\n kind: 'item',\n settled: { status: 'rejected', reason },\n });\n });\n }\n\n async forEachBatch(\n reducer: (generator: Generator<T, void, void>) => PromiseOrValue<void>,\n ): Promise<void> {\n const sub = this.subscribe(async (generator) => {\n const { promise: drained, resolve } =\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n promiseWithResolvers<void>();\n\n const wrappedBatch = (function* wrapper(): Generator<T> {\n yield* generator;\n resolve();\n })();\n\n await Promise.all([reducer(wrappedBatch), drained]);\n });\n\n // Empty loop body is intentionally used to drain the subscription.\n /* node:coverage ignore next 3 */\n for await (const _ of sub) {\n // intentionally empty\n }\n }\n\n setCapacity(nextCapacity: number): void {\n this._capacity = this._normalizeCapacity(nextCapacity);\n this._flush();\n }\n\n getCapacity(): number {\n return this._capacity;\n }\n\n isStopped(): boolean {\n return this._isStopped;\n }\n\n private _normalizeCapacity(capacity: number): number {\n return Math.max(1, Math.floor(capacity));\n }\n\n private _flush(): void {\n while (this._waiters.length > 0 && this._backlog < this._capacity) {\n this._waiters.shift()?.();\n }\n }\n\n private _reserve(): PromiseOrValue<void> {\n this._backlog += 1;\n if (this._backlog < this._capacity) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n const { promise, resolve } = promiseWithResolvers<void>();\n this._waiters.push(resolve);\n return promise;\n }\n\n private _release(): void {\n if (this._backlog > 0) {\n this._backlog -= 1;\n }\n this._flush();\n }\n\n private _onStop(cleanup: (reason?: unknown) => PromiseOrValue<void>): void {\n if (this._stopRequested) {\n throw new Error(\n 'Cannot register onStop cleanup after stop has been requested.',\n );\n }\n this._stopCleanupCallbacks.push(cleanup);\n }\n\n private _runStopCleanup(\n reason: unknown,\n afterCleanup: () => void,\n ): PromiseOrValue<void> {\n this._stopRequested = true;\n const cleanupPromises = this._stopCleanupCallbacks.flatMap(\n (cleanupCallback): Array<Promise<unknown>> => {\n try {\n const result = cleanupCallback(reason);\n return isPromise(result) ? [result] : [];\n } catch {\n // ignore errors\n return [];\n }\n },\n );\n const cleanup =\n cleanupPromises.length > 0\n ? Promise.allSettled(cleanupPromises).then(() => undefined)\n : undefined;\n if (isPromise(cleanup)) {\n this._stopCompletion = cleanup\n .then(afterCleanup, afterCleanup)\n .then(() => undefined);\n return this._stopCompletion;\n }\n afterCleanup();\n }\n\n private async *_iteratorLoop<U>(\n reducer: (\n generator: Generator<T, void, void>,\n ) => PromiseOrValue<U | undefined>,\n ): AsyncGenerator<U, void, void> {\n this._resolveStarted();\n let nextBatch: Generator<T> | undefined;\n // eslint-disable-next-line no-await-in-loop\n while ((nextBatch = await this._waitForNextBatch())) {\n let reduced = reducer(nextBatch);\n if (isPromise(reduced)) {\n // eslint-disable-next-line no-await-in-loop\n reduced = await reduced;\n }\n if (reduced === undefined) {\n continue;\n }\n yield reduced;\n }\n }\n\n private _waitForNextBatch(): Promise<Generator<T> | undefined> {\n const { promise, resolve, reject } = promiseWithResolvers<\n Generator<T> | undefined\n >();\n this._batchRequests.add({ resolve, reject });\n this._deliverBatchIfReady();\n return promise;\n }\n\n private _push(item: PromiseOrValue<T>): PromiseOrValue<void> {\n if (this._stopRequested) {\n return;\n }\n const maybePushPromise = this._reserve();\n if (isPromise(item)) {\n const entry: ItemEntry<T> = { kind: 'item' };\n this._entries.push(entry);\n item.then(\n (resolved) => {\n entry.settled = { status: 'fulfilled', value: resolved };\n this._deliverBatchIfReady();\n },\n (reason: unknown) => {\n entry.settled = { status: 'rejected', reason };\n this._deliverBatchIfReady();\n },\n );\n } else {\n this._entries.push({\n kind: 'item',\n settled: { status: 'fulfilled', value: item },\n });\n this._deliverBatchIfReady();\n }\n return maybePushPromise;\n }\n\n private _terminate(\n reason: unknown,\n afterCleanup: () => void,\n ): PromiseOrValue<void> {\n for (const entry of this._entries) {\n if (entry.kind === 'item') {\n this._release();\n }\n }\n this._entries.length = 0;\n return this._runStopCleanup(reason, afterCleanup);\n }\n\n private _stop(reason?: unknown): PromiseOrValue<void> {\n if (this._stopRequested) {\n return this._stopCompletion;\n }\n const stopCompletion = this._runStopCleanup(reason, () => {\n if (reason === undefined) {\n if (this._entries.length === 0) {\n this._isStopped = true;\n this._deliverBatchIfReady();\n return;\n }\n\n this._entries.push({ kind: 'stop' });\n this._deliverBatchIfReady();\n return;\n }\n\n this._entries.push({\n kind: 'item',\n settled: { status: 'rejected', reason },\n });\n this._entries.push({ kind: 'stop' });\n this._deliverBatchIfReady();\n });\n\n if (isPromise(stopCompletion)) {\n /* node:coverage ignore next */\n stopCompletion.catch(() => undefined);\n }\n return stopCompletion;\n }\n\n private _deliverBatchIfReady(): void {\n if (!this._batchRequests.size) {\n return;\n }\n const headEntry = this._entries[0];\n const requests = this._batchRequests;\n if (headEntry !== undefined) {\n // stop sentinel always follows other work\n invariant(headEntry.kind !== 'stop');\n\n const settled = headEntry.settled;\n if (settled !== undefined) {\n if (settled.status === 'fulfilled') {\n this._batchRequests = new Set();\n requests.forEach((request) => request.resolve(this._drainBatch()));\n return;\n }\n this._entries.shift();\n this._release();\n this._isStopped = true;\n this._batchRequests = new Set();\n requests.forEach((request) => request.reject(settled.reason));\n }\n } else if (this._isStopped) {\n this._batchRequests = new Set();\n requests.forEach((request) => request.resolve(undefined));\n }\n }\n\n private *_drainBatch(): Generator<T> {\n while (true) {\n const entry = this._entries[0];\n if (entry === undefined) {\n return;\n }\n if (entry.kind === 'stop') {\n this._isStopped = true;\n this._entries.shift();\n return;\n }\n const settled = entry.settled;\n if (settled === undefined || settled.status === 'rejected') {\n return;\n }\n this._entries.shift();\n this._release();\n yield settled.value;\n }\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import type { Computation } from './Computation.js';
2
- import { Queue } from './Queue.js';
1
+ import type { Computation } from "./Computation.mjs";
2
+ import { Queue } from "./Queue.mjs";
3
3
  export interface Group<TSelf extends Group<TSelf>> {
4
4
  parent?: TSelf | undefined;
5
5
  }
@@ -1,5 +1,5 @@
1
- import type { Computation } from './Computation.js';
2
- import { Queue } from './Queue.js';
1
+ import type { Computation } from "./Computation.js";
2
+ import { Queue } from "./Queue.js";
3
3
  export interface Group<TSelf extends Group<TSelf>> {
4
4
  parent?: TSelf | undefined;
5
5
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createWorkQueue = createWorkQueue;
4
- const isPromise_js_1 = require("../../jsutils/isPromise.js");
5
- const Queue_js_1 = require("./Queue.js");
4
+ const isPromise_ts_1 = require("../../jsutils/isPromise.js");
5
+ const Queue_ts_1 = require("./Queue.js");
6
6
  /** @internal */
7
7
  function createWorkQueue(initialWork) {
8
8
  const rootGroups = new Set();
@@ -21,7 +21,7 @@ function createWorkQueue(initialWork) {
21
21
  for (const stream of initialRootStreams) {
22
22
  rootStreams.add(stream);
23
23
  }
24
- const events = new Queue_js_1.Queue(({ push: _push, stop: _stop, onStop, started }) => {
24
+ const events = new Queue_ts_1.Queue(({ push: _push, stop: _stop, onStop, started }) => {
25
25
  pushGraphEvent = _push;
26
26
  stopGraphEvents = _stop;
27
27
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
@@ -66,7 +66,7 @@ function createWorkQueue(initialWork) {
66
66
  }
67
67
  function cancelTask(task, reason, cancelPromises) {
68
68
  const abortResult = task.computation.abort(reason);
69
- if ((0, isPromise_js_1.isPromise)(abortResult)) {
69
+ if ((0, isPromise_ts_1.isPromise)(abortResult)) {
70
70
  cancelPromises.push(abortResult);
71
71
  }
72
72
  const taskNode = taskNodes.get(task);
@@ -78,7 +78,7 @@ function createWorkQueue(initialWork) {
78
78
  }
79
79
  function cancelStream(stream, reason, cancelPromises) {
80
80
  const abortResult = stream.queue.abort(reason);
81
- if ((0, isPromise_js_1.isPromise)(abortResult)) {
81
+ if ((0, isPromise_ts_1.isPromise)(abortResult)) {
82
82
  cancelPromises.push(abortResult);
83
83
  }
84
84
  }
@@ -193,7 +193,7 @@ function createWorkQueue(initialWork) {
193
193
  });
194
194
  try {
195
195
  const result = task.computation.result();
196
- if ((0, isPromise_js_1.isPromise)(result)) {
196
+ if ((0, isPromise_ts_1.isPromise)(result)) {
197
197
  result.then((resolved) => {
198
198
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
199
199
  pushGraphEvent({ kind: 'TASK_SUCCESS', task, result: resolved });
@@ -220,7 +220,7 @@ function createWorkQueue(initialWork) {
220
220
  stream,
221
221
  items,
222
222
  });
223
- if ((0, isPromise_js_1.isPromise)(pushed)) {
223
+ if ((0, isPromise_ts_1.isPromise)(pushed)) {
224
224
  await pushed;
225
225
  }
226
226
  });