@langchain/langgraph 1.0.12 → 1.0.13

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 (381) hide show
  1. package/dist/channels/any_value.cjs +46 -0
  2. package/dist/channels/any_value.cjs.map +1 -0
  3. package/dist/channels/any_value.d.cts +23 -0
  4. package/dist/channels/any_value.d.cts.map +1 -0
  5. package/dist/channels/any_value.d.ts +23 -0
  6. package/dist/channels/any_value.d.ts.map +1 -0
  7. package/dist/channels/any_value.js +46 -0
  8. package/dist/channels/any_value.js.map +1 -0
  9. package/dist/channels/base.cjs +101 -0
  10. package/dist/channels/base.cjs.map +1 -0
  11. package/dist/channels/base.d.cts +79 -0
  12. package/dist/channels/base.d.cts.map +1 -0
  13. package/dist/channels/base.d.ts +79 -0
  14. package/dist/channels/base.d.ts.map +1 -0
  15. package/dist/channels/base.js +97 -0
  16. package/dist/channels/base.js.map +1 -0
  17. package/dist/channels/binop.cjs +49 -0
  18. package/dist/channels/binop.cjs.map +1 -0
  19. package/dist/channels/binop.d.cts +22 -0
  20. package/dist/channels/binop.d.cts.map +1 -0
  21. package/dist/channels/binop.d.ts +22 -0
  22. package/dist/channels/binop.d.ts.map +1 -0
  23. package/dist/channels/binop.js +49 -0
  24. package/dist/channels/binop.js.map +1 -0
  25. package/dist/channels/dynamic_barrier_value.cjs +75 -0
  26. package/dist/channels/dynamic_barrier_value.cjs.map +1 -0
  27. package/dist/channels/dynamic_barrier_value.d.cts +40 -0
  28. package/dist/channels/dynamic_barrier_value.d.cts.map +1 -0
  29. package/dist/channels/dynamic_barrier_value.d.ts +40 -0
  30. package/dist/channels/dynamic_barrier_value.d.ts.map +1 -0
  31. package/dist/channels/dynamic_barrier_value.js +75 -0
  32. package/dist/channels/dynamic_barrier_value.js.map +1 -0
  33. package/dist/channels/ephemeral_value.cjs +46 -0
  34. package/dist/channels/ephemeral_value.cjs.map +1 -0
  35. package/dist/channels/ephemeral_value.d.cts +21 -0
  36. package/dist/channels/ephemeral_value.d.cts.map +1 -0
  37. package/dist/channels/ephemeral_value.d.ts +21 -0
  38. package/dist/channels/ephemeral_value.d.ts.map +1 -0
  39. package/dist/channels/ephemeral_value.js +46 -0
  40. package/dist/channels/ephemeral_value.js.map +1 -0
  41. package/dist/channels/index.cjs +21 -0
  42. package/dist/channels/index.d.cts +9 -0
  43. package/dist/channels/index.d.ts +9 -0
  44. package/dist/channels/index.js +10 -0
  45. package/dist/channels/last_value.cjs +98 -0
  46. package/dist/channels/last_value.cjs.map +1 -0
  47. package/dist/channels/last_value.d.cts +42 -0
  48. package/dist/channels/last_value.d.cts.map +1 -0
  49. package/dist/channels/last_value.d.ts +42 -0
  50. package/dist/channels/last_value.d.ts.map +1 -0
  51. package/dist/channels/last_value.js +97 -0
  52. package/dist/channels/last_value.js.map +1 -0
  53. package/dist/channels/named_barrier_value.cjs +116 -0
  54. package/dist/channels/named_barrier_value.cjs.map +1 -0
  55. package/dist/channels/named_barrier_value.d.cts +44 -0
  56. package/dist/channels/named_barrier_value.d.cts.map +1 -0
  57. package/dist/channels/named_barrier_value.d.ts +44 -0
  58. package/dist/channels/named_barrier_value.d.ts.map +1 -0
  59. package/dist/channels/named_barrier_value.js +114 -0
  60. package/dist/channels/named_barrier_value.js.map +1 -0
  61. package/dist/channels/topic.cjs +65 -0
  62. package/dist/channels/topic.cjs.map +1 -0
  63. package/dist/channels/topic.d.cts +32 -0
  64. package/dist/channels/topic.d.cts.map +1 -0
  65. package/dist/channels/topic.d.ts +32 -0
  66. package/dist/channels/topic.d.ts.map +1 -0
  67. package/dist/channels/topic.js +65 -0
  68. package/dist/channels/topic.js.map +1 -0
  69. package/dist/constants.cjs +406 -0
  70. package/dist/constants.cjs.map +1 -0
  71. package/dist/constants.d.cts +281 -0
  72. package/dist/constants.d.cts.map +1 -0
  73. package/dist/constants.d.ts +281 -0
  74. package/dist/constants.d.ts.map +1 -0
  75. package/dist/constants.js +362 -0
  76. package/dist/constants.js.map +1 -0
  77. package/dist/errors.cjs +163 -0
  78. package/dist/errors.cjs.map +1 -0
  79. package/dist/errors.d.cts +77 -0
  80. package/dist/errors.d.cts.map +1 -0
  81. package/dist/errors.d.ts +77 -0
  82. package/dist/errors.d.ts.map +1 -0
  83. package/dist/errors.js +146 -0
  84. package/dist/errors.js.map +1 -0
  85. package/dist/func/index.cjs +299 -0
  86. package/dist/func/index.cjs.map +1 -0
  87. package/dist/func/index.d.cts +288 -0
  88. package/dist/func/index.d.cts.map +1 -0
  89. package/dist/func/index.d.ts +288 -0
  90. package/dist/func/index.d.ts.map +1 -0
  91. package/dist/func/index.js +297 -0
  92. package/dist/func/index.js.map +1 -0
  93. package/dist/func/types.d.cts +62 -0
  94. package/dist/func/types.d.cts.map +1 -0
  95. package/dist/func/types.d.ts +62 -0
  96. package/dist/func/types.d.ts.map +1 -0
  97. package/dist/graph/annotation.cjs +101 -0
  98. package/dist/graph/annotation.cjs.map +1 -0
  99. package/dist/graph/annotation.d.cts +116 -0
  100. package/dist/graph/annotation.d.cts.map +1 -0
  101. package/dist/graph/annotation.d.ts +116 -0
  102. package/dist/graph/annotation.d.ts.map +1 -0
  103. package/dist/graph/annotation.js +99 -0
  104. package/dist/graph/annotation.js.map +1 -0
  105. package/dist/graph/graph.cjs +420 -0
  106. package/dist/graph/graph.cjs.map +1 -0
  107. package/dist/graph/graph.d.cts +108 -0
  108. package/dist/graph/graph.d.cts.map +1 -0
  109. package/dist/graph/graph.d.ts +108 -0
  110. package/dist/graph/graph.d.ts.map +1 -0
  111. package/dist/graph/graph.js +418 -0
  112. package/dist/graph/graph.js.map +1 -0
  113. package/dist/graph/index.cjs +5 -0
  114. package/dist/graph/index.js +7 -0
  115. package/dist/graph/message.cjs +97 -0
  116. package/dist/graph/message.cjs.map +1 -0
  117. package/dist/graph/message.d.cts +40 -0
  118. package/dist/graph/message.d.cts.map +1 -0
  119. package/dist/graph/message.d.ts +40 -0
  120. package/dist/graph/message.d.ts.map +1 -0
  121. package/dist/graph/message.js +94 -0
  122. package/dist/graph/message.js.map +1 -0
  123. package/dist/graph/messages_annotation.cjs +109 -0
  124. package/dist/graph/messages_annotation.cjs.map +1 -0
  125. package/dist/graph/messages_annotation.d.cts +112 -0
  126. package/dist/graph/messages_annotation.d.cts.map +1 -0
  127. package/dist/graph/messages_annotation.d.ts +112 -0
  128. package/dist/graph/messages_annotation.d.ts.map +1 -0
  129. package/dist/graph/messages_annotation.js +107 -0
  130. package/dist/graph/messages_annotation.js.map +1 -0
  131. package/dist/graph/state.cjs +494 -0
  132. package/dist/graph/state.cjs.map +1 -0
  133. package/dist/graph/state.d.cts +229 -0
  134. package/dist/graph/state.d.cts.map +1 -0
  135. package/dist/graph/state.d.ts +229 -0
  136. package/dist/graph/state.d.ts.map +1 -0
  137. package/dist/graph/state.js +493 -0
  138. package/dist/graph/state.js.map +1 -0
  139. package/dist/graph/zod/index.cjs +10 -0
  140. package/dist/graph/zod/index.d.cts +3 -0
  141. package/dist/graph/zod/index.d.ts +3 -0
  142. package/dist/graph/zod/index.js +5 -0
  143. package/dist/graph/zod/meta.cjs +144 -0
  144. package/dist/graph/zod/meta.cjs.map +1 -0
  145. package/dist/graph/zod/meta.d.cts +115 -0
  146. package/dist/graph/zod/meta.d.cts.map +1 -0
  147. package/dist/graph/zod/meta.d.ts +115 -0
  148. package/dist/graph/zod/meta.d.ts.map +1 -0
  149. package/dist/graph/zod/meta.js +141 -0
  150. package/dist/graph/zod/meta.js.map +1 -0
  151. package/dist/graph/zod/plugin.cjs +39 -0
  152. package/dist/graph/zod/plugin.cjs.map +1 -0
  153. package/dist/graph/zod/plugin.js +40 -0
  154. package/dist/graph/zod/plugin.js.map +1 -0
  155. package/dist/graph/zod/schema.cjs +98 -0
  156. package/dist/graph/zod/schema.cjs.map +1 -0
  157. package/dist/graph/zod/schema.d.cts +38 -0
  158. package/dist/graph/zod/schema.d.cts.map +1 -0
  159. package/dist/graph/zod/schema.d.ts +38 -0
  160. package/dist/graph/zod/schema.d.ts.map +1 -0
  161. package/dist/graph/zod/schema.js +94 -0
  162. package/dist/graph/zod/schema.js.map +1 -0
  163. package/dist/graph/zod/zod-registry.cjs +42 -0
  164. package/dist/graph/zod/zod-registry.cjs.map +1 -0
  165. package/dist/graph/zod/zod-registry.d.cts +49 -0
  166. package/dist/graph/zod/zod-registry.d.cts.map +1 -0
  167. package/dist/graph/zod/zod-registry.d.ts +49 -0
  168. package/dist/graph/zod/zod-registry.d.ts.map +1 -0
  169. package/dist/graph/zod/zod-registry.js +41 -0
  170. package/dist/graph/zod/zod-registry.js.map +1 -0
  171. package/dist/hash.cjs +265 -0
  172. package/dist/hash.cjs.map +1 -0
  173. package/dist/hash.js +263 -0
  174. package/dist/hash.js.map +1 -0
  175. package/dist/index.cjs +111 -0
  176. package/dist/index.cjs.map +1 -0
  177. package/dist/index.d.cts +26 -0
  178. package/dist/index.d.ts +26 -0
  179. package/dist/index.js +22 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/interrupt.cjs +79 -0
  182. package/dist/interrupt.cjs.map +1 -0
  183. package/dist/interrupt.d.cts +55 -0
  184. package/dist/interrupt.d.cts.map +1 -0
  185. package/dist/interrupt.d.ts +55 -0
  186. package/dist/interrupt.d.ts.map +1 -0
  187. package/dist/interrupt.js +79 -0
  188. package/dist/interrupt.js.map +1 -0
  189. package/dist/prebuilt/agentName.cjs +148 -0
  190. package/dist/prebuilt/agentName.cjs.map +1 -0
  191. package/dist/prebuilt/agentName.d.cts +42 -0
  192. package/dist/prebuilt/agentName.d.cts.map +1 -0
  193. package/dist/prebuilt/agentName.d.ts +42 -0
  194. package/dist/prebuilt/agentName.d.ts.map +1 -0
  195. package/dist/prebuilt/agentName.js +148 -0
  196. package/dist/prebuilt/agentName.js.map +1 -0
  197. package/dist/prebuilt/agent_executor.cjs +41 -0
  198. package/dist/prebuilt/agent_executor.cjs.map +1 -0
  199. package/dist/prebuilt/agent_executor.d.cts +58 -0
  200. package/dist/prebuilt/agent_executor.d.cts.map +1 -0
  201. package/dist/prebuilt/agent_executor.d.ts +58 -0
  202. package/dist/prebuilt/agent_executor.d.ts.map +1 -0
  203. package/dist/prebuilt/agent_executor.js +41 -0
  204. package/dist/prebuilt/agent_executor.js.map +1 -0
  205. package/dist/prebuilt/chat_agent_executor.cjs +62 -0
  206. package/dist/prebuilt/chat_agent_executor.cjs.map +1 -0
  207. package/dist/prebuilt/chat_agent_executor.d.cts +23 -0
  208. package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -0
  209. package/dist/prebuilt/chat_agent_executor.d.ts +23 -0
  210. package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -0
  211. package/dist/prebuilt/chat_agent_executor.js +62 -0
  212. package/dist/prebuilt/chat_agent_executor.js.map +1 -0
  213. package/dist/prebuilt/index.cjs +15 -0
  214. package/dist/prebuilt/index.d.cts +8 -0
  215. package/dist/prebuilt/index.d.ts +8 -0
  216. package/dist/prebuilt/index.js +8 -0
  217. package/dist/prebuilt/interrupt.d.cts +60 -0
  218. package/dist/prebuilt/interrupt.d.cts.map +1 -0
  219. package/dist/prebuilt/interrupt.d.ts +60 -0
  220. package/dist/prebuilt/interrupt.d.ts.map +1 -0
  221. package/dist/prebuilt/react_agent_executor.cjs +339 -0
  222. package/dist/prebuilt/react_agent_executor.cjs.map +1 -0
  223. package/dist/prebuilt/react_agent_executor.d.cts +211 -0
  224. package/dist/prebuilt/react_agent_executor.d.cts.map +1 -0
  225. package/dist/prebuilt/react_agent_executor.d.ts +211 -0
  226. package/dist/prebuilt/react_agent_executor.d.ts.map +1 -0
  227. package/dist/prebuilt/react_agent_executor.js +338 -0
  228. package/dist/prebuilt/react_agent_executor.js.map +1 -0
  229. package/dist/prebuilt/tool_executor.cjs +43 -0
  230. package/dist/prebuilt/tool_executor.cjs.map +1 -0
  231. package/dist/prebuilt/tool_executor.d.cts +40 -0
  232. package/dist/prebuilt/tool_executor.d.cts.map +1 -0
  233. package/dist/prebuilt/tool_executor.d.ts +40 -0
  234. package/dist/prebuilt/tool_executor.d.ts.map +1 -0
  235. package/dist/prebuilt/tool_executor.js +43 -0
  236. package/dist/prebuilt/tool_executor.js.map +1 -0
  237. package/dist/prebuilt/tool_node.cjs +247 -0
  238. package/dist/prebuilt/tool_node.cjs.map +1 -0
  239. package/dist/prebuilt/tool_node.d.cts +180 -0
  240. package/dist/prebuilt/tool_node.d.cts.map +1 -0
  241. package/dist/prebuilt/tool_node.d.ts +180 -0
  242. package/dist/prebuilt/tool_node.d.ts.map +1 -0
  243. package/dist/prebuilt/tool_node.js +246 -0
  244. package/dist/prebuilt/tool_node.js.map +1 -0
  245. package/dist/pregel/algo.cjs +565 -0
  246. package/dist/pregel/algo.cjs.map +1 -0
  247. package/dist/pregel/algo.d.cts +13 -0
  248. package/dist/pregel/algo.d.cts.map +1 -0
  249. package/dist/pregel/algo.d.ts +13 -0
  250. package/dist/pregel/algo.d.ts.map +1 -0
  251. package/dist/pregel/algo.js +560 -0
  252. package/dist/pregel/algo.js.map +1 -0
  253. package/dist/pregel/call.cjs +50 -0
  254. package/dist/pregel/call.cjs.map +1 -0
  255. package/dist/pregel/call.js +48 -0
  256. package/dist/pregel/call.js.map +1 -0
  257. package/dist/pregel/debug.cjs +172 -0
  258. package/dist/pregel/debug.cjs.map +1 -0
  259. package/dist/pregel/debug.js +166 -0
  260. package/dist/pregel/debug.js.map +1 -0
  261. package/dist/pregel/index.cjs +1163 -0
  262. package/dist/pregel/index.cjs.map +1 -0
  263. package/dist/pregel/index.d.cts +498 -0
  264. package/dist/pregel/index.d.cts.map +1 -0
  265. package/dist/pregel/index.d.ts +498 -0
  266. package/dist/pregel/index.d.ts.map +1 -0
  267. package/dist/pregel/index.js +1162 -0
  268. package/dist/pregel/index.js.map +1 -0
  269. package/dist/pregel/io.cjs +140 -0
  270. package/dist/pregel/io.cjs.map +1 -0
  271. package/dist/pregel/io.js +135 -0
  272. package/dist/pregel/io.js.map +1 -0
  273. package/dist/pregel/loop.cjs +545 -0
  274. package/dist/pregel/loop.cjs.map +1 -0
  275. package/dist/pregel/loop.js +545 -0
  276. package/dist/pregel/loop.js.map +1 -0
  277. package/dist/pregel/messages.cjs +107 -0
  278. package/dist/pregel/messages.cjs.map +1 -0
  279. package/dist/pregel/messages.js +107 -0
  280. package/dist/pregel/messages.js.map +1 -0
  281. package/dist/pregel/read.cjs +151 -0
  282. package/dist/pregel/read.cjs.map +1 -0
  283. package/dist/pregel/read.d.cts +45 -0
  284. package/dist/pregel/read.d.cts.map +1 -0
  285. package/dist/pregel/read.d.ts +45 -0
  286. package/dist/pregel/read.d.ts.map +1 -0
  287. package/dist/pregel/read.js +150 -0
  288. package/dist/pregel/read.js.map +1 -0
  289. package/dist/pregel/remote.cjs +341 -0
  290. package/dist/pregel/remote.cjs.map +1 -0
  291. package/dist/pregel/remote.d.cts +118 -0
  292. package/dist/pregel/remote.d.cts.map +1 -0
  293. package/dist/pregel/remote.d.ts +118 -0
  294. package/dist/pregel/remote.d.ts.map +1 -0
  295. package/dist/pregel/remote.js +341 -0
  296. package/dist/pregel/remote.js.map +1 -0
  297. package/dist/pregel/retry.cjs +91 -0
  298. package/dist/pregel/retry.cjs.map +1 -0
  299. package/dist/pregel/retry.js +91 -0
  300. package/dist/pregel/retry.js.map +1 -0
  301. package/dist/pregel/runnable_types.d.cts +43 -0
  302. package/dist/pregel/runnable_types.d.cts.map +1 -0
  303. package/dist/pregel/runnable_types.d.ts +43 -0
  304. package/dist/pregel/runnable_types.d.ts.map +1 -0
  305. package/dist/pregel/runner.cjs +228 -0
  306. package/dist/pregel/runner.cjs.map +1 -0
  307. package/dist/pregel/runner.js +228 -0
  308. package/dist/pregel/runner.js.map +1 -0
  309. package/dist/pregel/stream.cjs +197 -0
  310. package/dist/pregel/stream.cjs.map +1 -0
  311. package/dist/pregel/stream.js +195 -0
  312. package/dist/pregel/stream.js.map +1 -0
  313. package/dist/pregel/types.cjs +27 -0
  314. package/dist/pregel/types.cjs.map +1 -0
  315. package/dist/pregel/types.d.cts +440 -0
  316. package/dist/pregel/types.d.cts.map +1 -0
  317. package/dist/pregel/types.d.ts +440 -0
  318. package/dist/pregel/types.d.ts.map +1 -0
  319. package/dist/pregel/types.js +25 -0
  320. package/dist/pregel/types.js.map +1 -0
  321. package/dist/pregel/utils/config.cjs +121 -0
  322. package/dist/pregel/utils/config.cjs.map +1 -0
  323. package/dist/pregel/utils/config.d.cts +36 -0
  324. package/dist/pregel/utils/config.d.cts.map +1 -0
  325. package/dist/pregel/utils/config.d.ts +36 -0
  326. package/dist/pregel/utils/config.d.ts.map +1 -0
  327. package/dist/pregel/utils/config.js +115 -0
  328. package/dist/pregel/utils/config.js.map +1 -0
  329. package/dist/pregel/utils/index.cjs +102 -0
  330. package/dist/pregel/utils/index.cjs.map +1 -0
  331. package/dist/pregel/utils/index.d.cts +51 -0
  332. package/dist/pregel/utils/index.d.cts.map +1 -0
  333. package/dist/pregel/utils/index.d.ts +51 -0
  334. package/dist/pregel/utils/index.d.ts.map +1 -0
  335. package/dist/pregel/utils/index.js +96 -0
  336. package/dist/pregel/utils/index.js.map +1 -0
  337. package/dist/pregel/utils/subgraph.cjs +18 -0
  338. package/dist/pregel/utils/subgraph.cjs.map +1 -0
  339. package/dist/pregel/utils/subgraph.js +16 -0
  340. package/dist/pregel/utils/subgraph.js.map +1 -0
  341. package/dist/pregel/validate.cjs +45 -0
  342. package/dist/pregel/validate.cjs.map +1 -0
  343. package/dist/pregel/validate.js +44 -0
  344. package/dist/pregel/validate.js.map +1 -0
  345. package/dist/pregel/write.cjs +96 -0
  346. package/dist/pregel/write.cjs.map +1 -0
  347. package/dist/pregel/write.d.cts +31 -0
  348. package/dist/pregel/write.d.cts.map +1 -0
  349. package/dist/pregel/write.d.ts +31 -0
  350. package/dist/pregel/write.d.ts.map +1 -0
  351. package/dist/pregel/write.js +95 -0
  352. package/dist/pregel/write.js.map +1 -0
  353. package/dist/remote.cjs +3 -0
  354. package/dist/remote.d.cts +2 -0
  355. package/dist/remote.d.ts +2 -0
  356. package/dist/remote.js +3 -0
  357. package/dist/setup/async_local_storage.cjs +11 -0
  358. package/dist/setup/async_local_storage.cjs.map +1 -0
  359. package/dist/setup/async_local_storage.js +11 -0
  360. package/dist/setup/async_local_storage.js.map +1 -0
  361. package/dist/utils.cjs +86 -0
  362. package/dist/utils.cjs.map +1 -0
  363. package/dist/utils.d.cts +25 -0
  364. package/dist/utils.d.cts.map +1 -0
  365. package/dist/utils.d.ts +25 -0
  366. package/dist/utils.d.ts.map +1 -0
  367. package/dist/utils.js +80 -0
  368. package/dist/utils.js.map +1 -0
  369. package/dist/web.cjs +95 -0
  370. package/dist/web.d.cts +23 -0
  371. package/dist/web.d.ts +23 -0
  372. package/dist/web.js +15 -0
  373. package/dist/writer.cjs +14 -0
  374. package/dist/writer.cjs.map +1 -0
  375. package/dist/writer.d.cts +6 -0
  376. package/dist/writer.d.cts.map +1 -0
  377. package/dist/writer.d.ts +6 -0
  378. package/dist/writer.d.ts.map +1 -0
  379. package/dist/writer.js +14 -0
  380. package/dist/writer.js.map +1 -0
  381. package/package.json +2 -2
