@xylabs/threads 4.12.44 → 4.13.1

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 (116) hide show
  1. package/dist/browser/common-Cuiya5FG.d.ts +21 -0
  2. package/dist/browser/index-browser-B8TCfn7g.d.ts +20 -0
  3. package/dist/browser/index-browser.d.ts +8 -0
  4. package/dist/browser/index-browser.mjs +209 -119
  5. package/dist/browser/index-browser.mjs.map +1 -1
  6. package/dist/browser/master/implementation.browser.d.ts +9 -0
  7. package/dist/browser/master/implementation.browser.mjs +36 -11
  8. package/dist/browser/master/implementation.browser.mjs.map +1 -1
  9. package/dist/browser/master/index-browser.d.ts +7 -0
  10. package/dist/browser/master/index-browser.mjs +201 -117
  11. package/dist/browser/master/index-browser.mjs.map +1 -1
  12. package/dist/browser/master/pool-browser.d.ts +104 -0
  13. package/dist/browser/master/pool-browser.mjs +65 -53
  14. package/dist/browser/master/pool-browser.mjs.map +1 -1
  15. package/dist/browser/master-D4MAqspp.d.ts +109 -0
  16. package/dist/browser/transferable-Cv9t618f.d.ts +15 -0
  17. package/dist/{types → browser}/worker/worker.browser.d.ts +8 -8
  18. package/dist/browser/worker/worker.browser.mjs +79 -43
  19. package/dist/browser/worker/worker.browser.mjs.map +1 -1
  20. package/dist/{types/types/worker.d.ts → browser/worker-04t9iwDh.d.ts} +5 -5
  21. package/dist/neutral/master/register.d.ts +2 -0
  22. package/dist/neutral/master/register.mjs +223 -33
  23. package/dist/neutral/master/register.mjs.map +1 -1
  24. package/dist/neutral/master/spawn.d.ts +19 -0
  25. package/dist/neutral/master/spawn.mjs +106 -53
  26. package/dist/neutral/master/spawn.mjs.map +1 -1
  27. package/dist/neutral/master/thread.d.ts +12 -0
  28. package/dist/neutral/master/thread.mjs +4 -0
  29. package/dist/neutral/master/thread.mjs.map +1 -1
  30. package/dist/neutral/master-DDdg1BKb.d.ts +74 -0
  31. package/dist/{types → neutral}/observable-promise.d.ts +5 -18
  32. package/dist/neutral/observable-promise.mjs +27 -20
  33. package/dist/neutral/observable-promise.mjs.map +1 -1
  34. package/dist/neutral/observable.d.ts +13 -0
  35. package/dist/neutral/observable.mjs +12 -3
  36. package/dist/neutral/observable.mjs.map +1 -1
  37. package/dist/{types → neutral}/types/messages.d.ts +12 -11
  38. package/dist/neutral/types/messages.mjs +19 -0
  39. package/dist/neutral/types/messages.mjs.map +1 -0
  40. package/dist/node/common-Cuiya5FG.d.ts +21 -0
  41. package/dist/node/index-node-DB1sNl0d.d.ts +66 -0
  42. package/dist/node/index-node.d.ts +8 -0
  43. package/dist/node/index-node.mjs +396 -141
  44. package/dist/node/index-node.mjs.map +1 -1
  45. package/dist/node/master/implementation.node.d.ts +9 -0
  46. package/dist/node/master/implementation.node.mjs +223 -33
  47. package/dist/node/master/implementation.node.mjs.map +1 -1
  48. package/dist/node/master/index-node.d.ts +7 -0
  49. package/dist/node/master/index-node.mjs +388 -139
  50. package/dist/node/master/index-node.mjs.map +1 -1
  51. package/dist/node/master/pool-node.d.ts +51 -0
  52. package/dist/node/master/pool-node.mjs +285 -86
  53. package/dist/node/master/pool-node.mjs.map +1 -1
  54. package/dist/node/master-BjjSaJAj.d.ts +109 -0
  55. package/dist/{types/master/pool-types.d.ts → node/pool-types-Bzei07Nj.d.ts} +16 -24
  56. package/dist/node/transferable-Cv9t618f.d.ts +15 -0
  57. package/dist/{types → node}/worker/worker.node.d.ts +11 -10
  58. package/dist/node/worker/worker.node.mjs +80 -43
  59. package/dist/node/worker/worker.node.mjs.map +1 -1
  60. package/dist/node/worker-04t9iwDh.d.ts +12 -0
  61. package/package.json +29 -22
  62. package/src/master/invocation-proxy.ts +2 -0
  63. package/src/transferable.ts +2 -0
  64. package/src/types/worker.ts +1 -0
  65. package/src/worker/WorkerGlobalScope.ts +1 -0
  66. package/src/worker/worker.browser.ts +1 -1
  67. package/dist/types/common.d.ts +0 -8
  68. package/dist/types/common.d.ts.map +0 -1
  69. package/dist/types/index-browser.d.ts +0 -9
  70. package/dist/types/index-browser.d.ts.map +0 -1
  71. package/dist/types/index-node.d.ts +0 -9
  72. package/dist/types/index-node.d.ts.map +0 -1
  73. package/dist/types/master/get-bundle-url.browser.d.ts +0 -3
  74. package/dist/types/master/get-bundle-url.browser.d.ts.map +0 -1
  75. package/dist/types/master/implementation.browser.d.ts +0 -5
  76. package/dist/types/master/implementation.browser.d.ts.map +0 -1
  77. package/dist/types/master/implementation.node.d.ts +0 -5
  78. package/dist/types/master/implementation.node.d.ts.map +0 -1
  79. package/dist/types/master/index-browser.d.ts +0 -13
  80. package/dist/types/master/index-browser.d.ts.map +0 -1
  81. package/dist/types/master/index-node.d.ts +0 -13
  82. package/dist/types/master/index-node.d.ts.map +0 -1
  83. package/dist/types/master/invocation-proxy.d.ts +0 -4
  84. package/dist/types/master/invocation-proxy.d.ts.map +0 -1
  85. package/dist/types/master/pool-browser.d.ts +0 -93
  86. package/dist/types/master/pool-browser.d.ts.map +0 -1
  87. package/dist/types/master/pool-node.d.ts +0 -93
  88. package/dist/types/master/pool-node.d.ts.map +0 -1
  89. package/dist/types/master/pool-types.d.ts.map +0 -1
  90. package/dist/types/master/register.d.ts +0 -2
  91. package/dist/types/master/register.d.ts.map +0 -1
  92. package/dist/types/master/spawn.d.ts +0 -21
  93. package/dist/types/master/spawn.d.ts.map +0 -1
  94. package/dist/types/master/thread.d.ts +0 -13
  95. package/dist/types/master/thread.d.ts.map +0 -1
  96. package/dist/types/observable-promise.d.ts.map +0 -1
  97. package/dist/types/observable.d.ts +0 -21
  98. package/dist/types/observable.d.ts.map +0 -1
  99. package/dist/types/promise.d.ts +0 -6
  100. package/dist/types/promise.d.ts.map +0 -1
  101. package/dist/types/serializers.d.ts +0 -17
  102. package/dist/types/serializers.d.ts.map +0 -1
  103. package/dist/types/symbols.d.ts +0 -6
  104. package/dist/types/symbols.d.ts.map +0 -1
  105. package/dist/types/transferable.d.ts +0 -43
  106. package/dist/types/transferable.d.ts.map +0 -1
  107. package/dist/types/types/master.d.ts +0 -99
  108. package/dist/types/types/master.d.ts.map +0 -1
  109. package/dist/types/types/messages.d.ts.map +0 -1
  110. package/dist/types/types/worker.d.ts.map +0 -1
  111. package/dist/types/worker/WorkerGlobalScope.d.ts +0 -6
  112. package/dist/types/worker/WorkerGlobalScope.d.ts.map +0 -1
  113. package/dist/types/worker/expose.d.ts +0 -4
  114. package/dist/types/worker/expose.d.ts.map +0 -1
  115. package/dist/types/worker/worker.browser.d.ts.map +0 -1
  116. package/dist/types/worker/worker.node.d.ts.map +0 -1
