@xyo-network/hash 2.107.5 → 2.108.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 (88) hide show
  1. package/dist/browser/PayloadHasher.d.cts.map +1 -1
  2. package/dist/browser/PayloadHasher.d.mts.map +1 -1
  3. package/dist/browser/PayloadHasher.d.ts.map +1 -1
  4. package/dist/browser/index-browser.cjs +1 -3
  5. package/dist/browser/index-browser.cjs.map +1 -1
  6. package/dist/browser/index-browser.js +1 -3
  7. package/dist/browser/index-browser.js.map +1 -1
  8. package/dist/browser/worker/index.cjs.map +1 -1
  9. package/dist/browser/worker/index.js.map +1 -1
  10. package/dist/browser/worker/jsHash-bundle.js +12 -17
  11. package/dist/browser/worker/jsHash.cjs.map +1 -1
  12. package/dist/browser/worker/jsHash.js.map +1 -1
  13. package/dist/browser/worker/jsHashNode.cjs.map +1 -1
  14. package/dist/browser/worker/jsHashNode.d.cts.map +1 -1
  15. package/dist/browser/worker/jsHashNode.d.mts.map +1 -1
  16. package/dist/browser/worker/jsHashNode.d.ts.map +1 -1
  17. package/dist/browser/worker/jsHashNode.js.map +1 -1
  18. package/dist/browser/worker/subtleHash-bundle.js +9 -11
  19. package/dist/browser/worker/subtleHash.cjs.map +1 -1
  20. package/dist/browser/worker/subtleHash.js.map +1 -1
  21. package/dist/browser/worker/subtleHashNode.cjs.map +1 -1
  22. package/dist/browser/worker/subtleHashNode.d.cts.map +1 -1
  23. package/dist/browser/worker/subtleHashNode.d.mts.map +1 -1
  24. package/dist/browser/worker/subtleHashNode.d.ts.map +1 -1
  25. package/dist/browser/worker/subtleHashNode.js.map +1 -1
  26. package/dist/browser/worker/wasmHash-bundle.js +12 -17
  27. package/dist/browser/worker/wasmHash.cjs.map +1 -1
  28. package/dist/browser/worker/wasmHash.js.map +1 -1
  29. package/dist/browser/worker/wasmHashNode.cjs.map +1 -1
  30. package/dist/browser/worker/wasmHashNode.d.cts.map +1 -1
  31. package/dist/browser/worker/wasmHashNode.d.mts.map +1 -1
  32. package/dist/browser/worker/wasmHashNode.d.ts.map +1 -1
  33. package/dist/browser/worker/wasmHashNode.js.map +1 -1
  34. package/dist/neutral/PayloadHasher.d.cts.map +1 -1
  35. package/dist/neutral/PayloadHasher.d.mts.map +1 -1
  36. package/dist/neutral/PayloadHasher.d.ts.map +1 -1
  37. package/dist/neutral/index.cjs +1 -3
  38. package/dist/neutral/index.cjs.map +1 -1
  39. package/dist/neutral/index.js +1 -3
  40. package/dist/neutral/index.js.map +1 -1
  41. package/dist/neutral/worker/jsHashNode.d.cts.map +1 -1
  42. package/dist/neutral/worker/jsHashNode.d.mts.map +1 -1
  43. package/dist/neutral/worker/jsHashNode.d.ts.map +1 -1
  44. package/dist/neutral/worker/subtleHashNode.d.cts.map +1 -1
  45. package/dist/neutral/worker/subtleHashNode.d.mts.map +1 -1
  46. package/dist/neutral/worker/subtleHashNode.d.ts.map +1 -1
  47. package/dist/neutral/worker/wasmHashNode.d.cts.map +1 -1
  48. package/dist/neutral/worker/wasmHashNode.d.mts.map +1 -1
  49. package/dist/neutral/worker/wasmHashNode.d.ts.map +1 -1
  50. package/dist/node/PayloadHasher.d.cts.map +1 -1
  51. package/dist/node/PayloadHasher.d.mts.map +1 -1
  52. package/dist/node/PayloadHasher.d.ts.map +1 -1
  53. package/dist/node/index.cjs +1 -3
  54. package/dist/node/index.cjs.map +1 -1
  55. package/dist/node/index.js +1 -3
  56. package/dist/node/index.js.map +1 -1
  57. package/dist/node/worker/index.cjs.map +1 -1
  58. package/dist/node/worker/index.js.map +1 -1
  59. package/dist/node/worker/jsHash.cjs.map +1 -1
  60. package/dist/node/worker/jsHash.js.map +1 -1
  61. package/dist/node/worker/jsHashNode.cjs.map +1 -1
  62. package/dist/node/worker/jsHashNode.d.cts.map +1 -1
  63. package/dist/node/worker/jsHashNode.d.mts.map +1 -1
  64. package/dist/node/worker/jsHashNode.d.ts.map +1 -1
  65. package/dist/node/worker/jsHashNode.js.map +1 -1
  66. package/dist/node/worker/subtleHash.cjs.map +1 -1
  67. package/dist/node/worker/subtleHash.js.map +1 -1
  68. package/dist/node/worker/subtleHashNode.cjs.map +1 -1
  69. package/dist/node/worker/subtleHashNode.d.cts.map +1 -1
  70. package/dist/node/worker/subtleHashNode.d.mts.map +1 -1
  71. package/dist/node/worker/subtleHashNode.d.ts.map +1 -1
  72. package/dist/node/worker/subtleHashNode.js.map +1 -1
  73. package/dist/node/worker/wasmHash.cjs.map +1 -1
  74. package/dist/node/worker/wasmHash.js.map +1 -1
  75. package/dist/node/worker/wasmHashNode.cjs.map +1 -1
  76. package/dist/node/worker/wasmHashNode.d.cts.map +1 -1
  77. package/dist/node/worker/wasmHashNode.d.mts.map +1 -1
  78. package/dist/node/worker/wasmHashNode.d.ts.map +1 -1
  79. package/dist/node/worker/wasmHashNode.js.map +1 -1
  80. package/package.json +14 -14
  81. package/src/PayloadHasher.ts +2 -2
  82. package/src/globals.d.ts +1 -0
  83. package/src/worker/jsHash.ts +1 -0
  84. package/src/worker/jsHashNode.ts +1 -0
  85. package/src/worker/subtleHash.ts +1 -0
  86. package/src/worker/subtleHashNode.ts +1 -0
  87. package/src/worker/wasmHash.ts +1 -0
  88. package/src/worker/wasmHashNode.ts +1 -0
