@xyo-network/hash 2.90.10 → 2.90.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/BrowserPayloadHasher.d.cts +9 -0
- package/dist/browser/BrowserPayloadHasher.d.cts.map +1 -0
- package/dist/browser/BrowserPayloadHasher.d.mts +9 -0
- package/dist/browser/BrowserPayloadHasher.d.mts.map +1 -0
- package/dist/browser/BrowserPayloadHasher.d.ts +9 -0
- package/dist/browser/BrowserPayloadHasher.d.ts.map +1 -0
- package/dist/browser/NodePayloadHasher.d.cts +5 -0
- package/dist/browser/NodePayloadHasher.d.cts.map +1 -0
- package/dist/browser/NodePayloadHasher.d.mts +5 -0
- package/dist/browser/NodePayloadHasher.d.mts.map +1 -0
- package/dist/browser/NodePayloadHasher.d.ts +5 -0
- package/dist/browser/NodePayloadHasher.d.ts.map +1 -0
- package/dist/browser/PayloadHasher.d.cts +14 -10
- package/dist/browser/PayloadHasher.d.cts.map +1 -1
- package/dist/browser/PayloadHasher.d.mts +14 -10
- package/dist/browser/PayloadHasher.d.mts.map +1 -1
- package/dist/browser/PayloadHasher.d.ts +14 -10
- package/dist/browser/PayloadHasher.d.ts.map +1 -1
- package/dist/browser/createBrowserWorker.d.cts +2 -0
- package/dist/browser/createBrowserWorker.d.cts.map +1 -0
- package/dist/browser/createBrowserWorker.d.mts +2 -0
- package/dist/browser/createBrowserWorker.d.mts.map +1 -0
- package/dist/browser/createBrowserWorker.d.ts +2 -0
- package/dist/browser/createBrowserWorker.d.ts.map +1 -0
- package/dist/browser/createNodeWorker.d.cts +2 -0
- package/dist/browser/createNodeWorker.d.cts.map +1 -0
- package/dist/browser/createNodeWorker.d.mts +2 -0
- package/dist/browser/createNodeWorker.d.mts.map +1 -0
- package/dist/browser/createNodeWorker.d.ts +2 -0
- package/dist/browser/createNodeWorker.d.ts.map +1 -0
- package/dist/browser/index-browser.cjs +96 -104
- package/dist/browser/index-browser.cjs.map +1 -1
- package/dist/browser/index-browser.d.cts +1 -1
- package/dist/browser/index-browser.d.cts.map +1 -1
- package/dist/browser/index-browser.d.mts +1 -1
- package/dist/browser/index-browser.d.mts.map +1 -1
- package/dist/browser/index-browser.d.ts +1 -1
- package/dist/browser/index-browser.d.ts.map +1 -1
- package/dist/browser/index-browser.js +95 -103
- package/dist/browser/index-browser.js.map +1 -1
- package/dist/browser/index.d.cts +1 -1
- package/dist/browser/index.d.cts.map +1 -1
- package/dist/browser/index.d.mts +1 -1
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/node/BrowserPayloadHasher.d.cts +9 -0
- package/dist/node/BrowserPayloadHasher.d.cts.map +1 -0
- package/dist/node/BrowserPayloadHasher.d.mts +9 -0
- package/dist/node/BrowserPayloadHasher.d.mts.map +1 -0
- package/dist/node/BrowserPayloadHasher.d.ts +9 -0
- package/dist/node/BrowserPayloadHasher.d.ts.map +1 -0
- package/dist/node/NodePayloadHasher.d.cts +5 -0
- package/dist/node/NodePayloadHasher.d.cts.map +1 -0
- package/dist/node/NodePayloadHasher.d.mts +5 -0
- package/dist/node/NodePayloadHasher.d.mts.map +1 -0
- package/dist/node/NodePayloadHasher.d.ts +5 -0
- package/dist/node/NodePayloadHasher.d.ts.map +1 -0
- package/dist/node/PayloadHasher.d.cts +14 -10
- package/dist/node/PayloadHasher.d.cts.map +1 -1
- package/dist/node/PayloadHasher.d.mts +14 -10
- package/dist/node/PayloadHasher.d.mts.map +1 -1
- package/dist/node/PayloadHasher.d.ts +14 -10
- package/dist/node/PayloadHasher.d.ts.map +1 -1
- package/dist/node/createBrowserWorker.d.cts +2 -0
- package/dist/node/createBrowserWorker.d.cts.map +1 -0
- package/dist/node/createBrowserWorker.d.mts +2 -0
- package/dist/node/createBrowserWorker.d.mts.map +1 -0
- package/dist/node/createBrowserWorker.d.ts +2 -0
- package/dist/node/createBrowserWorker.d.ts.map +1 -0
- package/dist/node/createNodeWorker.d.cts +2 -0
- package/dist/node/createNodeWorker.d.cts.map +1 -0
- package/dist/node/createNodeWorker.d.mts +2 -0
- package/dist/node/createNodeWorker.d.mts.map +1 -0
- package/dist/node/createNodeWorker.d.ts +2 -0
- package/dist/node/createNodeWorker.d.ts.map +1 -0
- package/dist/node/index-browser.d.cts +1 -1
- package/dist/node/index-browser.d.cts.map +1 -1
- package/dist/node/index-browser.d.mts +1 -1
- package/dist/node/index-browser.d.mts.map +1 -1
- package/dist/node/index-browser.d.ts +1 -1
- package/dist/node/index-browser.d.ts.map +1 -1
- package/dist/node/index.cjs +60 -86
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +1 -1
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +1 -1
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +60 -86
- package/dist/node/index.js.map +1 -1
- package/package.json +2 -3
- package/src/BrowserPayloadHasher.ts +34 -0
- package/src/NodePayloadHasher.ts +8 -0
- package/src/PayloadHasher.ts +40 -82
- package/src/createBrowserWorker.ts +10 -0
- package/src/createNodeWorker.ts +15 -0
- package/src/index-browser.ts +1 -1
- package/src/index.ts +1 -1
- package/dist/browser/PayloadHasher-browser.d.cts +0 -69
- package/dist/browser/PayloadHasher-browser.d.cts.map +0 -1
- package/dist/browser/PayloadHasher-browser.d.mts +0 -69
- package/dist/browser/PayloadHasher-browser.d.mts.map +0 -1
- package/dist/browser/PayloadHasher-browser.d.ts +0 -69
- package/dist/browser/PayloadHasher-browser.d.ts.map +0 -1
- package/dist/node/PayloadHasher-browser.d.cts +0 -69
- package/dist/node/PayloadHasher-browser.d.cts.map +0 -1
- package/dist/node/PayloadHasher-browser.d.mts +0 -69
- package/dist/node/PayloadHasher-browser.d.mts.map +0 -1
- package/dist/node/PayloadHasher-browser.d.ts +0 -69
- package/dist/node/PayloadHasher-browser.d.ts.map +0 -1
- 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 {
|
|
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
|
|
8
|
-
static
|
|
9
|
-
static
|
|
10
|
-
static
|
|
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
|
|
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":"
|
|
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 {
|
|
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
|
|
8
|
-
static
|
|
9
|
-
static
|
|
10
|
-
static
|
|
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
|
|
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":"
|
|
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 {
|
|
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
|
|
8
|
-
static
|
|
9
|
-
static
|
|
10
|
-
static
|
|
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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"PayloadHasher.d.ts","sourceRoot":"","sources":["../../src/PayloadHasher.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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: () =>
|
|
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/
|
|
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
|
|
77
|
+
var import_threads3 = require("threads");
|
|
50
78
|
|
|
51
79
|
// src/removeEmptyFields.ts
|
|
52
80
|
var import_typeof = require("@xylabs/typeof");
|
|
@@ -141,33 +169,41 @@ var wasmHashFunc = /* @__PURE__ */ __name(() => {
|
|
|
141
169
|
});
|
|
142
170
|
}, "wasmHashFunc");
|
|
143
171
|
|
|
144
|
-
// src/PayloadHasher
|
|
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
|
-
|
|
157
|
-
static
|
|
158
|
-
static
|
|
159
|
-
static
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
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.ts", import_meta.url);
|
|
342
|
+
} catch {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
})();
|
|
346
|
+
static subtleHashWorkerUrl = (() => {
|
|
347
|
+
try {
|
|
348
|
+
return new URL("worker/subtleHash.ts", import_meta.url);
|
|
349
|
+
} catch {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
})();
|
|
353
|
+
static wasmHashWorkerUrl = (() => {
|
|
354
|
+
try {
|
|
355
|
+
return new URL("worker/wasmHash.ts", import_meta.url);
|
|
356
|
+
} catch {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
})();
|
|
360
|
+
};
|
|
369
361
|
//# sourceMappingURL=index-browser.cjs.map
|