@xyo-network/hash 3.1.14 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/browser/PayloadHasher.d.ts.map +1 -1
  2. package/dist/browser/index-browser.d.ts +0 -1
  3. package/dist/browser/index-browser.d.ts.map +1 -1
  4. package/dist/browser/index-browser.mjs +3 -48
  5. package/dist/browser/index-browser.mjs.map +1 -1
  6. package/dist/browser/index.d.ts +0 -1
  7. package/dist/browser/index.d.ts.map +1 -1
  8. package/dist/browser/worker/index.mjs.map +1 -1
  9. package/dist/browser/worker/subtleHash-bundle.mjs +53 -60
  10. package/dist/browser/worker/subtleHashNode.d.ts.map +1 -1
  11. package/dist/browser/worker/subtleHashNode.mjs.map +1 -1
  12. package/dist/browser/worker/wasmHash-bundle.mjs +52 -52
  13. package/dist/browser/worker/wasmHashNode.d.ts.map +1 -1
  14. package/dist/browser/worker/wasmHashNode.mjs.map +1 -1
  15. package/dist/neutral/PayloadHasher.d.ts.map +1 -1
  16. package/dist/neutral/index-browser.d.ts +0 -1
  17. package/dist/neutral/index-browser.d.ts.map +1 -1
  18. package/dist/neutral/index.d.ts +0 -1
  19. package/dist/neutral/index.d.ts.map +1 -1
  20. package/dist/neutral/index.mjs +3 -48
  21. package/dist/neutral/index.mjs.map +1 -1
  22. package/dist/neutral/worker/subtleHashNode.d.ts.map +1 -1
  23. package/dist/neutral/worker/wasmHashNode.d.ts.map +1 -1
  24. package/dist/node/PayloadHasher.d.ts.map +1 -1
  25. package/dist/node/index-browser.d.ts +0 -1
  26. package/dist/node/index-browser.d.ts.map +1 -1
  27. package/dist/node/index.d.ts +0 -1
  28. package/dist/node/index.d.ts.map +1 -1
  29. package/dist/node/index.mjs +3 -48
  30. package/dist/node/index.mjs.map +1 -1
  31. package/dist/node/worker/index.mjs.map +1 -1
  32. package/dist/node/worker/subtleHashNode.d.ts.map +1 -1
  33. package/dist/node/worker/subtleHashNode.mjs.map +1 -1
  34. package/dist/node/worker/wasmHashNode.d.ts.map +1 -1
  35. package/dist/node/worker/wasmHashNode.mjs.map +1 -1
  36. package/package.json +14 -15
  37. package/src/PayloadHasher.ts +4 -5
  38. package/src/index-browser.ts +0 -1
  39. package/src/index.ts +0 -1
  40. package/src/worker/subtleHashNode.ts +0 -1
  41. package/src/worker/wasmHashNode.ts +0 -1
  42. package/dist/browser/removeFields.d.ts +0 -8
  43. package/dist/browser/removeFields.d.ts.map +0 -1
  44. package/dist/neutral/removeFields.d.ts +0 -8
  45. package/dist/neutral/removeFields.d.ts.map +0 -1
  46. package/dist/node/removeFields.d.ts +0 -8
  47. package/dist/node/removeFields.d.ts.map +0 -1
  48. package/src/removeFields.ts +0 -48
@@ -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,5 +1,4 @@
1
1
  export { BrowserPayloadHasher as PayloadHasher } from './BrowserPayloadHasher.ts';
2
2
  export * from './removeEmptyFields.ts';
3
- export * from './removeFields.ts';
4
3
  export * from './sortFields.ts';
5
4
  //# sourceMappingURL=index-browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACjF,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../../src/index-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACjF,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA"}