@@ -50,7 +50,8 @@
50
50
  "../../../../../../node_modules/@xylabs/threads/dist/serializers.js"(exports) {
51
51
  "use strict";
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.DefaultSerializer = exports.extendSerializer = void 0;
53
+ exports.DefaultSerializer = void 0;
54
+ exports.extendSerializer = extendSerializer;
54
55
  function extendSerializer(extend, implementation) {
55
56
  const fallbackDeserializer = extend.deserialize.bind(extend);
56
57
  const fallbackSerializer = extend.serialize.bind(extend);
@@ -63,7 +64,6 @@
63
64
  }
64
65
  };
65
66
  }
66
- exports.extendSerializer = extendSerializer;
67
67
  var DefaultErrorSerializer = {
68
68
  deserialize(message) {
69
69
  return Object.assign(new Error(message.message), {
@@ -97,21 +97,20 @@
97
97
  "../../../../../../node_modules/@xylabs/threads/dist/common.js"(exports) {
98
98
  "use strict";
99
99
  Object.defineProperty(exports, "__esModule", { value: true });
100
- exports.serialize = exports.deserialize = exports.registerSerializer = void 0;
100
+ exports.registerSerializer = registerSerializer2;
101
+ exports.deserialize = deserialize;
102
+ exports.serialize = serialize;
101
103
  var serializers_1 = require_serializers();
102
104
  var registeredSerializer = serializers_1.DefaultSerializer;
103
105
  function registerSerializer2(serializer) {
104
106
  registeredSerializer = (0, serializers_1.extendSerializer)(registeredSerializer, serializer);
105
107
  }
106
- exports.registerSerializer = registerSerializer2;
107
108
  function deserialize(message) {
108
109
  return registeredSerializer.deserialize(message);
109
110
  }
110
- exports.deserialize = deserialize;
111
111
  function serialize(input) {
112
112
  return registeredSerializer.serialize(input);
113
113
  }
114
- exports.serialize = serialize;
115
114
  }
116
115
  });
117
116
 
@@ -134,7 +133,8 @@
134
133
  "../../../../../../node_modules/@xylabs/threads/dist/transferable.js"(exports) {
135
134
  "use strict";
136
135
  Object.defineProperty(exports, "__esModule", { value: true });
137
- exports.Transfer = exports.isTransferDescriptor = void 0;
136
+ exports.isTransferDescriptor = isTransferDescriptor;
137
+ exports.Transfer = Transfer2;
138
138
  var symbols_1 = require_symbols();
139
139
  function isTransferable(thing) {
140
140
  if (!thing || typeof thing !== "object")
@@ -144,7 +144,6 @@
144
144
  function isTransferDescriptor(thing) {
145
145
  return thing && typeof thing === "object" && thing[symbols_1.$transferable];
146
146
  }
147
- exports.isTransferDescriptor = isTransferDescriptor;
148
147
  function Transfer2(payload, transferables) {
149
148
  if (!transferables) {
150
149
  if (!isTransferable(payload))
@@ -157,7 +156,6 @@
157
156
  transferables
158
157
  };
159
158
  }
160
- exports.Transfer = Transfer2;
161
159
  }
162
160
  });
163
161
 
@@ -221,7 +219,8 @@
221
219
  return mod && mod.__esModule ? mod : { "default": mod };
222
220
  };
223
221
  Object.defineProperty(exports, "__esModule", { value: true });
224
- exports.expose = exports.isWorkerRuntime = exports.Transfer = exports.registerSerializer = void 0;
222
+ exports.isWorkerRuntime = exports.Transfer = exports.registerSerializer = void 0;
223
+ exports.expose = expose3;
225
224
  var is_observable_2_1_0_1 = __importDefault(require_is_observable_2_1_0());
226
225
  var common_1 = require_common();
227
226
  var transferable_1 = require_transferable();
@@ -368,7 +367,6 @@
368
367
  }
369
368
  });
370
369
  }
