@xyo-network/hash 2.90.11 → 2.90.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/browser/BrowserPayloadHasher.d.cts +9 -0
  2. package/dist/browser/BrowserPayloadHasher.d.cts.map +1 -0
  3. package/dist/browser/BrowserPayloadHasher.d.mts +9 -0
  4. package/dist/browser/BrowserPayloadHasher.d.mts.map +1 -0
  5. package/dist/browser/BrowserPayloadHasher.d.ts +9 -0
  6. package/dist/browser/BrowserPayloadHasher.d.ts.map +1 -0
  7. package/dist/browser/NodePayloadHasher.d.cts +5 -0
  8. package/dist/browser/NodePayloadHasher.d.cts.map +1 -0
  9. package/dist/browser/NodePayloadHasher.d.mts +5 -0
  10. package/dist/browser/NodePayloadHasher.d.mts.map +1 -0
  11. package/dist/browser/NodePayloadHasher.d.ts +5 -0
  12. package/dist/browser/NodePayloadHasher.d.ts.map +1 -0
  13. package/dist/browser/PayloadHasher.d.cts +14 -10
  14. package/dist/browser/PayloadHasher.d.cts.map +1 -1
  15. package/dist/browser/PayloadHasher.d.mts +14 -10
  16. package/dist/browser/PayloadHasher.d.mts.map +1 -1
  17. package/dist/browser/PayloadHasher.d.ts +14 -10
  18. package/dist/browser/PayloadHasher.d.ts.map +1 -1
  19. package/dist/browser/createBrowserWorker.d.cts +2 -0
  20. package/dist/browser/createBrowserWorker.d.cts.map +1 -0
  21. package/dist/browser/createBrowserWorker.d.mts +2 -0
  22. package/dist/browser/createBrowserWorker.d.mts.map +1 -0
  23. package/dist/browser/createBrowserWorker.d.ts +2 -0
  24. package/dist/browser/createBrowserWorker.d.ts.map +1 -0
  25. package/dist/browser/createNodeWorker.d.cts +2 -0
  26. package/dist/browser/createNodeWorker.d.cts.map +1 -0
  27. package/dist/browser/createNodeWorker.d.mts +2 -0
  28. package/dist/browser/createNodeWorker.d.mts.map +1 -0
  29. package/dist/browser/createNodeWorker.d.ts +2 -0
  30. package/dist/browser/createNodeWorker.d.ts.map +1 -0
  31. package/dist/browser/index-browser.cjs +99 -107
  32. package/dist/browser/index-browser.cjs.map +1 -1
  33. package/dist/browser/index-browser.d.cts +1 -1
  34. package/dist/browser/index-browser.d.cts.map +1 -1
  35. package/dist/browser/index-browser.d.mts +1 -1
  36. package/dist/browser/index-browser.d.mts.map +1 -1
  37. package/dist/browser/index-browser.d.ts +1 -1
  38. package/dist/browser/index-browser.d.ts.map +1 -1
  39. package/dist/browser/index-browser.js +98 -106
  40. package/dist/browser/index-browser.js.map +1 -1
  41. package/dist/browser/index.d.cts +1 -1
  42. package/dist/browser/index.d.cts.map +1 -1
  43. package/dist/browser/index.d.mts +1 -1
  44. package/dist/browser/index.d.mts.map +1 -1
  45. package/dist/browser/index.d.ts +1 -1
  46. package/dist/browser/index.d.ts.map +1 -1
  47. package/dist/browser/worker/index.cjs +3 -3
  48. package/dist/browser/worker/index.cjs.map +1 -1
  49. package/dist/browser/worker/index.d.cts +3 -3
  50. package/dist/browser/worker/index.d.cts.map +1 -1
  51. package/dist/browser/worker/index.d.mts +3 -3
  52. package/dist/browser/worker/index.d.mts.map +1 -1
  53. package/dist/browser/worker/index.d.ts +3 -3
  54. package/dist/browser/worker/index.d.ts.map +1 -1
  55. package/dist/browser/worker/index.js +3 -3
  56. package/dist/browser/worker/index.js.map +1 -1
  57. package/dist/browser/worker/jsHash-bundle.js +3322 -0
  58. package/dist/browser/worker/jsHash.cjs +17 -20
  59. package/dist/browser/worker/jsHash.cjs.map +1 -1
  60. package/dist/browser/worker/jsHash.d.cts +1 -1
  61. package/dist/browser/worker/jsHash.d.cts.map +1 -1
  62. package/dist/browser/worker/jsHash.d.mts +1 -1
  63. package/dist/browser/worker/jsHash.d.mts.map +1 -1
  64. package/dist/browser/worker/jsHash.d.ts +1 -1
  65. package/dist/browser/worker/jsHash.d.ts.map +1 -1
  66. package/dist/browser/worker/jsHash.js +8 -23
  67. package/dist/browser/worker/jsHash.js.map +1 -1
  68. package/dist/browser/worker/jsHashNode.cjs +37 -0
  69. package/dist/browser/worker/jsHashNode.cjs.map +1 -0
  70. package/dist/browser/worker/jsHashNode.d.cts +2 -0
  71. package/dist/browser/worker/jsHashNode.d.cts.map +1 -0
  72. package/dist/browser/worker/jsHashNode.d.mts +2 -0
  73. package/dist/browser/worker/jsHashNode.d.mts.map +1 -0
  74. package/dist/browser/worker/jsHashNode.d.ts +2 -0
  75. package/dist/browser/worker/jsHashNode.d.ts.map +1 -0
  76. package/dist/browser/worker/jsHashNode.js +25 -0
  77. package/dist/browser/worker/jsHashNode.js.map +1 -0
  78. package/dist/browser/worker/subtleHash-bundle.js +455 -0
  79. package/dist/browser/worker/subtleHash.cjs +6 -31
  80. package/dist/browser/worker/subtleHash.cjs.map +1 -1
  81. package/dist/browser/worker/subtleHash.d.cts +1 -1
  82. package/dist/browser/worker/subtleHash.d.cts.map +1 -1
  83. package/dist/browser/worker/subtleHash.d.mts +1 -1
  84. package/dist/browser/worker/subtleHash.d.mts.map +1 -1
  85. package/dist/browser/worker/subtleHash.d.ts +1 -1
  86. package/dist/browser/worker/subtleHash.d.ts.map +1 -1
  87. package/dist/browser/worker/subtleHash.js +7 -22
  88. package/dist/browser/worker/subtleHash.js.map +1 -1
  89. package/dist/browser/worker/subtleHashNode.cjs +36 -0
  90. package/dist/browser/worker/subtleHashNode.cjs.map +1 -0
  91. package/dist/browser/worker/subtleHashNode.d.cts +2 -0
  92. package/dist/browser/worker/subtleHashNode.d.cts.map +1 -0
  93. package/dist/browser/worker/subtleHashNode.d.mts +2 -0
  94. package/dist/browser/worker/subtleHashNode.d.mts.map +1 -0
  95. package/dist/browser/worker/subtleHashNode.d.ts +2 -0
  96. package/dist/browser/worker/subtleHashNode.d.ts.map +1 -0
  97. package/dist/browser/worker/subtleHashNode.js +24 -0
  98. package/dist/browser/worker/subtleHashNode.js.map +1 -0
  99. package/dist/browser/worker/wasmHash-bundle.js +893 -0
  100. package/dist/browser/worker/wasmHash.cjs +7 -32
  101. package/dist/browser/worker/wasmHash.cjs.map +1 -1
  102. package/dist/browser/worker/wasmHash.d.cts +1 -1
  103. package/dist/browser/worker/wasmHash.d.cts.map +1 -1
  104. package/dist/browser/worker/wasmHash.d.mts +1 -1
  105. package/dist/browser/worker/wasmHash.d.mts.map +1 -1
  106. package/dist/browser/worker/wasmHash.d.ts +1 -1
  107. package/dist/browser/worker/wasmHash.d.ts.map +1 -1
  108. package/dist/browser/worker/wasmHash.js +8 -23
  109. package/dist/browser/worker/wasmHash.js.map +1 -1
  110. package/dist/browser/worker/wasmHashNode.cjs +37 -0
  111. package/dist/browser/worker/wasmHashNode.cjs.map +1 -0
  112. package/dist/browser/worker/wasmHashNode.d.cts +2 -0
  113. package/dist/browser/worker/wasmHashNode.d.cts.map +1 -0
  114. package/dist/browser/worker/wasmHashNode.d.mts +2 -0
  115. package/dist/browser/worker/wasmHashNode.d.mts.map +1 -0
  116. package/dist/browser/worker/wasmHashNode.d.ts +2 -0
  117. package/dist/browser/worker/wasmHashNode.d.ts.map +1 -0
  118. package/dist/browser/worker/wasmHashNode.js +25 -0
  119. package/dist/browser/worker/wasmHashNode.js.map +1 -0
  120. package/dist/node/BrowserPayloadHasher.d.cts +9 -0
  121. package/dist/node/BrowserPayloadHasher.d.cts.map +1 -0
  122. package/dist/node/BrowserPayloadHasher.d.mts +9 -0
  123. package/dist/node/BrowserPayloadHasher.d.mts.map +1 -0
  124. package/dist/node/BrowserPayloadHasher.d.ts +9 -0
  125. package/dist/node/BrowserPayloadHasher.d.ts.map +1 -0
  126. package/dist/node/NodePayloadHasher.d.cts +5 -0
  127. package/dist/node/NodePayloadHasher.d.cts.map +1 -0
  128. package/dist/node/NodePayloadHasher.d.mts +5 -0
  129. package/dist/node/NodePayloadHasher.d.mts.map +1 -0
  130. package/dist/node/NodePayloadHasher.d.ts +5 -0
  131. package/dist/node/NodePayloadHasher.d.ts.map +1 -0
  132. package/dist/node/PayloadHasher.d.cts +14 -10
  133. package/dist/node/PayloadHasher.d.cts.map +1 -1
  134. package/dist/node/PayloadHasher.d.mts +14 -10
  135. package/dist/node/PayloadHasher.d.mts.map +1 -1
  136. package/dist/node/PayloadHasher.d.ts +14 -10
  137. package/dist/node/PayloadHasher.d.ts.map +1 -1
  138. package/dist/node/createBrowserWorker.d.cts +2 -0
  139. package/dist/node/createBrowserWorker.d.cts.map +1 -0
  140. package/dist/node/createBrowserWorker.d.mts +2 -0
  141. package/dist/node/createBrowserWorker.d.mts.map +1 -0
  142. package/dist/node/createBrowserWorker.d.ts +2 -0
  143. package/dist/node/createBrowserWorker.d.ts.map +1 -0
  144. package/dist/node/createNodeWorker.d.cts +2 -0
  145. package/dist/node/createNodeWorker.d.cts.map +1 -0
  146. package/dist/node/createNodeWorker.d.mts +2 -0
  147. package/dist/node/createNodeWorker.d.mts.map +1 -0
  148. package/dist/node/createNodeWorker.d.ts +2 -0
  149. package/dist/node/createNodeWorker.d.ts.map +1 -0
  150. package/dist/node/index-browser.d.cts +1 -1
  151. package/dist/node/index-browser.d.cts.map +1 -1
  152. package/dist/node/index-browser.d.mts +1 -1
  153. package/dist/node/index-browser.d.mts.map +1 -1
  154. package/dist/node/index-browser.d.ts +1 -1
  155. package/dist/node/index-browser.d.ts.map +1 -1
  156. package/dist/node/index.cjs +63 -89
  157. package/dist/node/index.cjs.map +1 -1
  158. package/dist/node/index.d.cts +1 -1
  159. package/dist/node/index.d.cts.map +1 -1
  160. package/dist/node/index.d.mts +1 -1
  161. package/dist/node/index.d.mts.map +1 -1
  162. package/dist/node/index.d.ts +1 -1
  163. package/dist/node/index.d.ts.map +1 -1
  164. package/dist/node/index.js +63 -89
  165. package/dist/node/index.js.map +1 -1
  166. package/dist/node/worker/index.cjs +3 -3
  167. package/dist/node/worker/index.cjs.map +1 -1
  168. package/dist/node/worker/index.d.cts +3 -3
  169. package/dist/node/worker/index.d.cts.map +1 -1
  170. package/dist/node/worker/index.d.mts +3 -3
  171. package/dist/node/worker/index.d.mts.map +1 -1
  172. package/dist/node/worker/index.d.ts +3 -3
  173. package/dist/node/worker/index.d.ts.map +1 -1
  174. package/dist/node/worker/index.js +3 -3
  175. package/dist/node/worker/index.js.map +1 -1
  176. package/dist/node/worker/jsHash.cjs +17 -24
  177. package/dist/node/worker/jsHash.cjs.map +1 -1
  178. package/dist/node/worker/jsHash.d.cts +1 -1
  179. package/dist/node/worker/jsHash.d.cts.map +1 -1
  180. package/dist/node/worker/jsHash.d.mts +1 -1
  181. package/dist/node/worker/jsHash.d.mts.map +1 -1
  182. package/dist/node/worker/jsHash.d.ts +1 -1
  183. package/dist/node/worker/jsHash.d.ts.map +1 -1
  184. package/dist/node/worker/jsHash.js +8 -23
  185. package/dist/node/worker/jsHash.js.map +1 -1
  186. package/dist/node/worker/jsHashNode.cjs +41 -0
  187. package/dist/node/worker/jsHashNode.cjs.map +1 -0
  188. package/dist/node/worker/jsHashNode.d.cts +2 -0
  189. package/dist/node/worker/jsHashNode.d.cts.map +1 -0
  190. package/dist/node/worker/jsHashNode.d.mts +2 -0
  191. package/dist/node/worker/jsHashNode.d.mts.map +1 -0
  192. package/dist/node/worker/jsHashNode.d.ts +2 -0
  193. package/dist/node/worker/jsHashNode.d.ts.map +1 -0
  194. package/dist/node/worker/jsHashNode.js +25 -0
  195. package/dist/node/worker/jsHashNode.js.map +1 -0
  196. package/dist/node/worker/subtleHash.cjs +6 -35
  197. package/dist/node/worker/subtleHash.cjs.map +1 -1
  198. package/dist/node/worker/subtleHash.d.cts +1 -1
  199. package/dist/node/worker/subtleHash.d.cts.map +1 -1
  200. package/dist/node/worker/subtleHash.d.mts +1 -1
  201. package/dist/node/worker/subtleHash.d.mts.map +1 -1
  202. package/dist/node/worker/subtleHash.d.ts +1 -1
  203. package/dist/node/worker/subtleHash.d.ts.map +1 -1
  204. package/dist/node/worker/subtleHash.js +7 -22
  205. package/dist/node/worker/subtleHash.js.map +1 -1
  206. package/dist/node/worker/subtleHashNode.cjs +40 -0
  207. package/dist/node/worker/subtleHashNode.cjs.map +1 -0
  208. package/dist/node/worker/subtleHashNode.d.cts +2 -0
  209. package/dist/node/worker/subtleHashNode.d.cts.map +1 -0
  210. package/dist/node/worker/subtleHashNode.d.mts +2 -0
  211. package/dist/node/worker/subtleHashNode.d.mts.map +1 -0
  212. package/dist/node/worker/subtleHashNode.d.ts +2 -0
  213. package/dist/node/worker/subtleHashNode.d.ts.map +1 -0
  214. package/dist/node/worker/subtleHashNode.js +24 -0
  215. package/dist/node/worker/subtleHashNode.js.map +1 -0
  216. package/dist/node/worker/wasmHash.cjs +7 -36
  217. package/dist/node/worker/wasmHash.cjs.map +1 -1
  218. package/dist/node/worker/wasmHash.d.cts +1 -1
  219. package/dist/node/worker/wasmHash.d.cts.map +1 -1
  220. package/dist/node/worker/wasmHash.d.mts +1 -1
  221. package/dist/node/worker/wasmHash.d.mts.map +1 -1
  222. package/dist/node/worker/wasmHash.d.ts +1 -1
  223. package/dist/node/worker/wasmHash.d.ts.map +1 -1
  224. package/dist/node/worker/wasmHash.js +8 -23
  225. package/dist/node/worker/wasmHash.js.map +1 -1
  226. package/dist/node/worker/wasmHashNode.cjs +41 -0
  227. package/dist/node/worker/wasmHashNode.cjs.map +1 -0
  228. package/dist/node/worker/wasmHashNode.d.cts +2 -0
  229. package/dist/node/worker/wasmHashNode.d.cts.map +1 -0
  230. package/dist/node/worker/wasmHashNode.d.mts +2 -0
  231. package/dist/node/worker/wasmHashNode.d.mts.map +1 -0
  232. package/dist/node/worker/wasmHashNode.d.ts +2 -0
  233. package/dist/node/worker/wasmHashNode.d.ts.map +1 -0
  234. package/dist/node/worker/wasmHashNode.js +25 -0
  235. package/dist/node/worker/wasmHashNode.js.map +1 -0
  236. package/package.json +17 -10
  237. package/src/BrowserPayloadHasher.ts +34 -0
  238. package/src/NodePayloadHasher.ts +8 -0
  239. package/src/PayloadHasher.ts +40 -82
  240. package/src/createBrowserWorker.ts +10 -0
  241. package/src/createNodeWorker.ts +15 -0
  242. package/src/index-browser.ts +1 -1
  243. package/src/index.ts +1 -1
  244. package/src/worker/index.ts +3 -3
  245. package/src/worker/jsHash.ts +9 -12
  246. package/src/worker/jsHashNode.ts +13 -0
  247. package/src/worker/subtleHash.ts +8 -11
  248. package/src/worker/subtleHashNode.ts +12 -0
  249. package/src/worker/wasmHash.ts +9 -12
  250. package/src/worker/wasmHashNode.ts +13 -0
  251. package/dist/browser/PayloadHasher-browser.d.cts +0 -69
  252. package/dist/browser/PayloadHasher-browser.d.cts.map +0 -1
  253. package/dist/browser/PayloadHasher-browser.d.mts +0 -69
  254. package/dist/browser/PayloadHasher-browser.d.mts.map +0 -1
  255. package/dist/browser/PayloadHasher-browser.d.ts +0 -69
  256. package/dist/browser/PayloadHasher-browser.d.ts.map +0 -1
  257. package/dist/node/PayloadHasher-browser.d.cts +0 -69
  258. package/dist/node/PayloadHasher-browser.d.cts.map +0 -1
  259. package/dist/node/PayloadHasher-browser.d.mts +0 -69
  260. package/dist/node/PayloadHasher-browser.d.mts.map +0 -1
  261. package/dist/node/PayloadHasher-browser.d.ts +0 -69
  262. package/dist/node/PayloadHasher-browser.d.ts.map +0 -1
  263. package/src/PayloadHasher-browser.ts +0 -248
