rahad-media-downloader 2.1.12 → 2.1.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (233) hide show
  1. package/.cache/replit/modules/nodejs-20.res +1 -0
  2. package/.cache/replit/modules/replit.res +1 -0
  3. package/.cache/typescript/5.4/node_modules/.package-lock.json +185 -0
  4. package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +21 -0
  5. package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +48 -0
  6. package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +29 -0
  7. package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +35 -0
  8. package/.cache/typescript/5.4/node_modules/@types/domhandler/LICENSE +21 -0
  9. package/.cache/typescript/5.4/node_modules/@types/domhandler/README.md +92 -0
  10. package/.cache/typescript/5.4/node_modules/@types/domhandler/index.d.ts +73 -0
  11. package/.cache/typescript/5.4/node_modules/@types/domhandler/package.json +25 -0
  12. package/.cache/typescript/5.4/node_modules/@types/domutils/LICENSE +21 -0
  13. package/.cache/typescript/5.4/node_modules/@types/domutils/README.md +15 -0
  14. package/.cache/typescript/5.4/node_modules/@types/domutils/index.d.ts +124 -0
  15. package/.cache/typescript/5.4/node_modules/@types/domutils/package.json +27 -0
  16. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/LICENSE +21 -0
  17. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/README.md +15 -0
  18. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/index.d.ts +120 -0
  19. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/package.json +45 -0
  20. package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +21 -0
  21. package/.cache/typescript/5.4/node_modules/@types/node/README.md +15 -0
  22. package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +8 -0
  23. package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +1040 -0
  24. package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +541 -0
  25. package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +2363 -0
  26. package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +1542 -0
  27. package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +578 -0
  28. package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +452 -0
  29. package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +19 -0
  30. package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +4522 -0
  31. package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +596 -0
  32. package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +545 -0
  33. package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +473 -0
  34. package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +853 -0
  35. package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +124 -0
  36. package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +170 -0
  37. package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +884 -0
  38. package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +1245 -0
  39. package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +4317 -0
  40. package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +411 -0
  41. package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +1 -0
  42. package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +1889 -0
  43. package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +2418 -0
  44. package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +550 -0
  45. package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +89 -0
  46. package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +2746 -0
  47. package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +315 -0
  48. package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +996 -0
  49. package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +495 -0
  50. package/.cache/typescript/5.4/node_modules/@types/node/package.json +217 -0
  51. package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +191 -0
  52. package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +645 -0
  53. package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +1747 -0
  54. package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +117 -0
  55. package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +153 -0
  56. package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +150 -0
  57. package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +540 -0
  58. package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +430 -0
  59. package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +153 -0
  60. package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +12 -0
  61. package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +83 -0
  62. package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +367 -0
  63. package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +1707 -0
  64. package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +67 -0
  65. package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +1470 -0
  66. package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +97 -0
  67. package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +240 -0
  68. package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +1217 -0
  69. package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +197 -0
  70. package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +208 -0
  71. package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +944 -0
  72. package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +2276 -0
  73. package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +764 -0
  74. package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +921 -0
  75. package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +181 -0
  76. package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +691 -0
  77. package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +530 -0
  78. package/.cache/typescript/5.4/node_modules/@types/node-fetch/LICENSE +21 -0
  79. package/.cache/typescript/5.4/node_modules/@types/node-fetch/README.md +15 -0
  80. package/.cache/typescript/5.4/node_modules/@types/node-fetch/externals.d.ts +32 -0
  81. package/.cache/typescript/5.4/node_modules/@types/node-fetch/index.d.ts +238 -0
  82. package/.cache/typescript/5.4/node_modules/@types/node-fetch/package.json +83 -0
  83. package/.cache/typescript/5.4/node_modules/@types/qs/LICENSE +21 -0
  84. package/.cache/typescript/5.4/node_modules/@types/qs/README.md +15 -0
  85. package/.cache/typescript/5.4/node_modules/@types/qs/index.d.ts +79 -0
  86. package/.cache/typescript/5.4/node_modules/@types/qs/package.json +65 -0
  87. package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +21 -0
  88. package/.cache/typescript/5.4/node_modules/@types/request/README.md +15 -0
  89. package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +395 -0
  90. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/License +19 -0
  91. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md +350 -0
  92. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md.bak +350 -0
  93. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/index.d.ts +51 -0
  94. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/browser.js +2 -0
  95. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/form_data.js +483 -0
  96. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/populate.js +10 -0
  97. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/package.json +68 -0
  98. package/.cache/typescript/5.4/node_modules/@types/request/package.json +70 -0
  99. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +21 -0
  100. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +15 -0
  101. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +321 -0
  102. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +35 -0
  103. package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +21 -0
  104. package/.cache/typescript/5.4/node_modules/asynckit/README.md +233 -0
  105. package/.cache/typescript/5.4/node_modules/asynckit/bench.js +76 -0
  106. package/.cache/typescript/5.4/node_modules/asynckit/index.js +6 -0
  107. package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +29 -0
  108. package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +34 -0
  109. package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +26 -0
  110. package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +75 -0
  111. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  112. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +25 -0
  113. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +25 -0
  114. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  115. package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +37 -0
  116. package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +141 -0
  117. package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +29 -0
  118. package/.cache/typescript/5.4/node_modules/asynckit/package.json +63 -0
  119. package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +43 -0
  120. package/.cache/typescript/5.4/node_modules/asynckit/serial.js +17 -0
  121. package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +75 -0
  122. package/.cache/typescript/5.4/node_modules/asynckit/stream.js +21 -0
  123. package/.cache/typescript/5.4/node_modules/combined-stream/License +19 -0
  124. package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +138 -0
  125. package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +208 -0
  126. package/.cache/typescript/5.4/node_modules/combined-stream/package.json +25 -0
  127. package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +17 -0
  128. package/.cache/typescript/5.4/node_modules/delayed-stream/License +19 -0
  129. package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +7 -0
  130. package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +141 -0
  131. package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  132. package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +27 -0
  133. package/.cache/typescript/5.4/node_modules/domelementtype/LICENSE +11 -0
  134. package/.cache/typescript/5.4/node_modules/domelementtype/index.js +15 -0
  135. package/.cache/typescript/5.4/node_modules/domelementtype/package.json +16 -0
  136. package/.cache/typescript/5.4/node_modules/domelementtype/readme.md +1 -0
  137. package/.cache/typescript/5.4/node_modules/domhandler/.travis.yml +6 -0
  138. package/.cache/typescript/5.4/node_modules/domhandler/LICENSE +11 -0
  139. package/.cache/typescript/5.4/node_modules/domhandler/index.js +217 -0
  140. package/.cache/typescript/5.4/node_modules/domhandler/lib/element.js +20 -0
  141. package/.cache/typescript/5.4/node_modules/domhandler/lib/node.js +44 -0
  142. package/.cache/typescript/5.4/node_modules/domhandler/package.json +41 -0
  143. package/.cache/typescript/5.4/node_modules/domhandler/readme.md +116 -0
  144. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/01-basic.json +57 -0
  145. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/02-single_tag_1.json +21 -0
  146. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/03-single_tag_2.json +21 -0
  147. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/04-unescaped_in_script.json +27 -0
  148. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/05-tags_in_comment.json +18 -0
  149. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/06-comment_in_script.json +18 -0
  150. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/07-unescaped_in_style.json +20 -0
  151. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json +20 -0
  152. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/09-unquoted_attrib.json +20 -0
  153. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/10-singular_attribute.json +15 -0
  154. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/11-text_outside_tags.json +40 -0
  155. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/12-text_only.json +11 -0
  156. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/13-comment_in_text.json +19 -0
  157. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/14-comment_in_text_in_script.json +18 -0
  158. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/15-non-verbose.json +22 -0
  159. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/16-normalize_whitespace.json +47 -0
  160. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/17-xml_namespace.json +18 -0
  161. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/18-enforce_empty_tags.json +16 -0
  162. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/19-ignore_empty_tags.json +20 -0
  163. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/20-template_script_tags.json +20 -0
  164. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/21-conditional_comments.json +15 -0
  165. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/22-lowercase_tags.json +41 -0
  166. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/23-dom-lvl1.json +131 -0
  167. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/24-with-start-indices.json +85 -0
  168. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/25-with-end-indices.json +86 -0
  169. package/.cache/typescript/5.4/node_modules/domhandler/test/tests.js +60 -0
  170. package/.cache/typescript/5.4/node_modules/form-data/License +19 -0
  171. package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +358 -0
  172. package/.cache/typescript/5.4/node_modules/form-data/Readme.md +358 -0
  173. package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +62 -0
  174. package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +2 -0
  175. package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +501 -0
  176. package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +10 -0
  177. package/.cache/typescript/5.4/node_modules/form-data/package.json +68 -0
  178. package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +507 -0
  179. package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +23 -0
  180. package/.cache/typescript/5.4/node_modules/mime-db/README.md +100 -0
  181. package/.cache/typescript/5.4/node_modules/mime-db/db.json +8519 -0
  182. package/.cache/typescript/5.4/node_modules/mime-db/index.js +12 -0
  183. package/.cache/typescript/5.4/node_modules/mime-db/package.json +60 -0
  184. package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +397 -0
  185. package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +23 -0
  186. package/.cache/typescript/5.4/node_modules/mime-types/README.md +113 -0
  187. package/.cache/typescript/5.4/node_modules/mime-types/index.js +188 -0
  188. package/.cache/typescript/5.4/node_modules/mime-types/package.json +44 -0
  189. package/.cache/typescript/5.4/node_modules/types-registry/README.md +2 -0
  190. package/.cache/typescript/5.4/node_modules/types-registry/index.json +1 -0
  191. package/.cache/typescript/5.4/node_modules/types-registry/package.json +20 -0
  192. package/.cache/typescript/5.4/node_modules/undici-types/README.md +6 -0
  193. package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +31 -0
  194. package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +43 -0
  195. package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +18 -0
  196. package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +36 -0
  197. package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +97 -0
  198. package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +34 -0
  199. package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +21 -0
  200. package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +28 -0
  201. package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  202. package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +241 -0
  203. package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +128 -0
  204. package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +209 -0
  205. package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +39 -0
  206. package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +54 -0
  207. package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +108 -0
  208. package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  209. package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +7 -0
  210. package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +9 -0
  211. package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +4 -0
  212. package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +63 -0
  213. package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +5 -0
  214. package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +50 -0
  215. package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +25 -0
  216. package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +12 -0
  217. package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  218. package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +25 -0
  219. package/.cache/typescript/5.4/node_modules/undici-types/package.json +55 -0
  220. package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +71 -0
  221. package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +19 -0
  222. package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +28 -0
  223. package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +30 -0
  224. package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +61 -0
  225. package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +220 -0
  226. package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +131 -0
  227. package/.cache/typescript/5.4/package-lock.json +197 -0
  228. package/.cache/typescript/5.4/package.json +1 -0
  229. package/README.md +61 -2
  230. package/index.js +1 -1
  231. package/package.json +11 -2
  232. package/.cache/replit/modules/nodejs-20:v36-20240502-f4453db.res +0 -1
  233. package/.cache/replit/modules/replit:v9-20240429-0325cbb.res +0 -1
