imran-dl 2.3.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of imran-dl might be problematic. Click here for more details.

Files changed (229) hide show
  1. package/.cache/nix/binary-cache-v6.sqlite +0 -0
  2. package/.cache/nix/binary-cache-v6.sqlite-journal +0 -0
  3. package/.cache/replit/__replit_disk_meta.json +1 -0
  4. package/.cache/replit/modules/nodejs-20:v32-20240401-269b323.res +1 -0
  5. package/.cache/replit/modules/replit:v8-20240329-787bc7d.res +1 -0
  6. package/.cache/replit/modules.stamp +0 -0
  7. package/.cache/replit/nix/env.json +1 -0
  8. package/.cache/typescript/5.0/node_modules/.package-lock.json +12 -0
  9. package/.cache/typescript/5.0/node_modules/types-registry/README.md +2 -0
  10. package/.cache/typescript/5.0/node_modules/types-registry/index.json +1 -0
  11. package/.cache/typescript/5.0/node_modules/types-registry/package.json +20 -0
  12. package/.cache/typescript/5.0/package.json +1 -0
  13. package/.cache/typescript/5.3/node_modules/.package-lock.json +114 -0
  14. package/.cache/typescript/5.3/node_modules/@types/cheerio/LICENSE +21 -0
  15. package/.cache/typescript/5.3/node_modules/@types/cheerio/README.md +15 -0
  16. package/.cache/typescript/5.3/node_modules/@types/cheerio/index.d.ts +318 -0
  17. package/.cache/typescript/5.3/node_modules/@types/cheerio/package.json +71 -0
  18. package/.cache/typescript/5.3/node_modules/@types/node/LICENSE +21 -0
  19. package/.cache/typescript/5.3/node_modules/@types/node/README.md +15 -0
  20. package/.cache/typescript/5.3/node_modules/@types/node/assert/strict.d.ts +8 -0
  21. package/.cache/typescript/5.3/node_modules/@types/node/assert.d.ts +996 -0
  22. package/.cache/typescript/5.3/node_modules/@types/node/async_hooks.d.ts +539 -0
  23. package/.cache/typescript/5.3/node_modules/@types/node/buffer.d.ts +2362 -0
  24. package/.cache/typescript/5.3/node_modules/@types/node/child_process.d.ts +1540 -0
  25. package/.cache/typescript/5.3/node_modules/@types/node/cluster.d.ts +432 -0
  26. package/.cache/typescript/5.3/node_modules/@types/node/console.d.ts +415 -0
  27. package/.cache/typescript/5.3/node_modules/@types/node/constants.d.ts +19 -0
  28. package/.cache/typescript/5.3/node_modules/@types/node/crypto.d.ts +4456 -0
  29. package/.cache/typescript/5.3/node_modules/@types/node/dgram.d.ts +586 -0
  30. package/.cache/typescript/5.3/node_modules/@types/node/diagnostics_channel.d.ts +191 -0
  31. package/.cache/typescript/5.3/node_modules/@types/node/dns/promises.d.ts +425 -0
  32. package/.cache/typescript/5.3/node_modules/@types/node/dns.d.ts +809 -0
  33. package/.cache/typescript/5.3/node_modules/@types/node/dom-events.d.ts +122 -0
  34. package/.cache/typescript/5.3/node_modules/@types/node/domain.d.ts +170 -0
  35. package/.cache/typescript/5.3/node_modules/@types/node/events.d.ts +879 -0
  36. package/.cache/typescript/5.3/node_modules/@types/node/fs/promises.d.ts +1239 -0
  37. package/.cache/typescript/5.3/node_modules/@types/node/fs.d.ts +4291 -0
  38. package/.cache/typescript/5.3/node_modules/@types/node/globals.d.ts +385 -0
  39. package/.cache/typescript/5.3/node_modules/@types/node/globals.global.d.ts +1 -0
  40. package/.cache/typescript/5.3/node_modules/@types/node/http.d.ts +1888 -0
  41. package/.cache/typescript/5.3/node_modules/@types/node/http2.d.ts +2382 -0
  42. package/.cache/typescript/5.3/node_modules/@types/node/https.d.ts +550 -0
  43. package/.cache/typescript/5.3/node_modules/@types/node/index.d.ts +88 -0
  44. package/.cache/typescript/5.3/node_modules/@types/node/inspector.d.ts +2747 -0
  45. package/.cache/typescript/5.3/node_modules/@types/node/module.d.ts +301 -0
  46. package/.cache/typescript/5.3/node_modules/@types/node/net.d.ts +949 -0
  47. package/.cache/typescript/5.3/node_modules/@types/node/os.d.ts +478 -0
  48. package/.cache/typescript/5.3/node_modules/@types/node/package.json +230 -0
  49. package/.cache/typescript/5.3/node_modules/@types/node/path.d.ts +191 -0
  50. package/.cache/typescript/5.3/node_modules/@types/node/perf_hooks.d.ts +639 -0
  51. package/.cache/typescript/5.3/node_modules/@types/node/process.d.ts +1539 -0
  52. package/.cache/typescript/5.3/node_modules/@types/node/punycode.d.ts +117 -0
  53. package/.cache/typescript/5.3/node_modules/@types/node/querystring.d.ts +141 -0
  54. package/.cache/typescript/5.3/node_modules/@types/node/readline/promises.d.ts +150 -0
  55. package/.cache/typescript/5.3/node_modules/@types/node/readline.d.ts +539 -0
  56. package/.cache/typescript/5.3/node_modules/@types/node/repl.d.ts +430 -0
  57. package/.cache/typescript/5.3/node_modules/@types/node/stream/consumers.d.ts +12 -0
  58. package/.cache/typescript/5.3/node_modules/@types/node/stream/promises.d.ts +83 -0
  59. package/.cache/typescript/5.3/node_modules/@types/node/stream/web.d.ts +350 -0
  60. package/.cache/typescript/5.3/node_modules/@types/node/stream.d.ts +1701 -0
  61. package/.cache/typescript/5.3/node_modules/@types/node/string_decoder.d.ts +67 -0
  62. package/.cache/typescript/5.3/node_modules/@types/node/test.d.ts +1382 -0
  63. package/.cache/typescript/5.3/node_modules/@types/node/timers/promises.d.ts +93 -0
  64. package/.cache/typescript/5.3/node_modules/@types/node/timers.d.ts +240 -0
  65. package/.cache/typescript/5.3/node_modules/@types/node/tls.d.ts +1210 -0
  66. package/.cache/typescript/5.3/node_modules/@types/node/trace_events.d.ts +182 -0
  67. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert/strict.d.ts +8 -0
  68. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert.d.ts +996 -0
  69. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/async_hooks.d.ts +539 -0
  70. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/buffer.d.ts +2362 -0
  71. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/child_process.d.ts +1540 -0
  72. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/cluster.d.ts +432 -0
  73. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/console.d.ts +415 -0
  74. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/constants.d.ts +19 -0
  75. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/crypto.d.ts +4455 -0
  76. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dgram.d.ts +586 -0
  77. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +191 -0
  78. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns/promises.d.ts +425 -0
  79. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns.d.ts +809 -0
  80. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dom-events.d.ts +122 -0
  81. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/domain.d.ts +170 -0
  82. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/events.d.ts +879 -0
  83. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs/promises.d.ts +1239 -0
  84. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs.d.ts +4291 -0
  85. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.d.ts +385 -0
  86. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
  87. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http.d.ts +1888 -0
  88. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http2.d.ts +2382 -0
  89. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/https.d.ts +550 -0
  90. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/index.d.ts +88 -0
  91. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/inspector.d.ts +2747 -0
  92. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/module.d.ts +301 -0
  93. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/net.d.ts +949 -0
  94. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/os.d.ts +478 -0
  95. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/path.d.ts +191 -0
  96. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/perf_hooks.d.ts +639 -0
  97. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/process.d.ts +1539 -0
  98. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/punycode.d.ts +117 -0
  99. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/querystring.d.ts +141 -0
  100. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline/promises.d.ts +150 -0
  101. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline.d.ts +539 -0
  102. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/repl.d.ts +430 -0
  103. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/consumers.d.ts +12 -0
  104. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/promises.d.ts +83 -0
  105. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/web.d.ts +350 -0
  106. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream.d.ts +1701 -0
  107. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/string_decoder.d.ts +67 -0
  108. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/test.d.ts +1382 -0
  109. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers/promises.d.ts +93 -0
  110. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers.d.ts +240 -0
  111. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tls.d.ts +1210 -0
  112. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/trace_events.d.ts +182 -0
  113. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tty.d.ts +208 -0
  114. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/url.d.ts +927 -0
  115. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/util.d.ts +2183 -0
  116. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/v8.d.ts +635 -0
  117. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/vm.d.ts +903 -0
  118. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/wasi.d.ts +158 -0
  119. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/worker_threads.d.ts +691 -0
  120. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/zlib.d.ts +517 -0
  121. package/.cache/typescript/5.3/node_modules/@types/node/tty.d.ts +208 -0
  122. package/.cache/typescript/5.3/node_modules/@types/node/url.d.ts +927 -0
  123. package/.cache/typescript/5.3/node_modules/@types/node/util.d.ts +2183 -0
  124. package/.cache/typescript/5.3/node_modules/@types/node/v8.d.ts +635 -0
  125. package/.cache/typescript/5.3/node_modules/@types/node/vm.d.ts +903 -0
  126. package/.cache/typescript/5.3/node_modules/@types/node/wasi.d.ts +158 -0
  127. package/.cache/typescript/5.3/node_modules/@types/node/worker_threads.d.ts +691 -0
  128. package/.cache/typescript/5.3/node_modules/@types/node/zlib.d.ts +517 -0
  129. package/.cache/typescript/5.3/node_modules/@types/node-fetch/LICENSE +21 -0
  130. package/.cache/typescript/5.3/node_modules/@types/node-fetch/README.md +15 -0
  131. package/.cache/typescript/5.3/node_modules/@types/node-fetch/externals.d.ts +32 -0
  132. package/.cache/typescript/5.3/node_modules/@types/node-fetch/index.d.ts +214 -0
  133. package/.cache/typescript/5.3/node_modules/@types/node-fetch/package.json +83 -0
  134. package/.cache/typescript/5.3/node_modules/@types/qs/LICENSE +21 -0
  135. package/.cache/typescript/5.3/node_modules/@types/qs/README.md +15 -0
  136. package/.cache/typescript/5.3/node_modules/@types/qs/index.d.ts +79 -0
  137. package/.cache/typescript/5.3/node_modules/@types/qs/package.json +65 -0
  138. package/.cache/typescript/5.3/node_modules/asynckit/LICENSE +21 -0
  139. package/.cache/typescript/5.3/node_modules/asynckit/README.md +233 -0
  140. package/.cache/typescript/5.3/node_modules/asynckit/bench.js +76 -0
  141. package/.cache/typescript/5.3/node_modules/asynckit/index.js +6 -0
  142. package/.cache/typescript/5.3/node_modules/asynckit/lib/abort.js +29 -0
  143. package/.cache/typescript/5.3/node_modules/asynckit/lib/async.js +34 -0
  144. package/.cache/typescript/5.3/node_modules/asynckit/lib/defer.js +26 -0
  145. package/.cache/typescript/5.3/node_modules/asynckit/lib/iterate.js +75 -0
  146. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  147. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_parallel.js +25 -0
  148. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial.js +25 -0
  149. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  150. package/.cache/typescript/5.3/node_modules/asynckit/lib/state.js +37 -0
  151. package/.cache/typescript/5.3/node_modules/asynckit/lib/streamify.js +141 -0
  152. package/.cache/typescript/5.3/node_modules/asynckit/lib/terminator.js +29 -0
  153. package/.cache/typescript/5.3/node_modules/asynckit/package.json +63 -0
  154. package/.cache/typescript/5.3/node_modules/asynckit/parallel.js +43 -0
  155. package/.cache/typescript/5.3/node_modules/asynckit/serial.js +17 -0
  156. package/.cache/typescript/5.3/node_modules/asynckit/serialOrdered.js +75 -0
  157. package/.cache/typescript/5.3/node_modules/asynckit/stream.js +21 -0
  158. package/.cache/typescript/5.3/node_modules/combined-stream/License +19 -0
  159. package/.cache/typescript/5.3/node_modules/combined-stream/Readme.md +138 -0
  160. package/.cache/typescript/5.3/node_modules/combined-stream/lib/combined_stream.js +208 -0
  161. package/.cache/typescript/5.3/node_modules/combined-stream/package.json +25 -0
  162. package/.cache/typescript/5.3/node_modules/combined-stream/yarn.lock +17 -0
  163. package/.cache/typescript/5.3/node_modules/delayed-stream/License +19 -0
  164. package/.cache/typescript/5.3/node_modules/delayed-stream/Makefile +7 -0
  165. package/.cache/typescript/5.3/node_modules/delayed-stream/Readme.md +141 -0
  166. package/.cache/typescript/5.3/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  167. package/.cache/typescript/5.3/node_modules/delayed-stream/package.json +27 -0
  168. package/.cache/typescript/5.3/node_modules/form-data/License +19 -0
  169. package/.cache/typescript/5.3/node_modules/form-data/README.md.bak +358 -0
  170. package/.cache/typescript/5.3/node_modules/form-data/Readme.md +358 -0
  171. package/.cache/typescript/5.3/node_modules/form-data/index.d.ts +62 -0
  172. package/.cache/typescript/5.3/node_modules/form-data/lib/browser.js +2 -0
  173. package/.cache/typescript/5.3/node_modules/form-data/lib/form_data.js +501 -0
  174. package/.cache/typescript/5.3/node_modules/form-data/lib/populate.js +10 -0
  175. package/.cache/typescript/5.3/node_modules/form-data/package.json +68 -0
  176. package/.cache/typescript/5.3/node_modules/mime-db/HISTORY.md +507 -0
  177. package/.cache/typescript/5.3/node_modules/mime-db/LICENSE +23 -0
  178. package/.cache/typescript/5.3/node_modules/mime-db/README.md +100 -0
  179. package/.cache/typescript/5.3/node_modules/mime-db/db.json +8519 -0
  180. package/.cache/typescript/5.3/node_modules/mime-db/index.js +12 -0
  181. package/.cache/typescript/5.3/node_modules/mime-db/package.json +60 -0
  182. package/.cache/typescript/5.3/node_modules/mime-types/HISTORY.md +397 -0
  183. package/.cache/typescript/5.3/node_modules/mime-types/LICENSE +23 -0
  184. package/.cache/typescript/5.3/node_modules/mime-types/README.md +113 -0
  185. package/.cache/typescript/5.3/node_modules/mime-types/index.js +188 -0
  186. package/.cache/typescript/5.3/node_modules/mime-types/package.json +44 -0
  187. package/.cache/typescript/5.3/node_modules/types-registry/README.md +2 -0
  188. package/.cache/typescript/5.3/node_modules/types-registry/index.json +1 -0
  189. package/.cache/typescript/5.3/node_modules/types-registry/package.json +20 -0
  190. package/.cache/typescript/5.3/node_modules/undici-types/README.md +6 -0
  191. package/.cache/typescript/5.3/node_modules/undici-types/agent.d.ts +31 -0
  192. package/.cache/typescript/5.3/node_modules/undici-types/api.d.ts +43 -0
  193. package/.cache/typescript/5.3/node_modules/undici-types/balanced-pool.d.ts +18 -0
  194. package/.cache/typescript/5.3/node_modules/undici-types/cache.d.ts +36 -0
  195. package/.cache/typescript/5.3/node_modules/undici-types/client.d.ts +97 -0
  196. package/.cache/typescript/5.3/node_modules/undici-types/connector.d.ts +34 -0
  197. package/.cache/typescript/5.3/node_modules/undici-types/content-type.d.ts +21 -0
  198. package/.cache/typescript/5.3/node_modules/undici-types/cookies.d.ts +28 -0
  199. package/.cache/typescript/5.3/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  200. package/.cache/typescript/5.3/node_modules/undici-types/dispatcher.d.ts +241 -0
  201. package/.cache/typescript/5.3/node_modules/undici-types/errors.d.ts +128 -0
  202. package/.cache/typescript/5.3/node_modules/undici-types/fetch.d.ts +209 -0
  203. package/.cache/typescript/5.3/node_modules/undici-types/file.d.ts +39 -0
  204. package/.cache/typescript/5.3/node_modules/undici-types/filereader.d.ts +54 -0
  205. package/.cache/typescript/5.3/node_modules/undici-types/formdata.d.ts +108 -0
  206. package/.cache/typescript/5.3/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  207. package/.cache/typescript/5.3/node_modules/undici-types/global-origin.d.ts +7 -0
  208. package/.cache/typescript/5.3/node_modules/undici-types/handlers.d.ts +9 -0
  209. package/.cache/typescript/5.3/node_modules/undici-types/header.d.ts +4 -0
  210. package/.cache/typescript/5.3/node_modules/undici-types/index.d.ts +63 -0
  211. package/.cache/typescript/5.3/node_modules/undici-types/interceptors.d.ts +5 -0
  212. package/.cache/typescript/5.3/node_modules/undici-types/mock-agent.d.ts +50 -0
  213. package/.cache/typescript/5.3/node_modules/undici-types/mock-client.d.ts +25 -0
  214. package/.cache/typescript/5.3/node_modules/undici-types/mock-errors.d.ts +12 -0
  215. package/.cache/typescript/5.3/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  216. package/.cache/typescript/5.3/node_modules/undici-types/mock-pool.d.ts +25 -0
  217. package/.cache/typescript/5.3/node_modules/undici-types/package.json +55 -0
  218. package/.cache/typescript/5.3/node_modules/undici-types/patch.d.ts +71 -0
  219. package/.cache/typescript/5.3/node_modules/undici-types/pool-stats.d.ts +19 -0
  220. package/.cache/typescript/5.3/node_modules/undici-types/pool.d.ts +28 -0
  221. package/.cache/typescript/5.3/node_modules/undici-types/proxy-agent.d.ts +30 -0
  222. package/.cache/typescript/5.3/node_modules/undici-types/readable.d.ts +61 -0
  223. package/.cache/typescript/5.3/node_modules/undici-types/webidl.d.ts +220 -0
  224. package/.cache/typescript/5.3/node_modules/undici-types/websocket.d.ts +131 -0
  225. package/.cache/typescript/5.3/package.json +1 -0
  226. package/IMRAN/module.js +1 -0
  227. package/README.md +64 -0
  228. package/index.js +13 -0
  229. package/package.json +48 -0