371
- exports.expose = expose3;
372
370
  if (typeof self !== "undefined" && typeof self.addEventListener === "function" && implementation_1.default.isWorkerRuntime()) {
373
371
  self.addEventListener("error", (event) => {
374
372
  setTimeout(() => postUncaughtErrorMessage(event.error || event), 250);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/subtleHash.ts"],"sourcesContent":["import { subtle } from '@xylabs/platform'\nimport { expose } from '@xylabs/threads/worker'\n\nexpose({\n async hash(data: ArrayBuffer) {\n return await subtle.digest('SHA-256', data)\n },\n})\n"],"mappings":";;;AAAA,sBAAuB;AACvB,oBAAuB;IAEvBA,sBAAO;EACL,MAAMC,KAAKC,MAAiB;AAC1B,WAAO,MAAMC,uBAAOC,OAAO,WAAWF,IAAAA;EACxC;AACF,CAAA;","names":["expose","hash","data","subtle","digest"]}
1
+ {"version":3,"sources":["../../../src/worker/subtleHash.ts"],"sourcesContent":["import { subtle } from '@xylabs/platform'\n// eslint-disable-next-line import/no-internal-modules\nimport { expose } from '@xylabs/threads/worker'\n\nexpose({\n async hash(data: ArrayBuffer) {\n return await subtle.digest('SHA-256', data)\n },\n})\n"],"mappings":";;;AAAA,sBAAuB;AAEvB,oBAAuB;IAEvBA,sBAAO;EACL,MAAMC,KAAKC,MAAiB;AAC1B,WAAO,MAAMC,uBAAOC,OAAO,WAAWF,IAAAA;EACxC;AACF,CAAA;","names":["expose","hash","data","subtle","digest"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/subtleHash.ts"],"sourcesContent":["import { subtle } from '@xylabs/platform'\nimport { expose } from '@xylabs/threads/worker'\n\nexpose({\n async hash(data: ArrayBuffer) {\n return await subtle.digest('SHA-256', data)\n },\n})\n"],"mappings":";AAAA,SAASA,cAAc;AACvB,SAASC,cAAc;AAEvBA,OAAO;EACL,MAAMC,KAAKC,MAAiB;AAC1B,WAAO,MAAMH,OAAOI,OAAO,WAAWD,IAAAA;EACxC;AACF,CAAA;","names":["subtle","expose","hash","data","digest"]}
1
+ {"version":3,"sources":["../../../src/worker/subtleHash.ts"],"sourcesContent":["import { subtle } from '@xylabs/platform'\n// eslint-disable-next-line import/no-internal-modules\nimport { expose } from '@xylabs/threads/worker'\n\nexpose({\n async hash(data: ArrayBuffer) {\n return await subtle.digest('SHA-256', data)\n },\n})\n"],"mappings":";AAAA,SAASA,cAAc;AAEvB,SAASC,cAAc;AAEvBA,OAAO;EACL,MAAMC,KAAKC,MAAiB;AAC1B,WAAO,MAAMH,OAAOI,OAAO,WAAWD,IAAAA;EACxC;AACF,CAAA;","names":["subtle","expose","hash","data","digest"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/subtleHashNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\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":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AACO,IAAMA,iBAAiB,6BAAA;AAC5B,QAAM,EAAEC,OAAM,IAAKC,QAAQ,kBAAA;AAC3B,QAAM,EAAEC,OAAM,IAAKD,QAAQ,wBAAA;AAE3BC,SAAO;IACL,MAAMC,KAAKC,MAAiB;AAC1B,aAAO,MAAMJ,OAAOK,OAAO,WAAWD,IAAAA;IACxC;EACF,CAAA;AACF,GAT8B;","names":["subtleHashFunc","subtle","require","expose","hash","data","digest"]}
1
+ {"version":3,"sources":["../../../src/worker/subtleHashNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nexport const subtleHashFunc = () => {\n const { subtle } = require('@xylabs/platform')\n // eslint-disable-next-line import/no-internal-modules\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":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AACO,IAAMA,iBAAiB,6BAAA;AAC5B,QAAM,EAAEC,OAAM,IAAKC,QAAQ,kBAAA;AAE3B,QAAM,EAAEC,OAAM,IAAKD,QAAQ,wBAAA;AAE3BC,SAAO;IACL,MAAMC,KAAKC,MAAiB;AAC1B,aAAO,MAAMJ,OAAOK,OAAO,WAAWD,IAAAA;IACxC;EACF,CAAA;AACF,GAV8B;","names":["subtleHashFunc","subtle","require","expose","hash","data","digest"]}
@@ -1 +1 @@
1
- {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,YAS1B,CAAA"}
1
+ {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,YAU1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,YAS1B,CAAA"}
1
+ {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,YAU1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,YAS1B,CAAA"}
1
+ {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,YAU1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/subtleHashNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\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,IAAMA,iBAAiB,6BAAA;AAC5B,QAAM,EAAEC,OAAM,IAAKC,UAAQ,kBAAA;AAC3B,QAAM,EAAEC,OAAM,IAAKD,UAAQ,wBAAA;AAE3BC,SAAO;IACL,MAAMC,KAAKC,MAAiB;AAC1B,aAAO,MAAMJ,OAAOK,OAAO,WAAWD,IAAAA;IACxC;EACF,CAAA;AACF,GAT8B;","names":["subtleHashFunc","subtle","require","expose","hash","data","digest"]}
1
+ {"version":3,"sources":["../../../src/worker/subtleHashNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nexport const subtleHashFunc = () => {\n const { subtle } = require('@xylabs/platform')\n // eslint-disable-next-line import/no-internal-modules\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,IAAMA,iBAAiB,6BAAA;AAC5B,QAAM,EAAEC,OAAM,IAAKC,UAAQ,kBAAA;AAE3B,QAAM,EAAEC,OAAM,IAAKD,UAAQ,wBAAA;AAE3BC,SAAO;IACL,MAAMC,KAAKC,MAAiB;AAC1B,aAAO,MAAMJ,OAAOK,OAAO,WAAWD,IAAAA;IACxC;EACF,CAAA;AACF,GAV8B;","names":["subtleHashFunc","subtle","require","expose","hash","data","digest"]}
@@ -50,7 +50,8 @@
50
50
  "../../../../../../node_modules/@xylabs/threads/dist/serializers.js"(exports) {
51
51
  "use strict";
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.DefaultSerializer = exports.extendSerializer = void 0;
53
+ exports.DefaultSerializer = void 0;
54
+ exports.extendSerializer = extendSerializer;
54
55
  function extendSerializer(extend, implementation) {
55
56
  const fallbackDeserializer = extend.deserialize.bind(extend);
56
57
  const fallbackSerializer = extend.serialize.bind(extend);
@@ -63,7 +64,6 @@
63
64
  }
64
65
  };
65
66
  }
66
- exports.extendSerializer = extendSerializer;
67
67
  var DefaultErrorSerializer = {
68
68
  deserialize(message) {
69
69
  return Object.assign(new Error(message.message), {
@@ -97,21 +97,20 @@
97
97
  "../../../../../../node_modules/@xylabs/threads/dist/common.js"(exports) {
98
98
  "use strict";
99
99
  Object.defineProperty(exports, "__esModule", { value: true });
100
- exports.serialize = exports.deserialize = exports.registerSerializer = void 0;
100
+ exports.registerSerializer = registerSerializer2;
101
+ exports.deserialize = deserialize;
102
+ exports.serialize = serialize;
101
103
  var serializers_1 = require_serializers();
102
104
  var registeredSerializer = serializers_1.DefaultSerializer;
103
105
  function registerSerializer2(serializer) {
104
106
  registeredSerializer = (0, serializers_1.extendSerializer)(registeredSerializer, serializer);
105
107
  }
106
- exports.registerSerializer = registerSerializer2;
107
108
  function deserialize(message) {
108
109
  return registeredSerializer.deserialize(message);
109
110
  }
110
- exports.deserialize = deserialize;
111
111
  function serialize(input) {
112
112
  return registeredSerializer.serialize(input);
113
113
  }
114
- exports.serialize = serialize;
115
114
  }
116
115
  });
117
116
 
@@ -134,7 +133,8 @@
134
133
  "../../../../../../node_modules/@xylabs/threads/dist/transferable.js"(exports) {
135
134
  "use strict";
136
135
  Object.defineProperty(exports, "__esModule", { value: true });
137
- exports.Transfer = exports.isTransferDescriptor = void 0;
136
+ exports.isTransferDescriptor = isTransferDescriptor;
137
+ exports.Transfer = Transfer2;
138
138
  var symbols_1 = require_symbols();
139
139
  function isTransferable(thing) {
140
140
  if (!thing || typeof thing !== "object")
@@ -144,7 +144,6 @@
144
144
  function isTransferDescriptor(thing) {
145
145
  return thing && typeof thing === "object" && thing[symbols_1.$transferable];
146
146
  }
147
- exports.isTransferDescriptor = isTransferDescriptor;
148
147
  function Transfer2(payload, transferables) {
149
148
  if (!transferables) {
150
149
  if (!isTransferable(payload))
@@ -157,7 +156,6 @@
157
156
  transferables
158
157
  };
159
158
  }
160
- exports.Transfer = Transfer2;
161
159
  }
162
160
  });
163
161
 
@@ -221,7 +219,8 @@
221
219
  return mod && mod.__esModule ? mod : { "default": mod };
222
220
  };
223
221
  Object.defineProperty(exports, "__esModule", { value: true });
224
- exports.expose = exports.isWorkerRuntime = exports.Transfer = exports.registerSerializer = void 0;
222
+ exports.isWorkerRuntime = exports.Transfer = exports.registerSerializer = void 0;
223
+ exports.expose = expose3;
225
224
  var is_observable_2_1_0_1 = __importDefault(require_is_observable_2_1_0());
226
225
  var common_1 = require_common();
227
226
  var transferable_1 = require_transferable();
@@ -368,7 +367,6 @@
368
367
  }
369
368
  });
370
369
  }
371
- exports.expose = expose3;
372
370
  if (typeof self !== "undefined" && typeof self.addEventListener === "function" && implementation_1.default.isWorkerRuntime()) {
373
371
  self.addEventListener("error", (event) => {
374
372
  setTimeout(() => postUncaughtErrorMessage(event.error || event), 250);
@@ -405,18 +403,15 @@
405
403
  };
406
404
  var bitsToNibbles = (value) => {
407
405
  const nibbles = value >> 2;
408
- if (value !== nibbles << 2)
409
- throw new Error("Bits for nibbles must multiple of 4");
406
+ if (value !== nibbles << 2) throw new Error("Bits for nibbles must multiple of 4");
410
407
  return nibbles;
411
408
  };
412
409
  var hexRegex = /^[\da-f]+$/i;
413
410
  var hexRegexWithPrefix = /0x[\da-f]+$/i;
414
411
  var isHex = (value, config) => {
415
- if (typeof value !== "string")
416
- return false;
412
+ if (typeof value !== "string") return false;
417
413
  const valueCharLength = config?.prefix ? value.length - 2 : value.length;
418
- if (config?.bitLength !== void 0 && valueCharLength !== bitsToNibbles(config?.bitLength))
419
- return false;
414
+ if (config?.bitLength !== void 0 && valueCharLength !== bitsToNibbles(config?.bitLength)) return false;
420
415
  return config?.prefix ? hexRegexWithPrefix.test(value) : hexRegex.test(value);
421
416
  };
422
417
  var hexFromHexString = (value, config = {}) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/wasmHash.ts"],"sourcesContent":["import { asHash } from '@xylabs/hex'\nimport { expose } from '@xylabs/threads/worker'\nimport { sha256 } from 'hash-wasm'\n\nexpose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n})\n"],"mappings":";;;AAAA,iBAAuB;AACvB,oBAAuB;AACvB,uBAAuB;IAEvBA,sBAAO;EACL,MAAMC,KAAKC,MAAY;AACrB,eAAOC,mBAAO,UAAMC,yBAAOF,IAAAA,GAAO,IAAA;EACpC;AACF,CAAA;","names":["expose","hash","data","asHash","sha256"]}
1
+ {"version":3,"sources":["../../../src/worker/wasmHash.ts"],"sourcesContent":["import { asHash } from '@xylabs/hex'\n// eslint-disable-next-line import/no-internal-modules\nimport { expose } from '@xylabs/threads/worker'\nimport { sha256 } from 'hash-wasm'\n\nexpose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n})\n"],"mappings":";;;AAAA,iBAAuB;AAEvB,oBAAuB;AACvB,uBAAuB;IAEvBA,sBAAO;EACL,MAAMC,KAAKC,MAAY;AACrB,eAAOC,mBAAO,UAAMC,yBAAOF,IAAAA,GAAO,IAAA;EACpC;AACF,CAAA;","names":["expose","hash","data","asHash","sha256"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/wasmHash.ts"],"sourcesContent":["import { asHash } from '@xylabs/hex'\nimport { expose } from '@xylabs/threads/worker'\nimport { sha256 } from 'hash-wasm'\n\nexpose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n})\n"],"mappings":";AAAA,SAASA,cAAc;AACvB,SAASC,cAAc;AACvB,SAASC,cAAc;AAEvBD,OAAO;EACL,MAAME,KAAKC,MAAY;AACrB,WAAOJ,OAAO,MAAME,OAAOE,IAAAA,GAAO,IAAA;EACpC;AACF,CAAA;","names":["asHash","expose","sha256","hash","data"]}
1
+ {"version":3,"sources":["../../../src/worker/wasmHash.ts"],"sourcesContent":["import { asHash } from '@xylabs/hex'\n// eslint-disable-next-line import/no-internal-modules\nimport { expose } from '@xylabs/threads/worker'\nimport { sha256 } from 'hash-wasm'\n\nexpose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n})\n"],"mappings":";AAAA,SAASA,cAAc;AAEvB,SAASC,cAAc;AACvB,SAASC,cAAc;AAEvBD,OAAO;EACL,MAAME,KAAKC,MAAY;AACrB,WAAOJ,OAAO,MAAME,OAAOE,IAAAA,GAAO,IAAA;EACpC;AACF,CAAA;","names":["asHash","expose","sha256","hash","data"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/wasmHashNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\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":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AACO,IAAMA,eAAe,6BAAA;AAC1B,QAAM,EAAEC,OAAM,IAAKC,QAAQ,WAAA;AAC3B,QAAM,EAAEC,OAAM,IAAKD,QAAQ,aAAA;AAC3B,QAAM,EAAEE,OAAM,IAAKF,QAAQ,wBAAA;AAE3BE,SAAO;IACL,MAAMC,KAAKC,MAAY;AACrB,aAAOH,OAAO,MAAMF,OAAOK,IAAAA,GAAO,IAAA;IACpC;EACF,CAAA;AACF,GAV4B;","names":["wasmHashFunc","sha256","require","asHash","expose","hash","data"]}
1
+ {"version":3,"sources":["../../../src/worker/wasmHashNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\n // eslint-disable-next-line import/no-internal-modules\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":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AACO,IAAMA,eAAe,6BAAA;AAC1B,QAAM,EAAEC,OAAM,IAAKC,QAAQ,WAAA;AAC3B,QAAM,EAAEC,OAAM,IAAKD,QAAQ,aAAA;AAE3B,QAAM,EAAEE,OAAM,IAAKF,QAAQ,wBAAA;AAE3BE,SAAO;IACL,MAAMC,KAAKC,MAAY;AACrB,aAAOH,OAAO,MAAMF,OAAOK,IAAAA,GAAO,IAAA;IACpC;EACF,CAAA;AACF,GAX4B;","names":["wasmHashFunc","sha256","require","asHash","expose","hash","data"]}
@@ -1 +1 @@
1
- {"version":3,"file":"wasmHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/wasmHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,YAUxB,CAAA"}
1
+ {"version":3,"file":"wasmHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/wasmHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,YAWxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"wasmHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/wasmHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,YAUxB,CAAA"}
1
+ {"version":3,"file":"wasmHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/wasmHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,YAWxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"wasmHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/wasmHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,YAUxB,CAAA"}
1
+ {"version":3,"file":"wasmHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/wasmHashNode.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,YAWxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/worker/wasmHashNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\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,IAAMA,eAAe,6BAAA;AAC1B,QAAM,EAAEC,OAAM,IAAKC,UAAQ,WAAA;AAC3B,QAAM,EAAEC,OAAM,IAAKD,UAAQ,aAAA;AAC3B,QAAM,EAAEE,OAAM,IAAKF,UAAQ,wBAAA;AAE3BE,SAAO;IACL,MAAMC,KAAKC,MAAY;AACrB,aAAOH,OAAO,MAAMF,OAAOK,IAAAA,GAAO,IAAA;IACpC;EACF,CAAA;AACF,GAV4B;","names":["wasmHashFunc","sha256","require","asHash","expose","hash","data"]}
1
+ {"version":3,"sources":["../../../src/worker/wasmHashNode.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\n // eslint-disable-next-line import/no-internal-modules\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,IAAMA,eAAe,6BAAA;AAC1B,QAAM,EAAEC,OAAM,IAAKC,UAAQ,WAAA;AAC3B,QAAM,EAAEC,OAAM,IAAKD,UAAQ,aAAA;AAE3B,QAAM,EAAEE,OAAM,IAAKF,UAAQ,wBAAA;AAE3BE,SAAO;IACL,MAAMC,KAAKC,MAAY;AACrB,aAAOH,OAAO,MAAMF,OAAOK,IAAAA,GAAO,IAAA;IACpC;EACF,CAAA;AACF,GAX4B;","names":["wasmHashFunc","sha256","require","asHash","expose","hash","data"]}
@@ -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":"AACA,OAAO,EAAU,IAAI,EAAsB,MAAM,aAAa,CAAA;AAE9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE3D,OAAO,EAA6B,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAe/C,qBAAa,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,gBAAgB,UAAO;IAC9B,MAAM,CAAC,WAAW,UAAO;IACzB,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,MAAM,GAAG,SAAS,CAAA;IAC9D,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,KAAK,MAAM,GAAG,SAAS,CAAA;IAEtE,MAAM,CAAC,WAAW,OAMd;IAEJ,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,CAAA;IAC5B,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAA;IAEhC,MAAM,CAAC,iBAAiB,UAAO;IAE/B,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAA;IAE9B,MAAM,CAAC,QAAQ,CAAC,eAAe,gBAAiC;IAChE,MAAM,CAAC,QAAQ,CAAC,WAAW,cAAoB;IAI/C,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAA8C;IAGzE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAA8C;IAE7E,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAA8C;IAE3E,OAAO,CAAC,MAAM,KAAK,UAAU,GAW5B;IAED,OAAO,CAAC,MAAM,KAAK,cAAc,GAYhC;IAED,OAAO,CAAC,MAAM,KAAK,YAAY,GAY9B;IAED,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,OAAO;WAKtC,mBAAmB,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,YAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;WAK7F,mBAAmB,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,YAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;WAK7F,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,YAAK,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;WASrF,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB/D,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;WAStC,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;IAS9E,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI;WASvC,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC;WAItE,MAAM,CAAC,IAAI,EAAE,MAAM;IAgBhC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,UAAQ,GAAG,CAAC;IAK/D,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,UAAQ,GAAG,CAAC;IAItE,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC;WAI3C,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;WAKlD,QAAQ,CAAC,IAAI,EAAE,MAAM;IAMlC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAMzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,IAAI;IAShB,IAAI,CAAC,IAAI,UAAQ,GAAG,CAAC;CAGtB"}
@@ -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 +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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"}
@@ -77,6 +77,7 @@ var createNodeWorker = /* @__PURE__ */ __name((func) => {
77
77
  // src/PayloadHasher.ts
78
78
  var import_assert = require("@xylabs/assert");
79
79
  var import_hex = require("@xylabs/hex");
80
+ var import_lodash = require("@xylabs/lodash");
80
81
  var import_object2 = require("@xylabs/object");
81
82
  var import_platform = require("@xylabs/platform");
82
83
  var import_threads2 = require("@xylabs/threads");
@@ -99,9 +100,6 @@ var removeEmptyFields = /* @__PURE__ */ __name((obj) => {
99
100
  return newObject;
100
101
  }, "removeEmptyFields");
101
102
 
102
- // src/PayloadHasher.ts
103
- var import_lodash = require("@xylabs/lodash");
104
-
105
103
  // src/sortFields.ts
106
104
  var import_object = require("@xylabs/object");
107
105
  var subSort = /* @__PURE__ */ __name((value) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/hasEmptyFields.ts","../../src/createNodeWorker.ts","../../src/PayloadHasher.ts","../../src/removeEmptyFields.ts","../../src/sortFields.ts","../../src/worker/jsHashNode.ts","../../src/worker/subtleHashNode.ts","../../src/worker/wasmHashNode.ts","../../src/NodePayloadHasher.ts","../../src/removeFields.ts"],"sourcesContent":["export * from './hasEmptyFields'\nexport { NodePayloadHasher as PayloadHasher } from './NodePayloadHasher'\nexport * from './removeEmptyFields'\nexport * from './removeFields'\nexport * from './sortFields'\n","import { EmptyObject } from '@xylabs/object'\nimport { typeOf } from '@xylabs/typeof'\n\nexport const hasEmptyFields = <T extends EmptyObject>(obj: T): boolean => {\n if (obj === null || Array.isArray(obj)) return false\n\n if (obj === undefined || Object.keys(obj).length === 0) return true\n\n for (const [value] of Object.values(obj)) {\n if (typeOf(value) === 'object') {\n if (hasEmptyFields(value as Record<string, unknown>)) return true\n } else if (value === undefined) {\n return true\n }\n }\n return false\n}\n","import { Worker } from '@xylabs/threads'\n\nexport const createNodeWorker = (func?: () => unknown) => {\n try {\n const code = func?.toString().slice(6) ?? ''\n const w = new Worker(\n code,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { fromSource: true } as any,\n )\n return w\n } catch {\n return\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { asHash, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { EmptyObject, ObjectWrapper } from '@xylabs/object'\nimport { subtle } from '@xylabs/platform'\nimport { ModuleThread, Pool, spawn, Worker } from '@xylabs/threads'\n// eslint-disable-next-line import/no-unresolved\nimport { WorkerModule } from '@xylabs/threads/dist/types/worker'\nimport { WasmSupport } from '@xyo-network/wasm'\nimport { sha256 } from 'hash-wasm'\nimport shajs from 'sha.js'\n\nimport { removeEmptyFields } from './removeEmptyFields'\nimport { omitBy } from '@xylabs/lodash'\nimport { sortFields } from './sortFields'\nimport { jsHashFunc, subtleHashFunc, wasmHashFunc } from './worker'\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 globalThis.xyo === globalThis.xyo ?? { hashing: PayloadHasher }\n })()\n\n static jsHashWorkerUrl?: URL\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 jsHashPool() {\n if (!this.allowHashPooling || this._jsHashPool === null) {\n return null\n }\n try {\n return (this._jsHashPool = this._jsHashPool ?? (this.jsHashWorkerUrl ? this.createWorkerPool(this.jsHashWorkerUrl, jsHashFunc) : null))\n } catch {\n console.warn('Creating js hash worker failed')\n this._jsHashPool = null\n return null\n }\n }\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 return await this.jsHash(stringToHash)\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 * Synchronously hashes a payload\n * @param obj A payload\n * @returns The payload hash\n */\n static hashSync<T extends EmptyObject>(obj: T): Hash {\n return asHash(shajs('sha256').update(this.stringifyHashFields(obj)).digest().toString('hex'), true)\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 static async jsHash(data: string) {\n if (PayloadHasher.warnIfUsingJsHash) {\n console.warn('Using jsHash [No subtle or wasm?]')\n }\n const pool = this.jsHashPool\n return pool === null ?\n asHash(shajs('sha256').update(data).digest().toString('hex'), true)\n : await pool.queue(async (thread) => await thread.hash(data))\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 hashSync(): Hash {\n return PayloadHasher.hashSync(this.obj)\n }\n\n /**\n * Returns a clone of the payload that is JSON safe\n * @param meta Keeps underscore (meta) fields if set to true\n * @returns Returns a clone of the payload that is JSON safe\n */\n json(meta = false): T {\n return PayloadHasher.json(this.obj, meta)\n }\n}\n","import { AnyObject, EmptyObject } from '@xylabs/object'\nimport { typeOf } from '@xylabs/typeof'\n\nexport const removeEmptyFields = <T extends EmptyObject>(obj: T): T => {\n if (obj === null || Array.isArray(obj)) return obj\n\n const newObject: AnyObject = {}\n for (const [key, value] of Object.entries(obj)) {\n if (typeOf(value) === 'object') {\n newObject[key] = removeEmptyFields(value as Record<string, unknown>)\n } else if (value !== undefined) {\n newObject[key] = value\n }\n }\n return newObject as T\n}\n","import { AnyObject, EmptyObject, isObject } from '@xylabs/object'\n\n//if an object, sub-sort\nconst subSort = (value: unknown) => {\n return isObject(value) ? sortFields(value) : value\n}\n\nexport const sortFields = <T extends EmptyObject>(obj: T) => {\n const result: AnyObject = {}\n const keys = Object.keys(obj) as (keyof T)[]\n for (const key of keys.sort()) {\n result[key] = subSort(obj[key])\n }\n return result as T\n}\n","/* eslint-disable @typescript-eslint/no-var-requires */\nexport const jsHashFunc = () => {\n const shajs = require('sha.js')\n const { asHash } = require('@xylabs/hex')\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n hash(data: string) {\n return asHash(shajs('sha256').update(data).digest().toString('hex'), true)\n },\n })\n}\n","/* eslint-disable @typescript-eslint/no-var-requires */\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-var-requires */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n })\n}\n","import { createNodeWorker } from './createNodeWorker'\nimport { PayloadHasher } from './PayloadHasher'\n\nPayloadHasher.createNodeWorker = createNodeWorker\n\nexport class NodePayloadHasher extends PayloadHasher {\n static override createNodeWorker = createNodeWorker\n}\n","import { assertEx } from '@xylabs/assert'\nimport { mapValues, merge, omitBy, pickBy } from '@xylabs/lodash'\nimport { EmptyObject, isObject } from '@xylabs/object'\ntype ValueKeyIteratee<T> = (value: T, key: string) => unknown\n\nexport const deepBy = <T extends EmptyObject>(obj: T, predicate: ValueKeyIteratee<T>, func: typeof omitBy | typeof pickBy): T => {\n if (Array.isArray(obj)) {\n return obj\n }\n\n //pick the child objects\n const onlyObjects = pickBy<T>(obj, isObject)\n\n //pick the child non-objects\n const nonObjects = pickBy<T>(obj, (value) => !isObject(value))\n\n const pickedObjects = omitBy(onlyObjects, predicate)\n const pickedNonObjects = omitBy(nonObjects, predicate)\n\n const processedObjects = mapValues(pickedObjects, (obj: T) => deepBy(obj, predicate, func))\n\n return merge({}, pickedNonObjects, processedObjects) as T\n}\n\nexport const deepOmitPrefixedFields = <T extends EmptyObject>(obj: T, prefix: string): T => {\n return deepBy(\n obj,\n (_, key) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith(prefix)\n },\n omitBy,\n )\n}\n\nexport const deepPickUnderscoreFields = <T extends EmptyObject>(obj: T): T => {\n return deepBy(\n obj,\n (_, key) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith('_')\n },\n pickBy,\n )\n}\n"],"mappings":"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","names":["hasEmptyFields","obj","Array","isArray","undefined","Object","keys","length","value","values","typeOf","createNodeWorker","func","code","toString","slice","w","Worker","fromSource","import_object","import_threads","import_typeof","removeEmptyFields","obj","Array","isArray","newObject","key","value","Object","entries","typeOf","undefined","subSort","value","isObject","sortFields","obj","result","keys","Object","key","sort","jsHashFunc","shajs","require","asHash","expose","hash","data","update","digest","toString","subtleHashFunc","subtle","require","expose","hash","data","digest","wasmHashFunc","sha256","require","asHash","expose","hash","data","wasmSupportStatic","WasmSupport","omitByPredicate","prefix","_","key","assertEx","startsWith","PayloadHasher","ObjectWrapper","allowHashPooling","allowSubtle","createBrowserWorker","createNodeWorker","initialized","globalThis","xyo","hashing","console","warn","jsHashWorkerUrl","subtleHashWorkerUrl","warnIfUsingJsHash","wasmHashWorkerUrl","wasmInitialized","initialize","wasmSupport","_jsHashPool","_subtleHashPool","_wasmHashPool","jsHashPool","createWorkerPool","jsHashFunc","subtleHashPool","subtleHashFunc","wasmHashPool","wasmHashFunc","createWorker","url","func","debug","filterExcludeByHash","objs","hash","hashes","Array","isArray","hashPairs","filter","objHash","includes","map","pair","filterIncludeByHash","findByHash","find","obj","stringToHash","stringifyHashFields","enc","TextEncoder","data","encode","hashArray","subtleHash","hexFromArrayBuffer","bitLength","canUseWasm","wasmHash","allowWasm","jsHash","hashFields","sortFields","removeEmptyFields","omitBy","Promise","all","hashSync","asHash","shajs","update","digest","toString","undefined","pool","queue","thread","json","payload","meta","jsonPayload","JSON","stringify","subtle","sha256","size","createFunc","spawn","Pool","PayloadHasher","createNodeWorker","NodePayloadHasher","import_assert","import_lodash","import_object","deepBy","obj","predicate","func","Array","isArray","onlyObjects","pickBy","isObject","nonObjects","value","pickedObjects","omitBy","pickedNonObjects","processedObjects","mapValues","merge","deepOmitPrefixedFields","prefix","_","key","assertEx","startsWith","deepPickUnderscoreFields"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/hasEmptyFields.ts","../../src/createNodeWorker.ts","../../src/PayloadHasher.ts","../../src/removeEmptyFields.ts","../../src/sortFields.ts","../../src/worker/jsHashNode.ts","../../src/worker/subtleHashNode.ts","../../src/worker/wasmHashNode.ts","../../src/NodePayloadHasher.ts","../../src/removeFields.ts"],"sourcesContent":["export * from './hasEmptyFields'\nexport { NodePayloadHasher as PayloadHasher } from './NodePayloadHasher'\nexport * from './removeEmptyFields'\nexport * from './removeFields'\nexport * from './sortFields'\n","import { EmptyObject } from '@xylabs/object'\nimport { typeOf } from '@xylabs/typeof'\n\nexport const hasEmptyFields = <T extends EmptyObject>(obj: T): boolean => {\n if (obj === null || Array.isArray(obj)) return false\n\n if (obj === undefined || Object.keys(obj).length === 0) return true\n\n for (const [value] of Object.values(obj)) {\n if (typeOf(value) === 'object') {\n if (hasEmptyFields(value as Record<string, unknown>)) return true\n } else if (value === undefined) {\n return true\n }\n }\n return false\n}\n","import { Worker } from '@xylabs/threads'\n\nexport const createNodeWorker = (func?: () => unknown) => {\n try {\n const code = func?.toString().slice(6) ?? ''\n const w = new Worker(\n code,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { fromSource: true } as any,\n )\n return w\n } catch {\n return\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { asHash, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { omitBy } from '@xylabs/lodash'\nimport { EmptyObject, ObjectWrapper } from '@xylabs/object'\nimport { subtle } from '@xylabs/platform'\nimport { ModuleThread, Pool, spawn, Worker } from '@xylabs/threads'\n// eslint-disable-next-line import/no-unresolved, import/no-internal-modules\nimport { WorkerModule } from '@xylabs/threads/dist/types/worker'\nimport { WasmSupport } from '@xyo-network/wasm'\nimport { sha256 } from 'hash-wasm'\nimport shajs from 'sha.js'\n\nimport { removeEmptyFields } from './removeEmptyFields'\nimport { sortFields } from './sortFields'\nimport { jsHashFunc, subtleHashFunc, wasmHashFunc } from './worker'\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 globalThis.xyo === globalThis.xyo ?? { hashing: PayloadHasher }\n })()\n\n static jsHashWorkerUrl?: URL\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 jsHashPool() {\n if (!this.allowHashPooling || this._jsHashPool === null) {\n return null\n }\n try {\n return (this._jsHashPool = this._jsHashPool ?? (this.jsHashWorkerUrl ? this.createWorkerPool(this.jsHashWorkerUrl, jsHashFunc) : null))\n } catch {\n console.warn('Creating js hash worker failed')\n this._jsHashPool = null\n return null\n }\n }\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 return await this.jsHash(stringToHash)\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 * Synchronously hashes a payload\n * @param obj A payload\n * @returns The payload hash\n */\n static hashSync<T extends EmptyObject>(obj: T): Hash {\n return asHash(shajs('sha256').update(this.stringifyHashFields(obj)).digest().toString('hex'), true)\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 static async jsHash(data: string) {\n if (PayloadHasher.warnIfUsingJsHash) {\n console.warn('Using jsHash [No subtle or wasm?]')\n }\n const pool = this.jsHashPool\n return pool === null ?\n asHash(shajs('sha256').update(data).digest().toString('hex'), true)\n : await pool.queue(async (thread) => await thread.hash(data))\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 hashSync(): Hash {\n return PayloadHasher.hashSync(this.obj)\n }\n\n /**\n * Returns a clone of the payload that is JSON safe\n * @param meta Keeps underscore (meta) fields if set to true\n * @returns Returns a clone of the payload that is JSON safe\n */\n json(meta = false): T {\n return PayloadHasher.json(this.obj, meta)\n }\n}\n","import { AnyObject, EmptyObject } from '@xylabs/object'\nimport { typeOf } from '@xylabs/typeof'\n\nexport const removeEmptyFields = <T extends EmptyObject>(obj: T): T => {\n if (obj === null || Array.isArray(obj)) return obj\n\n const newObject: AnyObject = {}\n for (const [key, value] of Object.entries(obj)) {\n if (typeOf(value) === 'object') {\n newObject[key] = removeEmptyFields(value as Record<string, unknown>)\n } else if (value !== undefined) {\n newObject[key] = value\n }\n }\n return newObject as T\n}\n","import { AnyObject, EmptyObject, isObject } from '@xylabs/object'\n\n//if an object, sub-sort\nconst subSort = (value: unknown) => {\n return isObject(value) ? sortFields(value) : value\n}\n\nexport const sortFields = <T extends EmptyObject>(obj: T) => {\n const result: AnyObject = {}\n const keys = Object.keys(obj) as (keyof T)[]\n for (const key of keys.sort()) {\n result[key] = subSort(obj[key])\n }\n return result as T\n}\n","/* eslint-disable @typescript-eslint/no-var-requires */\nexport const jsHashFunc = () => {\n const shajs = require('sha.js')\n const { asHash } = require('@xylabs/hex')\n // eslint-disable-next-line import/no-internal-modules\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n hash(data: string) {\n return asHash(shajs('sha256').update(data).digest().toString('hex'), true)\n },\n })\n}\n","/* eslint-disable @typescript-eslint/no-var-requires */\nexport const subtleHashFunc = () => {\n const { subtle } = require('@xylabs/platform')\n // eslint-disable-next-line import/no-internal-modules\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-var-requires */\nexport const wasmHashFunc = () => {\n const { sha256 } = require('hash-wasm')\n const { asHash } = require('@xylabs/hex')\n // eslint-disable-next-line import/no-internal-modules\n const { expose } = require('@xylabs/threads/worker')\n\n expose({\n async hash(data: string) {\n return asHash(await sha256(data), true)\n },\n })\n}\n","import { createNodeWorker } from './createNodeWorker'\nimport { PayloadHasher } from './PayloadHasher'\n\nPayloadHasher.createNodeWorker = createNodeWorker\n\nexport class NodePayloadHasher extends PayloadHasher {\n static override createNodeWorker = createNodeWorker\n}\n","import { assertEx } from '@xylabs/assert'\nimport { mapValues, merge, omitBy, pickBy } from '@xylabs/lodash'\nimport { EmptyObject, isObject } from '@xylabs/object'\ntype ValueKeyIteratee<T> = (value: T, key: string) => unknown\n\nexport const deepBy = <T extends EmptyObject>(obj: T, predicate: ValueKeyIteratee<T>, func: typeof omitBy | typeof pickBy): T => {\n if (Array.isArray(obj)) {\n return obj\n }\n\n //pick the child objects\n const onlyObjects = pickBy<T>(obj, isObject)\n\n //pick the child non-objects\n const nonObjects = pickBy<T>(obj, (value) => !isObject(value))\n\n const pickedObjects = omitBy(onlyObjects, predicate)\n const pickedNonObjects = omitBy(nonObjects, predicate)\n\n const processedObjects = mapValues(pickedObjects, (obj: T) => deepBy(obj, predicate, func))\n\n return merge({}, pickedNonObjects, processedObjects) as T\n}\n\nexport const deepOmitPrefixedFields = <T extends EmptyObject>(obj: T, prefix: string): T => {\n return deepBy(\n obj,\n (_, key) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith(prefix)\n },\n omitBy,\n )\n}\n\nexport const deepPickUnderscoreFields = <T extends EmptyObject>(obj: T): T => {\n return deepBy(\n obj,\n (_, key) => {\n assertEx(typeof key === 'string', () => `Invalid key type [${key}, ${typeof key}]`)\n return key.startsWith('_')\n },\n pickBy,\n )\n}\n"],"mappings":"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","names":["hasEmptyFields","obj","Array","isArray","undefined","Object","keys","length","value","values","typeOf","createNodeWorker","func","code","toString","slice","w","Worker","fromSource","import_object","import_threads","import_typeof","removeEmptyFields","obj","Array","isArray","newObject","key","value","Object","entries","typeOf","undefined","subSort","value","isObject","sortFields","obj","result","keys","Object","key","sort","jsHashFunc","shajs","require","asHash","expose","hash","data","update","digest","toString","subtleHashFunc","subtle","require","expose","hash","data","digest","wasmHashFunc","sha256","require","asHash","expose","hash","data","wasmSupportStatic","WasmSupport","omitByPredicate","prefix","_","key","assertEx","startsWith","PayloadHasher","ObjectWrapper","allowHashPooling","allowSubtle","createBrowserWorker","createNodeWorker","initialized","globalThis","xyo","hashing","console","warn","jsHashWorkerUrl","subtleHashWorkerUrl","warnIfUsingJsHash","wasmHashWorkerUrl","wasmInitialized","initialize","wasmSupport","_jsHashPool","_subtleHashPool","_wasmHashPool","jsHashPool","createWorkerPool","jsHashFunc","subtleHashPool","subtleHashFunc","wasmHashPool","wasmHashFunc","createWorker","url","func","debug","filterExcludeByHash","objs","hash","hashes","Array","isArray","hashPairs","filter","objHash","includes","map","pair","filterIncludeByHash","findByHash","find","obj","stringToHash","stringifyHashFields","enc","TextEncoder","data","encode","hashArray","subtleHash","hexFromArrayBuffer","bitLength","canUseWasm","wasmHash","allowWasm","jsHash","hashFields","sortFields","removeEmptyFields","omitBy","Promise","all","hashSync","asHash","shajs","update","digest","toString","undefined","pool","queue","thread","json","payload","meta","jsonPayload","JSON","stringify","subtle","sha256","size","createFunc","spawn","Pool","PayloadHasher","createNodeWorker","NodePayloadHasher","import_assert","import_lodash","import_object","deepBy","obj","predicate","func","Array","isArray","onlyObjects","pickBy","isObject","nonObjects","value","pickedObjects","omitBy","pickedNonObjects","processedObjects","mapValues","merge","deepOmitPrefixedFields","prefix","_","key","assertEx","startsWith","deepPickUnderscoreFields"]}
@@ -43,6 +43,7 @@ var createNodeWorker = /* @__PURE__ */ __name((func) => {
43
43
  // src/PayloadHasher.ts
44
44
  import { assertEx } from "@xylabs/assert";
45
45
  import { asHash, hexFromArrayBuffer } from "@xylabs/hex";
46
+ import { omitBy } from "@xylabs/lodash";
46
47
  import { ObjectWrapper } from "@xylabs/object";
47
48
  import { subtle } from "@xylabs/platform";
48
49
  import { Pool, spawn } from "@xylabs/threads";
@@ -65,9 +66,6 @@ var removeEmptyFields = /* @__PURE__ */ __name((obj) => {
65
66
  return newObject;
66
67
  }, "removeEmptyFields");
67
68
 
68
- // src/PayloadHasher.ts
69
- import { omitBy } from "@xylabs/lodash";
70
-
71
69
  // src/sortFields.ts
72
70
  import { isObject } from "@xylabs/object";
73
71
  var subSort = /* @__PURE__ */ __name((value) => {