@eggjs/cluster 4.0.0-beta.20 → 4.0.0-beta.21

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 (40) hide show
  1. package/dist/agent_worker.d.ts +1 -1
  2. package/dist/agent_worker.js +64 -51
  3. package/dist/app_worker.d.ts +1 -1
  4. package/dist/app_worker.js +166 -128
  5. package/dist/dirname.d.ts +1 -0
  6. package/dist/dirname.js +11 -0
  7. package/dist/error/ClusterAgentWorkerError.d.ts +10 -0
  8. package/dist/error/ClusterAgentWorkerError.js +19 -0
  9. package/dist/error/ClusterWorkerExceptionError.d.ts +7 -0
  10. package/dist/error/ClusterWorkerExceptionError.js +14 -0
  11. package/dist/error/index.d.ts +2 -0
  12. package/dist/error/index.js +3 -0
  13. package/dist/index.d.ts +5 -445
  14. package/dist/index.js +17 -709
  15. package/dist/master.d.ts +90 -0
  16. package/dist/master.js +553 -0
  17. package/dist/utils/messenger.d.ts +92 -0
  18. package/dist/utils/messenger.js +179 -0
  19. package/dist/utils/mode/base/agent.d.ts +38 -0
  20. package/dist/utils/mode/base/agent.js +65 -0
  21. package/dist/utils/mode/base/app.d.ts +48 -0
  22. package/dist/utils/mode/base/app.js +80 -0
  23. package/dist/utils/mode/impl/process/agent.d.ts +18 -0
  24. package/dist/utils/mode/impl/process/agent.js +103 -0
  25. package/dist/utils/mode/impl/process/app.d.ts +21 -0
  26. package/dist/utils/mode/impl/process/app.js +119 -0
  27. package/dist/utils/mode/impl/worker_threads/agent.d.ts +18 -0
  28. package/dist/utils/mode/impl/worker_threads/agent.js +84 -0
  29. package/dist/utils/mode/impl/worker_threads/app.d.ts +26 -0
  30. package/dist/utils/mode/impl/worker_threads/app.js +137 -0
  31. package/dist/utils/options.d.ts +80 -0
  32. package/dist/utils/options.js +81 -0
  33. package/dist/utils/terminate.d.ts +6 -0
  34. package/dist/utils/terminate.js +81 -0
  35. package/dist/utils/worker_manager.d.ts +25 -0
  36. package/dist/utils/worker_manager.js +74 -0
  37. package/package.json +6 -6
  38. package/dist/agent-griHEaCW.js +0 -246
  39. package/dist/app-5Was1vub.js +0 -315
  40. package/dist/terminate-w3g0oQgq.js +0 -71