@@ -0,0 +1,98 @@
1
+ const require_errors = require('../errors.cjs');
2
+ const require_base = require('./base.cjs');
3
+
4
+ //#region src/channels/last_value.ts
5
+ /**
6
+ * Stores the last value received, can receive at most one value per step.
7
+ *
8
+ * Since `update` is only called once per step and value can only be of length 1,
9
+ * LastValue always stores the last value of a single node. If multiple nodes attempt to
10
+ * write to this channel in a single step, an error will be thrown.
11
+ * @internal
12
+ */
13
+ var LastValue = class LastValue extends require_base.BaseChannel {
14
+ lc_graph_name = "LastValue";
15
+ value = [];
16
+ constructor(initialValueFactory) {
17
+ super();
18
+ this.initialValueFactory = initialValueFactory;
19
+ if (initialValueFactory) this.value = [initialValueFactory()];
20
+ }
21
+ fromCheckpoint(checkpoint) {
22
+ const empty = new LastValue(this.initialValueFactory);
23
+ if (typeof checkpoint !== "undefined") empty.value = [checkpoint];
24
+ return empty;
25
+ }
26
+ update(values) {
27
+ if (values.length === 0) return false;
28
+ if (values.length !== 1) throw new require_errors.InvalidUpdateError("LastValue can only receive one value per step.", { lc_error_code: "INVALID_CONCURRENT_GRAPH_UPDATE" });
29
+ this.value = [values[values.length - 1]];
30
+ return true;
31
+ }
32
+ get() {
33
+ if (this.value.length === 0) throw new require_errors.EmptyChannelError();
34
+ return this.value[0];
35
+ }
36
+ checkpoint() {
37
+ if (this.value.length === 0) throw new require_errors.EmptyChannelError();
38
+ return this.value[0];
39
+ }
40
+ isAvailable() {
41
+ return this.value.length !== 0;
42
+ }
43
+ };
44
+ /**
45
+ * Stores the last value received, but only made available after finish().
46
+ * Once made available, clears the value.
47
+ */
48
+ var LastValueAfterFinish = class LastValueAfterFinish extends require_base.BaseChannel {
49
+ lc_graph_name = "LastValueAfterFinish";
50
+ value = [];
51
+ finished = false;
52
+ fromCheckpoint(checkpoint) {
53
+ const empty = new LastValueAfterFinish();
54
+ if (typeof checkpoint !== "undefined") {
55
+ const [value, finished] = checkpoint;
56
+ empty.value = [value];
57
+ empty.finished = finished;
58
+ }
59
+ return empty;
60
+ }
61
+ update(values) {
62
+ if (values.length === 0) return false;
63
+ this.finished = false;
64
+ this.value = [values[values.length - 1]];
65
+ return true;
66
+ }
67
+ get() {
68
+ if (this.value.length === 0 || !this.finished) throw new require_errors.EmptyChannelError();
69
+ return this.value[0];
70
+ }
71
+ checkpoint() {
72
+ if (this.value.length === 0) return void 0;
73
+ return [this.value[0], this.finished];
74
+ }
75
+ consume() {
76
+ if (this.finished) {
77
+ this.finished = false;
78
+ this.value = [];
79
+ return true;
80
+ }
81
+ return false;
82
+ }
83
+ finish() {
84
+ if (!this.finished && this.value.length > 0) {
85
+ this.finished = true;
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ isAvailable() {
91
+ return this.value.length !== 0 && this.finished;
92
+ }
93
+ };
94
+
95
+ //#endregion
96
+ exports.LastValue = LastValue;
97
+ exports.LastValueAfterFinish = LastValueAfterFinish;
98
+ //# sourceMappingURL=last_value.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last_value.cjs","names":["BaseChannel","InvalidUpdateError","EmptyChannelError"],"sources":["../../src/channels/last_value.ts"],"sourcesContent":["import { EmptyChannelError, InvalidUpdateError } from \"../errors.js\";\nimport { BaseChannel } from \"./base.js\";\n\n/**\n * Stores the last value received, can receive at most one value per step.\n *\n * Since `update` is only called once per step and value can only be of length 1,\n * LastValue always stores the last value of a single node. If multiple nodes attempt to\n * write to this channel in a single step, an error will be thrown.\n * @internal\n */\nexport class LastValue<Value> extends BaseChannel<Value, Value, Value> {\n lc_graph_name = \"LastValue\";\n\n // value is an array so we don't misinterpret an update to undefined as no write\n value: [Value] | [] = [];\n\n constructor(protected initialValueFactory?: () => Value) {\n super();\n if (initialValueFactory) {\n this.value = [initialValueFactory()];\n }\n }\n\n fromCheckpoint(checkpoint?: Value) {\n const empty = new LastValue<Value>(this.initialValueFactory);\n if (typeof checkpoint !== \"undefined\") {\n empty.value = [checkpoint];\n }\n\n return empty as this;\n }\n\n update(values: Value[]): boolean {\n if (values.length === 0) {\n return false;\n }\n if (values.length !== 1) {\n throw new InvalidUpdateError(\n \"LastValue can only receive one value per step.\",\n { lc_error_code: \"INVALID_CONCURRENT_GRAPH_UPDATE\" }\n );\n }\n\n // eslint-disable-next-line prefer-destructuring\n this.value = [values[values.length - 1]];\n return true;\n }\n\n get(): Value {\n if (this.value.length === 0) {\n throw new EmptyChannelError();\n }\n return this.value[0];\n }\n\n checkpoint(): Value {\n if (this.value.length === 0) {\n throw new EmptyChannelError();\n }\n return this.value[0];\n }\n\n isAvailable(): boolean {\n return this.value.length !== 0;\n }\n}\n\n/**\n * Stores the last value received, but only made available after finish().\n * Once made available, clears the value.\n */\nexport class LastValueAfterFinish<Value> extends BaseChannel<\n Value,\n Value,\n [Value, boolean]\n> {\n lc_graph_name = \"LastValueAfterFinish\";\n\n // value is an array so we don't misinterpret an update to undefined as no write\n value: [Value] | [] = [];\n\n finished: boolean = false;\n\n fromCheckpoint(checkpoint?: [Value, boolean]) {\n const empty = new LastValueAfterFinish<Value>();\n if (typeof checkpoint !== \"undefined\") {\n const [value, finished] = checkpoint;\n empty.value = [value];\n empty.finished = finished;\n }\n return empty as this;\n }\n\n update(values: Value[]): boolean {\n if (values.length === 0) {\n return false;\n }\n\n this.finished = false;\n // eslint-disable-next-line prefer-destructuring\n this.value = [values[values.length - 1]];\n return true;\n }\n\n get(): Value {\n if (this.value.length === 0 || !this.finished) {\n throw new EmptyChannelError();\n }\n return this.value[0];\n }\n\n checkpoint(): [Value, boolean] | undefined {\n if (this.value.length === 0) return undefined;\n return [this.value[0], this.finished];\n }\n\n consume(): boolean {\n if (this.finished) {\n this.finished = false;\n this.value = [];\n return true;\n }\n return false;\n }\n\n finish(): boolean {\n if (!this.finished && this.value.length > 0) {\n this.finished = true;\n return true;\n }\n return false;\n }\n\n isAvailable(): boolean {\n return this.value.length !== 0 && this.finished;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAWA,IAAa,YAAb,MAAa,kBAAyBA,yBAAiC;CACrE,gBAAgB;CAGhB,QAAsB,EAAE;CAExB,YAAY,AAAU,qBAAmC;AACvD,SAAO;EADa;AAEpB,MAAI,oBACF,MAAK,QAAQ,CAAC,qBAAqB,CAAC;;CAIxC,eAAe,YAAoB;EACjC,MAAM,QAAQ,IAAI,UAAiB,KAAK,oBAAoB;AAC5D,MAAI,OAAO,eAAe,YACxB,OAAM,QAAQ,CAAC,WAAW;AAG5B,SAAO;;CAGT,OAAO,QAA0B;AAC/B,MAAI,OAAO,WAAW,EACpB,QAAO;AAET,MAAI,OAAO,WAAW,EACpB,OAAM,IAAIC,kCACR,kDACA,EAAE,eAAe,mCAAmC,CACrD;AAIH,OAAK,QAAQ,CAAC,OAAO,OAAO,SAAS,GAAG;AACxC,SAAO;;CAGT,MAAa;AACX,MAAI,KAAK,MAAM,WAAW,EACxB,OAAM,IAAIC,kCAAmB;AAE/B,SAAO,KAAK,MAAM;;CAGpB,aAAoB;AAClB,MAAI,KAAK,MAAM,WAAW,EACxB,OAAM,IAAIA,kCAAmB;AAE/B,SAAO,KAAK,MAAM;;CAGpB,cAAuB;AACrB,SAAO,KAAK,MAAM,WAAW;;;;;;;AAQjC,IAAa,uBAAb,MAAa,6BAAoCF,yBAI/C;CACA,gBAAgB;CAGhB,QAAsB,EAAE;CAExB,WAAoB;CAEpB,eAAe,YAA+B;EAC5C,MAAM,QAAQ,IAAI,sBAA6B;AAC/C,MAAI,OAAO,eAAe,aAAa;GACrC,MAAM,CAAC,OAAO,YAAY;AAC1B,SAAM,QAAQ,CAAC,MAAM;AACrB,SAAM,WAAW;;AAEnB,SAAO;;CAGT,OAAO,QAA0B;AAC/B,MAAI,OAAO,WAAW,EACpB,QAAO;AAGT,OAAK,WAAW;AAEhB,OAAK,QAAQ,CAAC,OAAO,OAAO,SAAS,GAAG;AACxC,SAAO;;CAGT,MAAa;AACX,MAAI,KAAK,MAAM,WAAW,KAAK,CAAC,KAAK,SACnC,OAAM,IAAIE,kCAAmB;AAE/B,SAAO,KAAK,MAAM;;CAGpB,aAA2C;AACzC,MAAI,KAAK,MAAM,WAAW,EAAG,QAAO;AACpC,SAAO,CAAC,KAAK,MAAM,IAAI,KAAK,SAAS;;CAGvC,UAAmB;AACjB,MAAI,KAAK,UAAU;AACjB,QAAK,WAAW;AAChB,QAAK,QAAQ,EAAE;AACf,UAAO;;AAET,SAAO;;CAGT,SAAkB;AAChB,MAAI,CAAC,KAAK,YAAY,KAAK,MAAM,SAAS,GAAG;AAC3C,QAAK,WAAW;AAChB,UAAO;;AAET,SAAO;;CAGT,cAAuB;AACrB,SAAO,KAAK,MAAM,WAAW,KAAK,KAAK"}
@@ -0,0 +1,42 @@
1
+ import { BaseChannel } from "./base.cjs";
2
+
3
+ //#region src/channels/last_value.d.ts
4
+
5
+ /**
6
+ * Stores the last value received, can receive at most one value per step.
7
+ *
8
+ * Since `update` is only called once per step and value can only be of length 1,
9
+ * LastValue always stores the last value of a single node. If multiple nodes attempt to
10
+ * write to this channel in a single step, an error will be thrown.
11
+ * @internal
12
+ */
13
+ declare class LastValue<Value> extends BaseChannel<Value, Value, Value> {
14
+ protected initialValueFactory?: (() => Value) | undefined;
15
+ lc_graph_name: string;
16
+ value: [Value] | [];
17
+ constructor(initialValueFactory?: (() => Value) | undefined);
18
+ fromCheckpoint(checkpoint?: Value): this;
19
+ update(values: Value[]): boolean;
20
+ get(): Value;
21
+ checkpoint(): Value;
22
+ isAvailable(): boolean;
23
+ }
24
+ /**
25
+ * Stores the last value received, but only made available after finish().
26
+ * Once made available, clears the value.
27
+ */
28
+ declare class LastValueAfterFinish<Value> extends BaseChannel<Value, Value, [Value, boolean]> {
29
+ lc_graph_name: string;
30
+ value: [Value] | [];
31
+ finished: boolean;
32
+ fromCheckpoint(checkpoint?: [Value, boolean]): this;
33
+ update(values: Value[]): boolean;
34
+ get(): Value;
35
+ checkpoint(): [Value, boolean] | undefined;
36
+ consume(): boolean;
37
+ finish(): boolean;
38
+ isAvailable(): boolean;
39
+ }
40
+ //#endregion
41
+ export { LastValue, LastValueAfterFinish };
42
+ //# sourceMappingURL=last_value.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last_value.d.cts","names":["BaseChannel","LastValue","Value","LastValueAfterFinish"],"sources":["../../src/channels/last_value.d.ts"],"sourcesContent":["import { BaseChannel } from \"./base.js\";\n/**\n * Stores the last value received, can receive at most one value per step.\n *\n * Since `update` is only called once per step and value can only be of length 1,\n * LastValue always stores the last value of a single node. If multiple nodes attempt to\n * write to this channel in a single step, an error will be thrown.\n * @internal\n */\nexport declare class LastValue<Value> extends BaseChannel<Value, Value, Value> {\n protected initialValueFactory?: (() => Value) | undefined;\n lc_graph_name: string;\n value: [Value] | [];\n constructor(initialValueFactory?: (() => Value) | undefined);\n fromCheckpoint(checkpoint?: Value): this;\n update(values: Value[]): boolean;\n get(): Value;\n checkpoint(): Value;\n isAvailable(): boolean;\n}\n/**\n * Stores the last value received, but only made available after finish().\n * Once made available, clears the value.\n */\nexport declare class LastValueAfterFinish<Value> extends BaseChannel<Value, Value, [\n Value,\n boolean\n]> {\n lc_graph_name: string;\n value: [Value] | [];\n finished: boolean;\n fromCheckpoint(checkpoint?: [Value, boolean]): this;\n update(values: Value[]): boolean;\n get(): Value;\n checkpoint(): [Value, boolean] | undefined;\n consume(): boolean;\n finish(): boolean;\n isAvailable(): boolean;\n}\n"],"mappings":";;;;;;AASA;;;;;;AAGYE,cAHSD,SAGTC,CAAAA,KAAAA,CAAAA,SAHkCF,WAGlCE,CAH8CA,KAG9CA,EAHqDA,KAGrDA,EAH4DA,KAG5DA,CAAAA,CAAAA;YACiCA,mBAAAA,CAAAA,EAAAA,CAAAA,GAAAA,GAHFA,KAGEA,CAAAA,GAAAA,SAAAA;eACbA,EAAAA,MAAAA;OACbA,EAAAA,CAHPA,KAGOA,CAAAA,GAAAA,EAAAA;aACRA,CAAAA,mBAAAA,CAAAA,EAAAA,CAAAA,GAAAA,GAHkCA,KAGlCA,CAAAA,GAAAA,SAAAA;gBACOA,CAAAA,UAAAA,CAAAA,EAHcA,KAGdA,CAAAA,EAAAA,IAAAA;QAR4BF,CAAAA,MAAAA,EAM3BE,KAN2BF,EAAAA,CAAAA,EAAAA,OAAAA;EAAW,GAAA,CAAA,CAAA,EAO9CE,KAP8C;EAepCC,UAAAA,CAAAA,CAAAA,EAPHD,KAOGC;EAAoB,WAAA,CAAA,CAAA,EAAA,OAAA;;;;;;AAQtBD,cAREC,oBAQFD,CAAAA,KAAAA,CAAAA,SARsCF,WAQtCE,CARkDA,KAQlDA,EARyDA,KAQzDA,EAAAA,CAPfA,KAQOA,SACQA;EAViD,aAAA,EAAA,MAAA;UAKxDA;;+BAEqBA;iBACdA;SACRA;iBACQA"}
@@ -0,0 +1,42 @@
1
+ import { BaseChannel } from "./base.js";
2
+
3
+ //#region src/channels/last_value.d.ts
4
+
5
+ /**
6
+ * Stores the last value received, can receive at most one value per step.
7
+ *
8
+ * Since `update` is only called once per step and value can only be of length 1,
9
+ * LastValue always stores the last value of a single node. If multiple nodes attempt to
10
+ * write to this channel in a single step, an error will be thrown.
11
+ * @internal
12
+ */
13
+ declare class LastValue<Value> extends BaseChannel<Value, Value, Value> {
14
+ protected initialValueFactory?: (() => Value) | undefined;
15
+ lc_graph_name: string;
16
+ value: [Value] | [];
17
+ constructor(initialValueFactory?: (() => Value) | undefined);
18
+ fromCheckpoint(checkpoint?: Value): this;
19
+ update(values: Value[]): boolean;
20
+ get(): Value;
21
+ checkpoint(): Value;
22
+ isAvailable(): boolean;
23
+ }
24
+ /**
25
+ * Stores the last value received, but only made available after finish().
26
+ * Once made available, clears the value.
27
+ */
28
+ declare class LastValueAfterFinish<Value> extends BaseChannel<Value, Value, [Value, boolean]> {
29
+ lc_graph_name: string;
30
+ value: [Value] | [];
31
+ finished: boolean;
32
+ fromCheckpoint(checkpoint?: [Value, boolean]): this;
33
+ update(values: Value[]): boolean;
34
+ get(): Value;
35
+ checkpoint(): [Value, boolean] | undefined;
36
+ consume(): boolean;
37
+ finish(): boolean;
38
+ isAvailable(): boolean;
39
+ }
40
+ //#endregion
41
+ export { LastValue, LastValueAfterFinish };
42
+ //# sourceMappingURL=last_value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last_value.d.ts","names":["BaseChannel","LastValue","Value","LastValueAfterFinish"],"sources":["../../src/channels/last_value.d.ts"],"sourcesContent":["import { BaseChannel } from \"./base.js\";\n/**\n * Stores the last value received, can receive at most one value per step.\n *\n * Since `update` is only called once per step and value can only be of length 1,\n * LastValue always stores the last value of a single node. If multiple nodes attempt to\n * write to this channel in a single step, an error will be thrown.\n * @internal\n */\nexport declare class LastValue<Value> extends BaseChannel<Value, Value, Value> {\n protected initialValueFactory?: (() => Value) | undefined;\n lc_graph_name: string;\n value: [Value] | [];\n constructor(initialValueFactory?: (() => Value) | undefined);\n fromCheckpoint(checkpoint?: Value): this;\n update(values: Value[]): boolean;\n get(): Value;\n checkpoint(): Value;\n isAvailable(): boolean;\n}\n/**\n * Stores the last value received, but only made available after finish().\n * Once made available, clears the value.\n */\nexport declare class LastValueAfterFinish<Value> extends BaseChannel<Value, Value, [\n Value,\n boolean\n]> {\n lc_graph_name: string;\n value: [Value] | [];\n finished: boolean;\n fromCheckpoint(checkpoint?: [Value, boolean]): this;\n update(values: Value[]): boolean;\n get(): Value;\n checkpoint(): [Value, boolean] | undefined;\n consume(): boolean;\n finish(): boolean;\n isAvailable(): boolean;\n}\n"],"mappings":";;;;;;AASA;;;;;;AAGYE,cAHSD,SAGTC,CAAAA,KAAAA,CAAAA,SAHkCF,WAGlCE,CAH8CA,KAG9CA,EAHqDA,KAGrDA,EAH4DA,KAG5DA,CAAAA,CAAAA;YACiCA,mBAAAA,CAAAA,EAAAA,CAAAA,GAAAA,GAHFA,KAGEA,CAAAA,GAAAA,SAAAA;eACbA,EAAAA,MAAAA;OACbA,EAAAA,CAHPA,KAGOA,CAAAA,GAAAA,EAAAA;aACRA,CAAAA,mBAAAA,CAAAA,EAAAA,CAAAA,GAAAA,GAHkCA,KAGlCA,CAAAA,GAAAA,SAAAA;gBACOA,CAAAA,UAAAA,CAAAA,EAHcA,KAGdA,CAAAA,EAAAA,IAAAA;QAR4BF,CAAAA,MAAAA,EAM3BE,KAN2BF,EAAAA,CAAAA,EAAAA,OAAAA;EAAW,GAAA,CAAA,CAAA,EAO9CE,KAP8C;EAepCC,UAAAA,CAAAA,CAAAA,EAPHD,KAOGC;EAAoB,WAAA,CAAA,CAAA,EAAA,OAAA;;;;;;AAQtBD,cAREC,oBAQFD,CAAAA,KAAAA,CAAAA,SARsCF,WAQtCE,CARkDA,KAQlDA,EARyDA,KAQzDA,EAAAA,CAPfA,KAQOA,SACQA;EAViD,aAAA,EAAA,MAAA;UAKxDA;;+BAEqBA;iBACdA;SACRA;iBACQA"}
@@ -0,0 +1,97 @@
1
+ import { EmptyChannelError, InvalidUpdateError } from "../errors.js";
2
+ import { BaseChannel } from "./base.js";
3
+
4
+ //#region src/channels/last_value.ts
5
+ /**
6
+ * Stores the last value received, can receive at most one value per step.
7
+ *
8
+ * Since `update` is only called once per step and value can only be of length 1,
9
+ * LastValue always stores the last value of a single node. If multiple nodes attempt to
10
+ * write to this channel in a single step, an error will be thrown.
11
+ * @internal
12
+ */
13
+ var LastValue = class LastValue extends BaseChannel {
14
+ lc_graph_name = "LastValue";
15
+ value = [];
16
+ constructor(initialValueFactory) {
17
+ super();
18
+ this.initialValueFactory = initialValueFactory;
19
+ if (initialValueFactory) this.value = [initialValueFactory()];
20
+ }
21
+ fromCheckpoint(checkpoint) {
22
+ const empty = new LastValue(this.initialValueFactory);
23
+ if (typeof checkpoint !== "undefined") empty.value = [checkpoint];
24
+ return empty;
25
+ }
26
+ update(values) {
27
+ if (values.length === 0) return false;
28
+ if (values.length !== 1) throw new InvalidUpdateError("LastValue can only receive one value per step.", { lc_error_code: "INVALID_CONCURRENT_GRAPH_UPDATE" });
29
+ this.value = [values[values.length - 1]];
30
+ return true;
31
+ }
32
+ get() {
33
+ if (this.value.length === 0) throw new EmptyChannelError();
34
+ return this.value[0];
35
+ }
36
+ checkpoint() {
37
+ if (this.value.length === 0) throw new EmptyChannelError();
38
+ return this.value[0];
39
+ }
40
+ isAvailable() {
41
+ return this.value.length !== 0;
42
+ }
43
+ };
44
+ /**
45
+ * Stores the last value received, but only made available after finish().
46
+ * Once made available, clears the value.
47
+ */
48
+ var LastValueAfterFinish = class LastValueAfterFinish extends BaseChannel {
49
+ lc_graph_name = "LastValueAfterFinish";
50
+ value = [];
51
+ finished = false;
52
+ fromCheckpoint(checkpoint) {
53
+ const empty = new LastValueAfterFinish();
54
+ if (typeof checkpoint !== "undefined") {
55
+ const [value, finished] = checkpoint;
56
+ empty.value = [value];
57
+ empty.finished = finished;
58
+ }
59
+ return empty;
60
+ }
61
+ update(values) {
62
+ if (values.length === 0) return false;
63
+ this.finished = false;
64
+ this.value = [values[values.length - 1]];
65
+ return true;
66
+ }
67
+ get() {
68
+ if (this.value.length === 0 || !this.finished) throw new EmptyChannelError();
69
+ return this.value[0];
70
+ }
71
+ checkpoint() {
72
+ if (this.value.length === 0) return void 0;
73
+ return [this.value[0], this.finished];
74
+ }
75
+ consume() {
76
+ if (this.finished) {
77
+ this.finished = false;
78
+ this.value = [];
79
+ return true;
80
+ }
81
+ return false;
82
+ }
83
+ finish() {
84
+ if (!this.finished && this.value.length > 0) {
85
+ this.finished = true;
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ isAvailable() {
91
+ return this.value.length !== 0 && this.finished;
92
+ }
93
+ };
94
+
95
+ //#endregion
96
+ export { LastValue, LastValueAfterFinish };
97
+ //# sourceMappingURL=last_value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last_value.js","names":[],"sources":["../../src/channels/last_value.ts"],"sourcesContent":["import { EmptyChannelError, InvalidUpdateError } from \"../errors.js\";\nimport { BaseChannel } from \"./base.js\";\n\n/**\n * Stores the last value received, can receive at most one value per step.\n *\n * Since `update` is only called once per step and value can only be of length 1,\n * LastValue always stores the last value of a single node. If multiple nodes attempt to\n * write to this channel in a single step, an error will be thrown.\n * @internal\n */\nexport class LastValue<Value> extends BaseChannel<Value, Value, Value> {\n lc_graph_name = \"LastValue\";\n\n // value is an array so we don't misinterpret an update to undefined as no write\n value: [Value] | [] = [];\n\n constructor(protected initialValueFactory?: () => Value) {\n super();\n if (initialValueFactory) {\n this.value = [initialValueFactory()];\n }\n }\n\n fromCheckpoint(checkpoint?: Value) {\n const empty = new LastValue<Value>(this.initialValueFactory);\n if (typeof checkpoint !== \"undefined\") {\n empty.value = [checkpoint];\n }\n\n return empty as this;\n }\n\n update(values: Value[]): boolean {\n if (values.length === 0) {\n return false;\n }\n if (values.length !== 1) {\n throw new InvalidUpdateError(\n \"LastValue can only receive one value per step.\",\n { lc_error_code: \"INVALID_CONCURRENT_GRAPH_UPDATE\" }\n );\n }\n\n // eslint-disable-next-line prefer-destructuring\n this.value = [values[values.length - 1]];\n return true;\n }\n\n get(): Value {\n if (this.value.length === 0) {\n throw new EmptyChannelError();\n }\n return this.value[0];\n }\n\n checkpoint(): Value {\n if (this.value.length === 0) {\n throw new EmptyChannelError();\n }\n return this.value[0];\n }\n\n isAvailable(): boolean {\n return this.value.length !== 0;\n }\n}\n\n/**\n * Stores the last value received, but only made available after finish().\n * Once made available, clears the value.\n */\nexport class LastValueAfterFinish<Value> extends BaseChannel<\n Value,\n Value,\n [Value, boolean]\n> {\n lc_graph_name = \"LastValueAfterFinish\";\n\n // value is an array so we don't misinterpret an update to undefined as no write\n value: [Value] | [] = [];\n\n finished: boolean = false;\n\n fromCheckpoint(checkpoint?: [Value, boolean]) {\n const empty = new LastValueAfterFinish<Value>();\n if (typeof checkpoint !== \"undefined\") {\n const [value, finished] = checkpoint;\n empty.value = [value];\n empty.finished = finished;\n }\n return empty as this;\n }\n\n update(values: Value[]): boolean {\n if (values.length === 0) {\n return false;\n }\n\n this.finished = false;\n // eslint-disable-next-line prefer-destructuring\n this.value = [values[values.length - 1]];\n return true;\n }\n\n get(): Value {\n if (this.value.length === 0 || !this.finished) {\n throw new EmptyChannelError();\n }\n return this.value[0];\n }\n\n checkpoint(): [Value, boolean] | undefined {\n if (this.value.length === 0) return undefined;\n return [this.value[0], this.finished];\n }\n\n consume(): boolean {\n if (this.finished) {\n this.finished = false;\n this.value = [];\n return true;\n }\n return false;\n }\n\n finish(): boolean {\n if (!this.finished && this.value.length > 0) {\n this.finished = true;\n return true;\n }\n return false;\n }\n\n isAvailable(): boolean {\n return this.value.length !== 0 && this.finished;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAWA,IAAa,YAAb,MAAa,kBAAyB,YAAiC;CACrE,gBAAgB;CAGhB,QAAsB,EAAE;CAExB,YAAY,AAAU,qBAAmC;AACvD,SAAO;EADa;AAEpB,MAAI,oBACF,MAAK,QAAQ,CAAC,qBAAqB,CAAC;;CAIxC,eAAe,YAAoB;EACjC,MAAM,QAAQ,IAAI,UAAiB,KAAK,oBAAoB;AAC5D,MAAI,OAAO,eAAe,YACxB,OAAM,QAAQ,CAAC,WAAW;AAG5B,SAAO;;CAGT,OAAO,QAA0B;AAC/B,MAAI,OAAO,WAAW,EACpB,QAAO;AAET,MAAI,OAAO,WAAW,EACpB,OAAM,IAAI,mBACR,kDACA,EAAE,eAAe,mCAAmC,CACrD;AAIH,OAAK,QAAQ,CAAC,OAAO,OAAO,SAAS,GAAG;AACxC,SAAO;;CAGT,MAAa;AACX,MAAI,KAAK,MAAM,WAAW,EACxB,OAAM,IAAI,mBAAmB;AAE/B,SAAO,KAAK,MAAM;;CAGpB,aAAoB;AAClB,MAAI,KAAK,MAAM,WAAW,EACxB,OAAM,IAAI,mBAAmB;AAE/B,SAAO,KAAK,MAAM;;CAGpB,cAAuB;AACrB,SAAO,KAAK,MAAM,WAAW;;;;;;;AAQjC,IAAa,uBAAb,MAAa,6BAAoC,YAI/C;CACA,gBAAgB;CAGhB,QAAsB,EAAE;CAExB,WAAoB;CAEpB,eAAe,YAA+B;EAC5C,MAAM,QAAQ,IAAI,sBAA6B;AAC/C,MAAI,OAAO,eAAe,aAAa;GACrC,MAAM,CAAC,OAAO,YAAY;AAC1B,SAAM,QAAQ,CAAC,MAAM;AACrB,SAAM,WAAW;;AAEnB,SAAO;;CAGT,OAAO,QAA0B;AAC/B,MAAI,OAAO,WAAW,EACpB,QAAO;AAGT,OAAK,WAAW;AAEhB,OAAK,QAAQ,CAAC,OAAO,OAAO,SAAS,GAAG;AACxC,SAAO;;CAGT,MAAa;AACX,MAAI,KAAK,MAAM,WAAW,KAAK,CAAC,KAAK,SACnC,OAAM,IAAI,mBAAmB;AAE/B,SAAO,KAAK,MAAM;;CAGpB,aAA2C;AACzC,MAAI,KAAK,MAAM,WAAW,EAAG,QAAO;AACpC,SAAO,CAAC,KAAK,MAAM,IAAI,KAAK,SAAS;;CAGvC,UAAmB;AACjB,MAAI,KAAK,UAAU;AACjB,QAAK,WAAW;AAChB,QAAK,QAAQ,EAAE;AACf,UAAO;;AAET,SAAO;;CAGT,SAAkB;AAChB,MAAI,CAAC,KAAK,YAAY,KAAK,MAAM,SAAS,GAAG;AAC3C,QAAK,WAAW;AAChB,UAAO;;AAET,SAAO;;CAGT,cAAuB;AACrB,SAAO,KAAK,MAAM,WAAW,KAAK,KAAK"}
@@ -0,0 +1,116 @@
1
+ const require_errors = require('../errors.cjs');
2
+ const require_base = require('./base.cjs');
3
+
4
+ //#region src/channels/named_barrier_value.ts
5
+ const areSetsEqual = (a, b) => a.size === b.size && [...a].every((value) => b.has(value));
6
+ /**
7
+ * A channel that waits until all named values are received before making the value available.
8
+ *
9
+ * This ensures that if node N and node M both write to channel C, the value of C will not be updated
10
+ * until N and M have completed updating.
11
+ */
12
+ var NamedBarrierValue = class NamedBarrierValue extends require_base.BaseChannel {
13
+ lc_graph_name = "NamedBarrierValue";
14
+ names;
15
+ seen;
16
+ constructor(names) {
17
+ super();
18
+ this.names = names;
19
+ this.seen = /* @__PURE__ */ new Set();
20
+ }
21
+ fromCheckpoint(checkpoint) {
22
+ const empty = new NamedBarrierValue(this.names);
23
+ if (typeof checkpoint !== "undefined") empty.seen = new Set(checkpoint);
24
+ return empty;
25
+ }
26
+ update(values) {
27
+ let updated = false;
28
+ for (const nodeName of values) if (this.names.has(nodeName)) {
29
+ if (!this.seen.has(nodeName)) {
30
+ this.seen.add(nodeName);
31
+ updated = true;
32
+ }
33
+ } else throw new require_errors.InvalidUpdateError(`Value ${JSON.stringify(nodeName)} not in names ${JSON.stringify(this.names)}`);
34
+ return updated;
35
+ }
36
+ get() {
37
+ if (!areSetsEqual(this.names, this.seen)) throw new require_errors.EmptyChannelError();
38
+ }
39
+ checkpoint() {
40
+ return [...this.seen];
41
+ }
42
+ consume() {
43
+ if (this.seen && this.names && areSetsEqual(this.seen, this.names)) {
44
+ this.seen = /* @__PURE__ */ new Set();
45
+ return true;
46
+ }
47
+ return false;
48
+ }
49
+ isAvailable() {
50
+ return !!this.names && areSetsEqual(this.names, this.seen);
51
+ }
52
+ };
53
+ /**
54
+ * A channel that waits until all named values are received before making the value ready to be made available.
55
+ * It is only made available after finish() is called.
56
+ * @internal
57
+ */
58
+ var NamedBarrierValueAfterFinish = class NamedBarrierValueAfterFinish extends require_base.BaseChannel {
59
+ lc_graph_name = "NamedBarrierValueAfterFinish";
60
+ names;
61
+ seen;
62
+ finished;
63
+ constructor(names) {
64
+ super();
65
+ this.names = names;
66
+ this.seen = /* @__PURE__ */ new Set();
67
+ this.finished = false;
68
+ }
69
+ fromCheckpoint(checkpoint) {
70
+ const empty = new NamedBarrierValueAfterFinish(this.names);
71
+ if (typeof checkpoint !== "undefined") {
72
+ const [seen, finished] = checkpoint;
73
+ empty.seen = new Set(seen);
74
+ empty.finished = finished;
75
+ }
76
+ return empty;
77
+ }
78
+ update(values) {
79
+ let updated = false;
80
+ for (const nodeName of values) if (this.names.has(nodeName) && !this.seen.has(nodeName)) {
81
+ this.seen.add(nodeName);
82
+ updated = true;
83
+ } else if (!this.names.has(nodeName)) throw new require_errors.InvalidUpdateError(`Value ${JSON.stringify(nodeName)} not in names ${JSON.stringify(this.names)}`);
84
+ return updated;
85
+ }
86
+ get() {
87
+ if (!this.finished || !areSetsEqual(this.names, this.seen)) throw new require_errors.EmptyChannelError();
88
+ }
89
+ checkpoint() {
90
+ return [[...this.seen], this.finished];
91
+ }
92
+ consume() {
93
+ if (this.finished && this.seen && this.names && areSetsEqual(this.seen, this.names)) {
94
+ this.seen = /* @__PURE__ */ new Set();
95
+ this.finished = false;
96
+ return true;
97
+ }
98
+ return false;
99
+ }
100
+ finish() {
101
+ if (!this.finished && !!this.names && areSetsEqual(this.names, this.seen)) {
102
+ this.finished = true;
103
+ return true;
104
+ }
105
+ return false;
106
+ }
107
+ isAvailable() {
108
+ return this.finished && !!this.names && areSetsEqual(this.names, this.seen);
109
+ }
110
+ };
111
+
112
+ //#endregion
113
+ exports.NamedBarrierValue = NamedBarrierValue;
114
+ exports.NamedBarrierValueAfterFinish = NamedBarrierValueAfterFinish;
115
+ exports.areSetsEqual = areSetsEqual;
116
+ //# sourceMappingURL=named_barrier_value.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named_barrier_value.cjs","names":["BaseChannel","InvalidUpdateError","EmptyChannelError"],"sources":["../../src/channels/named_barrier_value.ts"],"sourcesContent":["import { EmptyChannelError, InvalidUpdateError } from \"../errors.js\";\nimport { BaseChannel } from \"./base.js\";\n\nexport const areSetsEqual = <T>(a: Set<T>, b: Set<T>) =>\n a.size === b.size && [...a].every((value) => b.has(value));\n\n/**\n * A channel that waits until all named values are received before making the value available.\n *\n * This ensures that if node N and node M both write to channel C, the value of C will not be updated\n * until N and M have completed updating.\n */\nexport class NamedBarrierValue<Value> extends BaseChannel<\n void,\n Value,\n Value[]\n> {\n lc_graph_name = \"NamedBarrierValue\";\n\n names: Set<Value>; // Names of nodes that we want to wait for.\n\n seen: Set<Value>;\n\n constructor(names: Set<Value>) {\n super();\n this.names = names;\n this.seen = new Set<Value>();\n }\n\n fromCheckpoint(checkpoint?: Value[]) {\n const empty = new NamedBarrierValue<Value>(this.names);\n if (typeof checkpoint !== \"undefined\") {\n empty.seen = new Set(checkpoint);\n }\n return empty as this;\n }\n\n update(values: Value[]): boolean {\n let updated = false;\n for (const nodeName of values) {\n if (this.names.has(nodeName)) {\n if (!this.seen.has(nodeName)) {\n this.seen.add(nodeName);\n updated = true;\n }\n } else {\n throw new InvalidUpdateError(\n `Value ${JSON.stringify(nodeName)} not in names ${JSON.stringify(\n this.names\n )}`\n );\n }\n }\n return updated;\n }\n\n // If we have not yet seen all the node names we want to wait for,\n // throw an error to prevent continuing.\n get(): void {\n if (!areSetsEqual(this.names, this.seen)) {\n throw new EmptyChannelError();\n }\n return undefined;\n }\n\n checkpoint(): Value[] {\n return [...this.seen];\n }\n\n consume(): boolean {\n if (this.seen && this.names && areSetsEqual(this.seen, this.names)) {\n this.seen = new Set<Value>();\n return true;\n }\n return false;\n }\n\n isAvailable(): boolean {\n return !!this.names && areSetsEqual(this.names, this.seen);\n }\n}\n\n/**\n * A channel that waits until all named values are received before making the value ready to be made available.\n * It is only made available after finish() is called.\n * @internal\n */\nexport class NamedBarrierValueAfterFinish<Value> extends BaseChannel<\n void,\n Value,\n [Value[], boolean]\n> {\n lc_graph_name = \"NamedBarrierValueAfterFinish\";\n\n names: Set<Value>; // Names of nodes that we want to wait for.\n\n seen: Set<Value>;\n\n finished: boolean;\n\n constructor(names: Set<Value>) {\n super();\n this.names = names;\n this.seen = new Set<Value>();\n this.finished = false;\n }\n\n fromCheckpoint(checkpoint?: [Value[], boolean]) {\n const empty = new NamedBarrierValueAfterFinish<Value>(this.names);\n if (typeof checkpoint !== \"undefined\") {\n const [seen, finished] = checkpoint;\n empty.seen = new Set(seen);\n empty.finished = finished;\n }\n return empty as this;\n }\n\n update(values: Value[]): boolean {\n let updated = false;\n for (const nodeName of values) {\n if (this.names.has(nodeName) && !this.seen.has(nodeName)) {\n this.seen.add(nodeName);\n updated = true;\n } else if (!this.names.has(nodeName)) {\n throw new InvalidUpdateError(\n `Value ${JSON.stringify(nodeName)} not in names ${JSON.stringify(\n this.names\n )}`\n );\n }\n }\n return updated;\n }\n\n get(): void {\n if (!this.finished || !areSetsEqual(this.names, this.seen)) {\n throw new EmptyChannelError();\n }\n return undefined;\n }\n\n checkpoint(): [Value[], boolean] {\n return [[...this.seen], this.finished];\n }\n\n consume(): boolean {\n if (\n this.finished &&\n this.seen &&\n this.names &&\n areSetsEqual(this.seen, this.names)\n ) {\n this.seen = new Set<Value>();\n this.finished = false;\n return true;\n }\n return false;\n }\n\n finish(): boolean {\n if (!this.finished && !!this.names && areSetsEqual(this.names, this.seen)) {\n this.finished = true;\n return true;\n }\n return false;\n }\n\n isAvailable(): boolean {\n return this.finished && !!this.names && areSetsEqual(this.names, this.seen);\n }\n}\n"],"mappings":";;;;AAGA,MAAa,gBAAmB,GAAW,MACzC,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,UAAU,EAAE,IAAI,MAAM,CAAC;;;;;;;AAQ5D,IAAa,oBAAb,MAAa,0BAAiCA,yBAI5C;CACA,gBAAgB;CAEhB;CAEA;CAEA,YAAY,OAAmB;AAC7B,SAAO;AACP,OAAK,QAAQ;AACb,OAAK,uBAAO,IAAI,KAAY;;CAG9B,eAAe,YAAsB;EACnC,MAAM,QAAQ,IAAI,kBAAyB,KAAK,MAAM;AACtD,MAAI,OAAO,eAAe,YACxB,OAAM,OAAO,IAAI,IAAI,WAAW;AAElC,SAAO;;CAGT,OAAO,QAA0B;EAC/B,IAAI,UAAU;AACd,OAAK,MAAM,YAAY,OACrB,KAAI,KAAK,MAAM,IAAI,SAAS,EAC1B;OAAI,CAAC,KAAK,KAAK,IAAI,SAAS,EAAE;AAC5B,SAAK,KAAK,IAAI,SAAS;AACvB,cAAU;;QAGZ,OAAM,IAAIC,kCACR,SAAS,KAAK,UAAU,SAAS,CAAC,gBAAgB,KAAK,UACrD,KAAK,MACN,GACF;AAGL,SAAO;;CAKT,MAAY;AACV,MAAI,CAAC,aAAa,KAAK,OAAO,KAAK,KAAK,CACtC,OAAM,IAAIC,kCAAmB;;CAKjC,aAAsB;AACpB,SAAO,CAAC,GAAG,KAAK,KAAK;;CAGvB,UAAmB;AACjB,MAAI,KAAK,QAAQ,KAAK,SAAS,aAAa,KAAK,MAAM,KAAK,MAAM,EAAE;AAClE,QAAK,uBAAO,IAAI,KAAY;AAC5B,UAAO;;AAET,SAAO;;CAGT,cAAuB;AACrB,SAAO,CAAC,CAAC,KAAK,SAAS,aAAa,KAAK,OAAO,KAAK,KAAK;;;;;;;;AAS9D,IAAa,+BAAb,MAAa,qCAA4CF,yBAIvD;CACA,gBAAgB;CAEhB;CAEA;CAEA;CAEA,YAAY,OAAmB;AAC7B,SAAO;AACP,OAAK,QAAQ;AACb,OAAK,uBAAO,IAAI,KAAY;AAC5B,OAAK,WAAW;;CAGlB,eAAe,YAAiC;EAC9C,MAAM,QAAQ,IAAI,6BAAoC,KAAK,MAAM;AACjE,MAAI,OAAO,eAAe,aAAa;GACrC,MAAM,CAAC,MAAM,YAAY;AACzB,SAAM,OAAO,IAAI,IAAI,KAAK;AAC1B,SAAM,WAAW;;AAEnB,SAAO;;CAGT,OAAO,QAA0B;EAC/B,IAAI,UAAU;AACd,OAAK,MAAM,YAAY,OACrB,KAAI,KAAK,MAAM,IAAI,SAAS,IAAI,CAAC,KAAK,KAAK,IAAI,SAAS,EAAE;AACxD,QAAK,KAAK,IAAI,SAAS;AACvB,aAAU;aACD,CAAC,KAAK,MAAM,IAAI,SAAS,CAClC,OAAM,IAAIC,kCACR,SAAS,KAAK,UAAU,SAAS,CAAC,gBAAgB,KAAK,UACrD,KAAK,MACN,GACF;AAGL,SAAO;;CAGT,MAAY;AACV,MAAI,CAAC,KAAK,YAAY,CAAC,aAAa,KAAK,OAAO,KAAK,KAAK,CACxD,OAAM,IAAIC,kCAAmB;;CAKjC,aAAiC;AAC/B,SAAO,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,KAAK,SAAS;;CAGxC,UAAmB;AACjB,MACE,KAAK,YACL,KAAK,QACL,KAAK,SACL,aAAa,KAAK,MAAM,KAAK,MAAM,EACnC;AACA,QAAK,uBAAO,IAAI,KAAY;AAC5B,QAAK,WAAW;AAChB,UAAO;;AAET,SAAO;;CAGT,SAAkB;AAChB,MAAI,CAAC,KAAK,YAAY,CAAC,CAAC,KAAK,SAAS,aAAa,KAAK,OAAO,KAAK,KAAK,EAAE;AACzE,QAAK,WAAW;AAChB,UAAO;;AAET,SAAO;;CAGT,cAAuB;AACrB,SAAO,KAAK,YAAY,CAAC,CAAC,KAAK,SAAS,aAAa,KAAK,OAAO,KAAK,KAAK"}
@@ -0,0 +1,44 @@
1
+ import { BaseChannel } from "./base.cjs";
2
+
3
+ //#region src/channels/named_barrier_value.d.ts
4
+
5
+ /**
6
+ * A channel that waits until all named values are received before making the value available.
7
+ *
8
+ * This ensures that if node N and node M both write to channel C, the value of C will not be updated
9
+ * until N and M have completed updating.
10
+ */
11
+ declare class NamedBarrierValue<Value> extends BaseChannel<void, Value, Value[]> {
12
+ lc_graph_name: string;
13
+ names: Set<Value>;
14
+ seen: Set<Value>;
15
+ constructor(names: Set<Value>);
16
+ fromCheckpoint(checkpoint?: Value[]): this;
17
+ update(values: Value[]): boolean;
18
+ get(): void;
19
+ checkpoint(): Value[];
20
+ consume(): boolean;
21
+ isAvailable(): boolean;
22
+ }
23
+ /**
24
+ * A channel that waits until all named values are received before making the value ready to be made available.
25
+ * It is only made available after finish() is called.
26
+ * @internal
27
+ */
28
+ declare class NamedBarrierValueAfterFinish<Value> extends BaseChannel<void, Value, [Value[], boolean]> {
29
+ lc_graph_name: string;
30
+ names: Set<Value>;
31
+ seen: Set<Value>;
32
+ finished: boolean;
33
+ constructor(names: Set<Value>);
34
+ fromCheckpoint(checkpoint?: [Value[], boolean]): this;
35
+ update(values: Value[]): boolean;
36
+ get(): void;
37
+ checkpoint(): [Value[], boolean];
38
+ consume(): boolean;
39
+ finish(): boolean;
40
+ isAvailable(): boolean;
41
+ }
42
+ //#endregion
43
+ export { NamedBarrierValue, NamedBarrierValueAfterFinish };
44
+ //# sourceMappingURL=named_barrier_value.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named_barrier_value.d.cts","names":["BaseChannel","areSetsEqual","T","Set","NamedBarrierValue","Value","NamedBarrierValueAfterFinish"],"sources":["../../src/channels/named_barrier_value.d.ts"],"sourcesContent":["import { BaseChannel } from \"./base.js\";\nexport declare const areSetsEqual: <T>(a: Set<T>, b: Set<T>) => boolean;\n/**\n * A channel that waits until all named values are received before making the value available.\n *\n * This ensures that if node N and node M both write to channel C, the value of C will not be updated\n * until N and M have completed updating.\n */\nexport declare class NamedBarrierValue<Value> extends BaseChannel<void, Value, Value[]> {\n lc_graph_name: string;\n names: Set<Value>;\n seen: Set<Value>;\n constructor(names: Set<Value>);\n fromCheckpoint(checkpoint?: Value[]): this;\n update(values: Value[]): boolean;\n get(): void;\n checkpoint(): Value[];\n consume(): boolean;\n isAvailable(): boolean;\n}\n/**\n * A channel that waits until all named values are received before making the value ready to be made available.\n * It is only made available after finish() is called.\n * @internal\n */\nexport declare class NamedBarrierValueAfterFinish<Value> extends BaseChannel<void, Value, [\n Value[],\n boolean\n]> {\n lc_graph_name: string;\n names: Set<Value>;\n seen: Set<Value>;\n finished: boolean;\n constructor(names: Set<Value>);\n fromCheckpoint(checkpoint?: [Value[], boolean]): this;\n update(values: Value[]): boolean;\n get(): void;\n checkpoint(): [Value[], boolean];\n consume(): boolean;\n finish(): boolean;\n isAvailable(): boolean;\n}\n"],"mappings":";;;;;AAQA;;;;;AAEWG,cAFUC,iBAEVD,CAAAA,KAAAA,CAAAA,SAF2CH,WAE3CG,CAAAA,IAAAA,EAF6DE,KAE7DF,EAFoEE,KAEpEF,EAAAA,CAAAA,CAAAA;eACGE,EAAAA,MAAAA;OAAJF,EADCA,GACDA,CADKE,KACLF,CAAAA;MACiBE,EADjBF,GACiBE,CADbA,KACaA,CAAAA;aAAJF,CAAAA,KAAAA,EAAAA,GAAAA,CAAIE,KAAJF,CAAAA;gBACSE,CAAAA,UAAAA,CAAAA,EAAAA,KAAAA,EAAAA,CAAAA,EAAAA,IAAAA;QACbA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,CAAAA,EAAAA,OAAAA;KAEDA,CAAAA,CAAAA,EAAAA,IAAAA;YARoCL,CAAAA,CAAAA,EAQpCK,KARoCL,EAAAA;EAAW,OAAA,CAAA,CAAA,EAAA,OAAA;EAiB5CM,WAAAA,CAAAA,CAAAA,EAAAA,OAAAA;;;;;;;AAMXH,cANWG,4BAMXH,CAAAA,KAAAA,CAAAA,SANuDH,WAMvDG,CAAAA,IAAAA,EANyEE,KAMzEF,EAAAA,CALNE,KAOuBA,EAAAA,SAAJF;eAEJE,EAAAA,MAAAA;OAEAA,EAPRF,GAOQE,CAPJA,KAOIA,CAAAA;MAZ8CL,EAMvDG,GANuDH,CAMnDK,KANmDL,CAAAA;EAAW,QAAA,EAAA,OAAA;qBAQrDG,IAAIE;+BACMA;iBACdA;;iBAEAA"}
@@ -0,0 +1,44 @@
1
+ import { BaseChannel } from "./base.js";
2
+
3
+ //#region src/channels/named_barrier_value.d.ts
4
+
5
+ /**
6
+ * A channel that waits until all named values are received before making the value available.
7
+ *
8
+ * This ensures that if node N and node M both write to channel C, the value of C will not be updated
9
+ * until N and M have completed updating.
10
+ */
11
+ declare class NamedBarrierValue<Value> extends BaseChannel<void, Value, Value[]> {
12
+ lc_graph_name: string;
13
+ names: Set<Value>;
14
+ seen: Set<Value>;
15
+ constructor(names: Set<Value>);
16
+ fromCheckpoint(checkpoint?: Value[]): this;
17
+ update(values: Value[]): boolean;
18
+ get(): void;
19
+ checkpoint(): Value[];
20
+ consume(): boolean;
21
+ isAvailable(): boolean;
22
+ }
23
+ /**
24
+ * A channel that waits until all named values are received before making the value ready to be made available.
25
+ * It is only made available after finish() is called.
26
+ * @internal
27
+ */
28
+ declare class NamedBarrierValueAfterFinish<Value> extends BaseChannel<void, Value, [Value[], boolean]> {
29
+ lc_graph_name: string;
30
+ names: Set<Value>;
31
+ seen: Set<Value>;
32
+ finished: boolean;
33
+ constructor(names: Set<Value>);
34
+ fromCheckpoint(checkpoint?: [Value[], boolean]): this;
35
+ update(values: Value[]): boolean;
36
+ get(): void;
37
+ checkpoint(): [Value[], boolean];
38
+ consume(): boolean;
39
+ finish(): boolean;
40
+ isAvailable(): boolean;
41
+ }
42
+ //#endregion
43
+ export { NamedBarrierValue, NamedBarrierValueAfterFinish };
44
+ //# sourceMappingURL=named_barrier_value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named_barrier_value.d.ts","names":["BaseChannel","areSetsEqual","T","Set","NamedBarrierValue","Value","NamedBarrierValueAfterFinish"],"sources":["../../src/channels/named_barrier_value.d.ts"],"sourcesContent":["import { BaseChannel } from \"./base.js\";\nexport declare const areSetsEqual: <T>(a: Set<T>, b: Set<T>) => boolean;\n/**\n * A channel that waits until all named values are received before making the value available.\n *\n * This ensures that if node N and node M both write to channel C, the value of C will not be updated\n * until N and M have completed updating.\n */\nexport declare class NamedBarrierValue<Value> extends BaseChannel<void, Value, Value[]> {\n lc_graph_name: string;\n names: Set<Value>;\n seen: Set<Value>;\n constructor(names: Set<Value>);\n fromCheckpoint(checkpoint?: Value[]): this;\n update(values: Value[]): boolean;\n get(): void;\n checkpoint(): Value[];\n consume(): boolean;\n isAvailable(): boolean;\n}\n/**\n * A channel that waits until all named values are received before making the value ready to be made available.\n * It is only made available after finish() is called.\n * @internal\n */\nexport declare class NamedBarrierValueAfterFinish<Value> extends BaseChannel<void, Value, [\n Value[],\n boolean\n]> {\n lc_graph_name: string;\n names: Set<Value>;\n seen: Set<Value>;\n finished: boolean;\n constructor(names: Set<Value>);\n fromCheckpoint(checkpoint?: [Value[], boolean]): this;\n update(values: Value[]): boolean;\n get(): void;\n checkpoint(): [Value[], boolean];\n consume(): boolean;\n finish(): boolean;\n isAvailable(): boolean;\n}\n"],"mappings":";;;;;AAQA;;;;;AAEWG,cAFUC,iBAEVD,CAAAA,KAAAA,CAAAA,SAF2CH,WAE3CG,CAAAA,IAAAA,EAF6DE,KAE7DF,EAFoEE,KAEpEF,EAAAA,CAAAA,CAAAA;eACGE,EAAAA,MAAAA;OAAJF,EADCA,GACDA,CADKE,KACLF,CAAAA;MACiBE,EADjBF,GACiBE,CADbA,KACaA,CAAAA;aAAJF,CAAAA,KAAAA,EAAAA,GAAAA,CAAIE,KAAJF,CAAAA;gBACSE,CAAAA,UAAAA,CAAAA,EAAAA,KAAAA,EAAAA,CAAAA,EAAAA,IAAAA;QACbA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,CAAAA,EAAAA,OAAAA;KAEDA,CAAAA,CAAAA,EAAAA,IAAAA;YARoCL,CAAAA,CAAAA,EAQpCK,KARoCL,EAAAA;EAAW,OAAA,CAAA,CAAA,EAAA,OAAA;EAiB5CM,WAAAA,CAAAA,CAAAA,EAAAA,OAAAA;;;;;;;AAMXH,cANWG,4BAMXH,CAAAA,KAAAA,CAAAA,SANuDH,WAMvDG,CAAAA,IAAAA,EANyEE,KAMzEF,EAAAA,CALNE,KAOuBA,EAAAA,SAAJF;eAEJE,EAAAA,MAAAA;OAEAA,EAPRF,GAOQE,CAPJA,KAOIA,CAAAA;MAZ8CL,EAMvDG,GANuDH,CAMnDK,KANmDL,CAAAA;EAAW,QAAA,EAAA,OAAA;qBAQrDG,IAAIE;+BACMA;iBACdA;;iBAEAA"}