@xyo-network/hash 2.111.3 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/dist/browser/index-browser.d.ts +59 -5
  2. package/dist/browser/index-browser.mjs.map +1 -1
  3. package/dist/browser/worker/index.d.ts +2 -3
  4. package/dist/browser/worker/index.mjs.map +1 -1
  5. package/dist/browser/worker/subtleHash-bundle.js +41 -41
  6. package/dist/browser/worker/subtleHash.d.ts +2 -2
  7. package/dist/browser/worker/subtleHashNode.d.ts +3 -2
  8. package/dist/browser/worker/subtleHashNode.mjs.map +1 -1
  9. package/dist/browser/worker/wasmHash-bundle.js +41 -41
  10. package/dist/browser/worker/wasmHash.d.ts +2 -2
  11. package/dist/browser/worker/wasmHashNode.d.ts +3 -2
  12. package/dist/browser/worker/wasmHashNode.mjs.map +1 -1
  13. package/dist/neutral/index.d.ts +57 -6
  14. package/dist/neutral/index.mjs.map +1 -1
  15. package/dist/node/index.d.ts +57 -6
  16. package/dist/node/index.mjs +5 -9
  17. package/dist/node/index.mjs.map +1 -1
  18. package/dist/node/worker/index.d.ts +2 -3
  19. package/dist/node/worker/index.mjs.map +1 -1
  20. package/dist/node/worker/subtleHash.d.ts +2 -2
  21. package/dist/node/worker/subtleHashNode.d.ts +3 -2
  22. package/dist/node/worker/subtleHashNode.mjs.map +1 -1
  23. package/dist/node/worker/wasmHash.d.ts +2 -2
  24. package/dist/node/worker/wasmHashNode.d.ts +3 -2
  25. package/dist/node/worker/wasmHashNode.mjs.map +1 -1
  26. package/package.json +16 -25
  27. package/src/worker/subtleHashNode.ts +1 -1
  28. package/src/worker/wasmHashNode.ts +1 -1
  29. package/dist/browser/BrowserPayloadHasher.d.cts +0 -8
  30. package/dist/browser/BrowserPayloadHasher.d.cts.map +0 -1
  31. package/dist/browser/BrowserPayloadHasher.d.mts +0 -8
  32. package/dist/browser/BrowserPayloadHasher.d.mts.map +0 -1
  33. package/dist/browser/BrowserPayloadHasher.d.ts +0 -8
  34. package/dist/browser/BrowserPayloadHasher.d.ts.map +0 -1
  35. package/dist/browser/NodePayloadHasher.d.cts +0 -5
  36. package/dist/browser/NodePayloadHasher.d.cts.map +0 -1
  37. package/dist/browser/NodePayloadHasher.d.mts +0 -5
  38. package/dist/browser/NodePayloadHasher.d.mts.map +0 -1
  39. package/dist/browser/NodePayloadHasher.d.ts +0 -5
  40. package/dist/browser/NodePayloadHasher.d.ts.map +0 -1
  41. package/dist/browser/PayloadHasher.d.cts +0 -42
  42. package/dist/browser/PayloadHasher.d.cts.map +0 -1
  43. package/dist/browser/PayloadHasher.d.mts +0 -42
  44. package/dist/browser/PayloadHasher.d.mts.map +0 -1
  45. package/dist/browser/PayloadHasher.d.ts +0 -42
  46. package/dist/browser/PayloadHasher.d.ts.map +0 -1
  47. package/dist/browser/createBrowserWorker.d.cts +0 -2
  48. package/dist/browser/createBrowserWorker.d.cts.map +0 -1
  49. package/dist/browser/createBrowserWorker.d.mts +0 -2
  50. package/dist/browser/createBrowserWorker.d.mts.map +0 -1
  51. package/dist/browser/createBrowserWorker.d.ts +0 -2
  52. package/dist/browser/createBrowserWorker.d.ts.map +0 -1
  53. package/dist/browser/createNodeWorker.d.cts +0 -2
  54. package/dist/browser/createNodeWorker.d.cts.map +0 -1
  55. package/dist/browser/createNodeWorker.d.mts +0 -2
  56. package/dist/browser/createNodeWorker.d.mts.map +0 -1
  57. package/dist/browser/createNodeWorker.d.ts +0 -2
  58. package/dist/browser/createNodeWorker.d.ts.map +0 -1
  59. package/dist/browser/hasEmptyFields.d.cts +0 -3
  60. package/dist/browser/hasEmptyFields.d.cts.map +0 -1
  61. package/dist/browser/hasEmptyFields.d.mts +0 -3
  62. package/dist/browser/hasEmptyFields.d.mts.map +0 -1
  63. package/dist/browser/hasEmptyFields.d.ts +0 -3
  64. package/dist/browser/hasEmptyFields.d.ts.map +0 -1
  65. package/dist/browser/index-browser.cjs +0 -337
  66. package/dist/browser/index-browser.cjs.map +0 -1
  67. package/dist/browser/index-browser.d.cts +0 -5
  68. package/dist/browser/index-browser.d.cts.map +0 -1
  69. package/dist/browser/index-browser.d.mts +0 -5
  70. package/dist/browser/index-browser.d.mts.map +0 -1
  71. package/dist/browser/index-browser.d.ts.map +0 -1
  72. package/dist/browser/index.d.cts +0 -6
  73. package/dist/browser/index.d.cts.map +0 -1
  74. package/dist/browser/index.d.mts +0 -6
  75. package/dist/browser/index.d.mts.map +0 -1
  76. package/dist/browser/index.d.ts +0 -6
  77. package/dist/browser/index.d.ts.map +0 -1
  78. package/dist/browser/removeEmptyFields.d.cts +0 -3
  79. package/dist/browser/removeEmptyFields.d.cts.map +0 -1
  80. package/dist/browser/removeEmptyFields.d.mts +0 -3
  81. package/dist/browser/removeEmptyFields.d.mts.map +0 -1
  82. package/dist/browser/removeEmptyFields.d.ts +0 -3
  83. package/dist/browser/removeEmptyFields.d.ts.map +0 -1
  84. package/dist/browser/removeFields.d.cts +0 -8
  85. package/dist/browser/removeFields.d.cts.map +0 -1
  86. package/dist/browser/removeFields.d.mts +0 -8
  87. package/dist/browser/removeFields.d.mts.map +0 -1
  88. package/dist/browser/removeFields.d.ts +0 -8
  89. package/dist/browser/removeFields.d.ts.map +0 -1
  90. package/dist/browser/sortFields.d.cts +0 -3
  91. package/dist/browser/sortFields.d.cts.map +0 -1
  92. package/dist/browser/sortFields.d.mts +0 -3
  93. package/dist/browser/sortFields.d.mts.map +0 -1
  94. package/dist/browser/sortFields.d.ts +0 -3
  95. package/dist/browser/sortFields.d.ts.map +0 -1
  96. package/dist/browser/worker/index.cjs +0 -50
  97. package/dist/browser/worker/index.cjs.map +0 -1
  98. package/dist/browser/worker/index.d.cts +0 -3
  99. package/dist/browser/worker/index.d.cts.map +0 -1
  100. package/dist/browser/worker/index.d.mts +0 -3
  101. package/dist/browser/worker/index.d.mts.map +0 -1
  102. package/dist/browser/worker/index.d.ts.map +0 -1
  103. package/dist/browser/worker/subtleHash.cjs +0 -11
  104. package/dist/browser/worker/subtleHash.cjs.map +0 -1
  105. package/dist/browser/worker/subtleHash.d.cts +0 -2
  106. package/dist/browser/worker/subtleHash.d.cts.map +0 -1
  107. package/dist/browser/worker/subtleHash.d.mts +0 -2
  108. package/dist/browser/worker/subtleHash.d.mts.map +0 -1
  109. package/dist/browser/worker/subtleHash.d.ts.map +0 -1
  110. package/dist/browser/worker/subtleHashNode.cjs +0 -35
  111. package/dist/browser/worker/subtleHashNode.cjs.map +0 -1
  112. package/dist/browser/worker/subtleHashNode.d.cts +0 -2
  113. package/dist/browser/worker/subtleHashNode.d.cts.map +0 -1
  114. package/dist/browser/worker/subtleHashNode.d.mts +0 -2
  115. package/dist/browser/worker/subtleHashNode.d.mts.map +0 -1
  116. package/dist/browser/worker/subtleHashNode.d.ts.map +0 -1
  117. package/dist/browser/worker/wasmHash.cjs +0 -12
  118. package/dist/browser/worker/wasmHash.cjs.map +0 -1
  119. package/dist/browser/worker/wasmHash.d.cts +0 -2
  120. package/dist/browser/worker/wasmHash.d.cts.map +0 -1
  121. package/dist/browser/worker/wasmHash.d.mts +0 -2
  122. package/dist/browser/worker/wasmHash.d.mts.map +0 -1
  123. package/dist/browser/worker/wasmHash.d.ts.map +0 -1
  124. package/dist/browser/worker/wasmHashNode.cjs +0 -36
  125. package/dist/browser/worker/wasmHashNode.cjs.map +0 -1
  126. package/dist/browser/worker/wasmHashNode.d.cts +0 -2
  127. package/dist/browser/worker/wasmHashNode.d.cts.map +0 -1
  128. package/dist/browser/worker/wasmHashNode.d.mts +0 -2
  129. package/dist/browser/worker/wasmHashNode.d.mts.map +0 -1
  130. package/dist/browser/worker/wasmHashNode.d.ts.map +0 -1
  131. package/dist/neutral/BrowserPayloadHasher.d.cts +0 -8
  132. package/dist/neutral/BrowserPayloadHasher.d.cts.map +0 -1
  133. package/dist/neutral/BrowserPayloadHasher.d.mts +0 -8
  134. package/dist/neutral/BrowserPayloadHasher.d.mts.map +0 -1
  135. package/dist/neutral/BrowserPayloadHasher.d.ts +0 -8
  136. package/dist/neutral/BrowserPayloadHasher.d.ts.map +0 -1
  137. package/dist/neutral/NodePayloadHasher.d.cts +0 -5
  138. package/dist/neutral/NodePayloadHasher.d.cts.map +0 -1
  139. package/dist/neutral/NodePayloadHasher.d.mts +0 -5
  140. package/dist/neutral/NodePayloadHasher.d.mts.map +0 -1
  141. package/dist/neutral/NodePayloadHasher.d.ts +0 -5
  142. package/dist/neutral/NodePayloadHasher.d.ts.map +0 -1
  143. package/dist/neutral/PayloadHasher.d.cts +0 -42
  144. package/dist/neutral/PayloadHasher.d.cts.map +0 -1
  145. package/dist/neutral/PayloadHasher.d.mts +0 -42
  146. package/dist/neutral/PayloadHasher.d.mts.map +0 -1
  147. package/dist/neutral/PayloadHasher.d.ts +0 -42
  148. package/dist/neutral/PayloadHasher.d.ts.map +0 -1
  149. package/dist/neutral/createBrowserWorker.d.cts +0 -2
  150. package/dist/neutral/createBrowserWorker.d.cts.map +0 -1
  151. package/dist/neutral/createBrowserWorker.d.mts +0 -2
  152. package/dist/neutral/createBrowserWorker.d.mts.map +0 -1
  153. package/dist/neutral/createBrowserWorker.d.ts +0 -2
  154. package/dist/neutral/createBrowserWorker.d.ts.map +0 -1
  155. package/dist/neutral/createNodeWorker.d.cts +0 -2
  156. package/dist/neutral/createNodeWorker.d.cts.map +0 -1
  157. package/dist/neutral/createNodeWorker.d.mts +0 -2
  158. package/dist/neutral/createNodeWorker.d.mts.map +0 -1
  159. package/dist/neutral/createNodeWorker.d.ts +0 -2
  160. package/dist/neutral/createNodeWorker.d.ts.map +0 -1
  161. package/dist/neutral/hasEmptyFields.d.cts +0 -3
  162. package/dist/neutral/hasEmptyFields.d.cts.map +0 -1
  163. package/dist/neutral/hasEmptyFields.d.mts +0 -3
  164. package/dist/neutral/hasEmptyFields.d.mts.map +0 -1
  165. package/dist/neutral/hasEmptyFields.d.ts +0 -3
  166. package/dist/neutral/hasEmptyFields.d.ts.map +0 -1
  167. package/dist/neutral/index-browser.d.cts +0 -5
  168. package/dist/neutral/index-browser.d.cts.map +0 -1
  169. package/dist/neutral/index-browser.d.mts +0 -5
  170. package/dist/neutral/index-browser.d.mts.map +0 -1
  171. package/dist/neutral/index-browser.d.ts +0 -5
  172. package/dist/neutral/index-browser.d.ts.map +0 -1
  173. package/dist/neutral/index.cjs +0 -326
  174. package/dist/neutral/index.cjs.map +0 -1
  175. package/dist/neutral/index.d.cts +0 -6
  176. package/dist/neutral/index.d.cts.map +0 -1
  177. package/dist/neutral/index.d.mts +0 -6
  178. package/dist/neutral/index.d.mts.map +0 -1
  179. package/dist/neutral/index.d.ts.map +0 -1
  180. package/dist/neutral/removeEmptyFields.d.cts +0 -3
  181. package/dist/neutral/removeEmptyFields.d.cts.map +0 -1
  182. package/dist/neutral/removeEmptyFields.d.mts +0 -3
  183. package/dist/neutral/removeEmptyFields.d.mts.map +0 -1
  184. package/dist/neutral/removeEmptyFields.d.ts +0 -3
  185. package/dist/neutral/removeEmptyFields.d.ts.map +0 -1
  186. package/dist/neutral/removeFields.d.cts +0 -8
  187. package/dist/neutral/removeFields.d.cts.map +0 -1
  188. package/dist/neutral/removeFields.d.mts +0 -8
  189. package/dist/neutral/removeFields.d.mts.map +0 -1
  190. package/dist/neutral/removeFields.d.ts +0 -8
  191. package/dist/neutral/removeFields.d.ts.map +0 -1
  192. package/dist/neutral/sortFields.d.cts +0 -3
  193. package/dist/neutral/sortFields.d.cts.map +0 -1
  194. package/dist/neutral/sortFields.d.mts +0 -3
  195. package/dist/neutral/sortFields.d.mts.map +0 -1
  196. package/dist/neutral/sortFields.d.ts +0 -3
  197. package/dist/neutral/sortFields.d.ts.map +0 -1
  198. package/dist/neutral/worker/index.d.cts +0 -3
  199. package/dist/neutral/worker/index.d.cts.map +0 -1
  200. package/dist/neutral/worker/index.d.mts +0 -3
  201. package/dist/neutral/worker/index.d.mts.map +0 -1
  202. package/dist/neutral/worker/index.d.ts +0 -3
  203. package/dist/neutral/worker/index.d.ts.map +0 -1
  204. package/dist/neutral/worker/subtleHash.d.cts +0 -2
  205. package/dist/neutral/worker/subtleHash.d.cts.map +0 -1
  206. package/dist/neutral/worker/subtleHash.d.mts +0 -2
  207. package/dist/neutral/worker/subtleHash.d.mts.map +0 -1
  208. package/dist/neutral/worker/subtleHash.d.ts +0 -2
  209. package/dist/neutral/worker/subtleHash.d.ts.map +0 -1
  210. package/dist/neutral/worker/subtleHashNode.d.cts +0 -2
  211. package/dist/neutral/worker/subtleHashNode.d.cts.map +0 -1
  212. package/dist/neutral/worker/subtleHashNode.d.mts +0 -2
  213. package/dist/neutral/worker/subtleHashNode.d.mts.map +0 -1
  214. package/dist/neutral/worker/subtleHashNode.d.ts +0 -2
  215. package/dist/neutral/worker/subtleHashNode.d.ts.map +0 -1
  216. package/dist/neutral/worker/wasmHash.d.cts +0 -2
  217. package/dist/neutral/worker/wasmHash.d.cts.map +0 -1
  218. package/dist/neutral/worker/wasmHash.d.mts +0 -2
  219. package/dist/neutral/worker/wasmHash.d.mts.map +0 -1
  220. package/dist/neutral/worker/wasmHash.d.ts +0 -2
  221. package/dist/neutral/worker/wasmHash.d.ts.map +0 -1
  222. package/dist/neutral/worker/wasmHashNode.d.cts +0 -2
  223. package/dist/neutral/worker/wasmHashNode.d.cts.map +0 -1
  224. package/dist/neutral/worker/wasmHashNode.d.mts +0 -2
  225. package/dist/neutral/worker/wasmHashNode.d.mts.map +0 -1
  226. package/dist/neutral/worker/wasmHashNode.d.ts +0 -2
  227. package/dist/neutral/worker/wasmHashNode.d.ts.map +0 -1
  228. package/dist/node/BrowserPayloadHasher.d.cts +0 -8
  229. package/dist/node/BrowserPayloadHasher.d.cts.map +0 -1
  230. package/dist/node/BrowserPayloadHasher.d.mts +0 -8
  231. package/dist/node/BrowserPayloadHasher.d.mts.map +0 -1
  232. package/dist/node/BrowserPayloadHasher.d.ts +0 -8
  233. package/dist/node/BrowserPayloadHasher.d.ts.map +0 -1
  234. package/dist/node/NodePayloadHasher.d.cts +0 -5
  235. package/dist/node/NodePayloadHasher.d.cts.map +0 -1
  236. package/dist/node/NodePayloadHasher.d.mts +0 -5
  237. package/dist/node/NodePayloadHasher.d.mts.map +0 -1
  238. package/dist/node/NodePayloadHasher.d.ts +0 -5
  239. package/dist/node/NodePayloadHasher.d.ts.map +0 -1
  240. package/dist/node/PayloadHasher.d.cts +0 -42
  241. package/dist/node/PayloadHasher.d.cts.map +0 -1
  242. package/dist/node/PayloadHasher.d.mts +0 -42
  243. package/dist/node/PayloadHasher.d.mts.map +0 -1
  244. package/dist/node/PayloadHasher.d.ts +0 -42
  245. package/dist/node/PayloadHasher.d.ts.map +0 -1
  246. package/dist/node/createBrowserWorker.d.cts +0 -2
  247. package/dist/node/createBrowserWorker.d.cts.map +0 -1
  248. package/dist/node/createBrowserWorker.d.mts +0 -2
  249. package/dist/node/createBrowserWorker.d.mts.map +0 -1
  250. package/dist/node/createBrowserWorker.d.ts +0 -2
  251. package/dist/node/createBrowserWorker.d.ts.map +0 -1
  252. package/dist/node/createNodeWorker.d.cts +0 -2
  253. package/dist/node/createNodeWorker.d.cts.map +0 -1
  254. package/dist/node/createNodeWorker.d.mts +0 -2
  255. package/dist/node/createNodeWorker.d.mts.map +0 -1
  256. package/dist/node/createNodeWorker.d.ts +0 -2
  257. package/dist/node/createNodeWorker.d.ts.map +0 -1
  258. package/dist/node/hasEmptyFields.d.cts +0 -3
  259. package/dist/node/hasEmptyFields.d.cts.map +0 -1
  260. package/dist/node/hasEmptyFields.d.mts +0 -3
  261. package/dist/node/hasEmptyFields.d.mts.map +0 -1
  262. package/dist/node/hasEmptyFields.d.ts +0 -3
  263. package/dist/node/hasEmptyFields.d.ts.map +0 -1
  264. package/dist/node/index-browser.d.cts +0 -5
  265. package/dist/node/index-browser.d.cts.map +0 -1
  266. package/dist/node/index-browser.d.mts +0 -5
  267. package/dist/node/index-browser.d.mts.map +0 -1
  268. package/dist/node/index-browser.d.ts +0 -5
  269. package/dist/node/index-browser.d.ts.map +0 -1
  270. package/dist/node/index.cjs +0 -340
  271. package/dist/node/index.cjs.map +0 -1
  272. package/dist/node/index.d.cts +0 -6
  273. package/dist/node/index.d.cts.map +0 -1
  274. package/dist/node/index.d.mts +0 -6
  275. package/dist/node/index.d.mts.map +0 -1
  276. package/dist/node/index.d.ts.map +0 -1
  277. package/dist/node/removeEmptyFields.d.cts +0 -3
  278. package/dist/node/removeEmptyFields.d.cts.map +0 -1
  279. package/dist/node/removeEmptyFields.d.mts +0 -3
  280. package/dist/node/removeEmptyFields.d.mts.map +0 -1
  281. package/dist/node/removeEmptyFields.d.ts +0 -3
  282. package/dist/node/removeEmptyFields.d.ts.map +0 -1
  283. package/dist/node/removeFields.d.cts +0 -8
  284. package/dist/node/removeFields.d.cts.map +0 -1
  285. package/dist/node/removeFields.d.mts +0 -8
  286. package/dist/node/removeFields.d.mts.map +0 -1
  287. package/dist/node/removeFields.d.ts +0 -8
  288. package/dist/node/removeFields.d.ts.map +0 -1
  289. package/dist/node/sortFields.d.cts +0 -3
  290. package/dist/node/sortFields.d.cts.map +0 -1
  291. package/dist/node/sortFields.d.mts +0 -3
  292. package/dist/node/sortFields.d.mts.map +0 -1
  293. package/dist/node/sortFields.d.ts +0 -3
  294. package/dist/node/sortFields.d.ts.map +0 -1
  295. package/dist/node/worker/index.cjs +0 -55
  296. package/dist/node/worker/index.cjs.map +0 -1
  297. package/dist/node/worker/index.d.cts +0 -3
  298. package/dist/node/worker/index.d.cts.map +0 -1
  299. package/dist/node/worker/index.d.mts +0 -3
  300. package/dist/node/worker/index.d.mts.map +0 -1
  301. package/dist/node/worker/index.d.ts.map +0 -1
  302. package/dist/node/worker/subtleHash.cjs +0 -11
  303. package/dist/node/worker/subtleHash.cjs.map +0 -1
  304. package/dist/node/worker/subtleHash.d.cts +0 -2
  305. package/dist/node/worker/subtleHash.d.cts.map +0 -1
  306. package/dist/node/worker/subtleHash.d.mts +0 -2
  307. package/dist/node/worker/subtleHash.d.mts.map +0 -1
  308. package/dist/node/worker/subtleHash.d.ts.map +0 -1
  309. package/dist/node/worker/subtleHashNode.cjs +0 -39
  310. package/dist/node/worker/subtleHashNode.cjs.map +0 -1
  311. package/dist/node/worker/subtleHashNode.d.cts +0 -2
  312. package/dist/node/worker/subtleHashNode.d.cts.map +0 -1
  313. package/dist/node/worker/subtleHashNode.d.mts +0 -2
  314. package/dist/node/worker/subtleHashNode.d.mts.map +0 -1
  315. package/dist/node/worker/subtleHashNode.d.ts.map +0 -1
  316. package/dist/node/worker/wasmHash.cjs +0 -12
  317. package/dist/node/worker/wasmHash.cjs.map +0 -1
  318. package/dist/node/worker/wasmHash.d.cts +0 -2
  319. package/dist/node/worker/wasmHash.d.cts.map +0 -1
  320. package/dist/node/worker/wasmHash.d.mts +0 -2
  321. package/dist/node/worker/wasmHash.d.mts.map +0 -1
  322. package/dist/node/worker/wasmHash.d.ts.map +0 -1
  323. package/dist/node/worker/wasmHashNode.cjs +0 -40
  324. package/dist/node/worker/wasmHashNode.cjs.map +0 -1
  325. package/dist/node/worker/wasmHashNode.d.cts +0 -2
  326. package/dist/node/worker/wasmHashNode.d.cts.map +0 -1
  327. package/dist/node/worker/wasmHashNode.d.mts +0 -2
  328. package/dist/node/worker/wasmHashNode.d.mts.map +0 -1
  329. package/dist/node/worker/wasmHashNode.d.ts.map +0 -1
