alicezetion 1.8.5 → 1.8.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) 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/modules/nodejs-20:v25-20240206-fdbd396.res +1 -0
  4. package/.cache/replit/modules/replit:v4-20240206-fdbd396.res +1 -0
  5. package/.cache/replit/modules.stamp +0 -1
  6. package/.cache/replit/nix/env.json +1 -1
  7. package/.cache/typescript/5.3/node_modules/.package-lock.json +137 -0
  8. package/.cache/typescript/5.3/node_modules/@types/bluebird/LICENSE +21 -0
  9. package/.cache/typescript/5.3/node_modules/@types/bluebird/README.md +15 -0
  10. package/.cache/typescript/5.3/node_modules/@types/bluebird/index.d.ts +1365 -0
  11. package/.cache/typescript/5.3/node_modules/@types/bluebird/package.json +25 -0
  12. package/.cache/typescript/5.3/node_modules/@types/caseless/LICENSE +21 -0
  13. package/.cache/typescript/5.3/node_modules/@types/caseless/README.md +48 -0
  14. package/.cache/typescript/5.3/node_modules/@types/caseless/index.d.ts +29 -0
  15. package/.cache/typescript/5.3/node_modules/@types/caseless/package.json +35 -0
  16. package/.cache/typescript/5.3/node_modules/@types/cheerio/LICENSE +21 -0
  17. package/.cache/typescript/5.3/node_modules/@types/cheerio/README.md +15 -0
  18. package/.cache/typescript/5.3/node_modules/@types/cheerio/index.d.ts +318 -0
  19. package/.cache/typescript/5.3/node_modules/@types/cheerio/package.json +71 -0
  20. package/.cache/typescript/5.3/node_modules/@types/node/LICENSE +21 -0
  21. package/.cache/typescript/5.3/node_modules/@types/node/README.md +15 -0
  22. package/.cache/typescript/5.3/node_modules/@types/node/assert/strict.d.ts +8 -0
  23. package/.cache/typescript/5.3/node_modules/@types/node/assert.d.ts +996 -0
  24. package/.cache/typescript/5.3/node_modules/@types/node/async_hooks.d.ts +539 -0
  25. package/.cache/typescript/5.3/node_modules/@types/node/buffer.d.ts +2362 -0
  26. package/.cache/typescript/5.3/node_modules/@types/node/child_process.d.ts +1540 -0
  27. package/.cache/typescript/5.3/node_modules/@types/node/cluster.d.ts +432 -0
  28. package/.cache/typescript/5.3/node_modules/@types/node/console.d.ts +415 -0
  29. package/.cache/typescript/5.3/node_modules/@types/node/constants.d.ts +19 -0
  30. package/.cache/typescript/5.3/node_modules/@types/node/crypto.d.ts +4487 -0
  31. package/.cache/typescript/5.3/node_modules/@types/node/dgram.d.ts +596 -0
  32. package/.cache/typescript/5.3/node_modules/@types/node/diagnostics_channel.d.ts +545 -0
  33. package/.cache/typescript/5.3/node_modules/@types/node/dns/promises.d.ts +425 -0
  34. package/.cache/typescript/5.3/node_modules/@types/node/dns.d.ts +809 -0
  35. package/.cache/typescript/5.3/node_modules/@types/node/dom-events.d.ts +122 -0
  36. package/.cache/typescript/5.3/node_modules/@types/node/domain.d.ts +170 -0
  37. package/.cache/typescript/5.3/node_modules/@types/node/events.d.ts +879 -0
  38. package/.cache/typescript/5.3/node_modules/@types/node/fs/promises.d.ts +1239 -0
  39. package/.cache/typescript/5.3/node_modules/@types/node/fs.d.ts +4311 -0
  40. package/.cache/typescript/5.3/node_modules/@types/node/globals.d.ts +411 -0
  41. package/.cache/typescript/5.3/node_modules/@types/node/globals.global.d.ts +1 -0
  42. package/.cache/typescript/5.3/node_modules/@types/node/http.d.ts +1887 -0
  43. package/.cache/typescript/5.3/node_modules/@types/node/http2.d.ts +2382 -0
  44. package/.cache/typescript/5.3/node_modules/@types/node/https.d.ts +550 -0
  45. package/.cache/typescript/5.3/node_modules/@types/node/index.d.ts +88 -0
  46. package/.cache/typescript/5.3/node_modules/@types/node/inspector.d.ts +2747 -0
  47. package/.cache/typescript/5.3/node_modules/@types/node/module.d.ts +315 -0
  48. package/.cache/typescript/5.3/node_modules/@types/node/net.d.ts +949 -0
  49. package/.cache/typescript/5.3/node_modules/@types/node/os.d.ts +478 -0
  50. package/.cache/typescript/5.3/node_modules/@types/node/package.json +229 -0
  51. package/.cache/typescript/5.3/node_modules/@types/node/path.d.ts +191 -0
  52. package/.cache/typescript/5.3/node_modules/@types/node/perf_hooks.d.ts +645 -0
  53. package/.cache/typescript/5.3/node_modules/@types/node/process.d.ts +1561 -0
  54. package/.cache/typescript/5.3/node_modules/@types/node/punycode.d.ts +117 -0
  55. package/.cache/typescript/5.3/node_modules/@types/node/querystring.d.ts +141 -0
  56. package/.cache/typescript/5.3/node_modules/@types/node/readline/promises.d.ts +150 -0
  57. package/.cache/typescript/5.3/node_modules/@types/node/readline.d.ts +539 -0
  58. package/.cache/typescript/5.3/node_modules/@types/node/repl.d.ts +430 -0
  59. package/.cache/typescript/5.3/node_modules/@types/node/stream/consumers.d.ts +12 -0
  60. package/.cache/typescript/5.3/node_modules/@types/node/stream/promises.d.ts +83 -0
  61. package/.cache/typescript/5.3/node_modules/@types/node/stream/web.d.ts +366 -0
  62. package/.cache/typescript/5.3/node_modules/@types/node/stream.d.ts +1701 -0
  63. package/.cache/typescript/5.3/node_modules/@types/node/string_decoder.d.ts +67 -0
  64. package/.cache/typescript/5.3/node_modules/@types/node/test.d.ts +1465 -0
  65. package/.cache/typescript/5.3/node_modules/@types/node/timers/promises.d.ts +93 -0
  66. package/.cache/typescript/5.3/node_modules/@types/node/timers.d.ts +240 -0
  67. package/.cache/typescript/5.3/node_modules/@types/node/tls.d.ts +1210 -0
  68. package/.cache/typescript/5.3/node_modules/@types/node/trace_events.d.ts +182 -0
  69. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert/strict.d.ts +8 -0
  70. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert.d.ts +996 -0
  71. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/async_hooks.d.ts +539 -0
  72. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/buffer.d.ts +2362 -0
  73. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/child_process.d.ts +1540 -0
  74. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/cluster.d.ts +432 -0
  75. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/console.d.ts +415 -0
  76. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/constants.d.ts +19 -0
  77. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/crypto.d.ts +4487 -0
  78. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dgram.d.ts +596 -0
  79. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +545 -0
  80. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns/promises.d.ts +425 -0
  81. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns.d.ts +809 -0
  82. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dom-events.d.ts +122 -0
  83. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/domain.d.ts +170 -0
  84. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/events.d.ts +879 -0
  85. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs/promises.d.ts +1239 -0
  86. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs.d.ts +4311 -0
  87. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.d.ts +411 -0
  88. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
  89. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http.d.ts +1887 -0
  90. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http2.d.ts +2382 -0
  91. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/https.d.ts +550 -0
  92. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/index.d.ts +88 -0
  93. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/inspector.d.ts +2747 -0
  94. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/module.d.ts +315 -0
  95. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/net.d.ts +949 -0
  96. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/os.d.ts +478 -0
  97. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/path.d.ts +191 -0
  98. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/perf_hooks.d.ts +645 -0
  99. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/process.d.ts +1561 -0
  100. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/punycode.d.ts +117 -0
  101. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/querystring.d.ts +141 -0
  102. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline/promises.d.ts +150 -0
  103. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline.d.ts +539 -0
  104. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/repl.d.ts +430 -0
  105. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/consumers.d.ts +12 -0
  106. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/promises.d.ts +83 -0
  107. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/web.d.ts +366 -0
  108. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream.d.ts +1701 -0
  109. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/string_decoder.d.ts +67 -0
  110. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/test.d.ts +1465 -0
  111. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers/promises.d.ts +93 -0
  112. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers.d.ts +240 -0
  113. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tls.d.ts +1210 -0
  114. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/trace_events.d.ts +182 -0
  115. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tty.d.ts +208 -0
  116. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/url.d.ts +927 -0
  117. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/util.d.ts +2183 -0
  118. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/v8.d.ts +635 -0
  119. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/vm.d.ts +903 -0
  120. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/wasi.d.ts +179 -0
  121. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/worker_threads.d.ts +691 -0
  122. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/zlib.d.ts +517 -0
  123. package/.cache/typescript/5.3/node_modules/@types/node/tty.d.ts +208 -0
  124. package/.cache/typescript/5.3/node_modules/@types/node/url.d.ts +927 -0
  125. package/.cache/typescript/5.3/node_modules/@types/node/util.d.ts +2183 -0
  126. package/.cache/typescript/5.3/node_modules/@types/node/v8.d.ts +635 -0
  127. package/.cache/typescript/5.3/node_modules/@types/node/vm.d.ts +903 -0
  128. package/.cache/typescript/5.3/node_modules/@types/node/wasi.d.ts +179 -0
  129. package/.cache/typescript/5.3/node_modules/@types/node/worker_threads.d.ts +691 -0
  130. package/.cache/typescript/5.3/node_modules/@types/node/zlib.d.ts +517 -0
  131. package/.cache/typescript/5.3/node_modules/@types/npmlog/LICENSE +21 -0
  132. package/.cache/typescript/5.3/node_modules/@types/npmlog/README.md +15 -0
  133. package/.cache/typescript/5.3/node_modules/@types/npmlog/index.d.ts +84 -0
  134. package/.cache/typescript/5.3/node_modules/@types/npmlog/package.json +32 -0
  135. package/.cache/typescript/5.3/node_modules/@types/request/LICENSE +21 -0
  136. package/.cache/typescript/5.3/node_modules/@types/request/README.md +15 -0
  137. package/.cache/typescript/5.3/node_modules/@types/request/index.d.ts +395 -0
  138. package/.cache/typescript/5.3/node_modules/@types/request/package.json +70 -0
  139. package/.cache/typescript/5.3/node_modules/@types/tough-cookie/LICENSE +21 -0
  140. package/.cache/typescript/5.3/node_modules/@types/tough-cookie/README.md +15 -0
  141. package/.cache/typescript/5.3/node_modules/@types/tough-cookie/index.d.ts +321 -0
  142. package/.cache/typescript/5.3/node_modules/@types/tough-cookie/package.json +35 -0
  143. package/.cache/typescript/5.3/node_modules/asynckit/LICENSE +21 -0
  144. package/.cache/typescript/5.3/node_modules/asynckit/README.md +233 -0
  145. package/.cache/typescript/5.3/node_modules/asynckit/bench.js +76 -0
  146. package/.cache/typescript/5.3/node_modules/asynckit/index.js +6 -0
  147. package/.cache/typescript/5.3/node_modules/asynckit/lib/abort.js +29 -0
  148. package/.cache/typescript/5.3/node_modules/asynckit/lib/async.js +34 -0
  149. package/.cache/typescript/5.3/node_modules/asynckit/lib/defer.js +26 -0
  150. package/.cache/typescript/5.3/node_modules/asynckit/lib/iterate.js +75 -0
  151. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  152. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_parallel.js +25 -0
  153. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial.js +25 -0
  154. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  155. package/.cache/typescript/5.3/node_modules/asynckit/lib/state.js +37 -0
  156. package/.cache/typescript/5.3/node_modules/asynckit/lib/streamify.js +141 -0
  157. package/.cache/typescript/5.3/node_modules/asynckit/lib/terminator.js +29 -0
  158. package/.cache/typescript/5.3/node_modules/asynckit/package.json +63 -0
  159. package/.cache/typescript/5.3/node_modules/asynckit/parallel.js +43 -0
  160. package/.cache/typescript/5.3/node_modules/asynckit/serial.js +17 -0
  161. package/.cache/typescript/5.3/node_modules/asynckit/serialOrdered.js +75 -0
  162. package/.cache/typescript/5.3/node_modules/asynckit/stream.js +21 -0
  163. package/.cache/typescript/5.3/node_modules/combined-stream/License +19 -0
  164. package/.cache/typescript/5.3/node_modules/combined-stream/Readme.md +138 -0
  165. package/.cache/typescript/5.3/node_modules/combined-stream/lib/combined_stream.js +208 -0
  166. package/.cache/typescript/5.3/node_modules/combined-stream/package.json +25 -0
  167. package/.cache/typescript/5.3/node_modules/combined-stream/yarn.lock +17 -0
  168. package/.cache/typescript/5.3/node_modules/delayed-stream/License +19 -0
  169. package/.cache/typescript/5.3/node_modules/delayed-stream/Makefile +7 -0
  170. package/.cache/typescript/5.3/node_modules/delayed-stream/Readme.md +141 -0
  171. package/.cache/typescript/5.3/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  172. package/.cache/typescript/5.3/node_modules/delayed-stream/package.json +27 -0
  173. package/.cache/typescript/5.3/node_modules/form-data/License +19 -0
  174. package/.cache/typescript/5.3/node_modules/form-data/README.md +350 -0
  175. package/.cache/typescript/5.3/node_modules/form-data/README.md.bak +350 -0
  176. package/.cache/typescript/5.3/node_modules/form-data/index.d.ts +51 -0
  177. package/.cache/typescript/5.3/node_modules/form-data/lib/browser.js +2 -0
  178. package/.cache/typescript/5.3/node_modules/form-data/lib/form_data.js +483 -0
  179. package/.cache/typescript/5.3/node_modules/form-data/lib/populate.js +10 -0
  180. package/.cache/typescript/5.3/node_modules/form-data/package.json +68 -0
  181. package/.cache/typescript/5.3/node_modules/mime-db/HISTORY.md +507 -0
  182. package/.cache/typescript/5.3/node_modules/mime-db/LICENSE +23 -0
  183. package/.cache/typescript/5.3/node_modules/mime-db/README.md +100 -0
  184. package/.cache/typescript/5.3/node_modules/mime-db/db.json +8519 -0
  185. package/.cache/typescript/5.3/node_modules/mime-db/index.js +12 -0
  186. package/.cache/typescript/5.3/node_modules/mime-db/package.json +60 -0
  187. package/.cache/typescript/5.3/node_modules/mime-types/HISTORY.md +397 -0
  188. package/.cache/typescript/5.3/node_modules/mime-types/LICENSE +23 -0
  189. package/.cache/typescript/5.3/node_modules/mime-types/README.md +113 -0
  190. package/.cache/typescript/5.3/node_modules/mime-types/index.js +188 -0
  191. package/.cache/typescript/5.3/node_modules/mime-types/package.json +44 -0
  192. package/.cache/typescript/5.3/node_modules/types-registry/README.md +2 -0
  193. package/.cache/typescript/5.3/node_modules/types-registry/index.json +1 -0
  194. package/.cache/typescript/5.3/node_modules/types-registry/package.json +20 -0
  195. package/.cache/typescript/5.3/node_modules/undici-types/README.md +6 -0
  196. package/.cache/typescript/5.3/node_modules/undici-types/agent.d.ts +31 -0
  197. package/.cache/typescript/5.3/node_modules/undici-types/api.d.ts +43 -0
  198. package/.cache/typescript/5.3/node_modules/undici-types/balanced-pool.d.ts +18 -0
  199. package/.cache/typescript/5.3/node_modules/undici-types/cache.d.ts +36 -0
  200. package/.cache/typescript/5.3/node_modules/undici-types/client.d.ts +97 -0
  201. package/.cache/typescript/5.3/node_modules/undici-types/connector.d.ts +34 -0
  202. package/.cache/typescript/5.3/node_modules/undici-types/content-type.d.ts +21 -0
  203. package/.cache/typescript/5.3/node_modules/undici-types/cookies.d.ts +28 -0
  204. package/.cache/typescript/5.3/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  205. package/.cache/typescript/5.3/node_modules/undici-types/dispatcher.d.ts +241 -0
  206. package/.cache/typescript/5.3/node_modules/undici-types/errors.d.ts +128 -0
  207. package/.cache/typescript/5.3/node_modules/undici-types/fetch.d.ts +209 -0
  208. package/.cache/typescript/5.3/node_modules/undici-types/file.d.ts +39 -0
  209. package/.cache/typescript/5.3/node_modules/undici-types/filereader.d.ts +54 -0
  210. package/.cache/typescript/5.3/node_modules/undici-types/formdata.d.ts +108 -0
  211. package/.cache/typescript/5.3/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  212. package/.cache/typescript/5.3/node_modules/undici-types/global-origin.d.ts +7 -0
  213. package/.cache/typescript/5.3/node_modules/undici-types/handlers.d.ts +9 -0
  214. package/.cache/typescript/5.3/node_modules/undici-types/header.d.ts +4 -0
  215. package/.cache/typescript/5.3/node_modules/undici-types/index.d.ts +63 -0
  216. package/.cache/typescript/5.3/node_modules/undici-types/interceptors.d.ts +5 -0
  217. package/.cache/typescript/5.3/node_modules/undici-types/mock-agent.d.ts +50 -0
  218. package/.cache/typescript/5.3/node_modules/undici-types/mock-client.d.ts +25 -0
  219. package/.cache/typescript/5.3/node_modules/undici-types/mock-errors.d.ts +12 -0
  220. package/.cache/typescript/5.3/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  221. package/.cache/typescript/5.3/node_modules/undici-types/mock-pool.d.ts +25 -0
  222. package/.cache/typescript/5.3/node_modules/undici-types/package.json +55 -0
  223. package/.cache/typescript/5.3/node_modules/undici-types/patch.d.ts +71 -0
  224. package/.cache/typescript/5.3/node_modules/undici-types/pool-stats.d.ts +19 -0
  225. package/.cache/typescript/5.3/node_modules/undici-types/pool.d.ts +28 -0
  226. package/.cache/typescript/5.3/node_modules/undici-types/proxy-agent.d.ts +30 -0
  227. package/.cache/typescript/5.3/node_modules/undici-types/readable.d.ts +61 -0
  228. package/.cache/typescript/5.3/node_modules/undici-types/webidl.d.ts +220 -0
  229. package/.cache/typescript/5.3/node_modules/undici-types/websocket.d.ts +131 -0
  230. package/.cache/typescript/5.3/package-lock.json +149 -0
  231. package/.cache/typescript/5.3/package.json +1 -0
  232. package/.replit +1 -0
  233. package/index.js +2 -0
  234. package/leiamnash/edit.js +59 -0
  235. package/leiamnash/token.js +112 -0
  236. package/package.json +1 -1
  237. package/utils.js +18 -2
  238. package/.cache/replit/__replit_disk_meta.json +0 -1
  239. package/replit.nix +0 -6
