@xylabs/threads 5.0.14 → 5.0.15

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 (33) hide show
  1. package/dist/browser/index-browser.mjs +119 -209
  2. package/dist/browser/index-browser.mjs.map +1 -1
  3. package/dist/browser/master/implementation.browser.mjs +11 -36
  4. package/dist/browser/master/implementation.browser.mjs.map +1 -1
  5. package/dist/browser/master/index-browser.mjs +117 -201
  6. package/dist/browser/master/index-browser.mjs.map +1 -1
  7. package/dist/browser/master/pool-browser.mjs +53 -65
  8. package/dist/browser/master/pool-browser.mjs.map +1 -1
  9. package/dist/browser/worker/worker.browser.mjs +43 -79
  10. package/dist/browser/worker/worker.browser.mjs.map +1 -1
  11. package/dist/neutral/master/register.mjs +62 -121
  12. package/dist/neutral/master/register.mjs.map +1 -1
  13. package/dist/neutral/master/spawn.mjs +53 -106
  14. package/dist/neutral/master/spawn.mjs.map +1 -1
  15. package/dist/neutral/master/thread.mjs +0 -4
  16. package/dist/neutral/master/thread.mjs.map +1 -1
  17. package/dist/neutral/observable-promise.mjs +20 -27
  18. package/dist/neutral/observable-promise.mjs.map +1 -1
  19. package/dist/neutral/observable.mjs +3 -12
  20. package/dist/neutral/observable.mjs.map +1 -1
  21. package/dist/neutral/types/messages.mjs +4 -4
  22. package/dist/neutral/types/messages.mjs.map +1 -1
  23. package/dist/node/index-node.mjs +169 -293
  24. package/dist/node/index-node.mjs.map +1 -1
  25. package/dist/node/master/implementation.node.mjs +62 -121
  26. package/dist/node/master/implementation.node.mjs.map +1 -1
  27. package/dist/node/master/index-node.mjs +168 -286
  28. package/dist/node/master/index-node.mjs.map +1 -1
  29. package/dist/node/master/pool-node.mjs +115 -183
  30. package/dist/node/master/pool-node.mjs.map +1 -1
  31. package/dist/node/worker/worker.node.mjs +43 -80
  32. package/dist/node/worker/worker.node.mjs.map +1 -1
  33. 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
