zai-fca 1.0.7
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.
Potentially problematic release.
This version of zai-fca might be problematic. Click here for more details.
- package/.cache/replit/env/latest +56 -0
- package/.cache/replit/env/latest.json +1 -0
- package/.cache/replit/modules/nodejs-20.res +1 -0
- package/.cache/replit/modules/replit.res +1 -0
- package/.cache/replit/modules.stamp +0 -0
- package/.cache/typescript/5.6/node_modules/.package-lock.json +178 -0
- package/.cache/typescript/5.6/node_modules/@types/bluebird/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/@types/bluebird/README.md +15 -0
- package/.cache/typescript/5.6/node_modules/@types/bluebird/index.d.ts +1365 -0
- package/.cache/typescript/5.6/node_modules/@types/bluebird/package.json +25 -0
- package/.cache/typescript/5.6/node_modules/@types/caseless/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/@types/caseless/README.md +48 -0
- package/.cache/typescript/5.6/node_modules/@types/caseless/index.d.ts +29 -0
- package/.cache/typescript/5.6/node_modules/@types/caseless/package.json +35 -0
- package/.cache/typescript/5.6/node_modules/@types/mocha/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/@types/mocha/README.md +15 -0
- package/.cache/typescript/5.6/node_modules/@types/mocha/index.d.ts +2929 -0
- package/.cache/typescript/5.6/node_modules/@types/mocha/package.json +56 -0
- package/.cache/typescript/5.6/node_modules/@types/node/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/@types/node/README.md +15 -0
- package/.cache/typescript/5.6/node_modules/@types/node/assert/strict.d.ts +8 -0
- package/.cache/typescript/5.6/node_modules/@types/node/assert.d.ts +1040 -0
- package/.cache/typescript/5.6/node_modules/@types/node/async_hooks.d.ts +541 -0
- package/.cache/typescript/5.6/node_modules/@types/node/buffer.buffer.d.ts +385 -0
- package/.cache/typescript/5.6/node_modules/@types/node/buffer.d.ts +1933 -0
- package/.cache/typescript/5.6/node_modules/@types/node/child_process.d.ts +1549 -0
- package/.cache/typescript/5.6/node_modules/@types/node/cluster.d.ts +579 -0
- package/.cache/typescript/5.6/node_modules/@types/node/compatibility/disposable.d.ts +16 -0
- package/.cache/typescript/5.6/node_modules/@types/node/compatibility/index.d.ts +9 -0
- package/.cache/typescript/5.6/node_modules/@types/node/compatibility/indexable.d.ts +23 -0
- package/.cache/typescript/5.6/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
- package/.cache/typescript/5.6/node_modules/@types/node/console.d.ts +452 -0
- package/.cache/typescript/5.6/node_modules/@types/node/constants.d.ts +19 -0
- package/.cache/typescript/5.6/node_modules/@types/node/crypto.d.ts +4475 -0
- package/.cache/typescript/5.6/node_modules/@types/node/dgram.d.ts +596 -0
- package/.cache/typescript/5.6/node_modules/@types/node/diagnostics_channel.d.ts +554 -0
- package/.cache/typescript/5.6/node_modules/@types/node/dns/promises.d.ts +476 -0
- package/.cache/typescript/5.6/node_modules/@types/node/dns.d.ts +865 -0
- package/.cache/typescript/5.6/node_modules/@types/node/dom-events.d.ts +124 -0
- package/.cache/typescript/5.6/node_modules/@types/node/domain.d.ts +170 -0
- package/.cache/typescript/5.6/node_modules/@types/node/events.d.ts +931 -0
- package/.cache/typescript/5.6/node_modules/@types/node/fs/promises.d.ts +1275 -0
- package/.cache/typescript/5.6/node_modules/@types/node/fs.d.ts +4396 -0
- package/.cache/typescript/5.6/node_modules/@types/node/globals.d.ts +566 -0
- package/.cache/typescript/5.6/node_modules/@types/node/globals.typedarray.d.ts +21 -0
- package/.cache/typescript/5.6/node_modules/@types/node/http.d.ts +1958 -0
- package/.cache/typescript/5.6/node_modules/@types/node/http2.d.ts +2558 -0
- package/.cache/typescript/5.6/node_modules/@types/node/https.d.ts +543 -0
- package/.cache/typescript/5.6/node_modules/@types/node/index.d.ts +92 -0
- package/.cache/typescript/5.6/node_modules/@types/node/inspector.d.ts +3966 -0
- package/.cache/typescript/5.6/node_modules/@types/node/module.d.ts +402 -0
- package/.cache/typescript/5.6/node_modules/@types/node/net.d.ts +1001 -0
- package/.cache/typescript/5.6/node_modules/@types/node/os.d.ts +495 -0
- package/.cache/typescript/5.6/node_modules/@types/node/package.json +220 -0
- package/.cache/typescript/5.6/node_modules/@types/node/path.d.ts +200 -0
- package/.cache/typescript/5.6/node_modules/@types/node/perf_hooks.d.ts +965 -0
- package/.cache/typescript/5.6/node_modules/@types/node/process.d.ts +1963 -0
- package/.cache/typescript/5.6/node_modules/@types/node/punycode.d.ts +117 -0
- package/.cache/typescript/5.6/node_modules/@types/node/querystring.d.ts +153 -0
- package/.cache/typescript/5.6/node_modules/@types/node/readline/promises.d.ts +162 -0
- package/.cache/typescript/5.6/node_modules/@types/node/readline.d.ts +589 -0
- package/.cache/typescript/5.6/node_modules/@types/node/repl.d.ts +430 -0
- package/.cache/typescript/5.6/node_modules/@types/node/sea.d.ts +153 -0
- package/.cache/typescript/5.6/node_modules/@types/node/sqlite.d.ts +213 -0
- package/.cache/typescript/5.6/node_modules/@types/node/stream/consumers.d.ts +12 -0
- package/.cache/typescript/5.6/node_modules/@types/node/stream/promises.d.ts +90 -0
- package/.cache/typescript/5.6/node_modules/@types/node/stream/web.d.ts +609 -0
- package/.cache/typescript/5.6/node_modules/@types/node/stream.d.ts +1726 -0
- package/.cache/typescript/5.6/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/.cache/typescript/5.6/node_modules/@types/node/test.d.ts +2248 -0
- package/.cache/typescript/5.6/node_modules/@types/node/timers/promises.d.ts +97 -0
- package/.cache/typescript/5.6/node_modules/@types/node/timers.d.ts +240 -0
- package/.cache/typescript/5.6/node_modules/@types/node/tls.d.ts +1226 -0
- package/.cache/typescript/5.6/node_modules/@types/node/trace_events.d.ts +197 -0
- package/.cache/typescript/5.6/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +385 -0
- package/.cache/typescript/5.6/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +19 -0
- package/.cache/typescript/5.6/node_modules/@types/node/ts5.6/index.d.ts +92 -0
- package/.cache/typescript/5.6/node_modules/@types/node/tty.d.ts +208 -0
- package/.cache/typescript/5.6/node_modules/@types/node/url.d.ts +972 -0
- package/.cache/typescript/5.6/node_modules/@types/node/util.d.ts +2371 -0
- package/.cache/typescript/5.6/node_modules/@types/node/v8.d.ts +808 -0
- package/.cache/typescript/5.6/node_modules/@types/node/vm.d.ts +976 -0
- package/.cache/typescript/5.6/node_modules/@types/node/wasi.d.ts +181 -0
- package/.cache/typescript/5.6/node_modules/@types/node/worker_threads.d.ts +745 -0
- package/.cache/typescript/5.6/node_modules/@types/node/zlib.d.ts +539 -0
- package/.cache/typescript/5.6/node_modules/@types/node-cron/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/@types/node-cron/README.md +76 -0
- package/.cache/typescript/5.6/node_modules/@types/node-cron/index.d.ts +57 -0
- package/.cache/typescript/5.6/node_modules/@types/node-cron/package.json +50 -0
- package/.cache/typescript/5.6/node_modules/@types/npmlog/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/@types/npmlog/README.md +15 -0
- package/.cache/typescript/5.6/node_modules/@types/npmlog/index.d.ts +84 -0
- package/.cache/typescript/5.6/node_modules/@types/npmlog/package.json +32 -0
- package/.cache/typescript/5.6/node_modules/@types/request/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/@types/request/README.md +15 -0
- package/.cache/typescript/5.6/node_modules/@types/request/index.d.ts +395 -0
- package/.cache/typescript/5.6/node_modules/@types/request/package.json +70 -0
- package/.cache/typescript/5.6/node_modules/@types/tough-cookie/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/@types/tough-cookie/README.md +15 -0
- package/.cache/typescript/5.6/node_modules/@types/tough-cookie/index.d.ts +321 -0
- package/.cache/typescript/5.6/node_modules/@types/tough-cookie/package.json +35 -0
- package/.cache/typescript/5.6/node_modules/asynckit/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/asynckit/README.md +233 -0
- package/.cache/typescript/5.6/node_modules/asynckit/bench.js +76 -0
- package/.cache/typescript/5.6/node_modules/asynckit/index.js +6 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/abort.js +29 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/async.js +34 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/defer.js +26 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/iterate.js +75 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/readable_asynckit.js +91 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/readable_parallel.js +25 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/readable_serial.js +25 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/state.js +37 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/streamify.js +141 -0
- package/.cache/typescript/5.6/node_modules/asynckit/lib/terminator.js +29 -0
- package/.cache/typescript/5.6/node_modules/asynckit/package.json +63 -0
- package/.cache/typescript/5.6/node_modules/asynckit/parallel.js +43 -0
- package/.cache/typescript/5.6/node_modules/asynckit/serial.js +17 -0
- package/.cache/typescript/5.6/node_modules/asynckit/serialOrdered.js +75 -0
- package/.cache/typescript/5.6/node_modules/asynckit/stream.js +21 -0
- package/.cache/typescript/5.6/node_modules/combined-stream/License +19 -0
- package/.cache/typescript/5.6/node_modules/combined-stream/Readme.md +138 -0
- package/.cache/typescript/5.6/node_modules/combined-stream/lib/combined_stream.js +208 -0
- package/.cache/typescript/5.6/node_modules/combined-stream/package.json +25 -0
- package/.cache/typescript/5.6/node_modules/combined-stream/yarn.lock +17 -0
- package/.cache/typescript/5.6/node_modules/delayed-stream/License +19 -0
- package/.cache/typescript/5.6/node_modules/delayed-stream/Makefile +7 -0
- package/.cache/typescript/5.6/node_modules/delayed-stream/Readme.md +141 -0
- package/.cache/typescript/5.6/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
- package/.cache/typescript/5.6/node_modules/delayed-stream/package.json +27 -0
- package/.cache/typescript/5.6/node_modules/form-data/License +19 -0
- package/.cache/typescript/5.6/node_modules/form-data/Readme.md +350 -0
- package/.cache/typescript/5.6/node_modules/form-data/index.d.ts +51 -0
- package/.cache/typescript/5.6/node_modules/form-data/lib/browser.js +2 -0
- package/.cache/typescript/5.6/node_modules/form-data/lib/form_data.js +484 -0
- package/.cache/typescript/5.6/node_modules/form-data/lib/populate.js +10 -0
- package/.cache/typescript/5.6/node_modules/form-data/package.json +72 -0
- package/.cache/typescript/5.6/node_modules/mime-db/HISTORY.md +507 -0
- package/.cache/typescript/5.6/node_modules/mime-db/LICENSE +23 -0
- package/.cache/typescript/5.6/node_modules/mime-db/README.md +100 -0
- package/.cache/typescript/5.6/node_modules/mime-db/db.json +8519 -0
- package/.cache/typescript/5.6/node_modules/mime-db/index.js +12 -0
- package/.cache/typescript/5.6/node_modules/mime-db/package.json +60 -0
- package/.cache/typescript/5.6/node_modules/mime-types/HISTORY.md +397 -0
- package/.cache/typescript/5.6/node_modules/mime-types/LICENSE +23 -0
- package/.cache/typescript/5.6/node_modules/mime-types/README.md +113 -0
- package/.cache/typescript/5.6/node_modules/mime-types/index.js +188 -0
- package/.cache/typescript/5.6/node_modules/mime-types/package.json +44 -0
- package/.cache/typescript/5.6/node_modules/safe-buffer/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/safe-buffer/README.md +584 -0
- package/.cache/typescript/5.6/node_modules/safe-buffer/index.d.ts +187 -0
- package/.cache/typescript/5.6/node_modules/safe-buffer/index.js +65 -0
- package/.cache/typescript/5.6/node_modules/safe-buffer/package.json +51 -0
- package/.cache/typescript/5.6/node_modules/types-registry/README.md +2 -0
- package/.cache/typescript/5.6/node_modules/types-registry/index.json +1 -0
- package/.cache/typescript/5.6/node_modules/types-registry/package.json +20 -0
- package/.cache/typescript/5.6/node_modules/undici-types/LICENSE +21 -0
- package/.cache/typescript/5.6/node_modules/undici-types/README.md +6 -0
- package/.cache/typescript/5.6/node_modules/undici-types/agent.d.ts +31 -0
- package/.cache/typescript/5.6/node_modules/undici-types/api.d.ts +43 -0
- package/.cache/typescript/5.6/node_modules/undici-types/balanced-pool.d.ts +29 -0
- package/.cache/typescript/5.6/node_modules/undici-types/cache.d.ts +36 -0
- package/.cache/typescript/5.6/node_modules/undici-types/client.d.ts +108 -0
- package/.cache/typescript/5.6/node_modules/undici-types/connector.d.ts +34 -0
- package/.cache/typescript/5.6/node_modules/undici-types/content-type.d.ts +21 -0
- package/.cache/typescript/5.6/node_modules/undici-types/cookies.d.ts +28 -0
- package/.cache/typescript/5.6/node_modules/undici-types/diagnostics-channel.d.ts +66 -0
- package/.cache/typescript/5.6/node_modules/undici-types/dispatcher.d.ts +255 -0
- package/.cache/typescript/5.6/node_modules/undici-types/env-http-proxy-agent.d.ts +21 -0
- package/.cache/typescript/5.6/node_modules/undici-types/errors.d.ts +149 -0
- package/.cache/typescript/5.6/node_modules/undici-types/eventsource.d.ts +61 -0
- package/.cache/typescript/5.6/node_modules/undici-types/fetch.d.ts +209 -0
- package/.cache/typescript/5.6/node_modules/undici-types/file.d.ts +39 -0
- package/.cache/typescript/5.6/node_modules/undici-types/filereader.d.ts +54 -0
- package/.cache/typescript/5.6/node_modules/undici-types/formdata.d.ts +108 -0
- package/.cache/typescript/5.6/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/.cache/typescript/5.6/node_modules/undici-types/global-origin.d.ts +7 -0
- package/.cache/typescript/5.6/node_modules/undici-types/handlers.d.ts +15 -0
- package/.cache/typescript/5.6/node_modules/undici-types/header.d.ts +4 -0
- package/.cache/typescript/5.6/node_modules/undici-types/index.d.ts +71 -0
- package/.cache/typescript/5.6/node_modules/undici-types/interceptors.d.ts +17 -0
- package/.cache/typescript/5.6/node_modules/undici-types/mock-agent.d.ts +50 -0
- package/.cache/typescript/5.6/node_modules/undici-types/mock-client.d.ts +25 -0
- package/.cache/typescript/5.6/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/.cache/typescript/5.6/node_modules/undici-types/mock-interceptor.d.ts +93 -0
- package/.cache/typescript/5.6/node_modules/undici-types/mock-pool.d.ts +25 -0
- package/.cache/typescript/5.6/node_modules/undici-types/package.json +55 -0
- package/.cache/typescript/5.6/node_modules/undici-types/patch.d.ts +33 -0
- package/.cache/typescript/5.6/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/.cache/typescript/5.6/node_modules/undici-types/pool.d.ts +39 -0
- package/.cache/typescript/5.6/node_modules/undici-types/proxy-agent.d.ts +28 -0
- package/.cache/typescript/5.6/node_modules/undici-types/readable.d.ts +60 -0
- package/.cache/typescript/5.6/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/.cache/typescript/5.6/node_modules/undici-types/retry-handler.d.ts +116 -0
- package/.cache/typescript/5.6/node_modules/undici-types/util.d.ts +18 -0
- package/.cache/typescript/5.6/node_modules/undici-types/webidl.d.ts +222 -0
- package/.cache/typescript/5.6/node_modules/undici-types/websocket.d.ts +150 -0
- package/.cache/typescript/5.6/package-lock.json +190 -0
- package/.cache/typescript/5.6/package.json +1 -0
- package/.replit +4 -0
- package/.upm/store.json +1 -0
- package/LICENSE +21 -0
- package/README.md +289 -0
- package/index.js +460 -0
- package/package.json +45 -0
- package/src/Screenshot.js +83 -0
- package/src/addExternalModule.js +15 -0
- package/src/addUserToGroup.js +77 -0
- package/src/changeAdminStatus.js +47 -0
- package/src/changeArchivedStatus.js +41 -0
- package/src/changeAvt.js +85 -0
- package/src/changeBio.js +65 -0
- package/src/changeBlockedStatus.js +36 -0
- package/src/changeGroupImage.js +106 -0
- package/src/changeNickname.js +45 -0
- package/src/changeThreadColor.js +61 -0
- package/src/changeThreadEmoji.js +41 -0
- package/src/createNewGroup.js +70 -0
- package/src/createPoll.js +59 -0
- package/src/createPost.js +277 -0
- package/src/deleteMessage.js +44 -0
- package/src/deleteThread.js +42 -0
- package/src/forwardAttachment.js +47 -0
- package/src/getCurrentUserID.js +7 -0
- package/src/getEmojiUrl.js +27 -0
- package/src/getFriendsList.js +73 -0
- package/src/getThreadHistory.js +537 -0
- package/src/getThreadHistoryDeprecated.js +71 -0
- package/src/getThreadInfo.js +232 -0
- package/src/getThreadInfoDeprecated.js +56 -0
- package/src/getThreadList.js +213 -0
- package/src/getThreadListDeprecated.js +46 -0
- package/src/getThreadPictures.js +59 -0
- package/src/getUID.js +119 -0
- package/src/getUserID.js +61 -0
- package/src/getUserInfo.js +66 -0
- package/src/handleFriendRequest.js +46 -0
- package/src/handleMessageRequest.js +47 -0
- package/src/httpGet.js +49 -0
- package/src/httpPost.js +48 -0
- package/src/listenMqtt.js +827 -0
- package/src/listenMqtt.txt +827 -0
- package/src/logout.js +68 -0
- package/src/markAsDelivered.js +47 -0
- package/src/markAsRead.js +70 -0
- package/src/markAsReadAll.js +40 -0
- package/src/markAsSeen.js +48 -0
- package/src/muteThread.js +45 -0
- package/src/postFormData.txt +46 -0
- package/src/removeUserFromGroup.js +45 -0
- package/src/resolvePhotoUrl.js +36 -0
- package/src/searchForThread.js +42 -0
- package/src/sendMessage.js +329 -0
- package/src/sendTypingIndicator.js +70 -0
- package/src/setMessageReaction.js +109 -0
- package/src/setPostReaction.js +102 -0
- package/src/setTitle.js +70 -0
- package/src/shareContact.js +46 -0
- package/src/shareLink.js +62 -0
- package/src/threadColors.js +41 -0
- package/src/unfriend.js +42 -0
- package/src/unsendMessage.js +39 -0
- package/utils.js +2876 -0
@@ -0,0 +1,579 @@
|
|
1
|
+
/**
|
2
|
+
* Clusters of Node.js processes can be used to run multiple instances of Node.js
|
3
|
+
* that can distribute workloads among their application threads. When process isolation
|
4
|
+
* is not needed, use the [`worker_threads`](https://nodejs.org/docs/latest-v22.x/api/worker_threads.html)
|
5
|
+
* module instead, which allows running multiple application threads within a single Node.js instance.
|
6
|
+
*
|
7
|
+
* The cluster module allows easy creation of child processes that all share
|
8
|
+
* server ports.
|
9
|
+
*
|
10
|
+
* ```js
|
11
|
+
* import cluster from 'node:cluster';
|
12
|
+
* import http from 'node:http';
|
13
|
+
* import { availableParallelism } from 'node:os';
|
14
|
+
* import process from 'node:process';
|
15
|
+
*
|
16
|
+
* const numCPUs = availableParallelism();
|
17
|
+
*
|
18
|
+
* if (cluster.isPrimary) {
|
19
|
+
* console.log(`Primary ${process.pid} is running`);
|
20
|
+
*
|
21
|
+
* // Fork workers.
|
22
|
+
* for (let i = 0; i < numCPUs; i++) {
|
23
|
+
* cluster.fork();
|
24
|
+
* }
|
25
|
+
*
|
26
|
+
* cluster.on('exit', (worker, code, signal) => {
|
27
|
+
* console.log(`worker ${worker.process.pid} died`);
|
28
|
+
* });
|
29
|
+
* } else {
|
30
|
+
* // Workers can share any TCP connection
|
31
|
+
* // In this case it is an HTTP server
|
32
|
+
* http.createServer((req, res) => {
|
33
|
+
* res.writeHead(200);
|
34
|
+
* res.end('hello world\n');
|
35
|
+
* }).listen(8000);
|
36
|
+
*
|
37
|
+
* console.log(`Worker ${process.pid} started`);
|
38
|
+
* }
|
39
|
+
* ```
|
40
|
+
*
|
41
|
+
* Running Node.js will now share port 8000 between the workers:
|
42
|
+
*
|
43
|
+
* ```console
|
44
|
+
* $ node server.js
|
45
|
+
* Primary 3596 is running
|
46
|
+
* Worker 4324 started
|
47
|
+
* Worker 4520 started
|
48
|
+
* Worker 6056 started
|
49
|
+
* Worker 5644 started
|
50
|
+
* ```
|
51
|
+
*
|
52
|
+
* On Windows, it is not yet possible to set up a named pipe server in a worker.
|
53
|
+
* @see [source](https://github.com/nodejs/node/blob/v22.x/lib/cluster.js)
|
54
|
+
*/
|
55
|
+
declare module "cluster" {
|
56
|
+
import * as child from "node:child_process";
|
57
|
+
import EventEmitter = require("node:events");
|
58
|
+
import * as net from "node:net";
|
59
|
+
type SerializationType = "json" | "advanced";
|
60
|
+
export interface ClusterSettings {
|
61
|
+
/**
|
62
|
+
* List of string arguments passed to the Node.js executable.
|
63
|
+
* @default process.execArgv
|
64
|
+
*/
|
65
|
+
execArgv?: string[] | undefined;
|
66
|
+
/**
|
67
|
+
* File path to worker file.
|
68
|
+
* @default process.argv[1]
|
69
|
+
*/
|
70
|
+
exec?: string | undefined;
|
71
|
+
/**
|
72
|
+
* String arguments passed to worker.
|
73
|
+
* @default process.argv.slice(2)
|
74
|
+
*/
|
75
|
+
args?: string[] | undefined;
|
76
|
+
/**
|
77
|
+
* Whether or not to send output to parent's stdio.
|
78
|
+
* @default false
|
79
|
+
*/
|
80
|
+
silent?: boolean | undefined;
|
81
|
+
/**
|
82
|
+
* Configures the stdio of forked processes. Because the cluster module relies on IPC to function, this configuration must
|
83
|
+
* contain an `'ipc'` entry. When this option is provided, it overrides `silent`. See [`child_prcess.spawn()`](https://nodejs.org/docs/latest-v22.x/api/child_process.html#child_processspawncommand-args-options)'s
|
84
|
+
* [`stdio`](https://nodejs.org/docs/latest-v22.x/api/child_process.html#optionsstdio).
|
85
|
+
*/
|
86
|
+
stdio?: any[] | undefined;
|
87
|
+
/**
|
88
|
+
* Sets the user identity of the process. (See [`setuid(2)`](https://man7.org/linux/man-pages/man2/setuid.2.html).)
|
89
|
+
*/
|
90
|
+
uid?: number | undefined;
|
91
|
+
/**
|
92
|
+
* Sets the group identity of the process. (See [`setgid(2)`](https://man7.org/linux/man-pages/man2/setgid.2.html).)
|
93
|
+
*/
|
94
|
+
gid?: number | undefined;
|
95
|
+
/**
|
96
|
+
* Sets inspector port of worker. This can be a number, or a function that takes no arguments and returns a number.
|
97
|
+
* By default each worker gets its own port, incremented from the primary's `process.debugPort`.
|
98
|
+
*/
|
99
|
+
inspectPort?: number | (() => number) | undefined;
|
100
|
+
/**
|
101
|
+
* Specify the kind of serialization used for sending messages between processes. Possible values are `'json'` and `'advanced'`.
|
102
|
+
* See [Advanced serialization for `child_process`](https://nodejs.org/docs/latest-v22.x/api/child_process.html#advanced-serialization) for more details.
|
103
|
+
* @default false
|
104
|
+
*/
|
105
|
+
serialization?: SerializationType | undefined;
|
106
|
+
/**
|
107
|
+
* Current working directory of the worker process.
|
108
|
+
* @default undefined (inherits from parent process)
|
109
|
+
*/
|
110
|
+
cwd?: string | undefined;
|
111
|
+
/**
|
112
|
+
* Hide the forked processes console window that would normally be created on Windows systems.
|
113
|
+
* @default false
|
114
|
+
*/
|
115
|
+
windowsHide?: boolean | undefined;
|
116
|
+
}
|
117
|
+
export interface Address {
|
118
|
+
address: string;
|
119
|
+
port: number;
|
120
|
+
/**
|
121
|
+
* The `addressType` is one of:
|
122
|
+
*
|
123
|
+
* * `4` (TCPv4)
|
124
|
+
* * `6` (TCPv6)
|
125
|
+
* * `-1` (Unix domain socket)
|
126
|
+
* * `'udp4'` or `'udp6'` (UDPv4 or UDPv6)
|
127
|
+
*/
|
128
|
+
addressType: 4 | 6 | -1 | "udp4" | "udp6";
|
129
|
+
}
|
130
|
+
/**
|
131
|
+
* A `Worker` object contains all public information and method about a worker.
|
132
|
+
* In the primary it can be obtained using `cluster.workers`. In a worker
|
133
|
+
* it can be obtained using `cluster.worker`.
|
134
|
+
* @since v0.7.0
|
135
|
+
*/
|
136
|
+
export class Worker extends EventEmitter {
|
137
|
+
/**
|
138
|
+
* Each new worker is given its own unique id, this id is stored in the `id`.
|
139
|
+
*
|
140
|
+
* While a worker is alive, this is the key that indexes it in `cluster.workers`.
|
141
|
+
* @since v0.8.0
|
142
|
+
*/
|
143
|
+
id: number;
|
144
|
+
/**
|
145
|
+
* All workers are created using [`child_process.fork()`](https://nodejs.org/docs/latest-v22.x/api/child_process.html#child_processforkmodulepath-args-options), the returned object
|
146
|
+
* from this function is stored as `.process`. In a worker, the global `process` is stored.
|
147
|
+
*
|
148
|
+
* See: [Child Process module](https://nodejs.org/docs/latest-v22.x/api/child_process.html#child_processforkmodulepath-args-options).
|
149
|
+
*
|
150
|
+
* Workers will call `process.exit(0)` if the `'disconnect'` event occurs
|
151
|
+
* on `process` and `.exitedAfterDisconnect` is not `true`. This protects against
|
152
|
+
* accidental disconnection.
|
153
|
+
* @since v0.7.0
|
154
|
+
*/
|
155
|
+
process: child.ChildProcess;
|
156
|
+
/**
|
157
|
+
* Send a message to a worker or primary, optionally with a handle.
|
158
|
+
*
|
159
|
+
* In the primary, this sends a message to a specific worker. It is identical to [`ChildProcess.send()`](https://nodejs.org/docs/latest-v22.x/api/child_process.html#subprocesssendmessage-sendhandle-options-callback).
|
160
|
+
*
|
161
|
+
* In a worker, this sends a message to the primary. It is identical to `process.send()`.
|
162
|
+
*
|
163
|
+
* This example will echo back all messages from the primary:
|
164
|
+
*
|
165
|
+
* ```js
|
166
|
+
* if (cluster.isPrimary) {
|
167
|
+
* const worker = cluster.fork();
|
168
|
+
* worker.send('hi there');
|
169
|
+
*
|
170
|
+
* } else if (cluster.isWorker) {
|
171
|
+
* process.on('message', (msg) => {
|
172
|
+
* process.send(msg);
|
173
|
+
* });
|
174
|
+
* }
|
175
|
+
* ```
|
176
|
+
* @since v0.7.0
|
177
|
+
* @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles.
|
178
|
+
*/
|
179
|
+
send(message: child.Serializable, callback?: (error: Error | null) => void): boolean;
|
180
|
+
send(
|
181
|
+
message: child.Serializable,
|
182
|
+
sendHandle: child.SendHandle,
|
183
|
+
callback?: (error: Error | null) => void,
|
184
|
+
): boolean;
|
185
|
+
send(
|
186
|
+
message: child.Serializable,
|
187
|
+
sendHandle: child.SendHandle,
|
188
|
+
options?: child.MessageOptions,
|
189
|
+
callback?: (error: Error | null) => void,
|
190
|
+
): boolean;
|
191
|
+
/**
|
192
|
+
* This function will kill the worker. In the primary worker, it does this by
|
193
|
+
* disconnecting the `worker.process`, and once disconnected, killing with `signal`. In the worker, it does it by killing the process with `signal`.
|
194
|
+
*
|
195
|
+
* The `kill()` function kills the worker process without waiting for a graceful
|
196
|
+
* disconnect, it has the same behavior as `worker.process.kill()`.
|
197
|
+
*
|
198
|
+
* This method is aliased as `worker.destroy()` for backwards compatibility.
|
199
|
+
*
|
200
|
+
* In a worker, `process.kill()` exists, but it is not this function;
|
201
|
+
* it is [`kill()`](https://nodejs.org/docs/latest-v22.x/api/process.html#processkillpid-signal).
|
202
|
+
* @since v0.9.12
|
203
|
+
* @param [signal='SIGTERM'] Name of the kill signal to send to the worker process.
|
204
|
+
*/
|
205
|
+
kill(signal?: string): void;
|
206
|
+
destroy(signal?: string): void;
|
207
|
+
/**
|
208
|
+
* In a worker, this function will close all servers, wait for the `'close'` event
|
209
|
+
* on those servers, and then disconnect the IPC channel.
|
210
|
+
*
|
211
|
+
* In the primary, an internal message is sent to the worker causing it to call `.disconnect()` on itself.
|
212
|
+
*
|
213
|
+
* Causes `.exitedAfterDisconnect` to be set.
|
214
|
+
*
|
215
|
+
* After a server is closed, it will no longer accept new connections,
|
216
|
+
* but connections may be accepted by any other listening worker. Existing
|
217
|
+
* connections will be allowed to close as usual. When no more connections exist,
|
218
|
+
* see `server.close()`, the IPC channel to the worker will close allowing it
|
219
|
+
* to die gracefully.
|
220
|
+
*
|
221
|
+
* The above applies _only_ to server connections, client connections are not
|
222
|
+
* automatically closed by workers, and disconnect does not wait for them to close
|
223
|
+
* before exiting.
|
224
|
+
*
|
225
|
+
* In a worker, `process.disconnect` exists, but it is not this function;
|
226
|
+
* it is `disconnect()`.
|
227
|
+
*
|
228
|
+
* Because long living server connections may block workers from disconnecting, it
|
229
|
+
* may be useful to send a message, so application specific actions may be taken to
|
230
|
+
* close them. It also may be useful to implement a timeout, killing a worker if
|
231
|
+
* the `'disconnect'` event has not been emitted after some time.
|
232
|
+
*
|
233
|
+
* ```js
|
234
|
+
* import net from 'node:net';
|
235
|
+
*
|
236
|
+
* if (cluster.isPrimary) {
|
237
|
+
* const worker = cluster.fork();
|
238
|
+
* let timeout;
|
239
|
+
*
|
240
|
+
* worker.on('listening', (address) => {
|
241
|
+
* worker.send('shutdown');
|
242
|
+
* worker.disconnect();
|
243
|
+
* timeout = setTimeout(() => {
|
244
|
+
* worker.kill();
|
245
|
+
* }, 2000);
|
246
|
+
* });
|
247
|
+
*
|
248
|
+
* worker.on('disconnect', () => {
|
249
|
+
* clearTimeout(timeout);
|
250
|
+
* });
|
251
|
+
*
|
252
|
+
* } else if (cluster.isWorker) {
|
253
|
+
* const server = net.createServer((socket) => {
|
254
|
+
* // Connections never end
|
255
|
+
* });
|
256
|
+
*
|
257
|
+
* server.listen(8000);
|
258
|
+
*
|
259
|
+
* process.on('message', (msg) => {
|
260
|
+
* if (msg === 'shutdown') {
|
261
|
+
* // Initiate graceful close of any connections to server
|
262
|
+
* }
|
263
|
+
* });
|
264
|
+
* }
|
265
|
+
* ```
|
266
|
+
* @since v0.7.7
|
267
|
+
* @return A reference to `worker`.
|
268
|
+
*/
|
269
|
+
disconnect(): void;
|
270
|
+
/**
|
271
|
+
* This function returns `true` if the worker is connected to its primary via its
|
272
|
+
* IPC channel, `false` otherwise. A worker is connected to its primary after it
|
273
|
+
* has been created. It is disconnected after the `'disconnect'` event is emitted.
|
274
|
+
* @since v0.11.14
|
275
|
+
*/
|
276
|
+
isConnected(): boolean;
|
277
|
+
/**
|
278
|
+
* This function returns `true` if the worker's process has terminated (either
|
279
|
+
* because of exiting or being signaled). Otherwise, it returns `false`.
|
280
|
+
*
|
281
|
+
* ```js
|
282
|
+
* import cluster from 'node:cluster';
|
283
|
+
* import http from 'node:http';
|
284
|
+
* import { availableParallelism } from 'node:os';
|
285
|
+
* import process from 'node:process';
|
286
|
+
*
|
287
|
+
* const numCPUs = availableParallelism();
|
288
|
+
*
|
289
|
+
* if (cluster.isPrimary) {
|
290
|
+
* console.log(`Primary ${process.pid} is running`);
|
291
|
+
*
|
292
|
+
* // Fork workers.
|
293
|
+
* for (let i = 0; i < numCPUs; i++) {
|
294
|
+
* cluster.fork();
|
295
|
+
* }
|
296
|
+
*
|
297
|
+
* cluster.on('fork', (worker) => {
|
298
|
+
* console.log('worker is dead:', worker.isDead());
|
299
|
+
* });
|
300
|
+
*
|
301
|
+
* cluster.on('exit', (worker, code, signal) => {
|
302
|
+
* console.log('worker is dead:', worker.isDead());
|
303
|
+
* });
|
304
|
+
* } else {
|
305
|
+
* // Workers can share any TCP connection. In this case, it is an HTTP server.
|
306
|
+
* http.createServer((req, res) => {
|
307
|
+
* res.writeHead(200);
|
308
|
+
* res.end(`Current process\n ${process.pid}`);
|
309
|
+
* process.kill(process.pid);
|
310
|
+
* }).listen(8000);
|
311
|
+
* }
|
312
|
+
* ```
|
313
|
+
* @since v0.11.14
|
314
|
+
*/
|
315
|
+
isDead(): boolean;
|
316
|
+
/**
|
317
|
+
* This property is `true` if the worker exited due to `.disconnect()`.
|
318
|
+
* If the worker exited any other way, it is `false`. If the
|
319
|
+
* worker has not exited, it is `undefined`.
|
320
|
+
*
|
321
|
+
* The boolean `worker.exitedAfterDisconnect` allows distinguishing between
|
322
|
+
* voluntary and accidental exit, the primary may choose not to respawn a worker
|
323
|
+
* based on this value.
|
324
|
+
*
|
325
|
+
* ```js
|
326
|
+
* cluster.on('exit', (worker, code, signal) => {
|
327
|
+
* if (worker.exitedAfterDisconnect === true) {
|
328
|
+
* console.log('Oh, it was just voluntary – no need to worry');
|
329
|
+
* }
|
330
|
+
* });
|
331
|
+
*
|
332
|
+
* // kill worker
|
333
|
+
* worker.kill();
|
334
|
+
* ```
|
335
|
+
* @since v6.0.0
|
336
|
+
*/
|
337
|
+
exitedAfterDisconnect: boolean;
|
338
|
+
/**
|
339
|
+
* events.EventEmitter
|
340
|
+
* 1. disconnect
|
341
|
+
* 2. error
|
342
|
+
* 3. exit
|
343
|
+
* 4. listening
|
344
|
+
* 5. message
|
345
|
+
* 6. online
|
346
|
+
*/
|
347
|
+
addListener(event: string, listener: (...args: any[]) => void): this;
|
348
|
+
addListener(event: "disconnect", listener: () => void): this;
|
349
|
+
addListener(event: "error", listener: (error: Error) => void): this;
|
350
|
+
addListener(event: "exit", listener: (code: number, signal: string) => void): this;
|
351
|
+
addListener(event: "listening", listener: (address: Address) => void): this;
|
352
|
+
addListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
|
353
|
+
addListener(event: "online", listener: () => void): this;
|
354
|
+
emit(event: string | symbol, ...args: any[]): boolean;
|
355
|
+
emit(event: "disconnect"): boolean;
|
356
|
+
emit(event: "error", error: Error): boolean;
|
357
|
+
emit(event: "exit", code: number, signal: string): boolean;
|
358
|
+
emit(event: "listening", address: Address): boolean;
|
359
|
+
emit(event: "message", message: any, handle: net.Socket | net.Server): boolean;
|
360
|
+
emit(event: "online"): boolean;
|
361
|
+
on(event: string, listener: (...args: any[]) => void): this;
|
362
|
+
on(event: "disconnect", listener: () => void): this;
|
363
|
+
on(event: "error", listener: (error: Error) => void): this;
|
364
|
+
on(event: "exit", listener: (code: number, signal: string) => void): this;
|
365
|
+
on(event: "listening", listener: (address: Address) => void): this;
|
366
|
+
on(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
|
367
|
+
on(event: "online", listener: () => void): this;
|
368
|
+
once(event: string, listener: (...args: any[]) => void): this;
|
369
|
+
once(event: "disconnect", listener: () => void): this;
|
370
|
+
once(event: "error", listener: (error: Error) => void): this;
|
371
|
+
once(event: "exit", listener: (code: number, signal: string) => void): this;
|
372
|
+
once(event: "listening", listener: (address: Address) => void): this;
|
373
|
+
once(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
|
374
|
+
once(event: "online", listener: () => void): this;
|
375
|
+
prependListener(event: string, listener: (...args: any[]) => void): this;
|
376
|
+
prependListener(event: "disconnect", listener: () => void): this;
|
377
|
+
prependListener(event: "error", listener: (error: Error) => void): this;
|
378
|
+
prependListener(event: "exit", listener: (code: number, signal: string) => void): this;
|
379
|
+
prependListener(event: "listening", listener: (address: Address) => void): this;
|
380
|
+
prependListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
|
381
|
+
prependListener(event: "online", listener: () => void): this;
|
382
|
+
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
383
|
+
prependOnceListener(event: "disconnect", listener: () => void): this;
|
384
|
+
prependOnceListener(event: "error", listener: (error: Error) => void): this;
|
385
|
+
prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this;
|
386
|
+
prependOnceListener(event: "listening", listener: (address: Address) => void): this;
|
387
|
+
prependOnceListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
|
388
|
+
prependOnceListener(event: "online", listener: () => void): this;
|
389
|
+
}
|
390
|
+
export interface Cluster extends EventEmitter {
|
391
|
+
disconnect(callback?: () => void): void;
|
392
|
+
/**
|
393
|
+
* Spawn a new worker process.
|
394
|
+
*
|
395
|
+
* This can only be called from the primary process.
|
396
|
+
* @param env Key/value pairs to add to worker process environment.
|
397
|
+
* @since v0.6.0
|
398
|
+
*/
|
399
|
+
fork(env?: any): Worker;
|
400
|
+
/** @deprecated since v16.0.0 - use isPrimary. */
|
401
|
+
readonly isMaster: boolean;
|
402
|
+
/**
|
403
|
+
* True if the process is a primary. This is determined by the `process.env.NODE_UNIQUE_ID`. If `process.env.NODE_UNIQUE_ID`
|
404
|
+
* is undefined, then `isPrimary` is `true`.
|
405
|
+
* @since v16.0.0
|
406
|
+
*/
|
407
|
+
readonly isPrimary: boolean;
|
408
|
+
/**
|
409
|
+
* True if the process is not a primary (it is the negation of `cluster.isPrimary`).
|
410
|
+
* @since v0.6.0
|
411
|
+
*/
|
412
|
+
readonly isWorker: boolean;
|
413
|
+
/**
|
414
|
+
* The scheduling policy, either `cluster.SCHED_RR` for round-robin or `cluster.SCHED_NONE` to leave it to the operating system. This is a
|
415
|
+
* global setting and effectively frozen once either the first worker is spawned, or [`.setupPrimary()`](https://nodejs.org/docs/latest-v22.x/api/cluster.html#clustersetupprimarysettings)
|
416
|
+
* is called, whichever comes first.
|
417
|
+
*
|
418
|
+
* `SCHED_RR` is the default on all operating systems except Windows. Windows will change to `SCHED_RR` once libuv is able to effectively distribute
|
419
|
+
* IOCP handles without incurring a large performance hit.
|
420
|
+
*
|
421
|
+
* `cluster.schedulingPolicy` can also be set through the `NODE_CLUSTER_SCHED_POLICY` environment variable. Valid values are `'rr'` and `'none'`.
|
422
|
+
* @since v0.11.2
|
423
|
+
*/
|
424
|
+
schedulingPolicy: number;
|
425
|
+
/**
|
426
|
+
* After calling [`.setupPrimary()`](https://nodejs.org/docs/latest-v22.x/api/cluster.html#clustersetupprimarysettings)
|
427
|
+
* (or [`.fork()`](https://nodejs.org/docs/latest-v22.x/api/cluster.html#clusterforkenv)) this settings object will contain
|
428
|
+
* the settings, including the default values.
|
429
|
+
*
|
430
|
+
* This object is not intended to be changed or set manually.
|
431
|
+
* @since v0.7.1
|
432
|
+
*/
|
433
|
+
readonly settings: ClusterSettings;
|
434
|
+
/** @deprecated since v16.0.0 - use [`.setupPrimary()`](https://nodejs.org/docs/latest-v22.x/api/cluster.html#clustersetupprimarysettings) instead. */
|
435
|
+
setupMaster(settings?: ClusterSettings): void;
|
436
|
+
/**
|
437
|
+
* `setupPrimary` is used to change the default 'fork' behavior. Once called, the settings will be present in `cluster.settings`.
|
438
|
+
*
|
439
|
+
* Any settings changes only affect future calls to [`.fork()`](https://nodejs.org/docs/latest-v22.x/api/cluster.html#clusterforkenv)
|
440
|
+
* and have no effect on workers that are already running.
|
441
|
+
*
|
442
|
+
* The only attribute of a worker that cannot be set via `.setupPrimary()` is the `env` passed to
|
443
|
+
* [`.fork()`](https://nodejs.org/docs/latest-v22.x/api/cluster.html#clusterforkenv).
|
444
|
+
*
|
445
|
+
* The defaults above apply to the first call only; the defaults for later calls are the current values at the time of
|
446
|
+
* `cluster.setupPrimary()` is called.
|
447
|
+
*
|
448
|
+
* ```js
|
449
|
+
* import cluster from 'node:cluster';
|
450
|
+
*
|
451
|
+
* cluster.setupPrimary({
|
452
|
+
* exec: 'worker.js',
|
453
|
+
* args: ['--use', 'https'],
|
454
|
+
* silent: true,
|
455
|
+
* });
|
456
|
+
* cluster.fork(); // https worker
|
457
|
+
* cluster.setupPrimary({
|
458
|
+
* exec: 'worker.js',
|
459
|
+
* args: ['--use', 'http'],
|
460
|
+
* });
|
461
|
+
* cluster.fork(); // http worker
|
462
|
+
* ```
|
463
|
+
*
|
464
|
+
* This can only be called from the primary process.
|
465
|
+
* @since v16.0.0
|
466
|
+
*/
|
467
|
+
setupPrimary(settings?: ClusterSettings): void;
|
468
|
+
/**
|
469
|
+
* A reference to the current worker object. Not available in the primary process.
|
470
|
+
*
|
471
|
+
* ```js
|
472
|
+
* import cluster from 'node:cluster';
|
473
|
+
*
|
474
|
+
* if (cluster.isPrimary) {
|
475
|
+
* console.log('I am primary');
|
476
|
+
* cluster.fork();
|
477
|
+
* cluster.fork();
|
478
|
+
* } else if (cluster.isWorker) {
|
479
|
+
* console.log(`I am worker #${cluster.worker.id}`);
|
480
|
+
* }
|
481
|
+
* ```
|
482
|
+
* @since v0.7.0
|
483
|
+
*/
|
484
|
+
readonly worker?: Worker | undefined;
|
485
|
+
/**
|
486
|
+
* A hash that stores the active worker objects, keyed by `id` field. This makes it easy to loop through all the workers. It is only available in the primary process.
|
487
|
+
*
|
488
|
+
* A worker is removed from `cluster.workers` after the worker has disconnected _and_ exited. The order between these two events cannot be determined in advance. However, it
|
489
|
+
* is guaranteed that the removal from the `cluster.workers` list happens before the last `'disconnect'` or `'exit'` event is emitted.
|
490
|
+
*
|
491
|
+
* ```js
|
492
|
+
* import cluster from 'node:cluster';
|
493
|
+
*
|
494
|
+
* for (const worker of Object.values(cluster.workers)) {
|
495
|
+
* worker.send('big announcement to all workers');
|
496
|
+
* }
|
497
|
+
* ```
|
498
|
+
* @since v0.7.0
|
499
|
+
*/
|
500
|
+
readonly workers?: NodeJS.Dict<Worker> | undefined;
|
501
|
+
readonly SCHED_NONE: number;
|
502
|
+
readonly SCHED_RR: number;
|
503
|
+
/**
|
504
|
+
* events.EventEmitter
|
505
|
+
* 1. disconnect
|
506
|
+
* 2. exit
|
507
|
+
* 3. fork
|
508
|
+
* 4. listening
|
509
|
+
* 5. message
|
510
|
+
* 6. online
|
511
|
+
* 7. setup
|
512
|
+
*/
|
513
|
+
addListener(event: string, listener: (...args: any[]) => void): this;
|
514
|
+
addListener(event: "disconnect", listener: (worker: Worker) => void): this;
|
515
|
+
addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
|
516
|
+
addListener(event: "fork", listener: (worker: Worker) => void): this;
|
517
|
+
addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
|
518
|
+
addListener(
|
519
|
+
event: "message",
|
520
|
+
listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
|
521
|
+
): this; // the handle is a net.Socket or net.Server object, or undefined.
|
522
|
+
addListener(event: "online", listener: (worker: Worker) => void): this;
|
523
|
+
addListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
|
524
|
+
emit(event: string | symbol, ...args: any[]): boolean;
|
525
|
+
emit(event: "disconnect", worker: Worker): boolean;
|
526
|
+
emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
|
527
|
+
emit(event: "fork", worker: Worker): boolean;
|
528
|
+
emit(event: "listening", worker: Worker, address: Address): boolean;
|
529
|
+
emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
|
530
|
+
emit(event: "online", worker: Worker): boolean;
|
531
|
+
emit(event: "setup", settings: ClusterSettings): boolean;
|
532
|
+
on(event: string, listener: (...args: any[]) => void): this;
|
533
|
+
on(event: "disconnect", listener: (worker: Worker) => void): this;
|
534
|
+
on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
|
535
|
+
on(event: "fork", listener: (worker: Worker) => void): this;
|
536
|
+
on(event: "listening", listener: (worker: Worker, address: Address) => void): this;
|
537
|
+
on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
|
538
|
+
on(event: "online", listener: (worker: Worker) => void): this;
|
539
|
+
on(event: "setup", listener: (settings: ClusterSettings) => void): this;
|
540
|
+
once(event: string, listener: (...args: any[]) => void): this;
|
541
|
+
once(event: "disconnect", listener: (worker: Worker) => void): this;
|
542
|
+
once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
|
543
|
+
once(event: "fork", listener: (worker: Worker) => void): this;
|
544
|
+
once(event: "listening", listener: (worker: Worker, address: Address) => void): this;
|
545
|
+
once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
|
546
|
+
once(event: "online", listener: (worker: Worker) => void): this;
|
547
|
+
once(event: "setup", listener: (settings: ClusterSettings) => void): this;
|
548
|
+
prependListener(event: string, listener: (...args: any[]) => void): this;
|
549
|
+
prependListener(event: "disconnect", listener: (worker: Worker) => void): this;
|
550
|
+
prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
|
551
|
+
prependListener(event: "fork", listener: (worker: Worker) => void): this;
|
552
|
+
prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
|
553
|
+
// the handle is a net.Socket or net.Server object, or undefined.
|
554
|
+
prependListener(
|
555
|
+
event: "message",
|
556
|
+
listener: (worker: Worker, message: any, handle?: net.Socket | net.Server) => void,
|
557
|
+
): this;
|
558
|
+
prependListener(event: "online", listener: (worker: Worker) => void): this;
|
559
|
+
prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
|
560
|
+
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
561
|
+
prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this;
|
562
|
+
prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
|
563
|
+
prependOnceListener(event: "fork", listener: (worker: Worker) => void): this;
|
564
|
+
prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
|
565
|
+
// the handle is a net.Socket or net.Server object, or undefined.
|
566
|
+
prependOnceListener(
|
567
|
+
event: "message",
|
568
|
+
listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
|
569
|
+
): this;
|
570
|
+
prependOnceListener(event: "online", listener: (worker: Worker) => void): this;
|
571
|
+
prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
|
572
|
+
}
|
573
|
+
const cluster: Cluster;
|
574
|
+
export default cluster;
|
575
|
+
}
|
576
|
+
declare module "node:cluster" {
|
577
|
+
export * from "cluster";
|
578
|
+
export { default as default } from "cluster";
|
579
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// Polyfills for the explicit resource management types added in TypeScript 5.2.
|
2
|
+
// TODO: remove once this package no longer supports TS 5.1, and replace with a
|
3
|
+
// <reference> to TypeScript's disposable library in index.d.ts.
|
4
|
+
|
5
|
+
interface SymbolConstructor {
|
6
|
+
readonly dispose: unique symbol;
|
7
|
+
readonly asyncDispose: unique symbol;
|
8
|
+
}
|
9
|
+
|
10
|
+
interface Disposable {
|
11
|
+
[Symbol.dispose](): void;
|
12
|
+
}
|
13
|
+
|
14
|
+
interface AsyncDisposable {
|
15
|
+
[Symbol.asyncDispose](): PromiseLike<void>;
|
16
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
// Declaration files in this directory contain types relating to TypeScript library features
|
2
|
+
// that are not included in all TypeScript versions supported by DefinitelyTyped, but
|
3
|
+
// which can be made backwards-compatible without needing `typesVersions`.
|
4
|
+
// If adding declarations to this directory, please specify which versions of TypeScript require them,
|
5
|
+
// so that they can be removed when no longer needed.
|
6
|
+
|
7
|
+
/// <reference path="disposable.d.ts" />
|
8
|
+
/// <reference path="indexable.d.ts" />
|
9
|
+
/// <reference path="iterators.d.ts" />
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// Polyfill for ES2022's .at() method on string/array prototypes, added to TypeScript in 4.6.
|
2
|
+
// TODO: these methods are not used within @types/node, and should be removed at the next
|
3
|
+
// major @types/node version; users should include the es2022 TypeScript libraries
|
4
|
+
// if they need these features.
|
5
|
+
|
6
|
+
interface RelativeIndexable<T> {
|
7
|
+
at(index: number): T | undefined;
|
8
|
+
}
|
9
|
+
|
10
|
+
interface String extends RelativeIndexable<string> {}
|
11
|
+
interface Array<T> extends RelativeIndexable<T> {}
|
12
|
+
interface ReadonlyArray<T> extends RelativeIndexable<T> {}
|
13
|
+
interface Int8Array extends RelativeIndexable<number> {}
|
14
|
+
interface Uint8Array extends RelativeIndexable<number> {}
|
15
|
+
interface Uint8ClampedArray extends RelativeIndexable<number> {}
|
16
|
+
interface Int16Array extends RelativeIndexable<number> {}
|
17
|
+
interface Uint16Array extends RelativeIndexable<number> {}
|
18
|
+
interface Int32Array extends RelativeIndexable<number> {}
|
19
|
+
interface Uint32Array extends RelativeIndexable<number> {}
|
20
|
+
interface Float32Array extends RelativeIndexable<number> {}
|
21
|
+
interface Float64Array extends RelativeIndexable<number> {}
|
22
|
+
interface BigInt64Array extends RelativeIndexable<bigint> {}
|
23
|
+
interface BigUint64Array extends RelativeIndexable<bigint> {}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// Backwards-compatible iterator interfaces, augmented with iterator helper methods by lib.esnext.iterator in TypeScript 5.6.
|
2
|
+
// The IterableIterator interface does not contain these methods, which creates assignability issues in places where IteratorObjects
|
3
|
+
// are expected (eg. DOM-compatible APIs) if lib.esnext.iterator is loaded.
|
4
|
+
// Also ensures that iterators returned by the Node API, which inherit from Iterator.prototype, correctly expose the iterator helper methods
|
5
|
+
// if lib.esnext.iterator is loaded.
|
6
|
+
// TODO: remove once this package no longer supports TS 5.5, and replace NodeJS.BuiltinIteratorReturn with BuiltinIteratorReturn.
|
7
|
+
|
8
|
+
// Placeholders for TS <5.6
|
9
|
+
interface IteratorObject<T, TReturn, TNext> {}
|
10
|
+
interface AsyncIteratorObject<T, TReturn, TNext> {}
|
11
|
+
|
12
|
+
declare namespace NodeJS {
|
13
|
+
// Populate iterator methods for TS <5.6
|
14
|
+
interface Iterator<T, TReturn, TNext> extends globalThis.Iterator<T, TReturn, TNext> {}
|
15
|
+
interface AsyncIterator<T, TReturn, TNext> extends globalThis.AsyncIterator<T, TReturn, TNext> {}
|
16
|
+
|
17
|
+
// Polyfill for TS 5.6's instrinsic BuiltinIteratorReturn type, required for DOM-compatible iterators
|
18
|
+
type BuiltinIteratorReturn = ReturnType<any[][typeof Symbol.iterator]> extends
|
19
|
+
globalThis.Iterator<any, infer TReturn> ? TReturn
|
20
|
+
: any;
|
21
|
+
}
|