@@ -0,0 +1,2183 @@
1
+ /**
2
+ * The `node:util` module supports the needs of Node.js internal APIs. Many of the
3
+ * utilities are useful for application and module developers as well. To access
4
+ * it:
5
+ *
6
+ * ```js
7
+ * const util = require('node:util');
8
+ * ```
9
+ * @see [source](https://github.com/nodejs/node/blob/v20.2.0/lib/util.js)
10
+ */
11
+ declare module "util" {
12
+ import * as types from "node:util/types";
13
+ export interface InspectOptions {
14
+ /**
15
+ * If `true`, object's non-enumerable symbols and properties are included in the formatted result.
16
+ * `WeakMap` and `WeakSet` entries are also included as well as user defined prototype properties (excluding method properties).
17
+ * @default false
18
+ */
19
+ showHidden?: boolean | undefined;
20
+ /**
21
+ * Specifies the number of times to recurse while formatting object.
22
+ * This is useful for inspecting large objects.
23
+ * To recurse up to the maximum call stack size pass `Infinity` or `null`.
24
+ * @default 2
25
+ */
26
+ depth?: number | null | undefined;
27
+ /**
28
+ * If `true`, the output is styled with ANSI color codes. Colors are customizable.
29
+ */
30
+ colors?: boolean | undefined;
31
+ /**
32
+ * If `false`, `[util.inspect.custom](depth, opts, inspect)` functions are not invoked.
33
+ * @default true
34
+ */
35
+ customInspect?: boolean | undefined;
36
+ /**
37
+ * If `true`, `Proxy` inspection includes the target and handler objects.
38
+ * @default false
39
+ */
40
+ showProxy?: boolean | undefined;
41
+ /**
42
+ * Specifies the maximum number of `Array`, `TypedArray`, `WeakMap`, and `WeakSet` elements
43
+ * to include when formatting. Set to `null` or `Infinity` to show all elements.
44
+ * Set to `0` or negative to show no elements.
45
+ * @default 100
46
+ */
47
+ maxArrayLength?: number | null | undefined;
48
+ /**
49
+ * Specifies the maximum number of characters to
50
+ * include when formatting. Set to `null` or `Infinity` to show all elements.
51
+ * Set to `0` or negative to show no characters.
52
+ * @default 10000
53
+ */
54
+ maxStringLength?: number | null | undefined;
55
+ /**
56
+ * The length at which input values are split across multiple lines.
57
+ * Set to `Infinity` to format the input as a single line
58
+ * (in combination with `compact` set to `true` or any number >= `1`).
59
+ * @default 80
60
+ */
61
+ breakLength?: number | undefined;
62
+ /**
63
+ * Setting this to `false` causes each object key
64
+ * to be displayed on a new line. It will also add new lines to text that is
65
+ * longer than `breakLength`. If set to a number, the most `n` inner elements
66
+ * are united on a single line as long as all properties fit into
67
+ * `breakLength`. Short array elements are also grouped together. Note that no
68
+ * text will be reduced below 16 characters, no matter the `breakLength` size.
69
+ * For more information, see the example below.
70
+ * @default true
71
+ */
72
+ compact?: boolean | number | undefined;
73
+ /**
74
+ * If set to `true` or a function, all properties of an object, and `Set` and `Map`
75
+ * entries are sorted in the resulting string.
76
+ * If set to `true` the default sort is used.
77
+ * If set to a function, it is used as a compare function.
78
+ */
79
+ sorted?: boolean | ((a: string, b: string) => number) | undefined;
80
+ /**
81
+ * If set to `true`, getters are going to be
82
+ * inspected as well. If set to `'get'` only getters without setter are going
83
+ * to be inspected. If set to `'set'` only getters having a corresponding
84
+ * setter are going to be inspected. This might cause side effects depending on
85
+ * the getter function.
86
+ * @default false
87
+ */
88
+ getters?: "get" | "set" | boolean | undefined;
89
+ /**
90
+ * If set to `true`, an underscore is used to separate every three digits in all bigints and numbers.
91
+ * @default false
92
+ */
93
+ numericSeparator?: boolean | undefined;
94
+ }
95
+ export type Style =
96
+ | "special"
97
+ | "number"
98
+ | "bigint"
99
+ | "boolean"
100
+ | "undefined"
101
+ | "null"
102
+ | "string"
103
+ | "symbol"
104
+ | "date"
105
+ | "regexp"
106
+ | "module";
107
+ export type CustomInspectFunction = (depth: number, options: InspectOptionsStylized) => any; // TODO: , inspect: inspect
108
+ export interface InspectOptionsStylized extends InspectOptions {
109
+ stylize(text: string, styleType: Style): string;
110
+ }
111
+ /**
112
+ * The `util.format()` method returns a formatted string using the first argument
113
+ * as a `printf`\-like format string which can contain zero or more format
114
+ * specifiers. Each specifier is replaced with the converted value from the
115
+ * corresponding argument. Supported specifiers are:
116
+ *
117
+ * If a specifier does not have a corresponding argument, it is not replaced:
118
+ *
119
+ * ```js
120
+ * util.format('%s:%s', 'foo');
121
+ * // Returns: 'foo:%s'
122
+ * ```
123
+ *
124
+ * Values that are not part of the format string are formatted using`util.inspect()` if their type is not `string`.
125
+ *
126
+ * If there are more arguments passed to the `util.format()` method than the
127
+ * number of specifiers, the extra arguments are concatenated to the returned
128
+ * string, separated by spaces:
129
+ *
130
+ * ```js
131
+ * util.format('%s:%s', 'foo', 'bar', 'baz');
132
+ * // Returns: 'foo:bar baz'
133
+ * ```
134
+ *
135
+ * If the first argument does not contain a valid format specifier, `util.format()`returns a string that is the concatenation of all arguments separated by spaces:
136
+ *
137
+ * ```js
138
+ * util.format(1, 2, 3);
139
+ * // Returns: '1 2 3'
140
+ * ```
141
+ *
142
+ * If only one argument is passed to `util.format()`, it is returned as it is
143
+ * without any formatting:
144
+ *
145
+ * ```js
146
+ * util.format('%% %s');
147
+ * // Returns: '%% %s'
148
+ * ```
149
+ *
150
+ * `util.format()` is a synchronous method that is intended as a debugging tool.
151
+ * Some input values can have a significant performance overhead that can block the
152
+ * event loop. Use this function with care and never in a hot code path.
153
+ * @since v0.5.3
154
+ * @param format A `printf`-like format string.
155
+ */
156
+ export function format(format?: any, ...param: any[]): string;
157
+ /**
158
+ * This function is identical to {@link format}, except in that it takes
159
+ * an `inspectOptions` argument which specifies options that are passed along to {@link inspect}.
160
+ *
161
+ * ```js
162
+ * util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 });
163
+ * // Returns 'See object { foo: 42 }', where `42` is colored as a number
164
+ * // when printed to a terminal.
165
+ * ```
166
+ * @since v10.0.0
167
+ */
168
+ export function formatWithOptions(inspectOptions: InspectOptions, format?: any, ...param: any[]): string;
169
+ /**
170
+ * Returns the string name for a numeric error code that comes from a Node.js API.
171
+ * The mapping between error codes and error names is platform-dependent.
172
+ * See `Common System Errors` for the names of common errors.
173
+ *
174
+ * ```js
175
+ * fs.access('file/that/does/not/exist', (err) => {
176
+ * const name = util.getSystemErrorName(err.errno);
177
+ * console.error(name); // ENOENT
178
+ * });
179
+ * ```
180
+ * @since v9.7.0
181
+ */
182
+ export function getSystemErrorName(err: number): string;
183
+ /**
184
+ * Returns a Map of all system error codes available from the Node.js API.
185
+ * The mapping between error codes and error names is platform-dependent.
186
+ * See `Common System Errors` for the names of common errors.
187
+ *
188
+ * ```js
189
+ * fs.access('file/that/does/not/exist', (err) => {
190
+ * const errorMap = util.getSystemErrorMap();
191
+ * const name = errorMap.get(err.errno);
192
+ * console.error(name); // ENOENT
193
+ * });
194
+ * ```
195
+ * @since v16.0.0, v14.17.0
196
+ */
197
+ export function getSystemErrorMap(): Map<number, [string, string]>;
198
+ /**
199
+ * The `util.log()` method prints the given `string` to `stdout` with an included
200
+ * timestamp.
201
+ *
202
+ * ```js
203
+ * const util = require('node:util');
204
+ *
205
+ * util.log('Timestamped message.');
206
+ * ```
207
+ * @since v0.3.0
208
+ * @deprecated Since v6.0.0 - Use a third party module instead.
209
+ */
210
+ export function log(string: string): void;
211
+ /**
212
+ * Returns the `string` after replacing any surrogate code points
213
+ * (or equivalently, any unpaired surrogate code units) with the
214
+ * Unicode "replacement character" U+FFFD.
215
+ * @since v16.8.0, v14.18.0
216
+ */
217
+ export function toUSVString(string: string): string;
218
+ /**
219
+ * Creates and returns an `AbortController` instance whose `AbortSignal` is marked
220
+ * as transferable and can be used with `structuredClone()` or `postMessage()`.
221
+ * @since v18.11.0
222
+ * @experimental
223
+ * @returns A transferable AbortController
224
+ */
225
+ export function transferableAbortController(): AbortController;
226
+ /**
227
+ * Marks the given `AbortSignal` as transferable so that it can be used with`structuredClone()` and `postMessage()`.
228
+ *
229
+ * ```js
230
+ * const signal = transferableAbortSignal(AbortSignal.timeout(100));
231
+ * const channel = new MessageChannel();
232
+ * channel.port2.postMessage(signal, [signal]);
233
+ * ```
234
+ * @since v18.11.0
235
+ * @experimental
236
+ * @param signal The AbortSignal
237
+ * @returns The same AbortSignal
238
+ */
239
+ export function transferableAbortSignal(signal: AbortSignal): AbortSignal;
240
+ /**
241
+ * Listens to abort event on the provided `signal` and
242
+ * returns a promise that is fulfilled when the `signal` is
243
+ * aborted. If the passed `resource` is garbage collected before the `signal` is
244
+ * aborted, the returned promise shall remain pending indefinitely.
245
+ *
246
+ * ```js
247
+ * import { aborted } from 'node:util';
248
+ *
249
+ * const dependent = obtainSomethingAbortable();
250
+ *
251
+ * aborted(dependent.signal, dependent).then(() => {
252
+ * // Do something when dependent is aborted.
253
+ * });
254
+ *
255
+ * dependent.on('event', () => {
256
+ * dependent.abort();
257
+ * });
258
+ * ```
259
+ * @since v19.7.0
260
+ * @experimental
261
+ * @param resource Any non-null entity, reference to which is held weakly.
262
+ */
263
+ export function aborted(signal: AbortSignal, resource: any): Promise<void>;
264
+ /**
265
+ * The `util.inspect()` method returns a string representation of `object` that is
266
+ * intended for debugging. The output of `util.inspect` may change at any time
267
+ * and should not be depended upon programmatically. Additional `options` may be
268
+ * passed that alter the result.`util.inspect()` will use the constructor's name and/or `@@toStringTag` to make
269
+ * an identifiable tag for an inspected value.
270
+ *
271
+ * ```js
272
+ * class Foo {
273
+ * get [Symbol.toStringTag]() {
274
+ * return 'bar';
275
+ * }
276
+ * }
277
+ *
278
+ * class Bar {}
279
+ *
280
+ * const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } });
281
+ *
282
+ * util.inspect(new Foo()); // 'Foo [bar] {}'
283
+ * util.inspect(new Bar()); // 'Bar {}'
284
+ * util.inspect(baz); // '[foo] {}'
285
+ * ```
286
+ *
287
+ * Circular references point to their anchor by using a reference index:
288
+ *
289
+ * ```js
290
+ * const { inspect } = require('node:util');
291
+ *
292
+ * const obj = {};
293
+ * obj.a = [obj];
294
+ * obj.b = {};
295
+ * obj.b.inner = obj.b;
296
+ * obj.b.obj = obj;
297
+ *
298
+ * console.log(inspect(obj));
299
+ * // <ref *1> {
300
+ * // a: [ [Circular *1] ],
301
+ * // b: <ref *2> { inner: [Circular *2], obj: [Circular *1] }
302
+ * // }
303
+ * ```
304
+ *
305
+ * The following example inspects all properties of the `util` object:
306
+ *
307
+ * ```js
308
+ * const util = require('node:util');
309
+ *
310
+ * console.log(util.inspect(util, { showHidden: true, depth: null }));
311
+ * ```
312
+ *
313
+ * The following example highlights the effect of the `compact` option:
314
+ *
315
+ * ```js
316
+ * const util = require('node:util');
317
+ *
318
+ * const o = {
319
+ * a: [1, 2, [[
320
+ * 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' +
321
+ * 'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.',
322
+ * 'test',
323
+ * 'foo']], 4],
324
+ * b: new Map([['za', 1], ['zb', 'test']]),
325
+ * };
326
+ * console.log(util.inspect(o, { compact: true, depth: 5, breakLength: 80 }));
327
+ *
328
+ * // { a:
329
+ * // [ 1,
330
+ * // 2,
331
+ * // [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line
332
+ * // 'test',
333
+ * // 'foo' ] ],
334
+ * // 4 ],
335
+ * // b: Map(2) { 'za' => 1, 'zb' => 'test' } }
336
+ *
337
+ * // Setting `compact` to false or an integer creates more reader friendly output.
338
+ * console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 }));
339
+ *
340
+ * // {
341
+ * // a: [
342
+ * // 1,
343
+ * // 2,
344
+ * // [
345
+ * // [
346
+ * // 'Lorem ipsum dolor sit amet,\n' +
347
+ * // 'consectetur adipiscing elit, sed do eiusmod \n' +
348
+ * // 'tempor incididunt ut labore et dolore magna aliqua.',
349
+ * // 'test',
350
+ * // 'foo'
351
+ * // ]
352
+ * // ],
353
+ * // 4
354
+ * // ],
355
+ * // b: Map(2) {
356
+ * // 'za' => 1,
357
+ * // 'zb' => 'test'
358
+ * // }
359
+ * // }
360
+ *
361
+ * // Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a
362
+ * // single line.
363
+ * ```
364
+ *
365
+ * The `showHidden` option allows [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) and
366
+ * [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries to be
367
+ * inspected. If there are more entries than `maxArrayLength`, there is no
368
+ * guarantee which entries are displayed. That means retrieving the same [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries twice may
369
+ * result in different output. Furthermore, entries
370
+ * with no remaining strong references may be garbage collected at any time.
371
+ *
372
+ * ```js
373
+ * const { inspect } = require('node:util');
374
+ *
375
+ * const obj = { a: 1 };
376
+ * const obj2 = { b: 2 };
377
+ * const weakSet = new WeakSet([obj, obj2]);
378
+ *
379
+ * console.log(inspect(weakSet, { showHidden: true }));
380
+ * // WeakSet { { a: 1 }, { b: 2 } }
381
+ * ```
382
+ *
383
+ * The `sorted` option ensures that an object's property insertion order does not
384
+ * impact the result of `util.inspect()`.
385
+ *
386
+ * ```js
387
+ * const { inspect } = require('node:util');
388
+ * const assert = require('node:assert');
389
+ *
390
+ * const o1 = {
391
+ * b: [2, 3, 1],
392
+ * a: '`a` comes before `b`',
393
+ * c: new Set([2, 3, 1]),
394
+ * };
395
+ * console.log(inspect(o1, { sorted: true }));
396
+ * // { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } }
397
+ * console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) }));
398
+ * // { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' }
399
+ *
400
+ * const o2 = {
401
+ * c: new Set([2, 1, 3]),
402
+ * a: '`a` comes before `b`',
403
+ * b: [2, 3, 1],
404
+ * };
405
+ * assert.strict.equal(
406
+ * inspect(o1, { sorted: true }),
407
+ * inspect(o2, { sorted: true }),
408
+ * );
409
+ * ```
410
+ *
411
+ * The `numericSeparator` option adds an underscore every three digits to all
412
+ * numbers.
413
+ *
414
+ * ```js
415
+ * const { inspect } = require('node:util');
416
+ *
417
+ * const thousand = 1_000;
418
+ * const million = 1_000_000;
419
+ * const bigNumber = 123_456_789n;
420
+ * const bigDecimal = 1_234.123_45;
421
+ *
422
+ * console.log(inspect(thousand, { numericSeparator: true }));
423
+ * // 1_000
424
+ * console.log(inspect(million, { numericSeparator: true }));
425
+ * // 1_000_000
426
+ * console.log(inspect(bigNumber, { numericSeparator: true }));
427
+ * // 123_456_789n
428
+ * console.log(inspect(bigDecimal, { numericSeparator: true }));
429
+ * // 1_234.123_45
430
+ * ```
431
+ *
432
+ * `util.inspect()` is a synchronous method intended for debugging. Its maximum
433
+ * output length is approximately 128 MiB. Inputs that result in longer output will
434
+ * be truncated.
435
+ * @since v0.3.0
436
+ * @param object Any JavaScript primitive or `Object`.
437
+ * @return The representation of `object`.
438
+ */
439
+ export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string;
440
+ export function inspect(object: any, options?: InspectOptions): string;
441
+ export namespace inspect {
442
+ let colors: NodeJS.Dict<[number, number]>;
443
+ let styles: {
444
+ [K in Style]: string;
445
+ };
446
+ let defaultOptions: InspectOptions;
447
+ /**
448
+ * Allows changing inspect settings from the repl.
449
+ */
450
+ let replDefaults: InspectOptions;
451
+ /**
452
+ * That can be used to declare custom inspect functions.
453
+ */
454
+ const custom: unique symbol;
455
+ }
456
+ /**
457
+ * Alias for [`Array.isArray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray).
458
+ *
459
+ * Returns `true` if the given `object` is an `Array`. Otherwise, returns `false`.
460
+ *
461
+ * ```js
462
+ * const util = require('node:util');
463
+ *
464
+ * util.isArray([]);
465
+ * // Returns: true
466
+ * util.isArray(new Array());
467
+ * // Returns: true
468
+ * util.isArray({});
469
+ * // Returns: false
470
+ * ```
471
+ * @since v0.6.0
472
+ * @deprecated Since v4.0.0 - Use `isArray` instead.
473
+ */
474
+ export function isArray(object: unknown): object is unknown[];
475
+ /**
476
+ * Returns `true` if the given `object` is a `RegExp`. Otherwise, returns `false`.
477
+ *
478
+ * ```js
479
+ * const util = require('node:util');
480
+ *
481
+ * util.isRegExp(/some regexp/);
482
+ * // Returns: true
483
+ * util.isRegExp(new RegExp('another regexp'));
484
+ * // Returns: true
485
+ * util.isRegExp({});
486
+ * // Returns: false
487
+ * ```
488
+ * @since v0.6.0
489
+ * @deprecated Since v4.0.0 - Deprecated
490
+ */
491
+ export function isRegExp(object: unknown): object is RegExp;
492
+ /**
493
+ * Returns `true` if the given `object` is a `Date`. Otherwise, returns `false`.
494
+ *
495
+ * ```js
496
+ * const util = require('node:util');
497
+ *
498
+ * util.isDate(new Date());
499
+ * // Returns: true
500
+ * util.isDate(Date());
501
+ * // false (without 'new' returns a String)
502
+ * util.isDate({});
503
+ * // Returns: false
504
+ * ```
505
+ * @since v0.6.0
506
+ * @deprecated Since v4.0.0 - Use {@link types.isDate} instead.
507
+ */
508
+ export function isDate(object: unknown): object is Date;
509
+ /**
510
+ * Returns `true` if the given `object` is an `Error`. Otherwise, returns`false`.
511
+ *
512
+ * ```js
513
+ * const util = require('node:util');
514
+ *
515
+ * util.isError(new Error());
516
+ * // Returns: true
517
+ * util.isError(new TypeError());
518
+ * // Returns: true
519
+ * util.isError({ name: 'Error', message: 'an error occurred' });
520
+ * // Returns: false
521
+ * ```
522
+ *
523
+ * This method relies on `Object.prototype.toString()` behavior. It is
524
+ * possible to obtain an incorrect result when the `object` argument manipulates`@@toStringTag`.
525
+ *
526
+ * ```js
527
+ * const util = require('node:util');
528
+ * const obj = { name: 'Error', message: 'an error occurred' };
529
+ *
530
+ * util.isError(obj);
531
+ * // Returns: false
532
+ * obj[Symbol.toStringTag] = 'Error';
533
+ * util.isError(obj);
534
+ * // Returns: true
535
+ * ```
536
+ * @since v0.6.0
537
+ * @deprecated Since v4.0.0 - Use {@link types.isNativeError} instead.
538
+ */
539
+ export function isError(object: unknown): object is Error;
540
+ /**
541
+ * Usage of `util.inherits()` is discouraged. Please use the ES6 `class` and`extends` keywords to get language level inheritance support. Also note
542
+ * that the two styles are [semantically incompatible](https://github.com/nodejs/node/issues/4179).
543
+ *
544
+ * Inherit the prototype methods from one [constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor) into another. The
545
+ * prototype of `constructor` will be set to a new object created from`superConstructor`.
546
+ *
547
+ * This mainly adds some input validation on top of`Object.setPrototypeOf(constructor.prototype, superConstructor.prototype)`.
548
+ * As an additional convenience, `superConstructor` will be accessible
549
+ * through the `constructor.super_` property.
550
+ *
551
+ * ```js
552
+ * const util = require('node:util');
553
+ * const EventEmitter = require('node:events');
554
+ *
555
+ * function MyStream() {
556
+ * EventEmitter.call(this);
557
+ * }
558
+ *
559
+ * util.inherits(MyStream, EventEmitter);
560
+ *
561
+ * MyStream.prototype.write = function(data) {
562
+ * this.emit('data', data);
563
+ * };
564
+ *
565
+ * const stream = new MyStream();
566
+ *
567
+ * console.log(stream instanceof EventEmitter); // true
568
+ * console.log(MyStream.super_ === EventEmitter); // true
569
+ *
570
+ * stream.on('data', (data) => {
571
+ * console.log(`Received data: "${data}"`);
572
+ * });
573
+ * stream.write('It works!'); // Received data: "It works!"
574
+ * ```
575
+ *
576
+ * ES6 example using `class` and `extends`:
577
+ *
578
+ * ```js
579
+ * const EventEmitter = require('node:events');
580
+ *
581
+ * class MyStream extends EventEmitter {
582
+ * write(data) {
583
+ * this.emit('data', data);
584
+ * }
585
+ * }
586
+ *
587
+ * const stream = new MyStream();
588
+ *
589
+ * stream.on('data', (data) => {
590
+ * console.log(`Received data: "${data}"`);
591
+ * });
592
+ * stream.write('With ES6');
593
+ * ```
594
+ * @since v0.3.0
595
+ * @legacy Use ES2015 class syntax and `extends` keyword instead.
596
+ */
597
+ export function inherits(constructor: unknown, superConstructor: unknown): void;
598
+ export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void;
599
+ export interface DebugLogger extends DebugLoggerFunction {
600
+ enabled: boolean;
601
+ }
602
+ /**
603
+ * The `util.debuglog()` method is used to create a function that conditionally
604
+ * writes debug messages to `stderr` based on the existence of the `NODE_DEBUG`environment variable. If the `section` name appears within the value of that
605
+ * environment variable, then the returned function operates similar to `console.error()`. If not, then the returned function is a no-op.
606
+ *
607
+ * ```js
608
+ * const util = require('node:util');
609
+ * const debuglog = util.debuglog('foo');
610
+ *
611
+ * debuglog('hello from foo [%d]', 123);
612
+ * ```
613
+ *
614
+ * If this program is run with `NODE_DEBUG=foo` in the environment, then
615
+ * it will output something like:
616
+ *
617
+ * ```console
618
+ * FOO 3245: hello from foo [123]
619
+ * ```
620
+ *
621
+ * where `3245` is the process id. If it is not run with that
622
+ * environment variable set, then it will not print anything.
623
+ *
624
+ * The `section` supports wildcard also:
625
+ *
626
+ * ```js
627
+ * const util = require('node:util');
628
+ * const debuglog = util.debuglog('foo-bar');
629
+ *
630
+ * debuglog('hi there, it\'s foo-bar [%d]', 2333);
631
+ * ```
632
+ *
633
+ * if it is run with `NODE_DEBUG=foo*` in the environment, then it will output
634
+ * something like:
635
+ *
636
+ * ```console
637
+ * FOO-BAR 3257: hi there, it's foo-bar [2333]
638
+ * ```
639
+ *
640
+ * Multiple comma-separated `section` names may be specified in the `NODE_DEBUG`environment variable: `NODE_DEBUG=fs,net,tls`.
641
+ *
642
+ * The optional `callback` argument can be used to replace the logging function
643
+ * with a different function that doesn't have any initialization or
644
+ * unnecessary wrapping.
645
+ *
646
+ * ```js
647
+ * const util = require('node:util');
648
+ * let debuglog = util.debuglog('internals', (debug) => {
649
+ * // Replace with a logging function that optimizes out
650
+ * // testing if the section is enabled
651
+ * debuglog = debug;
652
+ * });
653
+ * ```
654
+ * @since v0.11.3
655
+ * @param section A string identifying the portion of the application for which the `debuglog` function is being created.
656
+ * @param callback A callback invoked the first time the logging function is called with a function argument that is a more optimized logging function.
657
+ * @return The logging function
658
+ */
659
+ export function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger;
660
+ export const debug: typeof debuglog;
661
+ /**
662
+ * Returns `true` if the given `object` is a `Boolean`. Otherwise, returns `false`.
663
+ *
664
+ * ```js
665
+ * const util = require('node:util');
666
+ *
667
+ * util.isBoolean(1);
668
+ * // Returns: false
669
+ * util.isBoolean(0);
670
+ * // Returns: false
671
+ * util.isBoolean(false);
672
+ * // Returns: true
673
+ * ```
674
+ * @since v0.11.5
675
+ * @deprecated Since v4.0.0 - Use `typeof value === 'boolean'` instead.
676
+ */
677
+ export function isBoolean(object: unknown): object is boolean;
678
+ /**
679
+ * Returns `true` if the given `object` is a `Buffer`. Otherwise, returns `false`.
680
+ *
681
+ * ```js
682
+ * const util = require('node:util');
683
+ *
684
+ * util.isBuffer({ length: 0 });
685
+ * // Returns: false
686
+ * util.isBuffer([]);
687
+ * // Returns: false
688
+ * util.isBuffer(Buffer.from('hello world'));
689
+ * // Returns: true
690
+ * ```
691
+ * @since v0.11.5
692
+ * @deprecated Since v4.0.0 - Use `isBuffer` instead.
693
+ */
694
+ export function isBuffer(object: unknown): object is Buffer;
695
+ /**
696
+ * Returns `true` if the given `object` is a `Function`. Otherwise, returns`false`.
697
+ *
698
+ * ```js
699
+ * const util = require('node:util');
700
+ *
701
+ * function Foo() {}
702
+ * const Bar = () => {};
703
+ *
704
+ * util.isFunction({});
705
+ * // Returns: false
706
+ * util.isFunction(Foo);
707
+ * // Returns: true
708
+ * util.isFunction(Bar);
709
+ * // Returns: true
710
+ * ```
711
+ * @since v0.11.5
712
+ * @deprecated Since v4.0.0 - Use `typeof value === 'function'` instead.
713
+ */
714
+ export function isFunction(object: unknown): boolean;
715
+ /**
716
+ * Returns `true` if the given `object` is strictly `null`. Otherwise, returns`false`.
717
+ *
718
+ * ```js
719
+ * const util = require('node:util');
720
+ *
721
+ * util.isNull(0);
722
+ * // Returns: false
723
+ * util.isNull(undefined);
724
+ * // Returns: false
725
+ * util.isNull(null);
726
+ * // Returns: true
727
+ * ```
728
+ * @since v0.11.5
729
+ * @deprecated Since v4.0.0 - Use `value === null` instead.
730
+ */
731
+ export function isNull(object: unknown): object is null;
732
+ /**
733
+ * Returns `true` if the given `object` is `null` or `undefined`. Otherwise,
734
+ * returns `false`.
735
+ *
736
+ * ```js
737
+ * const util = require('node:util');
738
+ *
739
+ * util.isNullOrUndefined(0);
740
+ * // Returns: false
741
+ * util.isNullOrUndefined(undefined);
742
+ * // Returns: true
743
+ * util.isNullOrUndefined(null);
744
+ * // Returns: true
745
+ * ```
746
+ * @since v0.11.5
747
+ * @deprecated Since v4.0.0 - Use `value === undefined || value === null` instead.
748
+ */
749
+ export function isNullOrUndefined(object: unknown): object is null | undefined;
750
+ /**
751
+ * Returns `true` if the given `object` is a `Number`. Otherwise, returns `false`.
752
+ *
753
+ * ```js
754
+ * const util = require('node:util');
755
+ *
756
+ * util.isNumber(false);
757
+ * // Returns: false
758
+ * util.isNumber(Infinity);
759
+ * // Returns: true
760
+ * util.isNumber(0);
761
+ * // Returns: true
762
+ * util.isNumber(NaN);
763
+ * // Returns: true
764
+ * ```
765
+ * @since v0.11.5
766
+ * @deprecated Since v4.0.0 - Use `typeof value === 'number'` instead.
767
+ */
768
+ export function isNumber(object: unknown): object is number;
769
+ /**
770
+ * Returns `true` if the given `object` is strictly an `Object`**and** not a`Function` (even though functions are objects in JavaScript).
771
+ * Otherwise, returns `false`.
772
+ *
773
+ * ```js
774
+ * const util = require('node:util');
775
+ *
776
+ * util.isObject(5);
777
+ * // Returns: false
778
+ * util.isObject(null);
779
+ * // Returns: false
780
+ * util.isObject({});
781
+ * // Returns: true
782
+ * util.isObject(() => {});
783
+ * // Returns: false
784
+ * ```
785
+ * @since v0.11.5
786
+ * @deprecated Since v4.0.0 - Use `value !== null && typeof value === 'object'` instead.
787
+ */
788
+ export function isObject(object: unknown): boolean;
789
+ /**
790
+ * Returns `true` if the given `object` is a primitive type. Otherwise, returns`false`.
791
+ *
792
+ * ```js
793
+ * const util = require('node:util');
794
+ *
795
+ * util.isPrimitive(5);
796
+ * // Returns: true
797
+ * util.isPrimitive('foo');
798
+ * // Returns: true
799
+ * util.isPrimitive(false);
800
+ * // Returns: true
801
+ * util.isPrimitive(null);
802
+ * // Returns: true
803
+ * util.isPrimitive(undefined);
804
+ * // Returns: true
805
+ * util.isPrimitive({});
806
+ * // Returns: false
807
+ * util.isPrimitive(() => {});
808
+ * // Returns: false
809
+ * util.isPrimitive(/^$/);
810
+ * // Returns: false
811
+ * util.isPrimitive(new Date());
812
+ * // Returns: false
813
+ * ```
814
+ * @since v0.11.5
815
+ * @deprecated Since v4.0.0 - Use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead.
816
+ */
817
+ export function isPrimitive(object: unknown): boolean;
818
+ /**
819
+ * Returns `true` if the given `object` is a `string`. Otherwise, returns `false`.
820
+ *
821
+ * ```js
822
+ * const util = require('node:util');
823
+ *
824
+ * util.isString('');
825
+ * // Returns: true
826
+ * util.isString('foo');
827
+ * // Returns: true
828
+ * util.isString(String('foo'));
829
+ * // Returns: true
830
+ * util.isString(5);
831
+ * // Returns: false
832
+ * ```
833
+ * @since v0.11.5
834
+ * @deprecated Since v4.0.0 - Use `typeof value === 'string'` instead.
835
+ */
836
+ export function isString(object: unknown): object is string;
837
+ /**
838
+ * Returns `true` if the given `object` is a `Symbol`. Otherwise, returns `false`.
839
+ *
840
+ * ```js
841
+ * const util = require('node:util');
842
+ *
843
+ * util.isSymbol(5);
844
+ * // Returns: false
845
+ * util.isSymbol('foo');
846
+ * // Returns: false
847
+ * util.isSymbol(Symbol('foo'));
848
+ * // Returns: true
849
+ * ```
850
+ * @since v0.11.5
851
+ * @deprecated Since v4.0.0 - Use `typeof value === 'symbol'` instead.
852
+ */
853
+ export function isSymbol(object: unknown): object is symbol;
854
+ /**
855
+ * Returns `true` if the given `object` is `undefined`. Otherwise, returns `false`.
856
+ *
857
+ * ```js
858
+ * const util = require('node:util');
859
+ *
860
+ * const foo = undefined;
861
+ * util.isUndefined(5);
862
+ * // Returns: false
863
+ * util.isUndefined(foo);
864
+ * // Returns: true
865
+ * util.isUndefined(null);
866
+ * // Returns: false
867
+ * ```
868
+ * @since v0.11.5
869
+ * @deprecated Since v4.0.0 - Use `value === undefined` instead.
870
+ */
871
+ export function isUndefined(object: unknown): object is undefined;
872
+ /**
873
+ * The `util.deprecate()` method wraps `fn` (which may be a function or class) in
874
+ * such a way that it is marked as deprecated.
875
+ *
876
+ * ```js
877
+ * const util = require('node:util');
878
+ *
879
+ * exports.obsoleteFunction = util.deprecate(() => {
880
+ * // Do something here.
881
+ * }, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');
882
+ * ```
883
+ *
884
+ * When called, `util.deprecate()` will return a function that will emit a`DeprecationWarning` using the `'warning'` event. The warning will
885
+ * be emitted and printed to `stderr` the first time the returned function is
886
+ * called. After the warning is emitted, the wrapped function is called without
887
+ * emitting a warning.
888
+ *
889
+ * If the same optional `code` is supplied in multiple calls to `util.deprecate()`,
890
+ * the warning will be emitted only once for that `code`.
891
+ *
892
+ * ```js
893
+ * const util = require('node:util');
894
+ *
895
+ * const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001');
896
+ * const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001');
897
+ * fn1(); // Emits a deprecation warning with code DEP0001
898
+ * fn2(); // Does not emit a deprecation warning because it has the same code
899
+ * ```
900
+ *
901
+ * If either the `--no-deprecation` or `--no-warnings` command-line flags are
902
+ * used, or if the `process.noDeprecation` property is set to `true`_prior_ to
903
+ * the first deprecation warning, the `util.deprecate()` method does nothing.
904
+ *
905
+ * If the `--trace-deprecation` or `--trace-warnings` command-line flags are set,
906
+ * or the `process.traceDeprecation` property is set to `true`, a warning and a
907
+ * stack trace are printed to `stderr` the first time the deprecated function is
908
+ * called.
909
+ *
910
+ * If the `--throw-deprecation` command-line flag is set, or the`process.throwDeprecation` property is set to `true`, then an exception will be
911
+ * thrown when the deprecated function is called.
912
+ *
913
+ * The `--throw-deprecation` command-line flag and `process.throwDeprecation`property take precedence over `--trace-deprecation` and`process.traceDeprecation`.
914
+ * @since v0.8.0
915
+ * @param fn The function that is being deprecated.
916
+ * @param msg A warning message to display when the deprecated function is invoked.
917
+ * @param code A deprecation code. See the `list of deprecated APIs` for a list of codes.
918
+ * @return The deprecated function wrapped to emit a warning.
919
+ */
920
+ export function deprecate<T extends Function>(fn: T, msg: string, code?: string): T;
921
+ /**
922
+ * Returns `true` if there is deep strict equality between `val1` and `val2`.
923
+ * Otherwise, returns `false`.
924
+ *
925
+ * See `assert.deepStrictEqual()` for more information about deep strict
926
+ * equality.
927
+ * @since v9.0.0
928
+ */
929
+ export function isDeepStrictEqual(val1: unknown, val2: unknown): boolean;
930
+ /**
931
+ * Returns `str` with any ANSI escape codes removed.
932
+ *
933
+ * ```js
934
+ * console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m'));
935
+ * // Prints "value"
936
+ * ```
937
+ * @since v16.11.0
938
+ */
939
+ export function stripVTControlCharacters(str: string): string;
940
+ /**
941
+ * Takes an `async` function (or a function that returns a `Promise`) and returns a
942
+ * function following the error-first callback style, i.e. taking
943
+ * an `(err, value) => ...` callback as the last argument. In the callback, the
944
+ * first argument will be the rejection reason (or `null` if the `Promise`resolved), and the second argument will be the resolved value.
945
+ *
946
+ * ```js
947
+ * const util = require('node:util');
948
+ *
949
+ * async function fn() {
950
+ * return 'hello world';
951
+ * }
952
+ * const callbackFunction = util.callbackify(fn);
953
+ *
954
+ * callbackFunction((err, ret) => {
955
+ * if (err) throw err;
956
+ * console.log(ret);
957
+ * });
958
+ * ```
959
+ *
960
+ * Will print:
961
+ *
962
+ * ```text
963
+ * hello world
964
+ * ```
965
+ *
966
+ * The callback is executed asynchronously, and will have a limited stack trace.
967
+ * If the callback throws, the process will emit an `'uncaughtException'` event, and if not handled will exit.
968
+ *
969
+ * Since `null` has a special meaning as the first argument to a callback, if a
970
+ * wrapped function rejects a `Promise` with a falsy value as a reason, the value
971
+ * is wrapped in an `Error` with the original value stored in a field named`reason`.
972
+ *
973
+ * ```js
974
+ * function fn() {
975
+ * return Promise.reject(null);
976
+ * }
977
+ * const callbackFunction = util.callbackify(fn);
978
+ *
979
+ * callbackFunction((err, ret) => {
980
+ * // When the Promise was rejected with `null` it is wrapped with an Error and
981
+ * // the original value is stored in `reason`.
982
+ * err &#x26;&#x26; Object.hasOwn(err, 'reason') &#x26;&#x26; err.reason === null; // true
983
+ * });
984
+ * ```
985
+ * @since v8.2.0
986
+ * @param fn An `async` function
987
+ * @return a callback style function
988
+ */
989
+ export function callbackify(fn: () => Promise<void>): (callback: (err: NodeJS.ErrnoException) => void) => void;
990
+ export function callbackify<TResult>(
991
+ fn: () => Promise<TResult>,
992
+ ): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
993
+ export function callbackify<T1>(
994
+ fn: (arg1: T1) => Promise<void>,
995
+ ): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void;
996
+ export function callbackify<T1, TResult>(
997
+ fn: (arg1: T1) => Promise<TResult>,
998
+ ): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
999
+ export function callbackify<T1, T2>(
1000
+ fn: (arg1: T1, arg2: T2) => Promise<void>,
1001
+ ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void;
1002
+ export function callbackify<T1, T2, TResult>(
1003
+ fn: (arg1: T1, arg2: T2) => Promise<TResult>,
1004
+ ): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
1005
+ export function callbackify<T1, T2, T3>(
1006
+ fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<void>,
1007
+ ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void;
1008
+ export function callbackify<T1, T2, T3, TResult>(
1009
+ fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>,
1010
+ ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void;
1011
+ export function callbackify<T1, T2, T3, T4>(
1012
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>,
1013
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void;
1014
+ export function callbackify<T1, T2, T3, T4, TResult>(
1015
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>,
1016
+ ): (
1017
+ arg1: T1,
1018
+ arg2: T2,
1019
+ arg3: T3,
1020
+ arg4: T4,
1021
+ callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
1022
+ ) => void;
1023
+ export function callbackify<T1, T2, T3, T4, T5>(
1024
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>,
1025
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void;
1026
+ export function callbackify<T1, T2, T3, T4, T5, TResult>(
1027
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>,
1028
+ ): (
1029
+ arg1: T1,
1030
+ arg2: T2,
1031
+ arg3: T3,
1032
+ arg4: T4,
1033
+ arg5: T5,
1034
+ callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
1035
+ ) => void;
1036
+ export function callbackify<T1, T2, T3, T4, T5, T6>(
1037
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>,
1038
+ ): (
1039
+ arg1: T1,
1040
+ arg2: T2,
1041
+ arg3: T3,
1042
+ arg4: T4,
1043
+ arg5: T5,
1044
+ arg6: T6,
1045
+ callback: (err: NodeJS.ErrnoException) => void,
1046
+ ) => void;
1047
+ export function callbackify<T1, T2, T3, T4, T5, T6, TResult>(
1048
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>,
1049
+ ): (
1050
+ arg1: T1,
1051
+ arg2: T2,
1052
+ arg3: T3,
1053
+ arg4: T4,
1054
+ arg5: T5,
1055
+ arg6: T6,
1056
+ callback: (err: NodeJS.ErrnoException | null, result: TResult) => void,
1057
+ ) => void;
1058
+ export interface CustomPromisifyLegacy<TCustom extends Function> extends Function {
1059
+ __promisify__: TCustom;
1060
+ }
1061
+ export interface CustomPromisifySymbol<TCustom extends Function> extends Function {
1062
+ [promisify.custom]: TCustom;
1063
+ }
1064
+ export type CustomPromisify<TCustom extends Function> =
1065
+ | CustomPromisifySymbol<TCustom>
1066
+ | CustomPromisifyLegacy<TCustom>;
1067
+ /**
1068
+ * Takes a function following the common error-first callback style, i.e. taking
1069
+ * an `(err, value) => ...` callback as the last argument, and returns a version
1070
+ * that returns promises.
1071
+ *
1072
+ * ```js
1073
+ * const util = require('node:util');
1074
+ * const fs = require('node:fs');
1075
+ *
1076
+ * const stat = util.promisify(fs.stat);
1077
+ * stat('.').then((stats) => {
1078
+ * // Do something with `stats`
1079
+ * }).catch((error) => {
1080
+ * // Handle the error.
1081
+ * });
1082
+ * ```
1083
+ *
1084
+ * Or, equivalently using `async function`s:
1085
+ *
1086
+ * ```js
1087
+ * const util = require('node:util');
1088
+ * const fs = require('node:fs');
1089
+ *
1090
+ * const stat = util.promisify(fs.stat);
1091
+ *
1092
+ * async function callStat() {
1093
+ * const stats = await stat('.');
1094
+ * console.log(`This directory is owned by ${stats.uid}`);
1095
+ * }
1096
+ *
1097
+ * callStat();
1098
+ * ```
1099
+ *
1100
+ * If there is an `original[util.promisify.custom]` property present, `promisify`will return its value, see `Custom promisified functions`.
1101
+ *
1102
+ * `promisify()` assumes that `original` is a function taking a callback as its
1103
+ * final argument in all cases. If `original` is not a function, `promisify()`will throw an error. If `original` is a function but its last argument is not
1104
+ * an error-first callback, it will still be passed an error-first
1105
+ * callback as its last argument.
1106
+ *
1107
+ * Using `promisify()` on class methods or other methods that use `this` may not
1108
+ * work as expected unless handled specially:
1109
+ *
1110
+ * ```js
1111
+ * const util = require('node:util');
1112
+ *
1113
+ * class Foo {
1114
+ * constructor() {
1115
+ * this.a = 42;
1116
+ * }
1117
+ *
1118
+ * bar(callback) {
1119
+ * callback(null, this.a);
1120
+ * }
1121
+ * }
1122
+ *
1123
+ * const foo = new Foo();
1124
+ *
1125
+ * const naiveBar = util.promisify(foo.bar);
1126
+ * // TypeError: Cannot read property 'a' of undefined
1127
+ * // naiveBar().then(a => console.log(a));
1128
+ *
1129
+ * naiveBar.call(foo).then((a) => console.log(a)); // '42'
1130
+ *
1131
+ * const bindBar = naiveBar.bind(foo);
1132
+ * bindBar().then((a) => console.log(a)); // '42'
1133
+ * ```
1134
+ * @since v8.0.0
1135
+ */
1136
+ export function promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustom;
1137
+ export function promisify<TResult>(
1138
+ fn: (callback: (err: any, result: TResult) => void) => void,
1139
+ ): () => Promise<TResult>;
1140
+ export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>;
1141
+ export function promisify<T1, TResult>(
1142
+ fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void,
1143
+ ): (arg1: T1) => Promise<TResult>;
1144
+ export function promisify<T1>(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise<void>;
1145
+ export function promisify<T1, T2, TResult>(
1146
+ fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void,
1147
+ ): (arg1: T1, arg2: T2) => Promise<TResult>;
1148
+ export function promisify<T1, T2>(
1149
+ fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void,
1150
+ ): (arg1: T1, arg2: T2) => Promise<void>;
1151
+ export function promisify<T1, T2, T3, TResult>(
1152
+ fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void,
1153
+ ): (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>;
1154
+ export function promisify<T1, T2, T3>(
1155
+ fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void,
1156
+ ): (arg1: T1, arg2: T2, arg3: T3) => Promise<void>;
1157
+ export function promisify<T1, T2, T3, T4, TResult>(
1158
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void,
1159
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>;
1160
+ export function promisify<T1, T2, T3, T4>(
1161
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void,
1162
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>;
1163
+ export function promisify<T1, T2, T3, T4, T5, TResult>(
1164
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void,
1165
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>;
1166
+ export function promisify<T1, T2, T3, T4, T5>(
1167
+ fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void,
1168
+ ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>;
1169
+ export function promisify(fn: Function): Function;
1170
+ export namespace promisify {
1171
+ /**
1172
+ * That can be used to declare custom promisified variants of functions.
1173
+ */
1174
+ const custom: unique symbol;
1175
+ }
1176
+ /**
1177
+ * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextDecoder` API.
1178
+ *
1179
+ * ```js
1180
+ * const decoder = new TextDecoder();
1181
+ * const u8arr = new Uint8Array([72, 101, 108, 108, 111]);
1182
+ * console.log(decoder.decode(u8arr)); // Hello
1183
+ * ```
1184
+ * @since v8.3.0
1185
+ */
1186
+ export class TextDecoder {
1187
+ /**
1188
+ * The encoding supported by the `TextDecoder` instance.
1189
+ */
1190
+ readonly encoding: string;
1191
+ /**
1192
+ * The value will be `true` if decoding errors result in a `TypeError` being
1193
+ * thrown.
1194
+ */
1195
+ readonly fatal: boolean;
1196
+ /**
1197
+ * The value will be `true` if the decoding result will include the byte order
1198
+ * mark.
1199
+ */
1200
+ readonly ignoreBOM: boolean;
1201
+ constructor(
1202
+ encoding?: string,
1203
+ options?: {
1204
+ fatal?: boolean | undefined;
1205
+ ignoreBOM?: boolean | undefined;
1206
+ },
1207
+ );
1208
+ /**
1209
+ * Decodes the `input` and returns a string. If `options.stream` is `true`, any
1210
+ * incomplete byte sequences occurring at the end of the `input` are buffered
1211
+ * internally and emitted after the next call to `textDecoder.decode()`.
1212
+ *
1213
+ * If `textDecoder.fatal` is `true`, decoding errors that occur will result in a`TypeError` being thrown.
1214
+ * @param input An `ArrayBuffer`, `DataView`, or `TypedArray` instance containing the encoded data.
1215
+ */
1216
+ decode(
1217
+ input?: NodeJS.ArrayBufferView | ArrayBuffer | null,
1218
+ options?: {
1219
+ stream?: boolean | undefined;
1220
+ },
1221
+ ): string;
1222
+ }
1223
+ export interface EncodeIntoResult {
1224
+ /**
1225
+ * The read Unicode code units of input.
1226
+ */
1227
+ read: number;
1228
+ /**
1229
+ * The written UTF-8 bytes of output.
1230
+ */
1231
+ written: number;
1232
+ }
1233
+ export { types };
1234
+
1235
+ //// TextEncoder/Decoder
1236
+ /**
1237
+ * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextEncoder` API. All
1238
+ * instances of `TextEncoder` only support UTF-8 encoding.
1239
+ *
1240
+ * ```js
1241
+ * const encoder = new TextEncoder();
1242
+ * const uint8array = encoder.encode('this is some data');
1243
+ * ```
1244
+ *
1245
+ * The `TextEncoder` class is also available on the global object.
1246
+ * @since v8.3.0
1247
+ */
1248
+ export class TextEncoder {
1249
+ /**
1250
+ * The encoding supported by the `TextEncoder` instance. Always set to `'utf-8'`.
1251
+ */
1252
+ readonly encoding: string;
1253
+ /**
1254
+ * UTF-8 encodes the `input` string and returns a `Uint8Array` containing the
1255
+ * encoded bytes.
1256
+ * @param [input='an empty string'] The text to encode.
1257
+ */
1258
+ encode(input?: string): Uint8Array;
1259
+ /**
1260
+ * UTF-8 encodes the `src` string to the `dest` Uint8Array and returns an object
1261
+ * containing the read Unicode code units and written UTF-8 bytes.
1262
+ *
1263
+ * ```js
1264
+ * const encoder = new TextEncoder();
1265
+ * const src = 'this is some data';
1266
+ * const dest = new Uint8Array(10);
1267
+ * const { read, written } = encoder.encodeInto(src, dest);
1268
+ * ```
1269
+ * @param src The text to encode.
1270
+ * @param dest The array to hold the encode result.
1271
+ */
1272
+ encodeInto(src: string, dest: Uint8Array): EncodeIntoResult;
1273
+ }
1274
+ import { TextDecoder as _TextDecoder, TextEncoder as _TextEncoder } from "util";
1275
+ global {
1276
+ /**
1277
+ * `TextDecoder` class is a global reference for `require('util').TextDecoder`
1278
+ * https://nodejs.org/api/globals.html#textdecoder
1279
+ * @since v11.0.0
1280
+ */
1281
+ var TextDecoder: typeof globalThis extends {
1282
+ onmessage: any;
1283
+ TextDecoder: infer TextDecoder;
1284
+ } ? TextDecoder
1285
+ : typeof _TextDecoder;
1286
+ /**
1287
+ * `TextEncoder` class is a global reference for `require('util').TextEncoder`
1288
+ * https://nodejs.org/api/globals.html#textencoder
1289
+ * @since v11.0.0
1290
+ */
1291
+ var TextEncoder: typeof globalThis extends {
1292
+ onmessage: any;
1293
+ TextEncoder: infer TextEncoder;
1294
+ } ? TextEncoder
1295
+ : typeof _TextEncoder;
1296
+ }
1297
+
1298
+ //// parseArgs
1299
+ /**
1300
+ * Provides a higher level API for command-line argument parsing than interacting
1301
+ * with `process.argv` directly. Takes a specification for the expected arguments
1302
+ * and returns a structured object with the parsed options and positionals.
1303
+ *
1304
+ * ```js
1305
+ * import { parseArgs } from 'node:util';
1306
+ * const args = ['-f', '--bar', 'b'];
1307
+ * const options = {
1308
+ * foo: {
1309
+ * type: 'boolean',
1310
+ * short: 'f',
1311
+ * },
1312
+ * bar: {
1313
+ * type: 'string',
1314
+ * },
1315
+ * };
1316
+ * const {
1317
+ * values,
1318
+ * positionals,
1319
+ * } = parseArgs({ args, options });
1320
+ * console.log(values, positionals);
1321
+ * // Prints: [Object: null prototype] { foo: true, bar: 'b' } []
1322
+ * ```
1323
+ * @since v18.3.0, v16.17.0
1324
+ * @param config Used to provide arguments for parsing and to configure the parser. `config` supports the following properties:
1325
+ * @return The parsed command line arguments:
1326
+ */
1327
+ export function parseArgs<T extends ParseArgsConfig>(config?: T): ParsedResults<T>;
1328
+ interface ParseArgsOptionConfig {
1329
+ /**
1330
+ * Type of argument.
1331
+ */
1332
+ type: "string" | "boolean";
1333
+ /**
1334
+ * Whether this option can be provided multiple times.
1335
+ * If `true`, all values will be collected in an array.
1336
+ * If `false`, values for the option are last-wins.
1337
+ * @default false.
1338
+ */
1339
+ multiple?: boolean | undefined;
1340
+ /**
1341
+ * A single character alias for the option.
1342
+ */
1343
+ short?: string | undefined;
1344
+ /**
1345
+ * The default option value when it is not set by args.
1346
+ * It must be of the same type as the the `type` property.
1347
+ * When `multiple` is `true`, it must be an array.
1348
+ * @since v18.11.0
1349
+ */
1350
+ default?: string | boolean | string[] | boolean[] | undefined;
1351
+ }
1352
+ interface ParseArgsOptionsConfig {
1353
+ [longOption: string]: ParseArgsOptionConfig;
1354
+ }
1355
+ export interface ParseArgsConfig {
1356
+ /**
1357
+ * Array of argument strings.
1358
+ */
1359
+ args?: string[] | undefined;
1360
+ /**
1361
+ * Used to describe arguments known to the parser.
1362
+ */
1363
+ options?: ParseArgsOptionsConfig | undefined;
1364
+ /**
1365
+ * Should an error be thrown when unknown arguments are encountered,
1366
+ * or when arguments are passed that do not match the `type` configured in `options`.
1367
+ * @default true
1368
+ */
1369
+ strict?: boolean | undefined;
1370
+ /**
1371
+ * Whether this command accepts positional arguments.
1372
+ */
1373
+ allowPositionals?: boolean | undefined;
1374
+ /**
1375
+ * Return the parsed tokens. This is useful for extending the built-in behavior,
1376
+ * from adding additional checks through to reprocessing the tokens in different ways.
1377
+ * @default false
1378
+ */
1379
+ tokens?: boolean | undefined;
1380
+ }
1381
+ /*
1382
+ IfDefaultsTrue and IfDefaultsFalse are helpers to handle default values for missing boolean properties.
1383
+ TypeScript does not have exact types for objects: https://github.com/microsoft/TypeScript/issues/12936
1384
+ This means it is impossible to distinguish between "field X is definitely not present" and "field X may or may not be present".
1385
+ But we expect users to generally provide their config inline or `as const`, which means TS will always know whether a given field is present.
1386
+ So this helper treats "not definitely present" (i.e., not `extends boolean`) as being "definitely not present", i.e. it should have its default value.
1387
+ This is technically incorrect but is a much nicer UX for the common case.
1388
+ The IfDefaultsTrue version is for things which default to true; the IfDefaultsFalse version is for things which default to false.
1389
+ */
1390
+ type IfDefaultsTrue<T, IfTrue, IfFalse> = T extends true ? IfTrue
1391
+ : T extends false ? IfFalse
1392
+ : IfTrue;
1393
+
1394
+ // we put the `extends false` condition first here because `undefined` compares like `any` when `strictNullChecks: false`
1395
+ type IfDefaultsFalse<T, IfTrue, IfFalse> = T extends false ? IfFalse
1396
+ : T extends true ? IfTrue
1397
+ : IfFalse;
1398
+
1399
+ type ExtractOptionValue<T extends ParseArgsConfig, O extends ParseArgsOptionConfig> = IfDefaultsTrue<
1400
+ T["strict"],
1401
+ O["type"] extends "string" ? string : O["type"] extends "boolean" ? boolean : string | boolean,
1402
+ string | boolean
1403
+ >;
1404
+
1405
+ type ParsedValues<T extends ParseArgsConfig> =
1406
+ & IfDefaultsTrue<T["strict"], unknown, { [longOption: string]: undefined | string | boolean }>
1407
+ & (T["options"] extends ParseArgsOptionsConfig ? {
1408
+ -readonly [LongOption in keyof T["options"]]: IfDefaultsFalse<
1409
+ T["options"][LongOption]["multiple"],
1410
+ undefined | Array<ExtractOptionValue<T, T["options"][LongOption]>>,
1411
+ undefined | ExtractOptionValue<T, T["options"][LongOption]>
1412
+ >;
1413
+ }
1414
+ : {});
1415
+
1416
+ type ParsedPositionals<T extends ParseArgsConfig> = IfDefaultsTrue<
1417
+ T["strict"],
1418
+ IfDefaultsFalse<T["allowPositionals"], string[], []>,
1419
+ IfDefaultsTrue<T["allowPositionals"], string[], []>
1420
+ >;
1421
+
1422
+ type PreciseTokenForOptions<
1423
+ K extends string,
1424
+ O extends ParseArgsOptionConfig,
1425
+ > = O["type"] extends "string" ? {
1426
+ kind: "option";
1427
+ index: number;
1428
+ name: K;
1429
+ rawName: string;
1430
+ value: string;
1431
+ inlineValue: boolean;
1432
+ }
1433
+ : O["type"] extends "boolean" ? {
1434
+ kind: "option";
1435
+ index: number;
1436
+ name: K;
1437
+ rawName: string;
1438
+ value: undefined;
1439
+ inlineValue: undefined;
1440
+ }
1441
+ : OptionToken & { name: K };
1442
+
1443
+ type TokenForOptions<
1444
+ T extends ParseArgsConfig,
1445
+ K extends keyof T["options"] = keyof T["options"],
1446
+ > = K extends unknown
1447
+ ? T["options"] extends ParseArgsOptionsConfig ? PreciseTokenForOptions<K & string, T["options"][K]>
1448
+ : OptionToken
1449
+ : never;
1450
+
1451
+ type ParsedOptionToken<T extends ParseArgsConfig> = IfDefaultsTrue<T["strict"], TokenForOptions<T>, OptionToken>;
1452
+
1453
+ type ParsedPositionalToken<T extends ParseArgsConfig> = IfDefaultsTrue<
1454
+ T["strict"],
1455
+ IfDefaultsFalse<T["allowPositionals"], { kind: "positional"; index: number; value: string }, never>,
1456
+ IfDefaultsTrue<T["allowPositionals"], { kind: "positional"; index: number; value: string }, never>
1457
+ >;
1458
+
1459
+ type ParsedTokens<T extends ParseArgsConfig> = Array<
1460
+ ParsedOptionToken<T> | ParsedPositionalToken<T> | { kind: "option-terminator"; index: number }
1461
+ >;
1462
+
1463
+ type PreciseParsedResults<T extends ParseArgsConfig> = IfDefaultsFalse<
1464
+ T["tokens"],
1465
+ {
1466
+ values: ParsedValues<T>;
1467
+ positionals: ParsedPositionals<T>;
1468
+ tokens: ParsedTokens<T>;
1469
+ },
1470
+ {
1471
+ values: ParsedValues<T>;
1472
+ positionals: ParsedPositionals<T>;
1473
+ }
1474
+ >;
1475
+
1476
+ type OptionToken =
1477
+ | { kind: "option"; index: number; name: string; rawName: string; value: string; inlineValue: boolean }
1478
+ | {
1479
+ kind: "option";
1480
+ index: number;
1481
+ name: string;
1482
+ rawName: string;
1483
+ value: undefined;
1484
+ inlineValue: undefined;
1485
+ };
1486
+
1487
+ type Token =
1488
+ | OptionToken
1489
+ | { kind: "positional"; index: number; value: string }
1490
+ | { kind: "option-terminator"; index: number };
1491
+
1492
+ // If ParseArgsConfig extends T, then the user passed config constructed elsewhere.
1493
+ // So we can't rely on the `"not definitely present" implies "definitely not present"` assumption mentioned above.
1494
+ type ParsedResults<T extends ParseArgsConfig> = ParseArgsConfig extends T ? {
1495
+ values: {
1496
+ [longOption: string]: undefined | string | boolean | Array<string | boolean>;
1497
+ };
1498
+ positionals: string[];
1499
+ tokens?: Token[];
1500
+ }
1501
+ : PreciseParsedResults<T>;
1502
+
1503
+ /**
1504
+ * An implementation of [the MIMEType class](https://bmeck.github.io/node-proposal-mime-api/).
1505
+ *
1506
+ * In accordance with browser conventions, all properties of `MIMEType` objects
1507
+ * are implemented as getters and setters on the class prototype, rather than as
1508
+ * data properties on the object itself.
1509
+ *
1510
+ * A MIME string is a structured string containing multiple meaningful
1511
+ * components. When parsed, a `MIMEType` object is returned containing
1512
+ * properties for each of these components.
1513
+ * @since v19.1.0, v18.13.0
1514
+ * @experimental
1515
+ */
1516
+ export class MIMEType {
1517
+ /**
1518
+ * Creates a new MIMEType object by parsing the input.
1519
+ *
1520
+ * A `TypeError` will be thrown if the `input` is not a valid MIME.
1521
+ * Note that an effort will be made to coerce the given values into strings.
1522
+ * @param input The input MIME to parse.
1523
+ */
1524
+ constructor(input: string | { toString: () => string });
1525
+
1526
+ /**
1527
+ * Gets and sets the type portion of the MIME.
1528
+ *
1529
+ * ```js
1530
+ * import { MIMEType } from 'node:util';
1531
+ *
1532
+ * const myMIME = new MIMEType('text/javascript');
1533
+ * console.log(myMIME.type);
1534
+ * // Prints: text
1535
+ * myMIME.type = 'application';
1536
+ * console.log(myMIME.type);
1537
+ * // Prints: application
1538
+ * console.log(String(myMIME));
1539
+ * // Prints: application/javascript
1540
+ * ```
1541
+ */
1542
+ type: string;
1543
+ /**
1544
+ * Gets and sets the subtype portion of the MIME.
1545
+ *
1546
+ * ```js
1547
+ * import { MIMEType } from 'node:util';
1548
+ *
1549
+ * const myMIME = new MIMEType('text/ecmascript');
1550
+ * console.log(myMIME.subtype);
1551
+ * // Prints: ecmascript
1552
+ * myMIME.subtype = 'javascript';
1553
+ * console.log(myMIME.subtype);
1554
+ * // Prints: javascript
1555
+ * console.log(String(myMIME));
1556
+ * // Prints: text/javascript
1557
+ * ```
1558
+ */
1559
+ subtype: string;
1560
+ /**
1561
+ * Gets the essence of the MIME. This property is read only.
1562
+ * Use `mime.type` or `mime.subtype` to alter the MIME.
1563
+ *
1564
+ * ```js
1565
+ * import { MIMEType } from 'node:util';
1566
+ *
1567
+ * const myMIME = new MIMEType('text/javascript;key=value');
1568
+ * console.log(myMIME.essence);
1569
+ * // Prints: text/javascript
1570
+ * myMIME.type = 'application';
1571
+ * console.log(myMIME.essence);
1572
+ * // Prints: application/javascript
1573
+ * console.log(String(myMIME));
1574
+ * // Prints: application/javascript;key=value
1575
+ * ```
1576
+ */
1577
+ readonly essence: string;
1578
+ /**
1579
+ * Gets the `MIMEParams` object representing the
1580
+ * parameters of the MIME. This property is read-only. See `MIMEParams` documentation for details.
1581
+ */
1582
+ readonly params: MIMEParams;
1583
+ /**
1584
+ * The `toString()` method on the `MIMEType` object returns the serialized MIME.
1585
+ *
1586
+ * Because of the need for standard compliance, this method does not allow users
1587
+ * to customize the serialization process of the MIME.
1588
+ */
1589
+ toString(): string;
1590
+ }
1591
+ /**
1592
+ * The `MIMEParams` API provides read and write access to the parameters of a`MIMEType`.
1593
+ * @since v19.1.0, v18.13.0
1594
+ */
1595
+ export class MIMEParams {
1596
+ /**
1597
+ * Remove all name-value pairs whose name is `name`.
1598
+ */
1599
+ delete(name: string): void;
1600
+ /**
1601
+ * Returns an iterator over each of the name-value pairs in the parameters.
1602
+ * Each item of the iterator is a JavaScript `Array`. The first item of the array
1603
+ * is the `name`, the second item of the array is the `value`.
1604
+ */
1605
+ entries(): IterableIterator<[name: string, value: string]>;
1606
+ /**
1607
+ * Returns the value of the first name-value pair whose name is `name`. If there
1608
+ * are no such pairs, `null` is returned.
1609
+ * @return or `null` if there is no name-value pair with the given `name`.
1610
+ */
1611
+ get(name: string): string | null;
1612
+ /**
1613
+ * Returns `true` if there is at least one name-value pair whose name is `name`.
1614
+ */
1615
+ has(name: string): boolean;
1616
+ /**
1617
+ * Returns an iterator over the names of each name-value pair.
1618
+ *
1619
+ * ```js
1620
+ * import { MIMEType } from 'node:util';
1621
+ *
1622
+ * const { params } = new MIMEType('text/plain;foo=0;bar=1');
1623
+ * for (const name of params.keys()) {
1624
+ * console.log(name);
1625
+ * }
1626
+ * // Prints:
1627
+ * // foo
1628
+ * // bar
1629
+ * ```
1630
+ */
1631
+ keys(): IterableIterator<string>;
1632
+ /**
1633
+ * Sets the value in the `MIMEParams` object associated with `name` to`value`. If there are any pre-existing name-value pairs whose names are `name`,
1634
+ * set the first such pair's value to `value`.
1635
+ *
1636
+ * ```js
1637
+ * import { MIMEType } from 'node:util';
1638
+ *
1639
+ * const { params } = new MIMEType('text/plain;foo=0;bar=1');
1640
+ * params.set('foo', 'def');
1641
+ * params.set('baz', 'xyz');
1642
+ * console.log(params.toString());
1643
+ * // Prints: foo=def;bar=1;baz=xyz
1644
+ * ```
1645
+ */
1646
+ set(name: string, value: string): void;
1647
+ /**
1648
+ * Returns an iterator over the values of each name-value pair.
1649
+ */
1650
+ values(): IterableIterator<string>;
1651
+ /**
1652
+ * Returns an iterator over each of the name-value pairs in the parameters.
1653
+ */
1654
+ [Symbol.iterator]: typeof MIMEParams.prototype.entries;
1655
+ }
1656
+ }
1657
+ declare module "util/types" {
1658
+ import { KeyObject, webcrypto } from "node:crypto";
1659
+ /**
1660
+ * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) or
1661
+ * [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.
1662
+ *
1663
+ * See also `util.types.isArrayBuffer()` and `util.types.isSharedArrayBuffer()`.
1664
+ *
1665
+ * ```js
1666
+ * util.types.isAnyArrayBuffer(new ArrayBuffer()); // Returns true
1667
+ * util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true
1668
+ * ```
1669
+ * @since v10.0.0
1670
+ */
1671
+ function isAnyArrayBuffer(object: unknown): object is ArrayBufferLike;
1672
+ /**
1673
+ * Returns `true` if the value is an `arguments` object.
1674
+ *
1675
+ * ```js
1676
+ * function foo() {
1677
+ * util.types.isArgumentsObject(arguments); // Returns true
1678
+ * }
1679
+ * ```
1680
+ * @since v10.0.0
1681
+ */
1682
+ function isArgumentsObject(object: unknown): object is IArguments;
1683
+ /**
1684
+ * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instance.
1685
+ * This does _not_ include [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instances. Usually, it is
1686
+ * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.
1687
+ *
1688
+ * ```js
1689
+ * util.types.isArrayBuffer(new ArrayBuffer()); // Returns true
1690
+ * util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false
1691
+ * ```
1692
+ * @since v10.0.0
1693
+ */
1694
+ function isArrayBuffer(object: unknown): object is ArrayBuffer;
1695
+ /**
1696
+ * Returns `true` if the value is an instance of one of the [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) views, such as typed
1697
+ * array objects or [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView). Equivalent to
1698
+ * [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
1699
+ *
1700
+ * ```js
1701
+ * util.types.isArrayBufferView(new Int8Array()); // true
1702
+ * util.types.isArrayBufferView(Buffer.from('hello world')); // true
1703
+ * util.types.isArrayBufferView(new DataView(new ArrayBuffer(16))); // true
1704
+ * util.types.isArrayBufferView(new ArrayBuffer()); // false
1705
+ * ```
1706
+ * @since v10.0.0
1707
+ */
1708
+ function isArrayBufferView(object: unknown): object is NodeJS.ArrayBufferView;
1709
+ /**
1710
+ * Returns `true` if the value is an [async function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function).
1711
+ * This only reports back what the JavaScript engine is seeing;
1712
+ * in particular, the return value may not match the original source code if
1713
+ * a transpilation tool was used.
1714
+ *
1715
+ * ```js
1716
+ * util.types.isAsyncFunction(function foo() {}); // Returns false
1717
+ * util.types.isAsyncFunction(async function foo() {}); // Returns true
1718
+ * ```
1719
+ * @since v10.0.0
1720
+ */
1721
+ function isAsyncFunction(object: unknown): boolean;
1722
+ /**
1723
+ * Returns `true` if the value is a `BigInt64Array` instance.
1724
+ *
1725
+ * ```js
1726
+ * util.types.isBigInt64Array(new BigInt64Array()); // Returns true
1727
+ * util.types.isBigInt64Array(new BigUint64Array()); // Returns false
1728
+ * ```
1729
+ * @since v10.0.0
1730
+ */
1731
+ function isBigInt64Array(value: unknown): value is BigInt64Array;
1732
+ /**
1733
+ * Returns `true` if the value is a `BigUint64Array` instance.
1734
+ *
1735
+ * ```js
1736
+ * util.types.isBigUint64Array(new BigInt64Array()); // Returns false
1737
+ * util.types.isBigUint64Array(new BigUint64Array()); // Returns true
1738
+ * ```
1739
+ * @since v10.0.0
1740
+ */
1741
+ function isBigUint64Array(value: unknown): value is BigUint64Array;
1742
+ /**
1743
+ * Returns `true` if the value is a boolean object, e.g. created
1744
+ * by `new Boolean()`.
1745
+ *
1746
+ * ```js
1747
+ * util.types.isBooleanObject(false); // Returns false
1748
+ * util.types.isBooleanObject(true); // Returns false
1749
+ * util.types.isBooleanObject(new Boolean(false)); // Returns true
1750
+ * util.types.isBooleanObject(new Boolean(true)); // Returns true
1751
+ * util.types.isBooleanObject(Boolean(false)); // Returns false
1752
+ * util.types.isBooleanObject(Boolean(true)); // Returns false
1753
+ * ```
1754
+ * @since v10.0.0
1755
+ */
1756
+ function isBooleanObject(object: unknown): object is Boolean;
1757
+ /**
1758
+ * Returns `true` if the value is any boxed primitive object, e.g. created
1759
+ * by `new Boolean()`, `new String()` or `Object(Symbol())`.
1760
+ *
1761
+ * For example:
1762
+ *
1763
+ * ```js
1764
+ * util.types.isBoxedPrimitive(false); // Returns false
1765
+ * util.types.isBoxedPrimitive(new Boolean(false)); // Returns true
1766
+ * util.types.isBoxedPrimitive(Symbol('foo')); // Returns false
1767
+ * util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true
1768
+ * util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true
1769
+ * ```
1770
+ * @since v10.11.0
1771
+ */
1772
+ function isBoxedPrimitive(object: unknown): object is String | Number | BigInt | Boolean | Symbol;
1773
+ /**
1774
+ * Returns `true` if the value is a built-in [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) instance.
1775
+ *
1776
+ * ```js
1777
+ * const ab = new ArrayBuffer(20);
1778
+ * util.types.isDataView(new DataView(ab)); // Returns true
1779
+ * util.types.isDataView(new Float64Array()); // Returns false
1780
+ * ```
1781
+ *
1782
+ * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
1783
+ * @since v10.0.0
1784
+ */
1785
+ function isDataView(object: unknown): object is DataView;
1786
+ /**
1787
+ * Returns `true` if the value is a built-in [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance.
1788
+ *
1789
+ * ```js
1790
+ * util.types.isDate(new Date()); // Returns true
1791
+ * ```
1792
+ * @since v10.0.0
1793
+ */
1794
+ function isDate(object: unknown): object is Date;
1795
+ /**
1796
+ * Returns `true` if the value is a native `External` value.
1797
+ *
1798
+ * A native `External` value is a special type of object that contains a
1799
+ * raw C++ pointer (`void*`) for access from native code, and has no other
1800
+ * properties. Such objects are created either by Node.js internals or native
1801
+ * addons. In JavaScript, they are [frozen](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) objects with a`null` prototype.
1802
+ *
1803
+ * ```c
1804
+ * #include <js_native_api.h>
1805
+ * #include <stdlib.h>
1806
+ * napi_value result;
1807
+ * static napi_value MyNapi(napi_env env, napi_callback_info info) {
1808
+ * int* raw = (int*) malloc(1024);
1809
+ * napi_status status = napi_create_external(env, (void*) raw, NULL, NULL, &#x26;result);
1810
+ * if (status != napi_ok) {
1811
+ * napi_throw_error(env, NULL, "napi_create_external failed");
1812
+ * return NULL;
1813
+ * }
1814
+ * return result;
1815
+ * }
1816
+ * ...
1817
+ * DECLARE_NAPI_PROPERTY("myNapi", MyNapi)
1818
+ * ...
1819
+ * ```
1820
+ *
1821
+ * ```js
1822
+ * const native = require('napi_addon.node');
1823
+ * const data = native.myNapi();
1824
+ * util.types.isExternal(data); // returns true
1825
+ * util.types.isExternal(0); // returns false
1826
+ * util.types.isExternal(new String('foo')); // returns false
1827
+ * ```
1828
+ *
1829
+ * For further information on `napi_create_external`, refer to `napi_create_external()`.
1830
+ * @since v10.0.0
1831
+ */
1832
+ function isExternal(object: unknown): boolean;
1833
+ /**
1834
+ * Returns `true` if the value is a built-in [`Float32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array) instance.
1835
+ *
1836
+ * ```js
1837
+ * util.types.isFloat32Array(new ArrayBuffer()); // Returns false
1838
+ * util.types.isFloat32Array(new Float32Array()); // Returns true
1839
+ * util.types.isFloat32Array(new Float64Array()); // Returns false
1840
+ * ```
1841
+ * @since v10.0.0
1842
+ */
1843
+ function isFloat32Array(object: unknown): object is Float32Array;
1844
+ /**
1845
+ * Returns `true` if the value is a built-in [`Float64Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array) instance.
1846
+ *
1847
+ * ```js
1848
+ * util.types.isFloat64Array(new ArrayBuffer()); // Returns false
1849
+ * util.types.isFloat64Array(new Uint8Array()); // Returns false
1850
+ * util.types.isFloat64Array(new Float64Array()); // Returns true
1851
+ * ```
1852
+ * @since v10.0.0
1853
+ */
1854
+ function isFloat64Array(object: unknown): object is Float64Array;
1855
+ /**
1856
+ * Returns `true` if the value is a generator function.
1857
+ * This only reports back what the JavaScript engine is seeing;
1858
+ * in particular, the return value may not match the original source code if
1859
+ * a transpilation tool was used.
1860
+ *
1861
+ * ```js
1862
+ * util.types.isGeneratorFunction(function foo() {}); // Returns false
1863
+ * util.types.isGeneratorFunction(function* foo() {}); // Returns true
1864
+ * ```
1865
+ * @since v10.0.0
1866
+ */
1867
+ function isGeneratorFunction(object: unknown): object is GeneratorFunction;
1868
+ /**
1869
+ * Returns `true` if the value is a generator object as returned from a
1870
+ * built-in generator function.
1871
+ * This only reports back what the JavaScript engine is seeing;
1872
+ * in particular, the return value may not match the original source code if
1873
+ * a transpilation tool was used.
1874
+ *
1875
+ * ```js
1876
+ * function* foo() {}
1877
+ * const generator = foo();
1878
+ * util.types.isGeneratorObject(generator); // Returns true
1879
+ * ```
1880
+ * @since v10.0.0
1881
+ */
1882
+ function isGeneratorObject(object: unknown): object is Generator;
1883
+ /**
1884
+ * Returns `true` if the value is a built-in [`Int8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array) instance.
1885
+ *
1886
+ * ```js
1887
+ * util.types.isInt8Array(new ArrayBuffer()); // Returns false
1888
+ * util.types.isInt8Array(new Int8Array()); // Returns true
1889
+ * util.types.isInt8Array(new Float64Array()); // Returns false
1890
+ * ```
1891
+ * @since v10.0.0
1892
+ */
1893
+ function isInt8Array(object: unknown): object is Int8Array;
1894
+ /**
1895
+ * Returns `true` if the value is a built-in [`Int16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array) instance.
1896
+ *
1897
+ * ```js
1898
+ * util.types.isInt16Array(new ArrayBuffer()); // Returns false
1899
+ * util.types.isInt16Array(new Int16Array()); // Returns true
1900
+ * util.types.isInt16Array(new Float64Array()); // Returns false
1901
+ * ```
1902
+ * @since v10.0.0
1903
+ */
1904
+ function isInt16Array(object: unknown): object is Int16Array;
1905
+ /**
1906
+ * Returns `true` if the value is a built-in [`Int32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array) instance.
1907
+ *
1908
+ * ```js
1909
+ * util.types.isInt32Array(new ArrayBuffer()); // Returns false
1910
+ * util.types.isInt32Array(new Int32Array()); // Returns true
1911
+ * util.types.isInt32Array(new Float64Array()); // Returns false
1912
+ * ```
1913
+ * @since v10.0.0
1914
+ */
1915
+ function isInt32Array(object: unknown): object is Int32Array;
1916
+ /**
1917
+ * Returns `true` if the value is a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.
1918
+ *
1919
+ * ```js
1920
+ * util.types.isMap(new Map()); // Returns true
1921
+ * ```
1922
+ * @since v10.0.0
1923
+ */
1924
+ function isMap<T>(
1925
+ object: T | {},
1926
+ ): object is T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>)
1927
+ : Map<unknown, unknown>;
1928
+ /**
1929
+ * Returns `true` if the value is an iterator returned for a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance.
1930
+ *
1931
+ * ```js
1932
+ * const map = new Map();
1933
+ * util.types.isMapIterator(map.keys()); // Returns true
1934
+ * util.types.isMapIterator(map.values()); // Returns true
1935
+ * util.types.isMapIterator(map.entries()); // Returns true
1936
+ * util.types.isMapIterator(map[Symbol.iterator]()); // Returns true
1937
+ * ```
1938
+ * @since v10.0.0
1939
+ */
1940
+ function isMapIterator(object: unknown): boolean;
1941
+ /**
1942
+ * Returns `true` if the value is an instance of a [Module Namespace Object](https://tc39.github.io/ecma262/#sec-module-namespace-exotic-objects).
1943
+ *
1944
+ * ```js
1945
+ * import * as ns from './a.js';
1946
+ *
1947
+ * util.types.isModuleNamespaceObject(ns); // Returns true
1948
+ * ```
1949
+ * @since v10.0.0
1950
+ */
1951
+ function isModuleNamespaceObject(value: unknown): boolean;
1952
+ /**
1953
+ * Returns `true` if the value was returned by the constructor of a [built-in `Error` type](https://tc39.es/ecma262/#sec-error-objects).
1954
+ *
1955
+ * ```js
1956
+ * console.log(util.types.isNativeError(new Error())); // true
1957
+ * console.log(util.types.isNativeError(new TypeError())); // true
1958
+ * console.log(util.types.isNativeError(new RangeError())); // true
1959
+ * ```
1960
+ *
1961
+ * Subclasses of the native error types are also native errors:
1962
+ *
1963
+ * ```js
1964
+ * class MyError extends Error {}
1965
+ * console.log(util.types.isNativeError(new MyError())); // true
1966
+ * ```
1967
+ *
1968
+ * A value being `instanceof` a native error class is not equivalent to `isNativeError()`returning `true` for that value. `isNativeError()` returns `true` for errors
1969
+ * which come from a different [realm](https://tc39.es/ecma262/#realm) while `instanceof Error` returns `false`for these errors:
1970
+ *
1971
+ * ```js
1972
+ * const vm = require('node:vm');
1973
+ * const context = vm.createContext({});
1974
+ * const myError = vm.runInContext('new Error()', context);
1975
+ * console.log(util.types.isNativeError(myError)); // true
1976
+ * console.log(myError instanceof Error); // false
1977
+ * ```
1978
+ *
1979
+ * Conversely, `isNativeError()` returns `false` for all objects which were not
1980
+ * returned by the constructor of a native error. That includes values
1981
+ * which are `instanceof` native errors:
1982
+ *
1983
+ * ```js
1984
+ * const myError = { __proto__: Error.prototype };
1985
+ * console.log(util.types.isNativeError(myError)); // false
1986
+ * console.log(myError instanceof Error); // true
1987
+ * ```
1988
+ * @since v10.0.0
1989
+ */
1990
+ function isNativeError(object: unknown): object is Error;
1991
+ /**
1992
+ * Returns `true` if the value is a number object, e.g. created
1993
+ * by `new Number()`.
1994
+ *
1995
+ * ```js
1996
+ * util.types.isNumberObject(0); // Returns false
1997
+ * util.types.isNumberObject(new Number(0)); // Returns true
1998
+ * ```
1999
+ * @since v10.0.0
2000
+ */
2001
+ function isNumberObject(object: unknown): object is Number;
2002
+ /**
2003
+ * Returns `true` if the value is a built-in [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
2004
+ *
2005
+ * ```js
2006
+ * util.types.isPromise(Promise.resolve(42)); // Returns true
2007
+ * ```
2008
+ * @since v10.0.0
2009
+ */
2010
+ function isPromise(object: unknown): object is Promise<unknown>;
2011
+ /**
2012
+ * Returns `true` if the value is a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) instance.
2013
+ *
2014
+ * ```js
2015
+ * const target = {};
2016
+ * const proxy = new Proxy(target, {});
2017
+ * util.types.isProxy(target); // Returns false
2018
+ * util.types.isProxy(proxy); // Returns true
2019
+ * ```
2020
+ * @since v10.0.0
2021
+ */
2022
+ function isProxy(object: unknown): boolean;
2023
+ /**
2024
+ * Returns `true` if the value is a regular expression object.
2025
+ *
2026
+ * ```js
2027
+ * util.types.isRegExp(/abc/); // Returns true
2028
+ * util.types.isRegExp(new RegExp('abc')); // Returns true
2029
+ * ```
2030
+ * @since v10.0.0
2031
+ */
2032
+ function isRegExp(object: unknown): object is RegExp;
2033
+ /**
2034
+ * Returns `true` if the value is a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.
2035
+ *
2036
+ * ```js
2037
+ * util.types.isSet(new Set()); // Returns true
2038
+ * ```
2039
+ * @since v10.0.0
2040
+ */
2041
+ function isSet<T>(
2042
+ object: T | {},
2043
+ ): object is T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>;
2044
+ /**
2045
+ * Returns `true` if the value is an iterator returned for a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance.
2046
+ *
2047
+ * ```js
2048
+ * const set = new Set();
2049
+ * util.types.isSetIterator(set.keys()); // Returns true
2050
+ * util.types.isSetIterator(set.values()); // Returns true
2051
+ * util.types.isSetIterator(set.entries()); // Returns true
2052
+ * util.types.isSetIterator(set[Symbol.iterator]()); // Returns true
2053
+ * ```
2054
+ * @since v10.0.0
2055
+ */
2056
+ function isSetIterator(object: unknown): boolean;
2057
+ /**
2058
+ * Returns `true` if the value is a built-in [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance.
2059
+ * This does _not_ include [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instances. Usually, it is
2060
+ * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that.
2061
+ *
2062
+ * ```js
2063
+ * util.types.isSharedArrayBuffer(new ArrayBuffer()); // Returns false
2064
+ * util.types.isSharedArrayBuffer(new SharedArrayBuffer()); // Returns true
2065
+ * ```
2066
+ * @since v10.0.0
2067
+ */
2068
+ function isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer;
2069
+ /**
2070
+ * Returns `true` if the value is a string object, e.g. created
2071
+ * by `new String()`.
2072
+ *
2073
+ * ```js
2074
+ * util.types.isStringObject('foo'); // Returns false
2075
+ * util.types.isStringObject(new String('foo')); // Returns true
2076
+ * ```
2077
+ * @since v10.0.0
2078
+ */
2079
+ function isStringObject(object: unknown): object is String;
2080
+ /**
2081
+ * Returns `true` if the value is a symbol object, created
2082
+ * by calling `Object()` on a `Symbol` primitive.
2083
+ *
2084
+ * ```js
2085
+ * const symbol = Symbol('foo');
2086
+ * util.types.isSymbolObject(symbol); // Returns false
2087
+ * util.types.isSymbolObject(Object(symbol)); // Returns true
2088
+ * ```
2089
+ * @since v10.0.0
2090
+ */
2091
+ function isSymbolObject(object: unknown): object is Symbol;
2092
+ /**
2093
+ * Returns `true` if the value is a built-in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) instance.
2094
+ *
2095
+ * ```js
2096
+ * util.types.isTypedArray(new ArrayBuffer()); // Returns false
2097
+ * util.types.isTypedArray(new Uint8Array()); // Returns true
2098
+ * util.types.isTypedArray(new Float64Array()); // Returns true
2099
+ * ```
2100
+ *
2101
+ * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView).
2102
+ * @since v10.0.0
2103
+ */
2104
+ function isTypedArray(object: unknown): object is NodeJS.TypedArray;
2105
+ /**
2106
+ * Returns `true` if the value is a built-in [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) instance.
2107
+ *
2108
+ * ```js
2109
+ * util.types.isUint8Array(new ArrayBuffer()); // Returns false
2110
+ * util.types.isUint8Array(new Uint8Array()); // Returns true
2111
+ * util.types.isUint8Array(new Float64Array()); // Returns false
2112
+ * ```
2113
+ * @since v10.0.0
2114
+ */
2115
+ function isUint8Array(object: unknown): object is Uint8Array;
2116
+ /**
2117
+ * Returns `true` if the value is a built-in [`Uint8ClampedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray) instance.
2118
+ *
2119
+ * ```js
2120
+ * util.types.isUint8ClampedArray(new ArrayBuffer()); // Returns false
2121
+ * util.types.isUint8ClampedArray(new Uint8ClampedArray()); // Returns true
2122
+ * util.types.isUint8ClampedArray(new Float64Array()); // Returns false
2123
+ * ```
2124
+ * @since v10.0.0
2125
+ */
2126
+ function isUint8ClampedArray(object: unknown): object is Uint8ClampedArray;
2127
+ /**
2128
+ * Returns `true` if the value is a built-in [`Uint16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array) instance.
2129
+ *
2130
+ * ```js
2131
+ * util.types.isUint16Array(new ArrayBuffer()); // Returns false
2132
+ * util.types.isUint16Array(new Uint16Array()); // Returns true
2133
+ * util.types.isUint16Array(new Float64Array()); // Returns false
2134
+ * ```
2135
+ * @since v10.0.0
2136
+ */
2137
+ function isUint16Array(object: unknown): object is Uint16Array;
2138
+ /**
2139
+ * Returns `true` if the value is a built-in [`Uint32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array) instance.
2140
+ *
2141
+ * ```js
2142
+ * util.types.isUint32Array(new ArrayBuffer()); // Returns false
2143
+ * util.types.isUint32Array(new Uint32Array()); // Returns true
2144
+ * util.types.isUint32Array(new Float64Array()); // Returns false
2145
+ * ```
2146
+ * @since v10.0.0
2147
+ */
2148
+ function isUint32Array(object: unknown): object is Uint32Array;
2149
+ /**
2150
+ * Returns `true` if the value is a built-in [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) instance.
2151
+ *
2152
+ * ```js
2153
+ * util.types.isWeakMap(new WeakMap()); // Returns true
2154
+ * ```
2155
+ * @since v10.0.0
2156
+ */
2157
+ function isWeakMap(object: unknown): object is WeakMap<object, unknown>;
2158
+ /**
2159
+ * Returns `true` if the value is a built-in [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) instance.
2160
+ *
2161
+ * ```js
2162
+ * util.types.isWeakSet(new WeakSet()); // Returns true
2163
+ * ```
2164
+ * @since v10.0.0
2165
+ */
2166
+ function isWeakSet(object: unknown): object is WeakSet<object>;
2167
+ /**
2168
+ * Returns `true` if `value` is a `KeyObject`, `false` otherwise.
2169
+ * @since v16.2.0
2170
+ */
2171
+ function isKeyObject(object: unknown): object is KeyObject;
2172
+ /**
2173
+ * Returns `true` if `value` is a `CryptoKey`, `false` otherwise.
2174
+ * @since v16.2.0
2175
+ */
2176
+ function isCryptoKey(object: unknown): object is webcrypto.CryptoKey;
2177
+ }
2178
+ declare module "node:util" {
2179
+ export * from "util";
2180
+ }
2181
+ declare module "node:util/types" {
2182
+ export * from "util/types";
2183
+ }