@@ -1,9 +1,166 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
1
4
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
5
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
6
  }) : x)(function(x) {
4
7
  if (typeof require !== "undefined") return require.apply(this, arguments);
5
8
  throw Error('Dynamic require of "' + x + '" is not supported');
6
9
  });
10
+ var __commonJS = (cb, mod) => function __require2() {
11
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12
+ };
13
+
14
+ // ../../node_modules/.store/tiny-worker-npm-2.3.0-38c7100e1d/package/lib/index.js
15
+ var require_lib = __commonJS({
16
+ "../../node_modules/.store/tiny-worker-npm-2.3.0-38c7100e1d/package/lib/index.js"(exports, module) {
17
+ "use strict";
18
+ var _createClass = /* @__PURE__ */ function() {
19
+ function defineProperties(target, props) {
20
+ for (var i = 0; i < props.length; i++) {
21
+ var descriptor = props[i];
22
+ descriptor.enumerable = descriptor.enumerable || false;
23
+ descriptor.configurable = true;
24
+ if ("value" in descriptor) descriptor.writable = true;
25
+ Object.defineProperty(target, descriptor.key, descriptor);
26
+ }
27
+ }
28
+ __name(defineProperties, "defineProperties");
29
+ return function(Constructor, protoProps, staticProps) {
30
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
31
+ if (staticProps) defineProperties(Constructor, staticProps);
32
+ return Constructor;
33
+ };
34
+ }();
35
+ function _classCallCheck(instance, Constructor) {
36
+ if (!(instance instanceof Constructor)) {
37
+ throw new TypeError("Cannot call a class as a function");
38
+ }
39
+ }
40
+ __name(_classCallCheck, "_classCallCheck");
41
+ var path2 = __require("path");
42
+ var fork = __require("child_process").fork;
43
+ var worker = path2.join(__dirname, "worker.js");
44
+ var events = /^(error|message)$/;
45
+ var defaultPorts = {
46
+ inspect: 9229,
47
+ debug: 5858
48
+ };
49
+ var range = {
50
+ min: 1,
51
+ max: 300
52
+ };
53
+ var Worker3 = function() {
54
+ function Worker4(arg) {
55
+ var _this = this;
56
+ 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
+ };
60
+ _classCallCheck(this, Worker4);
61
+ var isfn = typeof arg === "function", input = isfn ? arg.toString() : arg;
62
+ if (!options.cwd) {
63
+ options.cwd = process.cwd();
64
+ }
65
+ var debugVars = process.execArgv.filter(function(execArg) {
66
+ return /(debug|inspect)/.test(execArg);
67
+ });
68
+ if (debugVars.length > 0 && !options.noDebugRedirection) {
69
+ if (!options.execArgv) {
70
+ debugVars = Array.from(process.execArgv);
71
+ options.execArgv = [];
72
+ }
73
+ var inspectIndex = debugVars.findIndex(function(debugArg) {
74
+ return /^--inspect(-brk)?(=\d+)?$/.test(debugArg);
75
+ });
76
+ var debugIndex = debugVars.findIndex(function(debugArg) {
77
+ return /^--debug(-brk)?(=\d+)?$/.test(debugArg);
78
+ });
79
+ var portIndex = inspectIndex >= 0 ? inspectIndex : debugIndex;
80
+ if (portIndex >= 0) {
81
+ var match = /^--(debug|inspect)(?:-brk)?(?:=(\d+))?$/.exec(debugVars[portIndex]);
82
+ var port = defaultPorts[match[1]];
83
+ if (match[2]) {
84
+ port = parseInt(match[2]);
85
+ }
86
+ debugVars[portIndex] = "--" + match[1] + "=" + (port + range.min + Math.floor(Math.random() * (range.max - range.min)));
87
+ if (debugIndex >= 0 && debugIndex !== portIndex) {
88
+ match = /^(--debug)(?:-brk)?(.*)/.exec(debugVars[debugIndex]);
89
+ debugVars[debugIndex] = match[1] + (match[2] ? match[2] : "");
90
+ }
91
+ }
92
+ options.execArgv = options.execArgv.concat(debugVars);
93
+ }
94
+ delete options.noDebugRedirection;
95
+ this.child = fork(worker, args, options);
96
+ this.onerror = void 0;
97
+ this.onmessage = void 0;
98
+ this.child.on("error", function(e) {
99
+ if (_this.onerror) {
100
+ _this.onerror.call(_this, e);
101
+ }
102
+ });
103
+ this.child.on("message", function(msg) {
104
+ var message = JSON.parse(msg);
105
+ var error = void 0;
106
+ if (!message.error && _this.onmessage) {
107
+ _this.onmessage.call(_this, message);
108
+ }
109
+ if (message.error && _this.onerror) {
110
+ error = new Error(message.error);
111
+ error.stack = message.stack;
112
+ _this.onerror.call(_this, error);
113
+ }
114
+ });
115
+ this.child.send({
116
+ input,
117
+ isfn,
118
+ cwd: options.cwd,
119
+ esm: options.esm
120
+ });
121
+ }
122
+ __name(Worker4, "Worker");
123
+ _createClass(Worker4, [
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")
145
+ }
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")
157
+ }
158
+ ]);
159
+ return Worker4;
160
+ }();
161
+ module.exports = Worker3;
162
+ }
163
+ });
7
164
 