@@ -0,0 +1,9 @@
1
+ import { PayloadHasher } from './PayloadHasher';
2
+ export declare class BrowserPayloadHasher extends PayloadHasher {
3
+ static createBrowserWorker: (url?: URL | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
4
+ static createNodeWorker: (func?: (() => unknown) | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
5
+ static jsHashWorkerUrl: URL | undefined;
6
+ static subtleHashWorkerUrl: URL | undefined;
7
+ static wasmHashWorkerUrl: URL | undefined;
8
+ }
9
+ //# sourceMappingURL=BrowserPayloadHasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserPayloadHasher.d.ts","sourceRoot":"","sources":["../../src/BrowserPayloadHasher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAO/C,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAgB,mBAAmB,kGAAsB;IACzD,OAAgB,gBAAgB,+GAAmB;IACnD,OAAgB,eAAe,kBAM3B;IACJ,OAAgB,mBAAmB,kBAM/B;IACJ,OAAgB,iBAAiB,kBAM7B;CACL"}
@@ -0,0 +1,9 @@
1
+ import { PayloadHasher } from './PayloadHasher';
2
+ export declare class BrowserPayloadHasher extends PayloadHasher {
3
+ static createBrowserWorker: (url?: URL | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
4
+ static createNodeWorker: (func?: (() => unknown) | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
5
+ static jsHashWorkerUrl: URL | undefined;
6
+ static subtleHashWorkerUrl: URL | undefined;
7
+ static wasmHashWorkerUrl: URL | undefined;
8
+ }
9
+ //# sourceMappingURL=BrowserPayloadHasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserPayloadHasher.d.ts","sourceRoot":"","sources":["../../src/BrowserPayloadHasher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAO/C,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAgB,mBAAmB,kGAAsB;IACzD,OAAgB,gBAAgB,+GAAmB;IACnD,OAAgB,eAAe,kBAM3B;IACJ,OAAgB,mBAAmB,kBAM/B;IACJ,OAAgB,iBAAiB,kBAM7B;CACL"}
@@ -0,0 +1,9 @@
1
+ import { PayloadHasher } from './PayloadHasher';
2
+ export declare class BrowserPayloadHasher extends PayloadHasher {
3
+ static createBrowserWorker: (url?: URL | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
4
+ static createNodeWorker: (func?: (() => unknown) | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
5
+ static jsHashWorkerUrl: URL | undefined;
6
+ static subtleHashWorkerUrl: URL | undefined;
7
+ static wasmHashWorkerUrl: URL | undefined;
8
+ }
9
+ //# sourceMappingURL=BrowserPayloadHasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserPayloadHasher.d.ts","sourceRoot":"","sources":["../../src/BrowserPayloadHasher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAO/C,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAgB,mBAAmB,kGAAsB;IACzD,OAAgB,gBAAgB,+GAAmB;IACnD,OAAgB,eAAe,kBAM3B;IACJ,OAAgB,mBAAmB,kBAM/B;IACJ,OAAgB,iBAAiB,kBAM7B;CACL"}
@@ -0,0 +1,5 @@
1
+ import { PayloadHasher } from './PayloadHasher';
2
+ export declare class NodePayloadHasher extends PayloadHasher {
3
+ static createNodeWorker: (func?: (() => unknown) | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
4
+ }
5
+ //# sourceMappingURL=NodePayloadHasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodePayloadHasher.d.ts","sourceRoot":"","sources":["../../src/NodePayloadHasher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI/C,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAgB,gBAAgB,+GAAmB;CACpD"}
@@ -0,0 +1,5 @@
1
+ import { PayloadHasher } from './PayloadHasher';
2
+ export declare class NodePayloadHasher extends PayloadHasher {
3
+ static createNodeWorker: (func?: (() => unknown) | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
4
+ }
5
+ //# sourceMappingURL=NodePayloadHasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodePayloadHasher.d.ts","sourceRoot":"","sources":["../../src/NodePayloadHasher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI/C,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAgB,gBAAgB,+GAAmB;CACpD"}
@@ -0,0 +1,5 @@
1
+ import { PayloadHasher } from './PayloadHasher';
2
+ export declare class NodePayloadHasher extends PayloadHasher {
3
+ static createNodeWorker: (func?: (() => unknown) | undefined) => import("threads/dist/types/master").WorkerImplementation | undefined;
4
+ }
5
+ //# sourceMappingURL=NodePayloadHasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodePayloadHasher.d.ts","sourceRoot":"","sources":["../../src/NodePayloadHasher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI/C,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAgB,gBAAgB,+GAAmB;CACpD"}
@@ -1,21 +1,24 @@
1
1
  import { Hash } from '@xylabs/hex';
2
2
  import { EmptyObject, ObjectWrapper } from '@xylabs/object';
3
3
  import { WasmSupport } from '@xyo-network/wasm';
4
- import { Semaphore } from 'async-mutex';
4
+ import { Worker } from 'threads';
5
5
  export declare class PayloadHasher<T extends EmptyObject = EmptyObject> extends ObjectWrapper<T> {
6
6
  static allowSubtle: boolean;
7
- static readonly jsHashThreads: any[];
8
- static readonly jsSemaphore: Semaphore;
9
- static lastJsThreadUsed: number;
10
- static lastSubtleThreadUsed: number;
11
- static lastWasmThreadUsed: number;
12
- static readonly subtleHashThreads: any[];
13
- static readonly subtleSemaphore: Semaphore;
7
+ static createBrowserWorker?: (url?: URL) => Worker | undefined;
8
+ static createNodeWorker?: (func?: () => unknown) => Worker | undefined;
9
+ static jsHashWorkerUrl?: URL;
10
+ static subtleHashWorkerUrl?: URL;
14
11
  static warnIfUsingJsHash: boolean;
15
- static readonly wasmHashThreads: any[];
12
+ static wasmHashWorkerUrl?: URL;
16
13
  static readonly wasmInitialized: Promise<void>;
17
- static readonly wasmSemaphore: Semaphore;
18
14
  static readonly wasmSupport: WasmSupport;
15
+ private static _jsHashPool?;
16
+ private static _subtleHashPool?;
17
+ private static _wasmHashPool?;
18
+ private static get jsHashPool();
19
+ private static get subtleHashPool();
20
+ private static get wasmHashPool();
21
+ static createWorker(url?: URL, func?: () => unknown): import("threads/dist/types/master").Worker;
19
22
  static filterExcludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
20
23
  static filterIncludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
21
24
  static findByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash): Promise<T | undefined>;
@@ -57,6 +60,7 @@ export declare class PayloadHasher<T extends EmptyObject = EmptyObject> extends
57
60
  static stringifyHashFields<T extends EmptyObject>(obj: T): string;
58
61
  static subtleHash(data: Uint8Array): Promise<ArrayBuffer>;
59
62
  static wasmHash(data: string): Promise<any>;
63
+ private static createWorkerPool;
60
64
  hash(): Promise<Hash>;
61
65
  hashSync(): Hash;
62
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadHasher.d.ts","sourceRoot":"","sources":["../../src/PayloadHasher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PayloadHasher.d.ts","sourceRoot":"","sources":["../../src/PayloadHasher.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,24 @@
1
1
  import { Hash } from '@xylabs/hex';
2
2
  import { EmptyObject, ObjectWrapper } from '@xylabs/object';
3
3
  import { WasmSupport } from '@xyo-network/wasm';
4
- import { Semaphore } from 'async-mutex';
4
+ import { Worker } from 'threads';
5
5
  export declare class PayloadHasher<T extends EmptyObject = EmptyObject> extends ObjectWrapper<T> {
6
6
  static allowSubtle: boolean;
7
- static readonly jsHashThreads: any[];
8
- static readonly jsSemaphore: Semaphore;
9
- static lastJsThreadUsed: number;
10
- static lastSubtleThreadUsed: number;
11
- static lastWasmThreadUsed: number;
12
- static readonly subtleHashThreads: any[];
13
- static readonly subtleSemaphore: Semaphore;
7
+ static createBrowserWorker?: (url?: URL) => Worker | undefined;
8
+ static createNodeWorker?: (func?: () => unknown) => Worker | undefined;
9
+ static jsHashWorkerUrl?: URL;
10
+ static subtleHashWorkerUrl?: URL;
14
11
  static warnIfUsingJsHash: boolean;
15
- static readonly wasmHashThreads: any[];
12
+ static wasmHashWorkerUrl?: URL;
16
13
  static readonly wasmInitialized: Promise<void>;
17
- static readonly wasmSemaphore: Semaphore;
18
14
  static readonly wasmSupport: WasmSupport;
15
+ private static _jsHashPool?;
16
+ private static _subtleHashPool?;
17
+ private static _wasmHashPool?;
18
+ private static get jsHashPool();
19
+ private static get subtleHashPool();
20
+ private static get wasmHashPool();
21
+ static createWorker(url?: URL, func?: () => unknown): import("threads/dist/types/master").Worker;
19
22
  static filterExcludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
20
23
  static filterIncludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
21
24
  static findByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash): Promise<T | undefined>;
@@ -57,6 +60,7 @@ export declare class PayloadHasher<T extends EmptyObject = EmptyObject> extends
57
60
  static stringifyHashFields<T extends EmptyObject>(obj: T): string;
58
61
  static subtleHash(data: Uint8Array): Promise<ArrayBuffer>;
59
62
  static wasmHash(data: string): Promise<any>;
63
+ private static createWorkerPool;
60
64
  hash(): Promise<Hash>;
61
65
  hashSync(): Hash;
62
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadHasher.d.ts","sourceRoot":"","sources":["../../src/PayloadHasher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PayloadHasher.d.ts","sourceRoot":"","sources":["../../src/PayloadHasher.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,24 @@
1
1
  import { Hash } from '@xylabs/hex';
2
2
  import { EmptyObject, ObjectWrapper } from '@xylabs/object';
3
3
  import { WasmSupport } from '@xyo-network/wasm';
4
- import { Semaphore } from 'async-mutex';
4
+ import { Worker } from 'threads';
5
5
  export declare class PayloadHasher<T extends EmptyObject = EmptyObject> extends ObjectWrapper<T> {
6
6
  static allowSubtle: boolean;
7
- static readonly jsHashThreads: any[];
8
- static readonly jsSemaphore: Semaphore;
9
- static lastJsThreadUsed: number;
10
- static lastSubtleThreadUsed: number;
11
- static lastWasmThreadUsed: number;
12
- static readonly subtleHashThreads: any[];
13
- static readonly subtleSemaphore: Semaphore;
7
+ static createBrowserWorker?: (url?: URL) => Worker | undefined;
8
+ static createNodeWorker?: (func?: () => unknown) => Worker | undefined;
9
+ static jsHashWorkerUrl?: URL;
10
+ static subtleHashWorkerUrl?: URL;
14
11
  static warnIfUsingJsHash: boolean;
15
- static readonly wasmHashThreads: any[];
12
+ static wasmHashWorkerUrl?: URL;
16
13
  static readonly wasmInitialized: Promise<void>;
17
- static readonly wasmSemaphore: Semaphore;
18
14
  static readonly wasmSupport: WasmSupport;
15
+ private static _jsHashPool?;
16
+ private static _subtleHashPool?;
17
+ private static _wasmHashPool?;
18
+ private static get jsHashPool();
19
+ private static get subtleHashPool();
20
+ private static get wasmHashPool();
21
+ static createWorker(url?: URL, func?: () => unknown): import("threads/dist/types/master").Worker;
19
22
  static filterExcludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
20
23
  static filterIncludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
21
24
  static findByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash): Promise<T | undefined>;
@@ -57,6 +60,7 @@ export declare class PayloadHasher<T extends EmptyObject = EmptyObject> extends
57
60
  static stringifyHashFields<T extends EmptyObject>(obj: T): string;
58
61
  static subtleHash(data: Uint8Array): Promise<ArrayBuffer>;
59
62
  static wasmHash(data: string): Promise<any>;
63
+ private static createWorkerPool;
60
64
  hash(): Promise<Hash>;
61
65
  hashSync(): Hash;
62
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadHasher.d.ts","sourceRoot":"","sources":["../../src/PayloadHasher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PayloadHasher.d.ts","sourceRoot":"","sources":["../../src/PayloadHasher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const createBrowserWorker: (url?: URL) => import("threads/dist/types/master").WorkerImplementation | undefined;
2
+ //# sourceMappingURL=createBrowserWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBrowserWorker.d.ts","sourceRoot":"","sources":["../../src/createBrowserWorker.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,SAAU,GAAG,yEAO5C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const createBrowserWorker: (url?: URL) => import("threads/dist/types/master").WorkerImplementation | undefined;
2
+ //# sourceMappingURL=createBrowserWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBrowserWorker.d.ts","sourceRoot":"","sources":["../../src/createBrowserWorker.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,SAAU,GAAG,yEAO5C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const createBrowserWorker: (url?: URL) => import("threads/dist/types/master").WorkerImplementation | undefined;
2
+ //# sourceMappingURL=createBrowserWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBrowserWorker.d.ts","sourceRoot":"","sources":["../../src/createBrowserWorker.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,SAAU,GAAG,yEAO5C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const createNodeWorker: (func?: () => unknown) => import("threads/dist/types/master").WorkerImplementation | undefined;
2
+ //# sourceMappingURL=createNodeWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNodeWorker.d.ts","sourceRoot":"","sources":["../../src/createNodeWorker.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,UAAW,MAAM,OAAO,yEAYpD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const createNodeWorker: (func?: () => unknown) => import("threads/dist/types/master").WorkerImplementation | undefined;
2
+ //# sourceMappingURL=createNodeWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNodeWorker.d.ts","sourceRoot":"","sources":["../../src/createNodeWorker.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,UAAW,MAAM,OAAO,yEAYpD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const createNodeWorker: (func?: () => unknown) => import("threads/dist/types/master").WorkerImplementation | undefined;
2
+ //# sourceMappingURL=createNodeWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNodeWorker.d.ts","sourceRoot":"","sources":["../../src/createNodeWorker.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,UAAW,MAAM,OAAO,yEAYpD,CAAA"}
@@ -31,7 +31,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  // src/index-browser.ts
32
32
  var index_browser_exports = {};
33
33
  __export(index_browser_exports, {
34
- PayloadHasher: () => PayloadHasher,
34
+ PayloadHasher: () => BrowserPayloadHasher,
35
35
  deepBy: () => deepBy,
36
36
  deepOmitPrefixedFields: () => deepOmitPrefixedFields,
37
37
  deepPickUnderscoreFields: () => deepPickUnderscoreFields,
@@ -40,13 +40,41 @@ __export(index_browser_exports, {
40
40
  });
41
41
  module.exports = __toCommonJS(index_browser_exports);
42
42
 
43
- // src/PayloadHasher-browser.ts
43
+ // src/createBrowserWorker.ts
44
+ var import_threads = require("threads");
45
+ var createBrowserWorker = /* @__PURE__ */ __name((url) => {
46
+ try {
47
+ return new import_threads.Worker(url);
48
+ } catch {
49
+ return;
50
+ }
51
+ }, "createBrowserWorker");
52
+
53
+ // src/createNodeWorker.ts
54
+ var import_threads2 = require("threads");
55
+ var createNodeWorker = /* @__PURE__ */ __name((func) => {
56
+ try {
57
+ const code = func?.toString().slice(6) ?? "";
58
+ const w = new import_threads2.Worker(
59
+ code,
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ {
62
+ fromSource: true
63
+ }
64
+ );
65
+ return w;
66
+ } catch {
67
+ return;
68
+ }
69
+ }, "createNodeWorker");
70
+
71
+ // src/PayloadHasher.ts
72
+ var import_assert2 = require("@xylabs/assert");
44
73
  var import_hex = require("@xylabs/hex");
45
74
  var import_object3 = require("@xylabs/object");
46
75
  var import_wasm = require("@xyo-network/wasm");
47
- var import_async_mutex = require("async-mutex");
48
76
  var import_sha = __toESM(require("sha.js"), 1);
49
- var import_threads = require("threads");
77
+ var import_threads3 = require("threads");
50
78
 
51
79
  // src/removeEmptyFields.ts
52
80
  var import_typeof = require("@xylabs/typeof");
@@ -106,7 +134,7 @@ var sortFields = /* @__PURE__ */ __name((obj) => {
106
134
  return result;
107
135
  }, "sortFields");
108
136
 
109
- // src/worker/jsHash.ts
137
+ // src/worker/jsHashNode.ts
110
138
  var jsHashFunc = /* @__PURE__ */ __name(() => {
111
139
  const shajs2 = require("sha.js");
112
140
  const { asHash: asHash2 } = require("@xylabs/hex");
@@ -118,7 +146,7 @@ var jsHashFunc = /* @__PURE__ */ __name(() => {
118
146
  });
119
147
  }, "jsHashFunc");
120
148
 
121
- // src/worker/subtleHash.ts
149
+ // src/worker/subtleHashNode.ts
122
150
  var subtleHashFunc = /* @__PURE__ */ __name(() => {
123
151
  const { subtle } = require("@xylabs/platform");
124
152
  const { expose } = require("threads/worker");
@@ -129,7 +157,7 @@ var subtleHashFunc = /* @__PURE__ */ __name(() => {
129
157
  });
130
158
  }, "subtleHashFunc");
131
159
 
132
- // src/worker/wasmHash.ts
160
+ // src/worker/wasmHashNode.ts
133
161
  var wasmHashFunc = /* @__PURE__ */ __name(() => {
134
162
  const { sha256 } = require("hash-wasm");
135
163
  const { asHash: asHash2 } = require("@xylabs/hex");
@@ -141,33 +169,41 @@ var wasmHashFunc = /* @__PURE__ */ __name(() => {
141
169
  });
142
170
  }, "wasmHashFunc");
143
171
 
144
- // src/PayloadHasher-browser.ts
145
- var import_meta = {};
172
+ // src/PayloadHasher.ts
146
173
  var wasmSupportStatic = new import_wasm.WasmSupport([
147
174
  "bigInt"
148
175
  ]);
149
- var maxHashThreads = 8;
150
- var maxListenersPerThread = 1;
151
176
  var PayloadHasher = class _PayloadHasher extends import_object3.ObjectWrapper {
152
177
  static {
153
178
  __name(this, "PayloadHasher");
154
179
  }
155
180
  static allowSubtle = true;
156
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
157
- static jsHashThreads = [];
158
- static jsSemaphore = new import_async_mutex.Semaphore(maxHashThreads * maxListenersPerThread);
159
- static lastJsThreadUsed;
160
- static lastSubtleThreadUsed;
161
- static lastWasmThreadUsed;
162
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
163
- static subtleHashThreads = [];
164
- static subtleSemaphore = new import_async_mutex.Semaphore(maxHashThreads * maxListenersPerThread);
181
+ static createBrowserWorker;
182
+ static createNodeWorker;
183
+ static jsHashWorkerUrl;
184
+ static subtleHashWorkerUrl;
165
185
  static warnIfUsingJsHash = true;
166
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
167
- static wasmHashThreads = [];
186
+ static wasmHashWorkerUrl;
168
187
  static wasmInitialized = wasmSupportStatic.initialize();
169
- static wasmSemaphore = new import_async_mutex.Semaphore(maxHashThreads * maxListenersPerThread);
170
188
  static wasmSupport = wasmSupportStatic;
189
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
190
+ static _jsHashPool;
191
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
192
+ static _subtleHashPool;
193
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
194
+ static _wasmHashPool;
195
+ static get jsHashPool() {
196
+ return this._jsHashPool = this._jsHashPool ?? this.createWorkerPool(this.jsHashWorkerUrl, jsHashFunc);
197
+ }
198
+ static get subtleHashPool() {
199
+ return this._subtleHashPool = this._subtleHashPool ?? this.createWorkerPool(this.subtleHashWorkerUrl, subtleHashFunc);
200
+ }
201
+ static get wasmHashPool() {
202
+ return this._wasmHashPool = this._wasmHashPool ?? this.createWorkerPool(this.wasmHashWorkerUrl, wasmHashFunc);
203
+ }
204
+ static createWorker(url, func) {
205
+ return (0, import_assert2.assertEx)(this.createBrowserWorker?.(url) ?? this.createNodeWorker?.(func), "Unable to create worker");
206
+ }
171
207
  static async filterExcludeByHash(objs = [], hash) {
172
208
  const hashes = Array.isArray(hash) ? hash : [
173
209
  hash
@@ -243,37 +279,10 @@ var PayloadHasher = class _PayloadHasher extends import_object3.ObjectWrapper {
243
279
  return objs ? await Promise.all(objs.map((obj) => this.hash(obj))) : void 0;
244
280
  }
245
281
  static async jsHash(data) {
246
- await this.jsSemaphore.acquire();
247
282
  if (_PayloadHasher.warnIfUsingJsHash) {
248
283
  console.warn("Using jsHash [No subtle or wasm?]");
249
284
  }
250
- try {
251
- if (this.jsHashThreads.length < maxHashThreads) {
252
- let w;
253
- try {
254
- w = new import_threads.Worker(new URL("worker/jsHash.js", import_meta.url));
255
- } catch {
256
- const code = jsHashFunc.toString().slice(6);
257
- w = new import_threads.Worker(
258
- code,
259
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
260
- {
261
- fromSource: true
262
- }
263
- );
264
- }
265
- const worker = await (0, import_threads.spawn)(w);
266
- this.jsHashThreads.push(worker);
267
- }
268
- let threadToUse = this.lastJsThreadUsed === void 0 ? 0 : this.lastJsThreadUsed + 1;
269
- if (threadToUse >= this.jsHashThreads.length) {
270
- threadToUse = 0;
271
- }
272
- this.lastJsThreadUsed = threadToUse;
273
- return await this.jsHashThreads[threadToUse].hash(data);
274
- } finally {
275
- this.jsSemaphore.release();
276
- }
285
+ return await this.jsHashPool.queue(async (thread) => await thread.hash(data));
277
286
  }
278
287
  /**
279
288
  * Returns a clone of the payload that is JSON safe
@@ -292,64 +301,14 @@ var PayloadHasher = class _PayloadHasher extends import_object3.ObjectWrapper {
292
301
  return JSON.stringify(this.hashFields(obj));
293
302
  }
294
303
  static async subtleHash(data) {
295
- await this.subtleSemaphore.acquire();
296
- try {
297
- if (this.subtleHashThreads.length < maxHashThreads) {
298
- let w;
299
- try {
300
- w = new import_threads.Worker(new URL("worker/subtleHash.js", import_meta.url));
301
- } catch {
302
- const code = subtleHashFunc.toString().slice(6);
303
- w = new import_threads.Worker(
304
- code,
305
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
306
- {
307
- fromSource: true
308
- }
309
- );
310
- }
311
- const worker = await (0, import_threads.spawn)(w);
312
- this.subtleHashThreads.push(worker);
313
- }
314
- let threadToUse = this.lastSubtleThreadUsed === void 0 ? 0 : this.lastSubtleThreadUsed + 1;
315
- if (threadToUse >= this.subtleHashThreads.length) {
316
- threadToUse = 0;
317
- }
318
- this.lastSubtleThreadUsed = threadToUse;
319
- return await this.subtleHashThreads[threadToUse].hash(data);
320
- } finally {
321
- this.subtleSemaphore.release();
322
- }
304
+ return await this.subtleHashPool.queue(async (thread) => await thread.hash(data));
323
305
  }
324
306
  static async wasmHash(data) {
325
- await this.wasmSemaphore.acquire();
326
- try {
327
- if (this.wasmHashThreads.length < maxHashThreads) {
328
- let w;
329
- try {
330
- w = new import_threads.Worker(new URL("worker/wasmHash.js", import_meta.url));
331
- } catch {
332
- const code = wasmHashFunc.toString().slice(6);
333
- w = new import_threads.Worker(
334
- code,
335
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
336
- {
337
- fromSource: true
338
- }
339
- );
340
- }
341
- const worker = await (0, import_threads.spawn)(w);
342
- this.wasmHashThreads.push(worker);
343
- }
344
- let threadToUse = this.lastWasmThreadUsed === void 0 ? 0 : this.lastWasmThreadUsed + 1;
345
- if (threadToUse >= this.wasmHashThreads.length) {
346
- threadToUse = 0;
347
- }
348
- this.lastWasmThreadUsed = threadToUse;
349
- return await this.wasmHashThreads[threadToUse].hash(data);
350
- } finally {
351
- this.wasmSemaphore.release();
352
- }
307
+ return await this.wasmHashPool.queue(async (thread) => await thread.hash(data));
308
+ }
309
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
310
+ static createWorkerPool(url, func, size = 8) {
311
+ return (0, import_threads3.Pool)(() => (0, import_threads3.spawn)(this.createWorker(url, func)), size);
353
312
  }
354
313
  async hash() {
355
314
  return await _PayloadHasher.hash(this.obj);
@@ -366,4 +325,37 @@ var PayloadHasher = class _PayloadHasher extends import_object3.ObjectWrapper {
366
325
  return _PayloadHasher.jsonPayload(this.obj, meta);
367
326
  }
368
327
  };
328
+
329
+ // src/BrowserPayloadHasher.ts
330
+ var import_meta = {};
331
+ PayloadHasher.createBrowserWorker = createBrowserWorker;
332
+ PayloadHasher.createNodeWorker = createNodeWorker;
333
+ var BrowserPayloadHasher = class extends PayloadHasher {
334
+ static {
335
+ __name(this, "BrowserPayloadHasher");
336
+ }
337
+ static createBrowserWorker = createBrowserWorker;
338
+ static createNodeWorker = createNodeWorker;
339
+ static jsHashWorkerUrl = (() => {
340
+ try {
341
+ return new URL("worker/jsHash-bundle.js", import_meta.url);
342
+ } catch {
343
+ return;
344
+ }
345
+ })();
346
+ static subtleHashWorkerUrl = (() => {
347
+ try {
348
+ return new URL("worker/subtleHash-bundle.js", import_meta.url);
349
+ } catch {
350
+ return;
351
+ }
352
+ })();
353
+ static wasmHashWorkerUrl = (() => {
354
+ try {
355
+ return new URL("worker/wasmHash-bundle.js", import_meta.url);
356
+ } catch {
357
+ return;
358
+ }
359
+ })();
360
+ };
369
361
  //# sourceMappingURL=index-browser.cjs.map