@@ -1 +1 @@
1
- export { };
1
+ export {};
@@ -1,55 +1,68 @@
1
- import "./terminate-w3g0oQgq.js";
2
- import { AgentProcessWorker, AgentThreadWorker } from "./agent-griHEaCW.js";
3
- import { debuglog } from "node:util";
4
- import { EggConsoleLogger } from "egg-logger";
5
- import { importModule } from "@eggjs/utils";
6
-
7
- //#region src/agent_worker.ts
8
- const debug = debuglog("egg/cluster/agent_worker");
1
+ import { debuglog } from 'node:util';
2
+ import { EggConsoleLogger as ConsoleLogger } from 'egg-logger';
3
+ import { importModule } from '@eggjs/utils';
4
+ import { BaseAgentWorker } from "./utils/mode/base/agent.js";
5
+ import { AgentThreadWorker } from "./utils/mode/impl/worker_threads/agent.js";
6
+ import { AgentProcessWorker } from "./utils/mode/impl/process/agent.js";
7
+ const debug = debuglog('egg/cluster/agent_worker');
9
8
  /**
10
- * agent worker is child_process forked by master.
11
- *
12
- * agent worker only exit in two cases:
13
- * - receive signal SIGTERM, exit code 0 (exit gracefully)
14
- * - receive disconnect event, exit code 110 (maybe master exit in accident)
15
- */
9
+ * agent worker is child_process forked by master.
10
+ *
11
+ * agent worker only exit in two cases:
12
+ * - receive signal SIGTERM, exit code 0 (exit gracefully)
13
+ * - receive disconnect event, exit code 110 (maybe master exit in accident)
14
+ */
16
15
  async function main() {
17
- const options = JSON.parse(process.argv[2]);
18
- if (options.require) for (const mod of options.require) await importModule(mod, { paths: [options.baseDir] });
19
- let AgentWorker;
20
- if (options.startMode === "worker_threads") AgentWorker = AgentThreadWorker;
21
- else AgentWorker = AgentProcessWorker;
22
- const consoleLogger = new EggConsoleLogger({ level: process.env.EGG_AGENT_WORKER_LOGGER_LEVEL });
23
- const { Agent } = await importModule(options.framework, { paths: [options.baseDir] });
24
- debug("new Agent with options %j", options);
25
- let agent;
26
- try {
27
- agent = new Agent(options);
28
- } catch (err) {
29
- consoleLogger.error(err);
30
- throw err;
31
- }
32
- function startErrorHandler(err) {
33
- consoleLogger.error(err);
34
- consoleLogger.error("[agent_worker] start error, exiting with code:1");
35
- AgentWorker.kill();
36
- }
37
- agent.ready((err) => {
38
- if (err) return;
39
- agent.removeListener("error", startErrorHandler);
40
- AgentWorker.send({
41
- action: "agent-start",
42
- to: "master"
43
- });
44
- });
45
- agent.once("error", startErrorHandler);
46
- AgentWorker.gracefulExit({
47
- logger: consoleLogger,
48
- label: "agent_worker",
49
- beforeExit: () => agent.close()
50
- });
16
+ // $ node agent_worker.js options
17
+ const options = JSON.parse(process.argv[2]);
18
+ if (options.require) {
19
+ // inject
20
+ for (const mod of options.require) {
21
+ await importModule(mod, {
22
+ paths: [options.baseDir],
23
+ });
24
+ }
25
+ }
26
+ let AgentWorker;
27
+ if (options.startMode === 'worker_threads') {
28
+ AgentWorker = AgentThreadWorker;
29
+ }
30
+ else {
31
+ AgentWorker = AgentProcessWorker;
32
+ }
33
+ const consoleLogger = new ConsoleLogger({ level: process.env.EGG_AGENT_WORKER_LOGGER_LEVEL });
34
+ const { Agent } = await importModule(options.framework, {
35
+ paths: [options.baseDir],
36
+ });
37
+ debug('new Agent with options %j', options);
38
+ let agent;
39
+ try {
40
+ agent = new Agent(options);
41
+ }
42
+ catch (err) {
43
+ consoleLogger.error(err);
44
+ throw err;
45
+ }
46
+ function startErrorHandler(err) {
47
+ consoleLogger.error(err);
48
+ consoleLogger.error('[agent_worker] start error, exiting with code:1');
49
+ AgentWorker.kill();
50
+ }
51
+ agent.ready((err) => {
52
+ // don't send started message to master when start error
53
+ if (err) {
54
+ return;
55
+ }
56
+ agent.removeListener('error', startErrorHandler);
57
+ AgentWorker.send({ action: 'agent-start', to: 'master' });
58
+ });
59
+ // exit if agent start error
60
+ agent.once('error', startErrorHandler);
61
+ AgentWorker.gracefulExit({
62
+ logger: consoleLogger,
63
+ label: 'agent_worker',
64
+ beforeExit: () => agent.close(),
65
+ });
51
66
  }
52
67
  main();