8
165
  // src/master/implementation.node.ts
9
166
  import { EventEmitter } from "events";
@@ -13,15 +170,19 @@ import { cwd } from "process";
13
170
  import { Worker as NativeWorker } from "worker_threads";
14
171
  var defaultPoolSize = cpus().length;
15
172
  function resolveScriptPath(scriptPath, baseURL) {
16
- const makeAbsolute = (filePath) => {
173
+ const makeAbsolute = /* @__PURE__ */ __name((filePath) => {
17
174
  return path.isAbsolute(filePath) ? filePath : path.join(baseURL ?? cwd(), filePath);
18
- };
175
+ }, "makeAbsolute");
19
176
  const absolutePath = makeAbsolute(scriptPath);
20
177
  return absolutePath;
21
178
  }
179
+ __name(resolveScriptPath, "resolveScriptPath");
22
180
  function initWorkerThreadsWorker() {
23
181
  let allWorkers = [];
24
- class Worker3 extends NativeWorker {
182
+ let Worker3 = class Worker extends NativeWorker {
183
+ static {
184
+ __name(this, "Worker");
185
+ }
25
186
  mappedEventListeners;
26
187
  constructor(scriptPath, options) {
27
188
  const resolvedScriptPath = options && options.fromSource ? null : resolveScriptPath(scriptPath, (options ?? {})._baseURL);
@@ -29,15 +190,20 @@ function initWorkerThreadsWorker() {
29
190
  super(resolvedScriptPath, options);
30
191
  } else {
31
192
  const sourceCode = scriptPath;
32
- super(sourceCode, { ...options, eval: true });
193
+ super(sourceCode, {
194
+ ...options,
195
+ eval: true
196
+ });
33
197
  }
34
198
  this.mappedEventListeners = /* @__PURE__ */ new WeakMap();
35
199
  allWorkers.push(this);
36
200
  }
37
201
  addEventListener(eventName, rawListener) {
38
- const listener = (message) => {
39
- rawListener({ data: message });
40
- };
202
+ const listener = /* @__PURE__ */ __name((message) => {
203
+ rawListener({
204
+ data: message
205
+ });
206
+ }, "listener");
41
207
  this.mappedEventListeners.set(rawListener, listener);
42
208
  this.on(eventName, listener);
43
209
  }
@@ -45,41 +211,55 @@ function initWorkerThreadsWorker() {
45
211
  const listener = this.mappedEventListeners.get(rawListener) || rawListener;
46
212
  this.off(eventName, listener);
47
213
  }
48
- }
49
- const terminateWorkersAndMaster = () => {
50
- Promise.all(allWorkers.map((worker) => worker.terminate())).then(
51
- () => process.exit(0),
52
- () => process.exit(1)
53
- );
54
- allWorkers = [];
55
214
  };
215
+ const terminateWorkersAndMaster = /* @__PURE__ */ __name(() => {
216
+ Promise.all(allWorkers.map((worker) => worker.terminate())).then(() => process.exit(0), () => process.exit(1));
217
+ allWorkers = [];
218
+ }, "terminateWorkersAndMaster");
56
219
  process.on("SIGINT", () => terminateWorkersAndMaster());
57
220
  process.on("SIGTERM", () => terminateWorkersAndMaster());
58
- class BlobWorker2 extends Worker3 {
221
+ let BlobWorker2 = class BlobWorker extends Worker3 {
222
+ static {
223
+ __name(this, "BlobWorker");
224
+ }
59
225
  constructor(blob, options) {
60
- super(Buffer.from(blob).toString("utf-8"), { ...options, fromSource: true });
226
+ super(Buffer.from(blob).toString("utf-8"), {
227
+ ...options,
228
+ fromSource: true
229
+ });
61
230
  }
62
231
  static fromText(source, options) {
63
- return new Worker3(source, { ...options, fromSource: true });
232
+ return new Worker3(source, {
233
+ ...options,
234
+ fromSource: true
235
+ });
64
236
  }
65
- }
237
+ };
66
238
  return {
67
239
  blob: BlobWorker2,
68
240
  default: Worker3
69
241
  };
70
242
  }
243
+ __name(initWorkerThreadsWorker, "initWorkerThreadsWorker");
71
244
  function initTinyWorker() {
72
- const TinyWorker = __require("tiny-worker");
245
+ const TinyWorker = require_lib();
73
246
  let allWorkers = [];
74
- class Worker3 extends TinyWorker {
247
+ let Worker3 = class Worker extends TinyWorker {
248
+ static {
249
+ __name(this, "Worker");
250
+ }
75
251
  emitter;
76
252
  constructor(scriptPath, options) {
77
253
  const resolvedScriptPath = options && options.fromSource ? null : process.platform === "win32" ? `file:///${resolveScriptPath(scriptPath).replaceAll("\\", "/")}` : resolveScriptPath(scriptPath);
78
254
  if (resolvedScriptPath) {
79
- super(resolvedScriptPath, [], { esm: true });
255
+ super(resolvedScriptPath, [], {
256
+ esm: true
257
+ });
80
258
  } else {
81
259
  const sourceCode = scriptPath;
82
- super(new Function(sourceCode), [], { esm: true });
260
+ super(new Function(sourceCode), [], {
261
+ esm: true
262
+ });
83
263
  }
84
264
  allWorkers.push(this);
85
265
  this.emitter = new EventEmitter();
@@ -96,29 +276,36 @@ function initTinyWorker() {
96
276
  allWorkers = allWorkers.filter((worker) => worker !== this);
97
277
  return super.terminate();
98
278
  }
99
- }
100
- const terminateWorkersAndMaster = () => {
101
- Promise.all(allWorkers.map((worker) => worker.terminate())).then(
102
- () => process.exit(0),
103
- () => process.exit(1)
104
- );
105
- allWorkers = [];
106
279
  };
280
+ const terminateWorkersAndMaster = /* @__PURE__ */ __name(() => {
281
+ Promise.all(allWorkers.map((worker) => worker.terminate())).then(() => process.exit(0), () => process.exit(1));
282
+ allWorkers = [];
283
+ }, "terminateWorkersAndMaster");
107
284
  process.on("SIGINT", () => terminateWorkersAndMaster());
108
285
  process.on("SIGTERM", () => terminateWorkersAndMaster());
109
- class BlobWorker2 extends Worker3 {
286
+ let BlobWorker2 = class BlobWorker extends Worker3 {
287
+ static {
288
+ __name(this, "BlobWorker");
289
+ }
110
290
  constructor(blob, options) {
111
- super(Buffer.from(blob).toString("utf-8"), { ...options, fromSource: true });
291
+ super(Buffer.from(blob).toString("utf-8"), {
292
+ ...options,
293
+ fromSource: true
294
+ });
112
295
  }
113
296
  static fromText(source, options) {
114
- return new Worker3(source, { ...options, fromSource: true });
297
+ return new Worker3(source, {
298
+ ...options,
299
+ fromSource: true
300
+ });
115
301
  }
116
- }
302
+ };
117
303
  return {
118
304
  blob: BlobWorker2,
119
305
  default: Worker3
120
306
  };
121
307
  }
308
+ __name(initTinyWorker, "initTinyWorker");
122
309
  var implementation;
123
310
  var isTinyWorker;
124
311
  function selectWorkerImplementation() {
@@ -132,12 +319,14 @@ function selectWorkerImplementation() {
132
319
  return initTinyWorker();
133
320
  }
134
321
  }
322
+ __name(selectWorkerImplementation, "selectWorkerImplementation");
135
323
  function getWorkerImplementation() {
136
324
  if (!implementation) {
137
325
  implementation = selectWorkerImplementation();
138
326
  }
139
327
  return implementation;
140
328
  }
329
+ __name(getWorkerImplementation, "getWorkerImplementation");
141
330
  function isWorkerRuntime() {
142
331
  if (isTinyWorker) {
143
332
  return globalThis !== void 0 && self["postMessage"] ? true : false;
@@ -146,20 +335,17 @@ function isWorkerRuntime() {
146
335
  return !isMainThread;
147
336
  }
148
337
  }
338
+ __name(isWorkerRuntime, "isWorkerRuntime");
149
339
 
150
340
  // src/master/pool-browser.ts
151
341
  import DebugLogger from "debug";
152
- import {
153
- multicast,
154
- Observable,
155
- Subject
156
- } from "observable-fns";
342
+ import { multicast, Observable, Subject } from "observable-fns";
157
343
 
158
344
  // src/master/implementation.browser.ts
159
345
  var defaultPoolSize2 = typeof navigator !== "undefined" && navigator.hardwareConcurrency ? navigator.hardwareConcurrency : 4;
160
346
 
161
347
  // src/master/pool-types.ts
162
- var PoolEventType = /* @__PURE__ */ ((PoolEventType2) => {
348
+ var PoolEventType = /* @__PURE__ */ function(PoolEventType2) {
163
349
  PoolEventType2["initialized"] = "initialized";
164
350
  PoolEventType2["taskCanceled"] = "taskCanceled";
165
351
  PoolEventType2["taskCompleted"] = "taskCompleted";
@@ -169,7 +355,7 @@ var PoolEventType = /* @__PURE__ */ ((PoolEventType2) => {
169
355
  PoolEventType2["taskStart"] = "taskStart";
170
356
  PoolEventType2["terminated"] = "terminated";
171
357
  return PoolEventType2;
172
- })(PoolEventType || {});
358
+ }({});
173
359
 
174
360
  // src/symbols.ts
175
361
  var $errors = Symbol("thread.errors");
@@ -182,6 +368,7 @@ var $worker = Symbol("thread.worker");
182
368
  function fail(message) {
183
369
  throw new Error(message);
184
370
  }
371
+ __name(fail, "fail");
185
372
  var Thread = {
186
373
  /** Return an observable that can be used to subscribe to all errors happening in the thread. */
187
374
  errors(thread) {
@@ -206,24 +393,33 @@ function createArray(size) {
206
393
  }
207
394
  return array;
208
395
  }
396
+ __name(createArray, "createArray");
209
397
  function delay(ms) {
210
398
  return new Promise((resolve) => setTimeout(resolve, ms));
211
399
  }
400
+ __name(delay, "delay");
212
401
  function flatMap(array, mapper) {
213
- return array.reduce((flattened, element) => [...flattened, ...mapper(element)], []);
402
+ return array.reduce((flattened, element) => [
403
+ ...flattened,
404
+ ...mapper(element)
405
+ ], []);
214
406
  }
407
+ __name(flatMap, "flatMap");
215
408
  function slugify(text) {
216
409
  return text.replaceAll(/\W/g, " ").trim().replaceAll(/\s+/g, "-");
217
410
  }
411
+ __name(slugify, "slugify");
218
412
  function spawnWorkers(spawnWorker, count) {
219
- return createArray(count).map(
220
- () => ({
221
- init: spawnWorker(),
222
- runningTasks: []
223
- })
224
- );
413
+ return createArray(count).map(() => ({
414
+ init: spawnWorker(),
415
+ runningTasks: []
416
+ }));
225
417
  }
226
- var WorkerPool = class {
418
+ __name(spawnWorkers, "spawnWorkers");
419
+ var WorkerPool = class WorkerPool2 {
420
+ static {
421
+ __name(this, "WorkerPool");
422
+ }
227
423
  static EventType = PoolEventType;
228
424
  debug;
229
425
  eventObservable;
@@ -235,23 +431,22 @@ var WorkerPool = class {
235
431
  nextTaskID = 1;
236
432
  taskQueue = [];
237
433
  constructor(spawnWorker, optionsOrSize) {
238
- const options = typeof optionsOrSize === "number" ? { size: optionsOrSize } : optionsOrSize || {};
434
+ const options = typeof optionsOrSize === "number" ? {
435
+ size: optionsOrSize
436
+ } : optionsOrSize || {};
239
437
  const { size = defaultPoolSize2 } = options;
240
438
  this.debug = DebugLogger(`threads:pool:${slugify(options.name || String(nextPoolID++))}`);
241
439
  this.options = options;
242
440
  this.workers = spawnWorkers(spawnWorker, size);
243
441
  this.eventObservable = multicast(Observable.from(this.eventSubject));
244
- Promise.all(this.workers.map((worker) => worker.init)).then(
245
- () => this.eventSubject.next({
246
- size: this.workers.length,
247
- type: "initialized" /* initialized */
248
- }),
249
- (error) => {
250
- this.debug("Error while initializing pool worker:", error);
251
- this.eventSubject.error(error);
252
- this.initErrors.push(error);
253
- }
254
- );
442
+ Promise.all(this.workers.map((worker) => worker.init)).then(() => this.eventSubject.next({
443
+ size: this.workers.length,
444
+ type: PoolEventType.initialized
445
+ }), (error) => {
446
+ this.debug("Error while initializing pool worker:", error);
447
+ this.eventSubject.error(error);
448
+ this.initErrors.push(error);
449
+ });
255
450
  }
256
451
  findIdlingWorker() {
257
452
  const { concurrency = 1 } = this.options;
@@ -262,7 +457,7 @@ var WorkerPool = class {
262
457
  this.debug(`Running task #${task.id} on worker #${workerID}...`);
263
458
  this.eventSubject.next({
264
459
  taskID: task.id,
265
- type: "taskStart" /* taskStart */,
460
+ type: PoolEventType.taskStart,
266
461
  workerID
267
462
  });
268
463
  try {
@@ -271,7 +466,7 @@ var WorkerPool = class {
271
466
  this.eventSubject.next({
272
467
  returnValue,
273
468
  taskID: task.id,
274
- type: "taskCompleted" /* taskCompleted */,
469
+ type: PoolEventType.taskCompleted,
275
470
  workerID
276
471
  });
277
472
  } catch (ex) {
@@ -280,16 +475,16 @@ var WorkerPool = class {
280
475
  this.eventSubject.next({
281
476
  error,
282
477
  taskID: task.id,
283
- type: "taskFailed" /* taskFailed */,
478
+ type: PoolEventType.taskFailed,
284
479
  workerID
285
480
  });
286
481
  }
287
482
  }
288
483
  run(worker, task) {
289
484
  const runPromise = (async () => {
290
- const removeTaskFromWorkersRunningTasks = () => {
485
+ const removeTaskFromWorkersRunningTasks = /* @__PURE__ */ __name(() => {
291
486
  worker.runningTasks = worker.runningTasks.filter((someRunPromise) => someRunPromise !== runPromise);
292
- };
487
+ }, "removeTaskFromWorkersRunningTasks");
293
488
  await delay(0);
294
489
  try {
295
490
  await this.runPoolTask(worker, task);
@@ -309,7 +504,9 @@ var WorkerPool = class {
309
504
  const nextTask = this.taskQueue.shift();
310
505
  if (!nextTask) {
311
506
  this.debug("Task queue is empty");
312
- this.eventSubject.next({ type: "taskQueueDrained" /* taskQueueDrained */ });
507
+ this.eventSubject.next({
508
+ type: PoolEventType.taskQueueDrained
509
+ });
313
510
  return;
314
511
  }
315
512
  this.run(availableWorker, nextTask);
@@ -317,13 +514,13 @@ var WorkerPool = class {
317
514
  taskCompletion(taskID) {
318
515
  return new Promise((resolve, reject) => {
319
516
  const eventSubscription = this.events().subscribe((event) => {
320
- if (event.type === "taskCompleted" /* taskCompleted */ && event.taskID === taskID) {
517
+ if (event.type === PoolEventType.taskCompleted && event.taskID === taskID) {
321
518
  eventSubscription.unsubscribe();
322
519
  resolve(event.returnValue);
323
- } else if (event.type === "taskFailed" /* taskFailed */ && event.taskID === taskID) {
520
+ } else if (event.type === PoolEventType.taskFailed && event.taskID === taskID) {
324
521
  eventSubscription.unsubscribe();
325
522
  reject(event.error);
326
- } else if (event.type === "terminated" /* terminated */) {
523
+ } else if (event.type === PoolEventType.terminated) {
327
524
  eventSubscription.unsubscribe();
328
525
  reject(new Error("Pool has been terminated before task was run."));
329
526
  }
@@ -331,10 +528,10 @@ var WorkerPool = class {
331
528
  });
332
529
  }
333
530
  async settled(allowResolvingImmediately = false) {
334
- const getCurrentlyRunningTasks = () => flatMap(this.workers, (worker) => worker.runningTasks);
531
+ const getCurrentlyRunningTasks = /* @__PURE__ */ __name(() => flatMap(this.workers, (worker) => worker.runningTasks), "getCurrentlyRunningTasks");
335
532
  const taskFailures = [];
336
533
  const failureSubscription = this.eventObservable.subscribe((event) => {
337
- if (event.type === "taskFailed" /* taskFailed */) {
534
+ if (event.type === PoolEventType.taskFailed) {
338
535
  taskFailures.push(event.error);
339
536
  }
340
537
  });
@@ -349,12 +546,11 @@ var WorkerPool = class {
349
546
  const subscription = this.eventObservable.subscribe({
350
547
  error: reject,
351
548
  next(event) {
352
- if (event.type === "taskQueueDrained" /* taskQueueDrained */) {
549
+ if (event.type === PoolEventType.taskQueueDrained) {
353
550
  subscription.unsubscribe();
354
551
  resolve(void 0);
355
552
  }
356
553
  }
357
- // make a pool-wide error reject the completed() result promise
358
554
  });
359
555
  });
360
556
  await Promise.allSettled(getCurrentlyRunningTasks());
@@ -367,18 +563,20 @@ var WorkerPool = class {
367
563
  const subscription = this.eventObservable.subscribe({
368
564
  error: reject,
369
565
  next(event) {
370
- if (event.type === "taskQueueDrained" /* taskQueueDrained */) {
566
+ if (event.type === PoolEventType.taskQueueDrained) {
371
567
  subscription.unsubscribe();
372
568
  resolve(settlementPromise);
373
- } else if (event.type === "taskFailed" /* taskFailed */) {
569
+ } else if (event.type === PoolEventType.taskFailed) {
374
570
  subscription.unsubscribe();
375
571
  reject(event.error);
376
572
  }
377
573
  }
378
- // make a pool-wide error reject the completed() result promise
379
574
  });
380
575
  });
381
- const errors = await Promise.race([settlementPromise, earlyExitPromise]);
576
+ const errors = await Promise.race([
577
+ settlementPromise,
578
+ earlyExitPromise
579
+ ]);
382
580
  if (errors.length > 0) {
383
581
  throw errors[0];
384
582
  }
@@ -400,28 +598,26 @@ var WorkerPool = class {
400
598
  this.debug(`Task #${taskID} errored:`, error);
401
599
  });
402
600
  const task = {
403
- cancel: () => {
601
+ cancel: /* @__PURE__ */ __name(() => {
404
602
  if (!this.taskQueue.includes(task)) return;
405
603
  this.taskQueue = this.taskQueue.filter((someTask) => someTask !== task);
406
604
  this.eventSubject.next({
407
605
  taskID: task.id,
408
- type: "taskCanceled" /* taskCanceled */
606
+ type: PoolEventType.taskCanceled
409
607
  });
410
- },
608
+ }, "cancel"),
411
609
  id: taskID,
412
610
  run: taskFunction,
413
611
  then: taskCompletion.then.bind(taskCompletion)
414
612
  };
415
613
  if (this.taskQueue.length >= maxQueuedJobs) {
416
- throw new Error(
417
- "Maximum number of pool tasks queued. Refusing to queue another one.\nThis usually happens for one of two reasons: We are either at peak workload right now or some tasks just won't finish, thus blocking the pool."
418
- );
614
+ throw new Error("Maximum number of pool tasks queued. Refusing to queue another one.\nThis usually happens for one of two reasons: We are either at peak workload right now or some tasks just won't finish, thus blocking the pool.");
419
615
  }
420
616
  this.debug(`Queueing task #${task.id}...`);
421
617
  this.taskQueue.push(task);
422
618
  this.eventSubject.next({
423
619
  taskID: task.id,
424
- type: "taskQueued" /* taskQueued */
620
+ type: PoolEventType.taskQueued
425
621
  });
426
622
  this.scheduleWork();
427
623
  return task;
@@ -432,8 +628,10 @@ var WorkerPool = class {
432
628
  await this.completed(true);
433
629
  }
434
630
  this.eventSubject.next({
435
- remainingQueue: [...this.taskQueue],
436
- type: "terminated" /* terminated */
631
+ remainingQueue: [
632
+ ...this.taskQueue
633
+ ],
634
+ type: PoolEventType.terminated
437
635
  });
438
636
  this.eventSubject.complete();
439
637
  await Promise.all(this.workers.map(async (worker) => Thread.terminate(await worker.init)));
@@ -442,6 +640,7 @@ var WorkerPool = class {
442
640
  function PoolConstructor(spawnWorker, optionsOrSize) {
443
641
  return new WorkerPool(spawnWorker, optionsOrSize);
444
642
  }
643
+ __name(PoolConstructor, "PoolConstructor");
445
644
  PoolConstructor.EventType = PoolEventType;
446
645
  var Pool = PoolConstructor;
447
646
 
@@ -466,7 +665,7 @@ var DefaultErrorSerializer = {
466
665
  };
467
666
  }
468
667
  };
469
- var isSerializedError = (thing) => thing && typeof thing === "object" && "__error_marker" in thing && thing.__error_marker === "$$error";
668
+ var isSerializedError = /* @__PURE__ */ __name((thing) => thing && typeof thing === "object" && "__error_marker" in thing && thing.__error_marker === "$$error", "isSerializedError");
470
669
  var DefaultSerializer = {
471
670
  deserialize(message) {
472
671
  return isSerializedError(message) ? DefaultErrorSerializer.deserialize(message) : message;
@@ -481,12 +680,14 @@ globalThis.registeredSerializer = globalThis.registeredSerializer ?? DefaultSeri
481
680
  function deserialize(message) {
482
681
  return globalThis.registeredSerializer.deserialize(message);
483
682
  }
683
+ __name(deserialize, "deserialize");
484
684
  function serialize(input) {
485
685
  return globalThis.registeredSerializer.serialize(input);
486
686
  }
687
+ __name(serialize, "serialize");
487
688
 
488
689
  // src/promise.ts
489
- var doNothing = () => void 0;
690
+ var doNothing = /* @__PURE__ */ __name(() => void 0, "doNothing");
490
691
  function createPromiseWithResolver() {
491
692
  let alreadyResolved = false;
492
693
  let resolvedTo;
@@ -498,13 +699,25 @@ function createPromiseWithResolver() {
498
699
  resolver = resolve;
499
700
  }
500
701
  });
501
- const exposedResolver = (value) => {
702
+ const exposedResolver = /* @__PURE__ */ __name((value) => {
502
703
  alreadyResolved = true;
503
704
  resolvedTo = value;
504
705
  resolver(resolvedTo);
505
- };
506
- return [promise, exposedResolver];
706
+ }, "exposedResolver");
707
+ return [
708
+ promise,
709
+ exposedResolver
710
+ ];
507
711
  }
712
+ __name(createPromiseWithResolver, "createPromiseWithResolver");
713
+
714
+ // src/types/master.ts
715
+ var WorkerEventType = /* @__PURE__ */ function(WorkerEventType2) {
716
+ WorkerEventType2["internalError"] = "internalError";
717
+ WorkerEventType2["message"] = "message";
718
+ WorkerEventType2["termination"] = "termination";
719
+ return WorkerEventType2;
720
+ }({});
508
721
 
509
722
  // src/master/invocation-proxy.ts
510
723
  import DebugLogger2 from "debug";
@@ -512,17 +725,22 @@ import { multicast as multicast2, Observable as Observable3 } from "observable-f
512
725
 
513
726
  // src/observable-promise.ts
514
727
  import { Observable as Observable2 } from "observable-fns";
515
- var doNothing2 = () => {
516
- };
517
- var returnInput = (input) => input;
518
- var runDeferred = (fn) => Promise.resolve().then(fn);
728
+ var doNothing2 = /* @__PURE__ */ __name(() => {
729
+ }, "doNothing");
730
+ var returnInput = /* @__PURE__ */ __name((input) => input, "returnInput");
731
+ var runDeferred = /* @__PURE__ */ __name((fn) => Promise.resolve().then(fn), "runDeferred");
519
732
  function fail2(error) {
520
733
  throw error;
521
734
  }
735
+ __name(fail2, "fail");
522
736
  function isThenable(thing) {
523
737
  return thing && typeof thing.then === "function";
524
738
  }
739
+ __name(isThenable, "isThenable");
525
740
  var ObservablePromise = class _ObservablePromise extends Observable2 {
741
+ static {
742
+ __name(this, "ObservablePromise");
743
+ }
526
744
  [Symbol.toStringTag] = "[object ObservablePromise]";
527
745
  initHasRun = false;
528
746
  fulfillmentCallbacks = [];
@@ -581,7 +799,7 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
581
799
  const onRejected = onRejectedRaw || fail2;
582
800
  let onRejectedCalled = false;
583
801
  return new Promise((resolve, reject) => {
584
- const rejectionCallback = (error) => {
802
+ const rejectionCallback = /* @__PURE__ */ __name((error) => {
585
803
  if (onRejectedCalled) return;
586
804
  onRejectedCalled = true;
587
805
  try {
@@ -589,17 +807,19 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
589
807
  } catch (anotherError) {
590
808
  reject(anotherError);
591
809
  }
592
- };
593
- const fulfillmentCallback = (value) => {
810
+ }, "rejectionCallback");
811
+ const fulfillmentCallback = /* @__PURE__ */ __name((value) => {
594
812
  try {
595
813
  resolve(onFulfilled(value));
596
814
  } catch (ex) {
597
815
  const error = ex;
598
816
  rejectionCallback(error);
599
817
  }
600
- };
818
+ }, "fulfillmentCallback");
601
819
  if (!this.initHasRun) {
602
- this.subscribe({ error: rejectionCallback });
820
+ this.subscribe({
821
+ error: rejectionCallback
822
+ });
603
823
  }
604
824
  if (this.state === "fulfilled") {
605
825
  return resolve(onFulfilled(this.firstValue));
@@ -617,23 +837,20 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
617
837
  }
618
838
  finally(onCompleted) {
619
839
  const handler = onCompleted || doNothing2;
620
- return this.then(
621
- (value) => {
622
- handler();
623
- return value;
624
- },
625
- () => handler()
626
- );
840
+ return this.then((value) => {
841
+ handler();
842
+ return value;
843
+ }, () => handler());
627
844
  }
628
845
  static from(thing) {
629
846
  return isThenable(thing) ? new _ObservablePromise((observer) => {
630
- const onFulfilled = (value) => {
847
+ const onFulfilled = /* @__PURE__ */ __name((value) => {
631
848
  observer.next(value);
632
849
  observer.complete();
633
- };
634
- const onRejected = (error) => {
850
+ }, "onFulfilled");
851
+ const onRejected = /* @__PURE__ */ __name((error) => {
635
852
  observer.error(error);
636
- };
853
+ }, "onRejected");
637
854
  thing.then(onFulfilled, onRejected);
638
855
  }) : super.from(thing);
639
856
  }
@@ -643,18 +860,36 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
643
860
  function isTransferDescriptor(thing) {
644
861
  return thing && typeof thing === "object" && thing[$transferable];
645
862
  }
863
+ __name(isTransferDescriptor, "isTransferDescriptor");
864
+
865
+ // src/types/messages.ts
866
+ var MasterMessageType = /* @__PURE__ */ function(MasterMessageType2) {
867
+ MasterMessageType2["cancel"] = "cancel";
868
+ MasterMessageType2["run"] = "run";
869
+ return MasterMessageType2;
870
+ }({});
871
+ var WorkerMessageType = /* @__PURE__ */ function(WorkerMessageType2) {
872
+ WorkerMessageType2["error"] = "error";
873
+ WorkerMessageType2["init"] = "init";
874
+ WorkerMessageType2["result"] = "result";
875
+ WorkerMessageType2["running"] = "running";
876
+ WorkerMessageType2["uncaughtError"] = "uncaughtError";
877
+ return WorkerMessageType2;
878
+ }({});
646
879
 
647
880
  // src/master/invocation-proxy.ts
648
881
  var debugMessages = DebugLogger2("threads:master:messages");
649
882
  var nextJobUID = 1;
650
- var dedupe = (array) => [...new Set(array)];
651
- var isJobErrorMessage = (data) => data && data.type === "error" /* error */;
652
- var isJobResultMessage = (data) => data && data.type === "result" /* result */;
653
- var isJobStartMessage = (data) => data && data.type === "running" /* running */;
883
+ var dedupe = /* @__PURE__ */ __name((array) => [
884
+ ...new Set(array)
885
+ ], "dedupe");
886
+ var isJobErrorMessage = /* @__PURE__ */ __name((data) => data && data.type === WorkerMessageType.error, "isJobErrorMessage");
887
+ var isJobResultMessage = /* @__PURE__ */ __name((data) => data && data.type === WorkerMessageType.result, "isJobResultMessage");
888
+ var isJobStartMessage = /* @__PURE__ */ __name((data) => data && data.type === WorkerMessageType.running, "isJobStartMessage");
654
889
  function createObservableForJob(worker, jobUID) {
655
890
  return new Observable3((observer) => {
656
891
  let asyncType;
657
- const messageHandler = (event) => {
892
+ const messageHandler = /* @__PURE__ */ __name((event) => {
658
893
  debugMessages("Message from worker:", event.data);
659
894
  if (!event.data || event.data.uid !== jobUID) return;
660
895
  if (isJobStartMessage(event.data)) {
@@ -684,12 +919,12 @@ function createObservableForJob(worker, jobUID) {
684
919
  }
685
920
  worker.removeEventListener("message", messageHandler);
686
921
  }
687
- };
922
+ }, "messageHandler");
688
923
  worker.addEventListener("message", messageHandler);
689
924
  return () => {
690
925
  if (asyncType === "observable" || !asyncType) {
691
926
  const cancelMessage = {
692
- type: "cancel" /* cancel */,
927
+ type: MasterMessageType.cancel,
693
928
  uid: jobUID
694
929
  };
695
930
  worker.postMessage(cancelMessage);
@@ -698,6 +933,7 @@ function createObservableForJob(worker, jobUID) {
698
933
  };
699
934
  });
700
935
  }
936
+ __name(createObservableForJob, "createObservableForJob");
701
937
  function prepareArguments(rawArgs) {
702
938
  if (rawArgs.length === 0) {
703
939
  return {
@@ -720,6 +956,7 @@ function prepareArguments(rawArgs) {
720
956
  transferables: transferables.length === 0 ? transferables : dedupe(transferables)
721
957
  };
722
958
  }
959
+ __name(prepareArguments, "prepareArguments");
723
960
  function createProxyFunction(worker, method) {
724
961
  return (...rawArgs) => {
725
962
  const uid = nextJobUID++;
@@ -727,7 +964,7 @@ function createProxyFunction(worker, method) {
727
964
  const runMessage = {
728
965
  args,
729
966
  method,
730
- type: "run" /* run */,
967
+ type: MasterMessageType.run,
731
968
  uid
732
969
  };
733
970
  debugMessages("Sending command to run function to worker:", runMessage);
@@ -739,6 +976,7 @@ function createProxyFunction(worker, method) {
739
976
  return ObservablePromise.from(multicast2(createObservableForJob(worker, uid)));
740
977
  };
741
978
  }
979
+ __name(createProxyFunction, "createProxyFunction");
742
980
  function createProxyModule(worker, methodNames) {
743
981
  const proxy = {};
744
982
  for (const methodName of methodNames) {
@@ -746,26 +984,31 @@ function createProxyModule(worker, methodNames) {
746
984
  }
747
985
  return proxy;
748
986
  }
987
+ __name(createProxyModule, "createProxyModule");
749
988
 
750
989
  // src/master/spawn.ts
751
990
  var debugMessages2 = DebugLogger3("threads:master:messages");
752
991
  var debugSpawn = DebugLogger3("threads:master:spawn");
753
992
  var debugThreadUtils = DebugLogger3("threads:master:thread-utils");
754
- var isInitMessage = (data) => data && data.type === "init";
755
- var isUncaughtErrorMessage = (data) => data && data.type === "uncaughtError";
993
+ var isInitMessage = /* @__PURE__ */ __name((data) => data && data.type === "init", "isInitMessage");
994
+ var isUncaughtErrorMessage = /* @__PURE__ */ __name((data) => data && data.type === "uncaughtError", "isUncaughtErrorMessage");
756
995
  var initMessageTimeout = typeof process !== "undefined" && process.env !== void 0 && process.env.THREADS_WORKER_INIT_TIMEOUT ? Number.parseInt(process.env.THREADS_WORKER_INIT_TIMEOUT, 10) : 1e4;
757
996
  async function withTimeout(promise, timeoutInMs, errorMessage) {
758
997
  let timeoutHandle;
759
998
  const timeout = new Promise((resolve, reject) => {
760
999
  timeoutHandle = setTimeout(() => reject(new Error(errorMessage)), timeoutInMs);
761
1000
  });
762
- const result = await Promise.race([promise, timeout]);
1001
+ const result = await Promise.race([
1002
+ promise,
1003
+ timeout
1004
+ ]);
763
1005
  clearTimeout(timeoutHandle);
764
1006
  return result;
765
1007
  }
1008
+ __name(withTimeout, "withTimeout");
766
1009
  function receiveInitMessage(worker) {
767
1010
  return new Promise((resolve, reject) => {
768
- const messageHandler = (event) => {
1011
+ const messageHandler = /* @__PURE__ */ __name((event) => {
769
1012
  debugMessages2("Message from worker before finishing initialization:", event.data);
770
1013
  if (isInitMessage(event.data)) {
771
1014
  worker.removeEventListener("message", messageHandler);
@@ -774,31 +1017,34 @@ function receiveInitMessage(worker) {
774
1017
  worker.removeEventListener("message", messageHandler);
775
1018
  reject(deserialize(event.data.error));
776
1019
  }
777
- };
1020
+ }, "messageHandler");
778
1021
  worker.addEventListener("message", messageHandler);
779
1022
  });
780
1023
  }
1024
+ __name(receiveInitMessage, "receiveInitMessage");
781
1025
  function createEventObservable(worker, workerTermination) {
782
1026
  return new Observable4((observer) => {
783
- const messageHandler = (messageEvent) => {
1027
+ const messageHandler = /* @__PURE__ */ __name((messageEvent) => {
784
1028
  const workerEvent = {
785
1029
  data: messageEvent.data,
786
- type: "message" /* message */
1030
+ type: WorkerEventType.message
787
1031
  };
788
1032
  observer.next(workerEvent);
789
- };
790
- const rejectionHandler = (errorEvent) => {
1033
+ }, "messageHandler");
1034
+ const rejectionHandler = /* @__PURE__ */ __name((errorEvent) => {
791
1035
  debugThreadUtils("Unhandled promise rejection event in thread:", errorEvent);
792
1036
  const workerEvent = {
793
1037
  error: new Error(errorEvent.reason),
794
- type: "internalError" /* internalError */
1038
+ type: WorkerEventType.internalError
795
1039
  };
796
1040
  observer.next(workerEvent);
797
- };
1041
+ }, "rejectionHandler");
798
1042
  worker.addEventListener("message", messageHandler);
799
1043
  worker.addEventListener("unhandledrejection", rejectionHandler);
800
1044
  workerTermination.then(() => {
801
- const terminationEvent = { type: "termination" /* termination */ };
1045
+ const terminationEvent = {
1046
+ type: WorkerEventType.termination
1047
+ };
802
1048
  worker.removeEventListener("message", messageHandler);
803
1049
  worker.removeEventListener("unhandledrejection", rejectionHandler);
804
1050
  observer.next(terminationEvent);
@@ -806,17 +1052,22 @@ function createEventObservable(worker, workerTermination) {
806
1052
  });
807
1053
  });
808
1054
  }
1055
+ __name(createEventObservable, "createEventObservable");
809
1056
  function createTerminator(worker) {
810
1057
  const [termination, resolver] = createPromiseWithResolver();
811
- const terminate = async () => {
1058
+ const terminate = /* @__PURE__ */ __name(async () => {
812
1059
  debugThreadUtils("Terminating worker");
813
1060
  await worker.terminate();
814
1061
  resolver();
1062
+ }, "terminate");
1063
+ return {
1064
+ terminate,
1065
+ termination
815
1066
  };
816
- return { terminate, termination };
817
1067
  }
1068
+ __name(createTerminator, "createTerminator");
818
1069
  function setPrivateThreadProps(raw, worker, workerEvents, terminate) {
819
- const workerErrors = workerEvents.filter((event) => event.type === "internalError" /* internalError */).map((errorEvent) => errorEvent.error);
1070
+ const workerErrors = workerEvents.filter((event) => event.type === WorkerEventType.internalError).map((errorEvent) => errorEvent.error);
820
1071
  return Object.assign(raw, {
821
1072
  [$errors]: workerErrors,
822
1073
  [$events]: workerEvents,
@@ -824,14 +1075,11 @@ function setPrivateThreadProps(raw, worker, workerEvents, terminate) {
824
1075
  [$worker]: worker
825
1076
  });
826
1077
  }
1078
+ __name(setPrivateThreadProps, "setPrivateThreadProps");
827
1079
  async function spawn(worker, options) {
828
1080
  debugSpawn("Initializing new thread");
829
1081
  const timeout = options && options.timeout ? options.timeout : initMessageTimeout;
830
- const initMessage = await withTimeout(
831
- receiveInitMessage(worker),
832
- timeout,
833
- `Timeout: Did not receive an init message from worker after ${timeout}ms. Make sure the worker calls expose().`
834
- );
1082
+ const initMessage = await withTimeout(receiveInitMessage(worker), timeout, `Timeout: Did not receive an init message from worker after ${timeout}ms. Make sure the worker calls expose().`);
835
1083
  const exposed = initMessage.exposed;
836
1084
  const { termination, terminate } = createTerminator(worker);
837
1085
  const events = createEventObservable(worker, termination);
@@ -846,6 +1094,7 @@ async function spawn(worker, options) {
846
1094
  throw new Error(`Worker init message states unexpected type of expose(): ${type}`);
847
1095
  }
848
1096
  }
1097
+ __name(spawn, "spawn");
849
1098
 
850
1099
  // src/master/index-node.ts
851
1100
  var BlobWorker = getWorkerImplementation().blob;