@eggjs/mock 6.1.0-beta.3 → 6.1.0-beta.4

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 (104) hide show
  1. package/dist/_virtual/rolldown_runtime.js +24 -1
  2. package/dist/bootstrap.d.ts +1 -1
  3. package/dist/bootstrap.js +1 -1
  4. package/dist/index.js +0 -1
  5. package/dist/inject_mocha.d.ts +1 -0
  6. package/dist/inject_mocha.js +35 -0
  7. package/dist/node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js +142 -0
  8. package/dist/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js +157 -0
  9. package/dist/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js +97 -0
  10. package/dist/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js +40 -0
  11. package/dist/node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js +812 -0
  12. package/dist/node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js +50 -0
  13. package/dist/node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js +68 -0
  14. package/dist/node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js +752 -0
  15. package/dist/node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/browser.js +203 -0
  16. package/dist/node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/common.js +209 -0
  17. package/dist/node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/index.js +18 -0
  18. package/dist/node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/node.js +215 -0
  19. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/convert/dmp.js +24 -0
  20. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/convert/xml.js +33 -0
  21. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/array.js +29 -0
  22. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/base.js +185 -0
  23. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/character.js +23 -0
  24. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/css.js +26 -0
  25. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/json.js +83 -0
  26. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/line.js +51 -0
  27. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/sentence.js +26 -0
  28. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/word.js +151 -0
  29. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/index.js +178 -0
  30. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/apply.js +168 -0
  31. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/create.js +301 -0
  32. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/line-endings.js +137 -0
  33. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/merge.js +367 -0
  34. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/parse.js +91 -0
  35. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/reverse.js +99 -0
  36. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/util/array.js +23 -0
  37. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/util/distance-iterator.js +30 -0
  38. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/util/params.js +22 -0
  39. package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/util/string.js +97 -0
  40. package/dist/node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js +14 -0
  41. package/dist/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js +16 -0
  42. package/dist/node_modules/.pnpm/he@1.2.0/node_modules/he/he.js +4093 -0
  43. package/dist/node_modules/.pnpm/is-unicode-supported@0.1.0/node_modules/is-unicode-supported/index.js +14 -0
  44. package/dist/node_modules/.pnpm/log-symbols@4.1.0/node_modules/log-symbols/index.js +27 -0
  45. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/index.js +12 -0
  46. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/context.js +83 -0
  47. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/error-constants.js +35 -0
  48. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/errors.js +392 -0
  49. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/hook.js +86 -0
  50. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/bdd.js +104 -0
  51. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/common.js +99 -0
  52. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/exports.js +65 -0
  53. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/index.js +18 -0
  54. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/qunit.js +95 -0
  55. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/tdd.js +105 -0
  56. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/mocha.js +1037 -0
  57. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/mocharc.js +24 -0
  58. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/buffered-worker-pool.js +152 -0
  59. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/esm-utils.js +74 -0
  60. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/file-unloader.js +22 -0
  61. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/parallel-buffered-runner.js +329 -0
  62. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/serializer.js +314 -0
  63. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/pending.js +22 -0
  64. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/base.js +417 -0
  65. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/doc.js +79 -0
  66. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/dot.js +75 -0
  67. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/html.js +283 -0
  68. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/index.js +40 -0
  69. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/json-stream.js +90 -0
  70. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/json.js +145 -0
  71. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/landing.js +107 -0
  72. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/list.js +77 -0
  73. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/markdown.js +106 -0
  74. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/min.js +57 -0
  75. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/nyan.js +233 -0
  76. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/progress.js +92 -0
  77. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/spec.js +91 -0
  78. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/tap.js +261 -0
  79. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/xunit.js +166 -0
  80. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/runnable.js +346 -0
  81. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/runner.js +922 -0
  82. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/stats-collector.js +72 -0
  83. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/suite.js +517 -0
  84. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/test.js +105 -0
  85. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/utils.js +505 -0
  86. package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/package.js +225 -0
  87. package/dist/node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js +124 -0
  88. package/dist/node_modules/.pnpm/randombytes@2.1.0/node_modules/randombytes/index.js +11 -0
  89. package/dist/node_modules/.pnpm/serialize-javascript@6.0.2/node_modules/serialize-javascript/index.js +114 -0
  90. package/dist/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js +76 -0
  91. package/dist/node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js +89 -0
  92. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/Pool.js +366 -0
  93. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/Promise.js +248 -0
  94. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/WorkerHandler.js +419 -0
  95. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/debug-port-allocator.js +27 -0
  96. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/environment.js +18 -0
  97. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/generated/embeddedWorker.js +16 -0
  98. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/index.js +63 -0
  99. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/transfer.js +21 -0
  100. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/validateOptions.js +9 -0
  101. package/dist/node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/worker.js +281 -0
  102. package/dist/register.d.ts +0 -2
  103. package/dist/register.js +1 -26
  104. package/package.json +10 -8
