rahad-media-downloader 2.1.10 → 2.1.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) hide show
  1. package/.cache/replit/modules/nodejs-20.res +1 -0
  2. package/.cache/replit/modules/replit.res +1 -0
  3. package/.cache/typescript/5.3/node_modules/.package-lock.json +6 -0
  4. package/.cache/typescript/5.3/node_modules/@types/qs/LICENSE +21 -0
  5. package/.cache/typescript/5.3/node_modules/@types/qs/README.md +15 -0
  6. package/.cache/typescript/5.3/node_modules/@types/qs/index.d.ts +79 -0
  7. package/.cache/typescript/5.3/node_modules/@types/qs/package.json +65 -0
  8. package/.cache/typescript/5.3/package-lock.json +7 -0
  9. package/.cache/typescript/5.3/package.json +1 -1
  10. package/.cache/typescript/5.4/node_modules/.package-lock.json +185 -0
  11. package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +21 -0
  12. package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +48 -0
  13. package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +29 -0
  14. package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +35 -0
  15. package/.cache/typescript/5.4/node_modules/@types/domhandler/LICENSE +21 -0
  16. package/.cache/typescript/5.4/node_modules/@types/domhandler/README.md +92 -0
  17. package/.cache/typescript/5.4/node_modules/@types/domhandler/index.d.ts +73 -0
  18. package/.cache/typescript/5.4/node_modules/@types/domhandler/package.json +25 -0
  19. package/.cache/typescript/5.4/node_modules/@types/domutils/LICENSE +21 -0
  20. package/.cache/typescript/5.4/node_modules/@types/domutils/README.md +15 -0
  21. package/.cache/typescript/5.4/node_modules/@types/domutils/index.d.ts +124 -0
  22. package/.cache/typescript/5.4/node_modules/@types/domutils/package.json +27 -0
  23. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/LICENSE +21 -0
  24. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/README.md +15 -0
  25. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/index.d.ts +120 -0
  26. package/.cache/typescript/5.4/node_modules/@types/htmlparser2/package.json +45 -0
  27. package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +21 -0
  28. package/.cache/typescript/5.4/node_modules/@types/node/README.md +15 -0
  29. package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +8 -0
  30. package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +1040 -0
  31. package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +541 -0
  32. package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +2363 -0
  33. package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +1542 -0
  34. package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +578 -0
  35. package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +452 -0
  36. package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +19 -0
  37. package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +4522 -0
  38. package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +596 -0
  39. package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +545 -0
  40. package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +473 -0
  41. package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +853 -0
  42. package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +124 -0
  43. package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +170 -0
  44. package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +884 -0
  45. package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +1245 -0
  46. package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +4317 -0
  47. package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +411 -0
  48. package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +1 -0
  49. package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +1889 -0
  50. package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +2418 -0
  51. package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +550 -0
  52. package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +89 -0
  53. package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +2746 -0
  54. package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +315 -0
  55. package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +996 -0
  56. package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +495 -0
  57. package/.cache/typescript/5.4/node_modules/@types/node/package.json +217 -0
  58. package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +191 -0
  59. package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +645 -0
  60. package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +1747 -0
  61. package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +117 -0
  62. package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +153 -0
  63. package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +150 -0
  64. package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +540 -0
  65. package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +430 -0
  66. package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +153 -0
  67. package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +12 -0
  68. package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +83 -0
  69. package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +367 -0
  70. package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +1707 -0
  71. package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +67 -0
  72. package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +1470 -0
  73. package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +97 -0
  74. package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +240 -0
  75. package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +1217 -0
  76. package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +197 -0
  77. package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +208 -0
  78. package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +944 -0
  79. package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +2276 -0
  80. package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +764 -0
  81. package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +921 -0
  82. package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +181 -0
  83. package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +691 -0
  84. package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +530 -0
  85. package/.cache/typescript/5.4/node_modules/@types/node-fetch/LICENSE +21 -0
  86. package/.cache/typescript/5.4/node_modules/@types/node-fetch/README.md +15 -0
  87. package/.cache/typescript/5.4/node_modules/@types/node-fetch/externals.d.ts +32 -0
  88. package/.cache/typescript/5.4/node_modules/@types/node-fetch/index.d.ts +238 -0
  89. package/.cache/typescript/5.4/node_modules/@types/node-fetch/package.json +83 -0
  90. package/.cache/typescript/5.4/node_modules/@types/qs/LICENSE +21 -0
  91. package/.cache/typescript/5.4/node_modules/@types/qs/README.md +15 -0
  92. package/.cache/typescript/5.4/node_modules/@types/qs/index.d.ts +79 -0
  93. package/.cache/typescript/5.4/node_modules/@types/qs/package.json +65 -0
  94. package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +21 -0
  95. package/.cache/typescript/5.4/node_modules/@types/request/README.md +15 -0
  96. package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +395 -0
  97. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/License +19 -0
  98. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md +350 -0
  99. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/README.md.bak +350 -0
  100. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/index.d.ts +51 -0
  101. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/browser.js +2 -0
  102. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/form_data.js +483 -0
  103. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/lib/populate.js +10 -0
  104. package/.cache/typescript/5.4/node_modules/@types/request/node_modules/form-data/package.json +68 -0
  105. package/.cache/typescript/5.4/node_modules/@types/request/package.json +70 -0
  106. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +21 -0
  107. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +15 -0
  108. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +321 -0
  109. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +35 -0
  110. package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +21 -0
  111. package/.cache/typescript/5.4/node_modules/asynckit/README.md +233 -0
  112. package/.cache/typescript/5.4/node_modules/asynckit/bench.js +76 -0
  113. package/.cache/typescript/5.4/node_modules/asynckit/index.js +6 -0
  114. package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +29 -0
  115. package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +34 -0
  116. package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +26 -0
  117. package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +75 -0
  118. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  119. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +25 -0
  120. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +25 -0
  121. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  122. package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +37 -0
  123. package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +141 -0
  124. package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +29 -0
  125. package/.cache/typescript/5.4/node_modules/asynckit/package.json +63 -0
  126. package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +43 -0
  127. package/.cache/typescript/5.4/node_modules/asynckit/serial.js +17 -0
  128. package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +75 -0
  129. package/.cache/typescript/5.4/node_modules/asynckit/stream.js +21 -0
  130. package/.cache/typescript/5.4/node_modules/combined-stream/License +19 -0
  131. package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +138 -0
  132. package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +208 -0
  133. package/.cache/typescript/5.4/node_modules/combined-stream/package.json +25 -0
  134. package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +17 -0
  135. package/.cache/typescript/5.4/node_modules/delayed-stream/License +19 -0
  136. package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +7 -0
  137. package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +141 -0
  138. package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  139. package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +27 -0
  140. package/.cache/typescript/5.4/node_modules/domelementtype/LICENSE +11 -0
  141. package/.cache/typescript/5.4/node_modules/domelementtype/index.js +15 -0
  142. package/.cache/typescript/5.4/node_modules/domelementtype/package.json +16 -0
  143. package/.cache/typescript/5.4/node_modules/domelementtype/readme.md +1 -0
  144. package/.cache/typescript/5.4/node_modules/domhandler/.travis.yml +6 -0
  145. package/.cache/typescript/5.4/node_modules/domhandler/LICENSE +11 -0
  146. package/.cache/typescript/5.4/node_modules/domhandler/index.js +217 -0
  147. package/.cache/typescript/5.4/node_modules/domhandler/lib/element.js +20 -0
  148. package/.cache/typescript/5.4/node_modules/domhandler/lib/node.js +44 -0
  149. package/.cache/typescript/5.4/node_modules/domhandler/package.json +41 -0
  150. package/.cache/typescript/5.4/node_modules/domhandler/readme.md +116 -0
  151. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/01-basic.json +57 -0
  152. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/02-single_tag_1.json +21 -0
  153. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/03-single_tag_2.json +21 -0
  154. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/04-unescaped_in_script.json +27 -0
  155. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/05-tags_in_comment.json +18 -0
  156. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/06-comment_in_script.json +18 -0
  157. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/07-unescaped_in_style.json +20 -0
  158. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json +20 -0
  159. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/09-unquoted_attrib.json +20 -0
  160. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/10-singular_attribute.json +15 -0
  161. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/11-text_outside_tags.json +40 -0
  162. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/12-text_only.json +11 -0
  163. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/13-comment_in_text.json +19 -0
  164. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/14-comment_in_text_in_script.json +18 -0
  165. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/15-non-verbose.json +22 -0
  166. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/16-normalize_whitespace.json +47 -0
  167. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/17-xml_namespace.json +18 -0
  168. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/18-enforce_empty_tags.json +16 -0
  169. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/19-ignore_empty_tags.json +20 -0
  170. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/20-template_script_tags.json +20 -0
  171. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/21-conditional_comments.json +15 -0
  172. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/22-lowercase_tags.json +41 -0
  173. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/23-dom-lvl1.json +131 -0
  174. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/24-with-start-indices.json +85 -0
  175. package/.cache/typescript/5.4/node_modules/domhandler/test/cases/25-with-end-indices.json +86 -0
  176. package/.cache/typescript/5.4/node_modules/domhandler/test/tests.js +60 -0
  177. package/.cache/typescript/5.4/node_modules/form-data/License +19 -0
  178. package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +358 -0
  179. package/.cache/typescript/5.4/node_modules/form-data/Readme.md +358 -0
  180. package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +62 -0
  181. package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +2 -0
  182. package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +501 -0
  183. package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +10 -0
  184. package/.cache/typescript/5.4/node_modules/form-data/package.json +68 -0
  185. package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +507 -0
  186. package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +23 -0
  187. package/.cache/typescript/5.4/node_modules/mime-db/README.md +100 -0
  188. package/.cache/typescript/5.4/node_modules/mime-db/db.json +8519 -0
  189. package/.cache/typescript/5.4/node_modules/mime-db/index.js +12 -0
  190. package/.cache/typescript/5.4/node_modules/mime-db/package.json +60 -0
  191. package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +397 -0
  192. package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +23 -0
  193. package/.cache/typescript/5.4/node_modules/mime-types/README.md +113 -0
  194. package/.cache/typescript/5.4/node_modules/mime-types/index.js +188 -0
  195. package/.cache/typescript/5.4/node_modules/mime-types/package.json +44 -0
  196. package/.cache/typescript/5.4/node_modules/types-registry/README.md +2 -0
  197. package/.cache/typescript/5.4/node_modules/types-registry/index.json +1 -0
  198. package/.cache/typescript/5.4/node_modules/types-registry/package.json +20 -0
  199. package/.cache/typescript/5.4/node_modules/undici-types/README.md +6 -0
  200. package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +31 -0
  201. package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +43 -0
  202. package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +18 -0
  203. package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +36 -0
  204. package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +97 -0
  205. package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +34 -0
  206. package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +21 -0
  207. package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +28 -0
  208. package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  209. package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +241 -0
  210. package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +128 -0
  211. package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +209 -0
  212. package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +39 -0
  213. package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +54 -0
  214. package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +108 -0
  215. package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  216. package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +7 -0
  217. package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +9 -0
  218. package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +4 -0
  219. package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +63 -0
  220. package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +5 -0
  221. package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +50 -0
  222. package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +25 -0
  223. package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +12 -0
  224. package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  225. package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +25 -0
  226. package/.cache/typescript/5.4/node_modules/undici-types/package.json +55 -0
  227. package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +71 -0
  228. package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +19 -0
  229. package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +28 -0
  230. package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +30 -0
  231. package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +61 -0
  232. package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +220 -0
  233. package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +131 -0
  234. package/.cache/typescript/5.4/package-lock.json +197 -0
  235. package/.cache/typescript/5.4/package.json +1 -0
  236. package/index.js +1 -1
  237. package/package.json +37 -2
  238. package/.cache/replit/modules/nodejs-20:v32-20240401-269b323.res +0 -1
  239. package/.cache/replit/modules/replit:v8-20240329-787bc7d.res +0 -1
