@xyo-network/hash 7.0.11 → 7.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/LICENSE +675 -0
  2. package/README.md +47 -1
  3. package/dist/browser/BrowserObjectHasher.d.ts +9 -0
  4. package/dist/browser/BrowserObjectHasher.d.ts.map +1 -0
  5. package/dist/browser/NodeObjectHasher.d.ts +6 -0
  6. package/dist/browser/NodeObjectHasher.d.ts.map +1 -0
  7. package/dist/browser/ObjectHasher.d.ts +69 -0
  8. package/dist/browser/ObjectHasher.d.ts.map +1 -0
  9. package/dist/browser/createBrowserWorker.d.ts +3 -0
  10. package/dist/browser/createBrowserWorker.d.ts.map +1 -0
  11. package/dist/browser/createNodeWorker.d.ts +3 -0
  12. package/dist/browser/createNodeWorker.d.ts.map +1 -0
  13. package/dist/browser/hasEmptyFields.d.ts +3 -0
  14. package/dist/browser/hasEmptyFields.d.ts.map +1 -0
  15. package/dist/browser/index-browser.d.ts +4 -0
  16. package/dist/browser/index-browser.d.ts.map +1 -0
  17. package/dist/browser/index-browser.mjs +289 -0
  18. package/dist/browser/index-browser.mjs.map +7 -0
  19. package/dist/browser/index.d.ts +5 -0
  20. package/dist/browser/index.d.ts.map +1 -0
  21. package/dist/browser/removeEmptyFields.d.ts +3 -0
  22. package/dist/browser/removeEmptyFields.d.ts.map +1 -0
  23. package/dist/browser/sortFields.d.ts +3 -0
  24. package/dist/browser/sortFields.d.ts.map +1 -0
  25. package/dist/browser/worker/index.d.ts +3 -0
  26. package/dist/browser/worker/index.d.ts.map +1 -0
  27. package/dist/browser/worker/subtleHash-bundle.mjs +1 -1
  28. package/dist/browser/worker/subtleHash.d.ts +2 -0
  29. package/dist/browser/worker/subtleHash.d.ts.map +1 -0
  30. package/dist/browser/worker/subtleHashNode.d.ts +2 -0
  31. package/dist/browser/worker/subtleHashNode.d.ts.map +1 -0
  32. package/dist/browser/worker/wasmHash-bundle.mjs +3402 -184
  33. package/dist/browser/worker/wasmHash.d.ts +2 -0
  34. package/dist/browser/worker/wasmHash.d.ts.map +1 -0
  35. package/dist/browser/worker/wasmHashNode.d.ts +2 -0
  36. package/dist/browser/worker/wasmHashNode.d.ts.map +1 -0
  37. package/dist/node/BrowserObjectHasher.d.ts +9 -0
  38. package/dist/node/BrowserObjectHasher.d.ts.map +1 -0
  39. package/dist/node/NodeObjectHasher.d.ts +6 -0
  40. package/dist/node/NodeObjectHasher.d.ts.map +1 -0
  41. package/dist/node/ObjectHasher.d.ts +69 -0
  42. package/dist/node/ObjectHasher.d.ts.map +1 -0
  43. package/dist/node/createBrowserWorker.d.ts +3 -0
  44. package/dist/node/createBrowserWorker.d.ts.map +1 -0
  45. package/dist/node/createNodeWorker.d.ts +3 -0
  46. package/dist/node/createNodeWorker.d.ts.map +1 -0
  47. package/dist/node/hasEmptyFields.d.ts +3 -0
  48. package/dist/node/hasEmptyFields.d.ts.map +1 -0
  49. package/dist/node/index-browser.d.ts +4 -0
  50. package/dist/node/index-browser.d.ts.map +1 -0
  51. package/dist/node/index.d.ts +5 -0
  52. package/dist/node/index.d.ts.map +1 -0
  53. package/dist/node/index.mjs +279 -0
  54. package/dist/node/index.mjs.map +7 -0
  55. package/dist/node/removeEmptyFields.d.ts +3 -0
  56. package/dist/node/removeEmptyFields.d.ts.map +1 -0
  57. package/dist/node/sortFields.d.ts +3 -0
  58. package/dist/node/sortFields.d.ts.map +1 -0
  59. package/dist/node/worker/index.d.ts +3 -0
  60. package/dist/node/worker/index.d.ts.map +1 -0
  61. package/dist/node/worker/subtleHash-bundle.mjs +361 -0
  62. package/dist/node/worker/subtleHash.d.ts +2 -0
  63. package/dist/node/worker/subtleHash.d.ts.map +1 -0
  64. package/dist/node/worker/subtleHashNode.d.ts +2 -0
  65. package/dist/node/worker/subtleHashNode.d.ts.map +1 -0
  66. package/dist/node/worker/wasmHash-bundle.mjs +4080 -0
  67. package/dist/node/worker/wasmHash.d.ts +2 -0
  68. package/dist/node/worker/wasmHash.d.ts.map +1 -0
  69. package/dist/node/worker/wasmHashNode.d.ts +2 -0
  70. package/dist/node/worker/wasmHashNode.d.ts.map +1 -0
  71. package/package.json +51 -32
  72. package/dist/neutral/index.d.ts +0 -6
  73. package/dist/neutral/index.d.ts.map +0 -1
  74. package/dist/neutral/index.mjs +0 -3
  75. package/dist/neutral/index.mjs.map +0 -7
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ (() => {
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __esm = (fn, res, err) => function __init() {
8
+ if (err) throw err[0];
9
+ try {
10
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
11
+ } catch (e) {
12
+ throw err = [e], e;
13
+ }
14
+ };
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // ../../../../../../node_modules/.pnpm/@ariestools+sdk@7.0.8_@opentelemetry+api@1.9.1_@opentelemetry+sdk-trace-base@2.9.0_@ope_649172f6a3c2e5736d1bf5bb5ca2adbf/node_modules/@ariestools/sdk/dist/browser/platform.mjs
30
+ var isBrowser, isWebworker, isNode;
31
+ var init_platform = __esm({
32
+ "../../../../../../node_modules/.pnpm/@ariestools+sdk@7.0.8_@opentelemetry+api@1.9.1_@opentelemetry+sdk-trace-base@2.9.0_@ope_649172f6a3c2e5736d1bf5bb5ca2adbf/node_modules/@ariestools/sdk/dist/browser/platform.mjs"() {
33
+ isBrowser = () => {
34
+ return !isWebworker() && globalThis.constructor?.name === "Window";
35
+ };
36
+ isWebworker = () => {
37
+ return typeof globalThis === "object" && globalThis.constructor?.name === "DedicatedWorkerGlobalScope";
38
+ };
39
+ isNode = () => {
40
+ return false;
41
+ };
42
+ }
43
+ });
44
+
45
+ // ../../../../../../node_modules/.pnpm/@xylabs+platform@7.0.8_@opentelemetry+api@1.9.1_@opentelemetry+sdk-trace-base@2.9.0_@op_2a5110b456b33147d01e80609f7c81d5/node_modules/@xylabs/platform/dist/neutral/index.mjs
46
+ var neutral_exports = {};
47
+ __export(neutral_exports, {
48
+ isBrowser: () => isBrowser,
49
+ isNode: () => isNode,
50
+ isWebworker: () => isWebworker
51
+ });
52
+ var init_neutral = __esm({
53
+ "../../../../../../node_modules/.pnpm/@xylabs+platform@7.0.8_@opentelemetry+api@1.9.1_@opentelemetry+sdk-trace-base@2.9.0_@op_2a5110b456b33147d01e80609f7c81d5/node_modules/@xylabs/platform/dist/neutral/index.mjs"() {
54
+ init_platform();
55
+ }
56
+ });
57
+
58
+ // ../../../../../../node_modules/.pnpm/@xylabs+threads@7.0.8_@opentelemetry+api@1.9.1_@opentelemetry+sdk-trace-base@2.9.0_@ope_a1685075a98125ef0b6f31620ba50469/node_modules/@xylabs/threads/dist/browser/worker/worker.browser.mjs
59
+ var worker_browser_exports = {};
60
+ __export(worker_browser_exports, {
61
+ Transfer: () => Transfer,
62
+ addEventListener: () => addEventListener,
63
+ expose: () => expose,
64
+ isWorkerRuntime: () => isWorkerRuntime,
65
+ postMessage: () => postMessage,
66
+ postMessageToMaster: () => postMessageToMaster,
67
+ registerSerializer: () => registerSerializer,
68
+ removeEventListener: () => removeEventListener,
69
+ subscribeToMasterMessages: () => subscribeToMasterMessages
70
+ });
71
+ function extendSerializer(extend, implementation) {
72
+ const fallbackDeserializer = extend.deserialize.bind(extend);
73
+ const fallbackSerializer = extend.serialize.bind(extend);
74
+ return {
75
+ deserialize: (message) => implementation.deserialize(message, fallbackDeserializer),
76
+ serialize: (input) => implementation.serialize(input, fallbackSerializer)
77
+ };
78
+ }
79
+ function registerSerializer(serializer) {
80
+ globalThis.registeredSerializer = extendSerializer(globalThis.registeredSerializer, serializer);
81
+ }
82
+ function deserialize(message) {
83
+ return globalThis.registeredSerializer.deserialize(message);
84
+ }
85
+ function serialize(input) {
86
+ return globalThis.registeredSerializer.serialize(input);
87
+ }
88
+ function isTransferable(thing) {
89
+ if (thing == null || typeof thing !== "object") return false;
90
+ return true;
91
+ }
92
+ function isTransferDescriptor(thing) {
93
+ return thing != null && typeof thing === "object" && Reflect.get(thing, $transferable) === true;
94
+ }
95
+ function Transfer(payload, transferables) {
96
+ console.log("Transfer");
97
+ if (!transferables) {
98
+ if (!isTransferable(payload)) throw new Error("Not transferable");
99
+ transferables = [payload];
100
+ }
101
+ const descriptor = {
102
+ send: payload,
103
+ transferables
104
+ };
105
+ Object.defineProperty(descriptor, $transferable, { value: true });
106
+ return descriptor;
107
+ }
108
+ function createExpose(implementation, self2) {
109
+ let exposeCalled = false;
110
+ const activeSubscriptions = /* @__PURE__ */ new Map();
111
+ const isMasterJobCancelMessage = (thing) => thing?.type === "cancel";
112
+ const isMasterJobRunMessage = (thing) => thing?.type === "run";
113
+ const isObservable = (thing) => isSomeObservable(thing) || isZenObservable(thing);
114
+ function isZenObservable(thing) {
115
+ return thing != null && typeof thing === "object" && typeof thing.subscribe === "function";
116
+ }
117
+ function deconstructTransfer(thing) {
118
+ return isTransferDescriptor(thing) ? { payload: thing.send, transferables: thing.transferables } : { payload: thing, transferables: void 0 };
119
+ }
120
+ function postFunctionInitMessage() {
121
+ const initMessage = {
122
+ exposed: { type: "function" },
123
+ type: "init"
124
+ /* init */
125
+ };
126
+ implementation.postMessageToMaster(initMessage);
127
+ }
128
+ function postModuleInitMessage(methodNames) {
129
+ const initMessage = {
130
+ exposed: {
131
+ methods: methodNames,
132
+ type: "module"
133
+ },
134
+ type: "init"
135
+ /* init */
136
+ };
137
+ implementation.postMessageToMaster(initMessage);
138
+ }
139
+ function postJobErrorMessage(uid, rawError) {
140
+ const { payload: error, transferables } = deconstructTransfer(rawError);
141
+ const errorMessage = {
142
+ error: serialize(error),
143
+ type: "error",
144
+ uid
145
+ };
146
+ implementation.postMessageToMaster(errorMessage, transferables);
147
+ }
148
+ function postJobResultMessage(uid, completed, resultValue) {
149
+ const { payload, transferables } = deconstructTransfer(resultValue);
150
+ const resultMessage = {
151
+ complete: completed ? true : void 0,
152
+ payload,
153
+ type: "result",
154
+ uid
155
+ };
156
+ implementation.postMessageToMaster(resultMessage, transferables);
157
+ }
158
+ function postJobStartMessage(uid, resultType) {
159
+ const startMessage = {
160
+ resultType,
161
+ type: "running",
162
+ uid
163
+ };
164
+ implementation.postMessageToMaster(startMessage);
165
+ }
166
+ function postUncaughtErrorMessage(error) {
167
+ try {
168
+ const errorMessage = {
169
+ error: serialize(error),
170
+ type: "uncaughtError"
171
+ /* uncaughtError */
172
+ };
173
+ implementation.postMessageToMaster(errorMessage);
174
+ } catch (subError) {
175
+ console.error(
176
+ "Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.\nLatest error:",
177
+ subError,
178
+ "\nOriginal error:",
179
+ error
180
+ );
181
+ }
182
+ }
183
+ async function runFunction(jobUID, fn, args) {
184
+ let syncResult;
185
+ try {
186
+ syncResult = fn(...args);
187
+ } catch (ex) {
188
+ const error = ex;
189
+ return postJobErrorMessage(jobUID, error);
190
+ }
191
+ const resultType = isObservable(syncResult) ? "observable" : "promise";
192
+ postJobStartMessage(jobUID, resultType);
193
+ if (isObservable(syncResult)) {
194
+ const subscription = syncResult.subscribe(
195
+ (value) => postJobResultMessage(jobUID, false, serialize(value)),
196
+ (error) => {
197
+ postJobErrorMessage(jobUID, serialize(error));
198
+ activeSubscriptions.delete(jobUID);
199
+ },
200
+ () => {
201
+ postJobResultMessage(jobUID, true);
202
+ activeSubscriptions.delete(jobUID);
203
+ }
204
+ );
205
+ activeSubscriptions.set(jobUID, subscription);
206
+ } else {
207
+ try {
208
+ const result = await syncResult;
209
+ postJobResultMessage(jobUID, true, serialize(result));
210
+ } catch (error) {
211
+ postJobErrorMessage(jobUID, serialize(error));
212
+ }
213
+ }
214
+ }
215
+ const expose2 = (exposed) => {
216
+ if (!implementation.isWorkerRuntime()) {
217
+ throw new Error("expose() called in the master thread.");
218
+ }
219
+ if (exposeCalled) {
220
+ throw new Error("expose() called more than once. This is not possible. Pass an object to expose() if you want to expose multiple functions.");
221
+ }
222
+ exposeCalled = true;
223
+ if (typeof exposed === "function") {
224
+ implementation.subscribeToMasterMessages((messageData) => {
225
+ if (isMasterJobRunMessage(messageData) && messageData.method === void 0) {
226
+ runFunction(messageData.uid, exposed, messageData.args.map(deserialize));
227
+ }
228
+ });
229
+ postFunctionInitMessage();
230
+ } else if (typeof exposed === "object" && exposed !== null) {
231
+ implementation.subscribeToMasterMessages((messageData) => {
232
+ if (isMasterJobRunMessage(messageData) && messageData.method !== void 0) {
233
+ runFunction(messageData.uid, exposed[messageData.method], messageData.args.map(deserialize));
234
+ }
235
+ });
236
+ const methodNames = Object.keys(exposed).filter((key) => typeof exposed[key] === "function");
237
+ postModuleInitMessage(methodNames);
238
+ } else {
239
+ throw new Error(`Invalid argument passed to expose(). Expected a function or an object, got: ${exposed}`);
240
+ }
241
+ implementation.subscribeToMasterMessages((messageData) => {
242
+ if (!isMasterJobCancelMessage(messageData)) {
243
+ return;
244
+ }
245
+ const jobUID = messageData.uid;
246
+ const subscription = activeSubscriptions.get(jobUID);
247
+ if (subscription) {
248
+ subscription.unsubscribe();
249
+ activeSubscriptions.delete(jobUID);
250
+ }
251
+ });
252
+ };
253
+ const subscribeToBrowserUncaughtErrors = () => {
254
+ if (typeof globalThis === "undefined" || typeof self2.addEventListener !== "function" || !implementation.isWorkerRuntime()) {
255
+ return;
256
+ }
257
+ self2.addEventListener("error", (event) => {
258
+ setTimeout(() => postUncaughtErrorMessage(isErrorEvent(event) ? event.error : event), 250);
259
+ });
260
+ self2.addEventListener("unhandledrejection", (event) => {
261
+ const error = event.reason;
262
+ if (error != null && typeof error === "object" && typeof error.message === "string") {
263
+ setTimeout(() => postUncaughtErrorMessage(error), 250);
264
+ }
265
+ });
266
+ };
267
+ const subscribeToNodeUncaughtErrors = () => {
268
+ const nodeProcess = globalThis.process;
269
+ if (nodeProcess === void 0 || typeof nodeProcess.on !== "function" || !implementation.isWorkerRuntime()) {
270
+ return;
271
+ }
272
+ nodeProcess.on("uncaughtException", (error) => {
273
+ setTimeout(() => postUncaughtErrorMessage(error), 250);
274
+ });
275
+ nodeProcess.on("unhandledRejection", (error) => {
276
+ if (error != null && typeof error === "object" && typeof error.message === "string") {
277
+ setTimeout(() => postUncaughtErrorMessage(error), 250);
278
+ }
279
+ });
280
+ };
281
+ subscribeToBrowserUncaughtErrors();
282
+ subscribeToNodeUncaughtErrors();
283
+ return expose2;
284
+ }
285
+ var DefaultErrorSerializer, isSerializedError, DefaultSerializer, isSomeObservable, $transferable, isErrorEvent, isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages, addEventListener, postMessage, removeEventListener, expose;
286
+ var init_worker_browser = __esm({
287
+ "../../../../../../node_modules/.pnpm/@xylabs+threads@7.0.8_@opentelemetry+api@1.9.1_@opentelemetry+sdk-trace-base@2.9.0_@ope_a1685075a98125ef0b6f31620ba50469/node_modules/@xylabs/threads/dist/browser/worker/worker.browser.mjs"() {
288
+ DefaultErrorSerializer = {
289
+ deserialize: (message) => {
290
+ const error = Object.create(Error.prototype);
291
+ error.message = message.message;
292
+ error.name = message.name;
293
+ error.stack = message.stack;
294
+ return error;
295
+ },
296
+ serialize: (error) => ({
297
+ __error_marker: "$$error",
298
+ message: error.message,
299
+ name: error.name,
300
+ stack: error.stack
301
+ })
302
+ };
303
+ isSerializedError = (thing) => thing != null && typeof thing === "object" && "__error_marker" in thing && thing.__error_marker === "$$error";
304
+ DefaultSerializer = {
305
+ deserialize: (message) => isSerializedError(message) ? DefaultErrorSerializer.deserialize(message) : message,
306
+ serialize: (input) => input instanceof Error ? DefaultErrorSerializer.serialize(input) : input
307
+ };
308
+ globalThis.registeredSerializer = globalThis.registeredSerializer ?? DefaultSerializer;
309
+ isSomeObservable = (value) => {
310
+ if (value == null) {
311
+ return false;
312
+ }
313
+ if (typeof Symbol.observable === "symbol" && typeof value[Symbol.observable] === "function") {
314
+ return value === value[Symbol.observable]();
315
+ }
316
+ if (typeof value["@@observable"] === "function") {
317
+ return value === value["@@observable"]();
318
+ }
319
+ return false;
320
+ };
321
+ $transferable = /* @__PURE__ */ Symbol("thread.transferable");
322
+ isErrorEvent = (value) => value !== void 0 && value.error !== void 0;
323
+ isWorkerRuntime = function isWorkerRuntime2() {
324
+ const isWindowContext = self !== void 0 && typeof Window !== "undefined" && self instanceof Window;
325
+ return self?.postMessage !== void 0 && !isWindowContext;
326
+ };
327
+ postMessageToMaster = function postMessageToMaster2(data, transferList) {
328
+ self.postMessage(data, transferList);
329
+ };
330
+ subscribeToMasterMessages = function subscribeToMasterMessages2(onMessage) {
331
+ const messageHandler = (messageEvent) => {
332
+ onMessage(messageEvent.data);
333
+ };
334
+ const unsubscribe = () => {
335
+ self.removeEventListener("message", messageHandler);
336
+ };
337
+ self.addEventListener("message", messageHandler);
338
+ return unsubscribe;
339
+ };
340
+ addEventListener = self.addEventListener.bind(void 0);
341
+ postMessage = self.postMessage.bind(void 0);
342
+ removeEventListener = self.removeEventListener.bind(void 0);
343
+ expose = createExpose({
344
+ isWorkerRuntime,
345
+ postMessageToMaster,
346
+ subscribeToMasterMessages
347
+ }, {
348
+ addEventListener,
349
+ postMessage,
350
+ removeEventListener
351
+ });
352
+ }
353
+ });
354
+
355
+ // src/worker/subtleHashNode.ts
356
+ var subtleHashFunc = () => {
357
+ const { subtle } = (init_neutral(), __toCommonJS(neutral_exports));
358
+ const { expose: expose2 } = (init_worker_browser(), __toCommonJS(worker_browser_exports));
359
+ expose2({ hash: async (data) => await subtle.digest("SHA-256", data) });
360
+ };
361
+ })();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=subtleHash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subtleHash.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHash.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const subtleHashFunc: () => void;
2
+ //# sourceMappingURL=subtleHashNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subtleHashNode.d.ts","sourceRoot":"","sources":["../../../src/worker/subtleHashNode.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,YAK1B,CAAA"}