imran-dl 2.3.3

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

Potentially problematic release.


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

Files changed (229) hide show
  1. package/.cache/nix/binary-cache-v6.sqlite +0 -0
  2. package/.cache/nix/binary-cache-v6.sqlite-journal +0 -0
  3. package/.cache/replit/__replit_disk_meta.json +1 -0
  4. package/.cache/replit/modules/nodejs-20:v32-20240401-269b323.res +1 -0
  5. package/.cache/replit/modules/replit:v8-20240329-787bc7d.res +1 -0
  6. package/.cache/replit/modules.stamp +0 -0
  7. package/.cache/replit/nix/env.json +1 -0
  8. package/.cache/typescript/5.0/node_modules/.package-lock.json +12 -0
  9. package/.cache/typescript/5.0/node_modules/types-registry/README.md +2 -0
  10. package/.cache/typescript/5.0/node_modules/types-registry/index.json +1 -0
  11. package/.cache/typescript/5.0/node_modules/types-registry/package.json +20 -0
  12. package/.cache/typescript/5.0/package.json +1 -0
  13. package/.cache/typescript/5.3/node_modules/.package-lock.json +114 -0
  14. package/.cache/typescript/5.3/node_modules/@types/cheerio/LICENSE +21 -0
  15. package/.cache/typescript/5.3/node_modules/@types/cheerio/README.md +15 -0
  16. package/.cache/typescript/5.3/node_modules/@types/cheerio/index.d.ts +318 -0
  17. package/.cache/typescript/5.3/node_modules/@types/cheerio/package.json +71 -0
  18. package/.cache/typescript/5.3/node_modules/@types/node/LICENSE +21 -0
  19. package/.cache/typescript/5.3/node_modules/@types/node/README.md +15 -0
  20. package/.cache/typescript/5.3/node_modules/@types/node/assert/strict.d.ts +8 -0
  21. package/.cache/typescript/5.3/node_modules/@types/node/assert.d.ts +996 -0
  22. package/.cache/typescript/5.3/node_modules/@types/node/async_hooks.d.ts +539 -0
  23. package/.cache/typescript/5.3/node_modules/@types/node/buffer.d.ts +2362 -0
  24. package/.cache/typescript/5.3/node_modules/@types/node/child_process.d.ts +1540 -0
  25. package/.cache/typescript/5.3/node_modules/@types/node/cluster.d.ts +432 -0
  26. package/.cache/typescript/5.3/node_modules/@types/node/console.d.ts +415 -0
  27. package/.cache/typescript/5.3/node_modules/@types/node/constants.d.ts +19 -0
  28. package/.cache/typescript/5.3/node_modules/@types/node/crypto.d.ts +4456 -0
  29. package/.cache/typescript/5.3/node_modules/@types/node/dgram.d.ts +586 -0
  30. package/.cache/typescript/5.3/node_modules/@types/node/diagnostics_channel.d.ts +191 -0
  31. package/.cache/typescript/5.3/node_modules/@types/node/dns/promises.d.ts +425 -0
  32. package/.cache/typescript/5.3/node_modules/@types/node/dns.d.ts +809 -0
  33. package/.cache/typescript/5.3/node_modules/@types/node/dom-events.d.ts +122 -0
  34. package/.cache/typescript/5.3/node_modules/@types/node/domain.d.ts +170 -0
  35. package/.cache/typescript/5.3/node_modules/@types/node/events.d.ts +879 -0
  36. package/.cache/typescript/5.3/node_modules/@types/node/fs/promises.d.ts +1239 -0
  37. package/.cache/typescript/5.3/node_modules/@types/node/fs.d.ts +4291 -0
  38. package/.cache/typescript/5.3/node_modules/@types/node/globals.d.ts +385 -0
  39. package/.cache/typescript/5.3/node_modules/@types/node/globals.global.d.ts +1 -0
  40. package/.cache/typescript/5.3/node_modules/@types/node/http.d.ts +1888 -0
  41. package/.cache/typescript/5.3/node_modules/@types/node/http2.d.ts +2382 -0
  42. package/.cache/typescript/5.3/node_modules/@types/node/https.d.ts +550 -0
  43. package/.cache/typescript/5.3/node_modules/@types/node/index.d.ts +88 -0
  44. package/.cache/typescript/5.3/node_modules/@types/node/inspector.d.ts +2747 -0
  45. package/.cache/typescript/5.3/node_modules/@types/node/module.d.ts +301 -0
  46. package/.cache/typescript/5.3/node_modules/@types/node/net.d.ts +949 -0
  47. package/.cache/typescript/5.3/node_modules/@types/node/os.d.ts +478 -0
  48. package/.cache/typescript/5.3/node_modules/@types/node/package.json +230 -0
  49. package/.cache/typescript/5.3/node_modules/@types/node/path.d.ts +191 -0
  50. package/.cache/typescript/5.3/node_modules/@types/node/perf_hooks.d.ts +639 -0
  51. package/.cache/typescript/5.3/node_modules/@types/node/process.d.ts +1539 -0
  52. package/.cache/typescript/5.3/node_modules/@types/node/punycode.d.ts +117 -0
  53. package/.cache/typescript/5.3/node_modules/@types/node/querystring.d.ts +141 -0
  54. package/.cache/typescript/5.3/node_modules/@types/node/readline/promises.d.ts +150 -0
  55. package/.cache/typescript/5.3/node_modules/@types/node/readline.d.ts +539 -0
  56. package/.cache/typescript/5.3/node_modules/@types/node/repl.d.ts +430 -0
  57. package/.cache/typescript/5.3/node_modules/@types/node/stream/consumers.d.ts +12 -0
  58. package/.cache/typescript/5.3/node_modules/@types/node/stream/promises.d.ts +83 -0
  59. package/.cache/typescript/5.3/node_modules/@types/node/stream/web.d.ts +350 -0
  60. package/.cache/typescript/5.3/node_modules/@types/node/stream.d.ts +1701 -0
  61. package/.cache/typescript/5.3/node_modules/@types/node/string_decoder.d.ts +67 -0
  62. package/.cache/typescript/5.3/node_modules/@types/node/test.d.ts +1382 -0
  63. package/.cache/typescript/5.3/node_modules/@types/node/timers/promises.d.ts +93 -0
  64. package/.cache/typescript/5.3/node_modules/@types/node/timers.d.ts +240 -0
  65. package/.cache/typescript/5.3/node_modules/@types/node/tls.d.ts +1210 -0
  66. package/.cache/typescript/5.3/node_modules/@types/node/trace_events.d.ts +182 -0
  67. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert/strict.d.ts +8 -0
  68. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/assert.d.ts +996 -0
  69. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/async_hooks.d.ts +539 -0
  70. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/buffer.d.ts +2362 -0
  71. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/child_process.d.ts +1540 -0
  72. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/cluster.d.ts +432 -0
  73. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/console.d.ts +415 -0
  74. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/constants.d.ts +19 -0
  75. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/crypto.d.ts +4455 -0
  76. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dgram.d.ts +586 -0
  77. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +191 -0
  78. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns/promises.d.ts +425 -0
  79. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dns.d.ts +809 -0
  80. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/dom-events.d.ts +122 -0
  81. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/domain.d.ts +170 -0
  82. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/events.d.ts +879 -0
  83. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs/promises.d.ts +1239 -0
  84. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/fs.d.ts +4291 -0
  85. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.d.ts +385 -0
  86. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
  87. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http.d.ts +1888 -0
  88. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/http2.d.ts +2382 -0
  89. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/https.d.ts +550 -0
  90. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/index.d.ts +88 -0
  91. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/inspector.d.ts +2747 -0
  92. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/module.d.ts +301 -0
  93. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/net.d.ts +949 -0
  94. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/os.d.ts +478 -0
  95. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/path.d.ts +191 -0
  96. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/perf_hooks.d.ts +639 -0
  97. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/process.d.ts +1539 -0
  98. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/punycode.d.ts +117 -0
  99. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/querystring.d.ts +141 -0
  100. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline/promises.d.ts +150 -0
  101. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/readline.d.ts +539 -0
  102. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/repl.d.ts +430 -0
  103. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/consumers.d.ts +12 -0
  104. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/promises.d.ts +83 -0
  105. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream/web.d.ts +350 -0
  106. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/stream.d.ts +1701 -0
  107. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/string_decoder.d.ts +67 -0
  108. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/test.d.ts +1382 -0
  109. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers/promises.d.ts +93 -0
  110. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/timers.d.ts +240 -0
  111. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tls.d.ts +1210 -0
  112. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/trace_events.d.ts +182 -0
  113. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/tty.d.ts +208 -0
  114. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/url.d.ts +927 -0
  115. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/util.d.ts +2183 -0
  116. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/v8.d.ts +635 -0
  117. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/vm.d.ts +903 -0
  118. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/wasi.d.ts +158 -0
  119. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/worker_threads.d.ts +691 -0
  120. package/.cache/typescript/5.3/node_modules/@types/node/ts4.8/zlib.d.ts +517 -0
  121. package/.cache/typescript/5.3/node_modules/@types/node/tty.d.ts +208 -0
  122. package/.cache/typescript/5.3/node_modules/@types/node/url.d.ts +927 -0
  123. package/.cache/typescript/5.3/node_modules/@types/node/util.d.ts +2183 -0
  124. package/.cache/typescript/5.3/node_modules/@types/node/v8.d.ts +635 -0
  125. package/.cache/typescript/5.3/node_modules/@types/node/vm.d.ts +903 -0
  126. package/.cache/typescript/5.3/node_modules/@types/node/wasi.d.ts +158 -0
  127. package/.cache/typescript/5.3/node_modules/@types/node/worker_threads.d.ts +691 -0
  128. package/.cache/typescript/5.3/node_modules/@types/node/zlib.d.ts +517 -0
  129. package/.cache/typescript/5.3/node_modules/@types/node-fetch/LICENSE +21 -0
  130. package/.cache/typescript/5.3/node_modules/@types/node-fetch/README.md +15 -0
  131. package/.cache/typescript/5.3/node_modules/@types/node-fetch/externals.d.ts +32 -0
  132. package/.cache/typescript/5.3/node_modules/@types/node-fetch/index.d.ts +214 -0
  133. package/.cache/typescript/5.3/node_modules/@types/node-fetch/package.json +83 -0
  134. package/.cache/typescript/5.3/node_modules/@types/qs/LICENSE +21 -0
  135. package/.cache/typescript/5.3/node_modules/@types/qs/README.md +15 -0
  136. package/.cache/typescript/5.3/node_modules/@types/qs/index.d.ts +79 -0
  137. package/.cache/typescript/5.3/node_modules/@types/qs/package.json +65 -0
  138. package/.cache/typescript/5.3/node_modules/asynckit/LICENSE +21 -0
  139. package/.cache/typescript/5.3/node_modules/asynckit/README.md +233 -0
  140. package/.cache/typescript/5.3/node_modules/asynckit/bench.js +76 -0
  141. package/.cache/typescript/5.3/node_modules/asynckit/index.js +6 -0
  142. package/.cache/typescript/5.3/node_modules/asynckit/lib/abort.js +29 -0
  143. package/.cache/typescript/5.3/node_modules/asynckit/lib/async.js +34 -0
  144. package/.cache/typescript/5.3/node_modules/asynckit/lib/defer.js +26 -0
  145. package/.cache/typescript/5.3/node_modules/asynckit/lib/iterate.js +75 -0
  146. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  147. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_parallel.js +25 -0
  148. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial.js +25 -0
  149. package/.cache/typescript/5.3/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  150. package/.cache/typescript/5.3/node_modules/asynckit/lib/state.js +37 -0
  151. package/.cache/typescript/5.3/node_modules/asynckit/lib/streamify.js +141 -0
  152. package/.cache/typescript/5.3/node_modules/asynckit/lib/terminator.js +29 -0
  153. package/.cache/typescript/5.3/node_modules/asynckit/package.json +63 -0
  154. package/.cache/typescript/5.3/node_modules/asynckit/parallel.js +43 -0
  155. package/.cache/typescript/5.3/node_modules/asynckit/serial.js +17 -0
  156. package/.cache/typescript/5.3/node_modules/asynckit/serialOrdered.js +75 -0
  157. package/.cache/typescript/5.3/node_modules/asynckit/stream.js +21 -0
  158. package/.cache/typescript/5.3/node_modules/combined-stream/License +19 -0
  159. package/.cache/typescript/5.3/node_modules/combined-stream/Readme.md +138 -0
  160. package/.cache/typescript/5.3/node_modules/combined-stream/lib/combined_stream.js +208 -0
  161. package/.cache/typescript/5.3/node_modules/combined-stream/package.json +25 -0
  162. package/.cache/typescript/5.3/node_modules/combined-stream/yarn.lock +17 -0
  163. package/.cache/typescript/5.3/node_modules/delayed-stream/License +19 -0
  164. package/.cache/typescript/5.3/node_modules/delayed-stream/Makefile +7 -0
  165. package/.cache/typescript/5.3/node_modules/delayed-stream/Readme.md +141 -0
  166. package/.cache/typescript/5.3/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  167. package/.cache/typescript/5.3/node_modules/delayed-stream/package.json +27 -0
  168. package/.cache/typescript/5.3/node_modules/form-data/License +19 -0
  169. package/.cache/typescript/5.3/node_modules/form-data/README.md.bak +358 -0
  170. package/.cache/typescript/5.3/node_modules/form-data/Readme.md +358 -0
  171. package/.cache/typescript/5.3/node_modules/form-data/index.d.ts +62 -0
  172. package/.cache/typescript/5.3/node_modules/form-data/lib/browser.js +2 -0
  173. package/.cache/typescript/5.3/node_modules/form-data/lib/form_data.js +501 -0
  174. package/.cache/typescript/5.3/node_modules/form-data/lib/populate.js +10 -0
  175. package/.cache/typescript/5.3/node_modules/form-data/package.json +68 -0
  176. package/.cache/typescript/5.3/node_modules/mime-db/HISTORY.md +507 -0
  177. package/.cache/typescript/5.3/node_modules/mime-db/LICENSE +23 -0
  178. package/.cache/typescript/5.3/node_modules/mime-db/README.md +100 -0
  179. package/.cache/typescript/5.3/node_modules/mime-db/db.json +8519 -0
  180. package/.cache/typescript/5.3/node_modules/mime-db/index.js +12 -0
  181. package/.cache/typescript/5.3/node_modules/mime-db/package.json +60 -0
  182. package/.cache/typescript/5.3/node_modules/mime-types/HISTORY.md +397 -0
  183. package/.cache/typescript/5.3/node_modules/mime-types/LICENSE +23 -0
  184. package/.cache/typescript/5.3/node_modules/mime-types/README.md +113 -0
  185. package/.cache/typescript/5.3/node_modules/mime-types/index.js +188 -0
  186. package/.cache/typescript/5.3/node_modules/mime-types/package.json +44 -0
  187. package/.cache/typescript/5.3/node_modules/types-registry/README.md +2 -0
  188. package/.cache/typescript/5.3/node_modules/types-registry/index.json +1 -0
  189. package/.cache/typescript/5.3/node_modules/types-registry/package.json +20 -0
  190. package/.cache/typescript/5.3/node_modules/undici-types/README.md +6 -0
  191. package/.cache/typescript/5.3/node_modules/undici-types/agent.d.ts +31 -0
  192. package/.cache/typescript/5.3/node_modules/undici-types/api.d.ts +43 -0
  193. package/.cache/typescript/5.3/node_modules/undici-types/balanced-pool.d.ts +18 -0
  194. package/.cache/typescript/5.3/node_modules/undici-types/cache.d.ts +36 -0
  195. package/.cache/typescript/5.3/node_modules/undici-types/client.d.ts +97 -0
  196. package/.cache/typescript/5.3/node_modules/undici-types/connector.d.ts +34 -0
  197. package/.cache/typescript/5.3/node_modules/undici-types/content-type.d.ts +21 -0
  198. package/.cache/typescript/5.3/node_modules/undici-types/cookies.d.ts +28 -0
  199. package/.cache/typescript/5.3/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  200. package/.cache/typescript/5.3/node_modules/undici-types/dispatcher.d.ts +241 -0
  201. package/.cache/typescript/5.3/node_modules/undici-types/errors.d.ts +128 -0
  202. package/.cache/typescript/5.3/node_modules/undici-types/fetch.d.ts +209 -0
  203. package/.cache/typescript/5.3/node_modules/undici-types/file.d.ts +39 -0
  204. package/.cache/typescript/5.3/node_modules/undici-types/filereader.d.ts +54 -0
  205. package/.cache/typescript/5.3/node_modules/undici-types/formdata.d.ts +108 -0
  206. package/.cache/typescript/5.3/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  207. package/.cache/typescript/5.3/node_modules/undici-types/global-origin.d.ts +7 -0
  208. package/.cache/typescript/5.3/node_modules/undici-types/handlers.d.ts +9 -0
  209. package/.cache/typescript/5.3/node_modules/undici-types/header.d.ts +4 -0
  210. package/.cache/typescript/5.3/node_modules/undici-types/index.d.ts +63 -0
  211. package/.cache/typescript/5.3/node_modules/undici-types/interceptors.d.ts +5 -0
  212. package/.cache/typescript/5.3/node_modules/undici-types/mock-agent.d.ts +50 -0
  213. package/.cache/typescript/5.3/node_modules/undici-types/mock-client.d.ts +25 -0
  214. package/.cache/typescript/5.3/node_modules/undici-types/mock-errors.d.ts +12 -0
  215. package/.cache/typescript/5.3/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  216. package/.cache/typescript/5.3/node_modules/undici-types/mock-pool.d.ts +25 -0
  217. package/.cache/typescript/5.3/node_modules/undici-types/package.json +55 -0
  218. package/.cache/typescript/5.3/node_modules/undici-types/patch.d.ts +71 -0
  219. package/.cache/typescript/5.3/node_modules/undici-types/pool-stats.d.ts +19 -0
  220. package/.cache/typescript/5.3/node_modules/undici-types/pool.d.ts +28 -0
  221. package/.cache/typescript/5.3/node_modules/undici-types/proxy-agent.d.ts +30 -0
  222. package/.cache/typescript/5.3/node_modules/undici-types/readable.d.ts +61 -0
  223. package/.cache/typescript/5.3/node_modules/undici-types/webidl.d.ts +220 -0
  224. package/.cache/typescript/5.3/node_modules/undici-types/websocket.d.ts +131 -0
  225. package/.cache/typescript/5.3/package.json +1 -0
  226. package/IMRAN/module.js +1 -0
  227. package/README.md +64 -0
  228. package/index.js +13 -0
  229. package/package.json +48 -0