@@ -0,0 +1,541 @@
1
+ /**
2
+ * We strongly discourage the use of the `async_hooks` API.
3
+ * Other APIs that can cover most of its use cases include:
4
+ *
5
+ * * [`AsyncLocalStorage`](https://nodejs.org/docs/latest-v20.x/api/async_context.html#class-asynclocalstorage) tracks async context
6
+ * * [`process.getActiveResourcesInfo()`](https://nodejs.org/docs/latest-v20.x/api/process.html#processgetactiveresourcesinfo) tracks active resources
7
+ *
8
+ * The `node:async_hooks` module provides an API to track asynchronous resources.
9
+ * It can be accessed using:
10
+ *
11
+ * ```js
12
+ * import async_hooks from 'node:async_hooks';
13
+ * ```
14
+ * @experimental
15
+ * @see [source](https://github.com/nodejs/node/blob/v20.12.2/lib/async_hooks.js)
16
+ */
17
+ declare module "async_hooks" {
18
+ /**
19
+ * ```js
20
+ * import { executionAsyncId } from 'node:async_hooks';
21
+ * import fs from 'node:fs';
22
+ *
23
+ * console.log(executionAsyncId()); // 1 - bootstrap
24
+ * const path = '.';
25
+ * fs.open(path, 'r', (err, fd) => {
26
+ * console.log(executionAsyncId()); // 6 - open()
27
+ * });
28
+ * ```
29
+ *
30
+ * The ID returned from `executionAsyncId()` is related to execution timing, not
31
+ * causality (which is covered by `triggerAsyncId()`):
32
+ *
33
+ * ```js
34
+ * const server = net.createServer((conn) => {
35
+ * // Returns the ID of the server, not of the new connection, because the
36
+ * // callback runs in the execution scope of the server's MakeCallback().
37
+ * async_hooks.executionAsyncId();
38
+ *
39
+ * }).listen(port, () => {
40
+ * // Returns the ID of a TickObject (process.nextTick()) because all
41
+ * // callbacks passed to .listen() are wrapped in a nextTick().
42
+ * async_hooks.executionAsyncId();
43
+ * });
44
+ * ```
45
+ *
46
+ * Promise contexts may not get precise `executionAsyncIds` by default.
47
+ * See the section on [promise execution tracking](https://nodejs.org/docs/latest-v20.x/api/async_hooks.html#promise-execution-tracking).
48
+ * @since v8.1.0
49
+ * @return The `asyncId` of the current execution context. Useful to track when something calls.
50
+ */
51
+ function executionAsyncId(): number;
52
+ /**
53
+ * Resource objects returned by `executionAsyncResource()` are most often internal
54
+ * Node.js handle objects with undocumented APIs. Using any functions or properties
55
+ * on the object is likely to crash your application and should be avoided.
56
+ *
57
+ * Using `executionAsyncResource()` in the top-level execution context will
58
+ * return an empty object as there is no handle or request object to use,
59
+ * but having an object representing the top-level can be helpful.
60
+ *
61
+ * ```js
62
+ * import { open } from 'node:fs';
63
+ * import { executionAsyncId, executionAsyncResource } from 'node:async_hooks';
64
+ *
65
+ * console.log(executionAsyncId(), executionAsyncResource()); // 1 {}
66
+ * open(new URL(import.meta.url), 'r', (err, fd) => {
67
+ * console.log(executionAsyncId(), executionAsyncResource()); // 7 FSReqWrap
68
+ * });
69
+ * ```
70
+ *
71
+ * This can be used to implement continuation local storage without the
72
+ * use of a tracking `Map` to store the metadata:
73
+ *
74
+ * ```js
75
+ * import { createServer } from 'node:http';
76
+ * import {
77
+ * executionAsyncId,
78
+ * executionAsyncResource,
79
+ * createHook,
80
+ * } from 'async_hooks';
81
+ * const sym = Symbol('state'); // Private symbol to avoid pollution
82
+ *
83
+ * createHook({
84
+ * init(asyncId, type, triggerAsyncId, resource) {
85
+ * const cr = executionAsyncResource();
86
+ * if (cr) {
87
+ * resource[sym] = cr[sym];
88
+ * }
89
+ * },
90
+ * }).enable();
91
+ *
92
+ * const server = createServer((req, res) => {
93
+ * executionAsyncResource()[sym] = { state: req.url };
94
+ * setTimeout(function() {
95
+ * res.end(JSON.stringify(executionAsyncResource()[sym]));
96
+ * }, 100);
97
+ * }).listen(3000);
98
+ * ```
99
+ * @since v13.9.0, v12.17.0
100
+ * @return The resource representing the current execution. Useful to store data within the resource.
101
+ */
102
+ function executionAsyncResource(): object;
103
+ /**
104
+ * ```js
105
+ * const server = net.createServer((conn) => {
106
+ * // The resource that caused (or triggered) this callback to be called
107
+ * // was that of the new connection. Thus the return value of triggerAsyncId()
108
+ * // is the asyncId of "conn".
109
+ * async_hooks.triggerAsyncId();
110
+ *
111
+ * }).listen(port, () => {
112
+ * // Even though all callbacks passed to .listen() are wrapped in a nextTick()
113
+ * // the callback itself exists because the call to the server's .listen()
114
+ * // was made. So the return value would be the ID of the server.
115
+ * async_hooks.triggerAsyncId();
116
+ * });
117
+ * ```
118
+ *
119
+ * Promise contexts may not get valid `triggerAsyncId`s by default. See
120
+ * the section on [promise execution tracking](https://nodejs.org/docs/latest-v20.x/api/async_hooks.html#promise-execution-tracking).
121
+ * @return The ID of the resource responsible for calling the callback that is currently being executed.
122
+ */
123
+ function triggerAsyncId(): number;
124
+ interface HookCallbacks {
125
+ /**
126
+ * Called when a class is constructed that has the possibility to emit an asynchronous event.
127
+ * @param asyncId A unique ID for the async resource
128
+ * @param type The type of the async resource
129
+ * @param triggerAsyncId The unique ID of the async resource in whose execution context this async resource was created
130
+ * @param resource Reference to the resource representing the async operation, needs to be released during destroy
131
+ */
132
+ init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void;
133
+ /**
134
+ * When an asynchronous operation is initiated or completes a callback is called to notify the user.
135
+ * The before callback is called just before said callback is executed.
136
+ * @param asyncId the unique identifier assigned to the resource about to execute the callback.
137
+ */
138
+ before?(asyncId: number): void;
139
+ /**
140
+ * Called immediately after the callback specified in `before` is completed.
141
+ *
142
+ * If an uncaught exception occurs during execution of the callback, then `after` will run after the `'uncaughtException'` event is emitted or a `domain`'s handler runs.
143
+ * @param asyncId the unique identifier assigned to the resource which has executed the callback.
144
+ */
145
+ after?(asyncId: number): void;
146
+ /**
147
+ * Called when a promise has resolve() called. This may not be in the same execution id
148
+ * as the promise itself.
149
+ * @param asyncId the unique id for the promise that was resolve()d.
150
+ */
151
+ promiseResolve?(asyncId: number): void;
152
+ /**
153
+ * Called after the resource corresponding to asyncId is destroyed
154
+ * @param asyncId a unique ID for the async resource
155
+ */
156
+ destroy?(asyncId: number): void;
157
+ }
158
+ interface AsyncHook {
159
+ /**
160
+ * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop.
161
+ */
162
+ enable(): this;
163
+ /**
164
+ * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled.
165
+ */
166
+ disable(): this;
167
+ }
168
+ /**
169
+ * Registers functions to be called for different lifetime events of each async
170
+ * operation.
171
+ *
172
+ * The callbacks `init()`/`before()`/`after()`/`destroy()` are called for the
173
+ * respective asynchronous event during a resource's lifetime.
174
+ *
175
+ * All callbacks are optional. For example, if only resource cleanup needs to
176
+ * be tracked, then only the `destroy` callback needs to be passed. The
177
+ * specifics of all functions that can be passed to `callbacks` is in the `Hook Callbacks` section.
178
+ *
179
+ * ```js
180
+ * import { createHook } from 'node:async_hooks';
181
+ *
182
+ * const asyncHook = createHook({
183
+ * init(asyncId, type, triggerAsyncId, resource) { },
184
+ * destroy(asyncId) { },
185
+ * });
186
+ * ```
187
+ *
188
+ * The callbacks will be inherited via the prototype chain:
189
+ *
190
+ * ```js
191
+ * class MyAsyncCallbacks {
192
+ * init(asyncId, type, triggerAsyncId, resource) { }
193
+ * destroy(asyncId) {}
194
+ * }
195
+ *
196
+ * class MyAddedCallbacks extends MyAsyncCallbacks {
197
+ * before(asyncId) { }
198
+ * after(asyncId) { }
199
+ * }
200
+ *
201
+ * const asyncHook = async_hooks.createHook(new MyAddedCallbacks());
202
+ * ```
203
+ *
204
+ * Because promises are asynchronous resources whose lifecycle is tracked
205
+ * via the async hooks mechanism, the `init()`, `before()`, `after()`, and`destroy()` callbacks _must not_ be async functions that return promises.
206
+ * @since v8.1.0
207
+ * @param callbacks The `Hook Callbacks` to register
208
+ * @return Instance used for disabling and enabling hooks
209
+ */
210
+ function createHook(callbacks: HookCallbacks): AsyncHook;
211
+ interface AsyncResourceOptions {
212
+ /**
213
+ * The ID of the execution context that created this async event.
214
+ * @default executionAsyncId()
215
+ */
216
+ triggerAsyncId?: number | undefined;
217
+ /**
218
+ * Disables automatic `emitDestroy` when the object is garbage collected.
219
+ * This usually does not need to be set (even if `emitDestroy` is called
220
+ * manually), unless the resource's `asyncId` is retrieved and the
221
+ * sensitive API's `emitDestroy` is called with it.
222
+ * @default false
223
+ */
224
+ requireManualDestroy?: boolean | undefined;
225
+ }
226
+ /**
227
+ * The class `AsyncResource` is designed to be extended by the embedder's async
228
+ * resources. Using this, users can easily trigger the lifetime events of their
229
+ * own resources.
230
+ *
231
+ * The `init` hook will trigger when an `AsyncResource` is instantiated.
232
+ *
233
+ * The following is an overview of the `AsyncResource` API.
234
+ *
235
+ * ```js
236
+ * import { AsyncResource, executionAsyncId } from 'node:async_hooks';
237
+ *
238
+ * // AsyncResource() is meant to be extended. Instantiating a
239
+ * // new AsyncResource() also triggers init. If triggerAsyncId is omitted then
240
+ * // async_hook.executionAsyncId() is used.
241
+ * const asyncResource = new AsyncResource(
242
+ * type, { triggerAsyncId: executionAsyncId(), requireManualDestroy: false },
243
+ * );
244
+ *
245
+ * // Run a function in the execution context of the resource. This will
246
+ * // * establish the context of the resource
247
+ * // * trigger the AsyncHooks before callbacks
248
+ * // * call the provided function `fn` with the supplied arguments
249
+ * // * trigger the AsyncHooks after callbacks
250
+ * // * restore the original execution context
251
+ * asyncResource.runInAsyncScope(fn, thisArg, ...args);
252
+ *
253
+ * // Call AsyncHooks destroy callbacks.
254
+ * asyncResource.emitDestroy();
255
+ *
256
+ * // Return the unique ID assigned to the AsyncResource instance.
257
+ * asyncResource.asyncId();
258
+ *
259
+ * // Return the trigger ID for the AsyncResource instance.
260
+ * asyncResource.triggerAsyncId();
261
+ * ```
262
+ */
263
+ class AsyncResource {
264
+ /**
265
+ * AsyncResource() is meant to be extended. Instantiating a
266
+ * new AsyncResource() also triggers init. If triggerAsyncId is omitted then
267
+ * async_hook.executionAsyncId() is used.
268
+ * @param type The type of async event.
269
+ * @param triggerAsyncId The ID of the execution context that created
270
+ * this async event (default: `executionAsyncId()`), or an
271
+ * AsyncResourceOptions object (since v9.3.0)
272
+ */
273
+ constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions);
274
+ /**
275
+ * Binds the given function to the current execution context.
276
+ * @since v14.8.0, v12.19.0
277
+ * @param fn The function to bind to the current execution context.
278
+ * @param type An optional name to associate with the underlying `AsyncResource`.
279
+ */
280
+ static bind<Func extends (this: ThisArg, ...args: any[]) => any, ThisArg>(
281
+ fn: Func,
282
+ type?: string,
283
+ thisArg?: ThisArg,
284
+ ): Func;
285
+ /**
286
+ * Binds the given function to execute to this `AsyncResource`'s scope.
287
+ * @since v14.8.0, v12.19.0
288
+ * @param fn The function to bind to the current `AsyncResource`.
289
+ */
290
+ bind<Func extends (...args: any[]) => any>(fn: Func): Func;
291
+ /**
292
+ * Call the provided function with the provided arguments in the execution context
293
+ * of the async resource. This will establish the context, trigger the AsyncHooks
294
+ * before callbacks, call the function, trigger the AsyncHooks after callbacks, and
295
+ * then restore the original execution context.
296
+ * @since v9.6.0
297
+ * @param fn The function to call in the execution context of this async resource.
298
+ * @param thisArg The receiver to be used for the function call.
299
+ * @param args Optional arguments to pass to the function.
300
+ */
301
+ runInAsyncScope<This, Result>(
302
+ fn: (this: This, ...args: any[]) => Result,
303
+ thisArg?: This,
304
+ ...args: any[]
305
+ ): Result;
306
+ /**
307
+ * Call all `destroy` hooks. This should only ever be called once. An error will
308
+ * be thrown if it is called more than once. This **must** be manually called. If
309
+ * the resource is left to be collected by the GC then the `destroy` hooks will
310
+ * never be called.
311
+ * @return A reference to `asyncResource`.
312
+ */
313
+ emitDestroy(): this;
314
+ /**
315
+ * @return The unique `asyncId` assigned to the resource.
316
+ */
317
+ asyncId(): number;
318
+ /**
319
+ * @return The same `triggerAsyncId` that is passed to the `AsyncResource` constructor.
320
+ */
321
+ triggerAsyncId(): number;
322
+ }
323
+ /**
324
+ * This class creates stores that stay coherent through asynchronous operations.
325
+ *
326
+ * While you can create your own implementation on top of the `node:async_hooks` module, `AsyncLocalStorage` should be preferred as it is a performant and memory
327
+ * safe implementation that involves significant optimizations that are non-obvious
328
+ * to implement.
329
+ *
330
+ * The following example uses `AsyncLocalStorage` to build a simple logger
331
+ * that assigns IDs to incoming HTTP requests and includes them in messages
332
+ * logged within each request.
333
+ *
334
+ * ```js
335
+ * import http from 'node:http';
336
+ * import { AsyncLocalStorage } from 'node:async_hooks';
337
+ *
338
+ * const asyncLocalStorage = new AsyncLocalStorage();
339
+ *
340
+ * function logWithId(msg) {
341
+ * const id = asyncLocalStorage.getStore();
342
+ * console.log(`${id !== undefined ? id : '-'}:`, msg);
343
+ * }
344
+ *
345
+ * let idSeq = 0;
346
+ * http.createServer((req, res) => {
347
+ * asyncLocalStorage.run(idSeq++, () => {
348
+ * logWithId('start');
349
+ * // Imagine any chain of async operations here
350
+ * setImmediate(() => {
351
+ * logWithId('finish');
352
+ * res.end();
353
+ * });
354
+ * });
355
+ * }).listen(8080);
356
+ *
357
+ * http.get('http://localhost:8080');
358
+ * http.get('http://localhost:8080');
359
+ * // Prints:
360
+ * // 0: start
361
+ * // 1: start
362
+ * // 0: finish
363
+ * // 1: finish
364
+ * ```
365
+ *
366
+ * Each instance of `AsyncLocalStorage` maintains an independent storage context.
367
+ * Multiple instances can safely exist simultaneously without risk of interfering
368
+ * with each other's data.
369
+ * @since v13.10.0, v12.17.0
370
+ */
371
+ class AsyncLocalStorage<T> {
372
+ /**
373
+ * Binds the given function to the current execution context.
374
+ * @since v19.8.0
375
+ * @experimental
376
+ * @param fn The function to bind to the current execution context.
377
+ * @return A new function that calls `fn` within the captured execution context.
378
+ */
379
+ static bind<Func extends (...args: any[]) => any>(fn: Func): Func;
380
+ /**
381
+ * Captures the current execution context and returns a function that accepts a
382
+ * function as an argument. Whenever the returned function is called, it
383
+ * calls the function passed to it within the captured context.
384
+ *
385
+ * ```js
386
+ * const asyncLocalStorage = new AsyncLocalStorage();
387
+ * const runInAsyncScope = asyncLocalStorage.run(123, () => AsyncLocalStorage.snapshot());
388
+ * const result = asyncLocalStorage.run(321, () => runInAsyncScope(() => asyncLocalStorage.getStore()));
389
+ * console.log(result); // returns 123
390
+ * ```
391
+ *
392
+ * AsyncLocalStorage.snapshot() can replace the use of AsyncResource for simple
393
+ * async context tracking purposes, for example:
394
+ *
395
+ * ```js
396
+ * class Foo {
397
+ * #runInAsyncScope = AsyncLocalStorage.snapshot();
398
+ *
399
+ * get() { return this.#runInAsyncScope(() => asyncLocalStorage.getStore()); }
400
+ * }
401
+ *
402
+ * const foo = asyncLocalStorage.run(123, () => new Foo());
403
+ * console.log(asyncLocalStorage.run(321, () => foo.get())); // returns 123
404
+ * ```
405
+ * @since v19.8.0
406
+ * @experimental
407
+ * @return A new function with the signature `(fn: (...args) : R, ...args) : R`.
408
+ */
409
+ static snapshot(): <R, TArgs extends any[]>(fn: (...args: TArgs) => R, ...args: TArgs) => R;
410
+ /**
411
+ * Disables the instance of `AsyncLocalStorage`. All subsequent calls
412
+ * to `asyncLocalStorage.getStore()` will return `undefined` until `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()` is called again.
413
+ *
414
+ * When calling `asyncLocalStorage.disable()`, all current contexts linked to the
415
+ * instance will be exited.
416
+ *
417
+ * Calling `asyncLocalStorage.disable()` is required before the `asyncLocalStorage` can be garbage collected. This does not apply to stores
418
+ * provided by the `asyncLocalStorage`, as those objects are garbage collected
419
+ * along with the corresponding async resources.
420
+ *
421
+ * Use this method when the `asyncLocalStorage` is not in use anymore
422
+ * in the current process.
423
+ * @since v13.10.0, v12.17.0
424
+ * @experimental
425
+ */
426
+ disable(): void;
427
+ /**
428
+ * Returns the current store.
429
+ * If called outside of an asynchronous context initialized by
430
+ * calling `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()`, it
431
+ * returns `undefined`.
432
+ * @since v13.10.0, v12.17.0
433
+ */
434
+ getStore(): T | undefined;
435
+ /**
436
+ * Runs a function synchronously within a context and returns its
437
+ * return value. The store is not accessible outside of the callback function.
438
+ * The store is accessible to any asynchronous operations created within the
439
+ * callback.
440
+ *
441
+ * The optional `args` are passed to the callback function.
442
+ *
443
+ * If the callback function throws an error, the error is thrown by `run()` too.
444
+ * The stacktrace is not impacted by this call and the context is exited.
445
+ *
446
+ * Example:
447
+ *
448
+ * ```js
449
+ * const store = { id: 2 };
450
+ * try {
451
+ * asyncLocalStorage.run(store, () => {
452
+ * asyncLocalStorage.getStore(); // Returns the store object
453
+ * setTimeout(() => {
454
+ * asyncLocalStorage.getStore(); // Returns the store object
455
+ * }, 200);
456
+ * throw new Error();
457
+ * });
458
+ * } catch (e) {
459
+ * asyncLocalStorage.getStore(); // Returns undefined
460
+ * // The error will be caught here
461
+ * }
462
+ * ```
463
+ * @since v13.10.0, v12.17.0
464
+ */
465
+ run<R>(store: T, callback: () => R): R;
466
+ run<R, TArgs extends any[]>(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R;
467
+ /**
468
+ * Runs a function synchronously outside of a context and returns its
469
+ * return value. The store is not accessible within the callback function or
470
+ * the asynchronous operations created within the callback. Any `getStore()` call done within the callback function will always return `undefined`.
471
+ *
472
+ * The optional `args` are passed to the callback function.
473
+ *
474
+ * If the callback function throws an error, the error is thrown by `exit()` too.
475
+ * The stacktrace is not impacted by this call and the context is re-entered.
476
+ *
477
+ * Example:
478
+ *
479
+ * ```js
480
+ * // Within a call to run
481
+ * try {
482
+ * asyncLocalStorage.getStore(); // Returns the store object or value
483
+ * asyncLocalStorage.exit(() => {
484
+ * asyncLocalStorage.getStore(); // Returns undefined
485
+ * throw new Error();
486
+ * });
487
+ * } catch (e) {
488
+ * asyncLocalStorage.getStore(); // Returns the same object or value
489
+ * // The error will be caught here
490
+ * }
491
+ * ```
492
+ * @since v13.10.0, v12.17.0
493
+ * @experimental
494
+ */
495
+ exit<R, TArgs extends any[]>(callback: (...args: TArgs) => R, ...args: TArgs): R;
496
+ /**
497
+ * Transitions into the context for the remainder of the current
498
+ * synchronous execution and then persists the store through any following
499
+ * asynchronous calls.
500
+ *
501
+ * Example:
502
+ *
503
+ * ```js
504
+ * const store = { id: 1 };
505
+ * // Replaces previous store with the given store object
506
+ * asyncLocalStorage.enterWith(store);
507
+ * asyncLocalStorage.getStore(); // Returns the store object
508
+ * someAsyncOperation(() => {
509
+ * asyncLocalStorage.getStore(); // Returns the same object
510
+ * });
511
+ * ```
512
+ *
513
+ * This transition will continue for the _entire_ synchronous execution.
514
+ * This means that if, for example, the context is entered within an event
515
+ * handler subsequent event handlers will also run within that context unless
516
+ * specifically bound to another context with an `AsyncResource`. That is why `run()` should be preferred over `enterWith()` unless there are strong reasons
517
+ * to use the latter method.
518
+ *
519
+ * ```js
520
+ * const store = { id: 1 };
521
+ *
522
+ * emitter.on('my-event', () => {
523
+ * asyncLocalStorage.enterWith(store);
524
+ * });
525
+ * emitter.on('my-event', () => {
526
+ * asyncLocalStorage.getStore(); // Returns the same object
527
+ * });
528
+ *
529
+ * asyncLocalStorage.getStore(); // Returns undefined
530
+ * emitter.emit('my-event');
531
+ * asyncLocalStorage.getStore(); // Returns the same object
532
+ * ```
533
+ * @since v13.11.0, v12.17.0
534
+ * @experimental
535
+ */
536
+ enterWith(store: T): void;
537
+ }
538
+ }
539
+ declare module "node:async_hooks" {
540
+ export * from "async_hooks";
541
+ }