@@ -0,0 +1,645 @@
1
+ /**
2
+ * This module provides an implementation of a subset of the W3C [Web Performance APIs](https://w3c.github.io/perf-timing-primer/) as well as additional APIs for
3
+ * Node.js-specific performance measurements.
4
+ *
5
+ * Node.js supports the following [Web Performance APIs](https://w3c.github.io/perf-timing-primer/):
6
+ *
7
+ * * [High Resolution Time](https://www.w3.org/TR/hr-time-2)
8
+ * * [Performance Timeline](https://w3c.github.io/performance-timeline/)
9
+ * * [User Timing](https://www.w3.org/TR/user-timing/)
10
+ * * [Resource Timing](https://www.w3.org/TR/resource-timing-2/)
11
+ *
12
+ * ```js
13
+ * const { PerformanceObserver, performance } = require('node:perf_hooks');
14
+ *
15
+ * const obs = new PerformanceObserver((items) => {
16
+ * console.log(items.getEntries()[0].duration);
17
+ * performance.clearMarks();
18
+ * });
19
+ * obs.observe({ type: 'measure' });
20
+ * performance.measure('Start to Now');
21
+ *
22
+ * performance.mark('A');
23
+ * doSomeLongRunningProcess(() => {
24
+ * performance.measure('A to Now', 'A');
25
+ *
26
+ * performance.mark('B');
27
+ * performance.measure('A to B', 'A', 'B');
28
+ * });
29
+ * ```
30
+ * @see [source](https://github.com/nodejs/node/blob/v20.12.2/lib/perf_hooks.js)
31
+ */
32
+ declare module "perf_hooks" {
33
+ import { AsyncResource } from "node:async_hooks";
34
+ type EntryType = "node" | "mark" | "measure" | "gc" | "function" | "http2" | "http" | "dns" | "net";
35
+ interface NodeGCPerformanceDetail {
36
+ /**
37
+ * When `performanceEntry.entryType` is equal to 'gc', the `performance.kind` property identifies
38
+ * the type of garbage collection operation that occurred.
39
+ * See perf_hooks.constants for valid values.
40
+ */
41
+ readonly kind?: number | undefined;
42
+ /**
43
+ * When `performanceEntry.entryType` is equal to 'gc', the `performance.flags`
44
+ * property contains additional information about garbage collection operation.
45
+ * See perf_hooks.constants for valid values.
46
+ */
47
+ readonly flags?: number | undefined;
48
+ }
49
+ /**
50
+ * The constructor of this class is not exposed to users directly.
51
+ * @since v8.5.0
52
+ */
53
+ class PerformanceEntry {
54
+ protected constructor();
55
+ /**
56
+ * The total number of milliseconds elapsed for this entry. This value will not
57
+ * be meaningful for all Performance Entry types.
58
+ * @since v8.5.0
59
+ */
60
+ readonly duration: number;
61
+ /**
62
+ * The name of the performance entry.
63
+ * @since v8.5.0
64
+ */
65
+ readonly name: string;
66
+ /**
67
+ * The high resolution millisecond timestamp marking the starting time of the
68
+ * Performance Entry.
69
+ * @since v8.5.0
70
+ */
71
+ readonly startTime: number;
72
+ /**
73
+ * The type of the performance entry. It may be one of:
74
+ *
75
+ * * `'node'` (Node.js only)
76
+ * * `'mark'` (available on the Web)
77
+ * * `'measure'` (available on the Web)
78
+ * * `'gc'` (Node.js only)
79
+ * * `'function'` (Node.js only)
80
+ * * `'http2'` (Node.js only)
81
+ * * `'http'` (Node.js only)
82
+ * @since v8.5.0
83
+ */
84
+ readonly entryType: EntryType;
85
+ /**
86
+ * Additional detail specific to the `entryType`.
87
+ * @since v16.0.0
88
+ */
89
+ readonly detail?: NodeGCPerformanceDetail | unknown | undefined; // TODO: Narrow this based on entry type.
90
+ toJSON(): any;
91
+ }
92
+ /**
93
+ * Exposes marks created via the `Performance.mark()` method.
94
+ * @since v18.2.0, v16.17.0
95
+ */
96
+ class PerformanceMark extends PerformanceEntry {
97
+ readonly duration: 0;
98
+ readonly entryType: "mark";
99
+ }
100
+ /**
101
+ * Exposes measures created via the `Performance.measure()` method.
102
+ *
103
+ * The constructor of this class is not exposed to users directly.
104
+ * @since v18.2.0, v16.17.0
105
+ */
106
+ class PerformanceMeasure extends PerformanceEntry {
107
+ readonly entryType: "measure";
108
+ }
109
+ /**
110
+ * _This property is an extension by Node.js. It is not available in Web browsers._
111
+ *
112
+ * Provides timing details for Node.js itself. The constructor of this class
113
+ * is not exposed to users.
114
+ * @since v8.5.0
115
+ */
116
+ class PerformanceNodeTiming extends PerformanceEntry {
117
+ /**
118
+ * The high resolution millisecond timestamp at which the Node.js process
119
+ * completed bootstrapping. If bootstrapping has not yet finished, the property
120
+ * has the value of -1.
121
+ * @since v8.5.0
122
+ */
123
+ readonly bootstrapComplete: number;
124
+ /**
125
+ * The high resolution millisecond timestamp at which the Node.js environment was
126
+ * initialized.
127
+ * @since v8.5.0
128
+ */
129
+ readonly environment: number;
130
+ /**
131
+ * The high resolution millisecond timestamp of the amount of time the event loop
132
+ * has been idle within the event loop's event provider (e.g. `epoll_wait`). This
133
+ * does not take CPU usage into consideration. If the event loop has not yet
134
+ * started (e.g., in the first tick of the main script), the property has the
135
+ * value of 0.
136
+ * @since v14.10.0, v12.19.0
137
+ */
138
+ readonly idleTime: number;
139
+ /**
140
+ * The high resolution millisecond timestamp at which the Node.js event loop
141
+ * exited. If the event loop has not yet exited, the property has the value of -1\.
142
+ * It can only have a value of not -1 in a handler of the `'exit'` event.
143
+ * @since v8.5.0
144
+ */
145
+ readonly loopExit: number;
146
+ /**
147
+ * The high resolution millisecond timestamp at which the Node.js event loop
148
+ * started. If the event loop has not yet started (e.g., in the first tick of the
149
+ * main script), the property has the value of -1.
150
+ * @since v8.5.0
151
+ */
152
+ readonly loopStart: number;
153
+ /**
154
+ * The high resolution millisecond timestamp at which the V8 platform was
155
+ * initialized.
156
+ * @since v8.5.0
157
+ */
158
+ readonly v8Start: number;
159
+ }
160
+ interface EventLoopUtilization {
161
+ idle: number;
162
+ active: number;
163
+ utilization: number;
164
+ }
165
+ /**
166
+ * @param util1 The result of a previous call to eventLoopUtilization()
167
+ * @param util2 The result of a previous call to eventLoopUtilization() prior to util1
168
+ */
169
+ type EventLoopUtilityFunction = (
170
+ util1?: EventLoopUtilization,
171
+ util2?: EventLoopUtilization,
172
+ ) => EventLoopUtilization;
173
+ interface MarkOptions {
174
+ /**
175
+ * Additional optional detail to include with the mark.
176
+ */
177
+ detail?: unknown | undefined;
178
+ /**
179
+ * An optional timestamp to be used as the mark time.
180
+ * @default `performance.now()`.
181
+ */
182
+ startTime?: number | undefined;
183
+ }
184
+ interface MeasureOptions {
185
+ /**
186
+ * Additional optional detail to include with the mark.
187
+ */
188
+ detail?: unknown | undefined;
189
+ /**
190
+ * Duration between start and end times.
191
+ */
192
+ duration?: number | undefined;
193
+ /**
194
+ * Timestamp to be used as the end time, or a string identifying a previously recorded mark.
195
+ */
196
+ end?: number | string | undefined;
197
+ /**
198
+ * Timestamp to be used as the start time, or a string identifying a previously recorded mark.
199
+ */
200
+ start?: number | string | undefined;
201
+ }
202
+ interface TimerifyOptions {
203
+ /**
204
+ * A histogram object created using
205
+ * `perf_hooks.createHistogram()` that will record runtime durations in
206
+ * nanoseconds.
207
+ */
208
+ histogram?: RecordableHistogram | undefined;
209
+ }
210
+ interface Performance {
211
+ /**
212
+ * If name is not provided, removes all PerformanceMark objects from the Performance Timeline.
213
+ * If name is provided, removes only the named mark.
214
+ * @param name
215
+ */
216
+ clearMarks(name?: string): void;
217
+ /**
218
+ * If name is not provided, removes all PerformanceMeasure objects from the Performance Timeline.
219
+ * If name is provided, removes only the named measure.
220
+ * @param name
221
+ * @since v16.7.0
222
+ */
223
+ clearMeasures(name?: string): void;
224
+ /**
225
+ * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime`.
226
+ * If you are only interested in performance entries of certain types or that have certain names, see
227
+ * `performance.getEntriesByType()` and `performance.getEntriesByName()`.
228
+ * @since v16.7.0
229
+ */
230
+ getEntries(): PerformanceEntry[];
231
+ /**
232
+ * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime`
233
+ * whose `performanceEntry.name` is equal to `name`, and optionally, whose `performanceEntry.entryType` is equal to `type`.
234
+ * @param name
235
+ * @param type
236
+ * @since v16.7.0
237
+ */
238
+ getEntriesByName(name: string, type?: EntryType): PerformanceEntry[];
239
+ /**
240
+ * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime`
241
+ * whose `performanceEntry.entryType` is equal to `type`.
242
+ * @param type
243
+ * @since v16.7.0
244
+ */
245
+ getEntriesByType(type: EntryType): PerformanceEntry[];
246
+ /**
247
+ * Creates a new PerformanceMark entry in the Performance Timeline.
248
+ * A PerformanceMark is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'mark',
249
+ * and whose performanceEntry.duration is always 0.
250
+ * Performance marks are used to mark specific significant moments in the Performance Timeline.
251
+ * @param name
252
+ * @return The PerformanceMark entry that was created
253
+ */
254
+ mark(name?: string, options?: MarkOptions): PerformanceMark;
255
+ /**
256
+ * Creates a new PerformanceMeasure entry in the Performance Timeline.
257
+ * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure',
258
+ * and whose performanceEntry.duration measures the number of milliseconds elapsed since startMark and endMark.
259
+ *
260
+ * The startMark argument may identify any existing PerformanceMark in the the Performance Timeline, or may identify
261
+ * any of the timestamp properties provided by the PerformanceNodeTiming class. If the named startMark does not exist,
262
+ * then startMark is set to timeOrigin by default.
263
+ *
264
+ * The endMark argument must identify any existing PerformanceMark in the the Performance Timeline or any of the timestamp
265
+ * properties provided by the PerformanceNodeTiming class. If the named endMark does not exist, an error will be thrown.
266
+ * @param name
267
+ * @param startMark
268
+ * @param endMark
269
+ * @return The PerformanceMeasure entry that was created
270
+ */
271
+ measure(name: string, startMark?: string, endMark?: string): PerformanceMeasure;
272
+ measure(name: string, options: MeasureOptions): PerformanceMeasure;
273
+ /**
274
+ * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones.
275
+ */
276
+ readonly nodeTiming: PerformanceNodeTiming;
277
+ /**
278
+ * @return the current high resolution millisecond timestamp
279
+ */
280
+ now(): number;
281
+ /**
282
+ * The timeOrigin specifies the high resolution millisecond timestamp from which all performance metric durations are measured.
283
+ */
284
+ readonly timeOrigin: number;
285
+ /**
286
+ * Wraps a function within a new function that measures the running time of the wrapped function.
287
+ * A PerformanceObserver must be subscribed to the 'function' event type in order for the timing details to be accessed.
288
+ * @param fn
289
+ */
290
+ timerify<T extends (...params: any[]) => any>(fn: T, options?: TimerifyOptions): T;
291
+ /**
292
+ * eventLoopUtilization is similar to CPU utilization except that it is calculated using high precision wall-clock time.
293
+ * It represents the percentage of time the event loop has spent outside the event loop's event provider (e.g. epoll_wait).
294
+ * No other CPU idle time is taken into consideration.
295
+ */
296
+ eventLoopUtilization: EventLoopUtilityFunction;
297
+ }
298
+ interface PerformanceObserverEntryList {
299
+ /**
300
+ * Returns a list of `PerformanceEntry` objects in chronological order
301
+ * with respect to `performanceEntry.startTime`.
302
+ *
303
+ * ```js
304
+ * const {
305
+ * performance,
306
+ * PerformanceObserver,
307
+ * } = require('node:perf_hooks');
308
+ *
309
+ * const obs = new PerformanceObserver((perfObserverList, observer) => {
310
+ * console.log(perfObserverList.getEntries());
311
+ *
312
+ * * [
313
+ * * PerformanceEntry {
314
+ * * name: 'test',
315
+ * * entryType: 'mark',
316
+ * * startTime: 81.465639,
317
+ * * duration: 0,
318
+ * * detail: null
319
+ * * },
320
+ * * PerformanceEntry {
321
+ * * name: 'meow',
322
+ * * entryType: 'mark',
323
+ * * startTime: 81.860064,
324
+ * * duration: 0,
325
+ * * detail: null
326
+ * * }
327
+ * * ]
328
+ *
329
+ * performance.clearMarks();
330
+ * performance.clearMeasures();
331
+ * observer.disconnect();
332
+ * });
333
+ * obs.observe({ type: 'mark' });
334
+ *
335
+ * performance.mark('test');
336
+ * performance.mark('meow');
337
+ * ```
338
+ * @since v8.5.0
339
+ */
340
+ getEntries(): PerformanceEntry[];
341
+ /**
342
+ * Returns a list of `PerformanceEntry` objects in chronological order
343
+ * with respect to `performanceEntry.startTime` whose `performanceEntry.name` is
344
+ * equal to `name`, and optionally, whose `performanceEntry.entryType` is equal to`type`.
345
+ *
346
+ * ```js
347
+ * const {
348
+ * performance,
349
+ * PerformanceObserver,
350
+ * } = require('node:perf_hooks');
351
+ *
352
+ * const obs = new PerformanceObserver((perfObserverList, observer) => {
353
+ * console.log(perfObserverList.getEntriesByName('meow'));
354
+ *
355
+ * * [
356
+ * * PerformanceEntry {
357
+ * * name: 'meow',
358
+ * * entryType: 'mark',
359
+ * * startTime: 98.545991,
360
+ * * duration: 0,
361
+ * * detail: null
362
+ * * }
363
+ * * ]
364
+ *
365
+ * console.log(perfObserverList.getEntriesByName('nope')); // []
366
+ *
367
+ * console.log(perfObserverList.getEntriesByName('test', 'mark'));
368
+ *
369
+ * * [
370
+ * * PerformanceEntry {
371
+ * * name: 'test',
372
+ * * entryType: 'mark',
373
+ * * startTime: 63.518931,
374
+ * * duration: 0,
375
+ * * detail: null
376
+ * * }
377
+ * * ]
378
+ *
379
+ * console.log(perfObserverList.getEntriesByName('test', 'measure')); // []
380
+ *
381
+ * performance.clearMarks();
382
+ * performance.clearMeasures();
383
+ * observer.disconnect();
384
+ * });
385
+ * obs.observe({ entryTypes: ['mark', 'measure'] });
386
+ *
387
+ * performance.mark('test');
388
+ * performance.mark('meow');
389
+ * ```
390
+ * @since v8.5.0
391
+ */
392
+ getEntriesByName(name: string, type?: EntryType): PerformanceEntry[];
393
+ /**
394
+ * Returns a list of `PerformanceEntry` objects in chronological order
395
+ * with respect to `performanceEntry.startTime` whose `performanceEntry.entryType` is equal to `type`.
396
+ *
397
+ * ```js
398
+ * const {
399
+ * performance,
400
+ * PerformanceObserver,
401
+ * } = require('node:perf_hooks');
402
+ *
403
+ * const obs = new PerformanceObserver((perfObserverList, observer) => {
404
+ * console.log(perfObserverList.getEntriesByType('mark'));
405
+ *
406
+ * * [
407
+ * * PerformanceEntry {
408
+ * * name: 'test',
409
+ * * entryType: 'mark',
410
+ * * startTime: 55.897834,
411
+ * * duration: 0,
412
+ * * detail: null
413
+ * * },
414
+ * * PerformanceEntry {
415
+ * * name: 'meow',
416
+ * * entryType: 'mark',
417
+ * * startTime: 56.350146,
418
+ * * duration: 0,
419
+ * * detail: null
420
+ * * }
421
+ * * ]
422
+ *
423
+ * performance.clearMarks();
424
+ * performance.clearMeasures();
425
+ * observer.disconnect();
426
+ * });
427
+ * obs.observe({ type: 'mark' });
428
+ *
429
+ * performance.mark('test');
430
+ * performance.mark('meow');
431
+ * ```
432
+ * @since v8.5.0
433
+ */
434
+ getEntriesByType(type: EntryType): PerformanceEntry[];
435
+ }
436
+ type PerformanceObserverCallback = (list: PerformanceObserverEntryList, observer: PerformanceObserver) => void;
437
+ /**
438
+ * @since v8.5.0
439
+ */
440
+ class PerformanceObserver extends AsyncResource {
441
+ constructor(callback: PerformanceObserverCallback);
442
+ /**
443
+ * Disconnects the `PerformanceObserver` instance from all notifications.
444
+ * @since v8.5.0
445
+ */
446
+ disconnect(): void;
447
+ /**
448
+ * Subscribes the `PerformanceObserver` instance to notifications of new `PerformanceEntry` instances identified either by `options.entryTypes`or `options.type`:
449
+ *
450
+ * ```js
451
+ * const {
452
+ * performance,
453
+ * PerformanceObserver,
454
+ * } = require('node:perf_hooks');
455
+ *
456
+ * const obs = new PerformanceObserver((list, observer) => {
457
+ * // Called once asynchronously. `list` contains three items.
458
+ * });
459
+ * obs.observe({ type: 'mark' });
460
+ *
461
+ * for (let n = 0; n < 3; n++)
462
+ * performance.mark(`test${n}`);
463
+ * ```
464
+ * @since v8.5.0
465
+ */
466
+ observe(
467
+ options:
468
+ | {
469
+ entryTypes: readonly EntryType[];
470
+ buffered?: boolean | undefined;
471
+ }
472
+ | {
473
+ type: EntryType;
474
+ buffered?: boolean | undefined;
475
+ },
476
+ ): void;
477
+ }
478
+ namespace constants {
479
+ const NODE_PERFORMANCE_GC_MAJOR: number;
480
+ const NODE_PERFORMANCE_GC_MINOR: number;
481
+ const NODE_PERFORMANCE_GC_INCREMENTAL: number;
482
+ const NODE_PERFORMANCE_GC_WEAKCB: number;
483
+ const NODE_PERFORMANCE_GC_FLAGS_NO: number;
484
+ const NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED: number;
485
+ const NODE_PERFORMANCE_GC_FLAGS_FORCED: number;
486
+ const NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING: number;
487
+ const NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE: number;
488
+ const NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY: number;
489
+ const NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE: number;
490
+ }
491
+ const performance: Performance;
492
+ interface EventLoopMonitorOptions {
493
+ /**
494
+ * The sampling rate in milliseconds.
495
+ * Must be greater than zero.
496
+ * @default 10
497
+ */
498
+ resolution?: number | undefined;
499
+ }
500
+ interface Histogram {
501
+ /**
502
+ * Returns a `Map` object detailing the accumulated percentile distribution.
503
+ * @since v11.10.0
504
+ */
505
+ readonly percentiles: Map<number, number>;
506
+ /**
507
+ * The number of times the event loop delay exceeded the maximum 1 hour event
508
+ * loop delay threshold.
509
+ * @since v11.10.0
510
+ */
511
+ readonly exceeds: number;
512
+ /**
513
+ * The minimum recorded event loop delay.
514
+ * @since v11.10.0
515
+ */
516
+ readonly min: number;
517
+ /**
518
+ * The maximum recorded event loop delay.
519
+ * @since v11.10.0
520
+ */
521
+ readonly max: number;
522
+ /**
523
+ * The mean of the recorded event loop delays.
524
+ * @since v11.10.0
525
+ */
526
+ readonly mean: number;
527
+ /**
528
+ * The standard deviation of the recorded event loop delays.
529
+ * @since v11.10.0
530
+ */
531
+ readonly stddev: number;
532
+ /**
533
+ * Resets the collected histogram data.
534
+ * @since v11.10.0
535
+ */
536
+ reset(): void;
537
+ /**
538
+ * Returns the value at the given percentile.
539
+ * @since v11.10.0
540
+ * @param percentile A percentile value in the range (0, 100].
541
+ */
542
+ percentile(percentile: number): number;
543
+ }
544
+ interface IntervalHistogram extends Histogram {
545
+ /**
546
+ * Enables the update interval timer. Returns `true` if the timer was
547
+ * started, `false` if it was already started.
548
+ * @since v11.10.0
549
+ */
550
+ enable(): boolean;
551
+ /**
552
+ * Disables the update interval timer. Returns `true` if the timer was
553
+ * stopped, `false` if it was already stopped.
554
+ * @since v11.10.0
555
+ */
556
+ disable(): boolean;
557
+ }
558
+ interface RecordableHistogram extends Histogram {
559
+ /**
560
+ * @since v15.9.0, v14.18.0
561
+ * @param val The amount to record in the histogram.
562
+ */
563
+ record(val: number | bigint): void;
564
+ /**
565
+ * Calculates the amount of time (in nanoseconds) that has passed since the
566
+ * previous call to `recordDelta()` and records that amount in the histogram.
567
+ *
568
+ * ## Examples
569
+ * @since v15.9.0, v14.18.0
570
+ */
571
+ recordDelta(): void;
572
+ /**
573
+ * Adds the values from `other` to this histogram.
574
+ * @since v17.4.0, v16.14.0
575
+ */
576
+ add(other: RecordableHistogram): void;
577
+ }
578
+ /**
579
+ * _This property is an extension by Node.js. It is not available in Web browsers._
580
+ *
581
+ * Creates an `IntervalHistogram` object that samples and reports the event loop
582
+ * delay over time. The delays will be reported in nanoseconds.
583
+ *
584
+ * Using a timer to detect approximate event loop delay works because the
585
+ * execution of timers is tied specifically to the lifecycle of the libuv
586
+ * event loop. That is, a delay in the loop will cause a delay in the execution
587
+ * of the timer, and those delays are specifically what this API is intended to
588
+ * detect.
589
+ *
590
+ * ```js
591
+ * const { monitorEventLoopDelay } = require('node:perf_hooks');
592
+ * const h = monitorEventLoopDelay({ resolution: 20 });
593
+ * h.enable();
594
+ * // Do something.
595
+ * h.disable();
596
+ * console.log(h.min);
597
+ * console.log(h.max);
598
+ * console.log(h.mean);
599
+ * console.log(h.stddev);
600
+ * console.log(h.percentiles);
601
+ * console.log(h.percentile(50));
602
+ * console.log(h.percentile(99));
603
+ * ```
604
+ * @since v11.10.0
605
+ */
606
+ function monitorEventLoopDelay(options?: EventLoopMonitorOptions): IntervalHistogram;
607
+ interface CreateHistogramOptions {
608
+ /**
609
+ * The minimum recordable value. Must be an integer value greater than 0.
610
+ * @default 1
611
+ */
612
+ min?: number | bigint | undefined;
613
+ /**
614
+ * The maximum recordable value. Must be an integer value greater than min.
615
+ * @default Number.MAX_SAFE_INTEGER
616
+ */
617
+ max?: number | bigint | undefined;
618
+ /**
619
+ * The number of accuracy digits. Must be a number between 1 and 5.
620
+ * @default 3
621
+ */
622
+ figures?: number | undefined;
623
+ }
624
+ /**
625
+ * Returns a `RecordableHistogram`.
626
+ * @since v15.9.0, v14.18.0
627
+ */
628
+ function createHistogram(options?: CreateHistogramOptions): RecordableHistogram;
629
+ import { performance as _performance } from "perf_hooks";
630
+ global {
631
+ /**
632
+ * `performance` is a global reference for `require('perf_hooks').performance`
633
+ * https://nodejs.org/api/globals.html#performance
634
+ * @since v16.0.0
635
+ */
636
+ var performance: typeof globalThis extends {
637
+ onmessage: any;
638
+ performance: infer T;
639
+ } ? T
640
+ : typeof _performance;
641
+ }
642
+ }
643
+ declare module "node:perf_hooks" {
644
+ export * from "perf_hooks";
645
+ }