@langchain/langgraph 0.4.8 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/CHANGELOG.md +7 -2
  2. package/README.md +1 -2
  3. package/dist/_virtual/rolldown_runtime.cjs +25 -0
  4. package/dist/channels/any_value.d.cts +26 -0
  5. package/dist/channels/any_value.d.cts.map +1 -0
  6. package/dist/channels/any_value.d.ts +16 -9
  7. package/dist/channels/any_value.d.ts.map +1 -0
  8. package/dist/channels/base.cjs +97 -133
  9. package/dist/channels/base.cjs.map +1 -0
  10. package/dist/channels/base.d.cts +73 -0
  11. package/dist/channels/base.d.cts.map +1 -0
  12. package/dist/channels/base.d.ts +73 -74
  13. package/dist/channels/base.d.ts.map +1 -0
  14. package/dist/channels/base.js +94 -127
  15. package/dist/channels/base.js.map +1 -1
  16. package/dist/channels/binop.cjs +47 -77
  17. package/dist/channels/binop.cjs.map +1 -0
  18. package/dist/channels/binop.d.cts +22 -0
  19. package/dist/channels/binop.d.cts.map +1 -0
  20. package/dist/channels/binop.d.ts +17 -12
  21. package/dist/channels/binop.d.ts.map +1 -0
  22. package/dist/channels/binop.js +45 -71
  23. package/dist/channels/binop.js.map +1 -1
  24. package/dist/channels/dynamic_barrier_value.d.cts +43 -0
  25. package/dist/channels/dynamic_barrier_value.d.cts.map +1 -0
  26. package/dist/channels/dynamic_barrier_value.d.ts +20 -34
  27. package/dist/channels/dynamic_barrier_value.d.ts.map +1 -0
  28. package/dist/channels/ephemeral_value.cjs +46 -70
  29. package/dist/channels/ephemeral_value.cjs.map +1 -0
  30. package/dist/channels/ephemeral_value.d.cts +23 -0
  31. package/dist/channels/ephemeral_value.d.cts.map +1 -0
  32. package/dist/channels/ephemeral_value.d.ts +18 -11
  33. package/dist/channels/ephemeral_value.d.ts.map +1 -0
  34. package/dist/channels/ephemeral_value.js +45 -65
  35. package/dist/channels/ephemeral_value.js.map +1 -1
  36. package/dist/channels/index.cjs +2 -10
  37. package/dist/channels/index.js +4 -3
  38. package/dist/channels/last_value.cjs +91 -140
  39. package/dist/channels/last_value.cjs.map +1 -0
  40. package/dist/channels/last_value.d.cts +30 -0
  41. package/dist/channels/last_value.d.cts.map +1 -0
  42. package/dist/channels/last_value.d.ts +15 -23
  43. package/dist/channels/last_value.d.ts.map +1 -0
  44. package/dist/channels/last_value.js +88 -133
  45. package/dist/channels/last_value.js.map +1 -1
  46. package/dist/channels/named_barrier_value.cjs +114 -170
  47. package/dist/channels/named_barrier_value.cjs.map +1 -0
  48. package/dist/channels/named_barrier_value.d.cts +33 -0
  49. package/dist/channels/named_barrier_value.d.cts.map +1 -0
  50. package/dist/channels/named_barrier_value.d.ts +19 -29
  51. package/dist/channels/named_barrier_value.d.ts.map +1 -0
  52. package/dist/channels/named_barrier_value.js +112 -163
  53. package/dist/channels/named_barrier_value.js.map +1 -1
  54. package/dist/channels/topic.cjs +63 -96
  55. package/dist/channels/topic.cjs.map +1 -0
  56. package/dist/channels/topic.d.cts +26 -0
  57. package/dist/channels/topic.d.cts.map +1 -0
  58. package/dist/channels/topic.d.ts +21 -18
  59. package/dist/channels/topic.d.ts.map +1 -0
  60. package/dist/channels/topic.js +61 -90
  61. package/dist/channels/topic.js.map +1 -1
  62. package/dist/constants.cjs +373 -452
  63. package/dist/constants.cjs.map +1 -0
  64. package/dist/constants.d.cts +284 -0
  65. package/dist/constants.d.cts.map +1 -0
  66. package/dist/constants.d.ts +112 -148
  67. package/dist/constants.d.ts.map +1 -0
  68. package/dist/constants.js +333 -444
  69. package/dist/constants.js.map +1 -1
  70. package/dist/errors.cjs +150 -179
  71. package/dist/errors.cjs.map +1 -0
  72. package/dist/errors.d.cts +80 -0
  73. package/dist/errors.d.cts.map +1 -0
  74. package/dist/errors.d.ts +55 -46
  75. package/dist/errors.d.ts.map +1 -0
  76. package/dist/errors.js +139 -165
  77. package/dist/errors.js.map +1 -1
  78. package/dist/func/index.cjs +289 -290
  79. package/dist/func/index.cjs.map +1 -0
  80. package/dist/func/index.d.cts +289 -0
  81. package/dist/func/index.d.cts.map +1 -0
  82. package/dist/func/index.d.ts +81 -71
  83. package/dist/func/index.d.ts.map +1 -0
  84. package/dist/func/index.js +285 -284
  85. package/dist/func/index.js.map +1 -1
  86. package/dist/func/types.d.cts +64 -0
  87. package/dist/func/types.d.cts.map +1 -0
  88. package/dist/func/types.d.ts +24 -19
  89. package/dist/func/types.d.ts.map +1 -0
  90. package/dist/graph/annotation.cjs +96 -120
  91. package/dist/graph/annotation.cjs.map +1 -0
  92. package/dist/graph/annotation.d.cts +116 -0
  93. package/dist/graph/annotation.d.cts.map +1 -0
  94. package/dist/graph/annotation.d.ts +33 -34
  95. package/dist/graph/annotation.d.ts.map +1 -0
  96. package/dist/graph/annotation.js +91 -112
  97. package/dist/graph/annotation.js.map +1 -1
  98. package/dist/graph/graph.cjs +419 -723
  99. package/dist/graph/graph.cjs.map +1 -0
  100. package/dist/graph/graph.d.cts +131 -0
  101. package/dist/graph/graph.d.cts.map +1 -0
  102. package/dist/graph/graph.d.ts +122 -91
  103. package/dist/graph/graph.d.ts.map +1 -0
  104. package/dist/graph/graph.js +412 -713
  105. package/dist/graph/graph.js.map +1 -1
  106. package/dist/graph/index.cjs +4 -17
  107. package/dist/graph/index.js +6 -5
  108. package/dist/graph/message.cjs +59 -104
  109. package/dist/graph/message.cjs.map +1 -0
  110. package/dist/graph/message.d.cts +19 -0
  111. package/dist/graph/message.d.cts.map +1 -0
  112. package/dist/graph/message.d.ts +11 -10
  113. package/dist/graph/message.d.ts.map +1 -0
  114. package/dist/graph/message.js +56 -98
  115. package/dist/graph/message.js.map +1 -1
  116. package/dist/graph/messages_annotation.cjs +106 -106
  117. package/dist/graph/messages_annotation.cjs.map +1 -0
  118. package/dist/graph/messages_annotation.d.cts +111 -0
  119. package/dist/graph/messages_annotation.d.cts.map +1 -0
  120. package/dist/graph/messages_annotation.d.ts +18 -9
  121. package/dist/graph/messages_annotation.d.ts.map +1 -0
  122. package/dist/graph/messages_annotation.js +100 -100
  123. package/dist/graph/messages_annotation.js.map +1 -1
  124. package/dist/graph/state.cjs +476 -777
  125. package/dist/graph/state.cjs.map +1 -0
  126. package/dist/graph/state.d.cts +216 -0
  127. package/dist/graph/state.d.cts.map +1 -0
  128. package/dist/graph/state.d.ts +129 -134
  129. package/dist/graph/state.d.ts.map +1 -0
  130. package/dist/graph/state.js +470 -768
  131. package/dist/graph/state.js.map +1 -1
  132. package/dist/graph/zod/index.cjs +10 -21
  133. package/dist/graph/zod/index.d.cts +3 -0
  134. package/dist/graph/zod/index.d.ts +3 -3
  135. package/dist/graph/zod/index.js +4 -4
  136. package/dist/graph/zod/meta.cjs +142 -177
  137. package/dist/graph/zod/meta.cjs.map +1 -0
  138. package/dist/graph/zod/meta.d.cts +116 -0
  139. package/dist/graph/zod/meta.d.cts.map +1 -0
  140. package/dist/graph/zod/meta.d.ts +99 -97
  141. package/dist/graph/zod/meta.d.ts.map +1 -0
  142. package/dist/graph/zod/meta.js +136 -170
  143. package/dist/graph/zod/meta.js.map +1 -1
  144. package/dist/graph/zod/plugin.cjs +36 -39
  145. package/dist/graph/zod/plugin.cjs.map +1 -0
  146. package/dist/graph/zod/plugin.js +34 -35
  147. package/dist/graph/zod/plugin.js.map +1 -1
  148. package/dist/graph/zod/schema.cjs +82 -110
  149. package/dist/graph/zod/schema.cjs.map +1 -0
  150. package/dist/graph/zod/schema.d.cts +38 -0
  151. package/dist/graph/zod/schema.d.cts.map +1 -0
  152. package/dist/graph/zod/schema.d.ts +12 -6
  153. package/dist/graph/zod/schema.d.ts.map +1 -0
  154. package/dist/graph/zod/schema.js +77 -103
  155. package/dist/graph/zod/schema.js.map +1 -1
  156. package/dist/graph/zod/zod-registry.cjs +41 -47
  157. package/dist/graph/zod/zod-registry.cjs.map +1 -0
  158. package/dist/graph/zod/zod-registry.d.cts +51 -0
  159. package/dist/graph/zod/zod-registry.d.cts.map +1 -0
  160. package/dist/graph/zod/zod-registry.d.ts +34 -26
  161. package/dist/graph/zod/zod-registry.d.ts.map +1 -0
  162. package/dist/graph/zod/zod-registry.js +37 -41
  163. package/dist/graph/zod/zod-registry.js.map +1 -1
  164. package/dist/hash.cjs +205 -267
  165. package/dist/hash.cjs.map +1 -0
  166. package/dist/hash.js +205 -265
  167. package/dist/hash.js.map +1 -1
  168. package/dist/index.cjs +110 -33
  169. package/dist/index.cjs.map +1 -0
  170. package/dist/index.d.cts +25 -0
  171. package/dist/index.d.ts +25 -5
  172. package/dist/index.js +18 -7
  173. package/dist/index.js.map +1 -1
  174. package/dist/interrupt.cjs +79 -85
  175. package/dist/interrupt.cjs.map +1 -0
  176. package/dist/interrupt.d.cts +49 -0
  177. package/dist/interrupt.d.cts.map +1 -0
  178. package/dist/interrupt.d.ts +6 -1
  179. package/dist/interrupt.d.ts.map +1 -0
  180. package/dist/interrupt.js +76 -80
  181. package/dist/interrupt.js.map +1 -1
  182. package/dist/prebuilt/agentName.cjs +139 -172
  183. package/dist/prebuilt/agentName.cjs.map +1 -0
  184. package/dist/prebuilt/agentName.d.cts +42 -0
  185. package/dist/prebuilt/agentName.d.cts.map +1 -0
  186. package/dist/prebuilt/agentName.d.ts +13 -21
  187. package/dist/prebuilt/agentName.d.ts.map +1 -0
  188. package/dist/prebuilt/agentName.js +139 -168
  189. package/dist/prebuilt/agentName.js.map +1 -1
  190. package/dist/prebuilt/agent_executor.cjs +42 -80
  191. package/dist/prebuilt/agent_executor.cjs.map +1 -0
  192. package/dist/prebuilt/agent_executor.d.cts +57 -0
  193. package/dist/prebuilt/agent_executor.d.cts.map +1 -0
  194. package/dist/prebuilt/agent_executor.d.ts +46 -37
  195. package/dist/prebuilt/agent_executor.d.ts.map +1 -0
  196. package/dist/prebuilt/agent_executor.js +40 -75
  197. package/dist/prebuilt/agent_executor.js.map +1 -1
  198. package/dist/prebuilt/chat_agent_executor.cjs +66 -128
  199. package/dist/prebuilt/chat_agent_executor.cjs.map +1 -0
  200. package/dist/prebuilt/chat_agent_executor.d.cts +23 -0
  201. package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -0
  202. package/dist/prebuilt/chat_agent_executor.d.ts +18 -10
  203. package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -0
  204. package/dist/prebuilt/chat_agent_executor.js +63 -123
  205. package/dist/prebuilt/chat_agent_executor.js.map +1 -1
  206. package/dist/prebuilt/index.cjs +15 -18
  207. package/dist/prebuilt/index.d.cts +8 -0
  208. package/dist/prebuilt/index.d.ts +8 -8
  209. package/dist/prebuilt/index.js +8 -7
  210. package/dist/prebuilt/interrupt.d.cts +73 -0
  211. package/dist/prebuilt/interrupt.d.cts.map +1 -0
  212. package/dist/prebuilt/interrupt.d.ts +32 -15
  213. package/dist/prebuilt/interrupt.d.ts.map +1 -0
  214. package/dist/prebuilt/react_agent_executor.cjs +317 -473
  215. package/dist/prebuilt/react_agent_executor.cjs.map +1 -0
  216. package/dist/prebuilt/react_agent_executor.d.cts +229 -0
  217. package/dist/prebuilt/react_agent_executor.d.cts.map +1 -0
  218. package/dist/prebuilt/react_agent_executor.d.ts +171 -143
  219. package/dist/prebuilt/react_agent_executor.d.ts.map +1 -0
  220. package/dist/prebuilt/react_agent_executor.js +315 -465
  221. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  222. package/dist/prebuilt/tool_executor.cjs +45 -67
  223. package/dist/prebuilt/tool_executor.cjs.map +1 -0
  224. package/dist/prebuilt/tool_executor.d.cts +42 -0
  225. package/dist/prebuilt/tool_executor.d.cts.map +1 -0
  226. package/dist/prebuilt/tool_executor.d.ts +30 -24
  227. package/dist/prebuilt/tool_executor.d.ts.map +1 -0
  228. package/dist/prebuilt/tool_executor.js +44 -63
  229. package/dist/prebuilt/tool_executor.js.map +1 -1
  230. package/dist/prebuilt/tool_node.cjs +213 -275
  231. package/dist/prebuilt/tool_node.cjs.map +1 -0
  232. package/dist/prebuilt/tool_node.d.cts +151 -0
  233. package/dist/prebuilt/tool_node.d.cts.map +1 -0
  234. package/dist/prebuilt/tool_node.d.ts +30 -17
  235. package/dist/prebuilt/tool_node.d.ts.map +1 -0
  236. package/dist/prebuilt/tool_node.js +209 -268
  237. package/dist/prebuilt/tool_node.js.map +1 -1
  238. package/dist/pregel/algo.cjs +521 -692
  239. package/dist/pregel/algo.cjs.map +1 -0
  240. package/dist/pregel/algo.d.cts +13 -0
  241. package/dist/pregel/algo.d.cts.map +1 -0
  242. package/dist/pregel/algo.d.ts +8 -38
  243. package/dist/pregel/algo.d.ts.map +1 -0
  244. package/dist/pregel/algo.js +516 -683
  245. package/dist/pregel/algo.js.map +1 -1
  246. package/dist/pregel/call.cjs +46 -42
  247. package/dist/pregel/call.cjs.map +1 -0
  248. package/dist/pregel/call.js +43 -37
  249. package/dist/pregel/call.js.map +1 -1
  250. package/dist/pregel/debug.cjs +153 -223
  251. package/dist/pregel/debug.cjs.map +1 -0
  252. package/dist/pregel/debug.js +152 -215
  253. package/dist/pregel/debug.js.map +1 -1
  254. package/dist/pregel/index.cjs +1134 -1604
  255. package/dist/pregel/index.cjs.map +1 -0
  256. package/dist/pregel/index.d.cts +534 -0
  257. package/dist/pregel/index.d.cts.map +1 -0
  258. package/dist/pregel/index.d.ts +458 -422
  259. package/dist/pregel/index.d.ts.map +1 -0
  260. package/dist/pregel/index.js +1125 -1592
  261. package/dist/pregel/index.js.map +1 -1
  262. package/dist/pregel/io.cjs +127 -234
  263. package/dist/pregel/io.cjs.map +1 -0
  264. package/dist/pregel/io.js +122 -225
  265. package/dist/pregel/io.js.map +1 -1
  266. package/dist/pregel/loop.cjs +539 -954
  267. package/dist/pregel/loop.cjs.map +1 -0
  268. package/dist/pregel/loop.js +536 -948
  269. package/dist/pregel/loop.js.map +1 -1
  270. package/dist/pregel/messages.cjs +104 -196
  271. package/dist/pregel/messages.cjs.map +1 -0
  272. package/dist/pregel/messages.js +102 -191
  273. package/dist/pregel/messages.js.map +1 -1
  274. package/dist/pregel/read.cjs +150 -280
  275. package/dist/pregel/read.cjs.map +1 -0
  276. package/dist/pregel/read.d.cts +51 -0
  277. package/dist/pregel/read.d.cts.map +1 -0
  278. package/dist/pregel/read.d.ts +48 -46
  279. package/dist/pregel/read.d.ts.map +1 -0
  280. package/dist/pregel/read.js +147 -274
  281. package/dist/pregel/read.js.map +1 -1
  282. package/dist/pregel/remote.cjs +339 -458
  283. package/dist/pregel/remote.cjs.map +1 -0
  284. package/dist/pregel/remote.d.cts +121 -0
  285. package/dist/pregel/remote.d.cts.map +1 -0
  286. package/dist/pregel/remote.d.ts +79 -69
  287. package/dist/pregel/remote.d.ts.map +1 -0
  288. package/dist/pregel/remote.js +337 -453
  289. package/dist/pregel/remote.js.map +1 -1
  290. package/dist/pregel/retry.cjs +87 -138
  291. package/dist/pregel/retry.cjs.map +1 -0
  292. package/dist/pregel/retry.js +83 -130
  293. package/dist/pregel/retry.js.map +1 -1
  294. package/dist/pregel/runnable_types.d.cts +25 -0
  295. package/dist/pregel/runnable_types.d.cts.map +1 -0
  296. package/dist/pregel/runnable_types.d.ts +22 -16
  297. package/dist/pregel/runnable_types.d.ts.map +1 -0
  298. package/dist/pregel/runner.cjs +222 -315
  299. package/dist/pregel/runner.cjs.map +1 -0
  300. package/dist/pregel/runner.js +219 -308
  301. package/dist/pregel/runner.js.map +1 -1
  302. package/dist/pregel/stream.cjs +89 -130
  303. package/dist/pregel/stream.cjs.map +1 -0
  304. package/dist/pregel/stream.js +87 -125
  305. package/dist/pregel/stream.js.map +1 -1
  306. package/dist/pregel/types.cjs +25 -62
  307. package/dist/pregel/types.cjs.map +1 -0
  308. package/dist/pregel/types.d.cts +437 -0
  309. package/dist/pregel/types.d.cts.map +1 -0
  310. package/dist/pregel/types.d.ts +377 -431
  311. package/dist/pregel/types.d.ts.map +1 -0
  312. package/dist/pregel/types.js +23 -57
  313. package/dist/pregel/types.js.map +1 -1
  314. package/dist/pregel/utils/config.cjs +100 -147
  315. package/dist/pregel/utils/config.cjs.map +1 -0
  316. package/dist/pregel/utils/config.d.cts +36 -0
  317. package/dist/pregel/utils/config.d.cts.map +1 -0
  318. package/dist/pregel/utils/config.d.ts +12 -9
  319. package/dist/pregel/utils/config.d.ts.map +1 -0
  320. package/dist/pregel/utils/config.js +98 -143
  321. package/dist/pregel/utils/config.js.map +1 -1
  322. package/dist/pregel/utils/index.cjs +87 -125
  323. package/dist/pregel/utils/index.cjs.map +1 -0
  324. package/dist/pregel/utils/index.d.cts +51 -0
  325. package/dist/pregel/utils/index.d.cts.map +1 -0
  326. package/dist/pregel/utils/index.d.ts +45 -61
  327. package/dist/pregel/utils/index.d.ts.map +1 -0
  328. package/dist/pregel/utils/index.js +86 -120
  329. package/dist/pregel/utils/index.js.map +1 -1
  330. package/dist/pregel/utils/subgraph.cjs +15 -26
  331. package/dist/pregel/utils/subgraph.cjs.map +1 -0
  332. package/dist/pregel/utils/subgraph.js +12 -21
  333. package/dist/pregel/utils/subgraph.js.map +1 -1
  334. package/dist/pregel/validate.cjs +42 -92
  335. package/dist/pregel/validate.cjs.map +1 -0
  336. package/dist/pregel/validate.js +39 -84
  337. package/dist/pregel/validate.js.map +1 -1
  338. package/dist/pregel/write.cjs +87 -137
  339. package/dist/pregel/write.cjs.map +1 -0
  340. package/dist/pregel/write.d.cts +35 -0
  341. package/dist/pregel/write.d.cts.map +1 -0
  342. package/dist/pregel/write.d.ts +27 -23
  343. package/dist/pregel/write.d.ts.map +1 -0
  344. package/dist/pregel/write.js +83 -131
  345. package/dist/pregel/write.js.map +1 -1
  346. package/dist/remote.cjs +3 -6
  347. package/dist/remote.d.cts +2 -0
  348. package/dist/remote.d.ts +2 -1
  349. package/dist/remote.js +3 -2
  350. package/dist/setup/async_local_storage.cjs +10 -7
  351. package/dist/setup/async_local_storage.cjs.map +1 -0
  352. package/dist/setup/async_local_storage.js +7 -2
  353. package/dist/setup/async_local_storage.js.map +1 -1
  354. package/dist/ui/index.cjs +4 -0
  355. package/dist/ui/index.d.cts +5 -0
  356. package/dist/ui/index.d.ts +5 -0
  357. package/dist/ui/index.js +3 -0
  358. package/dist/ui/stream.cjs +145 -0
  359. package/dist/ui/stream.cjs.map +1 -0
  360. package/dist/ui/stream.d.cts +25 -0
  361. package/dist/ui/stream.d.cts.map +1 -0
  362. package/dist/ui/stream.d.ts +25 -0
  363. package/dist/ui/stream.d.ts.map +1 -0
  364. package/dist/ui/stream.js +143 -0
  365. package/dist/ui/stream.js.map +1 -0
  366. package/dist/ui/types.infer.d.cts +53 -0
  367. package/dist/ui/types.infer.d.cts.map +1 -0
  368. package/dist/ui/types.infer.d.ts +53 -0
  369. package/dist/ui/types.infer.d.ts.map +1 -0
  370. package/dist/ui/types.message.d.cts +95 -0
  371. package/dist/ui/types.message.d.cts.map +1 -0
  372. package/dist/ui/types.message.d.ts +95 -0
  373. package/dist/ui/types.message.d.ts.map +1 -0
  374. package/dist/ui/types.schema.d.cts +228 -0
  375. package/dist/ui/types.schema.d.cts.map +1 -0
  376. package/dist/ui/types.schema.d.ts +228 -0
  377. package/dist/ui/types.schema.d.ts.map +1 -0
  378. package/dist/utils.cjs +77 -147
  379. package/dist/utils.cjs.map +1 -0
  380. package/dist/utils.d.cts +32 -0
  381. package/dist/utils.d.cts.map +1 -0
  382. package/dist/utils.d.ts +29 -25
  383. package/dist/utils.d.ts.map +1 -0
  384. package/dist/utils.js +73 -140
  385. package/dist/utils.js.map +1 -1
  386. package/dist/web.cjs +97 -55
  387. package/dist/web.d.cts +23 -0
  388. package/dist/web.d.ts +23 -14
  389. package/dist/web.js +15 -8
  390. package/package.json +83 -86
  391. package/dist/channels/any_value.cjs +0 -65
  392. package/dist/channels/any_value.js +0 -61
  393. package/dist/channels/any_value.js.map +0 -1
  394. package/dist/channels/dynamic_barrier_value.cjs +0 -212
  395. package/dist/channels/dynamic_barrier_value.js +0 -207
  396. package/dist/channels/dynamic_barrier_value.js.map +0 -1
  397. package/dist/channels/index.d.ts +0 -7
  398. package/dist/channels/index.js.map +0 -1
  399. package/dist/func/types.cjs +0 -15
  400. package/dist/func/types.js +0 -12
  401. package/dist/func/types.js.map +0 -1
  402. package/dist/graph/index.d.ts +0 -4
  403. package/dist/graph/index.js.map +0 -1
  404. package/dist/graph/message.test.cjs +0 -196
  405. package/dist/graph/message.test.d.ts +0 -1
  406. package/dist/graph/message.test.js +0 -194
  407. package/dist/graph/message.test.js.map +0 -1
  408. package/dist/graph/zod/index.js.map +0 -1
  409. package/dist/graph/zod/plugin.d.ts +0 -28
  410. package/dist/hash.d.ts +0 -2
  411. package/dist/prebuilt/index.js.map +0 -1
  412. package/dist/prebuilt/interrupt.cjs +0 -3
  413. package/dist/prebuilt/interrupt.js +0 -2
  414. package/dist/prebuilt/interrupt.js.map +0 -1
  415. package/dist/pregel/call.d.ts +0 -16
  416. package/dist/pregel/debug.d.ts +0 -41
  417. package/dist/pregel/debug.test.cjs +0 -258
  418. package/dist/pregel/debug.test.d.ts +0 -1
  419. package/dist/pregel/debug.test.js +0 -256
  420. package/dist/pregel/debug.test.js.map +0 -1
  421. package/dist/pregel/io.d.ts +0 -30
  422. package/dist/pregel/io.mapCommand.test.cjs +0 -150
  423. package/dist/pregel/io.mapCommand.test.d.ts +0 -1
  424. package/dist/pregel/io.mapCommand.test.js +0 -148
  425. package/dist/pregel/io.mapCommand.test.js.map +0 -1
  426. package/dist/pregel/loop.d.ts +0 -147
  427. package/dist/pregel/messages.d.ts +0 -30
  428. package/dist/pregel/messages.test.cjs +0 -369
  429. package/dist/pregel/messages.test.d.ts +0 -1
  430. package/dist/pregel/messages.test.js +0 -367
  431. package/dist/pregel/messages.test.js.map +0 -1
  432. package/dist/pregel/read.test.cjs +0 -194
  433. package/dist/pregel/read.test.d.ts +0 -1
  434. package/dist/pregel/read.test.js +0 -192
  435. package/dist/pregel/read.test.js.map +0 -1
  436. package/dist/pregel/retry.d.ts +0 -17
  437. package/dist/pregel/runnable_types.cjs +0 -3
  438. package/dist/pregel/runnable_types.js +0 -2
  439. package/dist/pregel/runnable_types.js.map +0 -1
  440. package/dist/pregel/runner.d.ts +0 -79
  441. package/dist/pregel/runner.test.cjs +0 -66
  442. package/dist/pregel/runner.test.d.ts +0 -1
  443. package/dist/pregel/runner.test.js +0 -64
  444. package/dist/pregel/runner.test.js.map +0 -1
  445. package/dist/pregel/stream.d.ts +0 -40
  446. package/dist/pregel/utils/config.test.cjs +0 -214
  447. package/dist/pregel/utils/config.test.d.ts +0 -1
  448. package/dist/pregel/utils/config.test.js +0 -212
  449. package/dist/pregel/utils/config.test.js.map +0 -1
  450. package/dist/pregel/utils/subgraph.d.ts +0 -4
  451. package/dist/pregel/utils/subgraph.test.cjs +0 -83
  452. package/dist/pregel/utils/subgraph.test.d.ts +0 -1
  453. package/dist/pregel/utils/subgraph.test.js +0 -81
  454. package/dist/pregel/utils/subgraph.test.js.map +0 -1
  455. package/dist/pregel/validate.d.ts +0 -16
  456. package/dist/pregel/validate.test.cjs +0 -220
  457. package/dist/pregel/validate.test.d.ts +0 -1
  458. package/dist/pregel/validate.test.js +0 -218
  459. package/dist/pregel/validate.test.js.map +0 -1
  460. package/dist/pregel/write.test.cjs +0 -181
  461. package/dist/pregel/write.test.d.ts +0 -1
  462. package/dist/pregel/write.test.js +0 -179
  463. package/dist/pregel/write.test.js.map +0 -1
  464. package/dist/remote.js.map +0 -1
  465. package/dist/setup/async_local_storage.d.ts +0 -1
  466. package/dist/web.js.map +0 -1
  467. package/index.cjs +0 -1
  468. package/index.d.cts +0 -1
  469. package/index.d.ts +0 -1
  470. package/index.js +0 -1
  471. package/prebuilt.cjs +0 -1
  472. package/prebuilt.d.cts +0 -1
  473. package/prebuilt.d.ts +0 -1
  474. package/prebuilt.js +0 -1
  475. package/pregel.cjs +0 -1
  476. package/pregel.d.cts +0 -1
  477. package/pregel.d.ts +0 -1
  478. package/pregel.js +0 -1
  479. package/remote.cjs +0 -1
  480. package/remote.d.cts +0 -1
  481. package/remote.d.ts +0 -1
  482. package/remote.js +0 -1
  483. package/web.cjs +0 -1
  484. package/web.d.cts +0 -1
  485. package/web.d.ts +0 -1
  486. package/web.js +0 -1
  487. package/zod/schema.cjs +0 -1
  488. package/zod/schema.d.cts +0 -1
  489. package/zod/schema.d.ts +0 -1
  490. package/zod/schema.js +0 -1
  491. package/zod.cjs +0 -1
  492. package/zod.d.cts +0 -1
  493. package/zod.d.ts +0 -1
  494. package/zod.js +0 -1