@@ -28,9 +28,9 @@
28
28
  ));
29
29
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
30
30
 
31
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/serializers.js
31
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/serializers.js
32
32
  var require_serializers = __commonJS({
33
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/serializers.js"(exports) {
33
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/serializers.js"(exports) {
34
34
  "use strict";
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.DefaultSerializer = void 0;
@@ -75,9 +75,9 @@
75
75
  }
76
76
  });
77
77
 
78
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/common.js
78
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/common.js
79
79
  var require_common = __commonJS({
80
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/common.js"(exports) {
80
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/common.js"(exports) {
81
81
  "use strict";
82
82
  Object.defineProperty(exports, "__esModule", { value: true });
83
83
  exports.registerSerializer = registerSerializer;
@@ -97,9 +97,9 @@
97
97
  }
98
98
  });
99
99
 
100
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/get-bundle-url.browser.js
100
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/get-bundle-url.browser.js
101
101
  var require_get_bundle_url_browser = __commonJS({
102
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/get-bundle-url.browser.js"(exports) {
102
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/get-bundle-url.browser.js"(exports) {
103
103
  "use strict";
104
104
  Object.defineProperty(exports, "__esModule", { value: true });
105
105
  exports.getBaseURL = getBaseURL;
@@ -128,9 +128,9 @@
128
128
  }
129
129
  });