@@ -0,0 +1,419 @@
1
+ import { __commonJS, __require } from "../../../../../../_virtual/rolldown_runtime.js";
2
+ import { require_environment } from "./environment.js";
3
+ import { require_Promise } from "./Promise.js";
4
+ import { require_validateOptions } from "./validateOptions.js";
5
+ import { require_embeddedWorker } from "./generated/embeddedWorker.js";
6
+
7
+ //#region ../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/WorkerHandler.js
8
+ var require_WorkerHandler = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/WorkerHandler.js": ((exports, module) => {
9
+ var { Promise: Promise$1 } = require_Promise();
10
+ var environment = require_environment();
11
+ const { validateOptions, forkOptsNames, workerThreadOptsNames, workerOptsNames } = require_validateOptions();
12
+ /**
13
+ * Special message sent by parent which causes a child process worker to terminate itself.
14
+ * Not a "message object"; this string is the entire message.
15
+ */
16
+ var TERMINATE_METHOD_ID = "__workerpool-terminate__";
17
+ /**
18
+ * Special message by parent which causes a child process worker to perform cleaup
19
+ * steps before determining if the child process worker should be terminated.
20
+ */
21
+ var CLEANUP_METHOD_ID = "__workerpool-cleanup__";
22
+ function ensureWorkerThreads() {
23
+ var WorkerThreads = tryRequireWorkerThreads();
24
+ if (!WorkerThreads) throw new Error("WorkerPool: workerType = 'thread' is not supported, Node >= 11.7.0 required");
25
+ return WorkerThreads;
26
+ }
27
+ function ensureWebWorker() {
28
+ if (typeof Worker !== "function" && (typeof Worker !== "object" || typeof Worker.prototype.constructor !== "function")) throw new Error("WorkerPool: Web Workers not supported");
29
+ }
30
+ function tryRequireWorkerThreads() {
31
+ try {
32
+ return __require("worker_threads");
33
+ } catch (error) {
34
+ if (typeof error === "object" && error !== null && error.code === "MODULE_NOT_FOUND") return null;
35
+ else throw error;
36
+ }
37
+ }
38
+ function getDefaultWorker() {
39
+ if (environment.platform === "browser") {
40
+ if (typeof Blob === "undefined") throw new Error("Blob not supported by the browser");
41
+ if (!window.URL || typeof window.URL.createObjectURL !== "function") throw new Error("URL.createObjectURL not supported by the browser");
42
+ var blob = new Blob([require_embeddedWorker()], { type: "text/javascript" });
43
+ return window.URL.createObjectURL(blob);
44
+ } else return __dirname + "/worker.js";
45
+ }
46
+ function setupWorker(script, options) {
47
+ if (options.workerType === "web") {
48
+ ensureWebWorker();
49
+ return setupBrowserWorker(script, options.workerOpts, Worker);
50
+ } else if (options.workerType === "thread") {
51
+ WorkerThreads = ensureWorkerThreads();
52
+ return setupWorkerThreadWorker(script, WorkerThreads, options);
53
+ } else if (options.workerType === "process" || !options.workerType) return setupProcessWorker(script, resolveForkOptions(options), __require("child_process"));
54
+ else if (environment.platform === "browser") {
55
+ ensureWebWorker();
56
+ return setupBrowserWorker(script, options.workerOpts, Worker);
57
+ } else {
58
+ var WorkerThreads = tryRequireWorkerThreads();
59
+ if (WorkerThreads) return setupWorkerThreadWorker(script, WorkerThreads, options);
60
+ else return setupProcessWorker(script, resolveForkOptions(options), __require("child_process"));
61
+ }
62
+ }
63
+ function setupBrowserWorker(script, workerOpts, Worker$1) {
64
+ validateOptions(workerOpts, workerOptsNames, "workerOpts");
65
+ var worker = new Worker$1(script, workerOpts);
66
+ worker.isBrowserWorker = true;
67
+ worker.on = function(event, callback) {
68
+ this.addEventListener(event, function(message) {
69
+ callback(message.data);
70
+ });
71
+ };
72
+ worker.send = function(message, transfer) {
73
+ this.postMessage(message, transfer);
74
+ };
75
+ return worker;
76
+ }
77
+ function setupWorkerThreadWorker(script, WorkerThreads, options) {
78
+ validateOptions(options?.workerThreadOpts, workerThreadOptsNames, "workerThreadOpts");
79
+ var worker = new WorkerThreads.Worker(script, {
80
+ stdout: options?.emitStdStreams ?? false,
81
+ stderr: options?.emitStdStreams ?? false,
82
+ ...options?.workerThreadOpts
83
+ });
84
+ worker.isWorkerThread = true;
85
+ worker.send = function(message, transfer) {
86
+ this.postMessage(message, transfer);
87
+ };
88
+ worker.kill = function() {
89
+ this.terminate();
90
+ return true;
91
+ };
92
+ worker.disconnect = function() {
93
+ this.terminate();
94
+ };
95
+ if (options?.emitStdStreams) {
96
+ worker.stdout.on("data", (data) => worker.emit("stdout", data));
97
+ worker.stderr.on("data", (data) => worker.emit("stderr", data));
98
+ }
99
+ return worker;
100
+ }
101
+ function setupProcessWorker(script, options, child_process) {
102
+ validateOptions(options.forkOpts, forkOptsNames, "forkOpts");
103
+ var worker = child_process.fork(script, options.forkArgs, options.forkOpts);
104
+ var send = worker.send;
105
+ worker.send = function(message) {
106
+ return send.call(worker, message);
107
+ };
108
+ if (options.emitStdStreams) {
109
+ worker.stdout.on("data", (data) => worker.emit("stdout", data));
110
+ worker.stderr.on("data", (data) => worker.emit("stderr", data));
111
+ }
112
+ worker.isChildProcess = true;
113
+ return worker;
114
+ }
115
+ function resolveForkOptions(opts) {
116
+ opts = opts || {};
117
+ var processExecArgv = process.execArgv.join(" ");
118
+ var inspectorActive = processExecArgv.indexOf("--inspect") !== -1;
119
+ var debugBrk = processExecArgv.indexOf("--debug-brk") !== -1;
120
+ var execArgv = [];
121
+ if (inspectorActive) {
122
+ execArgv.push("--inspect=" + opts.debugPort);
123
+ if (debugBrk) execArgv.push("--debug-brk");
124
+ }
125
+ process.execArgv.forEach(function(arg) {
126
+ if (arg.indexOf("--max-old-space-size") > -1) execArgv.push(arg);
127
+ });
128
+ return Object.assign({}, opts, {
129
+ forkArgs: opts.forkArgs,
130
+ forkOpts: Object.assign({}, opts.forkOpts, {
131
+ execArgv: (opts.forkOpts && opts.forkOpts.execArgv || []).concat(execArgv),
132
+ stdio: opts.emitStdStreams ? "pipe" : void 0
133
+ })
134
+ });
135
+ }
136
+ /**
137
+ * Converts a serialized error to Error
138
+ * @param {Object} obj Error that has been serialized and parsed to object
139
+ * @return {Error} The equivalent Error.
140
+ */
141
+ function objectToError(obj) {
142
+ var temp = /* @__PURE__ */ new Error("");
143
+ var props = Object.keys(obj);
144
+ for (var i = 0; i < props.length; i++) temp[props[i]] = obj[props[i]];
145
+ return temp;
146
+ }
147
+ function handleEmittedStdPayload(handler, payload) {
148
+ Object.values(handler.processing).forEach((task) => task?.options?.on(payload));
149
+ Object.values(handler.tracking).forEach((task) => task?.options?.on(payload));
150
+ }
151
+ /**
152
+ * A WorkerHandler controls a single worker. This worker can be a child process
153
+ * on node.js or a WebWorker in a browser environment.
154
+ * @param {String} [script] If no script is provided, a default worker with a
155
+ * function run will be created.
156
+ * @param {import('./types.js').WorkerPoolOptions} [_options] See docs
157
+ * @constructor
158
+ */
159
+ function WorkerHandler(script, _options) {
160
+ var me = this;
161
+ var options = _options || {};
162
+ this.script = script || getDefaultWorker();
163
+ this.worker = setupWorker(this.script, options);
164
+ this.debugPort = options.debugPort;
165
+ this.forkOpts = options.forkOpts;
166
+ this.forkArgs = options.forkArgs;
167
+ this.workerOpts = options.workerOpts;
168
+ this.workerThreadOpts = options.workerThreadOpts;
169
+ this.workerTerminateTimeout = options.workerTerminateTimeout;
170
+ if (!script) this.worker.ready = true;
171
+ this.requestQueue = [];
172
+ this.worker.on("stdout", function(data) {
173
+ handleEmittedStdPayload(me, { "stdout": data.toString() });
174
+ });
175
+ this.worker.on("stderr", function(data) {
176
+ handleEmittedStdPayload(me, { "stderr": data.toString() });
177
+ });
178
+ this.worker.on("message", function(response) {
179
+ if (me.terminated) return;
180
+ if (typeof response === "string" && response === "ready") {
181
+ me.worker.ready = true;
182
+ dispatchQueuedRequests();
183
+ } else {
184
+ var id = response.id;
185
+ var task = me.processing[id];
186
+ if (task !== void 0) if (response.isEvent) {
187
+ if (task.options && typeof task.options.on === "function") task.options.on(response.payload);
188
+ } else {
189
+ delete me.processing[id];
190
+ if (me.terminating === true) me.terminate();
191
+ if (response.error) task.resolver.reject(objectToError(response.error));
192
+ else task.resolver.resolve(response.result);
193
+ }
194
+ else {
195
+ var task = me.tracking[id];
196
+ if (task !== void 0) {
197
+ if (response.isEvent) {
198
+ if (task.options && typeof task.options.on === "function") task.options.on(response.payload);
199
+ }
200
+ }
201
+ }
202
+ if (response.method === CLEANUP_METHOD_ID) {
203
+ var trackedTask = me.tracking[response.id];
204
+ if (trackedTask !== void 0) if (response.error) {
205
+ clearTimeout(trackedTask.timeoutId);
206
+ trackedTask.resolver.reject(objectToError(response.error));
207
+ } else {
208
+ me.tracking && clearTimeout(trackedTask.timeoutId);
209
+ trackedTask.resolver.reject(new WrappedTimeoutError(trackedTask.error));
210
+ }
211
+ delete me.tracking[id];
212
+ }
213
+ }
214
+ });
215
+ function onError(error) {
216
+ me.terminated = true;
217
+ for (var id in me.processing) if (me.processing[id] !== void 0) me.processing[id].resolver.reject(error);
218
+ me.processing = Object.create(null);
219
+ }
220
+ function dispatchQueuedRequests() {
221
+ for (const request of me.requestQueue.splice(0)) me.worker.send(request.message, request.transfer);
222
+ }
223
+ var worker = this.worker;
224
+ this.worker.on("error", onError);
225
+ this.worker.on("exit", function(exitCode, signalCode) {
226
+ var message = "Workerpool Worker terminated Unexpectedly\n";
227
+ message += " exitCode: `" + exitCode + "`\n";
228
+ message += " signalCode: `" + signalCode + "`\n";
229
+ message += " workerpool.script: `" + me.script + "`\n";
230
+ message += " spawnArgs: `" + worker.spawnargs + "`\n";
231
+ message += " spawnfile: `" + worker.spawnfile + "`\n";
232
+ message += " stdout: `" + worker.stdout + "`\n";
233
+ message += " stderr: `" + worker.stderr + "`\n";
234
+ onError(new Error(message));
235
+ });
236
+ this.processing = Object.create(null);
237
+ this.tracking = Object.create(null);
238
+ this.terminating = false;
239
+ this.terminated = false;
240
+ this.cleaning = false;
241
+ this.terminationHandler = null;
242
+ this.lastId = 0;
243
+ }
244
+ /**
245
+ * Get a list with methods available on the worker.
246
+ * @return {Promise.<String[], Error>} methods
247
+ */
248
+ WorkerHandler.prototype.methods = function() {
249
+ return this.exec("methods");
250
+ };
251
+ /**
252
+ * Execute a method with given parameters on the worker
253
+ * @param {String} method
254
+ * @param {Array} [params]
255
+ * @param {{resolve: Function, reject: Function}} [resolver]
256
+ * @param {import('./types.js').ExecOptions} [options]
257
+ * @return {Promise.<*, Error>} result
258
+ */
259
+ WorkerHandler.prototype.exec = function(method, params, resolver, options) {
260
+ if (!resolver) resolver = Promise$1.defer();
261
+ var id = ++this.lastId;
262
+ this.processing[id] = {
263
+ id,
264
+ resolver,
265
+ options
266
+ };
267
+ var request = {
268
+ message: {
269
+ id,
270
+ method,
271
+ params
272
+ },
273
+ transfer: options && options.transfer
274
+ };
275
+ if (this.terminated) resolver.reject(/* @__PURE__ */ new Error("Worker is terminated"));
276
+ else if (this.worker.ready) this.worker.send(request.message, request.transfer);
277
+ else this.requestQueue.push(request);
278
+ var me = this;
279
+ return resolver.promise.catch(function(error) {
280
+ if (error instanceof Promise$1.CancellationError || error instanceof Promise$1.TimeoutError) {
281
+ me.tracking[id] = {
282
+ id,
283
+ resolver: Promise$1.defer(),
284
+ options,
285
+ error
286
+ };
287
+ delete me.processing[id];
288
+ me.tracking[id].resolver.promise = me.tracking[id].resolver.promise.catch(function(err) {
289
+ delete me.tracking[id];
290
+ if (err instanceof WrappedTimeoutError) throw err.error;
291
+ return me.terminateAndNotify(true).then(function() {
292
+ throw err;
293
+ }, function(err$1) {
294
+ throw err$1;
295
+ });
296
+ });
297
+ me.worker.send({
298
+ id,
299
+ method: CLEANUP_METHOD_ID
300
+ });
301
+ /**
302
+ * Sets a timeout to reject the cleanup operation if the message sent to the worker
303
+ * does not receive a response. see worker.tryCleanup for worker cleanup operations.
304
+ * Here we use the workerTerminateTimeout as the worker will be terminated if the timeout does invoke.
305
+ *
306
+ * We need this timeout in either case of a Timeout or Cancellation Error as if
307
+ * the worker does not send a message we still need to give a window of time for a response.
308
+ *
309
+ * The workerTermniateTimeout is used here if this promise is rejected the worker cleanup
310
+ * operations will occure.
311
+ */
312
+ me.tracking[id].timeoutId = setTimeout(function() {
313
+ me.tracking[id].resolver.reject(error);
314
+ }, me.workerTerminateTimeout);
315
+ return me.tracking[id].resolver.promise;
316
+ } else throw error;
317
+ });
318
+ };
319
+ /**
320
+ * Test whether the worker is processing any tasks or cleaning up before termination.
321
+ * @return {boolean} Returns true if the worker is busy
322
+ */
323
+ WorkerHandler.prototype.busy = function() {
324
+ return this.cleaning || Object.keys(this.processing).length > 0;
325
+ };
326
+ /**
327
+ * Terminate the worker.
328
+ * @param {boolean} [force=false] If false (default), the worker is terminated
329
+ * after finishing all tasks currently in
330
+ * progress. If true, the worker will be
331
+ * terminated immediately.
332
+ * @param {function} [callback=null] If provided, will be called when process terminates.
333
+ */
334
+ WorkerHandler.prototype.terminate = function(force, callback) {
335
+ var me = this;
336
+ if (force) {
337
+ for (var id in this.processing) if (this.processing[id] !== void 0) this.processing[id].resolver.reject(/* @__PURE__ */ new Error("Worker terminated"));
338
+ this.processing = Object.create(null);
339
+ }
340
+ for (var task of Object.values(me.tracking)) {
341
+ clearTimeout(task.timeoutId);
342
+ task.resolver.reject(/* @__PURE__ */ new Error("Worker Terminating"));
343
+ }
344
+ me.tracking = Object.create(null);
345
+ if (typeof callback === "function") this.terminationHandler = callback;
346
+ if (!this.busy()) {
347
+ var cleanup = function(err) {
348
+ me.terminated = true;
349
+ me.cleaning = false;
350
+ if (me.worker != null && me.worker.removeAllListeners) me.worker.removeAllListeners("message");
351
+ me.worker = null;
352
+ me.terminating = false;
353
+ if (me.terminationHandler) me.terminationHandler(err, me);
354
+ else if (err) throw err;
355
+ };
356
+ if (this.worker) if (typeof this.worker.kill === "function") {
357
+ if (this.worker.killed) {
358
+ cleanup(/* @__PURE__ */ new Error("worker already killed!"));
359
+ return;
360
+ }
361
+ var cleanExitTimeout = setTimeout(function() {
362
+ if (me.worker) me.worker.kill();
363
+ }, this.workerTerminateTimeout);
364
+ this.worker.once("exit", function() {
365
+ clearTimeout(cleanExitTimeout);
366
+ if (me.worker) me.worker.killed = true;
367
+ cleanup();
368
+ });
369
+ if (this.worker.ready) this.worker.send(TERMINATE_METHOD_ID);
370
+ else this.requestQueue.push({ message: TERMINATE_METHOD_ID });
371
+ this.cleaning = true;
372
+ return;
373
+ } else if (typeof this.worker.terminate === "function") {
374
+ this.worker.terminate();
375
+ this.worker.killed = true;
376
+ } else throw new Error("Failed to terminate worker");
377
+ cleanup();
378
+ } else this.terminating = true;
379
+ };
380
+ /**
381
+ * Terminate the worker, returning a Promise that resolves when the termination has been done.
382
+ * @param {boolean} [force=false] If false (default), the worker is terminated
383
+ * after finishing all tasks currently in
384
+ * progress. If true, the worker will be
385
+ * terminated immediately.
386
+ * @param {number} [timeout] If provided and non-zero, worker termination promise will be rejected
387
+ * after timeout if worker process has not been terminated.
388
+ * @return {Promise.<WorkerHandler, Error>}
389
+ */
390
+ WorkerHandler.prototype.terminateAndNotify = function(force, timeout) {
391
+ var resolver = Promise$1.defer();
392
+ if (timeout) resolver.promise.timeout(timeout);
393
+ this.terminate(force, function(err, worker) {
394
+ if (err) resolver.reject(err);
395
+ else resolver.resolve(worker);
396
+ });
397
+ return resolver.promise;
398
+ };
399
+ /**
400
+ * Wrapper error type to denote that a TimeoutError has already been proceesed
401
+ * and we should skip cleanup operations
402
+ * @param {Promise.TimeoutError} timeoutError
403
+ */
404
+ function WrappedTimeoutError(timeoutError) {
405
+ this.error = timeoutError;
406
+ this.stack = (/* @__PURE__ */ new Error()).stack;
407
+ }
408
+ module.exports = WorkerHandler;
409
+ module.exports._tryRequireWorkerThreads = tryRequireWorkerThreads;
410
+ module.exports._setupProcessWorker = setupProcessWorker;
411
+ module.exports._setupBrowserWorker = setupBrowserWorker;
412
+ module.exports._setupWorkerThreadWorker = setupWorkerThreadWorker;
413
+ module.exports.ensureWorkerThreads = ensureWorkerThreads;
414
+ }) });
415
+
416
+ //#endregion
417
+ export default require_WorkerHandler();
418
+
419
+ export { require_WorkerHandler };
@@ -0,0 +1,27 @@
1
+ import { __commonJS } from "../../../../../../_virtual/rolldown_runtime.js";
2
+
3
+ //#region ../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/debug-port-allocator.js
4
+ var require_debug_port_allocator = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/debug-port-allocator.js": ((exports, module) => {
5
+ var MAX_PORTS = 65535;
6
+ module.exports = DebugPortAllocator;
7
+ function DebugPortAllocator() {
8
+ this.ports = Object.create(null);
9
+ this.length = 0;
10
+ }
11
+ DebugPortAllocator.prototype.nextAvailableStartingAt = function(starting) {
12
+ while (this.ports[starting] === true) starting++;
13
+ if (starting >= MAX_PORTS) throw new Error("WorkerPool debug port limit reached: " + starting + ">= " + MAX_PORTS);
14
+ this.ports[starting] = true;
15
+ this.length++;
16
+ return starting;
17
+ };
18
+ DebugPortAllocator.prototype.releasePort = function(port) {
19
+ delete this.ports[port];
20
+ this.length--;
21
+ };
22
+ }) });
23
+
24
+ //#endregion
25
+ export default require_debug_port_allocator();
26
+
27
+ export { require_debug_port_allocator };
@@ -0,0 +1,18 @@
1
+ import { __commonJS, __require } from "../../../../../../_virtual/rolldown_runtime.js";
2
+
3
+ //#region ../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/environment.js
4
+ var require_environment = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/environment.js": ((exports, module) => {
5
+ var isNode = function(nodeProcess) {
6
+ return typeof nodeProcess !== "undefined" && nodeProcess.versions != null && nodeProcess.versions.node != null && nodeProcess + "" === "[object process]";
7
+ };
8
+ module.exports.isNode = isNode;
9
+ module.exports.platform = typeof process !== "undefined" && isNode(process) ? "node" : "browser";
10
+ var worker_threads = module.exports.platform === "node" && __require("worker_threads");
11
+ module.exports.isMainThread = module.exports.platform === "node" ? (!worker_threads || worker_threads.isMainThread) && !process.connected : typeof Window !== "undefined";
12
+ module.exports.cpus = module.exports.platform === "browser" ? self.navigator.hardwareConcurrency : __require("os").cpus().length;
13
+ }) });
14
+
15
+ //#endregion
16
+ export default require_environment();
17
+
18
+ export { require_environment };
@@ -0,0 +1,16 @@
1
+ import { __commonJS } from "../../../../../../../_virtual/rolldown_runtime.js";
2
+
3
+ //#region ../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/generated/embeddedWorker.js
4
+ var require_embeddedWorker = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/generated/embeddedWorker.js": ((exports, module) => {
5
+ /**
6
+ * embeddedWorker.js contains an embedded version of worker.js.
7
+ * This file is automatically generated,
8
+ * changes made in this file will be overwritten.
9
+ */
10
+ module.exports = "!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).worker=n()}(this,(function(){\"use strict\";function e(n){return e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},e(n)}function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t={};var r=function(e,n){this.message=e,this.transfer=n},o={};function i(e,n){var t=this;if(!(this instanceof i))throw new SyntaxError(\"Constructor must be called with the new operator\");if(\"function\"!=typeof e)throw new SyntaxError(\"Function parameter handler(resolve, reject) missing\");var r=[],o=[];this.resolved=!1,this.rejected=!1,this.pending=!0,this[Symbol.toStringTag]=\"Promise\";var a=function(e,n){r.push(e),o.push(n)};this.then=function(e,n){return new i((function(t,r){var o=e?u(e,t,r):t,i=n?u(n,t,r):r;a(o,i)}),t)};var f=function(e){return t.resolved=!0,t.rejected=!1,t.pending=!1,r.forEach((function(n){n(e)})),a=function(n,t){n(e)},f=d=function(){},t},d=function(e){return t.resolved=!1,t.rejected=!0,t.pending=!1,o.forEach((function(n){n(e)})),a=function(n,t){t(e)},f=d=function(){},t};this.cancel=function(){return n?n.cancel():d(new s),t},this.timeout=function(e){if(n)n.timeout(e);else{var r=setTimeout((function(){d(new c(\"Promise timed out after \"+e+\" ms\"))}),e);t.always((function(){clearTimeout(r)}))}return t},e((function(e){f(e)}),(function(e){d(e)}))}function u(e,n,t){return function(r){try{var o=e(r);o&&\"function\"==typeof o.then&&\"function\"==typeof o.catch?o.then(n,t):n(o)}catch(e){t(e)}}}function s(e){this.message=e||\"promise cancelled\",this.stack=(new Error).stack}function c(e){this.message=e||\"timeout exceeded\",this.stack=(new Error).stack}return i.prototype.catch=function(e){return this.then(null,e)},i.prototype.always=function(e){return this.then(e,e)},i.prototype.finally=function(e){var n=this,t=function(){return new i((function(e){return e()})).then(e).then((function(){return n}))};return this.then(t,t)},i.all=function(e){return new i((function(n,t){var r=e.length,o=[];r?e.forEach((function(e,i){e.then((function(e){o[i]=e,0==--r&&n(o)}),(function(e){r=0,t(e)}))})):n(o)}))},i.defer=function(){var e={};return e.promise=new i((function(n,t){e.resolve=n,e.reject=t})),e},s.prototype=new Error,s.prototype.constructor=Error,s.prototype.name=\"CancellationError\",i.CancellationError=s,c.prototype=new Error,c.prototype.constructor=Error,c.prototype.name=\"TimeoutError\",i.TimeoutError=c,o.Promise=i,function(n){var t=r,i=o.Promise,u=\"__workerpool-cleanup__\",s={exit:function(){}},c={addAbortListener:function(e){s.abortListeners.push(e)},emit:s.emit};if(\"undefined\"!=typeof self&&\"function\"==typeof postMessage&&\"function\"==typeof addEventListener)s.on=function(e,n){addEventListener(e,(function(e){n(e.data)}))},s.send=function(e,n){n?postMessage(e,n):postMessage(e)};else{if(\"undefined\"==typeof process)throw new Error(\"Script must be executed as a worker\");var a;try{a=require(\"worker_threads\")}catch(n){if(\"object\"!==e(n)||null===n||\"MODULE_NOT_FOUND\"!==n.code)throw n}if(a&&null!==a.parentPort){var f=a.parentPort;s.send=f.postMessage.bind(f),s.on=f.on.bind(f),s.exit=process.exit.bind(process)}else s.on=process.on.bind(process),s.send=function(e){process.send(e)},s.on(\"disconnect\",(function(){process.exit(1)})),s.exit=process.exit.bind(process)}function d(e){return Object.getOwnPropertyNames(e).reduce((function(n,t){return Object.defineProperty(n,t,{value:e[t],enumerable:!0})}),{})}function l(e){return e&&\"function\"==typeof e.then&&\"function\"==typeof e.catch}s.methods={},s.methods.run=function(e,n){var t=new Function(\"return (\"+e+\").apply(this, arguments);\");return t.worker=c,t.apply(t,n)},s.methods.methods=function(){return Object.keys(s.methods)},s.terminationHandler=void 0,s.abortListenerTimeout=1e3,s.abortListeners=[],s.terminateAndExit=function(e){var n=function(){s.exit(e)};if(!s.terminationHandler)return n();var t=s.terminationHandler(e);return l(t)?(t.then(n,n),t):(n(),new i((function(e,n){n(new Error(\"Worker terminating\"))})))},s.cleanup=function(e){if(!s.abortListeners.length)return s.send({id:e,method:u,error:d(new Error(\"Worker terminating\"))}),new i((function(e){e()}));var n,t=s.abortListeners.map((function(e){return e()})),r=new i((function(e,t){n=setTimeout((function(){t(new Error(\"Timeout occured waiting for abort handler, killing worker\"))}),s.abortListenerTimeout)})),o=i.all(t).then((function(){clearTimeout(n),s.abortListeners.length||(s.abortListeners=[])}),(function(){clearTimeout(n),s.exit()}));return new i((function(e,n){o.then(e,n),r.then(e,n)})).then((function(){s.send({id:e,method:u,error:null})}),(function(n){s.send({id:e,method:u,error:n?d(n):null})}))};var p=null;s.on(\"message\",(function(e){if(\"__workerpool-terminate__\"===e)return s.terminateAndExit(0);if(e.method===u)return s.cleanup(e.id);try{var n=s.methods[e.method];if(!n)throw new Error('Unknown method \"'+e.method+'\"');p=e.id;var r=n.apply(n,e.params);l(r)?r.then((function(n){n instanceof t?s.send({id:e.id,result:n.message,error:null},n.transfer):s.send({id:e.id,result:n,error:null}),p=null})).catch((function(n){s.send({id:e.id,result:null,error:d(n)}),p=null})):(r instanceof t?s.send({id:e.id,result:r.message,error:null},r.transfer):s.send({id:e.id,result:r,error:null}),p=null)}catch(n){s.send({id:e.id,result:null,error:d(n)})}})),s.register=function(e,n){if(e)for(var t in e)e.hasOwnProperty(t)&&(s.methods[t]=e[t],s.methods[t].worker=c);n&&(s.terminationHandler=n.onTerminate,s.abortListenerTimeout=n.abortListenerTimeout||1e3),s.send(\"ready\")},s.emit=function(e){if(p){if(e instanceof t)return void s.send({id:p,isEvent:!0,payload:e.message},e.transfer);s.send({id:p,isEvent:!0,payload:e})}},n.add=s.register,n.emit=s.emit}(t),n(t)}));\n//# sourceMappingURL=worker.min.js.map\n";
11
+ }) });
12
+
13
+ //#endregion
14
+ export default require_embeddedWorker();
15
+
16
+ export { require_embeddedWorker };
@@ -0,0 +1,63 @@
1
+ import { __commonJS } from "../../../../../../_virtual/rolldown_runtime.js";
2
+ import { require_environment } from "./environment.js";
3
+ import { require_Promise } from "./Promise.js";
4
+ import { require_Pool } from "./Pool.js";
5
+ import { require_transfer } from "./transfer.js";
6
+ import { require_worker } from "./worker.js";
7
+
8
+ //#region ../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/index.js
9
+ var require_src = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/index.js": ((exports) => {
10
+ const { platform, isMainThread, cpus } = require_environment();
11
+ /** @typedef {import("./Pool")} Pool */
12
+ /** @typedef {import("./types.js").WorkerPoolOptions} WorkerPoolOptions */
13
+ /** @typedef {import("./types.js").WorkerRegisterOptions} WorkerRegisterOptions */
14
+ /**
15
+ * @template { { [k: string]: (...args: any[]) => any } } T
16
+ * @typedef {import('./types.js').Proxy<T>} Proxy<T>
17
+ */
18
+ /**
19
+ * @overload
20
+ * Create a new worker pool
21
+ * @param {WorkerPoolOptions} [script]
22
+ * @returns {Pool} pool
23
+ */
24
+ /**
25
+ * @overload
26
+ * Create a new worker pool
27
+ * @param {string} [script]
28
+ * @param {WorkerPoolOptions} [options]
29
+ * @returns {Pool} pool
30
+ */
31
+ function pool(script, options) {
32
+ return new (require_Pool())(script, options);
33
+ }
34
+ exports.pool = pool;
35
+ /**
36
+ * Create a worker and optionally register a set of methods to the worker.
37
+ * @param {{ [k: string]: (...args: any[]) => any }} [methods]
38
+ * @param {WorkerRegisterOptions} [options]
39
+ */
40
+ function worker(methods, options) {
41
+ require_worker().add(methods, options);
42
+ }
43
+ exports.worker = worker;
44
+ /**
45
+ * Sends an event to the parent worker pool.
46
+ * @param {any} payload
47
+ */
48
+ function workerEmit(payload) {
49
+ require_worker().emit(payload);
50
+ }
51
+ exports.workerEmit = workerEmit;
52
+ const { Promise: Promise$1 } = require_Promise();
53
+ exports.Promise = Promise$1;
54
+ exports.Transfer = require_transfer();
55
+ exports.platform = platform;
56
+ exports.isMainThread = isMainThread;
57
+ exports.cpus = cpus;
58
+ }) });
59
+
60
+ //#endregion
61
+ export default require_src();
62
+
63
+ export { require_src };
@@ -0,0 +1,21 @@
1
+ import { __commonJS } from "../../../../../../_virtual/rolldown_runtime.js";
2
+
3
+ //#region ../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/transfer.js
4
+ var require_transfer = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/transfer.js": ((exports, module) => {
5
+ /**
6
+ * The helper class for transferring data from the worker to the main thread.
7
+ *
8
+ * @param {Object} message The object to deliver to the main thread.
9
+ * @param {Object[]} transfer An array of transferable Objects to transfer ownership of.
10
+ */
11
+ function Transfer(message, transfer) {
12
+ this.message = message;
13
+ this.transfer = transfer;
14
+ }
15
+ module.exports = Transfer;
16
+ }) });
17
+
18
+ //#endregion
19
+ export default require_transfer();
20
+
21
+ export { require_transfer };
@@ -0,0 +1,9 @@
1
+ import { __commonJS } from "../../../../../../_virtual/rolldown_runtime.js";
2
+
3
+ //#region ../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/validateOptions.js
4
+ var require_validateOptions = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/workerpool@9.3.3/node_modules/workerpool/src/validateOptions.js": ((exports) => {}) });
5
+
6
+ //#endregion
7
+ export default require_validateOptions();
8
+
9
+ export { require_validateOptions };