@@ -33,8 +33,7 @@ var createNodeWorker = (func) => {
33
33
  // src/PayloadHasher.ts
34
34
  import { assertEx } from "@xylabs/assert";
35
35
  import { asHash, hexFromArrayBuffer } from "@xylabs/hex";
36
- import { omitBy } from "@xylabs/lodash";
37
- import { ObjectWrapper } from "@xylabs/object";
36
+ import { ObjectWrapper, omitBy } from "@xylabs/object";
38
37
  import { subtle } from "@xylabs/platform";
39
38
  import { Pool, spawn } from "@xylabs/threads";
40
39
  import { WasmSupport } from "@xyo-network/wasm";
@@ -98,8 +97,8 @@ var wasmHashFunc = () => {
98
97
  // src/PayloadHasher.ts
99
98
  var wasmSupportStatic = new WasmSupport(["bigInt"]);
100
99
  var omitByPredicate = (prefix) => (_, key) => {
101
- assertEx(typeof key === "string", () => `Invalid key type [${key}, ${typeof key}]`);
102
- return key.startsWith(prefix);
100
+ assertEx(typeof key === "string", () => `Invalid key type [${String(key)}, ${typeof key}]`);
101
+ return String(key).startsWith(prefix);
103
102
  };
104
103
  var PayloadHasher = class _PayloadHasher extends ObjectWrapper {
105
104
  static allowHashPooling = true;
@@ -273,52 +272,8 @@ var BrowserPayloadHasher = class extends PayloadHasher {
273
272
  }
274
273
  })();
275
274
  };