130
130
 
131
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/implementation.browser.js
131
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/implementation.browser.js
132
132
  var require_implementation_browser = __commonJS({
133
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/implementation.browser.js"(exports) {
133
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/implementation.browser.js"(exports) {
134
134
  "use strict";
135
135
  Object.defineProperty(exports, "__esModule", { value: true });
136
136
  exports.defaultPoolSize = void 0;
@@ -1762,9 +1762,9 @@
1762
1762
  }
1763
1763
  });
1764
1764
 
1765
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/ponyfills.js
1765
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/ponyfills.js
1766
1766
  var require_ponyfills = __commonJS({
1767
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/ponyfills.js"(exports) {
1767
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/ponyfills.js"(exports) {
1768
1768
  "use strict";
1769
1769
  Object.defineProperty(exports, "__esModule", { value: true });
1770
1770
  exports.allSettled = allSettled;
@@ -1787,9 +1787,9 @@
1787
1787
  }
1788
1788
  });
1789
1789
 
1790
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/pool-types.js
1790
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/pool-types.js
1791
1791
  var require_pool_types = __commonJS({
1792
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/pool-types.js"(exports) {
1792
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/pool-types.js"(exports) {
1793
1793
  "use strict";
1794
1794
  Object.defineProperty(exports, "__esModule", { value: true });
1795
1795
  exports.PoolEventType = void 0;
@@ -1807,9 +1807,9 @@
1807
1807
  }
1808
1808
  });