53
-
54
- //#endregion
55
- export { };
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRfd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FnZW50X3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFbkQ7Ozs7OztHQU1HO0FBQ0gsS0FBSyxVQUFVLElBQUk7SUFDakIsaUNBQWlDO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FLekMsQ0FBQztJQUNGLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLFNBQVM7UUFDVCxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFlBQVksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDekIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFdBQW1DLENBQUM7SUFDeEMsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsV0FBVyxHQUFHLGlCQUF3QixDQUFDO0lBQ3pDLENBQUM7U0FBTSxDQUFDO1FBQ04sV0FBVyxHQUFHLGtCQUF5QixDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUM5RixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUN0RCxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ3pCLENBQUMsQ0FBQztJQUNILEtBQUssQ0FBQywyQkFBMkIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxJQUFJLEtBQVUsQ0FBQztJQUNmLElBQUksQ0FBQztRQUNILEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsTUFBTSxHQUFHLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FBQyxHQUFVO1FBQ25DLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsYUFBYSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3ZFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQzFCLHdEQUF3RDtRQUN4RCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pELFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQyxDQUFDO0lBRUgsNEJBQTRCO0lBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFdkMsV0FBVyxDQUFDLFlBQVksQ0FBQztRQUN2QixNQUFNLEVBQUUsYUFBYTtRQUNyQixLQUFLLEVBQUUsY0FBYztRQUNyQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtLQUNoQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMifQ==
@@ -1 +1 @@
1
- export { };
1
+ export {};
@@ -1,131 +1,169 @@
1
- import "./terminate-w3g0oQgq.js";
2
- import { AppProcessWorker, AppThreadWorker } from "./app-5Was1vub.js";
3
- import { debuglog } from "node:util";
4
- import fs from "node:fs";
5
- import { EggConsoleLogger } from "egg-logger";
6
- import { importModule } from "@eggjs/utils";
7
- import { createServer } from "node:http";
8
- import { createServer as createServer$1 } from "node:https";
9
-
10
- //#region src/app_worker.ts
11
- const debug = debuglog("egg/cluster/app_worker");
1
+ import fs from 'node:fs';
2
+ import { createServer as createHttpServer } from 'node:http';
3
+ import { createServer as createHttpsServer } from 'node:https';
4
+ import { debuglog } from 'node:util';
5
+ import { EggConsoleLogger as ConsoleLogger } from 'egg-logger';
6
+ import { importModule } from '@eggjs/utils';
7
+ import { BaseAppWorker } from "./utils/mode/base/app.js";
8
+ import { AppThreadWorker } from "./utils/mode/impl/worker_threads/app.js";
9
+ import { AppProcessWorker } from "./utils/mode/impl/process/app.js";
10
+ const debug = debuglog('egg/cluster/app_worker');
12
11
  async function main() {
13
- const options = JSON.parse(process.argv[2]);
14
- if (options.require) for (const mod of options.require) await importModule(mod, { paths: [options.baseDir] });
15
- let AppWorker;
16
- if (options.startMode === "worker_threads") AppWorker = AppThreadWorker;
17
- else AppWorker = AppProcessWorker;
18
- const consoleLogger = new EggConsoleLogger({ level: process.env.EGG_APP_WORKER_LOGGER_LEVEL });
19
- const { Application } = await importModule(options.framework, { paths: [options.baseDir] });
20
- debug("[app_worker:%s] new Application with options %j", process.pid, options);
21
- let app;
22
- try {
23
- app = new Application(options);
24
- } catch (err) {
25
- consoleLogger.error(err);
26
- throw err;
27
- }
28
- app.ready(startServer);
29
- function exitProcess() {
30
- AppWorker.kill();
31
- }
32
- app.once("startTimeout", startTimeoutHandler);
33
- function startTimeoutHandler() {
34
- consoleLogger.error("[app_worker] start timeout, exiting with code:1");
35
- exitProcess();
36
- }
37
- function startServer(err) {
38
- if (err) {
39
- consoleLogger.error(err);
40
- consoleLogger.error("[app_worker] start error, exiting with code:1");
41
- exitProcess();
42
- return;
43
- }
44
- const clusterConfig = app.config.cluster ?? {};
45
- const listenConfig = clusterConfig.listen ?? {};
46
- const httpsOptions = {
47
- ...clusterConfig.https,
48
- ...options.https
49
- };
50
- const port = app.options.port = options.port || listenConfig.port;
51
- const debugPort = options.debugPort;
52
- const protocol = httpsOptions.key && httpsOptions.cert ? "https" : "http";
53
- debug("[app_worker:%s] listenConfig: %j, real port: %o, protocol: %o, debugPort: %o", process.pid, listenConfig, port, protocol, debugPort);
54
- AppWorker.send({
55
- to: "master",
56
- action: "realport",
57
- data: {
58
- port,
59
- protocol
60
- }
61
- });
62
- app.removeListener("startTimeout", startTimeoutHandler);
63
- let server;
64
- let debugPortServer;
65
- if (protocol === "https") {
66
- httpsOptions.key = fs.readFileSync(httpsOptions.key);
67
- httpsOptions.cert = fs.readFileSync(httpsOptions.cert);
68
- httpsOptions.ca = httpsOptions.ca && fs.readFileSync(httpsOptions.ca);
69
- server = createServer$1(httpsOptions, app.callback());
70
- if (debugPort) debugPortServer = createServer(app.callback());
71
- } else {
72
- server = createServer(app.callback());
73
- if (debugPort) debugPortServer = server;
74
- }
75
- server.once("error", (err$1) => {
76
- consoleLogger.error("[app_worker] server got error: %s, code: %s", err$1.message, err$1.code);
77
- exitProcess();
78
- });
79
- app.emit("server", server);
80
- if (options.sticky && options.stickyWorkerPort) {
81
- server.listen(options.stickyWorkerPort, "127.0.0.1");
82
- AppWorker.on("message", (message, connection) => {
83
- if (message !== "sticky-session:connection") return;
84
- server.emit("connection", connection);
85
- connection.resume();
86
- });
87
- } else {
88
- if (listenConfig.path) server.listen(listenConfig.path);
89
- else {
90
- if (typeof port !== "number") {
91
- consoleLogger.error("[app_worker:%s] port should be number, but got %s(%s)", process.pid, port, typeof port);
92
- exitProcess();
93
- return;
94
- }
95
- const args = [port];
96
- if (listenConfig.hostname) args.push(listenConfig.hostname);
97
- debug("listen options %j", args);
98
- server.listen(...args);
99
- }
100
- if (debugPortServer) {
101
- debug("listen on debug port: %s", debugPort);
102
- debugPortServer.listen(debugPort);
103
- }
104
- }
105
- server.once("listening", () => {
106
- let address = server.address() || { port };
107
- if (typeof address === "string") address = {
108
- address,
109
- addressType: -1
110
- };
111
- debug("[app_worker:%s] listening at %j", process.pid, address);
112
- AppWorker.send({
113
- to: "master",
114
- action: "app-start",
115
- data: {
116
- address,
117
- workerId: AppWorker.workerId
118
- }
119
- });
120
- });
121
- }
122
- AppWorker.gracefulExit({
123
- logger: consoleLogger,
124
- label: "app_worker",
125
- beforeExit: () => app.close()
126
- });
12
+ // $ node app_worker.js options-json-string
13
+ const options = JSON.parse(process.argv[2]);
14
+ if (options.require) {
15
+ // inject
16
+ for (const mod of options.require) {
17
+ await importModule(mod, {
18
+ paths: [options.baseDir],
19
+ });
20
+ }
21
+ }
22
+ let AppWorker;
23
+ if (options.startMode === 'worker_threads') {
24
+ AppWorker = AppThreadWorker;
25
+ }
26
+ else {
27
+ AppWorker = AppProcessWorker;
28
+ }
29
+ const consoleLogger = new ConsoleLogger({
30
+ level: process.env.EGG_APP_WORKER_LOGGER_LEVEL,
31
+ });
32
+ const { Application } = await importModule(options.framework, {
33
+ paths: [options.baseDir],
34
+ });
35
+ debug('[app_worker:%s] new Application with options %j', process.pid, options);
36
+ let app;
37
+ try {
38
+ app = new Application(options);
39
+ }
40
+ catch (err) {
41
+ consoleLogger.error(err);
42
+ throw err;
43
+ }
44
+ app.ready(startServer);
45
+ function exitProcess() {
46
+ // Use SIGTERM kill process, ensure trigger the gracefulExit
47
+ AppWorker.kill();
48
+ }
49
+ // exit if worker start timeout
50
+ app.once('startTimeout', startTimeoutHandler);
51
+ function startTimeoutHandler() {
52
+ consoleLogger.error('[app_worker] start timeout, exiting with code:1');
53
+ exitProcess();
54
+ }
55
+ function startServer(err) {
56
+ if (err) {
57
+ consoleLogger.error(err);
58
+ consoleLogger.error('[app_worker] start error, exiting with code:1');
59
+ exitProcess();
60
+ return;
61
+ }
62
+ const clusterConfig = app.config.cluster ?? {};
63
+ const listenConfig = clusterConfig.listen ?? {};
64
+ const httpsOptions = {
65
+ ...clusterConfig.https,
66
+ ...options.https,
67
+ };
68
+ const port = (app.options.port = options.port || listenConfig.port);
69
+ const debugPort = options.debugPort;
70
+ const protocol = httpsOptions.key && httpsOptions.cert ? 'https' : 'http';
71
+ debug('[app_worker:%s] listenConfig: %j, real port: %o, protocol: %o, debugPort: %o', process.pid, listenConfig, port, protocol, debugPort);
72
+ AppWorker.send({
73
+ to: 'master',
74
+ action: 'realport',
75
+ data: {
76
+ port,
77
+ protocol,
78
+ },
79
+ });
80
+ app.removeListener('startTimeout', startTimeoutHandler);
81
+ let server;
82
+ let debugPortServer;
83
+ // https config
84
+ if (protocol === 'https') {
85
+ httpsOptions.key = fs.readFileSync(httpsOptions.key);
86
+ httpsOptions.cert = fs.readFileSync(httpsOptions.cert);
87
+ httpsOptions.ca = httpsOptions.ca && fs.readFileSync(httpsOptions.ca);
88
+ server = createHttpsServer(httpsOptions, app.callback());
89
+ if (debugPort) {
90
+ debugPortServer = createHttpServer(app.callback());
91
+ }
92
+ }
93
+ else {
94
+ server = createHttpServer(app.callback());
95
+ if (debugPort) {
96
+ debugPortServer = server;
97
+ }
98
+ }
99
+ server.once('error', (err) => {
100
+ consoleLogger.error('[app_worker] server got error: %s, code: %s', err.message, err.code);
101
+ exitProcess();
102
+ });
103
+ // emit `server` event in app
104
+ app.emit('server', server);
105
+ if (options.sticky && options.stickyWorkerPort) {
106
+ // only allow connection from localhost
107
+ server.listen(options.stickyWorkerPort, '127.0.0.1');
108
+ // Listen to messages was sent from the master. Ignore everything else.
109
+ AppWorker.on('message', (message, connection) => {
110
+ if (message !== 'sticky-session:connection') {
111
+ return;
112
+ }
113
+ // Emulate a connection event on the server by emitting the
114
+ // event with the connection the master sent us.
115
+ server.emit('connection', connection);
116
+ connection.resume();
117
+ });
118
+ }
119
+ else {
120
+ if (listenConfig.path) {
121
+ server.listen(listenConfig.path);
122
+ }
123
+ else {
124
+ if (typeof port !== 'number') {
125
+ consoleLogger.error('[app_worker:%s] port should be number, but got %s(%s)', process.pid, port, typeof port);
126
+ exitProcess();
127
+ return;
128
+ }
129
+ const args = [port];
130
+ if (listenConfig.hostname) {
131
+ args.push(listenConfig.hostname);
132
+ }
133
+ debug('listen options %j', args);
134
+ server.listen(...args);
135
+ }
136
+ if (debugPortServer) {
137
+ debug('listen on debug port: %s', debugPort);
138
+ debugPortServer.listen(debugPort);
139
+ }
140
+ }
141
+ server.once('listening', () => {
142
+ let address = server.address() || { port };
143
+ if (typeof address === 'string') {
144
+ // https://nodejs.org/api/cluster.html#cluster_event_listening_1
145
+ // Unix domain socket
146
+ address = {
147
+ address,
148
+ addressType: -1,
149
+ };
150
+ }
151
+ debug('[app_worker:%s] listening at %j', process.pid, address);
152
+ AppWorker.send({
153
+ to: 'master',
154
+ action: 'app-start',
155
+ data: {
156
+ address,
157
+ workerId: AppWorker.workerId,
158
+ },
159
+ });
160
+ });
161
+ }
162
+ AppWorker.gracefulExit({
163
+ logger: consoleLogger,
164
+ label: 'app_worker',
165
+ beforeExit: () => app.close(),
166
+ });
127
167
  }