276
-
277
- // src/removeFields.ts
278
- import { assertEx as assertEx2 } from "@xylabs/assert";
279
- import {
280
- mapValues,
281
- merge,
282
- omitBy as omitBy2,
283
- pickBy
284
- } from "@xylabs/lodash";
285
- import { isObject as isObject2 } from "@xylabs/object";
286
- var deepBy = (obj, predicate, func) => {
287
- if (Array.isArray(obj)) {
288
- return obj;
289
- }
290
- const onlyObjects = pickBy(obj, isObject2);
291
- const nonObjects = pickBy(obj, (value) => !isObject2(value));
292
- const pickedObjects = omitBy2(onlyObjects, predicate);
293
- const pickedNonObjects = omitBy2(nonObjects, predicate);
294
- const processedObjects = mapValues(pickedObjects, (obj2) => deepBy(obj2, predicate, func));
295
- return merge({}, pickedNonObjects, processedObjects);
296
- };
297
- var deepOmitPrefixedFields = (obj, prefix) => {
298
- return deepBy(
299
- obj,
300
- (_, key) => {
301
- assertEx2(typeof key === "string", () => `Invalid key type [${key}, ${typeof key}]`);
302
- return key.startsWith(prefix);
303
- },
304
- omitBy2
305
- );
306
- };
307
- var deepPickUnderscoreFields = (obj) => {
308
- return deepBy(
309
- obj,
310
- (_, key) => {
311
- assertEx2(typeof key === "string", () => `Invalid key type [${key}, ${typeof key}]`);
312
- return key.startsWith("_");
313
- },
314
- pickBy
315
- );
316
- };
317
275
  export {
318
276
  BrowserPayloadHasher as PayloadHasher,
319
- deepBy,
320
- deepOmitPrefixedFields,
321
- deepPickUnderscoreFields,
322
277
  removeEmptyFields,
323
278
  sortFields
324
279
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/createBrowserWorker.ts","../../src/createNodeWorker.ts","../../src/PayloadHasher.ts","../../src/removeEmptyFields.ts","../../src/sortFields.ts","../../src/worker/subtleHashNode.ts","../../src/worker/wasmHashNode.ts","../../src/BrowserPayloadHasher.ts","../../src/removeFields.ts"],"sourcesContent":["import { Worker } from '@xylabs/threads'\n\nexport const createBrowserWorker = (url?: URL) => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new Worker(url as any)\n } catch {\n return\n }\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 type { Hash } from '@xylabs/hex'\nimport { asHash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { omitBy } from '@xylabs/lodash'\nimport type { EmptyObject } from '@xylabs/object'\nimport { ObjectWrapper } from '@xylabs/object'\nimport { subtle } from '@xylabs/platform'\nimport type { ModuleThread, Worker } from '@xylabs/threads'\nimport { Pool, spawn } 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 type { 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 type { AnyObject, EmptyObject } from '@xylabs/object'\nimport { 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 { createBrowserWorker } from './createBrowserWorker.ts'\nimport { createNodeWorker } from './createNodeWorker.ts'\nimport { PayloadHasher } from './PayloadHasher.ts'\n\n// We put both in here so that things will work in jsdom/jest\n\nPayloadHasher.createBrowserWorker = createBrowserWorker\nPayloadHasher.createNodeWorker = createNodeWorker\n\nexport class BrowserPayloadHasher extends PayloadHasher {\n static override createBrowserWorker = createBrowserWorker\n static override createNodeWorker = createNodeWorker\n static override subtleHashWorkerUrl = (() => {\n try {\n return new URL('@xyo-network/hash/worker/subtleHash-bundle.mjs', import.meta.url)\n } catch {\n return\n }\n })()\n\n static override wasmHashWorkerUrl = (() => {\n try {\n return new URL('@xyo-network/hash/worker/wasmHash-bundle.mjs', import.meta.url)\n } catch {\n return\n }\n })()\n}\n","import { assertEx } from '@xylabs/assert'\nimport {\n mapValues, merge, omitBy, pickBy,\n} from '@xylabs/lodash'\nimport type { EmptyObject } from '@xylabs/object'\nimport { 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":["Worker","subtle","sha256","asHash","assertEx","omitBy","isObject","obj"]}
1
+ {"version":3,"sources":["../../src/createBrowserWorker.ts","../../src/createNodeWorker.ts","../../src/PayloadHasher.ts","../../src/removeEmptyFields.ts","../../src/sortFields.ts","../../src/worker/subtleHashNode.ts","../../src/worker/wasmHashNode.ts","../../src/BrowserPayloadHasher.ts"],"sourcesContent":["import { Worker } from '@xylabs/threads'\n\nexport const createBrowserWorker = (url?: URL) => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new Worker(url as any)\n } catch {\n return\n }\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 type { Hash } from '@xylabs/hex'\nimport { asHash, hexFromArrayBuffer } from '@xylabs/hex'\nimport type { EmptyObject } from '@xylabs/object'\nimport { ObjectWrapper, omitBy } from '@xylabs/object'\nimport { subtle } from '@xylabs/platform'\nimport type { ModuleThread, Worker } from '@xylabs/threads'\nimport { Pool, spawn } 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 = <T extends object>(prefix: string) => (_: T[keyof T], key: keyof T) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${String(key)}, ${typeof key}]`)\n return String(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 type { 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 type { AnyObject, EmptyObject } from '@xylabs/object'\nimport { 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 @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 @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 { createBrowserWorker } from './createBrowserWorker.ts'\nimport { createNodeWorker } from './createNodeWorker.ts'\nimport { PayloadHasher } from './PayloadHasher.ts'\n\n// We put both in here so that things will work in jsdom/jest\n\nPayloadHasher.createBrowserWorker = createBrowserWorker\nPayloadHasher.createNodeWorker = createNodeWorker\n\nexport class BrowserPayloadHasher extends PayloadHasher {\n static override createBrowserWorker = createBrowserWorker\n static override createNodeWorker = createNodeWorker\n static override subtleHashWorkerUrl = (() => {\n try {\n return new URL('@xyo-network/hash/worker/subtleHash-bundle.mjs', import.meta.url)\n } catch {\n return\n }\n })()\n\n static override wasmHashWorkerUrl = (() => {\n try {\n return new URL('@xyo-network/hash/worker/wasmHash-bundle.mjs', import.meta.url)\n } catch {\n return\n }\n })()\n}\n"],"mappings":"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","names":["Worker","subtle","sha256","asHash"]}
@@ -1,6 +1,5 @@
1
1
  export * from './hasEmptyFields.ts';
2
2
  export { NodePayloadHasher as PayloadHasher } from './NodePayloadHasher.ts';
3
3
  export * from './removeEmptyFields.ts';
4
- export * from './removeFields.ts';
5
4
  export * from './sortFields.ts';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3E,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3E,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/subtleHashNode.ts","../../../src/worker/wasmHashNode.ts"],"sourcesContent":["/* 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"],"mappings":";;;;;;;;AAEO,IAAM,iBAAiB,MAAM;AAClC,QAAM,EAAE,OAAO,IAAI,UAAQ,kBAAkB;AAC7C,QAAM,EAAE,OAAO,IAAI,UAAQ,wBAAwB;AAEnD,SAAO;AAAA,IACL,MAAM,KAAK,MAAmB;AAC5B,aAAO,MAAM,OAAO,OAAO,WAAW,IAAI;AAAA,IAC5C;AAAA,EACF,CAAC;AACH;;;ACTO,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/subtleHashNode.ts","../../../src/worker/wasmHashNode.ts"],"sourcesContent":["/* 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 @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":";;;;;;;;AACO,IAAM,iBAAiB,MAAM;AAClC,QAAM,EAAE,OAAO,IAAI,UAAQ,kBAAkB;AAC7C,QAAM,EAAE,OAAO,IAAI,UAAQ,wBAAwB;AAEnD,SAAO;AAAA,IACL,MAAM,KAAK,MAAmB;AAC5B,aAAO,MAAM,OAAO,OAAO,WAAW,IAAI;AAAA,IAC5C;AAAA,EACF,CAAC;AACH;;;ACTO,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":[]}
@@ -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-4.0.9-e4dbdc1874/package/dist/esm/serializers.js
31
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/serializers.js
32
32
  var require_serializers = __commonJS({
33
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/serializers.js"(exports) {
33
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/common.js
78
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/common.js
79
79
  var require_common = __commonJS({
80
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/common.js"(exports) {
80
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/master/get-bundle-url.browser.js
100
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/master/get-bundle-url.browser.js"(exports) {
102
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/master/implementation.browser.js
131
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/implementation.browser.js
132
132
  var require_implementation_browser = __commonJS({
133
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/implementation.browser.js"(exports) {
133
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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;
@@ -169,11 +169,11 @@
169
169
  }
170
170
  class BlobWorker extends WebWorker {
171
171
  constructor(blob, options) {
172
- const url = window.URL.createObjectURL(blob);
172
+ const url = globalThis.URL.createObjectURL(blob);
173
173
  super(url, options);
174
174
  }
175
175
  static fromText(source, options) {
176
- const blob = new window.Blob([source], { type: "text/javascript" });
176
+ const blob = new globalThis.Blob([source], { type: "text/javascript" });
177
177
  return new BlobWorker(blob, options);
178
178
  }
179
179
  }
@@ -190,15 +190,15 @@
190
190
  return implementation;
191
191
  }
192
192
  function isWorkerRuntime() {
193
- const isWindowContext = typeof self !== "undefined" && typeof Window !== "undefined" && self instanceof Window;
194
- return typeof self !== "undefined" && self["postMessage"] && !isWindowContext ? true : false;
193
+ const isWindowContext = typeof globalThis !== "undefined" && typeof Window !== "undefined" && globalThis instanceof Window;
194
+ return typeof globalThis !== "undefined" && self["postMessage"] && !isWindowContext ? true : false;
195
195
  }
196
196
  }
197
197
  });
198
198
 
199
- // ../../../../../../node_modules/.store/ms-npm-2.1.2-ec0c1512ff/package/index.js
199
+ // ../../../../../../node_modules/.store/ms-npm-2.1.3-81ff3cfac1/package/index.js
200
200
  var require_package = __commonJS({
201
- "../../../../../../node_modules/.store/ms-npm-2.1.2-ec0c1512ff/package/index.js"(exports, module) {
201
+ "../../../../../../node_modules/.store/ms-npm-2.1.3-81ff3cfac1/package/index.js"(exports, module) {
202
202
  var s = 1e3;
203
203
  var m = s * 60;
204
204
  var h = m * 60;
@@ -312,9 +312,9 @@
312
312
  }
313
313
  });
314
314
 
315
- // ../../../../../../node_modules/.store/debug-virtual-4475a483b5/package/src/common.js
315
+ // ../../../../../../node_modules/.store/debug-virtual-3daa515605/package/src/common.js
316
316
  var require_common2 = __commonJS({
317
- "../../../../../../node_modules/.store/debug-virtual-4475a483b5/package/src/common.js"(exports, module) {
317
+ "../../../../../../node_modules/.store/debug-virtual-3daa515605/package/src/common.js"(exports, module) {
318
318
  function setup(env) {
319
319
  createDebug.debug = createDebug;
320
320
  createDebug.default = createDebug;
@@ -475,9 +475,9 @@
475
475
  }
476
476
  });
477
477
 
478
- // ../../../../../../node_modules/.store/debug-virtual-4475a483b5/package/src/browser.js
478
+ // ../../../../../../node_modules/.store/debug-virtual-3daa515605/package/src/browser.js
479
479
  var require_browser = __commonJS({
480
- "../../../../../../node_modules/.store/debug-virtual-4475a483b5/package/src/browser.js"(exports, module) {
480
+ "../../../../../../node_modules/.store/debug-virtual-3daa515605/package/src/browser.js"(exports, module) {
481
481
  exports.formatArgs = formatArgs;
482
482
  exports.save = save;
483
483
  exports.load = load;
@@ -1762,9 +1762,9 @@
1762
1762
  }
1763
1763
  });
1764
1764
 
1765
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/ponyfills.js
1765
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/ponyfills.js
1766
1766
  var require_ponyfills = __commonJS({
1767
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/ponyfills.js"(exports) {
1767
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/master/pool-types.js
1790
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/pool-types.js
1791
1791
  var require_pool_types = __commonJS({
1792
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/pool-types.js"(exports) {
1792
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/symbols.js
1810
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/symbols.js
1811
1811
  var require_symbols3 = __commonJS({
1812
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/symbols.js"(exports) {
1812
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/master/thread.js
1824
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/thread.js
1825
1825
  var require_thread = __commonJS({
1826
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/thread.js"(exports) {
1826
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/master/pool.js
1848
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/pool.js
1849
1849
  var require_pool = __commonJS({
1850
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/pool.js"(exports) {
1850
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/promise.js
2112
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/promise.js
2113
2113
  var require_promise = __commonJS({
2114
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/promise.js"(exports) {
2114
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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-4.0.9-e4dbdc1874/package/dist/esm/types/master.js
2140
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/types/master.js
2141
2141
  var require_master = __commonJS({
2142
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/types/master.js"(exports) {
2142
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/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;
@@ -2152,9 +2152,9 @@
2152
2152
  }
2153
2153
  });
2154
2154
 
2155
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/observable-promise.js
2155
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/observable-promise.js
2156
2156
  var require_observable_promise = __commonJS({
2157
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/observable-promise.js"(exports) {
2157
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/observable-promise.js"(exports) {
2158
2158
  "use strict";
2159
2159
  Object.defineProperty(exports, "__esModule", { value: true });
2160
2160
  exports.ObservablePromise = void 0;
@@ -2286,9 +2286,9 @@
2286
2286
  }
2287
2287
  });
2288
2288
 
2289
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/transferable.js
2289
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/transferable.js
2290
2290
  var require_transferable = __commonJS({
2291
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/transferable.js"(exports) {
2291
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/transferable.js"(exports) {
2292
2292
  "use strict";
2293
2293
  Object.defineProperty(exports, "__esModule", { value: true });
2294
2294
  exports.isTransferDescriptor = isTransferDescriptor;
@@ -2317,9 +2317,9 @@
2317
2317
  }
2318
2318
  });
2319
2319
 
2320
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/types/messages.js
2320
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/types/messages.js
2321
2321
  var require_messages = __commonJS({
2322
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/types/messages.js"(exports) {
2322
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/types/messages.js"(exports) {
2323
2323
  "use strict";
2324
2324
  Object.defineProperty(exports, "__esModule", { value: true });
2325
2325
  exports.WorkerMessageType = exports.MasterMessageType = void 0;
@@ -2339,9 +2339,9 @@
2339
2339
  }
2340
2340
  });
2341
2341
 
2342
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/invocation-proxy.js
2342
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/invocation-proxy.js
2343
2343
  var require_invocation_proxy = __commonJS({
2344
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/invocation-proxy.js"(exports) {
2344
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/invocation-proxy.js"(exports) {
2345
2345
  "use strict";
2346
2346
  var __importDefault = exports && exports.__importDefault || function(mod) {
2347
2347
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -2460,9 +2460,9 @@
2460
2460
  }
2461
2461
  });
2462
2462
 
2463
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/spawn.js
2463
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/spawn.js
2464
2464
  var require_spawn = __commonJS({
2465
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/spawn.js"(exports) {
2465
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/spawn.js"(exports) {
2466
2466
  "use strict";
2467
2467
  var __importDefault = exports && exports.__importDefault || function(mod) {
2468
2468
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -2573,9 +2573,9 @@
2573
2573
  }
2574
2574
  });
2575
2575
 
2576
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/index.js
2576
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/index.js
2577
2577
  var require_master2 = __commonJS({
2578
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/master/index.js"(exports) {
2578
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/master/index.js"(exports) {
2579
2579
  "use strict";
2580
2580
  Object.defineProperty(exports, "__esModule", { value: true });
2581
2581
  exports.isWorkerRuntime = exports.Worker = exports.BlobWorker = exports.Thread = exports.spawn = exports.Pool = void 0;
@@ -2620,9 +2620,9 @@
2620
2620
  }
2621
2621
  });
2622
2622
 
2623
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/worker/implementation.browser.js
2623
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/worker/implementation.browser.js
2624
2624
  var require_implementation_browser2 = __commonJS({
2625
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/worker/implementation.browser.js"(exports) {
2625
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/worker/implementation.browser.js"(exports) {
2626
2626
  "use strict";
2627
2627
  Object.defineProperty(exports, "__esModule", { value: true });
2628
2628
  var isWorkerRuntime = function isWorkerRuntime2() {
@@ -2650,9 +2650,9 @@
2650
2650
  }
2651
2651
  });
2652
2652
 
2653
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/worker/index.js
2653
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/worker/index.js
2654
2654
  var require_worker = __commonJS({
2655
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/worker/index.js"(exports) {
2655
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/worker/index.js"(exports) {
2656
2656
  "use strict";
2657
2657
  var __importDefault = exports && exports.__importDefault || function(mod) {
2658
2658
  return mod && mod.__esModule ? mod : { "default": mod };
@@ -2804,7 +2804,7 @@
2804
2804
  }
2805
2805
  });
2806
2806
  }
2807
- if (typeof self !== "undefined" && typeof self.addEventListener === "function" && implementation_1.default.isWorkerRuntime()) {
2807
+ if (typeof globalThis !== "undefined" && typeof self.addEventListener === "function" && implementation_1.default.isWorkerRuntime()) {
2808
2808
  self.addEventListener("error", (event) => {
2809
2809
  setTimeout(() => postUncaughtErrorMessage(event.error || event), 250);
2810
2810
  });
@@ -2828,9 +2828,9 @@
2828
2828
  }
2829
2829
  });
2830
2830
 
2831
- // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/index.js
2831
+ // ../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/index.js
2832
2832
  var require_esm = __commonJS({
2833
- "../../../../../../node_modules/.store/@xylabs-threads-npm-4.0.9-e4dbdc1874/package/dist/esm/index.js"(exports) {
2833
+ "../../../../../../node_modules/.store/@xylabs-threads-npm-4.2.2-bde36c0173/package/dist/esm/index.js"(exports) {
2834
2834
  "use strict";
2835
2835
  var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
2836
2836
  if (k2 === void 0) k2 = k;
@@ -2870,15 +2870,8 @@
2870
2870
  }
2871
2871
  });
2872
2872
 
2873
- // ../../../../../../node_modules/.store/@xylabs-platform-npm-4.0.9-341b5887c2/package/dist/browser/index.mjs
2874
- var isBrowser = () => {
2875
- return !isWebworker() && self.constructor?.name === "Window";
2876
- };
2877
- var isWebworker = () => {
2878
- return typeof self === "object" && self.constructor?.name === "DedicatedWorkerGlobalScope";
2879
- };
2880
- var getGlobal = () => isWebworker() ? self : isBrowser() ? window : globalThis;
2881
- var subtle = getGlobal().crypto.subtle;
2873
+ // ../../../../../../node_modules/.store/@xylabs-platform-npm-4.2.2-4ad92d124e/package/dist/browser/index.mjs
2874
+ var subtle = globalThis.crypto.subtle;
2882
2875
 
2883
2876
  // src/worker/subtleHash.ts
2884
2877
  var import_threads = __toESM(require_esm(), 1);
@@ -1 +1 @@
1
- {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,YAS1B,CAAA"}
1
+ {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,YAS1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/subtleHashNode.ts"],"sourcesContent":["/* 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"],"mappings":";;;;;;;;AAEO,IAAM,iBAAiB,MAAM;AAClC,QAAM,EAAE,OAAO,IAAI,UAAQ,kBAAkB;AAC7C,QAAM,EAAE,OAAO,IAAI,UAAQ,wBAAwB;AAEnD,SAAO;AAAA,IACL,MAAM,KAAK,MAAmB;AAC5B,aAAO,MAAM,OAAO,OAAO,WAAW,IAAI;AAAA,IAC5C;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/worker/subtleHashNode.ts"],"sourcesContent":["/* 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"],"mappings":";;;;;;;;AACO,IAAM,iBAAiB,MAAM;AAClC,QAAM,EAAE,OAAO,IAAI,UAAQ,kBAAkB;AAC7C,QAAM,EAAE,OAAO,IAAI,UAAQ,wBAAwB;AAEnD,SAAO;AAAA,IACL,MAAM,KAAK,MAAmB;AAC5B,aAAO,MAAM,OAAO,OAAO,WAAW,IAAI;AAAA,IAC5C;AAAA,EACF,CAAC;AACH;","names":[]}