@langchain/langgraph 0.4.9 → 1.0.0-alpha.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.
- package/CHANGELOG.md +26 -0
- package/README.md +1 -2
- package/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/channels/any_value.cjs +44 -63
- package/dist/channels/any_value.cjs.map +1 -0
- package/dist/channels/any_value.d.cts +24 -0
- package/dist/channels/any_value.d.cts.map +1 -0
- package/dist/channels/any_value.d.ts +16 -11
- package/dist/channels/any_value.d.ts.map +1 -0
- package/dist/channels/any_value.js +42 -57
- package/dist/channels/any_value.js.map +1 -1
- package/dist/channels/base.cjs +93 -133
- package/dist/channels/base.cjs.map +1 -0
- package/dist/channels/base.d.cts +79 -0
- package/dist/channels/base.d.cts.map +1 -0
- package/dist/channels/base.d.ts +77 -73
- package/dist/channels/base.d.ts.map +1 -0
- package/dist/channels/base.js +90 -127
- package/dist/channels/base.js.map +1 -1
- package/dist/channels/binop.cjs +47 -77
- package/dist/channels/binop.cjs.map +1 -0
- package/dist/channels/binop.d.cts +22 -0
- package/dist/channels/binop.d.cts.map +1 -0
- package/dist/channels/binop.d.ts +17 -12
- package/dist/channels/binop.d.ts.map +1 -0
- package/dist/channels/binop.js +45 -71
- package/dist/channels/binop.js.map +1 -1
- package/dist/channels/dynamic_barrier_value.cjs +72 -208
- package/dist/channels/dynamic_barrier_value.cjs.map +1 -0
- package/dist/channels/dynamic_barrier_value.d.cts +42 -0
- package/dist/channels/dynamic_barrier_value.d.cts.map +1 -0
- package/dist/channels/dynamic_barrier_value.d.ts +20 -35
- package/dist/channels/dynamic_barrier_value.d.ts.map +1 -0
- package/dist/channels/dynamic_barrier_value.js +69 -200
- package/dist/channels/dynamic_barrier_value.js.map +1 -1
- package/dist/channels/ephemeral_value.cjs +44 -70
- package/dist/channels/ephemeral_value.cjs.map +1 -0
- package/dist/channels/ephemeral_value.d.cts +22 -0
- package/dist/channels/ephemeral_value.d.cts.map +1 -0
- package/dist/channels/ephemeral_value.d.ts +18 -12
- package/dist/channels/ephemeral_value.d.ts.map +1 -0
- package/dist/channels/ephemeral_value.js +43 -65
- package/dist/channels/ephemeral_value.js.map +1 -1
- package/dist/channels/index.cjs +21 -10
- package/dist/channels/index.d.cts +9 -0
- package/dist/channels/index.d.ts +9 -7
- package/dist/channels/index.js +10 -3
- package/dist/channels/last_value.cjs +90 -140
- package/dist/channels/last_value.cjs.map +1 -0
- package/dist/channels/last_value.d.cts +42 -0
- package/dist/channels/last_value.d.cts.map +1 -0
- package/dist/channels/last_value.d.ts +27 -23
- package/dist/channels/last_value.d.ts.map +1 -0
- package/dist/channels/last_value.js +87 -133
- package/dist/channels/last_value.js.map +1 -1
- package/dist/channels/named_barrier_value.cjs +114 -170
- package/dist/channels/named_barrier_value.cjs.map +1 -0
- package/dist/channels/named_barrier_value.d.cts +46 -0
- package/dist/channels/named_barrier_value.d.cts.map +1 -0
- package/dist/channels/named_barrier_value.d.ts +32 -29
- package/dist/channels/named_barrier_value.d.ts.map +1 -0
- package/dist/channels/named_barrier_value.js +111 -163
- package/dist/channels/named_barrier_value.js.map +1 -1
- package/dist/channels/topic.cjs +63 -96
- package/dist/channels/topic.cjs.map +1 -0
- package/dist/channels/topic.d.cts +32 -0
- package/dist/channels/topic.d.cts.map +1 -0
- package/dist/channels/topic.d.ts +28 -19
- package/dist/channels/topic.d.ts.map +1 -0
- package/dist/channels/topic.js +61 -90
- package/dist/channels/topic.js.map +1 -1
- package/dist/constants.cjs +376 -452
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.cts +285 -0
- package/dist/constants.d.cts.map +1 -0
- package/dist/constants.d.ts +113 -148
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +336 -444
- package/dist/constants.js.map +1 -1
- package/dist/errors.cjs +151 -179
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +81 -0
- package/dist/errors.d.cts.map +1 -0
- package/dist/errors.d.ts +56 -46
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +140 -165
- package/dist/errors.js.map +1 -1
- package/dist/func/index.cjs +292 -290
- package/dist/func/index.cjs.map +1 -0
- package/dist/func/index.d.cts +293 -0
- package/dist/func/index.d.cts.map +1 -0
- package/dist/func/index.d.ts +86 -72
- package/dist/func/index.d.ts.map +1 -0
- package/dist/func/index.js +288 -284
- package/dist/func/index.js.map +1 -1
- package/dist/func/types.d.cts +64 -0
- package/dist/func/types.d.cts.map +1 -0
- package/dist/func/types.d.ts +24 -19
- package/dist/func/types.d.ts.map +1 -0
- package/dist/graph/annotation.cjs +96 -120
- package/dist/graph/annotation.cjs.map +1 -0
- package/dist/graph/annotation.d.cts +116 -0
- package/dist/graph/annotation.d.cts.map +1 -0
- package/dist/graph/annotation.d.ts +33 -34
- package/dist/graph/annotation.d.ts.map +1 -0
- package/dist/graph/annotation.js +91 -112
- package/dist/graph/annotation.js.map +1 -1
- package/dist/graph/graph.cjs +419 -723
- package/dist/graph/graph.cjs.map +1 -0
- package/dist/graph/graph.d.cts +133 -0
- package/dist/graph/graph.d.cts.map +1 -0
- package/dist/graph/graph.d.ts +124 -91
- package/dist/graph/graph.d.ts.map +1 -0
- package/dist/graph/graph.js +412 -713
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/index.cjs +4 -17
- package/dist/graph/index.js +6 -5
- package/dist/graph/message.cjs +59 -104
- package/dist/graph/message.cjs.map +1 -0
- package/dist/graph/message.d.cts +19 -0
- package/dist/graph/message.d.cts.map +1 -0
- package/dist/graph/message.d.ts +11 -10
- package/dist/graph/message.d.ts.map +1 -0
- package/dist/graph/message.js +56 -98
- package/dist/graph/message.js.map +1 -1
- package/dist/graph/messages_annotation.cjs +106 -106
- package/dist/graph/messages_annotation.cjs.map +1 -0
- package/dist/graph/messages_annotation.d.cts +111 -0
- package/dist/graph/messages_annotation.d.cts.map +1 -0
- package/dist/graph/messages_annotation.d.ts +18 -9
- package/dist/graph/messages_annotation.d.ts.map +1 -0
- package/dist/graph/messages_annotation.js +100 -100
- package/dist/graph/messages_annotation.js.map +1 -1
- package/dist/graph/state.cjs +475 -779
- package/dist/graph/state.cjs.map +1 -0
- package/dist/graph/state.d.cts +231 -0
- package/dist/graph/state.d.cts.map +1 -0
- package/dist/graph/state.d.ts +148 -138
- package/dist/graph/state.d.ts.map +1 -0
- package/dist/graph/state.js +469 -769
- package/dist/graph/state.js.map +1 -1
- package/dist/graph/zod/index.cjs +10 -21
- package/dist/graph/zod/index.d.cts +3 -0
- package/dist/graph/zod/index.d.ts +3 -3
- package/dist/graph/zod/index.js +4 -4
- package/dist/graph/zod/meta.cjs +142 -177
- package/dist/graph/zod/meta.cjs.map +1 -0
- package/dist/graph/zod/meta.d.cts +116 -0
- package/dist/graph/zod/meta.d.cts.map +1 -0
- package/dist/graph/zod/meta.d.ts +99 -97
- package/dist/graph/zod/meta.d.ts.map +1 -0
- package/dist/graph/zod/meta.js +136 -170
- package/dist/graph/zod/meta.js.map +1 -1
- package/dist/graph/zod/plugin.cjs +36 -39
- package/dist/graph/zod/plugin.cjs.map +1 -0
- package/dist/graph/zod/plugin.js +34 -35
- package/dist/graph/zod/plugin.js.map +1 -1
- package/dist/graph/zod/schema.cjs +82 -110
- package/dist/graph/zod/schema.cjs.map +1 -0
- package/dist/graph/zod/schema.d.cts +38 -0
- package/dist/graph/zod/schema.d.cts.map +1 -0
- package/dist/graph/zod/schema.d.ts +12 -6
- package/dist/graph/zod/schema.d.ts.map +1 -0
- package/dist/graph/zod/schema.js +77 -103
- package/dist/graph/zod/schema.js.map +1 -1
- package/dist/graph/zod/zod-registry.cjs +41 -47
- package/dist/graph/zod/zod-registry.cjs.map +1 -0
- package/dist/graph/zod/zod-registry.d.cts +51 -0
- package/dist/graph/zod/zod-registry.d.cts.map +1 -0
- package/dist/graph/zod/zod-registry.d.ts +34 -26
- package/dist/graph/zod/zod-registry.d.ts.map +1 -0
- package/dist/graph/zod/zod-registry.js +37 -41
- package/dist/graph/zod/zod-registry.js.map +1 -1
- package/dist/hash.cjs +205 -267
- package/dist/hash.cjs.map +1 -0
- package/dist/hash.js +205 -265
- package/dist/hash.js.map +1 -1
- package/dist/index.cjs +111 -33
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +26 -0
- package/dist/index.d.ts +26 -5
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/dist/interrupt.cjs +79 -85
- package/dist/interrupt.cjs.map +1 -0
- package/dist/interrupt.d.cts +49 -0
- package/dist/interrupt.d.cts.map +1 -0
- package/dist/interrupt.d.ts +6 -1
- package/dist/interrupt.d.ts.map +1 -0
- package/dist/interrupt.js +76 -80
- package/dist/interrupt.js.map +1 -1
- package/dist/prebuilt/agentName.cjs +139 -172
- package/dist/prebuilt/agentName.cjs.map +1 -0
- package/dist/prebuilt/agentName.d.cts +42 -0
- package/dist/prebuilt/agentName.d.cts.map +1 -0
- package/dist/prebuilt/agentName.d.ts +13 -21
- package/dist/prebuilt/agentName.d.ts.map +1 -0
- package/dist/prebuilt/agentName.js +139 -168
- package/dist/prebuilt/agentName.js.map +1 -1
- package/dist/prebuilt/agent_executor.cjs +42 -80
- package/dist/prebuilt/agent_executor.cjs.map +1 -0
- package/dist/prebuilt/agent_executor.d.cts +57 -0
- package/dist/prebuilt/agent_executor.d.cts.map +1 -0
- package/dist/prebuilt/agent_executor.d.ts +47 -38
- package/dist/prebuilt/agent_executor.d.ts.map +1 -0
- package/dist/prebuilt/agent_executor.js +40 -75
- package/dist/prebuilt/agent_executor.js.map +1 -1
- package/dist/prebuilt/chat_agent_executor.cjs +66 -128
- package/dist/prebuilt/chat_agent_executor.cjs.map +1 -0
- package/dist/prebuilt/chat_agent_executor.d.cts +23 -0
- package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -0
- package/dist/prebuilt/chat_agent_executor.d.ts +18 -10
- package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -0
- package/dist/prebuilt/chat_agent_executor.js +63 -123
- package/dist/prebuilt/chat_agent_executor.js.map +1 -1
- package/dist/prebuilt/index.cjs +15 -18
- package/dist/prebuilt/index.d.cts +8 -0
- package/dist/prebuilt/index.d.ts +8 -8
- package/dist/prebuilt/index.js +8 -7
- package/dist/prebuilt/interrupt.d.cts +73 -0
- package/dist/prebuilt/interrupt.d.cts.map +1 -0
- package/dist/prebuilt/interrupt.d.ts +32 -15
- package/dist/prebuilt/interrupt.d.ts.map +1 -0
- package/dist/prebuilt/react_agent_executor.cjs +317 -473
- package/dist/prebuilt/react_agent_executor.cjs.map +1 -0
- package/dist/prebuilt/react_agent_executor.d.cts +229 -0
- package/dist/prebuilt/react_agent_executor.d.cts.map +1 -0
- package/dist/prebuilt/react_agent_executor.d.ts +171 -143
- package/dist/prebuilt/react_agent_executor.d.ts.map +1 -0
- package/dist/prebuilt/react_agent_executor.js +315 -465
- package/dist/prebuilt/react_agent_executor.js.map +1 -1
- package/dist/prebuilt/tool_executor.cjs +45 -67
- package/dist/prebuilt/tool_executor.cjs.map +1 -0
- package/dist/prebuilt/tool_executor.d.cts +42 -0
- package/dist/prebuilt/tool_executor.d.cts.map +1 -0
- package/dist/prebuilt/tool_executor.d.ts +30 -24
- package/dist/prebuilt/tool_executor.d.ts.map +1 -0
- package/dist/prebuilt/tool_executor.js +44 -63
- package/dist/prebuilt/tool_executor.js.map +1 -1
- package/dist/prebuilt/tool_node.cjs +213 -275
- package/dist/prebuilt/tool_node.cjs.map +1 -0
- package/dist/prebuilt/tool_node.d.cts +151 -0
- package/dist/prebuilt/tool_node.d.cts.map +1 -0
- package/dist/prebuilt/tool_node.d.ts +30 -17
- package/dist/prebuilt/tool_node.d.ts.map +1 -0
- package/dist/prebuilt/tool_node.js +209 -268
- package/dist/prebuilt/tool_node.js.map +1 -1
- package/dist/pregel/algo.cjs +551 -692
- package/dist/pregel/algo.cjs.map +1 -0
- package/dist/pregel/algo.d.cts +13 -0
- package/dist/pregel/algo.d.cts.map +1 -0
- package/dist/pregel/algo.d.ts +8 -38
- package/dist/pregel/algo.d.ts.map +1 -0
- package/dist/pregel/algo.js +546 -683
- package/dist/pregel/algo.js.map +1 -1
- package/dist/pregel/call.cjs +46 -42
- package/dist/pregel/call.cjs.map +1 -0
- package/dist/pregel/call.js +43 -37
- package/dist/pregel/call.js.map +1 -1
- package/dist/pregel/debug.cjs +153 -223
- package/dist/pregel/debug.cjs.map +1 -0
- package/dist/pregel/debug.js +152 -215
- package/dist/pregel/debug.js.map +1 -1
- package/dist/pregel/index.cjs +1138 -1604
- package/dist/pregel/index.cjs.map +1 -0
- package/dist/pregel/index.d.cts +536 -0
- package/dist/pregel/index.d.cts.map +1 -0
- package/dist/pregel/index.d.ts +460 -422
- package/dist/pregel/index.d.ts.map +1 -0
- package/dist/pregel/index.js +1129 -1592
- package/dist/pregel/index.js.map +1 -1
- package/dist/pregel/io.cjs +127 -234
- package/dist/pregel/io.cjs.map +1 -0
- package/dist/pregel/io.js +122 -225
- package/dist/pregel/io.js.map +1 -1
- package/dist/pregel/loop.cjs +542 -954
- package/dist/pregel/loop.cjs.map +1 -0
- package/dist/pregel/loop.js +539 -948
- package/dist/pregel/loop.js.map +1 -1
- package/dist/pregel/messages.cjs +104 -196
- package/dist/pregel/messages.cjs.map +1 -0
- package/dist/pregel/messages.js +102 -191
- package/dist/pregel/messages.js.map +1 -1
- package/dist/pregel/read.cjs +150 -280
- package/dist/pregel/read.cjs.map +1 -0
- package/dist/pregel/read.d.cts +51 -0
- package/dist/pregel/read.d.cts.map +1 -0
- package/dist/pregel/read.d.ts +48 -46
- package/dist/pregel/read.d.ts.map +1 -0
- package/dist/pregel/read.js +147 -274
- package/dist/pregel/read.js.map +1 -1
- package/dist/pregel/remote.cjs +339 -458
- package/dist/pregel/remote.cjs.map +1 -0
- package/dist/pregel/remote.d.cts +121 -0
- package/dist/pregel/remote.d.cts.map +1 -0
- package/dist/pregel/remote.d.ts +79 -69
- package/dist/pregel/remote.d.ts.map +1 -0
- package/dist/pregel/remote.js +337 -453
- package/dist/pregel/remote.js.map +1 -1
- package/dist/pregel/retry.cjs +87 -138
- package/dist/pregel/retry.cjs.map +1 -0
- package/dist/pregel/retry.js +83 -130
- package/dist/pregel/retry.js.map +1 -1
- package/dist/pregel/runnable_types.d.cts +49 -0
- package/dist/pregel/runnable_types.d.cts.map +1 -0
- package/dist/pregel/runnable_types.d.ts +47 -17
- package/dist/pregel/runnable_types.d.ts.map +1 -0
- package/dist/pregel/runner.cjs +222 -315
- package/dist/pregel/runner.cjs.map +1 -0
- package/dist/pregel/runner.js +219 -308
- package/dist/pregel/runner.js.map +1 -1
- package/dist/pregel/stream.cjs +89 -130
- package/dist/pregel/stream.cjs.map +1 -0
- package/dist/pregel/stream.js +87 -125
- package/dist/pregel/stream.js.map +1 -1
- package/dist/pregel/types.cjs +25 -62
- package/dist/pregel/types.cjs.map +1 -0
- package/dist/pregel/types.d.cts +440 -0
- package/dist/pregel/types.d.cts.map +1 -0
- package/dist/pregel/types.d.ts +381 -432
- package/dist/pregel/types.d.ts.map +1 -0
- package/dist/pregel/types.js +23 -57
- package/dist/pregel/types.js.map +1 -1
- package/dist/pregel/utils/config.cjs +101 -147
- package/dist/pregel/utils/config.cjs.map +1 -0
- package/dist/pregel/utils/config.d.cts +36 -0
- package/dist/pregel/utils/config.d.cts.map +1 -0
- package/dist/pregel/utils/config.d.ts +12 -9
- package/dist/pregel/utils/config.d.ts.map +1 -0
- package/dist/pregel/utils/config.js +99 -143
- package/dist/pregel/utils/config.js.map +1 -1
- package/dist/pregel/utils/index.cjs +87 -125
- package/dist/pregel/utils/index.cjs.map +1 -0
- package/dist/pregel/utils/index.d.cts +51 -0
- package/dist/pregel/utils/index.d.cts.map +1 -0
- package/dist/pregel/utils/index.d.ts +45 -61
- package/dist/pregel/utils/index.d.ts.map +1 -0
- package/dist/pregel/utils/index.js +86 -120
- package/dist/pregel/utils/index.js.map +1 -1
- package/dist/pregel/utils/subgraph.cjs +15 -26
- package/dist/pregel/utils/subgraph.cjs.map +1 -0
- package/dist/pregel/utils/subgraph.js +12 -21
- package/dist/pregel/utils/subgraph.js.map +1 -1
- package/dist/pregel/validate.cjs +42 -92
- package/dist/pregel/validate.cjs.map +1 -0
- package/dist/pregel/validate.js +39 -84
- package/dist/pregel/validate.js.map +1 -1
- package/dist/pregel/write.cjs +87 -137
- package/dist/pregel/write.cjs.map +1 -0
- package/dist/pregel/write.d.cts +35 -0
- package/dist/pregel/write.d.cts.map +1 -0
- package/dist/pregel/write.d.ts +27 -23
- package/dist/pregel/write.d.ts.map +1 -0
- package/dist/pregel/write.js +83 -131
- package/dist/pregel/write.js.map +1 -1
- package/dist/remote.cjs +3 -6
- package/dist/remote.d.cts +2 -0
- package/dist/remote.d.ts +2 -1
- package/dist/remote.js +3 -2
- package/dist/setup/async_local_storage.cjs +10 -7
- package/dist/setup/async_local_storage.cjs.map +1 -0
- package/dist/setup/async_local_storage.js +7 -2
- package/dist/setup/async_local_storage.js.map +1 -1
- package/dist/ui/index.cjs +4 -0
- package/dist/ui/index.d.cts +5 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/stream.cjs +145 -0
- package/dist/ui/stream.cjs.map +1 -0
- package/dist/ui/stream.d.cts +25 -0
- package/dist/ui/stream.d.cts.map +1 -0
- package/dist/ui/stream.d.ts +25 -0
- package/dist/ui/stream.d.ts.map +1 -0
- package/dist/ui/stream.js +143 -0
- package/dist/ui/stream.js.map +1 -0
- package/dist/ui/types.infer.d.cts +53 -0
- package/dist/ui/types.infer.d.cts.map +1 -0
- package/dist/ui/types.infer.d.ts +53 -0
- package/dist/ui/types.infer.d.ts.map +1 -0
- package/dist/ui/types.message.d.cts +95 -0
- package/dist/ui/types.message.d.cts.map +1 -0
- package/dist/ui/types.message.d.ts +95 -0
- package/dist/ui/types.message.d.ts.map +1 -0
- package/dist/ui/types.schema.d.cts +228 -0
- package/dist/ui/types.schema.d.cts.map +1 -0
- package/dist/ui/types.schema.d.ts +228 -0
- package/dist/ui/types.schema.d.ts.map +1 -0
- package/dist/utils.cjs +77 -147
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +32 -0
- package/dist/utils.d.cts.map +1 -0
- package/dist/utils.d.ts +29 -25
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +73 -140
- package/dist/utils.js.map +1 -1
- package/dist/web.cjs +96 -55
- package/dist/web.d.cts +23 -0
- package/dist/web.d.ts +23 -14
- package/dist/web.js +15 -8
- package/dist/writer.cjs +15 -0
- package/dist/writer.cjs.map +1 -0
- package/dist/writer.d.cts +5 -0
- package/dist/writer.d.cts.map +1 -0
- package/dist/writer.d.ts +5 -0
- package/dist/writer.d.ts.map +1 -0
- package/dist/writer.js +14 -0
- package/dist/writer.js.map +1 -0
- package/package.json +90 -83
- package/dist/channels/index.js.map +0 -1
- package/dist/func/types.cjs +0 -15
- package/dist/func/types.js +0 -12
- package/dist/func/types.js.map +0 -1
- package/dist/graph/index.d.ts +0 -4
- package/dist/graph/index.js.map +0 -1
- package/dist/graph/message.test.cjs +0 -196
- package/dist/graph/message.test.d.ts +0 -1
- package/dist/graph/message.test.js +0 -194
- package/dist/graph/message.test.js.map +0 -1
- package/dist/graph/zod/index.js.map +0 -1
- package/dist/graph/zod/plugin.d.ts +0 -28
- package/dist/hash.d.ts +0 -2
- package/dist/prebuilt/index.js.map +0 -1
- package/dist/prebuilt/interrupt.cjs +0 -3
- package/dist/prebuilt/interrupt.js +0 -2
- package/dist/prebuilt/interrupt.js.map +0 -1
- package/dist/pregel/call.d.ts +0 -16
- package/dist/pregel/debug.d.ts +0 -41
- package/dist/pregel/debug.test.cjs +0 -258
- package/dist/pregel/debug.test.d.ts +0 -1
- package/dist/pregel/debug.test.js +0 -256
- package/dist/pregel/debug.test.js.map +0 -1
- package/dist/pregel/io.d.ts +0 -30
- package/dist/pregel/io.mapCommand.test.cjs +0 -150
- package/dist/pregel/io.mapCommand.test.d.ts +0 -1
- package/dist/pregel/io.mapCommand.test.js +0 -148
- package/dist/pregel/io.mapCommand.test.js.map +0 -1
- package/dist/pregel/loop.d.ts +0 -147
- package/dist/pregel/messages.d.ts +0 -30
- package/dist/pregel/messages.test.cjs +0 -369
- package/dist/pregel/messages.test.d.ts +0 -1
- package/dist/pregel/messages.test.js +0 -367
- package/dist/pregel/messages.test.js.map +0 -1
- package/dist/pregel/read.test.cjs +0 -194
- package/dist/pregel/read.test.d.ts +0 -1
- package/dist/pregel/read.test.js +0 -192
- package/dist/pregel/read.test.js.map +0 -1
- package/dist/pregel/retry.d.ts +0 -17
- package/dist/pregel/runnable_types.cjs +0 -3
- package/dist/pregel/runnable_types.js +0 -2
- package/dist/pregel/runnable_types.js.map +0 -1
- package/dist/pregel/runner.d.ts +0 -79
- package/dist/pregel/runner.test.cjs +0 -66
- package/dist/pregel/runner.test.d.ts +0 -1
- package/dist/pregel/runner.test.js +0 -64
- package/dist/pregel/runner.test.js.map +0 -1
- package/dist/pregel/stream.d.ts +0 -40
- package/dist/pregel/utils/config.test.cjs +0 -214
- package/dist/pregel/utils/config.test.d.ts +0 -1
- package/dist/pregel/utils/config.test.js +0 -212
- package/dist/pregel/utils/config.test.js.map +0 -1
- package/dist/pregel/utils/subgraph.d.ts +0 -4
- package/dist/pregel/utils/subgraph.test.cjs +0 -83
- package/dist/pregel/utils/subgraph.test.d.ts +0 -1
- package/dist/pregel/utils/subgraph.test.js +0 -81
- package/dist/pregel/utils/subgraph.test.js.map +0 -1
- package/dist/pregel/validate.d.ts +0 -16
- package/dist/pregel/validate.test.cjs +0 -220
- package/dist/pregel/validate.test.d.ts +0 -1
- package/dist/pregel/validate.test.js +0 -218
- package/dist/pregel/validate.test.js.map +0 -1
- package/dist/pregel/write.test.cjs +0 -181
- package/dist/pregel/write.test.d.ts +0 -1
- package/dist/pregel/write.test.js +0 -179
- package/dist/pregel/write.test.js.map +0 -1
- package/dist/remote.js.map +0 -1
- package/dist/setup/async_local_storage.d.ts +0 -1
- package/dist/web.js.map +0 -1
- package/index.cjs +0 -1
- package/index.d.cts +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/prebuilt.cjs +0 -1
- package/prebuilt.d.cts +0 -1
- package/prebuilt.d.ts +0 -1
- package/prebuilt.js +0 -1
- package/pregel.cjs +0 -1
- package/pregel.d.cts +0 -1
- package/pregel.d.ts +0 -1
- package/pregel.js +0 -1
- package/remote.cjs +0 -1
- package/remote.d.cts +0 -1
- package/remote.d.ts +0 -1
- package/remote.js +0 -1
- package/web.cjs +0 -1
- package/web.d.cts +0 -1
- package/web.d.ts +0 -1
- package/web.js +0 -1
- package/zod/schema.cjs +0 -1
- package/zod/schema.d.cts +0 -1
- package/zod/schema.d.ts +0 -1
- package/zod/schema.js +0 -1
- package/zod.cjs +0 -1
- package/zod.d.cts +0 -1
- package/zod.d.ts +0 -1
- package/zod.js +0 -1
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const validate_js_1 = require("./validate.cjs");
|
|
5
|
-
const read_js_1 = require("./read.cjs");
|
|
6
|
-
const constants_js_1 = require("../constants.cjs");
|
|
7
|
-
const last_value_js_1 = require("../channels/last_value.cjs");
|
|
8
|
-
// Common test setup
|
|
9
|
-
const setupValidGraph = () => {
|
|
10
|
-
// Create test channels
|
|
11
|
-
const inputChannel = new last_value_js_1.LastValue();
|
|
12
|
-
const outputChannel = new last_value_js_1.LastValue();
|
|
13
|
-
// Create test nodes
|
|
14
|
-
const testNode = new read_js_1.PregelNode({
|
|
15
|
-
channels: {},
|
|
16
|
-
triggers: ["input"],
|
|
17
|
-
});
|
|
18
|
-
return {
|
|
19
|
-
nodes: { testNode },
|
|
20
|
-
channels: {
|
|
21
|
-
input: inputChannel,
|
|
22
|
-
output: outputChannel,
|
|
23
|
-
},
|
|
24
|
-
inputChannels: "input",
|
|
25
|
-
outputChannels: "output",
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
(0, vitest_1.describe)("GraphValidationError", () => {
|
|
29
|
-
(0, vitest_1.it)("should be properly constructed with the right name", () => {
|
|
30
|
-
const error = new validate_js_1.GraphValidationError("Test error message");
|
|
31
|
-
(0, vitest_1.expect)(error).toBeInstanceOf(Error);
|
|
32
|
-
(0, vitest_1.expect)(error.name).toBe("GraphValidationError");
|
|
33
|
-
(0, vitest_1.expect)(error.message).toBe("Test error message");
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
(0, vitest_1.describe)("validateGraph", () => {
|
|
37
|
-
(0, vitest_1.it)("should validate a correct graph without errors", () => {
|
|
38
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
39
|
-
// Act & Assert: Should not throw
|
|
40
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
41
|
-
nodes,
|
|
42
|
-
channels,
|
|
43
|
-
inputChannels,
|
|
44
|
-
outputChannels,
|
|
45
|
-
})).not.toThrow();
|
|
46
|
-
});
|
|
47
|
-
(0, vitest_1.it)("should throw when channels are not provided", () => {
|
|
48
|
-
const { nodes, inputChannels, outputChannels } = setupValidGraph();
|
|
49
|
-
// Act & Assert: Should throw with specific message
|
|
50
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
51
|
-
nodes,
|
|
52
|
-
channels: null,
|
|
53
|
-
inputChannels,
|
|
54
|
-
outputChannels,
|
|
55
|
-
})).toThrow("Channels not provided");
|
|
56
|
-
});
|
|
57
|
-
(0, vitest_1.it)("should throw when a node is named INTERRUPT", () => {
|
|
58
|
-
const { channels, inputChannels, outputChannels } = setupValidGraph();
|
|
59
|
-
// Create a node with the reserved name
|
|
60
|
-
const badNode = new read_js_1.PregelNode({
|
|
61
|
-
channels: {},
|
|
62
|
-
triggers: ["input"],
|
|
63
|
-
});
|
|
64
|
-
// Create nodes object with the reserved name
|
|
65
|
-
const nodes = { [constants_js_1.INTERRUPT]: badNode };
|
|
66
|
-
// Act & Assert: Should throw specific error
|
|
67
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
68
|
-
nodes,
|
|
69
|
-
channels,
|
|
70
|
-
inputChannels,
|
|
71
|
-
outputChannels,
|
|
72
|
-
})).toThrow(`"Node name ${constants_js_1.INTERRUPT} is reserved"`);
|
|
73
|
-
});
|
|
74
|
-
(0, vitest_1.it)("should throw when a node is not a PregelNode instance", () => {
|
|
75
|
-
const { channels, inputChannels, outputChannels } = setupValidGraph();
|
|
76
|
-
// Create an invalid node (not a PregelNode)
|
|
77
|
-
const badNode = {
|
|
78
|
-
triggers: ["input"],
|
|
79
|
-
func: () => "not a pregel node",
|
|
80
|
-
};
|
|
81
|
-
// Create nodes object with invalid node
|
|
82
|
-
const nodes = {
|
|
83
|
-
badNode: badNode,
|
|
84
|
-
};
|
|
85
|
-
// Act & Assert: Should throw specific error
|
|
86
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
87
|
-
nodes,
|
|
88
|
-
channels,
|
|
89
|
-
inputChannels,
|
|
90
|
-
outputChannels,
|
|
91
|
-
})).toThrow("Invalid node type object, expected PregelNode");
|
|
92
|
-
});
|
|
93
|
-
(0, vitest_1.it)("should throw when a subscribed channel is not in channels", () => {
|
|
94
|
-
const { channels, inputChannels, outputChannels } = setupValidGraph();
|
|
95
|
-
// Create a node that subscribes to a non-existent channel
|
|
96
|
-
const badNode = new read_js_1.PregelNode({
|
|
97
|
-
channels: {},
|
|
98
|
-
triggers: ["nonexistent"],
|
|
99
|
-
});
|
|
100
|
-
const nodes = { badNode };
|
|
101
|
-
// Act & Assert: Should throw specific error
|
|
102
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
103
|
-
nodes,
|
|
104
|
-
channels,
|
|
105
|
-
inputChannels,
|
|
106
|
-
outputChannels,
|
|
107
|
-
})).toThrow("Subscribed channel 'nonexistent' not in channels");
|
|
108
|
-
});
|
|
109
|
-
(0, vitest_1.it)("should throw when a singular input channel is not subscribed by any node", () => {
|
|
110
|
-
const { nodes, channels } = setupValidGraph();
|
|
111
|
-
// Act & Assert: Should throw specific error for an unused input
|
|
112
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
113
|
-
nodes,
|
|
114
|
-
channels,
|
|
115
|
-
inputChannels: "output", // not subscribed by any node
|
|
116
|
-
outputChannels: "output",
|
|
117
|
-
})).toThrow("Input channel output is not subscribed to by any node");
|
|
118
|
-
});
|
|
119
|
-
(0, vitest_1.it)("should throw when none of the array input channels are subscribed by any node", () => {
|
|
120
|
-
const { nodes, channels } = setupValidGraph();
|
|
121
|
-
// Act & Assert: Should throw specific error for unused inputs
|
|
122
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
123
|
-
nodes,
|
|
124
|
-
channels,
|
|
125
|
-
inputChannels: [
|
|
126
|
-
"output",
|
|
127
|
-
"nonexistent",
|
|
128
|
-
], // neither is subscribed
|
|
129
|
-
outputChannels: "output",
|
|
130
|
-
})).toThrow("None of the input channels output,nonexistent are subscribed to by any node");
|
|
131
|
-
});
|
|
132
|
-
(0, vitest_1.it)("should throw when an output channel is not in channels", () => {
|
|
133
|
-
const { nodes, channels, inputChannels } = setupValidGraph();
|
|
134
|
-
// Act & Assert: Should throw specific error
|
|
135
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
136
|
-
nodes,
|
|
137
|
-
channels,
|
|
138
|
-
inputChannels,
|
|
139
|
-
outputChannels: "nonexistent",
|
|
140
|
-
})).toThrow("Output channel 'nonexistent' not in channels");
|
|
141
|
-
});
|
|
142
|
-
(0, vitest_1.it)("should throw when a stream channel is not in channels", () => {
|
|
143
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
144
|
-
// Act & Assert: Should throw specific error
|
|
145
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
146
|
-
nodes,
|
|
147
|
-
channels,
|
|
148
|
-
inputChannels,
|
|
149
|
-
outputChannels,
|
|
150
|
-
streamChannels: "nonexistent",
|
|
151
|
-
})).toThrow("Output channel 'nonexistent' not in channels");
|
|
152
|
-
});
|
|
153
|
-
(0, vitest_1.it)("should throw when an interruptAfterNode is not in nodes", () => {
|
|
154
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
155
|
-
// Act & Assert: Should throw specific error
|
|
156
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
157
|
-
nodes,
|
|
158
|
-
channels,
|
|
159
|
-
inputChannels,
|
|
160
|
-
outputChannels,
|
|
161
|
-
interruptAfterNodes: [
|
|
162
|
-
"nonexistentNode",
|
|
163
|
-
],
|
|
164
|
-
})).toThrow("Node nonexistentNode not in nodes");
|
|
165
|
-
});
|
|
166
|
-
(0, vitest_1.it)("should throw when an interruptBeforeNode is not in nodes", () => {
|
|
167
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
168
|
-
// Act & Assert: Should throw specific error
|
|
169
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
170
|
-
nodes,
|
|
171
|
-
channels,
|
|
172
|
-
inputChannels,
|
|
173
|
-
outputChannels,
|
|
174
|
-
interruptBeforeNodes: [
|
|
175
|
-
"nonexistentNode",
|
|
176
|
-
],
|
|
177
|
-
})).toThrow("Node nonexistentNode not in nodes");
|
|
178
|
-
});
|
|
179
|
-
(0, vitest_1.it)("should accept '*' as a valid value for interruptAfterNodes", () => {
|
|
180
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
181
|
-
// Act & Assert: Should not throw
|
|
182
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
183
|
-
nodes,
|
|
184
|
-
channels,
|
|
185
|
-
inputChannels,
|
|
186
|
-
outputChannels,
|
|
187
|
-
interruptAfterNodes: "*",
|
|
188
|
-
})).not.toThrow();
|
|
189
|
-
});
|
|
190
|
-
(0, vitest_1.it)("should accept '*' as a valid value for interruptBeforeNodes", () => {
|
|
191
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
192
|
-
// Act & Assert: Should not throw
|
|
193
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateGraph)({
|
|
194
|
-
nodes,
|
|
195
|
-
channels,
|
|
196
|
-
inputChannels,
|
|
197
|
-
outputChannels,
|
|
198
|
-
interruptBeforeNodes: "*",
|
|
199
|
-
})).not.toThrow();
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
(0, vitest_1.describe)("validateKeys", () => {
|
|
203
|
-
(0, vitest_1.it)("should validate keys that exist in channels", () => {
|
|
204
|
-
const { channels } = setupValidGraph();
|
|
205
|
-
// Act & Assert: Should not throw for valid keys
|
|
206
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateKeys)("input", channels)).not.toThrow();
|
|
207
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateKeys)(["input", "output"], channels)).not.toThrow();
|
|
208
|
-
});
|
|
209
|
-
(0, vitest_1.it)("should throw when a single key doesn't exist in channels", () => {
|
|
210
|
-
const { channels } = setupValidGraph();
|
|
211
|
-
// Act & Assert: Should throw with specific message
|
|
212
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateKeys)("nonexistent", channels)).toThrow("Key nonexistent not found in channels");
|
|
213
|
-
});
|
|
214
|
-
(0, vitest_1.it)("should throw when any key in an array doesn't exist in channels", () => {
|
|
215
|
-
const { channels } = setupValidGraph();
|
|
216
|
-
// Act & Assert: Should throw with specific message
|
|
217
|
-
(0, vitest_1.expect)(() => (0, validate_js_1.validateKeys)(["input", "nonexistent"], channels)).toThrow("Key nonexistent not found in channels");
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
//# sourceMappingURL=validate.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { GraphValidationError, validateGraph, validateKeys, } from "./validate.js";
|
|
3
|
-
import { PregelNode } from "./read.js";
|
|
4
|
-
import { INTERRUPT } from "../constants.js";
|
|
5
|
-
import { LastValue } from "../channels/last_value.js";
|
|
6
|
-
// Common test setup
|
|
7
|
-
const setupValidGraph = () => {
|
|
8
|
-
// Create test channels
|
|
9
|
-
const inputChannel = new LastValue();
|
|
10
|
-
const outputChannel = new LastValue();
|
|
11
|
-
// Create test nodes
|
|
12
|
-
const testNode = new PregelNode({
|
|
13
|
-
channels: {},
|
|
14
|
-
triggers: ["input"],
|
|
15
|
-
});
|
|
16
|
-
return {
|
|
17
|
-
nodes: { testNode },
|
|
18
|
-
channels: {
|
|
19
|
-
input: inputChannel,
|
|
20
|
-
output: outputChannel,
|
|
21
|
-
},
|
|
22
|
-
inputChannels: "input",
|
|
23
|
-
outputChannels: "output",
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
describe("GraphValidationError", () => {
|
|
27
|
-
it("should be properly constructed with the right name", () => {
|
|
28
|
-
const error = new GraphValidationError("Test error message");
|
|
29
|
-
expect(error).toBeInstanceOf(Error);
|
|
30
|
-
expect(error.name).toBe("GraphValidationError");
|
|
31
|
-
expect(error.message).toBe("Test error message");
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
describe("validateGraph", () => {
|
|
35
|
-
it("should validate a correct graph without errors", () => {
|
|
36
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
37
|
-
// Act & Assert: Should not throw
|
|
38
|
-
expect(() => validateGraph({
|
|
39
|
-
nodes,
|
|
40
|
-
channels,
|
|
41
|
-
inputChannels,
|
|
42
|
-
outputChannels,
|
|
43
|
-
})).not.toThrow();
|
|
44
|
-
});
|
|
45
|
-
it("should throw when channels are not provided", () => {
|
|
46
|
-
const { nodes, inputChannels, outputChannels } = setupValidGraph();
|
|
47
|
-
// Act & Assert: Should throw with specific message
|
|
48
|
-
expect(() => validateGraph({
|
|
49
|
-
nodes,
|
|
50
|
-
channels: null,
|
|
51
|
-
inputChannels,
|
|
52
|
-
outputChannels,
|
|
53
|
-
})).toThrow("Channels not provided");
|
|
54
|
-
});
|
|
55
|
-
it("should throw when a node is named INTERRUPT", () => {
|
|
56
|
-
const { channels, inputChannels, outputChannels } = setupValidGraph();
|
|
57
|
-
// Create a node with the reserved name
|
|
58
|
-
const badNode = new PregelNode({
|
|
59
|
-
channels: {},
|
|
60
|
-
triggers: ["input"],
|
|
61
|
-
});
|
|
62
|
-
// Create nodes object with the reserved name
|
|
63
|
-
const nodes = { [INTERRUPT]: badNode };
|
|
64
|
-
// Act & Assert: Should throw specific error
|
|
65
|
-
expect(() => validateGraph({
|
|
66
|
-
nodes,
|
|
67
|
-
channels,
|
|
68
|
-
inputChannels,
|
|
69
|
-
outputChannels,
|
|
70
|
-
})).toThrow(`"Node name ${INTERRUPT} is reserved"`);
|
|
71
|
-
});
|
|
72
|
-
it("should throw when a node is not a PregelNode instance", () => {
|
|
73
|
-
const { channels, inputChannels, outputChannels } = setupValidGraph();
|
|
74
|
-
// Create an invalid node (not a PregelNode)
|
|
75
|
-
const badNode = {
|
|
76
|
-
triggers: ["input"],
|
|
77
|
-
func: () => "not a pregel node",
|
|
78
|
-
};
|
|
79
|
-
// Create nodes object with invalid node
|
|
80
|
-
const nodes = {
|
|
81
|
-
badNode: badNode,
|
|
82
|
-
};
|
|
83
|
-
// Act & Assert: Should throw specific error
|
|
84
|
-
expect(() => validateGraph({
|
|
85
|
-
nodes,
|
|
86
|
-
channels,
|
|
87
|
-
inputChannels,
|
|
88
|
-
outputChannels,
|
|
89
|
-
})).toThrow("Invalid node type object, expected PregelNode");
|
|
90
|
-
});
|
|
91
|
-
it("should throw when a subscribed channel is not in channels", () => {
|
|
92
|
-
const { channels, inputChannels, outputChannels } = setupValidGraph();
|
|
93
|
-
// Create a node that subscribes to a non-existent channel
|
|
94
|
-
const badNode = new PregelNode({
|
|
95
|
-
channels: {},
|
|
96
|
-
triggers: ["nonexistent"],
|
|
97
|
-
});
|
|
98
|
-
const nodes = { badNode };
|
|
99
|
-
// Act & Assert: Should throw specific error
|
|
100
|
-
expect(() => validateGraph({
|
|
101
|
-
nodes,
|
|
102
|
-
channels,
|
|
103
|
-
inputChannels,
|
|
104
|
-
outputChannels,
|
|
105
|
-
})).toThrow("Subscribed channel 'nonexistent' not in channels");
|
|
106
|
-
});
|
|
107
|
-
it("should throw when a singular input channel is not subscribed by any node", () => {
|
|
108
|
-
const { nodes, channels } = setupValidGraph();
|
|
109
|
-
// Act & Assert: Should throw specific error for an unused input
|
|
110
|
-
expect(() => validateGraph({
|
|
111
|
-
nodes,
|
|
112
|
-
channels,
|
|
113
|
-
inputChannels: "output", // not subscribed by any node
|
|
114
|
-
outputChannels: "output",
|
|
115
|
-
})).toThrow("Input channel output is not subscribed to by any node");
|
|
116
|
-
});
|
|
117
|
-
it("should throw when none of the array input channels are subscribed by any node", () => {
|
|
118
|
-
const { nodes, channels } = setupValidGraph();
|
|
119
|
-
// Act & Assert: Should throw specific error for unused inputs
|
|
120
|
-
expect(() => validateGraph({
|
|
121
|
-
nodes,
|
|
122
|
-
channels,
|
|
123
|
-
inputChannels: [
|
|
124
|
-
"output",
|
|
125
|
-
"nonexistent",
|
|
126
|
-
], // neither is subscribed
|
|
127
|
-
outputChannels: "output",
|
|
128
|
-
})).toThrow("None of the input channels output,nonexistent are subscribed to by any node");
|
|
129
|
-
});
|
|
130
|
-
it("should throw when an output channel is not in channels", () => {
|
|
131
|
-
const { nodes, channels, inputChannels } = setupValidGraph();
|
|
132
|
-
// Act & Assert: Should throw specific error
|
|
133
|
-
expect(() => validateGraph({
|
|
134
|
-
nodes,
|
|
135
|
-
channels,
|
|
136
|
-
inputChannels,
|
|
137
|
-
outputChannels: "nonexistent",
|
|
138
|
-
})).toThrow("Output channel 'nonexistent' not in channels");
|
|
139
|
-
});
|
|
140
|
-
it("should throw when a stream channel is not in channels", () => {
|
|
141
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
142
|
-
// Act & Assert: Should throw specific error
|
|
143
|
-
expect(() => validateGraph({
|
|
144
|
-
nodes,
|
|
145
|
-
channels,
|
|
146
|
-
inputChannels,
|
|
147
|
-
outputChannels,
|
|
148
|
-
streamChannels: "nonexistent",
|
|
149
|
-
})).toThrow("Output channel 'nonexistent' not in channels");
|
|
150
|
-
});
|
|
151
|
-
it("should throw when an interruptAfterNode is not in nodes", () => {
|
|
152
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
153
|
-
// Act & Assert: Should throw specific error
|
|
154
|
-
expect(() => validateGraph({
|
|
155
|
-
nodes,
|
|
156
|
-
channels,
|
|
157
|
-
inputChannels,
|
|
158
|
-
outputChannels,
|
|
159
|
-
interruptAfterNodes: [
|
|
160
|
-
"nonexistentNode",
|
|
161
|
-
],
|
|
162
|
-
})).toThrow("Node nonexistentNode not in nodes");
|
|
163
|
-
});
|
|
164
|
-
it("should throw when an interruptBeforeNode is not in nodes", () => {
|
|
165
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
166
|
-
// Act & Assert: Should throw specific error
|
|
167
|
-
expect(() => validateGraph({
|
|
168
|
-
nodes,
|
|
169
|
-
channels,
|
|
170
|
-
inputChannels,
|
|
171
|
-
outputChannels,
|
|
172
|
-
interruptBeforeNodes: [
|
|
173
|
-
"nonexistentNode",
|
|
174
|
-
],
|
|
175
|
-
})).toThrow("Node nonexistentNode not in nodes");
|
|
176
|
-
});
|
|
177
|
-
it("should accept '*' as a valid value for interruptAfterNodes", () => {
|
|
178
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
179
|
-
// Act & Assert: Should not throw
|
|
180
|
-
expect(() => validateGraph({
|
|
181
|
-
nodes,
|
|
182
|
-
channels,
|
|
183
|
-
inputChannels,
|
|
184
|
-
outputChannels,
|
|
185
|
-
interruptAfterNodes: "*",
|
|
186
|
-
})).not.toThrow();
|
|
187
|
-
});
|
|
188
|
-
it("should accept '*' as a valid value for interruptBeforeNodes", () => {
|
|
189
|
-
const { nodes, channels, inputChannels, outputChannels } = setupValidGraph();
|
|
190
|
-
// Act & Assert: Should not throw
|
|
191
|
-
expect(() => validateGraph({
|
|
192
|
-
nodes,
|
|
193
|
-
channels,
|
|
194
|
-
inputChannels,
|
|
195
|
-
outputChannels,
|
|
196
|
-
interruptBeforeNodes: "*",
|
|
197
|
-
})).not.toThrow();
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
describe("validateKeys", () => {
|
|
201
|
-
it("should validate keys that exist in channels", () => {
|
|
202
|
-
const { channels } = setupValidGraph();
|
|
203
|
-
// Act & Assert: Should not throw for valid keys
|
|
204
|
-
expect(() => validateKeys("input", channels)).not.toThrow();
|
|
205
|
-
expect(() => validateKeys(["input", "output"], channels)).not.toThrow();
|
|
206
|
-
});
|
|
207
|
-
it("should throw when a single key doesn't exist in channels", () => {
|
|
208
|
-
const { channels } = setupValidGraph();
|
|
209
|
-
// Act & Assert: Should throw with specific message
|
|
210
|
-
expect(() => validateKeys("nonexistent", channels)).toThrow("Key nonexistent not found in channels");
|
|
211
|
-
});
|
|
212
|
-
it("should throw when any key in an array doesn't exist in channels", () => {
|
|
213
|
-
const { channels } = setupValidGraph();
|
|
214
|
-
// Act & Assert: Should throw with specific message
|
|
215
|
-
expect(() => validateKeys(["input", "nonexistent"], channels)).toThrow("Key nonexistent not found in channels");
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
//# sourceMappingURL=validate.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.test.js","sourceRoot":"","sources":["../../src/pregel/validate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const runnables_1 = require("@langchain/core/runnables");
|
|
5
|
-
const write_js_1 = require("./write.cjs");
|
|
6
|
-
const constants_js_1 = require("../constants.cjs");
|
|
7
|
-
const errors_js_1 = require("../errors.cjs");
|
|
8
|
-
(0, vitest_1.describe)("ChannelWrite", () => {
|
|
9
|
-
(0, vitest_1.it)("should write a value to a channel", async () => {
|
|
10
|
-
// Setup write tracking
|
|
11
|
-
const writes = [];
|
|
12
|
-
// Mock config with send function
|
|
13
|
-
const mockSend = vitest_1.vi
|
|
14
|
-
.fn()
|
|
15
|
-
.mockImplementation((values) => {
|
|
16
|
-
writes.push(...values);
|
|
17
|
-
});
|
|
18
|
-
const config = {
|
|
19
|
-
configurable: {
|
|
20
|
-
[constants_js_1.CONFIG_KEY_SEND]: mockSend,
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
// Create a channel write
|
|
24
|
-
const write = new write_js_1.ChannelWrite([
|
|
25
|
-
{ channel: "output", value: "test_output" },
|
|
26
|
-
]);
|
|
27
|
-
// Run the write with input
|
|
28
|
-
const result = await write.invoke("input_value", config);
|
|
29
|
-
// Verify the input is passed through
|
|
30
|
-
(0, vitest_1.expect)(result).toBe("input_value");
|
|
31
|
-
// Verify the write happened
|
|
32
|
-
(0, vitest_1.expect)(writes).toEqual([["output", "test_output"]]);
|
|
33
|
-
});
|
|
34
|
-
(0, vitest_1.it)("should support writing multiple channels", async () => {
|
|
35
|
-
// Setup write tracking
|
|
36
|
-
const writes = [];
|
|
37
|
-
// Mock config with send function
|
|
38
|
-
const mockSend = vitest_1.vi
|
|
39
|
-
.fn()
|
|
40
|
-
.mockImplementation((values) => {
|
|
41
|
-
writes.push(...values);
|
|
42
|
-
});
|
|
43
|
-
const config = {
|
|
44
|
-
configurable: {
|
|
45
|
-
[constants_js_1.CONFIG_KEY_SEND]: mockSend,
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
// Create a channel write with multiple channels
|
|
49
|
-
const write = new write_js_1.ChannelWrite([
|
|
50
|
-
{ channel: "output1", value: "value1" },
|
|
51
|
-
{ channel: "output2", value: "value2" },
|
|
52
|
-
]);
|
|
53
|
-
// Run the write with input
|
|
54
|
-
await write.invoke("input_value", config);
|
|
55
|
-
// Verify the writes happened
|
|
56
|
-
(0, vitest_1.expect)(writes).toEqual([
|
|
57
|
-
["output1", "value1"],
|
|
58
|
-
["output2", "value2"],
|
|
59
|
-
]);
|
|
60
|
-
});
|
|
61
|
-
(0, vitest_1.it)("should support using PASSTHROUGH to pass input value to channel", async () => {
|
|
62
|
-
// Setup write tracking
|
|
63
|
-
const writes = [];
|
|
64
|
-
// Mock config with send function
|
|
65
|
-
const mockSend = vitest_1.vi
|
|
66
|
-
.fn()
|
|
67
|
-
.mockImplementation((values) => {
|
|
68
|
-
writes.push(...values);
|
|
69
|
-
});
|
|
70
|
-
const config = {
|
|
71
|
-
configurable: {
|
|
72
|
-
[constants_js_1.CONFIG_KEY_SEND]: mockSend,
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
// Create a channel write with PASSTHROUGH
|
|
76
|
-
const write = new write_js_1.ChannelWrite([{ channel: "output", value: write_js_1.PASSTHROUGH }]);
|
|
77
|
-
// Run the write with input
|
|
78
|
-
await write.invoke("input_value", config);
|
|
79
|
-
// Verify the input value was written to the channel
|
|
80
|
-
(0, vitest_1.expect)(writes).toEqual([["output", "input_value"]]);
|
|
81
|
-
});
|
|
82
|
-
(0, vitest_1.it)("should support using mapper to transform value", async () => {
|
|
83
|
-
// Setup write tracking
|
|
84
|
-
const writes = [];
|
|
85
|
-
// Mock config with send function
|
|
86
|
-
const mockSend = vitest_1.vi
|
|
87
|
-
.fn()
|
|
88
|
-
.mockImplementation((values) => {
|
|
89
|
-
writes.push(...values);
|
|
90
|
-
});
|
|
91
|
-
const config = {
|
|
92
|
-
configurable: {
|
|
93
|
-
[constants_js_1.CONFIG_KEY_SEND]: mockSend,
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
// Create a transformer as a Runnable
|
|
97
|
-
const transformer = new runnables_1.RunnablePassthrough().pipe((value) => `transformed_${value}`);
|
|
98
|
-
// Create a channel write with a mapper
|
|
99
|
-
const write = new write_js_1.ChannelWrite([
|
|
100
|
-
{ channel: "output", value: "original", mapper: transformer },
|
|
101
|
-
]);
|
|
102
|
-
// Run the write
|
|
103
|
-
await write.invoke("input_value", config);
|
|
104
|
-
// Verify the transformed value was written
|
|
105
|
-
(0, vitest_1.expect)(writes).toEqual([["output", "transformed_original"]]);
|
|
106
|
-
});
|
|
107
|
-
(0, vitest_1.it)("should support SKIP_WRITE to conditionally skip writing", async () => {
|
|
108
|
-
// Setup write tracking
|
|
109
|
-
const writes = [];
|
|
110
|
-
// Mock config with send function
|
|
111
|
-
const mockSend = vitest_1.vi
|
|
112
|
-
.fn()
|
|
113
|
-
.mockImplementation((values) => {
|
|
114
|
-
writes.push(...values);
|
|
115
|
-
});
|
|
116
|
-
const config = {
|
|
117
|
-
configurable: {
|
|
118
|
-
[constants_js_1.CONFIG_KEY_SEND]: mockSend,
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
// Create a mapper that returns SKIP_WRITE
|
|
122
|
-
const conditionalMapper = new runnables_1.RunnablePassthrough().pipe((_) => write_js_1.SKIP_WRITE);
|
|
123
|
-
// Create a channel write with writes that should and shouldn't happen
|
|
124
|
-
const write = new write_js_1.ChannelWrite([
|
|
125
|
-
{ channel: "output1", value: "value1" },
|
|
126
|
-
{ channel: "output2", value: "value2", mapper: conditionalMapper },
|
|
127
|
-
]);
|
|
128
|
-
// Run the write
|
|
129
|
-
await write.invoke("input_value", config);
|
|
130
|
-
// Verify only the first write happened
|
|
131
|
-
(0, vitest_1.expect)(writes).toEqual([["output1", "value1"]]);
|
|
132
|
-
});
|
|
133
|
-
(0, vitest_1.it)("should handle Send objects by writing to TASKS", async () => {
|
|
134
|
-
// Setup write tracking
|
|
135
|
-
const writes = [];
|
|
136
|
-
// Mock config with send function
|
|
137
|
-
const mockSend = vitest_1.vi
|
|
138
|
-
.fn()
|
|
139
|
-
.mockImplementation((values) => {
|
|
140
|
-
writes.push(...values);
|
|
141
|
-
});
|
|
142
|
-
const config = {
|
|
143
|
-
configurable: {
|
|
144
|
-
[constants_js_1.CONFIG_KEY_SEND]: mockSend,
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
// Create a Send object
|
|
148
|
-
const send = new constants_js_1.Send("target_node", { arg: "value" });
|
|
149
|
-
// Create a channel write with a Send
|
|
150
|
-
const write = new write_js_1.ChannelWrite([send]);
|
|
151
|
-
// Run the write
|
|
152
|
-
await write.invoke("input_value", config);
|
|
153
|
-
// Verify the Send was written to the TASKS channel
|
|
154
|
-
(0, vitest_1.expect)(writes).toEqual([[constants_js_1.TASKS, send]]);
|
|
155
|
-
});
|
|
156
|
-
(0, vitest_1.it)("should throw error when trying to write to reserved TASKS channel", async () => {
|
|
157
|
-
// Create a channel write with an invalid channel
|
|
158
|
-
const write = new write_js_1.ChannelWrite([{ channel: constants_js_1.TASKS, value: "value" }]);
|
|
159
|
-
// Mock config with send function
|
|
160
|
-
const config = {
|
|
161
|
-
configurable: {
|
|
162
|
-
[constants_js_1.CONFIG_KEY_SEND]: vitest_1.vi.fn(),
|
|
163
|
-
},
|
|
164
|
-
};
|
|
165
|
-
// Verify it throws an error
|
|
166
|
-
await (0, vitest_1.expect)(write.invoke("input_value", config)).rejects.toThrow(errors_js_1.InvalidUpdateError);
|
|
167
|
-
await (0, vitest_1.expect)(write.invoke("input_value", config)).rejects.toThrow("Cannot write to the reserved channel TASKS");
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
(0, vitest_1.describe)("ChannelWrite static methods", () => {
|
|
171
|
-
(0, vitest_1.it)("isWriter should identify ChannelWrite instances", () => {
|
|
172
|
-
const write = new write_js_1.ChannelWrite([{ channel: "output", value: "value" }]);
|
|
173
|
-
(0, vitest_1.expect)(write_js_1.ChannelWrite.isWriter(write)).toBe(true);
|
|
174
|
-
});
|
|
175
|
-
(0, vitest_1.it)("registerWriter should mark a Runnable as a writer", () => {
|
|
176
|
-
const runnable = new runnables_1.RunnablePassthrough();
|
|
177
|
-
const writer = write_js_1.ChannelWrite.registerWriter(runnable);
|
|
178
|
-
(0, vitest_1.expect)(write_js_1.ChannelWrite.isWriter(writer)).toBe(true);
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
//# sourceMappingURL=write.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|