1809
1809
 
1810
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/symbols.js
1810
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/symbols.js
1811
1811
  var require_symbols3 = __commonJS({
1812
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/symbols.js"(exports) {
1812
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/symbols.js"(exports) {
1813
1813
  "use strict";
1814
1814
  Object.defineProperty(exports, "__esModule", { value: true });
1815
1815
  exports.$worker = exports.$transferable = exports.$terminate = exports.$events = exports.$errors = void 0;
@@ -1821,9 +1821,9 @@
1821
1821
  }
1822
1822
  });
1823
1823
 
1824
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/thread.js
1824
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/thread.js
1825
1825
  var require_thread = __commonJS({
1826
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/thread.js"(exports) {
1826
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/thread.js"(exports) {
1827
1827
  "use strict";
1828
1828
  Object.defineProperty(exports, "__esModule", { value: true });
1829
1829
  exports.Thread = void 0;
@@ -1845,9 +1845,9 @@
1845
1845
  }
1846
1846
  });
1847
1847
 
1848
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/pool.js
1848
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/pool.js
1849
1849
  var require_pool = __commonJS({
1850
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/pool.js"(exports) {
1850
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/pool.js"(exports) {
1851
1851
  "use strict";
1852
1852
  var __importDefault = exports && exports.__importDefault || function(mod) {
1853
1853
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -2109,9 +2109,9 @@
2109
2109
  }
2110
2110
  });
2111
2111
 
2112
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/promise.js
2112
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/promise.js
2113
2113
  var require_promise = __commonJS({
2114
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/promise.js"(exports) {
2114
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/promise.js"(exports) {
2115
2115
  "use strict";
2116
2116
  Object.defineProperty(exports, "__esModule", { value: true });
2117
2117
  exports.createPromiseWithResolver = createPromiseWithResolver;
@@ -2137,9 +2137,9 @@
2137
2137
  }
2138
2138
  });
2139
2139
 
2140
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/types/master.js
2140
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/types/master.js
2141
2141
  var require_master = __commonJS({
2142
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/types/master.js"(exports) {
2142
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/types/master.js"(exports) {
2143
2143
  "use strict";
2144
2144
  Object.defineProperty(exports, "__esModule", { value: true });
2145
2145
  exports.WorkerEventType = void 0;
@@ -2153,9 +2153,9 @@
2153
2153
  }
2154
2154
  });
2155
2155
 
2156
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/observable-promise.js
2156
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/observable-promise.js
2157
2157
  var require_observable_promise = __commonJS({
2158
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/observable-promise.js"(exports) {
2158
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/observable-promise.js"(exports) {
2159
2159
  "use strict";
2160
2160
  Object.defineProperty(exports, "__esModule", { value: true });
2161
2161
  exports.ObservablePromise = void 0;
@@ -2287,9 +2287,9 @@
2287
2287
  }
2288
2288
  });
2289
2289
 
2290
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/transferable.js
2290
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/transferable.js
2291
2291
  var require_transferable = __commonJS({
2292
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/transferable.js"(exports) {
2292
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/transferable.js"(exports) {
2293
2293
  "use strict";
2294
2294
  Object.defineProperty(exports, "__esModule", { value: true });
2295
2295
  exports.isTransferDescriptor = isTransferDescriptor;
@@ -2318,9 +2318,9 @@
2318
2318
  }
2319
2319
  });
2320
2320
 
2321
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/types/messages.js
2321
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/types/messages.js
2322
2322
  var require_messages = __commonJS({
2323
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/types/messages.js"(exports) {
2323
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/types/messages.js"(exports) {
2324
2324
  "use strict";
2325
2325
  Object.defineProperty(exports, "__esModule", { value: true });
2326
2326
  exports.WorkerMessageType = exports.MasterMessageType = void 0;
@@ -2340,9 +2340,9 @@
2340
2340
  }
2341
2341
  });
2342
2342
 
2343
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/invocation-proxy.js
2343
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/invocation-proxy.js
2344
2344
  var require_invocation_proxy = __commonJS({
2345
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/invocation-proxy.js"(exports) {
2345
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/invocation-proxy.js"(exports) {
2346
2346
  "use strict";
2347
2347
  var __importDefault = exports && exports.__importDefault || function(mod) {
2348
2348
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -2461,9 +2461,9 @@
2461
2461
  }
2462
2462
  });
2463
2463
 
2464
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/spawn.js
2464
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/spawn.js
2465
2465
  var require_spawn = __commonJS({
2466
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/spawn.js"(exports) {
2466
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/spawn.js"(exports) {
2467
2467
  "use strict";
2468
2468
  var __importDefault = exports && exports.__importDefault || function(mod) {
2469
2469
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -2576,9 +2576,9 @@
2576
2576
  }
2577
2577
  });
2578
2578
 
2579
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/index.js
2579
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/index.js
2580
2580
  var require_master2 = __commonJS({
2581
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/master/index.js"(exports) {
2581
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/master/index.js"(exports) {
2582
2582
  "use strict";
2583
2583
  Object.defineProperty(exports, "__esModule", { value: true });
2584
2584
  exports.isWorkerRuntime = exports.Worker = exports.BlobWorker = exports.Thread = exports.spawn = exports.Pool = void 0;
@@ -2623,9 +2623,9 @@
2623
2623
  }
2624
2624
  });
2625
2625
 
2626
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/worker/implementation.browser.js
2626
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/worker/implementation.browser.js
2627
2627
  var require_implementation_browser2 = __commonJS({
2628
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/worker/implementation.browser.js"(exports) {
2628
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/worker/implementation.browser.js"(exports) {
2629
2629
  "use strict";
2630
2630
  Object.defineProperty(exports, "__esModule", { value: true });
2631
2631
  var isWorkerRuntime = function isWorkerRuntime2() {
@@ -2653,9 +2653,9 @@
2653
2653
  }
2654
2654
  });
2655
2655
 
2656
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/worker/index.js
2656
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/worker/index.js
2657
2657
  var require_worker = __commonJS({
2658
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/worker/index.js"(exports) {
2658
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/worker/index.js"(exports) {
2659
2659
  "use strict";
2660
2660
  var __importDefault = exports && exports.__importDefault || function(mod) {
2661
2661
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -2833,9 +2833,9 @@
2833
2833
  }
2834
2834
  });
2835
2835
 
2836
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/index.js
2836
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/index.js
2837
2837
  var require_esm = __commonJS({
2838
- "../../../../../../node_modules/.store/@xylabs-threads-npm-3.6.12-71f4c95178/package/dist/esm/index.js"(exports) {
2838
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.0-4e935ed3b9/package/dist/esm/index.js"(exports) {
2839
2839
  "use strict";
2840
2840
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
2841
2841
  if (k2 === void 0) k2 = k;
@@ -2875,7 +2875,7 @@
2875
2875
  }
2876
2876
  });
2877
2877
 