package/dist/hash.js CHANGED
@@ -1,58 +1,29 @@
1
- /* Converted from https://github.com/i404788/xxh3-ts
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"); // 0b10011110001101110111100110110001
32
- const PRIME32_2 = n("0x85EBCA77"); // 0b10000101111010111100101001110111
33
- const PRIME32_3 = n("0xC2B2AE3D"); // 0b11000010101100101010111000111101
34
- const PRIME64_1 = n("0x9E3779B185EBCA87"); // 0b1001111000110111011110011011000110000101111010111100101010000111
35
- const PRIME64_2 = n("0xC2B2AE3D27D4EB4F"); // 0b1100001010110010101011100011110100100111110101001110101101001111
36
- const PRIME64_3 = n("0x165667B19E3779F9"); // 0b0001011001010110011001111011000110011110001101110111100111111001
37
- const PRIME64_4 = n("0x85EBCA77C2B2AE63"); // 0b1000010111101011110010100111011111000010101100101010111001100011
38
- const PRIME64_5 = n("0x27D4EB2F165667C5"); // 0b0010011111010100111010110010111100010110010101100110011111000101
39
- const PRIME_MX1 = n("0x165667919E3779F9"); // 0b0001011001010110011001111001000110011110001101110111100111111001
40
- const PRIME_MX2 = n("0x9FB21C651E98DF25"); // 0b1001111110110010000111000110010100011110100110001101111100100101
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
- const strLen = hex.length;
43
- if (strLen % 2 !== 0) {
44
- throw new Error("String should have an even number of characters");
45
- }
46
- const maxLength = strLen / 2;
47
- const bytes = new Uint8Array(maxLength);
48
- let read = 0;
49
- let write = 0;
50
- while (write < maxLength) {
51
- const slice = hex.slice(read, (read += 2));
52
- bytes[write] = Number.parseInt(slice, 16);
53
- write += 1;
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
- if (!a)
67
- throw new Error("Assert failed");
37
+ if (!a) throw new Error("Assert failed");
68
38
  }
69
39
  function bswap64(a) {
70
- const scratchbuf = new DataView(new ArrayBuffer(8));
71
- scratchbuf.setBigUint64(0, a, true);
72
- return scratchbuf.getBigUint64(0, false);
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
- let a = input;
76
- a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));
77
- a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));
78
- return a; // 32-bit
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
- return ((a & mask32) * (b & mask32)) & mask64;
51
+ return (a & mask32) * (b & mask32) & mask64;
82
52
  }
83
53
  function rotl32(a, b) {
84
- return ((a << b) | (a >> (n(32) - b))) & mask32;
54
+ return (a << b | a >> n(32) - b) & mask32;
85
55
  }
86
56
  function XXH3_accumulate_512(acc, dataView, keyView) {
87
- for (let i = 0; i < ACC_NB; i += 1) {
88
- const data_val = dataView.getBigUint64(i * 8, true);
89
- const data_key = data_val ^ keyView.getBigUint64(i * 8, true);
90
- acc[i ^ 1] += data_val;
91
- acc[i] += XXH_mult32to64(data_key, data_key >> n(32));
92
- }
93
- return acc;
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
- for (let n = 0; n < nbStripes; n += 1) {
97
- XXH3_accumulate_512(acc, view(dataView, n * STRIPE_LEN), view(keyView, n * 8));
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
- for (let i = 0; i < ACC_NB; i += 1) {
103
- const key64 = key.getBigUint64(i * 8, true);
104
- let acc64 = acc[i];
105
- acc64 = xorshift64(acc64, n(47));
106
- acc64 ^= key64;
107
- acc64 *= PRIME32_1;
108
- acc[i] = acc64 & mask64;
109
- }
110
- return acc;
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
- return XXH3_mul128_fold64(acc[0] ^ key.getBigUint64(0, true), acc[1] ^ key.getBigUint64(_U64, true));
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
- let result64 = start;
117
- result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));
118
- result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));
119
- result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));
120
- result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));
121
- return XXH3_avalanche(result64 & mask64);
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
- let acc = input;
125
- const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);
126
- const block_len = STRIPE_LEN * nbStripesPerBlock;
127
- const nb_blocks = Math.floor((data.byteLength - 1) / block_len);
128
- for (let n = 0; n < nb_blocks; n += 1) {
129
- acc = XXH3_accumulate(acc, view(data, n * block_len), secret, nbStripesPerBlock);
130
- acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));
131
- }
132
- {
133
- // Partial block
134
- const nbStripes = Math.floor((data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN);
135
- acc = XXH3_accumulate(acc, view(data, nb_blocks * block_len), secret, nbStripes);
136
- // Last Stripe
137
- acc = f_acc(acc, view(data, data.byteLength - STRIPE_LEN), view(secret, secret.byteLength - STRIPE_LEN - 7));
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
- let acc = new BigUint64Array([
143
- PRIME32_3,
144
- PRIME64_1,
145
- PRIME64_2,
146
- PRIME64_3,
147
- PRIME64_4,
148
- PRIME32_2,
149
- PRIME64_5,
150
- PRIME32_1,
151
- ]);
152
- assert(data.byteLength > 128);
153
- acc = XXH3_hashLong(acc, data, secret, XXH3_accumulate_512, XXH3_scrambleAcc);
154
- /* converge into final hash */
155
- assert(acc.length * 8 === 64);
156
- {
157
- const low64 = XXH3_mergeAccs(acc, view(secret, 11), (n(data.byteLength) * PRIME64_1) & mask64);
158
- const high64 = XXH3_mergeAccs(acc, view(secret, secret.byteLength - STRIPE_LEN - 11), ~(n(data.byteLength) * PRIME64_2) & mask64);
159
- return (high64 << n(64)) | low64;
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
- const lll = (a * b) & mask128;
164
- return (lll & mask64) ^ (lll >> n(64));
128
+ const lll = a * b & mask128;
129
+ return lll & mask64 ^ lll >> n(64);
165
130
  }
