@xylabs/threads 5.0.14 → 5.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index-browser.mjs +119 -209
- package/dist/browser/index-browser.mjs.map +1 -1
- package/dist/browser/master/implementation.browser.mjs +11 -36
- package/dist/browser/master/implementation.browser.mjs.map +1 -1
- package/dist/browser/master/index-browser.mjs +117 -201
- package/dist/browser/master/index-browser.mjs.map +1 -1
- package/dist/browser/master/pool-browser.mjs +53 -65
- package/dist/browser/master/pool-browser.mjs.map +1 -1
- package/dist/browser/worker/worker.browser.mjs +43 -79
- package/dist/browser/worker/worker.browser.mjs.map +1 -1
- package/dist/neutral/master/register.mjs +62 -121
- package/dist/neutral/master/register.mjs.map +1 -1
- package/dist/neutral/master/spawn.mjs +53 -106
- package/dist/neutral/master/spawn.mjs.map +1 -1
- package/dist/neutral/master/thread.mjs +0 -4
- package/dist/neutral/master/thread.mjs.map +1 -1
- package/dist/neutral/observable-promise.mjs +20 -27
- package/dist/neutral/observable-promise.mjs.map +1 -1
- package/dist/neutral/observable.mjs +3 -12
- package/dist/neutral/observable.mjs.map +1 -1
- package/dist/neutral/types/messages.mjs +4 -4
- package/dist/neutral/types/messages.mjs.map +1 -1
- package/dist/node/index-node.mjs +169 -293
- package/dist/node/index-node.mjs.map +1 -1
- package/dist/node/master/implementation.node.mjs +62 -121
- package/dist/node/master/implementation.node.mjs.map +1 -1
- package/dist/node/master/index-node.mjs +168 -286
- package/dist/node/master/index-node.mjs.map +1 -1
- package/dist/node/master/pool-node.mjs +115 -183
- package/dist/node/master/pool-node.mjs.map +1 -1
- package/dist/node/worker/worker.node.mjs +43 -80
- package/dist/node/worker/worker.node.mjs.map +1 -1
- package/package.json +3 -4
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
1
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
3
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
2
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
5
3
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
6
4
|
}) : x)(function(x) {
|
|
@@ -25,7 +23,6 @@ var require_lib = __commonJS({
|
|
|
25
23
|
Object.defineProperty(target, descriptor.key, descriptor);
|
|
26
24
|
}
|
|
27
25
|
}
|
|
28
|
-
__name(defineProperties, "defineProperties");
|
|
29
26
|
return function(Constructor, protoProps, staticProps) {
|
|
30
27
|
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
|
31
28
|
if (staticProps) defineProperties(Constructor, staticProps);
|
|
@@ -37,26 +34,17 @@ var require_lib = __commonJS({
|
|
|
37
34
|
throw new TypeError("Cannot call a class as a function");
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
|
-
__name(_classCallCheck, "_classCallCheck");
|
|
41
37
|
var path2 = __require("path");
|
|
42
38
|
var fork = __require("child_process").fork;
|
|
43
39
|
var worker = path2.join(__dirname, "worker.js");
|
|
44
40
|
var events = /^(error|message)$/;
|
|
45
|
-
var defaultPorts = {
|
|
46
|
-
|
|
47
|
-
debug: 5858
|
|
48
|
-
};
|
|
49
|
-
var range = {
|
|
50
|
-
min: 1,
|
|
51
|
-
max: 300
|
|
52
|
-
};
|
|
41
|
+
var defaultPorts = { inspect: 9229, debug: 5858 };
|
|
42
|
+
var range = { min: 1, max: 300 };
|
|
53
43
|
var Worker = function() {
|
|
54
44
|
function Worker2(arg) {
|
|
55
45
|
var _this = this;
|
|
56
46
|
var args = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
57
|
-
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
|
|
58
|
-
cwd: process.cwd()
|
|
59
|
-
};
|
|
47
|
+
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : { cwd: process.cwd() };
|
|
60
48
|
_classCallCheck(this, Worker2);
|
|
61
49
|
var isfn = typeof arg === "function", input = isfn ? arg.toString() : arg;
|
|
62
50
|
if (!options.cwd) {
|
|
@@ -112,50 +100,36 @@ var require_lib = __commonJS({
|
|
|
112
100
|
_this.onerror.call(_this, error);
|
|
113
101
|
}
|
|
114
102
|
});
|
|
115
|
-
this.child.send({
|
|
116
|
-
input,
|
|
117
|
-
isfn,
|
|
118
|
-
cwd: options.cwd,
|
|
119
|
-
esm: options.esm
|
|
120
|
-
});
|
|
103
|
+
this.child.send({ input, isfn, cwd: options.cwd, esm: options.esm });
|
|
121
104
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
{
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
this["on" + event] = fn;
|
|
129
|
-
}
|
|
130
|
-
}, "addEventListener")
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
key: "postMessage",
|
|
134
|
-
value: /* @__PURE__ */ __name(function postMessage(msg) {
|
|
135
|
-
this.child.send(JSON.stringify({
|
|
136
|
-
data: msg
|
|
137
|
-
}, null, 0));
|
|
138
|
-
}, "postMessage")
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
key: "terminate",
|
|
142
|
-
value: /* @__PURE__ */ __name(function terminate() {
|
|
143
|
-
this.child.kill("SIGINT");
|
|
144
|
-
}, "terminate")
|
|
105
|
+
_createClass(Worker2, [{
|
|
106
|
+
key: "addEventListener",
|
|
107
|
+
value: function addEventListener(event, fn) {
|
|
108
|
+
if (events.test(event)) {
|
|
109
|
+
this["on" + event] = fn;
|
|
110
|
+
}
|
|
145
111
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
112
|
+
}, {
|
|
113
|
+
key: "postMessage",
|
|
114
|
+
value: function postMessage(msg) {
|
|
115
|
+
this.child.send(JSON.stringify({ data: msg }, null, 0));
|
|
116
|
+
}
|
|
117
|
+
}, {
|
|
118
|
+
key: "terminate",
|
|
119
|
+
value: function terminate() {
|
|
120
|
+
this.child.kill("SIGINT");
|
|
121
|
+
}
|
|
122
|
+
}], [{
|
|
123
|
+
key: "setRange",
|
|
124
|
+
value: function setRange(min, max) {
|
|
125
|
+
if (min >= max) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
range.min = min;
|
|
129
|
+
range.max = max;
|
|
130
|
+
return true;
|
|
157
131
|
}
|
|
158
|
-
]);
|
|
132
|
+
}]);
|
|
159
133
|
return Worker2;
|
|
160
134
|
}();
|
|
161
135
|
module.exports = Worker;
|
|
@@ -170,19 +144,15 @@ import { cwd } from "process";
|
|
|
170
144
|
import { Worker as NativeWorker } from "worker_threads";
|
|
171
145
|
var defaultPoolSize = cpus().length;
|
|
172
146
|
function resolveScriptPath(scriptPath, baseURL) {
|
|
173
|
-
const makeAbsolute =
|
|
147
|
+
const makeAbsolute = (filePath) => {
|
|
174
148
|
return path.isAbsolute(filePath) ? filePath : path.join(baseURL ?? cwd(), filePath);
|
|
175
|
-
}
|
|
149
|
+
};
|
|
176
150
|
const absolutePath = makeAbsolute(scriptPath);
|
|
177
151
|
return absolutePath;
|
|
178
152
|
}
|
|
179
|
-
__name(resolveScriptPath, "resolveScriptPath");
|
|
180
153
|
function initWorkerThreadsWorker() {
|
|
181
154
|
let allWorkers = [];
|
|
182
|
-
|
|
183
|
-
static {
|
|
184
|
-
__name(this, "Worker");
|
|
185
|
-
}
|
|
155
|
+
class Worker extends NativeWorker {
|
|
186
156
|
mappedEventListeners;
|
|
187
157
|
constructor(scriptPath, options) {
|
|
188
158
|
const resolvedScriptPath = options && options.fromSource ? null : resolveScriptPath(scriptPath, (options ?? {})._baseURL);
|
|
@@ -190,20 +160,15 @@ function initWorkerThreadsWorker() {
|
|
|
190
160
|
super(resolvedScriptPath, options);
|
|
191
161
|
} else {
|
|
192
162
|
const sourceCode = scriptPath;
|
|
193
|
-
super(sourceCode, {
|
|
194
|
-
...options,
|
|
195
|
-
eval: true
|
|
196
|
-
});
|
|
163
|
+
super(sourceCode, { ...options, eval: true });
|
|
197
164
|
}
|
|
198
165
|
this.mappedEventListeners = /* @__PURE__ */ new WeakMap();
|
|
199
166
|
allWorkers.push(this);
|
|
200
167
|
}
|
|
201
168
|
addEventListener(eventName, rawListener) {
|
|
202
|
-
const listener =
|
|
203
|
-
rawListener({
|
|
204
|
-
|
|
205
|
-
});
|
|
206
|
-
}, "listener");
|
|
169
|
+
const listener = (message) => {
|
|
170
|
+
rawListener({ data: message });
|
|
171
|
+
};
|
|
207
172
|
this.mappedEventListeners.set(rawListener, listener);
|
|
208
173
|
this.on(eventName, listener);
|
|
209
174
|
}
|
|
@@ -211,55 +176,41 @@ function initWorkerThreadsWorker() {
|
|
|
211
176
|
const listener = this.mappedEventListeners.get(rawListener) || rawListener;
|
|
212
177
|
this.off(eventName, listener);
|
|
213
178
|
}
|
|
214
|
-
}
|
|
215
|
-
const terminateWorkersAndMaster =
|
|
216
|
-
Promise.all(allWorkers.map((worker) => worker.terminate())).then(
|
|
179
|
+
}
|
|
180
|
+
const terminateWorkersAndMaster = () => {
|
|
181
|
+
Promise.all(allWorkers.map((worker) => worker.terminate())).then(
|
|
182
|
+
() => process.exit(0),
|
|
183
|
+
() => process.exit(1)
|
|
184
|
+
);
|
|
217
185
|
allWorkers = [];
|
|
218
|
-
}
|
|
186
|
+
};
|
|
219
187
|
process.on("SIGINT", () => terminateWorkersAndMaster());
|
|
220
188
|
process.on("SIGTERM", () => terminateWorkersAndMaster());
|
|
221
|
-
|
|
222
|
-
static {
|
|
223
|
-
__name(this, "BlobWorker");
|
|
224
|
-
}
|
|
189
|
+
class BlobWorker extends Worker {
|
|
225
190
|
constructor(blob, options) {
|
|
226
|
-
super(Buffer.from(blob).toString("utf-8"), {
|
|
227
|
-
...options,
|
|
228
|
-
fromSource: true
|
|
229
|
-
});
|
|
191
|
+
super(Buffer.from(blob).toString("utf-8"), { ...options, fromSource: true });
|
|
230
192
|
}
|
|
231
193
|
static fromText(source, options) {
|
|
232
|
-
return new Worker(source, {
|
|
233
|
-
...options,
|
|
234
|
-
fromSource: true
|
|
235
|
-
});
|
|
194
|
+
return new Worker(source, { ...options, fromSource: true });
|
|
236
195
|
}
|
|
237
|
-
}
|
|
196
|
+
}
|
|
238
197
|
return {
|
|
239
198
|
blob: BlobWorker,
|
|
240
199
|
default: Worker
|
|
241
200
|
};
|
|
242
201
|
}
|
|
243
|
-
__name(initWorkerThreadsWorker, "initWorkerThreadsWorker");
|
|
244
202
|
function initTinyWorker() {
|
|
245
203
|
const TinyWorker = require_lib();
|
|
246
204
|
let allWorkers = [];
|
|
247
|
-
|
|
248
|
-
static {
|
|
249
|
-
__name(this, "Worker");
|
|
250
|
-
}
|
|
205
|
+
class Worker extends TinyWorker {
|
|
251
206
|
emitter;
|
|
252
207
|
constructor(scriptPath, options) {
|
|
253
208
|
const resolvedScriptPath = options && options.fromSource ? null : process.platform === "win32" ? `file:///${resolveScriptPath(scriptPath).replaceAll("\\", "/")}` : resolveScriptPath(scriptPath);
|
|
254
209
|
if (resolvedScriptPath) {
|
|
255
|
-
super(resolvedScriptPath, [], {
|
|
256
|
-
esm: true
|
|
257
|
-
});
|
|
210
|
+
super(resolvedScriptPath, [], { esm: true });
|
|
258
211
|
} else {
|
|
259
212
|
const sourceCode = scriptPath;
|
|
260
|
-
super(new Function(sourceCode), [], {
|
|
261
|
-
esm: true
|
|
262
|
-
});
|
|
213
|
+
super(new Function(sourceCode), [], { esm: true });
|
|
263
214
|
}
|
|
264
215
|
allWorkers.push(this);
|
|
265
216
|
this.emitter = new EventEmitter();
|
|
@@ -276,36 +227,29 @@ function initTinyWorker() {
|
|
|
276
227
|
allWorkers = allWorkers.filter((worker) => worker !== this);
|
|
277
228
|
return super.terminate();
|
|
278
229
|
}
|
|
279
|
-
}
|
|
280
|
-
const terminateWorkersAndMaster =
|
|
281
|
-
Promise.all(allWorkers.map((worker) => worker.terminate())).then(
|
|
230
|
+
}
|
|
231
|
+
const terminateWorkersAndMaster = () => {
|
|
232
|
+
Promise.all(allWorkers.map((worker) => worker.terminate())).then(
|
|
233
|
+
() => process.exit(0),
|
|
234
|
+
() => process.exit(1)
|
|
235
|
+
);
|
|
282
236
|
allWorkers = [];
|
|
283
|
-
}
|
|
237
|
+
};
|
|
284
238
|
process.on("SIGINT", () => terminateWorkersAndMaster());
|
|
285
239
|
process.on("SIGTERM", () => terminateWorkersAndMaster());
|
|
286
|
-
|
|
287
|
-
static {
|
|
288
|
-
__name(this, "BlobWorker");
|
|
289
|
-
}
|
|
240
|
+
class BlobWorker extends Worker {
|
|
290
241
|
constructor(blob, options) {
|
|
291
|
-
super(Buffer.from(blob).toString("utf-8"), {
|
|
292
|
-
...options,
|
|
293
|
-
fromSource: true
|
|
294
|
-
});
|
|
242
|
+
super(Buffer.from(blob).toString("utf-8"), { ...options, fromSource: true });
|
|
295
243
|
}
|
|
296
244
|
static fromText(source, options) {
|
|
297
|
-
return new Worker(source, {
|
|
298
|
-
...options,
|
|
299
|
-
fromSource: true
|
|
300
|
-
});
|
|
245
|
+
return new Worker(source, { ...options, fromSource: true });
|
|
301
246
|
}
|
|
302
|
-
}
|
|
247
|
+
}
|
|
303
248
|
return {
|
|
304
249
|
blob: BlobWorker,
|
|
305
250
|
default: Worker
|
|
306
251
|
};
|
|
307
252
|
}
|
|
308
|
-
__name(initTinyWorker, "initTinyWorker");
|
|
309
253
|
var implementation;
|
|
310
254
|
var isTinyWorker;
|
|
311
255
|
function selectWorkerImplementation() {
|
|
@@ -319,14 +263,12 @@ function selectWorkerImplementation() {
|
|
|
319
263
|
return initTinyWorker();
|
|
320
264
|
}
|
|
321
265
|
}
|
|
322
|
-
__name(selectWorkerImplementation, "selectWorkerImplementation");
|
|
323
266
|
function getWorkerImplementation() {
|
|
324
267
|
if (!implementation) {
|
|
325
268
|
implementation = selectWorkerImplementation();
|
|
326
269
|
}
|
|
327
270
|
return implementation;
|
|
328
271
|
}
|
|
329
|
-
__name(getWorkerImplementation, "getWorkerImplementation");
|
|
330
272
|
function isWorkerRuntime() {
|
|
331
273
|
if (isTinyWorker) {
|
|
332
274
|
return globalThis !== void 0 && self["postMessage"] ? true : false;
|
|
@@ -335,7 +277,6 @@ function isWorkerRuntime() {
|
|
|
335
277
|
return !isMainThread;
|
|
336
278
|
}
|
|
337
279
|
}
|
|
338
|
-
__name(isWorkerRuntime, "isWorkerRuntime");
|
|
339
280
|
export {
|
|
340
281
|
defaultPoolSize,
|
|
341
282
|
getWorkerImplementation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../node_modules/.store/tiny-worker-npm-2.3.0-38c7100e1d/package/lib/index.js","../../../src/master/implementation.node.ts"],"sourcesContent":["\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar path = require(\"path\"),\n fork = require(\"child_process\").fork,\n worker = path.join(__dirname, \"worker.js\"),\n events = /^(error|message)$/,\n defaultPorts = { inspect: 9229, debug: 5858 };\nvar range = { min: 1, max: 300 };\n\nvar Worker = function () {\n\tfunction Worker(arg) {\n\t\tvar _this = this;\n\n\t\tvar args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\t\tvar options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { cwd: process.cwd() };\n\n\t\t_classCallCheck(this, Worker);\n\n\t\tvar isfn = typeof arg === \"function\",\n\t\t input = isfn ? arg.toString() : arg;\n\n\t\tif (!options.cwd) {\n\t\t\toptions.cwd = process.cwd();\n\t\t}\n\n\t\t//get all debug related parameters\n\t\tvar debugVars = process.execArgv.filter(function (execArg) {\n\t\t\treturn (/(debug|inspect)/.test(execArg)\n\t\t\t);\n\t\t});\n\t\tif (debugVars.length > 0 && !options.noDebugRedirection) {\n\t\t\tif (!options.execArgv) {\n\t\t\t\t//if no execArgs are given copy all arguments\n\t\t\t\tdebugVars = Array.from(process.execArgv);\n\t\t\t\toptions.execArgv = [];\n\t\t\t}\n\n\t\t\tvar inspectIndex = debugVars.findIndex(function (debugArg) {\n\t\t\t\t//get index of inspect parameter\n\t\t\t\treturn (/^--inspect(-brk)?(=\\d+)?$/.test(debugArg)\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tvar debugIndex = debugVars.findIndex(function (debugArg) {\n\t\t\t\t//get index of debug parameter\n\t\t\t\treturn (/^--debug(-brk)?(=\\d+)?$/.test(debugArg)\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tvar portIndex = inspectIndex >= 0 ? inspectIndex : debugIndex; //get index of port, inspect has higher priority\n\n\t\t\tif (portIndex >= 0) {\n\t\t\t\tvar match = /^--(debug|inspect)(?:-brk)?(?:=(\\d+))?$/.exec(debugVars[portIndex]); //get port\n\t\t\t\tvar port = defaultPorts[match[1]];\n\t\t\t\tif (match[2]) {\n\t\t\t\t\tport = parseInt(match[2]);\n\t\t\t\t}\n\t\t\t\tdebugVars[portIndex] = \"--\" + match[1] + \"=\" + (port + range.min + Math.floor(Math.random() * (range.max - range.min))); //new parameter\n\n\t\t\t\tif (debugIndex >= 0 && debugIndex !== portIndex) {\n\t\t\t\t\t//remove \"-brk\" from debug if there\n\t\t\t\t\tmatch = /^(--debug)(?:-brk)?(.*)/.exec(debugVars[debugIndex]);\n\t\t\t\t\tdebugVars[debugIndex] = match[1] + (match[2] ? match[2] : \"\");\n\t\t\t\t}\n\t\t\t}\n\t\t\toptions.execArgv = options.execArgv.concat(debugVars);\n\t\t}\n\n\t\tdelete options.noDebugRedirection;\n\n\t\tthis.child = fork(worker, args, options);\n\t\tthis.onerror = undefined;\n\t\tthis.onmessage = undefined;\n\n\t\tthis.child.on(\"error\", function (e) {\n\t\t\tif (_this.onerror) {\n\t\t\t\t_this.onerror.call(_this, e);\n\t\t\t}\n\t\t});\n\n\t\tthis.child.on(\"message\", function (msg) {\n\t\t\tvar message = JSON.parse(msg);\n\t\t\tvar error = void 0;\n\n\t\t\tif (!message.error && _this.onmessage) {\n\t\t\t\t_this.onmessage.call(_this, message);\n\t\t\t}\n\n\t\t\tif (message.error && _this.onerror) {\n\t\t\t\terror = new Error(message.error);\n\t\t\t\terror.stack = message.stack;\n\n\t\t\t\t_this.onerror.call(_this, error);\n\t\t\t}\n\t\t});\n\n\t\tthis.child.send({ input: input, isfn: isfn, cwd: options.cwd, esm: options.esm });\n\t}\n\n\t_createClass(Worker, [{\n\t\tkey: \"addEventListener\",\n\t\tvalue: function addEventListener(event, fn) {\n\t\t\tif (events.test(event)) {\n\t\t\t\tthis[\"on\" + event] = fn;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"postMessage\",\n\t\tvalue: function postMessage(msg) {\n\t\t\tthis.child.send(JSON.stringify({ data: msg }, null, 0));\n\t\t}\n\t}, {\n\t\tkey: \"terminate\",\n\t\tvalue: function terminate() {\n\t\t\tthis.child.kill(\"SIGINT\");\n\t\t}\n\t}], [{\n\t\tkey: \"setRange\",\n\t\tvalue: function setRange(min, max) {\n\t\t\tif (min >= max) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\trange.min = min;\n\t\t\trange.max = max;\n\n\t\t\treturn true;\n\t\t}\n\t}]);\n\n\treturn Worker;\n}();\n\nmodule.exports = Worker;\n","/* eslint-disable @typescript-eslint/no-require-imports */\n\n/* eslint-disable unicorn/prefer-add-event-listener */\n/* eslint-disable unicorn/prefer-event-target */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unicorn/text-encoding-identifier-case */\n\nimport { EventEmitter } from 'node:events'\nimport { cpus } from 'node:os'\nimport path from 'node:path'\nimport { cwd } from 'node:process'\nimport { Worker as NativeWorker } from 'node:worker_threads'\n\nimport type {\n ImplementationExport, ThreadsWorkerOptions, WorkerImplementation,\n// eslint-disable-next-line import-x/no-internal-modules\n} from '../types/master.ts'\n\ndeclare const __non_webpack_require__: typeof require\n\ntype WorkerEventName = 'error' | 'message'\n\nexport const defaultPoolSize = cpus().length\n\nfunction resolveScriptPath(scriptPath: string, baseURL?: string | undefined) {\n const makeAbsolute = (filePath: string) => {\n return path.isAbsolute(filePath) ? filePath : path.join(baseURL ?? cwd(), filePath)\n }\n\n const absolutePath = makeAbsolute(scriptPath)\n return absolutePath\n}\n\nfunction initWorkerThreadsWorker(): ImplementationExport {\n let allWorkers: Array<NativeWorker> = []\n\n class Worker extends NativeWorker {\n private mappedEventListeners: WeakMap<EventListener, EventListener>\n\n constructor(scriptPath: string, options?: ThreadsWorkerOptions & { fromSource: boolean }) {\n const resolvedScriptPath = options && options.fromSource ? null : resolveScriptPath(scriptPath, (options ?? {})._baseURL)\n if (resolvedScriptPath) {\n super(resolvedScriptPath, options)\n } else {\n // `options.fromSource` is true\n const sourceCode = scriptPath\n super(sourceCode, { ...options, eval: true })\n }\n\n this.mappedEventListeners = new WeakMap()\n allWorkers.push(this)\n }\n\n addEventListener(eventName: string, rawListener: EventListener) {\n const listener = (message: any) => {\n rawListener({ data: message } as any)\n }\n this.mappedEventListeners.set(rawListener, listener)\n this.on(eventName, listener)\n }\n\n removeEventListener(eventName: string, rawListener: EventListener) {\n const listener = this.mappedEventListeners.get(rawListener) || rawListener\n this.off(eventName, listener)\n }\n }\n\n const terminateWorkersAndMaster = () => {\n // we should terminate all workers and then gracefully shutdown self process\n Promise.all(allWorkers.map(worker => worker.terminate())).then(\n () => process.exit(0),\n () => process.exit(1),\n )\n allWorkers = []\n }\n\n // Take care to not leave orphaned processes behind. See #147.\n process.on('SIGINT', () => terminateWorkersAndMaster())\n process.on('SIGTERM', () => terminateWorkersAndMaster())\n\n class BlobWorker extends Worker {\n constructor(blob: Uint8Array, options?: ThreadsWorkerOptions) {\n super(Buffer.from(blob).toString('utf-8'), { ...options, fromSource: true })\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation {\n return new Worker(source, { ...options, fromSource: true }) as any\n }\n }\n\n return {\n blob: BlobWorker as any,\n default: Worker as any,\n }\n}\n\nfunction initTinyWorker(): ImplementationExport {\n const TinyWorker = require('tiny-worker')\n\n let allWorkers: Array<typeof TinyWorker> = []\n\n class Worker extends TinyWorker {\n private emitter: EventEmitter\n\n constructor(scriptPath: string, options?: ThreadsWorkerOptions & { fromSource?: boolean }) {\n // Need to apply a work-around for Windows or it will choke upon the absolute path\n // (`Error [ERR_INVALID_PROTOCOL]: Protocol 'c:' not supported`)\n const resolvedScriptPath\n = options && options.fromSource\n ? null\n : process.platform === 'win32'\n ? `file:///${resolveScriptPath(scriptPath).replaceAll('\\\\', '/')}`\n : resolveScriptPath(scriptPath)\n\n if (resolvedScriptPath) {\n super(resolvedScriptPath, [], { esm: true })\n } else {\n // `options.fromSource` is true\n const sourceCode = scriptPath\n super(new Function(sourceCode), [], { esm: true })\n }\n\n allWorkers.push(this)\n\n this.emitter = new EventEmitter()\n this.onerror = (error: Error) => this.emitter.emit('error', error)\n this.onmessage = (message: MessageEvent) => this.emitter.emit('message', message)\n }\n\n addEventListener(eventName: WorkerEventName, listener: EventListener) {\n this.emitter.addListener(eventName, listener)\n }\n\n removeEventListener(eventName: WorkerEventName, listener: EventListener) {\n this.emitter.removeListener(eventName, listener)\n }\n\n terminate() {\n allWorkers = allWorkers.filter(worker => worker !== this)\n return super.terminate()\n }\n }\n\n const terminateWorkersAndMaster = () => {\n // we should terminate all workers and then gracefully shutdown self process\n Promise.all(allWorkers.map(worker => worker.terminate())).then(\n () => process.exit(0),\n () => process.exit(1),\n )\n allWorkers = []\n }\n\n // Take care to not leave orphaned processes behind\n // See <https://github.com/avoidwork/tiny-worker#faq>\n process.on('SIGINT', () => terminateWorkersAndMaster())\n process.on('SIGTERM', () => terminateWorkersAndMaster())\n\n class BlobWorker extends Worker {\n constructor(blob: Uint8Array, options?: ThreadsWorkerOptions) {\n super(Buffer.from(blob).toString('utf-8'), { ...options, fromSource: true })\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation {\n return new Worker(source, { ...options, fromSource: true }) as any\n }\n }\n\n return {\n blob: BlobWorker as any,\n default: Worker as any,\n }\n}\n\nlet implementation: ImplementationExport\nlet isTinyWorker: boolean\n\nfunction selectWorkerImplementation(): ImplementationExport {\n try {\n isTinyWorker = false\n return initWorkerThreadsWorker()\n } catch (ex) {\n console.error(ex)\n // tslint:disable-next-line no-console\n console.debug('Node worker_threads not available. Trying to fall back to tiny-worker polyfill...')\n isTinyWorker = true\n return initTinyWorker()\n }\n}\n\nexport function getWorkerImplementation(): ImplementationExport {\n if (!implementation) {\n implementation = selectWorkerImplementation()\n }\n return implementation\n}\n\nexport function isWorkerRuntime() {\n if (isTinyWorker) {\n return globalThis !== undefined && self['postMessage'] ? true : false\n } else {\n // Webpack hack\n const isMainThread\n = typeof __non_webpack_require__ === 'function'\n ? __non_webpack_require__('worker_threads').isMainThread\n : eval('require')('worker_threads').isMainThread\n return !isMainThread\n }\n}\n"],"mappings":"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","names":["_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","path","require","fork","worker","join","__dirname","events","defaultPorts","inspect","debug","range","min","max","Worker","arg","_this","args","arguments","undefined","options","cwd","process","isfn","input","toString","debugVars","execArgv","filter","execArg","test","noDebugRedirection","Array","from","inspectIndex","findIndex","debugArg","debugIndex","portIndex","match","exec","port","parseInt","Math","floor","random","concat","child","onerror","onmessage","on","e","call","msg","message","JSON","parse","error","Error","stack","send","esm","value","addEventListener","event","fn","postMessage","stringify","data","terminate","kill","setRange","module","exports","EventEmitter","cpus","path","cwd","Worker","NativeWorker","defaultPoolSize","cpus","length","resolveScriptPath","scriptPath","baseURL","makeAbsolute","filePath","path","isAbsolute","join","cwd","absolutePath","initWorkerThreadsWorker","allWorkers","Worker","NativeWorker","mappedEventListeners","options","resolvedScriptPath","fromSource","_baseURL","sourceCode","eval","WeakMap","push","addEventListener","eventName","rawListener","listener","message","data","set","on","removeEventListener","get","off","terminateWorkersAndMaster","Promise","all","map","worker","terminate","then","process","exit","BlobWorker","blob","Buffer","from","toString","fromText","source","default","initTinyWorker","TinyWorker","require","emitter","platform","replaceAll","esm","Function","EventEmitter","onerror","error","emit","onmessage","addListener","removeListener","filter","implementation","isTinyWorker","selectWorkerImplementation","ex","console","debug","getWorkerImplementation","isWorkerRuntime","globalThis","undefined","self","isMainThread","__non_webpack_require__"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../node_modules/.store/tiny-worker-npm-2.3.0-38c7100e1d/package/lib/index.js","../../../src/master/implementation.node.ts"],"sourcesContent":["\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar path = require(\"path\"),\n fork = require(\"child_process\").fork,\n worker = path.join(__dirname, \"worker.js\"),\n events = /^(error|message)$/,\n defaultPorts = { inspect: 9229, debug: 5858 };\nvar range = { min: 1, max: 300 };\n\nvar Worker = function () {\n\tfunction Worker(arg) {\n\t\tvar _this = this;\n\n\t\tvar args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\t\tvar options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { cwd: process.cwd() };\n\n\t\t_classCallCheck(this, Worker);\n\n\t\tvar isfn = typeof arg === \"function\",\n\t\t input = isfn ? arg.toString() : arg;\n\n\t\tif (!options.cwd) {\n\t\t\toptions.cwd = process.cwd();\n\t\t}\n\n\t\t//get all debug related parameters\n\t\tvar debugVars = process.execArgv.filter(function (execArg) {\n\t\t\treturn (/(debug|inspect)/.test(execArg)\n\t\t\t);\n\t\t});\n\t\tif (debugVars.length > 0 && !options.noDebugRedirection) {\n\t\t\tif (!options.execArgv) {\n\t\t\t\t//if no execArgs are given copy all arguments\n\t\t\t\tdebugVars = Array.from(process.execArgv);\n\t\t\t\toptions.execArgv = [];\n\t\t\t}\n\n\t\t\tvar inspectIndex = debugVars.findIndex(function (debugArg) {\n\t\t\t\t//get index of inspect parameter\n\t\t\t\treturn (/^--inspect(-brk)?(=\\d+)?$/.test(debugArg)\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tvar debugIndex = debugVars.findIndex(function (debugArg) {\n\t\t\t\t//get index of debug parameter\n\t\t\t\treturn (/^--debug(-brk)?(=\\d+)?$/.test(debugArg)\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tvar portIndex = inspectIndex >= 0 ? inspectIndex : debugIndex; //get index of port, inspect has higher priority\n\n\t\t\tif (portIndex >= 0) {\n\t\t\t\tvar match = /^--(debug|inspect)(?:-brk)?(?:=(\\d+))?$/.exec(debugVars[portIndex]); //get port\n\t\t\t\tvar port = defaultPorts[match[1]];\n\t\t\t\tif (match[2]) {\n\t\t\t\t\tport = parseInt(match[2]);\n\t\t\t\t}\n\t\t\t\tdebugVars[portIndex] = \"--\" + match[1] + \"=\" + (port + range.min + Math.floor(Math.random() * (range.max - range.min))); //new parameter\n\n\t\t\t\tif (debugIndex >= 0 && debugIndex !== portIndex) {\n\t\t\t\t\t//remove \"-brk\" from debug if there\n\t\t\t\t\tmatch = /^(--debug)(?:-brk)?(.*)/.exec(debugVars[debugIndex]);\n\t\t\t\t\tdebugVars[debugIndex] = match[1] + (match[2] ? match[2] : \"\");\n\t\t\t\t}\n\t\t\t}\n\t\t\toptions.execArgv = options.execArgv.concat(debugVars);\n\t\t}\n\n\t\tdelete options.noDebugRedirection;\n\n\t\tthis.child = fork(worker, args, options);\n\t\tthis.onerror = undefined;\n\t\tthis.onmessage = undefined;\n\n\t\tthis.child.on(\"error\", function (e) {\n\t\t\tif (_this.onerror) {\n\t\t\t\t_this.onerror.call(_this, e);\n\t\t\t}\n\t\t});\n\n\t\tthis.child.on(\"message\", function (msg) {\n\t\t\tvar message = JSON.parse(msg);\n\t\t\tvar error = void 0;\n\n\t\t\tif (!message.error && _this.onmessage) {\n\t\t\t\t_this.onmessage.call(_this, message);\n\t\t\t}\n\n\t\t\tif (message.error && _this.onerror) {\n\t\t\t\terror = new Error(message.error);\n\t\t\t\terror.stack = message.stack;\n\n\t\t\t\t_this.onerror.call(_this, error);\n\t\t\t}\n\t\t});\n\n\t\tthis.child.send({ input: input, isfn: isfn, cwd: options.cwd, esm: options.esm });\n\t}\n\n\t_createClass(Worker, [{\n\t\tkey: \"addEventListener\",\n\t\tvalue: function addEventListener(event, fn) {\n\t\t\tif (events.test(event)) {\n\t\t\t\tthis[\"on\" + event] = fn;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"postMessage\",\n\t\tvalue: function postMessage(msg) {\n\t\t\tthis.child.send(JSON.stringify({ data: msg }, null, 0));\n\t\t}\n\t}, {\n\t\tkey: \"terminate\",\n\t\tvalue: function terminate() {\n\t\t\tthis.child.kill(\"SIGINT\");\n\t\t}\n\t}], [{\n\t\tkey: \"setRange\",\n\t\tvalue: function setRange(min, max) {\n\t\t\tif (min >= max) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\trange.min = min;\n\t\t\trange.max = max;\n\n\t\t\treturn true;\n\t\t}\n\t}]);\n\n\treturn Worker;\n}();\n\nmodule.exports = Worker;\n","/* eslint-disable @typescript-eslint/no-require-imports */\n\n/* eslint-disable unicorn/prefer-add-event-listener */\n/* eslint-disable unicorn/prefer-event-target */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unicorn/text-encoding-identifier-case */\n\nimport { EventEmitter } from 'node:events'\nimport { cpus } from 'node:os'\nimport path from 'node:path'\nimport { cwd } from 'node:process'\nimport { Worker as NativeWorker } from 'node:worker_threads'\n\nimport type {\n ImplementationExport, ThreadsWorkerOptions, WorkerImplementation,\n// eslint-disable-next-line import-x/no-internal-modules\n} from '../types/master.ts'\n\ndeclare const __non_webpack_require__: typeof require\n\ntype WorkerEventName = 'error' | 'message'\n\nexport const defaultPoolSize = cpus().length\n\nfunction resolveScriptPath(scriptPath: string, baseURL?: string | undefined) {\n const makeAbsolute = (filePath: string) => {\n return path.isAbsolute(filePath) ? filePath : path.join(baseURL ?? cwd(), filePath)\n }\n\n const absolutePath = makeAbsolute(scriptPath)\n return absolutePath\n}\n\nfunction initWorkerThreadsWorker(): ImplementationExport {\n let allWorkers: Array<NativeWorker> = []\n\n class Worker extends NativeWorker {\n private mappedEventListeners: WeakMap<EventListener, EventListener>\n\n constructor(scriptPath: string, options?: ThreadsWorkerOptions & { fromSource: boolean }) {\n const resolvedScriptPath = options && options.fromSource ? null : resolveScriptPath(scriptPath, (options ?? {})._baseURL)\n if (resolvedScriptPath) {\n super(resolvedScriptPath, options)\n } else {\n // `options.fromSource` is true\n const sourceCode = scriptPath\n super(sourceCode, { ...options, eval: true })\n }\n\n this.mappedEventListeners = new WeakMap()\n allWorkers.push(this)\n }\n\n addEventListener(eventName: string, rawListener: EventListener) {\n const listener = (message: any) => {\n rawListener({ data: message } as any)\n }\n this.mappedEventListeners.set(rawListener, listener)\n this.on(eventName, listener)\n }\n\n removeEventListener(eventName: string, rawListener: EventListener) {\n const listener = this.mappedEventListeners.get(rawListener) || rawListener\n this.off(eventName, listener)\n }\n }\n\n const terminateWorkersAndMaster = () => {\n // we should terminate all workers and then gracefully shutdown self process\n Promise.all(allWorkers.map(worker => worker.terminate())).then(\n () => process.exit(0),\n () => process.exit(1),\n )\n allWorkers = []\n }\n\n // Take care to not leave orphaned processes behind. See #147.\n process.on('SIGINT', () => terminateWorkersAndMaster())\n process.on('SIGTERM', () => terminateWorkersAndMaster())\n\n class BlobWorker extends Worker {\n constructor(blob: Uint8Array, options?: ThreadsWorkerOptions) {\n super(Buffer.from(blob).toString('utf-8'), { ...options, fromSource: true })\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation {\n return new Worker(source, { ...options, fromSource: true }) as any\n }\n }\n\n return {\n blob: BlobWorker as any,\n default: Worker as any,\n }\n}\n\nfunction initTinyWorker(): ImplementationExport {\n const TinyWorker = require('tiny-worker')\n\n let allWorkers: Array<typeof TinyWorker> = []\n\n class Worker extends TinyWorker {\n private emitter: EventEmitter\n\n constructor(scriptPath: string, options?: ThreadsWorkerOptions & { fromSource?: boolean }) {\n // Need to apply a work-around for Windows or it will choke upon the absolute path\n // (`Error [ERR_INVALID_PROTOCOL]: Protocol 'c:' not supported`)\n const resolvedScriptPath\n = options && options.fromSource\n ? null\n : process.platform === 'win32'\n ? `file:///${resolveScriptPath(scriptPath).replaceAll('\\\\', '/')}`\n : resolveScriptPath(scriptPath)\n\n if (resolvedScriptPath) {\n super(resolvedScriptPath, [], { esm: true })\n } else {\n // `options.fromSource` is true\n const sourceCode = scriptPath\n super(new Function(sourceCode), [], { esm: true })\n }\n\n allWorkers.push(this)\n\n this.emitter = new EventEmitter()\n this.onerror = (error: Error) => this.emitter.emit('error', error)\n this.onmessage = (message: MessageEvent) => this.emitter.emit('message', message)\n }\n\n addEventListener(eventName: WorkerEventName, listener: EventListener) {\n this.emitter.addListener(eventName, listener)\n }\n\n removeEventListener(eventName: WorkerEventName, listener: EventListener) {\n this.emitter.removeListener(eventName, listener)\n }\n\n terminate() {\n allWorkers = allWorkers.filter(worker => worker !== this)\n return super.terminate()\n }\n }\n\n const terminateWorkersAndMaster = () => {\n // we should terminate all workers and then gracefully shutdown self process\n Promise.all(allWorkers.map(worker => worker.terminate())).then(\n () => process.exit(0),\n () => process.exit(1),\n )\n allWorkers = []\n }\n\n // Take care to not leave orphaned processes behind\n // See <https://github.com/avoidwork/tiny-worker#faq>\n process.on('SIGINT', () => terminateWorkersAndMaster())\n process.on('SIGTERM', () => terminateWorkersAndMaster())\n\n class BlobWorker extends Worker {\n constructor(blob: Uint8Array, options?: ThreadsWorkerOptions) {\n super(Buffer.from(blob).toString('utf-8'), { ...options, fromSource: true })\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation {\n return new Worker(source, { ...options, fromSource: true }) as any\n }\n }\n\n return {\n blob: BlobWorker as any,\n default: Worker as any,\n }\n}\n\nlet implementation: ImplementationExport\nlet isTinyWorker: boolean\n\nfunction selectWorkerImplementation(): ImplementationExport {\n try {\n isTinyWorker = false\n return initWorkerThreadsWorker()\n } catch (ex) {\n console.error(ex)\n // tslint:disable-next-line no-console\n console.debug('Node worker_threads not available. Trying to fall back to tiny-worker polyfill...')\n isTinyWorker = true\n return initTinyWorker()\n }\n}\n\nexport function getWorkerImplementation(): ImplementationExport {\n if (!implementation) {\n implementation = selectWorkerImplementation()\n }\n return implementation\n}\n\nexport function isWorkerRuntime() {\n if (isTinyWorker) {\n return globalThis !== undefined && self['postMessage'] ? true : false\n } else {\n // Webpack hack\n const isMainThread\n = typeof __non_webpack_require__ === 'function'\n ? __non_webpack_require__('worker_threads').isMainThread\n : eval('require')('worker_threads').isMainThread\n return !isMainThread\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA;AAAA;AAAA;AAEA,QAAI,eAAe,2BAAY;AAAE,eAAS,iBAAiB,QAAQ,OAAO;AAAE,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AAAE,cAAI,aAAa,MAAM,CAAC;AAAG,qBAAW,aAAa,WAAW,cAAc;AAAO,qBAAW,eAAe;AAAM,cAAI,WAAW,WAAY,YAAW,WAAW;AAAM,iBAAO,eAAe,QAAQ,WAAW,KAAK,UAAU;AAAA,QAAG;AAAA,MAAE;AAAE,aAAO,SAAU,aAAa,YAAY,aAAa;AAAE,YAAI,WAAY,kBAAiB,YAAY,WAAW,UAAU;AAAG,YAAI,YAAa,kBAAiB,aAAa,WAAW;AAAG,eAAO;AAAA,MAAa;AAAA,IAAG,EAAE;AAEljB,aAAS,gBAAgB,UAAU,aAAa;AAAE,UAAI,EAAE,oBAAoB,cAAc;AAAE,cAAM,IAAI,UAAU,mCAAmC;AAAA,MAAG;AAAA,IAAE;AAExJ,QAAIA,QAAO,UAAQ,MAAM;AAAzB,QACI,OAAO,UAAQ,eAAe,EAAE;AADpC,QAEI,SAASA,MAAK,KAAK,WAAW,WAAW;AAF7C,QAGI,SAAS;AAHb,QAII,eAAe,EAAE,SAAS,MAAM,OAAO,KAAK;AAChD,QAAI,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI;AAE/B,QAAI,SAAS,WAAY;AACxB,eAASC,QAAO,KAAK;AACpB,YAAI,QAAQ;AAEZ,YAAI,OAAO,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAC;AAChF,YAAI,UAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE;AAEvG,wBAAgB,MAAMA,OAAM;AAE5B,YAAI,OAAO,OAAO,QAAQ,YACtB,QAAQ,OAAO,IAAI,SAAS,IAAI;AAEpC,YAAI,CAAC,QAAQ,KAAK;AACjB,kBAAQ,MAAM,QAAQ,IAAI;AAAA,QAC3B;AAGA,YAAI,YAAY,QAAQ,SAAS,OAAO,SAAU,SAAS;AAC1D,iBAAQ,kBAAkB,KAAK,OAAO;AAAA,QAEvC,CAAC;AACD,YAAI,UAAU,SAAS,KAAK,CAAC,QAAQ,oBAAoB;AACxD,cAAI,CAAC,QAAQ,UAAU;AAEtB,wBAAY,MAAM,KAAK,QAAQ,QAAQ;AACvC,oBAAQ,WAAW,CAAC;AAAA,UACrB;AAEA,cAAI,eAAe,UAAU,UAAU,SAAU,UAAU;AAE1D,mBAAQ,4BAA4B,KAAK,QAAQ;AAAA,UAElD,CAAC;AAED,cAAI,aAAa,UAAU,UAAU,SAAU,UAAU;AAExD,mBAAQ,0BAA0B,KAAK,QAAQ;AAAA,UAEhD,CAAC;AAED,cAAI,YAAY,gBAAgB,IAAI,eAAe;AAEnD,cAAI,aAAa,GAAG;AACnB,gBAAI,QAAQ,0CAA0C,KAAK,UAAU,SAAS,CAAC;AAC/E,gBAAI,OAAO,aAAa,MAAM,CAAC,CAAC;AAChC,gBAAI,MAAM,CAAC,GAAG;AACb,qBAAO,SAAS,MAAM,CAAC,CAAC;AAAA,YACzB;AACA,sBAAU,SAAS,IAAI,OAAO,MAAM,CAAC,IAAI,OAAO,OAAO,MAAM,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,MAAM,MAAM,IAAI;AAErH,gBAAI,cAAc,KAAK,eAAe,WAAW;AAEhD,sBAAQ,0BAA0B,KAAK,UAAU,UAAU,CAAC;AAC5D,wBAAU,UAAU,IAAI,MAAM,CAAC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI;AAAA,YAC3D;AAAA,UACD;AACA,kBAAQ,WAAW,QAAQ,SAAS,OAAO,SAAS;AAAA,QACrD;AAEA,eAAO,QAAQ;AAEf,aAAK,QAAQ,KAAK,QAAQ,MAAM,OAAO;AACvC,aAAK,UAAU;AACf,aAAK,YAAY;AAEjB,aAAK,MAAM,GAAG,SAAS,SAAU,GAAG;AACnC,cAAI,MAAM,SAAS;AAClB,kBAAM,QAAQ,KAAK,OAAO,CAAC;AAAA,UAC5B;AAAA,QACD,CAAC;AAED,aAAK,MAAM,GAAG,WAAW,SAAU,KAAK;AACvC,cAAI,UAAU,KAAK,MAAM,GAAG;AAC5B,cAAI,QAAQ;AAEZ,cAAI,CAAC,QAAQ,SAAS,MAAM,WAAW;AACtC,kBAAM,UAAU,KAAK,OAAO,OAAO;AAAA,UACpC;AAEA,cAAI,QAAQ,SAAS,MAAM,SAAS;AACnC,oBAAQ,IAAI,MAAM,QAAQ,KAAK;AAC/B,kBAAM,QAAQ,QAAQ;AAEtB,kBAAM,QAAQ,KAAK,OAAO,KAAK;AAAA,UAChC;AAAA,QACD,CAAC;AAED,aAAK,MAAM,KAAK,EAAE,OAAc,MAAY,KAAK,QAAQ,KAAK,KAAK,QAAQ,IAAI,CAAC;AAAA,MACjF;AAEA,mBAAaA,SAAQ,CAAC;AAAA,QACrB,KAAK;AAAA,QACL,OAAO,SAAS,iBAAiB,OAAO,IAAI;AAC3C,cAAI,OAAO,KAAK,KAAK,GAAG;AACvB,iBAAK,OAAO,KAAK,IAAI;AAAA,UACtB;AAAA,QACD;AAAA,MACD,GAAG;AAAA,QACF,KAAK;AAAA,QACL,OAAO,SAAS,YAAY,KAAK;AAChC,eAAK,MAAM,KAAK,KAAK,UAAU,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC;AAAA,QACvD;AAAA,MACD,GAAG;AAAA,QACF,KAAK;AAAA,QACL,OAAO,SAAS,YAAY;AAC3B,eAAK,MAAM,KAAK,QAAQ;AAAA,QACzB;AAAA,MACD,CAAC,GAAG,CAAC;AAAA,QACJ,KAAK;AAAA,QACL,OAAO,SAAS,SAAS,KAAK,KAAK;AAClC,cAAI,OAAO,KAAK;AACf,mBAAO;AAAA,UACR;AACA,gBAAM,MAAM;AACZ,gBAAM,MAAM;AAEZ,iBAAO;AAAA,QACR;AAAA,MACD,CAAC,CAAC;AAEF,aAAOA;AAAA,IACR,EAAE;AAEF,WAAO,UAAU;AAAA;AAAA;;;ACjIjB,SAAS,oBAAoB;AAC7B,SAAS,YAAY;AACrB,OAAO,UAAU;AACjB,SAAS,WAAW;AACpB,SAAS,UAAU,oBAAoB;AAWhC,IAAM,kBAAkB,KAAK,EAAE;AAEtC,SAAS,kBAAkB,YAAoB,SAA8B;AAC3E,QAAM,eAAe,CAAC,aAAqB;AACzC,WAAO,KAAK,WAAW,QAAQ,IAAI,WAAW,KAAK,KAAK,WAAW,IAAI,GAAG,QAAQ;AAAA,EACpF;AAEA,QAAM,eAAe,aAAa,UAAU;AAC5C,SAAO;AACT;AAEA,SAAS,0BAAgD;AACvD,MAAI,aAAkC,CAAC;AAAA,EAEvC,MAAM,eAAe,aAAa;AAAA,IACxB;AAAA,IAER,YAAY,YAAoB,SAA0D;AACxF,YAAM,qBAAqB,WAAW,QAAQ,aAAa,OAAO,kBAAkB,aAAa,WAAW,CAAC,GAAG,QAAQ;AACxH,UAAI,oBAAoB;AACtB,cAAM,oBAAoB,OAAO;AAAA,MACnC,OAAO;AAEL,cAAM,aAAa;AACnB,cAAM,YAAY,EAAE,GAAG,SAAS,MAAM,KAAK,CAAC;AAAA,MAC9C;AAEA,WAAK,uBAAuB,oBAAI,QAAQ;AACxC,iBAAW,KAAK,IAAI;AAAA,IACtB;AAAA,IAEA,iBAAiB,WAAmB,aAA4B;AAC9D,YAAM,WAAW,CAAC,YAAiB;AACjC,oBAAY,EAAE,MAAM,QAAQ,CAAQ;AAAA,MACtC;AACA,WAAK,qBAAqB,IAAI,aAAa,QAAQ;AACnD,WAAK,GAAG,WAAW,QAAQ;AAAA,IAC7B;AAAA,IAEA,oBAAoB,WAAmB,aAA4B;AACjE,YAAM,WAAW,KAAK,qBAAqB,IAAI,WAAW,KAAK;AAC/D,WAAK,IAAI,WAAW,QAAQ;AAAA,IAC9B;AAAA,EACF;AAEA,QAAM,4BAA4B,MAAM;AAEtC,YAAQ,IAAI,WAAW,IAAI,YAAU,OAAO,UAAU,CAAC,CAAC,EAAE;AAAA,MACxD,MAAM,QAAQ,KAAK,CAAC;AAAA,MACpB,MAAM,QAAQ,KAAK,CAAC;AAAA,IACtB;AACA,iBAAa,CAAC;AAAA,EAChB;AAGA,UAAQ,GAAG,UAAU,MAAM,0BAA0B,CAAC;AACtD,UAAQ,GAAG,WAAW,MAAM,0BAA0B,CAAC;AAAA,EAEvD,MAAM,mBAAmB,OAAO;AAAA,IAC9B,YAAY,MAAkB,SAAgC;AAC5D,YAAM,OAAO,KAAK,IAAI,EAAE,SAAS,OAAO,GAAG,EAAE,GAAG,SAAS,YAAY,KAAK,CAAC;AAAA,IAC7E;AAAA,IAEA,OAAO,SAAS,QAAgB,SAAsD;AACpF,aAAO,IAAI,OAAO,QAAQ,EAAE,GAAG,SAAS,YAAY,KAAK,CAAC;AAAA,IAC5D;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF;AAEA,SAAS,iBAAuC;AAC9C,QAAM,aAAa;AAEnB,MAAI,aAAuC,CAAC;AAAA,EAE5C,MAAM,eAAe,WAAW;AAAA,IACtB;AAAA,IAER,YAAY,YAAoB,SAA2D;AAGzF,YAAM,qBACF,WAAW,QAAQ,aACjB,OACA,QAAQ,aAAa,UACnB,WAAW,kBAAkB,UAAU,EAAE,WAAW,MAAM,GAAG,CAAC,KAC9D,kBAAkB,UAAU;AAEpC,UAAI,oBAAoB;AACtB,cAAM,oBAAoB,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC;AAAA,MAC7C,OAAO;AAEL,cAAM,aAAa;AACnB,cAAM,IAAI,SAAS,UAAU,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC;AAAA,MACnD;AAEA,iBAAW,KAAK,IAAI;AAEpB,WAAK,UAAU,IAAI,aAAa;AAChC,WAAK,UAAU,CAAC,UAAiB,KAAK,QAAQ,KAAK,SAAS,KAAK;AACjE,WAAK,YAAY,CAAC,YAA0B,KAAK,QAAQ,KAAK,WAAW,OAAO;AAAA,IAClF;AAAA,IAEA,iBAAiB,WAA4B,UAAyB;AACpE,WAAK,QAAQ,YAAY,WAAW,QAAQ;AAAA,IAC9C;AAAA,IAEA,oBAAoB,WAA4B,UAAyB;AACvE,WAAK,QAAQ,eAAe,WAAW,QAAQ;AAAA,IACjD;AAAA,IAEA,YAAY;AACV,mBAAa,WAAW,OAAO,YAAU,WAAW,IAAI;AACxD,aAAO,MAAM,UAAU;AAAA,IACzB;AAAA,EACF;AAEA,QAAM,4BAA4B,MAAM;AAEtC,YAAQ,IAAI,WAAW,IAAI,YAAU,OAAO,UAAU,CAAC,CAAC,EAAE;AAAA,MACxD,MAAM,QAAQ,KAAK,CAAC;AAAA,MACpB,MAAM,QAAQ,KAAK,CAAC;AAAA,IACtB;AACA,iBAAa,CAAC;AAAA,EAChB;AAIA,UAAQ,GAAG,UAAU,MAAM,0BAA0B,CAAC;AACtD,UAAQ,GAAG,WAAW,MAAM,0BAA0B,CAAC;AAAA,EAEvD,MAAM,mBAAmB,OAAO;AAAA,IAC9B,YAAY,MAAkB,SAAgC;AAC5D,YAAM,OAAO,KAAK,IAAI,EAAE,SAAS,OAAO,GAAG,EAAE,GAAG,SAAS,YAAY,KAAK,CAAC;AAAA,IAC7E;AAAA,IAEA,OAAO,SAAS,QAAgB,SAAsD;AACpF,aAAO,IAAI,OAAO,QAAQ,EAAE,GAAG,SAAS,YAAY,KAAK,CAAC;AAAA,IAC5D;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF;AAEA,IAAI;AACJ,IAAI;AAEJ,SAAS,6BAAmD;AAC1D,MAAI;AACF,mBAAe;AACf,WAAO,wBAAwB;AAAA,EACjC,SAAS,IAAI;AACX,YAAQ,MAAM,EAAE;AAEhB,YAAQ,MAAM,mFAAmF;AACjG,mBAAe;AACf,WAAO,eAAe;AAAA,EACxB;AACF;AAEO,SAAS,0BAAgD;AAC9D,MAAI,CAAC,gBAAgB;AACnB,qBAAiB,2BAA2B;AAAA,EAC9C;AACA,SAAO;AACT;AAEO,SAAS,kBAAkB;AAChC,MAAI,cAAc;AAChB,WAAO,eAAe,UAAa,KAAK,aAAa,IAAI,OAAO;AAAA,EAClE,OAAO;AAEL,UAAM,eACF,OAAO,4BAA4B,aACjC,wBAAwB,gBAAgB,EAAE,eAC1C,KAAK,SAAS,EAAE,gBAAgB,EAAE;AACxC,WAAO,CAAC;AAAA,EACV;AACF;","names":["path","Worker"]}
|