@@ -0,0 +1,996 @@
1
+ /**
2
+ * The `node:assert` module provides a set of assertion functions for verifying
3
+ * invariants.
4
+ * @see [source](https://github.com/nodejs/node/blob/v20.2.0/lib/assert.js)
5
+ */
6
+ declare module "assert" {
7
+ /**
8
+ * An alias of {@link ok}.
9
+ * @since v0.5.9
10
+ * @param value The input that is checked for being truthy.
11
+ */
12
+ function assert(value: unknown, message?: string | Error): asserts value;
13
+ namespace assert {
14
+ /**
15
+ * Indicates the failure of an assertion. All errors thrown by the `node:assert`module will be instances of the `AssertionError` class.
16
+ */
17
+ class AssertionError extends Error {
18
+ /**
19
+ * Set to the `actual` argument for methods such as {@link assert.strictEqual()}.
20
+ */
21
+ actual: unknown;
22
+ /**
23
+ * Set to the `expected` argument for methods such as {@link assert.strictEqual()}.
24
+ */
25
+ expected: unknown;
26
+ /**
27
+ * Set to the passed in operator value.
28
+ */
29
+ operator: string;
30
+ /**
31
+ * Indicates if the message was auto-generated (`true`) or not.
32
+ */
33
+ generatedMessage: boolean;
34
+ /**
35
+ * Value is always `ERR_ASSERTION` to show that the error is an assertion error.
36
+ */
37
+ code: "ERR_ASSERTION";
38
+ constructor(options?: {
39
+ /** If provided, the error message is set to this value. */
40
+ message?: string | undefined;
41
+ /** The `actual` property on the error instance. */
42
+ actual?: unknown | undefined;
43
+ /** The `expected` property on the error instance. */
44
+ expected?: unknown | undefined;
45
+ /** The `operator` property on the error instance. */
46
+ operator?: string | undefined;
47
+ /** If provided, the generated stack trace omits frames before this function. */
48
+ // eslint-disable-next-line @typescript-eslint/ban-types
49
+ stackStartFn?: Function | undefined;
50
+ });
51
+ }
52
+ /**
53
+ * This feature is deprecated and will be removed in a future version.
54
+ * Please consider using alternatives such as the `mock` helper function.
55
+ * @since v14.2.0, v12.19.0
56
+ * @deprecated Deprecated
57
+ */
58
+ class CallTracker {
59
+ /**
60
+ * The wrapper function is expected to be called exactly `exact` times. If the
61
+ * function has not been called exactly `exact` times when `tracker.verify()` is called, then `tracker.verify()` will throw an
62
+ * error.
63
+ *
64
+ * ```js
65
+ * import assert from 'node:assert';
66
+ *
67
+ * // Creates call tracker.
68
+ * const tracker = new assert.CallTracker();
69
+ *
70
+ * function func() {}
71
+ *
72
+ * // Returns a function that wraps func() that must be called exact times
73
+ * // before tracker.verify().
74
+ * const callsfunc = tracker.calls(func);
75
+ * ```
76
+ * @since v14.2.0, v12.19.0
77
+ * @param [fn='A no-op function']
78
+ * @param [exact=1]
79
+ * @return that wraps `fn`.
80
+ */
81
+ calls(exact?: number): () => void;
82
+ calls<Func extends (...args: any[]) => any>(fn?: Func, exact?: number): Func;
83
+ /**
84
+ * Example:
85
+ *
86
+ * ```js
87
+ * import assert from 'node:assert';
88
+ *
89
+ * const tracker = new assert.CallTracker();
90
+ *
91
+ * function func() {}
92
+ * const callsfunc = tracker.calls(func);
93
+ * callsfunc(1, 2, 3);
94
+ *
95
+ * assert.deepStrictEqual(tracker.getCalls(callsfunc),
96
+ * [{ thisArg: undefined, arguments: [1, 2, 3] }]);
97
+ * ```
98
+ * @since v18.8.0, v16.18.0
99
+ * @param fn
100
+ * @return An Array with all the calls to a tracked function.
101
+ */
102
+ getCalls(fn: Function): CallTrackerCall[];
103
+ /**
104
+ * The arrays contains information about the expected and actual number of calls of
105
+ * the functions that have not been called the expected number of times.
106
+ *
107
+ * ```js
108
+ * import assert from 'node:assert';
109
+ *
110
+ * // Creates call tracker.
111
+ * const tracker = new assert.CallTracker();
112
+ *
113
+ * function func() {}
114
+ *
115
+ * // Returns a function that wraps func() that must be called exact times
116
+ * // before tracker.verify().
117
+ * const callsfunc = tracker.calls(func, 2);
118
+ *
119
+ * // Returns an array containing information on callsfunc()
120
+ * console.log(tracker.report());
121
+ * // [
122
+ * // {
123
+ * // message: 'Expected the func function to be executed 2 time(s) but was
124
+ * // executed 0 time(s).',
125
+ * // actual: 0,
126
+ * // expected: 2,
127
+ * // operator: 'func',
128
+ * // stack: stack trace
129
+ * // }
130
+ * // ]
131
+ * ```
132
+ * @since v14.2.0, v12.19.0
133
+ * @return An Array of objects containing information about the wrapper functions returned by `calls`.
134
+ */
135
+ report(): CallTrackerReportInformation[];
136
+ /**
137
+ * Reset calls of the call tracker.
138
+ * If a tracked function is passed as an argument, the calls will be reset for it.
139
+ * If no arguments are passed, all tracked functions will be reset.
140
+ *
141
+ * ```js
142
+ * import assert from 'node:assert';
143
+ *
144
+ * const tracker = new assert.CallTracker();
145
+ *
146
+ * function func() {}
147
+ * const callsfunc = tracker.calls(func);
148
+ *
149
+ * callsfunc();
150
+ * // Tracker was called once
151
+ * assert.strictEqual(tracker.getCalls(callsfunc).length, 1);
152
+ *
153
+ * tracker.reset(callsfunc);
154
+ * assert.strictEqual(tracker.getCalls(callsfunc).length, 0);
155
+ * ```
156
+ * @since v18.8.0, v16.18.0
157
+ * @param fn a tracked function to reset.
158
+ */
159
+ reset(fn?: Function): void;
160
+ /**
161
+ * Iterates through the list of functions passed to `tracker.calls()` and will throw an error for functions that
162
+ * have not been called the expected number of times.
163
+ *
164
+ * ```js
165
+ * import assert from 'node:assert';
166
+ *
167
+ * // Creates call tracker.
168
+ * const tracker = new assert.CallTracker();
169
+ *
170
+ * function func() {}
171
+ *
172
+ * // Returns a function that wraps func() that must be called exact times
173
+ * // before tracker.verify().
174
+ * const callsfunc = tracker.calls(func, 2);
175
+ *
176
+ * callsfunc();
177
+ *
178
+ * // Will throw an error since callsfunc() was only called once.
179
+ * tracker.verify();
180
+ * ```
181
+ * @since v14.2.0, v12.19.0
182
+ */
183
+ verify(): void;
184
+ }
185
+ interface CallTrackerCall {
186
+ thisArg: object;
187
+ arguments: unknown[];
188
+ }
189
+ interface CallTrackerReportInformation {
190
+ message: string;
191
+ /** The actual number of times the function was called. */
192
+ actual: number;
193
+ /** The number of times the function was expected to be called. */
194
+ expected: number;
195
+ /** The name of the function that is wrapped. */
196
+ operator: string;
197
+ /** A stack trace of the function. */
198
+ stack: object;
199
+ }
200
+ type AssertPredicate = RegExp | (new() => object) | ((thrown: unknown) => boolean) | object | Error;
201
+ /**
202
+ * Throws an `AssertionError` with the provided error message or a default
203
+ * error message. If the `message` parameter is an instance of an `Error` then
204
+ * it will be thrown instead of the `AssertionError`.
205
+ *
206
+ * ```js
207
+ * import assert from 'node:assert/strict';
208
+ *
209
+ * assert.fail();
210
+ * // AssertionError [ERR_ASSERTION]: Failed
211
+ *
212
+ * assert.fail('boom');
213
+ * // AssertionError [ERR_ASSERTION]: boom
214
+ *
215
+ * assert.fail(new TypeError('need array'));
216
+ * // TypeError: need array
217
+ * ```
218
+ *
219
+ * Using `assert.fail()` with more than two arguments is possible but deprecated.
220
+ * See below for further details.
221
+ * @since v0.1.21
222
+ * @param [message='Failed']
223
+ */
224
+ function fail(message?: string | Error): never;
225
+ /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */
226
+ function fail(
227
+ actual: unknown,
228
+ expected: unknown,
229
+ message?: string | Error,
230
+ operator?: string,
231
+ // eslint-disable-next-line @typescript-eslint/ban-types
232
+ stackStartFn?: Function,
233
+ ): never;
234
+ /**
235
+ * Tests if `value` is truthy. It is equivalent to`assert.equal(!!value, true, message)`.
236
+ *
237
+ * If `value` is not truthy, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is `undefined`, a default
238
+ * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.
239
+ * If no arguments are passed in at all `message` will be set to the string:`` 'No value argument passed to `assert.ok()`' ``.
240
+ *
241
+ * Be aware that in the `repl` the error message will be different to the one
242
+ * thrown in a file! See below for further details.
243
+ *
244
+ * ```js
245
+ * import assert from 'node:assert/strict';
246
+ *
247
+ * assert.ok(true);
248
+ * // OK
249
+ * assert.ok(1);
250
+ * // OK
251
+ *
252
+ * assert.ok();
253
+ * // AssertionError: No value argument passed to `assert.ok()`
254
+ *
255
+ * assert.ok(false, 'it\'s false');
256
+ * // AssertionError: it's false
257
+ *
258
+ * // In the repl:
259
+ * assert.ok(typeof 123 === 'string');
260
+ * // AssertionError: false == true
261
+ *
262
+ * // In a file (e.g. test.js):
263
+ * assert.ok(typeof 123 === 'string');
264
+ * // AssertionError: The expression evaluated to a falsy value:
265
+ * //
266
+ * // assert.ok(typeof 123 === 'string')
267
+ *
268
+ * assert.ok(false);
269
+ * // AssertionError: The expression evaluated to a falsy value:
270
+ * //
271
+ * // assert.ok(false)
272
+ *
273
+ * assert.ok(0);
274
+ * // AssertionError: The expression evaluated to a falsy value:
275
+ * //
276
+ * // assert.ok(0)
277
+ * ```
278
+ *
279
+ * ```js
280
+ * import assert from 'node:assert/strict';
281
+ *
282
+ * // Using `assert()` works the same:
283
+ * assert(0);
284
+ * // AssertionError: The expression evaluated to a falsy value:
285
+ * //
286
+ * // assert(0)
287
+ * ```
288
+ * @since v0.1.21
289
+ */
290
+ function ok(value: unknown, message?: string | Error): asserts value;
291
+ /**
292
+ * **Strict assertion mode**
293
+ *
294
+ * An alias of {@link strictEqual}.
295
+ *
296
+ * **Legacy assertion mode**
297
+ *
298
+ * > Stability: 3 - Legacy: Use {@link strictEqual} instead.
299
+ *
300
+ * Tests shallow, coercive equality between the `actual` and `expected` parameters
301
+ * using the [`==` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality). `NaN` is specially handled
302
+ * and treated as being identical if both sides are `NaN`.
303
+ *
304
+ * ```js
305
+ * import assert from 'node:assert';
306
+ *
307
+ * assert.equal(1, 1);
308
+ * // OK, 1 == 1
309
+ * assert.equal(1, '1');
310
+ * // OK, 1 == '1'
311
+ * assert.equal(NaN, NaN);
312
+ * // OK
313
+ *
314
+ * assert.equal(1, 2);
315
+ * // AssertionError: 1 == 2
316
+ * assert.equal({ a: { b: 1 } }, { a: { b: 1 } });
317
+ * // AssertionError: { a: { b: 1 } } == { a: { b: 1 } }
318
+ * ```
319
+ *
320
+ * If the values are not equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default
321
+ * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.
322
+ * @since v0.1.21
323
+ */
324
+ function equal(actual: unknown, expected: unknown, message?: string | Error): void;
325
+ /**
326
+ * **Strict assertion mode**
327
+ *
328
+ * An alias of {@link notStrictEqual}.
329
+ *
330
+ * **Legacy assertion mode**
331
+ *
332
+ * > Stability: 3 - Legacy: Use {@link notStrictEqual} instead.
333
+ *
334
+ * Tests shallow, coercive inequality with the [`!=` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Inequality). `NaN` is
335
+ * specially handled and treated as being identical if both sides are `NaN`.
336
+ *
337
+ * ```js
338
+ * import assert from 'node:assert';
339
+ *
340
+ * assert.notEqual(1, 2);
341
+ * // OK
342
+ *
343
+ * assert.notEqual(1, 1);
344
+ * // AssertionError: 1 != 1
345
+ *
346
+ * assert.notEqual(1, '1');
347
+ * // AssertionError: 1 != '1'
348
+ * ```
349
+ *
350
+ * If the values are equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default error
351
+ * message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.
352
+ * @since v0.1.21
353
+ */
354
+ function notEqual(actual: unknown, expected: unknown, message?: string | Error): void;
355
+ /**
356
+ * **Strict assertion mode**
357
+ *
358
+ * An alias of {@link deepStrictEqual}.
359
+ *
360
+ * **Legacy assertion mode**
361
+ *
362
+ * > Stability: 3 - Legacy: Use {@link deepStrictEqual} instead.
363
+ *
364
+ * Tests for deep equality between the `actual` and `expected` parameters. Consider
365
+ * using {@link deepStrictEqual} instead. {@link deepEqual} can have
366
+ * surprising results.
367
+ *
368
+ * _Deep equality_ means that the enumerable "own" properties of child objects
369
+ * are also recursively evaluated by the following rules.
370
+ * @since v0.1.21
371
+ */
372
+ function deepEqual(actual: unknown, expected: unknown, message?: string | Error): void;
373
+ /**
374
+ * **Strict assertion mode**
375
+ *
376
+ * An alias of {@link notDeepStrictEqual}.
377
+ *
378
+ * **Legacy assertion mode**
379
+ *
380
+ * > Stability: 3 - Legacy: Use {@link notDeepStrictEqual} instead.
381
+ *
382
+ * Tests for any deep inequality. Opposite of {@link deepEqual}.
383
+ *
384
+ * ```js
385
+ * import assert from 'node:assert';
386
+ *
387
+ * const obj1 = {
388
+ * a: {
389
+ * b: 1,
390
+ * },
391
+ * };
392
+ * const obj2 = {
393
+ * a: {
394
+ * b: 2,
395
+ * },
396
+ * };
397
+ * const obj3 = {
398
+ * a: {
399
+ * b: 1,
400
+ * },
401
+ * };
402
+ * const obj4 = { __proto__: obj1 };
403
+ *
404
+ * assert.notDeepEqual(obj1, obj1);
405
+ * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
406
+ *
407
+ * assert.notDeepEqual(obj1, obj2);
408
+ * // OK
409
+ *
410
+ * assert.notDeepEqual(obj1, obj3);
411
+ * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
412
+ *
413
+ * assert.notDeepEqual(obj1, obj4);
414
+ * // OK
415
+ * ```
416
+ *
417
+ * If the values are deeply equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a default
418
+ * error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown
419
+ * instead of the `AssertionError`.
420
+ * @since v0.1.21
421
+ */
422
+ function notDeepEqual(actual: unknown, expected: unknown, message?: string | Error): void;
423
+ /**
424
+ * Tests strict equality between the `actual` and `expected` parameters as
425
+ * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
426
+ *
427
+ * ```js
428
+ * import assert from 'node:assert/strict';
429
+ *
430
+ * assert.strictEqual(1, 2);
431
+ * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
432
+ * //
433
+ * // 1 !== 2
434
+ *
435
+ * assert.strictEqual(1, 1);
436
+ * // OK
437
+ *
438
+ * assert.strictEqual('Hello foobar', 'Hello World!');
439
+ * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
440
+ * // + actual - expected
441
+ * //
442
+ * // + 'Hello foobar'
443
+ * // - 'Hello World!'
444
+ * // ^
445
+ *
446
+ * const apples = 1;
447
+ * const oranges = 2;
448
+ * assert.strictEqual(apples, oranges, `apples ${apples} !== oranges ${oranges}`);
449
+ * // AssertionError [ERR_ASSERTION]: apples 1 !== oranges 2
450
+ *
451
+ * assert.strictEqual(1, '1', new TypeError('Inputs are not identical'));
452
+ * // TypeError: Inputs are not identical
453
+ * ```
454
+ *
455
+ * If the values are not strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a
456
+ * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown
457
+ * instead of the `AssertionError`.
458
+ * @since v0.1.21
459
+ */
460
+ function strictEqual<T>(actual: unknown, expected: T, message?: string | Error): asserts actual is T;
461
+ /**
462
+ * Tests strict inequality between the `actual` and `expected` parameters as
463
+ * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
464
+ *
465
+ * ```js
466
+ * import assert from 'node:assert/strict';
467
+ *
468
+ * assert.notStrictEqual(1, 2);
469
+ * // OK
470
+ *
471
+ * assert.notStrictEqual(1, 1);
472
+ * // AssertionError [ERR_ASSERTION]: Expected "actual" to be strictly unequal to:
473
+ * //
474
+ * // 1
475
+ *
476
+ * assert.notStrictEqual(1, '1');
477
+ * // OK
478
+ * ```
479
+ *
480
+ * If the values are strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a
481
+ * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown
482
+ * instead of the `AssertionError`.
483
+ * @since v0.1.21
484
+ */
485
+ function notStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
486
+ /**
487
+ * Tests for deep equality between the `actual` and `expected` parameters.
488
+ * "Deep" equality means that the enumerable "own" properties of child objects
489
+ * are recursively evaluated also by the following rules.
490
+ * @since v1.2.0
491
+ */
492
+ function deepStrictEqual<T>(actual: unknown, expected: T, message?: string | Error): asserts actual is T;
493
+ /**
494
+ * Tests for deep strict inequality. Opposite of {@link deepStrictEqual}.
495
+ *
496
+ * ```js
497
+ * import assert from 'node:assert/strict';
498
+ *
499
+ * assert.notDeepStrictEqual({ a: 1 }, { a: '1' });
500
+ * // OK
501
+ * ```
502
+ *
503
+ * If the values are deeply and strictly equal, an `AssertionError` is thrown
504
+ * with a `message` property set equal to the value of the `message` parameter. If
505
+ * the `message` parameter is undefined, a default error message is assigned. If
506
+ * the `message` parameter is an instance of an `Error` then it will be thrown
507
+ * instead of the `AssertionError`.
508
+ * @since v1.2.0
509
+ */
510
+ function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
511
+ /**
512
+ * Expects the function `fn` to throw an error.
513
+ *
514
+ * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
515
+ * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,
516
+ * a validation object where each property will be tested for strict deep equality,
517
+ * or an instance of error where each property will be tested for strict deep
518
+ * equality including the non-enumerable `message` and `name` properties. When
519
+ * using an object, it is also possible to use a regular expression, when
520
+ * validating against a string property. See below for examples.
521
+ *
522
+ * If specified, `message` will be appended to the message provided by the`AssertionError` if the `fn` call fails to throw or in case the error validation
523
+ * fails.
524
+ *
525
+ * Custom validation object/error instance:
526
+ *
527
+ * ```js
528
+ * import assert from 'node:assert/strict';
529
+ *
530
+ * const err = new TypeError('Wrong value');
531
+ * err.code = 404;
532
+ * err.foo = 'bar';
533
+ * err.info = {
534
+ * nested: true,
535
+ * baz: 'text',
536
+ * };
537
+ * err.reg = /abc/i;
538
+ *
539
+ * assert.throws(
540
+ * () => {
541
+ * throw err;
542
+ * },
543
+ * {
544
+ * name: 'TypeError',
545
+ * message: 'Wrong value',
546
+ * info: {
547
+ * nested: true,
548
+ * baz: 'text',
549
+ * },
550
+ * // Only properties on the validation object will be tested for.
551
+ * // Using nested objects requires all properties to be present. Otherwise
552
+ * // the validation is going to fail.
553
+ * },
554
+ * );
555
+ *
556
+ * // Using regular expressions to validate error properties:
557
+ * assert.throws(
558
+ * () => {
559
+ * throw err;
560
+ * },
561
+ * {
562
+ * // The `name` and `message` properties are strings and using regular
563
+ * // expressions on those will match against the string. If they fail, an
564
+ * // error is thrown.
565
+ * name: /^TypeError$/,
566
+ * message: /Wrong/,
567
+ * foo: 'bar',
568
+ * info: {
569
+ * nested: true,
570
+ * // It is not possible to use regular expressions for nested properties!
571
+ * baz: 'text',
572
+ * },
573
+ * // The `reg` property contains a regular expression and only if the
574
+ * // validation object contains an identical regular expression, it is going
575
+ * // to pass.
576
+ * reg: /abc/i,
577
+ * },
578
+ * );
579
+ *
580
+ * // Fails due to the different `message` and `name` properties:
581
+ * assert.throws(
582
+ * () => {
583
+ * const otherErr = new Error('Not found');
584
+ * // Copy all enumerable properties from `err` to `otherErr`.
585
+ * for (const [key, value] of Object.entries(err)) {
586
+ * otherErr[key] = value;
587
+ * }
588
+ * throw otherErr;
589
+ * },
590
+ * // The error's `message` and `name` properties will also be checked when using
591
+ * // an error as validation object.
592
+ * err,
593
+ * );
594
+ * ```
595
+ *
596
+ * Validate instanceof using constructor:
597
+ *
598
+ * ```js
599
+ * import assert from 'node:assert/strict';
600
+ *
601
+ * assert.throws(
602
+ * () => {
603
+ * throw new Error('Wrong value');
604
+ * },
605
+ * Error,
606
+ * );
607
+ * ```
608
+ *
609
+ * Validate error message using [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions):
610
+ *
611
+ * Using a regular expression runs `.toString` on the error object, and will
612
+ * therefore also include the error name.
613
+ *
614
+ * ```js
615
+ * import assert from 'node:assert/strict';
616
+ *
617
+ * assert.throws(
618
+ * () => {
619
+ * throw new Error('Wrong value');
620
+ * },
621
+ * /^Error: Wrong value$/,
622
+ * );
623
+ * ```
624
+ *
625
+ * Custom error validation:
626
+ *
627
+ * The function must return `true` to indicate all internal validations passed.
628
+ * It will otherwise fail with an `AssertionError`.
629
+ *
630
+ * ```js
631
+ * import assert from 'node:assert/strict';
632
+ *
633
+ * assert.throws(
634
+ * () => {
635
+ * throw new Error('Wrong value');
636
+ * },
637
+ * (err) => {
638
+ * assert(err instanceof Error);
639
+ * assert(/value/.test(err));
640
+ * // Avoid returning anything from validation functions besides `true`.
641
+ * // Otherwise, it's not clear what part of the validation failed. Instead,
642
+ * // throw an error about the specific validation that failed (as done in this
643
+ * // example) and add as much helpful debugging information to that error as
644
+ * // possible.
645
+ * return true;
646
+ * },
647
+ * 'unexpected error',
648
+ * );
649
+ * ```
650
+ *
651
+ * `error` cannot be a string. If a string is provided as the second
652
+ * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Using the same
653
+ * message as the thrown error message is going to result in an`ERR_AMBIGUOUS_ARGUMENT` error. Please read the example below carefully if using
654
+ * a string as the second argument gets considered:
655
+ *
656
+ * ```js
657
+ * import assert from 'node:assert/strict';
658
+ *
659
+ * function throwingFirst() {
660
+ * throw new Error('First');
661
+ * }
662
+ *
663
+ * function throwingSecond() {
664
+ * throw new Error('Second');
665
+ * }
666
+ *
667
+ * function notThrowing() {}
668
+ *
669
+ * // The second argument is a string and the input function threw an Error.
670
+ * // The first case will not throw as it does not match for the error message
671
+ * // thrown by the input function!
672
+ * assert.throws(throwingFirst, 'Second');
673
+ * // In the next example the message has no benefit over the message from the
674
+ * // error and since it is not clear if the user intended to actually match
675
+ * // against the error message, Node.js throws an `ERR_AMBIGUOUS_ARGUMENT` error.
676
+ * assert.throws(throwingSecond, 'Second');
677
+ * // TypeError [ERR_AMBIGUOUS_ARGUMENT]
678
+ *
679
+ * // The string is only used (as message) in case the function does not throw:
680
+ * assert.throws(notThrowing, 'Second');
681
+ * // AssertionError [ERR_ASSERTION]: Missing expected exception: Second
682
+ *
683
+ * // If it was intended to match for the error message do this instead:
684
+ * // It does not throw because the error messages match.
685
+ * assert.throws(throwingSecond, /Second$/);
686
+ *
687
+ * // If the error message does not match, an AssertionError is thrown.
688
+ * assert.throws(throwingFirst, /Second$/);
689
+ * // AssertionError [ERR_ASSERTION]
690
+ * ```
691
+ *
692
+ * Due to the confusing error-prone notation, avoid a string as the second
693
+ * argument.
694
+ * @since v0.1.21
695
+ */
696
+ function throws(block: () => unknown, message?: string | Error): void;
697
+ function throws(block: () => unknown, error: AssertPredicate, message?: string | Error): void;
698
+ /**
699
+ * Asserts that the function `fn` does not throw an error.
700
+ *
701
+ * Using `assert.doesNotThrow()` is actually not useful because there
702
+ * is no benefit in catching an error and then rethrowing it. Instead, consider
703
+ * adding a comment next to the specific code path that should not throw and keep
704
+ * error messages as expressive as possible.
705
+ *
706
+ * When `assert.doesNotThrow()` is called, it will immediately call the `fn`function.
707
+ *
708
+ * If an error is thrown and it is the same type as that specified by the `error`parameter, then an `AssertionError` is thrown. If the error is of a
709
+ * different type, or if the `error` parameter is undefined, the error is
710
+ * propagated back to the caller.
711
+ *
712
+ * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
713
+ * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), or a validation
714
+ * function. See {@link throws} for more details.
715
+ *
716
+ * The following, for instance, will throw the `TypeError` because there is no
717
+ * matching error type in the assertion:
718
+ *
719
+ * ```js
720
+ * import assert from 'node:assert/strict';
721
+ *
722
+ * assert.doesNotThrow(
723
+ * () => {
724
+ * throw new TypeError('Wrong value');
725
+ * },
726
+ * SyntaxError,
727
+ * );
728
+ * ```
729
+ *
730
+ * However, the following will result in an `AssertionError` with the message
731
+ * 'Got unwanted exception...':
732
+ *
733
+ * ```js
734
+ * import assert from 'node:assert/strict';
735
+ *
736
+ * assert.doesNotThrow(
737
+ * () => {
738
+ * throw new TypeError('Wrong value');
739
+ * },
740
+ * TypeError,
741
+ * );
742
+ * ```
743
+ *
744
+ * If an `AssertionError` is thrown and a value is provided for the `message`parameter, the value of `message` will be appended to the `AssertionError` message:
745
+ *
746
+ * ```js
747
+ * import assert from 'node:assert/strict';
748
+ *
749
+ * assert.doesNotThrow(
750
+ * () => {
751
+ * throw new TypeError('Wrong value');
752
+ * },
753
+ * /Wrong value/,
754
+ * 'Whoops',
755
+ * );
756
+ * // Throws: AssertionError: Got unwanted exception: Whoops
757
+ * ```
758
+ * @since v0.1.21
759
+ */
760
+ function doesNotThrow(block: () => unknown, message?: string | Error): void;
761
+ function doesNotThrow(block: () => unknown, error: AssertPredicate, message?: string | Error): void;
762
+ /**
763
+ * Throws `value` if `value` is not `undefined` or `null`. This is useful when
764
+ * testing the `error` argument in callbacks. The stack trace contains all frames
765
+ * from the error passed to `ifError()` including the potential new frames for`ifError()` itself.
766
+ *
767
+ * ```js
768
+ * import assert from 'node:assert/strict';
769
+ *
770
+ * assert.ifError(null);
771
+ * // OK
772
+ * assert.ifError(0);
773
+ * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0
774
+ * assert.ifError('error');
775
+ * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'error'
776
+ * assert.ifError(new Error());
777
+ * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error
778
+ *
779
+ * // Create some random error frames.
780
+ * let err;
781
+ * (function errorFrame() {
782
+ * err = new Error('test error');
783
+ * })();
784
+ *
785
+ * (function ifErrorFrame() {
786
+ * assert.ifError(err);
787
+ * })();
788
+ * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error
789
+ * // at ifErrorFrame
790
+ * // at errorFrame
791
+ * ```
792
+ * @since v0.1.97
793
+ */
794
+ function ifError(value: unknown): asserts value is null | undefined;
795
+ /**
796
+ * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately
797
+ * calls the function and awaits the returned promise to complete. It will then
798
+ * check that the promise is rejected.
799
+ *
800
+ * If `asyncFn` is a function and it throws an error synchronously,`assert.rejects()` will return a rejected `Promise` with that error. If the
801
+ * function does not return a promise, `assert.rejects()` will return a rejected`Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases the error
802
+ * handler is skipped.
803
+ *
804
+ * Besides the async nature to await the completion behaves identically to {@link throws}.
805
+ *
806
+ * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
807
+ * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,
808
+ * an object where each property will be tested for, or an instance of error where
809
+ * each property will be tested for including the non-enumerable `message` and`name` properties.
810
+ *
811
+ * If specified, `message` will be the message provided by the `AssertionError` if the `asyncFn` fails to reject.
812
+ *
813
+ * ```js
814
+ * import assert from 'node:assert/strict';
815
+ *
816
+ * await assert.rejects(
817
+ * async () => {
818
+ * throw new TypeError('Wrong value');
819
+ * },
820
+ * {
821
+ * name: 'TypeError',
822
+ * message: 'Wrong value',
823
+ * },
824
+ * );
825
+ * ```
826
+ *
827
+ * ```js
828
+ * import assert from 'node:assert/strict';
829
+ *
830
+ * await assert.rejects(
831
+ * async () => {
832
+ * throw new TypeError('Wrong value');
833
+ * },
834
+ * (err) => {
835
+ * assert.strictEqual(err.name, 'TypeError');
836
+ * assert.strictEqual(err.message, 'Wrong value');
837
+ * return true;
838
+ * },
839
+ * );
840
+ * ```
841
+ *
842
+ * ```js
843
+ * import assert from 'node:assert/strict';
844
+ *
845
+ * assert.rejects(
846
+ * Promise.reject(new Error('Wrong value')),
847
+ * Error,
848
+ * ).then(() => {
849
+ * // ...
850
+ * });
851
+ * ```
852
+ *
853
+ * `error` cannot be a string. If a string is provided as the second
854
+ * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Please read the
855
+ * example in {@link throws} carefully if using a string as the second
856
+ * argument gets considered.
857
+ * @since v10.0.0
858
+ */
859
+ function rejects(block: (() => Promise<unknown>) | Promise<unknown>, message?: string | Error): Promise<void>;
860
+ function rejects(
861
+ block: (() => Promise<unknown>) | Promise<unknown>,
862
+ error: AssertPredicate,
863
+ message?: string | Error,
864
+ ): Promise<void>;
865
+ /**
866
+ * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately
867
+ * calls the function and awaits the returned promise to complete. It will then
868
+ * check that the promise is not rejected.
869
+ *
870
+ * If `asyncFn` is a function and it throws an error synchronously,`assert.doesNotReject()` will return a rejected `Promise` with that error. If
871
+ * the function does not return a promise, `assert.doesNotReject()` will return a
872
+ * rejected `Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases
873
+ * the error handler is skipped.
874
+ *
875
+ * Using `assert.doesNotReject()` is actually not useful because there is little
876
+ * benefit in catching a rejection and then rejecting it again. Instead, consider
877
+ * adding a comment next to the specific code path that should not reject and keep
878
+ * error messages as expressive as possible.
879
+ *
880
+ * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
881
+ * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), or a validation
882
+ * function. See {@link throws} for more details.
883
+ *
884
+ * Besides the async nature to await the completion behaves identically to {@link doesNotThrow}.
885
+ *
886
+ * ```js
887
+ * import assert from 'node:assert/strict';
888
+ *
889
+ * await assert.doesNotReject(
890
+ * async () => {
891
+ * throw new TypeError('Wrong value');
892
+ * },
893
+ * SyntaxError,
894
+ * );
895
+ * ```
896
+ *
897
+ * ```js
898
+ * import assert from 'node:assert/strict';
899
+ *
900
+ * assert.doesNotReject(Promise.reject(new TypeError('Wrong value')))
901
+ * .then(() => {
902
+ * // ...
903
+ * });
904
+ * ```
905
+ * @since v10.0.0
906
+ */
907
+ function doesNotReject(
908
+ block: (() => Promise<unknown>) | Promise<unknown>,
909
+ message?: string | Error,
910
+ ): Promise<void>;
911
+ function doesNotReject(
912
+ block: (() => Promise<unknown>) | Promise<unknown>,
913
+ error: AssertPredicate,
914
+ message?: string | Error,
915
+ ): Promise<void>;
916
+ /**
917
+ * Expects the `string` input to match the regular expression.
918
+ *
919
+ * ```js
920
+ * import assert from 'node:assert/strict';
921
+ *
922
+ * assert.match('I will fail', /pass/);
923
+ * // AssertionError [ERR_ASSERTION]: The input did not match the regular ...
924
+ *
925
+ * assert.match(123, /pass/);
926
+ * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.
927
+ *
928
+ * assert.match('I will pass', /pass/);
929
+ * // OK
930
+ * ```
931
+ *
932
+ * If the values do not match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal
933
+ * to the value of the `message` parameter. If the `message` parameter is
934
+ * undefined, a default error message is assigned. If the `message` parameter is an
935
+ * instance of an `Error` then it will be thrown instead of the `AssertionError`.
936
+ * @since v13.6.0, v12.16.0
937
+ */
938
+ function match(value: string, regExp: RegExp, message?: string | Error): void;
939
+ /**
940
+ * Expects the `string` input not to match the regular expression.
941
+ *
942
+ * ```js
943
+ * import assert from 'node:assert/strict';
944
+ *
945
+ * assert.doesNotMatch('I will fail', /fail/);
946
+ * // AssertionError [ERR_ASSERTION]: The input was expected to not match the ...
947
+ *
948
+ * assert.doesNotMatch(123, /pass/);
949
+ * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.
950
+ *
951
+ * assert.doesNotMatch('I will pass', /different/);
952
+ * // OK
953
+ * ```
954
+ *
955
+ * If the values do match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal
956
+ * to the value of the `message` parameter. If the `message` parameter is
957
+ * undefined, a default error message is assigned. If the `message` parameter is an
958
+ * instance of an `Error` then it will be thrown instead of the `AssertionError`.
959
+ * @since v13.6.0, v12.16.0
960
+ */
961
+ function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;
962
+ const strict:
963
+ & Omit<
964
+ typeof assert,
965
+ | "equal"
966
+ | "notEqual"
967
+ | "deepEqual"
968
+ | "notDeepEqual"
969
+ | "ok"
970
+ | "strictEqual"
971
+ | "deepStrictEqual"
972
+ | "ifError"
973
+ | "strict"
974
+ >
975
+ & {
976
+ (value: unknown, message?: string | Error): asserts value;
977
+ equal: typeof strictEqual;
978
+ notEqual: typeof notStrictEqual;
979
+ deepEqual: typeof deepStrictEqual;
980
+ notDeepEqual: typeof notDeepStrictEqual;
981
+ // Mapped types and assertion functions are incompatible?
982
+ // TS2775: Assertions require every name in the call target
983
+ // to be declared with an explicit type annotation.
984
+ ok: typeof ok;
985
+ strictEqual: typeof strictEqual;
986
+ deepStrictEqual: typeof deepStrictEqual;
987
+ ifError: typeof ifError;
988
+ strict: typeof strict;
989
+ };
990
+ }
991
+ export = assert;
992
+ }
993
+ declare module "node:assert" {
994
+ import assert = require("assert");
995
+ export = assert;
996
+ }