128
168
  main();
129
-
130
- //#endregion
131
- export { };
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX3dvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBfd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFlLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLElBQUksaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUVqRCxLQUFLLFVBQVUsSUFBSTtJQUNqQiwyQ0FBMkM7SUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQVV6QyxDQUFDO0lBQ0YsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsU0FBUztRQUNULEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLE1BQU0sWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUN6QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBK0IsQ0FBQztJQUNwQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxTQUFTLEdBQUcsZUFBc0IsQ0FBQztJQUNyQyxDQUFDO1NBQU0sQ0FBQztRQUNOLFNBQVMsR0FBRyxnQkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUM7UUFDdEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCO0tBQy9DLENBQUMsQ0FBQztJQUNILE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQzVELEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDekIsQ0FBQyxDQUFDO0lBQ0gsS0FBSyxDQUFDLGlEQUFpRCxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0UsSUFBSSxHQUFRLENBQUM7SUFDYixJQUFJLENBQUM7UUFDSCxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxDQUFDO0lBQ1osQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdkIsU0FBUyxXQUFXO1FBQ2xCLDREQUE0RDtRQUM1RCxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELCtCQUErQjtJQUMvQixHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBRTlDLFNBQVMsbUJBQW1CO1FBQzFCLGFBQWEsQ0FBQyxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUN2RSxXQUFXLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBUyxXQUFXLENBQUMsR0FBVztRQUM5QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixhQUFhLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDckUsV0FBVyxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNoRCxNQUFNLFlBQVksR0FBRztZQUNuQixHQUFHLGFBQWEsQ0FBQyxLQUFLO1lBQ3RCLEdBQUcsT0FBTyxDQUFDLEtBQUs7U0FDakIsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzFFLEtBQUssQ0FDSCw4RUFBOEUsRUFDOUUsT0FBTyxDQUFDLEdBQUcsRUFDWCxZQUFZLEVBQ1osSUFBSSxFQUNKLFFBQVEsRUFDUixTQUFTLENBQ1YsQ0FBQztRQUVGLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDYixFQUFFLEVBQUUsUUFBUTtZQUNaLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLElBQUksRUFBRTtnQkFDSixJQUFJO2dCQUNKLFFBQVE7YUFDVDtTQUNGLENBQUMsQ0FBQztRQUVILEdBQUcsQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFeEQsSUFBSSxNQUFjLENBQUM7UUFDbkIsSUFBSSxlQUFtQyxDQUFDO1FBRXhDLGVBQWU7UUFDZixJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN6QixZQUFZLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELFlBQVksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkQsWUFBWSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsZUFBZSxHQUFHLE1BQU0sQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDaEMsYUFBYSxDQUFDLEtBQUssQ0FBQyw2Q0FBNkMsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRixXQUFXLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILDZCQUE2QjtRQUM3QixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQixJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDL0MsdUNBQXVDO1lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3JELHVFQUF1RTtZQUN2RSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQWUsRUFBRSxVQUFrQixFQUFFLEVBQUU7Z0JBQzlELElBQUksT0FBTyxLQUFLLDJCQUEyQixFQUFFLENBQUM7b0JBQzVDLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCwyREFBMkQ7Z0JBQzNELGdEQUFnRDtnQkFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3RDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUM3QixhQUFhLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUM7b0JBQzdHLFdBQVcsRUFBRSxDQUFDO29CQUNkLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQixJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25DLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDekIsQ0FBQztZQUNELElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDN0MsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUM1QixJQUFJLE9BQU8sR0FBUSxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNoRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxnRUFBZ0U7Z0JBQ2hFLHFCQUFxQjtnQkFDckIsT0FBTyxHQUFHO29CQUNSLE9BQU87b0JBQ1AsV0FBVyxFQUFFLENBQUMsQ0FBQztpQkFDaEIsQ0FBQztZQUNKLENBQUM7WUFDRCxLQUFLLENBQUMsaUNBQWlDLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMvRCxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNiLEVBQUUsRUFBRSxRQUFRO2dCQUNaLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixJQUFJLEVBQUU7b0JBQ0osT0FBTztvQkFDUCxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7aUJBQzdCO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLFlBQVksQ0FBQztRQUNyQixNQUFNLEVBQUUsYUFBYTtRQUNyQixLQUFLLEVBQUUsWUFBWTtRQUNuQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtLQUM5QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMifQ==
@@ -0,0 +1 @@
1
+ export declare function getSrcDirname(): string;
@@ -0,0 +1,11 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import path from 'node:path';
3
+ export function getSrcDirname() {
4
+ if (typeof __dirname !== 'undefined') {
5
+ return __dirname;
6
+ }
7
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8
+ // @ts-ignore
9
+ return path.dirname(fileURLToPath(import.meta.url));
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlybmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXJuYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE1BQU0sVUFBVSxhQUFhO0lBQzNCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDckMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxhQUFhO0lBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
@@ -0,0 +1,10 @@
1
+ export declare class ClusterAgentWorkerError extends Error {
2
+ id: number;
3
+ /**
4
+ * pid in process mode
5
+ * tid in worker_threads mode
6
+ */
7
+ workerId: number;
8
+ status: string;
9
+ constructor(id: number, workerId: number, status: string, error: Error);
10
+ }
@@ -0,0 +1,19 @@
1
+ export class ClusterAgentWorkerError extends Error {
2
+ id;
3
+ /**
4
+ * pid in process mode
5
+ * tid in worker_threads mode
6
+ */
7
+ workerId;
8
+ status;
9
+ constructor(id, workerId, status, error) {
10
+ const message = `Got agent worker error: ${error.message}`;
11
+ super(message, { cause: error });
12
+ this.name = this.constructor.name;
13
+ this.id = id;
14
+ this.workerId = workerId;
15
+ this.status = status;
16
+ Error.captureStackTrace(this, this.constructor);
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlckFnZW50V29ya2VyRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IvQ2x1c3RlckFnZW50V29ya2VyRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQsRUFBRSxDQUFTO0lBQ1g7OztPQUdHO0lBQ0gsUUFBUSxDQUFTO0lBQ2pCLE1BQU0sQ0FBUztJQUVmLFlBQVksRUFBVSxFQUFFLFFBQWdCLEVBQUUsTUFBYyxFQUFFLEtBQVk7UUFDcEUsTUFBTSxPQUFPLEdBQUcsMkJBQTJCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzRCxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRiJ9
@@ -0,0 +1,7 @@
1
+ export declare class ClusterWorkerExceptionError extends Error {
2
+ count: {
3
+ agent: number;
4
+ worker: number;
5
+ };
6
+ constructor(agent: number, worker: number);
7
+ }
@@ -0,0 +1,14 @@
1
+ export class ClusterWorkerExceptionError extends Error {
2
+ count;
3
+ constructor(agent, worker) {
4
+ const message = `[master] ${agent} agent and ${worker} worker(s) alive, exit to avoid unknown state`;
5
+ super(message);
6
+ this.name = this.constructor.name;
7
+ this.count = {
8
+ agent,
9
+ worker,
10
+ };
11
+ Error.captureStackTrace(this, this.constructor);
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlcldvcmtlckV4Y2VwdGlvbkVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9yL0NsdXN0ZXJXb3JrZXJFeGNlcHRpb25FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsS0FBSztJQUNwRCxLQUFLLENBR0g7SUFFRixZQUFZLEtBQWEsRUFBRSxNQUFjO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFlBQVksS0FBSyxjQUFjLE1BQU0sK0NBQStDLENBQUM7UUFDckcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsS0FBSztZQUNMLE1BQU07U0FDUCxDQUFDO1FBQ0YsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGIn0=
@@ -0,0 +1,2 @@
1
+ export * from './ClusterAgentWorkerError.ts';
2
+ export * from './ClusterWorkerExceptionError.ts';
@@ -0,0 +1,3 @@
1
+ export * from "./ClusterAgentWorkerError.js";
2
+ export * from "./ClusterWorkerExceptionError.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDIn0=