@xyo-network/hash 4.0.2 → 4.1.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.
- package/{dist/types → build/browser}/ObjectHasher.d.ts +5 -0
- package/build/browser/ObjectHasher.d.ts.map +1 -0
- package/build/neutral/NodeObjectHasher.d.ts +9 -0
- package/build/neutral/NodeObjectHasher.d.ts.map +1 -0
- package/build/neutral/ObjectHasher.d.ts +78 -0
- package/build/neutral/ObjectHasher.d.ts.map +1 -0
- package/build/neutral/createNodeWorker.d.ts +3 -0
- package/build/neutral/createNodeWorker.d.ts.map +1 -0
- package/build/neutral/hasEmptyFields.d.ts +3 -0
- package/build/neutral/hasEmptyFields.d.ts.map +1 -0
- package/build/neutral/index.d.ts +6 -0
- package/build/neutral/index.d.ts.map +1 -0
- package/build/neutral/removeEmptyFields.d.ts +3 -0
- package/build/neutral/removeEmptyFields.d.ts.map +1 -0
- package/build/neutral/sortFields.d.ts +3 -0
- package/build/neutral/sortFields.d.ts.map +1 -0
- package/build/neutral/worker/index.d.ts +3 -0
- package/build/neutral/worker/index.d.ts.map +1 -0
- package/build/neutral/worker/subtleHashNode.d.ts +2 -0
- package/build/neutral/worker/subtleHashNode.d.ts.map +1 -0
- package/build/neutral/worker/wasmHashNode.d.ts +2 -0
- package/build/neutral/worker/wasmHashNode.d.ts.map +1 -0
- package/build/node/NodeObjectHasher.d.ts +9 -0
- package/build/node/NodeObjectHasher.d.ts.map +1 -0
- package/build/node/ObjectHasher.d.ts +78 -0
- package/build/node/ObjectHasher.d.ts.map +1 -0
- package/build/node/createNodeWorker.d.ts +3 -0
- package/build/node/createNodeWorker.d.ts.map +1 -0
- package/build/node/hasEmptyFields.d.ts +3 -0
- package/build/node/hasEmptyFields.d.ts.map +1 -0
- package/build/node/index.d.ts +6 -0
- package/build/node/index.d.ts.map +1 -0
- package/build/node/removeEmptyFields.d.ts +3 -0
- package/build/node/removeEmptyFields.d.ts.map +1 -0
- package/build/node/sortFields.d.ts +3 -0
- package/build/node/sortFields.d.ts.map +1 -0
- package/build/node/worker/index.d.ts +3 -0
- package/build/node/worker/index.d.ts.map +1 -0
- package/build/node/worker/subtleHashNode.d.ts +2 -0
- package/build/node/worker/subtleHashNode.d.ts.map +1 -0
- package/build/node/worker/wasmHashNode.d.ts +2 -0
- package/build/node/worker/wasmHashNode.d.ts.map +1 -0
- package/dist/browser/index-browser.d.ts +89 -0
- package/dist/browser/index-browser.mjs.map +1 -1
- package/dist/browser/index.d.ts +87 -0
- package/dist/browser/index.mjs +283 -0
- package/dist/browser/index.mjs.map +1 -0
- package/dist/browser/worker/subtleHash-bundle.mjs +108 -47
- package/dist/browser/worker/subtleHash.d.ts +2 -0
- package/dist/browser/worker/wasmHash-bundle.mjs +109 -48
- package/dist/browser/worker/wasmHash.d.ts +2 -0
- package/dist/neutral/index.d.ts +87 -0
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/index.d.ts +87 -0
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/worker/subtleHashNode.d.ts +3 -0
- package/dist/node/worker/wasmHashNode.d.ts +3 -0
- package/package.json +17 -16
- package/src/ObjectHasher.ts +6 -1
- package/xy.config.ts +2 -2
- package/dist/browser/worker/index.mjs +0 -34
- package/dist/browser/worker/index.mjs.map +0 -1
- package/dist/browser/worker/subtleHashNode.mjs +0 -21
- package/dist/browser/worker/subtleHashNode.mjs.map +0 -1
- package/dist/browser/worker/wasmHashNode.mjs +0 -22
- package/dist/browser/worker/wasmHashNode.mjs.map +0 -1
- package/dist/node/worker/index.mjs +0 -34
- package/dist/node/worker/index.mjs.map +0 -1
- package/dist/node/worker/subtleHash.mjs +0 -9
- package/dist/node/worker/subtleHash.mjs.map +0 -1
- package/dist/node/worker/wasmHash.mjs +0 -10
- package/dist/node/worker/wasmHash.mjs.map +0 -1
- package/dist/types/ObjectHasher.d.ts.map +0 -1
- package/src/globals.d.ts +0 -5
- /package/{dist/types → build/browser}/BrowserObjectHasher.d.ts +0 -0
- /package/{dist/types → build/browser}/BrowserObjectHasher.d.ts.map +0 -0
- /package/{dist/types → build/browser}/NodeObjectHasher.d.ts +0 -0
- /package/{dist/types → build/browser}/NodeObjectHasher.d.ts.map +0 -0
- /package/{dist/types → build/browser}/createBrowserWorker.d.ts +0 -0
- /package/{dist/types → build/browser}/createBrowserWorker.d.ts.map +0 -0
- /package/{dist/types → build/browser}/createNodeWorker.d.ts +0 -0
- /package/{dist/types → build/browser}/createNodeWorker.d.ts.map +0 -0
- /package/{dist/types → build/browser}/hasEmptyFields.d.ts +0 -0
- /package/{dist/types → build/browser}/hasEmptyFields.d.ts.map +0 -0
- /package/{dist/types → build/browser}/index-browser.d.ts +0 -0
- /package/{dist/types → build/browser}/index-browser.d.ts.map +0 -0
- /package/{dist/types → build/browser}/index.d.ts +0 -0
- /package/{dist/types → build/browser}/index.d.ts.map +0 -0
- /package/{dist/types → build/browser}/removeEmptyFields.d.ts +0 -0
- /package/{dist/types → build/browser}/removeEmptyFields.d.ts.map +0 -0
- /package/{dist/types → build/browser}/sortFields.d.ts +0 -0
- /package/{dist/types → build/browser}/sortFields.d.ts.map +0 -0
- /package/{dist/types → build/browser}/worker/index.d.ts +0 -0
- /package/{dist/types → build/browser}/worker/index.d.ts.map +0 -0
- /package/{dist/types → build/browser}/worker/subtleHash.d.ts +0 -0
- /package/{dist/types → build/browser}/worker/subtleHash.d.ts.map +0 -0
- /package/{dist/types → build/browser}/worker/subtleHashNode.d.ts +0 -0
- /package/{dist/types → build/browser}/worker/subtleHashNode.d.ts.map +0 -0
- /package/{dist/types → build/browser}/worker/wasmHash.d.ts +0 -0
- /package/{dist/types → build/browser}/worker/wasmHash.d.ts.map +0 -0
- /package/{dist/types → build/browser}/worker/wasmHashNode.d.ts +0 -0
- /package/{dist/types → build/browser}/worker/wasmHashNode.d.ts.map +0 -0
|
@@ -45,11 +45,26 @@
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
// ../../../../../../node_modules/.store/@xylabs-platform-npm-4.
|
|
48
|
+
// ../../../../../../node_modules/.store/@xylabs-platform-npm-4.13.15-d874cb75fa/package/dist/browser/index.mjs
|
|
49
49
|
var subtle = globalThis.crypto.subtle;
|
|
50
50
|
|
|
51
|
-
// ../../../../../../node_modules/.store/@xylabs-threads-npm-4.
|
|
51
|
+
// ../../../../../../node_modules/.store/@xylabs-threads-npm-4.13.15-48ed8b650d/package/dist/browser/worker/worker.browser.mjs
|
|
52
52
|
var import_is_observable_2_1_0 = __toESM(require_package(), 1);
|
|
53
|
+
var __defProp2 = Object.defineProperty;
|
|
54
|
+
var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
|
|
55
|
+
function extendSerializer(extend, implementation) {
|
|
56
|
+
const fallbackDeserializer = extend.deserialize.bind(extend);
|
|
57
|
+
const fallbackSerializer = extend.serialize.bind(extend);
|
|
58
|
+
return {
|
|
59
|
+
deserialize(message) {
|
|
60
|
+
return implementation.deserialize(message, fallbackDeserializer);
|
|
61
|
+
},
|
|
62
|
+
serialize(input) {
|
|
63
|
+
return implementation.serialize(input, fallbackSerializer);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
__name(extendSerializer, "extendSerializer");
|
|
53
68
|
var DefaultErrorSerializer = {
|
|
54
69
|
deserialize(message) {
|
|
55
70
|
return Object.assign(new Error(message.message), {
|
|
@@ -66,7 +81,7 @@
|
|
|
66
81
|
};
|
|
67
82
|
}
|
|
68
83
|
};
|
|
69
|
-
var isSerializedError = (thing) => thing && typeof thing === "object" && "__error_marker" in thing && thing.__error_marker === "$$error";
|
|
84
|
+
var isSerializedError = /* @__PURE__ */ __name((thing) => thing && typeof thing === "object" && "__error_marker" in thing && thing.__error_marker === "$$error", "isSerializedError");
|
|
70
85
|
var DefaultSerializer = {
|
|
71
86
|
deserialize(message) {
|
|
72
87
|
return isSerializedError(message) ? DefaultErrorSerializer.deserialize(message) : message;
|
|
@@ -76,96 +91,144 @@
|
|
|
76
91
|
}
|
|
77
92
|
};
|
|
78
93
|
globalThis.registeredSerializer = globalThis.registeredSerializer ?? DefaultSerializer;
|
|
94
|
+
function registerSerializer(serializer) {
|
|
95
|
+
globalThis.registeredSerializer = extendSerializer(globalThis.registeredSerializer, serializer);
|
|
96
|
+
}
|
|
97
|
+
__name(registerSerializer, "registerSerializer");
|
|
79
98
|
function deserialize(message) {
|
|
80
99
|
return globalThis.registeredSerializer.deserialize(message);
|
|
81
100
|
}
|
|
101
|
+
__name(deserialize, "deserialize");
|
|
82
102
|
function serialize(input) {
|
|
83
103
|
return globalThis.registeredSerializer.serialize(input);
|
|
84
104
|
}
|
|
105
|
+
__name(serialize, "serialize");
|
|
85
106
|
var $errors = Symbol("thread.errors");
|
|
86
107
|
var $events = Symbol("thread.events");
|
|
87
108
|
var $terminate = Symbol("thread.terminate");
|
|
88
109
|
var $transferable = Symbol("thread.transferable");
|
|
89
110
|
var $worker = Symbol("thread.worker");
|
|
111
|
+
function isTransferable(thing) {
|
|
112
|
+
if (!thing || typeof thing !== "object") return false;
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
__name(isTransferable, "isTransferable");
|
|
90
116
|
function isTransferDescriptor(thing) {
|
|
91
117
|
return thing && typeof thing === "object" && thing[$transferable];
|
|
92
118
|
}
|
|
93
|
-
|
|
119
|
+
__name(isTransferDescriptor, "isTransferDescriptor");
|
|
120
|
+
function Transfer(payload, transferables) {
|
|
121
|
+
console.log("Transfer");
|
|
122
|
+
if (!transferables) {
|
|
123
|
+
if (!isTransferable(payload)) throw new Error("Not transferable");
|
|
124
|
+
transferables = [
|
|
125
|
+
payload
|
|
126
|
+
];
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
[$transferable]: true,
|
|
130
|
+
send: payload,
|
|
131
|
+
transferables
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
__name(Transfer, "Transfer");
|
|
135
|
+
var MasterMessageType = /* @__PURE__ */ function(MasterMessageType2) {
|
|
136
|
+
MasterMessageType2["cancel"] = "cancel";
|
|
137
|
+
MasterMessageType2["run"] = "run";
|
|
138
|
+
return MasterMessageType2;
|
|
139
|
+
}({});
|
|
140
|
+
var WorkerMessageType = /* @__PURE__ */ function(WorkerMessageType2) {
|
|
141
|
+
WorkerMessageType2["error"] = "error";
|
|
142
|
+
WorkerMessageType2["init"] = "init";
|
|
143
|
+
WorkerMessageType2["result"] = "result";
|
|
144
|
+
WorkerMessageType2["running"] = "running";
|
|
145
|
+
WorkerMessageType2["uncaughtError"] = "uncaughtError";
|
|
146
|
+
return WorkerMessageType2;
|
|
147
|
+
}({});
|
|
148
|
+
var isErrorEvent = /* @__PURE__ */ __name((value) => value && value.error, "isErrorEvent");
|
|
94
149
|
function createExpose(implementation, self2) {
|
|
95
150
|
let exposeCalled = false;
|
|
96
151
|
const activeSubscriptions = /* @__PURE__ */ new Map();
|
|
97
|
-
const isMasterJobCancelMessage = (thing) => thing && thing.type ===
|
|
98
|
-
const isMasterJobRunMessage = (thing) => thing && thing.type ===
|
|
99
|
-
const isObservable = (thing) => (0, import_is_observable_2_1_0.default)(thing) || isZenObservable(thing);
|
|
152
|
+
const isMasterJobCancelMessage = /* @__PURE__ */ __name((thing) => thing && thing.type === MasterMessageType.cancel, "isMasterJobCancelMessage");
|
|
153
|
+
const isMasterJobRunMessage = /* @__PURE__ */ __name((thing) => thing && thing.type === MasterMessageType.run, "isMasterJobRunMessage");
|
|
154
|
+
const isObservable = /* @__PURE__ */ __name((thing) => (0, import_is_observable_2_1_0.default)(thing) || isZenObservable(thing), "isObservable");
|
|
100
155
|
function isZenObservable(thing) {
|
|
101
156
|
return thing && typeof thing === "object" && typeof thing.subscribe === "function";
|
|
102
157
|
}
|
|
158
|
+
__name(isZenObservable, "isZenObservable");
|
|
103
159
|
function deconstructTransfer(thing) {
|
|
104
|
-
return isTransferDescriptor(thing) ? {
|
|
160
|
+
return isTransferDescriptor(thing) ? {
|
|
161
|
+
payload: thing.send,
|
|
162
|
+
transferables: thing.transferables
|
|
163
|
+
} : {
|
|
164
|
+
payload: thing,
|
|
165
|
+
transferables: void 0
|
|
166
|
+
};
|
|
105
167
|
}
|
|
168
|
+
__name(deconstructTransfer, "deconstructTransfer");
|
|
106
169
|
function postFunctionInitMessage() {
|
|
107
170
|
const initMessage = {
|
|
108
|
-
exposed: {
|
|
109
|
-
|
|
110
|
-
|
|
171
|
+
exposed: {
|
|
172
|
+
type: "function"
|
|
173
|
+
},
|
|
174
|
+
type: WorkerMessageType.init
|
|
111
175
|
};
|
|
112
176
|
implementation.postMessageToMaster(initMessage);
|
|
113
177
|
}
|
|
178
|
+
__name(postFunctionInitMessage, "postFunctionInitMessage");
|
|
114
179
|
function postModuleInitMessage(methodNames) {
|
|
115
180
|
const initMessage = {
|
|
116
181
|
exposed: {
|
|
117
182
|
methods: methodNames,
|
|
118
183
|
type: "module"
|
|
119
184
|
},
|
|
120
|
-
type:
|
|
121
|
-
/* init */
|
|
185
|
+
type: WorkerMessageType.init
|
|
122
186
|
};
|
|
123
187
|
implementation.postMessageToMaster(initMessage);
|
|
124
188
|
}
|
|
189
|
+
__name(postModuleInitMessage, "postModuleInitMessage");
|
|
125
190
|
function postJobErrorMessage(uid, rawError) {
|
|
126
191
|
const { payload: error, transferables } = deconstructTransfer(rawError);
|
|
127
192
|
const errorMessage = {
|
|
128
193
|
error: serialize(error),
|
|
129
|
-
type:
|
|
194
|
+
type: WorkerMessageType.error,
|
|
130
195
|
uid
|
|
131
196
|
};
|
|
132
197
|
implementation.postMessageToMaster(errorMessage, transferables);
|
|
133
198
|
}
|
|
199
|
+
__name(postJobErrorMessage, "postJobErrorMessage");
|
|
134
200
|
function postJobResultMessage(uid, completed, resultValue) {
|
|
135
201
|
const { payload, transferables } = deconstructTransfer(resultValue);
|
|
136
202
|
const resultMessage = {
|
|
137
203
|
complete: completed ? true : void 0,
|
|
138
204
|
payload,
|
|
139
|
-
type:
|
|
205
|
+
type: WorkerMessageType.result,
|
|
140
206
|
uid
|
|
141
207
|
};
|
|
142
208
|
implementation.postMessageToMaster(resultMessage, transferables);
|
|
143
209
|
}
|
|
210
|
+
__name(postJobResultMessage, "postJobResultMessage");
|
|
144
211
|
function postJobStartMessage(uid, resultType) {
|
|
145
212
|
const startMessage = {
|
|
146
213
|
resultType,
|
|
147
|
-
type:
|
|
214
|
+
type: WorkerMessageType.running,
|
|
148
215
|
uid
|
|
149
216
|
};
|
|
150
217
|
implementation.postMessageToMaster(startMessage);
|
|
151
218
|
}
|
|
219
|
+
__name(postJobStartMessage, "postJobStartMessage");
|
|
152
220
|
function postUncaughtErrorMessage(error) {
|
|
153
221
|
try {
|
|
154
222
|
const errorMessage = {
|
|
155
223
|
error: serialize(error),
|
|
156
|
-
type:
|
|
157
|
-
/* uncaughtError */
|
|
224
|
+
type: WorkerMessageType.uncaughtError
|
|
158
225
|
};
|
|
159
226
|
implementation.postMessageToMaster(errorMessage);
|
|
160
227
|
} catch (subError) {
|
|
161
|
-
console.error(
|
|
162
|
-
"Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.\nLatest error:",
|
|
163
|
-
subError,
|
|
164
|
-
"\nOriginal error:",
|
|
165
|
-
error
|
|
166
|
-
);
|
|
228
|
+
console.error("Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.\nLatest error:", subError, "\nOriginal error:", error);
|
|
167
229
|
}
|
|
168
230
|
}
|
|
231
|
+
__name(postUncaughtErrorMessage, "postUncaughtErrorMessage");
|
|
169
232
|
async function runFunction(jobUID, fn, args) {
|
|
170
233
|
let syncResult;
|
|
171
234
|
try {
|
|
@@ -177,17 +240,13 @@
|
|
|
177
240
|
const resultType = isObservable(syncResult) ? "observable" : "promise";
|
|
178
241
|
postJobStartMessage(jobUID, resultType);
|
|
179
242
|
if (isObservable(syncResult)) {
|
|
180
|
-
const subscription = syncResult.subscribe(
|
|
181
|
-
(
|
|
182
|
-
(
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
postJobResultMessage(jobUID, true);
|
|
188
|
-
activeSubscriptions.delete(jobUID);
|
|
189
|
-
}
|
|
190
|
-
);
|
|
243
|
+
const subscription = syncResult.subscribe((value) => postJobResultMessage(jobUID, false, serialize(value)), (error) => {
|
|
244
|
+
postJobErrorMessage(jobUID, serialize(error));
|
|
245
|
+
activeSubscriptions.delete(jobUID);
|
|
246
|
+
}, () => {
|
|
247
|
+
postJobResultMessage(jobUID, true);
|
|
248
|
+
activeSubscriptions.delete(jobUID);
|
|
249
|
+
});
|
|
191
250
|
activeSubscriptions.set(jobUID, subscription);
|
|
192
251
|
} else {
|
|
193
252
|
try {
|
|
@@ -198,7 +257,8 @@
|
|
|
198
257
|
}
|
|
199
258
|
}
|
|
200
259
|
}
|
|
201
|
-
|
|
260
|
+
__name(runFunction, "runFunction");
|
|
261
|
+
const expose2 = /* @__PURE__ */ __name((exposed) => {
|
|
202
262
|
if (!implementation.isWorkerRuntime()) {
|
|
203
263
|
throw new Error("expose() called in the master thread.");
|
|
204
264
|
}
|
|
@@ -234,7 +294,7 @@
|
|
|
234
294
|
}
|
|
235
295
|
}
|
|
236
296
|
});
|
|
237
|
-
};
|
|
297
|
+
}, "expose");
|
|
238
298
|
if (typeof globalThis !== "undefined" && typeof self2.addEventListener === "function" && implementation.isWorkerRuntime()) {
|
|
239
299
|
self2.addEventListener("error", (event) => {
|
|
240
300
|
setTimeout(() => postUncaughtErrorMessage(isErrorEvent(event) ? event.error : event), 250);
|
|
@@ -258,23 +318,24 @@
|
|
|
258
318
|
}
|
|
259
319
|
return expose2;
|
|
260
320
|
}
|
|
261
|
-
|
|
321
|
+
__name(createExpose, "createExpose");
|
|
322
|
+
var isWorkerRuntime = /* @__PURE__ */ __name(function isWorkerRuntime2() {
|
|
262
323
|
const isWindowContext = self !== void 0 && typeof Window !== "undefined" && self instanceof Window;
|
|
263
324
|
return self !== void 0 && self["postMessage"] && !isWindowContext ? true : false;
|
|
264
|
-
};
|
|
265
|
-
var postMessageToMaster = function postMessageToMaster2(data, transferList) {
|
|
325
|
+
}, "isWorkerRuntime");
|
|
326
|
+
var postMessageToMaster = /* @__PURE__ */ __name(function postMessageToMaster2(data, transferList) {
|
|
266
327
|
self.postMessage(data, transferList);
|
|
267
|
-
};
|
|
268
|
-
var subscribeToMasterMessages = function subscribeToMasterMessages2(onMessage) {
|
|
269
|
-
const messageHandler = (messageEvent) => {
|
|
328
|
+
}, "postMessageToMaster");
|
|
329
|
+
var subscribeToMasterMessages = /* @__PURE__ */ __name(function subscribeToMasterMessages2(onMessage) {
|
|
330
|
+
const messageHandler = /* @__PURE__ */ __name((messageEvent) => {
|
|
270
331
|
onMessage(messageEvent.data);
|
|
271
|
-
};
|
|
272
|
-
const unsubscribe = () => {
|
|
332
|
+
}, "messageHandler");
|
|
333
|
+
const unsubscribe = /* @__PURE__ */ __name(() => {
|
|
273
334
|
self.removeEventListener("message", messageHandler);
|
|
274
|
-
};
|
|
335
|
+
}, "unsubscribe");
|
|
275
336
|
self.addEventListener("message", messageHandler);
|
|
276
337
|
return unsubscribe;
|
|
277
|
-
};
|
|
338
|
+
}, "subscribeToMasterMessages");
|
|
278
339
|
var addEventListener = self.addEventListener.bind(void 0);
|
|
279
340
|
var postMessage = self.postMessage.bind(void 0);
|
|
280
341
|
var removeEventListener = self.removeEventListener.bind(void 0);
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
// ../../../../../../node_modules/.store/@xylabs-typeof-npm-4.
|
|
48
|
+
// ../../../../../../node_modules/.store/@xylabs-typeof-npm-4.13.15-eb22fb975b/package/dist/neutral/index.mjs
|
|
49
49
|
function isUndefined(value) {
|
|
50
50
|
return value === void 0;
|
|
51
51
|
}
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
return typeof value === "number";
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
// ../../../../../../node_modules/.store/@xylabs-hex-npm-4.
|
|
59
|
+
// ../../../../../../node_modules/.store/@xylabs-hex-npm-4.13.15-468ce57811/package/dist/neutral/index.mjs
|
|
60
60
|
var assertError = (value, assert, defaultMessage) => {
|
|
61
61
|
if (!isUndefined(assert)) {
|
|
62
62
|
const assertString = typeof assert === "string" ? assert : typeof assert === "boolean" ? defaultMessage : assert(value, defaultMessage);
|
|
@@ -112,8 +112,23 @@
|
|
|
112
112
|
return isHash(stringValue) ? stringValue : assertError(value, assert, `Value is not a Hash [${value}]`);
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
// ../../../../../../node_modules/.store/@xylabs-threads-npm-4.
|
|
115
|
+
// ../../../../../../node_modules/.store/@xylabs-threads-npm-4.13.15-48ed8b650d/package/dist/browser/worker/worker.browser.mjs
|
|
116
116
|
var import_is_observable_2_1_0 = __toESM(require_package(), 1);
|
|
117
|
+
var __defProp2 = Object.defineProperty;
|
|
118
|
+
var __name = (target, value) => __defProp2(target, "name", { value, configurable: true });
|
|
119
|
+
function extendSerializer(extend, implementation) {
|
|
120
|
+
const fallbackDeserializer = extend.deserialize.bind(extend);
|
|
121
|
+
const fallbackSerializer = extend.serialize.bind(extend);
|
|
122
|
+
return {
|
|
123
|
+
deserialize(message) {
|
|
124
|
+
return implementation.deserialize(message, fallbackDeserializer);
|
|
125
|
+
},
|
|
126
|
+
serialize(input) {
|
|
127
|
+
return implementation.serialize(input, fallbackSerializer);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
__name(extendSerializer, "extendSerializer");
|
|
117
132
|
var DefaultErrorSerializer = {
|
|
118
133
|
deserialize(message) {
|
|
119
134
|
return Object.assign(new Error(message.message), {
|
|
@@ -130,7 +145,7 @@
|
|
|
130
145
|
};
|
|
131
146
|
}
|
|
132
147
|
};
|
|
133
|
-
var isSerializedError = (thing) => thing && typeof thing === "object" && "__error_marker" in thing && thing.__error_marker === "$$error";
|
|
148
|
+
var isSerializedError = /* @__PURE__ */ __name((thing) => thing && typeof thing === "object" && "__error_marker" in thing && thing.__error_marker === "$$error", "isSerializedError");
|
|
134
149
|
var DefaultSerializer = {
|
|
135
150
|
deserialize(message) {
|
|
136
151
|
return isSerializedError(message) ? DefaultErrorSerializer.deserialize(message) : message;
|
|
@@ -140,96 +155,144 @@
|
|
|
140
155
|
}
|
|
141
156
|
};
|
|
142
157
|
globalThis.registeredSerializer = globalThis.registeredSerializer ?? DefaultSerializer;
|
|
158
|
+
function registerSerializer(serializer) {
|
|
159
|
+
globalThis.registeredSerializer = extendSerializer(globalThis.registeredSerializer, serializer);
|
|
160
|
+
}
|
|
161
|
+
__name(registerSerializer, "registerSerializer");
|
|
143
162
|
function deserialize(message) {
|
|
144
163
|
return globalThis.registeredSerializer.deserialize(message);
|
|
145
164
|
}
|
|
165
|
+
__name(deserialize, "deserialize");
|
|
146
166
|
function serialize(input) {
|
|
147
167
|
return globalThis.registeredSerializer.serialize(input);
|
|
148
168
|
}
|
|
169
|
+
__name(serialize, "serialize");
|
|
149
170
|
var $errors = Symbol("thread.errors");
|
|
150
171
|
var $events = Symbol("thread.events");
|
|
151
172
|
var $terminate = Symbol("thread.terminate");
|
|
152
173
|
var $transferable = Symbol("thread.transferable");
|
|
153
174
|
var $worker = Symbol("thread.worker");
|
|
175
|
+
function isTransferable(thing) {
|
|
176
|
+
if (!thing || typeof thing !== "object") return false;
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
__name(isTransferable, "isTransferable");
|
|
154
180
|
function isTransferDescriptor(thing) {
|
|
155
181
|
return thing && typeof thing === "object" && thing[$transferable];
|
|
156
182
|
}
|
|
157
|
-
|
|
183
|
+
__name(isTransferDescriptor, "isTransferDescriptor");
|
|
184
|
+
function Transfer(payload, transferables) {
|
|
185
|
+
console.log("Transfer");
|
|
186
|
+
if (!transferables) {
|
|
187
|
+
if (!isTransferable(payload)) throw new Error("Not transferable");
|
|
188
|
+
transferables = [
|
|
189
|
+
payload
|
|
190
|
+
];
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
[$transferable]: true,
|
|
194
|
+
send: payload,
|
|
195
|
+
transferables
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
__name(Transfer, "Transfer");
|
|
199
|
+
var MasterMessageType = /* @__PURE__ */ function(MasterMessageType2) {
|
|
200
|
+
MasterMessageType2["cancel"] = "cancel";
|
|
201
|
+
MasterMessageType2["run"] = "run";
|
|
202
|
+
return MasterMessageType2;
|
|
203
|
+
}({});
|
|
204
|
+
var WorkerMessageType = /* @__PURE__ */ function(WorkerMessageType2) {
|
|
205
|
+
WorkerMessageType2["error"] = "error";
|
|
206
|
+
WorkerMessageType2["init"] = "init";
|
|
207
|
+
WorkerMessageType2["result"] = "result";
|
|
208
|
+
WorkerMessageType2["running"] = "running";
|
|
209
|
+
WorkerMessageType2["uncaughtError"] = "uncaughtError";
|
|
210
|
+
return WorkerMessageType2;
|
|
211
|
+
}({});
|
|
212
|
+
var isErrorEvent = /* @__PURE__ */ __name((value) => value && value.error, "isErrorEvent");
|
|
158
213
|
function createExpose(implementation, self2) {
|
|
159
214
|
let exposeCalled = false;
|
|
160
215
|
const activeSubscriptions = /* @__PURE__ */ new Map();
|
|
161
|
-
const isMasterJobCancelMessage = (thing) => thing && thing.type ===
|
|
162
|
-
const isMasterJobRunMessage = (thing) => thing && thing.type ===
|
|
163
|
-
const isObservable = (thing) => (0, import_is_observable_2_1_0.default)(thing) || isZenObservable(thing);
|
|
216
|
+
const isMasterJobCancelMessage = /* @__PURE__ */ __name((thing) => thing && thing.type === MasterMessageType.cancel, "isMasterJobCancelMessage");
|
|
217
|
+
const isMasterJobRunMessage = /* @__PURE__ */ __name((thing) => thing && thing.type === MasterMessageType.run, "isMasterJobRunMessage");
|
|
218
|
+
const isObservable = /* @__PURE__ */ __name((thing) => (0, import_is_observable_2_1_0.default)(thing) || isZenObservable(thing), "isObservable");
|
|
164
219
|
function isZenObservable(thing) {
|
|
165
220
|
return thing && typeof thing === "object" && typeof thing.subscribe === "function";
|
|
166
221
|
}
|
|
222
|
+
__name(isZenObservable, "isZenObservable");
|
|
167
223
|
function deconstructTransfer(thing) {
|
|
168
|
-
return isTransferDescriptor(thing) ? {
|
|
224
|
+
return isTransferDescriptor(thing) ? {
|
|
225
|
+
payload: thing.send,
|
|
226
|
+
transferables: thing.transferables
|
|
227
|
+
} : {
|
|
228
|
+
payload: thing,
|
|
229
|
+
transferables: void 0
|
|
230
|
+
};
|
|
169
231
|
}
|
|
232
|
+
__name(deconstructTransfer, "deconstructTransfer");
|
|
170
233
|
function postFunctionInitMessage() {
|
|
171
234
|
const initMessage = {
|
|
172
|
-
exposed: {
|
|
173
|
-
|
|
174
|
-
|
|
235
|
+
exposed: {
|
|
236
|
+
type: "function"
|
|
237
|
+
},
|
|
238
|
+
type: WorkerMessageType.init
|
|
175
239
|
};
|
|
176
240
|
implementation.postMessageToMaster(initMessage);
|
|
177
241
|
}
|
|
242
|
+
__name(postFunctionInitMessage, "postFunctionInitMessage");
|
|
178
243
|
function postModuleInitMessage(methodNames) {
|
|
179
244
|
const initMessage = {
|
|
180
245
|
exposed: {
|
|
181
246
|
methods: methodNames,
|
|
182
247
|
type: "module"
|
|
183
248
|
},
|
|
184
|
-
type:
|
|
185
|
-
/* init */
|
|
249
|
+
type: WorkerMessageType.init
|
|
186
250
|
};
|
|
187
251
|
implementation.postMessageToMaster(initMessage);
|
|
188
252
|
}
|
|
253
|
+
__name(postModuleInitMessage, "postModuleInitMessage");
|
|
189
254
|
function postJobErrorMessage(uid, rawError) {
|
|
190
255
|
const { payload: error, transferables } = deconstructTransfer(rawError);
|
|
191
256
|
const errorMessage = {
|
|
192
257
|
error: serialize(error),
|
|
193
|
-
type:
|
|
258
|
+
type: WorkerMessageType.error,
|
|
194
259
|
uid
|
|
195
260
|
};
|
|
196
261
|
implementation.postMessageToMaster(errorMessage, transferables);
|
|
197
262
|
}
|
|
263
|
+
__name(postJobErrorMessage, "postJobErrorMessage");
|
|
198
264
|
function postJobResultMessage(uid, completed, resultValue) {
|
|
199
265
|
const { payload, transferables } = deconstructTransfer(resultValue);
|
|
200
266
|
const resultMessage = {
|
|
201
267
|
complete: completed ? true : void 0,
|
|
202
268
|
payload,
|
|
203
|
-
type:
|
|
269
|
+
type: WorkerMessageType.result,
|
|
204
270
|
uid
|
|
205
271
|
};
|
|
206
272
|
implementation.postMessageToMaster(resultMessage, transferables);
|
|
207
273
|
}
|
|
274
|
+
__name(postJobResultMessage, "postJobResultMessage");
|
|
208
275
|
function postJobStartMessage(uid, resultType) {
|
|
209
276
|
const startMessage = {
|
|
210
277
|
resultType,
|
|
211
|
-
type:
|
|
278
|
+
type: WorkerMessageType.running,
|
|
212
279
|
uid
|
|
213
280
|
};
|
|
214
281
|
implementation.postMessageToMaster(startMessage);
|
|
215
282
|
}
|
|
283
|
+
__name(postJobStartMessage, "postJobStartMessage");
|
|
216
284
|
function postUncaughtErrorMessage(error) {
|
|
217
285
|
try {
|
|
218
286
|
const errorMessage = {
|
|
219
287
|
error: serialize(error),
|
|
220
|
-
type:
|
|
221
|
-
/* uncaughtError */
|
|
288
|
+
type: WorkerMessageType.uncaughtError
|
|
222
289
|
};
|
|
223
290
|
implementation.postMessageToMaster(errorMessage);
|
|
224
291
|
} catch (subError) {
|
|
225
|
-
console.error(
|
|
226
|
-
"Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.\nLatest error:",
|
|
227
|
-
subError,
|
|
228
|
-
"\nOriginal error:",
|
|
229
|
-
error
|
|
230
|
-
);
|
|
292
|
+
console.error("Not reporting uncaught error back to master thread as it occured while reporting an uncaught error already.\nLatest error:", subError, "\nOriginal error:", error);
|
|
231
293
|
}
|
|
232
294
|
}
|
|
295
|
+
__name(postUncaughtErrorMessage, "postUncaughtErrorMessage");
|
|
233
296
|
async function runFunction(jobUID, fn, args) {
|
|
234
297
|
let syncResult;
|
|
235
298
|
try {
|
|
@@ -241,17 +304,13 @@
|
|
|
241
304
|
const resultType = isObservable(syncResult) ? "observable" : "promise";
|
|
242
305
|
postJobStartMessage(jobUID, resultType);
|
|
243
306
|
if (isObservable(syncResult)) {
|
|
244
|
-
const subscription = syncResult.subscribe(
|
|
245
|
-
(
|
|
246
|
-
(
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
postJobResultMessage(jobUID, true);
|
|
252
|
-
activeSubscriptions.delete(jobUID);
|
|
253
|
-
}
|
|
254
|
-
);
|
|
307
|
+
const subscription = syncResult.subscribe((value) => postJobResultMessage(jobUID, false, serialize(value)), (error) => {
|
|
308
|
+
postJobErrorMessage(jobUID, serialize(error));
|
|
309
|
+
activeSubscriptions.delete(jobUID);
|
|
310
|
+
}, () => {
|
|
311
|
+
postJobResultMessage(jobUID, true);
|
|
312
|
+
activeSubscriptions.delete(jobUID);
|
|
313
|
+
});
|
|
255
314
|
activeSubscriptions.set(jobUID, subscription);
|
|
256
315
|
} else {
|
|
257
316
|
try {
|
|
@@ -262,7 +321,8 @@
|
|
|
262
321
|
}
|
|
263
322
|
}
|
|
264
323
|
}
|
|
265
|
-
|
|
324
|
+
__name(runFunction, "runFunction");
|
|
325
|
+
const expose2 = /* @__PURE__ */ __name((exposed) => {
|
|
266
326
|
if (!implementation.isWorkerRuntime()) {
|
|
267
327
|
throw new Error("expose() called in the master thread.");
|
|
268
328
|
}
|
|
@@ -298,7 +358,7 @@
|
|
|
298
358
|
}
|
|
299
359
|
}
|
|
300
360
|
});
|
|
301
|
-
};
|
|
361
|
+
}, "expose");
|
|
302
362
|
if (typeof globalThis !== "undefined" && typeof self2.addEventListener === "function" && implementation.isWorkerRuntime()) {
|
|
303
363
|
self2.addEventListener("error", (event) => {
|
|
304
364
|
setTimeout(() => postUncaughtErrorMessage(isErrorEvent(event) ? event.error : event), 250);
|
|
@@ -322,23 +382,24 @@
|
|
|
322
382
|
}
|
|
323
383
|
return expose2;
|
|
324
384
|
}
|
|
325
|
-
|
|
385
|
+
__name(createExpose, "createExpose");
|
|
386
|
+
var isWorkerRuntime = /* @__PURE__ */ __name(function isWorkerRuntime2() {
|
|
326
387
|
const isWindowContext = self !== void 0 && typeof Window !== "undefined" && self instanceof Window;
|
|
327
388
|
return self !== void 0 && self["postMessage"] && !isWindowContext ? true : false;
|
|
328
|
-
};
|
|
329
|
-
var postMessageToMaster = function postMessageToMaster2(data, transferList) {
|
|
389
|
+
}, "isWorkerRuntime");
|
|
390
|
+
var postMessageToMaster = /* @__PURE__ */ __name(function postMessageToMaster2(data, transferList) {
|
|
330
391
|
self.postMessage(data, transferList);
|
|
331
|
-
};
|
|
332
|
-
var subscribeToMasterMessages = function subscribeToMasterMessages2(onMessage) {
|
|
333
|
-
const messageHandler = (messageEvent) => {
|
|
392
|
+
}, "postMessageToMaster");
|
|
393
|
+
var subscribeToMasterMessages = /* @__PURE__ */ __name(function subscribeToMasterMessages2(onMessage) {
|
|
394
|
+
const messageHandler = /* @__PURE__ */ __name((messageEvent) => {
|
|
334
395
|
onMessage(messageEvent.data);
|
|
335
|
-
};
|
|
336
|
-
const unsubscribe = () => {
|
|
396
|
+
}, "messageHandler");
|
|
397
|
+
const unsubscribe = /* @__PURE__ */ __name(() => {
|
|
337
398
|
self.removeEventListener("message", messageHandler);
|
|
338
|
-
};
|
|
399
|
+
}, "unsubscribe");
|
|
339
400
|
self.addEventListener("message", messageHandler);
|
|
340
401
|
return unsubscribe;
|
|
341
|
-
};
|
|
402
|
+
}, "subscribeToMasterMessages");
|
|
342
403
|
var addEventListener = self.addEventListener.bind(void 0);
|
|
343
404
|
var postMessage = self.postMessage.bind(void 0);
|
|
344
405
|
var removeEventListener = self.removeEventListener.bind(void 0);
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { EmptyObject, ObjectWrapper } from '@xylabs/object';
|
|
2
|
+
import * as _xylabs_threads_master from '@xylabs/threads/master';
|
|
3
|
+
import { Worker } from '@xylabs/threads/master';
|
|
4
|
+
import { Hash } from '@xylabs/hex';
|
|
5
|
+
import { WasmSupport } from '@xyo-network/wasm';
|
|
6
|
+
|
|
7
|
+
declare const hasEmptyFields: <T extends EmptyObject>(obj: T) => boolean;
|
|
8
|
+
|
|
9
|
+
declare global {
|
|
10
|
+
var xyo: {
|
|
11
|
+
hashing?: ObjectHasher;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare class ObjectHasher<T extends EmptyObject = EmptyObject> extends ObjectWrapper<T> {
|
|
16
|
+
static allowHashPooling: boolean;
|
|
17
|
+
static allowSubtle: boolean;
|
|
18
|
+
static createBrowserWorker?: (url?: URL) => Worker | undefined;
|
|
19
|
+
static createNodeWorker?: (func?: () => unknown) => Worker | undefined;
|
|
20
|
+
static readonly initialized: void;
|
|
21
|
+
static readonly subtleHashWorkerUrl?: URL;
|
|
22
|
+
static warnIfUsingJsHash: boolean;
|
|
23
|
+
static readonly wasmHashWorkerUrl?: URL;
|
|
24
|
+
static readonly wasmInitialized: Promise<void>;
|
|
25
|
+
static readonly wasmSupport: WasmSupport;
|
|
26
|
+
private static _subtleHashPool?;
|
|
27
|
+
private static _wasmHashPool?;
|
|
28
|
+
private static get subtleHashPool();
|
|
29
|
+
private static get wasmHashPool();
|
|
30
|
+
static createWorker(url?: URL, func?: () => unknown): Worker;
|
|
31
|
+
static filterExcludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
|
|
32
|
+
static filterIncludeByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash[] | Hash): Promise<T[]>;
|
|
33
|
+
static findByHash<T extends EmptyObject>(objs: T[] | undefined, hash: Hash): Promise<T | undefined>;
|
|
34
|
+
/**
|
|
35
|
+
* Asynchronously hashes a payload
|
|
36
|
+
* @param obj A payload
|
|
37
|
+
* @returns The payload hash
|
|
38
|
+
*/
|
|
39
|
+
static hash<T extends EmptyObject>(obj: T): Promise<Hash>;
|
|
40
|
+
static hashBytes(bytes: ArrayBuffer | Uint8Array): Promise<Hash>;
|
|
41
|
+
static hashFields<T extends EmptyObject>(obj: T): T;
|
|
42
|
+
/**
|
|
43
|
+
* Creates an array of payload/hash tuples based on the payloads passed in
|
|
44
|
+
* @param objs Any array of payloads
|
|
45
|
+
* @returns An array of payload/hash tuples
|
|
46
|
+
*/
|
|
47
|
+
static hashPairs<T extends EmptyObject>(objs: T[]): Promise<[T, Hash][]>;
|
|
48
|
+
/**
|
|
49
|
+
* Creates an array of payload hashes based on the payloads passed in
|
|
50
|
+
* @param objs Any array of payloads
|
|
51
|
+
* @returns An array of payload hashes
|
|
52
|
+
*/
|
|
53
|
+
static hashes<T extends EmptyObject>(objs?: T[]): Promise<Hash[] | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Returns a clone of the payload that is JSON safe
|
|
56
|
+
* @param obj A payload
|
|
57
|
+
* @param meta Keeps underscore (meta) fields if set to true
|
|
58
|
+
* @returns Returns a clone of the payload that is JSON safe
|
|
59
|
+
*/
|
|
60
|
+
static json<T extends EmptyObject>(payload: T, meta?: boolean): T;
|
|
61
|
+
/** @deprecated us json instead */
|
|
62
|
+
static jsonPayload<T extends EmptyObject>(payload: T, meta?: boolean): T;
|
|
63
|
+
static stringifyHashFields<T extends EmptyObject>(obj: T): string;
|
|
64
|
+
static subtleHash(data: Uint8Array): Promise<ArrayBuffer>;
|
|
65
|
+
static wasmHash(data: Uint8Array): Promise<Hash>;
|
|
66
|
+
private static createWorkerPool;
|
|
67
|
+
hash(): Promise<Hash>;
|
|
68
|
+
/**
|
|
69
|
+
* Returns a clone of the payload that is JSON safe
|
|
70
|
+
* @param meta Keeps underscore (meta) fields if set to true
|
|
71
|
+
* @returns Returns a clone of the payload that is JSON safe
|
|
72
|
+
*/
|
|
73
|
+
json(meta?: boolean): T;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
declare class NodeObjectHasher<T extends EmptyObject = EmptyObject> extends ObjectHasher<T> {
|
|
77
|
+
static readonly createNodeWorker: (func?: () => unknown) => _xylabs_threads_master.Worker;
|
|
78
|
+
}
|
|
79
|
+
/** @deprecated use NodeObjectHasher instead */
|
|
80
|
+
declare class NodePayloadHasher<T extends EmptyObject = EmptyObject> extends NodeObjectHasher<T> {
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
declare const removeEmptyFields: <T extends EmptyObject>(obj: T) => T;
|
|
84
|
+
|
|
85
|
+
declare const sortFields: <T extends EmptyObject>(obj: T) => T;
|
|
86
|
+
|
|
87
|
+
export { NodeObjectHasher as ObjectHasher, NodePayloadHasher as PayloadHasher, hasEmptyFields, removeEmptyFields, sortFields };
|