- inspect: 9229,
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 Worker2 = function() {
54
44
  function Worker3(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, Worker3);
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
- __name(Worker3, "Worker");
123
- _createClass(Worker3, [
124
- {
125
- key: "addEventListener",
126
- value: /* @__PURE__ */ __name(function addEventListener(event, fn) {
127
- if (events.test(event)) {
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(Worker3, [{
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
- key: "setRange",
149
- value: /* @__PURE__ */ __name(function setRange(min, max) {
150
- if (min >= max) {
151
- return false;
152
- }
153
- range.min = min;
154
- range.max = max;
155
- return true;
156
- }, "setRange")
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 Worker3;
160
134
  }();
161
135
  module.exports = Worker2;
@@ -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 = /* @__PURE__ */ __name((filePath) => {
147
+ const makeAbsolute = (filePath) => {
174
148
  return path.isAbsolute(filePath) ? filePath : path.join(baseURL ?? cwd(), filePath);
175
- }, "makeAbsolute");
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
- let Worker2 = class Worker extends NativeWorker {
183
- static {
184
- __name(this, "Worker");
185
- }
155
+ class Worker2 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 = /* @__PURE__ */ __name((message) => {
203
- rawListener({
204
- data: message
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 = /* @__PURE__ */ __name(() => {
216
- Promise.all(allWorkers.map((worker) => worker.terminate())).then(() => process.exit(0), () => process.exit(1));
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
- }, "terminateWorkersAndMaster");
186
+ };
219
187
  process.on("SIGINT", () => terminateWorkersAndMaster());
220
188
  process.on("SIGTERM", () => terminateWorkersAndMaster());
221
- let BlobWorker2 = class BlobWorker extends Worker2 {
222
- static {
223
- __name(this, "BlobWorker");
224
- }
189
+ class BlobWorker2 extends Worker2 {
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 Worker2(source, {
233
- ...options,
234
- fromSource: true
235
- });
194
+ return new Worker2(source, { ...options, fromSource: true });
236
195
  }
237
- };
196
+ }
238
197
  return {
239
198
  blob: BlobWorker2,
240
199
  default: Worker2
241
200
  };
242
201
  }
243
- __name(initWorkerThreadsWorker, "initWorkerThreadsWorker");
244
202
  function initTinyWorker() {
245
203
  const TinyWorker = require_lib();
246
204
  let allWorkers = [];
247
- let Worker2 = class Worker extends TinyWorker {
248
- static {
249
- __name(this, "Worker");
250
- }
205
+ class Worker2 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 = /* @__PURE__ */ __name(() => {
281
- Promise.all(allWorkers.map((worker) => worker.terminate())).then(() => process.exit(0), () => process.exit(1));
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
- }, "terminateWorkersAndMaster");
237
+ };
284
238
  process.on("SIGINT", () => terminateWorkersAndMaster());
285
239
  process.on("SIGTERM", () => terminateWorkersAndMaster());
286
- let BlobWorker2 = class BlobWorker extends Worker2 {
287
- static {
288
- __name(this, "BlobWorker");
289
- }
240
+ class BlobWorker2 extends Worker2 {
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 Worker2(source, {
298
- ...options,
299
- fromSource: true
300
- });
245
+ return new Worker2(source, { ...options, fromSource: true });
301
246
  }
302
- };
247
+ }
303
248
  return {
304
249
  blob: BlobWorker2,
305
250
  default: Worker2
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
 
340
281
  // src/master/index-node.ts
341
282
  var BlobWorker = getWorkerImplementation().blob;
@@ -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","../../../src/master/index-node.ts","../../../src/master/register.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","/* eslint-disable import-x/no-internal-modules */\nimport type { BlobWorker as BlobWorkerClass, Worker as WorkerType } from '../types/master.ts'\nimport * as NodeImplementation from './implementation.node.ts'\n\nexport type { FunctionThread, ModuleThread } from '../types/master.ts'\nexport { Pool } from './pool-browser.ts'\nexport { spawn } from './spawn.ts'\nexport { Thread } from './thread.ts'\n\nexport type BlobWorker = typeof BlobWorkerClass\nexport type Worker = WorkerType\n\n/** Separate class to spawn workers from source code blobs or strings. */\nexport const BlobWorker = NodeImplementation.getWorkerImplementation().blob\n\n/** Worker implementation. Either web worker or a node.js Worker class. */\nexport const Worker = NodeImplementation.getWorkerImplementation().default\n\nexport { isWorkerRuntime } from './implementation.node.ts'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Worker as WorkerImplementation } from './index-node.ts'\n\ndeclare const window: any\n\nif (typeof globalThis !== 'undefined') {\n ;(globalThis as any).Worker = WorkerImplementation\n} else if (window !== undefined) {\n ;(window as any).Worker = WorkerImplementation\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__","BlobWorker","getWorkerImplementation","blob","Worker","default","globalThis","Worker","WorkerImplementation","window","undefined"]}
1
+ {"version":3,"sources":["../../../../../node_modules/.store/tiny-worker-npm-2.3.0-38c7100e1d/package/lib/index.js","../../../src/master/implementation.node.ts","../../../src/master/index-node.ts","../../../src/master/register.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","/* eslint-disable import-x/no-internal-modules */\nimport type { BlobWorker as BlobWorkerClass, Worker as WorkerType } from '../types/master.ts'\nimport * as NodeImplementation from './implementation.node.ts'\n\nexport type { FunctionThread, ModuleThread } from '../types/master.ts'\nexport { Pool } from './pool-browser.ts'\nexport { spawn } from './spawn.ts'\nexport { Thread } from './thread.ts'\n\nexport type BlobWorker = typeof BlobWorkerClass\nexport type Worker = WorkerType\n\n/** Separate class to spawn workers from source code blobs or strings. */\nexport const BlobWorker = NodeImplementation.getWorkerImplementation().blob\n\n/** Worker implementation. Either web worker or a node.js Worker class. */\nexport const Worker = NodeImplementation.getWorkerImplementation().default\n\nexport { isWorkerRuntime } from './implementation.node.ts'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Worker as WorkerImplementation } from './index-node.ts'\n\ndeclare const window: any\n\nif (typeof globalThis !== 'undefined') {\n ;(globalThis as any).Worker = WorkerImplementation\n} else if (window !== undefined) {\n ;(window as any).Worker = WorkerImplementation\n}\n"],"mappings":"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","names":["path","Worker","Worker","BlobWorker"]}