2878
- // ../../../../../../node_modules/.store/@xylabs-hex-npm-3.6.12-6f57fdcbec/package/dist/neutral/index.mjs
2878
+ // ../../../../../../node_modules/.store/@xylabs-hex-npm-4.0.0-4d513ffe97/package/dist/neutral/index.mjs
2879
2879
  var assertError = (value, assert, defaultMessage) => {
2880
2880
  if (assert) {
2881
2881
  const assertString = typeof assert === "string" ? assert : typeof assert === "boolean" ? defaultMessage : assert(value, defaultMessage);
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=wasmHash.d.ts.map
1
+
2
+ export { }
@@ -1,2 +1,3 @@
1
- export declare const wasmHashFunc: () => void;
2
- //# sourceMappingURL=wasmHashNode.d.ts.map
1
+ declare const wasmHashFunc: () => void;
2
+
3
+ export { wasmHashFunc };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/wasmHashNode.ts"],"sourcesContent":["/* eslint-disable import/no-internal-modules */\n/* eslint-disable @typescript-eslint/no-require-imports */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\n\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n })\n}\n"],"mappings":";;;;;;;;AAEO,IAAM,eAAe,MAAM;AAChC,QAAM,EAAE,OAAO,IAAI,UAAQ,WAAW;AACtC,QAAM,EAAE,OAAO,IAAI,UAAQ,aAAa;AAExC,QAAM,EAAE,OAAO,IAAI,UAAQ,wBAAwB;AAEnD,SAAO;AAAA,IACL,MAAM,KAAK,MAAc;AACvB,aAAO,OAAO,MAAM,OAAO,IAAI,GAAG,IAAI;AAAA,IACxC;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/worker/wasmHashNode.ts"],"sourcesContent":["/* eslint-disable import-x/no-internal-modules */\n/* eslint-disable @typescript-eslint/no-require-imports */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\n\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n })\n}\n"],"mappings":";;;;;;;;AAEO,IAAM,eAAe,MAAM;AAChC,QAAM,EAAE,OAAO,IAAI,UAAQ,WAAW;AACtC,QAAM,EAAE,OAAO,IAAI,UAAQ,aAAa;AAExC,QAAM,EAAE,OAAO,IAAI,UAAQ,wBAAwB;AAEnD,SAAO;AAAA,IACL,MAAM,KAAK,MAAc;AACvB,aAAO,OAAO,MAAM,OAAO,IAAI,GAAG,IAAI;AAAA,IACxC;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -1,6 +1,57 @@
1
- export * from './hasEmptyFields.ts';
2
- export { NodePayloadHasher as PayloadHasher } from './NodePayloadHasher.ts';
3
- export * from './removeEmptyFields.ts';
4
- export * from './removeFields.ts';
5
- export * from './sortFields.ts';
6
- //# sourceMappingURL=index.d.ts.map
1
+ import { EmptyObject, ObjectWrapper } from '@xylabs/object';
2
+ import * as _xylabs_threads_master from '@xylabs/threads/master';
3
+ import { Hash } from '@xylabs/hex';
4
+ import { Worker } from '@xylabs/threads';
5
+ import { WasmSupport } from '@xyo-network/wasm';
6
+ import { omitBy, pickBy } from '@xylabs/lodash';
7
+
8
+ declare const hasEmptyFields: <T extends EmptyObject>(obj: T) => boolean;
9
+
10
+ declare class PayloadHasher<T extends EmptyObject = EmptyObject> extends ObjectWrapper<T> {
11
+ static allowHashPooling: boolean;
12
+ static allowSubtle: boolean;
13
+ static createBrowserWorker?: (url?: URL) => Worker | undefined;
14
+ static createNodeWorker?: (func?: () => unknown) => Worker | undefined;
15
+ static initialized: void;
16
+ static subtleHashWorkerUrl?: URL;
17
+ static warnIfUsingJsHash: boolean;
18
+ static wasmHashWorkerUrl?: URL;
19
+ static readonly wasmInitialized: Promise<void>;
20
+ static readonly wasmSupport: WasmSupport;
21
+ private static _jsHashPool?;
22
+ private static _subtleHashPool?;
23
+ private static _wasmHashPool?;
24
+ private static get subtleHashPool();
25
+ private static get wasmHashPool();
26
+ static createWorker(url?: URL, func?: () => unknown): _xylabs_threads_master.Worker;
27
+ static filterExcludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
28
+ static filterIncludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
29
+ static findByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash): Promise<T | undefined>;
30
+ static hash<T extends EmptyObject>(obj: T): Promise<Hash>;
31
+ static hashFields<T extends EmptyObject>(obj: T): T;
32
+ static hashPairs<T extends EmptyObject>(objs: T[]): Promise<[T, Hash][]>;
33
+ static hashes<T extends EmptyObject>(objs?: T[]): Promise<Hash[] | undefined>;
34
+ static json<T extends EmptyObject>(payload: T, meta?: boolean): T;
35
+ static jsonPayload<T extends EmptyObject>(payload: T, meta?: boolean): T;
36
+ static stringifyHashFields<T extends EmptyObject>(obj: T): string;
37
+ static subtleHash(data: Uint8Array): Promise<ArrayBuffer>;
38
+ static wasmHash(data: string): Promise<any>;
39
+ private static createWorkerPool;
40
+ hash(): Promise<Hash>;
41
+ json(meta?: boolean): T;
42
+ }
43
+
44
+ declare class NodePayloadHasher extends PayloadHasher {
45
+ static createNodeWorker: (func?: () => unknown) => _xylabs_threads_master.WorkerImplementation | undefined;
46
+ }
47
+
48
+ declare const removeEmptyFields: <T extends EmptyObject>(obj: T) => T;
49
+
50
+ type ValueKeyIteratee<T> = (value: T, key: string) => unknown;
51
+ declare const deepBy: <T extends EmptyObject>(obj: T, predicate: ValueKeyIteratee<T>, func: typeof omitBy | typeof pickBy) => T;
52
+ declare const deepOmitPrefixedFields: <T extends EmptyObject>(obj: T, prefix: string) => T;
53
+ declare const deepPickUnderscoreFields: <T extends EmptyObject>(obj: T) => T;
54
+
55
+ declare const sortFields: <T extends EmptyObject>(obj: T) => T;
56
+
57
+ export { NodePayloadHasher as PayloadHasher, deepBy, deepOmitPrefixedFields, deepPickUnderscoreFields, hasEmptyFields, removeEmptyFields, sortFields };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hasEmptyFields.ts","../../src/createNodeWorker.ts","../../src/PayloadHasher.ts","../../src/removeEmptyFields.ts","../../src/sortFields.ts","../../src/worker/subtleHashNode.ts","../../src/worker/wasmHashNode.ts","../../src/NodePayloadHasher.ts","../../src/removeFields.ts"],"sourcesContent":["import { EmptyObject } from '@xylabs/object'\nimport { typeOf } from '@xylabs/typeof'\n\nexport const hasEmptyFields = <T extends EmptyObject>(obj: T): boolean => {\n if (obj === null || Array.isArray(obj)) return false\n\n if (obj === undefined || Object.keys(obj).length === 0) return true\n\n for (const [value] of Object.values(obj)) {\n if (typeOf(value) === 'object') {\n if (hasEmptyFields(value as Record<string, unknown>)) return true\n } else if (value === undefined) {\n return true\n }\n }\n return false\n}\n","import { Worker } from '@xylabs/threads'\n\nexport const createNodeWorker = (func?: () => unknown) => {\n try {\n const code = func?.toString().slice(6) ?? ''\n return new Worker(\n code,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { fromSource: true } as any,\n )\n } catch {\n return\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { asHash, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { omitBy } from '@xylabs/lodash'\nimport { EmptyObject, ObjectWrapper } from '@xylabs/object'\nimport { subtle } from '@xylabs/platform'\nimport { ModuleThread, Pool, spawn, Worker } from '@xylabs/threads'\nimport { WasmSupport } from '@xyo-network/wasm'\nimport { sha256 } from 'hash-wasm'\n\nimport { removeEmptyFields } from './removeEmptyFields.ts'\nimport { sortFields } from './sortFields.ts'\nimport { subtleHashFunc, wasmHashFunc } from './worker/index.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type WorkerFunction = ((...args: any[]) => any) | (() => any)\nexport type WorkerModule<Keys extends string> = {\n [key in Keys]: WorkerFunction\n}\n\nconst wasmSupportStatic = new WasmSupport(['bigInt'])\n\nconst omitByPredicate = (prefix: string) => (_: unknown, key: string) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith(prefix)\n}\n\nexport class PayloadHasher<T extends EmptyObject = EmptyObject> extends ObjectWrapper<T> {\n static allowHashPooling = true\n static allowSubtle = true\n static createBrowserWorker?: (url?: URL) => Worker | undefined\n static createNodeWorker?: (func?: () => unknown) => Worker | undefined\n\n static initialized = (() => {\n globalThis.xyo = globalThis.xyo ?? {}\n if (globalThis.xyo.hashing) {\n console.warn('Two static instances of PayloadHasher detected')\n }\n })()\n\n static subtleHashWorkerUrl?: URL\n\n static warnIfUsingJsHash = true\n\n static wasmHashWorkerUrl?: URL\n\n static readonly wasmInitialized = wasmSupportStatic.initialize()\n static readonly wasmSupport = wasmSupportStatic\n\n // These get set to null if they fail to create and then we just don't use workers - needed for storybook\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _jsHashPool?: Pool<ModuleThread<WorkerModule<any>>> | null\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _subtleHashPool?: Pool<ModuleThread<WorkerModule<any>>> | null\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _wasmHashPool?: Pool<ModuleThread<WorkerModule<any>>> | null\n\n private static get subtleHashPool() {\n if (!this.allowHashPooling || this._subtleHashPool === null) {\n return null\n }\n try {\n return (this._subtleHashPool\n = this._subtleHashPool ?? (this.subtleHashWorkerUrl ? this.createWorkerPool(this.subtleHashWorkerUrl, subtleHashFunc) : null))\n } catch {\n console.warn('Creating subtle hash worker failed')\n this._subtleHashPool = null\n return null\n }\n }\n\n private static get wasmHashPool() {\n if (!this.allowHashPooling || this._wasmHashPool === null) {\n return null\n }\n try {\n return (this._wasmHashPool\n = this._wasmHashPool ?? (this.wasmHashWorkerUrl ? this.createWorkerPool(this.wasmHashWorkerUrl, wasmHashFunc) : null))\n } catch {\n console.warn('Creating wasm hash worker failed')\n this._wasmHashPool = null\n return null\n }\n }\n\n static createWorker(url?: URL, func?: () => unknown) {\n if (url) console.debug(`createWorker: ${url}`)\n return assertEx(this.createBrowserWorker?.(url) ?? this.createNodeWorker?.(func), () => 'Unable to create worker')\n }\n\n static async filterExcludeByHash<T extends EmptyObject>(objs: T[] = [], hash: Hash[] | Hash): Promise<T[]> {\n const hashes = Array.isArray(hash) ? hash : [hash]\n return (await this.hashPairs(objs)).filter(([_, objHash]) => !hashes.includes(objHash))?.map(pair => pair[0])\n }\n\n static async filterIncludeByHash<T extends EmptyObject>(objs: T[] = [], hash: Hash[] | Hash): Promise<T[]> {\n const hashes = Array.isArray(hash) ? hash : [hash]\n return (await this.hashPairs(objs)).filter(([_, objHash]) => hashes.includes(objHash))?.map(pair => pair[0])\n }\n\n static async findByHash<T extends EmptyObject>(objs: T[] = [], hash: Hash): Promise<T | undefined> {\n return (await this.hashPairs(objs)).find(([_, objHash]) => objHash === hash)?.[0]\n }\n\n /**\n * Asynchronously hashes a payload\n * @param obj A payload\n * @returns The payload hash\n */\n static async hash<T extends EmptyObject>(obj: T): Promise<Hash> {\n const stringToHash = this.stringifyHashFields(obj)\n\n if (PayloadHasher.allowSubtle) {\n try {\n const enc = new TextEncoder()\n const data = enc.encode(stringToHash)\n const hashArray = await this.subtleHash(data)\n return hexFromArrayBuffer(hashArray, { bitLength: 256 })\n } catch {\n PayloadHasher.allowSubtle = false\n }\n }\n\n await this.wasmInitialized\n if (this.wasmSupport.canUseWasm) {\n try {\n return this.wasmHash(stringToHash)\n } catch {\n this.wasmSupport.allowWasm = false\n }\n }\n throw new Error('No wasm hashing available')\n }\n\n static hashFields<T extends EmptyObject>(obj: T): T {\n return sortFields(removeEmptyFields(omitBy(obj, omitByPredicate('_')))) as T\n }\n\n /**\n * Creates an array of payload/hash tuples based on the payloads passed in\n * @param objs Any array of payloads\n * @returns An array of payload/hash tuples\n */\n static async hashPairs<T extends EmptyObject>(objs: T[]): Promise<[T, Hash][]> {\n return await Promise.all(objs.map<Promise<[T, Hash]>>(async obj => [obj, await PayloadHasher.hash(obj)]))\n }\n\n /**\n * Creates an array of payload hashes based on the payloads passed in\n * @param objs Any array of payloads\n * @returns An array of payload hashes\n */\n static async hashes<T extends EmptyObject>(objs?: T[]): Promise<Hash[] | undefined> {\n return objs ? await Promise.all(objs.map(obj => this.hash(obj))) : undefined\n }\n\n /**\n * Returns a clone of the payload that is JSON safe\n * @param obj A payload\n * @param meta Keeps underscore (meta) fields if set to true\n * @returns Returns a clone of the payload that is JSON safe\n */\n static json<T extends EmptyObject>(payload: T, meta = false): T {\n return sortFields(removeEmptyFields(meta ? payload : omitBy(payload, omitByPredicate('_')))) as T\n }\n\n /** @deprecated us json instead */\n static jsonPayload<T extends EmptyObject>(payload: T, meta = false): T {\n return this.json(payload, meta)\n }\n\n static stringifyHashFields<T extends EmptyObject>(obj: T) {\n return JSON.stringify(this.hashFields(obj))\n }\n\n static async subtleHash(data: Uint8Array): Promise<ArrayBuffer> {\n const pool = this.subtleHashPool\n return pool === null ? await subtle.digest('SHA-256', data) : await pool.queue(async thread => await thread.hash(data))\n }\n\n static async wasmHash(data: string) {\n const pool = this.wasmHashPool\n return pool === null ? asHash(await sha256(data), true) : pool.queue(async thread => await thread.hash(data))\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static createWorkerPool<T extends WorkerModule<any>>(url?: URL, func?: () => unknown, size = 8) {\n if (url) console.debug(`createWorkerPool: ${url}`)\n const createFunc = () => spawn<T>(this.createWorker(url, func))\n return Pool(createFunc, size)\n }\n\n async hash(): Promise<Hash> {\n return await PayloadHasher.hash(this.obj)\n }\n\n /**\n * Returns a clone of the payload that is JSON safe\n * @param meta Keeps underscore (meta) fields if set to true\n * @returns Returns a clone of the payload that is JSON safe\n */\n json(meta = false): T {\n return PayloadHasher.json(this.obj, meta)\n }\n}\n","import { AnyObject, EmptyObject } from '@xylabs/object'\nimport { typeOf } from '@xylabs/typeof'\n\nexport const removeEmptyFields = <T extends EmptyObject>(obj: T): T => {\n if (obj === null) return obj\n\n if (Array.isArray(obj)) {\n return obj.map(value => (typeof value === 'object' ? removeEmptyFields(value) : value)) as T\n }\n\n const newObject: AnyObject = {}\n for (const [key, value] of Object.entries(obj)) {\n if (typeOf(value) === 'object') {\n newObject[key] = removeEmptyFields(value as Record<string, unknown>)\n } else if (value !== undefined) {\n newObject[key] = value\n }\n }\n return newObject as T\n}\n","import { AnyObject, EmptyObject, isObject } from '@xylabs/object'\n\n// if an object, sub-sort\nconst subSort = (value: unknown) => {\n return isObject(value) ? sortFields(value) : value\n}\n\nexport const sortFields = <T extends EmptyObject>(obj: T) => {\n const result: AnyObject = {}\n const keys = Object.keys(obj) as (keyof T)[]\n for (const key of keys.sort()) {\n result[key] = subSort(obj[key])\n }\n return result as T\n}\n","/* eslint-disable import/no-internal-modules */\n/* eslint-disable @typescript-eslint/no-require-imports */\nexport const subtleHashFunc = () => {\n const { subtle } = require('@xylabs/platform')\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n async hash(data: ArrayBuffer) {\n return await subtle.digest('SHA-256', data)\n },\n })\n}\n","/* eslint-disable import/no-internal-modules */\n/* eslint-disable @typescript-eslint/no-require-imports */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\n\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n })\n}\n","import { createNodeWorker } from './createNodeWorker.ts'\nimport { PayloadHasher } from './PayloadHasher.ts'\n\nPayloadHasher.createNodeWorker = createNodeWorker\n\nexport class NodePayloadHasher extends PayloadHasher {\n static override createNodeWorker = createNodeWorker\n}\n","import { assertEx } from '@xylabs/assert'\nimport { mapValues, merge, omitBy, pickBy } from '@xylabs/lodash'\nimport { EmptyObject, isObject } from '@xylabs/object'\ntype ValueKeyIteratee<T> = (value: T, key: string) => unknown\n\nexport const deepBy = <T extends EmptyObject>(obj: T, predicate: ValueKeyIteratee<T>, func: typeof omitBy | typeof pickBy): T => {\n if (Array.isArray(obj)) {\n return obj\n }\n\n // pick the child objects\n const onlyObjects = pickBy<T>(obj, isObject)\n\n // pick the child non-objects\n const nonObjects = pickBy<T>(obj, value => !isObject(value))\n\n const pickedObjects = omitBy(onlyObjects, predicate)\n const pickedNonObjects = omitBy(nonObjects, predicate)\n\n const processedObjects = mapValues(pickedObjects, (obj: T) => deepBy(obj, predicate, func))\n\n return merge({}, pickedNonObjects, processedObjects) as T\n}\n\nexport const deepOmitPrefixedFields = <T extends EmptyObject>(obj: T, prefix: string): T => {\n return deepBy(\n obj,\n (_, key) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith(prefix)\n },\n omitBy,\n )\n}\n\nexport const deepPickUnderscoreFields = <T extends EmptyObject>(obj: T): T => {\n return deepBy(\n obj,\n (_, key) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith('_')\n },\n pickBy,\n )\n}\n"],"mappings":"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","names":["typeOf","subtle","sha256","asHash","assertEx","omitBy","isObject","obj"]}
1
+ {"version":3,"sources":["../../src/hasEmptyFields.ts","../../src/createNodeWorker.ts","../../src/PayloadHasher.ts","../../src/removeEmptyFields.ts","../../src/sortFields.ts","../../src/worker/subtleHashNode.ts","../../src/worker/wasmHashNode.ts","../../src/NodePayloadHasher.ts","../../src/removeFields.ts"],"sourcesContent":["import { EmptyObject } from '@xylabs/object'\nimport { typeOf } from '@xylabs/typeof'\n\nexport const hasEmptyFields = <T extends EmptyObject>(obj: T): boolean => {\n if (obj === null || Array.isArray(obj)) return false\n\n if (obj === undefined || Object.keys(obj).length === 0) return true\n\n for (const [value] of Object.values(obj)) {\n if (typeOf(value) === 'object') {\n if (hasEmptyFields(value as Record<string, unknown>)) return true\n } else if (value === undefined) {\n return true\n }\n }\n return false\n}\n","import { Worker } from '@xylabs/threads'\n\nexport const createNodeWorker = (func?: () => unknown) => {\n try {\n const code = func?.toString().slice(6) ?? ''\n return new Worker(\n code,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { fromSource: true } as any,\n )\n } catch {\n return\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { asHash, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { omitBy } from '@xylabs/lodash'\nimport { EmptyObject, ObjectWrapper } from '@xylabs/object'\nimport { subtle } from '@xylabs/platform'\nimport { ModuleThread, Pool, spawn, Worker } from '@xylabs/threads'\nimport { WasmSupport } from '@xyo-network/wasm'\nimport { sha256 } from 'hash-wasm'\n\nimport { removeEmptyFields } from './removeEmptyFields.ts'\nimport { sortFields } from './sortFields.ts'\nimport { subtleHashFunc, wasmHashFunc } from './worker/index.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type WorkerFunction = ((...args: any[]) => any) | (() => any)\nexport type WorkerModule<Keys extends string> = {\n [key in Keys]: WorkerFunction\n}\n\nconst wasmSupportStatic = new WasmSupport(['bigInt'])\n\nconst omitByPredicate = (prefix: string) => (_: unknown, key: string) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith(prefix)\n}\n\nexport class PayloadHasher<T extends EmptyObject = EmptyObject> extends ObjectWrapper<T> {\n static allowHashPooling = true\n static allowSubtle = true\n static createBrowserWorker?: (url?: URL) => Worker | undefined\n static createNodeWorker?: (func?: () => unknown) => Worker | undefined\n\n static initialized = (() => {\n globalThis.xyo = globalThis.xyo ?? {}\n if (globalThis.xyo.hashing) {\n console.warn('Two static instances of PayloadHasher detected')\n }\n })()\n\n static subtleHashWorkerUrl?: URL\n\n static warnIfUsingJsHash = true\n\n static wasmHashWorkerUrl?: URL\n\n static readonly wasmInitialized = wasmSupportStatic.initialize()\n static readonly wasmSupport = wasmSupportStatic\n\n // These get set to null if they fail to create and then we just don't use workers - needed for storybook\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _jsHashPool?: Pool<ModuleThread<WorkerModule<any>>> | null\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _subtleHashPool?: Pool<ModuleThread<WorkerModule<any>>> | null\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _wasmHashPool?: Pool<ModuleThread<WorkerModule<any>>> | null\n\n private static get subtleHashPool() {\n if (!this.allowHashPooling || this._subtleHashPool === null) {\n return null\n }\n try {\n return (this._subtleHashPool\n = this._subtleHashPool ?? (this.subtleHashWorkerUrl ? this.createWorkerPool(this.subtleHashWorkerUrl, subtleHashFunc) : null))\n } catch {\n console.warn('Creating subtle hash worker failed')\n this._subtleHashPool = null\n return null\n }\n }\n\n private static get wasmHashPool() {\n if (!this.allowHashPooling || this._wasmHashPool === null) {\n return null\n }\n try {\n return (this._wasmHashPool\n = this._wasmHashPool ?? (this.wasmHashWorkerUrl ? this.createWorkerPool(this.wasmHashWorkerUrl, wasmHashFunc) : null))\n } catch {\n console.warn('Creating wasm hash worker failed')\n this._wasmHashPool = null\n return null\n }\n }\n\n static createWorker(url?: URL, func?: () => unknown) {\n if (url) console.debug(`createWorker: ${url}`)\n return assertEx(this.createBrowserWorker?.(url) ?? this.createNodeWorker?.(func), () => 'Unable to create worker')\n }\n\n static async filterExcludeByHash<T extends EmptyObject>(objs: T[] = [], hash: Hash[] | Hash): Promise<T[]> {\n const hashes = Array.isArray(hash) ? hash : [hash]\n return (await this.hashPairs(objs)).filter(([_, objHash]) => !hashes.includes(objHash))?.map(pair => pair[0])\n }\n\n static async filterIncludeByHash<T extends EmptyObject>(objs: T[] = [], hash: Hash[] | Hash): Promise<T[]> {\n const hashes = Array.isArray(hash) ? hash : [hash]\n return (await this.hashPairs(objs)).filter(([_, objHash]) => hashes.includes(objHash))?.map(pair => pair[0])\n }\n\n static async findByHash<T extends EmptyObject>(objs: T[] = [], hash: Hash): Promise<T | undefined> {\n return (await this.hashPairs(objs)).find(([_, objHash]) => objHash === hash)?.[0]\n }\n\n /**\n * Asynchronously hashes a payload\n * @param obj A payload\n * @returns The payload hash\n */\n static async hash<T extends EmptyObject>(obj: T): Promise<Hash> {\n const stringToHash = this.stringifyHashFields(obj)\n\n if (PayloadHasher.allowSubtle) {\n try {\n const enc = new TextEncoder()\n const data = enc.encode(stringToHash)\n const hashArray = await this.subtleHash(data)\n return hexFromArrayBuffer(hashArray, { bitLength: 256 })\n } catch {\n PayloadHasher.allowSubtle = false\n }\n }\n\n await this.wasmInitialized\n if (this.wasmSupport.canUseWasm) {\n try {\n return this.wasmHash(stringToHash)\n } catch {\n this.wasmSupport.allowWasm = false\n }\n }\n throw new Error('No wasm hashing available')\n }\n\n static hashFields<T extends EmptyObject>(obj: T): T {\n return sortFields(removeEmptyFields(omitBy(obj, omitByPredicate('_')))) as T\n }\n\n /**\n * Creates an array of payload/hash tuples based on the payloads passed in\n * @param objs Any array of payloads\n * @returns An array of payload/hash tuples\n */\n static async hashPairs<T extends EmptyObject>(objs: T[]): Promise<[T, Hash][]> {\n return await Promise.all(objs.map<Promise<[T, Hash]>>(async obj => [obj, await PayloadHasher.hash(obj)]))\n }\n\n /**\n * Creates an array of payload hashes based on the payloads passed in\n * @param objs Any array of payloads\n * @returns An array of payload hashes\n */\n static async hashes<T extends EmptyObject>(objs?: T[]): Promise<Hash[] | undefined> {\n return objs ? await Promise.all(objs.map(obj => this.hash(obj))) : undefined\n }\n\n /**\n * Returns a clone of the payload that is JSON safe\n * @param obj A payload\n * @param meta Keeps underscore (meta) fields if set to true\n * @returns Returns a clone of the payload that is JSON safe\n */\n static json<T extends EmptyObject>(payload: T, meta = false): T {\n return sortFields(removeEmptyFields(meta ? payload : omitBy(payload, omitByPredicate('_')))) as T\n }\n\n /** @deprecated us json instead */\n static jsonPayload<T extends EmptyObject>(payload: T, meta = false): T {\n return this.json(payload, meta)\n }\n\n static stringifyHashFields<T extends EmptyObject>(obj: T) {\n return JSON.stringify(this.hashFields(obj))\n }\n\n static async subtleHash(data: Uint8Array): Promise<ArrayBuffer> {\n const pool = this.subtleHashPool\n return pool === null ? await subtle.digest('SHA-256', data) : await pool.queue(async thread => await thread.hash(data))\n }\n\n static async wasmHash(data: string) {\n const pool = this.wasmHashPool\n return pool === null ? asHash(await sha256(data), true) : pool.queue(async thread => await thread.hash(data))\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static createWorkerPool<T extends WorkerModule<any>>(url?: URL, func?: () => unknown, size = 8) {\n if (url) console.debug(`createWorkerPool: ${url}`)\n const createFunc = () => spawn<T>(this.createWorker(url, func))\n return Pool(createFunc, size)\n }\n\n async hash(): Promise<Hash> {\n return await PayloadHasher.hash(this.obj)\n }\n\n /**\n * Returns a clone of the payload that is JSON safe\n * @param meta Keeps underscore (meta) fields if set to true\n * @returns Returns a clone of the payload that is JSON safe\n */\n json(meta = false): T {\n return PayloadHasher.json(this.obj, meta)\n }\n}\n","import { AnyObject, EmptyObject } from '@xylabs/object'\nimport { typeOf } from '@xylabs/typeof'\n\nexport const removeEmptyFields = <T extends EmptyObject>(obj: T): T => {\n if (obj === null) return obj\n\n if (Array.isArray(obj)) {\n return obj.map(value => (typeof value === 'object' ? removeEmptyFields(value) : value)) as T\n }\n\n const newObject: AnyObject = {}\n for (const [key, value] of Object.entries(obj)) {\n if (typeOf(value) === 'object') {\n newObject[key] = removeEmptyFields(value as Record<string, unknown>)\n } else if (value !== undefined) {\n newObject[key] = value\n }\n }\n return newObject as T\n}\n","import { AnyObject, EmptyObject, isObject } from '@xylabs/object'\n\n// if an object, sub-sort\nconst subSort = (value: unknown) => {\n return isObject(value) ? sortFields(value) : value\n}\n\nexport const sortFields = <T extends EmptyObject>(obj: T) => {\n const result: AnyObject = {}\n const keys = Object.keys(obj) as (keyof T)[]\n for (const key of keys.sort()) {\n result[key] = subSort(obj[key])\n }\n return result as T\n}\n","/* eslint-disable import-x/no-internal-modules */\n/* eslint-disable @typescript-eslint/no-require-imports */\nexport const subtleHashFunc = () => {\n const { subtle } = require('@xylabs/platform')\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n async hash(data: ArrayBuffer) {\n return await subtle.digest('SHA-256', data)\n },\n })\n}\n","/* eslint-disable import-x/no-internal-modules */\n/* eslint-disable @typescript-eslint/no-require-imports */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\n\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n })\n}\n","import { createNodeWorker } from './createNodeWorker.ts'\nimport { PayloadHasher } from './PayloadHasher.ts'\n\nPayloadHasher.createNodeWorker = createNodeWorker\n\nexport class NodePayloadHasher extends PayloadHasher {\n static override createNodeWorker = createNodeWorker\n}\n","import { assertEx } from '@xylabs/assert'\nimport { mapValues, merge, omitBy, pickBy } from '@xylabs/lodash'\nimport { EmptyObject, isObject } from '@xylabs/object'\ntype ValueKeyIteratee<T> = (value: T, key: string) => unknown\n\nexport const deepBy = <T extends EmptyObject>(obj: T, predicate: ValueKeyIteratee<T>, func: typeof omitBy | typeof pickBy): T => {\n if (Array.isArray(obj)) {\n return obj\n }\n\n // pick the child objects\n const onlyObjects = pickBy<T>(obj, isObject)\n\n // pick the child non-objects\n const nonObjects = pickBy<T>(obj, value => !isObject(value))\n\n const pickedObjects = omitBy(onlyObjects, predicate)\n const pickedNonObjects = omitBy(nonObjects, predicate)\n\n const processedObjects = mapValues(pickedObjects, (obj: T) => deepBy(obj, predicate, func))\n\n return merge({}, pickedNonObjects, processedObjects) as T\n}\n\nexport const deepOmitPrefixedFields = <T extends EmptyObject>(obj: T, prefix: string): T => {\n return deepBy(\n obj,\n (_, key) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith(prefix)\n },\n omitBy,\n )\n}\n\nexport const deepPickUnderscoreFields = <T extends EmptyObject>(obj: T): T => {\n return deepBy(\n obj,\n (_, key) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith('_')\n },\n pickBy,\n )\n}\n"],"mappings":"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","names":["typeOf","subtle","sha256","asHash","assertEx","omitBy","isObject","obj"]}
@@ -1,6 +1,57 @@
1
- export * from './hasEmptyFields.ts';
2
- export { NodePayloadHasher as PayloadHasher } from './NodePayloadHasher.ts';
3
- export * from './removeEmptyFields.ts';
4
- export * from './removeFields.ts';
5
- export * from './sortFields.ts';
6
- //# sourceMappingURL=index.d.ts.map
1
+ import { EmptyObject, ObjectWrapper } from '@xylabs/object';
2
+ import * as _xylabs_threads_master from '@xylabs/threads/master';
3
+ import { Hash } from '@xylabs/hex';
4
+ import { Worker } from '@xylabs/threads';
5
+ import { WasmSupport } from '@xyo-network/wasm';
6
+ import { omitBy, pickBy } from '@xylabs/lodash';
7
+
8
+ declare const hasEmptyFields: <T extends EmptyObject>(obj: T) => boolean;
9
+
10
+ declare class PayloadHasher<T extends EmptyObject = EmptyObject> extends ObjectWrapper<T> {
11
+ static allowHashPooling: boolean;
12
+ static allowSubtle: boolean;
13
+ static createBrowserWorker?: (url?: URL) => Worker | undefined;
14
+ static createNodeWorker?: (func?: () => unknown) => Worker | undefined;
15
+ static initialized: void;
16
+ static subtleHashWorkerUrl?: URL;
17
+ static warnIfUsingJsHash: boolean;
18
+ static wasmHashWorkerUrl?: URL;
19
+ static readonly wasmInitialized: Promise<void>;
20
+ static readonly wasmSupport: WasmSupport;
21
+ private static _jsHashPool?;
22
+ private static _subtleHashPool?;
23
+ private static _wasmHashPool?;
24
+ private static get subtleHashPool();
25
+ private static get wasmHashPool();
26
+ static createWorker(url?: URL, func?: () => unknown): _xylabs_threads_master.Worker;
27
+ static filterExcludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
28
+ static filterIncludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
29
+ static findByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash): Promise<T | undefined>;
30
+ static hash<T extends EmptyObject>(obj: T): Promise<Hash>;
31
+ static hashFields<T extends EmptyObject>(obj: T): T;
32
+ static hashPairs<T extends EmptyObject>(objs: T[]): Promise<[T, Hash][]>;
33
+ static hashes<T extends EmptyObject>(objs?: T[]): Promise<Hash[] | undefined>;
34
+ static json<T extends EmptyObject>(payload: T, meta?: boolean): T;
35
+ static jsonPayload<T extends EmptyObject>(payload: T, meta?: boolean): T;
36
+ static stringifyHashFields<T extends EmptyObject>(obj: T): string;
37
+ static subtleHash(data: Uint8Array): Promise<ArrayBuffer>;
38
+ static wasmHash(data: string): Promise<any>;
39
+ private static createWorkerPool;
40
+ hash(): Promise<Hash>;
41
+ json(meta?: boolean): T;
42
+ }
43
+
44
+ declare class NodePayloadHasher extends PayloadHasher {
45
+ static createNodeWorker: (func?: () => unknown) => _xylabs_threads_master.WorkerImplementation | undefined;
46
+ }
47
+
48
+ declare const removeEmptyFields: <T extends EmptyObject>(obj: T) => T;
49
+
50
+ type ValueKeyIteratee<T> = (value: T, key: string) => unknown;
51
+ declare const deepBy: <T extends EmptyObject>(obj: T, predicate: ValueKeyIteratee<T>, func: typeof omitBy | typeof pickBy) => T;
52
+ declare const deepOmitPrefixedFields: <T extends EmptyObject>(obj: T, prefix: string) => T;
53
+ declare const deepPickUnderscoreFields: <T extends EmptyObject>(obj: T) => T;
54
+
55
+ declare const sortFields: <T extends EmptyObject>(obj: T) => T;
56
+
57
+ export { NodePayloadHasher as PayloadHasher, deepBy, deepOmitPrefixedFields, deepPickUnderscoreFields, hasEmptyFields, removeEmptyFields, sortFields };
@@ -24,7 +24,7 @@ var hasEmptyFields = (obj) => {
24
24
  import { Worker } from "@xylabs/threads";
25
25
  var createNodeWorker = (func) => {
26
26
  try {
27
- const code = (func == null ? void 0 : func.toString().slice(6)) ?? "";
27
+ const code = func?.toString().slice(6) ?? "";
28
28
  return new Worker(
29
29
  code,
30
30
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -154,23 +154,19 @@ var PayloadHasher = class _PayloadHasher extends ObjectWrapper {
154
154
  }
155
155
  }
156
156
  static createWorker(url, func) {
157
- var _a, _b;
158
157
  if (url) console.debug(`createWorker: ${url}`);
159
- return assertEx(((_a = this.createBrowserWorker) == null ? void 0 : _a.call(this, url)) ?? ((_b = this.createNodeWorker) == null ? void 0 : _b.call(this, func)), () => "Unable to create worker");
158
+ return assertEx(this.createBrowserWorker?.(url) ?? this.createNodeWorker?.(func), () => "Unable to create worker");
160
159
  }
161
160
  static async filterExcludeByHash(objs = [], hash) {
162
- var _a;
163
161
  const hashes = Array.isArray(hash) ? hash : [hash];
164
- return (_a = (await this.hashPairs(objs)).filter(([_, objHash]) => !hashes.includes(objHash))) == null ? void 0 : _a.map((pair) => pair[0]);
162
+ return (await this.hashPairs(objs)).filter(([_, objHash]) => !hashes.includes(objHash))?.map((pair) => pair[0]);
165
163
  }
166
164
  static async filterIncludeByHash(objs = [], hash) {
167
- var _a;
168
165
  const hashes = Array.isArray(hash) ? hash : [hash];
169
- return (_a = (await this.hashPairs(objs)).filter(([_, objHash]) => hashes.includes(objHash))) == null ? void 0 : _a.map((pair) => pair[0]);
166
+ return (await this.hashPairs(objs)).filter(([_, objHash]) => hashes.includes(objHash))?.map((pair) => pair[0]);
170
167
  }
171
168
  static async findByHash(objs = [], hash) {
172
- var _a;
173
- return (_a = (await this.hashPairs(objs)).find(([_, objHash]) => objHash === hash)) == null ? void 0 : _a[0];
169
+ return (await this.hashPairs(objs)).find(([_, objHash]) => objHash === hash)?.[0];
174
170
  }
175
171
  /**
176
172
  * Asynchronously hashes a payload