166
131
  function XXH3_mix16B(dataView, keyView, seed) {
167
- return XXH3_mul128_fold64((dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &
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
- let accl = acc & mask64;
173
- let acch = (acc >> n(64)) & mask64;
174
- accl += XXH3_mix16B(data1, key, seed);
175
- accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);
176
- accl &= mask64;
177
- acch += XXH3_mix16B(data2, view(key, 16), seed);
178
- acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);
179
- acch &= mask64;
180
- return (acch << n(64)) | accl;
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
- let h64 = input;
184
- h64 ^= h64 >> n(37);
185
- h64 *= PRIME_MX1;
186
- h64 &= mask64;
187
- h64 ^= h64 >> n(32);
188
- return h64;
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
- let h64 = input;
192
- h64 ^= h64 >> n(33);
193
- h64 *= PRIME64_2;
194
- h64 &= mask64; // 64-bit
195
- h64 ^= h64 >> n(29);
196
- h64 *= PRIME64_3;
197
- h64 &= mask64;
198
- h64 ^= h64 >> n(32);
199
- return h64;
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
- const len = data.byteLength;
203
- assert(len > 0 && len <= 3);
204
- const combined = n(data.getUint8(len - 1)) |
205
- n(len << 8) |
206
- n(data.getUint8(0) << 16) |
207
- n(data.getUint8(len >> 1) << 24);
208
- const blow = (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;
209
- const low = (combined ^ blow) & mask64;
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
- return b ^ (b >> shift);
175
+ return b ^ b >> shift;
216
176
  }
217
177
  function XXH3_len_4to8_128b(data, key32, seed) {
218
- const len = data.byteLength;
219
- assert(len >= 4 && len <= 8);
220
- {
221
- const l1 = data.getUint32(0, true);
222
- const l2 = data.getUint32(len - 4, true);
223
- const l64 = n(l1) | (n(l2) << n(32));
224
- const bitflip = ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &
225
- mask64;
226
- const keyed = l64 ^ bitflip;
227
- let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;
228
- m128 += (m128 & mask64) << n(65);
229
- m128 &= mask128;
230
- m128 ^= m128 >> n(67);
231
- return (xorshift64((xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64, n(28)) |
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
- const len = data.byteLength;
237
- assert(len >= 9 && len <= 16);
238
- {
239
- const bitflipl = ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &
240
- mask64;
241
- const bitfliph = ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &
242
- mask64;
243
- const ll1 = data.getBigUint64(0, true);
244
- let ll2 = data.getBigUint64(len - 8, true);
245
- let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;
246
- const m128_l = (m128 & mask64) + (n(len - 1) << n(54));
247
- m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b
248
- ll2 ^= bitfliph;
249
- m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);
250
- m128 &= mask128;
251
- m128 ^= bswap64(m128 >> n(64));
252
- let h128 = (m128 & mask64) * PRIME64_2;
253
- h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);
254
- h128 &= mask128;
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
- const len = data.byteLength;
260
- assert(len <= 16);
261
- if (len > 8)
262
- return XXH3_len_9to16_128b(data, kkey, seed);
263
- if (len >= 4)
264
- return XXH3_len_4to8_128b(data, kkey, seed);
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
- // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)
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
- let acc = (n(data.byteLength) * PRIME64_1) & mask64;
277
- let i = n(data.byteLength - 1) / n(32);
278
- while (i >= 0) {
279
- const ni = Number(i);
280
- acc = XXH3_mix32B(acc, view(data, 16 * ni), view(data, data.byteLength - 16 * (ni + 1)), view(secret, 32 * ni), seed);
281
- i -= n(1);
282
- }
283
- let h128l = (acc + (acc >> n(64))) & mask64;
284
- h128l = XXH3_avalanche(h128l);
285
- let h128h = (acc & mask64) * PRIME64_1 +
286
- (acc >> n(64)) * PRIME64_4 +
287
- ((n(data.byteLength) - seed) & mask64) * PRIME64_2;
288
- h128h &= mask64;
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
- let acc = (n(data.byteLength) * PRIME64_1) & mask64;
294
- for (let i = 32; i < 160; i += 32) {
295
- acc = XXH3_mix32B(acc, view(data, i - 32), view(data, i - 16), view(secret, i - 32), seed);
296
- }
297
- acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));
298
- for (let i = 160; i <= data.byteLength; i += 32) {
299
- acc = XXH3_mix32B(acc, view(data, i - 32), view(data, i - 16), view(secret, 3 + i - 160), seed);
300
- }
301
- acc = XXH3_mix32B(acc, view(data, data.byteLength - 16), view(data, data.byteLength - 32), view(secret, 136 - 17 - 16), inv64(seed));
302
- let h128l = (acc + (acc >> n(64))) & mask64;
303
- h128l = XXH3_avalanche(h128l);
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
- // 16 byte min input
312
- export function XXH3(input, seed = n(0)) {
313
- const encoder = new TextEncoder();
314
- const data = view(typeof input === "string" ? encoder.encode(input) : input);
315
- const len = data.byteLength;
316
- const hexDigest = (data) => data.toString(16).padStart(32, "0");
317
- if (len <= 16)
318
- return hexDigest(XXH3_len_0to16_128b(data, seed));
319
- if (len <= 128)
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
- export function isXXH3(value) {
326
- // Check if the given string matches the format of XXH3 (128 bit hex digest).
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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"}