@@ -0,0 +1,432 @@
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
4
+ * isolation is not needed, use the `worker_threads` module instead, which
5
+ * 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/v20.2.0/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
+ execArgv?: string[] | undefined; // default: process.execArgv
62
+ exec?: string | undefined;
63
+ args?: string[] | undefined;
64
+ silent?: boolean | undefined;
65
+ stdio?: any[] | undefined;
66
+ uid?: number | undefined;
67
+ gid?: number | undefined;
68
+ inspectPort?: number | (() => number) | undefined;
69
+ serialization?: SerializationType | undefined;
70
+ cwd?: string | undefined;
71
+ windowsHide?: boolean | undefined;
72
+ }
73
+ export interface Address {
74
+ address: string;
75
+ port: number;
76
+ addressType: number | "udp4" | "udp6"; // 4, 6, -1, "udp4", "udp6"
77
+ }
78
+ /**
79
+ * A `Worker` object contains all public information and method about a worker.
80
+ * In the primary it can be obtained using `cluster.workers`. In a worker
81
+ * it can be obtained using `cluster.worker`.
82
+ * @since v0.7.0
83
+ */
84
+ export class Worker extends EventEmitter {
85
+ /**
86
+ * Each new worker is given its own unique id, this id is stored in the`id`.
87
+ *
88
+ * While a worker is alive, this is the key that indexes it in`cluster.workers`.
89
+ * @since v0.8.0
90
+ */
91
+ id: number;
92
+ /**
93
+ * All workers are created using `child_process.fork()`, the returned object
94
+ * from this function is stored as `.process`. In a worker, the global `process`is stored.
95
+ *
96
+ * See: `Child Process module`.
97
+ *
98
+ * Workers will call `process.exit(0)` if the `'disconnect'` event occurs
99
+ * on `process` and `.exitedAfterDisconnect` is not `true`. This protects against
100
+ * accidental disconnection.
101
+ * @since v0.7.0
102
+ */
103
+ process: child.ChildProcess;
104
+ /**
105
+ * Send a message to a worker or primary, optionally with a handle.
106
+ *
107
+ * In the primary, this sends a message to a specific worker. It is identical to `ChildProcess.send()`.
108
+ *
109
+ * In a worker, this sends a message to the primary. It is identical to`process.send()`.
110
+ *
111
+ * This example will echo back all messages from the primary:
112
+ *
113
+ * ```js
114
+ * if (cluster.isPrimary) {
115
+ * const worker = cluster.fork();
116
+ * worker.send('hi there');
117
+ *
118
+ * } else if (cluster.isWorker) {
119
+ * process.on('message', (msg) => {
120
+ * process.send(msg);
121
+ * });
122
+ * }
123
+ * ```
124
+ * @since v0.7.0
125
+ * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties:
126
+ */
127
+ send(message: child.Serializable, callback?: (error: Error | null) => void): boolean;
128
+ send(
129
+ message: child.Serializable,
130
+ sendHandle: child.SendHandle,
131
+ callback?: (error: Error | null) => void,
132
+ ): boolean;
133
+ send(
134
+ message: child.Serializable,
135
+ sendHandle: child.SendHandle,
136
+ options?: child.MessageOptions,
137
+ callback?: (error: Error | null) => void,
138
+ ): boolean;
139
+ /**
140
+ * This function will kill the worker. In the primary worker, it does this by
141
+ * disconnecting the `worker.process`, and once disconnected, killing with`signal`. In the worker, it does it by killing the process with `signal`.
142
+ *
143
+ * The `kill()` function kills the worker process without waiting for a graceful
144
+ * disconnect, it has the same behavior as `worker.process.kill()`.
145
+ *
146
+ * This method is aliased as `worker.destroy()` for backwards compatibility.
147
+ *
148
+ * In a worker, `process.kill()` exists, but it is not this function;
149
+ * it is `kill()`.
150
+ * @since v0.9.12
151
+ * @param [signal='SIGTERM'] Name of the kill signal to send to the worker process.
152
+ */
153
+ kill(signal?: string): void;
154
+ destroy(signal?: string): void;
155
+ /**
156
+ * In a worker, this function will close all servers, wait for the `'close'` event
157
+ * on those servers, and then disconnect the IPC channel.
158
+ *
159
+ * In the primary, an internal message is sent to the worker causing it to call`.disconnect()` on itself.
160
+ *
161
+ * Causes `.exitedAfterDisconnect` to be set.
162
+ *
163
+ * After a server is closed, it will no longer accept new connections,
164
+ * but connections may be accepted by any other listening worker. Existing
165
+ * connections will be allowed to close as usual. When no more connections exist,
166
+ * see `server.close()`, the IPC channel to the worker will close allowing it
167
+ * to die gracefully.
168
+ *
169
+ * The above applies _only_ to server connections, client connections are not
170
+ * automatically closed by workers, and disconnect does not wait for them to close
171
+ * before exiting.
172
+ *
173
+ * In a worker, `process.disconnect` exists, but it is not this function;
174
+ * it is `disconnect()`.
175
+ *
176
+ * Because long living server connections may block workers from disconnecting, it
177
+ * may be useful to send a message, so application specific actions may be taken to
178
+ * close them. It also may be useful to implement a timeout, killing a worker if
179
+ * the `'disconnect'` event has not been emitted after some time.
180
+ *
181
+ * ```js
182
+ * if (cluster.isPrimary) {
183
+ * const worker = cluster.fork();
184
+ * let timeout;
185
+ *
186
+ * worker.on('listening', (address) => {
187
+ * worker.send('shutdown');
188
+ * worker.disconnect();
189
+ * timeout = setTimeout(() => {
190
+ * worker.kill();
191
+ * }, 2000);
192
+ * });
193
+ *
194
+ * worker.on('disconnect', () => {
195
+ * clearTimeout(timeout);
196
+ * });
197
+ *
198
+ * } else if (cluster.isWorker) {
199
+ * const net = require('node:net');
200
+ * const server = net.createServer((socket) => {
201
+ * // Connections never end
202
+ * });
203
+ *
204
+ * server.listen(8000);
205
+ *
206
+ * process.on('message', (msg) => {
207
+ * if (msg === 'shutdown') {
208
+ * // Initiate graceful close of any connections to server
209
+ * }
210
+ * });
211
+ * }
212
+ * ```
213
+ * @since v0.7.7
214
+ * @return A reference to `worker`.
215
+ */
216
+ disconnect(): void;
217
+ /**
218
+ * This function returns `true` if the worker is connected to its primary via its
219
+ * IPC channel, `false` otherwise. A worker is connected to its primary after it
220
+ * has been created. It is disconnected after the `'disconnect'` event is emitted.
221
+ * @since v0.11.14
222
+ */
223
+ isConnected(): boolean;
224
+ /**
225
+ * This function returns `true` if the worker's process has terminated (either
226
+ * because of exiting or being signaled). Otherwise, it returns `false`.
227
+ *
228
+ * ```js
229
+ * import cluster from 'node:cluster';
230
+ * import http from 'node:http';
231
+ * import { availableParallelism } from 'node:os';
232
+ * import process from 'node:process';
233
+ *
234
+ * const numCPUs = availableParallelism();
235
+ *
236
+ * if (cluster.isPrimary) {
237
+ * console.log(`Primary ${process.pid} is running`);
238
+ *
239
+ * // Fork workers.
240
+ * for (let i = 0; i < numCPUs; i++) {
241
+ * cluster.fork();
242
+ * }
243
+ *
244
+ * cluster.on('fork', (worker) => {
245
+ * console.log('worker is dead:', worker.isDead());
246
+ * });
247
+ *
248
+ * cluster.on('exit', (worker, code, signal) => {
249
+ * console.log('worker is dead:', worker.isDead());
250
+ * });
251
+ * } else {
252
+ * // Workers can share any TCP connection. In this case, it is an HTTP server.
253
+ * http.createServer((req, res) => {
254
+ * res.writeHead(200);
255
+ * res.end(`Current process\n ${process.pid}`);
256
+ * process.kill(process.pid);
257
+ * }).listen(8000);
258
+ * }
259
+ * ```
260
+ * @since v0.11.14
261
+ */
262
+ isDead(): boolean;
263
+ /**
264
+ * This property is `true` if the worker exited due to `.disconnect()`.
265
+ * If the worker exited any other way, it is `false`. If the
266
+ * worker has not exited, it is `undefined`.
267
+ *
268
+ * The boolean `worker.exitedAfterDisconnect` allows distinguishing between
269
+ * voluntary and accidental exit, the primary may choose not to respawn a worker
270
+ * based on this value.
271
+ *
272
+ * ```js
273
+ * cluster.on('exit', (worker, code, signal) => {
274
+ * if (worker.exitedAfterDisconnect === true) {
275
+ * console.log('Oh, it was just voluntary – no need to worry');
276
+ * }
277
+ * });
278
+ *
279
+ * // kill worker
280
+ * worker.kill();
281
+ * ```
282
+ * @since v6.0.0
283
+ */
284
+ exitedAfterDisconnect: boolean;
285
+ /**
286
+ * events.EventEmitter
287
+ * 1. disconnect
288
+ * 2. error
289
+ * 3. exit
290
+ * 4. listening
291
+ * 5. message
292
+ * 6. online
293
+ */
294
+ addListener(event: string, listener: (...args: any[]) => void): this;
295
+ addListener(event: "disconnect", listener: () => void): this;
296
+ addListener(event: "error", listener: (error: Error) => void): this;
297
+ addListener(event: "exit", listener: (code: number, signal: string) => void): this;
298
+ addListener(event: "listening", listener: (address: Address) => void): this;
299
+ 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.
300
+ addListener(event: "online", listener: () => void): this;
301
+ emit(event: string | symbol, ...args: any[]): boolean;
302
+ emit(event: "disconnect"): boolean;
303
+ emit(event: "error", error: Error): boolean;
304
+ emit(event: "exit", code: number, signal: string): boolean;
305
+ emit(event: "listening", address: Address): boolean;
306
+ emit(event: "message", message: any, handle: net.Socket | net.Server): boolean;
307
+ emit(event: "online"): boolean;
308
+ on(event: string, listener: (...args: any[]) => void): this;
309
+ on(event: "disconnect", listener: () => void): this;
310
+ on(event: "error", listener: (error: Error) => void): this;
311
+ on(event: "exit", listener: (code: number, signal: string) => void): this;
312
+ on(event: "listening", listener: (address: Address) => void): this;
313
+ 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.
314
+ on(event: "online", listener: () => void): this;
315
+ once(event: string, listener: (...args: any[]) => void): this;
316
+ once(event: "disconnect", listener: () => void): this;
317
+ once(event: "error", listener: (error: Error) => void): this;
318
+ once(event: "exit", listener: (code: number, signal: string) => void): this;
319
+ once(event: "listening", listener: (address: Address) => void): this;
320
+ 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.
321
+ once(event: "online", listener: () => void): this;
322
+ prependListener(event: string, listener: (...args: any[]) => void): this;
323
+ prependListener(event: "disconnect", listener: () => void): this;
324
+ prependListener(event: "error", listener: (error: Error) => void): this;
325
+ prependListener(event: "exit", listener: (code: number, signal: string) => void): this;
326
+ prependListener(event: "listening", listener: (address: Address) => void): this;
327
+ 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.
328
+ prependListener(event: "online", listener: () => void): this;
329
+ prependOnceListener(event: string, listener: (...args: any[]) => void): this;
330
+ prependOnceListener(event: "disconnect", listener: () => void): this;
331
+ prependOnceListener(event: "error", listener: (error: Error) => void): this;
332
+ prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this;
333
+ prependOnceListener(event: "listening", listener: (address: Address) => void): this;
334
+ 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.
335
+ prependOnceListener(event: "online", listener: () => void): this;
336
+ }
337
+ export interface Cluster extends EventEmitter {
338
+ disconnect(callback?: () => void): void;
339
+ fork(env?: any): Worker;
340
+ /** @deprecated since v16.0.0 - use isPrimary. */
341
+ readonly isMaster: boolean;
342
+ readonly isPrimary: boolean;
343
+ readonly isWorker: boolean;
344
+ schedulingPolicy: number;
345
+ readonly settings: ClusterSettings;
346
+ /** @deprecated since v16.0.0 - use setupPrimary. */
347
+ setupMaster(settings?: ClusterSettings): void;
348
+ /**
349
+ * `setupPrimary` is used to change the default 'fork' behavior. Once called, the settings will be present in cluster.settings.
350
+ */
351
+ setupPrimary(settings?: ClusterSettings): void;
352
+ readonly worker?: Worker | undefined;
353
+ readonly workers?: NodeJS.Dict<Worker> | undefined;
354
+ readonly SCHED_NONE: number;
355
+ readonly SCHED_RR: number;
356
+ /**
357
+ * events.EventEmitter
358
+ * 1. disconnect
359
+ * 2. exit
360
+ * 3. fork
361
+ * 4. listening
362
+ * 5. message
363
+ * 6. online
364
+ * 7. setup
365
+ */
366
+ addListener(event: string, listener: (...args: any[]) => void): this;
367
+ addListener(event: "disconnect", listener: (worker: Worker) => void): this;
368
+ addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
369
+ addListener(event: "fork", listener: (worker: Worker) => void): this;
370
+ addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
371
+ addListener(
372
+ event: "message",
373
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
374
+ ): this; // the handle is a net.Socket or net.Server object, or undefined.
375
+ addListener(event: "online", listener: (worker: Worker) => void): this;
376
+ addListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
377
+ emit(event: string | symbol, ...args: any[]): boolean;
378
+ emit(event: "disconnect", worker: Worker): boolean;
379
+ emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
380
+ emit(event: "fork", worker: Worker): boolean;
381
+ emit(event: "listening", worker: Worker, address: Address): boolean;
382
+ emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
383
+ emit(event: "online", worker: Worker): boolean;
384
+ emit(event: "setup", settings: ClusterSettings): boolean;
385
+ on(event: string, listener: (...args: any[]) => void): this;
386
+ on(event: "disconnect", listener: (worker: Worker) => void): this;
387
+ on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
388
+ on(event: "fork", listener: (worker: Worker) => void): this;
389
+ on(event: "listening", listener: (worker: Worker, address: Address) => void): this;
390
+ 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.
391
+ on(event: "online", listener: (worker: Worker) => void): this;
392
+ on(event: "setup", listener: (settings: ClusterSettings) => void): this;
393
+ once(event: string, listener: (...args: any[]) => void): this;
394
+ once(event: "disconnect", listener: (worker: Worker) => void): this;
395
+ once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
396
+ once(event: "fork", listener: (worker: Worker) => void): this;
397
+ once(event: "listening", listener: (worker: Worker, address: Address) => void): this;
398
+ 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.
399
+ once(event: "online", listener: (worker: Worker) => void): this;
400
+ once(event: "setup", listener: (settings: ClusterSettings) => void): this;
401
+ prependListener(event: string, listener: (...args: any[]) => void): this;
402
+ prependListener(event: "disconnect", listener: (worker: Worker) => void): this;
403
+ prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
404
+ prependListener(event: "fork", listener: (worker: Worker) => void): this;
405
+ prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
406
+ // the handle is a net.Socket or net.Server object, or undefined.
407
+ prependListener(
408
+ event: "message",
409
+ listener: (worker: Worker, message: any, handle?: net.Socket | net.Server) => void,
410
+ ): this;
411
+ prependListener(event: "online", listener: (worker: Worker) => void): this;
412
+ prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
413
+ prependOnceListener(event: string, listener: (...args: any[]) => void): this;
414
+ prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this;
415
+ prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
416
+ prependOnceListener(event: "fork", listener: (worker: Worker) => void): this;
417
+ prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
418
+ // the handle is a net.Socket or net.Server object, or undefined.
419
+ prependOnceListener(
420
+ event: "message",
421
+ listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void,
422
+ ): this;
423
+ prependOnceListener(event: "online", listener: (worker: Worker) => void): this;
424
+ prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
425
+ }
426
+ const cluster: Cluster;
427
+ export default cluster;
428
+ }
429
+ declare module "node:cluster" {
430
+ export * from "cluster";
431
+ export { default as default } from "cluster";
432
+ }