@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
package/dist/hash.js
CHANGED
|
@@ -1,58 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
BSD 2-Clause License
|
|
4
|
-
|
|
5
|
-
Copyright (c) 2019, i404788
|
|
6
|
-
All rights reserved.
|
|
7
|
-
|
|
8
|
-
Redistribution and use in source and binary forms, with or without
|
|
9
|
-
modification, are permitted provided that the following conditions are met:
|
|
10
|
-
|
|
11
|
-
1. Redistributions of source code must retain the above copyright notice, this
|
|
12
|
-
list of conditions and the following disclaimer.
|
|
13
|
-
|
|
14
|
-
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
15
|
-
this list of conditions and the following disclaimer in the documentation
|
|
16
|
-
and/or other materials provided with the distribution.
|
|
17
|
-
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
21
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
22
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
23
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
24
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
25
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
26
|
-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
27
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
-
*/
|
|
29
|
-
const n = (n) => BigInt(n);
|
|
1
|
+
//#region src/hash.ts
|
|
2
|
+
const n = (n$1) => BigInt(n$1);
|
|
30
3
|
const view = (data, offset = 0) => new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);
|
|
31
|
-
const PRIME32_1 = n("0x9E3779B1");
|
|
32
|
-
const PRIME32_2 = n("0x85EBCA77");
|
|
33
|
-
const PRIME32_3 = n("0xC2B2AE3D");
|
|
34
|
-
const PRIME64_1 = n("0x9E3779B185EBCA87");
|
|
35
|
-
const PRIME64_2 = n("0xC2B2AE3D27D4EB4F");
|
|
36
|
-
const PRIME64_3 = n("0x165667B19E3779F9");
|
|
37
|
-
const PRIME64_4 = n("0x85EBCA77C2B2AE63");
|
|
38
|
-
const PRIME64_5 = n("0x27D4EB2F165667C5");
|
|
39
|
-
const PRIME_MX1 = n("0x165667919E3779F9");
|
|
40
|
-
const PRIME_MX2 = n("0x9FB21C651E98DF25");
|
|
4
|
+
const PRIME32_1 = n("0x9E3779B1");
|
|
5
|
+
const PRIME32_2 = n("0x85EBCA77");
|
|
6
|
+
const PRIME32_3 = n("0xC2B2AE3D");
|
|
7
|
+
const PRIME64_1 = n("0x9E3779B185EBCA87");
|
|
8
|
+
const PRIME64_2 = n("0xC2B2AE3D27D4EB4F");
|
|
9
|
+
const PRIME64_3 = n("0x165667B19E3779F9");
|
|
10
|
+
const PRIME64_4 = n("0x85EBCA77C2B2AE63");
|
|
11
|
+
const PRIME64_5 = n("0x27D4EB2F165667C5");
|
|
12
|
+
const PRIME_MX1 = n("0x165667919E3779F9");
|
|
13
|
+
const PRIME_MX2 = n("0x9FB21C651E98DF25");
|
|
41
14
|
const hexToUint8Array = (hex) => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
return view(bytes);
|
|
15
|
+
const strLen = hex.length;
|
|
16
|
+
if (strLen % 2 !== 0) throw new Error("String should have an even number of characters");
|
|
17
|
+
const maxLength = strLen / 2;
|
|
18
|
+
const bytes = new Uint8Array(maxLength);
|
|
19
|
+
let read = 0;
|
|
20
|
+
let write = 0;
|
|
21
|
+
while (write < maxLength) {
|
|
22
|
+
const slice = hex.slice(read, read += 2);
|
|
23
|
+
bytes[write] = Number.parseInt(slice, 16);
|
|
24
|
+
write += 1;
|
|
25
|
+
}
|
|
26
|
+
return view(bytes);
|
|
56
27
|
};
|
|
57
28
|
const kkey = hexToUint8Array("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e");
|
|
58
29
|
const mask128 = (n(1) << n(128)) - n(1);
|
|
@@ -63,267 +34,236 @@ const ACC_NB = STRIPE_LEN / 8;
|
|
|
63
34
|
const _U64 = 8;
|
|
64
35
|
const _U32 = 4;
|
|
65
36
|
function assert(a) {
|
|
66
|
-
|
|
67
|
-
throw new Error("Assert failed");
|
|
37
|
+
if (!a) throw new Error("Assert failed");
|
|
68
38
|
}
|
|
69
39
|
function bswap64(a) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
40
|
+
const scratchbuf = /* @__PURE__ */ new DataView(/* @__PURE__ */ new ArrayBuffer(8));
|
|
41
|
+
scratchbuf.setBigUint64(0, a, true);
|
|
42
|
+
return scratchbuf.getBigUint64(0, false);
|
|
73
43
|
}
|
|
74
44
|
function bswap32(input) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
45
|
+
let a = input;
|
|
46
|
+
a = (a & n(65535)) << n(16) | (a & n(4294901760)) >> n(16);
|
|
47
|
+
a = (a & n(16711935)) << n(8) | (a & n(4278255360)) >> n(8);
|
|
48
|
+
return a;
|
|
79
49
|
}
|
|
80
50
|
function XXH_mult32to64(a, b) {
|
|
81
|
-
|
|
51
|
+
return (a & mask32) * (b & mask32) & mask64;
|
|
82
52
|
}
|
|
83
53
|
function rotl32(a, b) {
|
|
84
|
-
|
|
54
|
+
return (a << b | a >> n(32) - b) & mask32;
|
|
85
55
|
}
|
|
86
56
|
function XXH3_accumulate_512(acc, dataView, keyView) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
57
|
+
for (let i = 0; i < ACC_NB; i += 1) {
|
|
58
|
+
const data_val = dataView.getBigUint64(i * 8, true);
|
|
59
|
+
const data_key = data_val ^ keyView.getBigUint64(i * 8, true);
|
|
60
|
+
acc[i ^ 1] += data_val;
|
|
61
|
+
acc[i] += XXH_mult32to64(data_key, data_key >> n(32));
|
|
62
|
+
}
|
|
63
|
+
return acc;
|
|
94
64
|
}
|
|
95
65
|
function XXH3_accumulate(acc, dataView, keyView, nbStripes) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
return acc;
|
|
66
|
+
for (let n$1 = 0; n$1 < nbStripes; n$1 += 1) XXH3_accumulate_512(acc, view(dataView, n$1 * STRIPE_LEN), view(keyView, n$1 * 8));
|
|
67
|
+
return acc;
|
|
100
68
|
}
|
|
101
69
|
function XXH3_scrambleAcc(acc, key) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
70
|
+
for (let i = 0; i < ACC_NB; i += 1) {
|
|
71
|
+
const key64 = key.getBigUint64(i * 8, true);
|
|
72
|
+
let acc64 = acc[i];
|
|
73
|
+
acc64 = xorshift64(acc64, n(47));
|
|
74
|
+
acc64 ^= key64;
|
|
75
|
+
acc64 *= PRIME32_1;
|
|
76
|
+
acc[i] = acc64 & mask64;
|
|
77
|
+
}
|
|
78
|
+
return acc;
|
|
111
79
|
}
|
|
112
80
|
function XXH3_mix2Accs(acc, key) {
|
|
113
|
-
|
|
81
|
+
return XXH3_mul128_fold64(acc[0] ^ key.getBigUint64(0, true), acc[1] ^ key.getBigUint64(_U64, true));
|
|
114
82
|
}
|
|
115
83
|
function XXH3_mergeAccs(acc, key, start) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
84
|
+
let result64 = start;
|
|
85
|
+
result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));
|
|
86
|
+
result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));
|
|
87
|
+
result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));
|
|
88
|
+
result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));
|
|
89
|
+
return XXH3_avalanche(result64 & mask64);
|
|
122
90
|
}
|
|
123
91
|
function XXH3_hashLong(input, data, secret, f_acc, f_scramble) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
return acc;
|
|
92
|
+
let acc = input;
|
|
93
|
+
const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);
|
|
94
|
+
const block_len = STRIPE_LEN * nbStripesPerBlock;
|
|
95
|
+
const nb_blocks = Math.floor((data.byteLength - 1) / block_len);
|
|
96
|
+
for (let n$1 = 0; n$1 < nb_blocks; n$1 += 1) {
|
|
97
|
+
acc = XXH3_accumulate(acc, view(data, n$1 * block_len), secret, nbStripesPerBlock);
|
|
98
|
+
acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));
|
|
99
|
+
}
|
|
100
|
+
{
|
|
101
|
+
const nbStripes = Math.floor((data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN);
|
|
102
|
+
acc = XXH3_accumulate(acc, view(data, nb_blocks * block_len), secret, nbStripes);
|
|
103
|
+
acc = f_acc(acc, view(data, data.byteLength - STRIPE_LEN), view(secret, secret.byteLength - STRIPE_LEN - 7));
|
|
104
|
+
}
|
|
105
|
+
return acc;
|
|
140
106
|
}
|
|
141
107
|
function XXH3_hashLong_128b(data, secret) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
108
|
+
let acc = new BigUint64Array([
|
|
109
|
+
PRIME32_3,
|
|
110
|
+
PRIME64_1,
|
|
111
|
+
PRIME64_2,
|
|
112
|
+
PRIME64_3,
|
|
113
|
+
PRIME64_4,
|
|
114
|
+
PRIME32_2,
|
|
115
|
+
PRIME64_5,
|
|
116
|
+
PRIME32_1
|
|
117
|
+
]);
|
|
118
|
+
assert(data.byteLength > 128);
|
|
119
|
+
acc = XXH3_hashLong(acc, data, secret, XXH3_accumulate_512, XXH3_scrambleAcc);
|
|
120
|
+
assert(acc.length * 8 === 64);
|
|
121
|
+
{
|
|
122
|
+
const low64 = XXH3_mergeAccs(acc, view(secret, 11), n(data.byteLength) * PRIME64_1 & mask64);
|
|
123
|
+
const high64 = XXH3_mergeAccs(acc, view(secret, secret.byteLength - STRIPE_LEN - 11), ~(n(data.byteLength) * PRIME64_2) & mask64);
|
|
124
|
+
return high64 << n(64) | low64;
|
|
125
|
+
}
|
|
161
126
|
}
|
|
162
127
|
function XXH3_mul128_fold64(a, b) {
|
|
163
|
-
|
|
164
|
-
|
|
128
|
+
const lll = a * b & mask128;
|
|
129
|
+
return lll & mask64 ^ lll >> n(64);
|
|
165
130
|
}
|
|
166
131
|
function XXH3_mix16B(dataView, keyView, seed) {
|
|
167
|
-
|
|
168
|
-
mask64, (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &
|
|
169
|
-
mask64);
|
|
132
|
+
return XXH3_mul128_fold64((dataView.getBigUint64(0, true) ^ keyView.getBigUint64(0, true) + seed) & mask64, (dataView.getBigUint64(8, true) ^ keyView.getBigUint64(8, true) - seed) & mask64);
|
|
170
133
|
}
|
|
171
134
|
function XXH3_mix32B(acc, data1, data2, key, seed) {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
135
|
+
let accl = acc & mask64;
|
|
136
|
+
let acch = acc >> n(64) & mask64;
|
|
137
|
+
accl += XXH3_mix16B(data1, key, seed);
|
|
138
|
+
accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);
|
|
139
|
+
accl &= mask64;
|
|
140
|
+
acch += XXH3_mix16B(data2, view(key, 16), seed);
|
|
141
|
+
acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);
|
|
142
|
+
acch &= mask64;
|
|
143
|
+
return acch << n(64) | accl;
|
|
181
144
|
}
|
|
182
145
|
function XXH3_avalanche(input) {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
146
|
+
let h64 = input;
|
|
147
|
+
h64 ^= h64 >> n(37);
|
|
148
|
+
h64 *= PRIME_MX1;
|
|
149
|
+
h64 &= mask64;
|
|
150
|
+
h64 ^= h64 >> n(32);
|
|
151
|
+
return h64;
|
|
189
152
|
}
|
|
190
153
|
function XXH3_avalanche64(input) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
154
|
+
let h64 = input;
|
|
155
|
+
h64 ^= h64 >> n(33);
|
|
156
|
+
h64 *= PRIME64_2;
|
|
157
|
+
h64 &= mask64;
|
|
158
|
+
h64 ^= h64 >> n(29);
|
|
159
|
+
h64 *= PRIME64_3;
|
|
160
|
+
h64 &= mask64;
|
|
161
|
+
h64 ^= h64 >> n(32);
|
|
162
|
+
return h64;
|
|
200
163
|
}
|
|
201
164
|
function XXH3_len_1to3_128b(data, key32, seed) {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
const bhigh = (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;
|
|
211
|
-
const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;
|
|
212
|
-
return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);
|
|
165
|
+
const len = data.byteLength;
|
|
166
|
+
assert(len > 0 && len <= 3);
|
|
167
|
+
const combined = n(data.getUint8(len - 1)) | n(len << 8) | n(data.getUint8(0) << 16) | n(data.getUint8(len >> 1) << 24);
|
|
168
|
+
const blow = (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;
|
|
169
|
+
const low = (combined ^ blow) & mask64;
|
|
170
|
+
const bhigh = (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;
|
|
171
|
+
const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;
|
|
172
|
+
return (XXH3_avalanche64(high) & mask64) << n(64) | XXH3_avalanche64(low);
|
|
213
173
|
}
|
|
214
174
|
function xorshift64(b, shift) {
|
|
215
|
-
|
|
175
|
+
return b ^ b >> shift;
|
|
216
176
|
}
|
|
217
177
|
function XXH3_len_4to8_128b(data, key32, seed) {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
(XXH3_avalanche(m128 >> n(64)) << n(64)));
|
|
233
|
-
}
|
|
178
|
+
const len = data.byteLength;
|
|
179
|
+
assert(len >= 4 && len <= 8);
|
|
180
|
+
{
|
|
181
|
+
const l1 = data.getUint32(0, true);
|
|
182
|
+
const l2 = data.getUint32(len - 4, true);
|
|
183
|
+
const l64 = n(l1) | n(l2) << n(32);
|
|
184
|
+
const bitflip = (key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed & mask64;
|
|
185
|
+
const keyed = l64 ^ bitflip;
|
|
186
|
+
let m128 = keyed * (PRIME64_1 + (n(len) << n(2))) & mask128;
|
|
187
|
+
m128 += (m128 & mask64) << n(65);
|
|
188
|
+
m128 &= mask128;
|
|
189
|
+
m128 ^= m128 >> n(67);
|
|
190
|
+
return xorshift64(xorshift64(m128 & mask64, n(35)) * PRIME_MX2 & mask64, n(28)) | XXH3_avalanche(m128 >> n(64)) << n(64);
|
|
191
|
+
}
|
|
234
192
|
}
|
|
235
193
|
function XXH3_len_9to16_128b(data, key64, seed) {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
return (XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64)));
|
|
256
|
-
}
|
|
194
|
+
const len = data.byteLength;
|
|
195
|
+
assert(len >= 9 && len <= 16);
|
|
196
|
+
{
|
|
197
|
+
const bitflipl = (key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed & mask64;
|
|
198
|
+
const bitfliph = (key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed & mask64;
|
|
199
|
+
const ll1 = data.getBigUint64(0, true);
|
|
200
|
+
let ll2 = data.getBigUint64(len - 8, true);
|
|
201
|
+
let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;
|
|
202
|
+
const m128_l = (m128 & mask64) + (n(len - 1) << n(54));
|
|
203
|
+
m128 = m128 & (mask128 ^ mask64) | m128_l;
|
|
204
|
+
ll2 ^= bitfliph;
|
|
205
|
+
m128 += ll2 + (ll2 & mask32) * (PRIME32_2 - n(1)) << n(64);
|
|
206
|
+
m128 &= mask128;
|
|
207
|
+
m128 ^= bswap64(m128 >> n(64));
|
|
208
|
+
let h128 = (m128 & mask64) * PRIME64_2;
|
|
209
|
+
h128 += (m128 >> n(64)) * PRIME64_2 << n(64);
|
|
210
|
+
h128 &= mask128;
|
|
211
|
+
return XXH3_avalanche(h128 & mask64) | XXH3_avalanche(h128 >> n(64)) << n(64);
|
|
212
|
+
}
|
|
257
213
|
}
|
|
258
214
|
function XXH3_len_0to16_128b(data, seed) {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
if (len > 0)
|
|
266
|
-
return XXH3_len_1to3_128b(data, kkey, seed);
|
|
267
|
-
return (XXH3_avalanche64(seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)) |
|
|
268
|
-
(XXH3_avalanche64(seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)) <<
|
|
269
|
-
n(64)));
|
|
215
|
+
const len = data.byteLength;
|
|
216
|
+
assert(len <= 16);
|
|
217
|
+
if (len > 8) return XXH3_len_9to16_128b(data, kkey, seed);
|
|
218
|
+
if (len >= 4) return XXH3_len_4to8_128b(data, kkey, seed);
|
|
219
|
+
if (len > 0) return XXH3_len_1to3_128b(data, kkey, seed);
|
|
220
|
+
return XXH3_avalanche64(seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)) | XXH3_avalanche64(seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)) << n(64);
|
|
270
221
|
}
|
|
271
222
|
function inv64(x) {
|
|
272
|
-
|
|
273
|
-
return (~x + n(1)) & mask64;
|
|
223
|
+
return ~x + n(1) & mask64;
|
|
274
224
|
}
|
|
275
225
|
function XXH3_len_17to128_128b(data, secret, seed) {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
h128h = inv64(XXH3_avalanche(h128h));
|
|
290
|
-
return h128l | (h128h << n(64));
|
|
226
|
+
let acc = n(data.byteLength) * PRIME64_1 & mask64;
|
|
227
|
+
let i = n(data.byteLength - 1) / n(32);
|
|
228
|
+
while (i >= 0) {
|
|
229
|
+
const ni = Number(i);
|
|
230
|
+
acc = XXH3_mix32B(acc, view(data, 16 * ni), view(data, data.byteLength - 16 * (ni + 1)), view(secret, 32 * ni), seed);
|
|
231
|
+
i -= n(1);
|
|
232
|
+
}
|
|
233
|
+
let h128l = acc + (acc >> n(64)) & mask64;
|
|
234
|
+
h128l = XXH3_avalanche(h128l);
|
|
235
|
+
let h128h = (acc & mask64) * PRIME64_1 + (acc >> n(64)) * PRIME64_4 + (n(data.byteLength) - seed & mask64) * PRIME64_2;
|
|
236
|
+
h128h &= mask64;
|
|
237
|
+
h128h = inv64(XXH3_avalanche(h128h));
|
|
238
|
+
return h128l | h128h << n(64);
|
|
291
239
|
}
|
|
292
240
|
function XXH3_len_129to240_128b(data, secret, seed) {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
let h128h = (acc & mask64) * PRIME64_1 +
|
|
305
|
-
(acc >> n(64)) * PRIME64_4 +
|
|
306
|
-
((n(data.byteLength) - seed) & mask64) * PRIME64_2;
|
|
307
|
-
h128h &= mask64;
|
|
308
|
-
h128h = inv64(XXH3_avalanche(h128h));
|
|
309
|
-
return h128l | (h128h << n(64));
|
|
241
|
+
let acc = n(data.byteLength) * PRIME64_1 & mask64;
|
|
242
|
+
for (let i = 32; i < 160; i += 32) acc = XXH3_mix32B(acc, view(data, i - 32), view(data, i - 16), view(secret, i - 32), seed);
|
|
243
|
+
acc = XXH3_avalanche(acc & mask64) | XXH3_avalanche(acc >> n(64)) << n(64);
|
|
244
|
+
for (let i = 160; i <= data.byteLength; i += 32) acc = XXH3_mix32B(acc, view(data, i - 32), view(data, i - 16), view(secret, 3 + i - 160), seed);
|
|
245
|
+
acc = XXH3_mix32B(acc, view(data, data.byteLength - 16), view(data, data.byteLength - 32), view(secret, 103), inv64(seed));
|
|
246
|
+
let h128l = acc + (acc >> n(64)) & mask64;
|
|
247
|
+
h128l = XXH3_avalanche(h128l);
|
|
248
|
+
let h128h = (acc & mask64) * PRIME64_1 + (acc >> n(64)) * PRIME64_4 + (n(data.byteLength) - seed & mask64) * PRIME64_2;
|
|
249
|
+
h128h &= mask64;
|
|
250
|
+
h128h = inv64(XXH3_avalanche(h128h));
|
|
251
|
+
return h128l | h128h << n(64);
|
|
310
252
|
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));
|
|
321
|
-
if (len <= 240)
|
|
322
|
-
return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));
|
|
323
|
-
return hexDigest(XXH3_hashLong_128b(data, kkey));
|
|
253
|
+
function XXH3(input, seed = n(0)) {
|
|
254
|
+
const encoder = new TextEncoder();
|
|
255
|
+
const data = view(typeof input === "string" ? encoder.encode(input) : input);
|
|
256
|
+
const len = data.byteLength;
|
|
257
|
+
const hexDigest = (data$1) => data$1.toString(16).padStart(32, "0");
|
|
258
|
+
if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));
|
|
259
|
+
if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));
|
|
260
|
+
if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));
|
|
261
|
+
return hexDigest(XXH3_hashLong_128b(data, kkey));
|
|
324
262
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
return /^[0-9a-f]{32}$/.test(value);
|
|
263
|
+
function isXXH3(value) {
|
|
264
|
+
return /^[0-9a-f]{32}$/.test(value);
|
|
328
265
|
}
|
|
266
|
+
|
|
267
|
+
//#endregion
|
|
268
|
+
export { XXH3, isXXH3 };
|
|
329
269
|
//# sourceMappingURL=hash.js.map
|
package/dist/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hash.js","names":["n","data"],"sources":["../src/hash.ts"],"sourcesContent":["/* Converted from https://github.com/i404788/xxh3-ts\n\nBSD 2-Clause License\n\nCopyright (c) 2019, i404788\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nconst n = (n: number | string) => BigInt(n);\nconst view = (data: Uint8Array | DataView, offset: number = 0) =>\n new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);\n\nconst PRIME32_1 = n(\"0x9E3779B1\"); // 0b10011110001101110111100110110001\nconst PRIME32_2 = n(\"0x85EBCA77\"); // 0b10000101111010111100101001110111\nconst PRIME32_3 = n(\"0xC2B2AE3D\"); // 0b11000010101100101010111000111101\nconst PRIME64_1 = n(\"0x9E3779B185EBCA87\"); // 0b1001111000110111011110011011000110000101111010111100101010000111\nconst PRIME64_2 = n(\"0xC2B2AE3D27D4EB4F\"); // 0b1100001010110010101011100011110100100111110101001110101101001111\nconst PRIME64_3 = n(\"0x165667B19E3779F9\"); // 0b0001011001010110011001111011000110011110001101110111100111111001\nconst PRIME64_4 = n(\"0x85EBCA77C2B2AE63\"); // 0b1000010111101011110010100111011111000010101100101010111001100011\nconst PRIME64_5 = n(\"0x27D4EB2F165667C5\"); // 0b0010011111010100111010110010111100010110010101100110011111000101\nconst PRIME_MX1 = n(\"0x165667919E3779F9\"); // 0b0001011001010110011001111001000110011110001101110111100111111001\nconst PRIME_MX2 = n(\"0x9FB21C651E98DF25\"); // 0b1001111110110010000111000110010100011110100110001101111100100101\n\nconst hexToUint8Array = (hex: string) => {\n const strLen = hex.length;\n if (strLen % 2 !== 0) {\n throw new Error(\"String should have an even number of characters\");\n }\n\n const maxLength = strLen / 2;\n const bytes = new Uint8Array(maxLength);\n\n let read = 0;\n let write = 0;\n while (write < maxLength) {\n const slice = hex.slice(read, (read += 2));\n bytes[write] = Number.parseInt(slice, 16);\n write += 1;\n }\n\n return view(bytes);\n};\n\nconst kkey = hexToUint8Array(\n \"b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e\"\n);\n\nconst mask128 = (n(1) << n(128)) - n(1);\nconst mask64 = (n(1) << n(64)) - n(1);\nconst mask32 = (n(1) << n(32)) - n(1);\nconst STRIPE_LEN = 64;\nconst ACC_NB = STRIPE_LEN / 8;\nconst _U64 = 8;\nconst _U32 = 4;\n\nfunction assert(a: boolean) {\n if (!a) throw new Error(\"Assert failed\");\n}\n\nfunction bswap64(a: bigint) {\n const scratchbuf = new DataView(new ArrayBuffer(8));\n scratchbuf.setBigUint64(0, a, true);\n return scratchbuf.getBigUint64(0, false);\n}\n\nfunction bswap32(input: bigint) {\n let a = input;\n a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));\n a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));\n return a; // 32-bit\n}\n\nfunction XXH_mult32to64(a: bigint, b: bigint) {\n return ((a & mask32) * (b & mask32)) & mask64;\n}\n\nfunction rotl32(a: bigint, b: bigint) {\n return ((a << b) | (a >> (n(32) - b))) & mask32;\n}\n\nfunction XXH3_accumulate_512(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView\n) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const data_val = dataView.getBigUint64(i * 8, true);\n const data_key = data_val ^ keyView.getBigUint64(i * 8, true);\n acc[i ^ 1] += data_val;\n acc[i] += XXH_mult32to64(data_key, data_key >> n(32));\n }\n return acc;\n}\n\nfunction XXH3_accumulate(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView,\n nbStripes: number\n) {\n for (let n = 0; n < nbStripes; n += 1) {\n XXH3_accumulate_512(\n acc,\n view(dataView, n * STRIPE_LEN),\n view(keyView, n * 8)\n );\n }\n return acc;\n}\n\nfunction XXH3_scrambleAcc(acc: BigUint64Array, key: DataView) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const key64 = key.getBigUint64(i * 8, true);\n let acc64 = acc[i];\n acc64 = xorshift64(acc64, n(47));\n acc64 ^= key64;\n acc64 *= PRIME32_1;\n acc[i] = acc64 & mask64;\n }\n return acc;\n}\n\nfunction XXH3_mix2Accs(acc: BigUint64Array, key: DataView) {\n return XXH3_mul128_fold64(\n acc[0] ^ key.getBigUint64(0, true),\n acc[1] ^ key.getBigUint64(_U64, true)\n );\n}\n\nfunction XXH3_mergeAccs(acc: BigUint64Array, key: DataView, start: bigint) {\n let result64 = start;\n\n result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));\n\n return XXH3_avalanche(result64 & mask64);\n}\n\nfunction XXH3_hashLong(\n input: BigUint64Array,\n data: DataView,\n secret: DataView,\n f_acc: (acc: BigUint64Array, data: DataView, key: DataView) => BigUint64Array,\n f_scramble: (acc: BigUint64Array, key: DataView) => BigUint64Array\n) {\n let acc = input;\n const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);\n const block_len = STRIPE_LEN * nbStripesPerBlock;\n const nb_blocks = Math.floor((data.byteLength - 1) / block_len);\n\n for (let n = 0; n < nb_blocks; n += 1) {\n acc = XXH3_accumulate(\n acc,\n view(data, n * block_len),\n secret,\n nbStripesPerBlock\n );\n acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));\n }\n\n {\n // Partial block\n const nbStripes = Math.floor(\n (data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN\n );\n acc = XXH3_accumulate(\n acc,\n view(data, nb_blocks * block_len),\n secret,\n nbStripes\n );\n\n // Last Stripe\n acc = f_acc(\n acc,\n view(data, data.byteLength - STRIPE_LEN),\n view(secret, secret.byteLength - STRIPE_LEN - 7)\n );\n }\n return acc;\n}\n\nfunction XXH3_hashLong_128b(data: DataView, secret: DataView) {\n let acc = new BigUint64Array([\n PRIME32_3,\n PRIME64_1,\n PRIME64_2,\n PRIME64_3,\n PRIME64_4,\n PRIME32_2,\n PRIME64_5,\n PRIME32_1,\n ]);\n assert(data.byteLength > 128);\n\n acc = XXH3_hashLong(\n acc,\n data,\n secret,\n XXH3_accumulate_512,\n XXH3_scrambleAcc\n ) as BigUint64Array<ArrayBuffer>;\n\n /* converge into final hash */\n assert(acc.length * 8 === 64);\n {\n const low64 = XXH3_mergeAccs(\n acc,\n view(secret, 11),\n (n(data.byteLength) * PRIME64_1) & mask64\n );\n const high64 = XXH3_mergeAccs(\n acc,\n view(secret, secret.byteLength - STRIPE_LEN - 11),\n ~(n(data.byteLength) * PRIME64_2) & mask64\n );\n return (high64 << n(64)) | low64;\n }\n}\n\nfunction XXH3_mul128_fold64(a: bigint, b: bigint) {\n const lll = (a * b) & mask128;\n return (lll & mask64) ^ (lll >> n(64));\n}\n\nfunction XXH3_mix16B(dataView: DataView, keyView: DataView, seed: bigint) {\n return XXH3_mul128_fold64(\n (dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &\n mask64,\n (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &\n mask64\n );\n}\n\nfunction XXH3_mix32B(\n acc: bigint,\n data1: DataView,\n data2: DataView,\n key: DataView,\n seed: bigint\n) {\n let accl = acc & mask64;\n let acch = (acc >> n(64)) & mask64;\n\n accl += XXH3_mix16B(data1, key, seed);\n accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);\n accl &= mask64;\n acch += XXH3_mix16B(data2, view(key, 16), seed);\n acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);\n acch &= mask64;\n\n return (acch << n(64)) | accl;\n}\n\nfunction XXH3_avalanche(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(37);\n h64 *= PRIME_MX1;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_avalanche64(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(33);\n h64 *= PRIME64_2;\n h64 &= mask64; // 64-bit\n h64 ^= h64 >> n(29);\n h64 *= PRIME64_3;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_len_1to3_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len > 0 && len <= 3);\n\n const combined =\n n(data.getUint8(len - 1)) |\n n(len << 8) |\n n(data.getUint8(0) << 16) |\n n(data.getUint8(len >> 1) << 24);\n\n const blow =\n (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;\n const low = (combined ^ blow) & mask64;\n const bhigh =\n (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;\n const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;\n\n return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);\n}\n\nfunction xorshift64(b: bigint, shift: bigint) {\n return b ^ (b >> shift);\n}\n\nfunction XXH3_len_4to8_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 4 && len <= 8);\n\n {\n const l1 = data.getUint32(0, true);\n const l2 = data.getUint32(len - 4, true);\n const l64 = n(l1) | (n(l2) << n(32));\n const bitflip =\n ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &\n mask64;\n const keyed = l64 ^ bitflip;\n let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;\n m128 += (m128 & mask64) << n(65);\n m128 &= mask128;\n m128 ^= m128 >> n(67);\n\n return (\n xorshift64(\n (xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64,\n n(28)\n ) |\n (XXH3_avalanche(m128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_9to16_128b(data: DataView, key64: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 9 && len <= 16);\n\n {\n const bitflipl =\n ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &\n mask64;\n const bitfliph =\n ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &\n mask64;\n const ll1 = data.getBigUint64(0, true);\n let ll2 = data.getBigUint64(len - 8, true);\n\n let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;\n\n const m128_l = (m128 & mask64) + (n(len - 1) << n(54));\n m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b\n ll2 ^= bitfliph;\n\n m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);\n m128 &= mask128;\n m128 ^= bswap64(m128 >> n(64));\n let h128 = (m128 & mask64) * PRIME64_2;\n h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);\n h128 &= mask128;\n\n return (\n XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_0to16_128b(data: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len <= 16);\n\n if (len > 8) return XXH3_len_9to16_128b(data, kkey, seed);\n if (len >= 4) return XXH3_len_4to8_128b(data, kkey, seed);\n if (len > 0) return XXH3_len_1to3_128b(data, kkey, seed);\n\n return (\n XXH3_avalanche64(\n seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)\n ) |\n (XXH3_avalanche64(\n seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)\n ) <<\n n(64))\n );\n}\n\nfunction inv64(x: bigint) {\n // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)\n return (~x + n(1)) & mask64;\n}\n\nfunction XXH3_len_17to128_128b(data: DataView, secret: DataView, seed: bigint) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n let i = n(data.byteLength - 1) / n(32);\n while (i >= 0) {\n const ni = Number(i);\n acc = XXH3_mix32B(\n acc,\n view(data, 16 * ni),\n view(data, data.byteLength - 16 * (ni + 1)),\n view(secret, 32 * ni),\n seed\n );\n i -= n(1);\n }\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\nfunction XXH3_len_129to240_128b(\n data: DataView,\n secret: DataView,\n seed: bigint\n) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n for (let i = 32; i < 160; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, i - 32),\n seed\n );\n }\n acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));\n for (let i = 160; i <= data.byteLength; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, 3 + i - 160),\n seed\n );\n }\n acc = XXH3_mix32B(\n acc,\n view(data, data.byteLength - 16),\n view(data, data.byteLength - 32),\n view(secret, 136 - 17 - 16),\n inv64(seed)\n );\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\n// 16 byte min input\nexport function XXH3(input: Uint8Array | string, seed: bigint = n(0)) {\n const encoder = new TextEncoder();\n const data = view(typeof input === \"string\" ? encoder.encode(input) : input);\n const len = data.byteLength;\n\n const hexDigest = (data: bigint) => data.toString(16).padStart(32, \"0\");\n if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));\n if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));\n if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));\n return hexDigest(XXH3_hashLong_128b(data, kkey));\n}\n\nexport function isXXH3(value: string): boolean {\n // Check if the given string matches the format of XXH3 (128 bit hex digest).\n return /^[0-9a-f]{32}$/.test(value);\n}\n"],"mappings":"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"}
|